diff -Nru gdb-8.1/bfd/aclocal.m4 gdb-8.2/bfd/aclocal.m4 --- gdb-8.1/bfd/aclocal.m4 2017-06-04 15:51:26.000000000 +0000 +++ gdb-8.2/bfd/aclocal.m4 2018-09-05 07:27:13.000000000 +0000 @@ -1,8 +1,7 @@ -# generated automatically by aclocal 1.11.6 -*- Autoconf -*- +# generated automatically by aclocal 1.15.1 -*- Autoconf -*- + +# Copyright (C) 1996-2017 Free Software Foundation, Inc. -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, -# Inc. # This file 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. @@ -12,33 +11,31 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.64],, -[m4_warning([this file was generated for autoconf 2.64. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, +[m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. -To do so, use the procedure documented by the package, typically `autoreconf'.])]) +To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 2002-2017 Free Software Foundation, Inc. # # This file 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. -# serial 1 - # 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. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.11' +[am__api_version='1.15' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.11.6], [], +m4_if([$1], [1.15.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -54,24 +51,22 @@ # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.11.6])dnl +[AM_AUTOMAKE_VERSION([1.15.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. +# Copyright (C) 2001-2017 Free Software Foundation, Inc. # # This file 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. -# serial 1 - # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to -# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to +# '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and @@ -90,7 +85,7 @@ # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is `.', but things will broke when you +# harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, @@ -108,30 +103,26 @@ # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], -[dnl Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50])dnl -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 -# Free Software Foundation, Inc. +# Copyright (C) 1997-2017 Free Software Foundation, Inc. # # This file 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. -# serial 9 - # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ(2.52)dnl - ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl @@ -150,16 +141,14 @@ Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, -# 2010, 2011 Free Software Foundation, Inc. +# Copyright (C) 1999-2017 Free Software Foundation, Inc. # # This file 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. -# serial 12 -# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing @@ -169,7 +158,7 @@ # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "GCJ", or "OBJC". +# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was @@ -182,12 +171,13 @@ AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl -ifelse([$1], CC, [depcc="$CC" am_compiler_list=], - [$1], CXX, [depcc="$CXX" am_compiler_list=], - [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], UPC, [depcc="$UPC" am_compiler_list=], - [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], @@ -195,8 +185,8 @@ # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're @@ -236,16 +226,16 @@ : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" + # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -254,8 +244,8 @@ test "$am__universal" = false || continue ;; nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else @@ -263,7 +253,7 @@ fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has + # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -311,7 +301,7 @@ # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES +# This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl @@ -321,9 +311,13 @@ # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE(dependency-tracking, -[ --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors]) +[AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' @@ -338,20 +332,18 @@ # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. +# Copyright (C) 1999-2017 Free Software Foundation, Inc. # # This file 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. -#serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ - # Autoconf 2.62 quotes --file arguments for eval, but not when files + # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in @@ -364,7 +356,7 @@ # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but + # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. @@ -376,21 +368,19 @@ continue fi # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. + # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue + test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` @@ -408,7 +398,7 @@ # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each `.P' file that we will +# is enabled. FIXME. This creates each '.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], @@ -418,18 +408,21 @@ # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2008, 2009 Free Software Foundation, Inc. +# Copyright (C) 1996-2017 Free Software Foundation, Inc. # # This file 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. -# serial 16 - # 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. +dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. +m4_define([AC_PROG_CC], +m4_defn([AC_PROG_CC]) +[_AM_PROG_CC_C_O +]) + # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- @@ -442,7 +435,7 @@ # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.62])dnl +[AC_PREREQ([2.65])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl @@ -471,33 +464,42 @@ # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], -[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl +[AC_DIAGNOSE([obsolete], + [$0: two- and three-arguments forms are deprecated.]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, +m4_if( + m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) - AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) -AM_MISSING_PROG(AUTOCONF, autoconf) -AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) -AM_MISSING_PROG(AUTOHEADER, autoheader) -AM_MISSING_PROG(MAKEINFO, makeinfo) +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +AM_MISSING_PROG([AUTOCONF], [autoconf]) +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +AM_MISSING_PROG([AUTOHEADER], [autoheader]) +AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl -AC_REQUIRE([AM_PROG_MKDIR_P])dnl -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl @@ -506,34 +508,82 @@ [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES(CC)], - [define([AC_PROG_CC], - defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES(CXX)], - [define([AC_PROG_CXX], - defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES(OBJC)], - [define([AC_PROG_OBJC], - defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl -]) -_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl -dnl The `parallel-tests' driver may need to know about EXEEXT, so add the -dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro -dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl +]) +AC_REQUIRE([AM_SILENT_RULES])dnl +dnl The testsuite driver may need to know about EXEEXT, so add the +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This +dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) + fi +fi +dnl The trailing newline in this macro's definition is deliberate, for +dnl backward compatibility and to allow trailing 'dnl'-style comments +dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. ]) -dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) - # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. @@ -555,21 +605,18 @@ done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation, -# Inc. +# Copyright (C) 2001-2017 Free Software Foundation, Inc. # # This file 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. -# serial 1 - # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -if test x"${install_sh}" != xset; then +if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; @@ -577,25 +624,22 @@ install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi -AC_SUBST(install_sh)]) +AC_SUBST([install_sh])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering -# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008, -# 2011 Free Software Foundation, Inc. +# Copyright (C) 1996-2017 Free Software Foundation, Inc. # # This file 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. -# serial 5 - # AM_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. -# Default is to disable them, unless `enable' is passed literally. -# For symmetry, `disable' may be passed as well. Anyway, the user +# Default is to disable them, unless 'enable' is passed literally. +# For symmetry, 'disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), @@ -606,10 +650,11 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], -[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful - (and sometimes confusing) to the casual installer], - [USE_MAINTAINER_MODE=$enableval], - [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) + [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], + am_maintainer_other[ make rules and dependencies not useful + (and sometimes confusing) to the casual installer])], + [USE_MAINTAINER_MODE=$enableval], + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE @@ -617,18 +662,14 @@ ] ) -AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) - # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. +# Copyright (C) 2001-2017 Free Software Foundation, Inc. # # This file 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. -# serial 4 - # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. @@ -646,7 +687,7 @@ _am_result=none # First try GNU make style include. echo "include confinc" > confmf -# Ignore all kinds of additional output from `make'. +# Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include @@ -673,15 +714,12 @@ # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. +# Copyright (C) 1997-2017 Free Software Foundation, Inc. # # This file 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. -# serial 6 - # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], @@ -689,11 +727,10 @@ $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) - # AM_MISSING_HAS_RUN # ------------------ -# Define MISSING if not defined so far and test if it supports --run. -# If it does, set am_missing_run to use it, otherwise, to nothing. +# Define MISSING if not defined so far and test if it is modern enough. +# If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl @@ -706,54 +743,22 @@ esac fi # Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " else am_missing_run= - AC_MSG_WARN([`missing' script is too old or missing]) + AC_MSG_WARN(['missing' script is too old or missing]) fi ]) -# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation, -# Inc. -# -# This file 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. - -# serial 1 - -# AM_PROG_MKDIR_P -# --------------- -# Check for `mkdir -p'. -AC_DEFUN([AM_PROG_MKDIR_P], -[AC_PREREQ([2.60])dnl -AC_REQUIRE([AC_PROG_MKDIR_P])dnl -dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, -dnl while keeping a definition of mkdir_p for backward compatibility. -dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. -dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of -dnl Makefile.ins that do not define MKDIR_P, so we do our own -dnl adjustment using top_builddir (which is defined more often than -dnl MKDIR_P). -AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl -case $mkdir_p in - [[\\/$]]* | ?:[[\\/]]*) ;; - */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; -esac -]) - # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software -# Foundation, Inc. +# Copyright (C) 2001-2017 Free Software Foundation, Inc. # # This file 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. -# serial 5 - # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], @@ -763,7 +768,7 @@ # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) +[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ @@ -777,24 +782,82 @@ AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Check to make sure that the build environment is sane. -*- Autoconf -*- +# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# +# This file 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. -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 -# Free Software Foundation, Inc. +# _AM_PROG_CC_C_O +# --------------- +# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC +# to automatically call this. +AC_DEFUN([_AM_PROG_CC_C_O], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +AC_LANG_PUSH([C])dnl +AC_CACHE_CHECK( + [whether $CC understands -c and -o together], + [am_cv_prog_cc_c_o], + [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i]) +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +AC_LANG_POP([C])]) + +# For backward compatibility. +AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) + +# Copyright (C) 2001-2017 Free Software Foundation, Inc. # # This file 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. -# serial 5 +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# +# This file 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. # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) -# Just in case -sleep 1 -echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' @@ -805,32 +868,40 @@ esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) - AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac -# Do `set' in a subshell so we don't clobber the current shell's +# 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" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - rm -f conftest.file - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $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 - + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $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 + if test "$[2]" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done test "$[2]" = conftest.file ) then @@ -840,46 +911,118 @@ AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi -AC_MSG_RESULT(yes)]) +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file +]) -# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. +# Copyright (C) 2009-2017 Free Software Foundation, Inc. # # This file 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. -# serial 1 +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# ("yes" being less verbose, "no" or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [verbose build output (undo: "make V=0")])dnl +]) +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +dnl +dnl A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + +# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# +# This file 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. # AM_PROG_INSTALL_STRIP # --------------------- -# One issue with vendor `install' (even GNU) is that you can't +# One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in `make install-strip', and initialize +# always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc. +# Copyright (C) 2006-2017 Free Software Foundation, Inc. # # This file 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. -# serial 3 - # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. @@ -893,18 +1036,16 @@ # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc. +# Copyright (C) 2004-2017 Free Software Foundation, Inc. # # This file 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. -# serial 2 - # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. -# FORMAT should be one of `v7', `ustar', or `pax'. +# FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory @@ -914,76 +1055,114 @@ # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar +# AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) -m4_if([$1], [v7], - [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], - [m4_case([$1], [ustar],, [pax],, - [m4_fatal([Unknown tar format])]) -AC_MSG_CHECKING([how to create a $1 tar archive]) -# Loop over all known methods to create a tar archive until one works. + +# We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' -_am_tools=${am_cv_prog_tar_$1-$_am_tools} -# Do not fold the above two line into one, because Tru64 sh and -# Solaris sh will not grok spaces in the rhs of `-'. -for _am_tool in $_am_tools -do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; - do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], - # tar/untar a dummy directory, and stop if the command works - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + [m4_case([$1], + [ustar], + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) + if test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) + if test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi], + + [pax], + [], + + [m4_fatal([Unknown tar format])]) + + AC_MSG_CHECKING([how to create a $1 tar archive]) + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_$1-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi + done rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar /dev/null 2>&1 && break - fi -done -rm -rf conftest.dir -AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) -AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR diff -Nru gdb-8.1/bfd/aix386-core.c gdb-8.2/bfd/aix386-core.c --- gdb-8.1/bfd/aix386-core.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/aix386-core.c 2018-09-05 07:27:13.000000000 +0000 @@ -246,12 +246,24 @@ NO_GET, NO_GETS, NO_PUT, NO_GET, NO_GETS, NO_PUT, /* hdrs */ - {_bfd_dummy_target, _bfd_dummy_target, - _bfd_dummy_target, aix386_core_file_p}, - {bfd_false, bfd_false, /* bfd_create_object */ - bfd_false, bfd_false}, - {bfd_false, bfd_false, /* bfd_write_contents */ - bfd_false, bfd_false}, + { /* bfd_check_format */ + _bfd_dummy_target, + _bfd_dummy_target, + _bfd_dummy_target, + aix386_core_file_p + }, + { /* bfd_create_object */ + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents */ + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error + }, BFD_JUMP_TABLE_GENERIC (_bfd_generic), BFD_JUMP_TABLE_COPY (_bfd_generic), diff -Nru gdb-8.1/bfd/aout0.c gdb-8.2/bfd/aout0.c --- gdb-8.1/bfd/aout0.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/aout0.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ -/* BFD backend for SunOS style a.out with flags set to 0 - Copyright (C) 1990-2018 Free Software Foundation, Inc. - Written by Cygnus Support. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define TARGETNAME "a.out-zero-big" - -/* Do not "beautify" the CONCAT* macro args. Traditional C will not - remove whitespace added here, and thus will fail to concatenate - the tokens. */ -#define MY(OP) CONCAT2 (aout0_be_,OP) - -#include "sysdep.h" -#include "bfd.h" - -#define MY_exec_hdr_flags 0 - -#define MACHTYPE_OK(mtype) \ - ((mtype) == M_UNKNOWN || (mtype) == M_68010 || (mtype) == M_68020) - -/* Include the usual a.out support. */ -#include "aoutf1.h" diff -Nru gdb-8.1/bfd/aout-adobe.c gdb-8.2/bfd/aout-adobe.c --- gdb-8.1/bfd/aout-adobe.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/aout-adobe.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,523 +0,0 @@ -/* BFD back-end for a.out.adobe binaries. - Copyright (C) 1990-2018 Free Software Foundation, Inc. - Written by Cygnus Support. Based on bout.c. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "aout/adobe.h" -#include "aout/stab_gnu.h" -#include "libaout.h" /* BFD a.out internal data structures. */ - -/* Forward decl. */ -extern const bfd_target aout_adobe_vec; - -/* Swaps the information in an executable header taken from a raw byte - stream memory image, into the internal exec_header structure. */ - -static void -aout_adobe_swap_exec_header_in (bfd *abfd, - struct external_exec *bytes, - struct internal_exec *execp) -{ - /* Now fill in fields in the execp, from the bytes in the raw data. */ - execp->a_info = H_GET_32 (abfd, bytes->e_info); - execp->a_text = GET_WORD (abfd, bytes->e_text); - execp->a_data = GET_WORD (abfd, bytes->e_data); - execp->a_bss = GET_WORD (abfd, bytes->e_bss); - execp->a_syms = GET_WORD (abfd, bytes->e_syms); - execp->a_entry = GET_WORD (abfd, bytes->e_entry); - execp->a_trsize = GET_WORD (abfd, bytes->e_trsize); - execp->a_drsize = GET_WORD (abfd, bytes->e_drsize); -} - -/* Swaps the information in an internal exec header structure into the - supplied buffer ready for writing to disk. */ - -static void -aout_adobe_swap_exec_header_out (bfd *abfd, - struct internal_exec *execp, - struct external_exec *bytes) -{ - /* Now fill in fields in the raw data, from the fields in the exec - struct. */ - H_PUT_32 (abfd, execp->a_info , bytes->e_info); - PUT_WORD (abfd, execp->a_text , bytes->e_text); - PUT_WORD (abfd, execp->a_data , bytes->e_data); - PUT_WORD (abfd, execp->a_bss , bytes->e_bss); - PUT_WORD (abfd, execp->a_syms , bytes->e_syms); - PUT_WORD (abfd, execp->a_entry , bytes->e_entry); - PUT_WORD (abfd, execp->a_trsize, bytes->e_trsize); - PUT_WORD (abfd, execp->a_drsize, bytes->e_drsize); -} - -/* Finish up the opening of a b.out file for reading. Fill in all the - fields that are not handled by common code. */ - -static const bfd_target * -aout_adobe_callback (bfd *abfd) -{ - struct internal_exec *execp = exec_hdr (abfd); - asection *sect; - struct external_segdesc ext[1]; - char *section_name; - char try_again[30]; /* Name and number. */ - char *newname; - int trynum; - flagword flags; - - /* Architecture and machine type -- unknown in this format. */ - bfd_set_arch_mach (abfd, bfd_arch_unknown, 0L); - - /* The positions of the string table and symbol table. */ - obj_str_filepos (abfd) = N_STROFF (execp); - obj_sym_filepos (abfd) = N_SYMOFF (execp); - - /* Suck up the section information from the file, one section at a time. */ - for (;;) - { - bfd_size_type amt = sizeof (*ext); - if (bfd_bread ( ext, amt, abfd) != amt) - { - if (bfd_get_error () != bfd_error_system_call) - bfd_set_error (bfd_error_wrong_format); - - return NULL; - } - switch (ext->e_type[0]) - { - case N_TEXT: - section_name = ".text"; - flags = SEC_CODE | SEC_LOAD | SEC_ALLOC | SEC_HAS_CONTENTS; - break; - - case N_DATA: - section_name = ".data"; - flags = SEC_DATA | SEC_LOAD | SEC_ALLOC | SEC_HAS_CONTENTS; - break; - - case N_BSS: - section_name = ".bss"; - flags = SEC_DATA | SEC_HAS_CONTENTS; - break; - - case 0: - goto no_more_sections; - - default: - _bfd_error_handler - /* xgettext:c-format */ - (_("%B: Unknown section type in a.out.adobe file: %x\n"), - abfd, ext->e_type[0]); - goto no_more_sections; - } - - /* First one is called ".text" or whatever; subsequent ones are - ".text1", ".text2", ... */ - bfd_set_error (bfd_error_no_error); - sect = bfd_make_section_with_flags (abfd, section_name, flags); - trynum = 0; - - while (!sect) - { - if (bfd_get_error () != bfd_error_no_error) - /* Some other error -- slide into the sunset. */ - return NULL; - sprintf (try_again, "%s%d", section_name, ++trynum); - sect = bfd_make_section_with_flags (abfd, try_again, flags); - } - - /* Fix the name, if it is a sprintf'd name. */ - if (sect->name == try_again) - { - amt = strlen (sect->name); - newname = bfd_zalloc (abfd, amt); - if (newname == NULL) - return NULL; - strcpy (newname, sect->name); - sect->name = newname; - } - - /* Assumed big-endian. */ - sect->size = ((ext->e_size[0] << 8) - | ext->e_size[1] << 8 - | ext->e_size[2]); - sect->vma = H_GET_32 (abfd, ext->e_virtbase); - sect->filepos = H_GET_32 (abfd, ext->e_filebase); - /* FIXME XXX alignment? */ - - /* Set relocation information for first section of each type. */ - if (trynum == 0) - switch (ext->e_type[0]) - { - case N_TEXT: - sect->rel_filepos = N_TRELOFF (execp); - sect->reloc_count = execp->a_trsize; - break; - - case N_DATA: - sect->rel_filepos = N_DRELOFF (execp); - sect->reloc_count = execp->a_drsize; - break; - - default: - break; - } - } - no_more_sections: - - adata (abfd).reloc_entry_size = sizeof (struct reloc_std_external); - adata (abfd).symbol_entry_size = sizeof (struct external_nlist); - adata (abfd).page_size = 1; /* Not applicable. */ - adata (abfd).segment_size = 1; /* Not applicable. */ - adata (abfd).exec_bytes_size = EXEC_BYTES_SIZE; - - return abfd->xvec; -} - -static const bfd_target * -aout_adobe_object_p (bfd *abfd) -{ - struct internal_exec anexec; - struct external_exec exec_bytes; - char *targ; - bfd_size_type amt = EXEC_BYTES_SIZE; - - if (bfd_bread (& exec_bytes, amt, abfd) != amt) - { - if (bfd_get_error () != bfd_error_system_call) - bfd_set_error (bfd_error_wrong_format); - return NULL; - } - - anexec.a_info = H_GET_32 (abfd, exec_bytes.e_info); - - /* Normally we just compare for the magic number. - However, a bunch of Adobe tools aren't fixed up yet; they generate - files using ZMAGIC(!). - If the environment variable GNUTARGET is set to "a.out.adobe", we will - take just about any a.out file as an Adobe a.out file. FIXME! */ - - if (N_BADMAG (&anexec)) - { - targ = getenv ("GNUTARGET"); - if (targ && !strcmp (targ, aout_adobe_vec.name)) - /* Just continue anyway, if specifically set to this format. */ - ; - else - { - bfd_set_error (bfd_error_wrong_format); - return NULL; - } - } - - aout_adobe_swap_exec_header_in (abfd, &exec_bytes, &anexec); - return aout_32_some_aout_object_p (abfd, &anexec, aout_adobe_callback); -} - -struct bout_data_struct -{ - struct aoutdata a; - struct internal_exec e; -}; - -static bfd_boolean -aout_adobe_mkobject (bfd *abfd) -{ - struct bout_data_struct *rawptr; - bfd_size_type amt = sizeof (struct bout_data_struct); - - rawptr = bfd_zalloc (abfd, amt); - if (rawptr == NULL) - return FALSE; - - abfd->tdata.bout_data = rawptr; - exec_hdr (abfd) = &rawptr->e; - - adata (abfd).reloc_entry_size = sizeof (struct reloc_std_external); - adata (abfd).symbol_entry_size = sizeof (struct external_nlist); - adata (abfd).page_size = 1; /* Not applicable. */ - adata (abfd).segment_size = 1; /* Not applicable. */ - adata (abfd).exec_bytes_size = EXEC_BYTES_SIZE; - - return TRUE; -} - -static void -aout_adobe_write_section (bfd *abfd ATTRIBUTE_UNUSED, - sec_ptr sect ATTRIBUTE_UNUSED) -{ - /* FIXME XXX. */ -} - -static bfd_boolean -aout_adobe_write_object_contents (bfd *abfd) -{ - struct external_exec swapped_hdr; - static struct external_segdesc sentinel[1]; /* Initialized to zero. */ - asection *sect; - bfd_size_type amt; - - exec_hdr (abfd)->a_info = ZMAGIC; - - /* Calculate text size as total of text sections, etc. */ - exec_hdr (abfd)->a_text = 0; - exec_hdr (abfd)->a_data = 0; - exec_hdr (abfd)->a_bss = 0; - exec_hdr (abfd)->a_trsize = 0; - exec_hdr (abfd)->a_drsize = 0; - - for (sect = abfd->sections; sect; sect = sect->next) - { - if (sect->flags & SEC_CODE) - { - exec_hdr (abfd)->a_text += sect->size; - exec_hdr (abfd)->a_trsize += sect->reloc_count * - sizeof (struct reloc_std_external); - } - else if (sect->flags & SEC_DATA) - { - exec_hdr (abfd)->a_data += sect->size; - exec_hdr (abfd)->a_drsize += sect->reloc_count * - sizeof (struct reloc_std_external); - } - else if (sect->flags & SEC_ALLOC && !(sect->flags & SEC_LOAD)) - exec_hdr (abfd)->a_bss += sect->size; - } - - exec_hdr (abfd)->a_syms = bfd_get_symcount (abfd) - * sizeof (struct external_nlist); - exec_hdr (abfd)->a_entry = bfd_get_start_address (abfd); - - aout_adobe_swap_exec_header_out (abfd, exec_hdr (abfd), &swapped_hdr); - - amt = EXEC_BYTES_SIZE; - if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0 - || bfd_bwrite (& swapped_hdr, amt, abfd) != amt) - return FALSE; - - /* Now write out the section information. Text first, data next, rest - afterward. */ - for (sect = abfd->sections; sect; sect = sect->next) - if (sect->flags & SEC_CODE) - aout_adobe_write_section (abfd, sect); - - for (sect = abfd->sections; sect; sect = sect->next) - if (sect->flags & SEC_DATA) - aout_adobe_write_section (abfd, sect); - - for (sect = abfd->sections; sect; sect = sect->next) - if (!(sect->flags & (SEC_CODE | SEC_DATA))) - aout_adobe_write_section (abfd, sect); - - /* Write final `sentinel` section header (with type of 0). */ - amt = sizeof (*sentinel); - if (bfd_bwrite (sentinel, amt, abfd) != amt) - return FALSE; - - /* Now write out reloc info, followed by syms and strings. */ - if (bfd_get_symcount (abfd) != 0) - { - if (bfd_seek (abfd, (file_ptr) (N_SYMOFF (exec_hdr (abfd))), SEEK_SET) - != 0) - return FALSE; - - if (! aout_32_write_syms (abfd)) - return FALSE; - - if (bfd_seek (abfd, (file_ptr) (N_TRELOFF (exec_hdr (abfd))), SEEK_SET) - != 0) - return FALSE; - - for (sect = abfd->sections; sect; sect = sect->next) - if (sect->flags & SEC_CODE) - if (!aout_32_squirt_out_relocs (abfd, sect)) - return FALSE; - - if (bfd_seek (abfd, (file_ptr) (N_DRELOFF (exec_hdr (abfd))), SEEK_SET) - != 0) - return FALSE; - - for (sect = abfd->sections; sect; sect = sect->next) - if (sect->flags & SEC_DATA) - if (!aout_32_squirt_out_relocs (abfd, sect)) - return FALSE; - } - - return TRUE; -} - -static bfd_boolean -aout_adobe_set_section_contents (bfd *abfd, - asection *section, - const void * location, - file_ptr offset, - bfd_size_type count) -{ - file_ptr section_start; - sec_ptr sect; - - /* Set by bfd.c handler. */ - if (! abfd->output_has_begun) - { - /* Assign file offsets to sections. Text sections are first, and - are contiguous. Then data sections. Everything else at the end. */ - section_start = N_TXTOFF (0); - - for (sect = abfd->sections; sect; sect = sect->next) - { - if (sect->flags & SEC_CODE) - { - sect->filepos = section_start; - /* FIXME: Round to alignment. */ - section_start += sect->size; - } - } - - for (sect = abfd->sections; sect; sect = sect->next) - { - if (sect->flags & SEC_DATA) - { - sect->filepos = section_start; - /* FIXME: Round to alignment. */ - section_start += sect->size; - } - } - - for (sect = abfd->sections; sect; sect = sect->next) - { - if (sect->flags & SEC_HAS_CONTENTS && - !(sect->flags & (SEC_CODE | SEC_DATA))) - { - sect->filepos = section_start; - /* FIXME: Round to alignment. */ - section_start += sect->size; - } - } - } - - /* Regardless, once we know what we're doing, we might as well get - going. */ - if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0) - return FALSE; - - if (count == 0) - return TRUE; - - return bfd_bwrite (location, count, abfd) == count; -} - -static bfd_boolean -aout_adobe_set_arch_mach (bfd *abfd, - enum bfd_architecture arch, - unsigned long machine) -{ - if (! bfd_default_set_arch_mach (abfd, arch, machine)) - return FALSE; - - if (arch == bfd_arch_unknown - || arch == bfd_arch_m68k) - return TRUE; - - return FALSE; -} - -static int -aout_adobe_sizeof_headers (bfd *ignore_abfd ATTRIBUTE_UNUSED, - struct bfd_link_info *info ATTRIBUTE_UNUSED) -{ - return sizeof (struct internal_exec); -} - -/* Build the transfer vector for Adobe A.Out files. */ - -#define aout_32_find_line _bfd_nosymbols_find_line -#define aout_32_get_symbol_version_string _bfd_nosymbols_get_symbol_version_string -#define aout_32_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol -#define aout_32_bfd_reloc_type_lookup _bfd_norelocs_bfd_reloc_type_lookup -#define aout_32_bfd_reloc_name_lookup _bfd_norelocs_bfd_reloc_name_lookup -#define aout_32_close_and_cleanup aout_32_bfd_free_cached_info -#define aout_32_set_arch_mach aout_adobe_set_arch_mach -#define aout_32_set_section_contents aout_adobe_set_section_contents -#define aout_32_sizeof_headers aout_adobe_sizeof_headers -#define aout_32_bfd_get_relocated_section_contents bfd_generic_get_relocated_section_contents -#define aout_32_get_section_contents_in_window _bfd_generic_get_section_contents_in_window -#define aout_32_bfd_relax_section bfd_generic_relax_section -#define aout_32_bfd_gc_sections bfd_generic_gc_sections -#define aout_32_bfd_lookup_section_flags bfd_generic_lookup_section_flags -#define aout_32_bfd_merge_sections bfd_generic_merge_sections -#define aout_32_bfd_is_group_section bfd_generic_is_group_section -#define aout_32_bfd_discard_group bfd_generic_discard_group -#define aout_32_section_already_linked _bfd_generic_section_already_linked -#define aout_32_bfd_define_common_symbol bfd_generic_define_common_symbol -#define aout_32_bfd_define_start_stop bfd_generic_define_start_stop -#define aout_32_bfd_link_hash_table_create _bfd_generic_link_hash_table_create -#define aout_32_bfd_link_add_symbols _bfd_generic_link_add_symbols -#define aout_32_bfd_link_just_syms _bfd_generic_link_just_syms -#define aout_32_bfd_copy_link_hash_symbol_type \ - _bfd_generic_copy_link_hash_symbol_type -#define aout_32_bfd_final_link _bfd_generic_final_link -#define aout_32_bfd_link_split_section _bfd_generic_link_split_section -#define aout_32_bfd_link_check_relocs _bfd_generic_link_check_relocs -#define aout_32_set_reloc _bfd_generic_set_reloc - -const bfd_target aout_adobe_vec = -{ - "a.out.adobe", /* Name. */ - bfd_target_aout_flavour, - BFD_ENDIAN_BIG, /* Data byte order is unknown (big assumed). */ - BFD_ENDIAN_BIG, /* Header byte order is big. */ - (HAS_RELOC | EXEC_P | /* Object flags. */ - HAS_LINENO | HAS_DEBUG | - HAS_SYMS | HAS_LOCALS | WP_TEXT ), - /* section flags */ - (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_CODE | SEC_DATA | SEC_RELOC), - '_', /* Symbol leading char. */ - ' ', /* AR_pad_char. */ - 16, /* AR_max_namelen. */ - 0, /* match priority. */ - - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* Data. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* Headers. */ - - {_bfd_dummy_target, aout_adobe_object_p, /* bfd_check_format. */ - bfd_generic_archive_p, _bfd_dummy_target}, - {bfd_false, aout_adobe_mkobject, /* bfd_set_format. */ - _bfd_generic_mkarchive, bfd_false}, - {bfd_false, aout_adobe_write_object_contents,/* bfd_write_contents. */ - _bfd_write_archive_contents, bfd_false}, - - BFD_JUMP_TABLE_GENERIC (aout_32), - BFD_JUMP_TABLE_COPY (_bfd_generic), - BFD_JUMP_TABLE_CORE (_bfd_nocore), - BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_bsd), - BFD_JUMP_TABLE_SYMBOLS (aout_32), - BFD_JUMP_TABLE_RELOCS (aout_32), - BFD_JUMP_TABLE_WRITE (aout_32), - BFD_JUMP_TABLE_LINK (aout_32), - BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), - - NULL, - - NULL -}; diff -Nru gdb-8.1/bfd/aout-arm.c gdb-8.2/bfd/aout-arm.c --- gdb-8.1/bfd/aout-arm.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/aout-arm.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,548 +0,0 @@ -/* BFD back-end for raw ARM a.out binaries. - Copyright (C) 1994-2018 Free Software Foundation, Inc. - Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org) - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" - -/* Avoid multiple definitions from aoutx if supporting standard a.out - as well as our own. */ -/* Do not "beautify" the CONCAT* macro args. Traditional C will not - remove whitespace added here, and thus will fail to concatenate - the tokens. */ -#define NAME(x,y) CONCAT3 (aoutarm,_32_,y) - -#define N_TXTADDR(x) \ - ((N_MAGIC (x) == NMAGIC) \ - ? (bfd_vma) 0x8000 \ - : ((N_MAGIC (x) != ZMAGIC) \ - ? (bfd_vma) 0 \ - : ((N_SHARED_LIB (x)) \ - ? ((x)->a_entry & ~(bfd_vma) (TARGET_PAGE_SIZE - 1)) \ - : (bfd_vma) TEXT_START_ADDR))) - -#define TEXT_START_ADDR 0x8000 -#define TARGET_PAGE_SIZE 0x8000 -#define SEGMENT_SIZE TARGET_PAGE_SIZE -#define DEFAULT_ARCH bfd_arch_arm - -#define MY(OP) CONCAT2 (arm_aout_,OP) -#define N_BADMAG(x) ((((x)->a_info & ~007200) != ZMAGIC) && \ - (((x)->a_info & ~006000) != OMAGIC) && \ - ((x)->a_info != NMAGIC)) -#define N_MAGIC(x) ((x)->a_info & ~07200) - -#define MY_bfd_reloc_type_lookup arm_aout_bfd_reloc_type_lookup -#define MY_bfd_reloc_name_lookup arm_aout_bfd_reloc_name_lookup - -#include "libaout.h" -#include "aout/aout64.h" - - -static bfd_reloc_status_type - MY (fix_pcrel_26) (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); -static bfd_reloc_status_type - MY (fix_pcrel_26_done) (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); - -reloc_howto_type MY (howto_table)[] = -{ - /* Type rs size bsz pcrel bitpos ovrf sf name part_inpl - readmask setmask pcdone. */ - HOWTO (0, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, 0, "8", TRUE, - 0x000000ff, 0x000000ff, FALSE), - HOWTO (1, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, 0, "16", TRUE, - 0x0000ffff, 0x0000ffff, FALSE), - HOWTO (2, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, 0, "32", TRUE, - 0xffffffff, 0xffffffff, FALSE), - HOWTO (3, 2, 2, 26, TRUE, 0, complain_overflow_signed, MY (fix_pcrel_26), - "ARM26", TRUE, 0x00ffffff, 0x00ffffff, TRUE), - HOWTO (4, 0, 0, 8, TRUE, 0, complain_overflow_signed, 0, "DISP8", TRUE, - 0x000000ff, 0x000000ff, TRUE), - HOWTO (5, 0, 1, 16, TRUE, 0, complain_overflow_signed, 0, "DISP16", TRUE, - 0x0000ffff, 0x0000ffff, TRUE), - HOWTO (6, 0, 2, 32, TRUE, 0, complain_overflow_signed, 0, "DISP32", TRUE, - 0xffffffff, 0xffffffff, TRUE), - HOWTO (7, 2, 2, 26, FALSE, 0, complain_overflow_signed, - MY (fix_pcrel_26_done), "ARM26D", TRUE, 0x0, 0x0, - FALSE), - EMPTY_HOWTO (-1), - HOWTO (9, 0, -1, 16, FALSE, 0, complain_overflow_bitfield, 0, "NEG16", TRUE, - 0x0000ffff, 0x0000ffff, FALSE), - HOWTO (10, 0, -2, 32, FALSE, 0, complain_overflow_bitfield, 0, "NEG32", TRUE, - 0xffffffff, 0xffffffff, FALSE) -}; - -#define RELOC_ARM_BITS_NEG_BIG ((unsigned int) 0x08) -#define RELOC_ARM_BITS_NEG_LITTLE ((unsigned int) 0x10) - -static reloc_howto_type * -MY (reloc_howto) (bfd *abfd, - struct reloc_std_external *rel, - int *r_index, - int *r_extern, - int *r_pcrel) -{ - unsigned int r_length; - unsigned int r_pcrel_done; - unsigned int r_neg; - int howto_index; - - *r_pcrel = 0; - if (bfd_header_big_endian (abfd)) - { - *r_index = ((rel->r_index[0] << 16) - | (rel->r_index[1] << 8) - | rel->r_index[2]); - *r_extern = (0 != (rel->r_type[0] & RELOC_STD_BITS_EXTERN_BIG)); - r_pcrel_done = (0 != (rel->r_type[0] & RELOC_STD_BITS_PCREL_BIG)); - r_neg = (0 != (rel->r_type[0] & RELOC_ARM_BITS_NEG_BIG)); - r_length = ((rel->r_type[0] & RELOC_STD_BITS_LENGTH_BIG) - >> RELOC_STD_BITS_LENGTH_SH_BIG); - } - else - { - *r_index = ((rel->r_index[2] << 16) - | (rel->r_index[1] << 8) - | rel->r_index[0]); - *r_extern = (0 != (rel->r_type[0] & RELOC_STD_BITS_EXTERN_LITTLE)); - r_pcrel_done = (0 != (rel->r_type[0] & RELOC_STD_BITS_PCREL_LITTLE)); - r_neg = (0 != (rel->r_type[0] & RELOC_ARM_BITS_NEG_LITTLE)); - r_length = ((rel->r_type[0] & RELOC_STD_BITS_LENGTH_LITTLE) - >> RELOC_STD_BITS_LENGTH_SH_LITTLE); - } - howto_index = r_length + 4 * r_pcrel_done + 8 * r_neg; - if (howto_index == 3) - *r_pcrel = 1; - - return MY (howto_table) + howto_index; -} - -#define MY_reloc_howto(BFD, REL, IN, EX, PC) \ - MY (reloc_howto) (BFD, REL, &IN, &EX, &PC) - -static void -MY (put_reloc) (bfd *abfd, - int r_extern, - int r_index, - bfd_vma value, - reloc_howto_type *howto, - struct reloc_std_external *reloc) -{ - unsigned int r_length; - int r_pcrel; - int r_neg; - - PUT_WORD (abfd, value, reloc->r_address); - /* Size as a power of two. */ - r_length = howto->size; - - /* Special case for branch relocations. */ - if (howto->type == 3 || howto->type == 7) - r_length = 3; - - r_pcrel = howto->type & 4; /* PC Relative done? */ - r_neg = howto->type & 8; /* Negative relocation. */ - - if (bfd_header_big_endian (abfd)) - { - reloc->r_index[0] = r_index >> 16; - reloc->r_index[1] = r_index >> 8; - reloc->r_index[2] = r_index; - reloc->r_type[0] = - ((r_extern ? RELOC_STD_BITS_EXTERN_BIG : 0) - | (r_pcrel ? RELOC_STD_BITS_PCREL_BIG : 0) - | (r_neg ? RELOC_ARM_BITS_NEG_BIG : 0) - | (r_length << RELOC_STD_BITS_LENGTH_SH_BIG)); - } - else - { - reloc->r_index[2] = r_index >> 16; - reloc->r_index[1] = r_index >> 8; - reloc->r_index[0] = r_index; - reloc->r_type[0] = - ((r_extern ? RELOC_STD_BITS_EXTERN_LITTLE : 0) - | (r_pcrel ? RELOC_STD_BITS_PCREL_LITTLE : 0) - | (r_neg ? RELOC_ARM_BITS_NEG_LITTLE : 0) - | (r_length << RELOC_STD_BITS_LENGTH_SH_LITTLE)); - } -} - -#define MY_put_reloc(BFD, EXT, IDX, VAL, HOWTO, RELOC) \ - MY (put_reloc) (BFD, EXT, IDX, VAL, HOWTO, RELOC) - -static void -MY (relocatable_reloc) (reloc_howto_type *howto, - bfd *abfd, - struct reloc_std_external *reloc, - bfd_vma *amount, - bfd_vma r_addr) -{ - if (howto->type == 3) - { - if (reloc->r_type[0] - & (bfd_header_big_endian (abfd) - ? RELOC_STD_BITS_EXTERN_BIG : RELOC_STD_BITS_EXTERN_LITTLE)) - /* The reloc is still external, so don't modify anything. */ - *amount = 0; - else - { - *amount -= r_addr; - /* Change the r_pcrel value -- on the ARM, this bit is set once the - relocation is done. */ - if (bfd_header_big_endian (abfd)) - reloc->r_type[0] |= RELOC_STD_BITS_PCREL_BIG; - else - reloc->r_type[0] |= RELOC_STD_BITS_PCREL_LITTLE; - } - } - else if (howto->type == 7) - *amount = 0; -} - -#define MY_relocatable_reloc(HOW, BFD, REL, AMOUNT, ADDR) \ - MY (relocatable_reloc) (HOW, BFD, REL, &(AMOUNT), ADDR) - -static bfd_reloc_status_type -MY (fix_pcrel_26_done) (bfd *abfd ATTRIBUTE_UNUSED, - arelent *reloc_entry ATTRIBUTE_UNUSED, - asymbol *symbol ATTRIBUTE_UNUSED, - void * data ATTRIBUTE_UNUSED, - asection *input_section ATTRIBUTE_UNUSED, - bfd *output_bfd ATTRIBUTE_UNUSED, - char **error_message ATTRIBUTE_UNUSED) -{ - /* This is dead simple at present. */ - return bfd_reloc_ok; -} - -static bfd_reloc_status_type -MY (fix_pcrel_26) (bfd *abfd, - arelent *reloc_entry, - asymbol *symbol, - void * data, - asection *input_section, - bfd *output_bfd, - char **error_message ATTRIBUTE_UNUSED) -{ - bfd_vma relocation; - bfd_size_type addr = reloc_entry->address; - bfd_vma target = bfd_get_32 (abfd, (bfd_byte *) data + addr); - bfd_reloc_status_type flag = bfd_reloc_ok; - - /* If this is an undefined symbol, return error. */ - if (bfd_is_und_section (symbol->section) - && (symbol->flags & BSF_WEAK) == 0) - return output_bfd ? bfd_reloc_ok : bfd_reloc_undefined; - - /* If the sections are different, and we are doing a partial relocation, - just ignore it for now. */ - if (symbol->section->name != input_section->name - && output_bfd != NULL) - return bfd_reloc_ok; - - relocation = (target & 0x00ffffff) << 2; - relocation = (relocation ^ 0x02000000) - 0x02000000; /* Sign extend. */ - relocation += symbol->value; - relocation += symbol->section->output_section->vma; - relocation += symbol->section->output_offset; - relocation += reloc_entry->addend; - relocation -= input_section->output_section->vma; - relocation -= input_section->output_offset; - relocation -= addr; - if (relocation & 3) - return bfd_reloc_overflow; - - /* Check for overflow. */ - if (relocation & 0x02000000) - { - if ((relocation & ~ (bfd_vma) 0x03ffffff) != ~ (bfd_vma) 0x03ffffff) - flag = bfd_reloc_overflow; - } - else if (relocation & ~ (bfd_vma) 0x03ffffff) - flag = bfd_reloc_overflow; - - target &= ~ (bfd_vma) 0x00ffffff; - target |= (relocation >> 2) & 0x00ffffff; - bfd_put_32 (abfd, target, (bfd_byte *) data + addr); - - /* Now the ARM magic... Change the reloc type so that it is marked as done. - Strictly this is only necessary if we are doing a partial relocation. */ - reloc_entry->howto = &MY (howto_table)[7]; - - return flag; -} - -static reloc_howto_type * -MY (bfd_reloc_type_lookup) (bfd *abfd, - bfd_reloc_code_real_type code) -{ -#define ASTD(i,j) case i: return & MY (howto_table)[j] - - if (code == BFD_RELOC_CTOR) - switch (bfd_arch_bits_per_address (abfd)) - { - case 32: - code = BFD_RELOC_32; - break; - default: - return NULL; - } - - switch (code) - { - ASTD (BFD_RELOC_16, 1); - ASTD (BFD_RELOC_32, 2); - ASTD (BFD_RELOC_ARM_PCREL_BRANCH, 3); - ASTD (BFD_RELOC_8_PCREL, 4); - ASTD (BFD_RELOC_16_PCREL, 5); - ASTD (BFD_RELOC_32_PCREL, 6); - default: - return NULL; - } -} - -static reloc_howto_type * -MY (bfd_reloc_name_lookup) (bfd *abfd ATTRIBUTE_UNUSED, - const char *r_name) -{ - unsigned int i; - - for (i = 0; - i < sizeof (MY (howto_table)) / sizeof (MY (howto_table)[0]); - i++) - if (MY (howto_table)[i].name != NULL - && strcasecmp (MY (howto_table)[i].name, r_name) == 0) - return &MY (howto_table)[i]; - - return NULL; -} - -#define MY_swap_std_reloc_in MY (swap_std_reloc_in) -#define MY_swap_std_reloc_out MY (swap_std_reloc_out) -#define MY_get_section_contents _bfd_generic_get_section_contents - -void MY_swap_std_reloc_in (bfd *, struct reloc_std_external *, arelent *, asymbol **, bfd_size_type); -void MY_swap_std_reloc_out (bfd *, arelent *, struct reloc_std_external *); - -#include "aoutx.h" - -void -MY_swap_std_reloc_in (bfd *abfd, - struct reloc_std_external *bytes, - arelent *cache_ptr, - asymbol **symbols, - bfd_size_type symcount ATTRIBUTE_UNUSED) -{ - int r_index; - int r_extern; - int r_pcrel; - struct aoutdata *su = &(abfd->tdata.aout_data->a); - - cache_ptr->address = H_GET_32 (abfd, bytes->r_address); - - cache_ptr->howto = MY_reloc_howto (abfd, bytes, r_index, r_extern, r_pcrel); - - MOVE_ADDRESS (0); -} - -void -MY_swap_std_reloc_out (bfd *abfd, - arelent *g, - struct reloc_std_external *natptr) -{ - int r_index; - asymbol *sym = *(g->sym_ptr_ptr); - int r_extern; - int r_length; - int r_pcrel; - int r_neg = 0; /* Negative relocs use the BASEREL bit. */ - asection *output_section = sym->section->output_section; - - PUT_WORD (abfd, g->address, natptr->r_address); - - r_length = g->howto->size ; /* Size as a power of two. */ - if (r_length < 0) - { - r_length = -r_length; - r_neg = 1; - } - - r_pcrel = (int) g->howto->pc_relative; /* Relative to PC? */ - - /* For RISC iX, in pc-relative relocs the r_pcrel bit means that the - relocation has been done already (Only for the 26-bit one I think). */ - if (g->howto->type == 3) - { - r_length = 3; - r_pcrel = 0; - } - else if (g->howto->type == 7) - { - r_length = 3; - r_pcrel = 1; - } - - /* Name was clobbered by aout_write_syms to be symbol index. */ - - /* If this relocation is relative to a symbol then set the - r_index to the symbols index, and the r_extern bit. - - Absolute symbols can come in in two ways, either as an offset - from the abs section, or as a symbol which has an abs value. - check for that here. */ - - if (bfd_is_com_section (output_section) - || bfd_is_abs_section (output_section) - || bfd_is_und_section (output_section)) - { - if (bfd_abs_section_ptr->symbol == sym) - { - /* Whoops, looked like an abs symbol, but is really an offset - from the abs section. */ - r_index = 0; - r_extern = 0; - } - else - { - /* Fill in symbol. */ - r_extern = 1; - r_index = (*(g->sym_ptr_ptr))->KEEPIT; - } - } - else - { - /* Just an ordinary section. */ - r_extern = 0; - r_index = output_section->target_index; - } - - /* Now the fun stuff. */ - if (bfd_header_big_endian (abfd)) - { - natptr->r_index[0] = r_index >> 16; - natptr->r_index[1] = r_index >> 8; - natptr->r_index[2] = r_index; - natptr->r_type[0] = - ( (r_extern ? RELOC_STD_BITS_EXTERN_BIG: 0) - | (r_pcrel ? RELOC_STD_BITS_PCREL_BIG: 0) - | (r_neg ? RELOC_ARM_BITS_NEG_BIG: 0) - | (r_length << RELOC_STD_BITS_LENGTH_SH_BIG)); - } - else - { - natptr->r_index[2] = r_index >> 16; - natptr->r_index[1] = r_index >> 8; - natptr->r_index[0] = r_index; - natptr->r_type[0] = - ( (r_extern ? RELOC_STD_BITS_EXTERN_LITTLE: 0) - | (r_pcrel ? RELOC_STD_BITS_PCREL_LITTLE: 0) - | (r_neg ? RELOC_ARM_BITS_NEG_LITTLE: 0) - | (r_length << RELOC_STD_BITS_LENGTH_SH_LITTLE)); - } -} - -#define MY_BFD_TARGET - -#include "aout-target.h" - -extern const bfd_target arm_aout_be_vec; - -const bfd_target arm_aout_le_vec = -{ - "a.out-arm-little", /* Name. */ - bfd_target_aout_flavour, - BFD_ENDIAN_LITTLE, /* Target byte order (little). */ - BFD_ENDIAN_LITTLE, /* Target headers byte order (little). */ - (HAS_RELOC | EXEC_P | /* Object flags. */ - HAS_LINENO | HAS_DEBUG | - HAS_SYMS | HAS_LOCALS | DYNAMIC | WP_TEXT | D_PAGED), - (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_CODE | SEC_DATA), - MY_symbol_leading_char, - AR_PAD_CHAR, /* AR_pad_char. */ - 15, /* AR_max_namelen. */ - 0, /* match priority. */ - 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, /* Headers. */ - {_bfd_dummy_target, MY_object_p, /* bfd_check_format. */ - bfd_generic_archive_p, MY_core_file_p}, - {bfd_false, MY_mkobject, /* bfd_set_format. */ - _bfd_generic_mkarchive, bfd_false}, - {bfd_false, MY_write_object_contents, /* bfd_write_contents. */ - _bfd_write_archive_contents, bfd_false}, - - BFD_JUMP_TABLE_GENERIC (MY), - BFD_JUMP_TABLE_COPY (MY), - BFD_JUMP_TABLE_CORE (MY), - BFD_JUMP_TABLE_ARCHIVE (MY), - BFD_JUMP_TABLE_SYMBOLS (MY), - BFD_JUMP_TABLE_RELOCS (MY), - BFD_JUMP_TABLE_WRITE (MY), - BFD_JUMP_TABLE_LINK (MY), - BFD_JUMP_TABLE_DYNAMIC (MY), - - & arm_aout_be_vec, - - (void *) MY_backend_data, -}; - -const bfd_target arm_aout_be_vec = -{ - "a.out-arm-big", /* Name. */ - bfd_target_aout_flavour, - BFD_ENDIAN_BIG, /* Target byte order (big). */ - BFD_ENDIAN_BIG, /* Target headers byte order (big). */ - (HAS_RELOC | EXEC_P | /* Object flags. */ - HAS_LINENO | HAS_DEBUG | - HAS_SYMS | HAS_LOCALS | DYNAMIC | WP_TEXT | D_PAGED), - (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_CODE | SEC_DATA), - MY_symbol_leading_char, - AR_PAD_CHAR, /* AR_pad_char. */ - 15, /* AR_max_namelen. */ - 0, /* match priority. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* Data. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* Headers. */ - {_bfd_dummy_target, MY_object_p, /* bfd_check_format. */ - bfd_generic_archive_p, MY_core_file_p}, - {bfd_false, MY_mkobject, /* bfd_set_format. */ - _bfd_generic_mkarchive, bfd_false}, - {bfd_false, MY_write_object_contents, /* bfd_write_contents. */ - _bfd_write_archive_contents, bfd_false}, - - BFD_JUMP_TABLE_GENERIC (MY), - BFD_JUMP_TABLE_COPY (MY), - BFD_JUMP_TABLE_CORE (MY), - BFD_JUMP_TABLE_ARCHIVE (MY), - BFD_JUMP_TABLE_SYMBOLS (MY), - BFD_JUMP_TABLE_RELOCS (MY), - BFD_JUMP_TABLE_WRITE (MY), - BFD_JUMP_TABLE_LINK (MY), - BFD_JUMP_TABLE_DYNAMIC (MY), - - & arm_aout_le_vec, - - (void *) MY_backend_data, -}; diff -Nru gdb-8.1/bfd/aout-cris.c gdb-8.2/bfd/aout-cris.c --- gdb-8.1/bfd/aout-cris.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/aout-cris.c 2018-09-05 07:27:13.000000000 +0000 @@ -197,7 +197,7 @@ if (r_type > 2) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: Invalid relocation type exported: %d"), + _bfd_error_handler (_("%pB: unsupported relocation type exported: %#x"), abfd, r_type); bfd_set_error (bfd_error_wrong_format); @@ -241,7 +241,7 @@ if (r_type > 2) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: Invalid relocation type imported: %d"), + _bfd_error_handler (_("%pB: unsupported relocation type imported: %#x"), abfd, r_type); bfd_set_error (bfd_error_wrong_format); @@ -253,7 +253,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: Bad relocation record imported: %d"), abfd, r_index); + (_("%pB: bad relocation record imported: %d"), abfd, r_index); bfd_set_error (bfd_error_wrong_format); diff -Nru gdb-8.1/bfd/aoutf1.h gdb-8.2/bfd/aoutf1.h --- gdb-8.1/bfd/aoutf1.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/aoutf1.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,793 +0,0 @@ -/* A.out "format 1" file handling code for BFD. - Copyright (C) 1990-2018 Free Software Foundation, Inc. - Written by Cygnus Support. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" - -#include "aout/sun4.h" -#include "libaout.h" /* BFD a.out internal data structures. */ - -#include "aout/aout64.h" -#include "aout/stab_gnu.h" -#include "aout/ar.h" - -/* This is needed to reject a NewsOS file, e.g. in - gdb/testsuite/gdb.t10/crossload.exp. - I needed to add M_UNKNOWN to recognize a 68000 object, so this will - probably no longer reject a NewsOS object. . */ -#ifndef MACHTYPE_OK -#define MACHTYPE_OK(mtype) \ - (((mtype) == M_SPARC && bfd_lookup_arch (bfd_arch_sparc, 0) != NULL) \ - || (((mtype) == M_UNKNOWN || (mtype) == M_68010 || (mtype) == M_68020) \ - && bfd_lookup_arch (bfd_arch_m68k, 0) != NULL)) -#endif - -/* The file @code{aoutf1.h} contains the code for BFD's - a.out back end. Control over the generated back end is given by these - two preprocessor names: - @table @code - @item ARCH_SIZE - This value should be either 32 or 64, depending upon the size of an - int in the target format. It changes the sizes of the structs which - perform the memory/disk mapping of structures. - - The 64 bit backend may only be used if the host compiler supports 64 - ints (eg long long with gcc), by defining the name @code{BFD_HOST_64_BIT} in @code{bfd.h}. - With this name defined, @emph{all} bfd operations are performed with 64bit - arithmetic, not just those to a 64bit target. - - @item TARGETNAME - The name put into the target vector. - @item - @end table. */ - -#if ARCH_SIZE == 64 -#define sunos_set_arch_mach sunos_64_set_arch_mach -#define sunos_write_object_contents aout_64_sunos4_write_object_contents -#else -#define sunos_set_arch_mach sunos_32_set_arch_mach -#define sunos_write_object_contents aout_32_sunos4_write_object_contents -#endif - -/* Merge backend data into the output file. - This is necessary on sparclet-aout where we want the resultant machine - number to be M_SPARCLET if any input file is M_SPARCLET. */ - -#define MY_bfd_merge_private_bfd_data sunos_merge_private_bfd_data - -static bfd_boolean -sunos_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) -{ - bfd *obfd = info->output_bfd; - if (bfd_get_flavour (ibfd) != bfd_target_aout_flavour - || bfd_get_flavour (obfd) != bfd_target_aout_flavour) - return TRUE; - - if (bfd_get_arch (obfd) == bfd_arch_sparc) - { - if (bfd_get_mach (obfd) < bfd_get_mach (ibfd)) - bfd_set_arch_mach (obfd, bfd_arch_sparc, bfd_get_mach (ibfd)); - } - - return TRUE; -} - -/* This is either sunos_32_set_arch_mach or sunos_64_set_arch_mach, - depending upon ARCH_SIZE. */ - -static void -sunos_set_arch_mach (bfd *abfd, enum machine_type machtype) -{ - /* Determine the architecture and machine type of the object file. */ - enum bfd_architecture arch; - unsigned long machine; - - switch (machtype) - { - case M_UNKNOWN: - /* Some Sun3s make magic numbers without cpu types in them, so - we'll default to the 68000. */ - arch = bfd_arch_m68k; - machine = bfd_mach_m68000; - break; - - case M_68010: - case M_HP200: - arch = bfd_arch_m68k; - machine = bfd_mach_m68010; - break; - - case M_68020: - case M_HP300: - arch = bfd_arch_m68k; - machine = bfd_mach_m68020; - break; - - case M_SPARC: - arch = bfd_arch_sparc; - machine = 0; - break; - - case M_SPARCLET: - arch = bfd_arch_sparc; - machine = bfd_mach_sparc_sparclet; - break; - - case M_SPARCLITE_LE: - arch = bfd_arch_sparc; - machine = bfd_mach_sparc_sparclite_le; - break; - - case M_386: - case M_386_DYNIX: - arch = bfd_arch_i386; - machine = 0; - break; - - case M_HPUX: - arch = bfd_arch_m68k; - machine = 0; - break; - - default: - arch = bfd_arch_obscure; - machine = 0; - break; - } - bfd_set_arch_mach (abfd, arch, machine); -} - -#define SET_ARCH_MACH(ABFD, EXECP) \ - NAME(sunos,set_arch_mach) (ABFD, N_MACHTYPE (EXECP)); \ - choose_reloc_size(ABFD); - -/* Determine the size of a relocation entry, based on the architecture. */ - -static void -choose_reloc_size (bfd *abfd) -{ - switch (bfd_get_arch (abfd)) - { - case bfd_arch_sparc: - obj_reloc_entry_size (abfd) = RELOC_EXT_SIZE; - break; - default: - obj_reloc_entry_size (abfd) = RELOC_STD_SIZE; - break; - } -} - -/* Write an object file in SunOS format. Section contents have - already been written. We write the file header, symbols, and - relocation. The real name of this function is either - aout_64_sunos4_write_object_contents or - aout_32_sunos4_write_object_contents, depending upon ARCH_SIZE. */ - -static bfd_boolean -sunos_write_object_contents (bfd *abfd) -{ - struct external_exec exec_bytes; - struct internal_exec *execp = exec_hdr (abfd); - - /* Magic number, maestro, please! */ - switch (bfd_get_arch (abfd)) - { - case bfd_arch_m68k: - switch (bfd_get_mach (abfd)) - { - case bfd_mach_m68000: - N_SET_MACHTYPE (execp, M_UNKNOWN); - break; - case bfd_mach_m68010: - N_SET_MACHTYPE (execp, M_68010); - break; - default: - case bfd_mach_m68020: - N_SET_MACHTYPE (execp, M_68020); - break; - } - break; - case bfd_arch_sparc: - switch (bfd_get_mach (abfd)) - { - case bfd_mach_sparc_sparclet: - N_SET_MACHTYPE (execp, M_SPARCLET); - break; - case bfd_mach_sparc_sparclite_le: - N_SET_MACHTYPE (execp, M_SPARCLITE_LE); - break; - default: - N_SET_MACHTYPE (execp, M_SPARC); - break; - } - break; - case bfd_arch_i386: - N_SET_MACHTYPE (execp, M_386); - break; - default: - N_SET_MACHTYPE (execp, M_UNKNOWN); - } - - choose_reloc_size (abfd); - - N_SET_FLAGS (execp, aout_backend_info (abfd)->exec_hdr_flags); - - N_SET_DYNAMIC (execp, (long)(bfd_get_file_flags (abfd) & DYNAMIC)); - - WRITE_HEADERS (abfd, execp); - - return TRUE; -} - -/* Core files. */ - -#define CORE_MAGIC 0x080456 -#define CORE_NAMELEN 16 - -/* The core structure is taken from the Sun documentation. - Unfortunately, they don't document the FPA structure, or at least I - can't find it easily. Fortunately the core header contains its own - length. So this shouldn't cause problems, except for c_ucode, which - so far we don't use but is easy to find with a little arithmetic. */ - -/* But the reg structure can be gotten from the SPARC processor handbook. - This really should be in a GNU include file though so that gdb can use - the same info. */ -struct regs -{ - int r_psr; - int r_pc; - int r_npc; - int r_y; - int r_g1; - int r_g2; - int r_g3; - int r_g4; - int r_g5; - int r_g6; - int r_g7; - int r_o0; - int r_o1; - int r_o2; - int r_o3; - int r_o4; - int r_o5; - int r_o6; - int r_o7; -}; - -/* Taken from Sun documentation: */ - -/* FIXME: It's worse than we expect. This struct contains TWO substructs - neither of whose size we know, WITH STUFF IN BETWEEN THEM! We can't - even portably access the stuff in between! */ - -struct external_sparc_core -{ - int c_magic; /* Corefile magic number. */ - int c_len; /* Sizeof (struct core). */ -#define SPARC_CORE_LEN 432 - struct regs c_regs; /* General purpose registers -- MACHDEP SIZE. */ - struct external_exec c_aouthdr; /* A.out header. */ - int c_signo; /* Killing signal, if any. */ - int c_tsize; /* Text size (bytes). */ - int c_dsize; /* Data size (bytes). */ - int c_ssize; /* Stack size (bytes). */ - char c_cmdname[CORE_NAMELEN + 1]; /* Command name. */ - double fp_stuff[1]; /* External FPU state (size unknown by us). */ - /* The type "double" is critical here, for alignment. - SunOS declares a struct here, but the struct's - alignment is double since it contains doubles. */ - int c_ucode; /* Exception no. from u_code. */ - /* This member is not accessible by name since - we don't portably know the size of fp_stuff. */ -}; - -/* Core files generated by the BCP (the part of Solaris which allows - it to run SunOS4 a.out files). */ -struct external_solaris_bcp_core -{ - int c_magic; /* Corefile magic number. */ - int c_len; /* Sizeof (struct core). */ -#define SOLARIS_BCP_CORE_LEN 456 - struct regs c_regs; /* General purpose registers -- MACHDEP SIZE. */ - int c_exdata_vp; /* Exdata structure. */ - int c_exdata_tsize; - int c_exdata_dsize; - int c_exdata_bsize; - int c_exdata_lsize; - int c_exdata_nshlibs; - short c_exdata_mach; - short c_exdata_mag; - int c_exdata_toffset; - int c_exdata_doffset; - int c_exdata_loffset; - int c_exdata_txtorg; - int c_exdata_datorg; - int c_exdata_entloc; - int c_signo; /* Killing signal, if any. */ - int c_tsize; /* Text size (bytes). */ - int c_dsize; /* Data size (bytes). */ - int c_ssize; /* Stack size (bytes). */ - char c_cmdname[CORE_NAMELEN + 1]; /* Command name. */ - double fp_stuff[1]; /* External FPU state (size unknown by us). */ - /* The type "double" is critical here, for alignment. - SunOS declares a struct here, but the struct's - alignment is double since it contains doubles. */ - int c_ucode; /* Exception no. from u_code. */ - /* This member is not accessible by name since - we don't portably know the size of fp_stuff. */ -}; - -struct external_sun3_core -{ - int c_magic; /* Corefile magic number. */ - int c_len; /* Sizeof (struct core). */ -#define SUN3_CORE_LEN 826 /* As of SunOS 4.1.1. */ - int c_regs[18]; /* General purpose registers -- MACHDEP SIZE. */ - struct external_exec c_aouthdr; /* A.out header. */ - int c_signo; /* Killing signal, if any. */ - int c_tsize; /* Text size (bytes). */ - int c_dsize; /* Data size (bytes). */ - int c_ssize; /* Stack size (bytes). */ - char c_cmdname[CORE_NAMELEN + 1]; /* Command name. */ - double fp_stuff[1]; /* External FPU state (size unknown by us). */ - /* The type "double" is critical here, for alignment. - SunOS declares a struct here, but the struct's - alignment is double since it contains doubles. */ - int c_ucode; /* Exception no. from u_code. */ - /* This member is not accessible by name since - we don't portably know the size of fp_stuff. */ -}; - -struct internal_sunos_core -{ - int c_magic; /* Corefile magic number. */ - int c_len; /* Sizeof (struct core). */ - long c_regs_pos; /* File offset of General purpose registers. */ - int c_regs_size; /* Size of General purpose registers. */ - struct internal_exec c_aouthdr; /* A.out header. */ - int c_signo; /* Killing signal, if any. */ - int c_tsize; /* Text size (bytes). */ - int c_dsize; /* Data size (bytes). */ - bfd_vma c_data_addr; /* Data start (address). */ - int c_ssize; /* Stack size (bytes). */ - bfd_vma c_stacktop; /* Stack top (address). */ - char c_cmdname[CORE_NAMELEN + 1]; /* Command name. */ - long fp_stuff_pos; /* File offset of external FPU state (regs). */ - int fp_stuff_size; /* Size of it. */ - int c_ucode; /* Exception no. from u_code. */ -}; - -/* Byte-swap in the Sun-3 core structure. */ - -static void -swapcore_sun3 (bfd *abfd, char *ext, struct internal_sunos_core *intcore) -{ - struct external_sun3_core *extcore = (struct external_sun3_core *) ext; - - intcore->c_magic = H_GET_32 (abfd, &extcore->c_magic); - intcore->c_len = H_GET_32 (abfd, &extcore->c_len); - intcore->c_regs_pos = offsetof (struct external_sun3_core, c_regs); - intcore->c_regs_size = sizeof (extcore->c_regs); -#if ARCH_SIZE == 64 - aout_64_swap_exec_header_in -#else - aout_32_swap_exec_header_in -#endif - (abfd, &extcore->c_aouthdr, &intcore->c_aouthdr); - intcore->c_signo = H_GET_32 (abfd, &extcore->c_signo); - intcore->c_tsize = H_GET_32 (abfd, &extcore->c_tsize); - intcore->c_dsize = H_GET_32 (abfd, &extcore->c_dsize); - intcore->c_data_addr = N_DATADDR (&intcore->c_aouthdr); - intcore->c_ssize = H_GET_32 (abfd, &extcore->c_ssize); - memcpy (intcore->c_cmdname, extcore->c_cmdname, sizeof (intcore->c_cmdname)); - intcore->fp_stuff_pos = offsetof (struct external_sun3_core, fp_stuff); - /* FP stuff takes up whole rest of struct, except c_ucode. */ - intcore->fp_stuff_size = intcore->c_len - (sizeof extcore->c_ucode) - - offsetof (struct external_sun3_core, fp_stuff); - /* Ucode is the last thing in the struct -- just before the end. */ - intcore->c_ucode = H_GET_32 (abfd, - (intcore->c_len - - sizeof (extcore->c_ucode) - + (unsigned char *) extcore)); - intcore->c_stacktop = 0x0E000000; /* By experimentation. */ -} - -/* Byte-swap in the Sparc core structure. */ - -static void -swapcore_sparc (bfd *abfd, char *ext, struct internal_sunos_core *intcore) -{ - struct external_sparc_core *extcore = (struct external_sparc_core *) ext; - - intcore->c_magic = H_GET_32 (abfd, &extcore->c_magic); - intcore->c_len = H_GET_32 (abfd, &extcore->c_len); - intcore->c_regs_pos = offsetof (struct external_sparc_core, c_regs); - intcore->c_regs_size = sizeof (extcore->c_regs); -#if ARCH_SIZE == 64 - aout_64_swap_exec_header_in -#else - aout_32_swap_exec_header_in -#endif - (abfd, &extcore->c_aouthdr, &intcore->c_aouthdr); - intcore->c_signo = H_GET_32 (abfd, &extcore->c_signo); - intcore->c_tsize = H_GET_32 (abfd, &extcore->c_tsize); - intcore->c_dsize = H_GET_32 (abfd, &extcore->c_dsize); - intcore->c_data_addr = N_DATADDR (&intcore->c_aouthdr); - intcore->c_ssize = H_GET_32 (abfd, &extcore->c_ssize); - memcpy (intcore->c_cmdname, extcore->c_cmdname, sizeof (intcore->c_cmdname)); - intcore->fp_stuff_pos = offsetof (struct external_sparc_core, fp_stuff); - /* FP stuff takes up whole rest of struct, except c_ucode. */ - intcore->fp_stuff_size = intcore->c_len - (sizeof extcore->c_ucode) - - offsetof (struct external_sparc_core, fp_stuff); - /* Ucode is the last thing in the struct -- just before the end. */ - intcore->c_ucode = H_GET_32 (abfd, - (intcore->c_len - - sizeof (extcore->c_ucode) - + (unsigned char *) extcore)); - - /* Supposedly the user stack grows downward from the bottom of kernel memory. - Presuming that this remains true, this definition will work. */ - /* Now sun has provided us with another challenge. The value is different - for sparc2 and sparc10 (both running SunOS 4.1.3). We pick one or - the other based on the current value of the stack pointer. This - loses (a) if the stack pointer has been clobbered, or (b) if the stack - is larger than 128 megabytes. - - It's times like these you're glad they're switching to ELF. - - Note that using include files or nlist on /vmunix would be wrong, - because we want the value for this core file, no matter what kind of - machine we were compiled on or are running on. */ -#define SPARC_USRSTACK_SPARC2 ((bfd_vma)0xf8000000) -#define SPARC_USRSTACK_SPARC10 ((bfd_vma)0xf0000000) - { - bfd_vma sp = H_GET_32 (abfd, &extcore->c_regs.r_o6); - if (sp < SPARC_USRSTACK_SPARC10) - intcore->c_stacktop = SPARC_USRSTACK_SPARC10; - else - intcore->c_stacktop = SPARC_USRSTACK_SPARC2; - } -} - -/* Byte-swap in the Solaris BCP core structure. */ - -static void -swapcore_solaris_bcp (bfd *abfd, char *ext, struct internal_sunos_core *intcore) -{ - struct external_solaris_bcp_core *extcore = - (struct external_solaris_bcp_core *) ext; - - intcore->c_magic = H_GET_32 (abfd, &extcore->c_magic); - intcore->c_len = H_GET_32 (abfd, &extcore->c_len); - intcore->c_regs_pos = offsetof (struct external_solaris_bcp_core, c_regs); - intcore->c_regs_size = sizeof (extcore->c_regs); - - /* The Solaris BCP exdata structure does not contain an a_syms field, - so we are unable to synthesize an internal exec header. - Luckily we are able to figure out the start address of the data section, - which is the only thing needed from the internal exec header, - from the exdata structure. - - As of Solaris 2.3, BCP core files for statically linked executables - are buggy. The exdata structure is not properly filled in, and - the data section is written from address zero instead of the data - start address. */ - memset ((void *) &intcore->c_aouthdr, 0, sizeof (struct internal_exec)); - intcore->c_data_addr = H_GET_32 (abfd, &extcore->c_exdata_datorg); - intcore->c_signo = H_GET_32 (abfd, &extcore->c_signo); - intcore->c_tsize = H_GET_32 (abfd, &extcore->c_tsize); - intcore->c_dsize = H_GET_32 (abfd, &extcore->c_dsize); - intcore->c_ssize = H_GET_32 (abfd, &extcore->c_ssize); - memcpy (intcore->c_cmdname, extcore->c_cmdname, sizeof (intcore->c_cmdname)); - intcore->fp_stuff_pos = - offsetof (struct external_solaris_bcp_core, fp_stuff); - /* FP stuff takes up whole rest of struct, except c_ucode. */ - intcore->fp_stuff_size = intcore->c_len - (sizeof extcore->c_ucode) - - offsetof (struct external_solaris_bcp_core, fp_stuff); - /* Ucode is the last thing in the struct -- just before the end */ - intcore->c_ucode = H_GET_32 (abfd, - (intcore->c_len - - sizeof (extcore->c_ucode) - + (unsigned char *) extcore)); - - /* Supposedly the user stack grows downward from the bottom of kernel memory. - Presuming that this remains true, this definition will work. */ - /* Now sun has provided us with another challenge. The value is different - for sparc2 and sparc10 (both running SunOS 4.1.3). We pick one or - the other based on the current value of the stack pointer. This - loses (a) if the stack pointer has been clobbered, or (b) if the stack - is larger than 128 megabytes. - - It's times like these you're glad they're switching to ELF. - - Note that using include files or nlist on /vmunix would be wrong, - because we want the value for this core file, no matter what kind of - machine we were compiled on or are running on. */ -#define SPARC_USRSTACK_SPARC2 ((bfd_vma)0xf8000000) -#define SPARC_USRSTACK_SPARC10 ((bfd_vma)0xf0000000) - { - bfd_vma sp = H_GET_32 (abfd, &extcore->c_regs.r_o6); - if (sp < SPARC_USRSTACK_SPARC10) - intcore->c_stacktop = SPARC_USRSTACK_SPARC10; - else - intcore->c_stacktop = SPARC_USRSTACK_SPARC2; - } -} - -/* Need this cast because ptr is really void *. */ -#define core_hdr(bfd) ((bfd)->tdata.sun_core_data) -#define core_datasec(bfd) (core_hdr (bfd)->data_section) -#define core_stacksec(bfd) (core_hdr (bfd)->stack_section) -#define core_regsec(bfd) (core_hdr (bfd)->reg_section) -#define core_reg2sec(bfd) (core_hdr (bfd)->reg2_section) - -/* These are stored in the bfd's tdata. */ -struct sun_core_struct -{ - struct internal_sunos_core *hdr; /* Core file header. */ - asection *data_section; - asection *stack_section; - asection *reg_section; - asection *reg2_section; -}; - -static const bfd_target * -sunos4_core_file_p (bfd *abfd) -{ - unsigned char longbuf[4]; /* Raw bytes of various header fields. */ - bfd_size_type core_size, amt; - unsigned long core_mag; - struct internal_sunos_core *core; - char *extcore; - struct mergem - { - struct sun_core_struct suncoredata; - struct internal_sunos_core internal_sunos_core; - char external_core[1]; - } *mergem; - flagword flags; - - if (bfd_bread ((void *) longbuf, (bfd_size_type) sizeof (longbuf), abfd) - != sizeof (longbuf)) - return NULL; - core_mag = H_GET_32 (abfd, longbuf); - - if (core_mag != CORE_MAGIC) - return NULL; - - /* SunOS core headers can vary in length; second word is size; */ - if (bfd_bread ((void *) longbuf, (bfd_size_type) sizeof (longbuf), abfd) - != sizeof (longbuf)) - return NULL; - core_size = H_GET_32 (abfd, longbuf); - /* Sanity check. */ - if (core_size > 20000) - return NULL; - - if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) - return NULL; - - amt = core_size + sizeof (struct mergem); - mergem = bfd_zalloc (abfd, amt); - if (mergem == NULL) - return NULL; - - extcore = mergem->external_core; - - if ((bfd_bread ((void *) extcore, core_size, abfd)) != core_size) - { - loser: - bfd_release (abfd, (char *) mergem); - abfd->tdata.any = NULL; - bfd_section_list_clear (abfd); - return NULL; - } - - /* Validate that it's a core file we know how to handle, due to sun - botching the positioning of registers and other fields in a machine - dependent way. */ - core = &mergem->internal_sunos_core; - switch (core_size) - { - case SPARC_CORE_LEN: - swapcore_sparc (abfd, extcore, core); - break; - case SUN3_CORE_LEN: - swapcore_sun3 (abfd, extcore, core); - break; - case SOLARIS_BCP_CORE_LEN: - swapcore_solaris_bcp (abfd, extcore, core); - break; - default: - bfd_set_error (bfd_error_system_call); /* FIXME. */ - goto loser; - } - - abfd->tdata.sun_core_data = &mergem->suncoredata; - abfd->tdata.sun_core_data->hdr = core; - - /* Create the sections. */ - flags = SEC_ALLOC + SEC_LOAD + SEC_HAS_CONTENTS; - core_stacksec (abfd) = bfd_make_section_anyway_with_flags (abfd, ".stack", - flags); - if (core_stacksec (abfd) == NULL) - /* bfd_release frees everything allocated after it's arg. */ - goto loser; - - flags = SEC_ALLOC + SEC_LOAD + SEC_HAS_CONTENTS; - core_datasec (abfd) = bfd_make_section_anyway_with_flags (abfd, ".data", - flags); - if (core_datasec (abfd) == NULL) - goto loser; - - flags = SEC_HAS_CONTENTS; - core_regsec (abfd) = bfd_make_section_anyway_with_flags (abfd, ".reg", - flags); - if (core_regsec (abfd) == NULL) - goto loser; - - flags = SEC_HAS_CONTENTS; - core_reg2sec (abfd) = bfd_make_section_anyway_with_flags (abfd, ".reg2", - flags); - if (core_reg2sec (abfd) == NULL) - goto loser; - - core_stacksec (abfd)->size = core->c_ssize; - core_datasec (abfd)->size = core->c_dsize; - core_regsec (abfd)->size = core->c_regs_size; - core_reg2sec (abfd)->size = core->fp_stuff_size; - - core_stacksec (abfd)->vma = (core->c_stacktop - core->c_ssize); - core_datasec (abfd)->vma = core->c_data_addr; - core_regsec (abfd)->vma = 0; - core_reg2sec (abfd)->vma = 0; - - core_stacksec (abfd)->filepos = core->c_len + core->c_dsize; - core_datasec (abfd)->filepos = core->c_len; - /* We'll access the regs afresh in the core file, like any section: */ - core_regsec (abfd)->filepos = (file_ptr) core->c_regs_pos; - core_reg2sec (abfd)->filepos = (file_ptr) core->fp_stuff_pos; - - /* Align to word at least. */ - core_stacksec (abfd)->alignment_power = 2; - core_datasec (abfd)->alignment_power = 2; - core_regsec (abfd)->alignment_power = 2; - core_reg2sec (abfd)->alignment_power = 2; - - return abfd->xvec; -} - -static char * -sunos4_core_file_failing_command (bfd *abfd) -{ - return core_hdr (abfd)->hdr->c_cmdname; -} - -static int -sunos4_core_file_failing_signal (bfd *abfd) -{ - return core_hdr (abfd)->hdr->c_signo; -} - -static bfd_boolean -sunos4_core_file_matches_executable_p (bfd *core_bfd, bfd *exec_bfd) -{ - if (core_bfd->xvec != exec_bfd->xvec) - { - bfd_set_error (bfd_error_system_call); - return FALSE; - } - - /* Solaris core files do not include an aouthdr. */ - if ((core_hdr (core_bfd)->hdr)->c_len == SOLARIS_BCP_CORE_LEN) - return TRUE; - - return memcmp ((char *) &((core_hdr (core_bfd)->hdr)->c_aouthdr), - (char *) exec_hdr (exec_bfd), - sizeof (struct internal_exec)) == 0; -} - -#define MY_set_sizes sunos4_set_sizes - -static bfd_boolean -sunos4_set_sizes (bfd *abfd) -{ - switch (bfd_get_arch (abfd)) - { - default: - return FALSE; - case bfd_arch_sparc: - adata (abfd).page_size = 0x2000; - adata (abfd).segment_size = 0x2000; - adata (abfd).exec_bytes_size = EXEC_BYTES_SIZE; - return TRUE; - case bfd_arch_m68k: - adata (abfd).page_size = 0x2000; - adata (abfd).segment_size = 0x20000; - adata (abfd).exec_bytes_size = EXEC_BYTES_SIZE; - return TRUE; - } -} - -/* We default to setting the toolversion field to 1, as is required by - SunOS. */ -#ifndef MY_exec_hdr_flags -#define MY_exec_hdr_flags 1 -#endif - -#ifndef MY_entry_is_text_address -#define MY_entry_is_text_address 0 -#endif -#ifndef MY_add_dynamic_symbols -#define MY_add_dynamic_symbols 0 -#endif -#ifndef MY_add_one_symbol -#define MY_add_one_symbol 0 -#endif -#ifndef MY_link_dynamic_object -#define MY_link_dynamic_object 0 -#endif -#ifndef MY_write_dynamic_symbol -#define MY_write_dynamic_symbol 0 -#endif -#ifndef MY_check_dynamic_reloc -#define MY_check_dynamic_reloc 0 -#endif -#ifndef MY_finish_dynamic_link -#define MY_finish_dynamic_link 0 -#endif - -static const struct aout_backend_data sunos4_aout_backend = -{ - 0, /* Zmagic files are not contiguous. */ - 1, /* Text includes header. */ - MY_entry_is_text_address, - MY_exec_hdr_flags, - 0, /* Default text vma. */ - sunos4_set_sizes, - 0, /* Header is counted in zmagic text. */ - MY_add_dynamic_symbols, - MY_add_one_symbol, - MY_link_dynamic_object, - MY_write_dynamic_symbol, - MY_check_dynamic_reloc, - MY_finish_dynamic_link -}; - -#define MY_core_file_failing_command sunos4_core_file_failing_command -#define MY_core_file_failing_signal sunos4_core_file_failing_signal -#define MY_core_file_matches_executable_p sunos4_core_file_matches_executable_p - -#define MY_bfd_debug_info_start bfd_void -#define MY_bfd_debug_info_end bfd_void -#define MY_bfd_debug_info_accumulate (void (*) (bfd *, struct bfd_section *)) bfd_void -#define MY_core_file_p sunos4_core_file_p -#define MY_write_object_contents NAME(aout, sunos4_write_object_contents) -#define MY_backend_data & sunos4_aout_backend - -#ifndef TARGET_IS_LITTLE_ENDIAN_P -#define TARGET_IS_BIG_ENDIAN_P -#endif - -#include "aout-target.h" diff -Nru gdb-8.1/bfd/aout-sparcle.c gdb-8.2/bfd/aout-sparcle.c --- gdb-8.1/bfd/aout-sparcle.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/aout-sparcle.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -/* BFD backend for sparc little-endian aout binaries. - Copyright (C) 1996-2018 Free Software Foundation, Inc. - Written by Cygnus Support. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#define TARGETNAME "a.out-sparc-little" - -/* Do not "beautify" the CONCAT* macro args. Traditional C will not - remove whitespace added here, and thus will fail to concatenate - the tokens. */ -#define MY(OP) CONCAT2 (sparc_aout_le_,OP) - -#include "sysdep.h" -#include "bfd.h" -#include "bfdlink.h" -#include "libaout.h" - -#define MACHTYPE_OK(mtype) ((mtype) == M_SPARC || (mtype) == M_SPARCLET) - -/* Include the usual a.out support. */ -#define TARGET_IS_LITTLE_ENDIAN_P -#include "aoutf1.h" diff -Nru gdb-8.1/bfd/aout-target.h gdb-8.2/bfd/aout-target.h --- gdb-8.1/bfd/aout-target.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/aout-target.h 2018-09-05 07:27:13.000000000 +0000 @@ -407,14 +407,13 @@ #endif #ifndef MY_bfd_debug_info_start -#define MY_bfd_debug_info_start bfd_void +#define MY_bfd_debug_info_start _bfd_void_bfd #endif #ifndef MY_bfd_debug_info_end -#define MY_bfd_debug_info_end bfd_void +#define MY_bfd_debug_info_end _bfd_void_bfd #endif #ifndef MY_bfd_debug_info_accumulate -#define MY_bfd_debug_info_accumulate \ - (void (*) (bfd *, struct bfd_section *)) bfd_void +#define MY_bfd_debug_info_accumulate _bfd_void_bfd_asection #endif #ifndef MY_core_file_failing_command @@ -513,6 +512,9 @@ #ifndef MY_bfd_define_common_symbol #define MY_bfd_define_common_symbol bfd_generic_define_common_symbol #endif +#ifndef MY_bfd_link_hide_symbol +#define MY_bfd_link_hide_symbol _bfd_generic_link_hide_symbol +#endif #ifndef MY_bfd_define_start_stop #define MY_bfd_define_start_stop bfd_generic_define_start_stop #endif @@ -581,7 +583,7 @@ #endif #ifndef MY_bfd_is_target_special_symbol -#define MY_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) +#define MY_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false #endif #ifndef MY_bfd_free_cached_info @@ -669,12 +671,24 @@ bfd_getl32, bfd_getl_signed_32, bfd_putl32, bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* Headers. */ #endif - {_bfd_dummy_target, MY_object_p, /* bfd_check_format. */ - bfd_generic_archive_p, MY_core_file_p}, - {bfd_false, MY_mkobject, /* bfd_set_format. */ - _bfd_generic_mkarchive, bfd_false}, - {bfd_false, MY_write_object_contents, /* bfd_write_contents. */ - _bfd_write_archive_contents, bfd_false}, + { /* bfd_check_format. */ + _bfd_dummy_target, + MY_object_p, + bfd_generic_archive_p, + MY_core_file_p + }, + { /* bfd_set_format. */ + _bfd_bool_bfd_false_error, + MY_mkobject, + _bfd_generic_mkarchive, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents. */ + _bfd_bool_bfd_false_error, + MY_write_object_contents, + _bfd_write_archive_contents, + _bfd_bool_bfd_false_error + }, BFD_JUMP_TABLE_GENERIC (MY), BFD_JUMP_TABLE_COPY (MY), diff -Nru gdb-8.1/bfd/aout-tic30.c gdb-8.2/bfd/aout-tic30.c --- gdb-8.1/bfd/aout-tic30.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/aout-tic30.c 2018-09-05 07:27:13.000000000 +0000 @@ -862,14 +862,13 @@ #endif #ifndef MY_bfd_debug_info_start -#define MY_bfd_debug_info_start bfd_void +#define MY_bfd_debug_info_start _bfd_void_bfd #endif #ifndef MY_bfd_debug_info_end -#define MY_bfd_debug_info_end bfd_void +#define MY_bfd_debug_info_end _bfd_void_bfd #endif #ifndef MY_bfd_debug_info_accumulate -#define MY_bfd_debug_info_accumulate \ - (void (*) (bfd*, struct bfd_section *)) bfd_void +#define MY_bfd_debug_info_accumulate _bfd_void_bfd_asection #endif #ifndef MY_core_file_failing_command @@ -968,6 +967,9 @@ #ifndef MY_bfd_define_common_symbol #define MY_bfd_define_common_symbol bfd_generic_define_common_symbol #endif +#ifndef MY_bfd_link_hide_symbol +#define MY_bfd_link_hide_symbol _bfd_generic_link_hide_symbol +#endif #ifndef MY_bfd_define_start_stop #define MY_bfd_define_start_stop bfd_generic_define_start_stop #endif @@ -1036,8 +1038,7 @@ #endif #ifndef MY_bfd_is_target_special_symbol -#define MY_bfd_is_target_special_symbol \ - ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) +#define MY_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false #endif #ifndef MY_bfd_free_cached_info @@ -1099,12 +1100,24 @@ bfd_getb64, bfd_getb_signed_64, bfd_putb64, bfd_getb32, bfd_getb_signed_32, bfd_putb32, bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* Headers. */ - {_bfd_dummy_target, MY_object_p, /* bfd_check_format. */ - bfd_generic_archive_p, MY_core_file_p}, - {bfd_false, MY_mkobject, /* bfd_set_format. */ - _bfd_generic_mkarchive, bfd_false}, - {bfd_false, MY_write_object_contents, /* bfd_write_contents. */ - _bfd_write_archive_contents, bfd_false}, + { /* bfd_check_format. */ + _bfd_dummy_target, + MY_object_p, + bfd_generic_archive_p, + MY_core_file_p + }, + { /* bfd_set_format. */ + _bfd_bool_bfd_false_error, + MY_mkobject, + _bfd_generic_mkarchive, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents. */ + _bfd_bool_bfd_false_error, + MY_write_object_contents, + _bfd_write_archive_contents, + _bfd_bool_bfd_false_error + }, BFD_JUMP_TABLE_GENERIC (MY), BFD_JUMP_TABLE_COPY (MY), diff -Nru gdb-8.1/bfd/aoutx.h gdb-8.2/bfd/aoutx.h --- gdb-8.1/bfd/aoutx.h 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/bfd/aoutx.h 2018-09-05 07:27:13.000000000 +0000 @@ -33,14 +33,13 @@ The support is split into a basic support file @file{aoutx.h} and other files which derive functions from the base. One derivation file is @file{aoutf1.h} (for a.out flavour 1), and - adds to the basic a.out functions support for sun3, sun4, 386 - and 29k a.out files, to create a target jump vector for a - specific target. + adds to the basic a.out functions support for sun3, sun4, and + 386 a.out files, to create a target jump vector for a specific + target. This information is further split out into more specific files for each machine, including @file{sunos.c} for sun3 and sun4, - @file{newsos3.c} for the Sony NEWS, and @file{demo64.c} for a - demonstration of a 64 bit a.out format. + and @file{demo64.c} for a demonstration of a 64 bit a.out format. The base file @file{aoutx.h} defines general mechanisms for reading and writing records to and from disk and various @@ -136,10 +135,9 @@ The file @file{aoutx.h} provides for both the @emph{standard} and @emph{extended} forms of a.out relocation records. - The standard records contain only an - address, a symbol index, and a type field. The extended records - (used on 29ks and sparcs) also have a full integer for an - addend. */ + The standard records contain only an address, a symbol index, + and a type field. The extended records also have a full + integer for an addend. */ #ifndef CTOR_TABLE_RELOC_HOWTO #define CTOR_TABLE_RELOC_IDX 2 @@ -469,10 +467,7 @@ oldrawptr = abfd->tdata.aout_data; abfd->tdata.aout_data = rawptr; - /* Copy the contents of the old tdata struct. - In particular, we want the subformat, since for hpux it was set in - hp300hpux.c:swap_exec_header_in and will be used in - hp300hpux.c:callback. */ + /* Copy the contents of the old tdata struct. */ if (oldrawptr != NULL) *abfd->tdata.aout_data = *oldrawptr; @@ -753,17 +748,6 @@ arch_flags = M_SPARCLET; break; - case bfd_arch_m68k: - switch (machine) - { - case 0: arch_flags = M_68010; break; - case bfd_mach_m68000: arch_flags = M_UNKNOWN; *unknown = FALSE; break; - case bfd_mach_m68010: arch_flags = M_68010; break; - case bfd_mach_m68020: arch_flags = M_68020; break; - default: arch_flags = M_UNKNOWN; break; - } - break; - case bfd_arch_i386: if (machine == 0 || machine == bfd_mach_i386_i386 @@ -842,10 +826,6 @@ arch_flags = M_CRIS; break; - case bfd_arch_m88k: - *unknown = FALSE; - break; - default: arch_flags = M_UNKNOWN; } @@ -1281,7 +1261,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: can not represent section `%A' in a.out object file format"), + (_("%pB: can not represent section `%pA' in a.out object file format"), abfd, section); bfd_set_error (bfd_error_nonrepresentable_section); return FALSE; @@ -1363,7 +1343,7 @@ #ifdef USE_MMAP if (stringsize >= BYTES_IN_WORD) { - if (! bfd_get_file_window (abfd, obj_str_filepos (abfd), stringsize, + if (! bfd_get_file_window (abfd, obj_str_filepos (abfd), stringsize + 1, &obj_aout_string_window (abfd), TRUE)) return FALSE; strings = (char *) obj_aout_string_window (abfd).data; @@ -1371,7 +1351,7 @@ else #endif { - strings = (char *) bfd_malloc (stringsize); + strings = (char *) bfd_malloc (stringsize + 1); if (strings == NULL) return FALSE; @@ -1390,7 +1370,8 @@ /* Ensure that a zero index yields an empty string. */ strings[0] = '\0'; - strings[stringsize - 1] = 0; + /* Ensure that the string buffer is NUL terminated. */ + strings[stringsize] = 0; obj_aout_external_strings (abfd) = strings; obj_aout_external_string_size (abfd) = stringsize; @@ -1597,7 +1578,7 @@ file. */ _bfd_error_handler /* xgettext:c-format */ - (_("%B: can not represent section for symbol `%s' in a.out " + (_("%pB: can not represent section for symbol `%s' in a.out " "object file format"), abfd, cache_ptr->name != NULL ? cache_ptr->name : _("*unknown*")); @@ -1633,7 +1614,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: can not represent section `%A' in a.out object file format"), + (_("%pB: can not represent section `%pA' in a.out object file format"), abfd, sec); bfd_set_error (bfd_error_nonrepresentable_section); return FALSE; @@ -1734,7 +1715,13 @@ else if (x < strsize) in->symbol.name = str + x; else - return FALSE; + { + _bfd_error_handler + (_("%pB: invalid string offset %" PRIu64 " >= %" PRIu64), + abfd, (uint64_t) x, (uint64_t) strsize); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } in->symbol.value = GET_SWORD (abfd, ext->e_value); in->desc = H_GET_16 (abfd, ext->e_desc); @@ -2283,10 +2270,12 @@ if (r_baserel) r_extern = 1; - if (r_extern && r_index > symcount) + if (r_extern && r_index >= symcount) { /* We could arrange to return an error, but it might be useful - to see the file even if it is bad. */ + to see the file even if it is bad. FIXME: Of course this + means that objdump -r *doesn't* see the actual reloc, and + objcopy silently writes a different reloc. */ r_extern = 0; r_index = N_ABS; } @@ -2420,7 +2409,7 @@ { bfd_set_error (bfd_error_invalid_operation); _bfd_error_handler (_("\ -%B: attempt to write out unknown reloc type"), abfd); +%pB: attempt to write out unknown reloc type"), abfd); return FALSE; } MY_swap_ext_reloc_out (abfd, *generic, @@ -2438,7 +2427,7 @@ { bfd_set_error (bfd_error_invalid_operation); _bfd_error_handler (_("\ -%B: attempt to write out unknown reloc type"), abfd); +%pB: attempt to write out unknown reloc type"), abfd); return FALSE; } MY_swap_std_reloc_out (abfd, *generic, @@ -2735,7 +2724,10 @@ const char *symname; symname = q->symbol.name; - if (strcmp (symname + strlen (symname) - 2, ".o") == 0) + + if (symname != NULL + && strlen (symname) > 2 + && strcmp (symname + strlen (symname) - 2, ".o") == 0) { if (q->symbol.value > low_line_vma) { @@ -2800,8 +2792,8 @@ case N_FUN: { /* We'll keep this if it is nearer than the one we have already. */ - if (q->symbol.value >= low_func_vma && - q->symbol.value <= offset) + if (q->symbol.value >= low_func_vma + && q->symbol.value <= offset) { low_func_vma = q->symbol.value; func = (asymbol *)q; @@ -3366,13 +3358,14 @@ switch (info->common_skip_ar_symbols) { + case bfd_link_common_skip_none: + break; case bfd_link_common_skip_text: skip = (type == (N_TEXT | N_EXT)); break; case bfd_link_common_skip_data: skip = (type == (N_DATA | N_EXT)); break; - default: case bfd_link_common_skip_all: skip = 1; break; @@ -4088,8 +4081,8 @@ if (howto == NULL) { - (*flaginfo->info->callbacks->einfo) - (_("%P: %B: unexpected relocation type\n"), input_bfd); + _bfd_error_handler (_("%pB: unsupported relocation type"), + input_bfd); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -4409,8 +4402,8 @@ if (r_type >= TABLE_SIZE (howto_table_ext)) { - (*flaginfo->info->callbacks->einfo) - (_("%P: %B: unexpected relocation type\n"), input_bfd); + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + input_bfd, r_type); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -5436,7 +5429,7 @@ by the reloc size. */ _bfd_error_handler /* xgettext:c-format */ - (_("%B: relocatable link from %s to %s not supported"), + (_("%pB: relocatable link from %s to %s not supported"), abfd, sub->xvec->name, abfd->xvec->name); bfd_set_error (bfd_error_invalid_operation); goto error_return; @@ -5494,8 +5487,7 @@ FIXME: At this point we do not know how much space the symbol table will require. This will not work for any (nonstandard) a.out target that needs to know the symbol table size before it - can compute the relocation file positions. This may or may not - be the case for the hp300hpux target, for example. */ + can compute the relocation file positions. */ (*callback) (abfd, &aout_info.treloff, &aout_info.dreloff, &aout_info.symoff); obj_textsec (abfd)->rel_filepos = aout_info.treloff; diff -Nru gdb-8.1/bfd/archive.c gdb-8.2/bfd/archive.c --- gdb-8.1/bfd/archive.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/archive.c 2018-09-05 07:27:13.000000000 +0000 @@ -754,6 +754,13 @@ return _bfd_get_elt_at_filepos (abfd, entry->file_offset); } +bfd * +_bfd_noarchive_get_elt_at_index (bfd *abfd, + symindex sym_index ATTRIBUTE_UNUSED) +{ + return (bfd *) _bfd_ptr_bfd_null_error (abfd); +} + /* FUNCTION bfd_openr_next_archived_file @@ -816,6 +823,13 @@ return _bfd_get_elt_at_filepos (archive, filestart); } +bfd * +_bfd_noarchive_openr_next_archived_file (bfd *archive, + bfd *last_file ATTRIBUTE_UNUSED) +{ + return (bfd *) _bfd_ptr_bfd_null_error (archive); +} + const bfd_target * bfd_generic_archive_p (bfd *abfd) { @@ -833,12 +847,9 @@ bfd_is_thin_archive (abfd) = (strncmp (armag, ARMAGT, SARMAG) == 0); if (strncmp (armag, ARMAG, SARMAG) != 0 - && strncmp (armag, ARMAGB, SARMAG) != 0 && ! bfd_is_thin_archive (abfd)) { bfd_set_error (bfd_error_wrong_format); - if (abfd->format == bfd_archive) - abfd->format = bfd_unknown; return NULL; } @@ -1028,21 +1039,6 @@ nsymz = bfd_getb32 (int_buf); stringsize = parsed_size - (4 * nsymz) - 4; - /* ... except that some archive formats are broken, and it may be our - fault - the i960 little endian coff sometimes has big and sometimes - little, because our tools changed. Here's a horrible hack to clean - up the crap. */ - - if (stringsize > 0xfffff - && bfd_get_arch (abfd) == bfd_arch_i960 - && bfd_get_flavour (abfd) == bfd_target_coff_flavour) - { - /* This looks dangerous, let's do it the other way around. */ - nsymz = bfd_getl32 (int_buf); - stringsize = parsed_size - (4 * nsymz) - 4; - swap = bfd_getl32; - } - /* The coff armap must be read sequentially. So we construct a bsd-style one in core all at once, for simplicity. */ @@ -1184,115 +1180,6 @@ return TRUE; } -/* Returns FALSE on error, TRUE otherwise. */ -/* Flavor 2 of a bsd armap, similar to bfd_slurp_bsd_armap except the - header is in a slightly different order and the map name is '/'. - This flavour is used by hp300hpux. */ - -#define HPUX_SYMDEF_COUNT_SIZE 2 - -bfd_boolean -bfd_slurp_bsd_armap_f2 (bfd *abfd) -{ - struct areltdata *mapdata; - char nextname[17]; - unsigned int counter; - bfd_byte *raw_armap, *rbase; - struct artdata *ardata = bfd_ardata (abfd); - char *stringbase; - unsigned int stringsize; - unsigned int left; - bfd_size_type amt; - carsym *set; - int i = bfd_bread (nextname, 16, abfd); - - if (i == 0) - return TRUE; - if (i != 16) - return FALSE; - - /* The archive has at least 16 bytes in it. */ - if (bfd_seek (abfd, (file_ptr) -16, SEEK_CUR) != 0) - return FALSE; - - if (CONST_STRNEQ (nextname, "__.SYMDEF ") - || CONST_STRNEQ (nextname, "__.SYMDEF/ ")) /* Old Linux archives. */ - return do_slurp_bsd_armap (abfd); - - if (! CONST_STRNEQ (nextname, "/ ")) - { - bfd_has_map (abfd) = FALSE; - return TRUE; - } - - mapdata = (struct areltdata *) _bfd_read_ar_hdr (abfd); - if (mapdata == NULL) - return FALSE; - - if (mapdata->parsed_size < HPUX_SYMDEF_COUNT_SIZE + BSD_STRING_COUNT_SIZE) - { - free (mapdata); - wrong_format: - bfd_set_error (bfd_error_wrong_format); - byebye: - return FALSE; - } - left = mapdata->parsed_size - HPUX_SYMDEF_COUNT_SIZE - BSD_STRING_COUNT_SIZE; - - amt = mapdata->parsed_size; - free (mapdata); - - raw_armap = (bfd_byte *) bfd_zalloc (abfd, amt); - if (raw_armap == NULL) - goto byebye; - - if (bfd_bread (raw_armap, amt, abfd) != amt) - { - if (bfd_get_error () != bfd_error_system_call) - bfd_set_error (bfd_error_malformed_archive); - goto byebye; - } - - ardata->symdef_count = H_GET_16 (abfd, raw_armap); - - ardata->cache = 0; - - stringsize = H_GET_32 (abfd, raw_armap + HPUX_SYMDEF_COUNT_SIZE); - if (stringsize > left) - goto wrong_format; - left -= stringsize; - - /* Skip sym count and string sz. */ - stringbase = ((char *) raw_armap - + HPUX_SYMDEF_COUNT_SIZE - + BSD_STRING_COUNT_SIZE); - rbase = (bfd_byte *) stringbase + stringsize; - amt = ardata->symdef_count * BSD_SYMDEF_SIZE; - if (amt > left) - goto wrong_format; - - ardata->symdefs = (struct carsym *) bfd_alloc (abfd, amt); - if (!ardata->symdefs) - return FALSE; - - for (counter = 0, set = ardata->symdefs; - counter < ardata->symdef_count; - counter++, set++, rbase += BSD_SYMDEF_SIZE) - { - set->name = H_GET_32 (abfd, rbase) + stringbase; - set->file_offset = H_GET_32 (abfd, rbase + BSD_SYMDEF_OFFSET_SIZE); - } - - ardata->first_file_filepos = bfd_tell (abfd); - /* Pad to an even boundary if you have to. */ - ardata->first_file_filepos += (ardata->first_file_filepos) % 2; - /* FIXME, we should provide some way to free raw_ardata when - we are done using the strings from it. For now, it seems - to be allocated on an objalloc anyway... */ - bfd_has_map (abfd) = TRUE; - return TRUE; -} - /** Extended name table. Normally archives support only 14-character filenames. @@ -1586,6 +1473,15 @@ return _bfd_construct_extended_name_table (abfd, TRUE, tabloc, tablen); } +bfd_boolean +_bfd_noarchive_construct_extended_name_table (bfd *abfd ATTRIBUTE_UNUSED, + char **tabloc ATTRIBUTE_UNUSED, + bfd_size_type *len ATTRIBUTE_UNUSED, + const char **name ATTRIBUTE_UNUSED) +{ + return TRUE; +} + /* Follows archive_head and produces an extended name table if necessary. Returns (in tabloc) a pointer to an extended name table, and in tablen the length of the table. If it makes an entry @@ -1884,6 +1780,12 @@ } return TRUE; } + +bfd_boolean +_bfd_noarchive_write_ar_hdr (bfd *archive, bfd *abfd ATTRIBUTE_UNUSED) +{ + return _bfd_bool_bfd_false_error (archive); +} /* A couple of functions for creating ar_hdrs. */ @@ -2154,6 +2056,13 @@ if (length < 16) (hdr->ar_name)[length] = ar_padchar (abfd); } + +void +_bfd_noarchive_truncate_arname (bfd *abfd ATTRIBUTE_UNUSED, + const char *pathname ATTRIBUTE_UNUSED, + char *arhdr ATTRIBUTE_UNUSED) +{ +} /* The BFD is open for write and has its format set to bfd_archive. */ @@ -2302,7 +2211,7 @@ if (bfd_update_armap_timestamp (arch)) break; _bfd_error_handler - (_("Warning: writing archive was slow: rewriting timestamp\n")); + (_("warning: writing archive was slow: rewriting timestamp")); } while (++tries < 6); } @@ -2418,7 +2327,7 @@ + (syms[src_count]->name[2] == '_'), "__gnu_lto_slim") == 0) _bfd_error_handler - (_("%B: plugin needed to handle lto object"), + (_("%pB: plugin needed to handle lto object"), current); namelen = strlen (syms[src_count]->name); amt = sizeof (char *); @@ -2834,6 +2743,17 @@ return TRUE; } +bfd_boolean +_bfd_noarchive_write_armap + (bfd *arch ATTRIBUTE_UNUSED, + unsigned int elength ATTRIBUTE_UNUSED, + struct orl *map ATTRIBUTE_UNUSED, + unsigned int orl_count ATTRIBUTE_UNUSED, + int stridx ATTRIBUTE_UNUSED) +{ + return TRUE; +} + static int archive_close_worker (void **slot, void *inf ATTRIBUTE_UNUSED) { @@ -2843,6 +2763,30 @@ return 1; } +void +_bfd_unlink_from_archive_parent (bfd *abfd) +{ + if (arch_eltdata (abfd) != NULL) + { + struct areltdata *ared = arch_eltdata (abfd); + htab_t htab = (htab_t) ared->parent_cache; + + if (htab) + { + struct ar_cache ent; + void **slot; + + ent.ptr = ared->key; + slot = htab_find_slot (htab, &ent, NO_INSERT); + if (slot != NULL) + { + BFD_ASSERT (((struct ar_cache *) *slot)->arbfd == abfd); + htab_clear_slot (htab, slot); + } + } + } +} + bfd_boolean _bfd_archive_close_and_cleanup (bfd *abfd) { @@ -2867,25 +2811,9 @@ bfd_ardata (abfd)->cache = NULL; } } - if (arch_eltdata (abfd) != NULL) - { - struct areltdata *ared = arch_eltdata (abfd); - htab_t htab = (htab_t) ared->parent_cache; - if (htab) - { - struct ar_cache ent; - void **slot; + _bfd_unlink_from_archive_parent (abfd); - ent.ptr = ared->key; - slot = htab_find_slot (htab, &ent, NO_INSERT); - if (slot != NULL) - { - BFD_ASSERT (((struct ar_cache *) *slot)->arbfd == abfd); - htab_clear_slot (htab, slot); - } - } - } if (abfd->is_linker_output) (*abfd->link.hash->hash_table_free) (abfd); diff -Nru gdb-8.1/bfd/archures.c gdb-8.2/bfd/archures.c --- gdb-8.1/bfd/archures.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/archures.c 2018-09-05 07:44:28.000000000 +0000 @@ -63,8 +63,7 @@ Another field indicates which processor within the family is in use. The machine gives a number which distinguishes different versions of the architecture, - containing, for example, 2 and 3 for Intel i960 KA and i960 KB, - and 68020 and 68030 for Motorola 68020 and 68030. + containing, for example, 68020 for Motorola 68020. .enum bfd_architecture .{ @@ -103,23 +102,6 @@ .#define bfd_mach_mcf_isa_c_nodiv_mac 30 .#define bfd_mach_mcf_isa_c_nodiv_emac 31 . bfd_arch_vax, {* DEC Vax. *} -. bfd_arch_i960, {* Intel 960. *} -. {* The order of the following is important. -. lower number indicates a machine type that -. only accepts a subset of the instructions -. available to machines with higher numbers. -. The exception is the "ca", which is -. incompatible with all other machines except -. "core". *} -. -.#define bfd_mach_i960_core 1 -.#define bfd_mach_i960_ka_sa 2 -.#define bfd_mach_i960_kb_sb 3 -.#define bfd_mach_i960_mc 4 -.#define bfd_mach_i960_xa 5 -.#define bfd_mach_i960_ca 6 -.#define bfd_mach_i960_jx 7 -.#define bfd_mach_i960_hx 8 . . bfd_arch_or1k, {* OpenRISC 1000. *} .#define bfd_mach_or1k 1 @@ -235,13 +217,8 @@ .#define bfd_mach_iamcu (1 << 8) .#define bfd_mach_i386_iamcu (bfd_mach_i386_i386 | bfd_mach_iamcu) .#define bfd_mach_i386_iamcu_intel_syntax (bfd_mach_i386_iamcu | bfd_mach_i386_intel_syntax) -. bfd_arch_we32k, {* AT&T WE32xxx. *} -. bfd_arch_tahoe, {* CCI/Harris Tahoe. *} -. bfd_arch_i860, {* Intel 860. *} -. bfd_arch_i370, {* IBM 360/370 Mainframes. *} . bfd_arch_romp, {* IBM ROMP PC/RT. *} . bfd_arch_convex, {* Convex. *} -. bfd_arch_m88k, {* Motorola 88xxx. *} . bfd_arch_m98k, {* Motorola 98xxx. *} . bfd_arch_pyramid, {* Pyramid Technology. *} . bfd_arch_h8300, {* Renesas H8/300 (formerly Hitachi H8/300). *} @@ -304,10 +281,11 @@ .#define bfd_mach_m6812s 2 . bfd_arch_m9s12x, {* Freescale S12X. *} . bfd_arch_m9s12xg, {* Freescale XGATE. *} +. bfd_arch_s12z, {* Freescale S12Z. *} +.#define bfd_mach_s12z_default 0 . bfd_arch_z8k, {* Zilog Z8000. *} .#define bfd_mach_z8001 1 .#define bfd_mach_z8002 2 -. bfd_arch_h8500, {* Renesas H8/500 (formerly Hitachi H8/500). *} . bfd_arch_sh, {* Renesas / SuperH SH (formerly Hitachi SH). *} .#define bfd_mach_sh 1 .#define bfd_mach_sh2 0x20 @@ -329,7 +307,6 @@ .#define bfd_mach_sh4a 0x4a .#define bfd_mach_sh4a_nofpu 0x4b .#define bfd_mach_sh4al_dsp 0x4d -.#define bfd_mach_sh5 0x50 . bfd_arch_alpha, {* Dec Alpha. *} .#define bfd_mach_alpha_ev4 0x10 .#define bfd_mach_alpha_ev5 0x20 @@ -349,6 +326,19 @@ .#define bfd_mach_arm_ep9312 11 .#define bfd_mach_arm_iWMMXt 12 .#define bfd_mach_arm_iWMMXt2 13 +.#define bfd_mach_arm_5TEJ 14 +.#define bfd_mach_arm_6 15 +.#define bfd_mach_arm_6KZ 16 +.#define bfd_mach_arm_6T2 17 +.#define bfd_mach_arm_6K 18 +.#define bfd_mach_arm_7 19 +.#define bfd_mach_arm_6M 20 +.#define bfd_mach_arm_6SM 21 +.#define bfd_mach_arm_7EM 22 +.#define bfd_mach_arm_8 23 +.#define bfd_mach_arm_8R 24 +.#define bfd_mach_arm_8M_BASE 25 +.#define bfd_mach_arm_8M_MAIN 26 . bfd_arch_nds32, {* Andes NDS32. *} .#define bfd_mach_n1 1 .#define bfd_mach_n1h 2 @@ -356,7 +346,6 @@ .#define bfd_mach_n1h_v3 4 .#define bfd_mach_n1h_v3m 5 . bfd_arch_ns32k, {* National Semiconductors ns32000. *} -. bfd_arch_w65, {* WDC 65816. *} . bfd_arch_tic30, {* Texas Instruments TMS320C30. *} . bfd_arch_tic4x, {* Texas Instruments TMS320C3X/4X. *} .#define bfd_mach_tic3x 30 @@ -537,6 +526,9 @@ .#define bfd_mach_wasm32 1 . bfd_arch_pru, {* PRU. *} .#define bfd_mach_pru 0 +. bfd_arch_nfp, {* Netronome Flow Processor *} +.#define bfd_mach_nfp3200 0x3200 +.#define bfd_mach_nfp6000 0x6000 . bfd_arch_last . }; */ @@ -598,13 +590,9 @@ extern const bfd_arch_info_type bfd_fr30_arch; extern const bfd_arch_info_type bfd_frv_arch; extern const bfd_arch_info_type bfd_h8300_arch; -extern const bfd_arch_info_type bfd_h8500_arch; extern const bfd_arch_info_type bfd_hppa_arch; -extern const bfd_arch_info_type bfd_i370_arch; extern const bfd_arch_info_type bfd_i386_arch; extern const bfd_arch_info_type bfd_iamcu_arch; -extern const bfd_arch_info_type bfd_i860_arch; -extern const bfd_arch_info_type bfd_i960_arch; extern const bfd_arch_info_type bfd_ia64_arch; extern const bfd_arch_info_type bfd_ip2k_arch; extern const bfd_arch_info_type bfd_iq2000_arch; @@ -617,8 +605,8 @@ extern const bfd_arch_info_type bfd_m68hc12_arch; extern const bfd_arch_info_type bfd_m9s12x_arch; extern const bfd_arch_info_type bfd_m9s12xg_arch; +extern const bfd_arch_info_type bfd_s12z_arch; extern const bfd_arch_info_type bfd_m68k_arch; -extern const bfd_arch_info_type bfd_m88k_arch; extern const bfd_arch_info_type bfd_mcore_arch; extern const bfd_arch_info_type bfd_mep_arch; extern const bfd_arch_info_type bfd_metag_arch; @@ -632,6 +620,7 @@ extern const bfd_arch_info_type bfd_msp430_arch; extern const bfd_arch_info_type bfd_mt_arch; extern const bfd_arch_info_type bfd_nds32_arch; +extern const bfd_arch_info_type bfd_nfp_arch; extern const bfd_arch_info_type bfd_nios2_arch; extern const bfd_arch_info_type bfd_ns32k_arch; extern const bfd_arch_info_type bfd_or1k_arch; @@ -662,8 +651,6 @@ extern const bfd_arch_info_type bfd_vax_arch; extern const bfd_arch_info_type bfd_visium_arch; extern const bfd_arch_info_type bfd_wasm32_arch; -extern const bfd_arch_info_type bfd_w65_arch; -extern const bfd_arch_info_type bfd_we32k_arch; extern const bfd_arch_info_type bfd_xstormy16_arch; extern const bfd_arch_info_type bfd_xtensa_arch; extern const bfd_arch_info_type bfd_xc16x_arch; @@ -693,13 +680,9 @@ &bfd_fr30_arch, &bfd_frv_arch, &bfd_h8300_arch, - &bfd_h8500_arch, &bfd_hppa_arch, - &bfd_i370_arch, &bfd_i386_arch, &bfd_iamcu_arch, - &bfd_i860_arch, - &bfd_i960_arch, &bfd_ia64_arch, &bfd_ip2k_arch, &bfd_iq2000_arch, @@ -712,8 +695,8 @@ &bfd_m68hc12_arch, &bfd_m9s12x_arch, &bfd_m9s12xg_arch, + &bfd_s12z_arch, &bfd_m68k_arch, - &bfd_m88k_arch, &bfd_mcore_arch, &bfd_mep_arch, &bfd_metag_arch, @@ -727,6 +710,7 @@ &bfd_msp430_arch, &bfd_mt_arch, &bfd_nds32_arch, + &bfd_nfp_arch, &bfd_nios2_arch, &bfd_ns32k_arch, &bfd_or1k_arch, @@ -753,9 +737,7 @@ &bfd_v850_rh850_arch, &bfd_vax_arch, &bfd_visium_arch, - &bfd_w65_arch, &bfd_wasm32_arch, - &bfd_we32k_arch, &bfd_xstormy16_arch, &bfd_xtensa_arch, &bfd_xc16x_arch, @@ -1192,19 +1174,6 @@ switch (number) { - /* FIXME: These are needed to parse IEEE objects. */ - /* The following seven case's are here only for compatibility with - older binutils (at least IEEE objects from binutils 2.9.1 require - them). */ - case bfd_mach_m68000: - case bfd_mach_m68010: - case bfd_mach_m68020: - case bfd_mach_m68030: - case bfd_mach_m68040: - case bfd_mach_m68060: - case bfd_mach_cpu32: - arch = bfd_arch_m68k; - break; case 68000: arch = bfd_arch_m68k; number = bfd_mach_m68000; @@ -1254,10 +1223,6 @@ number = bfd_mach_mcf_isa_aplus_emac; break; - case 32000: - arch = bfd_arch_we32k; - break; - case 3000: arch = bfd_arch_mips; number = bfd_mach_mips3000; @@ -1452,3 +1417,11 @@ memset (fill, 0, count); return fill; } + +bfd_boolean +_bfd_nowrite_set_arch_mach (bfd *abfd, + enum bfd_architecture arch ATTRIBUTE_UNUSED, + unsigned long mach ATTRIBUTE_UNUSED) +{ + return _bfd_bool_bfd_false_error (abfd); +} diff -Nru gdb-8.1/bfd/armnetbsd.c gdb-8.2/bfd/armnetbsd.c --- gdb-8.1/bfd/armnetbsd.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/armnetbsd.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,39 +0,0 @@ -/* BFD back-end for NetBSD/ARM a.out-ish binaries. - Copyright (C) 1999-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define BYTES_IN_WORD 4 -#undef TARGET_IS_BIG_ENDIAN_P - -#define TARGET_PAGE_SIZE 4096 -#define SEGMENT_SIZE TARGET_PAGE_SIZE - -#define DEFAULT_ARCH bfd_arch_arm -#define DEFAULT_MID M_ARM6_NETBSD -/*#define MACHTYPE_OK(mtype) ((mtype) == M_ARM6_NETBSD)*/ - -/* Do not "beautify" the CONCAT* macro args. Traditional C will not - remove whitespace added here, and thus will fail to concatenate - the tokens. */ -#define MY(OP) CONCAT2 (arm_aout_nbsd_, OP) - -/* This needs to start with a.out so GDB knows it is an a.out variant. */ -#define TARGETNAME "a.out-arm-netbsd" - -#include "netbsd.h" diff -Nru gdb-8.1/bfd/bfd.c gdb-8.2/bfd/bfd.c --- gdb-8.1/bfd/bfd.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/bfd.c 2018-09-05 07:44:28.000000000 +0000 @@ -74,8 +74,9 @@ . least-recently-used list of BFDs. *} . struct bfd *lru_prev, *lru_next; . -. {* When a file is closed by the caching routines, BFD retains -. state information on the file here... *} +. {* Track current file position (or current buffer offset for +. in-memory BFDs). When a file is closed by the caching routines, +. BFD retains state information on the file here. *} . ufile_ptr where; . . {* File modified time, if mtime_set is TRUE. *} @@ -304,21 +305,15 @@ . { . struct aout_data_struct *aout_data; . struct artdata *aout_ar_data; -. struct _oasys_data *oasys_obj_data; -. struct _oasys_ar_data *oasys_ar_data; . struct coff_tdata *coff_obj_data; . struct pe_tdata *pe_obj_data; . struct xcoff_tdata *xcoff_obj_data; . struct ecoff_tdata *ecoff_obj_data; -. struct ieee_data_struct *ieee_data; -. struct ieee_ar_data_struct *ieee_ar_data; . struct srec_data_struct *srec_data; . struct verilog_data_struct *verilog_data; . struct ihex_data_struct *ihex_data; . struct tekhex_data_struct *tekhex_data; . struct elf_obj_tdata *elf_obj_data; -. struct nlm_obj_tdata *nlm_obj_data; -. struct bout_data_struct *bout_data; . struct mmo_data_struct *mmo_data; . struct sun_core_struct *sun_core_data; . struct sco5_core_struct *sco5_core_data; @@ -451,28 +446,28 @@ const char *const bfd_errmsgs[] = { - N_("No error"), - N_("System call error"), - N_("Invalid bfd target"), - N_("File in wrong format"), - N_("Archive object file in wrong format"), - N_("Invalid operation"), - N_("Memory exhausted"), - N_("No symbols"), - N_("Archive has no index; run ranlib to add one"), - N_("No more archived files"), - N_("Malformed archive"), + N_("no error"), + N_("system call error"), + N_("invalid bfd target"), + N_("file in wrong format"), + N_("archive object file in wrong format"), + N_("invalid operation"), + N_("memory exhausted"), + N_("no symbols"), + N_("archive has no index; run ranlib to add one"), + N_("no more archived files"), + N_("malformed archive"), N_("DSO missing from command line"), - N_("File format not recognized"), - N_("File format is ambiguous"), - N_("Section has no contents"), - N_("Nonrepresentable section on output"), - N_("Symbol needs debug section which does not exist"), - N_("Bad value"), - N_("File truncated"), - N_("File too big"), - N_("Error reading %s: %s"), - N_("#") + N_("file format not recognized"), + N_("file format is ambiguous"), + N_("section has no contents"), + N_("nonrepresentable section on output"), + N_("symbol needs debug section which does not exist"), + N_("bad value"), + N_("file truncated"), + N_("file too big"), + N_("error reading %s: %s"), + N_("#") }; /* @@ -649,10 +644,7 @@ }; /* This macro and _bfd_doprnt taken from libiberty _doprnt.c, tidied a - little and extended to handle '%A', '%B' and positional parameters. - 'L' as a modifer for integer formats is used for bfd_vma and - bfd_size_type args, which vary in size depending on BFD - configuration. */ + little and extended to handle '%pA', '%pB' and positional parameters. */ #define PRINT_TYPE(TYPE, FIELD) \ do \ @@ -800,21 +792,6 @@ PRINT_TYPE (int, i); else { - /* L modifier for bfd_vma or bfd_size_type may be - either long long or long. */ - if (ptr[-2] == 'L') - { - sptr[-2] = 'l'; - if (BFD_ARCH_SIZE < 64 || BFD_HOST_64BIT_LONG) - wide_width = 1; - else - { - sptr[-1] = 'l'; - *sptr++ = ptr[-1]; - *sptr = '\0'; - } - } - switch (wide_width) { case 0: @@ -866,53 +843,55 @@ PRINT_TYPE (char *, p); break; case 'p': - PRINT_TYPE (void *, p); - break; - case 'A': - { - asection *sec; - bfd *abfd; - const char *group = NULL; - struct coff_comdat_info *ci; - - sec = (asection *) args[arg_no].p; - if (sec == NULL) - /* Invoking %A with a null section pointer is an - internal error. */ - abort (); - abfd = sec->owner; - if (abfd != NULL - && bfd_get_flavour (abfd) == bfd_target_elf_flavour - && elf_next_in_group (sec) != NULL - && (sec->flags & SEC_GROUP) == 0) - group = elf_group_name (sec); - else if (abfd != NULL - && bfd_get_flavour (abfd) == bfd_target_coff_flavour - && (ci = bfd_coff_get_comdat_section (sec->owner, - sec)) != NULL) - group = ci->name; - if (group != NULL) - result = fprintf (stream, "%s[%s]", sec->name, group); - else - result = fprintf (stream, "%s", sec->name); - } - break; - case 'B': - { - bfd *abfd; + if (*ptr == 'A') + { + asection *sec; + bfd *abfd; + const char *group = NULL; + struct coff_comdat_info *ci; - abfd = (bfd *) args[arg_no].p; - if (abfd == NULL) - /* Invoking %B with a null bfd pointer is an - internal error. */ - abort (); - else if (abfd->my_archive - && !bfd_is_thin_archive (abfd->my_archive)) - result = fprintf (stream, "%s(%s)", - abfd->my_archive->filename, abfd->filename); - else - result = fprintf (stream, "%s", abfd->filename); - } + ptr++; + sec = (asection *) args[arg_no].p; + if (sec == NULL) + /* Invoking %pA with a null section pointer is an + internal error. */ + abort (); + abfd = sec->owner; + if (abfd != NULL + && bfd_get_flavour (abfd) == bfd_target_elf_flavour + && elf_next_in_group (sec) != NULL + && (sec->flags & SEC_GROUP) == 0) + group = elf_group_name (sec); + else if (abfd != NULL + && bfd_get_flavour (abfd) == bfd_target_coff_flavour + && (ci = bfd_coff_get_comdat_section (sec->owner, + sec)) != NULL) + group = ci->name; + if (group != NULL) + result = fprintf (stream, "%s[%s]", sec->name, group); + else + result = fprintf (stream, "%s", sec->name); + } + else if (*ptr == 'B') + { + bfd *abfd; + + ptr++; + abfd = (bfd *) args[arg_no].p; + if (abfd == NULL) + /* Invoking %pB with a null bfd pointer is an + internal error. */ + abort (); + else if (abfd->my_archive + && !bfd_is_thin_archive (abfd->my_archive)) + result = fprintf (stream, "%s(%s)", + abfd->my_archive->filename, + abfd->filename); + else + result = fprintf (stream, "%s", abfd->filename); + } + else + PRINT_TYPE (void *, p); break; default: abort(); @@ -1049,12 +1028,6 @@ arg_type = Int; else { - if (ptr[-2] == 'L') - { - if (BFD_ARCH_SIZE < 64 || BFD_HOST_64BIT_LONG) - wide_width = 1; - } - switch (wide_width) { case 0: @@ -1094,9 +1067,11 @@ } break; case 's': + arg_type = Ptr; + break; case 'p': - case 'A': - case 'B': + if (*ptr == 'A' || *ptr == 'B') + ptr++; arg_type = Ptr; break; default: @@ -1113,14 +1088,6 @@ return arg_count; } -/* This is the default routine to handle BFD error messages. - Like fprintf (stderr, ...), but also handles some extra format specifiers. - - %A section name from section. For group components, prints group name too. - %B file name from bfd. For archive components, prints archive too. - - Beware: Only supports a maximum of 9 format arguments. */ - static void error_handler_internal (const char *fmt, va_list ap) { @@ -1182,6 +1149,26 @@ static bfd_error_handler_type _bfd_error_internal = error_handler_internal; +/* +FUNCTION + _bfd_error_handler + +SYNOPSIS + void _bfd_error_handler (const char *fmt, ...) ATTRIBUTE_PRINTF_1; + +DESCRIPTION + This is the default routine to handle BFD error messages. + Like fprintf (stderr, ...), but also handles some extra format + specifiers. + + %pA section name from section. For group components, prints + group name too. + %pB file name from bfd. For archive components, prints + archive too. + + Beware: Only supports a maximum of 9 format arguments. +*/ + void _bfd_error_handler (const char *fmt, ...) { @@ -2158,7 +2145,7 @@ bfd_emul_get_commonpagesize SYNOPSIS - bfd_vma bfd_emul_get_commonpagesize (const char *); + bfd_vma bfd_emul_get_commonpagesize (const char *, bfd_boolean); DESCRIPTION Returns the common page size, in bytes, as determined by @@ -2169,15 +2156,22 @@ */ bfd_vma -bfd_emul_get_commonpagesize (const char *emul) +bfd_emul_get_commonpagesize (const char *emul, bfd_boolean relro) { const bfd_target *target; target = bfd_find_target (emul, NULL); if (target != NULL && target->flavour == bfd_target_elf_flavour) - return xvec_get_elf_backend_data (target)->commonpagesize; + { + const struct elf_backend_data *bed; + bed = xvec_get_elf_backend_data (target); + if (relro) + return bed->relropagesize; + else + return bed->commonpagesize; + } return 0; } diff -Nru gdb-8.1/bfd/bfd-in2.h gdb-8.2/bfd/bfd-in2.h --- gdb-8.1/bfd/bfd-in2.h 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/bfd/bfd-in2.h 2018-09-05 07:44:28.000000000 +0000 @@ -41,6 +41,7 @@ #include "ansidecl.h" #include "symcat.h" +#include "diagnostics.h" #include #include @@ -98,6 +99,24 @@ typedef BFD_HOST_U_64_BIT bfd_uint64_t; #endif +#ifdef HAVE_INTTYPES_H +# include +#else +# if BFD_HOST_64BIT_LONG +# define BFD_PRI64 "l" +# elif defined (__MSVCRT__) +# define BFD_PRI64 "I64" +# else +# define BFD_PRI64 "ll" +# endif +# undef PRId64 +# define PRId64 BFD_PRI64 "d" +# undef PRIu64 +# define PRIu64 BFD_PRI64 "u" +# undef PRIx64 +# define PRIx64 BFD_PRI64 "x" +#endif + #if BFD_ARCH_SIZE >= 64 #define BFD64 #endif @@ -570,6 +589,8 @@ void bfd_putl64 (bfd_uint64_t, void *); void bfd_putb32 (bfd_vma, void *); void bfd_putl32 (bfd_vma, void *); +void bfd_putb24 (bfd_vma, void *); +void bfd_putl24 (bfd_vma, void *); void bfd_putb16 (bfd_vma, void *); void bfd_putl16 (bfd_vma, void *); @@ -597,8 +618,6 @@ /* Externally visible ECOFF routines. */ -extern bfd_vma bfd_ecoff_get_gp_value - (bfd * abfd); extern bfd_boolean bfd_ecoff_set_gp_value (bfd *abfd, bfd_vma gp_value); extern bfd_boolean bfd_ecoff_set_regmasks @@ -767,8 +786,6 @@ extern bfd_boolean bfd_i386linux_size_dynamic_sections (bfd *, struct bfd_link_info *); -extern bfd_boolean bfd_m68klinux_size_dynamic_sections - (bfd *, struct bfd_link_info *); extern bfd_boolean bfd_sparclinux_size_dynamic_sections (bfd *, struct bfd_link_info *); @@ -837,9 +854,6 @@ extern bfd_boolean bfd_coff_set_symbol_class (bfd *, struct bfd_symbol *, unsigned int); -extern bfd_boolean bfd_m68k_coff_create_embedded_relocs - (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **); - /* ARM VFP11 erratum workaround support. */ typedef enum { @@ -1324,13 +1338,10 @@ /* The section contains thread local data. */ #define SEC_THREAD_LOCAL 0x400 - /* The section has GOT references. This flag is only for the - linker, and is currently only used by the elf32-hppa back end. - It will be set if global offset table references were detected - in this section, which indicate to the linker that the section - contains PIC code, and must be handled specially when doing a - static link. */ -#define SEC_HAS_GOT_REF 0x800 + /* The section's size is fixed. Generic linker code will not + recalculate it and it is up to whoever has set this flag to + get the size right. */ +#define SEC_FIXED_SIZE 0x800 /* The section contains common symbols (symbols may be defined multiple times, the value of a symbol is the amount of @@ -1884,8 +1895,6 @@ asection *bfd_make_section (bfd *, const char *name); -int bfd_get_next_section_id (void); - bfd_boolean bfd_set_section_flags (bfd *abfd, asection *sec, flagword flags); @@ -1964,23 +1973,6 @@ #define bfd_mach_mcf_isa_c_nodiv_mac 30 #define bfd_mach_mcf_isa_c_nodiv_emac 31 bfd_arch_vax, /* DEC Vax. */ - bfd_arch_i960, /* Intel 960. */ - /* The order of the following is important. - lower number indicates a machine type that - only accepts a subset of the instructions - available to machines with higher numbers. - The exception is the "ca", which is - incompatible with all other machines except - "core". */ - -#define bfd_mach_i960_core 1 -#define bfd_mach_i960_ka_sa 2 -#define bfd_mach_i960_kb_sb 3 -#define bfd_mach_i960_mc 4 -#define bfd_mach_i960_xa 5 -#define bfd_mach_i960_ca 6 -#define bfd_mach_i960_jx 7 -#define bfd_mach_i960_hx 8 bfd_arch_or1k, /* OpenRISC 1000. */ #define bfd_mach_or1k 1 @@ -2096,13 +2088,8 @@ #define bfd_mach_iamcu (1 << 8) #define bfd_mach_i386_iamcu (bfd_mach_i386_i386 | bfd_mach_iamcu) #define bfd_mach_i386_iamcu_intel_syntax (bfd_mach_i386_iamcu | bfd_mach_i386_intel_syntax) - bfd_arch_we32k, /* AT&T WE32xxx. */ - bfd_arch_tahoe, /* CCI/Harris Tahoe. */ - bfd_arch_i860, /* Intel 860. */ - bfd_arch_i370, /* IBM 360/370 Mainframes. */ bfd_arch_romp, /* IBM ROMP PC/RT. */ bfd_arch_convex, /* Convex. */ - bfd_arch_m88k, /* Motorola 88xxx. */ bfd_arch_m98k, /* Motorola 98xxx. */ bfd_arch_pyramid, /* Pyramid Technology. */ bfd_arch_h8300, /* Renesas H8/300 (formerly Hitachi H8/300). */ @@ -2165,10 +2152,11 @@ #define bfd_mach_m6812s 2 bfd_arch_m9s12x, /* Freescale S12X. */ bfd_arch_m9s12xg, /* Freescale XGATE. */ + bfd_arch_s12z, /* Freescale S12Z. */ +#define bfd_mach_s12z_default 0 bfd_arch_z8k, /* Zilog Z8000. */ #define bfd_mach_z8001 1 #define bfd_mach_z8002 2 - bfd_arch_h8500, /* Renesas H8/500 (formerly Hitachi H8/500). */ bfd_arch_sh, /* Renesas / SuperH SH (formerly Hitachi SH). */ #define bfd_mach_sh 1 #define bfd_mach_sh2 0x20 @@ -2190,7 +2178,6 @@ #define bfd_mach_sh4a 0x4a #define bfd_mach_sh4a_nofpu 0x4b #define bfd_mach_sh4al_dsp 0x4d -#define bfd_mach_sh5 0x50 bfd_arch_alpha, /* Dec Alpha. */ #define bfd_mach_alpha_ev4 0x10 #define bfd_mach_alpha_ev5 0x20 @@ -2210,6 +2197,19 @@ #define bfd_mach_arm_ep9312 11 #define bfd_mach_arm_iWMMXt 12 #define bfd_mach_arm_iWMMXt2 13 +#define bfd_mach_arm_5TEJ 14 +#define bfd_mach_arm_6 15 +#define bfd_mach_arm_6KZ 16 +#define bfd_mach_arm_6T2 17 +#define bfd_mach_arm_6K 18 +#define bfd_mach_arm_7 19 +#define bfd_mach_arm_6M 20 +#define bfd_mach_arm_6SM 21 +#define bfd_mach_arm_7EM 22 +#define bfd_mach_arm_8 23 +#define bfd_mach_arm_8R 24 +#define bfd_mach_arm_8M_BASE 25 +#define bfd_mach_arm_8M_MAIN 26 bfd_arch_nds32, /* Andes NDS32. */ #define bfd_mach_n1 1 #define bfd_mach_n1h 2 @@ -2217,7 +2217,6 @@ #define bfd_mach_n1h_v3 4 #define bfd_mach_n1h_v3m 5 bfd_arch_ns32k, /* National Semiconductors ns32000. */ - bfd_arch_w65, /* WDC 65816. */ bfd_arch_tic30, /* Texas Instruments TMS320C30. */ bfd_arch_tic4x, /* Texas Instruments TMS320C3X/4X. */ #define bfd_mach_tic3x 30 @@ -2398,6 +2397,9 @@ #define bfd_mach_wasm32 1 bfd_arch_pru, /* PRU. */ #define bfd_mach_pru 0 + bfd_arch_nfp, /* Netronome Flow Processor */ +#define bfd_mach_nfp3200 0x3200 +#define bfd_mach_nfp6000 0x6000 bfd_arch_last }; @@ -2491,10 +2493,9 @@ /* The symbol to relocate against was undefined. */ bfd_reloc_undefined, - /* The relocation was performed, but may not be ok - presently - generated only when linking i960 coff files with i960 b.out - symbols. If this type is returned, the error_message argument - to bfd_perform_relocation will be set. */ + /* The relocation was performed, but may not be ok. If this type is + returned, the error_message argument to bfd_perform_relocation + will be set. */ bfd_reloc_dangerous } bfd_reloc_status_type; @@ -2574,8 +2575,7 @@ /* If this field is non null, then the supplied function is called rather than the normal function. This allows really - strange relocation methods to be accommodated (e.g., i960 callj - instructions). */ + strange relocation methods to be accommodated. */ bfd_reloc_status_type (*special_function) (bfd *, arelent *, struct bfd_symbol *, void *, asection *, bfd *, char **); @@ -2619,7 +2619,7 @@ slot of the instruction, so that a PC relative relocation can be made just by adding in an ordinary offset (e.g., sun3 a.out). Some formats leave the displacement part of an instruction - empty (e.g., m88k bcs); this flag signals the fact. */ + empty (e.g., ELF); this flag signals the fact. */ bfd_boolean pcrel_offset; }; @@ -2700,9 +2700,7 @@ /* PC-relative relocations. Sometimes these are relative to the address of the relocation itself; sometimes they are relative to the start of -the section containing the relocation. It depends on the specific target. - -The 24-bit relocation is used in some Intel 960 configurations. */ +the section containing the relocation. It depends on the specific target. */ BFD_RELOC_64_PCREL, BFD_RELOC_32_PCREL, BFD_RELOC_24_PCREL, @@ -2794,9 +2792,6 @@ BFD_RELOC_GPREL16, BFD_RELOC_GPREL32, -/* Reloc types used for i960/b.out. */ - BFD_RELOC_I960_CALLJ, - /* SPARC ELF relocations. There is probably some overlap with other relocation types already defined. */ BFD_RELOC_NONE, @@ -3550,6 +3545,15 @@ BFD_RELOC_ARM_THUMB_MOVW_PCREL, BFD_RELOC_ARM_THUMB_MOVT_PCREL, +/* ARM FDPIC specific relocations. */ + BFD_RELOC_ARM_GOTFUNCDESC, + BFD_RELOC_ARM_GOTOFFFUNCDESC, + BFD_RELOC_ARM_FUNCDESC, + BFD_RELOC_ARM_FUNCDESC_VALUE, + BFD_RELOC_ARM_TLS_GD32_FDPIC, + BFD_RELOC_ARM_TLS_LDM32_FDPIC, + BFD_RELOC_ARM_TLS_IE32_FDPIC, + /* Relocations for setting up GOTs and PLTs for shared libraries. */ BFD_RELOC_ARM_JUMP_SLOT, BFD_RELOC_ARM_GLOB_DAT, @@ -5267,6 +5271,11 @@ a matching LO8XG part. */ BFD_RELOC_M68HC12_HI8XG, +/* Freescale S12Z reloc. +This is a 15 bit relative address. If the most significant bits are all zero +then it may be truncated to 8 bits. */ + BFD_RELOC_S12Z_15_PCREL, + /* NS CR16C Relocations. */ BFD_RELOC_16C_NUM08, BFD_RELOC_16C_NUM08_C, @@ -5420,40 +5429,6 @@ BFD_RELOC_CRIS_DTPMOD, BFD_RELOC_CRIS_32_IE, -/* Intel i860 Relocations. */ - BFD_RELOC_860_COPY, - BFD_RELOC_860_GLOB_DAT, - BFD_RELOC_860_JUMP_SLOT, - BFD_RELOC_860_RELATIVE, - BFD_RELOC_860_PC26, - BFD_RELOC_860_PLT26, - BFD_RELOC_860_PC16, - BFD_RELOC_860_LOW0, - BFD_RELOC_860_SPLIT0, - BFD_RELOC_860_LOW1, - BFD_RELOC_860_SPLIT1, - BFD_RELOC_860_LOW2, - BFD_RELOC_860_SPLIT2, - BFD_RELOC_860_LOW3, - BFD_RELOC_860_LOGOT0, - BFD_RELOC_860_SPGOT0, - BFD_RELOC_860_LOGOT1, - BFD_RELOC_860_SPGOT1, - BFD_RELOC_860_LOGOTOFF0, - BFD_RELOC_860_SPGOTOFF0, - BFD_RELOC_860_LOGOTOFF1, - BFD_RELOC_860_SPGOTOFF1, - BFD_RELOC_860_LOGOTOFF2, - BFD_RELOC_860_LOGOTOFF3, - BFD_RELOC_860_LOPC, - BFD_RELOC_860_HIGHADJ, - BFD_RELOC_860_HAGOT, - BFD_RELOC_860_HAGOTOFF, - BFD_RELOC_860_HAPC, - BFD_RELOC_860_HIGH, - BFD_RELOC_860_HIGOT, - BFD_RELOC_860_HIGOTOFF, - /* OpenRISC 1000 Relocations. */ BFD_RELOC_OR1K_REL_26, BFD_RELOC_OR1K_GOTPC_HI16, @@ -5793,6 +5768,9 @@ /* Same as BFD_RELOC_32_PCREL but with an implicit -4 addend. */ BFD_RELOC_MACH_O_X86_64_PCREL32_4, +/* Used when referencing a TLV entry. */ + BFD_RELOC_MACH_O_X86_64_TLV, + /* Addend for PAGE or PAGEOFF. */ BFD_RELOC_MACH_O_ARM64_ADDEND, @@ -5889,6 +5867,16 @@ to two words (uses imm instruction). */ BFD_RELOC_MICROBLAZE_64_TLSTPREL, +/* This is a 64 bit reloc that stores the 32 bit pc relative +value in two words (with an imm instruction). The relocation is +PC-relative offset from start of TEXT. */ + BFD_RELOC_MICROBLAZE_64_TEXTPCREL, + +/* This is a 64 bit reloc that stores the 32 bit offset +value in two words (with an imm instruction). The relocation is +relative offset from start of TEXT. */ + BFD_RELOC_MICROBLAZE_64_TEXTREL, + /* AArch64 pseudo relocation code to mark the start of the AArch64 relocation enumerators. N.B. the order of the enumerators is important as several tables in the AArch64 bfd backend are indexed @@ -5957,6 +5945,36 @@ value's sign. */ BFD_RELOC_AARCH64_MOVW_G2_S, +/* AArch64 MOV[NZ] instruction with most significant bits 0 to 15 +of a signed value. Changes instruction to MOVZ or MOVN depending on the +value's sign. */ + BFD_RELOC_AARCH64_MOVW_PREL_G0, + +/* AArch64 MOV[NZ] instruction with most significant bits 0 to 15 +of a signed value. Changes instruction to MOVZ or MOVN depending on the +value's sign. */ + BFD_RELOC_AARCH64_MOVW_PREL_G0_NC, + +/* AArch64 MOVK instruction with most significant bits 16 to 31 +of a signed value. */ + BFD_RELOC_AARCH64_MOVW_PREL_G1, + +/* AArch64 MOVK instruction with most significant bits 16 to 31 +of a signed value. */ + BFD_RELOC_AARCH64_MOVW_PREL_G1_NC, + +/* AArch64 MOVK instruction with most significant bits 32 to 47 +of a signed value. */ + BFD_RELOC_AARCH64_MOVW_PREL_G2, + +/* AArch64 MOVK instruction with most significant bits 32 to 47 +of a signed value. */ + BFD_RELOC_AARCH64_MOVW_PREL_G2_NC, + +/* AArch64 MOVK instruction with most significant bits 47 to 63 +of a signed value. */ + BFD_RELOC_AARCH64_MOVW_PREL_G3, + /* AArch64 Load Literal instruction, holding a 19 bit pc-relative word offset. The lowest two bits must be zero and are not stored in the instruction, giving a 21 bit signed byte offset. */ @@ -6184,6 +6202,34 @@ /* AArch64 TLS LOCAL EXEC relocation. */ BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC, +/* bit[11:1] of byte offset to module TLS base address, encoded in ldst +instructions. */ + BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12, + +/* Similar as BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12, but no overflow check. */ + BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12_NC, + +/* bit[11:2] of byte offset to module TLS base address, encoded in ldst +instructions. */ + BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12, + +/* Similar as BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12, but no overflow check. */ + BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12_NC, + +/* bit[11:3] of byte offset to module TLS base address, encoded in ldst +instructions. */ + BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12, + +/* Similar as BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12, but no overflow check. */ + BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12_NC, + +/* bit[11:0] of byte offset to module TLS base address, encoded in ldst +instructions. */ + BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12, + +/* Similar as BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12, but no overflow check. */ + BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12_NC, + /* AArch64 TLS DESC relocation. */ BFD_RELOC_AARCH64_TLSDESC_LD_PREL19, @@ -6267,6 +6313,14 @@ /* Similar as BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12, but no overflow check. */ BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC, +/* AArch64 pseudo relocation code for TLS local exec mode. It's to be +used internally by the AArch64 assembler and not (currently) written to +any object files. */ + BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12, + +/* Similar as BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12, but no overflow check. */ + BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12_NC, + /* AArch64 pseudo relocation code to be used internally by the AArch64 assembler and not (currently) written to any object files. */ BFD_RELOC_AARCH64_LD_GOT_LO12_NC, @@ -6751,8 +6805,9 @@ least-recently-used list of BFDs. */ struct bfd *lru_prev, *lru_next; - /* When a file is closed by the caching routines, BFD retains - state information on the file here... */ + /* Track current file position (or current buffer offset for + in-memory BFDs). When a file is closed by the caching routines, + BFD retains state information on the file here. */ ufile_ptr where; /* File modified time, if mtime_set is TRUE. */ @@ -6981,21 +7036,15 @@ { struct aout_data_struct *aout_data; struct artdata *aout_ar_data; - struct _oasys_data *oasys_obj_data; - struct _oasys_ar_data *oasys_ar_data; struct coff_tdata *coff_obj_data; struct pe_tdata *pe_obj_data; struct xcoff_tdata *xcoff_obj_data; struct ecoff_tdata *ecoff_obj_data; - struct ieee_data_struct *ieee_data; - struct ieee_ar_data_struct *ieee_ar_data; struct srec_data_struct *srec_data; struct verilog_data_struct *verilog_data; struct ihex_data_struct *ihex_data; struct tekhex_data_struct *tekhex_data; struct elf_obj_tdata *elf_obj_data; - struct nlm_obj_tdata *nlm_obj_data; - struct bout_data_struct *bout_data; struct mmo_data_struct *mmo_data; struct sun_core_struct *sun_core_data; struct sco5_core_struct *sco5_core_data; @@ -7080,6 +7129,8 @@ typedef void (*bfd_error_handler_type) (const char *, va_list); +void _bfd_error_handler (const char *fmt, ...) ATTRIBUTE_PRINTF_1; + bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type); void bfd_set_error_program_name (const char *); @@ -7230,7 +7281,7 @@ void bfd_emul_set_maxpagesize (const char *, bfd_vma); -bfd_vma bfd_emul_get_commonpagesize (const char *); +bfd_vma bfd_emul_get_commonpagesize (const char *, bfd_boolean); void bfd_emul_set_commonpagesize (const char *, bfd_vma); @@ -7304,9 +7355,6 @@ bfd_target_ecoff_flavour, bfd_target_xcoff_flavour, bfd_target_elf_flavour, - bfd_target_ieee_flavour, - bfd_target_nlm_flavour, - bfd_target_oasys_flavour, bfd_target_tekhex_flavour, bfd_target_srec_flavour, bfd_target_verilog_flavour, @@ -7619,6 +7667,7 @@ NAME##_bfd_discard_group, \ NAME##_section_already_linked, \ NAME##_bfd_define_common_symbol, \ + NAME##_bfd_link_hide_symbol, \ NAME##_bfd_define_start_stop int (*_bfd_sizeof_headers) (bfd *, struct bfd_link_info *); @@ -7685,6 +7734,10 @@ bfd_boolean (*_bfd_define_common_symbol) (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *); + /* Hide a symbol. */ + void (*_bfd_link_hide_symbol) (bfd *, struct bfd_link_info *, + struct bfd_link_hash_entry *); + /* Define a __start, __stop, .startof. or .sizeof. symbol. */ struct bfd_link_hash_entry * (*_bfd_define_start_stop) (struct bfd_link_info *, const char *, @@ -7768,6 +7821,13 @@ #define bfd_define_common_symbol(output_bfd, info, h) \ BFD_SEND (output_bfd, _bfd_define_common_symbol, (output_bfd, info, h)) +void _bfd_generic_link_hide_symbol + (bfd *output_bfd, struct bfd_link_info *info, + struct bfd_link_hash_entry *h); + +#define bfd_link_hide_symbol(output_bfd, info, h) \ + BFD_SEND (output_bfd, _bfd_link_hide_symbol, (output_bfd, info, h)) + struct bfd_link_hash_entry *bfd_generic_define_start_stop (struct bfd_link_info *info, const char *symbol, asection *sec); diff -Nru gdb-8.1/bfd/bfd-in.h gdb-8.2/bfd/bfd-in.h --- gdb-8.1/bfd/bfd-in.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/bfd-in.h 2018-09-05 07:44:28.000000000 +0000 @@ -34,6 +34,7 @@ #include "ansidecl.h" #include "symcat.h" +#include "diagnostics.h" #include #include @@ -91,6 +92,24 @@ typedef BFD_HOST_U_64_BIT bfd_uint64_t; #endif +#ifdef HAVE_INTTYPES_H +# include +#else +# if BFD_HOST_64BIT_LONG +# define BFD_PRI64 "l" +# elif defined (__MSVCRT__) +# define BFD_PRI64 "I64" +# else +# define BFD_PRI64 "ll" +# endif +# undef PRId64 +# define PRId64 BFD_PRI64 "d" +# undef PRIu64 +# define PRIu64 BFD_PRI64 "u" +# undef PRIx64 +# define PRIx64 BFD_PRI64 "x" +#endif + #if BFD_ARCH_SIZE >= 64 #define BFD64 #endif @@ -563,6 +582,8 @@ void bfd_putl64 (bfd_uint64_t, void *); void bfd_putb32 (bfd_vma, void *); void bfd_putl32 (bfd_vma, void *); +void bfd_putb24 (bfd_vma, void *); +void bfd_putl24 (bfd_vma, void *); void bfd_putb16 (bfd_vma, void *); void bfd_putl16 (bfd_vma, void *); @@ -590,8 +611,6 @@ /* Externally visible ECOFF routines. */ -extern bfd_vma bfd_ecoff_get_gp_value - (bfd * abfd); extern bfd_boolean bfd_ecoff_set_gp_value (bfd *abfd, bfd_vma gp_value); extern bfd_boolean bfd_ecoff_set_regmasks @@ -760,8 +779,6 @@ extern bfd_boolean bfd_i386linux_size_dynamic_sections (bfd *, struct bfd_link_info *); -extern bfd_boolean bfd_m68klinux_size_dynamic_sections - (bfd *, struct bfd_link_info *); extern bfd_boolean bfd_sparclinux_size_dynamic_sections (bfd *, struct bfd_link_info *); @@ -830,9 +847,6 @@ extern bfd_boolean bfd_coff_set_symbol_class (bfd *, struct bfd_symbol *, unsigned int); -extern bfd_boolean bfd_m68k_coff_create_embedded_relocs - (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **); - /* ARM VFP11 erratum workaround support. */ typedef enum { diff -Nru gdb-8.1/bfd/bfdio.c gdb-8.2/bfd/bfdio.c --- gdb-8.1/bfd/bfdio.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/bfdio.c 2018-09-05 07:27:13.000000000 +0000 @@ -176,27 +176,40 @@ bfd_size_type bfd_bread (void *ptr, bfd_size_type size, bfd *abfd) { - size_t nread; + file_ptr nread; + bfd *element_bfd = abfd; + ufile_ptr offset = 0; + + while (abfd->my_archive != NULL + && !bfd_is_thin_archive (abfd->my_archive)) + { + offset += abfd->origin; + abfd = abfd->my_archive; + } /* If this is an archive element, don't read past the end of this element. */ - if (abfd->arelt_data != NULL) + if (element_bfd->arelt_data != NULL) { - bfd_size_type maxbytes = arelt_size (abfd); + bfd_size_type maxbytes = arelt_size (element_bfd); - if (abfd->where + size > maxbytes) + if (abfd->where < offset || abfd->where - offset >= maxbytes) { - if (abfd->where >= maxbytes) - return 0; - size = maxbytes - abfd->where; + bfd_set_error (bfd_error_invalid_operation); + return -1; } + if (abfd->where - offset + size > maxbytes) + size = maxbytes - (abfd->where - offset); } - if (abfd->iovec) - nread = abfd->iovec->bread (abfd, ptr, size); - else - nread = 0; - if (nread != (size_t) -1) + if (abfd->iovec == NULL) + { + bfd_set_error (bfd_error_invalid_operation); + return -1; + } + + nread = abfd->iovec->bread (abfd, ptr, size); + if (nread != -1) abfd->where += nread; return nread; @@ -205,16 +218,22 @@ bfd_size_type bfd_bwrite (const void *ptr, bfd_size_type size, bfd *abfd) { - size_t nwrote; + file_ptr nwrote; - if (abfd->iovec) - nwrote = abfd->iovec->bwrite (abfd, ptr, size); - else - nwrote = 0; + while (abfd->my_archive != NULL + && !bfd_is_thin_archive (abfd->my_archive)) + abfd = abfd->my_archive; - if (nwrote != (size_t) -1) + if (abfd->iovec == NULL) + { + bfd_set_error (bfd_error_invalid_operation); + return -1; + } + + nwrote = abfd->iovec->bwrite (abfd, ptr, size); + if (nwrote != -1) abfd->where += nwrote; - if (nwrote != size) + if ((bfd_size_type) nwrote != size) { #ifdef ENOSPC errno = ENOSPC; @@ -227,33 +246,35 @@ file_ptr bfd_tell (bfd *abfd) { + ufile_ptr offset = 0; file_ptr ptr; - if (abfd->iovec) + while (abfd->my_archive != NULL + && !bfd_is_thin_archive (abfd->my_archive)) { - bfd *parent_bfd = abfd; - ptr = abfd->iovec->btell (abfd); - - while (parent_bfd->my_archive != NULL - && !bfd_is_thin_archive (parent_bfd->my_archive)) - { - ptr -= parent_bfd->origin; - parent_bfd = parent_bfd->my_archive; - } + offset += abfd->origin; + abfd = abfd->my_archive; } - else - ptr = 0; + if (abfd->iovec == NULL) + return 0; + + ptr = abfd->iovec->btell (abfd); abfd->where = ptr; - return ptr; + return ptr - offset; } int bfd_flush (bfd *abfd) { - if (abfd->iovec) - return abfd->iovec->bflush (abfd); - return 0; + while (abfd->my_archive != NULL + && !bfd_is_thin_archive (abfd->my_archive)) + abfd = abfd->my_archive; + + if (abfd->iovec == NULL) + return 0; + + return abfd->iovec->bflush (abfd); } /* Returns 0 for success, negative value for failure (in which case @@ -263,11 +284,17 @@ { int result; - if (abfd->iovec) - result = abfd->iovec->bstat (abfd, statbuf); - else - result = -1; + while (abfd->my_archive != NULL + && !bfd_is_thin_archive (abfd->my_archive)) + abfd = abfd->my_archive; + if (abfd->iovec == NULL) + { + bfd_set_error (bfd_error_invalid_operation); + return -1; + } + + result = abfd->iovec->bstat (abfd, statbuf); if (result < 0) bfd_set_error (bfd_error_system_call); return result; @@ -280,79 +307,52 @@ bfd_seek (bfd *abfd, file_ptr position, int direction) { int result; - file_ptr file_position; - /* For the time being, a BFD may not seek to it's end. The problem - is that we don't easily have a way to recognize the end of an - element in an archive. */ - - BFD_ASSERT (direction == SEEK_SET || direction == SEEK_CUR); - - if (direction == SEEK_CUR && position == 0) - return 0; + ufile_ptr offset = 0; - if (abfd->my_archive == NULL || bfd_is_thin_archive (abfd->my_archive)) + while (abfd->my_archive != NULL + && !bfd_is_thin_archive (abfd->my_archive)) { - if (direction == SEEK_SET && (bfd_vma) position == abfd->where) - return 0; + offset += abfd->origin; + abfd = abfd->my_archive; } - else - { - /* We need something smarter to optimize access to archives. - Currently, anything inside an archive is read via the file - handle for the archive. Which means that a bfd_seek on one - component affects the `current position' in the archive, as - well as in any other component. - It might be sufficient to put a spike through the cache - abstraction, and look to the archive for the file position, - but I think we should try for something cleaner. - - In the meantime, no optimization for archives. */ + if (abfd->iovec == NULL) + { + bfd_set_error (bfd_error_invalid_operation); + return -1; } - file_position = position; - if (direction == SEEK_SET) - { - bfd *parent_bfd = abfd; + /* For the time being, a BFD may not seek to it's end. The problem + is that we don't easily have a way to recognize the end of an + element in an archive. */ + BFD_ASSERT (direction == SEEK_SET || direction == SEEK_CUR); - while (parent_bfd->my_archive != NULL - && !bfd_is_thin_archive (parent_bfd->my_archive)) - { - file_position += parent_bfd->origin; - parent_bfd = parent_bfd->my_archive; - } - } + if (direction != SEEK_CUR) + position += offset; - if (abfd->iovec) - result = abfd->iovec->bseek (abfd, file_position, direction); - else - result = -1; + if ((direction == SEEK_CUR && position == 0) + || (direction == SEEK_SET && (ufile_ptr) position == abfd->where)) + return 0; + result = abfd->iovec->bseek (abfd, position, direction); if (result != 0) { - int hold_errno = errno; - - /* Force redetermination of `where' field. */ - bfd_tell (abfd); - /* An EINVAL error probably means that the file offset was absurd. */ - if (hold_errno == EINVAL) + if (errno == EINVAL) bfd_set_error (bfd_error_file_truncated); else - { - bfd_set_error (bfd_error_system_call); - errno = hold_errno; - } + bfd_set_error (bfd_error_system_call); } else { /* Adjust `where' field. */ - if (direction == SEEK_SET) - abfd->where = position; - else + if (direction == SEEK_CUR) abfd->where += position; + else + abfd->where = position; } + return result; } @@ -377,10 +377,7 @@ if (abfd->mtime_set) return abfd->mtime; - if (abfd->iovec == NULL) - return 0; - - if (abfd->iovec->bstat (abfd, &buf) != 0) + if (bfd_stat (abfd, &buf) != 0) return 0; abfd->mtime = buf.st_mtime; /* Save value in case anyone wants it */ @@ -425,10 +422,7 @@ { struct stat buf; - if (abfd->iovec == NULL) - return 0; - - if (abfd->iovec->bstat (abfd, &buf) != 0) + if (bfd_stat (abfd, &buf) != 0) return 0; return buf.st_size; @@ -479,10 +473,18 @@ int prot, int flags, file_ptr offset, void **map_addr, bfd_size_type *map_len) { - void *ret = (void *)-1; + while (abfd->my_archive != NULL + && !bfd_is_thin_archive (abfd->my_archive)) + { + offset += abfd->origin; + abfd = abfd->my_archive; + } if (abfd->iovec == NULL) - return ret; + { + bfd_set_error (bfd_error_invalid_operation); + return (void *) -1; + } return abfd->iovec->bmmap (abfd, addr, len, prot, flags, offset, map_addr, map_len); diff -Nru gdb-8.1/bfd/binary.c gdb-8.2/bfd/binary.c --- gdb-8.1/bfd/binary.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/binary.c 2018-09-05 07:27:13.000000000 +0000 @@ -211,7 +211,7 @@ #define binary_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol #define binary_read_minisymbols _bfd_generic_read_minisymbols #define binary_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol -#define binary_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) +#define binary_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false /* Set the architecture of a binary file. */ #define binary_set_arch_mach _bfd_generic_set_arch_mach @@ -273,7 +273,7 @@ if (s->filepos < 0) _bfd_error_handler /* xgettext:c-format */ - (_("warning: writing section `%A' at huge (ie negative) " + (_("warning: writing section `%pA' at huge (ie negative) " "file offset"), s); } @@ -310,6 +310,7 @@ #define binary_bfd_discard_group bfd_generic_discard_group #define binary_section_already_linked _bfd_generic_section_already_linked #define binary_bfd_define_common_symbol bfd_generic_define_common_symbol +#define binary_bfd_link_hide_symbol _bfd_generic_link_hide_symbol #define binary_bfd_define_start_stop bfd_generic_define_start_stop #define binary_bfd_link_hash_table_create _bfd_generic_link_hash_table_create #define binary_bfd_link_just_syms _bfd_generic_link_just_syms @@ -346,16 +347,16 @@ _bfd_dummy_target, }, { /* bfd_set_format */ - bfd_false, + _bfd_bool_bfd_false_error, binary_mkobject, - bfd_false, - bfd_false, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, }, { /* bfd_write_contents */ - bfd_false, - bfd_true, - bfd_false, - bfd_false, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_true, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, }, BFD_JUMP_TABLE_GENERIC (binary), diff -Nru gdb-8.1/bfd/bout.c gdb-8.2/bfd/bout.c --- gdb-8.1/bfd/bout.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/bout.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,1483 +0,0 @@ -/* BFD back-end for Intel 960 b.out binaries. - Copyright (C) 1990-2018 Free Software Foundation, Inc. - Written by Cygnus Support. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "bfdlink.h" -#include "genlink.h" -#include "bout.h" -#include "libiberty.h" - -#include "aout/stab_gnu.h" -#include "libaout.h" /* BFD a.out internal data structures. */ - -#define ABS32CODE 0 -#define ABS32CODE_SHRUNK 1 -#define PCREL24 2 -#define CALLJ 3 -#define ABS32 4 -#define PCREL13 5 -#define ABS32_MAYBE_RELAXABLE 1 -#define ABS32_WAS_RELAXABLE 2 - -#define ALIGNER 10 -#define ALIGNDONE 11 - -static reloc_howto_type howto_reloc_callj = - HOWTO (CALLJ, 0, 2, 24, TRUE, 0, complain_overflow_signed, 0,"callj", TRUE, 0x00ffffff, 0x00ffffff,FALSE); -static reloc_howto_type howto_reloc_abs32 = - HOWTO (ABS32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,0,"abs32", TRUE, 0xffffffff,0xffffffff,FALSE); -static reloc_howto_type howto_reloc_pcrel24 = - HOWTO (PCREL24, 0, 2, 24, TRUE, 0, complain_overflow_signed,0,"pcrel24", TRUE, 0x00ffffff,0x00ffffff,FALSE); -static reloc_howto_type howto_reloc_pcrel13 = - HOWTO (PCREL13, 0, 2, 13, TRUE, 0, complain_overflow_signed,0,"pcrel13", TRUE, 0x00001fff,0x00001fff,FALSE); -static reloc_howto_type howto_reloc_abs32codeshrunk = - HOWTO (ABS32CODE_SHRUNK, 0, 2, 24, TRUE, 0, complain_overflow_signed, 0,"callx->callj", TRUE, 0x00ffffff, 0x00ffffff,FALSE); -static reloc_howto_type howto_reloc_abs32code = - HOWTO (ABS32CODE, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,0,"callx", TRUE, 0xffffffff,0xffffffff,FALSE); - -static reloc_howto_type howto_align_table[] = -{ - HOWTO (ALIGNER, 0, 0x1, 0, FALSE, 0, complain_overflow_dont, 0, "align16", FALSE, 0, 0, FALSE), - HOWTO (ALIGNER, 0, 0x3, 0, FALSE, 0, complain_overflow_dont, 0, "align32", FALSE, 0, 0, FALSE), - HOWTO (ALIGNER, 0, 0x7, 0, FALSE, 0, complain_overflow_dont, 0, "align64", FALSE, 0, 0, FALSE), - HOWTO (ALIGNER, 0, 0xf, 0, FALSE, 0, complain_overflow_dont, 0, "align128", FALSE, 0, 0, FALSE), -}; - -static reloc_howto_type howto_done_align_table[] = -{ - HOWTO (ALIGNDONE, 0x1, 0x1, 0, FALSE, 0, complain_overflow_dont, 0, "donealign16", FALSE, 0, 0, FALSE), - HOWTO (ALIGNDONE, 0x3, 0x3, 0, FALSE, 0, complain_overflow_dont, 0, "donealign32", FALSE, 0, 0, FALSE), - HOWTO (ALIGNDONE, 0x7, 0x7, 0, FALSE, 0, complain_overflow_dont, 0, "donealign64", FALSE, 0, 0, FALSE), - HOWTO (ALIGNDONE, 0xf, 0xf, 0, FALSE, 0, complain_overflow_dont, 0, "donealign128", FALSE, 0, 0, FALSE), -}; - -/* Swaps the information in an executable header taken from a raw byte - stream memory image, into the internal exec_header structure. */ - -static void -bout_swap_exec_header_in (bfd *abfd, - struct external_exec *bytes, - struct internal_exec *execp) -{ - /* Now fill in fields in the execp, from the bytes in the raw data. */ - execp->a_info = H_GET_32 (abfd, bytes->e_info); - execp->a_text = GET_WORD (abfd, bytes->e_text); - execp->a_data = GET_WORD (abfd, bytes->e_data); - execp->a_bss = GET_WORD (abfd, bytes->e_bss); - execp->a_syms = GET_WORD (abfd, bytes->e_syms); - execp->a_entry = GET_WORD (abfd, bytes->e_entry); - execp->a_trsize = GET_WORD (abfd, bytes->e_trsize); - execp->a_drsize = GET_WORD (abfd, bytes->e_drsize); - execp->a_tload = GET_WORD (abfd, bytes->e_tload); - execp->a_dload = GET_WORD (abfd, bytes->e_dload); - execp->a_talign = bytes->e_talign[0]; - execp->a_dalign = bytes->e_dalign[0]; - execp->a_balign = bytes->e_balign[0]; - execp->a_relaxable = bytes->e_relaxable[0]; -} - -/* Swaps the information in an internal exec header structure into the - supplied buffer ready for writing to disk. */ - -static void -bout_swap_exec_header_out (bfd *abfd, - struct internal_exec *execp, - struct external_exec *bytes) -{ - /* Now fill in fields in the raw data, from the fields in the exec struct. */ - H_PUT_32 (abfd, execp->a_info , bytes->e_info); - PUT_WORD (abfd, execp->a_text , bytes->e_text); - PUT_WORD (abfd, execp->a_data , bytes->e_data); - PUT_WORD (abfd, execp->a_bss , bytes->e_bss); - PUT_WORD (abfd, execp->a_syms , bytes->e_syms); - PUT_WORD (abfd, execp->a_entry , bytes->e_entry); - PUT_WORD (abfd, execp->a_trsize, bytes->e_trsize); - PUT_WORD (abfd, execp->a_drsize, bytes->e_drsize); - PUT_WORD (abfd, execp->a_tload , bytes->e_tload); - PUT_WORD (abfd, execp->a_dload , bytes->e_dload); - bytes->e_talign[0] = execp->a_talign; - bytes->e_dalign[0] = execp->a_dalign; - bytes->e_balign[0] = execp->a_balign; - bytes->e_relaxable[0] = execp->a_relaxable; -} - -/* Finish up the opening of a b.out file for reading. Fill in all the - fields that are not handled by common code. */ - -static const bfd_target * -b_out_callback (bfd *abfd) -{ - struct internal_exec *execp = exec_hdr (abfd); - unsigned long bss_start; - - /* Architecture and machine type. */ - bfd_set_arch_mach (abfd, - bfd_arch_i960, /* B.out only used on i960. */ - bfd_mach_i960_core /* Default. */ - ); - - /* The positions of the string table and symbol table. */ - obj_str_filepos (abfd) = N_STROFF (execp); - obj_sym_filepos (abfd) = N_SYMOFF (execp); - - /* The alignments of the sections. */ - obj_textsec (abfd)->alignment_power = execp->a_talign; - obj_datasec (abfd)->alignment_power = execp->a_dalign; - obj_bsssec (abfd)->alignment_power = execp->a_balign; - - /* The starting addresses of the sections. */ - obj_textsec (abfd)->vma = execp->a_tload; - obj_datasec (abfd)->vma = execp->a_dload; - - obj_textsec (abfd)->lma = obj_textsec (abfd)->vma; - obj_datasec (abfd)->lma = obj_datasec (abfd)->vma; - - /* And reload the sizes, since the aout module zaps them. */ - obj_textsec (abfd)->size = execp->a_text; - - bss_start = execp->a_dload + execp->a_data; /* BSS = end of data section. */ - obj_bsssec (abfd)->vma = align_power (bss_start, execp->a_balign); - - obj_bsssec (abfd)->lma = obj_bsssec (abfd)->vma; - - /* The file positions of the sections. */ - obj_textsec (abfd)->filepos = N_TXTOFF (execp); - obj_datasec (abfd)->filepos = N_DATOFF (execp); - - /* The file positions of the relocation info. */ - obj_textsec (abfd)->rel_filepos = N_TROFF (execp); - obj_datasec (abfd)->rel_filepos = N_DROFF (execp); - - adata (abfd).page_size = 1; /* Not applicable. */ - adata (abfd).segment_size = 1; /* Not applicable. */ - adata (abfd).exec_bytes_size = EXEC_BYTES_SIZE; - - if (execp->a_relaxable) - abfd->flags |= BFD_IS_RELAXABLE; - return abfd->xvec; -} - -static const bfd_target * -b_out_object_p (bfd *abfd) -{ - struct internal_exec anexec; - struct external_exec exec_bytes; - bfd_size_type amt = EXEC_BYTES_SIZE; - - if (bfd_bread ((void *) &exec_bytes, amt, abfd) != amt) - { - if (bfd_get_error () != bfd_error_system_call) - bfd_set_error (bfd_error_wrong_format); - return 0; - } - - anexec.a_info = H_GET_32 (abfd, exec_bytes.e_info); - - if (N_BADMAG (&anexec)) - { - bfd_set_error (bfd_error_wrong_format); - return 0; - } - - bout_swap_exec_header_in (abfd, &exec_bytes, &anexec); - return aout_32_some_aout_object_p (abfd, &anexec, b_out_callback); -} - -struct bout_data_struct - { - struct aoutdata a; - struct internal_exec e; - }; - -static bfd_boolean -b_out_mkobject (bfd *abfd) -{ - struct bout_data_struct *rawptr; - bfd_size_type amt = sizeof (struct bout_data_struct); - - rawptr = bfd_zalloc (abfd, amt); - if (rawptr == NULL) - return FALSE; - - abfd->tdata.bout_data = rawptr; - exec_hdr (abfd) = &rawptr->e; - - obj_textsec (abfd) = NULL; - obj_datasec (abfd) = NULL; - obj_bsssec (abfd) = NULL; - - return TRUE; -} - -static int -b_out_symbol_cmp (const void * a_ptr, const void * b_ptr) -{ - struct aout_symbol ** a = (struct aout_symbol **) a_ptr; - struct aout_symbol ** b = (struct aout_symbol **) b_ptr; - asection *sec; - bfd_vma av, bv; - - /* Primary key is address. */ - sec = bfd_get_section (&(*a)->symbol); - av = sec->output_section->vma + sec->output_offset + (*a)->symbol.value; - sec = bfd_get_section (&(*b)->symbol); - bv = sec->output_section->vma + sec->output_offset + (*b)->symbol.value; - - if (av < bv) - return -1; - if (av > bv) - return 1; - - /* Secondary key puts CALLNAME syms last and BALNAME syms first, - so that they have the best chance of being contiguous. */ - if (IS_BALNAME ((*a)->other) || IS_CALLNAME ((*b)->other)) - return -1; - if (IS_CALLNAME ((*a)->other) || IS_BALNAME ((*b)->other)) - return 1; - - return 0; -} - -static bfd_boolean -b_out_squirt_out_relocs (bfd *abfd, asection *section) -{ - arelent **generic; - int r_extern = 0; - int r_idx; - int incode_mask; - int len_1; - unsigned int count = section->reloc_count; - struct relocation_info *native, *natptr; - bfd_size_type natsize; - int extern_mask, pcrel_mask, len_2, callj_mask; - - if (count == 0) - return TRUE; - - generic = section->orelocation; - natsize = (bfd_size_type) count * sizeof (struct relocation_info); - native = bfd_malloc (natsize); - if (!native && natsize != 0) - return FALSE; - - if (bfd_header_big_endian (abfd)) - { - /* Big-endian bit field allocation order. */ - pcrel_mask = 0x80; - extern_mask = 0x10; - len_2 = 0x40; - len_1 = 0x20; - callj_mask = 0x02; - incode_mask = 0x08; - } - else - { - /* Little-endian bit field allocation order. */ - pcrel_mask = 0x01; - extern_mask = 0x08; - len_2 = 0x04; - len_1 = 0x02; - callj_mask = 0x40; - incode_mask = 0x10; - } - - for (natptr = native; count > 0; --count, ++natptr, ++generic) - { - arelent *g = *generic; - unsigned char *raw = (unsigned char *) natptr; - asymbol *sym = *(g->sym_ptr_ptr); - asection *output_section = sym->section->output_section; - - H_PUT_32 (abfd, g->address, raw); - /* Find a type in the output format which matches the input howto - - at the moment we assume input format == output format FIXME!! */ - r_idx = 0; - /* FIXME: Need callj stuff here, and to check the howto entries to - be sure they are real for this architecture. */ - if (g->howto== &howto_reloc_callj) - raw[7] = callj_mask + pcrel_mask + len_2; - else if (g->howto == &howto_reloc_pcrel24) - raw[7] = pcrel_mask + len_2; - else if (g->howto == &howto_reloc_pcrel13) - raw[7] = pcrel_mask + len_1; - else if (g->howto == &howto_reloc_abs32code) - raw[7] = len_2 + incode_mask; - else if (g->howto >= howto_align_table - && g->howto <= (howto_align_table + ARRAY_SIZE (howto_align_table) - 1)) - { - /* symnum == -2; extern_mask not set, pcrel_mask set. */ - r_idx = -2; - r_extern = 0; - raw[7] = (pcrel_mask - | ((g->howto - howto_align_table) << 1)); - } - else - raw[7] = len_2; - - if (r_idx != 0) - /* Already mucked with r_extern, r_idx. */; - else if (bfd_is_com_section (output_section) - || bfd_is_abs_section (output_section) - || bfd_is_und_section (output_section)) - { - if (bfd_abs_section_ptr->symbol == sym) - { - /* Whoops, looked like an abs symbol, but is really an offset - from the abs section. */ - r_idx = 0; - r_extern = 0; - } - else - { - /* Fill in symbol. */ - r_extern = 1; - r_idx = (*g->sym_ptr_ptr)->udata.i; - } - } - else - { - /* Just an ordinary section. */ - r_extern = 0; - r_idx = output_section->target_index; - } - - if (bfd_header_big_endian (abfd)) - { - raw[4] = (unsigned char) (r_idx >> 16); - raw[5] = (unsigned char) (r_idx >> 8); - raw[6] = (unsigned char) (r_idx ); - } - else - { - raw[6] = (unsigned char) (r_idx >> 16); - raw[5] = (unsigned char) (r_idx>> 8); - raw[4] = (unsigned char) (r_idx ); - } - - if (r_extern) - raw[7] |= extern_mask; - } - - if (bfd_bwrite ((void *) native, natsize, abfd) != natsize) - { - free (native); - return FALSE; - } - - free (native); - - return TRUE; -} - -static bfd_boolean -b_out_write_object_contents (bfd *abfd) -{ - struct external_exec swapped_hdr; - bfd_size_type amt; - - if (! aout_32_make_sections (abfd)) - return FALSE; - - exec_hdr (abfd)->a_info = BMAGIC; - - exec_hdr (abfd)->a_text = obj_textsec (abfd)->size; - exec_hdr (abfd)->a_data = obj_datasec (abfd)->size; - exec_hdr (abfd)->a_bss = obj_bsssec (abfd)->size; - exec_hdr (abfd)->a_syms = bfd_get_symcount (abfd) * 12; - exec_hdr (abfd)->a_entry = bfd_get_start_address (abfd); - exec_hdr (abfd)->a_trsize = (obj_textsec (abfd)->reloc_count) * 8; - exec_hdr (abfd)->a_drsize = (obj_datasec (abfd)->reloc_count) * 8; - - exec_hdr (abfd)->a_talign = obj_textsec (abfd)->alignment_power; - exec_hdr (abfd)->a_dalign = obj_datasec (abfd)->alignment_power; - exec_hdr (abfd)->a_balign = obj_bsssec (abfd)->alignment_power; - - exec_hdr (abfd)->a_tload = obj_textsec (abfd)->vma; - exec_hdr (abfd)->a_dload = obj_datasec (abfd)->vma; - - bout_swap_exec_header_out (abfd, exec_hdr (abfd), &swapped_hdr); - - amt = EXEC_BYTES_SIZE; - if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0 - || bfd_bwrite ((void *) &swapped_hdr, amt, abfd) != amt) - return FALSE; - - /* Now write out reloc info, followed by syms and strings */ - if (bfd_get_symcount (abfd) != 0) - { - /* Make sure {CALL,BAL}NAME symbols remain adjacent on output - by sorting. This is complicated by the fact that stabs are - also ordered. Solve this by shifting all stabs to the end - in order, then sorting the rest. */ - - asymbol **outsyms, **p, **q; - - outsyms = bfd_get_outsymbols (abfd); - p = outsyms + bfd_get_symcount (abfd); - - for (q = p--; p >= outsyms; p--) - { - if ((*p)->flags & BSF_DEBUGGING) - { - asymbol *t = *--q; - *q = *p; - *p = t; - } - } - - if (q > outsyms) - qsort (outsyms, (size_t) (q - outsyms), sizeof (asymbol*), - b_out_symbol_cmp); - - /* Back to your regularly scheduled program. */ - if (bfd_seek (abfd, (file_ptr) (N_SYMOFF (exec_hdr (abfd))), SEEK_SET) - != 0) - return FALSE; - - if (! aout_32_write_syms (abfd)) - return FALSE; - - if (bfd_seek (abfd, (file_ptr) (N_TROFF (exec_hdr (abfd))), SEEK_SET) - != 0) - return FALSE; - - if (!b_out_squirt_out_relocs (abfd, obj_textsec (abfd))) - return FALSE; - if (bfd_seek (abfd, (file_ptr) (N_DROFF (exec_hdr (abfd))), SEEK_SET) - != 0) - return FALSE; - - if (!b_out_squirt_out_relocs (abfd, obj_datasec (abfd))) - return FALSE; - } - return TRUE; -} - -/* Some reloc hackery. */ - -#define CALLS 0x66003800 /* Template for 'calls' instruction */ -#define BAL 0x0b000000 /* Template for 'bal' instruction */ -#define BAL_MASK 0x00ffffff -#define BALX 0x85f00000 /* Template for 'balx' instruction */ -#define BALX_MASK 0x0007ffff -#define CALL 0x09000000 -#define PCREL13_MASK 0x1fff - -#define output_addr(sec) ((sec)->output_offset+(sec)->output_section->vma) - -static bfd_vma -get_value (arelent *reloc, - struct bfd_link_info *link_info, - asection *input_section) -{ - bfd_vma value; - asymbol *symbol = *(reloc->sym_ptr_ptr); - - /* A symbol holds a pointer to a section, and an offset from the - base of the section. To relocate, we find where the section will - live in the output and add that in. */ - if (bfd_is_und_section (symbol->section)) - { - struct bfd_link_hash_entry *h; - - /* The symbol is undefined in this BFD. Look it up in the - global linker hash table. FIXME: This should be changed when - we convert b.out to use a specific final_link function and - change the interface to bfd_relax_section to not require the - generic symbols. */ - h = bfd_wrapped_link_hash_lookup (input_section->owner, link_info, - bfd_asymbol_name (symbol), - FALSE, FALSE, TRUE); - if (h != (struct bfd_link_hash_entry *) NULL - && (h->type == bfd_link_hash_defined - || h->type == bfd_link_hash_defweak)) - value = h->u.def.value + output_addr (h->u.def.section); - else if (h != (struct bfd_link_hash_entry *) NULL - && h->type == bfd_link_hash_common) - value = h->u.c.size; - else - { - (*link_info->callbacks->undefined_symbol) - (link_info, bfd_asymbol_name (symbol), - input_section->owner, input_section, reloc->address, TRUE); - value = 0; - } - } - else - value = symbol->value + output_addr (symbol->section); - - /* Add the value contained in the relocation. */ - value += reloc->addend; - - return value; -} - -/* Magic to turn callx into calljx. */ - -static bfd_reloc_status_type -calljx_callback (bfd *abfd, - struct bfd_link_info *link_info, - arelent *reloc_entry, - void * src, - void * dst, - asection *input_section) -{ - int word = bfd_get_32 (abfd, src); - asymbol *symbol_in = *(reloc_entry->sym_ptr_ptr); - aout_symbol_type *symbol = aout_symbol (symbol_in); - bfd_vma value; - - value = get_value (reloc_entry, link_info, input_section); - - if (IS_CALLNAME (symbol->other)) - { - aout_symbol_type *balsym = symbol+1; - int inst = bfd_get_32 (abfd, (bfd_byte *) src-4); - - /* The next symbol should be an N_BALNAME. */ - BFD_ASSERT (IS_BALNAME (balsym->other)); - inst &= BALX_MASK; - inst |= BALX; - bfd_put_32 (abfd, (bfd_vma) inst, (bfd_byte *) dst-4); - symbol = balsym; - value = (symbol->symbol.value - + output_addr (symbol->symbol.section)); - } - - word += value + reloc_entry->addend; - - bfd_put_32 (abfd, (bfd_vma) word, dst); - return bfd_reloc_ok; -} - -/* Magic to turn call into callj. */ - -static bfd_reloc_status_type -callj_callback (bfd *abfd, - struct bfd_link_info *link_info, - arelent *reloc_entry, - void * data, - unsigned int srcidx, - unsigned int dstidx, - asection *input_section, - bfd_boolean shrinking) -{ - int word = bfd_get_32 (abfd, (bfd_byte *) data + srcidx); - asymbol *symbol_in = *(reloc_entry->sym_ptr_ptr); - aout_symbol_type *symbol = aout_symbol (symbol_in); - bfd_vma value; - - value = get_value (reloc_entry, link_info, input_section); - - if (IS_OTHER (symbol->other)) - /* Call to a system procedure - replace code with system - procedure number. */ - word = CALLS | (symbol->other - 1); - - else if (IS_CALLNAME (symbol->other)) - { - aout_symbol_type *balsym = symbol+1; - - /* The next symbol should be an N_BALNAME. */ - BFD_ASSERT (IS_BALNAME (balsym->other)); - - /* We are calling a leaf, so replace the call instruction with a - bal. */ - word = BAL | ((word - + output_addr (balsym->symbol.section) - + balsym->symbol.value + reloc_entry->addend - - dstidx - - output_addr (input_section)) - & BAL_MASK); - } - else if ((symbol->symbol.flags & BSF_SECTION_SYM) != 0) - { - /* A callj against a symbol in the same section is a fully - resolved relative call. We don't need to do anything here. - If the symbol is not in the same section, I'm not sure what - to do; fortunately, this case will probably never arise. */ - BFD_ASSERT (! shrinking); - BFD_ASSERT (symbol->symbol.section == input_section); - } - else - word = CALL | (((word & BAL_MASK) - + value - + reloc_entry->addend - - (shrinking ? dstidx : 0) - - output_addr (input_section)) - & BAL_MASK); - - bfd_put_32 (abfd, (bfd_vma) word, (bfd_byte *) data + dstidx); - return bfd_reloc_ok; -} - -static reloc_howto_type * -b_out_bfd_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, - bfd_reloc_code_real_type code) -{ - switch (code) - { - default: - return 0; - case BFD_RELOC_I960_CALLJ: - return &howto_reloc_callj; - case BFD_RELOC_32: - case BFD_RELOC_CTOR: - return &howto_reloc_abs32; - case BFD_RELOC_24_PCREL: - return &howto_reloc_pcrel24; - } -} - -static reloc_howto_type * -b_out_bfd_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, - const char *r_name) -{ - if (strcasecmp (howto_reloc_callj.name, r_name) == 0) - return &howto_reloc_callj; - if (strcasecmp (howto_reloc_abs32.name, r_name) == 0) - return &howto_reloc_abs32; - if (strcasecmp (howto_reloc_pcrel24.name, r_name) == 0) - return &howto_reloc_pcrel24; - - return NULL; -} - -/* Allocate enough room for all the reloc entries, plus pointers to them all. */ - -static bfd_boolean -b_out_slurp_reloc_table (bfd *abfd, sec_ptr asect, asymbol **symbols) -{ - struct relocation_info *rptr; - unsigned int counter; - arelent *cache_ptr; - int extern_mask, pcrel_mask, callj_mask, length_shift; - int incode_mask; - int size_mask; - bfd_vma prev_addr = 0; - unsigned int count; - bfd_size_type reloc_size, amt; - struct relocation_info *relocs; - arelent *reloc_cache; - - if (asect->relocation) - return TRUE; - - if (!aout_32_slurp_symbol_table (abfd)) - return FALSE; - - if (asect == obj_datasec (abfd)) - reloc_size = exec_hdr (abfd)->a_drsize; - else if (asect == obj_textsec (abfd)) - reloc_size = exec_hdr (abfd)->a_trsize; - else if (asect == obj_bsssec (abfd)) - reloc_size = 0; - else - { - bfd_set_error (bfd_error_invalid_operation); - return FALSE; - } - - if (bfd_seek (abfd, asect->rel_filepos, SEEK_SET) != 0) - return FALSE; - count = reloc_size / sizeof (struct relocation_info); - - relocs = bfd_malloc (reloc_size); - if (!relocs && reloc_size != 0) - return FALSE; - - amt = ((bfd_size_type) count + 1) * sizeof (arelent); - reloc_cache = bfd_malloc (amt); - if (!reloc_cache) - { - if (relocs != NULL) - free (relocs); - return FALSE; - } - - if (bfd_bread ((void *) relocs, reloc_size, abfd) != reloc_size) - { - free (reloc_cache); - if (relocs != NULL) - free (relocs); - return FALSE; - } - - if (bfd_header_big_endian (abfd)) - { - /* Big-endian bit field allocation order. */ - pcrel_mask = 0x80; - extern_mask = 0x10; - incode_mask = 0x08; - callj_mask = 0x02; - size_mask = 0x20; - length_shift = 5; - } - else - { - /* Little-endian bit field allocation order. */ - pcrel_mask = 0x01; - extern_mask = 0x08; - incode_mask = 0x10; - callj_mask = 0x40; - size_mask = 0x02; - length_shift = 1; - } - - for (rptr = relocs, cache_ptr = reloc_cache, counter = 0; - counter < count; - counter++, rptr++, cache_ptr++) - { - unsigned char *raw = (unsigned char *)rptr; - unsigned int symnum; - - cache_ptr->address = H_GET_32 (abfd, raw + 0); - cache_ptr->howto = 0; - - if (bfd_header_big_endian (abfd)) - symnum = (raw[4] << 16) | (raw[5] << 8) | raw[6]; - else - symnum = (raw[6] << 16) | (raw[5] << 8) | raw[4]; - - if (raw[7] & extern_mask) - { - /* If this is set then the r_index is an index into the symbol table; - if the bit is not set then r_index contains a section map. - We either fill in the sym entry with a pointer to the symbol, - or point to the correct section. */ - cache_ptr->sym_ptr_ptr = symbols + symnum; - cache_ptr->addend = 0; - } - else - { - /* In a.out symbols are relative to the beginning of the - file rather than sections ? - (look in translate_from_native_sym_flags) - The reloc entry addend has added to it the offset into the - file of the data, so subtract the base to make the reloc - section relative. */ - int s; - - /* Sign-extend symnum from 24 bits to whatever host uses. */ - s = symnum; - if (s & (1 << 23)) - s |= (~0U) << 24; - - cache_ptr->sym_ptr_ptr = (asymbol **)NULL; - switch (s) - { - case N_TEXT: - case N_TEXT | N_EXT: - cache_ptr->sym_ptr_ptr = obj_textsec (abfd)->symbol_ptr_ptr; - cache_ptr->addend = - obj_textsec (abfd)->vma; - break; - case N_DATA: - case N_DATA | N_EXT: - cache_ptr->sym_ptr_ptr = obj_datasec (abfd)->symbol_ptr_ptr; - cache_ptr->addend = - obj_datasec (abfd)->vma; - break; - case N_BSS: - case N_BSS | N_EXT: - cache_ptr->sym_ptr_ptr = obj_bsssec (abfd)->symbol_ptr_ptr; - cache_ptr->addend = - obj_bsssec (abfd)->vma; - break; - case N_ABS: - case N_ABS | N_EXT: - cache_ptr->sym_ptr_ptr = obj_bsssec (abfd)->symbol_ptr_ptr; - cache_ptr->addend = 0; - break; - case -2: /* .align */ - if (raw[7] & pcrel_mask) - { - cache_ptr->howto = &howto_align_table[(raw[7] >> length_shift) & 3]; - cache_ptr->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; - } - else - { - /* .org? */ - abort (); - } - cache_ptr->addend = 0; - break; - default: - BFD_ASSERT (FALSE); - break; - } - } - - /* The i960 only has a few relocation types: - abs 32-bit and pcrel 24bit. except for callj's! */ - if (cache_ptr->howto != 0) - ; - else if (raw[7] & callj_mask) - { - cache_ptr->howto = &howto_reloc_callj; - } - else if ( raw[7] & pcrel_mask) - { - if (raw[7] & size_mask) - cache_ptr->howto = &howto_reloc_pcrel13; - else - cache_ptr->howto = &howto_reloc_pcrel24; - } - else - { - if (raw[7] & incode_mask) - cache_ptr->howto = &howto_reloc_abs32code; - else - cache_ptr->howto = &howto_reloc_abs32; - } - - if (cache_ptr->address < prev_addr) - { - /* Ouch! this reloc is out of order, insert into the right place. */ - arelent tmp; - arelent *cursor = cache_ptr-1; - bfd_vma stop = cache_ptr->address; - - tmp = *cache_ptr; - while (cursor->address > stop && cursor >= reloc_cache) - { - cursor[1] = cursor[0]; - cursor--; - } - - cursor[1] = tmp; - } - else - prev_addr = cache_ptr->address; - } - - if (relocs != NULL) - free (relocs); - asect->relocation = reloc_cache; - asect->reloc_count = count; - - return TRUE; -} - -/* This is stupid. This function should be a boolean predicate. */ - -static long -b_out_canonicalize_reloc (bfd *abfd, - sec_ptr section, - arelent **relptr, - asymbol **symbols) -{ - arelent *tblptr; - unsigned int count; - - if ((section->flags & SEC_CONSTRUCTOR) != 0) - { - arelent_chain *chain = section->constructor_chain; - - for (count = 0; count < section->reloc_count; count++) - { - *relptr++ = &chain->relent; - chain = chain->next; - } - } - else - { - if (section->relocation == NULL - && ! b_out_slurp_reloc_table (abfd, section, symbols)) - return -1; - - tblptr = section->relocation; - for (count = 0; count++ < section->reloc_count;) - *relptr++ = tblptr++; - } - - *relptr = NULL; - - return section->reloc_count; -} - -static long -b_out_get_reloc_upper_bound (bfd *abfd, sec_ptr asect) -{ - if (bfd_get_format (abfd) != bfd_object) - { - bfd_set_error (bfd_error_invalid_operation); - return -1; - } - - if (asect->flags & SEC_CONSTRUCTOR) - return sizeof (arelent *) * (asect->reloc_count + 1); - - if (asect == obj_datasec (abfd)) - return (sizeof (arelent *) * - ((exec_hdr (abfd)->a_drsize / sizeof (struct relocation_info)) - + 1)); - - if (asect == obj_textsec (abfd)) - return (sizeof (arelent *) * - ((exec_hdr (abfd)->a_trsize / sizeof (struct relocation_info)) - + 1)); - - if (asect == obj_bsssec (abfd)) - return 0; - - bfd_set_error (bfd_error_invalid_operation); - return -1; -} - - -static bfd_boolean -b_out_set_section_contents (bfd *abfd, - asection *section, - const void * location, - file_ptr offset, - bfd_size_type count) -{ - if (! abfd->output_has_begun) - { - /* Set by bfd.c handler. */ - if (! aout_32_make_sections (abfd)) - return FALSE; - - obj_textsec (abfd)->filepos = sizeof (struct external_exec); - obj_datasec (abfd)->filepos = obj_textsec (abfd)->filepos - + obj_textsec (abfd)->size; - } - - /* Regardless, once we know what we're doing, we might as well get going. */ - if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0) - return FALSE; - - if (count == 0) - return TRUE; - - return bfd_bwrite ((void *) location, count, abfd) == count; -} - -static bfd_boolean -b_out_set_arch_mach (bfd *abfd, - enum bfd_architecture arch, - unsigned long machine) -{ - bfd_default_set_arch_mach (abfd, arch, machine); - - if (arch == bfd_arch_unknown) /* Unknown machine arch is OK. */ - return TRUE; - - if (arch == bfd_arch_i960) /* i960 default is OK. */ - switch (machine) - { - case bfd_mach_i960_core: - case bfd_mach_i960_kb_sb: - case bfd_mach_i960_mc: - case bfd_mach_i960_xa: - case bfd_mach_i960_ca: - case bfd_mach_i960_ka_sa: - case bfd_mach_i960_jx: - case bfd_mach_i960_hx: - case 0: - return TRUE; - default: - return FALSE; - } - - return FALSE; -} - -static int -b_out_sizeof_headers (bfd *ignore_abfd ATTRIBUTE_UNUSED, - struct bfd_link_info *info ATTRIBUTE_UNUSED) -{ - return sizeof (struct external_exec); -} - -static void -perform_slip (bfd *abfd, - unsigned int slip, - asection *input_section, - bfd_vma value) -{ - asymbol **s; - - s = _bfd_generic_link_get_symbols (abfd); - BFD_ASSERT (s != (asymbol **) NULL); - - /* Find all symbols past this point, and make them know - what's happened. */ - while (*s) - { - asymbol *p = *s; - - if (p->section == input_section) - { - /* This was pointing into this section, so mangle it. */ - if (p->value > value) - { - p->value -=slip; - - if (p->udata.p != NULL) - { - struct generic_link_hash_entry *h; - - h = (struct generic_link_hash_entry *) p->udata.p; - BFD_ASSERT (h->root.type == bfd_link_hash_defined); - h->root.u.def.value -= slip; - BFD_ASSERT (h->root.u.def.value == p->value); - } - } - } - s++; - } -} - -/* This routine works out if the thing we want to get to can be - reached with a 24bit offset instead of a 32 bit one. - If it can, then it changes the amode. */ - -static int -abs32code (bfd *abfd, - asection *input_section, - arelent *r, - unsigned int shrink, - struct bfd_link_info *link_info) -{ - bfd_vma value = get_value (r, link_info, input_section); - bfd_vma dot = output_addr (input_section) + r->address; - bfd_vma gap; - - /* See if the address we're looking at within 2^23 bytes of where - we are, if so then we can use a small branch rather than the - jump we were going to. */ - gap = value - (dot - shrink); - - if ((long)(-1UL << 23) < (long)gap && (long)gap < 1L << 23) - { - /* Change the reloc type from 32bitcode possible 24, to 24bit - possible 32. */ - r->howto = &howto_reloc_abs32codeshrunk; - /* The place to relc moves back by four bytes. */ - r->address -=4; - - /* This will be four bytes smaller in the long run. */ - shrink += 4 ; - perform_slip (abfd, 4, input_section, r->address-shrink + 4); - } - - return shrink; -} - -static int -aligncode (bfd *abfd, - asection *input_section, - arelent *r, - unsigned int shrink) -{ - bfd_vma dot = output_addr (input_section) + r->address; - bfd_vma old_end; - bfd_vma new_end; - unsigned int shrink_delta; - int size = r->howto->size; - - /* Reduce the size of the alignment so that it's still aligned but - smaller - the current size is already the same size as or bigger - than the alignment required. */ - - /* Calculate the first byte following the padding before we optimize. */ - old_end = ((dot + size ) & ~size) + size+1; - /* Work out where the new end will be - remember that we're smaller - than we used to be. */ - new_end = ((dot - shrink + size) & ~size); - - shrink_delta = (old_end - new_end) - shrink; - - if (shrink_delta) - { - /* Change the reloc so that it knows how far to align to. */ - r->howto = howto_done_align_table + (r->howto - howto_align_table); - - /* Encode the stuff into the addend - for future use we need to - know how big the reloc used to be. */ - r->addend = old_end - dot + r->address; - - /* This will be N bytes smaller in the long run, adjust all the symbols. */ - perform_slip (abfd, shrink_delta, input_section, r->address - shrink); - shrink += shrink_delta; - } - - return shrink; -} - -static bfd_boolean -b_out_bfd_relax_section (bfd *abfd, - asection *i, - struct bfd_link_info *link_info, - bfd_boolean *again) -{ - /* Get enough memory to hold the stuff. */ - bfd *input_bfd = i->owner; - asection *input_section = i; - unsigned int shrink = 0 ; - arelent **reloc_vector = NULL; - long reloc_size = bfd_get_reloc_upper_bound (input_bfd, input_section); - - if (bfd_link_relocatable (link_info)) - (*link_info->callbacks->einfo) - (_("%P%F: --relax and -r may not be used together\n")); - - if (reloc_size < 0) - return FALSE; - - /* We only run this relaxation once. It might work to run it - multiple times, but it hasn't been tested. */ - *again = FALSE; - - if (reloc_size) - { - long reloc_count; - - reloc_vector = bfd_malloc ((bfd_size_type) reloc_size); - if (reloc_vector == NULL && reloc_size != 0) - goto error_return; - - /* Get the relocs and think about them. */ - reloc_count = - bfd_canonicalize_reloc (input_bfd, input_section, reloc_vector, - _bfd_generic_link_get_symbols (input_bfd)); - if (reloc_count < 0) - goto error_return; - if (reloc_count > 0) - { - arelent **parent; - - for (parent = reloc_vector; *parent; parent++) - { - arelent *r = *parent; - - switch (r->howto->type) - { - case ALIGNER: - /* An alignment reloc. */ - shrink = aligncode (abfd, input_section, r, shrink); - break; - case ABS32CODE: - /* A 32bit reloc in an addressing mode. */ - shrink = abs32code (input_bfd, input_section, r, shrink, - link_info); - break; - case ABS32CODE_SHRUNK: - shrink += 4; - break; - } - } - } - } - input_section->size -= shrink; - - if (reloc_vector != NULL) - free (reloc_vector); - return TRUE; - error_return: - if (reloc_vector != NULL) - free (reloc_vector); - return FALSE; -} - -static bfd_byte * -b_out_bfd_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) -{ - /* Get enough memory to hold the stuff. */ - bfd *input_bfd = link_order->u.indirect.section->owner; - asection *input_section = link_order->u.indirect.section; - long reloc_size = bfd_get_reloc_upper_bound (input_bfd, input_section); - arelent **reloc_vector = NULL; - long reloc_count; - - if (reloc_size < 0) - goto error_return; - - /* 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, relocatable, - symbols); - - reloc_vector = bfd_malloc ((bfd_size_type) reloc_size); - if (reloc_vector == NULL && reloc_size != 0) - goto error_return; - - /* Read in the section. */ - BFD_ASSERT (bfd_get_section_contents (input_bfd, - input_section, - data, - (bfd_vma) 0, - input_section->size)); - - reloc_count = bfd_canonicalize_reloc (input_bfd, - input_section, - reloc_vector, - symbols); - if (reloc_count < 0) - goto error_return; - if (reloc_count > 0) - { - arelent **parent = reloc_vector; - arelent *reloc ; - unsigned int dst_address = 0; - unsigned int src_address = 0; - unsigned int run; - unsigned int idx; - - /* Find how long a run we can do. */ - while (dst_address < link_order->size) - { - reloc = *parent; - if (reloc) - { - /* Note that the relaxing didn't tie up the addresses in the - relocation, so we use the original address to work out the - run of non-relocated data. */ - BFD_ASSERT (reloc->address >= src_address); - run = reloc->address - src_address; - parent++; - } - else - run = link_order->size - dst_address; - - /* Copy the bytes. */ - for (idx = 0; idx < run; idx++) - data[dst_address++] = data[src_address++]; - - /* Now do the relocation. */ - if (reloc) - { - switch (reloc->howto->type) - { - case ABS32CODE: - calljx_callback (input_bfd, link_info, reloc, - src_address + data, dst_address + data, - input_section); - src_address += 4; - dst_address += 4; - break; - case ABS32: - bfd_put_32 (input_bfd, - (bfd_get_32 (input_bfd, data + src_address) - + get_value (reloc, link_info, input_section)), - data + dst_address); - src_address += 4; - dst_address += 4; - break; - case CALLJ: - callj_callback (input_bfd, link_info, reloc, data, - src_address, dst_address, input_section, - FALSE); - src_address += 4; - dst_address += 4; - break; - case ALIGNDONE: - BFD_ASSERT (reloc->addend >= src_address); - BFD_ASSERT ((bfd_vma) reloc->addend - <= input_section->size); - src_address = reloc->addend; - dst_address = ((dst_address + reloc->howto->size) - & ~reloc->howto->size); - break; - case ABS32CODE_SHRUNK: - /* This used to be a callx, but we've found out that a - callj will reach, so do the right thing. */ - callj_callback (input_bfd, link_info, reloc, data, - src_address + 4, dst_address, input_section, - TRUE); - dst_address += 4; - src_address += 8; - break; - case PCREL24: - { - long int word = bfd_get_32 (input_bfd, - data + src_address); - bfd_vma value; - - value = get_value (reloc, link_info, input_section); - word = ((word & ~BAL_MASK) - | (((word & BAL_MASK) - + value - - output_addr (input_section) - + reloc->addend) - & BAL_MASK)); - - bfd_put_32 (input_bfd, (bfd_vma) word, data + dst_address); - dst_address += 4; - src_address += 4; - - } - break; - case PCREL13: - { - long int word = bfd_get_32 (input_bfd, - data + src_address); - bfd_vma value; - - value = get_value (reloc, link_info, input_section); - word = ((word & ~PCREL13_MASK) - | (((word & PCREL13_MASK) - + value - + reloc->addend - - output_addr (input_section)) - & PCREL13_MASK)); - - bfd_put_32 (input_bfd, (bfd_vma) word, data + dst_address); - dst_address += 4; - src_address += 4; - } - break; - - default: - abort (); - } - } - } - } - if (reloc_vector != NULL) - free (reloc_vector); - return data; - error_return: - if (reloc_vector != NULL) - free (reloc_vector); - return NULL; -} - - -/* Build the transfer vectors for Big and Little-Endian B.OUT files. */ - -#define aout_32_find_line _bfd_nosymbols_find_line -#define aout_32_get_symbol_version_string _bfd_nosymbols_get_symbol_version_string -#define aout_32_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol -#define aout_32_close_and_cleanup aout_32_bfd_free_cached_info -#define b_out_bfd_link_hash_table_create _bfd_generic_link_hash_table_create -#define b_out_bfd_link_add_symbols _bfd_generic_link_add_symbols -#define b_out_bfd_link_just_syms _bfd_generic_link_just_syms -#define b_out_bfd_copy_link_hash_symbol_type \ - _bfd_generic_copy_link_hash_symbol_type -#define b_out_bfd_final_link _bfd_generic_final_link -#define b_out_bfd_link_split_section _bfd_generic_link_split_section -#define b_out_bfd_gc_sections bfd_generic_gc_sections -#define b_out_bfd_lookup_section_flags bfd_generic_lookup_section_flags -#define b_out_bfd_merge_sections bfd_generic_merge_sections -#define b_out_bfd_is_group_section bfd_generic_is_group_section -#define b_out_bfd_discard_group bfd_generic_discard_group -#define b_out_section_already_linked _bfd_generic_section_already_linked -#define b_out_bfd_define_common_symbol bfd_generic_define_common_symbol -#define b_out_bfd_define_start_stop bfd_generic_define_start_stop -#define aout_32_get_section_contents_in_window _bfd_generic_get_section_contents_in_window -#define b_out_bfd_link_check_relocs _bfd_generic_link_check_relocs -#define b_out_set_reloc _bfd_generic_set_reloc - -extern const bfd_target bout_le_vec; - -const bfd_target bout_be_vec = -{ - "b.out.big", /* Name. */ - bfd_target_aout_flavour, - BFD_ENDIAN_LITTLE, /* Data byte order. */ - BFD_ENDIAN_BIG, /* Header byte order. */ - (HAS_RELOC | EXEC_P | /* Object flags. */ - HAS_LINENO | HAS_DEBUG | - HAS_SYMS | HAS_LOCALS | WP_TEXT | BFD_IS_RELAXABLE ), - (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_CODE | SEC_DATA), - '_', /* Symbol leading char. */ - ' ', /* AR_pad_char. */ - 16, /* AR_max_namelen. */ - 0, /* match priority. */ - 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, /* Headers. */ - {_bfd_dummy_target, b_out_object_p, /* bfd_check_format. */ - bfd_generic_archive_p, _bfd_dummy_target}, - {bfd_false, b_out_mkobject, /* bfd_set_format. */ - _bfd_generic_mkarchive, bfd_false}, - {bfd_false, b_out_write_object_contents, /* bfd_write_contents. */ - _bfd_write_archive_contents, bfd_false}, - - BFD_JUMP_TABLE_GENERIC (aout_32), - BFD_JUMP_TABLE_COPY (_bfd_generic), - BFD_JUMP_TABLE_CORE (_bfd_nocore), - BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_bsd), - BFD_JUMP_TABLE_SYMBOLS (aout_32), - BFD_JUMP_TABLE_RELOCS (b_out), - BFD_JUMP_TABLE_WRITE (b_out), - BFD_JUMP_TABLE_LINK (b_out), - BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), - - & bout_le_vec, - - NULL -}; - -const bfd_target bout_le_vec = -{ - "b.out.little", /* Name. */ - bfd_target_aout_flavour, - BFD_ENDIAN_LITTLE, /* Data byte order. */ - BFD_ENDIAN_LITTLE, /* Header byte order. */ - (HAS_RELOC | EXEC_P | /* Object flags. */ - HAS_LINENO | HAS_DEBUG | - HAS_SYMS | HAS_LOCALS | WP_TEXT | BFD_IS_RELAXABLE ), - (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_CODE | SEC_DATA), - '_', /* Symbol leading char. */ - ' ', /* AR_pad_char. */ - 16, /* AR_max_namelen. */ - 0, /* match priority. */ - 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, /* Headers. */ - - {_bfd_dummy_target, b_out_object_p, /* bfd_check_format. */ - bfd_generic_archive_p, _bfd_dummy_target}, - {bfd_false, b_out_mkobject, /* bfd_set_format. */ - _bfd_generic_mkarchive, bfd_false}, - {bfd_false, b_out_write_object_contents, /* bfd_write_contents. */ - _bfd_write_archive_contents, bfd_false}, - - BFD_JUMP_TABLE_GENERIC (aout_32), - BFD_JUMP_TABLE_COPY (_bfd_generic), - BFD_JUMP_TABLE_CORE (_bfd_nocore), - BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_bsd), - BFD_JUMP_TABLE_SYMBOLS (aout_32), - BFD_JUMP_TABLE_RELOCS (b_out), - BFD_JUMP_TABLE_WRITE (b_out), - BFD_JUMP_TABLE_LINK (b_out), - BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), - - & bout_be_vec, - - NULL -}; diff -Nru gdb-8.1/bfd/cache.c gdb-8.2/bfd/cache.c --- gdb-8.1/bfd/cache.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/cache.c 2018-09-05 07:27:13.000000000 +0000 @@ -237,13 +237,12 @@ static FILE * bfd_cache_lookup_worker (bfd *abfd, enum cache_flag flag) { - bfd *orig_bfd = abfd; if ((abfd->flags & BFD_IN_MEMORY) != 0) abort (); - while (abfd->my_archive != NULL - && !bfd_is_thin_archive (abfd->my_archive)) - abfd = abfd->my_archive; + if (abfd->my_archive != NULL + && !bfd_is_thin_archive (abfd->my_archive)) + abort (); if (abfd->iostream != NULL) { @@ -270,8 +269,8 @@ return (FILE *) abfd->iostream; /* xgettext:c-format */ - _bfd_error_handler (_("reopening %B: %s\n"), - orig_bfd, bfd_errmsg (bfd_get_error ())); + _bfd_error_handler (_("reopening %pB: %s\n"), + abfd, bfd_errmsg (bfd_get_error ())); return NULL; } @@ -301,25 +300,9 @@ first octet in the file, NOT the beginning of the archive header. */ static file_ptr -cache_bread_1 (struct bfd *abfd, void *buf, file_ptr nbytes) +cache_bread_1 (FILE *f, void *buf, file_ptr nbytes) { - FILE *f; file_ptr nread; - /* FIXME - this looks like an optimization, but it's really to cover - up for a feature of some OSs (not solaris - sigh) that - ld/pe-dll.c takes advantage of (apparently) when it creates BFDs - internally and tries to link against them. BFD seems to be smart - enough to realize there are no symbol records in the "file" that - doesn't exist but attempts to read them anyway. On Solaris, - attempting to read zero bytes from a NULL file results in a core - dump, but on other platforms it just returns zero bytes read. - This makes it to something reasonable. - DJ */ - if (nbytes == 0) - return 0; - - f = bfd_cache_lookup (abfd, CACHE_NORMAL); - if (f == NULL) - return 0; #if defined (__VAX) && defined (VMS) /* Apparently fread on Vax VMS does not keep the record length @@ -355,6 +338,11 @@ cache_bread (struct bfd *abfd, void *buf, file_ptr nbytes) { file_ptr nread = 0; + FILE *f; + + f = bfd_cache_lookup (abfd, CACHE_NORMAL); + if (f == NULL) + return -1; /* Some filesystems are unable to handle reads that are too large (for instance, NetApp shares with oplocks turned off). To avoid @@ -368,7 +356,7 @@ if (chunk_size > max_chunk_size) chunk_size = max_chunk_size; - chunk_nread = cache_bread_1 (abfd, (char *) buf + nread, chunk_size); + chunk_nread = cache_bread_1 (f, (char *) buf + nread, chunk_size); /* Update the nread count. @@ -389,14 +377,14 @@ } static file_ptr -cache_bwrite (struct bfd *abfd, const void *where, file_ptr nbytes) +cache_bwrite (struct bfd *abfd, const void *from, file_ptr nbytes) { file_ptr nwrite; FILE *f = bfd_cache_lookup (abfd, CACHE_NORMAL); if (f == NULL) return 0; - nwrite = fwrite (where, 1, nbytes, f); + nwrite = fwrite (from, 1, nbytes, f); if (nwrite < nbytes && ferror (f)) { bfd_set_error (bfd_error_system_call); @@ -468,11 +456,6 @@ if (pagesize_m1 == 0) pagesize_m1 = getpagesize () - 1; - /* Handle archive members. */ - if (abfd->my_archive != NULL - && !bfd_is_thin_archive (abfd->my_archive)) - offset += abfd->origin; - /* Align. */ pg_offset = offset & ~pagesize_m1; pg_len = (len + (offset - pg_offset) + pagesize_m1) & ~pagesize_m1; diff -Nru gdb-8.1/bfd/cf-sparclynx.c gdb-8.2/bfd/cf-sparclynx.c --- gdb-8.1/bfd/cf-sparclynx.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/cf-sparclynx.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,29 +0,0 @@ -/* BFD back-end for Sparc COFF LynxOS files. - Copyright (C) 1993-2018 Free Software Foundation, Inc. - Written by Cygnus Support. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define TARGET_SYM sparc_coff_lynx_vec -#define TARGET_NAME "coff-sparc-lynx" - -#define LYNXOS - -#define COFF_LONG_FILENAMES - -#include "coff-sparc.c" diff -Nru gdb-8.1/bfd/ChangeLog gdb-8.2/bfd/ChangeLog --- gdb-8.1/bfd/ChangeLog 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/bfd/ChangeLog 2018-09-05 07:44:28.000000000 +0000 @@ -1,7 +1,3282 @@ -2018-01-05 Joel Brobecker +2018-07-04 Joel Brobecker * development.sh (development): Set to false. +2018-07-04 H.J. Lu + + * Makefile.am (bfdinclude_HEADERS): Add $(INCDIR)/diagnostics.h. + * Makefile.in: Regenerated. + +2018-07-03 Alan Modra + + * elflink.c (bfd_elf_final_link): Remove zero size .gnu.attributes + sections. + +2018-07-03 Alan Modra + + * elf-bfd.h (ATTR_TYPE_FLAG_ERROR, ATTR_TYPE_HAS_ERROR): Define. + * elf-attrs.c (is_default_attr): Handle ATTR_TYPE_HAS_ERROR. + * elf32-ppc.c (_bfd_elf_ppc_merge_fp_attributes): Use + ATTR_TYPE_FLAG_INT_VAL. Set ATTR_TYPE_HAS_ERROR on finding + incompatible attribute. + (ppc_elf_merge_obj_attributes): Likewise. Return + _bfd_elf_merge_object_attributes result. + * elf64-ppc.c (ppc64_elf_merge_private_bfd_data): Return + _bfd_elf_merge_object_attributes result. + +2018-07-03 Alan Modra + + PR 17550 + * elflink.c (_bfd_elf_fix_symbol_flags): Hide dynamic symbols + in discarded sections. + +2018-07-02 Maciej W. Rozycki + + * elfxx-mips.c (_bfd_mips_elf_create_dynamic_sections): Set + `mark' for symbols created from `mips_elf_dynsym_rtproc_names' + list. + +2018-07-02 Maciej W. Rozycki + + * elf64-mips.c (micromips_elf64_howto_table_rel): Add + R_MICROMIPS_HI0_LO16, R_MICROMIPS_TLS_GD, R_MICROMIPS_TLS_LDM, + R_MICROMIPS_TLS_DTPREL_HI16, R_MICROMIPS_TLS_DTPREL_LO16, + R_MICROMIPS_TLS_GOTTPREL, R_MICROMIPS_TLS_TPREL_HI16, + R_MICROMIPS_TLS_TPREL_LO16, R_MICROMIPS_GPREL7_S2 and + R_MICROMIPS_PC23_S2 relocation entries. + (micromips_elf64_howto_table_rela): Likewise. + (micromips_reloc_map): Likewise. + * elfn32-mips.c (elf_micromips_howto_table_rel): Likewise. + (elf_micromips_howto_table_rela): Likewise. + (micromips_reloc_map): Likewise. + +2018-07-02 H.J. Lu + + PR ld/23324 + * elf64-x86-64.c (elf_x86_64_relocate_section): Clear the + R_X86_64_converted_reloc_bit bit. + +2018-07-02 Jeff Muizelaar + Tom Tromey + + PR 13157 + PR 21787 + * mach-o.c (bfd_mach_o_fat_close_and_cleanup): New function. + (bfd_mach_o_close_and_cleanup): Redefine. + * archive.c (_bfd_unlink_from_archive_parent): New function, + extracted from.. + (_bfd_archive_close_and_cleanup): ..here. + (bfd_generic_archive_p): Do not clear archive's format. + * libbfd-in.h (_bfd_unlink_from_archive_parent): Declare. + * libbfd.h: Regenerate. + +2018-07-02 Thomas Preud'homme + + * archures.c (bfd_mach_arm_5TEJ, bfd_mach_arm_6, bfd_mach_arm_6KZ, + bfd_mach_arm_6T2, bfd_mach_arm_6K, bfd_mach_arm_7, bfd_mach_arm_6M, + bfd_mach_arm_6SM, bfd_mach_arm_7EM, bfd_mach_arm_8, bfd_mach_arm_8R, + bfd_mach_arm_8M_BASE, bfd_mach_arm_8M_MAIN): Define. + * bfd-in2.h: Regenerate. + * cpu-arm.c (arch_info_struct): Add entries for above new + bfd_mach_arm values. + * elf32-arm.c (bfd_arm_get_mach_from_attributes): Add Tag_CPU_arch to + bfd_mach_arm mapping logic for pre Armv4 and Armv5TEJ and later + architectures. Force assert failure for any new Tag_CPU_arch value. + +2018-07-02 Thomas Preud'homme + + * doc/bfdint.texi: Use command-line consistently when used in a + compount word. + * doc/bfdsumm.texi: Likewise. + +2018-06-29 Maciej W. Rozycki + + * elfxx-mips.c (allocate_dynrelocs): Remove extraneous symbol + visibility check made for undefined weak symbols. + +2018-06-26 Nick Clifton + + * po/uk.po: Updated Ukranian translation. + +2018-06-25 Nick Clifton + + * elfnn-aarch64.c (_bfd_aarch64_erratum_835769_stub_name): Check + for malloc returning NULL. + (_bfd_aarch64_erratum_843419_fixup): Check for + _bfd_aarch64_erratum_835769_stub_name returning NULL. + +2018-06-24 Nick Clifton + + * po/bfd.pot: Regenerate. + +2018-06-24 Nick Clifton + + * version.m4: Update version string to 2.31.51. + * configure: Regenerate. + +2018-06-24 Nick Clifton + + 2.31 branch created. + +2018-06-21 Maciej W. Rozycki + + * elfxx-mips.c (_bfd_mips_elf_compact_eh_encoding) + (_bfd_mips_elf_cant_unwind_opcode): Correct formatting. + +2018-06-21 Maciej W. Rozycki + + * elfxx-mips.c (_bfd_mips_post_process_headers): Keep + EI_ABIVERSION setting together. + +2018-06-21 Maciej W. Rozycki + + * elfxx-mips.c (MIPS_LIBC_ABI_DEFAULT, MIPS_LIBC_ABI_MIPS_PLT) + (MIPS_LIBC_ABI_UNIQUE, MIPS_LIBC_ABI_MIPS_O32_FP64) + (MIPS_LIBC_ABI_MAX): New enumeration constants. + (_bfd_mips_post_process_headers): Use them in place of magic + numbers. + +2018-06-21 Jim Wilson + + * elfnn-riscv.c (riscv_elf_finish_dynamic_symbol): Update comment. + Use SYMBOL_REFERENCES_LOCAL. Add asserts for h->got.offset. + +2018-06-21 Alan Modra + + * doc/Makefile.am (AUTOMAKE_OPTIONS): Add "foreign". + * doc/Makefile.in: Regenerate. + +2018-06-20 Renlin Li + + * elfxx-aarch64.c (_bfd_aarch64_elf_resolve_relocation): Use PG_OFFSET + to resolve BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC, + BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC, + BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC, + BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC, + BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12_NC, + BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12_NC, + BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12_NC, + BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12_NC. + +2018-06-20 Nick Clifton + + PR 23316 + * opncls.c (get_build_id): Check for a negative or excessive data + size in the build-id note. + +2018-06-20 Nick Clifton + + PR 23299 + * mach-o.c (cputype): New function. + (cpusubtype): New function. + (bfd_mach_o_bfd_print_private_data): New function. Dispalys the + values in the MACH-O file header. + (bfd_mach_o_bfd_copy_private_header_data): Copy the cputype and + cpusubtype fields from the input bfd's mach-o header to the output + bfd. + * mach-o-target.c (bfd_mach_o_bfd_print_private_bfd_data): + Redefine to bfd_mach_o_bfd_print_private_data. + * mach-o.h (bfd_mach_o_bfd_print_private_bfd_data): Prototype. + +2018-06-19 Maciej W. Rozycki + + PR ld/22966 + * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_symbol): Verify the + `.got.plt' entry referred is in range. + (mips_finish_exec_plt): Correct the range check for `.got.plt' + start. Replace the assertion used for that with a proper error + message. + +2018-06-19 Maciej W. Rozycki + + * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_symbol): Fix + formatting. + +2018-06-19 Simon Marchi + + * Makefile.am (AUTOMAKE_OPTIONS): Remove 1.11. + (INCLUDES): Rename to ... + (AM_CPPFLAGS): ... this. + * configure.ac: Remove AC_PREREQ. + * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove 1.9, cygnus, add + info-in-builddir no-texinfo.tex. + (info_TEXINFOS): Rename bfd.texinfo to bfd.texi. + * doc/bfd.texinfo: Rename to ... + * doc/bfd.texi: ... this. + * Makefile.in: Re-generate. + * aclocal.m4: Re-generate. + * config.in: Re-generate. + * configure: Re-generate. + * doc/Makefile.in: Re-generate. + +2018-06-18 Mephi + + PR 23297 + * mach-o-x86-64.c (x86_64_howto_table): Add entry for + BFD_RELOC_MACH_O_X86_64_RELOC_TLV. + (bfd_mach_o_x86_64_canonicalize_one_reloc): Handle the new reloc. + (bfd_mach_o_x86_64_swap_reloc_out): Likewise. + * reloc.c (BFD_RELOC_MACH_O_X86_64_TV): New entry. + * bfd-in2.h: Regenerate. + * libbfd.h: Regenerate. + +2018-06-14 Faraz Shahbazker + + * elfxx-mips.c (print_mips_ases): Add GINV extension. + +2018-06-14 H.J. Lu + + PR binutils/23267 + * elf.c (_bfd_elf_get_symbol_version_string): Check if the first + symbol version is base version. + +2018-06-14 Alan Modra + + * elf-bfd.h (struct elf_link_hash_table): Add "dynamic_relocs". + * elflink.c (_bfd_elf_init_2_index_sections): Comment fix. + (_bfd_elf_add_dynamic_entry): Set "dynamic_relocs". + (_bfd_elf_link_renumber_dynsyms): Exclude all section symbols when + "dynamic_relocs" is not set. + * elfxx-mips.c (count_section_dynsyms): Likewise. + +2018-06-14 Alan Modra + + PR 23282 + * bfdio.c (bfd_seek): Optimize away seeks to current position. + +2018-06-13 Scott Egerton + Faraz Shahbazker + + * elfxx-mips.c (print_mips_ases): Add CRC. + +2018-06-08 H.J. Lu + + PR ld/23161 + * elfxx-x86.c (elf_x86_hide_linker_defined): New function. + (_bfd_x86_elf_link_check_relocs): Use it to hide hidden + __bss_start, _end and _edata in shared libraries. + +2018-06-07 Alan Modra + + * elf32-tic6x.c (elf32_tic6x_check_relocs): Reference + __c6xabi_DSBT_BASE explicitly for R_C6000_SBR_* relocs. + +2018-06-05 Alan Modra + + * bfd.c (struct bfd): Update comment on "where" usage. + * bfdio.c (bfd_bwrite, bfd_stat): Use and update "iovec", + "iostream", and "where" from containing archive file. Return + error on NULL iovec. + (bfd_bread): Similarly, and return error attempted out of + bounds archive element access. + (bfd_tell, bfd_flush): Use and update "iovec", "iostream", and + "where" from containing archive file. + (bfd_seek): Likewise. Return error on NULL iovec. Don't + attempt to optimize away seeks. Don't paper over errors by + calling bfd_tell. + (bfd_get_mtime): Call bfd_stat rather than iovec->bstat. + (bfd_get_size): Likewise. + (bfd_mmap): Operate on and use iovec of containing archive + file. Return error on NULL iovec. + * cache.c (bfd_cache_lookup_worker): Abort if working on + archive element bfd. + (cache_bread_1): Delete bfd parameter, add FILE* parameter. + Don't ignore zero byte reads. + (cache_bread): Look up FILE* in cache here. Error on NULL + lookup. + (cache_bwrite): Rename "where" to "from". + (cache_bmmap): Don't handle archive elements. + * coffcode.h (coff_slurp_line_table): Exit early on zero + lineno count. + * bfd-in2.h: Regenerate. + +2018-06-05 Alan Modra + + PR 23254 + * plugin.c (bfd_plugin_open_input): Allow for possibility of + nested archives. Open file again for plugin. + (try_claim): Don't save and restore file position. Close file + if not claimed. + * sysdep.h (O_BINARY): Define. + +2018-06-04 Max Filippov + + * elf32-xtensa.c (xtensa_read_table_entries): Make global. + (compute_fill_extra_space): Drop declaration. Rename function to + xtensa_compute_fill_extra_space. + (compute_ebb_actions, remove_dead_literal): Update references to + compute_fill_extra_space. + +2018-06-04 Volodymyr Arbatov + + * elf32-xtensa.c (elf32xtensa_separate_props): New global + variable. + (xtensa_add_names): New function. + (xtensa_property_section_name): Add new parameter + separate_sections, use it to choose property section name. + (xtensa_get_separate_property_section): New function. + (xtensa_get_property_section): Invoke + xtensa_get_separate_property_section to get individual property + section if it exists, common property section otherwise. + (xtensa_make_property_section): Pass elf32xtensa_separate_props + to xtensa_property_section_name. + +2018-06-04 H.J. Lu + + PR binutils/23146 + * bfd-in.h: Include "diagnostics.h". + * bfd-in2.h: Regenerated. + * elf32-arm.c (elf32_arm_nabi_write_core_note): Use + DIAGNOSTIC_PUSH, DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION and + DIAGNOSTIC_POP to silence GCC 8.1 warnings with + -Wstringop-truncation. + * elf32-ppc.c (ppc_elf_write_core_note): Likewse. + * elf32-s390.c (elf_s390_write_core_note): Likewse. + * elf64-ppc.c (ppc64_elf_write_core_note): Likewse. + * elf64-s390.c (elf_s390_write_core_note): Likewse. + * elfxx-aarch64.c (_bfd_aarch64_elf_write_core_note): Likewse. + +2018-06-03 Jim Wilson + + PR ld/23244 + * elfnn-riscv.c (riscv_elf_relocate_section) : Check + for and handle an undefined weak with no PLT. + + PR ld/22756 + * elfnn-riscv.c (riscv_relax_delete_bytes): Add versioned_hidden check + to code that ignores duplicate symbols. + +2018-06-01 H.J. Lu + + * version.m4: Bump version to 2.30.52 + * configure: Regenerated. + +2018-06-01 Alan Modra + + * bfd.c (_bfd_error_handler): Arrange for this function to be + declared in bfd-in2.h. + * libbfd-in.h (_bfd_error_handler): Don't declare. + * libbfd.h: Regenerate. + * bfd-in2.h: Regenerate. + +2018-05-30 Amaan Cheval + + * config.bfd (x86_64-*-*): Add pei-x86-64 target to x86_64-*-rtems* + This is needed to generate UEFI application image files from ELFs. + +2018-05-28 H.J. Lu + + * elf32-i386.c (elf_i386_lazy_plt): Add plt_tlsdesc_entry, + plt_tlsdesc_entry_size, plt_tlsdesc_got1_offset, + plt_tlsdesc_got2_offset, plt_tlsdesc_got1_insn_end and + plt_tlsdesc_got2_insn_end for TLSDESC entry. + (elf_i386_lazy_ibt_plt): Likewise. + (elf_i386_nacl_plt): Likewise. + * elf64-x86-64.c (tlsdesc_plt_entry): Moved and renamed to ... + (elf_x86_64_tlsdesc_plt_entry): This. + (elf_x86_64_lazy_plt): Add plt_tlsdesc_entry, + plt_tlsdesc_entry_size, plt_tlsdesc_got1_offset, + plt_tlsdesc_got2_offset, plt_tlsdesc_got1_insn_end and + plt_tlsdesc_got2_insn_end for TLSDESC entry. + (elf_x86_64_lazy_bnd_plt): Likewise. + (elf_x86_64_lazy_ibt_plt): Likewise. + (elf_x32_lazy_ibt_plt): Likewise. + (elf_x86_64_nacl_plt): Likewise. + (elf_x86_64_finish_dynamic_sections): Use plt_tlsdesc_entry, + plt_tlsdesc_entry_size, plt_tlsdesc_got1_offset, + plt_tlsdesc_got2_offset, plt_tlsdesc_got1_insn_end and + plt_tlsdesc_got2_insn_end to update TLSDESC entry. + * elfxx-x86.h (elf_x86_lazy_plt_layout): Update comments. + Add plt_tlsdesc_entry, plt_tlsdesc_entry_size, + plt_tlsdesc_got1_offset, plt_tlsdesc_got2_offset, + plt_tlsdesc_got1_insn_end and plt_tlsdesc_got2_insn_end. + (elf_x86_non_lazy_plt_layout): Update comments. + (elf_x86_plt_layout): Likewise. + +2018-05-28 H.J. Lu + + PR ld/23238 + * elf-s390-common.c (elf_s390_add_symbol_hook): Removed. + * elf32-arc.c (elf_arc_add_symbol_hook): Likewise. + (elf_backend_add_symbol_hook): Likewise. + * elf32-m68k.c (elf_m68k_add_symbol_hook): Likewise. + (elf_backend_add_symbol_hook): Likewise. + * elf32-s390.c (elf_backend_add_symbol_hook): Likewise. + * elf32-sparc.c (elf32_sparc_add_symbol_hook): Likewise. + (elf_backend_add_symbol_hook): Likewise. + * elf64-s390.c (elf_backend_add_symbol_hook): Likewise. + * elfxx-aarch64.c (_bfd_aarch64_elf_add_symbol_hook): Likewise. + * elfxx-aarch64.h (_bfd_aarch64_elf_add_symbol_hook): Likewise. + (elf_backend_add_symbol_hook): Likewise. + * elf32-arm.c (elf32_arm_add_symbol_hook): Remove STT_GNU_IFUNC + handling. + * elf32-ppc.c (ppc_elf_add_symbol_hook): Likewise. + * elf64-ppc.c (ppc64_elf_add_symbol_hook): Likewise. + * elf64-sparc.c (elf64_sparc_add_symbol_hook): Likewise. + * elflink.c (elf_link_add_object_symbols): Set + elf_gnu_symbol_ifunc for STT_GNU_IFUNC symbols. + +2018-05-26 H.J. Lu + + PR ld/23194 + * elf-bfd.h (_bfd_elf_link_hide_sym_by_version): New. + * elflink.c (_bfd_elf_link_hide_versioned_symbol): New function. + Extracted from _bfd_elf_link_assign_sym_version. + (_bfd_elf_link_hide_sym_by_version): New function. + (_bfd_elf_link_assign_sym_version): Use + _bfd_elf_link_hide_versioned_symbol. + * elfxx-x86.c (_bfd_x86_elf_link_symbol_references_local): Call + _bfd_elf_link_hide_sym_by_version instead of + bfd_hide_sym_by_version. Don't check unversioned symbol. + +2018-05-25 Alan Modra + + * Makefile.in: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2018-05-25 Alan Modra + + * configure.ac (bfd_cv_hidden): Run test with -Werror in CFLAGS. + * configure: Regenerate. + +2018-05-23 H.J. Lu + + * elf64-ppc.c (ppc64_elf_write_core_note): Add ATTRIBUTE_NONSTRING + to data. + +2018-05-22 Alan Modra + + PR 23207 + * elf32-hppa.c (hppa_get_stub_entry): Return NULL when link_sec + is NULL. + (elf32_hppa_size_stubs): Only create stubs for load, alloc, code + sections. + (final_link_relocate): Revert last change. + +2018-05-22 Alan Modra + + PR 23207 + * elf32-hppa.c (final_link_relocate): Don't look for plt call + stubs in non-alloc sections. + +2018-05-21 H.J. Lu + + PR ld/23201 + * aout-target.h (MY_bfd_link_hide_symbol): New. + * aout-tic30.c (MY_bfd_link_hide_symbol): Likewise. + * binary.c (binary_bfd_link_hide_symbol): Likewise. + * coff-alpha.c (_bfd_ecoff_bfd_link_hide_symbol): Likewise. + * coff-mips.c (_bfd_ecoff_bfd_link_hide_symbol): Likewise. + * coff-rs6000.c (_bfd_xcoff_bfd_link_hide_symbol): Likewise. + * coffcode.h (coff_bfd_link_hide_symbol): Likewise. + * elf-bfd.h (_bfd_elf_link_hide_symbol): Likewise. + * elfxx-target.h (bfd_elfNN_bfd_link_hide_symbol): Likewise. + * i386msdos.c (msdos_bfd_link_hide_symbol): Likewise. + * ihex.c (ihex_bfd_link_hide_symbol): Likewise. + * libbfd-in.h (_bfd_nolink_bfd_link_hide_symbol): Likewise. + * linker.c (_bfd_generic_link_hide_symbol): Likewise. + (bfd_link_hide_symbol): Likewise. + * mach-o-target.c (bfd_mach_o_bfd_link_hide_symbol): Likewise. + * mmo.c (mmo_bfd_link_hide_symbol): Likewise. + * pef.c (bfd_pef_bfd_link_hide_symbol): Likewise. + * plugin.c (bfd_plugin_bfd_link_hide_symbol): Likewise. + * ppcboot.c (ppcboot_bfd_link_hide_symbol): Likewise. + * som.c (som_bfd_link_hide_symbol): Likewise. + * srec.c (srec_bfd_link_hide_symbol): Likewise. + * tekhex.c (tekhex_bfd_link_hide_symbol): Likewise. + * vms-alpha.c (vms_bfd_link_hide_symbol): Likewise. + (alpha_vms_bfd_link_hide_symbol): Likewise. + * xsym.c (bfd_sym_bfd_link_hide_symbol): Likewise. + * coff64-rs6000.c (rs6000_xcoff64_vec): Add + _bfd_generic_link_hide_symbol. + (rs6000_xcoff64_aix_vec): Likewise. + * elflink.c (bfd_elf_record_link_assignment): Don't make forced + local symbol dynamic. + (_bfd_elf_link_hide_symbol): New function. + * elfxx-x86.c (_bfd_x86_elf_link_symbol_references_local): Don't + check root.ldscript_def. + * targets.c (bfd_target): Add _bfd_link_hide_symbol. + (BFD_JUMP_TABLE_LINK): Add NAME##_bfd_link_hide_symbol. + * bfd-in2.h: Regenerated. + * libbfd.h: Likewise. + +2018-05-21 H.J. Lu + + PR binutils/23199 + * elf.c (setup_group): Mark section in a section group with + SHF_GROUP. + +2018-05-18 H.J. Lu + + PR ld/23194 + * elfxx-x86.c (_bfd_x86_elf_link_symbol_references_local): Don't + set eh->local_ref to 1 if a symbol is versioned and there is a + version script. + +2018-05-18 Kito Cheng + + * elfnn-riscv.c (_bfd_riscv_elf_merge_private_bfd_data): Handle + EF_RISCV_RVE. + +2018-05-18 Jim Wilson + + * elfnn-riscv.c (allocate_dynrelocs): Discard dynamic relocations if + UNDEFWEAK_NO_DYNAMIC_RELOC is true. + (riscv_elf_relocate_section): Don't generate dynamic relocation if + UNDEFWEAK_NO_DYNAMIC_RELOC is true. + (riscv_elf_finish_dynamic_symbol): Likewise. + +2018-05-18 John Darrington + + * Makefile.am: Add s12z files. + * Makefile.in: Regenerate. + * archures.c: Add bfd_s12z_arch. + * bfd-in.h: Add exports of bfd_putb24 and bfd_putl24. + * bfd-in2.h: Regenerate. + * config.bfd: Add s12z target. + * configure.ac: Add s12z target. + * configure: Regenerate. + * cpu-s12z.c: New file. + * elf32-s12z.c: New file. + * libbfd.c (bfd_putb24): New function. + (bfd_putl24): New function. + * libbfd.h: Regenerate. + * reloc.c: Add s12z relocations. + (bfd_get_reloc_size): Handle size 5 relocs. + * targets.c: Add s12z_elf32_vec. + +2018-05-18 H.J. Lu + + PR ld/23189 + * elf32-i386.c (elf_i386_relocate_section): Handle R_386_GOT32X + like R_386_GOT32. + * elfxx-x86.c (_bfd_x86_elf_link_symbol_references_local): Don't + set eh->local_ref to 1 for linker defined symbols. + +2018-05-18 Alan Modra + + PR 23199 + * elf.c (setup_group): Formatting. Check that SHT_GROUP entries + don't point at other SHT_GROUP sections. Set shdr corresponding + to invalid entry, to NULL rather than section 0. Identify + SHT_GROUP section index when reporting an error. Cope with NULL + shdr pointer. + +2018-05-18 Alan Modra + + * libbfd-in.h (ATTRIBUTE_HIDDEN): Define and use throughout. + * configure.ac (HAVE_HIDDEN): Check compiler support for hidden + visibility. + * libbfd.h: Regenerate. + * configure: Regenerate. + * config.in: Regenerate. + +2018-05-18 Alan Modra + + * libbfd-in.h: Add include guard. + * libcoff-in.h: Likewise. + * doc/Makefile.am (libbfd.h, libcoff.h): Append another #endif. + * doc/Makefile.in: Regenerate. + * libbfd.h: Regenerate. + * libcoff.h: Regenerate. + +2018-05-16 Maciej W. Rozycki + + * elf32-nds32.c (nds32_convert_32_to_16): Preset `insn_type'. + +2018-05-16 Alan Modra + + PR 22458 + * format.c (struct bfd_preserve): Add section_id. + (bfd_preserve_save, bfd_preserve_restore): Save and restore + _bfd_section_id. + (bfd_reinit): Set _bfd_section_id. + (bfd_check_format_matches): Put all matches of any priority into + matching_vector. Save initial section id and start each attempted + match at that section id. + * libbfd-in.h (_bfd_section_id): Declare. + * section.c (_bfd_section_id): Rename from section_id and make + global. Adjust uses. + (bfd_get_next_section_id): Delete. + * elf64-ppc.c (ppc64_elf_setup_section_lists): Replace use of + bfd_get_section_id with _bfd_section_id. + * libbfd.h: Regenerate. + * bfd-in2.h: Regenerate. + +2018-05-15 Christophe Guillon + + * coffcode.h (coff_bigobj_swap_aux_in): Make sure that all fields + of the aux structure are initialised. + +2018-05-15 Francois H. Theron + + * targets.c: Wrap nfp_elf64_vec in BFD64 ifdef. + +2018-05-15 Nick Clifton + + * po/pt.po: New Portuguese translation. + * configure.ac (ALL_LINGUAS): Add pt. + * configure: Regenerate. + +2018-05-14 H.J. Lu + + PR ld/23169 + * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Don't issue + an error on IFUNC pointer defined in PDE. + * elf32-i386.c (elf_i386_finish_dynamic_symbol): Call + _bfd_x86_elf_link_fixup_ifunc_symbol. + * elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Likewise. + * elfxx-x86.c (_bfd_x86_elf_link_fixup_ifunc_symbol): New + function. + * elfxx-x86.h (_bfd_x86_elf_link_fixup_ifunc_symbol): New. + +2018-05-14 H.J. Lu + + PR ld/23162 + * elfxx-x86.c (elf_x86_linker_defined): New function. + (_bfd_x86_elf_link_check_relocs): Use it to mark __bss_start, + _end and _edata locally defined within executables. + +2018-05-12 Alan Modra + + PR 20659 + * elf.c (rewrite_elf_program_header): Use segment_mark only for + PT_LOAD headers. Delete first_matching_lma and first_suggested_lma. + Instead make matching_lma and suggested_lma pointers to the + sections. Align section vma and lma calculated from segment. + Don't clear includes_phdrs or includes_filehdr based on p_paddr + test. Try to handle alignment padding before first section by + adjusting new segment lma down. Adjust PT_PHDR map p_paddr. + +2018-05-09 Dimitar Dimitrov + + * elf32-pru.c (pru_elf32_do_ldi32_relocate): Make LDI32 relocation + conformant to TI ABI. + (pru_elf32_relax_section): Likewise. + (pru_elf_relax_delete_bytes): Fix offsets for new LDI32 code. + * elf32-pru.c (pru_elf32_do_ldi32_relocate): Ignore addend. + (pru_elf32_pmem_relocate): Trap - should not get here. + (pru_elf32_relocate_section): Add support for REL relocations. + (elf_info_to_howto_rel): Enable REL. + (elf_backend_may_use_rel_p): Likewise. + (elf_backend_may_use_rela_p): Likewise. + (elf_backend_default_use_rela_p): Likewise. + +2018-05-09 Alan Modra + + PR 23148 + * peXXigen.c (pe_print_edata): Correct minimum size. + +2018-05-09 Alan Modra + + PR 23147 + * peXXigen.c (pe_print_idata): Bound check hint_addr. + +2018-05-08 Nick Clifton + + PR 22809 + * elf.c (bfd_elf_get_str_section): Check for an excessively large + string section. + * elf-attrs.c (_bfd_elf_parse_attributes): Issue an error if the + attribute section is larger than the size of the file. + +2018-05-07 Alan Modra + + * cofflink.c (_bfd_coff_link_input_bfd): Use memcmp rather than + strncmp when checking for ".bf" special symbol. + * peXXigen.c (_bfd_XXi_swap_scnhdr_out): Make pe_required_section_flags + section name a char array, remove sentinal known_sections entry, + and adjust loop over known_sections to suit. Use memcmp rather + than strncmp. + +2018-05-04 Alan Modra + + * elf-linux-core.h (struct elf_external_linux_prpsinfo32_ugid32), + (struct elf_external_linux_prpsinfo32_ugid16), + (struct elf_external_linux_prpsinfo64_ugid32), + (struct elf_external_linux_prpsinfo64_ugid16): Add ATTRIBUTE_NONSTRING + to pr_fname and pr_psargs fields. Remove GCC diagnostic pragmas. + Move comment to.. + * elf.c (elfcore_write_prpsinfo): ..here. Indent nested preprocessor + directives. + * elf32-arm.c (elf32_arm_nabi_write_core_note): Add ATTRIBUTE_NONSTRING + to data. + * elf32-ppc.c (ppc_elf_write_core_note): Likewise. + * elf32-s390.c (elf_s390_write_core_note): Likewise. + * elf64-s390.c (elf_s390_write_core_note): Likewise. + * elfxx-aarch64.c (_bfd_aarch64_elf_write_core_note): Likewise. + * elf64-x86-64.c (elf_x86_64_write_core_note): Add GCC diagnostic + pragmas. + * peXXigen.c (_bfd_XXi_swap_scnhdr_out): Use strnlen to avoid + false positive gcc-8 warning. + * cofflink.c (_bfd_coff_link_input_bfd): Likewise. + +2018-05-04 Tulio Magno Quites Machado Filho + + * elf32-ppc.c (_bfd_elf_ppc_merge_fp_attributes): Fix the order + of arguments when warning about different long double types. + +2018-05-03 Simon Atanasyan + + * elf32-mips.c: (elf32_mips_fixup_symbol): New function. + (elf_backend_fixup_symbol): New macro. + * elfxx-mips.c: (mips_elf_output_extsym): Discard _gp_disp + handling. + (_bfd_mips_elf_finish_dynamic_symbol): Likewise. + +2018-04-30 Francois H. Theron + + * Makefile.am: Added NFP files to build. + * archures.c: Added bfd_arch_nfp + * config.bfd: Added NFP support. + * configure.ac: Added NFP support. + * cpu-nfp.c: New, for NFP support. + * elf-bfd.h: Added elf_section_info() + * elf64-nfp.c: New, for NFP support. + * po/SRC-POTFILES.in: Added NFP source files. + * targets.c: Added nfp_elf64_vec + * bfd-in2.h: Regenerate. + * Makefile.in: Regenerate. + * configure: Regenerate. + +2018-04-27 Alan Modra + + * bfd-in2.h: Regenerate. + * libbfd.h: Regenerate. + +2018-04-27 Alan Modra + + PR 23123 + PR 22374 + * elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Don't drop plt + relocs for ifuncs. + * elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Comment fixes. + +2018-04-26 Pedro Alves + + * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Don't consider + ifunc and non-ifunc symbols duplicates. + +2018-04-25 Christophe Lyon + Mickaël Guêné + + * elf32-arm.c (elf32_arm_fdpic_thumb_plt_entry): New. + (elf32_arm_plt_needs_thumb_stub_p): Handle thumb-only case. + (elf32_arm_populate_plt_entry): Likewise. + (elf32_arm_output_plt_map_1): Likewise. + (elf32_arm_output_arch_local_syms): Likewise. + +2018-04-25 Christophe Lyon + Mickaël Guêné + + * elf32-arm.c (elf32_arm_finish_dynamic_symbol): Handle + _GLOBAL_OFFSET_TABLE_ in FDPIC mode. + +2018-04-25 Christophe Lyon + Mickaël Guêné + + * elf32-arm.c (bfd_elf32_arm_set_target_params): Handle FDPIC case + for R_ARM_TARGET2. + +2018-04-25 Christophe Lyon + Mickaël Guêné + + * elf32-arm.c (DEFAULT_STACK_SIZE): New. + (elf32_arm_always_size_sections): Create stack segment. + +2018-04-25 Christophe Lyon + Mickaël Guêné + + * bfd-in2.h (BFD_RELOC_ARM_TLS_GD32_FDPIC) + (BFD_RELOC_ARM_TLS_LDM32_FDPIC, BFD_RELOC_ARM_TLS_IE32_FDPIC): New + relocations. + * elf32-arm.c (elf32_arm_howto_table_2): Add R_ARM_TLS_GD32_FDPIC, + R_ARM_TLS_LDM32_FDPIC, R_ARM_TLS_IE32_FDPIC relocations. + (elf32_arm_reloc_map): Add R_ARM_TLS_GD32_FDPIC, + R_ARM_TLS_LDM32_FDPIC, R_ARM_TLS_IE32_FDPIC. + (struct elf32_arm_link_hash_table): Update comment. + (elf32_arm_final_link_relocate): Handle TLS FDPIC relocations. + (IS_ARM_TLS_RELOC): Likewise. + (elf32_arm_check_relocs): Likewise. + (allocate_dynrelocs_for_symbol): Likewise. + (elf32_arm_size_dynamic_sections): Update comment. + * reloc.c: Add BFD_RELOC_ARM_TLS_GD32_FDPIC, + BFD_RELOC_ARM_TLS_LDM32_FDPIC, BFD_RELOC_ARM_TLS_IE32_FDPIC. + +2018-04-25 Christophe Lyon + Mickaël Guêné + + * elf32-arm.c (elf32_arm_fdpic_plt_entry): New. + (elf32_arm_create_dynamic_sections): Handle FDPIC. + (elf32_arm_allocate_plt_entry): Likewise. + (elf32_arm_populate_plt_entry): Likewise. + (elf32_arm_output_plt_map_1): Likewise. + +2018-04-25 Christophe Lyon + Mickaël Guêné + + * elf32-arm.c (struct fdpic_local): New. + (elf_arm_obj_tdata): Add local_fdpic_cnts field. + (elf32_arm_local_fdpic_cnts): New. + (struct fdpic_global): New. + (elf32_arm_link_hash_entry): Add fdpic_cnts field. + (elf32_arm_link_hash_table): Add srofixup field. + (arm_elf_add_rofixup): New. + (arm_elf_fill_funcdesc): New. + (elf32_arm_link_hash_newfunc): Handle fdpic_cnts. + (elf32_arm_allocate_local_sym_info): Likewise. + (create_got_section): Create .rofixup section. + (elf32_arm_copy_indirect_symbol): Handle fdpic_cnts. + (bfd_elf32_arm_set_target_params): Handle FDPIC. + (elf32_arm_final_link_relocate): Likewise. + (elf32_arm_check_relocs): Likewise. + (allocate_dynrelocs_for_symbol): Likewise. + (elf32_arm_size_dynamic_sections): Likewise. + (elf32_arm_finish_dynamic_sections): Likewise. + (elf32_arm_output_arch_local_syms): Likewise. + (elf32_arm_fdpic_omit_section_dynsym): New. + +2018-04-25 Christophe Lyon + Mickaël Guêné + + * bfd-in2.c (BFD_RELOC_ARM_GOTFUNCDESC) + (BFD_RELOC_ARM_GOTOFFFUNCDESC, BFD_RELOC_ARM_FUNCDESC) + (BFD_RELOC_ARM_FUNCDESC_VALUE): New. + * elf32-arm.c (elf32_arm_howto_table_2): Add R_ARM_GOTFUNCDESC, + R_ARM_GOTOFFFUNCDESC, R_ARM_FUNCDESC, R_ARM_FUNCDESC_VALUE. + (elf32_arm_howto_from_type): Take new members of + elf32_arm_howto_table_2 into account. + (elf32_arm_reloc_map): Add BFD_RELOC_ARM_GOTFUNCDESC, + BFD_RELOC_ARM_GOTOFFFUNCDESC, BFD_RELOC_ARM_FUNCDESC, + BFD_RELOC_ARM_FUNCDESC_VALUE. + * reloc.c: Add BFD_RELOC_ARM_GOTFUNCDESC, + BFD_RELOC_ARM_GOTOFFFUNCDESC, BFD_RELOC_ARM_FUNCDESC, + BFD_RELOC_ARM_FUNCDESC_VALUE. + +2018-04-25 Christophe Lyon + Mickaël Guêné + + * elf32-arm.c (elf32_arm_print_private_bfd_data): Support + EF_ARM_PIC and ELFOSABI_ARM_FDPIC. + (elf32_arm_post_process_headers): Support ELFOSABI_ARM_FDPIC. + (ELF_OSABI): Define to ELFOSABI_ARM_FDPIC. + +2018-04-25 Christophe Lyon + Mickaël Guêné + + * config.bfd (arm*-*-linux-*): Add arm_elf32_fdpic_be_vec and + arm_elf32_fdpic_le_vec to targ_selvecs. Accept + arm*-*-uclinuxfdpiceabi. + * configure.ac: Add support for arm_elf32_fdpic_be_vec and + arm_elf32_fdpic_le_vec. + * configure: Regenerate. + * elf32-arm.c (struct elf32_arm_link_hash_table): Add fdpic_p. + (elf32_arm_link_hash_table_create): Initialize fdpic_p. + (TARGET_LITTLE_SYM, TARGET_LITTLE_NAME, TARGET_BIG_SYM) + (TARGET_BIG_NAME, elf_match_priority): Define for FDPIC targets. + (elf32_arm_fdpic_link_hash_table_create): New. + * targets.c (_bfd_target_vector): Add arm_elf32_fdpic_be_vec and + arm_elf32_fdpic_le_vec. + +2018-04-25 Alan Modra + + * elf-linux-core.h: Disable gcc-8 string truncation warning. + * elf.c (elfcore_write_prpsinfo): Likewise. + +2018-04-25 Alan Modra + + * Makefile.am: Remove arm-aout and arm-coff support. + * config.bfd: Likewise. + * configure.ac: Likewise. + * targets.c: Likewise. + * aout-arm.c: Delete. + * armnetbsd.c: Delete. + * riscix.c: Delete. + * Makefile.in: Regenerate. + * configure: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2018-04-24 Nick Clifton + + PR 23113 + * elf.c (ignore_section_sym): Check for the output_section pointer + being NULL before dereferencing it. + + PR 23110 + * peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Check for + a negative PE_DEBUG_DATA size before iterating over the debug data. + +2018-04-23 Alan Modra + + * elf-linux-core.h: Revert last change. + * elf.c: Likewise. + +2018-04-23 Nick Clifton + + PR 23056 + * aoutx.h (aout_get_external_symbols): Allocate an extra byte at + the end of the string table, and zero it. + +2018-04-23 Alan Modra + + * elf-linux-core.h (swap_linux_prpsinfo32_ugid32_out): Disable + gcc-8 string truncation warning. + (swap_linux_prpsinfo32_ugid16_out): Likewise. + (swap_linux_prpsinfo64_ugid32_out): Likewise. + (swap_linux_prpsinfo64_ugid16_out): Likewise. + * elf.c (elfcore_write_prpsinfo): Likewise. + +2018-04-23 Nick Clifton + + PR 23056 + * aoutx.h (aout_get_external_symbols): Allocate an extra byte at + the end of the string table, and zero it. + +2018-04-20 Alan Modra + + PR 22978 + * elf32-hppa.c (got_relocs_needed): Add extra param to special + case both dtprel and tprel relocs. + (allocate_dynrelocs): Adjust conditions for got relocs. + (elf32_hppa_relocate_section): Likewise for local sym got relocs. + Emit dynamic relocs on TLS GOT entries for shared libraries, + not when pic. Omit dynamic reloc on dtprel entry when local, + and on tprel entry when local and executable. + +2018-04-19 Alan Modra + + PR 22537 + * elf32-hppa.c (elf32_hppa_size_stubs): Init "destination" to -1. + (hppa_type_of_stub): Don't return a long branch stub for + symbols other than those defined statically. + +2018-04-19 Alan Modra + + * Makefile.am: Revert 2018-04-18 coff-mips changes. + * config.bfd: Add back mips_ecoff_le_vec and mips_ecoff_be_vec + to selvecs for mips targets change 2018-04-18. + * configure.ac: Reinstate mips_ecoff_le_vec, mips_ecoff_be_vec + and mips_ecoff_bele_vec. + * targets.c: Likewise. + * coff-mips.c: Resurrect. + * Makefile.in: Regenerate. + * configure: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2018-04-18 Alan Modra + + * Makefile.am: Remove mips aout and coff support. + * config.bfd: Likewise. + * configure.ac: Likewise. + * targets.c: Likewise. + * coff-mips.c: Delete + * mipsbsd.c: Delete + * pe-mips.c: Delete + * pei-mips.c: Delete + * Makefile.in: Regenerate. + * configure: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2018-04-17 H.J. Lu + + * elf32-i386.c (elf32_bed): Define before including + "elf32-target.h". + * elf64-x86-64.c (elf64_bed): Define before including + "elf64-target.h". + (elf32_bed): Define before including "elf32-target.h". + +2018-04-17 H.J. Lu + + PR ld/23055 + * elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): Use a + normal input file with compatible relocation. + +2018-04-18 Alan Modra + + * Makefile.am: Remove support for assorted i386 aout and coff targets. + * config.bfd: Likewise. + * configure.ac: Likewise. + * doc/bfdint.texi: Likewise. + * targets.c: Likewise. + * freebsd.h: Delete. + * i386dynix.c: Delete. + * i386freebsd.c: Delete. + * i386linux.c: Delete. + * i386mach3.c: Delete. + * i386netbsd.c: Delete. + * i386os9k.c: Delete. + * Makefile.in: Regenerate. + * configure: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2018-04-17 Andrew Sadek + + Microblaze Target: PIC data text relative + + * bfd/reloc.c (2 new BFD relocations): + BFD_RELOC_MICROBLAZE_64_TEXTPCREL & + BFD_RELOC_MICROBLAZE_64_TEXTPCREL + * bfd/bfd-in2.h: Regenerate + * bfd/libbfd.h: Regenerate + * bfd/elf32-microblaze.c (Handle new relocs): define 'HOWTO' of 3 + new relocs and handle them in both relocate and relax functions. + (microblaze_elf_reloc_type_lookup): add mapping between for new + bfd relocs. + (microblaze_elf_relocate_section): Handle new relocs in case of + elf relocation. + (microblaze_elf_relax_section): Handle new relocs for elf relaxation. + +2018-04-17 Nick Clifton + + PR 23055 + * aoutx.h (find_nearest_line): Check that the symbol name exists + and is long enough, before attempting to see if it is for a .o + file. + * hash.c (bfd_hash_hash): Add an assertion that the string is not + NULL. + * linker.c (bfd_link_hash_lookup): Fail if the table or string are + NULL. + (_bfd_generic_link_add_archive_symbols): Fail if an archive entry + has no name. + + PR 23065 + * dwarf2.c (concat_filename): Check for a NULL table pointer. + +2018-04-16 Nick Clifton + + PR 23061 + * coffgen.c (coff_pointerize_aux): Check for an out of range + fixup. + +2018-04-16 Alan Modra + + * Makefile.am: Remove arm-epoc-pe support. + * coff-arm.c: Likewise. + * config.bfd: Likewise. + * configure.ac: Likewise. + * targets.c: Likewise. + * epoc-pe-arm.c: Delete. + * epoc-pei-arm.c: Delete. + * Makefile.in: Regenerate. + * configure: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2018-04-16 Alan Modra + + * Makefile.am: Remove sparc-aout and sparc-coff support. + * config.bfd: Likewise. + * configure.ac: Likewise. + * targets.c: Likewise. + * aout-sparcle.c: Delete. + * aoutf1.h: Delete. + * cf-sparclynx.c: Delete. + * coff-sparc.c: Delete. + * demo64.c: Delete. + * sparclinux.c: Delete. + * sparclynx.c: Delete. + * sparcnetbsd.c: Delete. + * sunos.c: Delete. + * Makefile.in: Regenerate. + * configure: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2018-04-16 Alan Modra + + * Makefile.am: Remove m68k-aout and m68k-coff support. + * aoutf1.h: Likewise. + * aoutx.h: Likewise. + * archive.c: Likewise. + * bfd-in.h: Likewise. + * bfd.c: Likewise. + * coffcode.h: Likewise. + * coffswap.h: Likewise. + * config.bfd: Likewise. + * configure.ac: Likewise. + * configure.host: Likewise. + * doc/bfd.texinfo: Likewise. + * doc/bfdint.texi: Likewise. + * freebsd.h: Likewise. + * gen-aout.c: Likewise. + * hpux-core.c: Likewise. + * libaout.h: Likewise. + * libbfd-in.h: Likewise. + * pdp11.c: Likewise. + * peicode.h: Likewise. + * riscix.c: Likewise. + * targets.c: Likewise. + * aout0.c: Delete. + * coff-apollo.c: Delete. + * coff-aux.c: Delete. + * coff-m68k.c: Delete. + * coff-svm68k.c: Delete. + * coff-u68k.c: Delete. + * hosts/delta68.h: Delete. + * hosts/hp300bsd.h: Delete. + * hosts/m68kaux.h: Delete. + * hosts/news.h: Delete. + * hp300bsd.c: Delete. + * hp300hpux.c: Delete. + * liboasys.h: Delete. + * m68k4knetbsd.c: Delete. + * m68klinux.c: Delete. + * m68knetbsd.c: Delete. + * oasys.c: Delete. + * versados.c: Delete. + * Makefile.in: Regenerate. + * bfd-in2.h: Regenerate. + * configure: Regenerate. + * libbfd.h: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2018-04-16 Alan Modra + + * Makefile.am: Remove sh5 and sh64 support. + * archures.c: Likewise. + * config.bfd: Likewise. + * configure.ac: Likewise. + * cpu-sh.c: Likewise. + * elf32-sh-relocs.h: Likewise. + * elf32-sh.c: Likewise. + * targets.c: Likewise. + * elf32-sh64-com.c: Delete. + * elf32-sh64.c: Delete. + * elf32-sh64.h: Delete. + * elf64-sh64.c: Delete. + * Makefile.in: Regenerate. + * bfd-in2.h: Regenerate. + * configure: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2018-04-16 Alan Modra + + * Makefile.am: Remove sh-symbianelf support. + * config.bfd: Likewise. + * configure.ac: Likewise. + * targets.c: Likewise. + * elf32-sh-symbian.c: Delete. + * Makefile.in: Regenerate. + * configure: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2018-04-16 Alan Modra + + * Makefile.am: Remove vax-bsd and vax-ultrix support. + * config.bfd: Likewise. + * configure.ac: Likewise. + * targets.c: Likewise. + * vaxbsd.c: Delete. + * Makefile.in: Regenerate. + * configure: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2018-04-16 Alan Modra + + * Makefile.am: Remove w65 support. + * archures.c: Likewise. + * coffcode.h: Likewise. + * config.bfd: Likewise. + * configure.ac: Likewise. + * targets.c: Likewise. + * coff-w65.c: Delete. + * cpu-w65.c: Delete. + * Makefile.in: Regenerate. + * bfd-in2.h: Regenerate. + * configure: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2018-04-16 Alan Modra + + * Makefile.am: Remove we32k support. + * archures.c: Likewise. + * coffcode.h: Likewise. + * config.bfd: Likewise. + * configure.ac: Likewise. + * targets.c: Likewise. + * coff-we32k.c: Delete. + * cpu-we32k.c: Delete. + * Makefile.in: Regenerate. + * bfd-in2.h: Regenerate. + * configure: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2018-04-16 Alan Modra + + * Makefile.am: Remove m88k support. + * aoutx.h: Likewise. + * archures.c: Likewise. + * coffcode.h: Likewise. + * coffswap.h: Likewise. + * config.bfd: Likewise. + * configure.ac: Likewise. + * cpu-ns32k.c: Likewise. + * elf32-nds32.c: Likewise. + * mach-o.c: Likewise. + * netbsd-core.c: Likewise. + * reloc.c: Likewise. + * targets.c: Likewise. + * coff-m88k.c: Delete. + * cpu-m88k.c: Delete. + * elf32-m88k.c: Delete. + * hosts/m88kmach3.h: Delete. + * m88kmach3.c: Delete. + * m88kopenbsd.c: Delete. + * Makefile.in: Regenerate. + * bfd-in2.h: Regenerate. + * configure: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2018-04-16 Alan Modra + + * Makefile.am: Remove i370 support. + * archures.c: Likewise. + * config.bfd: Likewise. + * configure.ac: Likewise. + * targets.c: Likewise. + * cpu-i370.c: Delete. + * elf32-i370.c: Delete. + * Makefile.in: Regenerate. + * bfd-in2.h: Regenerate. + * configure: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2018-04-16 Alan Modra + + * Makefile.am: Remove h8500 support. + * archures.c: Likewise. + * coffcode.h: Likewise. + * config.bfd: Likewise. + * configure.ac: Likewise. + * targets.c: Likewise. + * coff-h8500.c: Delete. + * cpu-h8500.c: Delete. + * Makefile.in: Regenerate. + * bfd-in2.h: Regenerate. + * configure: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2018-04-16 Alan Modra + + * Makefile.am: Remove h8300-coff support. + * coffcode.h: Likewise. + * config.bfd: Likewise. + * configure.ac: Likewise. + * reloc16.c: Likewise. + * targets.c: Likewise. + * coff-h8300.c: Delete. + * Makefile.in: Regenerate. + * configure: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2018-04-16 Alan Modra + + * Makefile.am: Remove IEEE 695 support. + * archures.c: Likewise. + * bfd.c: Likewise. + * config.bfd: Likewise. + * configure.ac: Likewise. + * doc/bfd.texinfo: Likewise. + * doc/bfdint.texi: Likewise. + * doc/bfdsumm.texi: Likewise. + * section.c: Likewise. + * targets.c: Likewise. + * ieee.c: Delete. + * libieee.h: Delete. + * Makefile.in: Regenerate. + * bfd-in2.h: Regenerate. + * configure: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2018-04-16 Alan Modra + + * config.bfd: Remove tandem support. + +2018-04-16 Alan Modra + + * Makefile.am: Remove newsos3 support. + * aoutx.h: Likewise. + * config.bfd: Likewise. + * configure.ac: Likewise. + * targets.c: Likewise. + * newsos3.c: Delete. + * Makefile.in: Regenerate. + * configure: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2018-04-16 Alan Modra + + * Makefile.am: Remove netware support. + * bfd-in.h: Likewise. + * bfd.c: Likewise. + * config.bfd: Likewise. + * configure.ac: Likewise. + * doc/bfdint.texi: Likewise. + * ecoff.c: Likewise. + * targets.c: Likewise. + * libnlm.h: Delete. + * nlm-target.h: Delete. + * nlm.c: Delete. + * nlm32-alpha.c: Delete. + * nlm32-i386.c: Delete. + * nlm32-ppc.c: Delete. + * nlm32-sparc.c: Delete. + * nlm32.c: Delete. + * nlm64.c: Delete. + * nlmcode.h: Delete. + * nlmswap.h: Delete. + * Makefile.in: Regenerate. + * bfd-in2.h: Regenerate. + * configure: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2018-04-16 Alan Modra + + * archures.c: Remove tahoe support. + * config.bfd: Likewise. + * configure.ac: Likewise. + * hosts/tahoe.h: Delete. + * bfd-in2.h: Regenerate. + * configure: Regenerate. + +2018-04-14 Alan Modra + + * elf-bfd.h (struct elf_backend_data): Add relropagesize. + * elfxx-target.h (ELF_RELROPAGESIZE): Provide default and + sanity test. + (elfNN_bed): Init relropagesize. + * bfd.c (bfd_emul_get_commonpagesize): Add boolean param to + select relropagesize. + * elf32-ppc.c (ELF_COMMONPAGESIZE): Define as 0x1000. + (ELF_RELROPAGESIZE): Define as ELF_MAXPAGESIZE. + (ELF_MINPAGESIZE): Don't define. + * elf64-ppc.c (ELF_COMMONPAGESIZE): Define as 0x1000. + (ELF_RELROPAGESIZE): Define as ELF_MAXPAGESIZE. + * bfd-in2.h: Regenerate. + +2018-04-14 Alan Modra + + * elf32-ppc.c (ELF_MAXPAGESIZE, ELF_COMMONPAGESIZE): Don't depend + on __QNXTARGET__ define. + +2018-04-14 Alan Modra + + * config.bfd: Add powerpc-*-lynxos* and powerpc-*-windiss* + to obsolete list. + +2018-04-11 Alan Modra + + * aout-adobe.c: Delete. + * bout.c: Delete. + * coff-i860.c: Delete. + * coff-i960.c: Delete. + * cpu-i860.c: Delete. + * cpu-i960.c: Delete. + * elf32-i860.c: Delete. + * elf32-i960.c: Delete. + * hosts/i860mach3.h: Delete. + * Makefile.am: Remove i860, i960, bout, and adobe support. + * archures.c: Remove i860 and i960 support. + * coffcode.h: Likewise. + * reloc.c: Likewise. + * aoutx.h: Comment updates. + * archive.c: Remove BOUT and i960 support. + * bfd.c: Remove BOUT support. + * coffswap.h: Remove i960 support. + * config.bfd: Remove i860, i960 and adobe targets. + * configure.ac: Remove adode, bout, i860, i960, icoff targets. + * targets.c: Likewise. + * ieee.c: Remove i960 support. + * mach-o.c: Remove i860 support. + * Makefile.in: Regenerate. + * bfd-in2.h: Regenerate. + * configure: Regenerate. + * libbfd.h: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2018-04-09 Maciej W. Rozycki + + * elf64-mips.c (mips_elf64_write_rel): Handle a NULL BFD pointer + in the BFD symbol referred by the relocation. + (mips_elf64_write_rela): Likewise. + +2018-04-09 Maciej W. Rozycki + + * elf64-mips.c (mips_elf64_slurp_one_reloc_table): Issue an + error for out-of-range `r_sym' values. + +2018-04-09 Alan Modra + + * elf64-ppc.c (struct _ppc64_elf_section_data): Add has_pltcall field. + (struct ppc_link_hash_table): Add can_convert_all_inline_plt. + (ppc64_elf_check_relocs): Set has_pltcall. + (ppc64_elf_adjust_dynamic_symbol): Discard some PLT entries. + (ppc64_elf_inline_plt): New function. + (ppc64_elf_size_dynamic_sections): Discard some PLT entries for locals. + * elf64-ppc.h (ppc64_elf_inline_plt): Declare. + * elf32-ppc.c (has_pltcall): Define. + (struct ppc_elf_link_hash_table): Add can_convert_all_inline_plt. + (ppc_elf_check_relocs): Set has_pltcall. + (ppc_elf_inline_plt): New function. + (ppc_elf_adjust_dynamic_symbol): Discard some PLT entries. + (ppc_elf_size_dynamic_sections): Likewise. + * elf32-ppc.h (ppc_elf_inline_plt): Declare. + +2018-04-09 Alan Modra + + * elf32-ppc.c (ppc_elf_howto_raw): Add PLTSEQ and PLTCALL howtos. + (is_plt_seq_reloc): New function. + (ppc_elf_check_relocs): Handle PLTSEQ and PLTCALL relocs. + (ppc_elf_tls_optimize): Handle inline plt call sequence. + (ppc_elf_relax_section): Handle PLTCALL reloc. + (ppc_elf_relocate_section): Nop out inline plt call sequence when + resolving locally. + * elf64-ppc.c (ppc64_elf_howto_raw): Add R_PPC64_PLTSEQ and + R_PPC64_PLTCALL entries. Comment R_PPC64_TOCSAVE. + (has_tls_get_addr_call): Correct comment. + (is_branch_reloc): Add PLTCALL. + (is_plt_seq_reloc): New function. + (ppc64_elf_check_relocs): Handle PLT16_LO_DS reloc. Set + has_tls_reloc for R_PPC64_TLSGD and R_PPC64_TLSLD. Create plt + entry for R_PPC64_PLTCALL. + (ppc64_elf_tls_optimize): Handle inline plt call sequence. + (ppc_type_of_stub): Handle PLTCALL reloc. + (toc_adjusting_stub_needed): Likewise. + (ppc64_elf_relocate_section): Set "can_plt_call" for PLTCALL + reloc insn. Nop out inline plt call sequence when resolving + locally. Handle __tls_get_addr inline plt call optimization. + +2018-04-09 Alan Modra + + * elf64-ppc.c (LOCAL_PLT_ENTRY_SIZE): Define. + (struct ppc_stub_hash_entry): Add symtype field. + (PLT_KEEP): Define. + (struct ppc_link_hash_table): Add pltlocal and relpltlocal. + (create_linkage_sections): Create pltlocal and relpltlocal. + (ppc64_elf_check_relocs): Allow PLT relocs on local symbols. + Set PLT_KEEP. + (ppc64_elf_adjust_dynamic_symbol): Keep PLT entries for inline calls. + (allocate_dynrelocs): Allocate pltlocal and relpltlocal. + (ppc64_elf_size_dynamic_sections): Size pltlocal and relpltlocal. + Keep PLT entries for inline calls against locals. + (ppc_build_one_stub): Use pltlocal as appropriate. + (ppc_size_one_stub): Likewise. + (ppc64_elf_size_stubs): Set symtype. + (build_global_entry_stubs_and_plt): Init pltlocal and write + relpltlocal for globals. + (write_plt_relocs_for_local_syms): Likewise for local syms. + (ppc64_elf_relocate_section): Support PLT for local syms. + * elf32-ppc.c (PLT_KEEP): Define. + (struct ppc_elf_link_hash_table): Add pltlocal and relpltlocal. + (ppc_elf_create_glink): Create pltlocal and relpltlocal. + (ppc_elf_check_relocs): Allow PLT relocs on local symbols. + Set PLT_KEEP. Adjust update_local_sym_info call. + (ppc_elf_adjust_dynamic_symbol): Keep PLT entries for inline calls. + (allocate_dynrelocs): Allocate pltlocal and relpltlocal. + (ppc_elf_size_dynamic_sections): Size pltlocal and relpltlocal. + (ppc_elf_relocate_section): Support PLT16 relocs for local syms. + (write_global_sym_plt): Init pltlocal and write relpltlocal. + (ppc_finish_symbols): Likewise for locals. + +2018-04-09 Alan Modra + + * elf64-ppc.c (ppc_build_one_stub): Move output of PLT relocs + for local symbols to.. + (write_plt_relocs_for_local_syms): ..here. New function. + (ppc64_elf_finish_dynamic_symbol): Move output of PLT relocs for + global symbols to.. + (build_global_entry_stubs_and_plt): ..here. Rename from + build_global_entry_stubs. + (ppc64_elf_build_stubs): Always call build_global_entry_stubs_and_plt. + Call write_plt_relocs_for_local_syms. + * elf32-ppc.c (get_sym_h): New function. + (ppc_elf_relax_section): Use get_sym_h. + (ppc_elf_relocate_section): Move output of PLT relocs and glink + stubs for local symbols to.. + (ppc_finish_symbols): ..here. New function. + (ppc_elf_finish_dynamic_symbol): Move output of PLT relocs for + global syms to.. + (write_global_sym_plt): ..here. New function. + * elf32-ppc.h (ppc_elf_modify_segment_map): Delete attribute. + (ppc_finish_symbols): Declare. + +2018-04-09 Alan Modra + + * elf32-ppc.c (ppc_elf_check_relocs): Handle PLT16 relocs. + (ppc_elf_relocate_section): Likewise. + * elf64-ppc.c (ppc64_elf_check_relocs): Handle PLT16_LO_DS. + (ppc64_elf_relocate_section): Likewise. Correct PLT16 + resolution to plt entry relative to toc pointer. + +2018-04-09 Alan Modra + + * elf64-ppc.c (TLS_TLS, TLS_GD, TLS_LD, TLS_TPREL, TLS_DTPREL, + TLS_TPRELGD, TLS_EXPLICIT): Renumber. Test TLS_TLS throughout + file when other TLS flags are tested in a mask. + (TLS_MARK, NON_GOT): Define. + (PLT_IFUNC): Redefine, and test TLS_TLS throughout file as well. + (update_local_sym_info): Don't create got entry when NON_GOT. + (ppc64_elf_check_relocs): Pass NON_GOT with PLT_IFUNC. + Set TLS_MARK. + (get_tls_mask): Do toc lookup if tls_mask is just TLS_MARK. + (ppc64_elf_relocate_section): Likewise. + (ppc64_elf_tls_optimize): Don't attempt to optimize indirect + __tls_get_addr calls lacking a marker reloc. + * elf32-ppc.c (TLS_TLS, TLS_GD, TLS_LD, TLS_TPREL, TLS_DTPREL, + TLS_TPRELGD): Renumber. Update comment. + (TLS_MARK, NON_GOT): Define. + (PLT_IFUNC): Redefine, and test TLS_TLS throughout file as well. + (update_local_sym_info): Don't create got entry when NON_GOT. + (ppc_elf_check_relocs): Pass NON_GOT with PLT_IFUNC. + Set TLS_MARK. + (ppc_elf_tls_optimize): Don't attempt to optimize indirect + __tls_get_addr calls lacking a marker reloc. + +2018-04-06 H.J. Lu + + * elf64-x86-64.c (elf_x86_64_info_to_howto): Don't mask out + R_X86_64_converted_reloc_bit. + +2018-04-05 H.J. Lu + + PR gas/22318 + * configure: Regenerated. + +2018-04-05 Alan Modra + + * elf-hppa.h (elf_hppa_info_to_howto): Init howto to NULL. + (elf_hppa_info_to_howto_rel): Likewise. + +2018-04-04 Maciej W. Rozycki + + * elf-hppa.h (elf_hppa_info_to_howto): Also return + unsuccessfully for unimplemented relocations. + (elf_hppa_info_to_howto_rel): Likewise. + +2018-04-04 Maciej W. Rozycki + + * elf32-i860.c (lookup_howto): Add `abfd' parameter. Set the + `bfd_error_bad_value' error and call `_bfd_error_handler' on a + howto lookup failure. + (elf32_i860_reloc_type_lookup): Adjust `lookup_howto' call + accordingly. + (elf32_i860_info_to_howto_rela): Likewise. + (elf32_i860_relocate_splitn): Likewise. + (elf32_i860_relocate_pc16): Likewise. + (elf32_i860_relocate_pc26): Likewise. + (elf32_i860_relocate_section): Likewise. + +2018-04-04 Maciej W. Rozycki + + * elf32-visium.c (visium_info_to_howto_rela): Correct the range + check for `visium_elf_howto_table' table access. + +2018-04-04 Maciej W. Rozycki + + * elf32-iq2000.c (iq2000_info_to_howto_rela): Correct the range + check for `iq2000_elf_howto_table' table access. + +2018-04-04 Maciej W. Rozycki + + * elf32-frv.c (frv_info_to_howto_rela): Correct the range check + for `elf32_frv_howto_table' table access. + +2018-04-04 Maciej W. Rozycki + + * elf32-mips.c (mips_elf32_rtype_to_howto): Also return + unsuccessfully for placeholder howtos. + * elf64-mips.c (mips_elf64_rtype_to_howto): Likewise. + * elfn32-mips.c (mips_elf_n32_rtype_to_howto): Likewise. + +2018-03-29 Maciej W. Rozycki + + * elf32-mips.c (mips_info_to_howto_rel): Remove the calls to + `_bfd_error_handler' and to set the `bfd_error_bad_value' error. + +2018-03-28 Maciej W. Rozycki + + * elf-hppa.h (elf_hppa_info_to_howto_rel): Remove + ATTRIBUTE_UNUSED from `abfd'. + +2018-03-28 Maciej W. Rozycki + + * elf-hppa.h (elf_hppa_info_to_howto_rel): Correct + `_bfd_error_handler' call formatting. + +2018-03-28 Maciej W. Rozycki + + * elf32-mips.c (mips_info_to_howto_rel): Call + `mips_elf32_rtype_to_howto' directly rather than via + `->elf_backend_mips_rtype_to_howto'. + +2018-03-28 Renlin Li + + PR ld/22970 + * elfnn-aarch64.c (IS_AARCH64_TLS_RELOC): Add cases for + BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12, + BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12_NC, + BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12, + BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12_NC, + BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12, + BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12_NC, + BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12, + BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12_NC. + (elfNN_aarch64_final_link_relocate): Support new relocations. + * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Support new + relocations. + (_bfd_aarch64_elf_resolve_relocation): Support new relocations. + +2018-03-28 Renlin Li + + PR ld/22970 + * reloc.c: Add BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12 + BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12_NC, + BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12, + BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12_NC, + BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12, + BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12_NC, + BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12, + BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12_NC, + BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12, + BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12_NC. + * elfnn-aarch64.c (elfNN_aarch64_howto_table): Add table entry for + TLSLE_LDST16_TPREL_LO12, + TLSLE_LDST16_TPREL_LO12_NC, + TLSLE_LDST32_TPREL_LO12, + TLSLE_LDST32_TPREL_LO12_NC, + TLSLE_LDST64_TPREL_LO12, + TLSLE_LDST64_TPREL_LO12_NC, + TLSLE_LDST8_TPREL_LO12, + TLSLE_LDST8_TPREL_LO12_NC. + * bfd-in2.h: Regenerated. + * libbfd.h: Regenerated. + +2018-03-28 Eric Botcazou + + PR ld/22972 + * elfxx-sparc.c (struct _bfd_sparc_elf_link_hash_entry): Add new flag + has_old_style_got_reloc. + (_bfd_sparc_elf_check_relocs) : Set it for old-style + relocations. Fix a couple of long lines. + (_bfd_sparc_elf_relocate_section) : Do not generate + a R_SPARC_NONE for the GOT slot if the symbol is also subject to old-style + GOT relocations. + +2018-03-25 H.J. Lu + + PR ld/23000 + * elf64-x86-64.c (elf_x86_64_finish_dynamic_sections): Add + ENDBR64 to the TLSDESC PLT entry. + +2018-03-21 Alan Modra + + * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Trim uninteresting + symbols. Use size_t counts. Delete redundant opd test. + +2018-03-21 Alan Modra + + * elf32-ppc.c (ppc_elf_tls_optimize): Delete locsyms. + +2018-03-21 Alan Modra + + * elf32-ppc.c (struct ppc_elf_link_hash_entry): Make tls_mask + field unsigned. + (update_local_sym_info): Likewise for local_got_tls_masks. + (ppc_elf_tls_optimize): Likewise for lgot_masks. + +2018-03-21 Alan Modra + + * elf64-ppc.c (ppc_size_one_stub): Fix comment typo. + (ppc64_elf_layout_multitoc): Allocate relocs for tprel as we + do in size_dynamic_sections. + +2018-03-21 Alan Modra + + * elf64-ppc.c (ppc64_elf_relocate_section): Don't access rel[1] + without first checking array bounds. + * elf32-ppc.c (ppc_elf_relocate_section): Likewise. + +2018-03-20 H.J. Lu + + PR ld/22983 + * elflink.c (bfd_elf_link_mark_dynamic_symbol): Set + non_ir_ref_dynamic if a symbol is made dynamic by --dynamic-list. + +2018-03-19 Nick Clifton + + * po/es.po: Updated Spanish translation. + +2018-03-15 Max Filippov + + * elf32-xtensa.c (xlate_map_entry): Change types of address + fields from 'unsigned' to 'bfd_vma'. + (xlate_offset_with_removed_text): Use struct xlate_map_entry as + the key argument to bsearch. Allow offsets past the end of a + section, use the last map entry for translation of such offsets. + +2018-03-15 Kuan-Lin Chen + + * elf32-nds32.c (nds32_elf_ex9_build_hash_table): Removed. + Not support the target feature. + (nds32_elf_ex9_itb_base): Likewise. + (nds32_elf_ex9_import_table): Likewise. + (nds32_elf_ex9_finish): Likewise. + (nds32_elf_ex9_reloc_jmp): Likewise. + (nds32_elf_get_insn_with_reg): Likewise. + (nds32_get_local_syms): Likewise. + (nds32_elf_ex9_replace_instruction): Likewise. + (nds32_elf_ifc_calc): Likewise. + (nds32_elf_ifc_finish): Likewise. + (nds32_elf_ifc_replace): Likewise. + (nds32_elf_ifc_reloc): Likewise. + +2018-03-14 Alan Modra + + * elf64-ppc.c (sfpr_define): Adjust for stub_sec size having + sfpr size added before defining alias symbols. + (ppc64_elf_build_stubs): Add stub section padding before + copying sfpr contents and defining save/restore alias symbols. + +2018-03-14 H.J. Lu + + PR ld/20882 + * elflink.c (elf_gc_mark_debug_section): Also check the local + debug definition section. + +2018-03-13 Nick Clifton + + PR 22113 + * pei-x86_64.c (pex64_get_unwind_info): Change to a boolean + function. Add an end address parameter. Check access of the data + pointer to make sure that they do not extend beyond the end + address. Return FALSE if any check fails. Add the end address + pointer to the ui structure. + (pex64_xdata_print_uwd_codes): Check accesses of the raw unwind + codes to make sure that they do not extend beyond the end address + pointer. Print an error message and return immediately if any + check fails. + +2018-03-09 Nick Clifton + + * elf64-s390.c (elf_s390_relocate_section): Move check for + relocations against non-allocated sections to before the code that + handles ifunc relocations. + * elf32-s390.c (elf_s390_relocate_section): Likewise. + * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Treat + relocs against IFUNC symbols in non-allocated sections as relocs + against FUNC symbols. + * elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Likewise. + +2018-03-08 H.J. Lu + + PR ld/22929 + * elf32-i386.c (elf_i386_relocate_section): Treat relocation + against IFUNC symbol in SHT_NOTE section without SHF_ALLOC as + relocation against FUNC symbol. + * elf64-x86-64.c (elf_x86_64_relocate_section): Likewise. + +2018-03-07 Renlin Li + + PR ld/20402 + * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Check absolute + symbol, and don't emit relocation in specific case. + +2018-03-07 Alan Modra + + * elf64-mips.c (mips_elf64_rtype_to_howto): Return NULL on error. + (mips_elf64_slurp_one_reloc_table): Pass on error. + +2018-03-03 James Cowgill + Maciej W. Rozycki + + PR ld/21900 + * elfxx-mips.c (mips_elf_calculate_relocation): Only return + after calling `undefined_symbol' hook if this is an error + condition. Assume the value of 0 for the symbol requested + otherwise. + +2018-03-02 Jim Wilson + + PR 22903 + * elfnn-aarch64.c (_bfd_aarch64_resize_stubs): Add 8 bytes for branch + and nop instead of 4. + (elfNN_arch64_build_stubs): Add nop after branch. Increase size by + 8 instead of 4. + +2018-03-01 Jim Wilson + + PR 22756 + * elfnn-riscv.c (riscv_relax_delete_bytes): When adjust st_size, use + else if instead of if. + +2018-03-01 Alan Modra + + * elf32-ft32.c (ft32_info_to_howto_rela): Correct range test. + +2018-02-28 Alan Modra + + PR 22887 + * aoutx.h (swap_std_reloc_in): Correct r_index bound check. + +2018-02-28 Nick Clifton + + PR 22895 + PR 22893 + * dwarf2.c (read_n_bytes): Replace size parameter with dwarf_block + pointer. Drop unused abfd parameter. Check the size of the block + before initialising the data field. Return the end pointer if the + size is invalid. + (read_attribute_value): Adjust invocations of read_n_bytes. + + PR 22894 + * dwarf1.c (parse_die): Check the length of form blocks before + advancing the data pointer. + +2018-02-28 Alan Modra + + PR 22887 + * aoutx.h (translate_symbol_table): Print an error message and set + bfd_error on finding an invalid name string offset. + +2018-02-27 H.J. Lu + + * config.in: Regenerated. + * configure: Likewise. + * configure.ac: Add --enable-separate-code. + (DEFAULT_LD_Z_SEPARATE_CODE): New AC_DEFINE_UNQUOTED. Default + to 1 for Linux/x86 targets, + * elf64-x86-64.c (ELF_MAXPAGESIZE): Set to 0x1000 if + DEFAULT_LD_Z_SEPARATE_CODE is 1. + +2018-02-27 Nick Clifton + + * aout-cris.c (swap_ext_reloc_out): Standadize error/warning + message. + * elf-hppa.h (elf_hppa_info_to_howto_rel): Likewise. + * elf32-i386.c (elf_i386_reloc_type_lookup): Likewise. + * elf32-xtensa.c (elf_xtensa_reloc_type_lookup): Likewise. + * elf64-ppc.c (ppc64_elf_reloc_type_lookup): Likewise. + * elf64-s390.c (elf_s390_reloc_type_lookup): Likewise. + * elf64-sh64.c (sh_elf64_info_to_howto): Likewise. + * elfxx-ia64.c (ia64_elf_reloc_type_lookup): Likewise. + * elfxx-sparc.c (_bfd_sparc_elf_reloc_type_lookup): Likewise. + * elfxx-tilegx.c (tilegx_reloc_type_lookup): Likewise. + + PR 22875 + * elf-bfd.h (struct elf_backend_data): Change the return type of + the elf_info_to_howto and elf_info_to_howto_rel function pointers + to bfd_boolean. + * elfcode.h (elf_slurp_reloc_table_from_section): Check the return + value from the info_to_howto function and fail if that function + failed. + * elf32-h8300.c (elf32_h8_relocate_section): Check return value + from the info_to_howto function. + (elf32_h8_relax_section): Likewise. + * elf32-lm32.c (lm32_elf_relocate_section): Likewise. + * elf32-m68hc1x.c (elf32_m68hc11_relocate_section): Likewise. + * elf32-score.c (s3_bfd_score_elf_relocate_section): Likewise. + * elf32-score7.c (s7_bfd_score_elf_relocate_section): Likewise. + * elf32-tic6x.c (elf32_tic6x_relocate_section): Likewise. + * elf64-ia64-vms.c (elf64_ia64_relocate_section): Likewise. + * elf64-sparc.c (elf64_sparc_slurp_one_reloc_table): Likewise. + * elf64-x86-64.c (elf_x86_64_tls_transition): Likewise. + * elfnn-ia64.c (elfNN_ia64_relocate_section): Likewise. + * elfnn-riscv.c (riscv_elf_check_relocs): Likewise. + (riscv_elf_relocate_section): Likewise. + * elf-hppa.h (elf_hppa_info_to_howto): Change return type to + bfd_boolean. Issue an error message, set an error value and + return FALSE if the reloc is not recognized. + (elf_hppa_info_to_howto_rel): Likewise. + * elf-m10200.c (mn10200_info_to_howto): Likewise. + * elf-m10300.c (mn10300_info_to_howto): Likewise. + * elf.c (_bfd_elf_no_info_to_howto): Likewise. + * elf32-arc.c (arc_info_to_howto_rel): Likewise. + * elf32-arm.c (elf32_arm_info_to_howto): Likewise. + * elf32-avr.c (avr_info_to_howto_rela): Likewise. + * elf32-bfin.c (bfin_info_to_howto): Likewise. + * elf32-cr16.c (elf_cr16_info_to_howto): Likewise. + * elf32-cr16c.c (elf_cr16c_info_to_howto): Likewise. + * elf32-cris.c (elf_cr16c_info_to_howto_rel) + (cris_info_to_howto_rela): Likewise. + * elf32-crx.c (elf_crx_info_to_howto): Likewise. + * elf32-d10v.c (d10v_info_to_howto_rel): Likewise. + * elf32-d30v.c (d30v_info_to_howto_rel, d30v_info_to_howto_rela): + Likewise. + * elf32-dlx.c (dlx_rtype_to_howto, elf32_dlx_info_to_howto) + (elf32_dlx_info_to_howto_rel): Likewise. + * elf32-epiphany.c (epiphany_info_to_howto_rela): Likewise. + * elf32-fr30.c (fr30_info_to_howto_rela): Likewise. + * elf32-frv.c (frv_info_to_howto_rela) + (frvfdpic_info_to_howto_rel): Likewise. + * elf32-ft32.c (ft32_info_to_howto_rela): Likewise. + * elf32-gen.c (elf_generic_info_to_howto) + (elf_generic_info_to_howto_rel): Likewise. + * elf32-h8300.c (elf32_h8_info_to_howto) + (elf32_h8_info_to_howto_rel): Likewise. + * elf32-i370.c (i370_elf_info_to_howto): Likewise. + * elf32-i386.c (elf_i386_reloc_type_lookup) + (elf_i386_rtype_to_howto, elf_i386_info_to_howto_rel): Likewise. + * elf32-i860.c (lookup_howto, elf32_i860_info_to_howto_rela): + Likewise. + * elf32-i960.c (elf32_i960_info_to_howto_rel): Likewise. + * elf32-ip2k.c (ip2k_info_to_howto_rela): Likewise. + * elf32-iq2000.c (iq2000_info_to_howto_rela): Likewise. + * elf32-lm32.c (lm32_info_to_howto_rela): Likewise. + * elf32-m32c.c (m32c_info_to_howto_rela): Likewise. + * elf32-m32r.c (m32r_info_to_howto_rel, m32r_info_to_howto): + Likewise. + * elf32-m68hc11.c (m68hc11_info_to_howto_rel): Likewise. + * elf32-m68hc12.c (m68hc11_info_to_howto_rel): Likewise. + * elf32-m68k.c (rtype_to_howto): Likewise. + * elf32-mcore.c (mcore_elf_info_to_howto): Likewise. + * elf32-mep.c (mep_info_to_howto_rela): Likewise. + * elf32-metag.c (metag_info_to_howto_rela): Likewise. + * elf32-microblaze.c (microblaze_elf_info_to_howto): Likewise. + * elf32-mips.c (mips_info_to_howto_rel, mips_info_to_howto_rela): + Likewise. + * elf32-moxie.c (moxie_info_to_howto_rela): Likewise. + * elf32-msp430.c (msp430_info_to_howto_rela): Likewise. + * elf32-mt.c (mt_info_to_howto_rela): Likewise. + * elf32-nds32.c (nds32_info_to_howto_rel, nds32_info_to_howto): + Likewise. + * elf32-nios2.c (nios2_elf32_info_to_howto): Likewise. + * elf32-or1k.c (or1k_info_to_howto_rela): Likewise. + * elf32-pj.c (pj_elf_info_to_howto): Likewise. + * elf32-ppc.c (ppc_elf_info_to_howto): Likewise. + * elf32-pru.c (pru_elf32_info_to_howto): Likewise. + * elf32-rl78.c (rl78_info_to_howto_rela): Likewise. + * elf32-rx.c (rx_info_to_howto_rela): Likewise. + * elf32-s390.c (elf_s390_info_to_howto): Likewise. + * elf32-score.c (s3_bfd_score_info_to_howto) + (_bfd_score_info_to_howto): Likewise. + * elf32-score7.c (s7_bfd_score_info_to_howto): Likewise. + * elf32-sh.c (sh_elf_info_to_howto): Likewise. + * elf32-spu.c (spu_elf_info_to_howto): Likewise. + * elf32-tic6x.c (elf32_tic6x_info_to_howto) + (elf32_tic6x_info_to_howto_rel): Likewise. + * elf32-tilepro.c (tilepro_info_to_howto_rela): Likewise. + * elf32-v850.c (v850_elf_info_to_howto_rel) + (v850_elf_info_to_howto_rela, v800_elf_info_to_howto): Likewise. + * elf32-vax.c (rtype_to_howto): Likewise. + * elf32-visium.c (visium_info_to_howto_rela): Likewise. + * elf32-wasm32.c (elf32_wasm32_rtype_to_howto) + (elf32_wasm32_info_to_howto_rela): Likewise. + * elf32-xc16x.c (elf32_xc16x_info_to_howto): Likewise. + * elf32-xgate.c (xgate_info_to_howto_rel): Likewise. + * elf32-xstormy16.c (xstormy16_info_to_howto_rela): Likewise. + * elf32-xtensa.c (elf_xtensa_info_to_howto_rela): Likewise. + * elf64-alpha.c (elf64_alpha_info_to_howto): Likewise. + * elf64-gen.c (elf_generic_info_to_howto) + (elf_generic_info_to_howto_rel): Likewise. + * elf64-ia64-vms.c (elf64_ia64_info_to_howto): Likewise. + * elf64-mips.c (mips_elf64_info_to_howto_rela): Likewise. + * elf64-mmix.c (mmix_info_to_howto_rela): Likewise. + * elf64-ppc.c (ppc64_elf_info_to_howto): Likewise. + * elf64-s390.c (elf_s390_reloc_type_lookup): Likewise. + * elf64-sh64.c (elf_s390_info_to_howto, sh_elf64_info_to_howto): + Likewise. + * elf64-x86-64.c (elf_x86_64_info_to_howto): Likewise. + * elfn32-mips.c (mips_info_to_howto_rel, mips_info_to_howto_rela): + Likewise. + * elfnn-aarch64.c (elfNN_aarch64_info_to_howto): Likewise. + * elfnn-ia64.c (elfNN_ia64_info_to_howto): Likewise. + * elfnn-riscv.c (riscv_info_to_howto_rela): Likewise. + * elfxx-ia64.c (ia64_elf_reloc_type_lookup): Likewise. + * elfxx-sparc.c (_bfd_sparc_elf_info_to_howto): Likewise. + * elfxx-tilegx.c (tilegx_info_to_howto_rela): Likewise. + * elf32-score.h (s7_bfd_score_info_to_howto): Update prototype. + * elfxx-sparc.h (_bfd_sparc_elf_info_to_howto): Update prototype. + * elfxx-tilegx.h (tilegx_info_to_howto_rela): Update prototype. + * elfxx-target.h (elf_info_to_howto, elf_info_to_howto_rel): + Default to NULL. + +2018-02-26 Jim Wilson + Stephan Schreiber + + PR 15904 + * elfnn-ia64.c (elfNN_ia64_relax_section): After ia64_elf_relax_brl + call, set changed_contents and changed_relocs. Likewise after + successful ia64_elf_relax_br call. + +2018-02-26 Alan Modra + + * elf.c (assign_file_positions_except_relocs): Don't segfault + when actual number of phdrs is less than allocated. Delete + outdated comment. Formatting. + +2018-02-26 Alan Modra + + * elf-m10300.c, * elf-s390-common.c, * elf32-arc.c, * elf32-cris.c, + * elf32-dlx.c, * elf32-frv.c, * elf32-i370.c, * elf32-lm32.c, + * elf32-m32r.c, * elf32-m68hc1x.c, * elf32-m68k.c, + * elf32-microblaze.c, * elf32-msp430.c, * elf32-nds32.c, + * elf32-nios2.c, * elf32-or1k.c, * elf32-rl78.c, * elf32-rx.c, + * elf32-score.c, * elf32-score7.c, * elf32-sh-symbian.c, + * elf32-sh.c, * elf32-spu.c, * elf32-v850.c, * elf32-xtensa.c, + * elf64-alpha.c, * elf64-ia64-vms.c, * elf64-mmix.c, + * elf64-sh64.c, * elf64-sparc.c, * elfnn-ia64.c, * elfxx-tilegx.c, + * mmo.c, * osf-core.c, * srec.c, * vms-alpha.c: Standardize + error/warning messages. + +2018-02-26 Alan Modra + + * archive.c, * bfd.c, * linker.c, * reloc.c, * stabs.c, + * syms.c: Standardize error/warning messages. + +2018-02-26 Alan Modra + + * aout-adobe.c, * aout-cris.c, * i386linux.c, * m68klinux.c, + * sparclinux.c, * coff-alpha.c, * coff-arm.c, * coff-mcore.c, + * coffcode.h, * coffgen.c, * cofflink.c, * ecoff.c, * pe-mips.c, + * peXXigen.c, * peicode.h: Standardize error/warning messages. + +2018-02-26 Alan Modra + + * elf32-arm.c, * elfnn-aarch64.c: Standardize error/warning messages. + +2018-02-26 Alan Modra + + * elfxx-mips.c: Standardize error/warning messages. + +2018-02-26 Alan Modra + + * dwarf2.c, * elf-attrs.c, * elf-eh-frame.c, * elf.c, * elf32-gen.c, + * elflink.c: Standardize error/warning messages. Replace use of + linker callback einfo with _bfd_error_handler when possible. + +2018-02-26 Alan Modra + + * aoutx.h, * coff-alpha.c, * coff-i860.c, * coff-m68k.c, + * coff-mcore.c, * coff-ppc.c, * coff-rs6000.c, * coff-sh.c, + * coff-tic4x.c, * coff-tic54x.c, * coff-tic80.c, * coff-w65.c, + * elf-bfd.h, * elf-m10300.c, * elf.c, * elf32-avr.c, * elf32-bfin.c, + * elf32-cr16.c, * elf32-cr16c.c, * elf32-cris.c, * elf32-crx.c, + * elf32-d10v.c, * elf32-d30v.c, * elf32-dlx.c, * elf32-epiphany.c, + * elf32-fr30.c, * elf32-frv.c, * elf32-i370.c, * elf32-i386.c, + * elf32-i960.c, * elf32-ip2k.c, * elf32-iq2000.c, * elf32-lm32.c, + * elf32-m32c.c, * elf32-m32r.c, * elf32-m68hc11.c, * elf32-m68hc12.c, + * elf32-m68k.c, * elf32-mcore.c, * elf32-mep.c, * elf32-metag.c, + * elf32-microblaze.c, * elf32-mips.c, * elf32-moxie.c, + * elf32-msp430.c, * elf32-mt.c, * elf32-nds32.c, * elf32-or1k.c, + * elf32-pj.c, * elf32-ppc.c, * elf32-rl78.c, * elf32-rx.c, + * elf32-s390.c, * elf32-sh.c, * elf32-spu.c, * elf32-tic6x.c, + * elf32-v850.c, * elf32-vax.c, * elf32-visium.c, * elf32-wasm32.c, + * elf32-xgate.c, * elf32-xtensa.c, * elf64-alpha.c, + * elf64-ia64-vms.c, * elf64-mips.c, * elf64-mmix.c, + * elf64-ppc.c, * elf64-s390.c, * elf64-sparc.c, * elf64-x86-64.c, + * elfn32-mips.c, * elfnn-aarch64.c, * elfnn-ia64.c, + * elfnn-riscv.c, * elfxx-mips.c, * elfxx-riscv.c, * elfxx-riscv.h, + * elfxx-sparc.c, * elfxx-sparc.h, * reloc.c: Standardize + unrecognized/unsupported reloc message. + +2018-02-26 Alan Modra + + * elf32-ppc.c: Standardize error/warning messages. Use + _bfd_error_handler rather than einfo when einfo features not used. + * elf64-ppc.c: Likewise. + +2018-02-23 Alan Modra + + PR 22881 + * elf.c (assign_file_positions_for_non_load_sections): Remove RELRO + segment if no matching LOAD segment. + +2018-02-23 Kuan-Lin Chen + + * elf32-nds32.h: Define mask for ict_model. + +2018-02-20 Jason Duerstock + + * elfnn-ia64.c (elf_backend_can_gc_sections): Enable. + +2018-02-19 Maciej W. Rozycki + + Revert + 2018-01-12 Vlad Ivanov + + * elfxx-mips.c (_bfd_mips_elf_final_link): Notify user when + .reginfo section has wrong size. + +2018-02-19 Maciej W. Rozycki + + * elfxx-mips.c (_bfd_mips_elf_always_size_sections): Set + SEC_FIXED_SIZE and SEC_HAS_CONTENTS flags for `.reginfo' and + `.MIPS.abiflags' sections. + (_bfd_mips_elf_final_link): Avoid reading beyond `.reginfo' + section's end. + +2018-02-19 Maciej W. Rozycki + + * section.c (SEC_FIXED_SIZE): New macro. + * bfd-in2.h: Regenerate. + +2018-02-19 Maciej W. Rozycki + + * section.c (SEC_HAS_GOT_REF): Remove macro. + * bfd-in2.h: Regenerate. + +2018-02-19 Alan Modra + + * elf-attrs.c (_bfd_elf_parse_attributes): Correct _bfd_error_handler + arguments. + * elfxx-mips.c (_bfd_mips_elf_final_link): Likewise. + * elfnn-riscv.c (_bfd_riscv_relax_align): Likewise. + (_bfd_riscv_relax_pc): Likewise and fix typos. + * libbfd-in.h (_bfd_error_handler): Add attribute printf. + * libbfd.h: Regenerate. + +2018-02-19 Alan Modra + + * dwarf2.c (read_section): Don't use 'll' format modifier. + (find_abstract_instance): Likewise. + * elfcore.h (elf_core_file_p): Likewise. + +2018-02-19 Alan Modra + + * bfd-in.h: Include inttypes.h or if not available define + PRId64, PRIu64 and PRIx64. + * bfd.c (_bfd_doprnt, _bfd_doprnt_scan): Remove support for L + modifier to print bfd_vma. + * coff-arm.c, * coff-mcore.c, * coff-ppc.c, * coff-rs6000.c, + * coff-sh.c, * coff-tic80.c, * coffcode.h, * coffgen.c, * cofflink.c, + * compress.c, * dwarf2.c, * elf-m10300.c, * elf.c, * elf32-arc.c, + * elf32-arm.c, * elf32-bfin.c, * elf32-cris.c, * elf32-hppa.c, + * elf32-i386.c, * elf32-ip2k.c, * elf32-lm32.c, * elf32-m32r.c, + * elf32-m68k.c, * elf32-metag.c, * elf32-nds32.c, * elf32-nios2.c, + * elf32-ppc.c, * elf32-rx.c, * elf32-s390.c, * elf32-score.c, + * elf32-score7.c, * elf32-sh.c, * elf32-sh64.c, * elf32-spu.c, + * elf32-tic6x.c, * elf32-tilepro.c, * elf32-v850.c, * elf32-vax.c, + * elf32-xtensa.c, * elf64-alpha.c, * elf64-hppa.c, * elf64-ia64-vms.c, + * elf64-mmix.c, * elf64-s390.c, * elf64-sh64.c, * elf64-x86-64.c, + * elfcode.h, * elfcore.h, * elflink.c, * elfnn-aarch64.c, + * elfnn-ia64.c, * elfnn-riscv.c, * elfxx-mips.c, * elfxx-sparc.c, + * elfxx-tilegx.c, * ieee.c, * ihex.c, * mach-o.c, * merge.c, * mmo.c, + * peXXigen.c, * xcofflink.c: Replace use of Lx modifier with PRIx64, + and cast input to uint64_t, and similarly for Ld and Lu. + * bfd-in2.h: Regenerate. + +2018-02-19 Alan Modra + + * elf32-arm.c, * elf32-hppa.c, * elf32-lm32.c, * elf32-m32r.c, + * elf32-metag.c, * elf32-nds32.c, * elf32-or1k.c, * elf32-ppc.c, + * elf32-s390.c, * elf32-sh.c, * elf32-tic6x.c, * elf32-tilepro.c, + * elf64-ppc.c, * elf64-s390.c, * elflink.c, * elfnn-aarch64.c, + * elfnn-riscv.c, * elfxx-sparc.c, * elfxx-tilegx.c, * elfxx-x86.c, + * reloc.c: Replace use of %R and %T in format strings passed to + einfo and friends by %pR and %pT. + +2018-02-19 Alan Modra + + * bfd.c (_bfd_doprnt, _bfd_doprnt_scan): Handle %pA and %pB in place + of %A and %B. + * aout-adobe.c: Update all messages using %A and %B. + * aout-cris.c: Likewise. + * aoutx.h: Likewise. + * archive.c: Likewise. + * binary.c: Likewise. + * cache.c: Likewise. + * coff-alpha.c: Likewise. + * coff-arm.c: Likewise. + * coff-i860.c: Likewise. + * coff-mcore.c: Likewise. + * coff-ppc.c: Likewise. + * coff-rs6000.c: Likewise. + * coff-sh.c: Likewise. + * coff-tic4x.c: Likewise. + * coff-tic54x.c: Likewise. + * coff-tic80.c: Likewise. + * coff64-rs6000.c: Likewise. + * coffcode.h: Likewise. + * coffgen.c: Likewise. + * cofflink.c: Likewise. + * coffswap.h: Likewise. + * compress.c: Likewise. + * cpu-arm.c: Likewise. + * ecoff.c: Likewise. + * elf-attrs.c: Likewise. + * elf-eh-frame.c: Likewise. + * elf-ifunc.c: Likewise. + * elf-m10300.c: Likewise. + * elf-properties.c: Likewise. + * elf-s390-common.c: Likewise. + * elf.c: Likewise. + * elf32-arc.c: Likewise. + * elf32-arm.c: Likewise. + * elf32-avr.c: Likewise. + * elf32-bfin.c: Likewise. + * elf32-cr16.c: Likewise. + * elf32-cr16c.c: Likewise. + * elf32-cris.c: Likewise. + * elf32-crx.c: Likewise. + * elf32-d10v.c: Likewise. + * elf32-d30v.c: Likewise. + * elf32-epiphany.c: Likewise. + * elf32-fr30.c: Likewise. + * elf32-frv.c: Likewise. + * elf32-gen.c: Likewise. + * elf32-hppa.c: Likewise. + * elf32-i370.c: Likewise. + * elf32-i386.c: Likewise. + * elf32-i960.c: Likewise. + * elf32-ip2k.c: Likewise. + * elf32-iq2000.c: Likewise. + * elf32-lm32.c: Likewise. + * elf32-m32c.c: Likewise. + * elf32-m32r.c: Likewise. + * elf32-m68hc11.c: Likewise. + * elf32-m68hc12.c: Likewise. + * elf32-m68hc1x.c: Likewise. + * elf32-m68k.c: Likewise. + * elf32-mcore.c: Likewise. + * elf32-mep.c: Likewise. + * elf32-metag.c: Likewise. + * elf32-microblaze.c: Likewise. + * elf32-moxie.c: Likewise. + * elf32-msp430.c: Likewise. + * elf32-mt.c: Likewise. + * elf32-nds32.c: Likewise. + * elf32-nios2.c: Likewise. + * elf32-or1k.c: Likewise. + * elf32-pj.c: Likewise. + * elf32-ppc.c: Likewise. + * elf32-rl78.c: Likewise. + * elf32-rx.c: Likewise. + * elf32-s390.c: Likewise. + * elf32-score.c: Likewise. + * elf32-score7.c: Likewise. + * elf32-sh-symbian.c: Likewise. + * elf32-sh.c: Likewise. + * elf32-sh64.c: Likewise. + * elf32-sparc.c: Likewise. + * elf32-spu.c: Likewise. + * elf32-tic6x.c: Likewise. + * elf32-tilepro.c: Likewise. + * elf32-v850.c: Likewise. + * elf32-vax.c: Likewise. + * elf32-visium.c: Likewise. + * elf32-wasm32.c: Likewise. + * elf32-xgate.c: Likewise. + * elf32-xtensa.c: Likewise. + * elf64-alpha.c: Likewise. + * elf64-gen.c: Likewise. + * elf64-hppa.c: Likewise. + * elf64-ia64-vms.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. + * elfcore.h: Likewise. + * elflink.c: Likewise. + * elfnn-aarch64.c: Likewise. + * elfnn-ia64.c: Likewise. + * elfnn-riscv.c: Likewise. + * elfxx-mips.c: Likewise. + * elfxx-sparc.c: Likewise. + * elfxx-tilegx.c: Likewise. + * elfxx-x86.c: Likewise. + * hpux-core.c: Likewise. + * ieee.c: Likewise. + * ihex.c: Likewise. + * libbfd.c: Likewise. + * linker.c: Likewise. + * mach-o.c: Likewise. + * merge.c: Likewise. + * mmo.c: Likewise. + * oasys.c: Likewise. + * pdp11.c: Likewise. + * pe-mips.c: Likewise. + * peXXigen.c: Likewise. + * peicode.h: Likewise. + * reloc.c: Likewise. + * rs6000-core.c: Likewise. + * srec.c: Likewise. + * stabs.c: Likewise. + * vms-alpha.c: Likewise. + * xcofflink.c: Likewise. + +2018-02-19 Alan Modra + + PR 22845 + * elf.c (IS_TBSS): Define. + (_bfd_elf_map_sections_to_segments): Use IS_TBSS. + (assign_file_positions_for_non_load_sections): Revert last change. + Properly calculate load segment limits to compare against relro limits. + +2018-02-17 Alan Modra + + PR 22845 + * elf.c (assign_file_positions_for_non_load_sections): Ignore + degenerate zero size PT_LOAD segments when finding one overlapping + the PT_GNU_RELRO segment. + +2018-02-16 Alan Modra + + * libbfd.c (_bfd_bool_bfd_false_error): Rename from bfd_false. + (_bfd_bool_bfd_true): Rename from bfd_true. + (_bfd_ptr_bfd_null_error): Rename from bfd_nullvoidptr. + (_bfd_int_bfd_0): Rename from bfd_0. + (_bfd_uint_bfd_0): Rename from bfd_0u. + (_bfd_long_bfd_0): Rename from bfd_0l. + (_bfd_long_bfd_n1_error): Rename from _bfd_n1. + (_bfd_void_bfd): Rename from bfd_void. + (_bfd_bool_bfd_false, _bfd_bool_bfd_asymbol_false), + (_bfd_bool_bfd_link_false_error), + (_bfd_bool_bfd_link_true, _bfd_bool_bfd_bfd_true), + (_bfd_bool_bfd_uint_true, _bfd_bool_bfd_ptr_true), + (_bfd_bool_bfd_asection_bfd_asection_true), + (_bfd_bool_bfd_asymbol_bfd_asymbol_true), + (_bfd_void_bfd_link, _bfd_void_bfd_asection): New functions. + * archive.c (_bfd_noarchive_get_elt_at_index), + (_bfd_noarchive_openr_next_archived_file), + (_bfd_noarchive_construct_extended_name_table), + (_bfd_noarchive_write_ar_hdr, _bfd_noarchive_truncate_arname), + (_bfd_noarchive_write_armap): New functions. + * archures.c (_bfd_nowrite_set_arch_mach): New function. + * coff-alpha.c (alpha_ecoff_swap_coff_aux_in), + (alpha_ecoff_swap_coff_sym_in, alpha_ecoff_swap_coff_lineno_in), + (alpha_ecoff_swap_coff_aux_out, alpha_ecoff_swap_coff_sym_out), + (alpha_ecoff_swap_coff_lineno_out), + (alpha_ecoff_swap_coff_reloc_out): New functions. + * coff-mips.c (mips_ecoff_swap_coff_aux_in), + (mips_ecoff_swap_coff_sym_in, mips_ecoff_swap_coff_lineno_in), + (mips_ecoff_swap_coff_aux_out, mips_ecoff_swap_coff_sym_out), + (mips_ecoff_swap_coff_lineno_out), + (mips_ecoff_swap_coff_reloc_out): New functions. + * coffcode.h (coff_set_alignment_hook): Replace define with + new function. + (symname_in_debug_hook): Likewise. + * ecoff.c (_bfd_ecoff_set_alignment_hook): New function. + * elfxx-target.h (elf_backend_allow_non_load_phdr): Default to 0. + * elf.c (assign_file_positions_except_relocs): Test + elf_backend_allow_non_load_phdr for NULL. + * elflink.c (_bfd_elf_omit_section_dynsym_default): Rename from + _bfd_elf_link_omit_section_dynsym. Update uses. + (_bfd_elf_omit_section_dynsym_all): New function. + * elf-bfd.h (_bfd_elf_link_omit_section_dynsym): Delete. + (_bfd_elf_omit_section_dynsym_default): Declare. + (_bfd_elf_omit_section_dynsym_all): Declare. + * linker.c (_bfd_nolink_sizeof_headers, _bfd_nolink_bfd_relax_section), + (_bfd_nolink_bfd_get_relocated_section_contents), + (_bfd_nolink_bfd_lookup_section_flags), + (_bfd_nolink_bfd_is_group_section, _bfd_nolink_bfd_discard_group), + (_bfd_nolink_bfd_link_hash_table_create), + (_bfd_nolink_bfd_link_just_syms), + (_bfd_nolink_bfd_copy_link_hash_symbol_type), + (_bfd_nolink_bfd_link_split_section), + (_bfd_nolink_section_already_linked), + (_bfd_nolink_bfd_define_common_symbol), + (_bfd_nolink_bfd_define_start_stop): New functions. + * reloc.c (_bfd_norelocs_bfd_reloc_type_lookup), + (_bfd_norelocs_bfd_reloc_name_lookup), + (_bfd_nodynamic_canonicalize_dynamic_reloc): New functions. + * section.c (_bfd_nowrite_set_section_contents): New function. + * syms.c (_bfd_nosymbols_canonicalize_symtab), + (_bfd_nosymbols_print_symbol, _bfd_nosymbols_get_symbol_info), + (_bfd_nosymbols_get_symbol_version_string), + (_bfd_nosymbols_bfd_is_local_label_name), + (_bfd_nosymbols_get_lineno, _bfd_nosymbols_find_nearest_line), + (_bfd_nosymbols_find_line, _bfd_nosymbols_find_inliner_info), + (_bfd_nosymbols_bfd_make_debug_symbol), + ( _bfd_nosymbols_read_minisymbols), + ( _bfd_nosymbols_minisymbol_to_symbol), + (_bfd_nodynamic_get_synthetic_symtab): New functions. + * libbfd-in.h: Declare new functions. Update existing defines, + removing casts. + * aix386-core.c: Update to use new hooks. Formatting. + * aout-adobe.c: Likewise. + * aout-arm.c: Likewise. + * aout-target.h: Likewise. + * aout-tic30.c: Likewise. + * aoutf1.h: Likewise. + * binary.c: Likewise. + * bout.c: Likewise. + * cisco-core.c: Likewise. + * coff-alpha.c: Likewise. + * coff-i386.c: Likewise. + * coff-i860.c: Likewise. + * coff-i960.c: Likewise. + * coff-ia64.c: Likewise. + * coff-mips.c: Likewise. + * coff-ppc.c: Likewise. + * coff-rs6000.c: Likewise. + * coff-sh.c: Likewise. + * coff-tic30.c: Likewise. + * coff-tic54x.c: Likewise. + * coff-x86_64.c: Likewise. + * coff64-rs6000.c: Likewise. + * coffcode.h: Likewise. + * elf-m10300.c: Likewise. + * elf32-cr16.c: Likewise. + * elf32-lm32.c: Likewise. + * elf32-m32r.c: Likewise. + * elf32-metag.c: Likewise. + * elf32-score.c: Likewise. + * elf32-score7.c: Likewise. + * elf32-tilepro.c: Likewise. + * elf32-xstormy16.c: Likewise. + * elf32-xtensa.c: Likewise. + * elf64-alpha.c: Likewise. + * elf64-hppa.c: Likewise. + * elf64-ia64-vms.c: Likewise. + * elf64-mmix.c: Likewise. + * elf64-sh64.c: Likewise. + * elfnn-ia64.c: Likewise. + * elfxx-sparc.c: Likewise. + * elfxx-target.h: Likewise. + * elfxx-tilegx.c: Likewise. + * elfxx-x86.h: Likewise. + * hp300hpux.c: Likewise. + * hppabsd-core.c: Likewise. + * hpux-core.c: Likewise. + * i386msdos.c: Likewise. + * i386os9k.c: Likewise. + * ieee.c: Likewise. + * ihex.c: Likewise. + * irix-core.c: Likewise. + * libaout.h: Likewise. + * libecoff.h: Likewise. + * mach-o-target.c: Likewise. + * mach-o.c: Likewise. + * mipsbsd.c: Likewise. + * mmo.c: Likewise. + * netbsd-core.c: Likewise. + * nlm-target.h: Likewise. + * oasys.c: Likewise. + * osf-core.c: Likewise. + * pdp11.c: Likewise. + * pe-mips.c: Likewise. + * pe-x86_64.c: Likewise. + * pef.c: Likewise. + * plugin.c: Likewise. + * ppcboot.c: Likewise. + * ptrace-core.c: Likewise. + * sco5-core.c: Likewise. + * som.c: Likewise. + * sparclynx.c: Likewise. + * srec.c: Likewise. + * tekhex.c: Likewise. + * trad-core.c: Likewise. + * verilog.c: Likewise. + * versados.c: Likewise. + * vms-alpha.c: Likewise. + * vms-lib.c: Likewise. + * wasm-module.c: Likewise. + * xsym.c: Likewise. + * libbfd.h: Regenerate. + +2018-02-15 Jim Wilson + + * elfnn-riscv.c (_bfd_riscv_relax_section): Ifdef out check to ignore + symbols whose section address is zero. + + * elfnn-riscv.c (riscv_elf_relocate_section): Use bfd_reloc_dangerous + when pcrel_lo reloc has an addend. Use reloc_dangerous callback for + bfd_reloc_dangerous. Use einfo instead of warning callback for errors. + Add %X%P to error messages. + +2018-02-15 Eric Botcazou + + PR ld/22832 + * elfxx-sparc.c (_bfd_sparc_elf_check_relocs) : + Pass FALSE instead of TRUE as 'create' argument to bfd_link_hash_lookup + and assert that the result of the call is not NULL. + +2018-02-14 Nick Clifton + + PR 22823 + Revert previous delta. Add extra casts to avoid compile time + warnings instead. + * libbfd-in.h (_bfd_generic_bfd_copy_private_bfd_data): Add extra + cast to avoid warning from gcc v8 compiler. + (_bfd_generic_bfd_merge_private_bfd_data): Likewise. + (_bfd_generic_bfd_set_private_flags): Likewise. + (_bfd_generic_bfd_copy_private_section_data): Likewise. + (_bfd_generic_bfd_copy_private_symbol_data): Likewise. + (_bfd_generic_bfd_copy_private_header_data): Likewise. + (_bfd_generic_bfd_print_private_bfd_data): Likewise. + (_bfd_noarchive_construct_extended_name_table): Likewise. + (_bfd_noarchive_truncate_arname): Likewise. + (_bfd_noarchive_write_ar_hdr): Likewise. + (_bfd_noarchive_get_elt_at_index): Likewise. + (_bfd_nosymbols_canonicalize_symtab): Likewise. + (_bfd_nosymbols_print_symbol): Likewise. + (_bfd_nosymbols_get_symbol_info): Likewise. + (_bfd_nosymbols_get_symbol_version_string): Likewise. + (_bfd_nosymbols_bfd_is_local_label_name): Likewise. + (_bfd_nosymbols_bfd_is_target_special_symbol): Likewise. + (_bfd_nosymbols_get_lineno): Likewise. + (_bfd_nosymbols_find_nearest_line): Likewise. + (_bfd_nosymbols_find_line): Likewise. + (_bfd_nosymbols_find_inliner_info): Likewise. + (_bfd_nosymbols_bfd_make_debug_symbol): Likewise. + (_bfd_nosymbols_read_minisymbols): Likewise. + (_bfd_nosymbols_minisymbol_to_symbol): Likewise. + (_bfd_norelocs_bfd_reloc_type_lookup): Likewise. + (_bfd_norelocs_bfd_reloc_name_lookup): Likewise. + (_bfd_nowrite_set_arch_mach): Likewise. + (_bfd_nowrite_set_section_contents): Likewise. + (_bfd_nolink_sizeof_headers): Likewise. + (_bfd_nolink_bfd_get_relocated_section_contents): Likewise. + (_bfd_nolink_bfd_relax_section): Likewise. + (_bfd_nolink_bfd_gc_sections): Likewise. + (_bfd_nolink_bfd_lookup_section_flags): Likewise. + (_bfd_nolink_bfd_merge_sections): Likewise. + (_bfd_nolink_bfd_is_group_section): Likewise. + (_bfd_nolink_bfd_discard_group): Likewise. + (_bfd_nolink_bfd_link_hash_table_create): Likewise. + (_bfd_nolink_bfd_link_add_symbols): Likewise. + (_bfd_nolink_bfd_link_just_syms): Likewise. + (_bfd_nolink_bfd_copy_link_hash_symbol_type): Likewise. + (_bfd_nolink_bfd_final_link): Likewise. + (_bfd_nolink_bfd_link_split_section): Likewise. + (_bfd_nolink_section_already_linked): Likewise. + (_bfd_nolink_bfd_define_common_symbol): Likewise. + (_bfd_nolink_bfd_define_start_stop): Likewise. + (_bfd_nodynamic_canonicalize_dynamic_symtab): Likewise. + (_bfd_nodynamic_get_synthetic_symtab): Likewise. + (_bfd_nodynamic_get_dynamic_reloc_upper_bound _bfd_): Likewise. + (_bfd_nodynamic_canonicalize_dynamic_reloc): Likewise. + * libbfd.c (bfd_false_any): Delete. + (bfd_true_any, bfd_nullvoidptr_any, bfd_0_any): Delete. + (bfd_0u_any, bfd_0l_any, _bfd_n1_any, bfd_void_any): Delete. + * libbfd.h (extern): Regenerate + * aout-target.h (MY_bfd_is_target_special_symbol): Add extra + cast to avoid warning from gcc v8 compiler. + * aout-tic30.c (tic30_aout_set_arch_mach): Likewise. + * binary.c (binary_get_symbol_info): Likewise. + * coff-alpha.c (alpha_ecoff_backend_data): Likewise. + * coff-mips.c (mips_ecoff_backend_data): Likewise. + * coffcode.h (coff_set_alignment_hook): Likewise. + (symname_in_debug_hook): Likewise. + (bfd_coff_backend_data bigobj_swap_table): Likewise. + * elf-m10300.c (elf_backend_omit_section_dynsym): Likewise. + * elf32-cr16.c (elf_backend_omit_section_dynsym): Likewise. + * elf32-lm32.c (elf_backend_omit_section_dynsym): Likewise. + * elf32-m32r.c (elf_backend_omit_section_dynsym): Likewise. + * elf32-metag.c (elf_backend_omit_section_dynsym): Likewise. + * elf32-score.c (elf_backend_omit_section_dynsym): Likewise. + * elf32-score7.c (elf_backend_omit_section_dynsym): Likewise. + * elf32-xstormy16.c (elf_backend_omit_section_dynsym): Likewise. + * elf32-xtensa.c (elf_backend_omit_section_dynsym): Likewise. + * elf64-alpha.c (elf_backend_omit_section_dynsym): Likewise. + * elf64-hppa.c (elf_backend_omit_section_dynsym): Likewise. + * elf64-ia64-vms.c (elf_backend_omit_section_dynsym): Likewise. + * elf64-mmix.c (elf_backend_omit_section_dynsym): Likewise. + * elf64-sh64.c (elf_backend_omit_section_dynsym): Likewise. + * elfnn-ia64.c (elf_backend_omit_section_dynsym): Likewise. + * elfxx-target.h (bfd_elfNN_bfd_debug_info_accumulate): Likewise. + (bfd_elfNN_bfd_make_debug_symbol): Likewise. + (bfd_elfNN_bfd_merge_private_bfd_data): Likewise. + (bfd_elfNN_bfd_set_private_flags): Likewise. + (bfd_elfNN_bfd_is_target_special_symbol): Likewise. + (elf_backend_init_index_section): Likewise. + (elf_backend_allow_non_load_phdr): Likewise. + * elfxx-x86.h (elf_backend_omit_section_dynsym): Likewise. + * i386msdos.c (msdos_bfd_is_target_special_symbol): Likewise. + * ieee.c (ieee_construct_extended_name_table): Likewise. + (ieee_write_armap): Likewise. + (ieee_write_ar_hdr): Likewise. + (ieee_bfd_is_target_special_symbol): Likewise. + * ihex.c (ihex_canonicalize_symtab): Likewise. + (ihex_bfd_is_target_special_symbol): Likewise. + * libaout.h (aout_32_bfd_is_target_special_symbol): Likewise. + * libecoff.h (_bfd_ecoff_bfd_is_target_special_symbol): Likewise. + (_bfd_ecoff_set_alignment_hook): Likewise. + * mach-o-target.c (bfd_mach_o_bfd_is_target_special_symbol): Likewise. + * mmo.c (mmo_bfd_is_target_special_symbol): Likewise. + * nlm-target.h (nlm_bfd_is_target_special_symbol): Likewise. + * oasys.c (oasys_construct_extended_name_table): Likewise. + (oasys_write_armap): Likewise. + (oasys_write_ar_hdr): Likewise. + (oasys_bfd_is_target_special_symbol): Likewise. + * pef.c (bfd_pef_bfd_is_target_special_symbol): Likewise. + * plugin.c (bfd_plugin_bfd_is_target_special_symbol): Likewise. + * ppcboot.c (ppcboot_bfd_is_target_special_symbol): Likewise. + * som.c (som_bfd_is_target_special_symbol): Likewise. + * srec.c (srec_bfd_is_target_special_symbol): Likewise. + * tekhex.c (tekhex_bfd_is_target_special_symbol): Likewise. + * verilog.c (verilog_bfd_is_target_special_symbol): Likewise. + * versados.c (versados_bfd_is_target_special_symbol): Likewise. + (versados_bfd_reloc_name_lookup): Likewise. + * vms-alpha.c (vms_bfd_is_target_special_symbol): Likewise. + (vms_bfd_define_start_stop): Likewise. + (alpha_vms_bfd_is_target_special_symbol): Likewise. + * wasm-module.c (wasm_bfd_is_target_special_symbol): Likewise. + * xsym.c (bfd_sym_bfd_is_target_special_symbol): Likewise. + +2018-02-14 H.J. Lu + + PR ld/22842 + * elf32-i386.c (elf_i386_check_relocs): Pass FALSE for non + PC-relative PLT to NEED_DYNAMIC_RELOCATION_P. + * elf64-x86-64.c (elf_x86_64_check_relocs): Create PLT for + R_X86_64_PC32 reloc against dynamic function in data section. + Pass TRUE for PC-relative PLT to NEED_DYNAMIC_RELOCATION_P. + (elf_x86_64_relocate_section): Use PLT for R_X86_64_PC32 reloc + against dynamic function in data section. + * elfxx-x86.c (elf_x86_allocate_dynrelocs): Use PLT in PIE as + function address only if pcrel_plt is true. + (_bfd_x86_elf_link_hash_table_create): Set pcrel_plt. + * elfxx-x86.h (NEED_DYNAMIC_RELOCATION_P): Add PCREL_PLT for + PC-relative PLT. If PLT is PC-relative, don't generate dynamic + PC-relative relocation against a function definition in data + secton in PIE. Remove the obsolete comments. + (elf_x86_link_hash_table): Add pcrel_plt. + +2018-02-13 H.J. Lu + + * elfxx-x86.c (elf_x86_allocate_dynrelocs): Check bfd_link_dll, + instead of bfd_link_pic, for building shared library. + +2018-02-13 H.J. Lu + + PR gas/22791 + * elf64-x86-64.c (is_32bit_relative_branch): Removed. + (elf_x86_64_relocate_section): Check PIC relocations in PIE. + Remove is_32bit_relative_branch usage. Disallow PC32 reloc + against protected function in shared object. + +2018-02-13 Sergei Trofimovich + + PR 22828 + * po/ru.po: Fix typo in Russian translation. + +2018-02-13 Maciej W. Rozycki + + * wasm-module.c (wasm_scan_name_function_section): Rename + `index' local variable to `idx'. + +2018-02-13 Nick Clifton + + PR 22823 + Fix compile time warnings generated by gcc version 8. + * libbfd-in.h: Remove extraneous text from prototypes. + Add prototypes for bfd_false_any, bfd_true_any, + bfd_nullvoidptr_any, bfd_0_any, bfd_0u_any, bfd_0l_any, + bfd_n1_any, bfd_void_any. + (_bfd_generic_bfd_copy_private_bfd_data): Use vararg based dummy + function. + (_bfd_generic_bfd_merge_private_bfd_data): Likewise. + (_bfd_generic_bfd_set_private_flags): Likewise. + (_bfd_generic_bfd_copy_private_section_data): Likewise. + (_bfd_generic_bfd_copy_private_symbol_data): Likewise. + (_bfd_generic_bfd_copy_private_header_data): Likewise. + (_bfd_generic_bfd_print_private_bfd_data): Likewise. + (_bfd_noarchive_construct_extended_name_table): Likewise. + (_bfd_noarchive_truncate_arname): Likewise. + (_bfd_noarchive_write_ar_hdr): Likewise. + (_bfd_noarchive_get_elt_at_index): Likewise. + (_bfd_nosymbols_canonicalize_symtab): Likewise. + (_bfd_nosymbols_print_symbol): Likewise. + (_bfd_nosymbols_get_symbol_info): Likewise. + (_bfd_nosymbols_get_symbol_version_string): Likewise. + (_bfd_nosymbols_bfd_is_local_label_name): Likewise. + (_bfd_nosymbols_bfd_is_target_special_symbol): Likewise. + (_bfd_nosymbols_get_lineno): Likewise. + (_bfd_nosymbols_find_nearest_line): Likewise. + (_bfd_nosymbols_find_line): Likewise. + (_bfd_nosymbols_find_inliner_info): Likewise. + (_bfd_nosymbols_bfd_make_debug_symbol): Likewise. + (_bfd_nosymbols_read_minisymbols): Likewise. + (_bfd_nosymbols_minisymbol_to_symbol): Likewise. + (_bfd_norelocs_bfd_reloc_type_lookup): Likewise. + (_bfd_norelocs_bfd_reloc_name_lookup): Likewise. + (_bfd_nowrite_set_arch_mach): Likewise. + (_bfd_nowrite_set_section_contents): Likewise. + (_bfd_nolink_sizeof_headers): Likewise. + (_bfd_nolink_bfd_get_relocated_section_contents): Likewise. + (_bfd_nolink_bfd_relax_section): Likewise. + (_bfd_nolink_bfd_gc_sections): Likewise. + (_bfd_nolink_bfd_lookup_section_flags): Likewise. + (_bfd_nolink_bfd_merge_sections): Likewise. + (_bfd_nolink_bfd_is_group_section): Likewise. + (_bfd_nolink_bfd_discard_group): Likewise. + (_bfd_nolink_bfd_link_hash_table_create): Likewise. + (_bfd_nolink_bfd_link_add_symbols): Likewise. + (_bfd_nolink_bfd_link_just_syms): Likewise. + (_bfd_nolink_bfd_copy_link_hash_symbol_type): Likewise. + (_bfd_nolink_bfd_final_link): Likewise. + (_bfd_nolink_bfd_link_split_section): Likewise. + (_bfd_nolink_section_already_linked): Likewise. + (_bfd_nolink_bfd_define_common_symbol): Likewise. + (_bfd_nolink_bfd_define_start_stop): Likewise. + (_bfd_nodynamic_canonicalize_dynamic_symtab): Likewise. + (_bfd_nodynamic_get_synthetic_symtab): Likewise. + (_bfd_nodynamic_get_dynamic_reloc_upper_bound _bfd_): Likewise. + (_bfd_nodynamic_canonicalize_dynamic_reloc): Likewise. + * libbfd.c (bfd_false_any): New function. Like bfd_false but + accepts one or more arguments. + (bfd_true_any): Likewise. + (bfd_nullvoidptr_any): Likewise. + (bfd_0_any): Likewise. + (bfd_0u_any): Likewise. + (bfd_0l_any): Likewise. + (_bfd_n1_any): Likewise. + (bfd_void_any): Likewise. + * libbfd.h (extern): Regenerate + * aout-target.h (MY_bfd_is_target_special_symbol): Use vararg + based dummy function. + * aout-tic30.c (tic30_aout_set_arch_mach): Likewise. + * binary.c (binary_get_symbol_info): Likewise. + * coff-alpha.c (alpha_ecoff_backend_data): Likewise. + * coff-mips.c (mips_ecoff_backend_data): Likewise. + * coffcode.h (coff_set_alignment_hook): Likewise. + (symname_in_debug_hook): Likewise. + (bfd_coff_backend_data bigobj_swap_table): Likewise. + * elf-m10300.c (elf_backend_omit_section_dynsym): Likewise. + * elf32-cr16.c (elf_backend_omit_section_dynsym): Likewise. + * elf32-lm32.c (elf_backend_omit_section_dynsym): Likewise. + * elf32-m32r.c (elf_backend_omit_section_dynsym): Likewise. + * elf32-metag.c (elf_backend_omit_section_dynsym): Likewise. + * elf32-score.c (elf_backend_omit_section_dynsym): Likewise. + * elf32-score7.c (elf_backend_omit_section_dynsym): Likewise. + * elf32-xstormy16.c (elf_backend_omit_section_dynsym): Likewise. + * elf32-xtensa.c (elf_backend_omit_section_dynsym): Likewise. + * elf64-alpha.c (elf_backend_omit_section_dynsym): Likewise. + * elf64-hppa.c (elf_backend_omit_section_dynsym): Likewise. + * elf64-ia64-vms.c (elf_backend_omit_section_dynsym): Likewise. + * elf64-mmix.c (elf_backend_omit_section_dynsym): Likewise. + * elf64-sh64.c (elf_backend_omit_section_dynsym): Likewise. + * elfnn-ia64.c (elf_backend_omit_section_dynsym): Likewise. + * elfxx-target.h (bfd_elfNN_bfd_debug_info_accumulate): Likewise. + (bfd_elfNN_bfd_make_debug_symbol): Likewise. + (bfd_elfNN_bfd_merge_private_bfd_data): Likewise. + (bfd_elfNN_bfd_set_private_flags): Likewise. + (bfd_elfNN_bfd_is_target_special_symbol): Likewise. + (elf_backend_init_index_section): Likewise. + (elf_backend_allow_non_load_phdr): Likewise. + * elfxx-x86.h (elf_backend_omit_section_dynsym): Likewise. + * i386msdos.c (msdos_bfd_is_target_special_symbol): Likewise. + * ieee.c (ieee_construct_extended_name_table): Likewise. + (ieee_write_armap): Likewise. + (ieee_write_ar_hdr): Likewise. + (ieee_bfd_is_target_special_symbol): Likewise. + * ihex.c (ihex_canonicalize_symtab): Likewise. + (ihex_bfd_is_target_special_symbol): Likewise. + * libaout.h (aout_32_bfd_is_target_special_symbol): Likewise. + * libecoff.h (_bfd_ecoff_bfd_is_target_special_symbol): Likewise. + (_bfd_ecoff_set_alignment_hook): Likewise. + * mach-o-target.c (bfd_mach_o_bfd_is_target_special_symbol): Likewise. + * mmo.c (mmo_bfd_is_target_special_symbol): Likewise. + * nlm-target.h (nlm_bfd_is_target_special_symbol): Likewise. + * oasys.c (oasys_construct_extended_name_table): Likewise. + (oasys_write_armap): Likewise. + (oasys_write_ar_hdr): Likewise. + (oasys_bfd_is_target_special_symbol): Likewise. + * pef.c (bfd_pef_bfd_is_target_special_symbol): Likewise. + * plugin.c (bfd_plugin_bfd_is_target_special_symbol): Likewise. + * ppcboot.c (ppcboot_bfd_is_target_special_symbol): Likewise. + * som.c (som_bfd_is_target_special_symbol): Likewise. + * srec.c (srec_bfd_is_target_special_symbol): Likewise. + * tekhex.c (tekhex_bfd_is_target_special_symbol): Likewise. + * verilog.c (verilog_bfd_is_target_special_symbol): Likewise. + * versados.c (versados_bfd_is_target_special_symbol): Likewise. + (versados_bfd_reloc_name_lookup): Likewise. + * vms-alpha.c (vms_bfd_is_target_special_symbol): Likewise. + (vms_bfd_define_start_stop): Likewise. + (alpha_vms_bfd_is_target_special_symbol): Likewise. + * wasm-module.c (wasm_bfd_is_target_special_symbol): Likewise. + * xsym.c (bfd_sym_bfd_is_target_special_symbol): Likewise. + * elf32-arc.c (get_replace_function): Assign replacement function + to func pointer. + * elf32-i370.c (i370_noop): Update prototype. + +2018-02-13 Alan Modra + + PR 22836 + * elf.c (_bfd_elf_fixup_group_sections): Account for removed + relocation sections. If size reduces to just the flag word, + remove that too and mark with SEC_EXCLUDE. + * elflink.c (bfd_elf_final_link): Strip empty group sections. + +2018-02-13 Alan Modra + + PR 22829 + * elf.c (assign_file_positions_for_non_load_sections): Rewrite + PT_GNU_RELRO setup. + +2018-02-12 Zebediah Figura + + * i386msdos.c (msdos_mkobject); New function. + (msdos_object_p): New function. + (i386_msdos_vec): Use msdos_object_p as the check_format + function. + * peicode.h: Rename external_PEI_DOS_hdr, DOSMAGIC, and + NT_SIGNATURE to external_DOS_hdr, IMAGE_DOS_SIGNATURE, and + IMAGE_NT_SIGNATURE. + * peXXigen.c: Likewise. + * coff-ia64.c: Likewise. + +2018-02-12 Nick Clifton + + * elf32-nds32.c (nds32_elf_relax_longjump3): Remove redundant + assignment. + * elf32-arc.c (elf_arc_relocate_section): Likewise. + +2018-02-09 Eric Botcazou + + * elfxx-sparc.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Reorder conditions. + (sparc_elf_append_rela): Assert that there is enough room in section. + (_bfd_sparc_elf_copy_indirect_symbol): Fix formatting. + (_bfd_sparc_elf_adjust_dynamic_symbol): Minor tweak. + (allocate_dynrelocs): Remove outdated comments and reorder conditions. + For a symbol subject to a GOT relocation, reserve a slot in the + relocation section if the symbol isn't dynamic and we are in PIC mode. + (_bfd_sparc_elf_relocate_section) : If relocation + is relaxed and a slot was reserved, generate a R_SPARC_NONE relocation. + : Adjust comments. + : Reorder conditions. Remove always-false assertion. + (_bfd_sparc_elf_finish_dynamic_symbol): Rename local_undefweak into + resolved_to_zero. Do not generate a dynamic GOT relocation for an + undefined weak symbol with non-default visibility. Remove superfluous + 'else' and fix formatting. + +2018-02-09 H.J. Lu + + * elf32-i386.c (elf_i386_get_synthetic_symtab): Also handle + is_solaris. + (i386_elf32_sol2_vec): Don't declare. + (elf_i386_link_setup_gnu_properties): Also handle is_solaris. + Don't set need_global_offset_table. + (elf_i386_solaris_arch_bed): New. + (elf_backend_arch_data): Set to elf_i386_solaris_arch_bed for + Solaris. + * elf64-x86-64.c (elf_x86_64_get_synthetic_symtab): Check + target_os != is_nacl instead of target_os == is_normal. + (x86_64_elf64_sol2_vec): Don't declare. + (elf_x86_64_link_setup_gnu_properties): Check target_os != + is_nacl instead of target_os == is_normal. Don't set + need_global_offset_table. + (elf_x86_64_solaris_arch_bed): New. + (elf_backend_arch_data): Set to elf_x86_64_solaris_arch_bed for + Solaris. + * elfxx-x86.c (_bfd_x86_elf_size_dynamic_sections): Keep + _GLOBAL_OFFSET_TABLE_ for Solaris. + (_bfd_x86_elf_link_setup_gnu_properties): Don't copy + need_global_offset_table. + * elfxx-x86.h (elf_x86_target_os): Add is_solaris. + (elf_x86_link_hash_table): Remove need_global_offset_table. + (elf_x86_init_table): Likewise. + +2018-02-08 H.J. Lu + + * elf32-i386.c (elf32_i386_copy_solaris_special_section_fields): + Remove prototype. + (i386_elf32_sol2_vec): Declared. + (elf_i386_link_setup_gnu_properties): Set + need_global_offset_table with info->output_bfd->xvec. + * elf64-x86-64.c (elf64_x86_64_copy_solaris_special_section_fields): + Remove prototype. + (x86_64_elf64_sol2_vec): Declared. + (elf_x86_64_link_setup_gnu_properties): Set + need_global_offset_table with info->output_bfd->xvec. + +2018-02-08 H.J. Lu + + * elf32-i386.c (elf32_i386_copy_solaris_special_section_fields): + New prototype. + (elf_i386_link_setup_gnu_properties): Set need_global_offset_table + for Solaris. + * elf64-x86-64.c (elf64_x86_64_copy_solaris_special_section_fields): + New prototype. + (elf_x86_64_link_setup_gnu_properties): Set + need_global_offset_table for Solaris. + * elfxx-x86.c (_bfd_x86_elf_size_dynamic_sections): Keep the + unused _GLOBAL_OFFSET_TABLE_ for Solaris. + (_bfd_x86_elf_link_setup_gnu_properties): Copy + need_global_offset_table. + * elfxx-x86.h (elf_x86_link_hash_table): Add + need_global_offset_table. + (elf_x86_init_table): Likewise. + +2018-02-08 Jim Wilson + + * elfnn-riscv.c (riscv_elf_relocate_section): Add comment for previous + change. + +2018-02-08 Nick Clifton + + PR 22788 + * elf.c (elf_parse_notes): Reject notes with excessuively large + alignments. + +2018-02-07 Alan Modra + + Revert 2018-01-17 Alan Modra + * elf32-ppc.c: Remove speculation barrier support. + * elf32-ppc.h: Likewise. + * elf64-ppc.c: Likewise. + * elf64-ppc.h: Likewise. + +2018-02-06 Jim Wilson + + * elfnn-riscv.c (riscv_elf_relocate_section): Return TRUE if used + callback to report an error. + +2018-02-06 Eric Botcazou + + PR ld/22263 + * elfxx-sparc.c (sparc_elf_tls_transition): Turn call to bfd_link_pic + into call to !bfd_link_executable and tidy up. + (_bfd_sparc_elf_check_relocs): Fix formatting and tidy up. + : Turn call to bfd_link_pic into call to + !bfd_link_executable. + : Likewise. + : Remove useless code, tidy and merge related blocks. + : Turn call to bfd_link_pic into call to + !bfd_link_executable. + : Tidy up. + (_bfd_sparc_elf_gc_mark_hook): Turn call to bfd_link_pic into call to + !bfd_link_executable. + (allocate_dynrelocs): Likewise. + (_bfd_sparc_elf_relocate_section): Fix formatting and tidy up. + : Merge into... + : ...this. Adjust 4th argument in call to + sparc_elf_tls_transition and remove redundant code. + : Turn call to bfd_link_pic into call to + !bfd_link_executable. + : Likewise. + : Likewise. Tidy up. + : Likewise. + : Likewise. Tidy up. + : Likewise. + : Likewise. + : Likewise. + : Likewise. + +2018-02-06 Miloš Stojanović + + PR 22789 + * elfxx-mips.c (_bfd_mips_elf_find_nearest_line): If the dwarf + functions failed to find the function name, try the generic elf + find function instead. + +2018-02-06 Sergio Durigan Junior + + * coff-rs6000.c (xcoff_write_archive_contents_old): Use + 'memcpy' instead of 'strncpy' when writing the magic number. + +2018-02-06 Nick Clifton + + PR 22794 + * opncls.c (bfd_get_debug_link_info_1): Check the size of the + section before attempting to read it in. + (bfd_get_alt_debug_link_info): Likewise. + +2018-02-06 Paul Carroll + + * bfd/dwarf2.c (find_abstract_name): Modified to return file and + line information in addition to name, if they can be found. + +2018-02-05 Renlin Li + + PR ld/22764 + * elfnn-aarch64.c (elfNN_aarch64_check_relocs): Relax the + R_AARCH64_ABS32 and R_AARCH64_ABS16 for absolute symbol. Apply the + check for writeable section as well. + +2018-02-05 H.J. Lu + + PR ld/22782 + * elf32-i386.c (elf_i386_check_relocs): Set got_referenced if + _GLOBAL_OFFSET_TABLE_ is referenced or GOT is needed to resolve + undefined weak symbol to 0. + * elf64-x86-64.c (elf_x86_64_check_relocs): Set got_referenced + if _GLOBAL_OFFSET_TABLE_ is referenced. + * elfxx-x86.c (_bfd_x86_elf_size_dynamic_sections): Check + got_referenced instead of ref_regular_nonweak. Remove the + unused _GLOBAL_OFFSET_TABLE_ from symbol table. + * elfxx-x86.h (elf_x86_link_hash_table): Add got_referenced. + +2018-02-05 Maciej W. Rozycki + + * elfnn-riscv.c (_bfd_riscv_relax_pc): Use `memset' to + initialize `hi_reloc'. + +2018-02-05 Maciej W. Rozycki + + * elfxx-mips.c (_bfd_mips_elf_section_processing): For + SHT_MIPS_REGINFO sections don't assert the correct size and + report an error instead. + +2018-02-05 Maciej W. Rozycki + + * elf.c (_bfd_elf_write_object_contents): Propagate a failure + status from `->elf_backend_section_processing'. + +2018-02-02 Jim Wilson + + PR ld/22756 + * elfnn-riscv.c (riscv_relax_delete_bytes): New parameter link_info. + If link_info->wrap_hash, check for a duplicate symbol and ignore. + (_bfd_riscv_relax_call, bfd_riscv_relax_lui, _bfd_riscv_relax_tls_le): + Pass new argument to riscv_relax_delete_bytes. + (_bfd_riscv_relax_align, _bfd_riscv_relax_delete): Likewise. Remove + ATTRIBUTE_UNUSED from link_info parameter. + +2018-02-02 Alan Modra + + * elf64-ppc.c (ppc64_elf_relocate_section): Don't relocate nops + emitted for toc sequence optimization. Set and use "howto" later. + +2018-02-01 Simon Marchi + + * elf64-ppc.c (ppc64_elf_archive_symbol_lookup): Avoid pointer + arithmetic on NULL pointer. + * elflink.c (_bfd_elf_archive_symbol_lookup, + elf_link_add_archive_symbols): Likewise. + +2018-01-31 Michael Matz + + * elflink.c (bfd_elf_define_start_stop): Fix check of + def_dynamic. + +2018-01-31 H.J. Lu + + PR ld/21964 + * elflink.c (bfd_elf_define_start_stop): Check if __start and + __stop symbols are referenced by shared objects. + +2018-01-30 Alan Modra + + PR 22758 + * elf.c (_bfd_elf_map_sections_to_segments): Don't start a new + segment when demand paged with lma on the same page. Test this + before load/non-load, executable/non-executable, + writable/non-writable tests and simplify. Delete bogus relro + condition in writable/non-writable test. Delete outdated + comment. Formatting. + +2018-01-30 Alan Modra + + * elflink.c (bfd_elf_define_start_stop): Make __start and __stop + symbols dynamic. + +2018-01-29 Alan Modra + + PR 22741 + * coffgen.c (coff_pointerize_aux): Ensure auxent tagndx is in + range before converting to a symbol table pointer. + +2018-01-27 Nick Clifton + + * po/ru.po: Updated Russian translation. + +2018-01-26 Alan Modra + + * elflink.c (bfd_elf_define_start_stop): Override symbols when + they are defined dynamically. + +2018-01-26 Alan Modra + + * elf64-ppc.c (ppc64_elf_size_stubs): Iterate sizing when + .branch_lt changes size. + +2018-01-25 Alan Modra + + PR 22746 + * elfcode.h (elf_object_p): Avoid integer overflow. + +2018-01-25 Eric Botcazou + + PR ld/22727 + * elfxx-sparc.c (_bfd_sparc_elf_check_relocs) : + Do a mere lookup of the __tls_get_addr symbol instead of adding it. + + Revert + 2017-10-19 H.J. Lu + + PR ld/22263 + * elfxx-sparc.c (sparc_elf_tls_transition): Replace + bfd_link_pic with !bfd_link_executable, !bfd_link_pic with + bfd_link_executable for TLS check. + (_bfd_sparc_elf_check_relocs): Likewise. + (allocate_dynrelocs): Likewise. + (_bfd_sparc_elf_relocate_section): Likewise. + +2018-01-24 Renlin Li + + * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Add support for + BFD_RELOC_AARCH64_MOVW_PREL_G0, BFD_RELOC_AARCH64_MOVW_PREL_G0_NC, + BFD_RELOC_AARCH64_MOVW_PREL_G1, BFD_RELOC_AARCH64_MOVW_PREL_G1_NC, + BFD_RELOC_AARCH64_MOVW_PREL_G2, BFD_RELOC_AARCH64_MOVW_PREL_G2_NC, + BFD_RELOC_AARCH64_MOVW_PREL_G3. + * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Likewise. + (_bfd_aarch64_elf_resolve_relocation): Likewise. + +2018-01-24 Renlin Li + + * reloc.c: Add BFD_RELOC_AARCH64_MOVW_PREL_G0, + BFD_RELOC_AARCH64_MOVW_PREL_G0_NC, BFD_RELOC_AARCH64_MOVW_PREL_G1, + BFD_RELOC_AARCH64_MOVW_PREL_G1_NC, BFD_RELOC_AARCH64_MOVW_PREL_G2, + BFD_RELOC_AARCH64_MOVW_PREL_G2_NC, BFD_RELOC_AARCH64_MOVW_PREL_G3. + * elfnn-aarch64.c (elfNN_aarch64_howto_table): Add entries for + BFD_RELOC_AARCH64_MOVW_PREL_G0, BFD_RELOC_AARCH64_MOVW_PREL_G0_NC, + BFD_RELOC_AARCH64_MOVW_PREL_G1, BFD_RELOC_AARCH64_MOVW_PREL_G1_NC, + BFD_RELOC_AARCH64_MOVW_PREL_G2, BFD_RELOC_AARCH64_MOVW_PREL_G2_NC, + BFD_RELOC_AARCH64_MOVW_PREL_G3. + * bfd-in2.h: Regenerate. + * libbfd.h: Regenerate. + +2018-01-23 Maciej W. Rozycki + + * elfxx-mips.c (_bfd_mips_elf_final_link): Update a stale + `mips_elf32_section_processing' comment reference. + +2018-01-20 H.J. Lu + + PR ld/22721 + * elfxx-x86.c (_bfd_x86_elf_link_check_relocs): Check the + versioned __tls_get_addr symbol. + +2018-01-19 Nick Clifton + + * po/fr.po: Updated French translation. + +2018-01-18 Alan Modra + + * elf32-ppc.c (ppc_elf_create_glink): Correct alignment of .glink. + * elf64-ppc.c (ppc64_elf_size_stubs): Handle negative plt_stub_align. + (ppc64_elf_build_stubs): Likewise. + +2018-01-17 Nick Clifton + + * po/ru.po: Updated Russian translation. + * po/uk/po: Updated Ukranian translation. + +2018-01-17 Alan Modra + + * elf64-ppc.c (ppc64_elf_build_stubs): Silence gcc warning. + +2018-01-17 Alan Modra + + * elf32-ppc.c (GLINK_ENTRY_SIZE): Handle speculation barrier. + (CRSETEQ, BEQCTRM): Define. + (is_nonpic_glink_stub): Don't check bctr. + (ppc_elf_link_hash_table_create): Init new ppc_elf_params field. + (ppc_elf_relax_section): Size speculation barrier. + (output_bctr): New function. + (write_glink_stub): Use output_bctr. + (ppc_elf_relocate_section): Use output_bctr for long branch stub. + (ppc_elf_finish_dynamic_symbol): Likewise. + (ppc_elf_finish_dynamic_sections): Use output_bctr. + * elf32-ppc.h (struct ppc_elf_params): Add speculate_indirect_jumps. + * elf64-ppc.c (CRSETEQ, BEQCTRM, BEQCTRLM): Define. + (GLINK_PLTRESOLVE_SIZE): Size speculation barrier. + (size_global_entry_stubs): Handle speculation barrier sizing. + (plt_stub_size): Likewise. + (output_bctr): New function. + (build_plt_stub, build_tls_get_addr_stub): Output speculation + barrier. + (ppc_build_one_stub): Likewise for ppc_stub_plt_branch. + (ppc_size_one_stub): Size speculation barrier in ppc_stub_plt_branch. + (build_global_entry_stubs): Output speculation barrier. + (ppc64_elf_build_stubs): Likewise in __glink_PLTresolve stub. + * elf64-ppc.h (struct ppc64_elf_params): Add speculate_indirect_jumps. + +2018-01-17 Alan Modra + + * elf32-ppc.c (GLINK_ENTRY_SIZE): Add parameters, handle + __tls_get_addr_opt, and alignment sizing. + (TLS_GET_ADDR_GLINK_SIZE): Delete. + (is_nonpic_glink_stub): Don't use GLINK_ENTRY_SIZE. + (ppc_elf_get_synthetic_symtab): Recognize stubs spaced at 4, 6, + or 8 insns. + (ppc_elf_link_hash_table_create): Init new ppc_elf_params field. + (allocate_dynrelocs): Use new GLINK_ENTRY_SIZE. + (ppc_elf_size_dynamic_sections): Likewise. Size branch table + by PLT reloc count. + (write_glink_stub): Handle __tls_get_addr_opt stub. + Pad out to size given by GLINK_ENTRY_SIZE. + (ppc_elf_relocate_section): Adjust write_glink_stub call. + (ppc_elf_finish_dynamic_symbol): Likewise. + (ppc_elf_finish_dynamic_sections): Write PLTresolve without using + insn array since so many need rewriting. + * elf32-ppc.h (struct ppc_elf_params): Add plt_stub_align. + * elf64-ppc.c (GLINK_PLTRESOLVE_SIZE): Rename from + GLINK_CALL_STUB_SIZE. Add htab param and evaluate to size without + nops. Adjust all uses. + (ppc64_elf_get_synthetic_symtab): Don't use GLINK_CALL_STUB_SIZE + in glink_vma calculation. + (struct ppc_link_hash_table): Add global_entry section pointer. + (create_linkage_sections): Create separate section for global + entry stubs. + (PPC_LO, PPC_HI, PPC_HA): Move earlier. + (size_global_entry_stubs): Handle sizing for aligned stubs. + (ppc64_elf_size_dynamic_sections): Handle global_entry alloc, + and don't stash end of glink branch table in rawsize. + (ppc_build_one_stub): Rewrite stub size calculations. + (build_global_entry_stubs): Use new section. + (ppc64_elf_build_stubs): Don't pad __glink_PLTresolve with nops. + Build lazy link stubs out to end of section. Build global entry + stubs in new section. + +2018-01-15 Nick Clifton + + * po/uk.po: Updated Ukranian translation. + +2018-01-13 Nick Clifton + + * po/bfd.pot: Regenerated. + +2018-01-13 Nick Clifton + + * version.m4: Bump version to 2.30.51 + * configure: Regenerate. + +2018-01-13 Nick Clifton + + 2.30 branch created. + +2018-01-12 Jens Widell + + * elf.c (setup_group): Optimize search for group by remembering + last found group and restarting search at that index. + * elf-bfd.h (struct elf_obj_tdata): Add group_search_offset field. + +2018-01-12 Gunther Nikl + + * aoutx.h (aout_link_check_ar_symbols): Remove default and handle + bfd_link_common_skip_none in switch. + +2018-01-12 Alan Modra + + PR ld/22649 + * elf64-ppc.c (ppc64_elf_gc_mark_dynamic_ref): Ignore dynamic + references on forced local symbols. + +2018-01-12 Vlad Ivanov + + * elfxx-mips.c (_bfd_mips_elf_final_link): Notify user when + .reginfo section has wrong size. + +2018-01-11 H.J. Lu + + PR ld/22393 + * elf.c (_bfd_elf_map_sections_to_segments): When generating + separate code and read-only data LOAD segments, create a new + LOAD segment if the previous section contains text and the + current section doesn't or vice versa. Don't put a writable + section in a read-only segment if there is a RELRO segment. + +2018-01-11 H.J. Lu + + PR ld/22649 + * elflink.c (bfd_elf_gc_mark_dynamic_ref_symbol): Ignore dynamic + references on forced local symbols. + +2018-01-11 H.J. Lu + + PR ld/22677 + * elflink.c (bfd_elf_gc_sections): Keep all PREINIT_ARRAY, + INIT_ARRAY as well as FINI_ARRAY sections for ld -r --gc-section. + +2018-01-09 Kuan-Lin Chen + + PR 22662 + * elf32-nds32.c (nds32_elf_relax_loadstore): Fix a typographical error. + 2018-01-03 John Baldwin * elf.c (elfcore_grok_freebsd_note): Handle diff -Nru gdb-8.1/bfd/cisco-core.c gdb-8.2/bfd/cisco-core.c --- gdb-8.1/bfd/cisco-core.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/cisco-core.c 2018-09-05 07:27:13.000000000 +0000 @@ -317,102 +317,110 @@ const bfd_target core_cisco_be_vec = { - "cisco-ios-core-big", - bfd_target_unknown_flavour, - BFD_ENDIAN_BIG, /* target byte order */ - BFD_ENDIAN_BIG, /* target headers byte order */ - (HAS_RELOC | EXEC_P | /* object flags */ - HAS_LINENO | HAS_DEBUG | - HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED), - (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */ - 0, /* symbol prefix */ - ' ', /* ar_pad_char */ - 16, /* ar_max_namelen */ - 0, /* match priority. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* 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_check_format */ - _bfd_dummy_target, /* unknown format */ - _bfd_dummy_target, /* object file */ - _bfd_dummy_target, /* archive */ - cisco_core_file_p /* a core file */ - }, - { /* bfd_set_format */ - bfd_false, bfd_false, - bfd_false, bfd_false - }, - { /* bfd_write_contents */ - bfd_false, bfd_false, - bfd_false, bfd_false - }, - - BFD_JUMP_TABLE_GENERIC (_bfd_generic), - BFD_JUMP_TABLE_COPY (_bfd_generic), - BFD_JUMP_TABLE_CORE (cisco), - BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive), - BFD_JUMP_TABLE_SYMBOLS (_bfd_nosymbols), - BFD_JUMP_TABLE_RELOCS (_bfd_norelocs), - BFD_JUMP_TABLE_WRITE (_bfd_generic), - BFD_JUMP_TABLE_LINK (_bfd_nolink), - BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), + "cisco-ios-core-big", + bfd_target_unknown_flavour, + BFD_ENDIAN_BIG, /* target byte order */ + BFD_ENDIAN_BIG, /* target headers byte order */ + (HAS_RELOC | EXEC_P /* object flags */ + | HAS_LINENO | HAS_DEBUG + | HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED), + (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */ + 0, /* symbol prefix */ + ' ', /* ar_pad_char */ + 16, /* ar_max_namelen */ + 0, /* match priority. */ + bfd_getb64, bfd_getb_signed_64, bfd_putb64, + bfd_getb32, bfd_getb_signed_32, bfd_putb32, + bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* 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_check_format */ + _bfd_dummy_target, /* unknown format */ + _bfd_dummy_target, /* object file */ + _bfd_dummy_target, /* archive */ + cisco_core_file_p /* a core file */ + }, + { /* bfd_set_format */ + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents */ + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error + }, + + BFD_JUMP_TABLE_GENERIC (_bfd_generic), + BFD_JUMP_TABLE_COPY (_bfd_generic), + BFD_JUMP_TABLE_CORE (cisco), + BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive), + BFD_JUMP_TABLE_SYMBOLS (_bfd_nosymbols), + BFD_JUMP_TABLE_RELOCS (_bfd_norelocs), + BFD_JUMP_TABLE_WRITE (_bfd_generic), + BFD_JUMP_TABLE_LINK (_bfd_nolink), + BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), - & core_cisco_le_vec, + &core_cisco_le_vec, - NULL /* backend_data */ + NULL /* backend_data */ }; const bfd_target core_cisco_le_vec = { - "cisco-ios-core-little", - bfd_target_unknown_flavour, - BFD_ENDIAN_LITTLE, /* target byte order */ - BFD_ENDIAN_LITTLE, /* target headers byte order */ - (HAS_RELOC | EXEC_P | /* object flags */ - HAS_LINENO | HAS_DEBUG | - HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED), - (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */ - 0, /* symbol prefix */ - ' ', /* ar_pad_char */ - 16, /* ar_max_namelen */ - 0, /* match_priority */ - 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_check_format */ - _bfd_dummy_target, /* unknown format */ - _bfd_dummy_target, /* object file */ - _bfd_dummy_target, /* archive */ - cisco_core_file_p /* a core file */ - }, - { /* bfd_set_format */ - bfd_false, bfd_false, - bfd_false, bfd_false - }, - { /* bfd_write_contents */ - bfd_false, bfd_false, - bfd_false, bfd_false - }, - - BFD_JUMP_TABLE_GENERIC (_bfd_generic), - BFD_JUMP_TABLE_COPY (_bfd_generic), - BFD_JUMP_TABLE_CORE (cisco), - BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive), - BFD_JUMP_TABLE_SYMBOLS (_bfd_nosymbols), - BFD_JUMP_TABLE_RELOCS (_bfd_norelocs), - BFD_JUMP_TABLE_WRITE (_bfd_generic), - BFD_JUMP_TABLE_LINK (_bfd_nolink), - BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), + "cisco-ios-core-little", + bfd_target_unknown_flavour, + BFD_ENDIAN_LITTLE, /* target byte order */ + BFD_ENDIAN_LITTLE, /* target headers byte order */ + (HAS_RELOC | EXEC_P /* object flags */ + | HAS_LINENO | HAS_DEBUG + | HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED), + (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */ + 0, /* symbol prefix */ + ' ', /* ar_pad_char */ + 16, /* ar_max_namelen */ + 0, /* match_priority */ + 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_check_format */ + _bfd_dummy_target, /* unknown format */ + _bfd_dummy_target, /* object file */ + _bfd_dummy_target, /* archive */ + cisco_core_file_p /* a core file */ + }, + { /* bfd_set_format */ + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents */ + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error + }, + + BFD_JUMP_TABLE_GENERIC (_bfd_generic), + BFD_JUMP_TABLE_COPY (_bfd_generic), + BFD_JUMP_TABLE_CORE (cisco), + BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive), + BFD_JUMP_TABLE_SYMBOLS (_bfd_nosymbols), + BFD_JUMP_TABLE_RELOCS (_bfd_norelocs), + BFD_JUMP_TABLE_WRITE (_bfd_generic), + BFD_JUMP_TABLE_LINK (_bfd_nolink), + BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), - &core_cisco_be_vec, + &core_cisco_be_vec, - NULL /* backend_data */ + NULL /* backend_data */ }; diff -Nru gdb-8.1/bfd/coff64-rs6000.c gdb-8.2/bfd/coff64-rs6000.c --- gdb-8.1/bfd/coff64-rs6000.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff64-rs6000.c 2018-09-05 07:44:28.000000000 +0000 @@ -2147,7 +2147,7 @@ { _bfd_error_handler /* xgettext: c-format */ - (_("%B: symbol `%s' has unrecognized smclas %d"), + (_("%pB: symbol `%s' has unrecognized smclas %d"), abfd, symbol_name, aux->x_csect.x_smclas); bfd_set_error (bfd_error_bad_value); } @@ -2694,22 +2694,22 @@ }, { /* bfd_set_format */ - bfd_false, + _bfd_bool_bfd_false_error, coff_mkobject, _bfd_generic_mkarchive, - bfd_false + _bfd_bool_bfd_false_error }, {/* bfd_write_contents */ - bfd_false, + _bfd_bool_bfd_false_error, xcoff64_write_object_contents, _bfd_xcoff_write_archive_contents, - bfd_false + _bfd_bool_bfd_false_error }, /* Generic */ _bfd_archive_close_and_cleanup, - bfd_true, + _bfd_bool_bfd_true, coff_new_section_hook, _bfd_generic_get_section_contents, _bfd_generic_get_section_contents_in_window, @@ -2738,7 +2738,7 @@ xcoff64_openr_next_archived_file, _bfd_generic_get_elt_at_index, _bfd_xcoff_stat_arch_elt, - bfd_true, + _bfd_bool_bfd_true, /* Symbols */ coff_get_symtab_upper_bound, @@ -2786,6 +2786,7 @@ bfd_generic_discard_group, _bfd_generic_section_already_linked, _bfd_xcoff_define_common_symbol, + _bfd_generic_link_hide_symbol, bfd_generic_define_start_stop, /* Dynamic */ @@ -2955,22 +2956,22 @@ }, { /* bfd_set_format */ - bfd_false, + _bfd_bool_bfd_false_error, coff_mkobject, _bfd_generic_mkarchive, - bfd_false + _bfd_bool_bfd_false_error }, {/* bfd_write_contents */ - bfd_false, + _bfd_bool_bfd_false_error, xcoff64_write_object_contents, _bfd_xcoff_write_archive_contents, - bfd_false + _bfd_bool_bfd_false_error }, /* Generic */ _bfd_archive_close_and_cleanup, - bfd_true, + _bfd_bool_bfd_true, coff_new_section_hook, _bfd_generic_get_section_contents, _bfd_generic_get_section_contents_in_window, @@ -2999,7 +3000,7 @@ xcoff64_openr_next_archived_file, _bfd_generic_get_elt_at_index, _bfd_xcoff_stat_arch_elt, - bfd_true, + _bfd_bool_bfd_true, /* Symbols */ coff_get_symtab_upper_bound, @@ -3047,6 +3048,7 @@ bfd_generic_discard_group, _bfd_generic_section_already_linked, _bfd_xcoff_define_common_symbol, + _bfd_generic_link_hide_symbol, bfd_generic_define_start_stop, /* Dynamic */ diff -Nru gdb-8.1/bfd/coff-alpha.c gdb-8.2/bfd/coff-alpha.c --- gdb-8.1/bfd/coff-alpha.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff-alpha.c 2018-09-05 07:27:13.000000000 +0000 @@ -447,8 +447,8 @@ if (ALPHA_ECOFF_COMPRESSEDMAG (*internal_f)) _bfd_error_handler - (_("%B: Cannot handle compressed Alpha binaries.\n" - " Use compiler flags, or objZ, to generate uncompressed binaries."), + (_("%pB: cannot handle compressed Alpha binaries; " + "use compiler flags, or objZ, to generate uncompressed binaries"), abfd); return FALSE; @@ -598,9 +598,8 @@ if (intern->r_type > ALPHA_R_GPVALUE) { /* xgettext:c-format */ - _bfd_error_handler - (_("%B: unknown/unsupported relocation type %d"), - abfd, intern->r_type); + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, intern->r_type); bfd_set_error (bfd_error_bad_value); rptr->addend = 0; rptr->howto = NULL; @@ -1499,24 +1498,21 @@ switch (r_type) { case ALPHA_R_GPRELHIGH: - _bfd_error_handler - (_("%B: unsupported relocation: ALPHA_R_GPRELHIGH"), - input_bfd); + _bfd_error_handler (_("%pB: %s unsupported"), + input_bfd, "ALPHA_R_GPRELHIGH"); bfd_set_error (bfd_error_bad_value); continue; case ALPHA_R_GPRELLOW: - _bfd_error_handler - (_("%B: unsupported relocation: ALPHA_R_GPRELLOW"), - input_bfd); + _bfd_error_handler (_("%pB: %s unsupported"), + input_bfd, "ALPHA_R_GPRELLOW"); bfd_set_error (bfd_error_bad_value); continue; default: - _bfd_error_handler - /* xgettext:c-format */ - (_("%B: unknown relocation type %d"), - input_bfd, (int) r_type); + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + input_bfd, (int) r_type); bfd_set_error (bfd_error_bad_value); continue; @@ -2218,6 +2214,67 @@ entry = bfd_ardata (abfd)->symdefs + sym_index; return alpha_ecoff_get_elt_at_filepos (abfd, entry->file_offset); } + +static void +alpha_ecoff_swap_coff_aux_in (bfd *abfd ATTRIBUTE_UNUSED, + void *ext1 ATTRIBUTE_UNUSED, + int type ATTRIBUTE_UNUSED, + int in_class ATTRIBUTE_UNUSED, + int indx ATTRIBUTE_UNUSED, + int numaux ATTRIBUTE_UNUSED, + void *in1 ATTRIBUTE_UNUSED) +{ +} + +static void +alpha_ecoff_swap_coff_sym_in (bfd *abfd ATTRIBUTE_UNUSED, + void *ext1 ATTRIBUTE_UNUSED, + void *in1 ATTRIBUTE_UNUSED) +{ +} + +static void +alpha_ecoff_swap_coff_lineno_in (bfd *abfd ATTRIBUTE_UNUSED, + void *ext1 ATTRIBUTE_UNUSED, + void *in1 ATTRIBUTE_UNUSED) +{ +} + +static unsigned int +alpha_ecoff_swap_coff_aux_out (bfd *abfd ATTRIBUTE_UNUSED, + void *inp ATTRIBUTE_UNUSED, + int type ATTRIBUTE_UNUSED, + int in_class ATTRIBUTE_UNUSED, + int indx ATTRIBUTE_UNUSED, + int numaux ATTRIBUTE_UNUSED, + void *extp ATTRIBUTE_UNUSED) +{ + return 0; +} + +static unsigned int +alpha_ecoff_swap_coff_sym_out (bfd *abfd ATTRIBUTE_UNUSED, + void *inp ATTRIBUTE_UNUSED, + void *extp ATTRIBUTE_UNUSED) +{ + return 0; +} + +static unsigned int +alpha_ecoff_swap_coff_lineno_out (bfd *abfd ATTRIBUTE_UNUSED, + void *inp ATTRIBUTE_UNUSED, + void *extp ATTRIBUTE_UNUSED) +{ + return 0; +} + +static unsigned int +alpha_ecoff_swap_coff_reloc_out (bfd *abfd ATTRIBUTE_UNUSED, + void *inp ATTRIBUTE_UNUSED, + void *extp ATTRIBUTE_UNUSED) +{ + return 0; +} /* This is the ECOFF backend structure. The backend field of the target vector points to this. */ @@ -2226,13 +2283,10 @@ { /* COFF backend structure. */ { - (void (*) (bfd *,void *,int,int,int,int,void *)) bfd_void, /* aux_in */ - (void (*) (bfd *,void *,void *)) bfd_void, /* sym_in */ - (void (*) (bfd *,void *,void *)) bfd_void, /* lineno_in */ - (unsigned (*) (bfd *,void *,int,int,int,int,void *)) bfd_void,/*aux_out*/ - (unsigned (*) (bfd *,void *,void *)) bfd_void, /* sym_out */ - (unsigned (*) (bfd *,void *,void *)) bfd_void, /* lineno_out */ - (unsigned (*) (bfd *,void *,void *)) bfd_void, /* reloc_out */ + alpha_ecoff_swap_coff_aux_in, alpha_ecoff_swap_coff_sym_in, + alpha_ecoff_swap_coff_lineno_in, alpha_ecoff_swap_coff_aux_out, + alpha_ecoff_swap_coff_sym_out, alpha_ecoff_swap_coff_lineno_out, + alpha_ecoff_swap_coff_reloc_out, alpha_ecoff_swap_filehdr_out, alpha_ecoff_swap_aouthdr_out, alpha_ecoff_swap_scnhdr_out, FILHSZ, AOUTSZ, SCNHSZ, 0, 0, 0, 0, FILNMLEN, TRUE, @@ -2340,6 +2394,7 @@ #define _bfd_ecoff_section_already_linked \ _bfd_coff_section_already_linked #define _bfd_ecoff_bfd_define_common_symbol bfd_generic_define_common_symbol +#define _bfd_ecoff_bfd_link_hide_symbol _bfd_generic_link_hide_symbol #define _bfd_ecoff_bfd_define_start_stop bfd_generic_define_start_stop #define _bfd_ecoff_bfd_link_check_relocs _bfd_generic_link_check_relocs @@ -2353,9 +2408,9 @@ BFD_ENDIAN_LITTLE, /* data byte order is little */ BFD_ENDIAN_LITTLE, /* header byte order is little */ - (HAS_RELOC | EXEC_P | /* object flags */ - HAS_LINENO | HAS_DEBUG | - HAS_SYMS | HAS_LOCALS | DYNAMIC | WP_TEXT | D_PAGED), + (HAS_RELOC | EXEC_P /* object flags */ + | HAS_LINENO | HAS_DEBUG + | HAS_SYMS | HAS_LOCALS | DYNAMIC | WP_TEXT | D_PAGED), (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_CODE | SEC_DATA), 0, /* leading underscore */ @@ -2369,24 +2424,36 @@ bfd_getl32, bfd_getl_signed_32, bfd_putl32, bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* hdrs */ - {_bfd_dummy_target, alpha_ecoff_object_p, /* bfd_check_format */ - bfd_generic_archive_p, _bfd_dummy_target}, - {bfd_false, _bfd_ecoff_mkobject, /* bfd_set_format */ - _bfd_generic_mkarchive, bfd_false}, - {bfd_false, _bfd_ecoff_write_object_contents, /* bfd_write_contents */ - _bfd_write_archive_contents, bfd_false}, - - BFD_JUMP_TABLE_GENERIC (_bfd_ecoff), - BFD_JUMP_TABLE_COPY (_bfd_ecoff), - BFD_JUMP_TABLE_CORE (_bfd_nocore), - BFD_JUMP_TABLE_ARCHIVE (alpha_ecoff), - BFD_JUMP_TABLE_SYMBOLS (_bfd_ecoff), - BFD_JUMP_TABLE_RELOCS (_bfd_ecoff), - BFD_JUMP_TABLE_WRITE (_bfd_ecoff), - BFD_JUMP_TABLE_LINK (_bfd_ecoff), - BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), + { /* bfd_check_format */ + _bfd_dummy_target, + alpha_ecoff_object_p, + bfd_generic_archive_p, + _bfd_dummy_target + }, + { /* bfd_set_format */ + _bfd_bool_bfd_false_error, + _bfd_ecoff_mkobject, + _bfd_generic_mkarchive, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents */ + _bfd_bool_bfd_false_error, + _bfd_ecoff_write_object_contents, + _bfd_write_archive_contents, + _bfd_bool_bfd_false_error + }, + + BFD_JUMP_TABLE_GENERIC (_bfd_ecoff), + BFD_JUMP_TABLE_COPY (_bfd_ecoff), + BFD_JUMP_TABLE_CORE (_bfd_nocore), + BFD_JUMP_TABLE_ARCHIVE (alpha_ecoff), + BFD_JUMP_TABLE_SYMBOLS (_bfd_ecoff), + BFD_JUMP_TABLE_RELOCS (_bfd_ecoff), + BFD_JUMP_TABLE_WRITE (_bfd_ecoff), + BFD_JUMP_TABLE_LINK (_bfd_ecoff), + BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), NULL, - & alpha_ecoff_backend_data + &alpha_ecoff_backend_data }; diff -Nru gdb-8.1/bfd/coff-apollo.c gdb-8.2/bfd/coff-apollo.c --- gdb-8.1/bfd/coff-apollo.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff-apollo.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,120 +0,0 @@ -/* BFD back-end for Apollo 68000 COFF binaries. - Copyright (C) 1990-2018 Free Software Foundation, Inc. - By Troy Rollo (troy@cbme.unsw.edu.au) - Based on m68k standard COFF version Written by Cygnus Support. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "coff/apollo.h" -#include "coff/internal.h" -#include "libcoff.h" - -#define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (3) - -#ifdef ONLY_DECLARE_RELOCS -extern reloc_howto_type apollocoff_howto_table[]; -#else -reloc_howto_type apollocoff_howto_table[] = - { - HOWTO (R_RELBYTE, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, 0, "8", TRUE, 0x000000ff,0x000000ff, FALSE), - HOWTO (R_RELWORD, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, 0, "16", TRUE, 0x0000ffff,0x0000ffff, FALSE), - HOWTO (R_RELLONG, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, 0, "32", TRUE, 0xffffffff,0xffffffff, FALSE), - HOWTO (R_PCRBYTE, 0, 0, 8, TRUE, 0, complain_overflow_signed, 0, "DISP8", TRUE, 0x000000ff,0x000000ff, FALSE), - HOWTO (R_PCRWORD, 0, 1, 16, TRUE, 0, complain_overflow_signed, 0, "DISP16", TRUE, 0x0000ffff,0x0000ffff, FALSE), - HOWTO (R_PCRLONG, 0, 2, 32, TRUE, 0, complain_overflow_signed, 0, "DISP32", TRUE, 0xffffffff,0xffffffff, FALSE), - HOWTO (R_RELLONG_NEG, 0, -2, 32, FALSE, 0, complain_overflow_bitfield, 0, "-32", TRUE, 0xffffffff,0xffffffff, FALSE), - }; -#endif /* not ONLY_DECLARE_RELOCS */ - -#ifndef BADMAG -#define BADMAG(x) M68KBADMAG(x) -#endif -#define APOLLO_M68 1 /* Customize coffcode.h */ - -/* Turn a howto into a reloc number. */ - -extern void apollo_rtype2howto (arelent *, int); -extern int apollo_howto2rtype (reloc_howto_type *); -#ifndef ONLY_DECLARE_RELOCS - -void -apollo_rtype2howto (arelent *internal, int relocentry) -{ - switch (relocentry) - { - case R_RELBYTE: internal->howto = apollocoff_howto_table + 0; break; - case R_RELWORD: internal->howto = apollocoff_howto_table + 1; break; - case R_RELLONG: internal->howto = apollocoff_howto_table + 2; break; - case R_PCRBYTE: internal->howto = apollocoff_howto_table + 3; break; - case R_PCRWORD: internal->howto = apollocoff_howto_table + 4; break; - case R_PCRLONG: internal->howto = apollocoff_howto_table + 5; break; - case R_RELLONG_NEG: internal->howto = apollocoff_howto_table + 6; break; - } -} - -int -apollo_howto2rtype (reloc_howto_type *internal) -{ - if (internal->pc_relative) - { - switch (internal->bitsize) - { - case 32: return R_PCRLONG; - case 16: return R_PCRWORD; - case 8: return R_PCRBYTE; - } - } - else - { - switch (internal->bitsize) - { - case 32: return R_RELLONG; - case 16: return R_RELWORD; - case 8: return R_RELBYTE; - } - } - return R_RELLONG; -} -#endif /* not ONLY_DECLARE_RELOCS */ - -#define RTYPE2HOWTO(internal, relocentry) \ - apollo_rtype2howto (internal, (relocentry)->r_type) - -#define SELECT_RELOC(external, internal) \ - external.r_type = apollo_howto2rtype (internal); - -#define bfd_pe_print_pdata NULL - -#include "coffcode.h" - -#ifndef TARGET_SYM -#define TARGET_SYM m68k_coff_apollo_vec -#endif - -#ifndef TARGET_NAME -#define TARGET_NAME "apollo-m68k" -#endif - -#ifdef NAMES_HAVE_UNDERSCORE -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, COFF_SWAP_TABLE) -#endif diff -Nru gdb-8.1/bfd/coff-arm.c gdb-8.2/bfd/coff-arm.c --- gdb-8.1/bfd/coff-arm.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff-arm.c 2018-09-05 07:44:28.000000000 +0000 @@ -1034,7 +1034,7 @@ if (myh == NULL) /* xgettext:c-format */ - _bfd_error_handler (_("%B: unable to find THUMB glue '%s' for `%s'"), + _bfd_error_handler (_("%pB: unable to find THUMB glue '%s' for `%s'"), input_bfd, tmp_name, name); free (tmp_name); @@ -1063,7 +1063,7 @@ if (myh == NULL) /* xgettext:c-format */ - _bfd_error_handler (_("%B: unable to find ARM glue '%s' for `%s'"), + _bfd_error_handler (_("%pB: unable to find ARM glue '%s' for `%s'"), input_bfd, tmp_name, name); free (tmp_name); @@ -1274,9 +1274,8 @@ 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 - VxWorks and EPOC-PE targets, but it is also known that it - was suppressed for other ARM targets. This ought to be - sorted out one day. */ + VxWorks targets but it is also known that it was suppressed + for other ARM targets. This ought to be sorted out one day. */ #ifdef ARM_COFF_BUGFIX /* We must not ignore the symbol value. If the symbol is within the same section, the relocation should have already @@ -1365,8 +1364,8 @@ && ! INTERWORK_FLAG (h_sec->owner)) _bfd_error_handler /* xgettext:c-format */ - (_("%B(%s): warning: interworking not enabled.\n" - " first occurrence: %B: arm call to thumb"), + (_("%pB(%s): warning: interworking not enabled; " + "first occurrence: %pB: arm call to thumb"), h_sec->owner, name, input_bfd); --my_offset; @@ -1455,9 +1454,10 @@ && ! globals->support_old_code) _bfd_error_handler /* xgettext:c-format */ - (_("%B(%s): warning: interworking not enabled.\n" - " first occurrence: %B: thumb call to arm\n" - " consider relinking with --support-old-code enabled"), + (_("%pB(%s): warning: interworking not enabled; " + "first occurrence: %pB: thumb call to arm; " + "consider relinking with --support-old-code " + "enabled"), h_sec->owner, name, input_bfd); -- my_offset; @@ -1748,8 +1748,8 @@ case bfd_reloc_outofrange: _bfd_error_handler /* xgettext:c-format */ - (_("%B: bad reloc address %#Lx in section `%A'"), - input_bfd, rel->r_vaddr, input_section); + (_("%pB: bad reloc address %#" PRIx64 " in section `%pA'"), + input_bfd, (uint64_t) rel->r_vaddr, input_section); return FALSE; case bfd_reloc_overflow: { @@ -2073,7 +2073,7 @@ if (symndx >= obj_conv_table_size (abfd)) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: illegal symbol index in reloc: %ld"), + _bfd_error_handler (_("%pB: illegal symbol index in reloc: %ld"), abfd, symndx); continue; } @@ -2205,7 +2205,7 @@ { _bfd_error_handler /* xgettext: c-format */ - (_("error: %B is compiled for APCS-%d, whereas %B is compiled for APCS-%d"), + (_("error: %pB is compiled for APCS-%d, whereas %pB is compiled for APCS-%d"), ibfd, APCS_26_FLAG (ibfd) ? 26 : 32, obfd, APCS_26_FLAG (obfd) ? 26 : 32 ); @@ -2219,12 +2219,12 @@ if (APCS_FLOAT_FLAG (ibfd)) /* xgettext: c-format */ _bfd_error_handler (_("\ -error: %B passes floats in float registers, whereas %B passes them in integer registers"), +error: %pB passes floats in float registers, whereas %pB passes them in integer registers"), ibfd, obfd); else /* xgettext: c-format */ _bfd_error_handler (_("\ -error: %B passes floats in integer registers, whereas %B passes them in float registers"), +error: %pB passes floats in integer registers, whereas %pB passes them in float registers"), ibfd, obfd); bfd_set_error (bfd_error_wrong_format); @@ -2236,12 +2236,12 @@ if (PIC_FLAG (ibfd)) /* xgettext: c-format */ _bfd_error_handler (_("\ -error: %B is compiled as position independent code, whereas target %B is absolute position"), +error: %pB is compiled as position independent code, whereas target %pB is absolute position"), ibfd, obfd); else /* xgettext: c-format */ _bfd_error_handler (_("\ -error: %B is compiled as absolute position code, whereas target %B is position independent"), +error: %pB is compiled as absolute position code, whereas target %pB is position independent"), ibfd, obfd); bfd_set_error (bfd_error_wrong_format); @@ -2268,12 +2268,12 @@ if (INTERWORK_FLAG (ibfd)) /* xgettext: c-format */ _bfd_error_handler (_("\ -Warning: %B supports interworking, whereas %B does not"), +warning: %pB supports interworking, whereas %pB does not"), ibfd, obfd); else /* xgettext: c-format */ _bfd_error_handler (_("\ -Warning: %B does not support interworking, whereas %B does"), +warning: %pB does not support interworking, whereas %pB does"), ibfd, obfd); } } @@ -2363,10 +2363,10 @@ if (INTERWORK_SET (abfd) && (INTERWORK_FLAG (abfd) != flag)) { if (flag) - _bfd_error_handler (_("Warning: Not setting interworking flag of %B since it has already been specified as non-interworking"), + _bfd_error_handler (_("warning: not setting interworking flag of %pB since it has already been specified as non-interworking"), abfd); else - _bfd_error_handler (_("Warning: Clearing the interworking flag of %B due to outside request"), + _bfd_error_handler (_("warning: clearing the interworking flag of %pB due to outside request"), abfd); flag = 0; } @@ -2424,7 +2424,7 @@ { /* xgettext:c-format */ _bfd_error_handler (_("\ -Warning: Clearing the interworking flag of %B because non-interworking code in %B has been linked with it"), +warning: clearing the interworking flag of %pB because non-interworking code in %pB has been linked with it"), dest, src); } diff -Nru gdb-8.1/bfd/coff-aux.c gdb-8.2/bfd/coff-aux.c --- gdb-8.1/bfd/coff-aux.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff-aux.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,145 +0,0 @@ -/* BFD back-end for Apple M68K COFF A/UX 3.x files. - Copyright (C) 1996-2018 Free Software Foundation, Inc. - Written by Richard Henderson . - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define TARGET_SYM m68k_coff_aux_vec -#define TARGET_NAME "coff-m68k-aux" - -#ifndef TARG_AUX -#define TARG_AUX -#endif - -#define COFF_LONG_FILENAMES - -/* 4k pages */ -#define COFF_PAGE_SIZE 0x1000 - -/* On AUX, a STYP_NOLOAD|STYP_BSS section is part of a shared library. */ -#define BSS_NOLOAD_IS_SHARED_LIBRARY - -#define STATIC_RELOCS - -#define COFF_COMMON_ADDEND - -#include "sysdep.h" -#include "bfd.h" - -#define coff_link_add_one_symbol coff_m68k_aux_link_add_one_symbol -static bfd_boolean -coff_m68k_aux_link_add_one_symbol - (struct bfd_link_info *, bfd *, const char *, flagword, asection *, - bfd_vma, const char *, bfd_boolean, bfd_boolean, - struct bfd_link_hash_entry **); - -#ifndef bfd_pe_print_pdata -#define bfd_pe_print_pdata NULL -#endif - -#include "coff/aux-coff.h" /* override coff/internal.h and coff/m68k.h */ -#include "coff-m68k.c" - -/* We need non-absolute symbols to override absolute symbols. This - mirrors Apple's "solution" to let a static library symbol override - a shared library symbol. On the whole not a good thing, given how - shared libraries work here, but can work if you are careful with - what you include in the shared object. */ - -static bfd_boolean -coff_m68k_aux_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) -{ - struct bfd_link_hash_entry *h, *inh, *t; - - if ((flags & (BSF_WARNING | BSF_CONSTRUCTOR | BSF_WEAK)) == 0 - && !bfd_is_und_section (section) - && !bfd_is_com_section (section)) - { - /* The new symbol is a definition or an indirect definition */ - - /* This bit copied from linker.c */ - if (hashp != NULL && *hashp != NULL) - h = *hashp; - else - { - h = bfd_link_hash_lookup (info->hash, name, TRUE, copy, FALSE); - if (h == NULL) - { - if (hashp != NULL) - *hashp = NULL; - return FALSE; - } - } - - if (hashp != (struct bfd_link_hash_entry **) NULL) - *hashp = h; - /* end duplication from linker.c */ - - t = h; - inh = NULL; - if (h->type == bfd_link_hash_indirect) - { - inh = h->u.i.link; - t = inh; - } - - if (t->type == bfd_link_hash_defined) - { - asection *msec = t->u.def.section; - bfd_boolean special = FALSE; - - if (bfd_is_abs_section (msec) && !bfd_is_abs_section (section)) - { - t->u.def.section = section; - t->u.def.value = value; - special = TRUE; - } - else if (bfd_is_abs_section (section) && !bfd_is_abs_section (msec)) - special = TRUE; - - if (special) - { - if (info->notice_all - || (info->notice_hash != NULL - && bfd_hash_lookup (info->notice_hash, name, - FALSE, FALSE) != NULL)) - { - if (!(*info->callbacks->notice) (info, h, inh, - abfd, section, value, flags)) - return FALSE; - } - - return TRUE; - } - } - } - - /* If we didn't exit early, finish processing in the generic routine */ - return _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, - value, string, copy, collect, - hashp); -} diff -Nru gdb-8.1/bfd/coffcode.h gdb-8.2/bfd/coffcode.h --- gdb-8.1/bfd/coffcode.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coffcode.h 2018-09-05 07:27:13.000000000 +0000 @@ -32,19 +32,14 @@ Coff in all its varieties is implemented with a few common files and a number of implementation specific files. For - example, The 88k bcs coff format is implemented in the file - @file{coff-m88k.c}. This file @code{#include}s - @file{coff/m88k.h} which defines the external structure of the - coff format for the 88k, and @file{coff/internal.h} which - defines the internal structure. @file{coff-m88k.c} also - defines the relocations used by the 88k format + example, the i386 coff format is implemented in the file + @file{coff-i386.c}. This file @code{#include}s + @file{coff/i386.h} which defines the external structure of the + coff format for the i386, and @file{coff/internal.h} which + defines the internal structure. @file{coff-i386.c} also + defines the relocations used by the i386 coff format @xref{Relocations}. - The Intel i960 processor version of coff is implemented in - @file{coff-i960.c}. This file has the same structure as - @file{coff-m88k.c}, except that it includes @file{coff/i960.h} - rather than @file{coff-m88k.h}. - SUBSECTION Porting to a new version of coff @@ -97,15 +92,6 @@ Some of the Coff targets then also have additional routines in the target source file itself. - For example, @file{coff-i960.c} includes - @file{coff/internal.h} and @file{coff/i960.h}. It then - defines a few constants, such as @code{I960}, and includes - @file{coffcode.h}. Since the i960 has complex relocation - types, @file{coff-i960.c} also includes some code to - manipulate the i960 relocs. This code is not in - @file{coffcode.h} because it would not be used by any other - target. - SUBSUBSECTION Coff long section names @@ -965,7 +951,7 @@ /* PR 17512 file: 078-11867-0.004 */ if (symname == NULL) { - _bfd_error_handler (_("%B: unable to load COMDAT section name"), + _bfd_error_handler (_("%pB: unable to load COMDAT section name"), abfd); break; } @@ -1000,7 +986,7 @@ { /* Malformed input files can trigger this test. cf PR 21781. */ - _bfd_error_handler (_("%B: error: unexpected symbol '%s' in COMDAT section"), + _bfd_error_handler (_("%pB: error: unexpected symbol '%s' in COMDAT section"), abfd, symname); goto breakloop; } @@ -1012,7 +998,7 @@ if (isym.n_sclass == C_STAT && strcmp (name, symname) != 0) /* xgettext:c-format */ - _bfd_error_handler (_("%B: warning: COMDAT symbol '%s'" + _bfd_error_handler (_("%pB: warning: COMDAT symbol '%s'" " does not match section name '%s'"), abfd, symname, name); @@ -1022,7 +1008,7 @@ if (esym + bfd_coff_symesz (abfd) >= esymend) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: warning: No symbol for" + _bfd_error_handler (_("%pB: warning: no symbol for" " section '%s' found"), abfd, symname); break; @@ -1248,9 +1234,9 @@ variable as this will allow some .sys files generate by other toolchains to be processed. See bugzilla issue 196. */ /* xgettext:c-format */ - _bfd_error_handler (_("%B: Warning: Ignoring section flag" - " IMAGE_SCN_MEM_NOT_PAGED in section %s"), - abfd, name); + _bfd_error_handler (_("%pB: warning: ignoring section flag" + " %s in section %s"), + abfd, "IMAGE_SCN_MEM_NOT_PAGED", name); break; case IMAGE_SCN_MEM_EXECUTE: sec_flags |= SEC_CODE; @@ -1317,7 +1303,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B (%s): Section flag %s (%#lx) ignored"), + (_("%pB (%s): section flag %s (%#lx) ignored"), abfd, name, unhandled, flag); result = FALSE; } @@ -1664,19 +1650,6 @@ if (BADMAG (*internal_f)) return FALSE; - /* If the optional header is NULL or not the correct size then - quit; the only difference I can see between m88k dgux headers (MC88DMAGIC) - and Intel 960 readwrite headers (I960WRMAGIC) is that the - optional header is of a different size. - - But the mips keeps extra stuff in it's opthdr, so dont check - when doing that. */ - -#if defined(M88) || defined(I960) - if (internal_f->f_opthdr != 0 && bfd_coff_aoutsz (abfd) != internal_f->f_opthdr) - return FALSE; -#endif - return TRUE; } @@ -1848,12 +1821,6 @@ struct internal_scnhdr *hdr = (struct internal_scnhdr *) scnhdr; unsigned int i; -#ifdef I960 - /* Extract ALIGN from 2**ALIGN stored in section header. */ - for (i = 0; i < 32; i++) - if ((1 << i) >= hdr->s_align) - break; -#endif #ifdef COFF_DECODE_ALIGNMENT i = COFF_DECODE_ALIGNMENT(hdr->s_flags); #endif @@ -1947,7 +1914,7 @@ } else if (hdr->s_nreloc == 0xffff) _bfd_error_handler - (_("%B: warning: claims to have 0xffff relocs, without overflow"), + (_("%pB: warning: claims to have 0xffff relocs, without overflow"), abfd); } #undef ALIGN_SET @@ -1985,8 +1952,12 @@ #else /* ! RS6000COFF_C */ -#define coff_set_alignment_hook \ - ((void (*) (bfd *, asection *, void *)) bfd_void) +static void +coff_set_alignment_hook (bfd *abfd ATTRIBUTE_UNUSED, + asection *section ATTRIBUTE_UNUSED, + void *scnhdr ATTRIBUTE_UNUSED) +{ +} #endif /* ! RS6000COFF_C */ #endif /* ! COFF_WITH_PE */ @@ -2132,7 +2103,7 @@ case I386MAGIC: case I386PTXMAGIC: case I386AIXMAGIC: /* Danbury PS/2 AIX C Compiler. */ - case LYNXCOFFMAGIC: /* Shadows the m68k Lynx number below, sigh. */ + case LYNXCOFFMAGIC: arch = bfd_arch_i386; break; #endif @@ -2174,30 +2145,6 @@ } break; #endif -#ifdef MC68MAGIC - case MC68MAGIC: - case M68MAGIC: -#ifdef MC68KBCSMAGIC - case MC68KBCSMAGIC: -#endif -#ifdef APOLLOM68KMAGIC - case APOLLOM68KMAGIC: -#endif -#ifdef LYNXCOFFMAGIC - case LYNXCOFFMAGIC: -#endif - arch = bfd_arch_m68k; - machine = bfd_mach_m68020; - break; -#endif -#ifdef MC88MAGIC - case MC88MAGIC: - case MC88DMAGIC: - case MC88OMAGIC: - arch = bfd_arch_m88k; - machine = 88100; - break; -#endif #ifdef Z80MAGIC case Z80MAGIC: arch = bfd_arch_z80; @@ -2231,47 +2178,6 @@ } break; #endif -#ifdef I860 - case I860MAGIC: - arch = bfd_arch_i860; - break; -#endif -#ifdef I960 -#ifdef I960ROMAGIC - case I960ROMAGIC: - case I960RWMAGIC: - arch = bfd_arch_i960; - switch (F_I960TYPE & internal_f->f_flags) - { - default: - case F_I960CORE: - machine = bfd_mach_i960_core; - break; - case F_I960KB: - machine = bfd_mach_i960_kb_sb; - break; - case F_I960MC: - machine = bfd_mach_i960_mc; - break; - case F_I960XA: - machine = bfd_mach_i960_xa; - break; - case F_I960CA: - machine = bfd_mach_i960_ca; - break; - case F_I960KA: - machine = bfd_mach_i960_ka_sa; - break; - case F_I960JX: - machine = bfd_mach_i960_jx; - break; - case F_I960HX: - machine = bfd_mach_i960_hx; - break; - } - break; -#endif -#endif #ifdef RS6000COFF_C #ifdef XCOFF64 @@ -2349,57 +2255,6 @@ break; #endif -#ifdef WE32KMAGIC - case WE32KMAGIC: - arch = bfd_arch_we32k; - break; -#endif - -#ifdef H8300MAGIC - case H8300MAGIC: - arch = bfd_arch_h8300; - machine = bfd_mach_h8300; - /* !! FIXME this probably isn't the right place for this. */ - abfd->flags |= BFD_IS_RELAXABLE; - break; -#endif - -#ifdef H8300HMAGIC - case H8300HMAGIC: - arch = bfd_arch_h8300; - machine = bfd_mach_h8300h; - /* !! FIXME this probably isn't the right place for this. */ - abfd->flags |= BFD_IS_RELAXABLE; - break; -#endif - -#ifdef H8300SMAGIC - case H8300SMAGIC: - arch = bfd_arch_h8300; - machine = bfd_mach_h8300s; - /* !! FIXME this probably isn't the right place for this. */ - abfd->flags |= BFD_IS_RELAXABLE; - break; -#endif - -#ifdef H8300HNMAGIC - case H8300HNMAGIC: - arch = bfd_arch_h8300; - machine = bfd_mach_h8300hn; - /* !! FIXME this probably isn't the right place for this. */ - abfd->flags |= BFD_IS_RELAXABLE; - break; -#endif - -#ifdef H8300SNMAGIC - case H8300SNMAGIC: - arch = bfd_arch_h8300; - machine = bfd_mach_h8300sn; - /* !! FIXME this probably isn't the right place for this. */ - abfd->flags |= BFD_IS_RELAXABLE; - break; -#endif - #ifdef SH_ARCH_MAGIC_BIG case SH_ARCH_MAGIC_BIG: case SH_ARCH_MAGIC_LITTLE: @@ -2416,12 +2271,6 @@ break; #endif -#ifdef H8500MAGIC - case H8500MAGIC: - arch = bfd_arch_h8500; - break; -#endif - #ifdef SPARCMAGIC case SPARCMAGIC: #ifdef LYNXCOFFMAGIC @@ -2463,7 +2312,7 @@ default: arch = bfd_arch_obscure; _bfd_error_handler - (_("Unrecognized TI COFF target id '0x%x'"), + (_("unrecognized TI COFF target id '0x%x'"), internal_f->f_target_id); break; } @@ -2482,12 +2331,6 @@ break; #endif -#ifdef W65MAGIC - case W65MAGIC: - arch = bfd_arch_w65; - break; -#endif - default: /* Unreadable input file type. */ arch = bfd_arch_obscure; break; @@ -2497,20 +2340,16 @@ return TRUE; } -#ifdef SYMNAME_IN_DEBUG - static bfd_boolean -symname_in_debug_hook (bfd * abfd ATTRIBUTE_UNUSED, struct internal_syment *sym) +symname_in_debug_hook (bfd *abfd ATTRIBUTE_UNUSED, + struct internal_syment *sym ATTRIBUTE_UNUSED) { +#ifdef SYMNAME_IN_DEBUG return SYMNAME_IN_DEBUG (sym) != 0; -} - #else - -#define symname_in_debug_hook \ - (bfd_boolean (*) (bfd *, struct internal_syment *)) bfd_false - + return FALSE; #endif +} #ifdef RS6000COFF_C @@ -2552,31 +2391,7 @@ } #else -#ifdef I960 - -/* We don't want to pointerize bal entries. */ - -static bfd_boolean -coff_pointerize_aux_hook (bfd *abfd ATTRIBUTE_UNUSED, - combined_entry_type *table_base ATTRIBUTE_UNUSED, - combined_entry_type *symbol, - unsigned int indaux, - combined_entry_type *aux ATTRIBUTE_UNUSED) -{ - /* Return TRUE if we don't want to pointerize this aux entry, which - is the case for the lastfirst aux entry for a C_LEAFPROC symbol. */ - return (indaux == 1 - && symbol->is_sym - && (symbol->u.syment.n_sclass == C_LEAFPROC - || symbol->u.syment.n_sclass == C_LEAFSTAT - || symbol->u.syment.n_sclass == C_LEAFEXT)); -} - -#else /* ! I960 */ - #define coff_pointerize_aux_hook 0 - -#endif /* ! I960 */ #endif /* ! RS6000COFF_C */ /* Print an aux entry. This returns TRUE if it has printed it. */ @@ -2781,7 +2596,7 @@ { bfd_set_error (bfd_error_bad_value); /* xgettext:c-format */ - _bfd_error_handler (_("%B: reloc against a non-existent" + _bfd_error_handler (_("%pB: reloc against a non-existent" " symbol index: %ld"), abfd, n.r_symndx); return FALSE; @@ -2856,32 +2671,6 @@ return TRUE; #endif -#ifdef I960ROMAGIC - case bfd_arch_i960: - - { - unsigned flags; - - *magicp = I960ROMAGIC; - - switch (bfd_get_mach (abfd)) - { - case bfd_mach_i960_core: flags = F_I960CORE; break; - case bfd_mach_i960_kb_sb: flags = F_I960KB; break; - case bfd_mach_i960_mc: flags = F_I960MC; break; - case bfd_mach_i960_xa: flags = F_I960XA; break; - case bfd_mach_i960_ca: flags = F_I960CA; break; - case bfd_mach_i960_ka_sa: flags = F_I960KA; break; - case bfd_mach_i960_jx: flags = F_I960JX; break; - case bfd_mach_i960_hx: flags = F_I960HX; break; - default: return FALSE; - } - *flagsp = flags; - return TRUE; - } - break; -#endif - #ifdef TIC30MAGIC case bfd_arch_tic30: *magicp = TIC30MAGIC; @@ -2981,57 +2770,12 @@ return TRUE; #endif -#ifdef I860MAGIC - case bfd_arch_i860: - *magicp = I860MAGIC; - return TRUE; -#endif - #ifdef IA64MAGIC case bfd_arch_ia64: *magicp = IA64MAGIC; return TRUE; #endif -#ifdef MC68MAGIC - case bfd_arch_m68k: -#ifdef APOLLOM68KMAGIC - *magicp = APOLLO_COFF_VERSION_NUMBER; -#else - /* NAMES_HAVE_UNDERSCORE may be defined by coff-u68k.c. */ -#ifdef NAMES_HAVE_UNDERSCORE - *magicp = MC68KBCSMAGIC; -#else - *magicp = MC68MAGIC; -#endif -#endif -#ifdef LYNXOS - /* Just overwrite the usual value if we're doing Lynx. */ - *magicp = LYNXCOFFMAGIC; -#endif - return TRUE; -#endif - -#ifdef MC88MAGIC - case bfd_arch_m88k: - *magicp = MC88OMAGIC; - return TRUE; -#endif - -#ifdef H8300MAGIC - case bfd_arch_h8300: - switch (bfd_get_mach (abfd)) - { - case bfd_mach_h8300: *magicp = H8300MAGIC; return TRUE; - case bfd_mach_h8300h: *magicp = H8300HMAGIC; return TRUE; - case bfd_mach_h8300s: *magicp = H8300SMAGIC; return TRUE; - case bfd_mach_h8300hn: *magicp = H8300HNMAGIC; return TRUE; - case bfd_mach_h8300sn: *magicp = H8300SNMAGIC; return TRUE; - default: break; - } - break; -#endif - #ifdef SH_ARCH_MAGIC_BIG case bfd_arch_sh: #ifdef COFF_IMAGE_WITH_PE @@ -3061,19 +2805,6 @@ return TRUE; #endif -#ifdef H8500MAGIC - case bfd_arch_h8500: - *magicp = H8500MAGIC; - return TRUE; - break; -#endif - -#ifdef WE32KMAGIC - case bfd_arch_we32k: - *magicp = WE32KMAGIC; - return TRUE; -#endif - #ifdef RS6000COFF_C case bfd_arch_rs6000: #ifndef PPCMAGIC @@ -3090,12 +2821,6 @@ return TRUE; #endif -#ifdef W65MAGIC - case bfd_arch_w65: - *magicp = W65MAGIC; - return TRUE; -#endif - default: /* Unknown architecture. */ /* Fall through to "return FALSE" below, to avoid "statement never reached" errors on the one below. */ @@ -3146,9 +2871,7 @@ /* Calculate the file position for each section. */ -#ifndef I960 #define ALIGN_SECTIONS_IN_FILE -#endif #if defined(TIC80COFF) || defined(TICOFF) #undef ALIGN_SECTIONS_IN_FILE #endif @@ -3184,7 +2907,7 @@ bfd_set_error (bfd_error_file_too_big); _bfd_error_handler /* xgettext:c-format */ - (_("%B: page size is too large (0x%x)"), abfd, page_size); + (_("%pB: page size is too large (0x%x)"), abfd, page_size); return FALSE; } } @@ -3344,7 +3067,7 @@ bfd_set_error (bfd_error_file_too_big); _bfd_error_handler /* xgettext:c-format */ - (_("%B: too many sections (%d)"), abfd, target_index); + (_("%pB: too many sections (%d)"), abfd, target_index); return FALSE; } @@ -3389,9 +3112,7 @@ #endif /* Align the sections in the file to the same boundary on - which they are aligned in virtual memory. I960 doesn't - do this (FIXME) so we can stay in sync with Intel. 960 - doesn't yet page from files... */ + which they are aligned in virtual memory. */ #ifdef ALIGN_SECTIONS_IN_FILE if ((abfd->flags & EXEC_P) != 0) { @@ -3765,7 +3486,7 @@ bfd_set_error (bfd_error_file_too_big); _bfd_error_handler /* xgettext:c-format */ - (_("%B: section %A: string table overflow at offset %ld"), + (_("%pB: section %pA: string table overflow at offset %ld"), abfd, current, (unsigned long) string_size); return FALSE; } @@ -3855,11 +3576,6 @@ else if (!strcmp (current->name, _BSS)) bss_sec = current; -#ifdef I960 - section.s_align = (current->alignment_power - ? 1 << current->alignment_power - : 0); -#endif #ifdef COFF_ENCODE_ALIGNMENT COFF_ENCODE_ALIGNMENT(section, current->alignment_power); if ((unsigned int)COFF_DECODE_ALIGNMENT(section.s_flags) @@ -3870,7 +3586,7 @@ _bfd_error_handler /* xgettext:c-format */ - (_("%B:%s section %s: alignment 2**%u not representable"), + (_("%pB:%s section %s: alignment 2**%u not representable"), abfd, warn ? " warning:" : "", current->name, current->alignment_power); if (!warn) @@ -4118,41 +3834,6 @@ internal_a.magic = TIC80_ARCH_MAGIC; #define __A_MAGIC_SET__ #endif /* TIC80 */ -#ifdef I860 - /* FIXME: What are the a.out magic numbers for the i860? */ - internal_a.magic = 0; -#define __A_MAGIC_SET__ -#endif /* I860 */ -#ifdef I960 - internal_a.magic = (magic == I960ROMAGIC ? NMAGIC : OMAGIC); -#define __A_MAGIC_SET__ -#endif /* I960 */ -#if M88 -#define __A_MAGIC_SET__ - internal_a.magic = PAGEMAGICBCS; -#endif /* M88 */ - -#if APOLLO_M68 -#define __A_MAGIC_SET__ - internal_a.magic = APOLLO_COFF_VERSION_NUMBER; -#endif - -#if defined(M68) || defined(WE32K) || defined(M68K) -#define __A_MAGIC_SET__ -#if defined(LYNXOS) - internal_a.magic = LYNXCOFFMAGIC; -#else -#if defined(TARG_AUX) - internal_a.magic = (abfd->flags & D_PAGED ? PAGEMAGICPEXECPAGED : - abfd->flags & WP_TEXT ? PAGEMAGICPEXECSWAPPED : - PAGEMAGICEXECSWAPPED); -#else -#if defined (PAGEMAGICPEXECPAGED) - internal_a.magic = PAGEMAGICPEXECPAGED; -#endif -#endif /* TARG_AUX */ -#endif /* LYNXOS */ -#endif /* M68 || WE32K || M68K */ #if defined(ARM) #define __A_MAGIC_SET__ @@ -4584,12 +4265,15 @@ bfd_boolean have_func; bfd_boolean ret = TRUE; + if (asect->lineno_count == 0) + return TRUE; + BFD_ASSERT (asect->lineno == NULL); if (asect->lineno_count > asect->size) { _bfd_error_handler - (_("%B: warning: line number count (%#lx) exceeds section size (%#lx)"), + (_("%pB: warning: line number count (%#lx) exceeds section size (%#lx)"), abfd, (unsigned long) asect->lineno_count, (unsigned long) asect->size); return FALSE; } @@ -4604,7 +4288,7 @@ if (native_lineno == NULL) { _bfd_error_handler - (_("%B: warning: line number table read failed"), abfd); + (_("%pB: warning: line number table read failed"), abfd); bfd_release (abfd, lineno_cache); return FALSE; } @@ -4638,7 +4322,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: warning: illegal symbol index 0x%lx in line number entry %d"), + (_("%pB: warning: illegal symbol index 0x%lx in line number entry %d"), abfd, symndx, counter); cache_ptr->line_number = -1; ret = FALSE; @@ -4652,7 +4336,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: warning: illegal symbol index 0x%lx in line number entry %d"), + (_("%pB: warning: illegal symbol index 0x%lx in line number entry %d"), abfd, symndx, counter); cache_ptr->line_number = -1; ret = FALSE; @@ -4666,7 +4350,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: warning: illegal symbol in line number entry %d"), + (_("%pB: warning: illegal symbol in line number entry %d"), abfd, counter); cache_ptr->line_number = -1; ret = FALSE; @@ -4679,7 +4363,7 @@ if (sym->lineno != NULL) _bfd_error_handler /* xgettext:c-format */ - (_("%B: warning: duplicate line number information for `%s'"), + (_("%pB: warning: duplicate line number information for `%s'"), abfd, bfd_asymbol_name (&sym->symbol)); sym->lineno = cache_ptr; @@ -4820,11 +4504,6 @@ switch (src->u.syment.n_sclass) { -#ifdef I960 - case C_LEAFEXT: - /* Fall through to next case. */ -#endif - case C_EXT: case C_WEAKEXT: #if defined ARM @@ -4918,9 +4597,6 @@ break; case C_STAT: /* Static. */ -#ifdef I960 - case C_LEAFSTAT: /* Static leaf procedure. */ -#endif #if defined ARM case C_THUMBSTAT: /* Thumb static. */ case C_THUMBLABEL: /* Thumb label. */ @@ -4958,11 +4634,6 @@ case C_REGPARM: /* Register parameter. */ case C_REG: /* register variable. */ /* C_AUTOARG conflicts with TI COFF C_UEXT. */ -#if !defined (TIC80COFF) && !defined (TICOFF) -#ifdef C_AUTOARG - case C_AUTOARG: /* 960-specific storage class. */ -#endif -#endif case C_TPDEF: /* Type definition. */ case C_ARG: case C_AUTO: /* Automatic variable. */ @@ -5100,7 +4771,7 @@ default: _bfd_error_handler /* xgettext:c-format */ - (_("%B: Unrecognized storage class %d for %s symbol `%s'"), + (_("%pB: unrecognized storage class %d for %s symbol `%s'"), abfd, src->u.syment.n_sclass, dst->symbol.section->name, dst->symbol.name); ret = FALSE; @@ -5158,9 +4829,6 @@ { case C_EXT: case C_WEAKEXT: -#ifdef I960 - case C_LEAFEXT: -#endif #ifdef ARM case C_THUMBEXT: case C_THUMBEXTFUNC: @@ -5233,7 +4901,7 @@ _bfd_error_handler /* xgettext:c-format */ - (_("warning: %B: local symbol `%s' has no section"), + (_("warning: %pB: local symbol `%s' has no section"), abfd, _bfd_coff_internal_syment_name (abfd, syment, buf)); } @@ -5262,9 +4930,8 @@ o The reloc index is turned into a pointer to a howto structure, in a back end specific way. For instance, the 386 - and 960 use the @code{r_type} to directly produce an index - into a howto table vector; the 88k subtracts a number from the - @code{r_type} field and creates an addend field. + uses the @code{r_type} to directly produce an index + into a howto table vector. */ #ifndef CALC_ADDEND @@ -5340,7 +5007,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: warning: illegal symbol index %ld in relocs"), + (_("%pB: warning: illegal symbol index %ld in relocs"), abfd, dst.r_symndx); cache_ptr->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; ptr = NULL; @@ -5380,8 +5047,8 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: illegal relocation type %d at address %#Lx"), - abfd, dst.r_type, dst.r_vaddr); + (_("%pB: illegal relocation type %d at address %#" PRIx64), + abfd, dst.r_type, (uint64_t) dst.r_vaddr); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -5864,6 +5531,9 @@ AUXENT_BIGOBJ *ext = (AUXENT_BIGOBJ *) ext1; union internal_auxent *in = (union internal_auxent *) in1; + /* Make sure that all fields in the aux structure are + initialised. */ + memset (in, 0, sizeof * in); switch (in_class) { case C_FILE: @@ -6024,7 +5694,7 @@ #endif #ifndef coff_bfd_is_target_special_symbol -#define coff_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) +#define coff_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false #endif #ifndef coff_read_minisymbols @@ -6082,6 +5752,10 @@ #define coff_bfd_define_common_symbol bfd_generic_define_common_symbol #endif +#ifndef coff_bfd_link_hide_symbol +#define coff_bfd_link_hide_symbol _bfd_generic_link_hide_symbol +#endif + #ifndef coff_bfd_define_start_stop #define coff_bfd_define_start_stop bfd_generic_define_start_stop #endif @@ -6113,14 +5787,24 @@ 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_check_format. */ \ + _bfd_dummy_target, \ + coff_object_p, \ + bfd_generic_archive_p, \ + _bfd_dummy_target \ + }, \ + { /* bfd_set_format. */ \ + _bfd_bool_bfd_false_error, \ + coff_mkobject, \ + _bfd_generic_mkarchive, \ + _bfd_bool_bfd_false_error \ + }, \ + { /* bfd_write_contents. */ \ + _bfd_bool_bfd_false_error, \ + coff_write_object_contents, \ + _bfd_write_archive_contents, \ + _bfd_bool_bfd_false_error \ + }, \ \ BFD_JUMP_TABLE_GENERIC (coff), \ BFD_JUMP_TABLE_COPY (coff), \ @@ -6164,14 +5848,24 @@ 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_check_format. */ \ + _bfd_dummy_target, \ + coff_object_p, \ + bfd_generic_archive_p, \ + _bfd_dummy_target \ + }, \ + { /* bfd_set_format. */ \ + _bfd_bool_bfd_false_error, \ + coff_mkobject, \ + _bfd_generic_mkarchive, \ + _bfd_bool_bfd_false_error \ + }, \ + { /* bfd_write_contents. */ \ + _bfd_bool_bfd_false_error, \ + coff_write_object_contents, \ + _bfd_write_archive_contents, \ + _bfd_bool_bfd_false_error \ + }, \ \ BFD_JUMP_TABLE_GENERIC (coff), \ BFD_JUMP_TABLE_COPY (coff), \ @@ -6213,14 +5907,25 @@ bfd_getl64, bfd_getl_signed_64, bfd_putl64, \ bfd_getl32, bfd_getl_signed_32, bfd_putl32, \ bfd_getl16, bfd_getl_signed_16, bfd_putl16, \ - /* 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_check_format. */ \ + _bfd_dummy_target, \ + coff_object_p, \ + bfd_generic_archive_p, \ + _bfd_dummy_target \ + }, \ + { /* bfd_set_format. */ \ + _bfd_bool_bfd_false_error, \ + coff_mkobject, \ + _bfd_generic_mkarchive, \ + _bfd_bool_bfd_false_error \ + }, \ + { /* bfd_write_contents. */ \ + _bfd_bool_bfd_false_error, \ + coff_write_object_contents, \ + _bfd_write_archive_contents, \ + _bfd_bool_bfd_false_error \ + }, \ \ BFD_JUMP_TABLE_GENERIC (coff), \ BFD_JUMP_TABLE_COPY (coff), \ diff -Nru gdb-8.1/bfd/coffgen.c gdb-8.2/bfd/coffgen.c --- gdb-8.1/bfd/coffgen.c 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/bfd/coffgen.c 2018-09-05 07:44:28.000000000 +0000 @@ -175,7 +175,7 @@ { _bfd_error_handler /* xgettext: c-format */ - (_("%B: unable to initialize compress status for section %s"), + (_("%pB: unable to initialize compress status for section %s"), abfd, name); return FALSE; } @@ -199,7 +199,7 @@ { _bfd_error_handler /* xgettext: c-format */ - (_("%B: unable to initialize decompress status for section %s"), + (_("%pB: unable to initialize decompress status for section %s"), abfd, name); return FALSE; } @@ -835,7 +835,7 @@ for (i = 0; i < s->u.syment.n_numaux; i++) { combined_entry_type *a = s + i + 1; - + BFD_ASSERT (! a->is_sym); if (a->fix_tag) { @@ -1547,7 +1547,9 @@ if ((ISFCN (type) || ISTAG (n_sclass) || n_sclass == C_BLOCK || n_sclass == C_FCN) - && auxent->u.auxent.x_sym.x_fcnary.x_fcn.x_endndx.l > 0) + && auxent->u.auxent.x_sym.x_fcnary.x_fcn.x_endndx.l > 0 + && auxent->u.auxent.x_sym.x_fcnary.x_fcn.x_endndx.l + < (long) obj_raw_syment_count (abfd)) { auxent->u.auxent.x_sym.x_fcnary.x_fcn.x_endndx.p = table_base + auxent->u.auxent.x_sym.x_fcnary.x_fcn.x_endndx.l; @@ -1555,7 +1557,8 @@ } /* A negative tagndx is meaningless, but the SCO 3.2v4 cc can generate one, so we must be careful to ignore it. */ - if (auxent->u.auxent.x_sym.x_tagndx.l > 0) + if ((unsigned long) auxent->u.auxent.x_sym.x_tagndx.l + < obj_raw_syment_count (abfd)) { auxent->u.auxent.x_sym.x_tagndx.p = table_base + auxent->u.auxent.x_sym.x_tagndx.l; @@ -1646,8 +1649,8 @@ && size > bfd_get_file_size (abfd))) { - _bfd_error_handler (_("%B: corrupt symbol count: %#Lx"), - abfd, obj_raw_syment_count (abfd)); + _bfd_error_handler (_("%pB: corrupt symbol count: %#" PRIx64 ""), + abfd, (uint64_t) obj_raw_syment_count (abfd)); return FALSE; } @@ -1655,8 +1658,10 @@ if (syms == NULL) { /* PR 21013: Provide an error message when the alloc fails. */ - _bfd_error_handler (_("%B: not enough memory to allocate space for %#Lx symbols of size %#Lx"), - abfd, obj_raw_syment_count (abfd), symesz); + _bfd_error_handler (_("%pB: not enough memory to allocate space " + "for %#" PRIx64 " symbols of size %#" PRIx64), + abfd, (uint64_t) obj_raw_syment_count (abfd), + (uint64_t) symesz); return FALSE; } @@ -1722,7 +1727,7 @@ { _bfd_error_handler /* xgettext: c-format */ - (_("%B: bad string table size %Lu"), abfd, strsize); + (_("%pB: bad string table size %" PRIu64), abfd, (uint64_t) strsize); bfd_set_error (bfd_error_bad_value); return NULL; } @@ -3021,7 +3026,7 @@ if (info->print_gc_sections && o->size != 0) /* xgettext: c-format */ - _bfd_error_handler (_("Removing unused section '%A' in file '%B'"), + _bfd_error_handler (_("removing unused section '%pA' in file '%pB'"), o, sub); #if 0 @@ -3098,7 +3103,7 @@ if (!bed->can_gc_sections || !is_coff_hash_table (info->hash)) { - _bfd_error_handler(_("Warning: gc-sections option ignored")); + _bfd_error_handler(_("warning: gc-sections option ignored")); return TRUE; } #endif diff -Nru gdb-8.1/bfd/coff-h8300.c gdb-8.2/bfd/coff-h8300.c --- gdb-8.1/bfd/coff-h8300.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff-h8300.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,1387 +0,0 @@ -/* BFD back-end for Renesas H8/300 COFF binaries. - Copyright (C) 1990-2018 Free Software Foundation, Inc. - Written by Steve Chamberlain, . - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "bfdlink.h" -#include "genlink.h" -#include "coff/h8300.h" -#include "coff/internal.h" -#include "libcoff.h" -#include "libiberty.h" - -#define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (1) - -/* We derive a hash table from the basic BFD hash table to - hold entries in the function vector. Aside from the - info stored by the basic hash table, we need the offset - of a particular entry within the hash table as well as - the offset where we'll add the next entry. */ - -struct funcvec_hash_entry - { - /* The basic hash table entry. */ - struct bfd_hash_entry root; - - /* The offset within the vectors section where - this entry lives. */ - bfd_vma offset; - }; - -struct funcvec_hash_table - { - /* The basic hash table. */ - struct bfd_hash_table root; - - bfd *abfd; - - /* Offset at which we'll add the next entry. */ - unsigned int offset; - }; - - -/* To lookup a value in the function vector hash table. */ -#define funcvec_hash_lookup(table, string, create, copy) \ - ((struct funcvec_hash_entry *) \ - bfd_hash_lookup (&(table)->root, (string), (create), (copy))) - -/* The derived h8300 COFF linker table. Note it's derived from - the generic linker hash table, not the COFF backend linker hash - table! We use this to attach additional data structures we - need while linking on the h8300. */ -struct h8300_coff_link_hash_table { - /* The main hash table. */ - struct generic_link_hash_table root; - - /* Section for the vectors table. This gets attached to a - random input bfd, we keep it here for easy access. */ - asection *vectors_sec; - - /* Hash table of the functions we need to enter into the function - vector. */ - struct funcvec_hash_table *funcvec_hash_table; -}; - -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. */ - -#define h8300_coff_hash_table(p) \ - ((struct h8300_coff_link_hash_table *) ((coff_hash_table (p)))) - -/* Initialize fields within a funcvec hash table entry. Called whenever - a new entry is added to the funcvec hash table. */ - -static struct bfd_hash_entry * -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; - - ret = (struct funcvec_hash_entry *) entry; - table = (struct funcvec_hash_table *) gen_table; - - /* Allocate the structure if it has not already been allocated by a - subclass. */ - if (ret == NULL) - ret = ((struct funcvec_hash_entry *) - bfd_hash_allocate (gen_table, - sizeof (struct funcvec_hash_entry))); - if (ret == NULL) - return NULL; - - /* Call the allocation method of the superclass. */ - ret = ((struct funcvec_hash_entry *) - bfd_hash_newfunc ((struct bfd_hash_entry *) ret, gen_table, string)); - - if (ret == NULL) - return NULL; - - /* Note where this entry will reside in the function vector table. */ - ret->offset = table->offset; - - /* Bump the offset at which we store entries in the function - vector. We'd like to bump up the size of the vectors section, - but it's not easily available here. */ - switch (bfd_get_mach (table->abfd)) - { - case bfd_mach_h8300: - case bfd_mach_h8300hn: - case bfd_mach_h8300sn: - table->offset += 2; - break; - case bfd_mach_h8300h: - case bfd_mach_h8300s: - table->offset += 4; - break; - default: - return NULL; - } - - /* Everything went OK. */ - return (struct bfd_hash_entry *) ret; -} - -/* Initialize the function vector hash table. */ - -static bfd_boolean -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 *), - unsigned int entsize) -{ - /* Initialize our local fields, then call the generic initialization - routine. */ - table->offset = 0; - table->abfd = abfd; - return (bfd_hash_table_init (&table->root, newfunc, entsize)); -} - -/* Create the derived linker hash table. We use a derived hash table - basically to hold "static" information during an H8/300 coff link - without using static variables. */ - -static struct bfd_link_hash_table * -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); - - ret = (struct h8300_coff_link_hash_table *) bfd_zmalloc (amt); - if (ret == NULL) - return NULL; - if (!_bfd_link_hash_table_init (&ret->root.root, abfd, - _bfd_generic_link_hash_newfunc, - sizeof (struct generic_link_hash_entry))) - { - free (ret); - return NULL; - } - - return &ret->root.root; -} - -/* Special handling for H8/300 relocs. - We only come here for pcrel stuff and return normally if not an -r link. - When doing -r, we can't do any arithmetic for the pcrel stuff, because - the code in reloc.c assumes that we can manipulate the targets of - the pcrel branches. This isn't so, since the H8/300 can do relaxing, - which means that the gap after the instruction may not be enough to - contain the offset required for the branch, so we have to use only - the addend until the final link. */ - -static bfd_reloc_status_type -special (bfd * abfd ATTRIBUTE_UNUSED, - arelent * reloc_entry ATTRIBUTE_UNUSED, - asymbol * symbol ATTRIBUTE_UNUSED, - void * 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; - - /* Adjust the reloc address to that in the output section. */ - reloc_entry->address += input_section->output_offset; - return bfd_reloc_ok; -} - -static reloc_howto_type howto_table[] = -{ - HOWTO (R_RELBYTE, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, special, "8", FALSE, 0x000000ff, 0x000000ff, FALSE), - HOWTO (R_RELWORD, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, special, "16", FALSE, 0x0000ffff, 0x0000ffff, FALSE), - HOWTO (R_RELLONG, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, special, "32", FALSE, 0xffffffff, 0xffffffff, FALSE), - HOWTO (R_PCRBYTE, 0, 0, 8, TRUE, 0, complain_overflow_signed, special, "DISP8", FALSE, 0x000000ff, 0x000000ff, TRUE), - HOWTO (R_PCRWORD, 0, 1, 16, TRUE, 0, complain_overflow_signed, special, "DISP16", FALSE, 0x0000ffff, 0x0000ffff, TRUE), - HOWTO (R_PCRLONG, 0, 2, 32, TRUE, 0, complain_overflow_signed, special, "DISP32", FALSE, 0xffffffff, 0xffffffff, TRUE), - HOWTO (R_MOV16B1, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, special, "relaxable mov.b:16", FALSE, 0x0000ffff, 0x0000ffff, FALSE), - HOWTO (R_MOV16B2, 0, 1, 8, FALSE, 0, complain_overflow_bitfield, special, "relaxed mov.b:16", FALSE, 0x000000ff, 0x000000ff, FALSE), - HOWTO (R_JMP1, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, special, "16/pcrel", FALSE, 0x0000ffff, 0x0000ffff, FALSE), - HOWTO (R_JMP2, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, special, "pcrecl/16", FALSE, 0x000000ff, 0x000000ff, FALSE), - HOWTO (R_JMPL1, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, special, "24/pcrell", FALSE, 0x00ffffff, 0x00ffffff, FALSE), - HOWTO (R_JMPL2, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, special, "pc8/24", FALSE, 0x000000ff, 0x000000ff, FALSE), - HOWTO (R_MOV24B1, 0, 1, 32, FALSE, 0, complain_overflow_bitfield, special, "relaxable mov.b:24", FALSE, 0xffffffff, 0xffffffff, FALSE), - HOWTO (R_MOV24B2, 0, 1, 8, FALSE, 0, complain_overflow_bitfield, special, "relaxed mov.b:24", FALSE, 0x0000ffff, 0x0000ffff, FALSE), - - /* An indirect reference to a function. This causes the function's address - to be added to the function vector in lo-mem and puts the address of - the function vector's entry in the jsr instruction. */ - HOWTO (R_MEM_INDIRECT, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, special, "8/indirect", FALSE, 0x000000ff, 0x000000ff, FALSE), - - /* Internal reloc for relaxing. This is created when a 16-bit pc-relative - branch is turned into an 8-bit pc-relative branch. */ - HOWTO (R_PCRWORD_B, 0, 0, 8, TRUE, 0, complain_overflow_bitfield, special, "relaxed bCC:16", FALSE, 0x000000ff, 0x000000ff, FALSE), - - HOWTO (R_MOVL1, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,special, "32/24 relaxable move", FALSE, 0xffffffff, 0xffffffff, FALSE), - - HOWTO (R_MOVL2, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, special, "32/24 relaxed move", FALSE, 0x0000ffff, 0x0000ffff, FALSE), - - HOWTO (R_BCC_INV, 0, 0, 8, TRUE, 0, complain_overflow_signed, special, "DISP8 inverted", FALSE, 0x000000ff, 0x000000ff, TRUE), - - HOWTO (R_JMP_DEL, 0, 0, 8, TRUE, 0, complain_overflow_signed, special, "Deleted jump", FALSE, 0x000000ff, 0x000000ff, TRUE), -}; - -/* Turn a howto into a reloc number. */ - -#define SELECT_RELOC(x,howto) \ - { x.r_type = select_reloc (howto); } - -#define BADMAG(x) (H8300BADMAG (x) && H8300HBADMAG (x) && H8300SBADMAG (x) \ - && H8300HNBADMAG(x) && H8300SNBADMAG(x)) -#define H8300 1 /* Customize coffcode.h */ -#define __A_MAGIC_SET__ - -/* Code to swap in the reloc. */ -#define SWAP_IN_RELOC_OFFSET H_GET_32 -#define SWAP_OUT_RELOC_OFFSET H_PUT_32 -#define SWAP_OUT_RELOC_EXTRA(abfd, src, dst) \ - dst->r_stuff[0] = 'S'; \ - dst->r_stuff[1] = 'C'; - -static int -select_reloc (reloc_howto_type *howto) -{ - return howto->type; -} - -/* Code to turn a r_type into a howto ptr, uses the above howto table. */ - -static void -rtype2howto (arelent *internal, struct internal_reloc *dst) -{ - switch (dst->r_type) - { - case R_RELBYTE: - internal->howto = howto_table + 0; - break; - case R_RELWORD: - internal->howto = howto_table + 1; - break; - case R_RELLONG: - internal->howto = howto_table + 2; - break; - case R_PCRBYTE: - internal->howto = howto_table + 3; - break; - case R_PCRWORD: - internal->howto = howto_table + 4; - break; - case R_PCRLONG: - internal->howto = howto_table + 5; - break; - case R_MOV16B1: - internal->howto = howto_table + 6; - break; - case R_MOV16B2: - internal->howto = howto_table + 7; - break; - case R_JMP1: - internal->howto = howto_table + 8; - break; - case R_JMP2: - internal->howto = howto_table + 9; - break; - case R_JMPL1: - internal->howto = howto_table + 10; - break; - case R_JMPL2: - internal->howto = howto_table + 11; - break; - case R_MOV24B1: - internal->howto = howto_table + 12; - break; - case R_MOV24B2: - internal->howto = howto_table + 13; - break; - case R_MEM_INDIRECT: - internal->howto = howto_table + 14; - break; - case R_PCRWORD_B: - internal->howto = howto_table + 15; - break; - case R_MOVL1: - internal->howto = howto_table + 16; - break; - case R_MOVL2: - internal->howto = howto_table + 17; - break; - case R_BCC_INV: - internal->howto = howto_table + 18; - break; - case R_JMP_DEL: - internal->howto = howto_table + 19; - break; - default: - internal->howto = NULL; - break; - } -} - -#define RTYPE2HOWTO(internal, relocentry) rtype2howto (internal, relocentry) - -/* Perform any necessary magic to the addend in a reloc entry. */ - -#define CALC_ADDEND(abfd, symbol, ext_reloc, cache_ptr) \ - cache_ptr->addend = ext_reloc.r_offset; - -#define RELOC_PROCESSING(relent,reloc,symbols,abfd,section) \ - reloc_processing (relent, reloc, symbols, abfd, section) - -static void -reloc_processing (arelent *relent, struct internal_reloc *reloc, - asymbol **symbols, bfd *abfd, asection *section) -{ - relent->address = reloc->r_vaddr; - rtype2howto (relent, reloc); - - if (((int) reloc->r_symndx) > 0) - relent->sym_ptr_ptr = symbols + obj_convert (abfd)[reloc->r_symndx]; - else - relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; - - relent->addend = reloc->r_offset; - relent->address -= section->vma; -} - -static bfd_boolean -h8300_symbol_address_p (bfd *abfd, asection *input_section, bfd_vma address) -{ - asymbol **s; - - s = _bfd_generic_link_get_symbols (abfd); - BFD_ASSERT (s != (asymbol **) NULL); - - /* Search all the symbols for one in INPUT_SECTION with - address ADDRESS. */ - while (*s) - { - asymbol *p = *s; - - if (p->section == input_section - && (input_section->output_section->vma - + input_section->output_offset - + p->value) == address) - return TRUE; - s++; - } - return FALSE; -} - -/* If RELOC represents a relaxable instruction/reloc, change it into - the relaxed reloc, notify the linker that symbol addresses - have changed (bfd_perform_slip) and return how much the current - section has shrunk by. - - FIXME: Much of this code has knowledge of the ordering of entries - in the howto table. This needs to be fixed. */ - -static int -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; - bfd_vma gap; - static asection *last_input_section = NULL; - static arelent *last_reloc = NULL; - - /* The address of the thing to be relocated will have moved back by - the size of the shrink - but we don't change reloc->address here, - since we need it to know where the relocation lives in the source - uncooked section. */ - bfd_vma address = reloc->address - shrink; - - if (input_section != last_input_section) - last_reloc = NULL; - - /* Only examine the relocs which might be relaxable. */ - switch (reloc->howto->type) - { - /* This is the 16-/24-bit absolute branch which could become an - 8-bit pc-relative branch. */ - case R_JMP1: - case R_JMPL1: - /* Get the address of the target of this branch. */ - value = bfd_coff_reloc16_get_value (reloc, link_info, input_section); - - /* Get the address of the next instruction (not the reloc). */ - dot = (input_section->output_section->vma - + input_section->output_offset + address); - - /* Adjust for R_JMP1 vs R_JMPL1. */ - dot += (reloc->howto->type == R_JMP1 ? 1 : 2); - - /* Compute the distance from this insn to the branch target. */ - gap = value - dot; - - /* If the distance is within -128..+128 inclusive, then we can relax - this jump. +128 is valid since the target will move two bytes - closer if we do relax this branch. */ - if ((int) gap >= -128 && (int) gap <= 128) - { - bfd_byte code; - - if (!bfd_get_section_contents (abfd, input_section, & code, - reloc->address, 1)) - break; - code = bfd_get_8 (abfd, & code); - - /* It's possible we may be able to eliminate this branch entirely; - if the previous instruction is a branch around this instruction, - and there's no label at this instruction, then we can reverse - the condition on the previous branch and eliminate this jump. - - original: new: - bCC lab1 bCC' lab2 - jmp lab2 - lab1: lab1: - - This saves 4 bytes instead of two, and should be relatively - common. - - Only perform this optimisation for jumps (code 0x5a) not - subroutine calls, as otherwise it could transform: - - mov.w r0,r0 - beq .L1 - jsr @_bar - .L1: rts - _bar: rts - into: - mov.w r0,r0 - bne _bar - rts - _bar: rts - - which changes the call (jsr) into a branch (bne). */ - if (code == 0x5a - && gap <= 126 - && last_reloc - && last_reloc->howto->type == R_PCRBYTE) - { - bfd_vma last_value; - last_value = bfd_coff_reloc16_get_value (last_reloc, link_info, - input_section) + 1; - - if (last_value == dot + 2 - && last_reloc->address + 1 == reloc->address - && !h8300_symbol_address_p (abfd, input_section, dot - 2)) - { - reloc->howto = howto_table + 19; - last_reloc->howto = howto_table + 18; - last_reloc->sym_ptr_ptr = reloc->sym_ptr_ptr; - last_reloc->addend = reloc->addend; - shrink += 4; - bfd_perform_slip (abfd, 4, input_section, address); - break; - } - } - - /* Change the reloc type. */ - reloc->howto = reloc->howto + 1; - - /* This shrinks this section by two bytes. */ - shrink += 2; - bfd_perform_slip (abfd, 2, input_section, address); - } - break; - - /* This is the 16-bit pc-relative branch which could become an 8-bit - pc-relative branch. */ - case R_PCRWORD: - /* Get the address of the target of this branch, add one to the value - because the addend field in PCrel jumps is off by -1. */ - value = bfd_coff_reloc16_get_value (reloc, link_info, input_section) + 1; - - /* Get the address of the next instruction if we were to relax. */ - dot = input_section->output_section->vma + - input_section->output_offset + address; - - /* Compute the distance from this insn to the branch target. */ - gap = value - dot; - - /* If the distance is within -128..+128 inclusive, then we can relax - this jump. +128 is valid since the target will move two bytes - closer if we do relax this branch. */ - if ((int) gap >= -128 && (int) gap <= 128) - { - /* Change the reloc type. */ - reloc->howto = howto_table + 15; - - /* This shrinks this section by two bytes. */ - shrink += 2; - bfd_perform_slip (abfd, 2, input_section, address); - } - break; - - /* This is a 16-bit absolute address in a mov.b insn, which can - become an 8-bit absolute address if it's in the right range. */ - 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); - - /* 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; - - /* This shrinks this section by two bytes. */ - shrink += 2; - bfd_perform_slip (abfd, 2, input_section, address); - } - break; - - /* Similarly for a 24-bit absolute address in a mov.b. Note that - if we can't relax this into an 8-bit absolute, we'll fall through - and try to relax it into a 16-bit absolute. */ - 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); - - if (value >= 0xffffff00u) - { - /* Change the reloc type. */ - reloc->howto = reloc->howto + 1; - - /* This shrinks this section by four bytes. */ - shrink += 4; - bfd_perform_slip (abfd, 4, input_section, address); - - /* Done with this reloc. */ - break; - } - /* Fall through. */ - - /* This is a 24-/32-bit absolute address in a mov insn, which can - become an 16-bit absolute address if it's in the right range. */ - 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 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; - - /* This shrinks this section by two bytes. */ - shrink += 2; - bfd_perform_slip (abfd, 2, input_section, address); - } - break; - - /* No other reloc types represent relaxing opportunities. */ - default: - break; - } - - last_reloc = reloc; - last_input_section = input_section; - return shrink; -} - -/* Handle relocations for the H8/300, including relocs for relaxed - instructions. - - FIXME: Not all relocations check for overflow! */ - -static void -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; - asection *input_section = link_order->u.indirect.section; - bfd_vma value; - bfd_vma dot; - int gap, tmp; - unsigned char temp_code; - - switch (reloc->howto->type) - { - /* Generic 8-bit pc-relative relocation. */ - case R_PCRBYTE: - /* Get the address of the target of this branch. */ - value = bfd_coff_reloc16_get_value (reloc, link_info, input_section); - - dot = (input_section->output_offset - + dst_address - + link_order->u.indirect.section->output_section->vma); - - gap = value - dot; - - /* Sanity check. */ - if (gap < -128 || gap > 126) - (*link_info->callbacks->reloc_overflow) - (link_info, NULL, bfd_asymbol_name (*reloc->sym_ptr_ptr), - reloc->howto->name, reloc->addend, input_section->owner, - input_section, reloc->address); - - /* Everything looks OK. Apply the relocation and update the - src/dst address appropriately. */ - bfd_put_8 (abfd, gap, data + dst_address); - dst_address++; - src_address++; - - /* All done. */ - break; - - /* Generic 16-bit pc-relative relocation. */ - case R_PCRWORD: - /* Get the address of the target of this branch. */ - value = bfd_coff_reloc16_get_value (reloc, link_info, input_section); - - /* Get the address of the instruction (not the reloc). */ - dot = (input_section->output_offset - + dst_address - + link_order->u.indirect.section->output_section->vma + 1); - - gap = value - dot; - - /* Sanity check. */ - if (gap > 32766 || gap < -32768) - (*link_info->callbacks->reloc_overflow) - (link_info, NULL, bfd_asymbol_name (*reloc->sym_ptr_ptr), - reloc->howto->name, reloc->addend, input_section->owner, - input_section, reloc->address); - - /* Everything looks OK. Apply the relocation and update the - src/dst address appropriately. */ - bfd_put_16 (abfd, (bfd_vma) gap, data + dst_address); - dst_address += 2; - src_address += 2; - - /* All done. */ - break; - - /* Generic 8-bit absolute relocation. */ - case R_RELBYTE: - /* Get the address of the object referenced by this insn. */ - value = bfd_coff_reloc16_get_value (reloc, link_info, input_section); - - bfd_put_8 (abfd, value & 0xff, data + dst_address); - dst_address += 1; - src_address += 1; - - /* All done. */ - break; - - /* Various simple 16-bit absolute relocations. */ - case R_MOV16B1: - case R_JMP1: - case R_RELWORD: - value = bfd_coff_reloc16_get_value (reloc, link_info, input_section); - bfd_put_16 (abfd, value, data + dst_address); - dst_address += 2; - src_address += 2; - break; - - /* Various simple 24-/32-bit absolute relocations. */ - case R_MOV24B1: - case R_MOVL1: - case R_RELLONG: - /* Get the address of the target of this branch. */ - value = bfd_coff_reloc16_get_value (reloc, link_info, input_section); - bfd_put_32 (abfd, value, data + dst_address); - dst_address += 4; - src_address += 4; - break; - - /* Another 24-/32-bit absolute relocation. */ - case R_JMPL1: - /* Get the address of the target of this branch. */ - value = bfd_coff_reloc16_get_value (reloc, link_info, input_section); - - value = ((value & 0x00ffffff) - | (bfd_get_32 (abfd, data + src_address) & 0xff000000)); - bfd_put_32 (abfd, value, data + dst_address); - dst_address += 4; - src_address += 4; - break; - - /* This is a 24-/32-bit absolute address in one of the following - instructions: - - "band", "bclr", "biand", "bild", "bior", "bist", "bixor", - "bld", "bnot", "bor", "bset", "bst", "btst", "bxor", "ldc.w", - "stc.w" and "mov.[bwl]" - - We may relax this into an 16-bit absolute address if it's in - the right range. */ - 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 >= 0xffff8000u) - { - /* Insert the 16-bit value into the proper location. */ - bfd_put_16 (abfd, value, data + dst_address); - - /* Fix the opcode. For all the instructions that belong to - this relaxation, we simply need to turn off bit 0x20 in - the previous byte. */ - data[dst_address - 1] &= ~0x20; - dst_address += 2; - src_address += 4; - } - else - (*link_info->callbacks->reloc_overflow) - (link_info, NULL, bfd_asymbol_name (*reloc->sym_ptr_ptr), - reloc->howto->name, reloc->addend, input_section->owner, - input_section, reloc->address); - break; - - /* A 16-bit absolute branch that is now an 8-bit pc-relative branch. */ - case R_JMP2: - /* Get the address of the target of this branch. */ - value = bfd_coff_reloc16_get_value (reloc, link_info, input_section); - - /* Get the address of the next instruction. */ - dot = (input_section->output_offset - + dst_address - + link_order->u.indirect.section->output_section->vma + 1); - - gap = value - dot; - - /* Sanity check. */ - if (gap < -128 || gap > 126) - (*link_info->callbacks->reloc_overflow) - (link_info, NULL, bfd_asymbol_name (*reloc->sym_ptr_ptr), - reloc->howto->name, reloc->addend, input_section->owner, - input_section, reloc->address); - - /* Now fix the instruction itself. */ - switch (data[dst_address - 1]) - { - case 0x5e: - /* jsr -> bsr */ - bfd_put_8 (abfd, 0x55, data + dst_address - 1); - break; - case 0x5a: - /* jmp -> bra */ - bfd_put_8 (abfd, 0x40, data + dst_address - 1); - break; - - default: - abort (); - } - - /* Write out the 8-bit value. */ - bfd_put_8 (abfd, gap, data + dst_address); - - dst_address += 1; - src_address += 3; - - break; - - /* A 16-bit pc-relative branch that is now an 8-bit pc-relative branch. */ - case R_PCRWORD_B: - /* Get the address of the target of this branch. */ - value = bfd_coff_reloc16_get_value (reloc, link_info, input_section); - - /* Get the address of the instruction (not the reloc). */ - dot = (input_section->output_offset - + dst_address - + link_order->u.indirect.section->output_section->vma - 1); - - gap = value - dot; - - /* Sanity check. */ - if (gap < -128 || gap > 126) - (*link_info->callbacks->reloc_overflow) - (link_info, NULL, bfd_asymbol_name (*reloc->sym_ptr_ptr), - reloc->howto->name, reloc->addend, input_section->owner, - input_section, reloc->address); - - /* Now fix the instruction. */ - switch (data[dst_address - 2]) - { - case 0x58: - /* bCC:16 -> bCC:8 */ - /* Get the second byte of the original insn, which contains - the condition code. */ - tmp = data[dst_address - 1]; - - /* Compute the fisrt byte of the relaxed instruction. The - original sequence 0x58 0xX0 is relaxed to 0x4X, where X - represents the condition code. */ - tmp &= 0xf0; - tmp >>= 4; - tmp |= 0x40; - - /* Write it. */ - bfd_put_8 (abfd, tmp, data + dst_address - 2); - break; - - case 0x5c: - /* bsr:16 -> bsr:8 */ - bfd_put_8 (abfd, 0x55, data + dst_address - 2); - break; - - default: - abort (); - } - - /* Output the target. */ - bfd_put_8 (abfd, gap, data + dst_address - 1); - - /* We don't advance dst_address -- the 8-bit reloc is applied at - dst_address - 1, so the next insn should begin at dst_address. */ - src_address += 2; - - break; - - /* Similarly for a 24-bit absolute that is now 8 bits. */ - case R_JMPL2: - /* Get the address of the target of this branch. */ - value = bfd_coff_reloc16_get_value (reloc, link_info, input_section); - - /* Get the address of the instruction (not the reloc). */ - dot = (input_section->output_offset - + dst_address - + link_order->u.indirect.section->output_section->vma + 2); - - gap = value - dot; - - /* Fix the instruction. */ - switch (data[src_address]) - { - case 0x5e: - /* jsr -> bsr */ - bfd_put_8 (abfd, 0x55, data + dst_address); - break; - case 0x5a: - /* jmp ->bra */ - bfd_put_8 (abfd, 0x40, data + dst_address); - break; - default: - abort (); - } - - bfd_put_8 (abfd, gap, data + dst_address + 1); - dst_address += 2; - src_address += 4; - - break; - - /* This is a 16-bit absolute address in one of the following - instructions: - - "band", "bclr", "biand", "bild", "bior", "bist", "bixor", - "bld", "bnot", "bor", "bset", "bst", "btst", "bxor", and - "mov.b" - - We may relax this into an 8-bit absolute address if it's in - the right range. */ - case R_MOV16B2: - value = bfd_coff_reloc16_get_value (reloc, link_info, input_section); - - /* All instructions with R_H8_DIR16B2 start with 0x6a. */ - if (data[dst_address - 2] != 0x6a) - abort (); - - temp_code = data[src_address - 1]; - - /* If this is a mov.b instruction, clear the lower nibble, which - contains the source/destination register number. */ - if ((temp_code & 0x10) != 0x10) - temp_code &= 0xf0; - - /* Fix up the opcode. */ - switch (temp_code) - { - case 0x00: - /* This is mov.b @aa:16,Rd. */ - data[dst_address - 2] = (data[src_address - 1] & 0xf) | 0x20; - break; - case 0x80: - /* This is mov.b Rs,@aa:16. */ - data[dst_address - 2] = (data[src_address - 1] & 0xf) | 0x30; - break; - case 0x18: - /* This is a bit-maniputation instruction that stores one - bit into memory, one of "bclr", "bist", "bnot", "bset", - and "bst". */ - data[dst_address - 2] = 0x7f; - break; - case 0x10: - /* This is a bit-maniputation instruction that loads one bit - from memory, one of "band", "biand", "bild", "bior", - "bixor", "bld", "bor", "btst", and "bxor". */ - data[dst_address - 2] = 0x7e; - break; - default: - abort (); - } - - bfd_put_8 (abfd, value & 0xff, data + dst_address - 1); - src_address += 2; - break; - - /* This is a 24-bit absolute address in one of the following - instructions: - - "band", "bclr", "biand", "bild", "bior", "bist", "bixor", - "bld", "bnot", "bor", "bset", "bst", "btst", "bxor", and - "mov.b" - - We may relax this into an 8-bit absolute address if it's in - the right range. */ - case R_MOV24B2: - value = bfd_coff_reloc16_get_value (reloc, link_info, input_section); - - /* All instructions with R_MOV24B2 start with 0x6a. */ - if (data[dst_address - 2] != 0x6a) - abort (); - - temp_code = data[src_address - 1]; - - /* If this is a mov.b instruction, clear the lower nibble, which - contains the source/destination register number. */ - if ((temp_code & 0x30) != 0x30) - temp_code &= 0xf0; - - /* Fix up the opcode. */ - switch (temp_code) - { - case 0x20: - /* This is mov.b @aa:24/32,Rd. */ - data[dst_address - 2] = (data[src_address - 1] & 0xf) | 0x20; - break; - case 0xa0: - /* This is mov.b Rs,@aa:24/32. */ - data[dst_address - 2] = (data[src_address - 1] & 0xf) | 0x30; - break; - case 0x38: - /* This is a bit-maniputation instruction that stores one - bit into memory, one of "bclr", "bist", "bnot", "bset", - and "bst". */ - data[dst_address - 2] = 0x7f; - break; - case 0x30: - /* This is a bit-maniputation instruction that loads one bit - from memory, one of "band", "biand", "bild", "bior", - "bixor", "bld", "bor", "btst", and "bxor". */ - data[dst_address - 2] = 0x7e; - break; - default: - abort (); - } - - bfd_put_8 (abfd, value & 0xff, data + dst_address - 1); - src_address += 4; - break; - - case R_BCC_INV: - /* Get the address of the target of this branch. */ - value = bfd_coff_reloc16_get_value (reloc, link_info, input_section); - - dot = (input_section->output_offset - + dst_address - + link_order->u.indirect.section->output_section->vma) + 1; - - gap = value - dot; - - /* Sanity check. */ - if (gap < -128 || gap > 126) - (*link_info->callbacks->reloc_overflow) - (link_info, NULL, bfd_asymbol_name (*reloc->sym_ptr_ptr), - reloc->howto->name, reloc->addend, input_section->owner, - input_section, reloc->address); - - /* Everything looks OK. Fix the condition in the instruction, apply - the relocation, and update the src/dst address appropriately. */ - - bfd_put_8 (abfd, bfd_get_8 (abfd, data + dst_address - 1) ^ 1, - data + dst_address - 1); - bfd_put_8 (abfd, gap, data + dst_address); - dst_address++; - src_address++; - - /* All done. */ - break; - - case R_JMP_DEL: - src_address += 4; - break; - - /* An 8-bit memory indirect instruction (jmp/jsr). - - There's several things that need to be done to handle - this relocation. - - If this is a reloc against the absolute symbol, then - we should handle it just R_RELBYTE. Likewise if it's - for a symbol with a value ge 0 and le 0xff. - - Otherwise it's a jump/call through the function vector, - and the linker is expected to set up the function vector - and put the right value into the jump/call instruction. */ - case R_MEM_INDIRECT: - { - /* We need to find the symbol so we can determine it's - address in the function vector table. */ - asymbol *symbol; - const char *name; - struct funcvec_hash_table *ftab; - struct funcvec_hash_entry *h; - struct h8300_coff_link_hash_table *htab; - asection *vectors_sec; - - if (link_info->output_bfd->xvec != abfd->xvec) - { - _bfd_error_handler - (_("cannot handle R_MEM_INDIRECT reloc when using %s output"), - link_info->output_bfd->xvec->name); - - /* What else can we do? This function doesn't allow return - of an error, and we don't want to call abort as that - indicates an internal error. */ -#ifndef EXIT_FAILURE -#define EXIT_FAILURE 1 -#endif - xexit (EXIT_FAILURE); - } - htab = h8300_coff_hash_table (link_info); - vectors_sec = htab->vectors_sec; - - /* First see if this is a reloc against the absolute symbol - or against a symbol with a nonnegative value <= 0xff. */ - symbol = *(reloc->sym_ptr_ptr); - value = bfd_coff_reloc16_get_value (reloc, link_info, input_section); - if (symbol == bfd_abs_section_ptr->symbol - || value <= 0xff) - { - /* This should be handled in a manner very similar to - R_RELBYTES. If the value is in range, then just slam - the value into the right location. Else trigger a - reloc overflow callback. */ - if (value <= 0xff) - { - bfd_put_8 (abfd, value, data + dst_address); - dst_address += 1; - src_address += 1; - } - else - (*link_info->callbacks->reloc_overflow) - (link_info, NULL, bfd_asymbol_name (*reloc->sym_ptr_ptr), - reloc->howto->name, reloc->addend, input_section->owner, - input_section, reloc->address); - break; - } - - /* This is a jump/call through a function vector, and we're - expected to create the function vector ourselves. - - First look up this symbol in the linker hash table -- we need - the derived linker symbol which holds this symbol's index - in the function vector. */ - name = symbol->name; - if (symbol->flags & BSF_LOCAL) - { - char *new_name = bfd_malloc ((bfd_size_type) strlen (name) + 10); - - if (new_name == NULL) - abort (); - - sprintf (new_name, "%s_%08x", name, symbol->section->id); - name = new_name; - } - - ftab = htab->funcvec_hash_table; - h = funcvec_hash_lookup (ftab, name, FALSE, FALSE); - - /* This shouldn't ever happen. If it does that means we've got - data corruption of some kind. Aborting seems like a reasonable - thing to do here. */ - if (h == NULL || vectors_sec == NULL) - abort (); - - /* Place the address of the function vector entry into the - reloc's address. */ - bfd_put_8 (abfd, - vectors_sec->output_offset + h->offset, - data + dst_address); - - dst_address++; - src_address++; - - /* Now create an entry in the function vector itself. */ - switch (bfd_get_mach (input_section->owner)) - { - case bfd_mach_h8300: - case bfd_mach_h8300hn: - case bfd_mach_h8300sn: - bfd_put_16 (abfd, - bfd_coff_reloc16_get_value (reloc, - link_info, - input_section), - vectors_sec->contents + h->offset); - break; - case bfd_mach_h8300h: - case bfd_mach_h8300s: - bfd_put_32 (abfd, - bfd_coff_reloc16_get_value (reloc, - link_info, - input_section), - vectors_sec->contents + h->offset); - break; - default: - abort (); - } - - /* Gross. We've already written the contents of the vector section - before we get here... So we write it again with the new data. */ - bfd_set_section_contents (vectors_sec->output_section->owner, - vectors_sec->output_section, - vectors_sec->contents, - (file_ptr) vectors_sec->output_offset, - vectors_sec->size); - break; - } - - default: - abort (); - break; - - } - - *src_ptr = src_address; - *dst_ptr = dst_address; -} - -/* Routine for the h8300 linker. - - This routine is necessary to handle the special R_MEM_INDIRECT - relocs on the h8300. It's responsible for generating a vectors - section and attaching it to an input bfd as well as sizing - the vectors section. It also creates our vectors hash table. - - It uses the generic linker routines to actually add the symbols. - from this BFD to the bfd linker hash table. It may add a few - selected static symbols to the bfd linker hash table. */ - -static bfd_boolean -h8300_bfd_link_add_symbols (bfd *abfd, struct bfd_link_info *info) -{ - asection *sec; - struct funcvec_hash_table *funcvec_hash_table; - bfd_size_type amt; - struct h8300_coff_link_hash_table *htab; - - /* Add the symbols using the generic code. */ - _bfd_generic_link_add_symbols (abfd, info); - - if (info->output_bfd->xvec != abfd->xvec) - return TRUE; - - htab = h8300_coff_hash_table (info); - - /* If we haven't created a vectors section, do so now. */ - if (!htab->vectors_sec) - { - flagword flags; - - /* Make sure the appropriate flags are set, including SEC_IN_MEMORY. */ - flags = (SEC_ALLOC | SEC_LOAD - | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_READONLY); - htab->vectors_sec = bfd_make_section_with_flags (abfd, ".vectors", - flags); - - /* If the section wasn't created, or we couldn't set the flags, - quit quickly now, rather than dying a painful death later. */ - if (!htab->vectors_sec) - return FALSE; - - /* Also create the vector hash table. */ - amt = sizeof (struct funcvec_hash_table); - funcvec_hash_table = (struct funcvec_hash_table *) bfd_alloc (abfd, amt); - - if (!funcvec_hash_table) - return FALSE; - - /* And initialize the funcvec hash table. */ - if (!funcvec_hash_table_init (funcvec_hash_table, abfd, - funcvec_hash_newfunc, - sizeof (struct funcvec_hash_entry))) - { - bfd_release (abfd, funcvec_hash_table); - return FALSE; - } - - /* Store away a pointer to the funcvec hash table. */ - htab->funcvec_hash_table = funcvec_hash_table; - } - - /* Load up the function vector hash table. */ - funcvec_hash_table = htab->funcvec_hash_table; - - /* Now scan the relocs for all the sections in this bfd; create - additional space in the .vectors section as needed. */ - for (sec = abfd->sections; sec; sec = sec->next) - { - long reloc_size, reloc_count, i; - asymbol **symbols; - arelent **relocs; - - /* Suck in the relocs, symbols & canonicalize them. */ - reloc_size = bfd_get_reloc_upper_bound (abfd, sec); - if (reloc_size <= 0) - continue; - - relocs = (arelent **) bfd_malloc ((bfd_size_type) reloc_size); - if (!relocs) - return FALSE; - - /* The symbols should have been read in by _bfd_generic link_add_symbols - call abovec, so we can cheat and use the pointer to them that was - saved in the above call. */ - symbols = _bfd_generic_link_get_symbols(abfd); - reloc_count = bfd_canonicalize_reloc (abfd, sec, relocs, symbols); - if (reloc_count <= 0) - { - free (relocs); - continue; - } - - /* Now walk through all the relocations in this section. */ - for (i = 0; i < reloc_count; i++) - { - arelent *reloc = relocs[i]; - asymbol *symbol = *(reloc->sym_ptr_ptr); - const char *name; - - /* We've got an indirect reloc. See if we need to add it - to the function vector table. At this point, we have - to add a new entry for each unique symbol referenced - by an R_MEM_INDIRECT relocation except for a reloc - against the absolute section symbol. */ - if (reloc->howto->type == R_MEM_INDIRECT - && symbol != bfd_abs_section_ptr->symbol) - - { - struct funcvec_hash_table *ftab; - struct funcvec_hash_entry *h; - - name = symbol->name; - if (symbol->flags & BSF_LOCAL) - { - char *new_name; - - new_name = bfd_malloc ((bfd_size_type) strlen (name) + 10); - if (new_name == NULL) - abort (); - - sprintf (new_name, "%s_%08x", name, symbol->section->id); - name = new_name; - } - - /* Look this symbol up in the function vector hash table. */ - ftab = htab->funcvec_hash_table; - h = funcvec_hash_lookup (ftab, name, FALSE, FALSE); - - /* If this symbol isn't already in the hash table, add - it and bump up the size of the hash table. */ - if (h == NULL) - { - h = funcvec_hash_lookup (ftab, name, TRUE, TRUE); - if (h == NULL) - { - free (relocs); - return FALSE; - } - - /* Bump the size of the vectors section. Each vector - takes 2 bytes on the h8300 and 4 bytes on the h8300h. */ - switch (bfd_get_mach (abfd)) - { - case bfd_mach_h8300: - case bfd_mach_h8300hn: - case bfd_mach_h8300sn: - htab->vectors_sec->size += 2; - break; - case bfd_mach_h8300h: - case bfd_mach_h8300s: - htab->vectors_sec->size += 4; - break; - default: - abort (); - } - } - } - } - - /* We're done with the relocations, release them. */ - free (relocs); - } - - /* Now actually allocate some space for the function vector. It's - wasteful to do this more than once, but this is easier. */ - sec = htab->vectors_sec; - if (sec->size != 0) - { - /* Free the old contents. */ - if (sec->contents) - free (sec->contents); - - /* Allocate new contents. */ - sec->contents = bfd_malloc (sec->size); - } - - return TRUE; -} - -#define coff_reloc16_extra_cases h8300_reloc16_extra_cases -#define coff_reloc16_estimate h8300_reloc16_estimate -#define coff_bfd_link_add_symbols h8300_bfd_link_add_symbols -#define coff_bfd_link_hash_table_create h8300_coff_link_hash_table_create - -#define COFF_LONG_FILENAMES - -#ifndef bfd_pe_print_pdata -#define bfd_pe_print_pdata NULL -#endif - -#include "coffcode.h" - -#undef coff_bfd_get_relocated_section_contents -#undef coff_bfd_relax_section -#define coff_bfd_get_relocated_section_contents \ - bfd_coff_reloc16_get_relocated_section_contents -#define coff_bfd_relax_section bfd_coff_reloc16_relax_section - -CREATE_BIG_COFF_TARGET_VEC (h8300_coff_vec, "coff-h8300", BFD_IS_RELAXABLE, 0, '_', NULL, COFF_SWAP_TABLE) diff -Nru gdb-8.1/bfd/coff-h8500.c gdb-8.2/bfd/coff-h8500.c --- gdb-8.1/bfd/coff-h8500.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff-h8500.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,298 +0,0 @@ -/* BFD back-end for Renesas H8/500 COFF binaries. - Copyright (C) 1993-2018 Free Software Foundation, Inc. - Contributed by Cygnus Support. - Written by Steve Chamberlain, . - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "bfdlink.h" -#include "coff/h8500.h" -#include "coff/internal.h" -#include "libcoff.h" - - -#define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (1) - -static reloc_howto_type r_imm8 = -HOWTO (R_H8500_IMM8, 0, 1, 8, FALSE, 0, - complain_overflow_bitfield, 0, "r_imm8", TRUE, 0x000000ff, 0x000000ff, FALSE); - -static reloc_howto_type r_imm16 = -HOWTO (R_H8500_IMM16, 0, 1, 16, FALSE, 0, - complain_overflow_bitfield, 0, "r_imm16", TRUE, 0x0000ffff, 0x0000ffff, FALSE); - -static reloc_howto_type r_imm24 = -HOWTO (R_H8500_IMM24, 0, 1, 24, FALSE, 0, - complain_overflow_bitfield, 0, "r_imm24", TRUE, 0x00ffffff, 0x00ffffff, FALSE); - -static reloc_howto_type r_imm32 = -HOWTO (R_H8500_IMM32, 0, 1, 32, FALSE, 0, - complain_overflow_bitfield, 0, "r_imm32", TRUE, 0xffffffff, 0xffffffff, FALSE); - -static reloc_howto_type r_high8 = -HOWTO (R_H8500_HIGH8, 0, 1, 8, FALSE, 0, - complain_overflow_dont, 0, "r_high8", TRUE, 0x000000ff, 0x000000ff, FALSE); - -static reloc_howto_type r_low16 = -HOWTO (R_H8500_LOW16, 0, 1, 16, FALSE, 0, - complain_overflow_dont, 0, "r_low16", TRUE, 0x0000ffff, 0x0000ffff, FALSE); - -static reloc_howto_type r_pcrel8 = -HOWTO (R_H8500_PCREL8, 0, 1, 8, TRUE, 0, complain_overflow_signed, 0, "r_pcrel8", TRUE, 0, 0, TRUE); - -static reloc_howto_type r_pcrel16 = -HOWTO (R_H8500_PCREL16, 0, 1, 16, TRUE, 0, complain_overflow_signed, 0, "r_pcrel16", TRUE, 0, 0, TRUE); - -static reloc_howto_type r_high16 = -HOWTO (R_H8500_HIGH16, 0, 1, 8, FALSE, 0, - complain_overflow_dont, 0, "r_high16", TRUE, 0x000ffff, 0x0000ffff, FALSE); - -/* Turn a howto into a reloc number. */ - -static int -coff_h8500_select_reloc (reloc_howto_type *howto) -{ - return howto->type; -} - -#define SELECT_RELOC(x,howto) x.r_type = coff_h8500_select_reloc(howto) - -#define BADMAG(x) H8500BADMAG(x) -#define H8500 1 /* Customize coffcode.h */ - -#define __A_MAGIC_SET__ - -/* Code to swap in the reloc. */ -#define SWAP_IN_RELOC_OFFSET H_GET_32 -#define SWAP_OUT_RELOC_OFFSET H_PUT_32 -#define SWAP_OUT_RELOC_EXTRA(abfd, src, dst) \ - dst->r_stuff[0] = 'S'; \ - dst->r_stuff[1] = 'C'; - -/* Code to turn a r_type into a howto ptr, uses the above howto table. */ - -static void -rtype2howto (arelent * internal, struct internal_reloc *dst) -{ - switch (dst->r_type) - { - default: - internal->howto = NULL; - break; - case R_H8500_IMM8: - internal->howto = &r_imm8; - break; - case R_H8500_IMM16: - internal->howto = &r_imm16; - break; - case R_H8500_IMM24: - internal->howto = &r_imm24; - break; - case R_H8500_IMM32: - internal->howto = &r_imm32; - break; - case R_H8500_PCREL8: - internal->howto = &r_pcrel8; - break; - case R_H8500_PCREL16: - internal->howto = &r_pcrel16; - break; - case R_H8500_HIGH8: - internal->howto = &r_high8; - break; - case R_H8500_HIGH16: - internal->howto = &r_high16; - break; - case R_H8500_LOW16: - internal->howto = &r_low16; - break; - } -} - -#define RTYPE2HOWTO(internal, relocentry) rtype2howto(internal,relocentry) - -/* Perform any necessary magic to the addend in a reloc entry. */ - -#define CALC_ADDEND(abfd, symbol, ext_reloc, cache_ptr) \ - cache_ptr->addend = ext_reloc.r_offset; - -#define RELOC_PROCESSING(relent,reloc,symbols,abfd,section) \ - reloc_processing(relent, reloc, symbols, abfd, section) - -static void -reloc_processing (arelent * relent, - struct internal_reloc *reloc, - asymbol ** symbols, - bfd * abfd, - asection * section) -{ - relent->address = reloc->r_vaddr; - rtype2howto (relent, reloc); - - if (reloc->r_symndx > 0) - relent->sym_ptr_ptr = symbols + obj_convert (abfd)[reloc->r_symndx]; - else - relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; - - relent->addend = reloc->r_offset; - relent->address -= section->vma; -} - -static void -extra_case (bfd *in_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) -{ - bfd_byte *d = data+*dst_ptr; - asection *input_section = link_order->u.indirect.section; - - switch (reloc->howto->type) - { - case R_H8500_IMM8: - bfd_put_8 (in_abfd, - bfd_coff_reloc16_get_value (reloc, link_info, input_section), - d); - (*dst_ptr) += 1; - (*src_ptr) += 1; - break; - - case R_H8500_HIGH8: - bfd_put_8 (in_abfd, - (bfd_coff_reloc16_get_value (reloc, link_info, input_section) - >> 16), - d); - (*dst_ptr) += 1; - (*src_ptr) += 1; - break; - - case R_H8500_IMM16: - bfd_put_16 (in_abfd, - bfd_coff_reloc16_get_value (reloc, link_info, input_section), - d); - (*dst_ptr) += 2; - (*src_ptr) += 2; - break; - - case R_H8500_LOW16: - bfd_put_16 (in_abfd, - bfd_coff_reloc16_get_value (reloc, link_info, input_section), - d); - - (*dst_ptr) += 2; - (*src_ptr) += 2; - break; - - case R_H8500_HIGH16: - bfd_put_16 (in_abfd, - (bfd_coff_reloc16_get_value (reloc, link_info, input_section) - >> 16), - d); - - (*dst_ptr) += 2; - (*src_ptr) += 2; - break; - - case R_H8500_IMM24: - { - int v = bfd_coff_reloc16_get_value (reloc, link_info, input_section); - int o = bfd_get_32 (in_abfd, data+ *dst_ptr -1); - v = (v & 0x00ffffff) | (o & 0xff00000); - bfd_put_32 (in_abfd, (bfd_vma) v, data + *dst_ptr -1); - (*dst_ptr) += 3; - (*src_ptr) += 3; - } - break; - case R_H8500_IMM32: - { - int v = bfd_coff_reloc16_get_value (reloc, link_info, input_section); - bfd_put_32 (in_abfd, (bfd_vma) v, data + *dst_ptr); - (*dst_ptr) += 4; - (*src_ptr) += 4; - } - break; - - case R_H8500_PCREL8: - { - bfd_vma dst = bfd_coff_reloc16_get_value (reloc, link_info, - input_section); - bfd_vma dot = (*dst_ptr - + input_section->output_offset - + input_section->output_section->vma); - int gap = dst - dot - 1; /* -1 since were in the odd byte of the - word and the pc's been incremented. */ - - if (gap > 128 || gap < -128) - (*link_info->callbacks->reloc_overflow) - (link_info, NULL, bfd_asymbol_name (*reloc->sym_ptr_ptr), - reloc->howto->name, reloc->addend, input_section->owner, - input_section, reloc->address); - - bfd_put_8 (in_abfd, gap, data + *dst_ptr); - (*dst_ptr)++; - (*src_ptr)++; - break; - } - case R_H8500_PCREL16: - { - bfd_vma dst = bfd_coff_reloc16_get_value (reloc, link_info, - input_section); - bfd_vma dot = (*dst_ptr - + input_section->output_offset - + input_section->output_section->vma); - int gap = dst - dot - 1; /* -1 since were in the odd byte of the - word and the pc's been incremented. */ - - if (gap > 32767 || gap < -32768) - (*link_info->callbacks->reloc_overflow) - (link_info, NULL, bfd_asymbol_name (*reloc->sym_ptr_ptr), - reloc->howto->name, reloc->addend, input_section->owner, - input_section, reloc->address); - - bfd_put_16 (in_abfd, (bfd_vma) gap, data + *dst_ptr); - (*dst_ptr) += 2; - (*src_ptr) += 2; - break; - } - - default: - abort (); - } -} - -#define coff_reloc16_extra_cases extra_case - -#ifndef bfd_pe_print_pdata -#define bfd_pe_print_pdata NULL -#endif - -#include "coffcode.h" - -#undef coff_bfd_get_relocated_section_contents -#undef coff_bfd_relax_section -#define coff_bfd_get_relocated_section_contents \ - bfd_coff_reloc16_get_relocated_section_contents -#define coff_bfd_relax_section bfd_coff_reloc16_relax_section - -CREATE_BIG_COFF_TARGET_VEC (h8500_coff_vec, "coff-h8500", 0, 0, '_', NULL, COFF_SWAP_TABLE) diff -Nru gdb-8.1/bfd/coff-i386.c gdb-8.2/bfd/coff-i386.c --- gdb-8.1/bfd/coff-i386.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff-i386.c 2018-09-05 07:27:13.000000000 +0000 @@ -661,27 +661,44 @@ bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* hdrs */ /* Note that we allow an object file to be treated as a core file as well. */ - /* bfd_check_format */ + #ifdef COFF_CHECK_FORMAT - {_bfd_dummy_target, COFF_CHECK_FORMAT, - bfd_generic_archive_p, COFF_CHECK_FORMAT}, + { /* bfd_check_format */ + _bfd_dummy_target, + COFF_CHECK_FORMAT, + bfd_generic_archive_p, + COFF_CHECK_FORMAT + }, #else - {_bfd_dummy_target, coff_object_p, bfd_generic_archive_p, coff_object_p}, + { + _bfd_dummy_target, + coff_object_p, + bfd_generic_archive_p, + coff_object_p + }, #endif - {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_set_format */ + _bfd_bool_bfd_false_error, + coff_mkobject, + _bfd_generic_mkarchive, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents */ + _bfd_bool_bfd_false_error, + coff_write_object_contents, + _bfd_write_archive_contents, + _bfd_bool_bfd_false_error + }, - 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), + 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, diff -Nru gdb-8.1/bfd/coff-i860.c gdb-8.2/bfd/coff-i860.c --- gdb-8.1/bfd/coff-i860.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff-i860.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,718 +0,0 @@ -/* BFD back-end for Intel i860 COFF files. - Copyright (C) 1990-2018 Free Software Foundation, Inc. - Created mostly by substituting "860" for "386" in coff-i386.c - Harry Dolan , October 1995 - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" - -#include "coff/i860.h" - -#include "coff/internal.h" - -#ifndef bfd_pe_print_pdata -#define bfd_pe_print_pdata NULL -#endif - -#include "libcoff.h" - - -#define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (2) -/* The page size is a guess based on ELF. */ - -#define COFF_PAGE_SIZE 0x1000 - -/* For some reason when using i860 COFF the value stored in the .text - section for a reference to a common symbol is the value itself plus - any desired offset. Ian Taylor, Cygnus Support. */ - -/* 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. */ - -static bfd_reloc_status_type -coff_i860_reloc (bfd *abfd, - arelent *reloc_entry, - asymbol *symbol, - void *data, - asection *input_section ATTRIBUTE_UNUSED, - bfd *output_bfd, - char **error_message ATTRIBUTE_UNUSED) -{ - symvalue diff; - - if (output_bfd == (bfd *) NULL) - return bfd_reloc_continue; - - if (bfd_is_com_section (symbol->section)) - { - /* We are relocating a common symbol. The current value in the - object file is ORIG + OFFSET, where ORIG is the value of the - common symbol as seen by the object file when it was compiled - (this may be zero if the symbol was undefined) and OFFSET is - the offset into the common symbol (normally zero, but may be - non-zero when referring to a field in a common structure). - ORIG is the negative of reloc_entry->addend, which is set by - the CALC_ADDEND macro below. We want to replace the value in - the object file with NEW + OFFSET, where NEW is the value of - the common symbol which we are going to put in the final - object file. NEW is symbol->value. */ - diff = symbol->value + reloc_entry->addend; - } - else - { - /* For some reason bfd_perform_relocation always effectively - ignores the addend for a COFF target when producing - relocatable output. This seems to be always wrong for 860 - COFF, so we handle the addend here instead. */ - diff = reloc_entry->addend; - } - -#define DOIT(x) \ - x = ((x & ~howto->dst_mask) | (((x & howto->src_mask) + diff) & howto->dst_mask)) - - if (diff != 0) - { - reloc_howto_type *howto = reloc_entry->howto; - unsigned char *addr = (unsigned char *) data + reloc_entry->address; - - if (! bfd_reloc_offset_in_range (howto, abfd, input_section, - reloc_entry->address - * bfd_octets_per_byte (abfd))) - return bfd_reloc_outofrange; - - switch (howto->size) - { - case 0: - { - char x = bfd_get_8 (abfd, addr); - DOIT (x); - bfd_put_8 (abfd, x, addr); - } - break; - - case 1: - { - short x = bfd_get_16 (abfd, addr); - DOIT (x); - bfd_put_16 (abfd, (bfd_vma) x, addr); - } - break; - - case 2: - { - long x = bfd_get_32 (abfd, addr); - DOIT (x); - bfd_put_32 (abfd, (bfd_vma) x, addr); - } - break; - - default: - abort (); - } - } - - /* Now let bfd_perform_relocation finish everything up. */ - return bfd_reloc_continue; -} - -/* This is just a temporary measure until we teach bfd to generate - these relocations. */ - -static bfd_reloc_status_type -coff_i860_reloc_nyi (bfd *abfd ATTRIBUTE_UNUSED, - arelent *reloc_entry, - asymbol *symbol ATTRIBUTE_UNUSED, - void *data ATTRIBUTE_UNUSED, - asection *input_section ATTRIBUTE_UNUSED, - bfd *output_bfd ATTRIBUTE_UNUSED, - char **error_message ATTRIBUTE_UNUSED) -{ - reloc_howto_type *howto = reloc_entry->howto; - _bfd_error_handler (_("relocation `%s' not yet implemented"), howto->name); - return bfd_reloc_notsupported; -} - -#ifndef PCRELOFFSET -#define PCRELOFFSET FALSE -#endif - -static reloc_howto_type howto_table[] = -{ - EMPTY_HOWTO (0), - EMPTY_HOWTO (1), - EMPTY_HOWTO (2), - EMPTY_HOWTO (3), - EMPTY_HOWTO (4), - EMPTY_HOWTO (5), - HOWTO (R_DIR32, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 32, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - coff_i860_reloc, /* special_function */ - "dir32", /* name */ - TRUE, /* partial_inplace */ - 0xffffffff, /* src_mask */ - 0xffffffff, /* dst_mask */ - TRUE), /* pcrel_offset */ - /* {7}, */ - HOWTO (R_IMAGEBASE, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 32, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - coff_i860_reloc, /* special_function */ - "rva32", /* name */ - TRUE, /* partial_inplace */ - 0xffffffff, /* src_mask */ - 0xffffffff, /* dst_mask */ - FALSE), /* pcrel_offset */ - EMPTY_HOWTO (010), - EMPTY_HOWTO (011), - EMPTY_HOWTO (012), - EMPTY_HOWTO (013), - EMPTY_HOWTO (014), - EMPTY_HOWTO (015), - EMPTY_HOWTO (016), - HOWTO (R_RELBYTE, /* type */ - 0, /* rightshift */ - 0, /* size (0 = byte, 1 = short, 2 = long) */ - 8, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - coff_i860_reloc, /* special_function */ - "8", /* name */ - TRUE, /* partial_inplace */ - 0x000000ff, /* src_mask */ - 0x000000ff, /* dst_mask */ - PCRELOFFSET), /* pcrel_offset */ - HOWTO (R_RELWORD, /* type */ - 0, /* rightshift */ - 1, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - coff_i860_reloc, /* special_function */ - "16", /* name */ - TRUE, /* partial_inplace */ - 0x0000ffff, /* src_mask */ - 0x0000ffff, /* dst_mask */ - PCRELOFFSET), /* pcrel_offset */ - HOWTO (R_RELLONG, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 32, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - coff_i860_reloc, /* special_function */ - "32", /* name */ - TRUE, /* partial_inplace */ - 0xffffffff, /* src_mask */ - 0xffffffff, /* dst_mask */ - PCRELOFFSET), /* pcrel_offset */ - HOWTO (R_PCRBYTE, /* type */ - 0, /* rightshift */ - 0, /* size (0 = byte, 1 = short, 2 = long) */ - 8, /* bitsize */ - TRUE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - coff_i860_reloc, /* special_function */ - "DISP8", /* name */ - TRUE, /* partial_inplace */ - 0x000000ff, /* src_mask */ - 0x000000ff, /* dst_mask */ - PCRELOFFSET), /* pcrel_offset */ - HOWTO (R_PCRWORD, /* type */ - 0, /* rightshift */ - 1, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - TRUE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - coff_i860_reloc, /* special_function */ - "DISP16", /* name */ - TRUE, /* partial_inplace */ - 0x0000ffff, /* src_mask */ - 0x0000ffff, /* dst_mask */ - PCRELOFFSET), /* pcrel_offset */ - HOWTO (R_PCRLONG, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 32, /* bitsize */ - TRUE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - coff_i860_reloc, /* special_function */ - "DISP32", /* name */ - TRUE, /* partial_inplace */ - 0xffffffff, /* src_mask */ - 0xffffffff, /* dst_mask */ - PCRELOFFSET), /* pcrel_offset */ - EMPTY_HOWTO (0x15), - EMPTY_HOWTO (0x16), - EMPTY_HOWTO (0x17), - EMPTY_HOWTO (0x18), - EMPTY_HOWTO (0x19), - EMPTY_HOWTO (0x1a), - EMPTY_HOWTO (0x1b), - HOWTO (COFF860_R_PAIR, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - coff_i860_reloc_nyi, /* special_function */ - "PAIR", /* name */ - FALSE, /* partial_inplace */ - 0xffff, /* src_mask */ - 0xffff, /* dst_mask */ - FALSE), /* pcrel_offset */ - EMPTY_HOWTO (0x1d), - HOWTO (COFF860_R_HIGH, /* type */ - 16, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - coff_i860_reloc, /* special_function */ - "HIGH", /* name */ - FALSE, /* partial_inplace */ - 0xffff, /* src_mask */ - 0xffff, /* dst_mask */ - FALSE), /* pcrel_offset */ - HOWTO (COFF860_R_LOW0, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - coff_i860_reloc, /* special_function */ - "LOW0", /* name */ - FALSE, /* partial_inplace */ - 0xffff, /* src_mask */ - 0xffff, /* dst_mask */ - FALSE), /* pcrel_offset */ - HOWTO (COFF860_R_LOW1, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - coff_i860_reloc, /* special_function */ - "LOW1", /* name */ - FALSE, /* partial_inplace */ - 0xfffe, /* src_mask */ - 0xfffe, /* dst_mask */ - FALSE), /* pcrel_offset */ - HOWTO (COFF860_R_LOW2, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - coff_i860_reloc, /* special_function */ - "LOW2", /* name */ - FALSE, /* partial_inplace */ - 0xfffc, /* src_mask */ - 0xfffc, /* dst_mask */ - FALSE), /* pcrel_offset */ - HOWTO (COFF860_R_LOW3, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - coff_i860_reloc, /* special_function */ - "LOW3", /* name */ - FALSE, /* partial_inplace */ - 0xfff8, /* src_mask */ - 0xfff8, /* dst_mask */ - FALSE), /* pcrel_offset */ - HOWTO (COFF860_R_LOW4, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - coff_i860_reloc, /* special_function */ - "LOW4", /* name */ - FALSE, /* partial_inplace */ - 0xfff0, /* src_mask */ - 0xfff0, /* dst_mask */ - FALSE), /* pcrel_offset */ - HOWTO (COFF860_R_SPLIT0, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - coff_i860_reloc_nyi, /* special_function */ - "SPLIT0", /* name */ - FALSE, /* partial_inplace */ - 0x1f07ff, /* src_mask */ - 0x1f07ff, /* dst_mask */ - FALSE), /* pcrel_offset */ - HOWTO (COFF860_R_SPLIT1, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - coff_i860_reloc_nyi, /* special_function */ - "SPLIT1", /* name */ - FALSE, /* partial_inplace */ - 0x1f07fe, /* src_mask */ - 0x1f07fe, /* dst_mask */ - FALSE), /* pcrel_offset */ - HOWTO (COFF860_R_SPLIT2, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - coff_i860_reloc_nyi, /* special_function */ - "SPLIT2", /* name */ - FALSE, /* partial_inplace */ - 0x1f07fc, /* src_mask */ - 0x1f07fc, /* dst_mask */ - FALSE), /* pcrel_offset */ - HOWTO (COFF860_R_HIGHADJ, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - coff_i860_reloc_nyi, /* special_function */ - "HIGHADJ", /* name */ - FALSE, /* partial_inplace */ - 0xffff, /* src_mask */ - 0xffff, /* dst_mask */ - FALSE), /* pcrel_offset */ - HOWTO (COFF860_R_BRADDR, /* type */ - 2, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 26, /* bitsize */ - TRUE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - coff_i860_reloc_nyi, /* special_function */ - "BRADDR", /* name */ - FALSE, /* partial_inplace */ - 0x3ffffff, /* src_mask */ - 0x3ffffff, /* dst_mask */ - TRUE) /* pcrel_offset */ -}; - -/* Turn a howto into a reloc number. */ - -#define SELECT_RELOC(x,howto) { x.r_type = howto->type; } -#define BADMAG(x) I860BADMAG(x) -#define I860 1 /* Customize coffcode.h */ - -#define RTYPE2HOWTO(cache_ptr, dst) \ - ((cache_ptr)->howto = \ - ((dst)->r_type < sizeof (howto_table) / sizeof (howto_table[0]) \ - ? howto_table + (dst)->r_type \ - : NULL)) - -/* For 860 COFF a STYP_NOLOAD | STYP_BSS section is part of a shared - library. On some other COFF targets STYP_BSS is normally - STYP_NOLOAD. */ -#define BSS_NOLOAD_IS_SHARED_LIBRARY - -/* Compute the addend of a reloc. If the reloc is to a common symbol, - the object file contains the value of the common symbol. By the - time this is called, the linker may be using a different symbol - from a different object file with a different value. Therefore, we - hack wildly to locate the original symbol from this file so that we - can make the correct adjustment. This macro sets coffsym to the - symbol from the original file, and uses it to set the addend value - correctly. If this is not a common symbol, the usual addend - calculation is done, except that an additional tweak is needed for - PC relative relocs. - FIXME: This macro refers to symbols and asect; these are from the - calling function, not the macro arguments. */ - -/* PR 17512: file: 0a38fb7c - Set an addend value, even if it is not going to be used. A tool - like coffdump might be used to print out the contents of the reloc. */ -#define CALC_ADDEND(abfd, ptr, reloc, cache_ptr) (cache_ptr)->addend = 0 - -/* We use the special COFF backend linker. */ -#define coff_relocate_section _bfd_coff_generic_relocate_section - -static reloc_howto_type * -coff_i860_rtype_to_howto (bfd *abfd ATTRIBUTE_UNUSED, - asection *sec, - struct internal_reloc *rel, - struct coff_link_hash_entry *h, - struct internal_syment *sym, - bfd_vma *addendp) -{ - - reloc_howto_type *howto; - - if (rel->r_type > sizeof (howto_table) / sizeof (howto_table[0])) - { - bfd_set_error (bfd_error_bad_value); - return NULL; - } - - howto = howto_table + rel->r_type; - - if (howto->pc_relative) - *addendp += sec->vma; - - if (sym != NULL && sym->n_scnum == 0 && sym->n_value != 0) - { - /* This is a common symbol. The section contents include the - size (sym->n_value) as an addend. The relocate_section - function will be adding in the final value of the symbol. We - need to subtract out the current size in order to get the - correct result. */ - - BFD_ASSERT (h != NULL); - - /* I think we *do* want to bypass this. If we don't, I have seen some data - parameters get the wrong relocation address. If I link two versions - with and without this section bypassed and then do a binary comparison, - the addresses which are different can be looked up in the map. The - case in which this section has been bypassed has addresses which correspond - to values I can find in the map. */ - *addendp -= sym->n_value; - } - - /* If the output symbol is common (in which case this must be a - 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; - - return howto; -} - -static reloc_howto_type * -coff_i860_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, - bfd_reloc_code_real_type code) -{ - switch (code) - { - case BFD_RELOC_32: - return howto_table + R_DIR32; - case BFD_RELOC_860_PC26: - return howto_table + COFF860_R_BRADDR; - case BFD_RELOC_860_PC16: - /* ??? How to handle PC16 for COFF? SPLIT0 is close for now. */ - return howto_table + COFF860_R_SPLIT0; - case BFD_RELOC_860_LOW0: - return howto_table + COFF860_R_LOW0; - case BFD_RELOC_860_SPLIT0: - return howto_table + COFF860_R_SPLIT0; - case BFD_RELOC_860_LOW1: - return howto_table + COFF860_R_LOW1; - case BFD_RELOC_860_SPLIT1: - return howto_table + COFF860_R_SPLIT1; - case BFD_RELOC_860_LOW2: - return howto_table + COFF860_R_LOW2; - case BFD_RELOC_860_SPLIT2: - return howto_table + COFF860_R_SPLIT2; - case BFD_RELOC_860_LOW3: - return howto_table + COFF860_R_LOW3; - case BFD_RELOC_860_HIGHADJ: - return howto_table + COFF860_R_HIGHADJ; - case BFD_RELOC_860_HIGH: - return howto_table + COFF860_R_HIGH; - default: - BFD_FAIL (); - return 0; - } -} - -static reloc_howto_type * -coff_i860_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, - const char *r_name) -{ - unsigned int i; - - for (i = 0; i < sizeof (howto_table) / sizeof (howto_table[0]); i++) - if (howto_table[i].name != NULL - && strcasecmp (howto_table[i].name, r_name) == 0) - return &howto_table[i]; - - return NULL; -} - -/* This is called from coff_slurp_reloc_table for each relocation - entry. This special handling is due to the `PAIR' relocation - which has a different meaning for the `r_symndx' field. */ - -static void -i860_reloc_processing (arelent *cache_ptr, struct internal_reloc *dst, - asymbol **symbols, bfd *abfd, asection *asect) -{ - if (dst->r_type == COFF860_R_PAIR) - { - /* Handle the PAIR relocation specially. */ - cache_ptr->howto = howto_table + dst->r_type; - cache_ptr->address = dst->r_vaddr; - cache_ptr->addend = dst->r_symndx; - cache_ptr->sym_ptr_ptr= bfd_abs_section_ptr->symbol_ptr_ptr; - } - else - { - /* For every other relocation, do exactly what coff_slurp_reloc_table - would do (which this code is taken directly from). */ - asymbol *ptr = NULL; - cache_ptr->address = dst->r_vaddr; - - if (dst->r_symndx != -1) - { - if (dst->r_symndx < 0 || dst->r_symndx >= obj_conv_table_size (abfd)) - { - _bfd_error_handler - /* xgettext: c-format */ - (_("%B: warning: illegal symbol index %ld in relocs"), - abfd, dst->r_symndx); - cache_ptr->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; - ptr = NULL; - } - else - { - cache_ptr->sym_ptr_ptr = (symbols - + obj_convert (abfd)[dst->r_symndx]); - ptr = *(cache_ptr->sym_ptr_ptr); - } - } - else - { - cache_ptr->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; - ptr = NULL; - } - - /* The symbols definitions that we have read in have been - relocated as if their sections started at 0. But the offsets - refering to the symbols in the raw data have not been - modified, so we have to have a negative addend to compensate. - - Note that symbols which used to be common must be left alone. */ - - /* Calculate any reloc addend by looking at the symbol. */ - CALC_ADDEND (abfd, ptr, (*dst), cache_ptr); - (void) ptr; - - cache_ptr->address -= asect->vma; - - /* Fill in the cache_ptr->howto field from dst->r_type. */ - RTYPE2HOWTO (cache_ptr, dst); - } -} - -#define coff_rtype_to_howto coff_i860_rtype_to_howto -#define coff_bfd_reloc_type_lookup coff_i860_reloc_type_lookup -#define coff_bfd_reloc_name_lookup coff_i860_reloc_name_lookup - -#define RELOC_PROCESSING(relent, reloc, symbols, abfd, section) \ - i860_reloc_processing (relent, reloc, symbols, abfd, section) - -#include "coffcode.h" - -static const bfd_target * -i3coff_object_p(bfd *a) -{ - return coff_object_p (a); -} - -const bfd_target -#ifdef TARGET_SYM - TARGET_SYM = -#else - i860_coff_vec = -#endif -{ -#ifdef TARGET_NAME - TARGET_NAME, -#else - "coff-i860", /* name */ -#endif - bfd_target_coff_flavour, - BFD_ENDIAN_LITTLE, /* data byte order is little */ - BFD_ENDIAN_LITTLE, /* header byte order is little */ - - (HAS_RELOC | EXEC_P | /* object flags */ - HAS_LINENO | HAS_DEBUG | - HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED), - - (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */ - '_', /* leading underscore */ - '/', /* ar_pad_char */ - 15, /* ar_max_namelen */ - 0, /* match priority. */ - - 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 */ - -/* Note that we allow an object file to be treated as a core file as well. */ - {_bfd_dummy_target, i3coff_object_p, /* bfd_check_format */ - bfd_generic_archive_p, i3coff_object_p}, - {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, - - COFF_SWAP_TABLE -}; diff -Nru gdb-8.1/bfd/coff-i960.c gdb-8.2/bfd/coff-i960.c --- gdb-8.1/bfd/coff-i960.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff-i960.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,654 +0,0 @@ -/* BFD back-end for Intel 960 COFF files. - Copyright (C) 1990-2018 Free Software Foundation, Inc. - Written by Cygnus Support. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define I960 1 -#define BADMAG(x) I960BADMAG(x) - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "coff/i960.h" -#include "coff/internal.h" - -#ifndef bfd_pe_print_pdata -#define bfd_pe_print_pdata NULL -#endif - -#include "libcoff.h" /* To allow easier abstraction-breaking. */ - - -#define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (3) -#define COFF_ALIGN_IN_SECTION_HEADER 1 - -#define GET_SCNHDR_ALIGN H_GET_32 -#define PUT_SCNHDR_ALIGN H_PUT_32 - -/* The i960 does not support an MMU, so COFF_PAGE_SIZE can be - arbitrarily small. */ -#define COFF_PAGE_SIZE 1 - -#define COFF_LONG_FILENAMES - -/* This set of local label names is taken from gas. */ - -static bfd_boolean -coff_i960_is_local_label_name (bfd *abfd ATTRIBUTE_UNUSED, const char *name) -{ - return (name[0] == 'L' - || (name[0] == '.' - && (name[1] == 'C' - || name[1] == 'I' - || name[1] == '.'))); -} - -/* This is just like the usual CALC_ADDEND, but it includes the - section VMA for PC relative relocs. */ -#ifndef CALC_ADDEND -#define CALC_ADDEND(abfd, ptr, reloc, cache_ptr) \ - { \ - coff_symbol_type *coffsym = (coff_symbol_type *) NULL; \ - if (ptr && bfd_asymbol_bfd (ptr) != abfd) \ - coffsym = (obj_symbols (abfd) \ - + (cache_ptr->sym_ptr_ptr - symbols)); \ - else if (ptr) \ - coffsym = coff_symbol_from (ptr); \ - if (coffsym != (coff_symbol_type *) NULL \ - && coffsym->native->u.syment.n_scnum == 0) \ - cache_ptr->addend = 0; \ - else if (ptr && bfd_asymbol_bfd (ptr) == abfd \ - && ptr->section != (asection *) NULL) \ - cache_ptr->addend = - (ptr->section->vma + ptr->value); \ - else \ - cache_ptr->addend = 0; \ - if (ptr && (reloc.r_type == 25 || reloc.r_type == 27)) \ - cache_ptr->addend += asect->vma; \ - } -#endif - -#define CALLS 0x66003800 /* Template for 'calls' instruction */ -#define BAL 0x0b000000 /* Template for 'bal' instruction */ -#define BAL_MASK 0x00ffffff - -static bfd_reloc_status_type -optcall_callback (bfd *abfd, - arelent *reloc_entry, - asymbol *symbol_in, - void * data, - asection *input_section, - bfd *ignore_bfd ATTRIBUTE_UNUSED, - char **error_message) -{ - /* This item has already been relocated correctly, but we may be - * able to patch in yet better code - done by digging out the - * correct info on this symbol */ - bfd_reloc_status_type result; - coff_symbol_type *cs = coffsymbol(symbol_in); - - /* Don't do anything with symbols which aren't tied up yet, - except move the reloc. */ - if (bfd_is_und_section (cs->symbol.section)) { - reloc_entry->address += input_section->output_offset; - return bfd_reloc_ok; - } - - /* So the target symbol has to be of coff type, and the symbol - has to have the correct native information within it */ - if ((bfd_asymbol_flavour(&cs->symbol) != bfd_target_coff_flavour) - || (cs->native == (combined_entry_type *)NULL)) - { - /* This is interesting, consider the case where we're outputting coff - from a mix n match input, linking from coff to a symbol defined in a - bout file will cause this match to be true. Should I complain? This - will only work if the bout symbol is non leaf. */ - *error_message = - (char *) _("uncertain calling convention for non-COFF symbol"); - result = bfd_reloc_dangerous; - } - else - { - switch (cs->native->u.syment.n_sclass) - { - case C_LEAFSTAT: - case C_LEAFEXT: - /* This is a call to a leaf procedure, replace instruction with a bal - to the correct location. */ - { - union internal_auxent *aux = &((cs->native+2)->u.auxent); - int word = bfd_get_32 (abfd, (bfd_byte *)data + reloc_entry->address); - int olf = (aux->x_bal.x_balntry - cs->native->u.syment.n_value); - BFD_ASSERT(cs->native->u.syment.n_numaux==2); - - /* We replace the original call instruction with a bal to - the bal entry point - the offset of which is described in - the 2nd auxent of the original symbol. We keep the native - sym and auxents untouched, so the delta between the two - is the offset of the bal entry point. */ - word = ((word + olf) & BAL_MASK) | BAL; - bfd_put_32 (abfd, (bfd_vma) word, - (bfd_byte *) data + reloc_entry->address); - } - result = bfd_reloc_ok; - break; - case C_SCALL: - /* This is a call to a system call, replace with a calls to # */ - BFD_ASSERT(0); - result = bfd_reloc_ok; - break; - default: - result = bfd_reloc_ok; - break; - } - } - return result; -} - -/* i960 COFF is used by VxWorks 5.1. However, VxWorks 5.1 does not - appear to correctly handle a reloc against a symbol defined in the - 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 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 - 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. */ - -static bfd_reloc_status_type -coff_i960_relocate (bfd *abfd, - arelent *reloc_entry, - asymbol *symbol, - void * data ATTRIBUTE_UNUSED, - asection *input_section ATTRIBUTE_UNUSED, - bfd *output_bfd, - char **error_message ATTRIBUTE_UNUSED) -{ - asection *osec; - - if (output_bfd == NULL) - { - /* Not generating relocatable output file. */ - return bfd_reloc_continue; - } - - if (bfd_is_und_section (bfd_get_section (symbol))) - { - /* Symbol is not defined, so no need to worry about it. */ - return bfd_reloc_continue; - } - - if (bfd_is_com_section (bfd_get_section (symbol))) - { - /* I don't really know what the right action is for a common - symbol. */ - return bfd_reloc_continue; - } - - /* Convert the reloc to use the section symbol. FIXME: This method - is ridiculous. */ - osec = bfd_get_section (symbol)->output_section; - if (coff_section_data (output_bfd, osec) != NULL - && coff_section_data (output_bfd, osec)->tdata != NULL) - reloc_entry->sym_ptr_ptr = - (asymbol **) coff_section_data (output_bfd, osec)->tdata; - else - { - const char *sec_name; - asymbol **syms, **sym_end; - - sec_name = bfd_get_section_name (output_bfd, osec); - syms = bfd_get_outsymbols (output_bfd); - sym_end = syms + bfd_get_symcount (output_bfd); - for (; syms < sym_end; syms++) - { - if (bfd_asymbol_name (*syms) != NULL - && (*syms)->value == 0 - && strcmp ((*syms)->section->output_section->name, - sec_name) == 0) - break; - } - - if (syms >= sym_end) - abort (); - - reloc_entry->sym_ptr_ptr = syms; - - if (coff_section_data (output_bfd, osec) == NULL) - { - bfd_size_type amt = sizeof (struct coff_section_tdata); - osec->used_by_bfd = bfd_zalloc (abfd, amt); - if (osec->used_by_bfd == NULL) - return bfd_reloc_overflow; - } - coff_section_data (output_bfd, osec)->tdata = syms; - } - - /* Let bfd_perform_relocation do its thing, which will include - stuffing the symbol addend into the object file. */ - return bfd_reloc_continue; -} - -static reloc_howto_type howto_rellong = - HOWTO ((unsigned int) R_RELLONG, 0, 2, 32,FALSE, 0, - complain_overflow_bitfield, coff_i960_relocate,"rellong", TRUE, - 0xffffffff, 0xffffffff, 0); -static reloc_howto_type howto_iprmed = - HOWTO (R_IPRMED, 0, 2, 24,TRUE,0, complain_overflow_signed, - coff_i960_relocate, "iprmed ", TRUE, 0x00ffffff, 0x00ffffff, 0); -static reloc_howto_type howto_optcall = - HOWTO (R_OPTCALL, 0,2,24,TRUE,0, complain_overflow_signed, - optcall_callback, "optcall", TRUE, 0x00ffffff, 0x00ffffff, 0); - -static reloc_howto_type * -coff_i960_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, - bfd_reloc_code_real_type code) -{ - switch (code) - { - default: - return 0; - case BFD_RELOC_I960_CALLJ: - return &howto_optcall; - case BFD_RELOC_32: - case BFD_RELOC_CTOR: - return &howto_rellong; - case BFD_RELOC_24_PCREL: - return &howto_iprmed; - } -} - -static reloc_howto_type * -coff_i960_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, - const char *r_name) -{ - if (strcasecmp (howto_optcall.name, r_name) == 0) - return &howto_optcall; - if (strcasecmp (howto_rellong.name, r_name) == 0) - return &howto_rellong; - if (strcasecmp (howto_iprmed.name, r_name) == 0) - return &howto_iprmed; - - return NULL; -} - -/* The real code is in coffcode.h */ - -#define RTYPE2HOWTO(cache_ptr, dst) \ -{ \ - reloc_howto_type *howto_ptr; \ - switch ((dst)->r_type) { \ - case 17: howto_ptr = &howto_rellong; break; \ - case 25: howto_ptr = &howto_iprmed; break; \ - case 27: howto_ptr = &howto_optcall; break; \ - default: howto_ptr = 0; break; \ - } \ - (cache_ptr)->howto = howto_ptr; \ - } - -/* i960 COFF is used by VxWorks 5.1. However, VxWorks 5.1 does not - appear to correctly handle a reloc against a symbol defined in the - same object file. It appears to simply discard such relocs, rather - than adding their values into the object file. We handle this by - converting all relocs against global symbols into relocs against - internal symbols at the start of the section. This routine is - called at the start of the linking process, and it creates the - necessary symbols. */ - -static bfd_boolean -coff_i960_start_final_link (bfd *abfd, struct bfd_link_info *info) -{ - bfd_size_type symesz = bfd_coff_symesz (abfd); - asection *o; - bfd_byte *esym; - - if (! bfd_link_relocatable (info)) - return TRUE; - - esym = (bfd_byte *) bfd_malloc (symesz); - if (esym == NULL) - return FALSE; - - if (bfd_seek (abfd, obj_sym_filepos (abfd), SEEK_SET) != 0) - return FALSE; - - for (o = abfd->sections; o != NULL; o = o->next) - { - struct internal_syment isym; - - strncpy (isym._n._n_name, o->name, SYMNMLEN); - isym.n_value = 0; - isym.n_scnum = o->target_index; - isym.n_type = T_NULL; - isym.n_sclass = C_STAT; - isym.n_numaux = 0; - - bfd_coff_swap_sym_out (abfd, &isym, esym); - - if (bfd_bwrite (esym, symesz, abfd) != symesz) - { - free (esym); - return FALSE; - } - - obj_raw_syment_count (abfd) += 1; - } - - free (esym); - - return TRUE; -} - -/* The reloc processing routine for the optimized COFF linker. */ - -static bfd_boolean -coff_i960_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED, - struct bfd_link_info *info, - bfd *input_bfd, - asection *input_section, - bfd_byte *contents, - struct internal_reloc *relocs, - struct internal_syment *syms, - asection **sections) -{ - struct internal_reloc *rel; - struct internal_reloc *relend; - - rel = relocs; - relend = rel + input_section->reloc_count; - for (; rel < relend; rel++) - { - long symndx; - struct coff_link_hash_entry *h; - struct internal_syment *sym; - bfd_vma addend; - bfd_vma val; - reloc_howto_type *howto; - bfd_reloc_status_type rstat = bfd_reloc_ok; - bfd_boolean done; - - symndx = rel->r_symndx; - - if (symndx == -1) - { - h = NULL; - sym = NULL; - } - else - { - h = obj_coff_sym_hashes (input_bfd)[symndx]; - sym = syms + symndx; - } - - if (sym != NULL && sym->n_scnum != 0) - addend = - sym->n_value; - else - addend = 0; - - switch (rel->r_type) - { - case 17: howto = &howto_rellong; break; - case 25: howto = &howto_iprmed; break; - case 27: howto = &howto_optcall; break; - default: - bfd_set_error (bfd_error_bad_value); - return FALSE; - } - - val = 0; - - if (h == NULL) - { - asection *sec; - - if (symndx == -1) - { - sec = bfd_abs_section_ptr; - val = 0; - } - else - { - sec = sections[symndx]; - val = (sec->output_section->vma - + sec->output_offset - + sym->n_value - - sec->vma); - } - } - else - { - if (h->root.type == bfd_link_hash_defined - || h->root.type == bfd_link_hash_defweak) - { - asection *sec; - - sec = h->root.u.def.section; - val = (h->root.u.def.value - + sec->output_section->vma - + sec->output_offset); - } - else if (! bfd_link_relocatable (info)) - (*info->callbacks->undefined_symbol) - (info, h->root.root.string, input_bfd, input_section, - rel->r_vaddr - input_section->vma, TRUE); - } - - done = FALSE; - - if (howto->type == R_OPTCALL && ! bfd_link_relocatable (info) && symndx != -1) - { - int class_val; - - if (h != NULL) - class_val = h->symbol_class; - else - class_val = sym->n_sclass; - - switch (class_val) - { - case C_NULL: - /* This symbol is apparently not from a COFF input file. - We warn, and then assume that it is not a leaf - function. */ - (*info->callbacks->reloc_dangerous) - (info, - _("uncertain calling convention for non-COFF symbol"), - input_bfd, input_section, - rel->r_vaddr - input_section->vma); - break; - case C_LEAFSTAT: - case C_LEAFEXT: - /* This is a call to a leaf procedure; use the bal - instruction. */ - { - long olf; - unsigned long word; - - if (h != NULL) - { - BFD_ASSERT (h->numaux == 2); - olf = h->aux[1].x_bal.x_balntry; - } - else - { - bfd_byte *esyms; - union internal_auxent aux; - - BFD_ASSERT (sym->n_numaux == 2); - esyms = (bfd_byte *) obj_coff_external_syms (input_bfd); - esyms += (symndx + 2) * bfd_coff_symesz (input_bfd); - bfd_coff_swap_aux_in (input_bfd, esyms, sym->n_type, - sym->n_sclass, 1, sym->n_numaux, - &aux); - olf = aux.x_bal.x_balntry; - } - - word = bfd_get_32 (input_bfd, - (contents - + (rel->r_vaddr - input_section->vma))); - word = ((word + olf - val) & BAL_MASK) | BAL; - bfd_put_32 (input_bfd, - (bfd_vma) word, - contents + (rel->r_vaddr - input_section->vma)); - done = TRUE; - } - break; - case C_SCALL: - BFD_ASSERT (0); - break; - } - } - - if (! done) - { - if (howto->pc_relative) - addend += input_section->vma; - rstat = _bfd_final_link_relocate (howto, input_bfd, input_section, - contents, - rel->r_vaddr - input_section->vma, - val, addend); - } - - switch (rstat) - { - default: - abort (); - case bfd_reloc_ok: - break; - case bfd_reloc_overflow: - { - const char *name; - char buf[SYMNMLEN + 1]; - - if (symndx == -1) - name = "*ABS*"; - else if (h != NULL) - name = NULL; - else - { - name = _bfd_coff_internal_syment_name (input_bfd, sym, buf); - if (name == NULL) - return FALSE; - } - - (*info->callbacks->reloc_overflow) - (info, (h ? &h->root : NULL), name, howto->name, - (bfd_vma) 0, input_bfd, input_section, - rel->r_vaddr - input_section->vma); - } - } - } - - return TRUE; -} - -/* Adjust the symbol index of any reloc against a global symbol to - instead be a reloc against the internal symbol we created specially - for the section. */ - -static bfd_boolean -coff_i960_adjust_symndx (bfd *obfd ATTRIBUTE_UNUSED, - struct bfd_link_info *info ATTRIBUTE_UNUSED, - bfd *ibfd, - asection *sec ATTRIBUTE_UNUSED, - struct internal_reloc *irel, - bfd_boolean *adjustedp) -{ - struct coff_link_hash_entry *h; - - *adjustedp = FALSE; - - h = obj_coff_sym_hashes (ibfd)[irel->r_symndx]; - if (h == NULL - || (h->root.type != bfd_link_hash_defined - && h->root.type != bfd_link_hash_defweak)) - return TRUE; - - irel->r_symndx = h->root.u.def.section->output_section->target_index - 1; - *adjustedp = TRUE; - - return TRUE; -} - -#define coff_bfd_is_local_label_name coff_i960_is_local_label_name - -#define coff_start_final_link coff_i960_start_final_link - -#define coff_relocate_section coff_i960_relocate_section - -#define coff_adjust_symndx coff_i960_adjust_symndx - -#define coff_bfd_reloc_type_lookup coff_i960_reloc_type_lookup -#define coff_bfd_reloc_name_lookup coff_i960_reloc_name_lookup - -#include "coffcode.h" - -extern const bfd_target icoff_be_vec; - -CREATE_LITTLE_COFF_TARGET_VEC (icoff_le_vec, "coff-Intel-little", 0, 0, '_', & icoff_be_vec, COFF_SWAP_TABLE) - -const bfd_target icoff_be_vec = -{ - "coff-Intel-big", /* 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), - - (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */ - '_', /* leading underscore */ - '/', /* ar_pad_char */ - 15, /* ar_max_namelen */ - 0, /* match priority. */ - -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_set_format */ - _bfd_generic_mkarchive, 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), - - & icoff_le_vec, - - COFF_SWAP_TABLE -}; diff -Nru gdb-8.1/bfd/coff-ia64.c gdb-8.2/bfd/coff-ia64.c --- gdb-8.1/bfd/coff-ia64.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff-ia64.c 2018-09-05 07:27:13.000000000 +0000 @@ -72,7 +72,7 @@ { #ifdef COFF_IMAGE_WITH_PE { - struct external_PEI_DOS_hdr dos_hdr; + struct external_DOS_hdr dos_hdr; struct external_PEI_IMAGE_hdr image_hdr; file_ptr offset; @@ -87,7 +87,7 @@ /* There are really two magic numbers involved; the magic number that says this is a NT executable (PEI) and the magic number - that determines the architecture. The former is DOSMAGIC, + that determines the architecture. The former is IMAGE_DOS_SIGNATURE, stored in the e_magic field. The latter is stored in the f_magic field. If the NT magic number isn't valid, the architecture magic number could be mimicked by some other @@ -95,7 +95,7 @@ this routine can only be called correctly for a PEI file, check the e_magic number here, and, if it doesn't match, clobber the f_magic number so that we don't get a false match. */ - if (H_GET_16 (abfd, dos_hdr.e_magic) != DOSMAGIC) + if (H_GET_16 (abfd, dos_hdr.e_magic) != IMAGE_DOS_SIGNATURE) { bfd_set_error (bfd_error_wrong_format); return NULL; @@ -149,9 +149,9 @@ BFD_ENDIAN_LITTLE, /* data byte order is little */ BFD_ENDIAN_LITTLE, /* header byte order is little */ - (HAS_RELOC | EXEC_P | /* object flags */ - HAS_LINENO | HAS_DEBUG | - HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED), + (HAS_RELOC | EXEC_P /* object flags */ + | HAS_LINENO | HAS_DEBUG + | HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED), #ifndef COFF_WITH_PE (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC /* section flags */ @@ -179,22 +179,34 @@ bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* hdrs */ /* Note that we allow an object file to be treated as a core file as well. */ - {_bfd_dummy_target, ia64coff_object_p, /* bfd_check_format */ - bfd_generic_archive_p, ia64coff_object_p}, - {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), + { /* bfd_check_format */ + _bfd_dummy_target, + ia64coff_object_p, + bfd_generic_archive_p, + ia64coff_object_p + }, + { /* bfd_set_format */ + _bfd_bool_bfd_false_error, + coff_mkobject, + _bfd_generic_mkarchive, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents */ + _bfd_bool_bfd_false_error, + coff_write_object_contents, + _bfd_write_archive_contents, + _bfd_bool_bfd_false_error + }, + + 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, diff -Nru gdb-8.1/bfd/cofflink.c gdb-8.2/bfd/cofflink.c --- gdb-8.1/bfd/cofflink.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/cofflink.c 2018-09-05 07:27:13.000000000 +0000 @@ -349,7 +349,7 @@ && (*sym_hash)->root.type != bfd_link_hash_undefined && (*sym_hash)->root.type != bfd_link_hash_undefweak) _bfd_error_handler - (_("Warning: symbol `%s' is both section and non-section"), + (_("warning: symbol `%s' is both section and non-section"), name); addit = FALSE; @@ -451,8 +451,8 @@ || BTYPE (sym.n_type) == T_NULL))) _bfd_error_handler /* xgettext: c-format */ - (_("Warning: type of symbol `%s' changed" - " from %d to %d in %B"), + (_("warning: type of symbol `%s' changed" + " from %d to %d in %pB"), name, (*sym_hash)->type, sym.n_type, abfd); /* We don't want to change from a meaningful @@ -1839,7 +1839,7 @@ case C_FCN: if (obj_pe (input_bfd) - && strcmp (isym.n_name, ".bf") != 0 + && memcmp (isym.n_name, ".bf", sizeof ".bf") != 0 && isym.n_scnum > 0) { /* For PE, .lf and .ef get their value left alone, @@ -2370,7 +2370,7 @@ { _bfd_error_handler /* xgettext: c-format */ - (_("%B: relocs in section `%A', but it has no contents"), + (_("%pB: relocs in section `%pA', but it has no contents"), input_bfd, o); bfd_set_error (bfd_error_no_contents); return FALSE; @@ -2433,8 +2433,8 @@ if (ps->flags & SEC_EXCLUDE) (*flaginfo->info->callbacks->einfo) /* xgettext: c-format */ - (_("%X`%s' referenced in section `%A' of %B: " - "defined in discarded section `%A' of %B\n"), + (_("%X`%s' referenced in section `%pA' of %pB: " + "defined in discarded section `%pA' of %pB\n"), h->root.root.string, o, input_bfd, ps, ps->owner); } @@ -2731,7 +2731,7 @@ || bfd_link_relocatable (flaginfo->info))) _bfd_error_handler /* xgettext: c-format */ - (_("%B: %A: reloc overflow: %#x > 0xffff"), + (_("%pB: %pA: reloc overflow: %#x > 0xffff"), output_bfd, sec, sec->reloc_count); if (sec->lineno_count > 0xffff @@ -2739,7 +2739,7 @@ || bfd_link_relocatable (flaginfo->info))) _bfd_error_handler /* xgettext: c-format */ - (_("%B: warning: %A: line number overflow: %#x > 0xffff"), + (_("%pB: warning: %pA: line number overflow: %#x > 0xffff"), output_bfd, sec, sec->lineno_count); auxp->x_scn.x_nreloc = sec->reloc_count; @@ -2962,7 +2962,7 @@ { _bfd_error_handler /* xgettext: c-format */ - (_("%B: illegal symbol index %ld in relocs"), input_bfd, symndx); + (_("%pB: illegal symbol index %ld in relocs"), input_bfd, symndx); return FALSE; } else @@ -3124,8 +3124,8 @@ case bfd_reloc_outofrange: _bfd_error_handler /* xgettext: c-format */ - (_("%B: bad reloc address %#Lx in section `%A'"), - input_bfd, rel->r_vaddr, input_section); + (_("%pB: bad reloc address %#" PRIx64 " in section `%pA'"), + input_bfd, (uint64_t) rel->r_vaddr, input_section); return FALSE; case bfd_reloc_overflow: { diff -Nru gdb-8.1/bfd/coff-m68k.c gdb-8.2/bfd/coff-m68k.c --- gdb-8.1/bfd/coff-m68k.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff-m68k.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,548 +0,0 @@ -/* BFD back-end for Motorola 68000 COFF binaries. - Copyright (C) 1990-2018 Free Software Foundation, Inc. - Written by Cygnus Support. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "coff/m68k.h" -#include "coff/internal.h" -#include "libcoff.h" - -/* This source file is compiled multiple times for various m68k COFF - variants. The following macros control its behaviour: - - TARGET_SYM - The C name of the BFD target vector. The default is m68k_coff_vec. - TARGET_NAME - The user visible target name. The default is "coff-m68k". - NAMES_HAVE_UNDERSCORE - Whether symbol names have an underscore. - ONLY_DECLARE_RELOCS - Only declare the relocation howto array. Don't actually compile - it. The actual array will be picked up in another version of the - file. - STATIC_RELOCS - Make the relocation howto array, and associated functions, static. - COFF_COMMON_ADDEND - If this is defined, then, for a relocation against a common - symbol, the object file holds the value (the size) of the common - symbol. If this is not defined, then, for a relocation against a - common symbol, the object file holds zero. */ - -#define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (2) - -#ifndef COFF_PAGE_SIZE -/* The page size is a guess based on ELF. */ -#define COFF_PAGE_SIZE 0x2000 -#endif - -#ifndef COFF_COMMON_ADDEND -#define RELOC_SPECIAL_FN 0 -#else -static bfd_reloc_status_type m68kcoff_common_addend_special_fn - (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); - -#define RELOC_SPECIAL_FN m68kcoff_common_addend_special_fn -#endif - -static bfd_boolean m68k_coff_is_local_label_name (bfd *, const char *); - -/* On the delta, a symbol starting with L% is local. We won't see - such a symbol on other platforms, so it should be safe to always - consider it local here. */ - -static bfd_boolean -m68k_coff_is_local_label_name (bfd *abfd, const char *name) -{ - if (name[0] == 'L' && name[1] == '%') - return TRUE; - - return _bfd_coff_is_local_label_name (abfd, name); -} - -#ifndef STATIC_RELOCS -/* Clean up namespace. */ -#define m68kcoff_howto_table _bfd_m68kcoff_howto_table -#define m68k_rtype2howto _bfd_m68kcoff_rtype2howto -#define m68k_howto2rtype _bfd_m68kcoff_howto2rtype -#define m68k_reloc_type_lookup _bfd_m68kcoff_reloc_type_lookup -#define m68k_reloc_name_lookup _bfd_m68kcoff_reloc_name_lookup -#endif - -#ifdef ONLY_DECLARE_RELOCS -extern reloc_howto_type m68kcoff_howto_table[]; -#else -#ifdef STATIC_RELOCS -static -#endif -reloc_howto_type m68kcoff_howto_table[] = - { - HOWTO (R_RELBYTE, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "8", TRUE, 0x000000ff,0x000000ff, FALSE), - HOWTO (R_RELWORD, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "16", TRUE, 0x0000ffff,0x0000ffff, FALSE), - HOWTO (R_RELLONG, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "32", TRUE, 0xffffffff,0xffffffff, FALSE), - HOWTO (R_PCRBYTE, 0, 0, 8, TRUE, 0, complain_overflow_signed, RELOC_SPECIAL_FN, "DISP8", TRUE, 0x000000ff,0x000000ff, FALSE), - HOWTO (R_PCRWORD, 0, 1, 16, TRUE, 0, complain_overflow_signed, RELOC_SPECIAL_FN, "DISP16", TRUE, 0x0000ffff,0x0000ffff, FALSE), - HOWTO (R_PCRLONG, 0, 2, 32, TRUE, 0, complain_overflow_signed, RELOC_SPECIAL_FN, "DISP32", TRUE, 0xffffffff,0xffffffff, FALSE), - HOWTO (R_RELLONG_NEG, 0, -2, 32, FALSE, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "-32", TRUE, 0xffffffff,0xffffffff, FALSE), - }; -#endif /* not ONLY_DECLARE_RELOCS */ - -#ifndef BADMAG -#define BADMAG(x) M68KBADMAG(x) -#endif -#define M68 1 /* Customize coffcode.h */ - -/* Turn a howto into a reloc number */ - -#ifdef ONLY_DECLARE_RELOCS -extern void m68k_rtype2howto (arelent *internal, int relocentry); -extern int m68k_howto2rtype (reloc_howto_type *); -extern reloc_howto_type * m68k_reloc_type_lookup - (bfd *, bfd_reloc_code_real_type); -extern reloc_howto_type * m68k_reloc_name_lookup (bfd *, const char *); -#else - -#ifdef STATIC_RELOCS -#define STAT_REL static -#else -#define STAT_REL -#endif - -STAT_REL void m68k_rtype2howto (arelent *, int); -STAT_REL int m68k_howto2rtype (reloc_howto_type *); -STAT_REL reloc_howto_type * m68k_reloc_type_lookup (bfd *, bfd_reloc_code_real_type); -STAT_REL reloc_howto_type * m68k_reloc_name_lookup (bfd *, const char *); - -STAT_REL void -m68k_rtype2howto (arelent *internal, int relocentry) -{ - switch (relocentry) - { - case R_RELBYTE: internal->howto = m68kcoff_howto_table + 0; break; - case R_RELWORD: internal->howto = m68kcoff_howto_table + 1; break; - case R_RELLONG: internal->howto = m68kcoff_howto_table + 2; break; - case R_PCRBYTE: internal->howto = m68kcoff_howto_table + 3; break; - case R_PCRWORD: internal->howto = m68kcoff_howto_table + 4; break; - case R_PCRLONG: internal->howto = m68kcoff_howto_table + 5; break; - case R_RELLONG_NEG: internal->howto = m68kcoff_howto_table + 6; break; - default: internal->howto = NULL; break; - } -} - -STAT_REL int -m68k_howto2rtype (reloc_howto_type * internal) -{ - if (internal->pc_relative) - { - switch (internal->bitsize) - { - case 32: return R_PCRLONG; - case 16: return R_PCRWORD; - case 8: return R_PCRBYTE; - } - } - else - { - switch (internal->bitsize) - { - case 32: return R_RELLONG; - case 16: return R_RELWORD; - case 8: return R_RELBYTE; - } - } - return R_RELLONG; -} - -STAT_REL reloc_howto_type * -m68k_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, - bfd_reloc_code_real_type code) -{ - switch (code) - { - default: return NULL; - case BFD_RELOC_8: return m68kcoff_howto_table + 0; - case BFD_RELOC_16: return m68kcoff_howto_table + 1; - case BFD_RELOC_CTOR: - case BFD_RELOC_32: return m68kcoff_howto_table + 2; - case BFD_RELOC_8_PCREL: return m68kcoff_howto_table + 3; - case BFD_RELOC_16_PCREL: return m68kcoff_howto_table + 4; - case BFD_RELOC_32_PCREL: return m68kcoff_howto_table + 5; - /* FIXME: There doesn't seem to be a code for R_RELLONG_NEG. */ - } - /*NOTREACHED*/ -} - -STAT_REL reloc_howto_type * -m68k_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, - const char *r_name) -{ - unsigned int i; - - for (i = 0; - i < sizeof (m68kcoff_howto_table) / sizeof (m68kcoff_howto_table[0]); - i++) - if (m68kcoff_howto_table[i].name != NULL - && strcasecmp (m68kcoff_howto_table[i].name, r_name) == 0) - return &m68kcoff_howto_table[i]; - - return NULL; -} - -#endif /* not ONLY_DECLARE_RELOCS */ - -#define RTYPE2HOWTO(internal, relocentry) \ - m68k_rtype2howto(internal, (relocentry)->r_type) - -#define SELECT_RELOC(external, internal) \ - external.r_type = m68k_howto2rtype (internal) - -#define coff_bfd_reloc_type_lookup m68k_reloc_type_lookup -#define coff_bfd_reloc_name_lookup m68k_reloc_name_lookup - -#ifndef COFF_COMMON_ADDEND -#ifndef coff_rtype_to_howto - -#define coff_rtype_to_howto m68kcoff_rtype_to_howto - -static reloc_howto_type * -m68kcoff_rtype_to_howto (bfd *abfd ATTRIBUTE_UNUSED, - asection *sec, - struct internal_reloc *rel, - struct coff_link_hash_entry *h ATTRIBUTE_UNUSED, - struct internal_syment *sym ATTRIBUTE_UNUSED, - bfd_vma *addendp) -{ - arelent relent; - reloc_howto_type *howto; - - relent.howto = NULL; - RTYPE2HOWTO (&relent, rel); - - howto = relent.howto; - - if (howto != NULL && howto->pc_relative) - *addendp += sec->vma; - - return howto; -} - -#endif /* ! defined (coff_rtype_to_howto) */ -#endif /* ! defined (COFF_COMMON_ADDEND) */ - -#ifdef COFF_COMMON_ADDEND - -/* If COFF_COMMON_ADDEND is defined, then when using m68k COFF the - value stored in the .text section for a reference to a common - 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 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. */ - -static bfd_reloc_status_type -m68kcoff_common_addend_special_fn (bfd *abfd, - arelent *reloc_entry, - asymbol *symbol, - void * data, - asection *input_section ATTRIBUTE_UNUSED, - bfd *output_bfd, - char **error_message ATTRIBUTE_UNUSED) -{ - symvalue diff; - - if (output_bfd == (bfd *) NULL) - return bfd_reloc_continue; - - if (bfd_is_com_section (symbol->section)) - { - /* We are relocating a common symbol. The current value in the - object file is ORIG + OFFSET, where ORIG is the value of the - common symbol as seen by the object file when it was compiled - (this may be zero if the symbol was undefined) and OFFSET is - the offset into the common symbol (normally zero, but may be - non-zero when referring to a field in a common structure). - ORIG is the negative of reloc_entry->addend, which is set by - the CALC_ADDEND macro below. We want to replace the value in - the object file with NEW + OFFSET, where NEW is the value of - the common symbol which we are going to put in the final - object file. NEW is symbol->value. */ - diff = symbol->value + reloc_entry->addend; - } - else - { - /* For some reason bfd_perform_relocation always effectively - ignores the addend for a COFF target when producing - relocatable output. This seems to be always wrong for 386 - COFF, so we handle the addend here instead. */ - diff = reloc_entry->addend; - } - -#define DOIT(x) \ - x = ((x & ~howto->dst_mask) | (((x & howto->src_mask) + diff) & howto->dst_mask)) - - if (diff != 0) - { - reloc_howto_type *howto = reloc_entry->howto; - unsigned char *addr = (unsigned char *) data + reloc_entry->address; - - if (! bfd_reloc_offset_in_range (howto, abfd, input_section, - reloc_entry->address - * bfd_octets_per_byte (abfd))) - return bfd_reloc_outofrange; - - switch (howto->size) - { - case 0: - { - char x = bfd_get_8 (abfd, addr); - DOIT (x); - bfd_put_8 (abfd, x, addr); - } - break; - - case 1: - { - short x = bfd_get_16 (abfd, addr); - DOIT (x); - bfd_put_16 (abfd, (bfd_vma) x, addr); - } - break; - - case 2: - { - long x = bfd_get_32 (abfd, addr); - DOIT (x); - bfd_put_32 (abfd, (bfd_vma) x, addr); - } - break; - - default: - abort (); - } - } - - /* Now let bfd_perform_relocation finish everything up. */ - return bfd_reloc_continue; -} - -/* Compute the addend of a reloc. If the reloc is to a common symbol, - the object file contains the value of the common symbol. By the - time this is called, the linker may be using a different symbol - from a different object file with a different value. Therefore, we - hack wildly to locate the original symbol from this file so that we - can make the correct adjustment. This macro sets coffsym to the - symbol from the original file, and uses it to set the addend value - correctly. If this is not a common symbol, the usual addend - calculation is done, except that an additional tweak is needed for - PC relative relocs. - FIXME: This macro refers to symbols and asect; these are from the - calling function, not the macro arguments. */ - -#define CALC_ADDEND(abfd, ptr, reloc, cache_ptr) \ - { \ - coff_symbol_type *coffsym = (coff_symbol_type *) NULL; \ - if (ptr && bfd_asymbol_bfd (ptr) != abfd) \ - coffsym = (obj_symbols (abfd) \ - + (cache_ptr->sym_ptr_ptr - symbols)); \ - else if (ptr) \ - coffsym = coff_symbol_from (ptr); \ - if (coffsym != (coff_symbol_type *) NULL \ - && coffsym->native->u.syment.n_scnum == 0) \ - cache_ptr->addend = - coffsym->native->u.syment.n_value; \ - else if (ptr && bfd_asymbol_bfd (ptr) == abfd \ - && ptr->section != (asection *) NULL) \ - cache_ptr->addend = - (ptr->section->vma + ptr->value); \ - else \ - cache_ptr->addend = 0; \ - if (ptr && (reloc.r_type == R_PCRBYTE \ - || reloc.r_type == R_PCRWORD \ - || reloc.r_type == R_PCRLONG)) \ - cache_ptr->addend += asect->vma; \ - } - -#ifndef coff_rtype_to_howto - -/* coff-m68k.c uses the special COFF backend linker. We need to - adjust common symbols. */ - -static reloc_howto_type * -m68kcoff_common_addend_rtype_to_howto (bfd *abfd ATTRIBUTE_UNUSED, - asection *sec, - struct internal_reloc *rel, - struct coff_link_hash_entry *h, - struct internal_syment *sym, - bfd_vma *addendp) -{ - arelent relent; - reloc_howto_type *howto; - - relent.howto = NULL; - RTYPE2HOWTO (&relent, rel); - - howto = relent.howto; - - if (howto->pc_relative) - *addendp += sec->vma; - - if (sym != NULL && sym->n_scnum == 0 && sym->n_value != 0) - { - /* This is a common symbol. The section contents include the - size (sym->n_value) as an addend. The relocate_section - function will be adding in the final value of the symbol. We - need to subtract out the current size in order to get the - correct result. */ - BFD_ASSERT (h != NULL); - *addendp -= sym->n_value; - } - - /* If the output symbol is common (in which case this must be a - 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; - - return howto; -} - -#define coff_rtype_to_howto m68kcoff_common_addend_rtype_to_howto - -#endif /* ! defined (coff_rtype_to_howto) */ - -#endif /* COFF_COMMON_ADDEND */ - -#if !defined ONLY_DECLARE_RELOCS && ! defined STATIC_RELOCS -/* Given a .data section and a .emreloc in-memory section, store - relocation information into the .emreloc section which can be - used at runtime to relocate the section. This is called by the - linker when the --embedded-relocs switch is used. This is called - after the add_symbols entry point has been called for all the - objects, and before the final_link entry point is called. */ - -bfd_boolean -bfd_m68k_coff_create_embedded_relocs (bfd *abfd, - struct bfd_link_info *info, - asection *datasec, - asection *relsec, - char **errmsg) -{ - char *extsyms; - bfd_size_type symesz; - struct internal_reloc *irel, *irelend; - bfd_byte *p; - bfd_size_type amt; - - BFD_ASSERT (! bfd_link_relocatable (info)); - - *errmsg = NULL; - - if (datasec->reloc_count == 0) - return TRUE; - - extsyms = obj_coff_external_syms (abfd); - symesz = bfd_coff_symesz (abfd); - - irel = _bfd_coff_read_internal_relocs (abfd, datasec, TRUE, NULL, FALSE, - NULL); - irelend = irel + datasec->reloc_count; - - amt = (bfd_size_type) datasec->reloc_count * 12; - relsec->contents = (bfd_byte *) bfd_alloc (abfd, amt); - if (relsec->contents == NULL) - return FALSE; - - p = relsec->contents; - - for (; irel < irelend; irel++, p += 12) - { - asection *targetsec; - - /* We are going to write a four byte longword into the runtime - reloc section. The longword will be the address in the data - section which must be relocated. It is followed by the name - of the target section NUL-padded or truncated to 8 - characters. */ - - /* We can only relocate absolute longword relocs at run time. */ - if (irel->r_type != R_RELLONG) - { - *errmsg = _("unsupported reloc type"); - bfd_set_error (bfd_error_bad_value); - return FALSE; - } - - if (irel->r_symndx == -1) - targetsec = bfd_abs_section_ptr; - else - { - struct coff_link_hash_entry *h; - - h = obj_coff_sym_hashes (abfd)[irel->r_symndx]; - if (h == NULL) - { - struct internal_syment isym; - - bfd_coff_swap_sym_in (abfd, extsyms + symesz * irel->r_symndx, - &isym); - targetsec = coff_section_from_bfd_index (abfd, isym.n_scnum); - } - else if (h->root.type == bfd_link_hash_defined - || h->root.type == bfd_link_hash_defweak) - targetsec = h->root.u.def.section; - else - targetsec = NULL; - } - - bfd_put_32 (abfd, - (irel->r_vaddr - datasec->vma + datasec->output_offset), p); - memset (p + 4, 0, 8); - if (targetsec != NULL) - strncpy ((char *) p + 4, targetsec->output_section->name, 8); - } - - return TRUE; -} -#endif /* neither ONLY_DECLARE_RELOCS not STATIC_RELOCS */ - -#define coff_bfd_is_local_label_name m68k_coff_is_local_label_name - -#define coff_relocate_section _bfd_coff_generic_relocate_section - -#ifndef bfd_pe_print_pdata -#define bfd_pe_print_pdata NULL -#endif - -#include "coffcode.h" - -#ifndef TARGET_SYM -#define TARGET_SYM m68k_coff_vec -#endif - -#ifndef TARGET_NAME -#define TARGET_NAME "coff-m68k" -#endif - -#ifdef NAMES_HAVE_UNDERSCORE -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, COFF_SWAP_TABLE) -#endif diff -Nru gdb-8.1/bfd/coff-m88k.c gdb-8.2/bfd/coff-m88k.c --- gdb-8.1/bfd/coff-m88k.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff-m88k.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,291 +0,0 @@ -/* BFD back-end for Motorola 88000 COFF "Binary Compatibility Standard" files. - Copyright (C) 1990-2018 Free Software Foundation, Inc. - Written by Cygnus Support. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define M88 1 /* Customize various include files */ -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "coff/m88k.h" -#include "coff/internal.h" -#include "libcoff.h" - -static bfd_reloc_status_type m88k_special_reloc - (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); - -#define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (3) - -#define GET_SCNHDR_NRELOC H_GET_32 -#define GET_SCNHDR_NLNNO H_GET_32 - -/* On coff-m88k, local labels start with '@'. */ - -#define coff_bfd_is_local_label_name m88k_is_local_label_name - -static bfd_boolean -m88k_is_local_label_name (bfd *abfd ATTRIBUTE_UNUSED, const char *name) -{ - return name[0] == '@'; -} - -static bfd_reloc_status_type -m88k_special_reloc (bfd *abfd, - arelent *reloc_entry, - asymbol *symbol, - void * data, - asection *input_section, - bfd *output_bfd, - char **error_message ATTRIBUTE_UNUSED) -{ - reloc_howto_type *howto = reloc_entry->howto; - - switch (howto->type) - { - case R_HVRT16: - case R_LVRT16: - if (output_bfd != (bfd *) NULL) - { - /* This is a partial relocation, and we want to apply the - relocation to the reloc entry rather than the raw data. - Modify the reloc inplace to reflect what we now know. */ - - reloc_entry->address += input_section->output_offset; - } - else - { - bfd_vma output_base = 0; - bfd_vma addr = reloc_entry->address; - bfd_vma x; - asection *reloc_target_output_section; - long relocation = 0; - - if (! bfd_reloc_offset_in_range (howto, abfd, input_section, - reloc_entry->address - * bfd_octets_per_byte (abfd))) - return bfd_reloc_outofrange; - - x = bfd_get_16 (abfd, (bfd_byte *) data + addr); - - /* Work out which section the relocation is targeted at and the - initial relocation command value. */ - - /* Get symbol value. (Common symbols are special.) */ - if (bfd_is_com_section (symbol->section)) - relocation = 0; - else - relocation = symbol->value; - - reloc_target_output_section = symbol->section->output_section; - - /* Convert input-section-relative symbol value to absolute. */ - if (output_bfd) - output_base = 0; - else - output_base = reloc_target_output_section->vma; - - relocation += output_base + symbol->section->output_offset; - - /* Add in supplied addend. */ - relocation += ((reloc_entry->addend << howto->bitsize) + x); - - reloc_entry->addend = 0; - - relocation >>= (bfd_vma) howto->rightshift; - - /* Shift everything up to where it's going to be used */ - - relocation <<= (bfd_vma) howto->bitpos; - - if (relocation) - bfd_put_16 (abfd, (bfd_vma) relocation, - (unsigned char *) data + addr); - } - - /* 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; - - return bfd_reloc_ok; - - default: - if (output_bfd != (bfd *) NULL) - { - /* This is a partial relocation, and we want to apply the - relocation to the reloc entry rather than the raw data. - Modify the reloc inplace to reflect what we now know. */ - - reloc_entry->address += input_section->output_offset; - return bfd_reloc_ok; - } - break; - } - - if (output_bfd == (bfd *) NULL) - return bfd_reloc_continue; - - return bfd_reloc_ok; -} - -static reloc_howto_type howto_table[] = -{ - HOWTO (R_PCR16L, /* type */ - 02, /* rightshift */ - 1, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - TRUE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - m88k_special_reloc, /* special_function */ - "PCR16L", /* name */ - FALSE, /* partial_inplace */ - 0x0000ffff, /* src_mask */ - 0x0000ffff, /* dst_mask */ - TRUE), /* pcrel_offset */ - - HOWTO (R_PCR26L, /* type */ - 02, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 26, /* bitsize */ - TRUE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - m88k_special_reloc, /* special_function */ - "PCR26L", /* name */ - FALSE, /* partial_inplace */ - 0x03ffffff, /* src_mask */ - 0x03ffffff, /* dst_mask */ - TRUE), /* pcrel_offset */ - - HOWTO (R_VRT16, /* type */ - 00, /* rightshift */ - 1, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - m88k_special_reloc, /* special_function */ - "VRT16", /* name */ - FALSE, /* partial_inplace */ - 0x0000ffff, /* src_mask */ - 0x0000ffff, /* dst_mask */ - TRUE), /* pcrel_offset */ - - HOWTO (R_HVRT16, /* type */ - 16, /* rightshift */ - 1, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - m88k_special_reloc, /* special_function */ - "HVRT16", /* name */ - FALSE, /* partial_inplace */ - 0x0000ffff, /* src_mask */ - 0x0000ffff, /* dst_mask */ - TRUE), /* pcrel_offset */ - - HOWTO (R_LVRT16, /* type */ - 00, /* rightshift */ - 1, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - m88k_special_reloc, /* special_function */ - "LVRT16", /* name */ - FALSE, /* partial_inplace */ - 0x0000ffff, /* src_mask */ - 0x0000ffff, /* dst_mask */ - TRUE), /* pcrel_offset */ - - HOWTO (R_VRT32, /* type */ - 00, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 32, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - m88k_special_reloc, /* special_function */ - "VRT32", /* name */ - FALSE, /* partial_inplace */ - 0xffffffff, /* src_mask */ - 0xffffffff, /* dst_mask */ - TRUE), /* pcrel_offset */ -}; - -/* Code to turn an external r_type into a pointer to an entry in the - above howto table. */ -static void -rtype2howto (arelent *cache_ptr, struct internal_reloc *dst) -{ - if (dst->r_type >= R_PCR16L && dst->r_type <= R_VRT32) - { - cache_ptr->howto = howto_table + dst->r_type - R_PCR16L; - } - else - { - BFD_ASSERT (0); - } -} - -#define RTYPE2HOWTO(cache_ptr, dst) rtype2howto (cache_ptr, dst) - -/* Code to swap in the reloc offset */ -#define SWAP_IN_RELOC_OFFSET H_GET_16 -#define SWAP_OUT_RELOC_OFFSET H_PUT_16 - -#define RELOC_PROCESSING(relent,reloc,symbols,abfd,section) \ - reloc_processing(relent, reloc, symbols, abfd, section) - -static void -reloc_processing (arelent *relent, - struct internal_reloc *reloc, - asymbol **symbols, - bfd *abfd, - asection *section) -{ - relent->address = reloc->r_vaddr; - rtype2howto (relent, reloc); - - if (((int) reloc->r_symndx) > 0) - { - relent->sym_ptr_ptr = symbols + obj_convert (abfd)[reloc->r_symndx]; - } - else - { - relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; - } - - relent->addend = reloc->r_offset; - relent->address -= section->vma; -} - -#define BADMAG(x) MC88BADMAG(x) - -#ifndef bfd_pe_print_pdata -#define bfd_pe_print_pdata NULL -#endif - -#include "coffcode.h" - -#undef coff_write_armap - -CREATE_BIG_COFF_TARGET_VEC (m88k_coff_bcs_vec, "coff-m88kbcs", 0, 0, '_', NULL, COFF_SWAP_TABLE) diff -Nru gdb-8.1/bfd/coff-mcore.c gdb-8.2/bfd/coff-mcore.c --- gdb-8.1/bfd/coff-mcore.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff-mcore.c 2018-09-05 07:27:13.000000000 +0000 @@ -242,7 +242,7 @@ BFD_ASSERT (reloc_entry->howto != (reloc_howto_type *)0); /* xgettext: c-format */ - _bfd_error_handler (_("%B: Relocation %s (%d) is not currently supported.\n"), + _bfd_error_handler (_("%pB: Relocation %s (%d) is not currently supported.\n"), abfd, reloc_entry->howto->name, reloc_entry->howto->type); @@ -368,7 +368,7 @@ { _bfd_error_handler /* xgettext: c-format */ - (_("%B: compiled for a %s system and target is %s.\n"), + (_("%pB: compiled for a %s system and target is %s.\n"), input_bfd, bfd_big_endian (input_bfd) ? _("big endian") : _("little endian"), bfd_big_endian (output_bfd) ? _("big endian") : _("little endian")); @@ -470,7 +470,7 @@ { default: /* xgettext: c-format */ - _bfd_error_handler (_("%B: unsupported relocation type 0x%02x"), + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), input_bfd, r_type); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -478,10 +478,11 @@ case IMAGE_REL_MCORE_ABSOLUTE: _bfd_error_handler /* xgettext: c-format */ - (_("Warning: unsupported reloc %s \n" - "sym %ld (%s), r_vaddr %Ld (%#Lx)"), + (_("warning: unsupported reloc %s \n" + "sym %ld (%s), r_vaddr %" PRId64 " (%#" PRIx64 ")"), howto->name, input_bfd, input_section, - rel->r_symndx, my_name, rel->r_vaddr, rel->r_vaddr); + rel->r_symndx, my_name, (int64_t) rel->r_vaddr, + (uint64_t) rel->r_vaddr); break; case IMAGE_REL_MCORE_PCREL_IMM8BY4: diff -Nru gdb-8.1/bfd/coff-mips.c gdb-8.2/bfd/coff-mips.c --- gdb-8.1/bfd/coff-mips.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff-mips.c 2018-09-05 07:27:13.000000000 +0000 @@ -1236,6 +1236,67 @@ return TRUE; } + +static void +mips_ecoff_swap_coff_aux_in (bfd *abfd ATTRIBUTE_UNUSED, + void *ext1 ATTRIBUTE_UNUSED, + int type ATTRIBUTE_UNUSED, + int in_class ATTRIBUTE_UNUSED, + int indx ATTRIBUTE_UNUSED, + int numaux ATTRIBUTE_UNUSED, + void *in1 ATTRIBUTE_UNUSED) +{ +} + +static void +mips_ecoff_swap_coff_sym_in (bfd *abfd ATTRIBUTE_UNUSED, + void *ext1 ATTRIBUTE_UNUSED, + void *in1 ATTRIBUTE_UNUSED) +{ +} + +static void +mips_ecoff_swap_coff_lineno_in (bfd *abfd ATTRIBUTE_UNUSED, + void *ext1 ATTRIBUTE_UNUSED, + void *in1 ATTRIBUTE_UNUSED) +{ +} + +static unsigned int +mips_ecoff_swap_coff_aux_out (bfd *abfd ATTRIBUTE_UNUSED, + void *inp ATTRIBUTE_UNUSED, + int type ATTRIBUTE_UNUSED, + int in_class ATTRIBUTE_UNUSED, + int indx ATTRIBUTE_UNUSED, + int numaux ATTRIBUTE_UNUSED, + void *extp ATTRIBUTE_UNUSED) +{ + return 0; +} + +static unsigned int +mips_ecoff_swap_coff_sym_out (bfd *abfd ATTRIBUTE_UNUSED, + void *inp ATTRIBUTE_UNUSED, + void *extp ATTRIBUTE_UNUSED) +{ + return 0; +} + +static unsigned int +mips_ecoff_swap_coff_lineno_out (bfd *abfd ATTRIBUTE_UNUSED, + void *inp ATTRIBUTE_UNUSED, + void *extp ATTRIBUTE_UNUSED) +{ + return 0; +} + +static unsigned int +mips_ecoff_swap_coff_reloc_out (bfd *abfd ATTRIBUTE_UNUSED, + void *inp ATTRIBUTE_UNUSED, + void *extp ATTRIBUTE_UNUSED) +{ + return 0; +} /* This is the ECOFF backend structure. The backend field of the target vector points to this. */ @@ -1244,13 +1305,10 @@ { /* COFF backend structure. */ { - (void (*) (bfd *,void *,int,int,int,int,void *)) bfd_void, /* aux_in */ - (void (*) (bfd *,void *,void *)) bfd_void, /* sym_in */ - (void (*) (bfd *,void *,void *)) bfd_void, /* lineno_in */ - (unsigned (*) (bfd *,void *,int,int,int,int,void *)) bfd_void,/*aux_out*/ - (unsigned (*) (bfd *,void *,void *)) bfd_void, /* sym_out */ - (unsigned (*) (bfd *,void *,void *)) bfd_void, /* lineno_out */ - (unsigned (*) (bfd *,void *,void *)) bfd_void, /* reloc_out */ + mips_ecoff_swap_coff_aux_in, mips_ecoff_swap_coff_sym_in, + mips_ecoff_swap_coff_lineno_in, mips_ecoff_swap_coff_aux_out, + mips_ecoff_swap_coff_sym_out, mips_ecoff_swap_coff_lineno_out, + mips_ecoff_swap_coff_reloc_out, mips_ecoff_swap_filehdr_out, mips_ecoff_swap_aouthdr_out, mips_ecoff_swap_scnhdr_out, FILHSZ, AOUTSZ, SCNHSZ, 0, 0, 0, 0, FILNMLEN, TRUE, @@ -1362,6 +1420,7 @@ #define _bfd_ecoff_section_already_linked \ _bfd_coff_section_already_linked #define _bfd_ecoff_bfd_define_common_symbol bfd_generic_define_common_symbol +#define _bfd_ecoff_bfd_link_hide_symbol _bfd_generic_link_hide_symbol #define _bfd_ecoff_bfd_define_start_stop bfd_generic_define_start_stop #define _bfd_ecoff_set_reloc _bfd_generic_set_reloc @@ -1374,9 +1433,9 @@ BFD_ENDIAN_LITTLE, /* data byte order is little */ BFD_ENDIAN_LITTLE, /* header byte order is little */ - (HAS_RELOC | EXEC_P | /* object flags */ - HAS_LINENO | HAS_DEBUG | - HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED), + (HAS_RELOC | EXEC_P /* object flags */ + | HAS_LINENO | HAS_DEBUG + | HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED), (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_CODE | SEC_DATA), 0, /* leading underscore */ @@ -1390,26 +1449,38 @@ 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, _bfd_ecoff_mkobject, /* bfd_set_format */ - _bfd_generic_mkarchive, bfd_false}, - {bfd_false, _bfd_ecoff_write_object_contents, /* bfd_write_contents */ - _bfd_write_archive_contents, bfd_false}, - - BFD_JUMP_TABLE_GENERIC (_bfd_ecoff), - BFD_JUMP_TABLE_COPY (_bfd_ecoff), - BFD_JUMP_TABLE_CORE (_bfd_nocore), - BFD_JUMP_TABLE_ARCHIVE (_bfd_ecoff), - BFD_JUMP_TABLE_SYMBOLS (_bfd_ecoff), - BFD_JUMP_TABLE_RELOCS (_bfd_ecoff), - BFD_JUMP_TABLE_WRITE (_bfd_ecoff), - BFD_JUMP_TABLE_LINK (_bfd_ecoff), - BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), + { /* bfd_check_format */ + _bfd_dummy_target, + coff_object_p, + bfd_generic_archive_p, + _bfd_dummy_target + }, + { /* bfd_set_format */ + _bfd_bool_bfd_false_error, + _bfd_ecoff_mkobject, + _bfd_generic_mkarchive, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents */ + _bfd_bool_bfd_false_error, + _bfd_ecoff_write_object_contents, + _bfd_write_archive_contents, + _bfd_bool_bfd_false_error + }, - & mips_ecoff_be_vec, + BFD_JUMP_TABLE_GENERIC (_bfd_ecoff), + BFD_JUMP_TABLE_COPY (_bfd_ecoff), + BFD_JUMP_TABLE_CORE (_bfd_nocore), + BFD_JUMP_TABLE_ARCHIVE (_bfd_ecoff), + BFD_JUMP_TABLE_SYMBOLS (_bfd_ecoff), + BFD_JUMP_TABLE_RELOCS (_bfd_ecoff), + BFD_JUMP_TABLE_WRITE (_bfd_ecoff), + BFD_JUMP_TABLE_LINK (_bfd_ecoff), + BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), - & mips_ecoff_backend_data + &mips_ecoff_be_vec, + + &mips_ecoff_backend_data }; const bfd_target mips_ecoff_be_vec = @@ -1419,9 +1490,9 @@ BFD_ENDIAN_BIG, /* data byte order is big */ BFD_ENDIAN_BIG, /* header byte order is big */ - (HAS_RELOC | EXEC_P | /* object flags */ - HAS_LINENO | HAS_DEBUG | - HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED), + (HAS_RELOC | EXEC_P /* object flags */ + | HAS_LINENO | HAS_DEBUG + | HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED), (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_CODE | SEC_DATA), 0, /* leading underscore */ @@ -1434,26 +1505,39 @@ bfd_getb64, bfd_getb_signed_64, bfd_putb64, bfd_getb32, bfd_getb_signed_32, bfd_putb32, bfd_getb16, bfd_getb_signed_16, bfd_putb16, - {_bfd_dummy_target, coff_object_p, /* bfd_check_format */ - bfd_generic_archive_p, _bfd_dummy_target}, - {bfd_false, _bfd_ecoff_mkobject, /* bfd_set_format */ - _bfd_generic_mkarchive, bfd_false}, - {bfd_false, _bfd_ecoff_write_object_contents, /* bfd_write_contents */ - _bfd_write_archive_contents, bfd_false}, - - BFD_JUMP_TABLE_GENERIC (_bfd_ecoff), - BFD_JUMP_TABLE_COPY (_bfd_ecoff), - BFD_JUMP_TABLE_CORE (_bfd_nocore), - BFD_JUMP_TABLE_ARCHIVE (_bfd_ecoff), - BFD_JUMP_TABLE_SYMBOLS (_bfd_ecoff), - BFD_JUMP_TABLE_RELOCS (_bfd_ecoff), - BFD_JUMP_TABLE_WRITE (_bfd_ecoff), - BFD_JUMP_TABLE_LINK (_bfd_ecoff), - BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), - & mips_ecoff_le_vec, + { /* bfd_check_format */ + _bfd_dummy_target, + coff_object_p, + bfd_generic_archive_p, + _bfd_dummy_target + }, + { /* bfd_set_format */ + _bfd_bool_bfd_false_error, + _bfd_ecoff_mkobject, + _bfd_generic_mkarchive, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents */ + _bfd_bool_bfd_false_error, + _bfd_ecoff_write_object_contents, + _bfd_write_archive_contents, + _bfd_bool_bfd_false_error + }, + + BFD_JUMP_TABLE_GENERIC (_bfd_ecoff), + BFD_JUMP_TABLE_COPY (_bfd_ecoff), + BFD_JUMP_TABLE_CORE (_bfd_nocore), + BFD_JUMP_TABLE_ARCHIVE (_bfd_ecoff), + BFD_JUMP_TABLE_SYMBOLS (_bfd_ecoff), + BFD_JUMP_TABLE_RELOCS (_bfd_ecoff), + BFD_JUMP_TABLE_WRITE (_bfd_ecoff), + BFD_JUMP_TABLE_LINK (_bfd_ecoff), + BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), + + &mips_ecoff_le_vec, - & mips_ecoff_backend_data + &mips_ecoff_backend_data }; const bfd_target mips_ecoff_bele_vec = @@ -1463,9 +1547,9 @@ 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 | D_PAGED), + (HAS_RELOC | EXEC_P /* object flags */ + | HAS_LINENO | HAS_DEBUG + | HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED), (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_CODE | SEC_DATA), 0, /* leading underscore */ @@ -1479,24 +1563,36 @@ 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, _bfd_ecoff_mkobject, /* bfd_set_format */ - _bfd_generic_mkarchive, bfd_false}, - {bfd_false, _bfd_ecoff_write_object_contents, /* bfd_write_contents */ - _bfd_write_archive_contents, bfd_false}, - - BFD_JUMP_TABLE_GENERIC (_bfd_ecoff), - BFD_JUMP_TABLE_COPY (_bfd_ecoff), - BFD_JUMP_TABLE_CORE (_bfd_nocore), - BFD_JUMP_TABLE_ARCHIVE (_bfd_ecoff), - BFD_JUMP_TABLE_SYMBOLS (_bfd_ecoff), - BFD_JUMP_TABLE_RELOCS (_bfd_ecoff), - BFD_JUMP_TABLE_WRITE (_bfd_ecoff), - BFD_JUMP_TABLE_LINK (_bfd_ecoff), - BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), + { /* bfd_check_format */ + _bfd_dummy_target, + coff_object_p, + bfd_generic_archive_p, + _bfd_dummy_target + }, + { /* bfd_set_format */ + _bfd_bool_bfd_false_error, + _bfd_ecoff_mkobject, + _bfd_generic_mkarchive, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents */ + _bfd_bool_bfd_false_error, + _bfd_ecoff_write_object_contents, + _bfd_write_archive_contents, + _bfd_bool_bfd_false_error + }, + + BFD_JUMP_TABLE_GENERIC (_bfd_ecoff), + BFD_JUMP_TABLE_COPY (_bfd_ecoff), + BFD_JUMP_TABLE_CORE (_bfd_nocore), + BFD_JUMP_TABLE_ARCHIVE (_bfd_ecoff), + BFD_JUMP_TABLE_SYMBOLS (_bfd_ecoff), + BFD_JUMP_TABLE_RELOCS (_bfd_ecoff), + BFD_JUMP_TABLE_WRITE (_bfd_ecoff), + BFD_JUMP_TABLE_LINK (_bfd_ecoff), + BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), NULL, - & mips_ecoff_backend_data + &mips_ecoff_backend_data }; diff -Nru gdb-8.1/bfd/coff-ppc.c gdb-8.2/bfd/coff-ppc.c --- gdb-8.1/bfd/coff-ppc.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff-ppc.c 2018-09-05 07:27:13.000000000 +0000 @@ -1038,9 +1038,9 @@ switch (r_type) { default: - _bfd_error_handler - /* xgettext: c-format */ - (_("%B: unsupported relocation type 0x%02x"), input_bfd, r_type); + /* xgettext: c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + input_bfd, r_type); bfd_set_error (bfd_error_bad_value); return FALSE; case IMAGE_REL_PPC_TOCREL16: @@ -1131,9 +1131,9 @@ { _bfd_error_handler /* xgettext: c-format */ - (_("%B: Relocation for %s of %#Lx exceeds " + (_("%pB: Relocation for %s of %#" PRIx64 " exceeds " "Toc size limit"), - input_bfd, name, our_toc_offset); + input_bfd, name, (uint64_t) our_toc_offset); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -1185,8 +1185,8 @@ { _bfd_error_handler /* xgettext: c-format */ - (_("%B: Relocation exceeds allocated TOC (%#Lx)"), - input_bfd, toc_section->size); + (_("%pB: Relocation exceeds allocated TOC (%#" PRIx64 ")"), + input_bfd, (uint64_t) toc_section->size); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -1240,10 +1240,11 @@ _bfd_error_handler /* xgettext: c-format */ - (_("Warning: unsupported reloc %s \n" - "sym %ld (%s), r_vaddr %Ld (%#Lx)"), + (_("warning: unsupported reloc %s \n" + "sym %ld (%s), r_vaddr %" PRId64 " (%#" PRIx64 ")"), howto->name, input_bfd, input_section, - rel->r_symndx, my_name, rel->r_vaddr, rel->r_vaddr); + rel->r_symndx, my_name, + (int64_t) rel->r_vaddr, (uint64_t) rel->r_vaddr); } break; case IMAGE_REL_PPC_IMGLUE: @@ -1258,7 +1259,7 @@ _bfd_error_handler /* xgettext: c-format */ - (_("%B: Out of order IMGLUE reloc for %s"), input_bfd, my_name); + (_("%pB: Out of order IMGLUE reloc for %s"), input_bfd, my_name); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -2480,9 +2481,9 @@ BFD_ENDIAN_LITTLE, /* data byte order is little */ BFD_ENDIAN_LITTLE, /* header byte order is little */ - (HAS_RELOC | EXEC_P | /* FIXME: object flags */ - HAS_LINENO | HAS_DEBUG | - HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED), + (HAS_RELOC | EXEC_P /* FIXME: object flags */ + | HAS_LINENO | HAS_DEBUG + | HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED), #ifndef COFF_WITH_PE (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_CODE | SEC_READONLY @@ -2505,12 +2506,24 @@ 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 */ coff_object_p }, - {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_check_format */ + _bfd_dummy_target, + coff_object_p, + bfd_generic_archive_p, + coff_object_p + }, + { /* bfd_set_format */ + _bfd_bool_bfd_false_error, + coff_mkobject, + _bfd_generic_mkarchive, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents */ + _bfd_bool_bfd_false_error, + coff_write_object_contents, + _bfd_write_archive_contents, + _bfd_bool_bfd_false_error + }, BFD_JUMP_TABLE_GENERIC (coff), BFD_JUMP_TABLE_COPY (coff), @@ -2524,7 +2537,7 @@ /* Alternative_target. */ #ifdef TARGET_BIG_SYM - & TARGET_BIG_SYM, + &TARGET_BIG_SYM, #else NULL, #endif @@ -2541,9 +2554,9 @@ BFD_ENDIAN_BIG, /* data byte order is big */ BFD_ENDIAN_BIG, /* header byte order is big */ - (HAS_RELOC | EXEC_P | /* FIXME: object flags */ - HAS_LINENO | HAS_DEBUG | - HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED), + (HAS_RELOC | EXEC_P /* FIXME: object flags */ + | HAS_LINENO | HAS_DEBUG + | HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED), #ifndef COFF_WITH_PE (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_CODE | SEC_READONLY @@ -2566,12 +2579,24 @@ 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 */ coff_object_p }, - {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_check_format */ + _bfd_dummy_target, + coff_object_p, + bfd_generic_archive_p, + coff_object_p + }, + { /* bfd_set_format */ + _bfd_bool_bfd_false_error, + coff_mkobject, + _bfd_generic_mkarchive, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents */ + _bfd_bool_bfd_false_error, + coff_write_object_contents, + _bfd_write_archive_contents, + _bfd_bool_bfd_false_error + }, BFD_JUMP_TABLE_GENERIC (coff), BFD_JUMP_TABLE_COPY (coff), @@ -2585,7 +2610,7 @@ /* Alternative_target. */ #ifdef TARGET_LITTLE_SYM - & TARGET_LITTLE_SYM, + &TARGET_LITTLE_SYM, #else NULL, #endif diff -Nru gdb-8.1/bfd/coff-rs6000.c gdb-8.2/bfd/coff-rs6000.c --- gdb-8.1/bfd/coff-rs6000.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff-rs6000.c 2018-09-05 07:44:28.000000000 +0000 @@ -2090,7 +2090,7 @@ char decbuf[XCOFFARMAG_ELEMENT_SIZE + 1]; memset (&fhdr, 0, sizeof fhdr); - (void) strncpy (fhdr.magic, XCOFFARMAG, SXCOFFARMAG); + (void) memcpy (fhdr.magic, XCOFFARMAG, SXCOFFARMAG); sprintf (fhdr.firstmemoff, "%d", SIZEOF_AR_FILE_HDR); sprintf (fhdr.freeoff, "%d", 0); @@ -2770,7 +2770,7 @@ { _bfd_error_handler /* xgettext: c-format */ - (_("%B: unsupported relocation type 0x%02x"), + (_("%pB: unsupported relocation type %#x"), input_bfd, (unsigned int) rel->r_type); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -2856,8 +2856,8 @@ { _bfd_error_handler /* xgettext: c-format */ - (_("%B: TOC reloc at %#Lx to symbol `%s' with no TOC entry"), - input_bfd, rel->r_vaddr, h->root.root.string); + (_("%pB: TOC reloc at %#" PRIx64 " to symbol `%s' with no TOC entry"), + input_bfd, (uint64_t) rel->r_vaddr, h->root.root.string); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -3602,7 +3602,7 @@ { _bfd_error_handler /* xgettext: c-format */ - (_("%B: symbol `%s' has unrecognized smclas %d"), + (_("%pB: symbol `%s' has unrecognized smclas %d"), abfd, symbol_name, aux->x_csect.x_smclas); bfd_set_error (bfd_error_bad_value); } @@ -3970,7 +3970,7 @@ /* For generic entry points. */ #define _bfd_xcoff_close_and_cleanup _bfd_archive_close_and_cleanup -#define _bfd_xcoff_bfd_free_cached_info bfd_true +#define _bfd_xcoff_bfd_free_cached_info _bfd_bool_bfd_true #define _bfd_xcoff_new_section_hook coff_new_section_hook #define _bfd_xcoff_get_section_contents _bfd_generic_get_section_contents #define _bfd_xcoff_get_section_contents_in_window \ @@ -4001,7 +4001,7 @@ #define _bfd_xcoff_write_ar_hdr _bfd_generic_write_ar_hdr #define _bfd_xcoff_get_elt_at_index _bfd_generic_get_elt_at_index #define _bfd_xcoff_generic_stat_arch_elt _bfd_xcoff_stat_arch_elt -#define _bfd_xcoff_update_armap_timestamp bfd_true +#define _bfd_xcoff_update_armap_timestamp _bfd_bool_bfd_true /* For symbols entry points. */ #define _bfd_xcoff_get_symtab_upper_bound coff_get_symtab_upper_bound @@ -4045,6 +4045,7 @@ #define _bfd_xcoff_bfd_discard_group bfd_generic_discard_group #define _bfd_xcoff_section_already_linked _bfd_generic_section_already_linked #define _bfd_xcoff_bfd_define_common_symbol _bfd_xcoff_define_common_symbol +#define _bfd_xcoff_bfd_link_hide_symbol _bfd_generic_link_hide_symbol #define _bfd_xcoff_bfd_define_start_stop bfd_generic_define_start_stop #define _bfd_xcoff_bfd_link_check_relocs _bfd_generic_link_check_relocs @@ -4195,17 +4196,17 @@ }, { /* bfd_set_format */ - bfd_false, + _bfd_bool_bfd_false_error, coff_mkobject, _bfd_generic_mkarchive, - bfd_false + _bfd_bool_bfd_false_error }, {/* bfd_write_contents */ - bfd_false, + _bfd_bool_bfd_false_error, coff_write_object_contents, _bfd_xcoff_write_archive_contents, - bfd_false + _bfd_bool_bfd_false_error }, BFD_JUMP_TABLE_GENERIC (_bfd_xcoff), @@ -4376,17 +4377,17 @@ }, { /* bfd_set_format */ - bfd_false, + _bfd_bool_bfd_false_error, coff_mkobject, _bfd_generic_mkarchive, - bfd_false + _bfd_bool_bfd_false_error }, {/* bfd_write_contents */ - bfd_false, + _bfd_bool_bfd_false_error, coff_write_object_contents, _bfd_xcoff_write_archive_contents, - bfd_false + _bfd_bool_bfd_false_error }, BFD_JUMP_TABLE_GENERIC (_bfd_xcoff), diff -Nru gdb-8.1/bfd/coff-sh.c gdb-8.2/bfd/coff-sh.c --- gdb-8.1/bfd/coff-sh.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff-sh.c 2018-09-05 07:27:13.000000000 +0000 @@ -492,7 +492,7 @@ #define coff_bfd_reloc_name_lookup sh_coff_reloc_name_lookup static reloc_howto_type * -sh_coff_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED, +sh_coff_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code) { unsigned int i; @@ -501,7 +501,8 @@ if (sh_reloc_map[i].bfd_reloc_val == code) return &sh_coff_howtos[(int) sh_reloc_map[i].shcoff_reloc_val]; - _bfd_error_handler (_("SH Error: unknown reloc type %d"), code); + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, (unsigned int) code); return NULL; } @@ -775,8 +776,9 @@ if (laddr >= sec->size) { /* xgettext: c-format */ - _bfd_error_handler (_("%B: %#Lx: warning: bad R_SH_USES offset"), - abfd, irel->r_vaddr); + _bfd_error_handler + (_("%pB: %#" PRIx64 ": warning: bad R_SH_USES offset"), + abfd, (uint64_t) irel->r_vaddr); continue; } insn = bfd_get_16 (abfd, contents + laddr); @@ -786,8 +788,8 @@ { _bfd_error_handler /* xgettext: c-format */ - (_("%B: %#Lx: warning: R_SH_USES points to unrecognized insn %#x"), - abfd, irel->r_vaddr, insn); + (_("%pB: %#" PRIx64 ": warning: R_SH_USES points to unrecognized insn %#x"), + abfd, (uint64_t) irel->r_vaddr, insn); continue; } @@ -804,8 +806,8 @@ { _bfd_error_handler /* xgettext: c-format */ - (_("%B: %#Lx: warning: bad R_SH_USES load offset"), - abfd, irel->r_vaddr); + (_("%pB: %#" PRIx64 ": warning: bad R_SH_USES load offset"), + abfd, (uint64_t) irel->r_vaddr); continue; } @@ -829,8 +831,8 @@ { _bfd_error_handler /* xgettext: c-format */ - (_("%B: %#Lx: warning: could not find expected reloc"), - abfd, paddr); + (_("%pB: %#" PRIx64 ": warning: could not find expected reloc"), + abfd, (uint64_t) paddr); continue; } @@ -846,8 +848,8 @@ { _bfd_error_handler /* xgettext: c-format */ - (_("%B: %#Lx: warning: symbol in unexpected section"), - abfd, paddr); + (_("%pB: %#" PRIx64 ": warning: symbol in unexpected section"), + abfd, (uint64_t) paddr); continue; } @@ -972,8 +974,8 @@ { _bfd_error_handler /* xgettext: c-format */ - (_("%B: %#Lx: warning: could not find expected COUNT reloc"), - abfd, paddr); + (_("%pB: %#" PRIx64 ": warning: could not find expected COUNT reloc"), + abfd, (uint64_t) paddr); continue; } @@ -982,8 +984,8 @@ if (irelcount->r_offset == 0) { /* xgettext: c-format */ - _bfd_error_handler (_("%B: %#Lx: warning: bad count"), - abfd, paddr); + _bfd_error_handler (_("%pB: %#" PRIx64 ": warning: bad count"), + abfd, (uint64_t) paddr); continue; } @@ -1354,8 +1356,8 @@ { _bfd_error_handler /* xgettext: c-format */ - (_("%B: %#Lx: fatal: reloc overflow while relaxing"), - abfd, irel->r_vaddr); + (_("%pB: %#" PRIx64 ": fatal: reloc overflow while relaxing"), + abfd, (uint64_t) irel->r_vaddr); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -1449,7 +1451,7 @@ || obj_raw_syments (abfd) != NULL) { _bfd_error_handler - (_("%B: fatal: generic symbols retrieved before relaxing"), abfd); + (_("%pB: fatal: generic symbols retrieved before relaxing"), abfd); bfd_set_error (bfd_error_invalid_operation); return FALSE; } @@ -2642,8 +2644,8 @@ { _bfd_error_handler /* xgettext: c-format */ - (_("%B: %#Lx: fatal: reloc overflow while relaxing"), - abfd, irel->r_vaddr); + (_("%pB: %#" PRIx64 ": fatal: reloc overflow while relaxing"), + abfd, (uint64_t) irel->r_vaddr); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -2780,7 +2782,7 @@ { _bfd_error_handler /* xgettext: c-format */ - (_("%B: illegal symbol index %ld in relocs"), + (_("%pB: illegal symbol index %ld in relocs"), input_bfd, symndx); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -3130,9 +3132,9 @@ BFD_ENDIAN_BIG, /* data byte order is big */ BFD_ENDIAN_BIG, /* header byte order is big */ - (HAS_RELOC | EXEC_P | /* object flags */ - HAS_LINENO | HAS_DEBUG | - HAS_SYMS | HAS_LOCALS | WP_TEXT | BFD_IS_RELAXABLE), + (HAS_RELOC | EXEC_P /* object flags */ + | HAS_LINENO | HAS_DEBUG + | HAS_SYMS | HAS_LOCALS | WP_TEXT | BFD_IS_RELAXABLE), (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), '_', /* leading symbol underscore */ @@ -3146,12 +3148,24 @@ bfd_getb32, bfd_getb_signed_32, bfd_putb32, bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* hdrs */ - {_bfd_dummy_target, coff_small_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_check_format */ + _bfd_dummy_target, + coff_small_object_p, + bfd_generic_archive_p, + _bfd_dummy_target + }, + { /* bfd_set_format */ + _bfd_bool_bfd_false_error, + coff_mkobject, + _bfd_generic_mkarchive, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents */ + _bfd_bool_bfd_false_error, + coff_write_object_contents, + _bfd_write_archive_contents, + _bfd_bool_bfd_false_error + }, BFD_JUMP_TABLE_GENERIC (coff_small), BFD_JUMP_TABLE_COPY (coff), @@ -3163,9 +3177,9 @@ BFD_JUMP_TABLE_LINK (coff), BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), - & sh_coff_small_le_vec, + &sh_coff_small_le_vec, - & bfd_coff_small_swap_table + &bfd_coff_small_swap_table }; const bfd_target sh_coff_small_le_vec = @@ -3175,9 +3189,9 @@ BFD_ENDIAN_LITTLE, /* data byte order is little */ BFD_ENDIAN_LITTLE, /* header byte order is little endian too*/ - (HAS_RELOC | EXEC_P | /* object flags */ - HAS_LINENO | HAS_DEBUG | - HAS_SYMS | HAS_LOCALS | WP_TEXT | BFD_IS_RELAXABLE), + (HAS_RELOC | EXEC_P /* object flags */ + | HAS_LINENO | HAS_DEBUG + | HAS_SYMS | HAS_LOCALS | WP_TEXT | BFD_IS_RELAXABLE), (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), '_', /* leading symbol underscore */ @@ -3191,12 +3205,24 @@ bfd_getl32, bfd_getl_signed_32, bfd_putl32, bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* hdrs */ - {_bfd_dummy_target, coff_small_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_check_format */ + _bfd_dummy_target, + coff_small_object_p, + bfd_generic_archive_p, + _bfd_dummy_target + }, + { /* bfd_set_format */ + _bfd_bool_bfd_false_error, + coff_mkobject, + _bfd_generic_mkarchive, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents */ + _bfd_bool_bfd_false_error, + coff_write_object_contents, + _bfd_write_archive_contents, + _bfd_bool_bfd_false_error + }, BFD_JUMP_TABLE_GENERIC (coff_small), BFD_JUMP_TABLE_COPY (coff), @@ -3208,8 +3234,8 @@ BFD_JUMP_TABLE_LINK (coff), BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), - & sh_coff_small_vec, + &sh_coff_small_vec, - & bfd_coff_small_swap_table + &bfd_coff_small_swap_table }; #endif diff -Nru gdb-8.1/bfd/coff-sparc.c gdb-8.2/bfd/coff-sparc.c --- gdb-8.1/bfd/coff-sparc.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff-sparc.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,208 +0,0 @@ -/* BFD back-end for Sparc COFF files. - Copyright (C) 1990-2018 Free Software Foundation, Inc. - Written by Cygnus Support. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "coff/sparc.h" -#include "coff/internal.h" -#include "libcoff.h" - -#define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (3) - -#define BADMAG(x) ((x).f_magic != SPARCMAGIC && (x).f_magic != LYNXCOFFMAGIC) - -/* The page size is a guess based on ELF. */ -#define COFF_PAGE_SIZE 0x10000 - -enum reloc_type - { - R_SPARC_NONE = 0, - R_SPARC_8, R_SPARC_16, R_SPARC_32, - R_SPARC_DISP8, R_SPARC_DISP16, R_SPARC_DISP32, - R_SPARC_WDISP30, R_SPARC_WDISP22, - R_SPARC_HI22, R_SPARC_22, - R_SPARC_13, R_SPARC_LO10, - R_SPARC_GOT10, R_SPARC_GOT13, R_SPARC_GOT22, - R_SPARC_PC10, R_SPARC_PC22, - R_SPARC_WPLT30, - R_SPARC_COPY, - R_SPARC_GLOB_DAT, R_SPARC_JMP_SLOT, - R_SPARC_RELATIVE, - R_SPARC_UA32, - R_SPARC_max - }; - -/* This is stolen pretty directly from elf.c. */ - -static bfd_reloc_status_type -bfd_coff_generic_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) -{ - if (output_bfd != (bfd *) NULL - && (symbol->flags & BSF_SECTION_SYM) == 0) - { - reloc_entry->address += input_section->output_offset; - return bfd_reloc_ok; - } - - return bfd_reloc_continue; -} - -static reloc_howto_type coff_sparc_howto_table[] = -{ - HOWTO(R_SPARC_NONE, 0,3, 0,FALSE,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_NONE", FALSE,0,0x00000000,TRUE), - HOWTO(R_SPARC_8, 0,0, 8,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_8", FALSE,0,0x000000ff,TRUE), - HOWTO(R_SPARC_16, 0,1,16,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_16", FALSE,0,0x0000ffff,TRUE), - HOWTO(R_SPARC_32, 0,2,32,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_32", FALSE,0,0xffffffff,TRUE), - HOWTO(R_SPARC_DISP8, 0,0, 8,TRUE, 0,complain_overflow_signed, bfd_coff_generic_reloc,"R_SPARC_DISP8", FALSE,0,0x000000ff,TRUE), - HOWTO(R_SPARC_DISP16, 0,1,16,TRUE, 0,complain_overflow_signed, bfd_coff_generic_reloc,"R_SPARC_DISP16", FALSE,0,0x0000ffff,TRUE), - HOWTO(R_SPARC_DISP32, 0,2,32,TRUE, 0,complain_overflow_signed, bfd_coff_generic_reloc,"R_SPARC_DISP32", FALSE,0,0x00ffffff,TRUE), - HOWTO(R_SPARC_WDISP30, 2,2,30,TRUE, 0,complain_overflow_signed, bfd_coff_generic_reloc,"R_SPARC_WDISP30", FALSE,0,0x3fffffff,TRUE), - HOWTO(R_SPARC_WDISP22, 2,2,22,TRUE, 0,complain_overflow_signed, bfd_coff_generic_reloc,"R_SPARC_WDISP22", FALSE,0,0x003fffff,TRUE), - HOWTO(R_SPARC_HI22, 10,2,22,FALSE,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_HI22", FALSE,0,0x003fffff,TRUE), - HOWTO(R_SPARC_22, 0,2,22,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_22", FALSE,0,0x003fffff,TRUE), - HOWTO(R_SPARC_13, 0,2,13,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_13", FALSE,0,0x00001fff,TRUE), - HOWTO(R_SPARC_LO10, 0,2,10,FALSE,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_LO10", FALSE,0,0x000003ff,TRUE), - HOWTO(R_SPARC_GOT10, 0,2,10,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_GOT10", FALSE,0,0x000003ff,TRUE), - HOWTO(R_SPARC_GOT13, 0,2,13,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_GOT13", FALSE,0,0x00001fff,TRUE), - HOWTO(R_SPARC_GOT22, 10,2,22,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_GOT22", FALSE,0,0x003fffff,TRUE), - HOWTO(R_SPARC_PC10, 0,2,10,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_PC10", FALSE,0,0x000003ff,TRUE), - HOWTO(R_SPARC_PC22, 0,2,22,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_PC22", FALSE,0,0x003fffff,TRUE), - HOWTO(R_SPARC_WPLT30, 0,0,00,FALSE,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_WPLT30", FALSE,0,0x00000000,TRUE), - HOWTO(R_SPARC_COPY, 0,0,00,FALSE,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_COPY", FALSE,0,0x00000000,TRUE), - HOWTO(R_SPARC_GLOB_DAT,0,0,00,FALSE,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_GLOB_DAT",FALSE,0,0x00000000,TRUE), - HOWTO(R_SPARC_JMP_SLOT,0,0,00,FALSE,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_JMP_SLOT",FALSE,0,0x00000000,TRUE), - HOWTO(R_SPARC_RELATIVE,0,0,00,FALSE,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_RELATIVE",FALSE,0,0x00000000,TRUE), - HOWTO(R_SPARC_UA32, 0,0,00,FALSE,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_UA32", FALSE,0,0x00000000,TRUE), -}; - -struct coff_reloc_map -{ - bfd_reloc_code_real_type bfd_reloc_val; - unsigned char coff_reloc_val; -}; - -static const struct coff_reloc_map sparc_reloc_map[] = -{ - { BFD_RELOC_NONE, R_SPARC_NONE, }, - { BFD_RELOC_16, R_SPARC_16, }, - { BFD_RELOC_8, R_SPARC_8 }, - { BFD_RELOC_8_PCREL, R_SPARC_DISP8 }, - { BFD_RELOC_CTOR, R_SPARC_32 }, /* @@ Assumes 32 bits. */ - { BFD_RELOC_32, R_SPARC_32 }, - { BFD_RELOC_32_PCREL, R_SPARC_DISP32 }, - { BFD_RELOC_HI22, R_SPARC_HI22 }, - { BFD_RELOC_LO10, R_SPARC_LO10, }, - { BFD_RELOC_32_PCREL_S2, R_SPARC_WDISP30 }, - { BFD_RELOC_SPARC22, R_SPARC_22 }, - { BFD_RELOC_SPARC13, R_SPARC_13 }, - { BFD_RELOC_SPARC_GOT10, R_SPARC_GOT10 }, - { BFD_RELOC_SPARC_GOT13, R_SPARC_GOT13 }, - { BFD_RELOC_SPARC_GOT22, R_SPARC_GOT22 }, - { BFD_RELOC_SPARC_PC10, R_SPARC_PC10 }, - { BFD_RELOC_SPARC_PC22, R_SPARC_PC22 }, - { BFD_RELOC_SPARC_WPLT30, R_SPARC_WPLT30 }, - { BFD_RELOC_SPARC_COPY, R_SPARC_COPY }, - { BFD_RELOC_SPARC_GLOB_DAT, R_SPARC_GLOB_DAT }, - { BFD_RELOC_SPARC_JMP_SLOT, R_SPARC_JMP_SLOT }, - { BFD_RELOC_SPARC_RELATIVE, R_SPARC_RELATIVE }, - { BFD_RELOC_SPARC_WDISP22, R_SPARC_WDISP22 }, - /* { BFD_RELOC_SPARC_UA32, R_SPARC_UA32 }, not used?? */ -}; - -static reloc_howto_type * -coff_sparc_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, - bfd_reloc_code_real_type code) -{ - unsigned int i; - for (i = 0; i < sizeof (sparc_reloc_map) / sizeof (struct coff_reloc_map); i++) - { - if (sparc_reloc_map[i].bfd_reloc_val == code) - return &coff_sparc_howto_table[(int) sparc_reloc_map[i].coff_reloc_val]; - } - return 0; -} -#define coff_bfd_reloc_type_lookup coff_sparc_reloc_type_lookup - -static reloc_howto_type * -coff_sparc_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, - const char *r_name) -{ - unsigned int i; - - for (i = 0; - i < (sizeof (coff_sparc_howto_table) - / sizeof (coff_sparc_howto_table[0])); - i++) - if (coff_sparc_howto_table[i].name != NULL - && strcasecmp (coff_sparc_howto_table[i].name, r_name) == 0) - return &coff_sparc_howto_table[i]; - - return NULL; -} -#define coff_bfd_reloc_name_lookup coff_sparc_reloc_name_lookup - -static void -rtype2howto (arelent *cache_ptr, struct internal_reloc *dst) -{ - BFD_ASSERT (dst->r_type < (unsigned int) R_SPARC_max); - cache_ptr->howto = &coff_sparc_howto_table[dst->r_type]; -} - -#define RTYPE2HOWTO(internal, relocentry) rtype2howto(internal,relocentry) - -#define SWAP_IN_RELOC_OFFSET H_GET_32 -#define SWAP_OUT_RELOC_OFFSET H_PUT_32 -#define CALC_ADDEND(abfd, ptr, reloc, cache_ptr) \ - cache_ptr->addend = reloc.r_offset; - -/* Clear the r_spare field in relocs. */ -#define SWAP_OUT_RELOC_EXTRA(abfd,src,dst) \ - do { \ - dst->r_spare[0] = 0; \ - dst->r_spare[1] = 0; \ - } while (0) - -#define __A_MAGIC_SET__ - -/* Enable Sparc-specific hacks in coffcode.h. */ - -#define COFF_SPARC - -#define bfd_pe_print_pdata NULL - -#include "coffcode.h" - -#ifndef TARGET_SYM -#define TARGET_SYM sparc_coff_vec -#endif - -#ifndef TARGET_NAME -#define TARGET_NAME "coff-sparc" -#endif - -CREATE_BIG_COFF_TARGET_VEC (TARGET_SYM, TARGET_NAME, D_PAGED, 0, '_', NULL, COFF_SWAP_TABLE) diff -Nru gdb-8.1/bfd/coff-svm68k.c gdb-8.2/bfd/coff-svm68k.c --- gdb-8.1/bfd/coff-svm68k.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff-svm68k.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ -/* BFD back-end for Motorola sysv68 - Copyright (C) 1997-2018 Free Software Foundation, Inc. - Written by Philippe De Muyter . - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define TARGET_SYM m68k_coff_sysv_vec -#define TARGET_NAME "coff-m68k-sysv" -#define STATIC_RELOCS -#define COFF_COMMON_ADDEND - -#include "coff-m68k.c" diff -Nru gdb-8.1/bfd/coffswap.h gdb-8.2/bfd/coffswap.h --- gdb-8.1/bfd/coffswap.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coffswap.h 2018-09-05 07:27:13.000000000 +0000 @@ -618,17 +618,6 @@ aouthdr_int->data_start = GET_AOUTHDR_DATA_START (abfd, aouthdr_ext->data_start); -#ifdef I960 - aouthdr_int->tagentries = H_GET_32 (abfd, aouthdr_ext->tagentries); -#endif - -#ifdef APOLLO_M68 - H_PUT_32 (abfd, aouthdr_int->o_inlib, aouthdr_ext->o_inlib); - H_PUT_32 (abfd, aouthdr_int->o_sri, aouthdr_ext->o_sri); - H_PUT_32 (abfd, aouthdr_int->vid[0], aouthdr_ext->vid); - H_PUT_32 (abfd, aouthdr_int->vid[1], aouthdr_ext->vid + 4); -#endif - #ifdef RS6000COFF_C #ifdef XCOFF64 aouthdr_int->o_toc = H_GET_64 (abfd, aouthdr_ext->o_toc); @@ -689,10 +678,6 @@ PUT_AOUTHDR_DATA_START (abfd, aouthdr_in->data_start, aouthdr_out->data_start); -#ifdef I960 - H_PUT_32 (abfd, aouthdr_in->tagentries, aouthdr_out->tagentries); -#endif - #ifdef RS6000COFF_C #ifdef XCOFF64 H_PUT_64 (abfd, aouthdr_in->o_toc, aouthdr_out->o_toc); @@ -767,9 +752,6 @@ scnhdr_int->s_flags = GET_SCNHDR_FLAGS (abfd, scnhdr_ext->s_flags); scnhdr_int->s_nreloc = GET_SCNHDR_NRELOC (abfd, scnhdr_ext->s_nreloc); scnhdr_int->s_nlnno = GET_SCNHDR_NLNNO (abfd, scnhdr_ext->s_nlnno); -#ifdef I960 - scnhdr_int->s_align = GET_SCNHDR_ALIGN (abfd, scnhdr_ext->s_align); -#endif #ifdef COFF_ADJUST_SCNHDR_IN_POST COFF_ADJUST_SCNHDR_IN_POST (abfd, ext, in); #endif @@ -794,10 +776,6 @@ PUT_SCNHDR_RELPTR (abfd, scnhdr_int->s_relptr, scnhdr_ext->s_relptr); PUT_SCNHDR_LNNOPTR (abfd, scnhdr_int->s_lnnoptr, scnhdr_ext->s_lnnoptr); PUT_SCNHDR_FLAGS (abfd, scnhdr_int->s_flags, scnhdr_ext->s_flags); -#if defined(M88) - H_PUT_32 (abfd, scnhdr_int->s_nlnno, scnhdr_ext->s_nlnno); - H_PUT_32 (abfd, scnhdr_int->s_nreloc, scnhdr_ext->s_nreloc); -#else if (scnhdr_int->s_nlnno <= MAX_SCNHDR_NLNNO) PUT_SCNHDR_NLNNO (abfd, scnhdr_int->s_nlnno, scnhdr_ext->s_nlnno); else @@ -808,7 +786,7 @@ buf[sizeof (scnhdr_int->s_name)] = '\0'; _bfd_error_handler /* xgettext:c-format */ - (_("%B: warning: %s: line number overflow: 0x%lx > 0xffff"), + (_("%pB: warning: %s: line number overflow: 0x%lx > 0xffff"), abfd, buf, scnhdr_int->s_nlnno); PUT_SCNHDR_NLNNO (abfd, 0xffff, scnhdr_ext->s_nlnno); } @@ -822,17 +800,13 @@ memcpy (buf, scnhdr_int->s_name, sizeof (scnhdr_int->s_name)); buf[sizeof (scnhdr_int->s_name)] = '\0'; /* xgettext:c-format */ - _bfd_error_handler (_("%B: %s: reloc overflow: 0x%lx > 0xffff"), + _bfd_error_handler (_("%pB: %s: reloc overflow: 0x%lx > 0xffff"), abfd, buf, scnhdr_int->s_nreloc); bfd_set_error (bfd_error_file_truncated); PUT_SCNHDR_NRELOC (abfd, 0xffff, scnhdr_ext->s_nreloc); ret = 0; } -#endif -#ifdef I960 - PUT_SCNHDR_ALIGN (abfd, scnhdr_int->s_align, scnhdr_ext->s_align); -#endif #ifdef COFF_ADJUST_SCNHDR_OUT_POST COFF_ADJUST_SCNHDR_OUT_POST (abfd, in, out); #endif diff -Nru gdb-8.1/bfd/coff-tic30.c gdb-8.2/bfd/coff-tic30.c --- gdb-8.1/bfd/coff-tic30.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff-tic30.c 2018-09-05 07:27:13.000000000 +0000 @@ -183,9 +183,9 @@ BFD_ENDIAN_BIG, /* data byte order is big */ BFD_ENDIAN_LITTLE, /* header byte order is little */ - (HAS_RELOC | EXEC_P | /* object flags */ - HAS_LINENO | HAS_DEBUG | - HAS_SYMS | HAS_LOCALS | WP_TEXT), + (HAS_RELOC | EXEC_P /* object flags */ + | HAS_LINENO | HAS_DEBUG + | HAS_SYMS | HAS_LOCALS | WP_TEXT), (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */ '_', /* leading symbol underscore */ @@ -199,12 +199,24 @@ 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_check_format */ + _bfd_dummy_target, + coff_object_p, + bfd_generic_archive_p, + _bfd_dummy_target + }, + { /* bfd_set_format */ + _bfd_bool_bfd_false_error, + coff_mkobject, + _bfd_generic_mkarchive, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents */ + _bfd_bool_bfd_false_error, + coff_write_object_contents, + _bfd_write_archive_contents, + _bfd_bool_bfd_false_error + }, BFD_JUMP_TABLE_GENERIC (coff), BFD_JUMP_TABLE_COPY (coff), diff -Nru gdb-8.1/bfd/coff-tic4x.c gdb-8.2/bfd/coff-tic4x.c --- gdb-8.1/bfd/coff-tic4x.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff-tic4x.c 2018-09-05 07:27:13.000000000 +0000 @@ -165,7 +165,8 @@ Called after some initial checking by the tic4x_rtype_to_howto fn below. */ static void -tic4x_lookup_howto (arelent *internal, +tic4x_lookup_howto (bfd *abfd, + arelent *internal, struct internal_reloc *dst) { unsigned int i; @@ -180,13 +181,13 @@ } } - _bfd_error_handler (_("Unrecognized reloc type 0x%x"), - (unsigned int) dst->r_type); + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, (unsigned int) dst->r_type); abort(); } static reloc_howto_type * -coff_tic4x_rtype_to_howto (bfd *abfd ATTRIBUTE_UNUSED, +coff_tic4x_rtype_to_howto (bfd *abfd, asection *sec, struct internal_reloc *rel, struct coff_link_hash_entry *h ATTRIBUTE_UNUSED, @@ -201,7 +202,7 @@ in the output section. */ *addendp = (sec->output_section->vma + sec->output_offset) - sec->vma; - tic4x_lookup_howto (&genrel, rel); + tic4x_lookup_howto (abfd, &genrel, rel); return genrel.howto; } @@ -224,7 +225,7 @@ { _bfd_error_handler /* xgettext: c-format */ - (_("%B: warning: illegal symbol index %ld in relocs"), + (_("%pB: warning: illegal symbol index %ld in relocs"), abfd, reloc->r_symndx); relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; ptr = NULL; @@ -256,7 +257,7 @@ /* !! relent->section = (asection *) NULL; */ /* Fill in the relent->howto field from reloc->r_type. */ - tic4x_lookup_howto (relent, reloc); + tic4x_lookup_howto (abfd, relent, reloc); } diff -Nru gdb-8.1/bfd/coff-tic54x.c gdb-8.2/bfd/coff-tic54x.c --- gdb-8.1/bfd/coff-tic54x.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff-tic54x.c 2018-09-05 07:27:13.000000000 +0000 @@ -260,7 +260,8 @@ Called after some initial checking by the tic54x_rtype_to_howto fn below. */ static void -tic54x_lookup_howto (arelent *internal, +tic54x_lookup_howto (bfd *abfd, + arelent *internal, struct internal_reloc *dst) { unsigned i; @@ -275,8 +276,8 @@ } } - _bfd_error_handler (_("Unrecognized reloc type 0x%x"), - (unsigned int) dst->r_type); + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, (unsigned int) dst->r_type); abort (); } @@ -286,7 +287,7 @@ #define coff_rtype_to_howto coff_tic54x_rtype_to_howto static reloc_howto_type * -coff_tic54x_rtype_to_howto (bfd *abfd ATTRIBUTE_UNUSED, +coff_tic54x_rtype_to_howto (bfd *abfd, asection *sec, struct internal_reloc *rel, struct coff_link_hash_entry *h ATTRIBUTE_UNUSED, @@ -303,7 +304,7 @@ *addendp = (sec->output_section->vma + sec->output_offset) - sec->vma; } - tic54x_lookup_howto (&genrel, rel); + tic54x_lookup_howto (abfd, &genrel, rel); return genrel.howto; } @@ -362,7 +363,7 @@ { _bfd_error_handler /* xgettext: c-format */ - (_("%B: warning: illegal symbol index %ld in relocs"), + (_("%pB: warning: illegal symbol index %ld in relocs"), abfd, reloc->r_symndx); relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; ptr = NULL; @@ -394,24 +395,24 @@ /* !! relent->section = (asection *) NULL;*/ /* Fill in the relent->howto field from reloc->r_type. */ - tic54x_lookup_howto (relent, reloc); + tic54x_lookup_howto (abfd, relent, reloc); } /* TI COFF v0, DOS tools (little-endian headers). */ const bfd_target tic54x_coff0_vec = { - "coff0-c54x", /* name */ + "coff0-c54x", /* 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_RELOC | EXEC_P /* object flags */ + | HAS_LINENO | HAS_DEBUG + | HAS_SYMS | HAS_LOCALS | WP_TEXT ), (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */ - '_', /* leading symbol underscore */ - '/', /* ar_pad_char */ + '_', /* leading symbol underscore */ + '/', /* ar_pad_char */ 15, /* ar_max_namelen */ 0, /* match priority. */ bfd_getl64, bfd_getl_signed_64, bfd_putl64, @@ -421,12 +422,24 @@ 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_check_format */ + _bfd_dummy_target, + coff_object_p, + bfd_generic_archive_p, + _bfd_dummy_target + }, + { /* bfd_set_format */ + _bfd_bool_bfd_false_error, + coff_mkobject, + _bfd_generic_mkarchive, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents */ + _bfd_bool_bfd_false_error, + coff_write_object_contents, + _bfd_write_archive_contents, + _bfd_bool_bfd_false_error + }, BFD_JUMP_TABLE_GENERIC (coff), BFD_JUMP_TABLE_COPY (coff), @@ -439,24 +452,24 @@ BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), NULL, - & ticoff0_swap_table + &ticoff0_swap_table }; /* TI COFF v0, SPARC tools (big-endian headers). */ const bfd_target tic54x_coff0_beh_vec = { - "coff0-beh-c54x", /* name */ + "coff0-beh-c54x", /* 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_RELOC | EXEC_P /* object flags */ + | HAS_LINENO | HAS_DEBUG + | HAS_SYMS | HAS_LOCALS | WP_TEXT ), (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */ - '_', /* leading symbol underscore */ - '/', /* ar_pad_char */ + '_', /* leading symbol underscore */ + '/', /* ar_pad_char */ 15, /* ar_max_namelen */ 0, /* match priority. */ bfd_getl64, bfd_getl_signed_64, bfd_putl64, @@ -466,12 +479,24 @@ 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_check_format */ + _bfd_dummy_target, + coff_object_p, + bfd_generic_archive_p, + _bfd_dummy_target + }, + { /* bfd_set_format */ + _bfd_bool_bfd_false_error, + coff_mkobject, + _bfd_generic_mkarchive, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents */ + _bfd_bool_bfd_false_error, + coff_write_object_contents, + _bfd_write_archive_contents, + _bfd_bool_bfd_false_error + }, BFD_JUMP_TABLE_GENERIC (coff), BFD_JUMP_TABLE_COPY (coff), @@ -483,26 +508,26 @@ BFD_JUMP_TABLE_LINK (coff), BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), - & tic54x_coff0_vec, + &tic54x_coff0_vec, - & ticoff0_swap_table + &ticoff0_swap_table }; /* TI COFF v1, DOS tools (little-endian headers). */ const bfd_target tic54x_coff1_vec = { - "coff1-c54x", /* name */ + "coff1-c54x", /* 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_RELOC | EXEC_P /* object flags */ + | HAS_LINENO | HAS_DEBUG + | HAS_SYMS | HAS_LOCALS | WP_TEXT ), (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */ - '_', /* leading symbol underscore */ - '/', /* ar_pad_char */ + '_', /* leading symbol underscore */ + '/', /* ar_pad_char */ 15, /* ar_max_namelen */ 0, /* match priority. */ bfd_getl64, bfd_getl_signed_64, bfd_putl64, @@ -512,12 +537,24 @@ 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_check_format */ + _bfd_dummy_target, + coff_object_p, + bfd_generic_archive_p, + _bfd_dummy_target + }, + { /* bfd_set_format */ + _bfd_bool_bfd_false_error, + coff_mkobject, + _bfd_generic_mkarchive, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents */ + _bfd_bool_bfd_false_error, + coff_write_object_contents, + _bfd_write_archive_contents, + _bfd_bool_bfd_false_error + }, BFD_JUMP_TABLE_GENERIC (coff), BFD_JUMP_TABLE_COPY (coff), @@ -529,26 +566,26 @@ BFD_JUMP_TABLE_LINK (coff), BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), - & tic54x_coff0_beh_vec, + &tic54x_coff0_beh_vec, - & ticoff1_swap_table + &ticoff1_swap_table }; /* TI COFF v1, SPARC tools (big-endian headers). */ const bfd_target tic54x_coff1_beh_vec = { - "coff1-beh-c54x", /* name */ + "coff1-beh-c54x", /* 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_RELOC | EXEC_P /* object flags */ + | HAS_LINENO | HAS_DEBUG + | HAS_SYMS | HAS_LOCALS | WP_TEXT ), (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */ - '_', /* leading symbol underscore */ - '/', /* ar_pad_char */ + '_', /* leading symbol underscore */ + '/', /* ar_pad_char */ 15, /* ar_max_namelen */ 0, /* match priority. */ bfd_getl64, bfd_getl_signed_64, bfd_putl64, @@ -558,12 +595,24 @@ 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_check_format */ + _bfd_dummy_target, + coff_object_p, + bfd_generic_archive_p, + _bfd_dummy_target + }, + { /* bfd_set_format */ + _bfd_bool_bfd_false_error, + coff_mkobject, + _bfd_generic_mkarchive, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents */ + _bfd_bool_bfd_false_error, + coff_write_object_contents, + _bfd_write_archive_contents, + _bfd_bool_bfd_false_error + }, BFD_JUMP_TABLE_GENERIC (coff), BFD_JUMP_TABLE_COPY (coff), @@ -575,26 +624,26 @@ BFD_JUMP_TABLE_LINK (coff), BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), - & tic54x_coff1_vec, + &tic54x_coff1_vec, - & ticoff1_swap_table + &ticoff1_swap_table }; /* TI COFF v2, TI DOS tools output (little-endian headers). */ const bfd_target tic54x_coff2_vec = { - "coff2-c54x", /* name */ + "coff2-c54x", /* 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_RELOC | EXEC_P /* object flags */ + | HAS_LINENO | HAS_DEBUG + | HAS_SYMS | HAS_LOCALS | WP_TEXT ), (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */ - '_', /* leading symbol underscore */ - '/', /* ar_pad_char */ + '_', /* leading symbol underscore */ + '/', /* ar_pad_char */ 15, /* ar_max_namelen */ 0, /* match priority. */ bfd_getl64, bfd_getl_signed_64, bfd_putl64, @@ -604,12 +653,24 @@ 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_check_format */ + _bfd_dummy_target, + coff_object_p, + bfd_generic_archive_p, + _bfd_dummy_target + }, + { /* bfd_set_format */ + _bfd_bool_bfd_false_error, + coff_mkobject, + _bfd_generic_mkarchive, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents */ + _bfd_bool_bfd_false_error, + coff_write_object_contents, + _bfd_write_archive_contents, + _bfd_bool_bfd_false_error + }, BFD_JUMP_TABLE_GENERIC (coff), BFD_JUMP_TABLE_COPY (coff), @@ -621,7 +682,7 @@ BFD_JUMP_TABLE_LINK (coff), BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), - & tic54x_coff1_beh_vec, + &tic54x_coff1_beh_vec, COFF_SWAP_TABLE }; @@ -629,18 +690,18 @@ /* TI COFF v2, TI SPARC tools output (big-endian headers). */ const bfd_target tic54x_coff2_beh_vec = { - "coff2-beh-c54x", /* name */ + "coff2-beh-c54x", /* 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_RELOC | EXEC_P /* object flags */ + | HAS_LINENO | HAS_DEBUG + | HAS_SYMS | HAS_LOCALS | WP_TEXT ), (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */ - '_', /* leading symbol underscore */ - '/', /* ar_pad_char */ + '_', /* leading symbol underscore */ + '/', /* ar_pad_char */ 15, /* ar_max_namelen */ 0, /* match priority. */ bfd_getl64, bfd_getl_signed_64, bfd_putl64, @@ -650,12 +711,24 @@ 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_check_format */ + _bfd_dummy_target, + coff_object_p, + bfd_generic_archive_p, + _bfd_dummy_target + }, + { /* bfd_set_format */ + _bfd_bool_bfd_false_error, + coff_mkobject, + _bfd_generic_mkarchive, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents */ + _bfd_bool_bfd_false_error, + coff_write_object_contents, + _bfd_write_archive_contents, + _bfd_bool_bfd_false_error + }, BFD_JUMP_TABLE_GENERIC (coff), BFD_JUMP_TABLE_COPY (coff), @@ -667,7 +740,7 @@ BFD_JUMP_TABLE_LINK (coff), BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), - & tic54x_coff2_vec, + &tic54x_coff2_vec, COFF_SWAP_TABLE }; diff -Nru gdb-8.1/bfd/coff-tic80.c gdb-8.2/bfd/coff-tic80.c --- gdb-8.1/bfd/coff-tic80.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff-tic80.c 2018-09-05 07:27:13.000000000 +0000 @@ -438,7 +438,7 @@ } } - _bfd_error_handler (_("Unrecognized reloc type 0x%x"), + _bfd_error_handler (_("unsupported relocation type %#x"), (unsigned int) dst->r_type); cache_ptr->howto = tic80_howto_table + 0; } @@ -669,8 +669,8 @@ case bfd_reloc_outofrange: _bfd_error_handler /* xgettext: c-format */ - (_("%B: bad reloc address %#Lx in section `%A'"), - input_bfd, rel->r_vaddr, input_section); + (_("%pB: bad reloc address %#" PRIx64 " in section `%pA'"), + input_bfd, (uint64_t) rel->r_vaddr, input_section); return FALSE; case bfd_reloc_overflow: { diff -Nru gdb-8.1/bfd/coff-u68k.c gdb-8.2/bfd/coff-u68k.c --- gdb-8.1/bfd/coff-u68k.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff-u68k.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,0 @@ -/* BFD back-end for Motorola 68000 COFF binaries having underscore with name. - Copyright (C) 1990-2018 Free Software Foundation, Inc. - Written by Cygnus Support. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define TARGET_SYM m68k_coff_un_vec -#define TARGET_NAME "coff-m68k-un" - -#define NAMES_HAVE_UNDERSCORE - -/* define this to not have multiple copy of m68k_rtype2howto - in the executable file */ -#define ONLY_DECLARE_RELOCS - -/* This magic number indicates that the names have underscores. - Other 68k magic numbers indicate that the names do not have - underscores. */ -#define BADMAG(x) ((x).f_magic != MC68KBCSMAGIC) - -#include "coff-m68k.c" diff -Nru gdb-8.1/bfd/coff-w65.c gdb-8.2/bfd/coff-w65.c --- gdb-8.1/bfd/coff-w65.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff-w65.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,375 +0,0 @@ -/* BFD back-end for WDC 65816 COFF binaries. - Copyright (C) 1995-2018 Free Software Foundation, Inc. - Written by Steve Chamberlain, . - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "bfdlink.h" -#include "coff/w65.h" -#include "coff/internal.h" -#include "libcoff.h" - -#define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (1) -static reloc_howto_type howto_table[] = -{ - HOWTO (R_W65_ABS8, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, 0, "abs8", TRUE, 0x000000ff, 0x000000ff, FALSE), - HOWTO (R_W65_ABS16, 1, 0, 16, FALSE, 0, complain_overflow_bitfield, 0, "abs16", TRUE, 0x0000ffff, 0x0000ffff, FALSE), - HOWTO (R_W65_ABS24, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, 0, "abs24", TRUE, 0x00ffffff, 0x00ffffff, FALSE), - HOWTO (R_W65_ABS8S8, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, 0, ">abs8", TRUE, 0x000000ff, 0x000000ff, FALSE), - HOWTO (R_W65_ABS8S16, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, 0, "^abs8", TRUE, 0x000000ff, 0x000000ff, FALSE), - HOWTO (R_W65_ABS16S8, 1, 0, 16, FALSE, 0, complain_overflow_bitfield, 0, ">abs16", TRUE, 0x0000ffff, 0x0000ffff, FALSE), - HOWTO (R_W65_ABS16S16,1, 0, 16, FALSE, 0, complain_overflow_bitfield, 0, "^abs16", TRUE, 0x0000ffff, 0x0000ffff, FALSE), - HOWTO (R_W65_PCR8, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, 0, "pcrel8", TRUE, 0x000000ff, 0x000000ff, TRUE), - HOWTO (R_W65_PCR16, 1, 0, 16, FALSE, 0, complain_overflow_bitfield, 0, "pcrel16", TRUE, 0x0000ffff, 0x0000ffff, TRUE), - HOWTO (R_W65_DP, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, 0, "dp", TRUE, 0x000000ff, 0x000000ff, FALSE), -}; - -#define NUM_HOWTOS (sizeof (howto_table) / sizeof (howto_table[0])) - -/* Turn a howto into a reloc number. */ - -#define SELECT_RELOC(x,howto) \ - { x.r_type = select_reloc(howto); } - -#define BADMAG(x) (W65BADMAG(x)) -#define W65 1 /* Customize coffcode.h */ -#define __A_MAGIC_SET__ - -/* Code to swap in the reloc */ -#define SWAP_IN_RELOC_OFFSET H_GET_32 -#define SWAP_OUT_RELOC_OFFSET H_PUT_32 -#define SWAP_OUT_RELOC_EXTRA(abfd, src, dst) \ - dst->r_stuff[0] = 'S'; \ - dst->r_stuff[1] = 'C'; - -static int -select_reloc (reloc_howto_type *howto) -{ - return howto->type; -} - -/* Code to turn a r_type into a howto ptr, uses the above howto table. */ - -static void -rtype2howto (arelent *internal, - struct internal_reloc *dst) -{ - if (dst->r_type > 0 && dst->r_type <= NUM_HOWTOS) - internal->howto = howto_table + dst->r_type - 1; - else - internal->howto = NULL; -} - -#define RTYPE2HOWTO(internal, relocentry) rtype2howto(internal,relocentry) - -/* Perform any necessary magic to the addend in a reloc entry. */ - -#define CALC_ADDEND(abfd, symbol, ext_reloc, cache_ptr) \ - cache_ptr->addend = ext_reloc.r_offset; - -#define RELOC_PROCESSING(relent,reloc,symbols,abfd,section) \ - reloc_processing(relent, reloc, symbols, abfd, section) - -static void -reloc_processing (arelent * relent, - struct internal_reloc *reloc, - asymbol ** symbols, - bfd * abfd, - asection * section) -{ - relent->address = reloc->r_vaddr; - rtype2howto (relent, reloc); - - if (((int) reloc->r_symndx) > 0) - relent->sym_ptr_ptr = symbols + obj_convert (abfd)[reloc->r_symndx]; - else - relent->sym_ptr_ptr = (asymbol **) bfd_abs_section_ptr->symbol_ptr_ptr; - - relent->addend = reloc->r_offset; - - relent->address -= section->vma; - /* relent->section = 0;*/ -} - -static int -w65_reloc16_estimate (bfd *abfd, - asection *input_section, - arelent *reloc, - unsigned int shrink, - struct bfd_link_info *link_info) -{ - bfd_vma value; - bfd_vma dot; - bfd_vma gap; - - /* The address of the thing to be relocated will have moved back by - the size of the shrink - but we don't change reloc->address here, - since we need it to know where the relocation lives in the source - uncooked section. */ - - /* reloc->address -= shrink; conceptual */ - - bfd_vma address = reloc->address - shrink; - - switch (reloc->howto->type) - { - case R_MOV16B2: - case R_JMP2: - shrink+=2; - break; - - /* Thing is a move one byte. */ - case R_MOV16B1: - value = bfd_coff_reloc16_get_value (reloc, link_info, input_section); - - if (value >= 0xff00) - { - /* Change the reloc type from 16bit, possible 8 to 8bit - possible 16. */ - reloc->howto = reloc->howto + 1; - /* The place to relc moves back by one. */ - /* This will be two bytes smaller in the long run. */ - shrink += 2; - bfd_perform_slip (abfd, 2, input_section, address); - } - - break; - /* This is the 24 bit branch which could become an 8 bitter, - the relocation points to the first byte of the insn, not the - actual data. */ - - case R_JMPL1: - value = bfd_coff_reloc16_get_value (reloc, link_info, input_section); - - dot = input_section->output_section->vma + - input_section->output_offset + address; - - /* See if the address we're looking at within 127 bytes of where - we are, if so then we can use a small branch rather than the - jump we were going to. */ - gap = value - dot; - - if (-120 < (long) gap && (long) gap < 120) - { - /* Change the reloc type from 24bit, possible 8 to 8bit - possible 32. */ - reloc->howto = reloc->howto + 1; - /* This will be two bytes smaller in the long run. */ - shrink += 2; - bfd_perform_slip (abfd, 2, input_section, address); - } - break; - - case R_JMP1: - value = bfd_coff_reloc16_get_value (reloc, link_info, input_section); - - dot = input_section->output_section->vma + - input_section->output_offset + address; - - /* See if the address we're looking at within 127 bytes of where - we are, if so then we can use a small branch rather than the - jump we were going to. */ - gap = value - (dot - shrink); - - if (-120 < (long) gap && (long) gap < 120) - { - /* Change the reloc type from 16bit, possible 8 to 8bit - possible 16. */ - reloc->howto = reloc->howto + 1; - /* The place to relc moves back by one. */ - - /* This will be two bytes smaller in the long run. */ - shrink += 2; - bfd_perform_slip (abfd, 2, input_section, address); - } - break; - } - - return shrink; -} - -/* First phase of a relaxing link. */ - -/* Reloc types - large small - R_MOV16B1 R_MOV16B2 mov.b with 16bit or 8 bit address - R_JMP1 R_JMP2 jmp or pcrel branch - R_JMPL1 R_JMPL_B8 24jmp or pcrel branch - R_MOV24B1 R_MOV24B2 24 or 8 bit reloc for mov.b */ - -static void -w65_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; - asection *input_section = link_order->u.indirect.section; - - switch (reloc->howto->type) - { - case R_W65_ABS8: - case R_W65_DP: - { - unsigned int gap = bfd_coff_reloc16_get_value (reloc, link_info, - input_section); - bfd_put_8 (abfd, gap, data + dst_address); - dst_address += 1; - src_address += 1; - } - break; - - case R_W65_ABS8S8: - { - unsigned int gap = bfd_coff_reloc16_get_value (reloc, link_info, - input_section); - gap >>= 8; - bfd_put_8 (abfd, gap, data + dst_address); - dst_address += 1; - src_address += 1; - } - break; - - case R_W65_ABS8S16: - { - unsigned int gap = bfd_coff_reloc16_get_value (reloc, link_info, - input_section); - gap >>= 16; - bfd_put_8 (abfd, gap, data + dst_address); - dst_address += 1; - src_address += 1; - } - break; - - case R_W65_ABS16: - { - unsigned int gap = bfd_coff_reloc16_get_value (reloc, link_info, - input_section); - - bfd_put_16 (abfd, (bfd_vma) gap, data + dst_address); - dst_address += 2; - src_address += 2; - } - break; - case R_W65_ABS16S8: - { - unsigned int gap = bfd_coff_reloc16_get_value (reloc, link_info, - input_section); - gap >>= 8; - bfd_put_16 (abfd, (bfd_vma) gap, data + dst_address); - dst_address += 2; - src_address += 2; - } - break; - case R_W65_ABS16S16: - { - unsigned int gap = bfd_coff_reloc16_get_value (reloc, link_info, - input_section); - gap >>= 16; - bfd_put_16 (abfd, (bfd_vma) gap, data + dst_address); - dst_address += 2; - src_address += 2; - } - break; - - case R_W65_ABS24: - { - unsigned int gap = bfd_coff_reloc16_get_value (reloc, link_info, - input_section); - bfd_put_16 (abfd, (bfd_vma) gap, data + dst_address); - bfd_put_8 (abfd, gap >> 16, data+dst_address + 2); - dst_address += 3; - src_address += 3; - } - break; - - case R_W65_PCR8: - { - int gap = bfd_coff_reloc16_get_value (reloc, link_info, - input_section); - bfd_vma dot = (dst_address - + input_section->output_offset - + input_section->output_section->vma); - - gap -= dot + 1; - if (gap < -128 || gap > 127) - (*link_info->callbacks->reloc_overflow) - (link_info, NULL, bfd_asymbol_name (*reloc->sym_ptr_ptr), - reloc->howto->name, reloc->addend, input_section->owner, - input_section, reloc->address); - - bfd_put_8 (abfd, gap, data + dst_address); - dst_address += 1; - src_address += 1; - } - break; - - case R_W65_PCR16: - { - bfd_vma gap = bfd_coff_reloc16_get_value (reloc, link_info, - input_section); - bfd_vma dot = (dst_address - + input_section->output_offset - + input_section->output_section->vma); - - /* This wraps within the page, so ignore the relativeness, look at the - high part. */ - if ((gap & 0xf0000) != (dot & 0xf0000)) - (*link_info->callbacks->reloc_overflow) - (link_info, NULL, bfd_asymbol_name (*reloc->sym_ptr_ptr), - reloc->howto->name, reloc->addend, input_section->owner, - input_section, reloc->address); - - gap -= dot + 2; - bfd_put_16 (abfd, gap, data + dst_address); - dst_address += 2; - src_address += 2; - } - break; - default: - printf (_("ignoring reloc %s\n"), reloc->howto->name); - break; - - } - *src_ptr = src_address; - *dst_ptr = dst_address; -} - -#define coff_reloc16_extra_cases w65_reloc16_extra_cases -#define coff_reloc16_estimate w65_reloc16_estimate - -#ifndef bfd_pe_print_pdata -#define bfd_pe_print_pdata NULL -#endif - -#include "coffcode.h" - -#undef coff_bfd_get_relocated_section_contents -#undef coff_bfd_relax_section -#define coff_bfd_get_relocated_section_contents \ - bfd_coff_reloc16_get_relocated_section_contents -#define coff_bfd_relax_section bfd_coff_reloc16_relax_section - -CREATE_LITTLE_COFF_TARGET_VEC (w65_coff_vec, "coff-w65", BFD_IS_RELAXABLE, 0, '_', NULL, COFF_SWAP_TABLE) diff -Nru gdb-8.1/bfd/coff-we32k.c gdb-8.2/bfd/coff-we32k.c --- gdb-8.1/bfd/coff-we32k.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff-we32k.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ -/* BFD back-end for we32k COFF files. - Copyright (C) 1992-2018 Free Software Foundation, Inc. - Contributed by Brendan Kehoe (brendan@cs.widener.edu). - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "coff/we32k.h" -#include "coff/internal.h" -#include "libcoff.h" - -#define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (3) - -static reloc_howto_type howto_table[] = -{ - EMPTY_HOWTO (0), - EMPTY_HOWTO (1), - EMPTY_HOWTO (2), - EMPTY_HOWTO (3), - EMPTY_HOWTO (4), - EMPTY_HOWTO (5), - HOWTO(R_DIR32, 0, 2, 32, FALSE, 0,complain_overflow_bitfield, 0, "dir32", TRUE, 0xffffffff,0xffffffff, FALSE), - EMPTY_HOWTO (7), - EMPTY_HOWTO (010), - EMPTY_HOWTO (011), - EMPTY_HOWTO (012), - EMPTY_HOWTO (013), - EMPTY_HOWTO (014), - EMPTY_HOWTO (015), - EMPTY_HOWTO (016), - HOWTO(R_RELBYTE, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, 0, "8", TRUE, 0x000000ff,0x000000ff, FALSE), - HOWTO(R_RELWORD, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, 0, "16", TRUE, 0x0000ffff,0x0000ffff, FALSE), - HOWTO(R_RELLONG, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, 0, "32", TRUE, 0xffffffff,0xffffffff, FALSE), - HOWTO(R_PCRBYTE, 0, 0, 8, TRUE, 0, complain_overflow_signed, 0, "DISP8", TRUE, 0x000000ff,0x000000ff, FALSE), - HOWTO(R_PCRWORD, 0, 1, 16, TRUE, 0, complain_overflow_signed, 0, "DISP16", TRUE, 0x0000ffff,0x0000ffff, FALSE), - HOWTO(R_PCRLONG, 0, 2, 32, TRUE, 0, complain_overflow_signed, 0, "DISP32", TRUE, 0xffffffff,0xffffffff, FALSE), -}; - -#define NUM_HOWTOS (sizeof (howto_table) / sizeof (howto_table[0])) - -/* Turn a howto into a reloc nunmber */ - -#define SELECT_RELOC(x,howto) { x.r_type = howto->type; } -#define BADMAG(x) WE32KBADMAG(x) -#define WE32K 1 - -#define RTYPE2HOWTO(cache_ptr, dst) \ - ((cache_ptr)->howto = \ - ((dst)->r_type < NUM_HOWTOS \ - ? howto_table + (dst)->r_type \ - : NULL)) - -#ifndef bfd_pe_print_pdata -#define bfd_pe_print_pdata NULL -#endif - -#include "coffcode.h" - -#define coff_write_armap bsd_write_armap - -CREATE_BIG_COFF_TARGET_VEC (we32k_coff_vec, "coff-we32k", 0, 0, 0, NULL, COFF_SWAP_TABLE) diff -Nru gdb-8.1/bfd/coff-x86_64.c gdb-8.2/bfd/coff-x86_64.c --- gdb-8.1/bfd/coff-x86_64.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/coff-x86_64.c 2018-09-05 07:27:13.000000000 +0000 @@ -761,9 +761,9 @@ BFD_ENDIAN_LITTLE, /* Data byte order is little. */ BFD_ENDIAN_LITTLE, /* Header byte order is little. */ - (HAS_RELOC | EXEC_P | /* Object flags. */ - HAS_LINENO | HAS_DEBUG | - HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED | BFD_COMPRESS | BFD_DECOMPRESS), + (HAS_RELOC | EXEC_P /* Object flags. */ + | HAS_LINENO | HAS_DEBUG + | HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED | BFD_COMPRESS | BFD_DECOMPRESS), (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC /* Section flags. */ #if defined(COFF_WITH_PE) @@ -788,12 +788,24 @@ bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* Hdrs. */ /* Note that we allow an object file to be treated as a core file as well. */ - { _bfd_dummy_target, amd64coff_object_p, /* BFD_check_format. */ - bfd_generic_archive_p, amd64coff_object_p }, - { 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_check_format. */ + _bfd_dummy_target, + amd64coff_object_p, + bfd_generic_archive_p, + amd64coff_object_p + }, + { /* bfd_set_format. */ + _bfd_bool_bfd_false_error, + coff_mkobject, + _bfd_generic_mkarchive, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents. */ + _bfd_bool_bfd_false_error, + coff_write_object_contents, + _bfd_write_archive_contents, + _bfd_bool_bfd_false_error + }, BFD_JUMP_TABLE_GENERIC (coff), BFD_JUMP_TABLE_COPY (coff), diff -Nru gdb-8.1/bfd/compress.c gdb-8.2/bfd/compress.c --- gdb-8.1/bfd/compress.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/compress.c 2018-09-05 07:27:13.000000000 +0000 @@ -252,8 +252,8 @@ if (bfd_get_error () == bfd_error_no_memory) _bfd_error_handler /* xgettext:c-format */ - (_("error: %B(%A) is too large (%#Lx bytes)"), - abfd, sec, sz); + (_("error: %pB(%pA) is too large (%#" PRIx64 " bytes)"), + abfd, sec, (uint64_t) sz); return FALSE; } } diff -Nru gdb-8.1/bfd/config.bfd gdb-8.2/bfd/config.bfd --- gdb-8.1/bfd/config.bfd 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/config.bfd 2018-09-05 07:44:28.000000000 +0000 @@ -53,99 +53,102 @@ echo "*** Use or1k-*-elf or or1k-*-linux as the target instead" >&2 exit 1 ;; - i[3-7]86-*-netbsdelf* | i[3-7]86-*-netbsd*-gnu* | i[3-7]86-*-knetbsd*-gnu | \ + powerpc-*-lynxos* | powerpc-*-windiss* | \ + null) + if test "x$enable_obsolete" != xyes; then + echo "*** Configuration $targ is obsolete." >&2 + echo "*** Specify --enable-obsolete to build it anyway." >&2 + echo "*** Support will be REMOVED in the next major release of BINUTILS," >&2 + echo "*** unless a maintainer comes forward." >&2 + exit 1 + fi;; +esac + +case $targ in + *-*-netbsdelf* | i[3-7]86-*-netbsd*-gnu* | i[3-7]86-*-knetbsd*-gnu | \ mips*-*-irix5* | mips*-*-irix6*) # Not obsolete ;; + *-adobe-* | \ + *-go32-rtems* | \ + *-sony-* | \ + *-tandem-* | \ + *-*-ieee* | \ *-*-netware* | \ - arm-epoc-pe* | \ + *-*-rtemsaout* | \ + *-*-rtemscoff* | \ + a29k-* | \ arm*-*-aout | \ - arm*-*-coff | \ + arm-*-coff | \ + arm-*-netbsd* | \ + arm-*-openbsd* | \ + arm-*-oabi | \ + arm-*-riscix* | \ + arm-epoc-pe* | \ h8300*-*-coff | \ h8500*-*-coff | \ - i[3-7]86-*-sco3.2v5*coff | \ - i[3-7]86-*-sysv4* | i[3-7]86-*-unixware* | \ - i[3-7]86-*-sco3.2v5* | \ - i[3-7]86-*-dgux* | i[3-7]86-*-sysv5* | \ + hppa*-*-rtems* | \ + i[3-7]86-*-unixware* | \ + i[3-7]86-*-dgux* | \ i[3-7]86-*-chorus* | \ - i[3-7]86-*-sysv* | i[3-7]86-*-isc* | i[3-7]86-*-sco* | i[3-7]86-*-coff | \ + i[3-7]86-*-sysv* | \ + i[3-7]86-*-isc* | \ + i[3-7]86-*-sco* | \ + i[3-7]86-*-coff | \ i[3-7]86-*-aix* | \ i[3-7]86-sequent-bsd* | \ - i[3-7]86-*-freebsdaout* | i[3-7]86-*-freebsd[12].* | \ - i[3-7]86-*-freebsd[12] | \ + i[3-7]86-*-freebsdaout* | i[3-7]86-*-freebsd[12].* | i[3-7]86-*-freebsd[12] | \ i[3-7]86-*-netbsdaout* | i[3-7]86-*-netbsd* | \ i[3-7]86-*-openbsd[0-2].* | i[3-7]86-*-openbsd3.[0-3] | \ - i[3-7]86-*-netware* | \ i[3-7]86-*-linux*aout* | \ i[3-7]86-*-mach* | i[3-7]86-*-osf1mk* | \ i[3-7]86-*-os9k | \ i[3-7]86-none-* | \ i[3-7]86-*-aout* | i[3-7]86*-*-vsta* | \ + i370-* | \ i860-*-* | \ i960-*-* | \ - m68*-motorola-sysv* | m68*-hp-bsd* | m68*-*-aout* | \ - m68*-*-coff* | m68*-*-sysv* | \ + m68*-*-*bsd* | \ + m68*-*-aout* | \ + m68*-*-coff* | \ m68*-*-hpux* | \ m68*-*-linux*aout* | \ - m68*-hp*-netbsd* | \ - m68*-*-netbsdaout* | \ - m68*-*-sunos* | m68*-*-os68k* | m68*-*-vxworks* | m68*-netx-* | \ - m68*-*-bsd* | m68*-*-vsta* | \ - m68*-ericsson-* | \ + m68*-*-lynxos* | \ + m68*-*-os68k* | \ m68*-*-psos* | \ + m68*-*-sunos* | \ + m68*-*-sysv* | \ + m68*-*-vsta* | \ + m68*-*-vxworks* | \ + m68*-apollo-* | \ + m68*-apple-aux* | \ + m68*-bull-sysv* | \ + m68*-ericsson-* | \ + m68*-motorola-sysv* | \ + m68*-netx-* | \ m88*-*-* | \ - mips*-big-* | \ - mips*-dec-* | mips*el-*-ecoff* | \ + maxq-*-coff | \ + mips*-*-bsd* | \ mips*-*-ecoff* | \ - mips*-sgi-* | mips*-*-bsd* | \ mips*-*-lnews* | \ - mips*-*-sysv* | mips*-*-riscos* | \ - sh*-*-symbianelf* | \ - sparclet-*-aout* | \ - sparc86x-*-aout* | \ + mips*-*-mach3* | \ + mips*-*-pe* | \ + mips*-*-riscos* | \ + mips*-*-sysv* | \ + mips*-big-* | \ + mips*-dec-* | \ + mips*-sgi-* | \ + mips*el-*-rtems* | \ + sh*-*-symbianelf* | sh5*-*-* | sh64*-*-* | \ + sparc*-*-*aout* | \ sparc*-*-chorus* | \ - sparc-*-linux*aout* | \ - sparc-*-netbsdaout* | \ - sparc-*-openbsd[0-2].* | sparc-*-openbsd3.[0-1] | \ - sparc-*-netware* | \ - sparc64-*-aout* | \ sparc*-*-coff* | \ + sparc-*-lynxos* | \ + sparc-*-openbsd[0-2].* | sparc-*-openbsd3.[0-1] | \ tahoe-*-* | \ - vax-*-bsd* | vax-*-ultrix* | \ - we32k-*-* | \ + vax-*-bsd* | vax-*-ultrix* | vax-*-vms* | \ w65-*-* | \ - *-*-ieee* | \ - *-adobe-* | \ - *-sony-* | \ - *-tandem-* | \ - i370-* | \ - sh5*-*-* | sh64*-*-* | \ - null) - if test "x$enable_obsolete" != xyes; then - echo "*** Configuration $targ is obsolete." >&2 - echo "*** Specify --enable-obsolete to build it anyway." >&2 - echo "*** Support will be REMOVED in the next major release of BINUTILS," >&2 - echo "*** unless a maintainer comes forward." >&2 - exit 1 - fi;; -esac - -case $targ in - *-go32-rtems* | \ - *-*-rtemsaout* | \ - *-*-rtemscoff* | \ - a29k-* | \ - arm-*-oabi | \ - hppa*-*-rtems* | \ - i960-*-rtems* | \ - m68*-*-lynxos* | \ - m68*-apollo-* | \ - m68*-apple-aux* | \ - m68*-bull-sysv* | \ - maxq-*-coff | \ - mips*el-*-rtems* | \ - sparc-*-lynxos* | \ - vax-*-vms* | \ + we32k-*-* | \ null) echo "*** Configuration $targ is obsolete." >&2 echo "*** Support has been REMOVED." >&2 @@ -171,16 +174,16 @@ fido*) targ_archs=bfd_m68k_arch ;; hppa*) targ_archs=bfd_hppa_arch ;; i[3-7]86) targ_archs=bfd_i386_arch ;; -i370) targ_archs=bfd_i370_arch ;; ia16) targ_archs=bfd_i386_arch ;; lm32) targ_archs=bfd_lm32_arch ;; m6811*|m68hc11*) targ_archs="bfd_m68hc11_arch bfd_m68hc12_arch bfd_m9s12x_arch bfd_m9s12xg_arch" ;; m6812*|m68hc12*) targ_archs="bfd_m68hc12_arch bfd_m68hc11_arch bfd_m9s12x_arch bfd_m9s12xg_arch" ;; m68*) targ_archs=bfd_m68k_arch ;; -m88*) targ_archs=bfd_m88k_arch ;; +s12z*) targ_archs=bfd_s12z_arch ;; microblaze*) targ_archs=bfd_microblaze_arch ;; mips*) targ_archs=bfd_mips_arch ;; nds32*) targ_archs=bfd_nds32_arch ;; +nfp) targ_archs=bfd_nfp_arch ;; nios2*) targ_archs=bfd_nios2_arch ;; or1k*|or1knd*) targ_archs=bfd_or1k_arch ;; pdp11*) targ_archs=bfd_pdp11_arch ;; @@ -211,26 +214,8 @@ # 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*-*-mach3*) - echo "This target is obsolete and has been removed." - exit 1 - ;; - - mips*-*-pe*) - echo "This target is obsolete and has been removed." - exit 1 - ;; - plugin) targ_defvec=plugin_vec targ_selvecs="plugin_vec" @@ -294,11 +279,6 @@ targ_selvecs=alpha_ecoff_le_vec want64=true ;; - alpha*-*-netware*) - targ_defvec=alpha_ecoff_le_vec - targ_selvecs=alpha_nlm32_vec - want64=true - ;; alpha*-*-linux*ecoff*) targ_defvec=alpha_ecoff_le_vec targ_selvecs=alpha_elf64_vec @@ -333,15 +313,6 @@ targ_selvecs=alpha_vms_lib_txt_vec want64=true ;; - sparc64-*-freebsd* | sparc64-*-kfreebsd*-gnu) - targ_defvec=sparc_elf64_fbsd_vec - targ_selvecs="sparc_elf64_vec sparc_elf32_vec sparc_aout_sunos_be_vec" - ;; - sparc64-*-netbsd* | sparc64-*-openbsd*) - targ_defvec=sparc_elf64_vec - targ_selvecs="sparc_elf32_vec sparc_aout_sunos_be_vec" - want64=true - ;; #endif /* BFD64 */ am33_2.0-*-linux*) @@ -381,31 +352,17 @@ ;; armeb-*-netbsdelf*) targ_defvec=arm_elf32_be_vec - targ_selvecs="arm_elf32_le_vec arm_aout_nbsd_vec" + targ_selvecs="arm_elf32_le_vec" ;; arm-*-netbsdelf*) targ_defvec=arm_elf32_le_vec - targ_selvecs="arm_elf32_be_vec arm_aout_nbsd_vec" - ;; - arm-*-netbsd* | arm-*-openbsd*) - targ_defvec=arm_aout_nbsd_vec - targ_selvecs="arm_elf32_le_vec arm_elf32_be_vec" - targ_underscore=yes + targ_selvecs="arm_elf32_be_vec" ;; arm-*-nto* | nto*arm*) targ_defvec=arm_elf32_le_vec targ_selvecs=arm_elf32_be_vec targ_cflags=-D__QNXTARGET__ ;; - arm-*-riscix*) - targ_defvec=arm_aout_riscix_vec - ;; - arm-epoc-pe*) - targ_defvec=arm_pe_epoc_le_vec - targ_selvecs="arm_pe_epoc_le_vec arm_pe_epoc_be_vec arm_pei_epoc_le_vec arm_pei_epoc_be_vec" - targ_underscore=no - targ_cflags=-DARM_COFF_BUGFIX - ;; arm-wince-pe | arm-*-wince | arm*-*-mingw32ce* | arm*-*-cegcc*) targ_defvec=arm_pe_wince_le_vec targ_selvecs="arm_pe_wince_le_vec arm_pe_wince_be_vec arm_pei_wince_le_vec arm_pei_wince_be_vec" @@ -417,19 +374,6 @@ targ_selvecs="arm_pe_le_vec arm_pe_be_vec arm_pei_le_vec arm_pei_be_vec" targ_underscore=yes ;; - arm-*-aout | armel-*-aout) - targ_defvec=arm_aout_le_vec - targ_selvecs=arm_aout_be_vec - ;; - armeb-*-aout) - targ_defvec=arm_aout_be_vec - targ_selvecs=arm_aout_le_vec - ;; - arm-*-coff) - targ_defvec=arm_coff_le_vec - targ_selvecs=arm_coff_be_vec - targ_underscore=yes - ;; arm-*-phoenix*) targ_defvec=arm_elf32_le_vec targ_selvecs=arm_elf32_be_vec @@ -444,9 +388,9 @@ ;; arm-*-elf | arm*-*-freebsd* | arm*-*-linux-* | arm*-*-conix* | \ arm*-*-uclinux* | arm-*-kfreebsd*-gnu | \ - arm*-*-eabi* | arm-*-rtems*) + arm*-*-eabi* | arm-*-rtems* | arm*-*-uclinuxfdpiceabi) targ_defvec=arm_elf32_le_vec - targ_selvecs=arm_elf32_be_vec + targ_selvecs="arm_elf32_fdpic_le_vec arm_elf32_be_vec arm_elf32_fdpic_be_vec" ;; arm*-*-vxworks | arm*-*-windiss) targ_defvec=arm_elf32_vxworks_le_vec @@ -503,7 +447,7 @@ #ifdef BFD64 cris-*-* | crisv32-*-*) targ_defvec=cris_aout_vec - targ_selvecs="cris_elf32_us_vec cris_elf32_vec ieee_vec" + targ_selvecs="cris_elf32_us_vec cris_elf32_vec" case "${targ}" in *-*-linux*) ;; *) targ_underscore=yes ;; @@ -537,7 +481,6 @@ fido-*-elf* ) targ_defvec=m68k_elf32_vec - targ_selvecs="m68k_coff_vec ieee_vec" ;; fr30-*-elf) @@ -572,16 +515,6 @@ targ_defvec=h8300_elf32_linux_vec ;; - h8300*-*-*) - targ_defvec=h8300_coff_vec - targ_underscore=yes - ;; - - h8500-*-*) - targ_defvec=h8500_coff_vec - targ_underscore=yes - ;; - #ifdef BFD64 hppa*64*-*-linux-*) targ_defvec=hppa_elf64_linux_vec @@ -621,18 +554,7 @@ targ_selvecs=hppa_elf32_vec ;; - i370-*-*) - targ_defvec=i370_elf32_vec - targ_selvecs="i370_elf32_vec" - ;; - - i[3-7]86-*-sco3.2v5*coff) - targ_defvec=i386_coff_vec - targ_selvecs=i386_elf32_vec - ;; - i[3-7]86-*-sysv4* | i[3-7]86-*-unixware* | \ - i[3-7]86-*-elf* | i[3-7]86-*-sco3.2v5* | \ - i[3-7]86-*-dgux* | i[3-7]86-*-sysv5* | i[3-7]86-*-rtems*) + i[3-7]86-*-elf* | i[3-7]86-*-rtems*) targ_defvec=i386_elf32_vec targ_selvecs="iamcu_elf32_vec i386_coff_vec" ;; @@ -661,10 +583,6 @@ targ_defvec=i386_elf32_vec targ_selvecs=iamcu_elf32_vec ;; - i[3-7]86-*-chorus*) - targ_defvec=i386_elf32_vec - targ_selvecs=iamcu_elf32_vec - ;; i[3-7]86-*-dicos*) targ_defvec=i386_elf32_vec targ_selvecs=iamcu_elf32_vec @@ -674,20 +592,12 @@ targ_defvec=i386_coff_go32_vec targ_selvecs="i386_coff_go32stubbed_vec i386_aout_vec" ;; - i[3-7]86-*-sysv* | i[3-7]86-*-isc* | i[3-7]86-*-sco* | i[3-7]86-*-coff | \ - i[3-7]86-*-aix*) - targ_defvec=i386_coff_vec - ;; i[3-7]86-*-darwin* | i[3-7]86-*-macos10* | i[3-7]86-*-rhapsody*) targ_defvec=i386_mach_o_vec targ_selvecs="mach_o_le_vec mach_o_be_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec" targ64_selvecs=x86_64_mach_o_vec targ_archs="$targ_archs bfd_powerpc_arch bfd_rs6000_arch" ;; - i[3-7]86-sequent-bsd*) - targ_defvec=i386_aout_dynix_vec - targ_underscore=yes - ;; i[3-7]86-*-bsd*) targ_defvec=i386_aout_bsd_vec targ_underscore=yes @@ -697,12 +607,6 @@ targ_selvecs=iamcu_elf32_vec targ64_selvecs="x86_64_elf64_vec l1om_elf64_vec k1om_elf64_vec" ;; - i[3-7]86-*-freebsdaout* | i[3-7]86-*-freebsd[12].* | \ - i[3-7]86-*-freebsd[12]) - targ_defvec=i386_aout_fbsd_vec - targ_selvecs=i386_aout_bsd_vec - targ_underscore=yes - ;; i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu) targ_defvec=i386_elf32_fbsd_vec targ_selvecs="i386_elf32_vec iamcu_elf32_vec i386_pei_vec i386_coff_vec" @@ -715,35 +619,20 @@ ;; i[3-7]86-*-netbsdelf* | i[3-7]86-*-netbsd*-gnu* | i[3-7]86-*-knetbsd*-gnu) targ_defvec=i386_elf32_vec - targ_selvecs="i386_aout_nbsd_vec iamcu_elf32_vec" + targ_selvecs="iamcu_elf32_vec" targ64_selvecs="x86_64_elf64_vec l1om_elf64_vec k1om_elf64_vec" ;; i[3-7]86-*-netbsdpe*) targ_defvec=i386_pe_vec targ_selvecs="i386_pe_vec i386_pei_vec i386_elf32_vec iamcu_elf32_vec" ;; - 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=i386_aout_nbsd_vec - targ_selvecs="i386_elf32_vec iamcu_elf32_vec i386_aout_bsd_vec" - targ_underscore=yes - ;; i[3-7]86-*-openbsd*) targ_defvec=i386_elf32_vec - targ_selvecs="iamcu_elf32_vec i386_aout_nbsd_vec" - ;; - i[3-7]86-*-netware*) - targ_defvec=i386_elf32_vec - targ_selvecs="iamcu_elf32_vec i386_nlm32_vec i386_coff_vec i386_aout_vec" - ;; - i[3-7]86-*-linux*aout*) - targ_defvec=i386_aout_linux_vec - targ_selvecs="i386_elf32_vec iamcu_elf32_vec" - targ_underscore=yes + targ_selvecs="iamcu_elf32_vec" ;; i[3-7]86-*-linux-*) targ_defvec=i386_elf32_vec - targ_selvecs="iamcu_elf32_vec i386_aout_linux_vec i386_pei_vec" + targ_selvecs="iamcu_elf32_vec i386_pei_vec" targ64_selvecs="x86_64_elf64_vec x86_64_elf32_vec x86_64_pei_vec l1om_elf64_vec k1om_elf64_vec" ;; i[3-7]86-*-nacl*) @@ -776,6 +665,10 @@ x86_64-*-elf* | x86_64-*-rtems* | x86_64-*-fuchsia) targ_defvec=x86_64_elf64_vec targ_selvecs="i386_elf32_vec iamcu_elf32_vec x86_64_elf32_vec l1om_elf64_vec k1om_elf64_vec" + case "${targ}" in + x86_64-*-rtems*) + targ_selvecs="${targ_selvecs} x86_64_pei_vec" + esac want64=true ;; x86_64-*-dragonfly*) @@ -790,12 +683,12 @@ ;; x86_64-*-netbsd* | x86_64-*-openbsd*) targ_defvec=x86_64_elf64_vec - targ_selvecs="i386_elf32_vec iamcu_elf32_vec i386_aout_nbsd_vec i386_coff_vec i386_pei_vec x86_64_pei_vec l1om_elf64_vec k1om_elf64_vec" + targ_selvecs="i386_elf32_vec iamcu_elf32_vec i386_coff_vec i386_pei_vec x86_64_pei_vec l1om_elf64_vec k1om_elf64_vec" want64=true ;; x86_64-*-linux-*) targ_defvec=x86_64_elf64_vec - targ_selvecs="i386_elf32_vec iamcu_elf32_vec x86_64_elf32_vec i386_aout_linux_vec i386_pei_vec x86_64_pei_vec l1om_elf64_vec k1om_elf64_vec" + targ_selvecs="i386_elf32_vec iamcu_elf32_vec x86_64_elf32_vec i386_pei_vec x86_64_pei_vec l1om_elf64_vec k1om_elf64_vec" want64=true ;; x86_64-*-nacl*) @@ -828,14 +721,6 @@ targ_defvec=i386_elf32_vec targ_selvecs=iamcu_elf32_vec ;; - i[3-7]86-*-mach* | i[3-7]86-*-osf1mk*) - targ_defvec=i386_aout_mach3_vec - targ_cflags=-DSTAT_FOR_EXEC - targ_underscore=yes - ;; - i[3-7]86-*-os9k) - targ_defvec=i386_aout_os9k_vec - ;; i[3-7]86-*-msdos*) targ_defvec=i386_aout_vec targ_selvecs=i386_msdos_vec @@ -867,12 +752,6 @@ targ_selvecs="i386_pe_vec i386_pei_vec i386_elf32_vec iamcu_elf32_vec" targ_underscore=yes ;; - i[3-7]86-none-*) - targ_defvec=i386_coff_vec - ;; - i[3-7]86-*-aout* | i[3-7]86*-*-vsta*) - targ_defvec=i386_aout_vec - ;; i[3-7]86-*-vxworks*) targ_defvec=i386_elf32_vxworks_vec targ_underscore=yes @@ -882,37 +761,6 @@ targ_selfvecs="iamcu_elf32_vec i386chaos_vec" ;; - i860-*-mach3* | i860-*-osf1* | i860-*-coff*) - targ_defvec=i860_coff_vec - ;; - i860-stardent-sysv4* | i860-stardent-elf*) - targ_defvec=i860_elf32_le_vec - targ_selvecs="i860_elf32_vec i860_elf32_le_vec" - ;; - i860-*-sysv4* | i860-*-elf*) - targ_defvec=i860_elf32_vec - ;; - - i960-*-vxworks4* | i960-*-vxworks5.0) - targ_defvec=bout_le_vec - targ_selvecs="bout_be_vec icoff_le_vec icoff_be_vec ieee_vec" - targ_underscore=yes - ;; - i960-*-vxworks5.* | i960-*-coff* | i960-*-sysv*) - targ_defvec=icoff_le_vec - targ_selvecs="icoff_be_vec bout_le_vec bout_be_vec ieee_vec" - targ_underscore=yes - ;; - i960-*-vxworks* | i960-*-aout* | i960-*-bout* | i960-*-nindy*) - targ_defvec=bout_le_vec - targ_selvecs="bout_be_vec icoff_le_vec icoff_be_vec ieee_vec" - targ_underscore=yes - ;; - i960-*-elf*) - targ_defvec=i960_elf32_vec - targ_selvecs="icoff_le_vec icoff_be_vec" - ;; - ia16-*-elf) targ_defvec=i386_elf32_vec targ_selvecs="i386_msdos_vec i386_aout_vec" @@ -967,103 +815,13 @@ targ_selvecs="m68hc11_elf32_vec m68hc12_elf32_vec" ;; - m68*-motorola-sysv*) - targ_defvec=m68k_coff_sysv_vec - ;; - m68*-hp-bsd*) - targ_defvec=m68k_aout_hp300bsd_vec - targ_underscore=yes - ;; - m68*-*-aout*) - targ_defvec=aout0_be_vec - # We include core_cisco_be_vec here, rather than making a separate cisco - # configuration, so that cisco-core.c gets routinely tested at - # least for compilation. - targ_selvecs="core_cisco_be_vec ieee_vec" - targ_underscore=yes - ;; - m68*-*-elf* | m68*-*-sysv4* | m68*-*-rtems* | m68*-*-uclinux*) - targ_defvec=m68k_elf32_vec - targ_selvecs="m68k_coff_vec ieee_vec" - ;; - m68*-*-coff* | m68*-*-sysv*) - targ_defvec=m68k_coff_vec - targ_selvecs="m68k_coff_vec m68k_versados_vec ieee_vec" - ;; - m68*-*-hpux*) - targ_defvec=m68k_aout_hp300hpux_vec - targ_underscore=yes - ;; - m68*-*-linux*aout*) - targ_defvec=m68k_aout_linux_vec - targ_selvecs=m68k_elf32_vec - targ_underscore=yes - ;; - m68*-*-linux-*) - targ_defvec=m68k_elf32_vec - targ_selvecs=m68k_aout_linux_vec - ;; - m68*-*-gnu*) - targ_defvec=m68k_elf32_vec - # targ_selvecs=m68kmach3_vec - # targ_cflags=-DSTAT_FOR_EXEC - ;; - m68*-hp*-netbsd*) - targ_defvec=m68k_aout_4knbsd_vec - targ_selvecs="m68k_aout_nbsd_vec m68k_aout_hp300bsd_vec sparc_aout_sunos_be_vec" - targ_underscore=yes - ;; - m68*-*-netbsdelf*) + m68*-*-*) targ_defvec=m68k_elf32_vec - targ_selvecs="m68k_aout_nbsd_vec m68k_aout_4knbsd_vec m68k_aout_hp300bsd_vec sparc_aout_sunos_be_vec" - ;; - m68*-*-netbsdaout* | m68*-*-netbsd*) - targ_defvec=m68k_aout_nbsd_vec - targ_selvecs="m68k_aout_4knbsd_vec m68k_elf32_vec m68k_aout_hp300bsd_vec sparc_aout_sunos_be_vec" - targ_underscore=yes - ;; - m68*-*-openbsd*) - targ_defvec=m68k_aout_nbsd_vec - targ_selvecs="m68k_aout_4knbsd_vec m68k_aout_hp300bsd_vec sparc_aout_sunos_be_vec" - targ_underscore=yes - ;; - m68*-*-sunos* | m68*-*-os68k* | m68*-*-vxworks* | m68*-netx-* | \ - m68*-*-bsd* | m68*-*-vsta*) - targ_defvec=sparc_aout_sunos_be_vec - targ_underscore=yes - ;; - m68*-ericsson-*) - targ_defvec=sparc_aout_sunos_be_vec - targ_selvecs="m68k_coff_vec m68k_versados_vec tekhex_vec" - targ_underscore=yes - ;; - m68*-cbm-*) - targ_defvec=m68k_elf32_vec - targ_selvecs=m68k_coff_vec - ;; - m68*-*-psos*) - targ_defvec=m68k_elf32_vec - targ_selvecs=ieee_vec - targ_underscore=yes ;; - m88*-harris-cxux* | m88*-*-dgux* | m88*-*-sysv4*) - targ_defvec=m88k_elf32_vec - targ_selvecs=m88k_coff_bcs_vec - ;; - m88*-*-mach3*) - targ_defvec=m88k_aout_mach3_vec - targ_cflags=-DSTAT_FOR_EXEC + s12z-*-*) + targ_defvec=s12z_elf32_vec ;; - m88*-*-openbsd*) - targ_defvec=m88k_aout_obsd_vec - targ_underscore=yes - ;; - m88*-*-*) - targ_defvec=m88k_coff_bcs_vec - targ_underscore=yes - ;; - mcore-*-elf) targ_defvec=mcore_elf32_be_vec targ_selvecs="mcore_elf32_be_vec mcore_elf32_le_vec" @@ -1093,10 +851,6 @@ targ_selvecs=microblaze_elf32_le_vec ;; - mips*-big-*) - targ_defvec=mips_ecoff_be_vec - targ_selvecs=mips_ecoff_le_vec - ;; #ifdef BFD64 mips*el-*-netbsd*) targ_defvec=mips_elf32_trad_le_vec @@ -1106,16 +860,6 @@ targ_defvec=mips_elf32_trad_be_vec targ_selvecs="mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec mips_ecoff_be_vec mips_ecoff_le_vec" ;; -#endif - mips*-dec-* | mips*el-*-ecoff*) - targ_defvec=mips_ecoff_le_vec - targ_selvecs=mips_ecoff_be_vec - ;; - mips*-*-ecoff*) - targ_defvec=mips_ecoff_be_vec - targ_selvecs=mips_ecoff_le_vec - ;; -#ifdef BFD64 mips*-*-irix6*) targ_defvec=mips_elf32_n_be_vec targ_selvecs="mips_elf32_n_le_vec mips_elf32_be_vec mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec" @@ -1132,26 +876,6 @@ targ_defvec=mips_elf32_be_vec targ_selvecs="mips_elf32_le_vec mips_ecoff_be_vec mips_ecoff_le_vec" ;; -#endif - mips*-sgi-* | mips*-*-bsd*) - targ_defvec=mips_ecoff_be_vec - targ_selvecs=mips_ecoff_le_vec - ;; - mips*-*-lnews*) - targ_defvec=mips_ecoff_bele_vec - targ_selvecs="mips_ecoff_le_vec mips_ecoff_be_vec" - ;; -#ifdef BFD64 - mips*-*-sysv4*) - targ_defvec=mips_elf32_trad_be_vec - targ_selvecs="mips_elf32_trad_le_vec mips_ecoff_be_vec mips_ecoff_le_vec" - ;; -#endif - mips*-*-sysv* | mips*-*-riscos*) - targ_defvec=mips_ecoff_be_vec - targ_selvecs=mips_ecoff_le_vec - ;; -#ifdef BFD64 mips*el-*-vxworks*) targ_defvec=mips_elf32_vxworks_le_vec targ_selvecs="mips_elf32_le_vec mips_elf32_vxworks_be_vec mips_elf32_be_vec mips_elf64_be_vec mips_elf64_le_vec" @@ -1277,6 +1001,12 @@ targ_selvecs=nds32_elf32_le_vec ;; +#ifdef BFD64 + nfp-*-*) + targ_defvec=nfp_elf64_vec + ;; +#endif + ns32k-pc532-mach* | ns32k-pc532-ux*) targ_defvec=ns32k_aout_pc532mach_vec targ_underscore=yes @@ -1415,10 +1145,6 @@ targ_selvecs="rs6000_xcoff_vec" targ_cflags=-DSMALL_ARCHIVE ;; - powerpc-*-netware*) - targ_defvec=powerpc_elf32_vec - targ_selvecs="powerpc_nlm32_vec rs6000_xcoff_vec" - ;; powerpc-*-nto*) targ_defvec=powerpc_elf32_vec targ_selvecs="rs6000_xcoff_vec powerpc_elf32_le_vec powerpc_boot_vec" @@ -1491,35 +1217,6 @@ targ_defvec=score_elf32_be_vec targ_selvecs=score_elf32_le_vec ;; - - sh64l*-*-elf*) - targ_defvec=sh64_elf32_le_vec - targ_selvecs="sh64_elf32_vec sh64_elf64_le_vec sh64_elf64_vec sh_elf32_le_vec sh_elf32_vec" - targ_underscore=yes - want64=true - ;; - sh64-*-elf*) - targ_defvec=sh64_elf32_vec - targ_selvecs="sh64_elf32_le_vec sh64_elf64_vec sh64_elf64_le_vec sh_elf32_vec sh_elf32_le_vec" - targ_underscore=yes - want64=true - ;; - sh64eb-*-linux*) - targ_defvec=sh64_elf32_linux_be_vec - targ_selvecs="sh64_elf32_linux_vec sh64_elf64_linux_be_vec sh64_elf64_linux_vec sh_elf32_linux_be_vec sh_elf32_linux_vec" - want64=true - ;; - sh64-*-linux*) - targ_defvec=sh64_elf32_linux_vec - targ_selvecs="sh64_elf32_linux_be_vec sh64_elf64_linux_vec sh64_elf64_linux_be_vec sh_elf32_linux_vec sh_elf32_linux_be_vec" - want64=true - ;; - sh-*-linux*) - targ_defvec=sh_elf32_linux_be_vec - targ_selvecs="sh_elf32_linux_vec sh64_elf32_linux_vec sh64_elf32_linux_be_vec sh64_elf64_linux_vec sh64_elf64_linux_be_vec" - targ_selvecs="${targ_selvecs} sh_elf32_fdpic_le_vec sh_elf32_fdpic_be_vec" - want64=true - ;; #endif /* BFD64 */ sh*eb-*-linux*) @@ -1536,73 +1233,28 @@ sh-*-uclinux* | sh[12]-*-uclinux*) targ_defvec=sh_elf32_vec targ_selvecs="sh_elf32_le_vec sh_elf32_linux_be_vec sh_elf32_linux_vec sh_elf32_fdpic_le_vec sh_elf32_fdpic_be_vec" -#ifdef BFD64 - targ_selvecs="${targ_selvecs} sh64_elf32_linux_vec sh64_elf32_linux_be_vec sh64_elf64_linux_vec sh64_elf64_linux_be_vec" -#endif - ;; - -#ifdef BFD64 - sh5le-*-netbsd*) - targ_defvec=sh64_elf32_nbsd_le_vec - targ_selvecs="sh64_elf32_nbsd_vec sh64_elf64_nbsd_le_vec sh64_elf64_nbsd_vec sh_elf32_nbsd_vec sh_elf32_nbsd_le_vec" - want64=true - ;; - sh5-*-netbsd*) - targ_defvec=sh64_elf32_nbsd_vec - targ_selvecs="sh64_elf32_nbsd_le_vec sh64_elf64_nbsd_le_vec sh64_elf64_nbsd_vec sh_elf32_nbsd_vec sh_elf32_nbsd_le_vec" - want64=true - ;; - - sh64le-*-netbsd*) - targ_defvec=sh64_elf64_nbsd_le_vec - targ_selvecs="sh64_elf64_nbsd_vec sh64_elf32_nbsd_le_vec sh64_elf32_nbsd_vec sh_elf32_nbsd_vec sh_elf32_nbsd_le_vec" - want64=true - ;; - sh64-*-netbsd*) - targ_defvec=sh64_elf64_nbsd_vec - targ_selvecs="sh64_elf64_nbsd_le_vec sh64_elf32_nbsd_le_vec sh64_elf32_nbsd_vec sh_elf32_nbsd_vec sh_elf32_nbsd_le_vec" - want64=true ;; sh*l*-*-netbsdelf*) targ_defvec=sh_elf32_nbsd_le_vec - targ_selvecs="sh_elf32_nbsd_vec sh_coff_vec sh_coff_le_vec sh64_elf32_nbsd_le_vec sh64_elf32_nbsd_vec sh64_elf64_nbsd_le_vec sh64_elf64_nbsd_vec" - want64=true - ;; - sh-*-netbsdelf*) - targ_defvec=sh_elf32_nbsd_vec - targ_selvecs="sh_elf32_nbsd_le_vec sh_coff_vec sh_coff_le_vec sh64_elf32_nbsd_le_vec sh64_elf32_nbsd_vec sh64_elf64_nbsd_le_vec sh64_elf64_nbsd_vec" - want64=true + targ_selvecs="sh_elf32_nbsd_vec sh_coff_vec sh_coff_le_vec" ;; -#endif - sh*-*-netbsdelf*) targ_defvec=sh_elf32_nbsd_vec targ_selvecs="sh_elf32_nbsd_le_vec sh_coff_vec sh_coff_le_vec" ;; - sh*-*-symbianelf*) - targ_defvec=sh_elf32_symbian_le_vec - targ_selvecs="sh_coff_le_vec sh_coff_small_le_vec" - targ_underscore=yes - ;; -#ifdef BFD64 shl*-*-elf* | sh[1234]l*-*-elf* | sh3el*-*-elf* | shl*-*-kaos*) targ_defvec=sh_elf32_le_vec - targ_selvecs="sh_elf32_vec sh_coff_le_vec sh_coff_vec sh_coff_small_le_vec sh_coff_small_vec sh64_elf32_vec sh64_elf32_le_vec sh64_elf64_vec sh64_elf64_le_vec" + targ_selvecs="sh_elf32_vec sh_coff_le_vec sh_coff_vec sh_coff_small_le_vec sh_coff_small_vec" targ_underscore=yes - want64=true ;; -#endif -#ifdef BFD64 sh-*-elf* | sh[1234]*-elf* | sh-*-rtems* | sh-*-kaos*) targ_defvec=sh_elf32_vec - targ_selvecs="sh_elf32_le_vec sh_coff_vec sh_coff_le_vec sh_coff_small_vec sh_coff_small_le_vec sh64_elf32_vec sh64_elf32_le_vec sh64_elf64_vec sh64_elf64_le_vec" + targ_selvecs="sh_elf32_le_vec sh_coff_vec sh_coff_le_vec sh_coff_small_vec sh_coff_small_le_vec" targ_underscore=yes - want64=true ;; -#endif sh-*-nto*) targ_defvec=sh_elf32_vec @@ -1633,100 +1285,35 @@ targ_underscore=yes ;; - sparclet-*-aout*) - targ_defvec=sparc_aout_sunos_be_vec - targ_selvecs=sparc_aout_le_vec - targ_underscore=yes - ;; - sparc86x-*-aout*) - targ_defvec=sparc_aout_sunos_be_vec - targ_underscore=yes - ;; - sparclite-*-elf* | sparc86x-*-elf*) - targ_defvec=sparc_elf32_vec - ;; - sparc*-*-chorus*) - targ_defvec=sparc_elf32_vec - ;; - sparc-*-linux*aout*) - targ_defvec=sparc_aout_linux_vec - targ_selvecs="sparc_elf32_vec sparc_aout_sunos_be_vec" - targ_underscore=yes - ;; - sparc-*-linux-* | sparcv*-*-linux-*) - targ_defvec=sparc_elf32_vec - targ_selvecs="sparc_aout_linux_vec sparc_elf64_vec sparc_aout_sunos_be_vec" - ;; - sparc-*-netbsdelf*) - targ_defvec=sparc_elf32_vec - targ_selvecs=sparc_aout_nbsd_vec - ;; - sparc-*-netbsdaout* | sparc-*-netbsd*) - targ_defvec=sparc_aout_nbsd_vec - targ_selvecs=sparc_elf32_vec - targ_underscore=yes - ;; - sparc-*-openbsd[0-2].* | sparc-*-openbsd3.[0-1]) - targ_defvec=sparc_aout_nbsd_vec - targ_underscore=yes - ;; - sparc-*-openbsd*) - targ_defvec=sparc_elf32_vec - targ_selvecs=sparc_aout_nbsd_vec - ;; - sparc-*-elf*) - targ_defvec=sparc_elf32_vec - targ_selvecs=sparc_aout_sunos_be_vec - ;; sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*) targ_defvec=sparc_elf32_sol2_vec - targ_selvecs=sparc_aout_sunos_be_vec ;; #ifdef BFD64 sparc-*-solaris2* | sparcv9-*-solaris2* | sparc64-*-solaris2*) targ_defvec=sparc_elf32_sol2_vec - targ_selvecs="sparc_elf64_sol2_vec sparc_aout_sunos_be_vec" - want64=true - ;; -#endif - sparc-*-sysv4*) - targ_defvec=sparc_elf32_vec - ;; - sparc-*-vxworks*) - targ_defvec=sparc_elf32_vxworks_vec - targ_selvecs="sparc_elf32_vec sparc_aout_sunos_be_vec" - ;; - sparc-*-netware*) - targ_defvec=sparc_elf32_vec - targ_selvecs="sparc_nlm32_vec sparc_aout_sunos_be_vec" - ;; -#ifdef BFD64 - sparc64-*-aout*) - targ_defvec=sparc_aout_sunos_be_vec - targ_underscore=yes + targ_selvecs="sparc_elf64_sol2_vec" want64=true ;; - sparc64*-*-linux-*) - targ_defvec=sparc_elf64_vec - targ_selvecs="sparc_elf32_vec sparc_aout_linux_vec sparc_aout_sunos_be_vec" - want64=true + sparc64-*-freebsd* | sparc64-*-kfreebsd*-gnu) + targ_defvec=sparc_elf64_fbsd_vec + targ_selvecs="sparc_elf64_vec sparc_elf32_vec" ;; - sparc64-*-elf* | sparc64-*-rtems* ) + sparc64*-*-*) targ_defvec=sparc_elf64_vec - targ_selvecs=sparc_elf32_vec + targ_selvecs="sparc_elf32_vec" want64=true ;; -#endif /* BFD64 */ - sparc*-*-coff*) - targ_defvec=sparc_coff_vec - ;; - sparc-*-rtems*) +#endif + sparc-*-linux-* | sparcv*-*-linux-*) targ_defvec=sparc_elf32_vec - targ_selvecs="sparc_aout_sunos_be_vec sparc_coff_vec" + targ_selvecs="sparc_elf64_vec" + ;; + sparc-*-vxworks*) + targ_defvec=sparc_elf32_vxworks_vec + targ_selvecs="sparc_elf32_vec" ;; sparc*-*-*) - targ_defvec=sparc_aout_sunos_be_vec - targ_underscore=yes + targ_defvec=sparc_elf32_vec ;; spu-*-elf) @@ -1734,13 +1321,6 @@ want64=true ;; -#if HAVE_aout_vec - tahoe-*-*) - targ_defvec=aout_vec - targ_underscore=yes - ;; -#endif - tic6x-*-elf) targ_defvec=tic6x_elf32_c6000_le_vec targ_selvecs="tic6x_elf32_c6000_be_vec tic6x_elf32_le_vec tic6x_elf32_be_vec" @@ -1792,11 +1372,6 @@ targ_underscore=yes ;; - vax-*-bsd* | vax-*-ultrix*) - targ_defvec=vax_aout_bsd_vec - targ_underscore=yes - ;; - vax-*-openbsd*) targ_defvec=vax_aout_nbsd_vec targ_underscore=yes @@ -1815,14 +1390,6 @@ targ_selvecs="wasm_vec" ;; - we32k-*-*) - targ_defvec=we32k_coff_vec - ;; - - w65-*-*) - targ_defvec=w65_coff_vec - ;; - xgate-*-*) targ_defvec=xgate_elf32_vec targ_selvecs="xgate_elf32_vec" @@ -1850,24 +1417,6 @@ targ_underscore=yes ;; - *-*-ieee*) - targ_defvec=ieee_vec - ;; - - *-adobe-*) - targ_defvec=aout_adobe_vec - targ_underscore=yes - ;; - - *-sony-*) - targ_defvec=m68k_aout_newsos3_vec - targ_underscore=yes - ;; - - *-tandem-*) - targ_defvec=m68k_coff_vec - targ_selvecs=ieee_vec - ;; # END OF targmatch.h *) echo 1>&2 "*** BFD does not support target ${targ}." diff -Nru gdb-8.1/bfd/config.in gdb-8.2/bfd/config.in --- gdb-8.1/bfd/config.in 2017-09-07 14:55:33.000000000 +0000 +++ gdb-8.2/bfd/config.in 2018-09-05 07:27:13.000000000 +0000 @@ -10,6 +10,10 @@ /* Name of host specific core header file to include in elf.c. */ #undef CORE_HEADER +/* Define to 1 if you want to enable -z separate-code in ELF linker by + default. */ +#undef DEFAULT_LD_Z_SEPARATE_CODE + /* Define to 1 if translation of program messages to the user's native language is requested. */ #undef ENABLE_NLS @@ -130,6 +134,9 @@ /* Define to 1 if you have the `getuid' function. */ #undef HAVE_GETUID +/* Define if your compiler supports hidden visibility. */ +#undef HAVE_HIDDEN + /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H @@ -252,6 +259,9 @@ */ #undef HAVE_SYS_NDIR_H +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_PARAM_H + /* Define to 1 if you have the header file. */ #undef HAVE_SYS_PROCFS_H @@ -383,6 +393,11 @@ /* Version number of package */ #undef VERSION +/* Enable large inode numbers on Mac OS X 10.5. */ +#ifndef _DARWIN_USE_64_BIT_INODE +# define _DARWIN_USE_64_BIT_INODE 1 +#endif + /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS diff -Nru gdb-8.1/bfd/configure gdb-8.2/bfd/configure --- gdb-8.1/bfd/configure 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/bfd/configure 2018-09-05 07:44:28.000000000 +0000 @@ -1,10 +1,10 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.64 for bfd 2.29.51. +# Generated by GNU Autoconf 2.69 for bfd 2.31.51. +# +# +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software -# Foundation, Inc. # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. @@ -87,6 +87,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -131,6 +132,31 @@ # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh @@ -164,7 +190,8 @@ else exitcode=1; echo positional parameters were not saved. fi -test x\$exitcode = x0 || exit 1" +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && @@ -217,14 +244,25 @@ if test "x$CONFIG_SHELL" != x; then : - # We cannot yet assume a decent shell, so we have to provide a - # neutralization value for shells without unset; and this also - # works around shells that cannot unset nonexistent variables. - BASH_ENV=/dev/null - ENV=/dev/null - (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 fi if test x$as_have_required = xno; then : @@ -322,10 +360,18 @@ test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take @@ -362,19 +408,19 @@ fi # as_fn_arith -# as_fn_error ERROR [LINENO LOG_FD] -# --------------------------------- +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with status $?, using 1 if that was 0. +# script with STATUS, using 1 if that was 0. as_fn_error () { - as_status=$?; test $as_status -eq 0 && as_status=1 - if test "$3"; then - as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $1" >&2 + $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error @@ -447,6 +493,10 @@ chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). @@ -481,16 +531,16 @@ # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -502,28 +552,8 @@ as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -534,10 +564,11 @@ SHELL=${CONFIG_SHELL-/bin/sh} -exec 7<&0 &1 +test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` @@ -556,8 +587,8 @@ # Identity of this package. PACKAGE_NAME='bfd' PACKAGE_TARNAME='bfd' -PACKAGE_VERSION='2.29.51' -PACKAGE_STRING='bfd 2.29.51' +PACKAGE_VERSION='2.31.51' +PACKAGE_STRING='bfd 2.31.51' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -598,6 +629,7 @@ # include #endif" +ac_header_list= ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS @@ -686,6 +718,10 @@ CPP RANLIB AR +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE @@ -780,6 +816,7 @@ ac_user_opts=' enable_option_checking enable_dependency_tracking +enable_silent_rules enable_shared enable_static with_pic @@ -793,6 +830,7 @@ enable_64_bit_archive with_mmap enable_secureplt +enable_separate_code enable_leading_mingw64_underscores with_separate_debug_dir with_pkgversion @@ -875,8 +913,9 @@ fi case $ac_option in - *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *) ac_optarg=yes ;; + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. @@ -921,7 +960,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid feature name: $ac_useropt" + as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -947,7 +986,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid feature name: $ac_useropt" + as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1151,7 +1190,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid package name: $ac_useropt" + as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1167,7 +1206,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid package name: $ac_useropt" + as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1197,8 +1236,8 @@ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; - -*) as_fn_error "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information." + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" ;; *=*) @@ -1206,7 +1245,7 @@ # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error "invalid variable name: \`$ac_envvar'" ;; + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; @@ -1216,7 +1255,7 @@ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac @@ -1224,13 +1263,13 @@ if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error "missing argument to $ac_option" + as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; - fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi @@ -1253,7 +1292,7 @@ [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac - as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' @@ -1267,8 +1306,6 @@ if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1283,9 +1320,9 @@ ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error "working directory cannot be determined" + as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error "pwd does not report name of working directory" + as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. @@ -1324,11 +1361,11 @@ fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error "cannot find sources ($ac_unique_file) in $srcdir" + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg" + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then @@ -1354,7 +1391,7 @@ # 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 <<_ACEOF -\`configure' configures bfd 2.29.51 to adapt to many kinds of systems. +\`configure' configures bfd 2.31.51 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1368,7 +1405,7 @@ --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages + -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files @@ -1425,7 +1462,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of bfd 2.29.51:";; + short | recursive ) echo "Configuration of bfd 2.31.51:";; esac cat <<\_ACEOF @@ -1433,8 +1470,12 @@ --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") --enable-shared[=PKGS] build shared libraries [default=no] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] @@ -1446,12 +1487,14 @@ --enable-targets alternative target configurations --enable-64-bit-archive force 64-bit archives --enable-secureplt Default to creating read-only plt entries + --enable-separate-code enable -z separate-code in ELF linker by default --enable-leading-mingw64-underscores Enable leading underscores on 64 bit mingw targets --enable-werror treat compile warnings as errors --enable-build-warnings enable build-time compiler warnings - --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer + --enable-maintainer-mode + enable make rules and dependencies not useful (and + sometimes confusing) to the casual installer --enable-install-libbfd controls installation of libbfd and related headers --disable-nls do not use Native Language Support @@ -1464,7 +1507,7 @@ --with-mmap try using mmap for BFD input files if available --with-separate-debug-dir=DIR Look for global separate debug info in DIR - [default=LIBDIR/debug] + [[default=LIBDIR/debug]] --with-pkgversion=PKG Use PKG in the version string in place of "GNU Binutils" --with-bugurl=URL Direct users to URL to report a bug @@ -1476,7 +1519,7 @@ LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor @@ -1546,10 +1589,10 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -bfd configure 2.29.51 -generated by GNU Autoconf 2.64 +bfd configure 2.31.51 +generated by GNU Autoconf 2.69 -Copyright (C) 2009 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1593,8 +1636,8 @@ ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - return $ac_retval + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval } # ac_fn_c_try_compile @@ -1625,7 +1668,7 @@ test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext + test -x conftest$ac_exeext }; then : ac_retval=0 else @@ -1639,8 +1682,8 @@ # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - return $ac_retval + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval } # ac_fn_c_try_link @@ -1665,7 +1708,7 @@ mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } >/dev/null && { + test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : @@ -1676,8 +1719,8 @@ ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - return $ac_retval + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval } # ac_fn_c_try_cpp @@ -1689,10 +1732,10 @@ ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 @@ -1728,7 +1771,7 @@ else ac_header_preproc=no fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } @@ -1755,7 +1798,7 @@ esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" @@ -1764,7 +1807,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel @@ -1805,8 +1848,8 @@ ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - return $ac_retval + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval } # ac_fn_c_try_run @@ -1819,7 +1862,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -1837,7 +1880,7 @@ eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile @@ -1849,7 +1892,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -1904,7 +1947,7 @@ eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func @@ -1917,7 +1960,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" @@ -1958,7 +2001,7 @@ eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type @@ -1979,7 +2022,8 @@ main () { static int test_array [1 - 2 * !(($2) >= 0)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -1995,7 +2039,8 @@ main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -2021,7 +2066,8 @@ main () { static int test_array [1 - 2 * !(($2) < 0)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -2037,7 +2083,8 @@ main () { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -2071,7 +2118,8 @@ main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -2135,14 +2183,15 @@ rm -f conftest.val fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - return $ac_retval + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval } # ac_fn_c_compute_int -# ac_fn_c_check_decl LINENO SYMBOL VAR -# ------------------------------------ -# Tests whether SYMBOL is declared, setting cache variable VAR accordingly. +# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES +# --------------------------------------------- +# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR +# accordingly. ac_fn_c_check_decl () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack @@ -2150,7 +2199,7 @@ as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 $as_echo_n "checking whether $as_decl_name is declared... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -2181,15 +2230,15 @@ eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_decl cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by bfd $as_me 2.29.51, which was -generated by GNU Autoconf 2.64. Invocation command line was +It was created by bfd $as_me 2.31.51, which was +generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2299,11 +2348,9 @@ { echo - cat <<\_ASBOX -## ---------------- ## + $as_echo "## ---------------- ## ## Cache variables. ## -## ---------------- ## -_ASBOX +## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( @@ -2337,11 +2384,9 @@ ) echo - cat <<\_ASBOX -## ----------------- ## + $as_echo "## ----------------- ## ## Output variables. ## -## ----------------- ## -_ASBOX +## ----------------- ##" echo for ac_var in $ac_subst_vars do @@ -2354,11 +2399,9 @@ echo if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------------- ## + $as_echo "## ------------------- ## ## File substitutions. ## -## ------------------- ## -_ASBOX +## ------------------- ##" echo for ac_var in $ac_subst_files do @@ -2372,11 +2415,9 @@ fi if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## + $as_echo "## ----------- ## ## confdefs.h. ## -## ----------- ## -_ASBOX +## ----------- ##" echo cat confdefs.h echo @@ -2431,7 +2472,12 @@ ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then - ac_site_file1=$CONFIG_SITE + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site @@ -2442,18 +2488,22 @@ for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue - if test -r "$ac_site_file"; then + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in @@ -2467,6 +2517,9 @@ >$cache_file fi +as_fn_append ac_header_list " stdlib.h" +as_fn_append ac_header_list " unistd.h" +as_fn_append ac_header_list " sys/param.h" # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false @@ -2522,7 +2575,7 @@ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## @@ -2542,16 +2595,22 @@ ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - for ac_t in install-sh install.sh shtool; do - if test -f "$ac_dir/$ac_t"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/$ac_t -c" - break 2 - fi - done + 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 + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi done if test -z "$ac_aux_dir"; then - as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 + as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, @@ -2565,27 +2624,27 @@ # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } -if test "${ac_cv_build+set}" = set; then : +if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && - as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5 + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; -*) as_fn_error "invalid value of canonical build" "$LINENO" 5;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' @@ -2603,14 +2662,14 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } -if test "${ac_cv_host+set}" = set; then : +if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi @@ -2618,7 +2677,7 @@ $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; -*) as_fn_error "invalid value of canonical host" "$LINENO" 5;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' @@ -2636,14 +2695,14 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 $as_echo_n "checking target system type... " >&6; } -if test "${ac_cv_target+set}" = set; then : +if ${ac_cv_target+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$target_alias" = x; then ac_cv_target=$ac_cv_host else ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || - as_fn_error "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 fi fi @@ -2651,7 +2710,7 @@ $as_echo "$ac_cv_target" >&6; } case $ac_cv_target in *-*-*) ;; -*) as_fn_error "invalid value of canonical target" "$LINENO" 5;; +*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; esac target=$ac_cv_target ac_save_IFS=$IFS; IFS='-' @@ -2673,6 +2732,9 @@ test "$program_prefix$program_suffix$program_transform_name" = \ NONENONEs,x,x, && program_prefix=${target_alias}- +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -2683,7 +2745,7 @@ set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -2695,7 +2757,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2723,7 +2785,7 @@ set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -2735,7 +2797,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2776,7 +2838,7 @@ set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -2788,7 +2850,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2816,7 +2878,7 @@ set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -2829,7 +2891,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue @@ -2875,7 +2937,7 @@ set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -2887,7 +2949,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2919,7 +2981,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -2931,7 +2993,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2973,8 +3035,8 @@ test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "no acceptable C compiler found in \$PATH -See \`config.log' for more details." "$LINENO" 5; } +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 @@ -2995,8 +3057,8 @@ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 - rm -f conftest.er1 conftest.err fi + rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done @@ -3013,12 +3075,12 @@ } _ACEOF ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out conftest.out" +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: @@ -3080,62 +3142,28 @@ else ac_file='' fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } if test -z "$ac_file"; then : - $as_echo "$as_me: failed program was:" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "C compiler cannot create executables -See \`config.log' for more details." "$LINENO" 5; }; } +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out conftest.out +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" @@ -3165,19 +3193,78 @@ else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." "$LINENO" 5; } +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } fi -rm -f conftest$ac_cv_exeext +rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } -if test "${ac_cv_objext+set}" = set; then : +if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3217,8 +3304,8 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot compute suffix of object files: cannot compile -See \`config.log' for more details." "$LINENO" 5; } +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi @@ -3228,7 +3315,7 @@ ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then : +if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3265,7 +3352,7 @@ ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then : +if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag @@ -3343,7 +3430,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then : +if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no @@ -3352,8 +3439,7 @@ /* end confdefs.h. */ #include #include -#include -#include +struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -3438,10 +3524,69 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5 $as_echo_n "checking for library containing strerror... " >&6; } -if test "${ac_cv_search_strerror+set}" = set; then : +if ${ac_cv_search_strerror+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -3475,11 +3620,11 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_strerror+set}" = set; then : + if ${ac_cv_search_strerror+:} false; then : break fi done -if test "${ac_cv_search_strerror+set}" = set; then : +if ${ac_cv_search_strerror+:} false; then : else ac_cv_search_strerror=no @@ -3496,7 +3641,7 @@ fi -am__api_version='1.11' +am__api_version='1.15' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or @@ -3515,7 +3660,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then : +if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -3535,7 +3680,7 @@ # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. @@ -3593,56 +3738,71 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } -# Just in case -sleep 1 -echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) - as_fn_error "unsafe absolute working directory name" "$LINENO" 5;; + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac -# Do `set' in a subshell so we don't clobber the current shell's +# 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" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - rm -f conftest.file - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $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". - as_fn_error "ls -t appears to fail. Make sure there is not a broken -alias in your environment" "$LINENO" 5 - fi + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $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". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done test "$2" = conftest.file ) then # Ok. : else - as_fn_error "newly created file is older than distributed files! + as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. @@ -3653,9 +3813,6 @@ ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` - if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) @@ -3665,15 +3822,15 @@ esac fi # Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " else am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi -if test x"${install_sh}" != xset; then +if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; @@ -3682,17 +3839,17 @@ esac fi -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. +# will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then : +if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then @@ -3704,7 +3861,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3732,7 +3889,7 @@ set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then @@ -3744,7 +3901,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3785,7 +3942,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then - if test "${ac_cv_path_mkdir+set}" = set; then : + if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -3795,7 +3952,7 @@ test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do - { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue + as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ @@ -3810,6 +3967,7 @@ fi + test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else @@ -3817,26 +3975,19 @@ # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. - test -d ./--version && rmdir ./--version MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } -mkdir_p="$MKDIR_P" -case $mkdir_p in - [\\/$]* | ?:[\\/]*) ;; - */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; -esac - for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AWK+set}" = set; then : +if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then @@ -3848,7 +3999,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3876,7 +4027,7 @@ $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF @@ -3884,7 +4035,7 @@ all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; @@ -3931,7 +4082,7 @@ _am_result=none # First try GNU make style include. echo "include confinc" > confmf -# Ignore all kinds of additional output from `make'. +# Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include @@ -3975,13 +4126,52 @@ fi +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=1;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then - as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi @@ -3997,7 +4187,7 @@ # Define the identity of the package. PACKAGE='bfd' - VERSION='2.29.51' + VERSION='2.31.51' cat >>confdefs.h <<_ACEOF @@ -4025,30 +4215,41 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +mkdir_p='$(MKDIR_P)' + +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar pax cpio none' + am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : +if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're @@ -4083,16 +4284,16 @@ : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" + # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -4101,8 +4302,8 @@ test "$am__universal" = false || continue ;; nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else @@ -4110,7 +4311,7 @@ fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has + # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -4165,13 +4366,55 @@ +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 + fi +fi + if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AR+set}" = set; then : +if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then @@ -4183,7 +4426,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4211,7 +4454,7 @@ set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : +if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then @@ -4223,7 +4466,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4263,7 +4506,7 @@ set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_RANLIB+set}" = set; then : +if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then @@ -4275,7 +4518,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4303,7 +4546,7 @@ set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then @@ -4315,7 +4558,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4393,7 +4636,7 @@ set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -4405,7 +4648,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4433,7 +4676,7 @@ set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -4445,7 +4688,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4486,7 +4729,7 @@ set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -4498,7 +4741,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4526,7 +4769,7 @@ set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -4539,7 +4782,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue @@ -4585,7 +4828,7 @@ set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -4597,7 +4840,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4629,7 +4872,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -4641,7 +4884,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4683,8 +4926,8 @@ test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "no acceptable C compiler found in \$PATH -See \`config.log' for more details." "$LINENO" 5; } +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 @@ -4705,15 +4948,15 @@ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 - rm -f conftest.er1 conftest.err fi + rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then : +if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -4750,7 +4993,7 @@ ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then : +if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag @@ -4828,7 +5071,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then : +if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no @@ -4837,8 +5080,7 @@ /* end confdefs.h. */ #include #include -#include -#include +struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -4928,6 +5170,65 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. @@ -4935,7 +5236,7 @@ CPP= fi if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then : + if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded @@ -4965,7 +5266,7 @@ # Broken: fails on valid input. continue fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. @@ -4981,11 +5282,11 @@ ac_preproc_ok=: break fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext +rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi @@ -5024,7 +5325,7 @@ # Broken: fails on valid input. continue fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. @@ -5040,18 +5341,18 @@ ac_preproc_ok=: break fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext +rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." "$LINENO" 5; } +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c @@ -5063,7 +5364,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if test "${ac_cv_path_GREP+set}" = set; then : +if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then @@ -5077,7 +5378,7 @@ for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue + as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in @@ -5112,7 +5413,7 @@ done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then - as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP @@ -5126,7 +5427,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } -if test "${ac_cv_path_EGREP+set}" = set; then : +if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 @@ -5143,7 +5444,7 @@ for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue + as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in @@ -5178,7 +5479,7 @@ done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then - as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP @@ -5193,7 +5494,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; then : +if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -5310,8 +5611,7 @@ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF @@ -5323,7 +5623,7 @@ ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" -if test "x$ac_cv_header_minix_config_h" = x""yes; then : +if test "x$ac_cv_header_minix_config_h" = xyes; then : MINIX=yes else MINIX= @@ -5345,14 +5645,14 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } -if test "${ac_cv_safe_to_define___extensions__+set}" = set; then : +if ${ac_cv_safe_to_define___extensions__+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -# define __EXTENSIONS__ 1 - $ac_includes_default +# define __EXTENSIONS__ 1 + $ac_includes_default int main () { @@ -5481,7 +5781,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } -if test "${ac_cv_path_SED+set}" = set; then : +if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ @@ -5501,7 +5801,7 @@ for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue + as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in @@ -5536,7 +5836,7 @@ done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then - as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5 + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED @@ -5563,7 +5863,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } -if test "${ac_cv_path_FGREP+set}" = set; then : +if ${ac_cv_path_FGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 @@ -5580,7 +5880,7 @@ for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue + as_fn_executable_p "$ac_path_FGREP" || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in @@ -5615,7 +5915,7 @@ done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then - as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP @@ -5694,7 +5994,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi -if test "${lt_cv_path_LD+set}" = set; then : +if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then @@ -5731,10 +6031,10 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi -test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5 +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -if test "${lt_cv_prog_gnu_ld+set}" = set; then : +if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. @@ -5761,7 +6061,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } -if test "${lt_cv_path_NM+set}" = set; then : +if ${lt_cv_path_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then @@ -5824,7 +6124,7 @@ set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_DUMPBIN+set}" = set; then : +if ${ac_cv_prog_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then @@ -5836,7 +6136,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5868,7 +6168,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then : +if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then @@ -5880,7 +6180,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5940,7 +6240,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } -if test "${lt_cv_nm_interface+set}" = set; then : +if ${lt_cv_nm_interface+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" @@ -5975,7 +6275,7 @@ # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } -if test "${lt_cv_sys_max_cmd_len+set}" = set; then : +if ${lt_cv_sys_max_cmd_len+:} false; then : $as_echo_n "(cached) " >&6 else i=0 @@ -6172,7 +6472,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } -if test "${lt_cv_ld_reload_flag+set}" = set; then : +if ${lt_cv_ld_reload_flag+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' @@ -6208,7 +6508,7 @@ set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OBJDUMP+set}" = set; then : +if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then @@ -6220,7 +6520,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6248,7 +6548,7 @@ set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then @@ -6260,7 +6560,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6307,7 +6607,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } -if test "${lt_cv_deplibs_check_method+set}" = set; then : +if ${lt_cv_deplibs_check_method+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' @@ -6528,7 +6828,7 @@ set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AR+set}" = set; then : +if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then @@ -6540,7 +6840,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6568,7 +6868,7 @@ set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : +if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then @@ -6580,7 +6880,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6633,7 +6933,7 @@ set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then : +if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then @@ -6645,7 +6945,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6673,7 +6973,7 @@ set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then @@ -6685,7 +6985,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6732,7 +7032,7 @@ set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_RANLIB+set}" = set; then : +if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then @@ -6744,7 +7044,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6772,7 +7072,7 @@ set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then @@ -6784,7 +7084,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6901,7 +7201,7 @@ # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } -if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then : +if ${lt_cv_sys_global_symbol_pipe+:} false; then : $as_echo_n "(cached) " >&6 else @@ -7285,7 +7585,7 @@ CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } -if test "${lt_cv_cc_needs_belf+set}" = set; then : +if ${lt_cv_cc_needs_belf+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=c @@ -7361,7 +7661,7 @@ set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_DSYMUTIL+set}" = set; then : +if ${ac_cv_prog_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then @@ -7373,7 +7673,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7401,7 +7701,7 @@ set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then : +if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then @@ -7413,7 +7713,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7453,7 +7753,7 @@ set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_NMEDIT+set}" = set; then : +if ${ac_cv_prog_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then @@ -7465,7 +7765,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7493,7 +7793,7 @@ set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then : +if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then @@ -7505,7 +7805,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7545,7 +7845,7 @@ set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_LIPO+set}" = set; then : +if ${ac_cv_prog_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then @@ -7557,7 +7857,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7585,7 +7885,7 @@ set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then : +if ${ac_cv_prog_ac_ct_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then @@ -7597,7 +7897,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7637,7 +7937,7 @@ set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OTOOL+set}" = set; then : +if ${ac_cv_prog_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then @@ -7649,7 +7949,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7677,7 +7977,7 @@ set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then : +if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then @@ -7689,7 +7989,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7729,7 +8029,7 @@ set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OTOOL64+set}" = set; then : +if ${ac_cv_prog_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then @@ -7741,7 +8041,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7769,7 +8069,7 @@ set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then : +if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then @@ -7781,7 +8081,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7844,7 +8144,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } -if test "${lt_cv_apple_cc_single_mod+set}" = set; then : +if ${lt_cv_apple_cc_single_mod+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no @@ -7873,7 +8173,7 @@ $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } -if test "${lt_cv_ld_exported_symbols_list+set}" = set; then : +if ${lt_cv_ld_exported_symbols_list+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no @@ -7905,7 +8205,7 @@ $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } -if test "${lt_cv_ld_force_load+set}" = set; then : +if ${lt_cv_ld_force_load+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_force_load=no @@ -7972,7 +8272,7 @@ do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " -if test "x$ac_cv_header_dlfcn_h" = x""yes; then : +if test "x$ac_cv_header_dlfcn_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF @@ -8128,7 +8428,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } -if test "${lt_cv_objdir+set}" = set; then : +if ${lt_cv_objdir+:} false; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null @@ -8206,7 +8506,7 @@ if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : +if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in @@ -8272,7 +8572,7 @@ if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : +if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in @@ -8414,7 +8714,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } -if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then : +if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no @@ -8767,7 +9067,7 @@ if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } -if test "${lt_cv_prog_compiler_pic_works+set}" = set; then : +if ${lt_cv_prog_compiler_pic_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no @@ -8826,7 +9126,7 @@ wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } -if test "${lt_cv_prog_compiler_static_works+set}" = set; then : +if ${lt_cv_prog_compiler_static_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no @@ -8869,7 +9169,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if test "${lt_cv_prog_compiler_c_o+set}" = set; then : +if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no @@ -8924,7 +9224,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if test "${lt_cv_prog_compiler_c_o+set}" = set; then : +if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no @@ -9740,7 +10040,7 @@ # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 $as_echo_n "checking if $CC understands -b... " >&6; } -if test "${lt_cv_prog_compiler__b+set}" = set; then : +if ${lt_cv_prog_compiler__b+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no @@ -10112,7 +10412,7 @@ # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } -if test "${lt_cv_archive_cmds_need_lc+set}" = set; then : +if ${lt_cv_archive_cmds_need_lc+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* @@ -10750,7 +11050,7 @@ shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH - if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then : + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no @@ -11170,7 +11470,7 @@ # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } -if test "${ac_cv_lib_dl_dlopen+set}" = set; then : +if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -11204,7 +11504,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else @@ -11218,12 +11518,12 @@ *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" -if test "x$ac_cv_func_shl_load" = x""yes; then : +if test "x$ac_cv_func_shl_load" = xyes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } -if test "${ac_cv_lib_dld_shl_load+set}" = set; then : +if ${ac_cv_lib_dld_shl_load+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -11257,16 +11557,16 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } -if test "x$ac_cv_lib_dld_shl_load" = x""yes; then : +if test "x$ac_cv_lib_dld_shl_load" = xyes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" -if test "x$ac_cv_func_dlopen" = x""yes; then : +if test "x$ac_cv_func_dlopen" = xyes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } -if test "${ac_cv_lib_dl_dlopen+set}" = set; then : +if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -11300,12 +11600,12 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } -if test "${ac_cv_lib_svld_dlopen+set}" = set; then : +if ${ac_cv_lib_svld_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -11339,12 +11639,12 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } -if test "x$ac_cv_lib_svld_dlopen" = x""yes; then : +if test "x$ac_cv_lib_svld_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } -if test "${ac_cv_lib_dld_dld_link+set}" = set; then : +if ${ac_cv_lib_dld_dld_link+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -11378,7 +11678,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } -if test "x$ac_cv_lib_dld_dld_link" = x""yes; then : +if test "x$ac_cv_lib_dld_dld_link" = xyes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi @@ -11419,7 +11719,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } -if test "${lt_cv_dlopen_self+set}" = set; then : +if ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -11428,7 +11728,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11431 "configure" +#line 11731 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11525,7 +11825,7 @@ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } -if test "${lt_cv_dlopen_self_static+set}" = set; then : +if ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -11534,7 +11834,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11537 "configure" +#line 11837 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11788,7 +12088,7 @@ do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " -if test "x$ac_cv_header_dlfcn_h" = x""yes; then : +if test "x$ac_cv_header_dlfcn_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF @@ -11801,7 +12101,7 @@ do : ac_fn_c_check_header_compile "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default " -if test "x$ac_cv_header_windows_h" = x""yes; then : +if test "x$ac_cv_header_windows_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINDOWS_H 1 _ACEOF @@ -11817,7 +12117,7 @@ no) plugins=no ;; *) plugins=yes if test "$maybe_plugins" != "yes" ; then - as_fn_error "Building with plugin support requires a host that supports dlopen." "$LINENO" 5 + as_fn_error $? "Building with plugin support requires a host that supports dlopen." "$LINENO" 5 fi ;; esac else @@ -11826,9 +12126,9 @@ fi if test "$plugins" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 -$as_echo_n "checking for library containing dlopen... " >&6; } -if test "${ac_cv_search_dlopen+set}" = set; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlsym" >&5 +$as_echo_n "checking for library containing dlsym... " >&6; } +if ${ac_cv_search_dlsym+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -11841,11 +12141,11 @@ #ifdef __cplusplus extern "C" #endif -char dlopen (); +char dlsym (); int main () { -return dlopen (); +return dlsym (); ; return 0; } @@ -11858,25 +12158,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dlopen=$ac_res + ac_cv_search_dlsym=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_dlopen+set}" = set; then : + if ${ac_cv_search_dlsym+:} false; then : break fi done -if test "${ac_cv_search_dlopen+set}" = set; then : +if ${ac_cv_search_dlsym+:} false; then : else - ac_cv_search_dlopen=no + ac_cv_search_dlsym=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 -$as_echo "$ac_cv_search_dlopen" >&6; } -ac_res=$ac_cv_search_dlopen +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlsym" >&5 +$as_echo "$ac_cv_search_dlsym" >&6; } +ac_res=$ac_cv_search_dlsym if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" @@ -11907,7 +12207,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 $as_echo_n "checking for special C compiler options needed for large files... " >&6; } -if test "${ac_cv_sys_largefile_CC+set}" = set; then : +if ${ac_cv_sys_largefile_CC+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_sys_largefile_CC=no @@ -11958,7 +12258,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } -if test "${ac_cv_sys_file_offset_bits+set}" = set; then : +if ${ac_cv_sys_file_offset_bits+:} false; then : $as_echo_n "(cached) " >&6 else while :; do @@ -12027,7 +12327,7 @@ if test $ac_cv_sys_file_offset_bits = unknown; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } -if test "${ac_cv_sys_large_files+set}" = set; then : +if ${ac_cv_sys_large_files+:} false; then : $as_echo_n "(cached) " >&6 else while :; do @@ -12094,6 +12394,8 @@ esac rm -rf conftest* fi + + fi @@ -12116,7 +12418,7 @@ enableval=$enable_64_bit_bfd; case "${enableval}" in yes) want64=true ;; no) want64=false ;; - *) as_fn_error "bad value ${enableval} for 64-bit-bfd option" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for 64-bit-bfd option" "$LINENO" 5 ;; esac else want64=false @@ -12125,7 +12427,7 @@ # Check whether --enable-targets was given. if test "${enable_targets+set}" = set; then : enableval=$enable_targets; case "${enableval}" in - yes | "") as_fn_error "enable-targets option must specify target names or 'all'" "$LINENO" 5 + yes | "") as_fn_error $? "enable-targets option must specify target names or 'all'" "$LINENO" 5 ;; no) enable_targets= ;; *) enable_targets=$enableval ;; @@ -12137,7 +12439,7 @@ enableval=$enable_64_bit_archive; case "${enableval}" in yes) want_64_bit_archive=true ;; no) want_64_bit_archive=false ;; - *) as_fn_error "bad value ${enableval} for 64-bit-archive option" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for 64-bit-archive option" "$LINENO" 5 ;; esac else want_64_bit_archive=unset @@ -12149,7 +12451,7 @@ withval=$with_mmap; case "${withval}" in yes) want_mmap=true ;; no) want_mmap=false ;; - *) as_fn_error "bad value ${withval} for BFD with-mmap option" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${withval} for BFD with-mmap option" "$LINENO" 5 ;; esac else want_mmap=false @@ -12160,7 +12462,7 @@ enableval=$enable_secureplt; case "${enableval}" in yes) use_secureplt=true ;; no) use_secureplt=false ;; - *) as_fn_error "bad value ${enableval} for secureplt option" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for secureplt option" "$LINENO" 5 ;; esac else use_secureplt=true @@ -12171,6 +12473,33 @@ fi +# Decide if -z separate-code should be enabled in ELF linker by default. +ac_default_ld_z_separate_code=unset +# Check whether --enable-separate-code was given. +if test "${enable_separate_code+set}" = set; then : + enableval=$enable_separate_code; case "${enableval}" in + yes) ac_default_ld_z_separate_code=1 ;; + no) ac_default_ld_z_separate_code=0 ;; +esac +fi + +# Enable -z separate-code by default for Linux/x86. +case "${target}" in +i3-786-*-linux-* | x86_64-*-linux-*) + if test ${ac_default_ld_z_separate_code} = unset; then + ac_default_ld_z_separate_code=1 + fi + ;; +esac +if test "${ac_default_ld_z_separate_code}" = unset; then + ac_default_ld_z_separate_code=0 +fi + +cat >>confdefs.h <<_ACEOF +#define DEFAULT_LD_Z_SEPARATE_CODE $ac_default_ld_z_separate_code +_ACEOF + + # Check whether --enable-leading-mingw64-underscores was given. if test "${enable_leading_mingw64_underscores+set}" = set; then : enableval=$enable_leading_mingw64_underscores; @@ -12196,7 +12525,7 @@ # Check whether --with-pkgversion was given. if test "${with_pkgversion+set}" = set; then : withval=$with_pkgversion; case "$withval" in - yes) as_fn_error "package version not specified" "$LINENO" 5 ;; + yes) as_fn_error $? "package version not specified" "$LINENO" 5 ;; no) PKGVERSION= ;; *) PKGVERSION="($withval) " ;; esac @@ -12212,7 +12541,7 @@ # Check whether --with-bugurl was given. if test "${with_bugurl+set}" = set; then : withval=$with_bugurl; case "$withval" in - yes) as_fn_error "bug URL not specified" "$LINENO" 5 ;; + yes) as_fn_error $? "bug URL not specified" "$LINENO" 5 ;; no) BUGURL= ;; *) BUGURL="$withval" @@ -12326,7 +12655,7 @@ enableval=$enable_werror; case "${enableval}" in yes | y) ERROR_ON_WARNING="yes" ;; no | n) ERROR_ON_WARNING="no" ;; - *) as_fn_error "bad value ${enableval} for --enable-werror" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-werror" "$LINENO" 5 ;; esac fi @@ -12397,7 +12726,7 @@ if test -z "$target" ; then - as_fn_error "Unrecognized target system type; please check config.sub." "$LINENO" 5 + as_fn_error $? "Unrecognized target system type; please check config.sub." "$LINENO" 5 fi @@ -12495,7 +12824,7 @@ # host stuff: -ALL_LINGUAS="da es fi fr hr id ja ro ru rw sr sv tr uk vi zh_CN" +ALL_LINGUAS="da es fi fr hr id ja ro ru rw sr sv tr uk vi zh_CN pt" # If we haven't got the data from the intl directory, # assume NLS is disabled. USE_NLS=no @@ -12629,7 +12958,7 @@ set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_MSGFMT+set}" = set; then : +if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in @@ -12669,7 +12998,7 @@ set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_GMSGFMT+set}" = set; then : +if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in @@ -12683,7 +13012,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -12740,7 +13069,7 @@ set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_XGETTEXT+set}" = set; then : +if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in @@ -12811,7 +13140,7 @@ set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_MSGMERGE+set}" = set; then : +if ${ac_cv_path_MSGMERGE+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGMERGE" in @@ -12891,7 +13220,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long double" >&5 $as_echo_n "checking for long double... " >&6; } -if test "${ac_cv_type_long_double+set}" = set; then : +if ${ac_cv_type_long_double+:} false; then : $as_echo_n "(cached) " >&6 else if test "$GCC" = yes; then @@ -12907,7 +13236,8 @@ { static int test_array [1 - 2 * !(/* On Ultrix 4.3 cc, long double is 4 and double is 8. */ sizeof (double) <= sizeof (long double))]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -12930,7 +13260,7 @@ fi ac_fn_c_check_type "$LINENO" "long long" "ac_cv_type_long_long" "$ac_includes_default" -if test "x$ac_cv_type_long_long" = x""yes; then : +if test "x$ac_cv_type_long_long" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LONG_LONG 1 @@ -12942,7 +13272,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 $as_echo_n "checking size of long long... " >&6; } -if test "${ac_cv_sizeof_long_long+set}" = set; then : +if ${ac_cv_sizeof_long_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then : @@ -12951,9 +13281,8 @@ if test "$ac_cv_type_long_long" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (long long) -See \`config.log' for more details." "$LINENO" 5; }; } +as_fn_error 77 "cannot compute sizeof (long long) +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long_long=0 fi @@ -12978,7 +13307,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 $as_echo_n "checking size of void *... " >&6; } -if test "${ac_cv_sizeof_void_p+set}" = set; then : +if ${ac_cv_sizeof_void_p+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then : @@ -12987,9 +13316,8 @@ if test "$ac_cv_type_void_p" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (void *) -See \`config.log' for more details." "$LINENO" 5; }; } +as_fn_error 77 "cannot compute sizeof (void *) +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_void_p=0 fi @@ -13012,7 +13340,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 $as_echo_n "checking size of long... " >&6; } -if test "${ac_cv_sizeof_long+set}" = set; then : +if ${ac_cv_sizeof_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : @@ -13021,9 +13349,8 @@ if test "$ac_cv_type_long" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (long) -See \`config.log' for more details." "$LINENO" 5; }; } +as_fn_error 77 "cannot compute sizeof (long) +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long=0 fi @@ -13086,7 +13413,7 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for build system executable suffix" >&5 $as_echo_n "checking for build system executable suffix... " >&6; } -if test "${bfd_cv_build_exeext+set}" = set; then : +if ${bfd_cv_build_exeext+:} false; then : $as_echo_n "(cached) " >&6 else rm -f conftest* @@ -13113,8 +13440,7 @@ do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF @@ -13127,8 +13453,7 @@ do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF @@ -13153,7 +13478,7 @@ ac_fn_c_check_type "$LINENO" "uintmax_t" "ac_cv_type_uintmax_t" "#include #include <$i> " -if test "x$ac_cv_type_uintmax_t" = x""yes; then : +if test "x$ac_cv_type_uintmax_t" = xyes; then : acx_cv_header_stdint=$i else continue @@ -13162,7 +13487,7 @@ ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "#include #include <$i> " -if test "x$ac_cv_type_uintptr_t" = x""yes; then : +if test "x$ac_cv_type_uintptr_t" = xyes; then : else acx_cv_header_stdint_kind="(mostly complete)" @@ -13171,7 +13496,7 @@ ac_fn_c_check_type "$LINENO" "int_least32_t" "ac_cv_type_int_least32_t" "#include #include <$i> " -if test "x$ac_cv_type_int_least32_t" = x""yes; then : +if test "x$ac_cv_type_int_least32_t" = xyes; then : else acx_cv_header_stdint_kind="(mostly complete)" @@ -13180,7 +13505,7 @@ ac_fn_c_check_type "$LINENO" "int_fast32_t" "ac_cv_type_int_fast32_t" "#include #include <$i> " -if test "x$ac_cv_type_int_fast32_t" = x""yes; then : +if test "x$ac_cv_type_int_fast32_t" = xyes; then : else acx_cv_header_stdint_kind="(mostly complete)" @@ -13189,7 +13514,7 @@ ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "#include #include <$i> " -if test "x$ac_cv_type_uint64_t" = x""yes; then : +if test "x$ac_cv_type_uint64_t" = xyes; then : else acx_cv_header_stdint_kind="(lacks uint64_t)" @@ -13207,7 +13532,7 @@ ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "#include #include <$i> " -if test "x$ac_cv_type_uint32_t" = x""yes; then : +if test "x$ac_cv_type_uint32_t" = xyes; then : acx_cv_header_stdint=$i else continue @@ -13216,14 +13541,14 @@ ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "#include #include <$i> " -if test "x$ac_cv_type_uint64_t" = x""yes; then : +if test "x$ac_cv_type_uint64_t" = xyes; then : fi ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "#include #include <$i> " -if test "x$ac_cv_type_uintptr_t" = x""yes; then : +if test "x$ac_cv_type_uintptr_t" = xyes; then : fi @@ -13239,7 +13564,7 @@ ac_fn_c_check_type "$LINENO" "u_int32_t" "ac_cv_type_u_int32_t" "#include #include <$i> " -if test "x$ac_cv_type_u_int32_t" = x""yes; then : +if test "x$ac_cv_type_u_int32_t" = xyes; then : acx_cv_header_stdint=$i else continue @@ -13248,7 +13573,7 @@ ac_fn_c_check_type "$LINENO" "u_int64_t" "ac_cv_type_u_int64_t" "#include #include <$i> " -if test "x$ac_cv_type_u_int64_t" = x""yes; then : +if test "x$ac_cv_type_u_int64_t" = xyes; then : fi @@ -13308,7 +13633,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 $as_echo_n "checking size of void *... " >&6; } -if test "${ac_cv_sizeof_void_p+set}" = set; then : +if ${ac_cv_sizeof_void_p+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then : @@ -13317,9 +13642,8 @@ if test "$ac_cv_type_void_p" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (void *) -See \`config.log' for more details." "$LINENO" 5; }; } +as_fn_error 77 "cannot compute sizeof (void *) +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_void_p=0 fi @@ -13346,7 +13670,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 $as_echo_n "checking size of long... " >&6; } -if test "${ac_cv_sizeof_long+set}" = set; then : +if ${ac_cv_sizeof_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : @@ -13355,9 +13679,8 @@ if test "$ac_cv_type_long" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (long) -See \`config.log' for more details." "$LINENO" 5; }; } +as_fn_error 77 "cannot compute sizeof (long) +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long=0 fi @@ -13384,7 +13707,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 $as_echo_n "checking size of int... " >&6; } -if test "${ac_cv_sizeof_int+set}" = set; then : +if ${ac_cv_sizeof_int+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : @@ -13393,9 +13716,8 @@ if test "$ac_cv_type_int" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (int) -See \`config.log' for more details." "$LINENO" 5; }; } +as_fn_error 77 "cannot compute sizeof (int) +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_int=0 fi @@ -13418,7 +13740,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 $as_echo_n "checking size of short... " >&6; } -if test "${ac_cv_sizeof_short+set}" = set; then : +if ${ac_cv_sizeof_short+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then : @@ -13427,9 +13749,8 @@ if test "$ac_cv_type_short" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (short) -See \`config.log' for more details." "$LINENO" 5; }; } +as_fn_error 77 "cannot compute sizeof (short) +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_short=0 fi @@ -13452,7 +13773,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of char" >&5 $as_echo_n "checking size of char... " >&6; } -if test "${ac_cv_sizeof_char+set}" = set; then : +if ${ac_cv_sizeof_char+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char))" "ac_cv_sizeof_char" "$ac_includes_default"; then : @@ -13461,9 +13782,8 @@ if test "$ac_cv_type_char" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (char) -See \`config.log' for more details." "$LINENO" 5; }; } +as_fn_error 77 "cannot compute sizeof (char) +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_char=0 fi @@ -13485,7 +13805,7 @@ $as_echo_n "checking for type equivalent to int8_t... " >&6; } case "$ac_cv_sizeof_char" in 1) acx_cv_type_int8_t=char ;; - *) as_fn_error "no 8-bit type, please report a bug" "$LINENO" 5 + *) as_fn_error $? "no 8-bit type, please report a bug" "$LINENO" 5 esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_type_int8_t" >&5 $as_echo "$acx_cv_type_int8_t" >&6; } @@ -13495,7 +13815,7 @@ case "$ac_cv_sizeof_int:$ac_cv_sizeof_short" in 2:*) acx_cv_type_int16_t=int ;; *:2) acx_cv_type_int16_t=short ;; - *) as_fn_error "no 16-bit type, please report a bug" "$LINENO" 5 + *) as_fn_error $? "no 16-bit type, please report a bug" "$LINENO" 5 esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_type_int16_t" >&5 $as_echo "$acx_cv_type_int16_t" >&6; } @@ -13505,7 +13825,7 @@ case "$ac_cv_sizeof_int:$ac_cv_sizeof_long" in 4:*) acx_cv_type_int32_t=int ;; *:4) acx_cv_type_int32_t=long ;; - *) as_fn_error "no 32-bit type, please report a bug" "$LINENO" 5 + *) as_fn_error $? "no 32-bit type, please report a bug" "$LINENO" 5 esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_type_int32_t" >&5 $as_echo "$acx_cv_type_int32_t" >&6; } @@ -13532,7 +13852,7 @@ 2) acx_cv_type_intptr_t=int16_t ;; 4) acx_cv_type_intptr_t=int32_t ;; 8) acx_cv_type_intptr_t=int64_t ;; - *) as_fn_error "no equivalent for intptr_t, please report a bug" "$LINENO" 5 + *) as_fn_error $? "no equivalent for intptr_t, please report a bug" "$LINENO" 5 esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_type_intptr_t" >&5 $as_echo "$acx_cv_type_intptr_t" >&6; } @@ -13545,7 +13865,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 $as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } -if test "${ac_cv_header_time+set}" = set; then : +if ${ac_cv_header_time+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -13583,7 +13903,7 @@ as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 $as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval \${$as_ac_Header+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -13610,8 +13930,7 @@ eval ac_res=\$$as_ac_Header { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 _ACEOF @@ -13624,7 +13943,7 @@ if test $ac_header_dirent = dirent.h; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 $as_echo_n "checking for library containing opendir... " >&6; } -if test "${ac_cv_search_opendir+set}" = set; then : +if ${ac_cv_search_opendir+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -13658,11 +13977,11 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_opendir+set}" = set; then : + if ${ac_cv_search_opendir+:} false; then : break fi done -if test "${ac_cv_search_opendir+set}" = set; then : +if ${ac_cv_search_opendir+:} false; then : else ac_cv_search_opendir=no @@ -13681,7 +14000,7 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 $as_echo_n "checking for library containing opendir... " >&6; } -if test "${ac_cv_search_opendir+set}" = set; then : +if ${ac_cv_search_opendir+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -13715,11 +14034,11 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_opendir+set}" = set; then : + if ${ac_cv_search_opendir+:} false; then : break fi done -if test "${ac_cv_search_opendir+set}" = set; then : +if ${ac_cv_search_opendir+:} false; then : else ac_cv_search_opendir=no @@ -13740,7 +14059,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether string.h and strings.h may both be included" >&5 $as_echo_n "checking whether string.h and strings.h may both be included... " >&6; } -if test "${gcc_cv_header_string+set}" = set; then : +if ${gcc_cv_header_string+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -13774,8 +14093,7 @@ do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF @@ -13787,8 +14105,7 @@ do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF @@ -13798,7 +14115,7 @@ ac_fn_c_check_decl "$LINENO" "basename" "ac_cv_have_decl_basename" "$ac_includes_default" -if test "x$ac_cv_have_decl_basename" = x""yes; then : +if test "x$ac_cv_have_decl_basename" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -13809,7 +14126,7 @@ _ACEOF ac_fn_c_check_decl "$LINENO" "ftello" "ac_cv_have_decl_ftello" "$ac_includes_default" -if test "x$ac_cv_have_decl_ftello" = x""yes; then : +if test "x$ac_cv_have_decl_ftello" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -13820,7 +14137,7 @@ _ACEOF ac_fn_c_check_decl "$LINENO" "ftello64" "ac_cv_have_decl_ftello64" "$ac_includes_default" -if test "x$ac_cv_have_decl_ftello64" = x""yes; then : +if test "x$ac_cv_have_decl_ftello64" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -13831,7 +14148,7 @@ _ACEOF ac_fn_c_check_decl "$LINENO" "fseeko" "ac_cv_have_decl_fseeko" "$ac_includes_default" -if test "x$ac_cv_have_decl_fseeko" = x""yes; then : +if test "x$ac_cv_have_decl_fseeko" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -13842,7 +14159,7 @@ _ACEOF ac_fn_c_check_decl "$LINENO" "fseeko64" "ac_cv_have_decl_fseeko64" "$ac_includes_default" -if test "x$ac_cv_have_decl_fseeko64" = x""yes; then : +if test "x$ac_cv_have_decl_fseeko64" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -13862,7 +14179,7 @@ esac ac_fn_c_check_decl "$LINENO" "ffs" "ac_cv_have_decl_ffs" "$ac_includes_default" -if test "x$ac_cv_have_decl_ffs" = x""yes; then : +if test "x$ac_cv_have_decl_ffs" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -13873,7 +14190,7 @@ _ACEOF ac_fn_c_check_decl "$LINENO" "free" "ac_cv_have_decl_free" "$ac_includes_default" -if test "x$ac_cv_have_decl_free" = x""yes; then : +if test "x$ac_cv_have_decl_free" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -13884,7 +14201,7 @@ _ACEOF ac_fn_c_check_decl "$LINENO" "getenv" "ac_cv_have_decl_getenv" "$ac_includes_default" -if test "x$ac_cv_have_decl_getenv" = x""yes; then : +if test "x$ac_cv_have_decl_getenv" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -13895,7 +14212,7 @@ _ACEOF ac_fn_c_check_decl "$LINENO" "malloc" "ac_cv_have_decl_malloc" "$ac_includes_default" -if test "x$ac_cv_have_decl_malloc" = x""yes; then : +if test "x$ac_cv_have_decl_malloc" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -13906,7 +14223,7 @@ _ACEOF ac_fn_c_check_decl "$LINENO" "realloc" "ac_cv_have_decl_realloc" "$ac_includes_default" -if test "x$ac_cv_have_decl_realloc" = x""yes; then : +if test "x$ac_cv_have_decl_realloc" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -13917,7 +14234,7 @@ _ACEOF ac_fn_c_check_decl "$LINENO" "stpcpy" "ac_cv_have_decl_stpcpy" "$ac_includes_default" -if test "x$ac_cv_have_decl_stpcpy" = x""yes; then : +if test "x$ac_cv_have_decl_stpcpy" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -13928,7 +14245,7 @@ _ACEOF ac_fn_c_check_decl "$LINENO" "strstr" "ac_cv_have_decl_strstr" "$ac_includes_default" -if test "x$ac_cv_have_decl_strstr" = x""yes; then : +if test "x$ac_cv_have_decl_strstr" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -13939,7 +14256,7 @@ _ACEOF ac_fn_c_check_decl "$LINENO" "asprintf" "ac_cv_have_decl_asprintf" "$ac_includes_default" -if test "x$ac_cv_have_decl_asprintf" = x""yes; then : +if test "x$ac_cv_have_decl_asprintf" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -13950,7 +14267,7 @@ _ACEOF ac_fn_c_check_decl "$LINENO" "vasprintf" "ac_cv_have_decl_vasprintf" "$ac_includes_default" -if test "x$ac_cv_have_decl_vasprintf" = x""yes; then : +if test "x$ac_cv_have_decl_vasprintf" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -13961,7 +14278,7 @@ _ACEOF ac_fn_c_check_decl "$LINENO" "snprintf" "ac_cv_have_decl_snprintf" "$ac_includes_default" -if test "x$ac_cv_have_decl_snprintf" = x""yes; then : +if test "x$ac_cv_have_decl_snprintf" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -13972,7 +14289,7 @@ _ACEOF ac_fn_c_check_decl "$LINENO" "vsnprintf" "ac_cv_have_decl_vsnprintf" "$ac_includes_default" -if test "x$ac_cv_have_decl_vsnprintf" = x""yes; then : +if test "x$ac_cv_have_decl_vsnprintf" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -13983,7 +14300,7 @@ _ACEOF ac_fn_c_check_decl "$LINENO" "strnlen" "ac_cv_have_decl_strnlen" "$ac_includes_default" -if test "x$ac_cv_have_decl_strnlen" = x""yes; then : +if test "x$ac_cv_have_decl_strnlen" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -14014,10 +14331,46 @@ +save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -Werror" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking compiler support for hidden visibility" >&5 +$as_echo_n "checking compiler support for hidden visibility... " >&6; } +if ${bfd_cv_hidden+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +const char hw[] __attribute__ ((__visibility__ ("hidden"))) = "Hello, World\n"; +extern void print (const char *) __attribute__ ((__visibility__ ("hidden"))); +int +main () +{ +print (hw); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + bfd_cv_hidden=yes +else + bfd_cv_hidden=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_hidden" >&5 +$as_echo "$bfd_cv_hidden" >&6; } +CFLAGS="$save_CFLAGS" +if test $bfd_cv_hidden = yes; then + +$as_echo "#define HAVE_HIDDEN 1" >>confdefs.h + +fi + # Check if linker supports --as-needed and --no-as-needed options { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker --as-needed support" >&5 $as_echo_n "checking linker --as-needed support... " >&6; } -if test "${bfd_cv_ld_as_needed+set}" = set; then : +if ${bfd_cv_ld_as_needed+:} false; then : $as_echo_n "(cached) " >&6 else bfd_cv_ld_as_needed=no @@ -14037,7 +14390,7 @@ *-ncr-sysv4.3*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mwvalidcheckl in -lmw" >&5 $as_echo_n "checking for _mwvalidcheckl in -lmw... " >&6; } -if test "${ac_cv_lib_mw__mwvalidcheckl+set}" = set; then : +if ${ac_cv_lib_mw__mwvalidcheckl+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -14071,13 +14424,13 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mw__mwvalidcheckl" >&5 $as_echo "$ac_cv_lib_mw__mwvalidcheckl" >&6; } -if test "x$ac_cv_lib_mw__mwvalidcheckl" = x""yes; then : +if test "x$ac_cv_lib_mw__mwvalidcheckl" = xyes; then : LIBM="-lmw" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5 $as_echo_n "checking for cos in -lm... " >&6; } -if test "${ac_cv_lib_m_cos+set}" = set; then : +if ${ac_cv_lib_m_cos+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -14111,7 +14464,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5 $as_echo "$ac_cv_lib_m_cos" >&6; } -if test "x$ac_cv_lib_m_cos" = x""yes; then : +if test "x$ac_cv_lib_m_cos" = xyes; then : LIBM="$LIBM -lm" fi @@ -14119,7 +14472,7 @@ *) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5 $as_echo_n "checking for cos in -lm... " >&6; } -if test "${ac_cv_lib_m_cos+set}" = set; then : +if ${ac_cv_lib_m_cos+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -14153,7 +14506,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5 $as_echo "$ac_cv_lib_m_cos" >&6; } -if test "x$ac_cv_lib_m_cos" = x""yes; then : +if test "x$ac_cv_lib_m_cos" = xyes; then : LIBM="-lm" fi @@ -14308,24 +14661,18 @@ alpha_ecoff_le_vec) tb="$tb coff-alpha.lo ecoff.lo $ecoff"; target_size=64 ;; alpha_elf64_vec) tb="$tb elf64-alpha.lo elf64.lo $elf"; target_size=64 ;; alpha_elf64_fbsd_vec) tb="$tb elf64-alpha.lo elf64.lo $elf"; target_size=64 ;; - alpha_nlm32_vec) tb="$tb nlm32-alpha.lo nlm32.lo nlm.lo"; target_size=64 ;; alpha_vms_vec) tb="$tb vms-alpha.lo vms-misc.lo vms-lib.lo"; target_size=64 ;; alpha_vms_lib_txt_vec) tb="$tb vms-lib.lo vms-misc.lo" ;; am33_elf32_linux_vec) tb="$tb elf32-am33lin.lo elf32.lo $elf" ;; aout0_be_vec) tb="$tb aout0.lo aout32.lo" ;; aout64_vec) tb="$tb demo64.lo aout64.lo"; target_size=64 ;; aout_vec) tb="$tb host-aout.lo aout32.lo" ;; - aout_adobe_vec) tb="$tb aout-adobe.lo aout32.lo" ;; arc_elf32_be_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;; arc_elf32_le_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;; - arm_aout_be_vec) tb="$tb aout-arm.lo aout32.lo" ;; - arm_aout_le_vec) tb="$tb aout-arm.lo aout32.lo" ;; - arm_aout_nbsd_vec) tb="$tb armnetbsd.lo aout32.lo" ;; - arm_aout_riscix_vec) tb="$tb aout32.lo riscix.lo" ;; - arm_coff_be_vec) tb="$tb coff-arm.lo $coff" ;; - arm_coff_le_vec) tb="$tb coff-arm.lo $coff" ;; arm_elf32_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;; arm_elf32_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;; + arm_elf32_fdpic_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;; + arm_elf32_fdpic_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;; arm_elf32_nacl_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;; arm_elf32_nacl_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;; arm_elf32_symbian_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;; @@ -14334,22 +14681,16 @@ arm_elf32_vxworks_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;; arm_pe_be_vec) tb="$tb pe-arm.lo peigen.lo $coff" ;; arm_pe_le_vec) tb="$tb pe-arm.lo peigen.lo $coff" ;; - arm_pe_epoc_be_vec) tb="$tb epoc-pe-arm.lo peigen.lo $coff" ;; - arm_pe_epoc_le_vec) tb="$tb epoc-pe-arm.lo peigen.lo $coff" ;; arm_pe_wince_be_vec) tb="$tb pe-arm-wince.lo pe-arm.lo peigen.lo $coff" ;; arm_pe_wince_le_vec) tb="$tb pe-arm-wince.lo pe-arm.lo peigen.lo $coff" ;; arm_pei_be_vec) tb="$tb pei-arm.lo peigen.lo $coff" ;; arm_pei_le_vec) tb="$tb pei-arm.lo peigen.lo $coff" ;; - arm_pei_epoc_be_vec) tb="$tb epoc-pei-arm.lo peigen.lo $coff" ;; - arm_pei_epoc_le_vec) tb="$tb epoc-pei-arm.lo peigen.lo $coff" ;; arm_pei_wince_be_vec) tb="$tb pei-arm-wince.lo pei-arm.lo peigen.lo $coff" ;; arm_pei_wince_le_vec) tb="$tb pei-arm-wince.lo pei-arm.lo peigen.lo $coff" ;; arm_mach_o_vec) tb="$tb mach-o-arm.lo" ;; avr_elf32_vec) tb="$tb elf32-avr.lo elf32.lo $elf" ;; bfin_elf32_vec) tb="$tb elf32-bfin.lo elf32.lo $elf" ;; bfin_elf32_fdpic_vec) tb="$tb elf32-bfin.lo elf32.lo $elf" ;; - bout_be_vec) tb="$tb bout.lo aout32.lo" ;; - bout_le_vec) tb="$tb bout.lo aout32.lo" ;; cr16_elf32_vec) tb="$tb elf32-cr16.lo elf32.lo $elf" ;; cr16c_elf32_vec) tb="$tb elf32-cr16c.lo elf32.lo $elf" ;; cris_aout_vec) tb="$tb aout-cris.lo" ;; @@ -14367,26 +14708,17 @@ fr30_elf32_vec) tb="$tb elf32-fr30.lo elf32.lo $elf" ;; frv_elf32_vec) tb="$tb elf32-frv.lo elf32.lo $elf" ;; frv_elf32_fdpic_vec) tb="$tb elf32-frv.lo elf32.lo $elf" ;; - h8300_coff_vec) tb="$tb coff-h8300.lo reloc16.lo $coffgen" ;; h8300_elf32_vec) tb="$tb elf32-h8300.lo elf32.lo $elf" ;; h8300_elf32_linux_vec) tb="$tb elf32-h8300.lo elf32.lo $elf" ;; - h8500_coff_vec) tb="$tb coff-h8500.lo reloc16.lo $coffgen" ;; hppa_elf32_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;; hppa_elf32_linux_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;; hppa_elf32_nbsd_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;; hppa_elf64_vec) tb="$tb elf64-hppa.lo elf64.lo $elf"; target_size=64 ;; hppa_elf64_linux_vec) tb="$tb elf64-hppa.lo elf64.lo $elf"; target_size=64 ;; hppa_som_vec) tb="$tb som.lo" ;; - i370_elf32_vec) tb="$tb elf32-i370.lo elf32.lo $elf" ;; i386_aout_vec) tb="$tb i386aout.lo aout32.lo" ;; i386_aout_bsd_vec) tb="$tb i386bsd.lo aout32.lo" ;; - i386_aout_dynix_vec) tb="$tb i386dynix.lo aout32.lo" ;; - i386_aout_fbsd_vec) tb="$tb i386freebsd.lo aout32.lo" ;; - i386_aout_linux_vec) tb="$tb i386linux.lo aout32.lo" ;; i386_aout_lynx_vec) tb="$tb i386lynx.lo lynx-core.lo aout32.lo" ;; - i386_aout_mach3_vec) tb="$tb i386mach3.lo aout32.lo" ;; - i386_aout_nbsd_vec) tb="$tb i386netbsd.lo aout32.lo" ;; - i386_aout_os9k_vec) tb="$tb i386os9k.lo aout32.lo" ;; i386_coff_vec) tb="$tb coff-i386.lo $coff" ;; i386_coff_go32_vec) tb="$tb coff-go32.lo $coff" ;; i386_coff_go32stubbed_vec) tb="$tb coff-stgo32.lo $coff" ;; @@ -14398,14 +14730,9 @@ i386_elf32_vxworks_vec) tb="$tb elf32-i386.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;; i386_mach_o_vec) tb="$tb mach-o-i386.lo" ;; i386_msdos_vec) tb="$tb i386msdos.lo" ;; - i386_nlm32_vec) tb="$tb nlm32-i386.lo nlm32.lo nlm.lo" ;; i386_pe_vec) tb="$tb pe-i386.lo peigen.lo $coff" ;; i386_pei_vec) tb="$tb pei-i386.lo peigen.lo $coff" ;; iamcu_elf32_vec) tb="$tb elf32-i386.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;; - i860_coff_vec) tb="$tb coff-i860.lo $coff" ;; - i860_elf32_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;; - i860_elf32_le_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;; - i960_elf32_vec) tb="$tb elf32-i960.lo elf32.lo $elf" ;; ia64_elf32_be_vec) tb="$tb elf32-ia64.lo elfxx-ia64.lo elf32.lo $elf" ;; ia64_elf32_hpux_be_vec) tb="$tb elf32-ia64.lo elfxx-ia64.lo elf32.lo $elf" ;; ia64_elf64_be_vec) tb="$tb elf64-ia64.lo elfxx-ia64.lo elf64.lo $elf"; target_size=64 ;; @@ -14413,9 +14740,6 @@ ia64_elf64_hpux_be_vec) tb="$tb elf64-ia64.lo elfxx-ia64.lo elf64.lo $elf"; target_size=64 ;; ia64_elf64_vms_vec) tb="$tb elf64-ia64-vms.lo elf64-ia64.lo elfxx-ia64.lo elf64.lo vms-lib.lo vms-misc.lo $elf"; target_size=64 ;; ia64_pei_vec) tb="$tb pei-ia64.lo pepigen.lo $coff"; target_size=64 ;; - icoff_be_vec) tb="$tb coff-i960.lo $coff" ;; - icoff_le_vec) tb="$tb coff-i960.lo $coff" ;; - ieee_vec) tb="$tb ieee.lo" ;; ip2k_elf32_vec) tb="$tb elf32-ip2k.lo elf32.lo $elf" ;; iq2000_elf32_vec) tb="$tb elf32-iq2000.lo elf32.lo $elf" ;; k1om_elf64_vec) tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;; @@ -14431,23 +14755,8 @@ m32r_elf32_linux_le_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;; m68hc11_elf32_vec) tb="$tb elf32-m68hc11.lo elf32-m68hc1x.lo elf32.lo $elf" ;; m68hc12_elf32_vec) tb="$tb elf32-m68hc12.lo elf32-m68hc1x.lo elf32.lo $elf" ;; - m68k_aout_4knbsd_vec) tb="$tb m68k4knetbsd.lo aout32.lo" ;; - m68k_aout_hp300bsd_vec) tb="$tb hp300bsd.lo aout32.lo" ;; - m68k_aout_hp300hpux_vec) tb="$tb hp300hpux.lo aout32.lo" ;; - m68k_aout_linux_vec) tb="$tb m68klinux.lo aout32.lo" ;; - m68k_aout_nbsd_vec) tb="$tb m68knetbsd.lo aout32.lo" ;; - m68k_aout_newsos3_vec) tb="$tb newsos3.lo aout32.lo" ;; - m68k_coff_vec) tb="$tb coff-m68k.lo $coff" ;; - m68k_coff_apollo_vec) tb="$tb coff-apollo.lo $coffgen" ;; - m68k_coff_aux_vec) tb="$tb coff-aux.lo coff-m68k.lo $coff" ;; - m68k_coff_sysv_vec) tb="$tb coff-svm68k.lo $coff" ;; - m68k_coff_un_vec) tb="$tb coff-u68k.lo coff-m68k.lo $coff" ;; m68k_elf32_vec) tb="$tb elf32-m68k.lo elf32.lo $elf" ;; - m68k_versados_vec) tb="$tb versados.lo" ;; - m88k_aout_mach3_vec) tb="$tb m88kmach3.lo aout32.lo" ;; - m88k_aout_obsd_vec) tb="$tb m88kopenbsd.lo aout32.lo" ;; - m88k_coff_bcs_vec) tb="$tb coff-m88k.lo $coffgen" ;; - m88k_elf32_vec) tb="$tb elf32-m88k.lo elf32.lo $elf" ;; + s12z_elf32_vec) tb="$tb elf32-s12z.lo elf32.lo $elf" ;; mach_o_be_vec) tb="$tb mach-o.lo dwarf2.lo" ;; mach_o_le_vec) tb="$tb mach-o.lo dwarf2.lo" ;; mach_o_fat_vec) tb="$tb mach-o.lo dwarf2.lo" ;; @@ -14485,8 +14794,6 @@ mips_elf64_trad_le_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf $ecoff"; target_size=64 ;; mips_elf64_tradfbsd_be_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf $ecoff"; target_size=64 ;; mips_elf64_tradfbsd_le_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf $ecoff"; target_size=64 ;; - mips_pe_le_vec) tb="$tb pe-mips.lo peigen.lo $coff" ;; - mips_pei_le_vec) tb="$tb pei-mips.lo peigen.lo $coff" ;; mmix_elf64_vec) tb="$tb elf64-mmix.lo elf64.lo $elf" target_size=64 ;; mmix_mmo_vec) tb="$tb mmo.lo" target_size=64 ;; mn10200_elf32_vec) tb="$tb elf-m10200.lo elf32.lo $elf" ;; @@ -14500,6 +14807,7 @@ nds32_elf32_le_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;; nds32_elf32_linux_be_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;; nds32_elf32_linux_le_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;; + nfp_elf64_vec) tb="$tb elf64-nfp.lo elf64.lo $elf" ;; nios2_elf32_be_vec) tb="$tb elf32-nios2.lo elf32.lo $elf" ;; nios2_elf32_le_vec) tb="$tb elf32-nios2.lo elf32.lo $elf" ;; ns32k_aout_pc532mach_vec) tb="$tb pc532-mach.lo aout-ns32k.lo" ;; @@ -14519,7 +14827,6 @@ powerpc_elf64_vec) tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf"; target_size=64 ;; powerpc_elf64_le_vec) tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf" target_size=64 ;; powerpc_elf64_fbsd_vec) tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf" target_size=64 ;; - powerpc_nlm32_vec) tb="$tb nlm32-ppc.lo nlm32.lo nlm.lo" ;; powerpc_pe_vec) tb="$tb pe-ppc.lo peigen.lo $coff" ;; powerpc_pe_le_vec) tb="$tb pe-ppc.lo peigen.lo $coff" ;; powerpc_pei_vec) tb="$tb pei-ppc.lo peigen.lo $coff" ;; @@ -14539,18 +14846,6 @@ s390_elf64_vec) tb="$tb elf64-s390.lo elf64.lo $elf"; target_size=64 ;; score_elf32_be_vec) tb="$tb elf32-score.lo elf32-score7.lo elf32.lo $elf"; want64=true; target_size=64 ;; score_elf32_le_vec) tb="$tb elf32-score.lo elf32-score7.lo elf32.lo $elf"; want64=true; target_size=64 ;; - sh64_elf32_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf" target_size=64 ;; - sh64_elf32_le_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf" target_size=64 ;; - sh64_elf32_linux_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf" target_size=64 ;; - sh64_elf32_linux_be_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf" target_size=64 ;; - sh64_elf32_nbsd_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf" ;; - sh64_elf32_nbsd_le_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf" ;; - sh64_elf64_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;; - sh64_elf64_le_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;; - sh64_elf64_linux_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;; - sh64_elf64_linux_be_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;; - sh64_elf64_nbsd_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;; - sh64_elf64_nbsd_le_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;; sh_coff_vec) tb="$tb coff-sh.lo $coff" ;; sh_coff_le_vec) tb="$tb coff-sh.lo $coff" ;; sh_coff_small_vec) tb="$tb coff-sh.lo $coff" ;; @@ -14563,25 +14858,16 @@ sh_elf32_linux_be_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo $coff" ;; sh_elf32_nbsd_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo $coff" ;; sh_elf32_nbsd_le_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo $coff" ;; - sh_elf32_symbian_le_vec) tb="$tb elf32-sh-symbian.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo $coff" ;; sh_elf32_vxworks_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo $coff" ;; sh_elf32_vxworks_le_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo $coff" ;; sh_pe_le_vec) tb="$tb pe-sh.lo coff-sh.lo peigen.lo $coff" ;; sh_pei_le_vec) tb="$tb pei-sh.lo coff-sh.lo peigen.lo $coff" ;; - sparc_aout_le_vec) tb="$tb aout-sparcle.lo aout32.lo" ;; - sparc_aout_linux_vec) tb="$tb sparclinux.lo aout32.lo" ;; - sparc_aout_lynx_vec) tb="$tb sparclynx.lo lynx-core.lo aout32.lo" ;; - sparc_aout_nbsd_vec) tb="$tb sparcnetbsd.lo aout32.lo" ;; - sparc_aout_sunos_be_vec) tb="$tb sunos.lo aout32.lo" ;; - sparc_coff_vec) tb="$tb coff-sparc.lo $coffgen" ;; - sparc_coff_lynx_vec) tb="$tb cf-sparclynx.lo lynx-core.lo $coffgen" ;; sparc_elf32_vec) tb="$tb elf32-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf32.lo $elf" ;; sparc_elf32_sol2_vec) tb="$tb elf32-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf32.lo $elf" ;; sparc_elf32_vxworks_vec) tb="$tb elf32-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf32.lo $elf" ;; sparc_elf64_vec) tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;; sparc_elf64_fbsd_vec) tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;; sparc_elf64_sol2_vec) tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;; - sparc_nlm32_vec) tb="$tb nlm32-sparc.lo nlm32.lo nlm.lo" ;; spu_elf32_vec) tb="$tb elf32-spu.lo elf32.lo $elf" ;; sym_vec) tb="$tb xsym.lo" ;; tic30_aout_vec) tb="$tb aout-tic30.lo" ;; @@ -14613,15 +14899,12 @@ v800_elf32_vec) tb="$tb elf32-v850.lo elf32.lo $elf" ;; v850_elf32_vec) tb="$tb elf32-v850.lo elf32.lo $elf" ;; vax_aout_1knbsd_vec) tb="$tb vax1knetbsd.lo aout32.lo" ;; - vax_aout_bsd_vec) tb="$tb vaxbsd.lo aout32.lo" ;; vax_aout_nbsd_vec) tb="$tb vaxnetbsd.lo aout32.lo" ;; vax_elf32_vec) tb="$tb elf32-vax.lo elf32.lo $elf" ;; ft32_elf32_vec) tb="$tb elf32-ft32.lo elf32.lo $elf" ;; visium_elf32_vec) tb="$tb elf32-visium.lo elf32.lo $elf" ;; - w65_coff_vec) tb="$tb coff-w65.lo reloc16.lo $coffgen" ;; wasm_vec) tb="$tb wasm-module.lo" ;; wasm32_elf32_vec) tb="$tb elf32-wasm32.lo elf32.lo $elf" ;; - we32k_coff_vec) tb="$tb coff-we32k.lo $coffgen" ;; x86_64_coff_vec) tb="$tb coff-x86_64.lo $coff"; target_size=64 ;; x86_64_elf32_vec) tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;; x86_64_elf32_nacl_vec) tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;; @@ -14650,7 +14933,7 @@ core_cisco_le_vec) tb="$tb cisco-core.lo" ;; "") ;; - *) as_fn_error "*** unknown target vector $vec" "$LINENO" 5 ;; + *) as_fn_error $? "*** unknown target vector $vec" "$LINENO" 5 ;; esac if test ${target_size} = 64; then @@ -14748,7 +15031,7 @@ rm -f conftest* if test $bad_64bit_gcc = yes ; then - as_fn_error "A newer version of gcc is needed for the requested 64-bit BFD configuration" "$LINENO" 5 + as_fn_error $? "A newer version of gcc is needed for the requested 64-bit BFD configuration" "$LINENO" 5 fi fi ;; @@ -14808,11 +15091,6 @@ COREFILE=netbsd-core.lo ;; - i370-*-*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/i370linux.h"' - ;; - i[3-7]86-sequent-bsd*) COREFILE=trad-core.lo TRAD_HEADER='"hosts/symmetry.h"' @@ -14861,67 +15139,17 @@ ;; i[3-7]86-*-isc*) COREFILE=trad-core.lo ;; i[3-7]86-*-aix*) COREFILE=aix386-core.lo ;; - i860-*-mach3* | i860-*-osf1*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/i860mach3.h"' - ;; mips-*-netbsd* | mips*-*-openbsd*) COREFILE=netbsd-core.lo ;; - mips-dec-*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/decstation.h"' - ;; mips-sgi-irix4*) COREFILE=irix-core.lo ;; mips-sgi-irix5*) COREFILE=irix-core.lo ;; mips-sgi-irix6*) COREFILE=irix-core.lo ;; - mips-*-sysv4*) ;; - mips-*-sysv* | mips-*-riscos*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/riscos.h"' - ;; - mips-sony-bsd*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/news-mips.h"' - ;; - m68*-bull*-sysv*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/dpx2.h"' - ;; - m68*-hp-hpux*) COREFILE=hpux-core.lo ;; - m68*-hp-bsd*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/hp300bsd.h"' - ;; m68*-*-linux-*) COREFILE=trad-core.lo TRAD_HEADER='"hosts/m68klinux.h"' ;; - m68*-motorola-sysv*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/delta68.h"' - ;; - m68*-sony-*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/news.h"' - ;; - m68*-*-netbsd* | m68*-*-openbsd*) - COREFILE=netbsd-core.lo - ;; - m68*-apple-aux*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/m68kaux.h"' - ;; - m88*-*-sysv4*) - ;; - m88*-motorola-sysv*) - COREFILE=ptrace-core.lo - ;; - m88*-*-mach3*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/m88kmach3.h"' - ;; - m88*-*-openbsd*) + m68*-*-netbsd*) COREFILE=netbsd-core.lo ;; ns32k-pc532-mach) @@ -14985,10 +15213,6 @@ sparc-*-netbsd* | sparc*-*-openbsd*) COREFILE=netbsd-core.lo ;; - tahoe-*-*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/tahoe.h"' - ;; vax-*-netbsd* | vax-*-openbsd*) COREFILE=netbsd-core.lo ;; @@ -15035,7 +15259,7 @@ for ac_header in sys/procfs.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/procfs.h" "ac_cv_header_sys_procfs_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_procfs_h" = x""yes; then : +if test "x$ac_cv_header_sys_procfs_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_PROCFS_H 1 _ACEOF @@ -15047,7 +15271,7 @@ if test "$ac_cv_header_sys_procfs_h" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prstatus_t in sys/procfs.h" >&5 $as_echo_n "checking for prstatus_t in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_prstatus_t+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_prstatus_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15084,7 +15308,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prstatus32_t in sys/procfs.h" >&5 $as_echo_n "checking for prstatus32_t in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_prstatus32_t+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_prstatus32_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15121,7 +15345,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prstatus_t.pr_who in sys/procfs.h" >&5 $as_echo_n "checking for prstatus_t.pr_who in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_member_prstatus_t_pr_who+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_member_prstatus_t_pr_who+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15158,7 +15382,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prstatus32_t.pr_who in sys/procfs.h" >&5 $as_echo_n "checking for prstatus32_t.pr_who in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_member_prstatus32_t_pr_who+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_member_prstatus32_t_pr_who+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15195,7 +15419,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pstatus_t in sys/procfs.h" >&5 $as_echo_n "checking for pstatus_t in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_pstatus_t+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_pstatus_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15232,7 +15456,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pxstatus_t in sys/procfs.h" >&5 $as_echo_n "checking for pxstatus_t in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_pxstatus_t+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_pxstatus_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15269,7 +15493,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pstatus32_t in sys/procfs.h" >&5 $as_echo_n "checking for pstatus32_t in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_pstatus32_t+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_pstatus32_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15306,7 +15530,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prpsinfo_t in sys/procfs.h" >&5 $as_echo_n "checking for prpsinfo_t in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_prpsinfo_t+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_prpsinfo_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15343,7 +15567,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prpsinfo_t.pr_pid in sys/procfs.h" >&5 $as_echo_n "checking for prpsinfo_t.pr_pid in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_member_prpsinfo_t_pr_pid+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_member_prpsinfo_t_pr_pid+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15380,7 +15604,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prpsinfo32_t in sys/procfs.h" >&5 $as_echo_n "checking for prpsinfo32_t in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_prpsinfo32_t+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_prpsinfo32_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15417,7 +15641,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prpsinfo32_t.pr_pid in sys/procfs.h" >&5 $as_echo_n "checking for prpsinfo32_t.pr_pid in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_member_prpsinfo32_t_pr_pid+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_member_prpsinfo32_t_pr_pid+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15454,7 +15678,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for psinfo_t in sys/procfs.h" >&5 $as_echo_n "checking for psinfo_t in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_psinfo_t+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_psinfo_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15491,7 +15715,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for psinfo_t.pr_pid in sys/procfs.h" >&5 $as_echo_n "checking for psinfo_t.pr_pid in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_member_psinfo_t_pr_pid+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_member_psinfo_t_pr_pid+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15528,7 +15752,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for psinfo32_t in sys/procfs.h" >&5 $as_echo_n "checking for psinfo32_t in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_psinfo32_t+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_psinfo32_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15565,7 +15789,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for psinfo32_t.pr_pid in sys/procfs.h" >&5 $as_echo_n "checking for psinfo32_t.pr_pid in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_member_psinfo32_t_pr_pid+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_member_psinfo32_t_pr_pid+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15602,7 +15826,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lwpstatus_t in sys/procfs.h" >&5 $as_echo_n "checking for lwpstatus_t in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_lwpstatus_t+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_lwpstatus_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15639,7 +15863,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lwpxstatus_t in sys/procfs.h" >&5 $as_echo_n "checking for lwpxstatus_t in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_lwpxstatus_t+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_lwpxstatus_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15676,7 +15900,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lwpstatus_t.pr_context in sys/procfs.h" >&5 $as_echo_n "checking for lwpstatus_t.pr_context in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_context+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_context+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15713,7 +15937,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lwpstatus_t.pr_reg in sys/procfs.h" >&5 $as_echo_n "checking for lwpstatus_t.pr_reg in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_reg+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_reg+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15750,7 +15974,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lwpstatus_t.pr_fpreg in sys/procfs.h" >&5 $as_echo_n "checking for lwpstatus_t.pr_fpreg in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_fpreg+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_fpreg+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15787,7 +16011,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for win32_pstatus_t in sys/procfs.h" >&5 $as_echo_n "checking for win32_pstatus_t in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_win32_pstatus_t+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_win32_pstatus_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15858,8 +16082,7 @@ do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF @@ -15874,7 +16097,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of off_t" >&5 $as_echo_n "checking size of off_t... " >&6; } -if test "${ac_cv_sizeof_off_t+set}" = set; then : +if ${ac_cv_sizeof_off_t+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (off_t))" "ac_cv_sizeof_off_t" "$ac_includes_default"; then : @@ -15883,9 +16106,8 @@ if test "$ac_cv_type_off_t" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (off_t) -See \`config.log' for more details." "$LINENO" 5; }; } +as_fn_error 77 "cannot compute sizeof (off_t) +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_off_t=0 fi @@ -15917,12 +16139,15 @@ -for ac_header in stdlib.h unistd.h + + + + for ac_header in $ac_header_list do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF @@ -15931,10 +16156,17 @@ done + + + + + + + for ac_func in getpagesize do : ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize" -if test "x$ac_cv_func_getpagesize" = x""yes; then : +if test "x$ac_cv_func_getpagesize" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETPAGESIZE 1 _ACEOF @@ -15944,7 +16176,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5 $as_echo_n "checking for working mmap... " >&6; } -if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then : +if ${ac_cv_func_mmap_fixed_mapped+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -15987,11 +16219,6 @@ /* This mess was copied from the GNU getpagesize.h. */ #ifndef HAVE_GETPAGESIZE -/* Assume that all systems that can run configure have sys/param.h. */ -# ifndef HAVE_SYS_PARAM_H -# define HAVE_SYS_PARAM_H 1 -# endif - # ifdef _SC_PAGESIZE # define getpagesize() sysconf(_SC_PAGESIZE) # else /* no _SC_PAGESIZE */ @@ -16026,8 +16253,9 @@ main () { char *data, *data2, *data3; + const char *cdata2; int i, pagesize; - int fd; + int fd, fd2; pagesize = getpagesize (); @@ -16040,27 +16268,41 @@ umask (0); fd = creat ("conftest.mmap", 0600); if (fd < 0) - return 1; + return 2; if (write (fd, data, pagesize) != pagesize) - return 1; + return 3; close (fd); + /* Next, check that the tail of a page is zero-filled. File must have + non-zero length, otherwise we risk SIGBUS for entire page. */ + fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600); + if (fd2 < 0) + return 4; + cdata2 = ""; + if (write (fd2, cdata2, 1) != 1) + return 5; + data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L); + if (data2 == MAP_FAILED) + return 6; + for (i = 0; i < pagesize; ++i) + if (*(data2 + i)) + return 7; + close (fd2); + if (munmap (data2, pagesize)) + return 8; + /* Next, try to mmap the file at a fixed address which already has something else allocated at it. If we can, also make sure that we see the same garbage. */ fd = open ("conftest.mmap", O_RDWR); if (fd < 0) - return 1; - data2 = (char *) malloc (2 * pagesize); - if (!data2) - return 1; - data2 += (pagesize - ((long int) data2 & (pagesize - 1))) & (pagesize - 1); + return 9; if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_FIXED, fd, 0L)) - return 1; + return 10; for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data2 + i)) - return 1; + return 11; /* Finally, make sure that changes to the mapped area do not percolate back to the file as seen by read(). (This is a bug on @@ -16069,12 +16311,12 @@ *(data2 + i) = *(data2 + i) + 1; data3 = (char *) malloc (pagesize); if (!data3) - return 1; + return 12; if (read (fd, data3, pagesize) != pagesize) - return 1; + return 13; for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data3 + i)) - return 1; + return 14; close (fd); return 0; } @@ -16096,14 +16338,13 @@ $as_echo "#define HAVE_MMAP 1" >>confdefs.h fi -rm -f conftest.mmap +rm -f conftest.mmap conftest.txt for ac_func in madvise mprotect do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF @@ -16193,10 +16434,21 @@ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then - test "x$cache_file" != "x/dev/null" && + if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} @@ -16212,6 +16464,7 @@ ac_libobjs= ac_ltlibobjs= +U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' @@ -16226,12 +16479,20 @@ LTLIBOBJS=$ac_ltlibobjs +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +$as_echo_n "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 +$as_echo "done" >&6; } if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - as_fn_error "conditional \"AMDEP\" was never defined. + as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error "conditional \"am__fastdepCC\" was never defined. + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -n "$EXEEXT"; then @@ -16243,23 +16504,23 @@ fi if test -z "${PLUGINS_TRUE}" && test -z "${PLUGINS_FALSE}"; then - as_fn_error "conditional \"PLUGINS\" was never defined. + as_fn_error $? "conditional \"PLUGINS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then - as_fn_error "conditional \"MAINTAINER_MODE\" was never defined. + as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GENINSRC_NEVER_TRUE}" && test -z "${GENINSRC_NEVER_FALSE}"; then - as_fn_error "conditional \"GENINSRC_NEVER\" was never defined. + as_fn_error $? "conditional \"GENINSRC_NEVER\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${INSTALL_LIBBFD_TRUE}" && test -z "${INSTALL_LIBBFD_FALSE}"; then - as_fn_error "conditional \"INSTALL_LIBBFD\" was never defined. + as_fn_error $? "conditional \"INSTALL_LIBBFD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -: ${CONFIG_STATUS=./config.status} +: "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" @@ -16360,6 +16621,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -16405,19 +16667,19 @@ (unset CDPATH) >/dev/null 2>&1 && unset CDPATH -# as_fn_error ERROR [LINENO LOG_FD] -# --------------------------------- +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with status $?, using 1 if that was 0. +# script with STATUS, using 1 if that was 0. as_fn_error () { - as_status=$?; test $as_status -eq 0 && as_status=1 - if test "$3"; then - as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $1" >&2 + $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error @@ -16555,16 +16817,16 @@ # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -16613,7 +16875,7 @@ test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p @@ -16624,28 +16886,16 @@ as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -16666,8 +16916,8 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by bfd $as_me 2.29.51, which was -generated by GNU Autoconf 2.64. Invocation command line was +This file was extended by bfd $as_me 2.31.51, which was +generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -16707,6 +16957,7 @@ -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit + --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files @@ -16729,12 +16980,13 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -bfd config.status 2.29.51 -configured by $0, generated by GNU Autoconf 2.64, - with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" +bfd config.status 2.31.51 +configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" -Copyright (C) 2009 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -16752,11 +17004,16 @@ while test $# != 0 do case $1 in - --*=*) + --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; *) ac_option=$1 ac_optarg=$2 @@ -16770,12 +17027,15 @@ ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; @@ -16788,7 +17048,7 @@ ac_need_defaults=false;; --he | --h) # Conflict between --help and --header - as_fn_error "ambiguous option: \`$1' + as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; @@ -16797,7 +17057,7 @@ ac_cs_silent=: ;; # This is an error. - -*) as_fn_error "unrecognized option: \`$1' + -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" @@ -16817,7 +17077,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' @@ -17148,7 +17408,7 @@ "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in:po/Make-in" ;; "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; - *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done @@ -17171,9 +17431,10 @@ # after its creation but before its name has been assigned to `$tmp'. $debug || { - tmp= + tmp= ac_tmp= trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } @@ -17181,12 +17442,13 @@ { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" + test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") -} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. @@ -17203,12 +17465,12 @@ fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\r' + ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi -echo 'BEGIN {' >"$tmp/subs1.awk" && +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF @@ -17217,18 +17479,18 @@ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || - as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || - as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then - as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi @@ -17236,7 +17498,7 @@ rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h @@ -17250,7 +17512,7 @@ t delim :nl h -s/\(.\{148\}\).*/\1/ +s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p @@ -17264,7 +17526,7 @@ t nl :delim h -s/\(.\{148\}\).*/\1/ +s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p @@ -17284,7 +17546,7 @@ rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK -cat >>"\$tmp/subs1.awk" <<_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" @@ -17316,21 +17578,29 @@ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat -fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ - || as_fn_error "could not setup config files machinery" "$LINENO" 5 +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/ -s/:*\${srcdir}:*/:/ -s/:*@srcdir@:*/:/ -s/^\([^=]*=[ ]*\):*/\1/ + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// s/^[^=]*=[ ]*$// }' fi @@ -17342,7 +17612,7 @@ # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then -cat >"$tmp/defines.awk" <<\_ACAWK || +cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF @@ -17354,11 +17624,11 @@ # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do - ac_t=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_t"; then + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then break elif $ac_last_try; then - as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5 + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi @@ -17443,7 +17713,7 @@ _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error "could not setup config headers machinery" "$LINENO" 5 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" @@ -17456,7 +17726,7 @@ esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac @@ -17475,7 +17745,7 @@ for ac_f do case $ac_f in - -) ac_f="$tmp/stdin";; + -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. @@ -17484,7 +17754,7 @@ [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" @@ -17510,8 +17780,8 @@ esac case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin" \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac @@ -17647,23 +17917,24 @@ s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&5 +which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&2;} +which seems to be undefined. Please make sure it is defined" >&2;} - rm -f "$tmp/stdin" + rm -f "$ac_tmp/stdin" case $ac_file in - -) cat "$tmp/out" && rm -f "$tmp/out";; - *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # @@ -17672,21 +17943,21 @@ if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" - } >"$tmp/config.h" \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" - mv "$tmp/config.h" "$ac_file" \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error "could not create -" "$LINENO" 5 + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" @@ -17732,7 +18003,7 @@ case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { - # Autoconf 2.62 quotes --file arguments for eval, but not when files + # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in @@ -17745,7 +18016,7 @@ # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but + # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. @@ -17779,21 +18050,19 @@ continue fi # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. + # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue + test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || @@ -18966,7 +19235,7 @@ ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || - as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. @@ -18987,7 +19256,7 @@ exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit $? + $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 diff -Nru gdb-8.1/bfd/configure.ac gdb-8.2/bfd/configure.ac --- gdb-8.1/bfd/configure.ac 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/configure.ac 2018-09-05 07:44:28.000000000 +0000 @@ -17,7 +17,6 @@ dnl . dnl -AC_PREREQ(2.59) m4_include([version.m4]) AC_INIT([bfd], BFD_VERSION) AC_CONFIG_SRCDIR([libbfd.c]) @@ -97,6 +96,30 @@ [Define if we should default to creating read-only plt entries]) fi +# Decide if -z separate-code should be enabled in ELF linker by default. +ac_default_ld_z_separate_code=unset +AC_ARG_ENABLE(separate-code, + AS_HELP_STRING([--enable-separate-code], + [enable -z separate-code in ELF linker by default]), +[case "${enableval}" in + yes) ac_default_ld_z_separate_code=1 ;; + no) ac_default_ld_z_separate_code=0 ;; +esac]) +# Enable -z separate-code by default for Linux/x86. +case "${target}" in +i[3-7]86-*-linux-* | x86_64-*-linux-*) + if test ${ac_default_ld_z_separate_code} = unset; then + ac_default_ld_z_separate_code=1 + fi + ;; +esac +if test "${ac_default_ld_z_separate_code}" = unset; then + ac_default_ld_z_separate_code=0 +fi +AC_DEFINE_UNQUOTED(DEFAULT_LD_Z_SEPARATE_CODE, + $ac_default_ld_z_separate_code, + [Define to 1 if you want to enable -z separate-code in ELF linker by default.]) + AC_ARG_ENABLE(leading-mingw64-underscores, AS_HELP_STRING([--enable-leading-mingw64-underscores], [Enable leading underscores on 64 bit mingw targets]), @@ -143,7 +166,7 @@ # host stuff: -ALL_LINGUAS="da es fi fr hr id ja ro ru rw sr sv tr uk vi zh_CN" +ALL_LINGUAS="da es fi fr hr id ja ro ru rw sr sv tr uk vi zh_CN pt" ZW_GNU_GETTEXT_SISTER_DIR AM_PO_SUBDIRS @@ -232,6 +255,20 @@ # This is used only by compress.c. AM_ZLIB +save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -Werror" +AC_CACHE_CHECK([compiler support for hidden visibility], bfd_cv_hidden, +[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +const char hw[] __attribute__ ((__visibility__ ("hidden"))) = "Hello, World\n"; +extern void print (const char *) __attribute__ ((__visibility__ ("hidden")));]], + [[print (hw);]])], + [bfd_cv_hidden=yes], [bfd_cv_hidden=no])]) +CFLAGS="$save_CFLAGS" +if test $bfd_cv_hidden = yes; then + AC_DEFINE(HAVE_HIDDEN, 1, + [Define if your compiler supports hidden visibility.]) +fi + # Check if linker supports --as-needed and --no-as-needed options AC_CACHE_CHECK(linker --as-needed support, bfd_cv_ld_as_needed, [bfd_cv_ld_as_needed=no @@ -390,24 +427,18 @@ alpha_ecoff_le_vec) tb="$tb coff-alpha.lo ecoff.lo $ecoff"; target_size=64 ;; alpha_elf64_vec) tb="$tb elf64-alpha.lo elf64.lo $elf"; target_size=64 ;; alpha_elf64_fbsd_vec) tb="$tb elf64-alpha.lo elf64.lo $elf"; target_size=64 ;; - alpha_nlm32_vec) tb="$tb nlm32-alpha.lo nlm32.lo nlm.lo"; target_size=64 ;; alpha_vms_vec) tb="$tb vms-alpha.lo vms-misc.lo vms-lib.lo"; target_size=64 ;; alpha_vms_lib_txt_vec) tb="$tb vms-lib.lo vms-misc.lo" ;; am33_elf32_linux_vec) tb="$tb elf32-am33lin.lo elf32.lo $elf" ;; aout0_be_vec) tb="$tb aout0.lo aout32.lo" ;; aout64_vec) tb="$tb demo64.lo aout64.lo"; target_size=64 ;; aout_vec) tb="$tb host-aout.lo aout32.lo" ;; - aout_adobe_vec) tb="$tb aout-adobe.lo aout32.lo" ;; arc_elf32_be_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;; arc_elf32_le_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;; - arm_aout_be_vec) tb="$tb aout-arm.lo aout32.lo" ;; - arm_aout_le_vec) tb="$tb aout-arm.lo aout32.lo" ;; - arm_aout_nbsd_vec) tb="$tb armnetbsd.lo aout32.lo" ;; - arm_aout_riscix_vec) tb="$tb aout32.lo riscix.lo" ;; - arm_coff_be_vec) tb="$tb coff-arm.lo $coff" ;; - arm_coff_le_vec) tb="$tb coff-arm.lo $coff" ;; arm_elf32_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;; arm_elf32_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;; + arm_elf32_fdpic_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;; + arm_elf32_fdpic_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;; arm_elf32_nacl_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;; arm_elf32_nacl_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;; arm_elf32_symbian_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;; @@ -416,22 +447,16 @@ arm_elf32_vxworks_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;; arm_pe_be_vec) tb="$tb pe-arm.lo peigen.lo $coff" ;; arm_pe_le_vec) tb="$tb pe-arm.lo peigen.lo $coff" ;; - arm_pe_epoc_be_vec) tb="$tb epoc-pe-arm.lo peigen.lo $coff" ;; - arm_pe_epoc_le_vec) tb="$tb epoc-pe-arm.lo peigen.lo $coff" ;; arm_pe_wince_be_vec) tb="$tb pe-arm-wince.lo pe-arm.lo peigen.lo $coff" ;; arm_pe_wince_le_vec) tb="$tb pe-arm-wince.lo pe-arm.lo peigen.lo $coff" ;; arm_pei_be_vec) tb="$tb pei-arm.lo peigen.lo $coff" ;; arm_pei_le_vec) tb="$tb pei-arm.lo peigen.lo $coff" ;; - arm_pei_epoc_be_vec) tb="$tb epoc-pei-arm.lo peigen.lo $coff" ;; - arm_pei_epoc_le_vec) tb="$tb epoc-pei-arm.lo peigen.lo $coff" ;; arm_pei_wince_be_vec) tb="$tb pei-arm-wince.lo pei-arm.lo peigen.lo $coff" ;; arm_pei_wince_le_vec) tb="$tb pei-arm-wince.lo pei-arm.lo peigen.lo $coff" ;; arm_mach_o_vec) tb="$tb mach-o-arm.lo" ;; avr_elf32_vec) tb="$tb elf32-avr.lo elf32.lo $elf" ;; bfin_elf32_vec) tb="$tb elf32-bfin.lo elf32.lo $elf" ;; bfin_elf32_fdpic_vec) tb="$tb elf32-bfin.lo elf32.lo $elf" ;; - bout_be_vec) tb="$tb bout.lo aout32.lo" ;; - bout_le_vec) tb="$tb bout.lo aout32.lo" ;; cr16_elf32_vec) tb="$tb elf32-cr16.lo elf32.lo $elf" ;; cr16c_elf32_vec) tb="$tb elf32-cr16c.lo elf32.lo $elf" ;; cris_aout_vec) tb="$tb aout-cris.lo" ;; @@ -449,26 +474,17 @@ fr30_elf32_vec) tb="$tb elf32-fr30.lo elf32.lo $elf" ;; frv_elf32_vec) tb="$tb elf32-frv.lo elf32.lo $elf" ;; frv_elf32_fdpic_vec) tb="$tb elf32-frv.lo elf32.lo $elf" ;; - h8300_coff_vec) tb="$tb coff-h8300.lo reloc16.lo $coffgen" ;; h8300_elf32_vec) tb="$tb elf32-h8300.lo elf32.lo $elf" ;; h8300_elf32_linux_vec) tb="$tb elf32-h8300.lo elf32.lo $elf" ;; - h8500_coff_vec) tb="$tb coff-h8500.lo reloc16.lo $coffgen" ;; hppa_elf32_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;; hppa_elf32_linux_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;; hppa_elf32_nbsd_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;; hppa_elf64_vec) tb="$tb elf64-hppa.lo elf64.lo $elf"; target_size=64 ;; hppa_elf64_linux_vec) tb="$tb elf64-hppa.lo elf64.lo $elf"; target_size=64 ;; hppa_som_vec) tb="$tb som.lo" ;; - i370_elf32_vec) tb="$tb elf32-i370.lo elf32.lo $elf" ;; i386_aout_vec) tb="$tb i386aout.lo aout32.lo" ;; i386_aout_bsd_vec) tb="$tb i386bsd.lo aout32.lo" ;; - i386_aout_dynix_vec) tb="$tb i386dynix.lo aout32.lo" ;; - i386_aout_fbsd_vec) tb="$tb i386freebsd.lo aout32.lo" ;; - i386_aout_linux_vec) tb="$tb i386linux.lo aout32.lo" ;; i386_aout_lynx_vec) tb="$tb i386lynx.lo lynx-core.lo aout32.lo" ;; - i386_aout_mach3_vec) tb="$tb i386mach3.lo aout32.lo" ;; - i386_aout_nbsd_vec) tb="$tb i386netbsd.lo aout32.lo" ;; - i386_aout_os9k_vec) tb="$tb i386os9k.lo aout32.lo" ;; i386_coff_vec) tb="$tb coff-i386.lo $coff" ;; i386_coff_go32_vec) tb="$tb coff-go32.lo $coff" ;; i386_coff_go32stubbed_vec) tb="$tb coff-stgo32.lo $coff" ;; @@ -480,14 +496,9 @@ i386_elf32_vxworks_vec) tb="$tb elf32-i386.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;; i386_mach_o_vec) tb="$tb mach-o-i386.lo" ;; i386_msdos_vec) tb="$tb i386msdos.lo" ;; - i386_nlm32_vec) tb="$tb nlm32-i386.lo nlm32.lo nlm.lo" ;; i386_pe_vec) tb="$tb pe-i386.lo peigen.lo $coff" ;; i386_pei_vec) tb="$tb pei-i386.lo peigen.lo $coff" ;; iamcu_elf32_vec) tb="$tb elf32-i386.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;; - i860_coff_vec) tb="$tb coff-i860.lo $coff" ;; - i860_elf32_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;; - i860_elf32_le_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;; - i960_elf32_vec) tb="$tb elf32-i960.lo elf32.lo $elf" ;; ia64_elf32_be_vec) tb="$tb elf32-ia64.lo elfxx-ia64.lo elf32.lo $elf" ;; ia64_elf32_hpux_be_vec) tb="$tb elf32-ia64.lo elfxx-ia64.lo elf32.lo $elf" ;; ia64_elf64_be_vec) tb="$tb elf64-ia64.lo elfxx-ia64.lo elf64.lo $elf"; target_size=64 ;; @@ -495,9 +506,6 @@ ia64_elf64_hpux_be_vec) tb="$tb elf64-ia64.lo elfxx-ia64.lo elf64.lo $elf"; target_size=64 ;; ia64_elf64_vms_vec) tb="$tb elf64-ia64-vms.lo elf64-ia64.lo elfxx-ia64.lo elf64.lo vms-lib.lo vms-misc.lo $elf"; target_size=64 ;; ia64_pei_vec) tb="$tb pei-ia64.lo pepigen.lo $coff"; target_size=64 ;; - icoff_be_vec) tb="$tb coff-i960.lo $coff" ;; - icoff_le_vec) tb="$tb coff-i960.lo $coff" ;; - ieee_vec) tb="$tb ieee.lo" ;; ip2k_elf32_vec) tb="$tb elf32-ip2k.lo elf32.lo $elf" ;; iq2000_elf32_vec) tb="$tb elf32-iq2000.lo elf32.lo $elf" ;; k1om_elf64_vec) tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;; @@ -513,23 +521,8 @@ m32r_elf32_linux_le_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;; m68hc11_elf32_vec) tb="$tb elf32-m68hc11.lo elf32-m68hc1x.lo elf32.lo $elf" ;; m68hc12_elf32_vec) tb="$tb elf32-m68hc12.lo elf32-m68hc1x.lo elf32.lo $elf" ;; - m68k_aout_4knbsd_vec) tb="$tb m68k4knetbsd.lo aout32.lo" ;; - m68k_aout_hp300bsd_vec) tb="$tb hp300bsd.lo aout32.lo" ;; - m68k_aout_hp300hpux_vec) tb="$tb hp300hpux.lo aout32.lo" ;; - m68k_aout_linux_vec) tb="$tb m68klinux.lo aout32.lo" ;; - m68k_aout_nbsd_vec) tb="$tb m68knetbsd.lo aout32.lo" ;; - m68k_aout_newsos3_vec) tb="$tb newsos3.lo aout32.lo" ;; - m68k_coff_vec) tb="$tb coff-m68k.lo $coff" ;; - m68k_coff_apollo_vec) tb="$tb coff-apollo.lo $coffgen" ;; - m68k_coff_aux_vec) tb="$tb coff-aux.lo coff-m68k.lo $coff" ;; - m68k_coff_sysv_vec) tb="$tb coff-svm68k.lo $coff" ;; - m68k_coff_un_vec) tb="$tb coff-u68k.lo coff-m68k.lo $coff" ;; m68k_elf32_vec) tb="$tb elf32-m68k.lo elf32.lo $elf" ;; - m68k_versados_vec) tb="$tb versados.lo" ;; - m88k_aout_mach3_vec) tb="$tb m88kmach3.lo aout32.lo" ;; - m88k_aout_obsd_vec) tb="$tb m88kopenbsd.lo aout32.lo" ;; - m88k_coff_bcs_vec) tb="$tb coff-m88k.lo $coffgen" ;; - m88k_elf32_vec) tb="$tb elf32-m88k.lo elf32.lo $elf" ;; + s12z_elf32_vec) tb="$tb elf32-s12z.lo elf32.lo $elf" ;; mach_o_be_vec) tb="$tb mach-o.lo dwarf2.lo" ;; mach_o_le_vec) tb="$tb mach-o.lo dwarf2.lo" ;; mach_o_fat_vec) tb="$tb mach-o.lo dwarf2.lo" ;; @@ -567,8 +560,6 @@ mips_elf64_trad_le_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf $ecoff"; target_size=64 ;; mips_elf64_tradfbsd_be_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf $ecoff"; target_size=64 ;; mips_elf64_tradfbsd_le_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf $ecoff"; target_size=64 ;; - mips_pe_le_vec) tb="$tb pe-mips.lo peigen.lo $coff" ;; - mips_pei_le_vec) tb="$tb pei-mips.lo peigen.lo $coff" ;; mmix_elf64_vec) tb="$tb elf64-mmix.lo elf64.lo $elf" target_size=64 ;; mmix_mmo_vec) tb="$tb mmo.lo" target_size=64 ;; mn10200_elf32_vec) tb="$tb elf-m10200.lo elf32.lo $elf" ;; @@ -582,6 +573,7 @@ nds32_elf32_le_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;; nds32_elf32_linux_be_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;; nds32_elf32_linux_le_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;; + nfp_elf64_vec) tb="$tb elf64-nfp.lo elf64.lo $elf" ;; nios2_elf32_be_vec) tb="$tb elf32-nios2.lo elf32.lo $elf" ;; nios2_elf32_le_vec) tb="$tb elf32-nios2.lo elf32.lo $elf" ;; ns32k_aout_pc532mach_vec) tb="$tb pc532-mach.lo aout-ns32k.lo" ;; @@ -601,7 +593,6 @@ powerpc_elf64_vec) tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf"; target_size=64 ;; powerpc_elf64_le_vec) tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf" target_size=64 ;; powerpc_elf64_fbsd_vec) tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf" target_size=64 ;; - powerpc_nlm32_vec) tb="$tb nlm32-ppc.lo nlm32.lo nlm.lo" ;; powerpc_pe_vec) tb="$tb pe-ppc.lo peigen.lo $coff" ;; powerpc_pe_le_vec) tb="$tb pe-ppc.lo peigen.lo $coff" ;; powerpc_pei_vec) tb="$tb pei-ppc.lo peigen.lo $coff" ;; @@ -621,18 +612,6 @@ s390_elf64_vec) tb="$tb elf64-s390.lo elf64.lo $elf"; target_size=64 ;; score_elf32_be_vec) tb="$tb elf32-score.lo elf32-score7.lo elf32.lo $elf"; want64=true; target_size=64 ;; score_elf32_le_vec) tb="$tb elf32-score.lo elf32-score7.lo elf32.lo $elf"; want64=true; target_size=64 ;; - sh64_elf32_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf" target_size=64 ;; - sh64_elf32_le_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf" target_size=64 ;; - sh64_elf32_linux_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf" target_size=64 ;; - sh64_elf32_linux_be_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf" target_size=64 ;; - sh64_elf32_nbsd_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf" ;; - sh64_elf32_nbsd_le_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf" ;; - sh64_elf64_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;; - sh64_elf64_le_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;; - sh64_elf64_linux_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;; - sh64_elf64_linux_be_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;; - sh64_elf64_nbsd_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;; - sh64_elf64_nbsd_le_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;; sh_coff_vec) tb="$tb coff-sh.lo $coff" ;; sh_coff_le_vec) tb="$tb coff-sh.lo $coff" ;; sh_coff_small_vec) tb="$tb coff-sh.lo $coff" ;; @@ -645,25 +624,16 @@ sh_elf32_linux_be_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo $coff" ;; sh_elf32_nbsd_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo $coff" ;; sh_elf32_nbsd_le_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo $coff" ;; - sh_elf32_symbian_le_vec) tb="$tb elf32-sh-symbian.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo $coff" ;; sh_elf32_vxworks_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo $coff" ;; sh_elf32_vxworks_le_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo $coff" ;; sh_pe_le_vec) tb="$tb pe-sh.lo coff-sh.lo peigen.lo $coff" ;; sh_pei_le_vec) tb="$tb pei-sh.lo coff-sh.lo peigen.lo $coff" ;; - sparc_aout_le_vec) tb="$tb aout-sparcle.lo aout32.lo" ;; - sparc_aout_linux_vec) tb="$tb sparclinux.lo aout32.lo" ;; - sparc_aout_lynx_vec) tb="$tb sparclynx.lo lynx-core.lo aout32.lo" ;; - sparc_aout_nbsd_vec) tb="$tb sparcnetbsd.lo aout32.lo" ;; - sparc_aout_sunos_be_vec) tb="$tb sunos.lo aout32.lo" ;; - sparc_coff_vec) tb="$tb coff-sparc.lo $coffgen" ;; - sparc_coff_lynx_vec) tb="$tb cf-sparclynx.lo lynx-core.lo $coffgen" ;; sparc_elf32_vec) tb="$tb elf32-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf32.lo $elf" ;; sparc_elf32_sol2_vec) tb="$tb elf32-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf32.lo $elf" ;; sparc_elf32_vxworks_vec) tb="$tb elf32-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf32.lo $elf" ;; sparc_elf64_vec) tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;; sparc_elf64_fbsd_vec) tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;; sparc_elf64_sol2_vec) tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;; - sparc_nlm32_vec) tb="$tb nlm32-sparc.lo nlm32.lo nlm.lo" ;; spu_elf32_vec) tb="$tb elf32-spu.lo elf32.lo $elf" ;; sym_vec) tb="$tb xsym.lo" ;; tic30_aout_vec) tb="$tb aout-tic30.lo" ;; @@ -695,15 +665,12 @@ v800_elf32_vec) tb="$tb elf32-v850.lo elf32.lo $elf" ;; v850_elf32_vec) tb="$tb elf32-v850.lo elf32.lo $elf" ;; vax_aout_1knbsd_vec) tb="$tb vax1knetbsd.lo aout32.lo" ;; - vax_aout_bsd_vec) tb="$tb vaxbsd.lo aout32.lo" ;; vax_aout_nbsd_vec) tb="$tb vaxnetbsd.lo aout32.lo" ;; vax_elf32_vec) tb="$tb elf32-vax.lo elf32.lo $elf" ;; ft32_elf32_vec) tb="$tb elf32-ft32.lo elf32.lo $elf" ;; visium_elf32_vec) tb="$tb elf32-visium.lo elf32.lo $elf" ;; - w65_coff_vec) tb="$tb coff-w65.lo reloc16.lo $coffgen" ;; wasm_vec) tb="$tb wasm-module.lo" ;; wasm32_elf32_vec) tb="$tb elf32-wasm32.lo elf32.lo $elf" ;; - we32k_coff_vec) tb="$tb coff-we32k.lo $coffgen" ;; x86_64_coff_vec) tb="$tb coff-x86_64.lo $coff"; target_size=64 ;; x86_64_elf32_vec) tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;; x86_64_elf32_nacl_vec) tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;; @@ -875,11 +842,6 @@ COREFILE=netbsd-core.lo ;; - i370-*-*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/i370linux.h"' - ;; - changequote(,)dnl i[3-7]86-sequent-bsd*) changequote([,])dnl @@ -952,67 +914,17 @@ i[3-7]86-*-isc*) COREFILE=trad-core.lo ;; i[3-7]86-*-aix*) COREFILE=aix386-core.lo ;; changequote([,])dnl - i860-*-mach3* | i860-*-osf1*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/i860mach3.h"' - ;; mips-*-netbsd* | mips*-*-openbsd*) COREFILE=netbsd-core.lo ;; - mips-dec-*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/decstation.h"' - ;; mips-sgi-irix4*) COREFILE=irix-core.lo ;; mips-sgi-irix5*) COREFILE=irix-core.lo ;; mips-sgi-irix6*) COREFILE=irix-core.lo ;; - mips-*-sysv4*) ;; - mips-*-sysv* | mips-*-riscos*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/riscos.h"' - ;; - mips-sony-bsd*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/news-mips.h"' - ;; - m68*-bull*-sysv*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/dpx2.h"' - ;; - m68*-hp-hpux*) COREFILE=hpux-core.lo ;; - m68*-hp-bsd*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/hp300bsd.h"' - ;; m68*-*-linux-*) COREFILE=trad-core.lo TRAD_HEADER='"hosts/m68klinux.h"' ;; - m68*-motorola-sysv*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/delta68.h"' - ;; - m68*-sony-*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/news.h"' - ;; - m68*-*-netbsd* | m68*-*-openbsd*) - COREFILE=netbsd-core.lo - ;; - m68*-apple-aux*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/m68kaux.h"' - ;; - m88*-*-sysv4*) - ;; - m88*-motorola-sysv*) - COREFILE=ptrace-core.lo - ;; - m88*-*-mach3*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/m88kmach3.h"' - ;; - m88*-*-openbsd*) + m68*-*-netbsd*) COREFILE=netbsd-core.lo ;; ns32k-pc532-mach) @@ -1060,10 +972,6 @@ sparc-*-netbsd* | sparc*-*-openbsd*) COREFILE=netbsd-core.lo ;; - tahoe-*-*) - COREFILE=trad-core.lo - TRAD_HEADER='"hosts/tahoe.h"' - ;; vax-*-netbsd* | vax-*-openbsd*) COREFILE=netbsd-core.lo ;; diff -Nru gdb-8.1/bfd/configure.host gdb-8.2/bfd/configure.host --- gdb-8.1/bfd/configure.host 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/configure.host 2018-09-05 07:27:13.000000000 +0000 @@ -72,8 +72,6 @@ mips*-*-sysv*) HDEFINES="-G 4" ;; mips*-*-riscos*) HDEFINES="-G 4" ;; -m68*-hp-hpux*) HDEFINES=-DHOST_HP300HPUX ;; - # Some Solaris systems (osol0906 at least) have a libc that doesn't recognise # the "MS-ANSI" code page name, so we define an override for CP_ACP (sets the # default code page used by windres/windmc when not specified by a commandline diff -Nru gdb-8.1/bfd/cpu-arm.c gdb-8.2/bfd/cpu-arm.c --- gdb-8.1/bfd/cpu-arm.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/cpu-arm.c 2018-09-05 07:27:13.000000000 +0000 @@ -129,20 +129,33 @@ static const bfd_arch_info_type arch_info_struct[] = { - N (bfd_mach_arm_2, "armv2", FALSE, & arch_info_struct[1]), - N (bfd_mach_arm_2a, "armv2a", FALSE, & arch_info_struct[2]), - N (bfd_mach_arm_3, "armv3", FALSE, & arch_info_struct[3]), - N (bfd_mach_arm_3M, "armv3m", FALSE, & arch_info_struct[4]), - N (bfd_mach_arm_4, "armv4", FALSE, & arch_info_struct[5]), - N (bfd_mach_arm_4T, "armv4t", FALSE, & arch_info_struct[6]), - N (bfd_mach_arm_5, "armv5", FALSE, & arch_info_struct[7]), - N (bfd_mach_arm_5T, "armv5t", FALSE, & arch_info_struct[8]), - N (bfd_mach_arm_5TE, "armv5te", FALSE, & arch_info_struct[9]), - N (bfd_mach_arm_XScale, "xscale", FALSE, & arch_info_struct[10]), - N (bfd_mach_arm_ep9312, "ep9312", FALSE, & arch_info_struct[11]), - N (bfd_mach_arm_iWMMXt, "iwmmxt", FALSE, & arch_info_struct[12]), - N (bfd_mach_arm_iWMMXt2, "iwmmxt2", FALSE, & arch_info_struct[13]), - N (bfd_mach_arm_unknown, "arm_any", FALSE, NULL) + N (bfd_mach_arm_2, "armv2", FALSE, & arch_info_struct[1]), + N (bfd_mach_arm_2a, "armv2a", FALSE, & arch_info_struct[2]), + N (bfd_mach_arm_3, "armv3", FALSE, & arch_info_struct[3]), + N (bfd_mach_arm_3M, "armv3m", FALSE, & arch_info_struct[4]), + N (bfd_mach_arm_4, "armv4", FALSE, & arch_info_struct[5]), + N (bfd_mach_arm_4T, "armv4t", FALSE, & arch_info_struct[6]), + N (bfd_mach_arm_5, "armv5", FALSE, & arch_info_struct[7]), + N (bfd_mach_arm_5T, "armv5t", FALSE, & arch_info_struct[8]), + N (bfd_mach_arm_5TE, "armv5te", FALSE, & arch_info_struct[9]), + N (bfd_mach_arm_XScale, "xscale", FALSE, & arch_info_struct[10]), + N (bfd_mach_arm_ep9312, "ep9312", FALSE, & arch_info_struct[11]), + N (bfd_mach_arm_iWMMXt, "iwmmxt", FALSE, & arch_info_struct[12]), + N (bfd_mach_arm_iWMMXt2, "iwmmxt2", FALSE, & arch_info_struct[13]), + N (bfd_mach_arm_5TEJ, "armv5tej", FALSE, & arch_info_struct[14]), + N (bfd_mach_arm_6, "armv6", FALSE, & arch_info_struct[15]), + N (bfd_mach_arm_6KZ, "armv6kz", FALSE, & arch_info_struct[16]), + N (bfd_mach_arm_6T2, "armv6t2", FALSE, & arch_info_struct[17]), + N (bfd_mach_arm_6K, "armv6k", FALSE, & arch_info_struct[18]), + N (bfd_mach_arm_7, "armv7", FALSE, & arch_info_struct[19]), + N (bfd_mach_arm_6M, "armv6-m", FALSE, & arch_info_struct[20]), + N (bfd_mach_arm_6SM, "armv6s-m", FALSE, & arch_info_struct[21]), + N (bfd_mach_arm_7EM, "armv7e-m", FALSE, & arch_info_struct[22]), + N (bfd_mach_arm_8, "armv8-a", FALSE, & arch_info_struct[23]), + N (bfd_mach_arm_8R, "armv8-r", FALSE, & arch_info_struct[24]), + N (bfd_mach_arm_8M_BASE, "armv8-m.base", FALSE, & arch_info_struct[25]), + N (bfd_mach_arm_8M_MAIN, "armv8-m.main", FALSE, & arch_info_struct[26]), + N (bfd_mach_arm_unknown, "arm_any", FALSE, NULL) }; const bfd_arch_info_type bfd_arm_arch = @@ -190,7 +203,7 @@ { /* xgettext: c-format */ _bfd_error_handler (_("\ -error: %B is compiled for the EP9312, whereas %B is compiled for XScale"), +error: %pB is compiled for the EP9312, whereas %pB is compiled for XScale"), ibfd, obfd); bfd_set_error (bfd_error_wrong_format); return FALSE; @@ -202,7 +215,7 @@ { /* xgettext: c-format */ _bfd_error_handler (_("\ -error: %B is compiled for the EP9312, whereas %B is compiled for XScale"), +error: %pB is compiled for the EP9312, whereas %pB is compiled for XScale"), obfd, ibfd); bfd_set_error (bfd_error_wrong_format); return FALSE; @@ -335,7 +348,7 @@ { _bfd_error_handler /* xgettext: c-format */ - (_("warning: unable to update contents of %s section in %B"), + (_("warning: unable to update contents of %s section in %pB"), note_section, abfd); goto FAIL; } diff -Nru gdb-8.1/bfd/cpu-h8500.c gdb-8.2/bfd/cpu-h8500.c --- gdb-8.1/bfd/cpu-h8500.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/cpu-h8500.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,59 +0,0 @@ -/* BFD library support routines for the H8/500 architecture. - Copyright (C) 1993-2018 Free Software Foundation, Inc. - Hacked by Steve Chamberlain of Cygnus Support. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" - -static bfd_boolean scan_mach - (const struct bfd_arch_info *, const char *); - -static bfd_boolean -scan_mach (const struct bfd_arch_info *info ATTRIBUTE_UNUSED, - const char *string) -{ - if (strcmp (string,"h8/500") == 0) - return TRUE; - if (strcmp (string,"H8/500") == 0) - return TRUE; - if (strcmp (string,"h8500") == 0) - return TRUE; - if (strcmp (string,"H8500") == 0) - return TRUE; - return FALSE; -} - -const bfd_arch_info_type bfd_h8500_arch = -{ - 16, /* 16 bits in a word */ - 24, /* 24 bits in an address */ - 8, /* 8 bits in a byte */ - bfd_arch_h8500, - 0, /* only 1 machine */ - "h8500", /* arch_name */ - "h8500", /* printable name */ - 1, - TRUE, /* the default machine */ - bfd_default_compatible, - scan_mach, - bfd_arch_default_fill, - 0, -}; diff -Nru gdb-8.1/bfd/cpu-i370.c gdb-8.2/bfd/cpu-i370.c --- gdb-8.1/bfd/cpu-i370.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/cpu-i370.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ -/* BFD i370 CPU definition - Copyright (C) 1994-2018 Free Software Foundation, Inc. - Contributed by Ian Lance Taylor, Cygnus Support. - Hacked by Linas Vepstas in 1998, 1999 - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" - -static const bfd_arch_info_type arch_info_struct[] = -{ - /* Hack alert: old old machines are really 16 and 24 bit arch ... */ - { - 32, /* 32 bits in a word. */ - 32, /* 32 bits in an address. */ - 8, /* 8 bits in a byte. */ - bfd_arch_i370, - 360, /* For the 360. */ - "i370", - "i370:360", - 3, - FALSE, /* Not the default. */ - bfd_default_compatible, - bfd_default_scan, - bfd_arch_default_fill, - &arch_info_struct[1] - }, - { - 32, /* 32 bits in a word. */ - 32, /* 32 bits in an address. */ - 8, /* 8 bits in a byte. */ - bfd_arch_i370, - 370, /* For the 370. */ - "i370", - "i370:370", - 3, - FALSE, /* Not the default. */ - bfd_default_compatible, - bfd_default_scan, - bfd_arch_default_fill, - 0 - }, -}; - -const bfd_arch_info_type bfd_i370_arch = -{ - 32, /* 32 bits in a word. */ - 32, /* 32 bits in an address. */ - 8, /* 8 bits in a byte. */ - bfd_arch_i370, - 0, /* For the 360/370 common architecture. */ - "i370", - "i370:common", - 3, - TRUE, /* The default. */ - bfd_default_compatible, - bfd_default_scan, - bfd_arch_default_fill, - & arch_info_struct[0] -}; diff -Nru gdb-8.1/bfd/cpu-i860.c gdb-8.2/bfd/cpu-i860.c --- gdb-8.1/bfd/cpu-i860.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/cpu-i860.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ -/* BFD support for the Intel 860 architecture. - Copyright (C) 1992-2018 Free Software Foundation, Inc. - Created mostly by substituting "860" for "386" in cpu-i386.c - Harry Dolan , October 1995 - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" - -const bfd_arch_info_type bfd_i860_arch = - { - 32, /* 32 bits in a word */ - 32, /* 32 bits in an address */ - 8, /* 8 bits in a byte */ - bfd_arch_i860, /* Architecture */ - 0, /* Only one machine */ - "i860", /* Architecture name */ - "i860", /* Printable name */ - 3, /* Section alignment exponent */ - TRUE, /* Is this the default architecture? */ - bfd_default_compatible, - bfd_default_scan, - bfd_arch_default_fill, - 0, /* Next in list */ - }; diff -Nru gdb-8.1/bfd/cpu-i960.c gdb-8.2/bfd/cpu-i960.c --- gdb-8.1/bfd/cpu-i960.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/cpu-i960.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,172 +0,0 @@ -/* BFD library support routines for the i960 architecture. - Copyright (C) 1990-2018 Free Software Foundation, Inc. - Hacked by Steve Chamberlain of Cygnus Support. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" - -/* This routine is provided a string, and tries to work out if it - could possibly refer to the i960 machine pointed at in the - info_struct pointer */ - -static bfd_boolean -scan_960_mach (const bfd_arch_info_type *ap, - const char *string) -{ - unsigned long machine; - int fail_because_not_80960 = FALSE; - - /* Look for the string i960 at the front of the string. */ - if (strncasecmp ("i960", string, 4) == 0) - { - string += 4; - - /* i960 on it's own means core to us. */ - if (* string == 0) - return ap->mach == bfd_mach_i960_core; - - /* "i960:*" is valid, anything else is not. */ - if (* string != ':') - return FALSE; - - string ++; - } - /* In some bfds the cpu-id is written as "80960KA", "80960KB", - "80960CA" or "80960MC". */ - else if (CONST_STRNEQ (string, "80960")) - { - string += 5; - - /* Set this to TRUE here. If a correct matching postfix - is detected below it will be reset to FALSE. */ - fail_because_not_80960 = TRUE; - } - /* No match, can't be us. */ - else - return FALSE; - - if (* string == '\0') - return FALSE; - - if (string[0] == 'c' && string[1] == 'o' && string[2] == 'r' && - string[3] == 'e' && string[4] == '\0') - machine = bfd_mach_i960_core; - else if (strcasecmp (string, "ka_sa") == 0) - machine = bfd_mach_i960_ka_sa; - else if (strcasecmp (string, "kb_sb") == 0) - machine = bfd_mach_i960_kb_sb; - else if (string[1] == '\0' || string[2] != '\0') /* rest are 2-char. */ - return FALSE; - else if (string[0] == 'k' && string[1] == 'b') - { machine = bfd_mach_i960_kb_sb; fail_because_not_80960 = FALSE; } - else if (string[0] == 's' && string[1] == 'b') - machine = bfd_mach_i960_kb_sb; - else if (string[0] == 'm' && string[1] == 'c') - { machine = bfd_mach_i960_mc; fail_because_not_80960 = FALSE; } - else if (string[0] == 'x' && string[1] == 'a') - machine = bfd_mach_i960_xa; - else if (string[0] == 'c' && string[1] == 'a') - { machine = bfd_mach_i960_ca; fail_because_not_80960 = FALSE; } - else if (string[0] == 'k' && string[1] == 'a') - { machine = bfd_mach_i960_ka_sa; fail_because_not_80960 = FALSE; } - else if (string[0] == 's' && string[1] == 'a') - machine = bfd_mach_i960_ka_sa; - else if (string[0] == 'j' && string[1] == 'x') - machine = bfd_mach_i960_jx; - else if (string[0] == 'h' && string[1] == 'x') - machine = bfd_mach_i960_hx; - else - return FALSE; - - if (fail_because_not_80960) - return FALSE; - - if (machine == ap->mach) - return TRUE; - - return FALSE; -} - -/* This routine is provided two arch_infos and works out the i960 - machine which would be compatible with both and returns a pointer - to its info structure */ - -static const bfd_arch_info_type * -compatible (const bfd_arch_info_type *a, - const bfd_arch_info_type *b) -{ - - /* The i960 has distinct subspecies which may not interbreed: - CORE CA - CORE KA KB MC XA - CORE HX JX - Any architecture on the same line is compatible, the one on - the right is the least restrictive. - - We represent this information in an array, each machine to a side */ - -#define ERROR 0 -#define CORE bfd_mach_i960_core /*1*/ -#define KA bfd_mach_i960_ka_sa /*2*/ -#define KB bfd_mach_i960_kb_sb /*3*/ -#define MC bfd_mach_i960_mc /*4*/ -#define XA bfd_mach_i960_xa /*5*/ -#define CA bfd_mach_i960_ca /*6*/ -#define JX bfd_mach_i960_jx /*7*/ -#define HX bfd_mach_i960_hx /*8*/ -#define MAX_ARCH ((int)HX) - - static const unsigned long matrix[MAX_ARCH+1][MAX_ARCH+1] = - { - { ERROR, CORE, KA, KB, MC, XA, CA, JX, HX }, - { CORE, CORE, KA, KB, MC, XA, CA, JX, HX }, - { KA, KA, KA, KB, MC, XA, ERROR, ERROR, ERROR}, - { KB, KB, KB, KB, MC, XA, ERROR, ERROR, ERROR}, - { MC, MC, MC, MC, MC, XA, ERROR, ERROR, ERROR}, - { XA, XA, XA, XA, XA, XA, ERROR, ERROR, ERROR}, - { CA, CA, ERROR, ERROR, ERROR, ERROR, CA, ERROR, ERROR}, - { JX, JX, ERROR, ERROR, ERROR, ERROR, ERROR, JX, HX }, - { HX, HX, ERROR, ERROR, ERROR, ERROR, ERROR, HX, HX }, - }; - - if (a->arch != b->arch || matrix[a->mach][b->mach] == ERROR) - return NULL; - - return (a->mach == matrix[a->mach][b->mach]) ? a : b; -} - -#define N(a,b,d,n) \ -{ 32, 32, 8,bfd_arch_i960,a,"i960",b,3,d,compatible,scan_960_mach, \ - bfd_arch_default_fill, n,} - -static const bfd_arch_info_type arch_info_struct[] = -{ - N(bfd_mach_i960_ka_sa,"i960:ka_sa",FALSE, &arch_info_struct[1]), - N(bfd_mach_i960_kb_sb,"i960:kb_sb",FALSE, &arch_info_struct[2]), - N(bfd_mach_i960_mc, "i960:mc", FALSE, &arch_info_struct[3]), - N(bfd_mach_i960_xa, "i960:xa", FALSE, &arch_info_struct[4]), - N(bfd_mach_i960_ca, "i960:ca", FALSE, &arch_info_struct[5]), - N(bfd_mach_i960_jx, "i960:jx", FALSE, &arch_info_struct[6]), - N(bfd_mach_i960_hx, "i960:hx", FALSE, 0), -}; - -const bfd_arch_info_type bfd_i960_arch = - N(bfd_mach_i960_core, "i960:core", TRUE, &arch_info_struct[0]); diff -Nru gdb-8.1/bfd/cpu-m88k.c gdb-8.2/bfd/cpu-m88k.c --- gdb-8.1/bfd/cpu-m88k.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/cpu-m88k.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -/* bfd back-end for m88k support - Copyright (C) 1990-2018 Free Software Foundation, Inc. - Written by Steve Chamberlain of Cygnus Support. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" - -const bfd_arch_info_type bfd_m88k_arch = - { - 32, /* 32 bits in a word */ - 32, /* 32 bits in an address */ - 8, /* 8 bits in a byte */ - bfd_arch_m88k, - 88100, /* only 1 machine */ - "m88k", - "m88k:88100", - 3, - TRUE, /* the one and only */ - bfd_default_compatible, - bfd_default_scan, - bfd_arch_default_fill, - 0, - }; diff -Nru gdb-8.1/bfd/cpu-nfp.c gdb-8.2/bfd/cpu-nfp.c --- gdb-8.1/bfd/cpu-nfp.c 1970-01-01 00:00:00.000000000 +0000 +++ gdb-8.2/bfd/cpu-nfp.c 2018-09-05 07:27:13.000000000 +0000 @@ -0,0 +1,62 @@ +/* BFD library support routines for the NFP. + Copyright (C) 2017 Free Software Foundation, Inc. + Contributed by Francois H. Theron + + 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 3 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., 51 Franklin Street - Fifth Floor, Boston, + MA 02110-1301, USA. */ + +#include "sysdep.h" +#include "bfd.h" +#include "libbfd.h" + +static const bfd_arch_info_type * +bfd_nfp_compatible (const bfd_arch_info_type * a, + const bfd_arch_info_type * b) +{ + if (a->arch != b->arch) + return NULL; + + if (a->mach != b->mach) + return NULL; + + return a; +} + +#define N(machine, print, default, next) \ +{ \ + 32, \ + 64, \ + 8, \ + bfd_arch_nfp, \ + machine, \ + "nfp", \ + print, \ + 3, \ + default, \ + bfd_nfp_compatible, \ + bfd_default_scan, \ + bfd_arch_default_fill, \ + next \ +} + +static const bfd_arch_info_type arch_info_struct[] = +{ + N (bfd_mach_nfp3200, "NFP-32xx", FALSE, NULL) +}; + +const bfd_arch_info_type bfd_nfp_arch = + N (bfd_mach_nfp6000, "NFP-6xxx", TRUE, &arch_info_struct[0]); diff -Nru gdb-8.1/bfd/cpu-ns32k.c gdb-8.2/bfd/cpu-ns32k.c --- gdb-8.1/bfd/cpu-ns32k.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/cpu-ns32k.c 2018-09-05 07:44:28.000000000 +0000 @@ -220,8 +220,8 @@ the addend to be the negative of the position of the location within the section; for example, i386-aout does this. For i386-aout, pcrel_offset is FALSE. Some other targets do not - include the position of the location; for example, m88kbcs, - or ELF. For those targets, pcrel_offset is TRUE. + include the position of the location; for example, ELF. + For those targets, pcrel_offset is TRUE. If we are producing relocatable output, then we must ensure that this reloc will be correctly computed when the final @@ -793,12 +793,7 @@ /* If the relocation is PC relative, we want to set RELOCATION to the distance between the symbol (currently in RELOCATION) and the - location we are relocating. Some targets (e.g., i386-aout) - arrange for the contents of the section to be the negative of the - offset of the location within the section; for such targets - pcrel_offset is FALSE. Other targets (e.g., m88kbcs or ELF) - simply leave the contents of the section as zero; for such - targets pcrel_offset is TRUE. If pcrel_offset is FALSE we do not + location we are relocating. If pcrel_offset is FALSE we do not need to subtract out the offset of the location within the section (which is just ADDRESS). */ if (howto->pc_relative) diff -Nru gdb-8.1/bfd/cpu-s12z.c gdb-8.2/bfd/cpu-s12z.c --- gdb-8.1/bfd/cpu-s12z.c 1970-01-01 00:00:00.000000000 +0000 +++ gdb-8.2/bfd/cpu-s12z.c 2018-09-05 07:27:13.000000000 +0000 @@ -0,0 +1,41 @@ +/* BFD support for the Freescale 9S12Z processor + Copyright (C) 2008-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, + MA 02110-1301, USA. */ + +#include "sysdep.h" +#include "bfd.h" +#include "libbfd.h" + +const bfd_arch_info_type bfd_s12z_arch = +{ + 16, /* 16 bits in a word. */ + 24, /* 24 bits in an address. */ + 8, /* 8 bits in a byte. */ + bfd_arch_s12z, + 0, + "s12z", + "s12z", + 4, /* Section alignment power. */ + TRUE, + bfd_default_compatible, + bfd_default_scan, + bfd_arch_default_fill, + 0, +}; + diff -Nru gdb-8.1/bfd/cpu-sh.c gdb-8.2/bfd/cpu-sh.c --- gdb-8.1/bfd/cpu-sh.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/cpu-sh.c 2018-09-05 07:27:13.000000000 +0000 @@ -43,8 +43,7 @@ #define SH2A_NOFPU_OR_SH4_NOMMU_NOFPU_NEXT arch_info_struct + 16 #define SH2A_NOFPU_OR_SH3_NOMMU_NEXT arch_info_struct + 17 #define SH2A_OR_SH4_NEXT arch_info_struct + 18 -#define SH2A_OR_SH3E_NEXT arch_info_struct + 19 -#define SH64_NEXT NULL +#define SH2A_OR_SH3E_NEXT NULL static const bfd_arch_info_type arch_info_struct[] = { @@ -333,21 +332,6 @@ bfd_arch_default_fill, SH2A_OR_SH3E_NEXT }, - { - 64, /* 64 bits in a word. */ - 64, /* 64 bits in an address. */ - 8, /* 8 bits in a byte. */ - bfd_arch_sh, - bfd_mach_sh5, - "sh", /* Architecture name. */ - "sh5", /* Machine name. */ - 1, - FALSE, /* Not the default. */ - bfd_default_compatible, - bfd_default_scan, - bfd_arch_default_fill, - SH64_NEXT - }, }; const bfd_arch_info_type bfd_sh_arch = diff -Nru gdb-8.1/bfd/cpu-w65.c gdb-8.2/bfd/cpu-w65.c --- gdb-8.1/bfd/cpu-w65.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/cpu-w65.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,52 +0,0 @@ -/* BFD library support routines for the WDC 65816 architecture. - Copyright (C) 1995-2018 Free Software Foundation, Inc. - Hacked by Steve Chamberlain of Cygnus Support. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" - -static bfd_boolean -scan_mach (const struct bfd_arch_info *info ATTRIBUTE_UNUSED, - const char *string) -{ - if (strcmp(string,"w65") == 0) - return TRUE; - if (strcmp(string,"w65816") == 0) - return TRUE; - return FALSE; -} - -const bfd_arch_info_type bfd_w65_arch = -{ - 16, /* 16 bits in a word */ - 24, /* 24 bits in an address */ - 8, /* 8 bits in a byte */ - bfd_arch_w65, - 0, /* only 1 machine */ - "w65", /* arch_name */ - "w65", /* printable name */ - 1, - TRUE, /* the default machine */ - bfd_default_compatible, - scan_mach, - bfd_arch_default_fill, - 0, -}; diff -Nru gdb-8.1/bfd/cpu-we32k.c gdb-8.2/bfd/cpu-we32k.c --- gdb-8.1/bfd/cpu-we32k.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/cpu-we32k.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -/* bfd back-end for we32k support - Copyright (C) 1992-2018 Free Software Foundation, Inc. - Contributed by Brendan Kehoe (brendan@cs.widener.edu). - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" - -const bfd_arch_info_type bfd_we32k_arch = - { - 32, /* 32 bits in a word */ - 32, /* 32 bits in an address */ - 8, /* 8 bits in a byte */ - bfd_arch_we32k, - 32000, /* only 1 machine */ - "we32k", - "we32k:32000", - 3, - TRUE, /* the one and only */ - bfd_default_compatible, - bfd_default_scan , - bfd_arch_default_fill, - 0, - }; diff -Nru gdb-8.1/bfd/demo64.c gdb-8.2/bfd/demo64.c --- gdb-8.1/bfd/demo64.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/demo64.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ -/* BFD backend for demonstration 64-bit a.out binaries. - Copyright (C) 1990-2018 Free Software Foundation, Inc. - Written by Cygnus Support. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define ARCH_SIZE 64 - -/* Do not "beautify" the CONCAT* macro args. Traditional C will not - remove whitespace added here, and thus will fail to concatenate - the tokens. */ -#define MY(OP) CONCAT2 (aout64_,OP) - -#define TARGETNAME "demo64" -#include "aoutf1.h" diff -Nru gdb-8.1/bfd/doc/aoutx.texi gdb-8.2/bfd/doc/aoutx.texi --- gdb-8.1/bfd/doc/aoutx.texi 2018-01-31 03:01:19.000000000 +0000 +++ gdb-8.2/bfd/doc/aoutx.texi 2018-09-05 07:46:55.000000000 +0000 @@ -10,14 +10,13 @@ The support is split into a basic support file @file{aoutx.h} and other files which derive functions from the base. One derivation file is @file{aoutf1.h} (for a.out flavour 1), and -adds to the basic a.out functions support for sun3, sun4, 386 -and 29k a.out files, to create a target jump vector for a -specific target. +adds to the basic a.out functions support for sun3, sun4, and +386 a.out files, to create a target jump vector for a specific +target. This information is further split out into more specific files for each machine, including @file{sunos.c} for sun3 and sun4, -@file{newsos3.c} for the Sony NEWS, and @file{demo64.c} for a -demonstration of a 64 bit a.out format. +and @file{demo64.c} for a demonstration of a 64 bit a.out format. The base file @file{aoutx.h} defines general mechanisms for reading and writing records to and from disk and various @@ -102,10 +101,9 @@ The file @file{aoutx.h} provides for both the @emph{standard} and @emph{extended} forms of a.out relocation records. -The standard records contain only an -address, a symbol index, and a type field. The extended records -(used on 29ks and sparcs) also have a full integer for an -addend. +The standard records contain only an address, a symbol index, +and a type field. The extended records also have a full +integer for an addend. @subsection Internal entry points diff -Nru gdb-8.1/bfd/doc/archures.texi gdb-8.2/bfd/doc/archures.texi --- gdb-8.1/bfd/doc/archures.texi 2018-01-31 03:01:19.000000000 +0000 +++ gdb-8.2/bfd/doc/archures.texi 2018-09-05 07:46:55.000000000 +0000 @@ -30,8 +30,7 @@ Another field indicates which processor within the family is in use. The machine gives a number which distinguishes different versions of the architecture, -containing, for example, 2 and 3 for Intel i960 KA and i960 KB, -and 68020 and 68030 for Motorola 68020 and 68030. +containing, for example, 68020 for Motorola 68020. @example enum bfd_architecture @{ @@ -70,23 +69,6 @@ #define bfd_mach_mcf_isa_c_nodiv_mac 30 #define bfd_mach_mcf_isa_c_nodiv_emac 31 bfd_arch_vax, /* DEC Vax. */ - bfd_arch_i960, /* Intel 960. */ - /* The order of the following is important. - lower number indicates a machine type that - only accepts a subset of the instructions - available to machines with higher numbers. - The exception is the "ca", which is - incompatible with all other machines except - "core". */ - -#define bfd_mach_i960_core 1 -#define bfd_mach_i960_ka_sa 2 -#define bfd_mach_i960_kb_sb 3 -#define bfd_mach_i960_mc 4 -#define bfd_mach_i960_xa 5 -#define bfd_mach_i960_ca 6 -#define bfd_mach_i960_jx 7 -#define bfd_mach_i960_hx 8 bfd_arch_or1k, /* OpenRISC 1000. */ #define bfd_mach_or1k 1 @@ -202,13 +184,8 @@ #define bfd_mach_iamcu (1 << 8) #define bfd_mach_i386_iamcu (bfd_mach_i386_i386 | bfd_mach_iamcu) #define bfd_mach_i386_iamcu_intel_syntax (bfd_mach_i386_iamcu | bfd_mach_i386_intel_syntax) - bfd_arch_we32k, /* AT&T WE32xxx. */ - bfd_arch_tahoe, /* CCI/Harris Tahoe. */ - bfd_arch_i860, /* Intel 860. */ - bfd_arch_i370, /* IBM 360/370 Mainframes. */ bfd_arch_romp, /* IBM ROMP PC/RT. */ bfd_arch_convex, /* Convex. */ - bfd_arch_m88k, /* Motorola 88xxx. */ bfd_arch_m98k, /* Motorola 98xxx. */ bfd_arch_pyramid, /* Pyramid Technology. */ bfd_arch_h8300, /* Renesas H8/300 (formerly Hitachi H8/300). */ @@ -271,10 +248,11 @@ #define bfd_mach_m6812s 2 bfd_arch_m9s12x, /* Freescale S12X. */ bfd_arch_m9s12xg, /* Freescale XGATE. */ + bfd_arch_s12z, /* Freescale S12Z. */ +#define bfd_mach_s12z_default 0 bfd_arch_z8k, /* Zilog Z8000. */ #define bfd_mach_z8001 1 #define bfd_mach_z8002 2 - bfd_arch_h8500, /* Renesas H8/500 (formerly Hitachi H8/500). */ bfd_arch_sh, /* Renesas / SuperH SH (formerly Hitachi SH). */ #define bfd_mach_sh 1 #define bfd_mach_sh2 0x20 @@ -296,7 +274,6 @@ #define bfd_mach_sh4a 0x4a #define bfd_mach_sh4a_nofpu 0x4b #define bfd_mach_sh4al_dsp 0x4d -#define bfd_mach_sh5 0x50 bfd_arch_alpha, /* Dec Alpha. */ #define bfd_mach_alpha_ev4 0x10 #define bfd_mach_alpha_ev5 0x20 @@ -316,6 +293,19 @@ #define bfd_mach_arm_ep9312 11 #define bfd_mach_arm_iWMMXt 12 #define bfd_mach_arm_iWMMXt2 13 +#define bfd_mach_arm_5TEJ 14 +#define bfd_mach_arm_6 15 +#define bfd_mach_arm_6KZ 16 +#define bfd_mach_arm_6T2 17 +#define bfd_mach_arm_6K 18 +#define bfd_mach_arm_7 19 +#define bfd_mach_arm_6M 20 +#define bfd_mach_arm_6SM 21 +#define bfd_mach_arm_7EM 22 +#define bfd_mach_arm_8 23 +#define bfd_mach_arm_8R 24 +#define bfd_mach_arm_8M_BASE 25 +#define bfd_mach_arm_8M_MAIN 26 bfd_arch_nds32, /* Andes NDS32. */ #define bfd_mach_n1 1 #define bfd_mach_n1h 2 @@ -323,7 +313,6 @@ #define bfd_mach_n1h_v3 4 #define bfd_mach_n1h_v3m 5 bfd_arch_ns32k, /* National Semiconductors ns32000. */ - bfd_arch_w65, /* WDC 65816. */ bfd_arch_tic30, /* Texas Instruments TMS320C30. */ bfd_arch_tic4x, /* Texas Instruments TMS320C3X/4X. */ #define bfd_mach_tic3x 30 @@ -504,6 +493,9 @@ #define bfd_mach_wasm32 1 bfd_arch_pru, /* PRU. */ #define bfd_mach_pru 0 + bfd_arch_nfp, /* Netronome Flow Processor */ +#define bfd_mach_nfp3200 0x3200 +#define bfd_mach_nfp6000 0x6000 bfd_arch_last @}; @end example diff -Nru gdb-8.1/bfd/doc/bfd.info gdb-8.2/bfd/doc/bfd.info --- gdb-8.1/bfd/doc/bfd.info 2018-01-31 03:01:21.000000000 +0000 +++ gdb-8.2/bfd/doc/bfd.info 2018-09-05 07:46:57.000000000 +0000 @@ -1,4 +1,4 @@ -This is bfd.info, produced by makeinfo version 6.3 from bfd.texinfo. +This is bfd.info, produced by makeinfo version 6.5 from bfd.texi. This file documents the BFD library. @@ -254,13 +254,13 @@ symbol information is not worth retaining; in 'a.out', type information is stored in the symbol table as long symbol names. This information would be useless to most COFF debuggers; the - linker has command line switches to allow users to throw it away. + linker has command-line switches to allow users to throw it away. There is one word of type information within the symbol, so if the format supports symbol type information within symbols (for - example, COFF, IEEE, Oasys) and the type is simple enough to fit - within one word (nearly everything but aggregates), the information - will be preserved. + example, COFF, Oasys) and the type is simple enough to fit within + one word (nearly everything but aggregates), the information will + be preserved. _relocation level_ Each canonical BFD relocation record contains a pointer to the @@ -286,8 +286,7 @@ allows finding out the address of the function whose line number is being described. The rest of the list is made up of pairs: offsets into the section and line numbers. Any format which can simply - derive this information can pass it successfully between formats - (COFF, IEEE and Oasys). + derive this information can pass it successfully between formats.  File: bfd.info, Node: BFD front end, Next: BFD back ends, Prev: Overview, Up: Top @@ -368,8 +367,9 @@ least-recently-used list of BFDs. */ struct bfd *lru_prev, *lru_next; - /* When a file is closed by the caching routines, BFD retains - state information on the file here... */ + /* Track current file position (or current buffer offset for + in-memory BFDs). When a file is closed by the caching routines, + BFD retains state information on the file here. */ ufile_ptr where; /* File modified time, if mtime_set is TRUE. */ @@ -598,21 +598,15 @@ { struct aout_data_struct *aout_data; struct artdata *aout_ar_data; - struct _oasys_data *oasys_obj_data; - struct _oasys_ar_data *oasys_ar_data; struct coff_tdata *coff_obj_data; struct pe_tdata *pe_obj_data; struct xcoff_tdata *xcoff_obj_data; struct ecoff_tdata *ecoff_obj_data; - struct ieee_data_struct *ieee_data; - struct ieee_ar_data_struct *ieee_ar_data; struct srec_data_struct *srec_data; struct verilog_data_struct *verilog_data; struct ihex_data_struct *ihex_data; struct tekhex_data_struct *tekhex_data; struct elf_obj_tdata *elf_obj_data; - struct nlm_obj_tdata *nlm_obj_data; - struct bout_data_struct *bout_data; struct mmo_data_struct *mmo_data; struct sun_core_struct *sun_core_data; struct sco5_core_struct *sco5_core_data; @@ -770,7 +764,22 @@ typedef void (*bfd_error_handler_type) (const char *, va_list); -2.2.2.1 'bfd_set_error_handler' +2.2.2.1 '_bfd_error_handler' +............................ + +*Synopsis* + void _bfd_error_handler (const char *fmt, ...) ATTRIBUTE_PRINTF_1; + *Description* +This is the default routine to handle BFD error messages. Like fprintf +(stderr, ...), but also handles some extra format specifiers. + + %pA section name from section. For group components, prints group +name too. %pB file name from bfd. For archive components, prints +archive too. + + Beware: Only supports a maximum of 9 format arguments. + +2.2.2.2 'bfd_set_error_handler' ............................... *Synopsis* @@ -778,7 +787,7 @@ *Description* Set the BFD error handler function. Returns the previous function. -2.2.2.2 'bfd_set_error_program_name' +2.2.2.3 'bfd_set_error_program_name' .................................... *Synopsis* @@ -1137,7 +1146,7 @@ ...................................... *Synopsis* - bfd_vma bfd_emul_get_commonpagesize (const char *); + bfd_vma bfd_emul_get_commonpagesize (const char *, bfd_boolean); *Description* Returns the common page size, in bytes, as determined by emulation. @@ -1413,9 +1422,7 @@ is created. Some targets may leave the data in place until a 'bfd_get_section_contents' call is made. Other back ends may read in all the data at once. For example, an S-record file has to be read once -to determine the size of the data. An IEEE-695 file doesn't contain raw -data in sections, but data and relocation expressions intermixed, so the -data area has to be parsed to get out the data and relocations. +to determine the size of the data.  File: bfd.info, Node: Section Output, Next: typedef asection, Prev: Section Input, Up: Sections @@ -1557,13 +1564,10 @@ /* The section contains thread local data. */ #define SEC_THREAD_LOCAL 0x400 - /* The section has GOT references. This flag is only for the - linker, and is currently only used by the elf32-hppa back end. - It will be set if global offset table references were detected - in this section, which indicate to the linker that the section - contains PIC code, and must be handled specially when doing a - static link. */ - #define SEC_HAS_GOT_REF 0x800 + /* The section's size is fixed. Generic linker code will not + recalculate it and it is up to whoever has set this flag to + get the size right. */ + #define SEC_FIXED_SIZE 0x800 /* The section contains common symbols (symbols may be defined multiple times, the value of a symbol is the amount of @@ -2244,15 +2248,7 @@ a section named NAME. If there is an error, return 'NULL' and set 'bfd_error'. -2.6.5.12 'bfd_get_next_section_id' -.................................. - -*Synopsis* - int bfd_get_next_section_id (void); - *Description* -Returns the id that the next section created will have. - -2.6.5.13 'bfd_set_section_flags' +2.6.5.12 'bfd_set_section_flags' ................................ *Synopsis* @@ -2267,7 +2263,7 @@ of the attributes requested. For example, a .bss section in 'a.out' may not have the 'SEC_HAS_CONTENTS' field set. -2.6.5.14 'bfd_rename_section' +2.6.5.13 'bfd_rename_section' ............................. *Synopsis* @@ -2276,7 +2272,7 @@ *Description* Rename section SEC in ABFD to NEWNAME. -2.6.5.15 'bfd_map_over_sections' +2.6.5.14 'bfd_map_over_sections' ................................ *Synopsis* @@ -2297,7 +2293,7 @@ for (p = abfd->sections; p != NULL; p = p->next) func (abfd, p, ...) -2.6.5.16 'bfd_sections_find_if' +2.6.5.15 'bfd_sections_find_if' ............................... *Synopsis* @@ -2314,7 +2310,7 @@ It returns the first section for which OPERATION returns true. -2.6.5.17 'bfd_set_section_size' +2.6.5.16 'bfd_set_section_size' ............................... *Synopsis* @@ -2329,7 +2325,7 @@ * 'bfd_error_invalid_operation' - Writing has started to the BFD, so setting the size is invalid. -2.6.5.18 'bfd_set_section_contents' +2.6.5.17 'bfd_set_section_contents' ................................... *Synopsis* @@ -2350,7 +2346,7 @@ This routine is front end to the back end function '_bfd_set_section_contents'. -2.6.5.19 'bfd_get_section_contents' +2.6.5.18 'bfd_get_section_contents' ................................... *Synopsis* @@ -2367,7 +2363,7 @@ flag set, then the LOCATION is filled with zeroes. If no errors occur, 'TRUE' is returned, else 'FALSE'. -2.6.5.20 'bfd_malloc_and_get_section' +2.6.5.19 'bfd_malloc_and_get_section' ..................................... *Synopsis* @@ -2377,7 +2373,7 @@ Read all data from SECTION in BFD ABFD into a buffer, *BUF, malloc'd by this function. -2.6.5.21 'bfd_copy_private_section_data' +2.6.5.20 'bfd_copy_private_section_data' ........................................ *Synopsis* @@ -2394,7 +2390,7 @@ BFD_SEND (obfd, _bfd_copy_private_section_data, \ (ibfd, isection, obfd, osection)) -2.6.5.22 'bfd_generic_is_group_section' +2.6.5.21 'bfd_generic_is_group_section' ....................................... *Synopsis* @@ -2402,7 +2398,7 @@ *Description* Returns TRUE if SEC is a member of a group. -2.6.5.23 'bfd_generic_discard_group' +2.6.5.22 'bfd_generic_discard_group' .................................... *Synopsis* @@ -3111,10 +3107,9 @@ /* The symbol to relocate against was undefined. */ bfd_reloc_undefined, - /* The relocation was performed, but may not be ok - presently - generated only when linking i960 coff files with i960 b.out - symbols. If this type is returned, the error_message argument - to bfd_perform_relocation will be set. */ + /* The relocation was performed, but may not be ok. If this type is + returned, the error_message argument to bfd_perform_relocation + will be set. */ bfd_reloc_dangerous } bfd_reloc_status_type; @@ -3320,8 +3315,7 @@ /* If this field is non null, then the supplied function is called rather than the normal function. This allows really - strange relocation methods to be accommodated (e.g., i960 callj - instructions). */ + strange relocation methods to be accommodated. */ bfd_reloc_status_type (*special_function) (bfd *, arelent *, struct bfd_symbol *, void *, asection *, bfd *, char **); @@ -3365,7 +3359,7 @@ slot of the instruction, so that a PC relative relocation can be made just by adding in an ordinary offset (e.g., sun3 a.out). Some formats leave the displacement part of an instruction - empty (e.g., m88k bcs); this flag signals the fact. */ + empty (e.g., ELF); this flag signals the fact. */ bfd_boolean pcrel_offset; }; @@ -3548,8 +3542,6 @@ address of the relocation itself; sometimes they are relative to the start of the section containing the relocation. It depends on the specific target. - - The 24-bit relocation is used in some Intel 960 configurations. -- : BFD_RELOC_32_SECREL Section relative relocations. Some targets need this for DWARF2. -- : BFD_RELOC_32_GOT_PCREL @@ -3625,8 +3617,6 @@ displacements off that register. These relocation types are handled specially, because the value the register will have is decided relatively late. - -- : BFD_RELOC_I960_CALLJ - Reloc types used for i960/b.out. -- : BFD_RELOC_NONE -- : BFD_RELOC_SPARC_WDISP22 -- : BFD_RELOC_SPARC22 @@ -4297,6 +4287,14 @@ -- : BFD_RELOC_ARM_THUMB_MOVW_PCREL -- : BFD_RELOC_ARM_THUMB_MOVT_PCREL Low and High halfword relocations for MOVW and MOVT instructions. + -- : BFD_RELOC_ARM_GOTFUNCDESC + -- : BFD_RELOC_ARM_GOTOFFFUNCDESC + -- : BFD_RELOC_ARM_FUNCDESC + -- : BFD_RELOC_ARM_FUNCDESC_VALUE + -- : BFD_RELOC_ARM_TLS_GD32_FDPIC + -- : BFD_RELOC_ARM_TLS_LDM32_FDPIC + -- : BFD_RELOC_ARM_TLS_IE32_FDPIC + ARM FDPIC specific relocations. -- : BFD_RELOC_ARM_JUMP_SLOT -- : BFD_RELOC_ARM_GLOB_DAT -- : BFD_RELOC_ARM_GOT32 @@ -5700,6 +5698,10 @@ -- : BFD_RELOC_M68HC12_HI8XG Motorola 68HC12/XGATE reloc. This is the 8 bit high part of an absolute address and immediately follows a matching LO8XG part. + -- : BFD_RELOC_S12Z_15_PCREL + Freescale S12Z reloc. This is a 15 bit relative address. If the + most significant bits are all zero then it may be truncated to 8 + bits. -- : BFD_RELOC_16C_NUM08 -- : BFD_RELOC_16C_NUM08_C -- : BFD_RELOC_16C_NUM16 @@ -5841,39 +5843,6 @@ -- : BFD_RELOC_CRIS_DTPMOD -- : BFD_RELOC_CRIS_32_IE Relocs used in TLS code for CRIS. - -- : BFD_RELOC_860_COPY - -- : BFD_RELOC_860_GLOB_DAT - -- : BFD_RELOC_860_JUMP_SLOT - -- : BFD_RELOC_860_RELATIVE - -- : BFD_RELOC_860_PC26 - -- : BFD_RELOC_860_PLT26 - -- : BFD_RELOC_860_PC16 - -- : BFD_RELOC_860_LOW0 - -- : BFD_RELOC_860_SPLIT0 - -- : BFD_RELOC_860_LOW1 - -- : BFD_RELOC_860_SPLIT1 - -- : BFD_RELOC_860_LOW2 - -- : BFD_RELOC_860_SPLIT2 - -- : BFD_RELOC_860_LOW3 - -- : BFD_RELOC_860_LOGOT0 - -- : BFD_RELOC_860_SPGOT0 - -- : BFD_RELOC_860_LOGOT1 - -- : BFD_RELOC_860_SPGOT1 - -- : BFD_RELOC_860_LOGOTOFF0 - -- : BFD_RELOC_860_SPGOTOFF0 - -- : BFD_RELOC_860_LOGOTOFF1 - -- : BFD_RELOC_860_SPGOTOFF1 - -- : BFD_RELOC_860_LOGOTOFF2 - -- : BFD_RELOC_860_LOGOTOFF3 - -- : BFD_RELOC_860_LOPC - -- : BFD_RELOC_860_HIGHADJ - -- : BFD_RELOC_860_HAGOT - -- : BFD_RELOC_860_HAGOTOFF - -- : BFD_RELOC_860_HAPC - -- : BFD_RELOC_860_HIGH - -- : BFD_RELOC_860_HIGOT - -- : BFD_RELOC_860_HIGOTOFF - Intel i860 Relocations. -- : BFD_RELOC_OR1K_REL_26 -- : BFD_RELOC_OR1K_GOTPC_HI16 -- : BFD_RELOC_OR1K_GOTPC_LO16 @@ -6164,6 +6133,8 @@ Same as BFD_RELOC_32_PCREL but with an implicit -2 addend. -- : BFD_RELOC_MACH_O_X86_64_PCREL32_4 Same as BFD_RELOC_32_PCREL but with an implicit -4 addend. + -- : BFD_RELOC_MACH_O_X86_64_TLV + Used when referencing a TLV entry. -- : BFD_RELOC_MACH_O_ARM64_ADDEND Addend for PAGE or PAGEOFF. -- : BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21 @@ -6235,6 +6206,14 @@ -- : BFD_RELOC_MICROBLAZE_64_TLSTPREL This is a 64 bit reloc that stores 32-bit thread pointer relative offset to two words (uses imm instruction). + -- : BFD_RELOC_MICROBLAZE_64_TEXTPCREL + This is a 64 bit reloc that stores the 32 bit pc relative value in + two words (with an imm instruction). The relocation is PC-relative + offset from start of TEXT. + -- : BFD_RELOC_MICROBLAZE_64_TEXTREL + This is a 64 bit reloc that stores the 32 bit offset value in two + words (with an imm instruction). The relocation is relative offset + from start of TEXT. -- : BFD_RELOC_AARCH64_RELOC_START AArch64 pseudo relocation code to mark the start of the AArch64 relocation enumerators. N.B. the order of the enumerators is @@ -6288,6 +6267,29 @@ AArch64 MOV[NZ] instruction with most significant bits 32 to 47 of a signed value. Changes instruction to MOVZ or MOVN depending on the value's sign. + -- : BFD_RELOC_AARCH64_MOVW_PREL_G0 + AArch64 MOV[NZ] instruction with most significant bits 0 to 15 of a + signed value. Changes instruction to MOVZ or MOVN depending on the + value's sign. + -- : BFD_RELOC_AARCH64_MOVW_PREL_G0_NC + AArch64 MOV[NZ] instruction with most significant bits 0 to 15 of a + signed value. Changes instruction to MOVZ or MOVN depending on the + value's sign. + -- : BFD_RELOC_AARCH64_MOVW_PREL_G1 + AArch64 MOVK instruction with most significant bits 16 to 31 of a + signed value. + -- : BFD_RELOC_AARCH64_MOVW_PREL_G1_NC + AArch64 MOVK instruction with most significant bits 16 to 31 of a + signed value. + -- : BFD_RELOC_AARCH64_MOVW_PREL_G2 + AArch64 MOVK instruction with most significant bits 32 to 47 of a + signed value. + -- : BFD_RELOC_AARCH64_MOVW_PREL_G2_NC + AArch64 MOVK instruction with most significant bits 32 to 47 of a + signed value. + -- : BFD_RELOC_AARCH64_MOVW_PREL_G3 + AArch64 MOVK instruction with most significant bits 47 to 63 of a + signed value. -- : BFD_RELOC_AARCH64_LD_LO19_PCREL AArch64 Load Literal instruction, holding a 19 bit pc-relative word offset. The lowest two bits must be zero and are not stored in the @@ -6469,6 +6471,30 @@ AArch64 TLS LOCAL EXEC relocation. -- : BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC AArch64 TLS LOCAL EXEC relocation. + -- : BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12 + bit[11:1] of byte offset to module TLS base address, encoded in + ldst instructions. + -- : BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12_NC + Similar as BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12, but no + overflow check. + -- : BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12 + bit[11:2] of byte offset to module TLS base address, encoded in + ldst instructions. + -- : BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12_NC + Similar as BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12, but no + overflow check. + -- : BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12 + bit[11:3] of byte offset to module TLS base address, encoded in + ldst instructions. + -- : BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12_NC + Similar as BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12, but no + overflow check. + -- : BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12 + bit[11:0] of byte offset to module TLS base address, encoded in + ldst instructions. + -- : BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12_NC + Similar as BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12, but no + overflow check. -- : BFD_RELOC_AARCH64_TLSDESC_LD_PREL19 AArch64 TLS DESC relocation. -- : BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21 @@ -6529,6 +6555,13 @@ -- : BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC Similar as BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12, but no overflow check. + -- : BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12 + AArch64 pseudo relocation code for TLS local exec mode. It's to be + used internally by the AArch64 assembler and not (currently) + written to any object files. + -- : BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12_NC + Similar as BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12, but no overflow + check. -- : BFD_RELOC_AARCH64_LD_GOT_LO12_NC AArch64 pseudo relocation code to be used internally by the AArch64 assembler and not (currently) written to any object files. @@ -7053,9 +7086,6 @@ bfd_target_ecoff_flavour, bfd_target_xcoff_flavour, bfd_target_elf_flavour, - bfd_target_ieee_flavour, - bfd_target_nlm_flavour, - bfd_target_oasys_flavour, bfd_target_tekhex_flavour, bfd_target_srec_flavour, bfd_target_verilog_flavour, @@ -7370,6 +7400,7 @@ NAME##_bfd_discard_group, \ NAME##_section_already_linked, \ NAME##_bfd_define_common_symbol, \ + NAME##_bfd_link_hide_symbol, \ NAME##_bfd_define_start_stop int (*_bfd_sizeof_headers) (bfd *, struct bfd_link_info *); @@ -7436,6 +7467,10 @@ bfd_boolean (*_bfd_define_common_symbol) (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *); + /* Hide a symbol. */ + void (*_bfd_link_hide_symbol) (bfd *, struct bfd_link_info *, + struct bfd_link_hash_entry *); + /* Define a __start, __stop, .startof. or .sizeof. symbol. */ struct bfd_link_hash_entry * (*_bfd_define_start_stop) (struct bfd_link_info *, const char *, @@ -7594,8 +7629,7 @@ sense--i.e., what processor family does it belong to? Another field indicates which processor within the family is in use. The machine gives a number which distinguishes different versions of the -architecture, containing, for example, 2 and 3 for Intel i960 KA and -i960 KB, and 68020 and 68030 for Motorola 68020 and 68030. +architecture, containing, for example, 68020 for Motorola 68020. enum bfd_architecture { bfd_arch_unknown, /* File arch not known. */ @@ -7633,23 +7667,6 @@ #define bfd_mach_mcf_isa_c_nodiv_mac 30 #define bfd_mach_mcf_isa_c_nodiv_emac 31 bfd_arch_vax, /* DEC Vax. */ - bfd_arch_i960, /* Intel 960. */ - /* The order of the following is important. - lower number indicates a machine type that - only accepts a subset of the instructions - available to machines with higher numbers. - The exception is the "ca", which is - incompatible with all other machines except - "core". */ - - #define bfd_mach_i960_core 1 - #define bfd_mach_i960_ka_sa 2 - #define bfd_mach_i960_kb_sb 3 - #define bfd_mach_i960_mc 4 - #define bfd_mach_i960_xa 5 - #define bfd_mach_i960_ca 6 - #define bfd_mach_i960_jx 7 - #define bfd_mach_i960_hx 8 bfd_arch_or1k, /* OpenRISC 1000. */ #define bfd_mach_or1k 1 @@ -7765,13 +7782,8 @@ #define bfd_mach_iamcu (1 << 8) #define bfd_mach_i386_iamcu (bfd_mach_i386_i386 | bfd_mach_iamcu) #define bfd_mach_i386_iamcu_intel_syntax (bfd_mach_i386_iamcu | bfd_mach_i386_intel_syntax) - bfd_arch_we32k, /* AT&T WE32xxx. */ - bfd_arch_tahoe, /* CCI/Harris Tahoe. */ - bfd_arch_i860, /* Intel 860. */ - bfd_arch_i370, /* IBM 360/370 Mainframes. */ bfd_arch_romp, /* IBM ROMP PC/RT. */ bfd_arch_convex, /* Convex. */ - bfd_arch_m88k, /* Motorola 88xxx. */ bfd_arch_m98k, /* Motorola 98xxx. */ bfd_arch_pyramid, /* Pyramid Technology. */ bfd_arch_h8300, /* Renesas H8/300 (formerly Hitachi H8/300). */ @@ -7834,10 +7846,11 @@ #define bfd_mach_m6812s 2 bfd_arch_m9s12x, /* Freescale S12X. */ bfd_arch_m9s12xg, /* Freescale XGATE. */ + bfd_arch_s12z, /* Freescale S12Z. */ + #define bfd_mach_s12z_default 0 bfd_arch_z8k, /* Zilog Z8000. */ #define bfd_mach_z8001 1 #define bfd_mach_z8002 2 - bfd_arch_h8500, /* Renesas H8/500 (formerly Hitachi H8/500). */ bfd_arch_sh, /* Renesas / SuperH SH (formerly Hitachi SH). */ #define bfd_mach_sh 1 #define bfd_mach_sh2 0x20 @@ -7859,7 +7872,6 @@ #define bfd_mach_sh4a 0x4a #define bfd_mach_sh4a_nofpu 0x4b #define bfd_mach_sh4al_dsp 0x4d - #define bfd_mach_sh5 0x50 bfd_arch_alpha, /* Dec Alpha. */ #define bfd_mach_alpha_ev4 0x10 #define bfd_mach_alpha_ev5 0x20 @@ -7879,6 +7891,19 @@ #define bfd_mach_arm_ep9312 11 #define bfd_mach_arm_iWMMXt 12 #define bfd_mach_arm_iWMMXt2 13 + #define bfd_mach_arm_5TEJ 14 + #define bfd_mach_arm_6 15 + #define bfd_mach_arm_6KZ 16 + #define bfd_mach_arm_6T2 17 + #define bfd_mach_arm_6K 18 + #define bfd_mach_arm_7 19 + #define bfd_mach_arm_6M 20 + #define bfd_mach_arm_6SM 21 + #define bfd_mach_arm_7EM 22 + #define bfd_mach_arm_8 23 + #define bfd_mach_arm_8R 24 + #define bfd_mach_arm_8M_BASE 25 + #define bfd_mach_arm_8M_MAIN 26 bfd_arch_nds32, /* Andes NDS32. */ #define bfd_mach_n1 1 #define bfd_mach_n1h 2 @@ -7886,7 +7911,6 @@ #define bfd_mach_n1h_v3 4 #define bfd_mach_n1h_v3m 5 bfd_arch_ns32k, /* National Semiconductors ns32000. */ - bfd_arch_w65, /* WDC 65816. */ bfd_arch_tic30, /* Texas Instruments TMS320C30. */ bfd_arch_tic4x, /* Texas Instruments TMS320C3X/4X. */ #define bfd_mach_tic3x 30 @@ -8067,6 +8091,9 @@ #define bfd_mach_wasm32 1 bfd_arch_pru, /* PRU. */ #define bfd_mach_pru 0 + bfd_arch_nfp, /* Netronome Flow Processor */ + #define bfd_mach_nfp3200 0x3200 + #define bfd_mach_nfp6000 0x6000 bfd_arch_last }; @@ -9444,7 +9471,21 @@ BFD_SEND (output_bfd, _bfd_define_common_symbol, (output_bfd, info, h)) -2.17.3.7 'bfd_generic_define_start_stop' +2.17.3.7 '_bfd_generic_link_hide_symbol' +........................................ + +*Synopsis* + void _bfd_generic_link_hide_symbol + (bfd *output_bfd, struct bfd_link_info *info, + struct bfd_link_hash_entry *h); + *Description* +Hide symbol H. This is an internal function. It should not be called +from outside the BFD library. + #define bfd_link_hide_symbol(output_bfd, info, h) \ + BFD_SEND (output_bfd, _bfd_link_hide_symbol, (output_bfd, info, h)) + + +2.17.3.8 'bfd_generic_define_start_stop' ........................................ *Synopsis* @@ -9458,7 +9499,7 @@ BFD_SEND (output_bfd, _bfd_define_start_stop, (info, symbol, sec)) -2.17.3.8 'bfd_find_version_for_sym' +2.17.3.9 'bfd_find_version_for_sym' ................................... *Synopsis* @@ -9470,8 +9511,8 @@ / don't-export status for a given symbol. Return non-NULL on success and NULL on failure; also sets the output 'hide' boolean parameter. -2.17.3.9 'bfd_hide_sym_by_version' -.................................. +2.17.3.10 'bfd_hide_sym_by_version' +................................... *Synopsis* bfd_boolean bfd_hide_sym_by_version @@ -9480,7 +9521,7 @@ Search an elf version script tree for symbol versioning info for a given symbol. Return TRUE if the symbol is hidden. -2.17.3.10 'bfd_link_check_relocs' +2.17.3.11 'bfd_link_check_relocs' ................................. *Synopsis* @@ -9491,7 +9532,7 @@ Return TRUE if everything is OK, FALSE otherwise. This is the external entry point to this code. -2.17.3.11 '_bfd_generic_link_check_relocs' +2.17.3.12 '_bfd_generic_link_check_relocs' .......................................... *Synopsis* @@ -9502,7 +9543,7 @@ TRUE. This is an internal function. It should not be called from outside the BFD library. -2.17.3.12 'bfd_merge_private_bfd_data' +2.17.3.13 'bfd_merge_private_bfd_data' ...................................... *Synopsis* @@ -9519,7 +9560,7 @@ BFD_SEND ((info)->output_bfd, _bfd_merge_private_bfd_data, \ (ibfd, info)) -2.17.3.13 '_bfd_generic_verify_endian_match' +2.17.3.14 '_bfd_generic_verify_endian_match' ............................................ *Synopsis* @@ -9815,12 +9856,12 @@ The support is split into a basic support file 'aoutx.h' and other files which derive functions from the base. One derivation file is 'aoutf1.h' (for a.out flavour 1), and adds to the basic a.out functions -support for sun3, sun4, 386 and 29k a.out files, to create a target jump +support for sun3, sun4, and 386 a.out files, to create a target jump vector for a specific target. This information is further split out into more specific files for -each machine, including 'sunos.c' for sun3 and sun4, 'newsos3.c' for the -Sony NEWS, and 'demo64.c' for a demonstration of a 64 bit a.out format. +each machine, including 'sunos.c' for sun3 and sun4, and 'demo64.c' for +a demonstration of a 64 bit a.out format. The base file 'aoutx.h' defines general mechanisms for reading and writing records to and from disk and various other methods which BFD @@ -9890,8 +9931,8 @@ of a.out relocation records. The standard records contain only an address, a symbol index, and a -type field. The extended records (used on 29ks and sparcs) also have a -full integer for an addend. +type field. The extended records also have a full integer for an +addend. 3.2.2 Internal entry points --------------------------- @@ -9998,16 +10039,12 @@ structures on disk, and the occasional extra field. Coff in all its varieties is implemented with a few common files and -a number of implementation specific files. For example, The 88k bcs -coff format is implemented in the file 'coff-m88k.c'. This file -'#include's 'coff/m88k.h' which defines the external structure of the -coff format for the 88k, and 'coff/internal.h' which defines the -internal structure. 'coff-m88k.c' also defines the relocations used by -the 88k format *Note Relocations::. - - The Intel i960 processor version of coff is implemented in -'coff-i960.c'. This file has the same structure as 'coff-m88k.c', -except that it includes 'coff/i960.h' rather than 'coff-m88k.h'. +a number of implementation specific files. For example, the i386 coff +format is implemented in the file 'coff-i386.c'. This file '#include's +'coff/i386.h' which defines the external structure of the coff format +for the i386, and 'coff/internal.h' which defines the internal +structure. 'coff-i386.c' also defines the relocations used by the i386 +coff format *Note Relocations::. 3.3.1 Porting to a new version of coff -------------------------------------- @@ -10056,13 +10093,6 @@ Some of the Coff targets then also have additional routines in the target source file itself. - For example, 'coff-i960.c' includes 'coff/internal.h' and -'coff/i960.h'. It then defines a few constants, such as 'I960', and -includes 'coffcode.h'. Since the i960 has complex relocation types, -'coff-i960.c' also includes some code to manipulate the i960 relocs. -This code is not in 'coffcode.h' because it would not be used by any -other target. - 3.3.2.2 Coff long section names ............................... @@ -10653,10 +10683,8 @@ canonicalization hasn't been done. * The reloc index is turned into a pointer to a howto structure, in a - back end specific way. For instance, the 386 and 960 use the - 'r_type' to directly produce an index into a howto table vector; - the 88k subtracts a number from the 'r_type' field and creates an - addend field. + back end specific way. For instance, the 386 uses the 'r_type' to + directly produce an index into a howto table vector.  File: bfd.info, Node: elf, Next: mmo, Prev: coff, Up: BFD back ends @@ -11507,6 +11535,7 @@ [index] * Menu: +* _bfd_error_handler: Error reporting. (line 111) * _bfd_final_link_relocate: Relocating the section contents. (line 22) * _bfd_generic_link_add_archive_symbols: Adding symbols from an archive. @@ -11514,12 +11543,14 @@ * _bfd_generic_link_add_one_symbol: Adding symbols from an object file. (line 19) * _bfd_generic_link_check_relocs: Writing the symbol table. - (line 130) + (line 144) +* _bfd_generic_link_hide_symbol: Writing the symbol table. + (line 83) * _bfd_generic_make_empty_symbol: symbol handling functions. (line 96) -* _bfd_generic_set_reloc: howto manager. (line 3348) +* _bfd_generic_set_reloc: howto manager. (line 3387) * _bfd_generic_verify_endian_match: Writing the symbol table. - (line 158) + (line 172) * _bfd_link_add_symbols in target vector: Adding Symbols to the Hash Table. (line 6) * _bfd_link_final_link in target vector: Performing the Final Link. @@ -11528,7 +11559,7 @@ (line 6) * _bfd_relocate_contents: Relocating the section contents. (line 22) -* _bfd_unrecognized_reloc: howto manager. (line 3360) +* _bfd_unrecognized_reloc: howto manager. (line 3399) * aout_SIZE_machine_type: aout. (line 145) * aout_SIZE_mkobject: aout. (line 137) * aout_SIZE_new_section_hook: aout. (line 175) @@ -11536,7 +11567,7 @@ * aout_SIZE_some_aout_object_p: aout. (line 123) * aout_SIZE_swap_exec_header_in: aout. (line 99) * aout_SIZE_swap_exec_header_out: aout. (line 111) -* arelent_chain: typedef arelent. (line 341) +* arelent_chain: typedef arelent. (line 339) * BFD: Overview. (line 6) * BFD canonical format: Canonical format. (line 11) * bfd_alloc: Opening and Closing. @@ -11544,32 +11575,32 @@ * bfd_alloc2: Opening and Closing. (line 248) * bfd_alt_mach_code: Miscellaneous. (line 288) -* bfd_arch_bits_per_address: Architectures. (line 639) -* bfd_arch_bits_per_byte: Architectures. (line 631) -* bfd_arch_default_fill: Architectures. (line 720) -* bfd_arch_get_compatible: Architectures. (line 574) -* bfd_arch_list: Architectures. (line 565) -* bfd_arch_mach_octets_per_byte: Architectures. (line 708) -* BFD_ARELOC_BFIN_ADD: howto manager. (line 1096) -* BFD_ARELOC_BFIN_ADDR: howto manager. (line 1130) -* BFD_ARELOC_BFIN_AND: howto manager. (line 1110) -* BFD_ARELOC_BFIN_COMP: howto manager. (line 1124) -* BFD_ARELOC_BFIN_CONST: howto manager. (line 1094) -* BFD_ARELOC_BFIN_DIV: howto manager. (line 1102) -* BFD_ARELOC_BFIN_HWPAGE: howto manager. (line 1128) -* BFD_ARELOC_BFIN_LAND: howto manager. (line 1116) -* BFD_ARELOC_BFIN_LEN: howto manager. (line 1120) -* BFD_ARELOC_BFIN_LOR: howto manager. (line 1118) -* BFD_ARELOC_BFIN_LSHIFT: howto manager. (line 1106) -* BFD_ARELOC_BFIN_MOD: howto manager. (line 1104) -* BFD_ARELOC_BFIN_MULT: howto manager. (line 1100) -* BFD_ARELOC_BFIN_NEG: howto manager. (line 1122) -* BFD_ARELOC_BFIN_OR: howto manager. (line 1112) -* BFD_ARELOC_BFIN_PAGE: howto manager. (line 1126) -* BFD_ARELOC_BFIN_PUSH: howto manager. (line 1092) -* BFD_ARELOC_BFIN_RSHIFT: howto manager. (line 1108) -* BFD_ARELOC_BFIN_SUB: howto manager. (line 1098) -* BFD_ARELOC_BFIN_XOR: howto manager. (line 1114) +* bfd_arch_bits_per_address: Architectures. (line 631) +* bfd_arch_bits_per_byte: Architectures. (line 623) +* bfd_arch_default_fill: Architectures. (line 712) +* bfd_arch_get_compatible: Architectures. (line 566) +* bfd_arch_list: Architectures. (line 557) +* bfd_arch_mach_octets_per_byte: Architectures. (line 700) +* BFD_ARELOC_BFIN_ADD: howto manager. (line 1100) +* BFD_ARELOC_BFIN_ADDR: howto manager. (line 1134) +* BFD_ARELOC_BFIN_AND: howto manager. (line 1114) +* BFD_ARELOC_BFIN_COMP: howto manager. (line 1128) +* BFD_ARELOC_BFIN_CONST: howto manager. (line 1098) +* BFD_ARELOC_BFIN_DIV: howto manager. (line 1106) +* BFD_ARELOC_BFIN_HWPAGE: howto manager. (line 1132) +* BFD_ARELOC_BFIN_LAND: howto manager. (line 1120) +* BFD_ARELOC_BFIN_LEN: howto manager. (line 1124) +* BFD_ARELOC_BFIN_LOR: howto manager. (line 1122) +* BFD_ARELOC_BFIN_LSHIFT: howto manager. (line 1110) +* BFD_ARELOC_BFIN_MOD: howto manager. (line 1108) +* BFD_ARELOC_BFIN_MULT: howto manager. (line 1104) +* BFD_ARELOC_BFIN_NEG: howto manager. (line 1126) +* BFD_ARELOC_BFIN_OR: howto manager. (line 1116) +* BFD_ARELOC_BFIN_PAGE: howto manager. (line 1130) +* BFD_ARELOC_BFIN_PUSH: howto manager. (line 1096) +* BFD_ARELOC_BFIN_RSHIFT: howto manager. (line 1112) +* BFD_ARELOC_BFIN_SUB: howto manager. (line 1102) +* BFD_ARELOC_BFIN_XOR: howto manager. (line 1118) * bfd_cache_close: File Caching. (line 25) * bfd_cache_close_all: File Caching. (line 38) * bfd_cache_init: File Caching. (line 17) @@ -11581,17 +11612,17 @@ * bfd_check_compression_header: Miscellaneous. (line 360) * bfd_check_format: Formats. (line 20) * bfd_check_format_matches: Formats. (line 51) -* bfd_check_overflow: typedef arelent. (line 354) +* bfd_check_overflow: typedef arelent. (line 352) * bfd_close: Opening and Closing. (line 161) * bfd_close_all_done: Opening and Closing. (line 179) -* bfd_coff_backend_data: coff. (line 307) +* bfd_coff_backend_data: coff. (line 296) * bfd_convert_section_contents: Miscellaneous. (line 396) * bfd_convert_section_size: Miscellaneous. (line 386) * bfd_copy_private_bfd_data: Miscellaneous. (line 159) * bfd_copy_private_header_data: Miscellaneous. (line 142) -* bfd_copy_private_section_data: section prototypes. (line 287) +* bfd_copy_private_section_data: section prototypes. (line 279) * bfd_copy_private_symbol_data: symbol handling functions. (line 145) * bfd_core_file_failing_command: Core Files. (line 11) @@ -11603,11 +11634,11 @@ (line 431) * bfd_decode_symclass: symbol handling functions. (line 116) -* bfd_default_arch_struct: Architectures. (line 586) -* bfd_default_compatible: Architectures. (line 648) -* bfd_default_reloc_type_lookup: howto manager. (line 3272) -* bfd_default_scan: Architectures. (line 657) -* bfd_default_set_arch_mach: Architectures. (line 604) +* bfd_default_arch_struct: Architectures. (line 578) +* bfd_default_compatible: Architectures. (line 640) +* bfd_default_reloc_type_lookup: howto manager. (line 3311) +* bfd_default_scan: Architectures. (line 649) +* bfd_default_set_arch_mach: Architectures. (line 596) * bfd_demangle: Miscellaneous. (line 339) * bfd_emul_get_commonpagesize: Miscellaneous. (line 319) * bfd_emul_get_maxpagesize: Miscellaneous. (line 299) @@ -11618,10 +11649,10 @@ (line 56) * bfd_fill_in_gnu_debuglink_section: Opening and Closing. (line 445) -* bfd_find_target: bfd_target. (line 493) +* bfd_find_target: bfd_target. (line 495) * bfd_find_version_for_sym: Writing the symbol table. - (line 97) -* bfd_flavour_name: bfd_target. (line 556) + (line 111) +* bfd_flavour_name: bfd_target. (line 558) * bfd_follow_build_id_debuglink: Opening and Closing. (line 505) * bfd_follow_gnu_debugaltlink: Opening and Closing. @@ -11634,18 +11665,18 @@ * bfd_generic_define_common_symbol: Writing the symbol table. (line 69) * bfd_generic_define_start_stop: Writing the symbol table. - (line 83) -* bfd_generic_discard_group: section prototypes. (line 312) -* bfd_generic_gc_sections: howto manager. (line 3303) -* bfd_generic_get_relocated_section_contents: howto manager. (line 3333) -* bfd_generic_is_group_section: section prototypes. (line 304) -* bfd_generic_lookup_section_flags: howto manager. (line 3313) -* bfd_generic_merge_sections: howto manager. (line 3323) -* bfd_generic_relax_section: howto manager. (line 3290) + (line 97) +* bfd_generic_discard_group: section prototypes. (line 304) +* bfd_generic_gc_sections: howto manager. (line 3342) +* bfd_generic_get_relocated_section_contents: howto manager. (line 3372) +* bfd_generic_is_group_section: section prototypes. (line 296) +* bfd_generic_lookup_section_flags: howto manager. (line 3352) +* bfd_generic_merge_sections: howto manager. (line 3362) +* bfd_generic_relax_section: howto manager. (line 3329) * bfd_get_alt_debug_link_info: Opening and Closing. (line 329) -* bfd_get_arch: Architectures. (line 615) -* bfd_get_arch_info: Architectures. (line 667) +* bfd_get_arch: Architectures. (line 607) +* bfd_get_arch_info: Architectures. (line 659) * bfd_get_arch_size: Miscellaneous. (line 63) * bfd_get_compression_header_size: Miscellaneous. (line 375) * bfd_get_debug_link_info: Opening and Closing. @@ -11656,23 +11687,22 @@ * bfd_get_file_size: Miscellaneous. (line 485) * bfd_get_gp_size: Miscellaneous. (line 106) * bfd_get_linker_section: section prototypes. (line 37) -* bfd_get_mach: Architectures. (line 623) +* bfd_get_mach: Architectures. (line 615) * bfd_get_mtime: Miscellaneous. (line 448) * bfd_get_next_mapent: Archives. (line 57) * bfd_get_next_section_by_name: section prototypes. (line 25) -* bfd_get_next_section_id: section prototypes. (line 154) -* bfd_get_reloc_code_name: howto manager. (line 3281) -* bfd_get_reloc_size: typedef arelent. (line 332) +* bfd_get_reloc_code_name: howto manager. (line 3320) +* bfd_get_reloc_size: typedef arelent. (line 330) * bfd_get_reloc_upper_bound: Miscellaneous. (line 8) * bfd_get_section_by_name: section prototypes. (line 16) * bfd_get_section_by_name_if: section prototypes. (line 46) -* bfd_get_section_contents: section prototypes. (line 260) +* bfd_get_section_contents: section prototypes. (line 252) * bfd_get_sign_extend_vma: Miscellaneous. (line 78) * bfd_get_size: Miscellaneous. (line 457) * bfd_get_size <1>: Internal. (line 24) * bfd_get_symtab_upper_bound: symbol handling functions. (line 5) -* bfd_get_target_info: bfd_target. (line 509) +* bfd_get_target_info: bfd_target. (line 511) * bfd_get_unique_section_name: section prototypes. (line 65) * bfd_hash_allocate: Creating and Freeing a Hash Table. (line 17) @@ -11691,10 +11721,10 @@ * bfd_hash_traverse: Traversing a Hash Table. (line 6) * bfd_hide_sym_by_version: Writing the symbol table. - (line 109) + (line 123) * bfd_h_put_size: Internal. (line 97) * bfd_init: Initialization. (line 10) -* bfd_install_relocation: typedef arelent. (line 408) +* bfd_install_relocation: typedef arelent. (line 406) * bfd_is_local_label: symbol handling functions. (line 17) * bfd_is_local_label_name: symbol handling functions. @@ -11703,13 +11733,13 @@ (line 39) * bfd_is_undefined_symclass: symbol handling functions. (line 125) -* bfd_iterate_over_targets: bfd_target. (line 544) +* bfd_iterate_over_targets: bfd_target. (line 546) * bfd_link_check_relocs: Writing the symbol table. - (line 119) + (line 133) * bfd_link_split_section: Writing the symbol table. (line 43) * bfd_log2: Internal. (line 166) -* bfd_lookup_arch: Architectures. (line 675) +* bfd_lookup_arch: Architectures. (line 667) * bfd_make_debug_symbol: symbol handling functions. (line 106) * bfd_make_empty_symbol: symbol handling functions. @@ -11723,12 +11753,12 @@ * bfd_make_section_with_flags: section prototypes. (line 131) * bfd_make_writable: Opening and Closing. (line 211) -* bfd_malloc_and_get_section: section prototypes. (line 277) -* bfd_map_over_sections: section prototypes. (line 186) +* bfd_malloc_and_get_section: section prototypes. (line 269) +* bfd_map_over_sections: section prototypes. (line 178) * bfd_merge_private_bfd_data: Writing the symbol table. - (line 141) + (line 155) * bfd_mmap: Miscellaneous. (line 494) -* bfd_octets_per_byte: Architectures. (line 698) +* bfd_octets_per_byte: Architectures. (line 690) * bfd_openr: Opening and Closing. (line 37) * bfd_openr_iovec: Opening and Closing. @@ -11739,2301 +11769,2300 @@ * bfd_openw: Opening and Closing. (line 146) * bfd_open_file: File Caching. (line 51) -* bfd_perform_relocation: typedef arelent. (line 383) +* bfd_perform_relocation: typedef arelent. (line 381) * bfd_perror: Error reporting. (line 87) -* bfd_printable_arch_mach: Architectures. (line 686) -* bfd_printable_name: Architectures. (line 546) +* bfd_printable_arch_mach: Architectures. (line 678) +* bfd_printable_name: Architectures. (line 538) * bfd_print_symbol_vandf: symbol handling functions. (line 73) * bfd_put_size: Internal. (line 21) * BFD_RELOC_12_PCREL: howto manager. (line 37) * BFD_RELOC_14: howto manager. (line 30) * BFD_RELOC_16: howto manager. (line 29) -* BFD_RELOC_16C_ABS20: howto manager. (line 2221) -* BFD_RELOC_16C_ABS20_C: howto manager. (line 2222) -* BFD_RELOC_16C_ABS24: howto manager. (line 2223) -* BFD_RELOC_16C_ABS24_C: howto manager. (line 2224) -* BFD_RELOC_16C_DISP04: howto manager. (line 2201) -* BFD_RELOC_16C_DISP04_C: howto manager. (line 2202) -* BFD_RELOC_16C_DISP08: howto manager. (line 2203) -* BFD_RELOC_16C_DISP08_C: howto manager. (line 2204) -* BFD_RELOC_16C_DISP16: howto manager. (line 2205) -* BFD_RELOC_16C_DISP16_C: howto manager. (line 2206) -* BFD_RELOC_16C_DISP24: howto manager. (line 2207) -* BFD_RELOC_16C_DISP24a: howto manager. (line 2209) -* BFD_RELOC_16C_DISP24a_C: howto manager. (line 2210) -* BFD_RELOC_16C_DISP24_C: howto manager. (line 2208) -* BFD_RELOC_16C_IMM04: howto manager. (line 2225) -* BFD_RELOC_16C_IMM04_C: howto manager. (line 2226) -* BFD_RELOC_16C_IMM16: howto manager. (line 2227) -* BFD_RELOC_16C_IMM16_C: howto manager. (line 2228) -* BFD_RELOC_16C_IMM20: howto manager. (line 2229) -* BFD_RELOC_16C_IMM20_C: howto manager. (line 2230) -* BFD_RELOC_16C_IMM24: howto manager. (line 2231) -* BFD_RELOC_16C_IMM24_C: howto manager. (line 2232) -* BFD_RELOC_16C_IMM32: howto manager. (line 2233) -* BFD_RELOC_16C_IMM32_C: howto manager. (line 2234) -* BFD_RELOC_16C_NUM08: howto manager. (line 2195) -* BFD_RELOC_16C_NUM08_C: howto manager. (line 2196) -* BFD_RELOC_16C_NUM16: howto manager. (line 2197) -* BFD_RELOC_16C_NUM16_C: howto manager. (line 2198) -* BFD_RELOC_16C_NUM32: howto manager. (line 2199) -* BFD_RELOC_16C_NUM32_C: howto manager. (line 2200) -* BFD_RELOC_16C_REG04: howto manager. (line 2211) -* BFD_RELOC_16C_REG04a: howto manager. (line 2213) -* BFD_RELOC_16C_REG04a_C: howto manager. (line 2214) -* BFD_RELOC_16C_REG04_C: howto manager. (line 2212) -* BFD_RELOC_16C_REG14: howto manager. (line 2215) -* BFD_RELOC_16C_REG14_C: howto manager. (line 2216) -* BFD_RELOC_16C_REG16: howto manager. (line 2217) -* BFD_RELOC_16C_REG16_C: howto manager. (line 2218) -* BFD_RELOC_16C_REG20: howto manager. (line 2219) -* BFD_RELOC_16C_REG20_C: howto manager. (line 2220) -* BFD_RELOC_16_BASEREL: howto manager. (line 92) -* BFD_RELOC_16_GOTOFF: howto manager. (line 51) -* BFD_RELOC_16_GOT_PCREL: howto manager. (line 48) +* BFD_RELOC_16C_ABS20: howto manager. (line 2229) +* BFD_RELOC_16C_ABS20_C: howto manager. (line 2230) +* BFD_RELOC_16C_ABS24: howto manager. (line 2231) +* BFD_RELOC_16C_ABS24_C: howto manager. (line 2232) +* BFD_RELOC_16C_DISP04: howto manager. (line 2209) +* BFD_RELOC_16C_DISP04_C: howto manager. (line 2210) +* BFD_RELOC_16C_DISP08: howto manager. (line 2211) +* BFD_RELOC_16C_DISP08_C: howto manager. (line 2212) +* BFD_RELOC_16C_DISP16: howto manager. (line 2213) +* BFD_RELOC_16C_DISP16_C: howto manager. (line 2214) +* BFD_RELOC_16C_DISP24: howto manager. (line 2215) +* BFD_RELOC_16C_DISP24a: howto manager. (line 2217) +* BFD_RELOC_16C_DISP24a_C: howto manager. (line 2218) +* BFD_RELOC_16C_DISP24_C: howto manager. (line 2216) +* BFD_RELOC_16C_IMM04: howto manager. (line 2233) +* BFD_RELOC_16C_IMM04_C: howto manager. (line 2234) +* BFD_RELOC_16C_IMM16: howto manager. (line 2235) +* BFD_RELOC_16C_IMM16_C: howto manager. (line 2236) +* BFD_RELOC_16C_IMM20: howto manager. (line 2237) +* BFD_RELOC_16C_IMM20_C: howto manager. (line 2238) +* BFD_RELOC_16C_IMM24: howto manager. (line 2239) +* BFD_RELOC_16C_IMM24_C: howto manager. (line 2240) +* BFD_RELOC_16C_IMM32: howto manager. (line 2241) +* BFD_RELOC_16C_IMM32_C: howto manager. (line 2242) +* BFD_RELOC_16C_NUM08: howto manager. (line 2203) +* BFD_RELOC_16C_NUM08_C: howto manager. (line 2204) +* BFD_RELOC_16C_NUM16: howto manager. (line 2205) +* BFD_RELOC_16C_NUM16_C: howto manager. (line 2206) +* BFD_RELOC_16C_NUM32: howto manager. (line 2207) +* BFD_RELOC_16C_NUM32_C: howto manager. (line 2208) +* BFD_RELOC_16C_REG04: howto manager. (line 2219) +* BFD_RELOC_16C_REG04a: howto manager. (line 2221) +* BFD_RELOC_16C_REG04a_C: howto manager. (line 2222) +* BFD_RELOC_16C_REG04_C: howto manager. (line 2220) +* BFD_RELOC_16C_REG14: howto manager. (line 2223) +* BFD_RELOC_16C_REG14_C: howto manager. (line 2224) +* BFD_RELOC_16C_REG16: howto manager. (line 2225) +* BFD_RELOC_16C_REG16_C: howto manager. (line 2226) +* BFD_RELOC_16C_REG20: howto manager. (line 2227) +* BFD_RELOC_16C_REG20_C: howto manager. (line 2228) +* BFD_RELOC_16_BASEREL: howto manager. (line 90) +* BFD_RELOC_16_GOTOFF: howto manager. (line 49) +* BFD_RELOC_16_GOT_PCREL: howto manager. (line 46) * BFD_RELOC_16_PCREL: howto manager. (line 36) -* BFD_RELOC_16_PCREL_S2: howto manager. (line 102) -* BFD_RELOC_16_PLTOFF: howto manager. (line 63) -* BFD_RELOC_16_PLT_PCREL: howto manager. (line 59) -* BFD_RELOC_23_PCREL_S2: howto manager. (line 103) +* BFD_RELOC_16_PCREL_S2: howto manager. (line 100) +* BFD_RELOC_16_PLTOFF: howto manager. (line 61) +* BFD_RELOC_16_PLT_PCREL: howto manager. (line 57) +* BFD_RELOC_23_PCREL_S2: howto manager. (line 101) * BFD_RELOC_24: howto manager. (line 28) * BFD_RELOC_24_PCREL: howto manager. (line 35) -* BFD_RELOC_24_PLT_PCREL: howto manager. (line 58) +* BFD_RELOC_24_PLT_PCREL: howto manager. (line 56) * BFD_RELOC_26: howto manager. (line 27) * BFD_RELOC_32: howto manager. (line 26) -* BFD_RELOC_32_BASEREL: howto manager. (line 91) -* BFD_RELOC_32_GOTOFF: howto manager. (line 50) -* BFD_RELOC_32_GOT_PCREL: howto manager. (line 47) +* BFD_RELOC_32_BASEREL: howto manager. (line 89) +* BFD_RELOC_32_GOTOFF: howto manager. (line 48) +* BFD_RELOC_32_GOT_PCREL: howto manager. (line 45) * BFD_RELOC_32_PCREL: howto manager. (line 34) -* BFD_RELOC_32_PCREL_S2: howto manager. (line 101) -* BFD_RELOC_32_PLTOFF: howto manager. (line 62) -* BFD_RELOC_32_PLT_PCREL: howto manager. (line 57) -* BFD_RELOC_32_SECREL: howto manager. (line 45) -* BFD_RELOC_386_COPY: howto manager. (line 527) -* BFD_RELOC_386_GLOB_DAT: howto manager. (line 528) -* BFD_RELOC_386_GOT32: howto manager. (line 525) -* BFD_RELOC_386_GOT32X: howto manager. (line 549) -* BFD_RELOC_386_GOTOFF: howto manager. (line 531) -* BFD_RELOC_386_GOTPC: howto manager. (line 532) -* BFD_RELOC_386_IRELATIVE: howto manager. (line 548) -* BFD_RELOC_386_JUMP_SLOT: howto manager. (line 529) -* BFD_RELOC_386_PLT32: howto manager. (line 526) -* BFD_RELOC_386_RELATIVE: howto manager. (line 530) -* BFD_RELOC_386_TLS_DESC: howto manager. (line 547) -* BFD_RELOC_386_TLS_DESC_CALL: howto manager. (line 546) -* BFD_RELOC_386_TLS_DTPMOD32: howto manager. (line 542) -* BFD_RELOC_386_TLS_DTPOFF32: howto manager. (line 543) -* BFD_RELOC_386_TLS_GD: howto manager. (line 537) -* BFD_RELOC_386_TLS_GOTDESC: howto manager. (line 545) -* BFD_RELOC_386_TLS_GOTIE: howto manager. (line 535) -* BFD_RELOC_386_TLS_IE: howto manager. (line 534) -* BFD_RELOC_386_TLS_IE_32: howto manager. (line 540) -* BFD_RELOC_386_TLS_LDM: howto manager. (line 538) -* BFD_RELOC_386_TLS_LDO_32: howto manager. (line 539) -* BFD_RELOC_386_TLS_LE: howto manager. (line 536) -* BFD_RELOC_386_TLS_LE_32: howto manager. (line 541) -* BFD_RELOC_386_TLS_TPOFF: howto manager. (line 533) -* BFD_RELOC_386_TLS_TPOFF32: howto manager. (line 544) -* BFD_RELOC_390_12: howto manager. (line 1885) -* BFD_RELOC_390_20: howto manager. (line 1966) -* BFD_RELOC_390_COPY: howto manager. (line 1891) -* BFD_RELOC_390_GLOB_DAT: howto manager. (line 1893) -* BFD_RELOC_390_GOT12: howto manager. (line 1887) -* BFD_RELOC_390_GOT16: howto manager. (line 1901) -* BFD_RELOC_390_GOT20: howto manager. (line 1967) -* BFD_RELOC_390_GOT64: howto manager. (line 1921) -* BFD_RELOC_390_GOTENT: howto manager. (line 1925) -* BFD_RELOC_390_GOTOFF64: howto manager. (line 1927) -* BFD_RELOC_390_GOTPC: howto manager. (line 1899) -* BFD_RELOC_390_GOTPCDBL: howto manager. (line 1919) -* BFD_RELOC_390_GOTPLT12: howto manager. (line 1929) -* BFD_RELOC_390_GOTPLT16: howto manager. (line 1931) -* BFD_RELOC_390_GOTPLT20: howto manager. (line 1968) -* BFD_RELOC_390_GOTPLT32: howto manager. (line 1933) -* BFD_RELOC_390_GOTPLT64: howto manager. (line 1935) -* BFD_RELOC_390_GOTPLTENT: howto manager. (line 1937) -* BFD_RELOC_390_IRELATIVE: howto manager. (line 1971) -* BFD_RELOC_390_JMP_SLOT: howto manager. (line 1895) -* BFD_RELOC_390_PC12DBL: howto manager. (line 1903) -* BFD_RELOC_390_PC16DBL: howto manager. (line 1907) -* BFD_RELOC_390_PC24DBL: howto manager. (line 1911) -* BFD_RELOC_390_PC32DBL: howto manager. (line 1915) -* BFD_RELOC_390_PLT12DBL: howto manager. (line 1905) -* BFD_RELOC_390_PLT16DBL: howto manager. (line 1909) -* BFD_RELOC_390_PLT24DBL: howto manager. (line 1913) -* BFD_RELOC_390_PLT32: howto manager. (line 1889) -* BFD_RELOC_390_PLT32DBL: howto manager. (line 1917) -* BFD_RELOC_390_PLT64: howto manager. (line 1923) -* BFD_RELOC_390_PLTOFF16: howto manager. (line 1939) -* BFD_RELOC_390_PLTOFF32: howto manager. (line 1941) -* BFD_RELOC_390_PLTOFF64: howto manager. (line 1943) -* BFD_RELOC_390_RELATIVE: howto manager. (line 1897) -* BFD_RELOC_390_TLS_DTPMOD: howto manager. (line 1962) -* BFD_RELOC_390_TLS_DTPOFF: howto manager. (line 1963) -* BFD_RELOC_390_TLS_GD32: howto manager. (line 1948) -* BFD_RELOC_390_TLS_GD64: howto manager. (line 1949) -* BFD_RELOC_390_TLS_GDCALL: howto manager. (line 1946) -* BFD_RELOC_390_TLS_GOTIE12: howto manager. (line 1950) -* BFD_RELOC_390_TLS_GOTIE20: howto manager. (line 1969) -* BFD_RELOC_390_TLS_GOTIE32: howto manager. (line 1951) -* BFD_RELOC_390_TLS_GOTIE64: howto manager. (line 1952) -* BFD_RELOC_390_TLS_IE32: howto manager. (line 1955) -* BFD_RELOC_390_TLS_IE64: howto manager. (line 1956) -* BFD_RELOC_390_TLS_IEENT: howto manager. (line 1957) -* BFD_RELOC_390_TLS_LDCALL: howto manager. (line 1947) -* BFD_RELOC_390_TLS_LDM32: howto manager. (line 1953) -* BFD_RELOC_390_TLS_LDM64: howto manager. (line 1954) -* BFD_RELOC_390_TLS_LDO32: howto manager. (line 1960) -* BFD_RELOC_390_TLS_LDO64: howto manager. (line 1961) -* BFD_RELOC_390_TLS_LE32: howto manager. (line 1958) -* BFD_RELOC_390_TLS_LE64: howto manager. (line 1959) -* BFD_RELOC_390_TLS_LOAD: howto manager. (line 1945) -* BFD_RELOC_390_TLS_TPOFF: howto manager. (line 1964) +* BFD_RELOC_32_PCREL_S2: howto manager. (line 99) +* BFD_RELOC_32_PLTOFF: howto manager. (line 60) +* BFD_RELOC_32_PLT_PCREL: howto manager. (line 55) +* BFD_RELOC_32_SECREL: howto manager. (line 43) +* BFD_RELOC_386_COPY: howto manager. (line 523) +* BFD_RELOC_386_GLOB_DAT: howto manager. (line 524) +* BFD_RELOC_386_GOT32: howto manager. (line 521) +* BFD_RELOC_386_GOT32X: howto manager. (line 545) +* BFD_RELOC_386_GOTOFF: howto manager. (line 527) +* BFD_RELOC_386_GOTPC: howto manager. (line 528) +* BFD_RELOC_386_IRELATIVE: howto manager. (line 544) +* BFD_RELOC_386_JUMP_SLOT: howto manager. (line 525) +* BFD_RELOC_386_PLT32: howto manager. (line 522) +* BFD_RELOC_386_RELATIVE: howto manager. (line 526) +* BFD_RELOC_386_TLS_DESC: howto manager. (line 543) +* BFD_RELOC_386_TLS_DESC_CALL: howto manager. (line 542) +* BFD_RELOC_386_TLS_DTPMOD32: howto manager. (line 538) +* BFD_RELOC_386_TLS_DTPOFF32: howto manager. (line 539) +* BFD_RELOC_386_TLS_GD: howto manager. (line 533) +* BFD_RELOC_386_TLS_GOTDESC: howto manager. (line 541) +* BFD_RELOC_386_TLS_GOTIE: howto manager. (line 531) +* BFD_RELOC_386_TLS_IE: howto manager. (line 530) +* BFD_RELOC_386_TLS_IE_32: howto manager. (line 536) +* BFD_RELOC_386_TLS_LDM: howto manager. (line 534) +* BFD_RELOC_386_TLS_LDO_32: howto manager. (line 535) +* BFD_RELOC_386_TLS_LE: howto manager. (line 532) +* BFD_RELOC_386_TLS_LE_32: howto manager. (line 537) +* BFD_RELOC_386_TLS_TPOFF: howto manager. (line 529) +* BFD_RELOC_386_TLS_TPOFF32: howto manager. (line 540) +* BFD_RELOC_390_12: howto manager. (line 1889) +* BFD_RELOC_390_20: howto manager. (line 1970) +* BFD_RELOC_390_COPY: howto manager. (line 1895) +* BFD_RELOC_390_GLOB_DAT: howto manager. (line 1897) +* BFD_RELOC_390_GOT12: howto manager. (line 1891) +* BFD_RELOC_390_GOT16: howto manager. (line 1905) +* BFD_RELOC_390_GOT20: howto manager. (line 1971) +* BFD_RELOC_390_GOT64: howto manager. (line 1925) +* BFD_RELOC_390_GOTENT: howto manager. (line 1929) +* BFD_RELOC_390_GOTOFF64: howto manager. (line 1931) +* BFD_RELOC_390_GOTPC: howto manager. (line 1903) +* BFD_RELOC_390_GOTPCDBL: howto manager. (line 1923) +* BFD_RELOC_390_GOTPLT12: howto manager. (line 1933) +* BFD_RELOC_390_GOTPLT16: howto manager. (line 1935) +* BFD_RELOC_390_GOTPLT20: howto manager. (line 1972) +* BFD_RELOC_390_GOTPLT32: howto manager. (line 1937) +* BFD_RELOC_390_GOTPLT64: howto manager. (line 1939) +* BFD_RELOC_390_GOTPLTENT: howto manager. (line 1941) +* BFD_RELOC_390_IRELATIVE: howto manager. (line 1975) +* BFD_RELOC_390_JMP_SLOT: howto manager. (line 1899) +* BFD_RELOC_390_PC12DBL: howto manager. (line 1907) +* BFD_RELOC_390_PC16DBL: howto manager. (line 1911) +* BFD_RELOC_390_PC24DBL: howto manager. (line 1915) +* BFD_RELOC_390_PC32DBL: howto manager. (line 1919) +* BFD_RELOC_390_PLT12DBL: howto manager. (line 1909) +* BFD_RELOC_390_PLT16DBL: howto manager. (line 1913) +* BFD_RELOC_390_PLT24DBL: howto manager. (line 1917) +* BFD_RELOC_390_PLT32: howto manager. (line 1893) +* BFD_RELOC_390_PLT32DBL: howto manager. (line 1921) +* BFD_RELOC_390_PLT64: howto manager. (line 1927) +* BFD_RELOC_390_PLTOFF16: howto manager. (line 1943) +* BFD_RELOC_390_PLTOFF32: howto manager. (line 1945) +* BFD_RELOC_390_PLTOFF64: howto manager. (line 1947) +* BFD_RELOC_390_RELATIVE: howto manager. (line 1901) +* BFD_RELOC_390_TLS_DTPMOD: howto manager. (line 1966) +* BFD_RELOC_390_TLS_DTPOFF: howto manager. (line 1967) +* BFD_RELOC_390_TLS_GD32: howto manager. (line 1952) +* BFD_RELOC_390_TLS_GD64: howto manager. (line 1953) +* BFD_RELOC_390_TLS_GDCALL: howto manager. (line 1950) +* BFD_RELOC_390_TLS_GOTIE12: howto manager. (line 1954) +* BFD_RELOC_390_TLS_GOTIE20: howto manager. (line 1973) +* BFD_RELOC_390_TLS_GOTIE32: howto manager. (line 1955) +* BFD_RELOC_390_TLS_GOTIE64: howto manager. (line 1956) +* BFD_RELOC_390_TLS_IE32: howto manager. (line 1959) +* BFD_RELOC_390_TLS_IE64: howto manager. (line 1960) +* BFD_RELOC_390_TLS_IEENT: howto manager. (line 1961) +* BFD_RELOC_390_TLS_LDCALL: howto manager. (line 1951) +* BFD_RELOC_390_TLS_LDM32: howto manager. (line 1957) +* BFD_RELOC_390_TLS_LDM64: howto manager. (line 1958) +* BFD_RELOC_390_TLS_LDO32: howto manager. (line 1964) +* BFD_RELOC_390_TLS_LDO64: howto manager. (line 1965) +* BFD_RELOC_390_TLS_LE32: howto manager. (line 1962) +* BFD_RELOC_390_TLS_LE64: howto manager. (line 1963) +* BFD_RELOC_390_TLS_LOAD: howto manager. (line 1949) +* BFD_RELOC_390_TLS_TPOFF: howto manager. (line 1968) * BFD_RELOC_64: howto manager. (line 25) * BFD_RELOC_64_PCREL: howto manager. (line 33) -* BFD_RELOC_64_PLTOFF: howto manager. (line 61) -* BFD_RELOC_64_PLT_PCREL: howto manager. (line 56) -* BFD_RELOC_68K_GLOB_DAT: howto manager. (line 72) -* BFD_RELOC_68K_JMP_SLOT: howto manager. (line 73) -* BFD_RELOC_68K_RELATIVE: howto manager. (line 74) -* BFD_RELOC_68K_TLS_GD16: howto manager. (line 76) -* BFD_RELOC_68K_TLS_GD32: howto manager. (line 75) -* BFD_RELOC_68K_TLS_GD8: howto manager. (line 77) -* BFD_RELOC_68K_TLS_IE16: howto manager. (line 85) -* BFD_RELOC_68K_TLS_IE32: howto manager. (line 84) -* BFD_RELOC_68K_TLS_IE8: howto manager. (line 86) -* BFD_RELOC_68K_TLS_LDM16: howto manager. (line 79) -* BFD_RELOC_68K_TLS_LDM32: howto manager. (line 78) -* BFD_RELOC_68K_TLS_LDM8: howto manager. (line 80) -* BFD_RELOC_68K_TLS_LDO16: howto manager. (line 82) -* BFD_RELOC_68K_TLS_LDO32: howto manager. (line 81) -* BFD_RELOC_68K_TLS_LDO8: howto manager. (line 83) -* BFD_RELOC_68K_TLS_LE16: howto manager. (line 88) -* BFD_RELOC_68K_TLS_LE32: howto manager. (line 87) -* BFD_RELOC_68K_TLS_LE8: howto manager. (line 89) +* BFD_RELOC_64_PLTOFF: howto manager. (line 59) +* BFD_RELOC_64_PLT_PCREL: howto manager. (line 54) +* BFD_RELOC_68K_GLOB_DAT: howto manager. (line 70) +* BFD_RELOC_68K_JMP_SLOT: howto manager. (line 71) +* BFD_RELOC_68K_RELATIVE: howto manager. (line 72) +* BFD_RELOC_68K_TLS_GD16: howto manager. (line 74) +* BFD_RELOC_68K_TLS_GD32: howto manager. (line 73) +* BFD_RELOC_68K_TLS_GD8: howto manager. (line 75) +* BFD_RELOC_68K_TLS_IE16: howto manager. (line 83) +* BFD_RELOC_68K_TLS_IE32: howto manager. (line 82) +* BFD_RELOC_68K_TLS_IE8: howto manager. (line 84) +* BFD_RELOC_68K_TLS_LDM16: howto manager. (line 77) +* BFD_RELOC_68K_TLS_LDM32: howto manager. (line 76) +* BFD_RELOC_68K_TLS_LDM8: howto manager. (line 78) +* BFD_RELOC_68K_TLS_LDO16: howto manager. (line 80) +* BFD_RELOC_68K_TLS_LDO32: howto manager. (line 79) +* BFD_RELOC_68K_TLS_LDO8: howto manager. (line 81) +* BFD_RELOC_68K_TLS_LE16: howto manager. (line 86) +* BFD_RELOC_68K_TLS_LE32: howto manager. (line 85) +* BFD_RELOC_68K_TLS_LE8: howto manager. (line 87) * BFD_RELOC_8: howto manager. (line 31) -* BFD_RELOC_860_COPY: howto manager. (line 2336) -* BFD_RELOC_860_GLOB_DAT: howto manager. (line 2337) -* BFD_RELOC_860_HAGOT: howto manager. (line 2362) -* BFD_RELOC_860_HAGOTOFF: howto manager. (line 2363) -* BFD_RELOC_860_HAPC: howto manager. (line 2364) -* BFD_RELOC_860_HIGH: howto manager. (line 2365) -* BFD_RELOC_860_HIGHADJ: howto manager. (line 2361) -* BFD_RELOC_860_HIGOT: howto manager. (line 2366) -* BFD_RELOC_860_HIGOTOFF: howto manager. (line 2367) -* BFD_RELOC_860_JUMP_SLOT: howto manager. (line 2338) -* BFD_RELOC_860_LOGOT0: howto manager. (line 2350) -* BFD_RELOC_860_LOGOT1: howto manager. (line 2352) -* BFD_RELOC_860_LOGOTOFF0: howto manager. (line 2354) -* BFD_RELOC_860_LOGOTOFF1: howto manager. (line 2356) -* BFD_RELOC_860_LOGOTOFF2: howto manager. (line 2358) -* BFD_RELOC_860_LOGOTOFF3: howto manager. (line 2359) -* BFD_RELOC_860_LOPC: howto manager. (line 2360) -* BFD_RELOC_860_LOW0: howto manager. (line 2343) -* BFD_RELOC_860_LOW1: howto manager. (line 2345) -* BFD_RELOC_860_LOW2: howto manager. (line 2347) -* BFD_RELOC_860_LOW3: howto manager. (line 2349) -* BFD_RELOC_860_PC16: howto manager. (line 2342) -* BFD_RELOC_860_PC26: howto manager. (line 2340) -* BFD_RELOC_860_PLT26: howto manager. (line 2341) -* BFD_RELOC_860_RELATIVE: howto manager. (line 2339) -* BFD_RELOC_860_SPGOT0: howto manager. (line 2351) -* BFD_RELOC_860_SPGOT1: howto manager. (line 2353) -* BFD_RELOC_860_SPGOTOFF0: howto manager. (line 2355) -* BFD_RELOC_860_SPGOTOFF1: howto manager. (line 2357) -* BFD_RELOC_860_SPLIT0: howto manager. (line 2344) -* BFD_RELOC_860_SPLIT1: howto manager. (line 2346) -* BFD_RELOC_860_SPLIT2: howto manager. (line 2348) -* BFD_RELOC_8_BASEREL: howto manager. (line 96) -* BFD_RELOC_8_FFnn: howto manager. (line 99) -* BFD_RELOC_8_GOTOFF: howto manager. (line 55) -* BFD_RELOC_8_GOT_PCREL: howto manager. (line 49) +* BFD_RELOC_8_BASEREL: howto manager. (line 94) +* BFD_RELOC_8_FFnn: howto manager. (line 97) +* BFD_RELOC_8_GOTOFF: howto manager. (line 53) +* BFD_RELOC_8_GOT_PCREL: howto manager. (line 47) * BFD_RELOC_8_PCREL: howto manager. (line 38) -* BFD_RELOC_8_PLTOFF: howto manager. (line 67) -* BFD_RELOC_8_PLT_PCREL: howto manager. (line 60) -* BFD_RELOC_AARCH64_16: howto manager. (line 2741) -* BFD_RELOC_AARCH64_16_PCREL: howto manager. (line 2747) -* BFD_RELOC_AARCH64_32: howto manager. (line 2740) -* BFD_RELOC_AARCH64_32_PCREL: howto manager. (line 2746) -* BFD_RELOC_AARCH64_64: howto manager. (line 2739) -* BFD_RELOC_AARCH64_64_PCREL: howto manager. (line 2745) -* BFD_RELOC_AARCH64_ADD_LO12: howto manager. (line 2797) -* BFD_RELOC_AARCH64_ADR_GOT_PAGE: howto manager. (line 2843) -* BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL: howto manager. (line 2793) -* BFD_RELOC_AARCH64_ADR_HI21_PCREL: howto manager. (line 2790) -* BFD_RELOC_AARCH64_ADR_LO21_PCREL: howto manager. (line 2787) -* BFD_RELOC_AARCH64_BRANCH19: howto manager. (line 2809) -* BFD_RELOC_AARCH64_CALL26: howto manager. (line 2817) -* BFD_RELOC_AARCH64_COPY: howto manager. (line 2986) -* BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP: howto manager. (line 3010) -* BFD_RELOC_AARCH64_GLOB_DAT: howto manager. (line 2988) -* BFD_RELOC_AARCH64_GOT_LD_PREL19: howto manager. (line 2837) -* BFD_RELOC_AARCH64_IRELATIVE: howto manager. (line 3002) -* BFD_RELOC_AARCH64_JUMP26: howto manager. (line 2813) -* BFD_RELOC_AARCH64_JUMP_SLOT: howto manager. (line 2990) -* BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14: howto manager. (line 2864) -* BFD_RELOC_AARCH64_LD32_GOT_LO12_NC: howto manager. (line 2851) -* BFD_RELOC_AARCH64_LD64_GOTOFF_LO15: howto manager. (line 2861) -* BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15: howto manager. (line 2867) -* BFD_RELOC_AARCH64_LD64_GOT_LO12_NC: howto manager. (line 2847) -* BFD_RELOC_AARCH64_LDST128_LO12: howto manager. (line 2833) -* BFD_RELOC_AARCH64_LDST16_LO12: howto manager. (line 2821) -* BFD_RELOC_AARCH64_LDST32_LO12: howto manager. (line 2825) -* BFD_RELOC_AARCH64_LDST64_LO12: howto manager. (line 2829) -* BFD_RELOC_AARCH64_LDST8_LO12: howto manager. (line 2801) -* BFD_RELOC_AARCH64_LDST_LO12: howto manager. (line 3013) -* BFD_RELOC_AARCH64_LD_GOT_LO12_NC: howto manager. (line 3024) -* BFD_RELOC_AARCH64_LD_LO19_PCREL: howto manager. (line 2783) -* BFD_RELOC_AARCH64_MOVW_G0: howto manager. (line 2750) -* BFD_RELOC_AARCH64_MOVW_G0_NC: howto manager. (line 2753) -* BFD_RELOC_AARCH64_MOVW_G0_S: howto manager. (line 2771) -* BFD_RELOC_AARCH64_MOVW_G1: howto manager. (line 2756) -* BFD_RELOC_AARCH64_MOVW_G1_NC: howto manager. (line 2759) -* BFD_RELOC_AARCH64_MOVW_G1_S: howto manager. (line 2775) -* BFD_RELOC_AARCH64_MOVW_G2: howto manager. (line 2762) -* BFD_RELOC_AARCH64_MOVW_G2_NC: howto manager. (line 2765) -* BFD_RELOC_AARCH64_MOVW_G2_S: howto manager. (line 2779) -* BFD_RELOC_AARCH64_MOVW_G3: howto manager. (line 2768) -* BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC: howto manager. (line 2855) -* BFD_RELOC_AARCH64_MOVW_GOTOFF_G1: howto manager. (line 2858) -* BFD_RELOC_AARCH64_NONE: howto manager. (line 2737) -* BFD_RELOC_AARCH64_NULL: howto manager. (line 2735) -* BFD_RELOC_AARCH64_RELATIVE: howto manager. (line 2992) -* BFD_RELOC_AARCH64_RELOC_END: howto manager. (line 3004) -* BFD_RELOC_AARCH64_RELOC_START: howto manager. (line 2730) -* BFD_RELOC_AARCH64_TLSDESC: howto manager. (line 3000) -* BFD_RELOC_AARCH64_TLSDESC_ADD: howto manager. (line 2982) -* BFD_RELOC_AARCH64_TLSDESC_ADD_LO12: howto manager. (line 2974) -* BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21: howto manager. (line 2968) -* BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21: howto manager. (line 2966) -* BFD_RELOC_AARCH64_TLSDESC_CALL: howto manager. (line 2984) -* BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC: howto manager. (line 2972) -* BFD_RELOC_AARCH64_TLSDESC_LD64_LO12: howto manager. (line 2970) -* BFD_RELOC_AARCH64_TLSDESC_LDR: howto manager. (line 2980) -* BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC: howto manager. (line 3030) -* BFD_RELOC_AARCH64_TLSDESC_LD_PREL19: howto manager. (line 2964) -* BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC: howto manager. (line 2978) -* BFD_RELOC_AARCH64_TLSDESC_OFF_G1: howto manager. (line 2976) -* BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC: howto manager. (line 2877) -* BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21: howto manager. (line 2870) -* BFD_RELOC_AARCH64_TLSGD_ADR_PREL21: howto manager. (line 2875) -* BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC: howto manager. (line 2881) -* BFD_RELOC_AARCH64_TLSGD_MOVW_G1: howto manager. (line 2883) +* BFD_RELOC_8_PLTOFF: howto manager. (line 65) +* BFD_RELOC_8_PLT_PCREL: howto manager. (line 58) +* BFD_RELOC_AARCH64_16: howto manager. (line 2726) +* BFD_RELOC_AARCH64_16_PCREL: howto manager. (line 2732) +* BFD_RELOC_AARCH64_32: howto manager. (line 2725) +* BFD_RELOC_AARCH64_32_PCREL: howto manager. (line 2731) +* BFD_RELOC_AARCH64_64: howto manager. (line 2724) +* BFD_RELOC_AARCH64_64_PCREL: howto manager. (line 2730) +* BFD_RELOC_AARCH64_ADD_LO12: howto manager. (line 2805) +* BFD_RELOC_AARCH64_ADR_GOT_PAGE: howto manager. (line 2851) +* BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL: howto manager. (line 2801) +* BFD_RELOC_AARCH64_ADR_HI21_PCREL: howto manager. (line 2798) +* BFD_RELOC_AARCH64_ADR_LO21_PCREL: howto manager. (line 2795) +* BFD_RELOC_AARCH64_BRANCH19: howto manager. (line 2817) +* BFD_RELOC_AARCH64_CALL26: howto manager. (line 2825) +* BFD_RELOC_AARCH64_COPY: howto manager. (line 3018) +* BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP: howto manager. (line 3042) +* BFD_RELOC_AARCH64_GLOB_DAT: howto manager. (line 3020) +* BFD_RELOC_AARCH64_GOT_LD_PREL19: howto manager. (line 2845) +* BFD_RELOC_AARCH64_IRELATIVE: howto manager. (line 3034) +* BFD_RELOC_AARCH64_JUMP26: howto manager. (line 2821) +* BFD_RELOC_AARCH64_JUMP_SLOT: howto manager. (line 3022) +* BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14: howto manager. (line 2872) +* BFD_RELOC_AARCH64_LD32_GOT_LO12_NC: howto manager. (line 2859) +* BFD_RELOC_AARCH64_LD64_GOTOFF_LO15: howto manager. (line 2869) +* BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15: howto manager. (line 2875) +* BFD_RELOC_AARCH64_LD64_GOT_LO12_NC: howto manager. (line 2855) +* BFD_RELOC_AARCH64_LDST128_LO12: howto manager. (line 2841) +* BFD_RELOC_AARCH64_LDST16_LO12: howto manager. (line 2829) +* BFD_RELOC_AARCH64_LDST32_LO12: howto manager. (line 2833) +* BFD_RELOC_AARCH64_LDST64_LO12: howto manager. (line 2837) +* BFD_RELOC_AARCH64_LDST8_LO12: howto manager. (line 2809) +* BFD_RELOC_AARCH64_LDST_LO12: howto manager. (line 3045) +* BFD_RELOC_AARCH64_LD_GOT_LO12_NC: howto manager. (line 3063) +* BFD_RELOC_AARCH64_LD_LO19_PCREL: howto manager. (line 2791) +* BFD_RELOC_AARCH64_MOVW_G0: howto manager. (line 2735) +* BFD_RELOC_AARCH64_MOVW_G0_NC: howto manager. (line 2738) +* BFD_RELOC_AARCH64_MOVW_G0_S: howto manager. (line 2756) +* BFD_RELOC_AARCH64_MOVW_G1: howto manager. (line 2741) +* BFD_RELOC_AARCH64_MOVW_G1_NC: howto manager. (line 2744) +* BFD_RELOC_AARCH64_MOVW_G1_S: howto manager. (line 2760) +* BFD_RELOC_AARCH64_MOVW_G2: howto manager. (line 2747) +* BFD_RELOC_AARCH64_MOVW_G2_NC: howto manager. (line 2750) +* BFD_RELOC_AARCH64_MOVW_G2_S: howto manager. (line 2764) +* BFD_RELOC_AARCH64_MOVW_G3: howto manager. (line 2753) +* BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC: howto manager. (line 2863) +* BFD_RELOC_AARCH64_MOVW_GOTOFF_G1: howto manager. (line 2866) +* BFD_RELOC_AARCH64_MOVW_PREL_G0: howto manager. (line 2768) +* BFD_RELOC_AARCH64_MOVW_PREL_G0_NC: howto manager. (line 2772) +* BFD_RELOC_AARCH64_MOVW_PREL_G1: howto manager. (line 2776) +* BFD_RELOC_AARCH64_MOVW_PREL_G1_NC: howto manager. (line 2779) +* BFD_RELOC_AARCH64_MOVW_PREL_G2: howto manager. (line 2782) +* BFD_RELOC_AARCH64_MOVW_PREL_G2_NC: howto manager. (line 2785) +* BFD_RELOC_AARCH64_MOVW_PREL_G3: howto manager. (line 2788) +* BFD_RELOC_AARCH64_NONE: howto manager. (line 2722) +* BFD_RELOC_AARCH64_NULL: howto manager. (line 2720) +* BFD_RELOC_AARCH64_RELATIVE: howto manager. (line 3024) +* BFD_RELOC_AARCH64_RELOC_END: howto manager. (line 3036) +* BFD_RELOC_AARCH64_RELOC_START: howto manager. (line 2715) +* BFD_RELOC_AARCH64_TLSDESC: howto manager. (line 3032) +* BFD_RELOC_AARCH64_TLSDESC_ADD: howto manager. (line 3014) +* BFD_RELOC_AARCH64_TLSDESC_ADD_LO12: howto manager. (line 3006) +* BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21: howto manager. (line 3000) +* BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21: howto manager. (line 2998) +* BFD_RELOC_AARCH64_TLSDESC_CALL: howto manager. (line 3016) +* BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC: howto manager. (line 3004) +* BFD_RELOC_AARCH64_TLSDESC_LD64_LO12: howto manager. (line 3002) +* BFD_RELOC_AARCH64_TLSDESC_LDR: howto manager. (line 3012) +* BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC: howto manager. (line 3069) +* BFD_RELOC_AARCH64_TLSDESC_LD_PREL19: howto manager. (line 2996) +* BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC: howto manager. (line 3010) +* BFD_RELOC_AARCH64_TLSDESC_OFF_G1: howto manager. (line 3008) +* BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC: howto manager. (line 2885) +* BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21: howto manager. (line 2878) +* BFD_RELOC_AARCH64_TLSGD_ADR_PREL21: howto manager. (line 2883) +* BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC: howto manager. (line 2889) +* BFD_RELOC_AARCH64_TLSGD_MOVW_G1: howto manager. (line 2891) * BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21: howto manager. - (line 2885) + (line 2893) * BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC: howto manager. - (line 2889) + (line 2897) * BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC: howto manager. - (line 2887) + (line 2895) * BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC: howto manager. - (line 3027) -* BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19: howto manager. (line 2891) + (line 3066) +* BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19: howto manager. (line 2899) * BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC: howto manager. - (line 2893) -* BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1: howto manager. (line 2895) -* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12: howto manager. (line 2897) -* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12: howto manager. (line 2899) -* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC: howto manager. (line 2901) -* BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC: howto manager. (line 2904) -* BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21: howto manager. (line 2908) -* BFD_RELOC_AARCH64_TLSLD_ADR_PREL21: howto manager. (line 2911) -* BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12: howto manager. (line 2914) + (line 2901) +* BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1: howto manager. (line 2903) +* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12: howto manager. (line 2905) +* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12: howto manager. (line 2907) +* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC: howto manager. (line 2909) +* BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC: howto manager. (line 2912) +* BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21: howto manager. (line 2916) +* BFD_RELOC_AARCH64_TLSLD_ADR_PREL21: howto manager. (line 2919) +* BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12: howto manager. (line 2922) * BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC: howto manager. - (line 2917) -* BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12: howto manager. (line 2920) + (line 2925) +* BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12: howto manager. (line 2928) * BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC: howto manager. - (line 2923) -* BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12: howto manager. (line 2926) + (line 2931) +* BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12: howto manager. (line 2934) * BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC: howto manager. - (line 2929) -* BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12: howto manager. (line 2932) + (line 2937) +* BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12: howto manager. (line 2940) * BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC: howto manager. - (line 2935) -* BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12: howto manager. (line 3017) + (line 2943) +* BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12: howto manager. (line 3049) * BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC: howto manager. - (line 3021) -* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0: howto manager. (line 2938) -* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC: howto manager. (line 2940) -* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1: howto manager. (line 2942) -* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC: howto manager. (line 2944) -* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2: howto manager. (line 2946) -* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12: howto manager. (line 2958) -* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12: howto manager. (line 2960) -* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC: howto manager. (line 2962) -* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0: howto manager. (line 2954) -* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC: howto manager. (line 2956) -* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1: howto manager. (line 2950) -* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC: howto manager. (line 2952) -* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2: howto manager. (line 2948) -* BFD_RELOC_AARCH64_TLS_DTPMOD: howto manager. (line 2994) -* BFD_RELOC_AARCH64_TLS_DTPREL: howto manager. (line 2996) -* BFD_RELOC_AARCH64_TLS_TPREL: howto manager. (line 2998) -* BFD_RELOC_AARCH64_TSTBR14: howto manager. (line 2805) -* BFD_RELOC_AC_SECTOFF_S9: howto manager. (line 1014) -* BFD_RELOC_AC_SECTOFF_S9_1: howto manager. (line 1015) -* BFD_RELOC_AC_SECTOFF_S9_2: howto manager. (line 1016) -* BFD_RELOC_AC_SECTOFF_U8: howto manager. (line 1011) -* BFD_RELOC_AC_SECTOFF_U8_1: howto manager. (line 1012) -* BFD_RELOC_AC_SECTOFF_U8_2: howto manager. (line 1013) -* BFD_RELOC_ALPHA_BOH: howto manager. (line 292) -* BFD_RELOC_ALPHA_BRSGP: howto manager. (line 279) -* BFD_RELOC_ALPHA_BSR: howto manager. (line 286) -* BFD_RELOC_ALPHA_CODEADDR: howto manager. (line 272) -* BFD_RELOC_ALPHA_DTPMOD64: howto manager. (line 297) -* BFD_RELOC_ALPHA_DTPREL16: howto manager. (line 302) -* BFD_RELOC_ALPHA_DTPREL64: howto manager. (line 299) -* BFD_RELOC_ALPHA_DTPREL_HI16: howto manager. (line 300) -* BFD_RELOC_ALPHA_DTPREL_LO16: howto manager. (line 301) -* BFD_RELOC_ALPHA_ELF_LITERAL: howto manager. (line 240) -* BFD_RELOC_ALPHA_GOTDTPREL16: howto manager. (line 298) -* BFD_RELOC_ALPHA_GOTTPREL16: howto manager. (line 303) -* BFD_RELOC_ALPHA_GPDISP: howto manager. (line 235) -* BFD_RELOC_ALPHA_GPDISP_HI16: howto manager. (line 223) -* BFD_RELOC_ALPHA_GPDISP_LO16: howto manager. (line 230) -* BFD_RELOC_ALPHA_GPREL_HI16: howto manager. (line 275) -* BFD_RELOC_ALPHA_GPREL_LO16: howto manager. (line 276) -* BFD_RELOC_ALPHA_HINT: howto manager. (line 265) -* BFD_RELOC_ALPHA_LDA: howto manager. (line 289) -* BFD_RELOC_ALPHA_LINKAGE: howto manager. (line 269) -* BFD_RELOC_ALPHA_LITERAL: howto manager. (line 239) -* BFD_RELOC_ALPHA_LITUSE: howto manager. (line 241) -* BFD_RELOC_ALPHA_NOP: howto manager. (line 283) -* BFD_RELOC_ALPHA_TLSGD: howto manager. (line 295) -* BFD_RELOC_ALPHA_TLSLDM: howto manager. (line 296) -* BFD_RELOC_ALPHA_TPREL16: howto manager. (line 307) -* BFD_RELOC_ALPHA_TPREL64: howto manager. (line 304) -* BFD_RELOC_ALPHA_TPREL_HI16: howto manager. (line 305) -* BFD_RELOC_ALPHA_TPREL_LO16: howto manager. (line 306) -* BFD_RELOC_ARC_16: howto manager. (line 983) -* BFD_RELOC_ARC_24: howto manager. (line 984) -* BFD_RELOC_ARC_32: howto manager. (line 985) -* BFD_RELOC_ARC_32_ME: howto manager. (line 1005) -* BFD_RELOC_ARC_32_ME_S: howto manager. (line 1006) -* BFD_RELOC_ARC_32_PCREL: howto manager. (line 1023) -* BFD_RELOC_ARC_8: howto manager. (line 982) -* BFD_RELOC_ARC_COPY: howto manager. (line 1028) -* BFD_RELOC_ARC_GLOB_DAT: howto manager. (line 1029) -* BFD_RELOC_ARC_GOT32: howto manager. (line 1025) -* BFD_RELOC_ARC_GOTOFF: howto manager. (line 1032) -* BFD_RELOC_ARC_GOTPC: howto manager. (line 1033) -* BFD_RELOC_ARC_GOTPC32: howto manager. (line 1026) -* BFD_RELOC_ARC_JLI_SECTOFF: howto manager. (line 1049) -* BFD_RELOC_ARC_JMP_SLOT: howto manager. (line 1030) -* BFD_RELOC_ARC_N16: howto manager. (line 987) -* BFD_RELOC_ARC_N24: howto manager. (line 988) -* BFD_RELOC_ARC_N32: howto manager. (line 989) -* BFD_RELOC_ARC_N32_ME: howto manager. (line 1007) -* BFD_RELOC_ARC_N8: howto manager. (line 986) -* BFD_RELOC_ARC_NONE: howto manager. (line 981) -* BFD_RELOC_ARC_NPS_CMEM16: howto manager. (line 1048) -* BFD_RELOC_ARC_PC32: howto manager. (line 1024) -* BFD_RELOC_ARC_PLT32: howto manager. (line 1027) -* BFD_RELOC_ARC_RELATIVE: howto manager. (line 1031) -* BFD_RELOC_ARC_S13_PCREL: howto manager. (line 1003) -* BFD_RELOC_ARC_S21H_PCREL: howto manager. (line 992) -* BFD_RELOC_ARC_S21H_PCREL_PLT: howto manager. (line 1047) -* BFD_RELOC_ARC_S21W_PCREL: howto manager. (line 993) -* BFD_RELOC_ARC_S21W_PCREL_PLT: howto manager. (line 1034) -* BFD_RELOC_ARC_S25H_PCREL: howto manager. (line 994) -* BFD_RELOC_ARC_S25H_PCREL_PLT: howto manager. (line 1035) -* BFD_RELOC_ARC_S25W_PCREL: howto manager. (line 995) -* BFD_RELOC_ARC_S25W_PCREL_PLT: howto manager. (line 1046) -* BFD_RELOC_ARC_SDA: howto manager. (line 990) -* BFD_RELOC_ARC_SDA16_LD: howto manager. (line 1000) -* BFD_RELOC_ARC_SDA16_LD1: howto manager. (line 1001) -* BFD_RELOC_ARC_SDA16_LD2: howto manager. (line 1002) -* BFD_RELOC_ARC_SDA16_ST2: howto manager. (line 1022) -* BFD_RELOC_ARC_SDA32: howto manager. (line 996) -* BFD_RELOC_ARC_SDA32_ME: howto manager. (line 1009) -* BFD_RELOC_ARC_SDA_12: howto manager. (line 1021) -* BFD_RELOC_ARC_SDA_LDST: howto manager. (line 997) -* BFD_RELOC_ARC_SDA_LDST1: howto manager. (line 998) -* BFD_RELOC_ARC_SDA_LDST2: howto manager. (line 999) -* BFD_RELOC_ARC_SECTOFF: howto manager. (line 991) -* BFD_RELOC_ARC_SECTOFF_1: howto manager. (line 1019) -* BFD_RELOC_ARC_SECTOFF_2: howto manager. (line 1020) -* BFD_RELOC_ARC_SECTOFF_ME: howto manager. (line 1008) -* BFD_RELOC_ARC_SECTOFF_ME_1: howto manager. (line 1017) -* BFD_RELOC_ARC_SECTOFF_ME_2: howto manager. (line 1018) -* BFD_RELOC_ARC_TLS_DTPMOD: howto manager. (line 1036) -* BFD_RELOC_ARC_TLS_DTPOFF: howto manager. (line 1042) -* BFD_RELOC_ARC_TLS_DTPOFF_S9: howto manager. (line 1043) -* BFD_RELOC_ARC_TLS_GD_CALL: howto manager. (line 1040) -* BFD_RELOC_ARC_TLS_GD_GOT: howto manager. (line 1038) -* BFD_RELOC_ARC_TLS_GD_LD: howto manager. (line 1039) -* BFD_RELOC_ARC_TLS_IE_GOT: howto manager. (line 1041) -* BFD_RELOC_ARC_TLS_LE_32: howto manager. (line 1045) -* BFD_RELOC_ARC_TLS_LE_S9: howto manager. (line 1044) -* BFD_RELOC_ARC_TLS_TPOFF: howto manager. (line 1037) -* BFD_RELOC_ARC_W: howto manager. (line 1004) -* BFD_RELOC_ARC_W_ME: howto manager. (line 1010) -* BFD_RELOC_ARM_ADRL_IMMEDIATE: howto manager. (line 855) -* BFD_RELOC_ARM_ADR_IMM: howto manager. (line 869) -* BFD_RELOC_ARM_ALU_PC_G0: howto manager. (line 817) -* BFD_RELOC_ARM_ALU_PC_G0_NC: howto manager. (line 816) -* BFD_RELOC_ARM_ALU_PC_G1: howto manager. (line 819) -* BFD_RELOC_ARM_ALU_PC_G1_NC: howto manager. (line 818) -* BFD_RELOC_ARM_ALU_PC_G2: howto manager. (line 820) -* BFD_RELOC_ARM_ALU_SB_G0: howto manager. (line 831) -* BFD_RELOC_ARM_ALU_SB_G0_NC: howto manager. (line 830) -* BFD_RELOC_ARM_ALU_SB_G1: howto manager. (line 833) -* BFD_RELOC_ARM_ALU_SB_G1_NC: howto manager. (line 832) -* BFD_RELOC_ARM_ALU_SB_G2: howto manager. (line 834) -* BFD_RELOC_ARM_CP_OFF_IMM: howto manager. (line 865) -* BFD_RELOC_ARM_CP_OFF_IMM_S2: howto manager. (line 866) -* BFD_RELOC_ARM_GLOB_DAT: howto manager. (line 793) -* BFD_RELOC_ARM_GOT32: howto manager. (line 794) -* BFD_RELOC_ARM_GOTOFF: howto manager. (line 797) -* BFD_RELOC_ARM_GOTPC: howto manager. (line 798) -* BFD_RELOC_ARM_GOT_PREL: howto manager. (line 799) -* BFD_RELOC_ARM_HVC: howto manager. (line 862) -* BFD_RELOC_ARM_HWLITERAL: howto manager. (line 876) -* BFD_RELOC_ARM_IMMEDIATE: howto manager. (line 854) -* BFD_RELOC_ARM_IN_POOL: howto manager. (line 872) -* BFD_RELOC_ARM_IRELATIVE: howto manager. (line 847) -* BFD_RELOC_ARM_JUMP_SLOT: howto manager. (line 792) -* BFD_RELOC_ARM_LDC_PC_G0: howto manager. (line 827) -* BFD_RELOC_ARM_LDC_PC_G1: howto manager. (line 828) -* BFD_RELOC_ARM_LDC_PC_G2: howto manager. (line 829) -* BFD_RELOC_ARM_LDC_SB_G0: howto manager. (line 841) -* BFD_RELOC_ARM_LDC_SB_G1: howto manager. (line 842) -* BFD_RELOC_ARM_LDC_SB_G2: howto manager. (line 843) -* BFD_RELOC_ARM_LDRS_PC_G0: howto manager. (line 824) -* BFD_RELOC_ARM_LDRS_PC_G1: howto manager. (line 825) -* BFD_RELOC_ARM_LDRS_PC_G2: howto manager. (line 826) -* BFD_RELOC_ARM_LDRS_SB_G0: howto manager. (line 838) -* BFD_RELOC_ARM_LDRS_SB_G1: howto manager. (line 839) -* BFD_RELOC_ARM_LDRS_SB_G2: howto manager. (line 840) -* BFD_RELOC_ARM_LDR_IMM: howto manager. (line 870) -* BFD_RELOC_ARM_LDR_PC_G0: howto manager. (line 821) -* BFD_RELOC_ARM_LDR_PC_G1: howto manager. (line 822) -* BFD_RELOC_ARM_LDR_PC_G2: howto manager. (line 823) -* BFD_RELOC_ARM_LDR_SB_G0: howto manager. (line 835) -* BFD_RELOC_ARM_LDR_SB_G1: howto manager. (line 836) -* BFD_RELOC_ARM_LDR_SB_G2: howto manager. (line 837) -* BFD_RELOC_ARM_LITERAL: howto manager. (line 871) -* BFD_RELOC_ARM_MOVT: howto manager. (line 784) -* BFD_RELOC_ARM_MOVT_PCREL: howto manager. (line 786) -* BFD_RELOC_ARM_MOVW: howto manager. (line 783) -* BFD_RELOC_ARM_MOVW_PCREL: howto manager. (line 785) -* BFD_RELOC_ARM_MULTI: howto manager. (line 864) -* BFD_RELOC_ARM_OFFSET_IMM: howto manager. (line 764) -* BFD_RELOC_ARM_OFFSET_IMM8: howto manager. (line 873) -* BFD_RELOC_ARM_PCREL_BLX: howto manager. (line 740) -* BFD_RELOC_ARM_PCREL_BRANCH: howto manager. (line 737) -* BFD_RELOC_ARM_PCREL_CALL: howto manager. (line 748) -* BFD_RELOC_ARM_PCREL_JUMP: howto manager. (line 751) -* BFD_RELOC_ARM_PLT32: howto manager. (line 795) -* BFD_RELOC_ARM_PREL31: howto manager. (line 781) -* BFD_RELOC_ARM_RELATIVE: howto manager. (line 796) -* BFD_RELOC_ARM_ROSEGREL32: howto manager. (line 773) -* BFD_RELOC_ARM_SBREL32: howto manager. (line 775) -* BFD_RELOC_ARM_SHIFT_IMM: howto manager. (line 860) -* BFD_RELOC_ARM_SMC: howto manager. (line 861) -* BFD_RELOC_ARM_SWI: howto manager. (line 863) -* BFD_RELOC_ARM_T32_ADD_IMM: howto manager. (line 857) -* BFD_RELOC_ARM_T32_ADD_PC12: howto manager. (line 859) -* BFD_RELOC_ARM_T32_CP_OFF_IMM: howto manager. (line 867) -* BFD_RELOC_ARM_T32_CP_OFF_IMM_S2: howto manager. (line 868) -* BFD_RELOC_ARM_T32_IMM12: howto manager. (line 858) -* BFD_RELOC_ARM_T32_IMMEDIATE: howto manager. (line 856) -* BFD_RELOC_ARM_T32_OFFSET_IMM: howto manager. (line 875) -* BFD_RELOC_ARM_T32_OFFSET_U8: howto manager. (line 874) -* BFD_RELOC_ARM_TARGET1: howto manager. (line 770) -* BFD_RELOC_ARM_TARGET2: howto manager. (line 777) -* BFD_RELOC_ARM_THM_TLS_CALL: howto manager. (line 811) -* BFD_RELOC_ARM_THM_TLS_DESCSEQ: howto manager. (line 813) -* BFD_RELOC_ARM_THUMB_ADD: howto manager. (line 877) -* BFD_RELOC_ARM_THUMB_ALU_ABS_G0_NC: howto manager. (line 849) -* BFD_RELOC_ARM_THUMB_ALU_ABS_G1_NC: howto manager. (line 850) -* BFD_RELOC_ARM_THUMB_ALU_ABS_G2_NC: howto manager. (line 851) -* BFD_RELOC_ARM_THUMB_ALU_ABS_G3_NC: howto manager. (line 852) -* BFD_RELOC_ARM_THUMB_IMM: howto manager. (line 878) -* BFD_RELOC_ARM_THUMB_MOVT: howto manager. (line 788) -* BFD_RELOC_ARM_THUMB_MOVT_PCREL: howto manager. (line 790) -* BFD_RELOC_ARM_THUMB_MOVW: howto manager. (line 787) -* BFD_RELOC_ARM_THUMB_MOVW_PCREL: howto manager. (line 789) -* BFD_RELOC_ARM_THUMB_OFFSET: howto manager. (line 767) -* BFD_RELOC_ARM_THUMB_SHIFT: howto manager. (line 879) -* BFD_RELOC_ARM_TLS_CALL: howto manager. (line 810) -* BFD_RELOC_ARM_TLS_DESC: howto manager. (line 814) -* BFD_RELOC_ARM_TLS_DESCSEQ: howto manager. (line 812) -* BFD_RELOC_ARM_TLS_DTPMOD32: howto manager. (line 805) -* BFD_RELOC_ARM_TLS_DTPOFF32: howto manager. (line 804) -* BFD_RELOC_ARM_TLS_GD32: howto manager. (line 801) -* BFD_RELOC_ARM_TLS_GOTDESC: howto manager. (line 809) -* BFD_RELOC_ARM_TLS_IE32: howto manager. (line 807) -* BFD_RELOC_ARM_TLS_LDM32: howto manager. (line 803) -* BFD_RELOC_ARM_TLS_LDO32: howto manager. (line 802) -* BFD_RELOC_ARM_TLS_LE32: howto manager. (line 808) -* BFD_RELOC_ARM_TLS_TPOFF32: howto manager. (line 806) -* BFD_RELOC_ARM_V4BX: howto manager. (line 845) -* BFD_RELOC_AVR_13_PCREL: howto manager. (line 1669) -* BFD_RELOC_AVR_16_PM: howto manager. (line 1672) -* BFD_RELOC_AVR_6: howto manager. (line 1740) -* BFD_RELOC_AVR_6_ADIW: howto manager. (line 1743) -* BFD_RELOC_AVR_7_PCREL: howto manager. (line 1666) -* BFD_RELOC_AVR_8_HI: howto manager. (line 1749) -* BFD_RELOC_AVR_8_HLO: howto manager. (line 1752) -* BFD_RELOC_AVR_8_LO: howto manager. (line 1746) -* BFD_RELOC_AVR_CALL: howto manager. (line 1734) -* BFD_RELOC_AVR_DIFF16: howto manager. (line 1756) -* BFD_RELOC_AVR_DIFF32: howto manager. (line 1757) -* BFD_RELOC_AVR_DIFF8: howto manager. (line 1755) -* BFD_RELOC_AVR_HH8_LDI: howto manager. (line 1681) -* BFD_RELOC_AVR_HH8_LDI_NEG: howto manager. (line 1696) -* BFD_RELOC_AVR_HH8_LDI_PM: howto manager. (line 1719) -* BFD_RELOC_AVR_HH8_LDI_PM_NEG: howto manager. (line 1730) -* BFD_RELOC_AVR_HI8_LDI: howto manager. (line 1678) -* BFD_RELOC_AVR_HI8_LDI_GS: howto manager. (line 1714) -* BFD_RELOC_AVR_HI8_LDI_NEG: howto manager. (line 1692) -* BFD_RELOC_AVR_HI8_LDI_PM: howto manager. (line 1711) -* BFD_RELOC_AVR_HI8_LDI_PM_NEG: howto manager. (line 1726) -* BFD_RELOC_AVR_LDI: howto manager. (line 1737) -* BFD_RELOC_AVR_LDS_STS_16: howto manager. (line 1764) -* BFD_RELOC_AVR_LO8_LDI: howto manager. (line 1675) -* BFD_RELOC_AVR_LO8_LDI_GS: howto manager. (line 1706) -* BFD_RELOC_AVR_LO8_LDI_NEG: howto manager. (line 1688) -* BFD_RELOC_AVR_LO8_LDI_PM: howto manager. (line 1703) -* BFD_RELOC_AVR_LO8_LDI_PM_NEG: howto manager. (line 1723) -* BFD_RELOC_AVR_MS8_LDI: howto manager. (line 1685) -* BFD_RELOC_AVR_MS8_LDI_NEG: howto manager. (line 1700) -* BFD_RELOC_AVR_PORT5: howto manager. (line 1770) -* BFD_RELOC_AVR_PORT6: howto manager. (line 1767) -* BFD_RELOC_BFIN_10_PCREL: howto manager. (line 1061) -* BFD_RELOC_BFIN_11_PCREL: howto manager. (line 1063) -* BFD_RELOC_BFIN_12_PCREL_JUMP: howto manager. (line 1065) -* BFD_RELOC_BFIN_12_PCREL_JUMP_S: howto manager. (line 1067) -* BFD_RELOC_BFIN_16_HIGH: howto manager. (line 1053) -* BFD_RELOC_BFIN_16_IMM: howto manager. (line 1051) -* BFD_RELOC_BFIN_16_LOW: howto manager. (line 1059) -* BFD_RELOC_BFIN_24_PCREL_CALL_X: howto manager. (line 1069) -* BFD_RELOC_BFIN_24_PCREL_JUMP_L: howto manager. (line 1071) -* BFD_RELOC_BFIN_4_PCREL: howto manager. (line 1055) -* BFD_RELOC_BFIN_5_PCREL: howto manager. (line 1057) -* BFD_RELOC_BFIN_FUNCDESC: howto manager. (line 1076) -* BFD_RELOC_BFIN_FUNCDESC_GOT17M4: howto manager. (line 1077) -* BFD_RELOC_BFIN_FUNCDESC_GOTHI: howto manager. (line 1078) -* BFD_RELOC_BFIN_FUNCDESC_GOTLO: howto manager. (line 1079) -* BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4: howto manager. (line 1081) -* BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI: howto manager. (line 1082) -* BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO: howto manager. (line 1083) -* BFD_RELOC_BFIN_FUNCDESC_VALUE: howto manager. (line 1080) -* BFD_RELOC_BFIN_GOT: howto manager. (line 1088) -* BFD_RELOC_BFIN_GOT17M4: howto manager. (line 1073) -* BFD_RELOC_BFIN_GOTHI: howto manager. (line 1074) -* BFD_RELOC_BFIN_GOTLO: howto manager. (line 1075) -* BFD_RELOC_BFIN_GOTOFF17M4: howto manager. (line 1084) -* BFD_RELOC_BFIN_GOTOFFHI: howto manager. (line 1085) -* BFD_RELOC_BFIN_GOTOFFLO: howto manager. (line 1086) -* BFD_RELOC_BFIN_PLTPC: howto manager. (line 1090) -* BFD_RELOC_C6000_ABS_H16: howto manager. (line 1511) -* BFD_RELOC_C6000_ABS_L16: howto manager. (line 1510) -* BFD_RELOC_C6000_ABS_S16: howto manager. (line 1509) -* BFD_RELOC_C6000_ALIGN: howto manager. (line 1532) -* BFD_RELOC_C6000_COPY: howto manager. (line 1527) -* BFD_RELOC_C6000_DSBT_INDEX: howto manager. (line 1525) -* BFD_RELOC_C6000_EHTYPE: howto manager. (line 1529) -* BFD_RELOC_C6000_FPHEAD: howto manager. (line 1533) -* BFD_RELOC_C6000_JUMP_SLOT: howto manager. (line 1528) -* BFD_RELOC_C6000_NOCMP: howto manager. (line 1534) -* BFD_RELOC_C6000_PCR_H16: howto manager. (line 1530) -* BFD_RELOC_C6000_PCR_L16: howto manager. (line 1531) -* BFD_RELOC_C6000_PCR_S10: howto manager. (line 1507) -* BFD_RELOC_C6000_PCR_S12: howto manager. (line 1506) -* BFD_RELOC_C6000_PCR_S21: howto manager. (line 1505) -* BFD_RELOC_C6000_PCR_S7: howto manager. (line 1508) -* BFD_RELOC_C6000_PREL31: howto manager. (line 1526) -* BFD_RELOC_C6000_SBR_GOT_H16_W: howto manager. (line 1524) -* BFD_RELOC_C6000_SBR_GOT_L16_W: howto manager. (line 1523) -* BFD_RELOC_C6000_SBR_GOT_U15_W: howto manager. (line 1522) -* BFD_RELOC_C6000_SBR_H16_B: howto manager. (line 1519) -* BFD_RELOC_C6000_SBR_H16_H: howto manager. (line 1520) -* BFD_RELOC_C6000_SBR_H16_W: howto manager. (line 1521) -* BFD_RELOC_C6000_SBR_L16_B: howto manager. (line 1516) -* BFD_RELOC_C6000_SBR_L16_H: howto manager. (line 1517) -* BFD_RELOC_C6000_SBR_L16_W: howto manager. (line 1518) -* BFD_RELOC_C6000_SBR_S16: howto manager. (line 1515) -* BFD_RELOC_C6000_SBR_U15_B: howto manager. (line 1512) -* BFD_RELOC_C6000_SBR_U15_H: howto manager. (line 1513) -* BFD_RELOC_C6000_SBR_U15_W: howto manager. (line 1514) + (line 3053) +* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0: howto manager. (line 2946) +* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC: howto manager. (line 2948) +* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1: howto manager. (line 2950) +* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC: howto manager. (line 2952) +* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2: howto manager. (line 2954) +* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12: howto manager. (line 2966) +* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12: howto manager. (line 2968) +* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC: howto manager. (line 2970) +* BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12: howto manager. (line 2972) +* BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12_NC: howto manager. + (line 2975) +* BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12: howto manager. (line 2978) +* BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12_NC: howto manager. + (line 2981) +* BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12: howto manager. (line 2984) +* BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12_NC: howto manager. + (line 2987) +* BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12: howto manager. (line 2990) +* BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12_NC: howto manager. + (line 2993) +* BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12: howto manager. (line 3056) +* BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12_NC: howto manager. (line 3060) +* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0: howto manager. (line 2962) +* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC: howto manager. (line 2964) +* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1: howto manager. (line 2958) +* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC: howto manager. (line 2960) +* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2: howto manager. (line 2956) +* BFD_RELOC_AARCH64_TLS_DTPMOD: howto manager. (line 3026) +* BFD_RELOC_AARCH64_TLS_DTPREL: howto manager. (line 3028) +* BFD_RELOC_AARCH64_TLS_TPREL: howto manager. (line 3030) +* BFD_RELOC_AARCH64_TSTBR14: howto manager. (line 2813) +* BFD_RELOC_AC_SECTOFF_S9: howto manager. (line 1018) +* BFD_RELOC_AC_SECTOFF_S9_1: howto manager. (line 1019) +* BFD_RELOC_AC_SECTOFF_S9_2: howto manager. (line 1020) +* BFD_RELOC_AC_SECTOFF_U8: howto manager. (line 1015) +* BFD_RELOC_AC_SECTOFF_U8_1: howto manager. (line 1016) +* BFD_RELOC_AC_SECTOFF_U8_2: howto manager. (line 1017) +* BFD_RELOC_ALPHA_BOH: howto manager. (line 288) +* BFD_RELOC_ALPHA_BRSGP: howto manager. (line 275) +* BFD_RELOC_ALPHA_BSR: howto manager. (line 282) +* BFD_RELOC_ALPHA_CODEADDR: howto manager. (line 268) +* BFD_RELOC_ALPHA_DTPMOD64: howto manager. (line 293) +* BFD_RELOC_ALPHA_DTPREL16: howto manager. (line 298) +* BFD_RELOC_ALPHA_DTPREL64: howto manager. (line 295) +* BFD_RELOC_ALPHA_DTPREL_HI16: howto manager. (line 296) +* BFD_RELOC_ALPHA_DTPREL_LO16: howto manager. (line 297) +* BFD_RELOC_ALPHA_ELF_LITERAL: howto manager. (line 236) +* BFD_RELOC_ALPHA_GOTDTPREL16: howto manager. (line 294) +* BFD_RELOC_ALPHA_GOTTPREL16: howto manager. (line 299) +* BFD_RELOC_ALPHA_GPDISP: howto manager. (line 231) +* BFD_RELOC_ALPHA_GPDISP_HI16: howto manager. (line 219) +* BFD_RELOC_ALPHA_GPDISP_LO16: howto manager. (line 226) +* BFD_RELOC_ALPHA_GPREL_HI16: howto manager. (line 271) +* BFD_RELOC_ALPHA_GPREL_LO16: howto manager. (line 272) +* BFD_RELOC_ALPHA_HINT: howto manager. (line 261) +* BFD_RELOC_ALPHA_LDA: howto manager. (line 285) +* BFD_RELOC_ALPHA_LINKAGE: howto manager. (line 265) +* BFD_RELOC_ALPHA_LITERAL: howto manager. (line 235) +* BFD_RELOC_ALPHA_LITUSE: howto manager. (line 237) +* BFD_RELOC_ALPHA_NOP: howto manager. (line 279) +* BFD_RELOC_ALPHA_TLSGD: howto manager. (line 291) +* BFD_RELOC_ALPHA_TLSLDM: howto manager. (line 292) +* BFD_RELOC_ALPHA_TPREL16: howto manager. (line 303) +* BFD_RELOC_ALPHA_TPREL64: howto manager. (line 300) +* BFD_RELOC_ALPHA_TPREL_HI16: howto manager. (line 301) +* BFD_RELOC_ALPHA_TPREL_LO16: howto manager. (line 302) +* BFD_RELOC_ARC_16: howto manager. (line 987) +* BFD_RELOC_ARC_24: howto manager. (line 988) +* BFD_RELOC_ARC_32: howto manager. (line 989) +* BFD_RELOC_ARC_32_ME: howto manager. (line 1009) +* BFD_RELOC_ARC_32_ME_S: howto manager. (line 1010) +* BFD_RELOC_ARC_32_PCREL: howto manager. (line 1027) +* BFD_RELOC_ARC_8: howto manager. (line 986) +* BFD_RELOC_ARC_COPY: howto manager. (line 1032) +* BFD_RELOC_ARC_GLOB_DAT: howto manager. (line 1033) +* BFD_RELOC_ARC_GOT32: howto manager. (line 1029) +* BFD_RELOC_ARC_GOTOFF: howto manager. (line 1036) +* BFD_RELOC_ARC_GOTPC: howto manager. (line 1037) +* BFD_RELOC_ARC_GOTPC32: howto manager. (line 1030) +* BFD_RELOC_ARC_JLI_SECTOFF: howto manager. (line 1053) +* BFD_RELOC_ARC_JMP_SLOT: howto manager. (line 1034) +* BFD_RELOC_ARC_N16: howto manager. (line 991) +* BFD_RELOC_ARC_N24: howto manager. (line 992) +* BFD_RELOC_ARC_N32: howto manager. (line 993) +* BFD_RELOC_ARC_N32_ME: howto manager. (line 1011) +* BFD_RELOC_ARC_N8: howto manager. (line 990) +* BFD_RELOC_ARC_NONE: howto manager. (line 985) +* BFD_RELOC_ARC_NPS_CMEM16: howto manager. (line 1052) +* BFD_RELOC_ARC_PC32: howto manager. (line 1028) +* BFD_RELOC_ARC_PLT32: howto manager. (line 1031) +* BFD_RELOC_ARC_RELATIVE: howto manager. (line 1035) +* BFD_RELOC_ARC_S13_PCREL: howto manager. (line 1007) +* BFD_RELOC_ARC_S21H_PCREL: howto manager. (line 996) +* BFD_RELOC_ARC_S21H_PCREL_PLT: howto manager. (line 1051) +* BFD_RELOC_ARC_S21W_PCREL: howto manager. (line 997) +* BFD_RELOC_ARC_S21W_PCREL_PLT: howto manager. (line 1038) +* BFD_RELOC_ARC_S25H_PCREL: howto manager. (line 998) +* BFD_RELOC_ARC_S25H_PCREL_PLT: howto manager. (line 1039) +* BFD_RELOC_ARC_S25W_PCREL: howto manager. (line 999) +* BFD_RELOC_ARC_S25W_PCREL_PLT: howto manager. (line 1050) +* BFD_RELOC_ARC_SDA: howto manager. (line 994) +* BFD_RELOC_ARC_SDA16_LD: howto manager. (line 1004) +* BFD_RELOC_ARC_SDA16_LD1: howto manager. (line 1005) +* BFD_RELOC_ARC_SDA16_LD2: howto manager. (line 1006) +* BFD_RELOC_ARC_SDA16_ST2: howto manager. (line 1026) +* BFD_RELOC_ARC_SDA32: howto manager. (line 1000) +* BFD_RELOC_ARC_SDA32_ME: howto manager. (line 1013) +* BFD_RELOC_ARC_SDA_12: howto manager. (line 1025) +* BFD_RELOC_ARC_SDA_LDST: howto manager. (line 1001) +* BFD_RELOC_ARC_SDA_LDST1: howto manager. (line 1002) +* BFD_RELOC_ARC_SDA_LDST2: howto manager. (line 1003) +* BFD_RELOC_ARC_SECTOFF: howto manager. (line 995) +* BFD_RELOC_ARC_SECTOFF_1: howto manager. (line 1023) +* BFD_RELOC_ARC_SECTOFF_2: howto manager. (line 1024) +* BFD_RELOC_ARC_SECTOFF_ME: howto manager. (line 1012) +* BFD_RELOC_ARC_SECTOFF_ME_1: howto manager. (line 1021) +* BFD_RELOC_ARC_SECTOFF_ME_2: howto manager. (line 1022) +* BFD_RELOC_ARC_TLS_DTPMOD: howto manager. (line 1040) +* BFD_RELOC_ARC_TLS_DTPOFF: howto manager. (line 1046) +* BFD_RELOC_ARC_TLS_DTPOFF_S9: howto manager. (line 1047) +* BFD_RELOC_ARC_TLS_GD_CALL: howto manager. (line 1044) +* BFD_RELOC_ARC_TLS_GD_GOT: howto manager. (line 1042) +* BFD_RELOC_ARC_TLS_GD_LD: howto manager. (line 1043) +* BFD_RELOC_ARC_TLS_IE_GOT: howto manager. (line 1045) +* BFD_RELOC_ARC_TLS_LE_32: howto manager. (line 1049) +* BFD_RELOC_ARC_TLS_LE_S9: howto manager. (line 1048) +* BFD_RELOC_ARC_TLS_TPOFF: howto manager. (line 1041) +* BFD_RELOC_ARC_W: howto manager. (line 1008) +* BFD_RELOC_ARC_W_ME: howto manager. (line 1014) +* BFD_RELOC_ARM_ADRL_IMMEDIATE: howto manager. (line 859) +* BFD_RELOC_ARM_ADR_IMM: howto manager. (line 873) +* BFD_RELOC_ARM_ALU_PC_G0: howto manager. (line 821) +* BFD_RELOC_ARM_ALU_PC_G0_NC: howto manager. (line 820) +* BFD_RELOC_ARM_ALU_PC_G1: howto manager. (line 823) +* BFD_RELOC_ARM_ALU_PC_G1_NC: howto manager. (line 822) +* BFD_RELOC_ARM_ALU_PC_G2: howto manager. (line 824) +* BFD_RELOC_ARM_ALU_SB_G0: howto manager. (line 835) +* BFD_RELOC_ARM_ALU_SB_G0_NC: howto manager. (line 834) +* BFD_RELOC_ARM_ALU_SB_G1: howto manager. (line 837) +* BFD_RELOC_ARM_ALU_SB_G1_NC: howto manager. (line 836) +* BFD_RELOC_ARM_ALU_SB_G2: howto manager. (line 838) +* BFD_RELOC_ARM_CP_OFF_IMM: howto manager. (line 869) +* BFD_RELOC_ARM_CP_OFF_IMM_S2: howto manager. (line 870) +* BFD_RELOC_ARM_FUNCDESC: howto manager. (line 790) +* BFD_RELOC_ARM_FUNCDESC_VALUE: howto manager. (line 791) +* BFD_RELOC_ARM_GLOB_DAT: howto manager. (line 797) +* BFD_RELOC_ARM_GOT32: howto manager. (line 798) +* BFD_RELOC_ARM_GOTFUNCDESC: howto manager. (line 788) +* BFD_RELOC_ARM_GOTOFF: howto manager. (line 801) +* BFD_RELOC_ARM_GOTOFFFUNCDESC: howto manager. (line 789) +* BFD_RELOC_ARM_GOTPC: howto manager. (line 802) +* BFD_RELOC_ARM_GOT_PREL: howto manager. (line 803) +* BFD_RELOC_ARM_HVC: howto manager. (line 866) +* BFD_RELOC_ARM_HWLITERAL: howto manager. (line 880) +* BFD_RELOC_ARM_IMMEDIATE: howto manager. (line 858) +* BFD_RELOC_ARM_IN_POOL: howto manager. (line 876) +* BFD_RELOC_ARM_IRELATIVE: howto manager. (line 851) +* BFD_RELOC_ARM_JUMP_SLOT: howto manager. (line 796) +* BFD_RELOC_ARM_LDC_PC_G0: howto manager. (line 831) +* BFD_RELOC_ARM_LDC_PC_G1: howto manager. (line 832) +* BFD_RELOC_ARM_LDC_PC_G2: howto manager. (line 833) +* BFD_RELOC_ARM_LDC_SB_G0: howto manager. (line 845) +* BFD_RELOC_ARM_LDC_SB_G1: howto manager. (line 846) +* BFD_RELOC_ARM_LDC_SB_G2: howto manager. (line 847) +* BFD_RELOC_ARM_LDRS_PC_G0: howto manager. (line 828) +* BFD_RELOC_ARM_LDRS_PC_G1: howto manager. (line 829) +* BFD_RELOC_ARM_LDRS_PC_G2: howto manager. (line 830) +* BFD_RELOC_ARM_LDRS_SB_G0: howto manager. (line 842) +* BFD_RELOC_ARM_LDRS_SB_G1: howto manager. (line 843) +* BFD_RELOC_ARM_LDRS_SB_G2: howto manager. (line 844) +* BFD_RELOC_ARM_LDR_IMM: howto manager. (line 874) +* BFD_RELOC_ARM_LDR_PC_G0: howto manager. (line 825) +* BFD_RELOC_ARM_LDR_PC_G1: howto manager. (line 826) +* BFD_RELOC_ARM_LDR_PC_G2: howto manager. (line 827) +* BFD_RELOC_ARM_LDR_SB_G0: howto manager. (line 839) +* BFD_RELOC_ARM_LDR_SB_G1: howto manager. (line 840) +* BFD_RELOC_ARM_LDR_SB_G2: howto manager. (line 841) +* BFD_RELOC_ARM_LITERAL: howto manager. (line 875) +* BFD_RELOC_ARM_MOVT: howto manager. (line 780) +* BFD_RELOC_ARM_MOVT_PCREL: howto manager. (line 782) +* BFD_RELOC_ARM_MOVW: howto manager. (line 779) +* BFD_RELOC_ARM_MOVW_PCREL: howto manager. (line 781) +* BFD_RELOC_ARM_MULTI: howto manager. (line 868) +* BFD_RELOC_ARM_OFFSET_IMM: howto manager. (line 760) +* BFD_RELOC_ARM_OFFSET_IMM8: howto manager. (line 877) +* BFD_RELOC_ARM_PCREL_BLX: howto manager. (line 736) +* BFD_RELOC_ARM_PCREL_BRANCH: howto manager. (line 733) +* BFD_RELOC_ARM_PCREL_CALL: howto manager. (line 744) +* BFD_RELOC_ARM_PCREL_JUMP: howto manager. (line 747) +* BFD_RELOC_ARM_PLT32: howto manager. (line 799) +* BFD_RELOC_ARM_PREL31: howto manager. (line 777) +* BFD_RELOC_ARM_RELATIVE: howto manager. (line 800) +* BFD_RELOC_ARM_ROSEGREL32: howto manager. (line 769) +* BFD_RELOC_ARM_SBREL32: howto manager. (line 771) +* BFD_RELOC_ARM_SHIFT_IMM: howto manager. (line 864) +* BFD_RELOC_ARM_SMC: howto manager. (line 865) +* BFD_RELOC_ARM_SWI: howto manager. (line 867) +* BFD_RELOC_ARM_T32_ADD_IMM: howto manager. (line 861) +* BFD_RELOC_ARM_T32_ADD_PC12: howto manager. (line 863) +* BFD_RELOC_ARM_T32_CP_OFF_IMM: howto manager. (line 871) +* BFD_RELOC_ARM_T32_CP_OFF_IMM_S2: howto manager. (line 872) +* BFD_RELOC_ARM_T32_IMM12: howto manager. (line 862) +* BFD_RELOC_ARM_T32_IMMEDIATE: howto manager. (line 860) +* BFD_RELOC_ARM_T32_OFFSET_IMM: howto manager. (line 879) +* BFD_RELOC_ARM_T32_OFFSET_U8: howto manager. (line 878) +* BFD_RELOC_ARM_TARGET1: howto manager. (line 766) +* BFD_RELOC_ARM_TARGET2: howto manager. (line 773) +* BFD_RELOC_ARM_THM_TLS_CALL: howto manager. (line 815) +* BFD_RELOC_ARM_THM_TLS_DESCSEQ: howto manager. (line 817) +* BFD_RELOC_ARM_THUMB_ADD: howto manager. (line 881) +* BFD_RELOC_ARM_THUMB_ALU_ABS_G0_NC: howto manager. (line 853) +* BFD_RELOC_ARM_THUMB_ALU_ABS_G1_NC: howto manager. (line 854) +* BFD_RELOC_ARM_THUMB_ALU_ABS_G2_NC: howto manager. (line 855) +* BFD_RELOC_ARM_THUMB_ALU_ABS_G3_NC: howto manager. (line 856) +* BFD_RELOC_ARM_THUMB_IMM: howto manager. (line 882) +* BFD_RELOC_ARM_THUMB_MOVT: howto manager. (line 784) +* BFD_RELOC_ARM_THUMB_MOVT_PCREL: howto manager. (line 786) +* BFD_RELOC_ARM_THUMB_MOVW: howto manager. (line 783) +* BFD_RELOC_ARM_THUMB_MOVW_PCREL: howto manager. (line 785) +* BFD_RELOC_ARM_THUMB_OFFSET: howto manager. (line 763) +* BFD_RELOC_ARM_THUMB_SHIFT: howto manager. (line 883) +* BFD_RELOC_ARM_TLS_CALL: howto manager. (line 814) +* BFD_RELOC_ARM_TLS_DESC: howto manager. (line 818) +* BFD_RELOC_ARM_TLS_DESCSEQ: howto manager. (line 816) +* BFD_RELOC_ARM_TLS_DTPMOD32: howto manager. (line 809) +* BFD_RELOC_ARM_TLS_DTPOFF32: howto manager. (line 808) +* BFD_RELOC_ARM_TLS_GD32: howto manager. (line 805) +* BFD_RELOC_ARM_TLS_GD32_FDPIC: howto manager. (line 792) +* BFD_RELOC_ARM_TLS_GOTDESC: howto manager. (line 813) +* BFD_RELOC_ARM_TLS_IE32: howto manager. (line 811) +* BFD_RELOC_ARM_TLS_IE32_FDPIC: howto manager. (line 794) +* BFD_RELOC_ARM_TLS_LDM32: howto manager. (line 807) +* BFD_RELOC_ARM_TLS_LDM32_FDPIC: howto manager. (line 793) +* BFD_RELOC_ARM_TLS_LDO32: howto manager. (line 806) +* BFD_RELOC_ARM_TLS_LE32: howto manager. (line 812) +* BFD_RELOC_ARM_TLS_TPOFF32: howto manager. (line 810) +* BFD_RELOC_ARM_V4BX: howto manager. (line 849) +* BFD_RELOC_AVR_13_PCREL: howto manager. (line 1673) +* BFD_RELOC_AVR_16_PM: howto manager. (line 1676) +* BFD_RELOC_AVR_6: howto manager. (line 1744) +* BFD_RELOC_AVR_6_ADIW: howto manager. (line 1747) +* BFD_RELOC_AVR_7_PCREL: howto manager. (line 1670) +* BFD_RELOC_AVR_8_HI: howto manager. (line 1753) +* BFD_RELOC_AVR_8_HLO: howto manager. (line 1756) +* BFD_RELOC_AVR_8_LO: howto manager. (line 1750) +* BFD_RELOC_AVR_CALL: howto manager. (line 1738) +* BFD_RELOC_AVR_DIFF16: howto manager. (line 1760) +* BFD_RELOC_AVR_DIFF32: howto manager. (line 1761) +* BFD_RELOC_AVR_DIFF8: howto manager. (line 1759) +* BFD_RELOC_AVR_HH8_LDI: howto manager. (line 1685) +* BFD_RELOC_AVR_HH8_LDI_NEG: howto manager. (line 1700) +* BFD_RELOC_AVR_HH8_LDI_PM: howto manager. (line 1723) +* BFD_RELOC_AVR_HH8_LDI_PM_NEG: howto manager. (line 1734) +* BFD_RELOC_AVR_HI8_LDI: howto manager. (line 1682) +* BFD_RELOC_AVR_HI8_LDI_GS: howto manager. (line 1718) +* BFD_RELOC_AVR_HI8_LDI_NEG: howto manager. (line 1696) +* BFD_RELOC_AVR_HI8_LDI_PM: howto manager. (line 1715) +* BFD_RELOC_AVR_HI8_LDI_PM_NEG: howto manager. (line 1730) +* BFD_RELOC_AVR_LDI: howto manager. (line 1741) +* BFD_RELOC_AVR_LDS_STS_16: howto manager. (line 1768) +* BFD_RELOC_AVR_LO8_LDI: howto manager. (line 1679) +* BFD_RELOC_AVR_LO8_LDI_GS: howto manager. (line 1710) +* BFD_RELOC_AVR_LO8_LDI_NEG: howto manager. (line 1692) +* BFD_RELOC_AVR_LO8_LDI_PM: howto manager. (line 1707) +* BFD_RELOC_AVR_LO8_LDI_PM_NEG: howto manager. (line 1727) +* BFD_RELOC_AVR_MS8_LDI: howto manager. (line 1689) +* BFD_RELOC_AVR_MS8_LDI_NEG: howto manager. (line 1704) +* BFD_RELOC_AVR_PORT5: howto manager. (line 1774) +* BFD_RELOC_AVR_PORT6: howto manager. (line 1771) +* BFD_RELOC_BFIN_10_PCREL: howto manager. (line 1065) +* BFD_RELOC_BFIN_11_PCREL: howto manager. (line 1067) +* BFD_RELOC_BFIN_12_PCREL_JUMP: howto manager. (line 1069) +* BFD_RELOC_BFIN_12_PCREL_JUMP_S: howto manager. (line 1071) +* BFD_RELOC_BFIN_16_HIGH: howto manager. (line 1057) +* BFD_RELOC_BFIN_16_IMM: howto manager. (line 1055) +* BFD_RELOC_BFIN_16_LOW: howto manager. (line 1063) +* BFD_RELOC_BFIN_24_PCREL_CALL_X: howto manager. (line 1073) +* BFD_RELOC_BFIN_24_PCREL_JUMP_L: howto manager. (line 1075) +* BFD_RELOC_BFIN_4_PCREL: howto manager. (line 1059) +* BFD_RELOC_BFIN_5_PCREL: howto manager. (line 1061) +* BFD_RELOC_BFIN_FUNCDESC: howto manager. (line 1080) +* BFD_RELOC_BFIN_FUNCDESC_GOT17M4: howto manager. (line 1081) +* BFD_RELOC_BFIN_FUNCDESC_GOTHI: howto manager. (line 1082) +* BFD_RELOC_BFIN_FUNCDESC_GOTLO: howto manager. (line 1083) +* BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4: howto manager. (line 1085) +* BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI: howto manager. (line 1086) +* BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO: howto manager. (line 1087) +* BFD_RELOC_BFIN_FUNCDESC_VALUE: howto manager. (line 1084) +* BFD_RELOC_BFIN_GOT: howto manager. (line 1092) +* BFD_RELOC_BFIN_GOT17M4: howto manager. (line 1077) +* BFD_RELOC_BFIN_GOTHI: howto manager. (line 1078) +* BFD_RELOC_BFIN_GOTLO: howto manager. (line 1079) +* BFD_RELOC_BFIN_GOTOFF17M4: howto manager. (line 1088) +* BFD_RELOC_BFIN_GOTOFFHI: howto manager. (line 1089) +* BFD_RELOC_BFIN_GOTOFFLO: howto manager. (line 1090) +* BFD_RELOC_BFIN_PLTPC: howto manager. (line 1094) +* BFD_RELOC_C6000_ABS_H16: howto manager. (line 1515) +* BFD_RELOC_C6000_ABS_L16: howto manager. (line 1514) +* BFD_RELOC_C6000_ABS_S16: howto manager. (line 1513) +* BFD_RELOC_C6000_ALIGN: howto manager. (line 1536) +* BFD_RELOC_C6000_COPY: howto manager. (line 1531) +* BFD_RELOC_C6000_DSBT_INDEX: howto manager. (line 1529) +* BFD_RELOC_C6000_EHTYPE: howto manager. (line 1533) +* BFD_RELOC_C6000_FPHEAD: howto manager. (line 1537) +* BFD_RELOC_C6000_JUMP_SLOT: howto manager. (line 1532) +* BFD_RELOC_C6000_NOCMP: howto manager. (line 1538) +* BFD_RELOC_C6000_PCR_H16: howto manager. (line 1534) +* BFD_RELOC_C6000_PCR_L16: howto manager. (line 1535) +* BFD_RELOC_C6000_PCR_S10: howto manager. (line 1511) +* BFD_RELOC_C6000_PCR_S12: howto manager. (line 1510) +* BFD_RELOC_C6000_PCR_S21: howto manager. (line 1509) +* BFD_RELOC_C6000_PCR_S7: howto manager. (line 1512) +* BFD_RELOC_C6000_PREL31: howto manager. (line 1530) +* BFD_RELOC_C6000_SBR_GOT_H16_W: howto manager. (line 1528) +* BFD_RELOC_C6000_SBR_GOT_L16_W: howto manager. (line 1527) +* BFD_RELOC_C6000_SBR_GOT_U15_W: howto manager. (line 1526) +* BFD_RELOC_C6000_SBR_H16_B: howto manager. (line 1523) +* BFD_RELOC_C6000_SBR_H16_H: howto manager. (line 1524) +* BFD_RELOC_C6000_SBR_H16_W: howto manager. (line 1525) +* BFD_RELOC_C6000_SBR_L16_B: howto manager. (line 1520) +* BFD_RELOC_C6000_SBR_L16_H: howto manager. (line 1521) +* BFD_RELOC_C6000_SBR_L16_W: howto manager. (line 1522) +* BFD_RELOC_C6000_SBR_S16: howto manager. (line 1519) +* BFD_RELOC_C6000_SBR_U15_B: howto manager. (line 1516) +* BFD_RELOC_C6000_SBR_U15_H: howto manager. (line 1517) +* BFD_RELOC_C6000_SBR_U15_W: howto manager. (line 1518) * bfd_reloc_code_type: howto manager. (line 9) -* BFD_RELOC_CR16_ABS20: howto manager. (line 2248) -* BFD_RELOC_CR16_ABS24: howto manager. (line 2249) -* BFD_RELOC_CR16_DISP16: howto manager. (line 2259) -* BFD_RELOC_CR16_DISP20: howto manager. (line 2260) -* BFD_RELOC_CR16_DISP24: howto manager. (line 2261) -* BFD_RELOC_CR16_DISP24a: howto manager. (line 2262) -* BFD_RELOC_CR16_DISP4: howto manager. (line 2257) -* BFD_RELOC_CR16_DISP8: howto manager. (line 2258) -* BFD_RELOC_CR16_GLOB_DAT: howto manager. (line 2268) -* BFD_RELOC_CR16_GOTC_REGREL20: howto manager. (line 2267) -* BFD_RELOC_CR16_GOT_REGREL20: howto manager. (line 2266) -* BFD_RELOC_CR16_IMM16: howto manager. (line 2252) -* BFD_RELOC_CR16_IMM20: howto manager. (line 2253) -* BFD_RELOC_CR16_IMM24: howto manager. (line 2254) -* BFD_RELOC_CR16_IMM32: howto manager. (line 2255) -* BFD_RELOC_CR16_IMM32a: howto manager. (line 2256) -* BFD_RELOC_CR16_IMM4: howto manager. (line 2250) -* BFD_RELOC_CR16_IMM8: howto manager. (line 2251) -* BFD_RELOC_CR16_NUM16: howto manager. (line 2237) -* BFD_RELOC_CR16_NUM32: howto manager. (line 2238) -* BFD_RELOC_CR16_NUM32a: howto manager. (line 2239) -* BFD_RELOC_CR16_NUM8: howto manager. (line 2236) -* BFD_RELOC_CR16_REGREL0: howto manager. (line 2240) -* BFD_RELOC_CR16_REGREL14: howto manager. (line 2243) -* BFD_RELOC_CR16_REGREL14a: howto manager. (line 2244) -* BFD_RELOC_CR16_REGREL16: howto manager. (line 2245) -* BFD_RELOC_CR16_REGREL20: howto manager. (line 2246) -* BFD_RELOC_CR16_REGREL20a: howto manager. (line 2247) -* BFD_RELOC_CR16_REGREL4: howto manager. (line 2241) -* BFD_RELOC_CR16_REGREL4a: howto manager. (line 2242) -* BFD_RELOC_CR16_SWITCH16: howto manager. (line 2264) -* BFD_RELOC_CR16_SWITCH32: howto manager. (line 2265) -* BFD_RELOC_CR16_SWITCH8: howto manager. (line 2263) -* BFD_RELOC_CRIS_16_DTPREL: howto manager. (line 2328) -* BFD_RELOC_CRIS_16_GOT: howto manager. (line 2310) -* BFD_RELOC_CRIS_16_GOTPLT: howto manager. (line 2314) -* BFD_RELOC_CRIS_16_GOT_GD: howto manager. (line 2324) -* BFD_RELOC_CRIS_16_GOT_TPREL: howto manager. (line 2330) -* BFD_RELOC_CRIS_16_TPREL: howto manager. (line 2332) -* BFD_RELOC_CRIS_32_DTPREL: howto manager. (line 2327) -* BFD_RELOC_CRIS_32_GD: howto manager. (line 2325) -* BFD_RELOC_CRIS_32_GOT: howto manager. (line 2308) -* BFD_RELOC_CRIS_32_GOTPLT: howto manager. (line 2312) -* BFD_RELOC_CRIS_32_GOTREL: howto manager. (line 2316) -* BFD_RELOC_CRIS_32_GOT_GD: howto manager. (line 2323) -* BFD_RELOC_CRIS_32_GOT_TPREL: howto manager. (line 2329) -* BFD_RELOC_CRIS_32_IE: howto manager. (line 2334) -* BFD_RELOC_CRIS_32_PLT_GOTREL: howto manager. (line 2318) -* BFD_RELOC_CRIS_32_PLT_PCREL: howto manager. (line 2320) -* BFD_RELOC_CRIS_32_TPREL: howto manager. (line 2331) -* BFD_RELOC_CRIS_BDISP8: howto manager. (line 2291) -* BFD_RELOC_CRIS_COPY: howto manager. (line 2303) -* BFD_RELOC_CRIS_DTP: howto manager. (line 2326) -* BFD_RELOC_CRIS_DTPMOD: howto manager. (line 2333) -* BFD_RELOC_CRIS_GLOB_DAT: howto manager. (line 2304) -* BFD_RELOC_CRIS_JUMP_SLOT: howto manager. (line 2305) -* BFD_RELOC_CRIS_LAPCQ_OFFSET: howto manager. (line 2299) -* BFD_RELOC_CRIS_RELATIVE: howto manager. (line 2306) -* BFD_RELOC_CRIS_SIGNED_16: howto manager. (line 2297) -* BFD_RELOC_CRIS_SIGNED_6: howto manager. (line 2293) -* BFD_RELOC_CRIS_SIGNED_8: howto manager. (line 2295) -* BFD_RELOC_CRIS_UNSIGNED_16: howto manager. (line 2298) -* BFD_RELOC_CRIS_UNSIGNED_4: howto manager. (line 2300) -* BFD_RELOC_CRIS_UNSIGNED_5: howto manager. (line 2292) -* BFD_RELOC_CRIS_UNSIGNED_6: howto manager. (line 2294) -* BFD_RELOC_CRIS_UNSIGNED_8: howto manager. (line 2296) -* BFD_RELOC_CRX_ABS16: howto manager. (line 2280) -* BFD_RELOC_CRX_ABS32: howto manager. (line 2281) -* BFD_RELOC_CRX_IMM16: howto manager. (line 2285) -* BFD_RELOC_CRX_IMM32: howto manager. (line 2286) -* BFD_RELOC_CRX_NUM16: howto manager. (line 2283) -* BFD_RELOC_CRX_NUM32: howto manager. (line 2284) -* BFD_RELOC_CRX_NUM8: howto manager. (line 2282) -* BFD_RELOC_CRX_REGREL12: howto manager. (line 2276) -* BFD_RELOC_CRX_REGREL22: howto manager. (line 2277) -* BFD_RELOC_CRX_REGREL28: howto manager. (line 2278) -* BFD_RELOC_CRX_REGREL32: howto manager. (line 2279) -* BFD_RELOC_CRX_REL16: howto manager. (line 2273) -* BFD_RELOC_CRX_REL24: howto manager. (line 2274) -* BFD_RELOC_CRX_REL32: howto manager. (line 2275) -* BFD_RELOC_CRX_REL4: howto manager. (line 2270) -* BFD_RELOC_CRX_REL8: howto manager. (line 2271) -* BFD_RELOC_CRX_REL8_CMP: howto manager. (line 2272) -* BFD_RELOC_CRX_SWITCH16: howto manager. (line 2288) -* BFD_RELOC_CRX_SWITCH32: howto manager. (line 2289) -* BFD_RELOC_CRX_SWITCH8: howto manager. (line 2287) -* BFD_RELOC_CTOR: howto manager. (line 732) -* BFD_RELOC_D10V_10_PCREL_L: howto manager. (line 1135) -* BFD_RELOC_D10V_10_PCREL_R: howto manager. (line 1132) -* BFD_RELOC_D10V_18: howto manager. (line 1139) -* BFD_RELOC_D10V_18_PCREL: howto manager. (line 1141) -* BFD_RELOC_D30V_15: howto manager. (line 1152) -* BFD_RELOC_D30V_15_PCREL: howto manager. (line 1155) -* BFD_RELOC_D30V_15_PCREL_R: howto manager. (line 1158) -* BFD_RELOC_D30V_21: howto manager. (line 1162) -* BFD_RELOC_D30V_21_PCREL: howto manager. (line 1165) -* BFD_RELOC_D30V_21_PCREL_R: howto manager. (line 1168) -* BFD_RELOC_D30V_32: howto manager. (line 1172) -* BFD_RELOC_D30V_32_PCREL: howto manager. (line 1174) -* BFD_RELOC_D30V_6: howto manager. (line 1143) -* BFD_RELOC_D30V_9_PCREL: howto manager. (line 1145) -* BFD_RELOC_D30V_9_PCREL_R: howto manager. (line 1148) -* BFD_RELOC_DLX_HI16_S: howto manager. (line 1176) -* BFD_RELOC_DLX_JMP26: howto manager. (line 1180) -* BFD_RELOC_DLX_LO16: howto manager. (line 1178) -* BFD_RELOC_EPIPHANY_HIGH: howto manager. (line 3227) -* BFD_RELOC_EPIPHANY_IMM11: howto manager. (line 3233) -* BFD_RELOC_EPIPHANY_IMM8: howto manager. (line 3236) -* BFD_RELOC_EPIPHANY_LOW: howto manager. (line 3229) -* BFD_RELOC_EPIPHANY_SIMM11: howto manager. (line 3231) -* BFD_RELOC_EPIPHANY_SIMM24: howto manager. (line 3225) -* BFD_RELOC_EPIPHANY_SIMM8: howto manager. (line 3223) -* BFD_RELOC_FR30_10_IN_8: howto manager. (line 1550) -* BFD_RELOC_FR30_12_PCREL: howto manager. (line 1556) -* BFD_RELOC_FR30_20: howto manager. (line 1538) -* BFD_RELOC_FR30_48: howto manager. (line 1536) -* BFD_RELOC_FR30_6_IN_4: howto manager. (line 1541) -* BFD_RELOC_FR30_8_IN_8: howto manager. (line 1544) -* BFD_RELOC_FR30_9_IN_8: howto manager. (line 1547) -* BFD_RELOC_FR30_9_PCREL: howto manager. (line 1553) -* BFD_RELOC_FRV_FUNCDESC: howto manager. (line 455) -* BFD_RELOC_FRV_FUNCDESC_GOT12: howto manager. (line 456) -* BFD_RELOC_FRV_FUNCDESC_GOTHI: howto manager. (line 457) -* BFD_RELOC_FRV_FUNCDESC_GOTLO: howto manager. (line 458) -* BFD_RELOC_FRV_FUNCDESC_GOTOFF12: howto manager. (line 460) -* BFD_RELOC_FRV_FUNCDESC_GOTOFFHI: howto manager. (line 461) -* BFD_RELOC_FRV_FUNCDESC_GOTOFFLO: howto manager. (line 462) -* BFD_RELOC_FRV_FUNCDESC_VALUE: howto manager. (line 459) -* BFD_RELOC_FRV_GETTLSOFF: howto manager. (line 466) -* BFD_RELOC_FRV_GETTLSOFF_RELAX: howto manager. (line 479) -* BFD_RELOC_FRV_GOT12: howto manager. (line 452) -* BFD_RELOC_FRV_GOTHI: howto manager. (line 453) -* BFD_RELOC_FRV_GOTLO: howto manager. (line 454) -* BFD_RELOC_FRV_GOTOFF12: howto manager. (line 463) -* BFD_RELOC_FRV_GOTOFFHI: howto manager. (line 464) -* BFD_RELOC_FRV_GOTOFFLO: howto manager. (line 465) -* BFD_RELOC_FRV_GOTTLSDESC12: howto manager. (line 468) -* BFD_RELOC_FRV_GOTTLSDESCHI: howto manager. (line 469) -* BFD_RELOC_FRV_GOTTLSDESCLO: howto manager. (line 470) -* BFD_RELOC_FRV_GOTTLSOFF12: howto manager. (line 474) -* BFD_RELOC_FRV_GOTTLSOFFHI: howto manager. (line 475) -* BFD_RELOC_FRV_GOTTLSOFFLO: howto manager. (line 476) -* BFD_RELOC_FRV_GPREL12: howto manager. (line 447) -* BFD_RELOC_FRV_GPREL32: howto manager. (line 449) -* BFD_RELOC_FRV_GPRELHI: howto manager. (line 450) -* BFD_RELOC_FRV_GPRELLO: howto manager. (line 451) -* BFD_RELOC_FRV_GPRELU12: howto manager. (line 448) -* BFD_RELOC_FRV_HI16: howto manager. (line 446) -* BFD_RELOC_FRV_LABEL16: howto manager. (line 443) -* BFD_RELOC_FRV_LABEL24: howto manager. (line 444) -* BFD_RELOC_FRV_LO16: howto manager. (line 445) -* BFD_RELOC_FRV_TLSDESC_RELAX: howto manager. (line 478) -* BFD_RELOC_FRV_TLSDESC_VALUE: howto manager. (line 467) -* BFD_RELOC_FRV_TLSMOFF: howto manager. (line 481) -* BFD_RELOC_FRV_TLSMOFF12: howto manager. (line 471) -* BFD_RELOC_FRV_TLSMOFFHI: howto manager. (line 472) -* BFD_RELOC_FRV_TLSMOFFLO: howto manager. (line 473) -* BFD_RELOC_FRV_TLSOFF: howto manager. (line 477) -* BFD_RELOC_FRV_TLSOFF_RELAX: howto manager. (line 480) -* BFD_RELOC_FT32_10: howto manager. (line 433) -* BFD_RELOC_FT32_15: howto manager. (line 440) -* BFD_RELOC_FT32_17: howto manager. (line 435) -* BFD_RELOC_FT32_18: howto manager. (line 436) -* BFD_RELOC_FT32_20: howto manager. (line 434) -* BFD_RELOC_FT32_DIFF32: howto manager. (line 441) -* BFD_RELOC_FT32_RELAX: howto manager. (line 437) -* BFD_RELOC_FT32_SC0: howto manager. (line 438) -* BFD_RELOC_FT32_SC1: howto manager. (line 439) -* BFD_RELOC_GPREL16: howto manager. (line 114) -* BFD_RELOC_GPREL32: howto manager. (line 115) -* BFD_RELOC_H8_DIR16A8: howto manager. (line 2394) -* BFD_RELOC_H8_DIR16R8: howto manager. (line 2395) -* BFD_RELOC_H8_DIR24A8: howto manager. (line 2396) -* BFD_RELOC_H8_DIR24R8: howto manager. (line 2397) -* BFD_RELOC_H8_DIR32A16: howto manager. (line 2398) -* BFD_RELOC_H8_DISP32A16: howto manager. (line 2399) -* BFD_RELOC_HI16: howto manager. (line 316) -* BFD_RELOC_HI16_BASEREL: howto manager. (line 94) -* BFD_RELOC_HI16_GOTOFF: howto manager. (line 53) -* BFD_RELOC_HI16_PCREL: howto manager. (line 325) -* BFD_RELOC_HI16_PLTOFF: howto manager. (line 65) -* BFD_RELOC_HI16_S: howto manager. (line 318) -* BFD_RELOC_HI16_S_BASEREL: howto manager. (line 95) -* BFD_RELOC_HI16_S_GOTOFF: howto manager. (line 54) -* BFD_RELOC_HI16_S_PCREL: howto manager. (line 327) -* BFD_RELOC_HI16_S_PLTOFF: howto manager. (line 66) -* BFD_RELOC_HI22: howto manager. (line 110) -* BFD_RELOC_I370_D12: howto manager. (line 730) -* BFD_RELOC_I960_CALLJ: howto manager. (line 120) -* BFD_RELOC_IA64_COPY: howto manager. (line 2097) -* BFD_RELOC_IA64_DIR32LSB: howto manager. (line 2042) -* BFD_RELOC_IA64_DIR32MSB: howto manager. (line 2041) -* BFD_RELOC_IA64_DIR64LSB: howto manager. (line 2044) -* BFD_RELOC_IA64_DIR64MSB: howto manager. (line 2043) -* BFD_RELOC_IA64_DTPMOD64LSB: howto manager. (line 2107) -* BFD_RELOC_IA64_DTPMOD64MSB: howto manager. (line 2106) -* BFD_RELOC_IA64_DTPREL14: howto manager. (line 2109) -* BFD_RELOC_IA64_DTPREL22: howto manager. (line 2110) -* BFD_RELOC_IA64_DTPREL32LSB: howto manager. (line 2113) -* BFD_RELOC_IA64_DTPREL32MSB: howto manager. (line 2112) -* BFD_RELOC_IA64_DTPREL64I: howto manager. (line 2111) -* BFD_RELOC_IA64_DTPREL64LSB: howto manager. (line 2115) -* BFD_RELOC_IA64_DTPREL64MSB: howto manager. (line 2114) -* BFD_RELOC_IA64_FPTR32LSB: howto manager. (line 2059) -* BFD_RELOC_IA64_FPTR32MSB: howto manager. (line 2058) -* BFD_RELOC_IA64_FPTR64I: howto manager. (line 2057) -* BFD_RELOC_IA64_FPTR64LSB: howto manager. (line 2061) -* BFD_RELOC_IA64_FPTR64MSB: howto manager. (line 2060) -* BFD_RELOC_IA64_GPREL22: howto manager. (line 2045) -* BFD_RELOC_IA64_GPREL32LSB: howto manager. (line 2048) -* BFD_RELOC_IA64_GPREL32MSB: howto manager. (line 2047) -* BFD_RELOC_IA64_GPREL64I: howto manager. (line 2046) -* BFD_RELOC_IA64_GPREL64LSB: howto manager. (line 2050) -* BFD_RELOC_IA64_GPREL64MSB: howto manager. (line 2049) -* BFD_RELOC_IA64_IMM14: howto manager. (line 2038) -* BFD_RELOC_IA64_IMM22: howto manager. (line 2039) -* BFD_RELOC_IA64_IMM64: howto manager. (line 2040) -* BFD_RELOC_IA64_IPLTLSB: howto manager. (line 2096) -* BFD_RELOC_IA64_IPLTMSB: howto manager. (line 2095) -* BFD_RELOC_IA64_LDXMOV: howto manager. (line 2099) -* BFD_RELOC_IA64_LTOFF22: howto manager. (line 2051) -* BFD_RELOC_IA64_LTOFF22X: howto manager. (line 2098) -* BFD_RELOC_IA64_LTOFF64I: howto manager. (line 2052) -* BFD_RELOC_IA64_LTOFF_DTPMOD22: howto manager. (line 2108) -* BFD_RELOC_IA64_LTOFF_DTPREL22: howto manager. (line 2116) -* BFD_RELOC_IA64_LTOFF_FPTR22: howto manager. (line 2073) -* BFD_RELOC_IA64_LTOFF_FPTR32LSB: howto manager. (line 2076) -* BFD_RELOC_IA64_LTOFF_FPTR32MSB: howto manager. (line 2075) -* BFD_RELOC_IA64_LTOFF_FPTR64I: howto manager. (line 2074) -* BFD_RELOC_IA64_LTOFF_FPTR64LSB: howto manager. (line 2078) -* BFD_RELOC_IA64_LTOFF_FPTR64MSB: howto manager. (line 2077) -* BFD_RELOC_IA64_LTOFF_TPREL22: howto manager. (line 2105) -* BFD_RELOC_IA64_LTV32LSB: howto manager. (line 2092) -* BFD_RELOC_IA64_LTV32MSB: howto manager. (line 2091) -* BFD_RELOC_IA64_LTV64LSB: howto manager. (line 2094) -* BFD_RELOC_IA64_LTV64MSB: howto manager. (line 2093) -* BFD_RELOC_IA64_PCREL21B: howto manager. (line 2062) -* BFD_RELOC_IA64_PCREL21BI: howto manager. (line 2063) -* BFD_RELOC_IA64_PCREL21F: howto manager. (line 2065) -* BFD_RELOC_IA64_PCREL21M: howto manager. (line 2064) -* BFD_RELOC_IA64_PCREL22: howto manager. (line 2066) -* BFD_RELOC_IA64_PCREL32LSB: howto manager. (line 2070) -* BFD_RELOC_IA64_PCREL32MSB: howto manager. (line 2069) -* BFD_RELOC_IA64_PCREL60B: howto manager. (line 2067) -* BFD_RELOC_IA64_PCREL64I: howto manager. (line 2068) -* BFD_RELOC_IA64_PCREL64LSB: howto manager. (line 2072) -* BFD_RELOC_IA64_PCREL64MSB: howto manager. (line 2071) -* BFD_RELOC_IA64_PLTOFF22: howto manager. (line 2053) -* BFD_RELOC_IA64_PLTOFF64I: howto manager. (line 2054) -* BFD_RELOC_IA64_PLTOFF64LSB: howto manager. (line 2056) -* BFD_RELOC_IA64_PLTOFF64MSB: howto manager. (line 2055) -* BFD_RELOC_IA64_REL32LSB: howto manager. (line 2088) -* BFD_RELOC_IA64_REL32MSB: howto manager. (line 2087) -* BFD_RELOC_IA64_REL64LSB: howto manager. (line 2090) -* BFD_RELOC_IA64_REL64MSB: howto manager. (line 2089) -* BFD_RELOC_IA64_SECREL32LSB: howto manager. (line 2084) -* BFD_RELOC_IA64_SECREL32MSB: howto manager. (line 2083) -* BFD_RELOC_IA64_SECREL64LSB: howto manager. (line 2086) -* BFD_RELOC_IA64_SECREL64MSB: howto manager. (line 2085) -* BFD_RELOC_IA64_SEGREL32LSB: howto manager. (line 2080) -* BFD_RELOC_IA64_SEGREL32MSB: howto manager. (line 2079) -* BFD_RELOC_IA64_SEGREL64LSB: howto manager. (line 2082) -* BFD_RELOC_IA64_SEGREL64MSB: howto manager. (line 2081) -* BFD_RELOC_IA64_TPREL14: howto manager. (line 2100) -* BFD_RELOC_IA64_TPREL22: howto manager. (line 2101) -* BFD_RELOC_IA64_TPREL64I: howto manager. (line 2102) -* BFD_RELOC_IA64_TPREL64LSB: howto manager. (line 2104) -* BFD_RELOC_IA64_TPREL64MSB: howto manager. (line 2103) -* BFD_RELOC_IP2K_ADDR16CJP: howto manager. (line 1999) -* BFD_RELOC_IP2K_BANK: howto manager. (line 1997) -* BFD_RELOC_IP2K_EX8DATA: howto manager. (line 2005) -* BFD_RELOC_IP2K_FR9: howto manager. (line 1995) -* BFD_RELOC_IP2K_FR_OFFSET: howto manager. (line 2014) -* BFD_RELOC_IP2K_HI8DATA: howto manager. (line 2004) -* BFD_RELOC_IP2K_HI8INSN: howto manager. (line 2008) -* BFD_RELOC_IP2K_LO8DATA: howto manager. (line 2003) -* BFD_RELOC_IP2K_LO8INSN: howto manager. (line 2007) -* BFD_RELOC_IP2K_PAGE3: howto manager. (line 2001) -* BFD_RELOC_IP2K_PC_SKIP: howto manager. (line 2010) -* BFD_RELOC_IP2K_TEXT: howto manager. (line 2012) -* BFD_RELOC_IQ2000_OFFSET_16: howto manager. (line 2533) -* BFD_RELOC_IQ2000_OFFSET_21: howto manager. (line 2534) -* BFD_RELOC_IQ2000_UHI16: howto manager. (line 2535) -* BFD_RELOC_LM32_16_GOT: howto manager. (line 2625) -* BFD_RELOC_LM32_BRANCH: howto manager. (line 2624) -* BFD_RELOC_LM32_CALL: howto manager. (line 2623) -* BFD_RELOC_LM32_COPY: howto manager. (line 2628) -* BFD_RELOC_LM32_GLOB_DAT: howto manager. (line 2629) -* BFD_RELOC_LM32_GOTOFF_HI16: howto manager. (line 2626) -* BFD_RELOC_LM32_GOTOFF_LO16: howto manager. (line 2627) -* BFD_RELOC_LM32_JMP_SLOT: howto manager. (line 2630) -* BFD_RELOC_LM32_RELATIVE: howto manager. (line 2631) -* BFD_RELOC_LO10: howto manager. (line 111) -* BFD_RELOC_LO16: howto manager. (line 323) -* BFD_RELOC_LO16_BASEREL: howto manager. (line 93) -* BFD_RELOC_LO16_GOTOFF: howto manager. (line 52) -* BFD_RELOC_LO16_PCREL: howto manager. (line 329) -* BFD_RELOC_LO16_PLTOFF: howto manager. (line 64) -* BFD_RELOC_M32C_HI8: howto manager. (line 1182) -* BFD_RELOC_M32C_RL_1ADDR: howto manager. (line 1184) -* BFD_RELOC_M32C_RL_2ADDR: howto manager. (line 1185) -* BFD_RELOC_M32C_RL_JUMP: howto manager. (line 1183) -* BFD_RELOC_M32R_10_PCREL: howto manager. (line 1190) -* BFD_RELOC_M32R_18_PCREL: howto manager. (line 1193) -* BFD_RELOC_M32R_24: howto manager. (line 1187) -* BFD_RELOC_M32R_26_PCREL: howto manager. (line 1195) -* BFD_RELOC_M32R_26_PLTREL: howto manager. (line 1209) -* BFD_RELOC_M32R_COPY: howto manager. (line 1210) -* BFD_RELOC_M32R_GLOB_DAT: howto manager. (line 1211) -* BFD_RELOC_M32R_GOT16_HI_SLO: howto manager. (line 1220) -* BFD_RELOC_M32R_GOT16_HI_ULO: howto manager. (line 1219) -* BFD_RELOC_M32R_GOT16_LO: howto manager. (line 1221) -* BFD_RELOC_M32R_GOT24: howto manager. (line 1208) -* BFD_RELOC_M32R_GOTOFF: howto manager. (line 1214) -* BFD_RELOC_M32R_GOTOFF_HI_SLO: howto manager. (line 1216) -* BFD_RELOC_M32R_GOTOFF_HI_ULO: howto manager. (line 1215) -* BFD_RELOC_M32R_GOTOFF_LO: howto manager. (line 1217) -* BFD_RELOC_M32R_GOTPC24: howto manager. (line 1218) -* BFD_RELOC_M32R_GOTPC_HI_SLO: howto manager. (line 1223) -* BFD_RELOC_M32R_GOTPC_HI_ULO: howto manager. (line 1222) -* BFD_RELOC_M32R_GOTPC_LO: howto manager. (line 1224) -* BFD_RELOC_M32R_HI16_SLO: howto manager. (line 1200) -* BFD_RELOC_M32R_HI16_ULO: howto manager. (line 1197) -* BFD_RELOC_M32R_JMP_SLOT: howto manager. (line 1212) -* BFD_RELOC_M32R_LO16: howto manager. (line 1203) -* BFD_RELOC_M32R_RELATIVE: howto manager. (line 1213) -* BFD_RELOC_M32R_SDA16: howto manager. (line 1205) -* BFD_RELOC_M68HC11_24: howto manager. (line 2144) -* BFD_RELOC_M68HC11_3B: howto manager. (line 2124) -* BFD_RELOC_M68HC11_HI8: howto manager. (line 2118) -* BFD_RELOC_M68HC11_LO16: howto manager. (line 2135) -* BFD_RELOC_M68HC11_LO8: howto manager. (line 2121) -* BFD_RELOC_M68HC11_PAGE: howto manager. (line 2140) -* BFD_RELOC_M68HC11_RL_GROUP: howto manager. (line 2131) -* BFD_RELOC_M68HC11_RL_JUMP: howto manager. (line 2126) -* BFD_RELOC_M68HC12_10_PCREL: howto manager. (line 2187) -* BFD_RELOC_M68HC12_16B: howto manager. (line 2183) -* BFD_RELOC_M68HC12_5B: howto manager. (line 2149) -* BFD_RELOC_M68HC12_9B: howto manager. (line 2181) -* BFD_RELOC_M68HC12_9_PCREL: howto manager. (line 2185) -* BFD_RELOC_M68HC12_HI8XG: howto manager. (line 2192) -* BFD_RELOC_M68HC12_LO8XG: howto manager. (line 2189) -* BFD_RELOC_MACH_O_ARM64_ADDEND: howto manager. (line 2659) -* BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21: howto manager. (line 2661) -* BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGEOFF12: howto manager. (line 2663) -* BFD_RELOC_MACH_O_ARM64_POINTER_TO_GOT: howto manager. (line 2665) -* BFD_RELOC_MACH_O_LOCAL_SECTDIFF: howto manager. (line 2636) -* BFD_RELOC_MACH_O_PAIR: howto manager. (line 2638) -* BFD_RELOC_MACH_O_SECTDIFF: howto manager. (line 2633) -* BFD_RELOC_MACH_O_SUBTRACTOR32: howto manager. (line 2640) -* BFD_RELOC_MACH_O_SUBTRACTOR64: howto manager. (line 2642) -* BFD_RELOC_MACH_O_X86_64_BRANCH32: howto manager. (line 2644) -* BFD_RELOC_MACH_O_X86_64_BRANCH8: howto manager. (line 2645) -* BFD_RELOC_MACH_O_X86_64_GOT: howto manager. (line 2648) -* BFD_RELOC_MACH_O_X86_64_GOT_LOAD: howto manager. (line 2650) -* BFD_RELOC_MACH_O_X86_64_PCREL32_1: howto manager. (line 2653) -* BFD_RELOC_MACH_O_X86_64_PCREL32_2: howto manager. (line 2655) -* BFD_RELOC_MACH_O_X86_64_PCREL32_4: howto manager. (line 2657) -* BFD_RELOC_MCORE_PCREL_32: howto manager. (line 1562) -* BFD_RELOC_MCORE_PCREL_IMM11BY2: howto manager. (line 1560) -* BFD_RELOC_MCORE_PCREL_IMM4BY2: howto manager. (line 1561) -* BFD_RELOC_MCORE_PCREL_IMM8BY4: howto manager. (line 1559) -* BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2: howto manager. (line 1563) -* BFD_RELOC_MCORE_RVA: howto manager. (line 1564) -* BFD_RELOC_MEP_16: howto manager. (line 1567) -* BFD_RELOC_MEP_32: howto manager. (line 1568) -* BFD_RELOC_MEP_8: howto manager. (line 1566) -* BFD_RELOC_MEP_ADDR24A4: howto manager. (line 1583) -* BFD_RELOC_MEP_GNU_VTENTRY: howto manager. (line 1585) -* BFD_RELOC_MEP_GNU_VTINHERIT: howto manager. (line 1584) -* BFD_RELOC_MEP_GPREL: howto manager. (line 1577) -* BFD_RELOC_MEP_HI16S: howto manager. (line 1576) -* BFD_RELOC_MEP_HI16U: howto manager. (line 1575) -* BFD_RELOC_MEP_LOW16: howto manager. (line 1574) -* BFD_RELOC_MEP_PCABS24A2: howto manager. (line 1573) -* BFD_RELOC_MEP_PCREL12A2: howto manager. (line 1570) -* BFD_RELOC_MEP_PCREL17A2: howto manager. (line 1571) -* BFD_RELOC_MEP_PCREL24A2: howto manager. (line 1572) -* BFD_RELOC_MEP_PCREL8A2: howto manager. (line 1569) -* BFD_RELOC_MEP_TPREL: howto manager. (line 1578) -* BFD_RELOC_MEP_TPREL7: howto manager. (line 1579) -* BFD_RELOC_MEP_TPREL7A2: howto manager. (line 1580) -* BFD_RELOC_MEP_TPREL7A4: howto manager. (line 1581) -* BFD_RELOC_MEP_UIMM24: howto manager. (line 1582) -* BFD_RELOC_METAG_COPY: howto manager. (line 1606) -* BFD_RELOC_METAG_GETSETOFF: howto manager. (line 1590) -* BFD_RELOC_METAG_GETSET_GOT: howto manager. (line 1598) -* BFD_RELOC_METAG_GETSET_GOTOFF: howto manager. (line 1597) -* BFD_RELOC_METAG_GLOB_DAT: howto manager. (line 1609) -* BFD_RELOC_METAG_GOTOFF: howto manager. (line 1604) -* BFD_RELOC_METAG_HI16_GOTOFF: howto manager. (line 1595) -* BFD_RELOC_METAG_HI16_GOTPC: howto manager. (line 1599) -* BFD_RELOC_METAG_HI16_PLT: howto manager. (line 1601) -* BFD_RELOC_METAG_HIADDR16: howto manager. (line 1587) -* BFD_RELOC_METAG_HIOG: howto manager. (line 1591) -* BFD_RELOC_METAG_JMP_SLOT: howto manager. (line 1607) -* BFD_RELOC_METAG_LO16_GOTOFF: howto manager. (line 1596) -* BFD_RELOC_METAG_LO16_GOTPC: howto manager. (line 1600) -* BFD_RELOC_METAG_LO16_PLT: howto manager. (line 1602) -* BFD_RELOC_METAG_LOADDR16: howto manager. (line 1588) -* BFD_RELOC_METAG_LOOG: howto manager. (line 1592) -* BFD_RELOC_METAG_PLT: howto manager. (line 1605) -* BFD_RELOC_METAG_REL16: howto manager. (line 1594) -* BFD_RELOC_METAG_REL8: howto manager. (line 1593) -* BFD_RELOC_METAG_RELATIVE: howto manager. (line 1608) -* BFD_RELOC_METAG_RELBRANCH: howto manager. (line 1589) -* BFD_RELOC_METAG_RELBRANCH_PLT: howto manager. (line 1603) -* BFD_RELOC_METAG_TLS_DTPMOD: howto manager. (line 1620) -* BFD_RELOC_METAG_TLS_DTPOFF: howto manager. (line 1621) -* BFD_RELOC_METAG_TLS_GD: howto manager. (line 1610) -* BFD_RELOC_METAG_TLS_IE: howto manager. (line 1615) -* BFD_RELOC_METAG_TLS_IENONPIC: howto manager. (line 1616) -* BFD_RELOC_METAG_TLS_IENONPIC_HI16: howto manager. (line 1617) -* BFD_RELOC_METAG_TLS_IENONPIC_LO16: howto manager. (line 1618) -* BFD_RELOC_METAG_TLS_LDM: howto manager. (line 1611) -* BFD_RELOC_METAG_TLS_LDO: howto manager. (line 1614) -* BFD_RELOC_METAG_TLS_LDO_HI16: howto manager. (line 1612) -* BFD_RELOC_METAG_TLS_LDO_LO16: howto manager. (line 1613) -* BFD_RELOC_METAG_TLS_LE: howto manager. (line 1622) -* BFD_RELOC_METAG_TLS_LE_HI16: howto manager. (line 1623) -* BFD_RELOC_METAG_TLS_LE_LO16: howto manager. (line 1624) -* BFD_RELOC_METAG_TLS_TPOFF: howto manager. (line 1619) -* BFD_RELOC_MICROBLAZE_32_GOTOFF: howto manager. (line 2701) -* BFD_RELOC_MICROBLAZE_32_LO: howto manager. (line 2667) -* BFD_RELOC_MICROBLAZE_32_LO_PCREL: howto manager. (line 2670) -* BFD_RELOC_MICROBLAZE_32_ROSDA: howto manager. (line 2673) -* BFD_RELOC_MICROBLAZE_32_RWSDA: howto manager. (line 2676) -* BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM: howto manager. (line 2679) -* BFD_RELOC_MICROBLAZE_32_TLSDTPMOD: howto manager. (line 2717) -* BFD_RELOC_MICROBLAZE_32_TLSDTPREL: howto manager. (line 2719) -* BFD_RELOC_MICROBLAZE_64_GOT: howto manager. (line 2690) -* BFD_RELOC_MICROBLAZE_64_GOTOFF: howto manager. (line 2697) -* BFD_RELOC_MICROBLAZE_64_GOTPC: howto manager. (line 2686) -* BFD_RELOC_MICROBLAZE_64_NONE: howto manager. (line 2682) -* BFD_RELOC_MICROBLAZE_64_PLT: howto manager. (line 2693) -* BFD_RELOC_MICROBLAZE_64_TLS: howto manager. (line 2707) -* BFD_RELOC_MICROBLAZE_64_TLSDTPREL: howto manager. (line 2721) -* BFD_RELOC_MICROBLAZE_64_TLSGD: howto manager. (line 2709) -* BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL: howto manager. (line 2724) -* BFD_RELOC_MICROBLAZE_64_TLSLD: howto manager. (line 2713) -* BFD_RELOC_MICROBLAZE_64_TLSTPREL: howto manager. (line 2727) -* BFD_RELOC_MICROBLAZE_COPY: howto manager. (line 2704) -* BFD_RELOC_MICROMIPS_10_PCREL_S1: howto manager. (line 356) -* BFD_RELOC_MICROMIPS_16_PCREL_S1: howto manager. (line 357) -* BFD_RELOC_MICROMIPS_7_PCREL_S1: howto manager. (line 355) -* BFD_RELOC_MICROMIPS_CALL16: howto manager. (line 374) -* BFD_RELOC_MICROMIPS_CALL_HI16: howto manager. (line 380) -* BFD_RELOC_MICROMIPS_CALL_LO16: howto manager. (line 382) -* BFD_RELOC_MICROMIPS_GOT16: howto manager. (line 372) -* BFD_RELOC_MICROMIPS_GOT_DISP: howto manager. (line 390) -* BFD_RELOC_MICROMIPS_GOT_HI16: howto manager. (line 376) -* BFD_RELOC_MICROMIPS_GOT_LO16: howto manager. (line 378) -* BFD_RELOC_MICROMIPS_GOT_OFST: howto manager. (line 388) -* BFD_RELOC_MICROMIPS_GOT_PAGE: howto manager. (line 386) -* BFD_RELOC_MICROMIPS_GPREL16: howto manager. (line 366) -* BFD_RELOC_MICROMIPS_HI16: howto manager. (line 367) -* BFD_RELOC_MICROMIPS_HI16_S: howto manager. (line 368) -* BFD_RELOC_MICROMIPS_HIGHER: howto manager. (line 399) -* BFD_RELOC_MICROMIPS_HIGHEST: howto manager. (line 397) -* BFD_RELOC_MICROMIPS_JALR: howto manager. (line 405) -* BFD_RELOC_MICROMIPS_JMP: howto manager. (line 310) -* BFD_RELOC_MICROMIPS_LITERAL: howto manager. (line 353) -* BFD_RELOC_MICROMIPS_LO16: howto manager. (line 369) -* BFD_RELOC_MICROMIPS_SCN_DISP: howto manager. (line 401) -* BFD_RELOC_MICROMIPS_SUB: howto manager. (line 384) -* BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16: howto manager. (line 415) -* BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16: howto manager. (line 417) -* BFD_RELOC_MICROMIPS_TLS_GD: howto manager. (line 411) -* BFD_RELOC_MICROMIPS_TLS_GOTTPREL: howto manager. (line 419) -* BFD_RELOC_MICROMIPS_TLS_LDM: howto manager. (line 413) -* BFD_RELOC_MICROMIPS_TLS_TPREL_HI16: howto manager. (line 423) -* BFD_RELOC_MICROMIPS_TLS_TPREL_LO16: howto manager. (line 425) -* BFD_RELOC_MIPS16_16_PCREL_S1: howto manager. (line 359) -* BFD_RELOC_MIPS16_CALL16: howto manager. (line 332) -* BFD_RELOC_MIPS16_GOT16: howto manager. (line 331) -* BFD_RELOC_MIPS16_GPREL: howto manager. (line 314) -* BFD_RELOC_MIPS16_HI16: howto manager. (line 335) -* BFD_RELOC_MIPS16_HI16_S: howto manager. (line 337) -* BFD_RELOC_MIPS16_JMP: howto manager. (line 312) -* BFD_RELOC_MIPS16_LO16: howto manager. (line 342) -* BFD_RELOC_MIPS16_TLS_DTPREL_HI16: howto manager. (line 346) -* BFD_RELOC_MIPS16_TLS_DTPREL_LO16: howto manager. (line 347) -* BFD_RELOC_MIPS16_TLS_GD: howto manager. (line 344) -* BFD_RELOC_MIPS16_TLS_GOTTPREL: howto manager. (line 348) -* BFD_RELOC_MIPS16_TLS_LDM: howto manager. (line 345) -* BFD_RELOC_MIPS16_TLS_TPREL_HI16: howto manager. (line 349) -* BFD_RELOC_MIPS16_TLS_TPREL_LO16: howto manager. (line 350) -* BFD_RELOC_MIPS_18_PCREL_S3: howto manager. (line 363) -* BFD_RELOC_MIPS_19_PCREL_S2: howto manager. (line 364) -* BFD_RELOC_MIPS_21_PCREL_S2: howto manager. (line 361) -* BFD_RELOC_MIPS_26_PCREL_S2: howto manager. (line 362) -* BFD_RELOC_MIPS_CALL16: howto manager. (line 373) -* BFD_RELOC_MIPS_CALL_HI16: howto manager. (line 379) -* BFD_RELOC_MIPS_CALL_LO16: howto manager. (line 381) -* BFD_RELOC_MIPS_COPY: howto manager. (line 428) -* BFD_RELOC_MIPS_DELETE: howto manager. (line 395) -* BFD_RELOC_MIPS_EH: howto manager. (line 426) -* BFD_RELOC_MIPS_GOT16: howto manager. (line 371) -* BFD_RELOC_MIPS_GOT_DISP: howto manager. (line 389) -* BFD_RELOC_MIPS_GOT_HI16: howto manager. (line 375) -* BFD_RELOC_MIPS_GOT_LO16: howto manager. (line 377) -* BFD_RELOC_MIPS_GOT_OFST: howto manager. (line 387) -* BFD_RELOC_MIPS_GOT_PAGE: howto manager. (line 385) -* BFD_RELOC_MIPS_HIGHER: howto manager. (line 398) -* BFD_RELOC_MIPS_HIGHEST: howto manager. (line 396) -* BFD_RELOC_MIPS_INSERT_A: howto manager. (line 393) -* BFD_RELOC_MIPS_INSERT_B: howto manager. (line 394) -* BFD_RELOC_MIPS_JALR: howto manager. (line 404) -* BFD_RELOC_MIPS_JMP: howto manager. (line 309) -* BFD_RELOC_MIPS_JUMP_SLOT: howto manager. (line 429) -* BFD_RELOC_MIPS_LITERAL: howto manager. (line 352) -* BFD_RELOC_MIPS_REL16: howto manager. (line 402) -* BFD_RELOC_MIPS_RELGOT: howto manager. (line 403) -* BFD_RELOC_MIPS_SCN_DISP: howto manager. (line 400) -* BFD_RELOC_MIPS_SHIFT5: howto manager. (line 391) -* BFD_RELOC_MIPS_SHIFT6: howto manager. (line 392) -* BFD_RELOC_MIPS_SUB: howto manager. (line 383) -* BFD_RELOC_MIPS_TLS_DTPMOD32: howto manager. (line 406) -* BFD_RELOC_MIPS_TLS_DTPMOD64: howto manager. (line 408) -* BFD_RELOC_MIPS_TLS_DTPREL32: howto manager. (line 407) -* BFD_RELOC_MIPS_TLS_DTPREL64: howto manager. (line 409) -* BFD_RELOC_MIPS_TLS_DTPREL_HI16: howto manager. (line 414) -* BFD_RELOC_MIPS_TLS_DTPREL_LO16: howto manager. (line 416) -* BFD_RELOC_MIPS_TLS_GD: howto manager. (line 410) -* BFD_RELOC_MIPS_TLS_GOTTPREL: howto manager. (line 418) -* BFD_RELOC_MIPS_TLS_LDM: howto manager. (line 412) -* BFD_RELOC_MIPS_TLS_TPREL32: howto manager. (line 420) -* BFD_RELOC_MIPS_TLS_TPREL64: howto manager. (line 421) -* BFD_RELOC_MIPS_TLS_TPREL_HI16: howto manager. (line 422) -* BFD_RELOC_MIPS_TLS_TPREL_LO16: howto manager. (line 424) -* BFD_RELOC_MMIX_ADDR19: howto manager. (line 1648) -* BFD_RELOC_MMIX_ADDR27: howto manager. (line 1651) -* BFD_RELOC_MMIX_BASE_PLUS_OFFSET: howto manager. (line 1660) -* BFD_RELOC_MMIX_CBRANCH: howto manager. (line 1631) -* BFD_RELOC_MMIX_CBRANCH_1: howto manager. (line 1633) -* BFD_RELOC_MMIX_CBRANCH_2: howto manager. (line 1634) -* BFD_RELOC_MMIX_CBRANCH_3: howto manager. (line 1635) -* BFD_RELOC_MMIX_CBRANCH_J: howto manager. (line 1632) -* BFD_RELOC_MMIX_GETA: howto manager. (line 1626) -* BFD_RELOC_MMIX_GETA_1: howto manager. (line 1627) -* BFD_RELOC_MMIX_GETA_2: howto manager. (line 1628) -* BFD_RELOC_MMIX_GETA_3: howto manager. (line 1629) -* BFD_RELOC_MMIX_JMP: howto manager. (line 1643) -* BFD_RELOC_MMIX_JMP_1: howto manager. (line 1644) -* BFD_RELOC_MMIX_JMP_2: howto manager. (line 1645) -* BFD_RELOC_MMIX_JMP_3: howto manager. (line 1646) -* BFD_RELOC_MMIX_LOCAL: howto manager. (line 1663) -* BFD_RELOC_MMIX_PUSHJ: howto manager. (line 1637) -* BFD_RELOC_MMIX_PUSHJ_1: howto manager. (line 1638) -* BFD_RELOC_MMIX_PUSHJ_2: howto manager. (line 1639) -* BFD_RELOC_MMIX_PUSHJ_3: howto manager. (line 1640) -* BFD_RELOC_MMIX_PUSHJ_STUBBABLE: howto manager. (line 1641) -* BFD_RELOC_MMIX_REG: howto manager. (line 1657) -* BFD_RELOC_MMIX_REG_OR_BYTE: howto manager. (line 1654) -* BFD_RELOC_MN10300_16_PCREL: howto manager. (line 522) -* BFD_RELOC_MN10300_32_PCREL: howto manager. (line 519) -* BFD_RELOC_MN10300_ALIGN: howto manager. (line 506) -* BFD_RELOC_MN10300_COPY: howto manager. (line 494) -* BFD_RELOC_MN10300_GLOB_DAT: howto manager. (line 496) -* BFD_RELOC_MN10300_GOT16: howto manager. (line 491) -* BFD_RELOC_MN10300_GOT24: howto manager. (line 488) -* BFD_RELOC_MN10300_GOT32: howto manager. (line 485) -* BFD_RELOC_MN10300_GOTOFF24: howto manager. (line 483) -* BFD_RELOC_MN10300_JMP_SLOT: howto manager. (line 498) -* BFD_RELOC_MN10300_RELATIVE: howto manager. (line 500) -* BFD_RELOC_MN10300_SYM_DIFF: howto manager. (line 502) -* BFD_RELOC_MN10300_TLS_DTPMOD: howto manager. (line 515) -* BFD_RELOC_MN10300_TLS_DTPOFF: howto manager. (line 516) -* BFD_RELOC_MN10300_TLS_GD: howto manager. (line 509) -* BFD_RELOC_MN10300_TLS_GOTIE: howto manager. (line 512) -* BFD_RELOC_MN10300_TLS_IE: howto manager. (line 513) -* BFD_RELOC_MN10300_TLS_LD: howto manager. (line 510) -* BFD_RELOC_MN10300_TLS_LDO: howto manager. (line 511) -* BFD_RELOC_MN10300_TLS_LE: howto manager. (line 514) -* BFD_RELOC_MN10300_TLS_TPOFF: howto manager. (line 517) -* BFD_RELOC_MOXIE_10_PCREL: howto manager. (line 431) -* BFD_RELOC_MSP430X_ABS16: howto manager. (line 2447) -* BFD_RELOC_MSP430X_ABS20_ADR_DST: howto manager. (line 2444) -* BFD_RELOC_MSP430X_ABS20_ADR_SRC: howto manager. (line 2443) -* BFD_RELOC_MSP430X_ABS20_EXT_DST: howto manager. (line 2441) -* BFD_RELOC_MSP430X_ABS20_EXT_ODST: howto manager. (line 2442) -* BFD_RELOC_MSP430X_ABS20_EXT_SRC: howto manager. (line 2440) -* BFD_RELOC_MSP430X_PCR16: howto manager. (line 2445) -* BFD_RELOC_MSP430X_PCR20_CALL: howto manager. (line 2446) -* BFD_RELOC_MSP430X_PCR20_EXT_DST: howto manager. (line 2438) -* BFD_RELOC_MSP430X_PCR20_EXT_ODST: howto manager. (line 2439) -* BFD_RELOC_MSP430X_PCR20_EXT_SRC: howto manager. (line 2437) -* BFD_RELOC_MSP430_10_PCREL: howto manager. (line 2429) -* BFD_RELOC_MSP430_16: howto manager. (line 2431) -* BFD_RELOC_MSP430_16_BYTE: howto manager. (line 2433) -* BFD_RELOC_MSP430_16_PCREL: howto manager. (line 2430) -* BFD_RELOC_MSP430_16_PCREL_BYTE: howto manager. (line 2432) -* BFD_RELOC_MSP430_2X_PCREL: howto manager. (line 2434) -* BFD_RELOC_MSP430_ABS8: howto manager. (line 2436) -* BFD_RELOC_MSP430_ABS_HI16: howto manager. (line 2448) -* BFD_RELOC_MSP430_PREL31: howto manager. (line 2449) -* BFD_RELOC_MSP430_RL_PCREL: howto manager. (line 2435) -* BFD_RELOC_MSP430_SYM_DIFF: howto manager. (line 2450) -* BFD_RELOC_MT_GNU_VTENTRY: howto manager. (line 2425) -* BFD_RELOC_MT_GNU_VTINHERIT: howto manager. (line 2423) -* BFD_RELOC_MT_HI16: howto manager. (line 2419) -* BFD_RELOC_MT_LO16: howto manager. (line 2421) -* BFD_RELOC_MT_PC16: howto manager. (line 2417) -* BFD_RELOC_MT_PCINSN8: howto manager. (line 2427) -* BFD_RELOC_NDS32_10IFCU_PCREL: howto manager. (line 1376) -* BFD_RELOC_NDS32_10_UPCREL: howto manager. (line 1347) -* BFD_RELOC_NDS32_15_FIXED: howto manager. (line 1308) -* BFD_RELOC_NDS32_15_PCREL: howto manager. (line 1234) -* BFD_RELOC_NDS32_17IFC_PCREL: howto manager. (line 1375) -* BFD_RELOC_NDS32_17_FIXED: howto manager. (line 1309) -* BFD_RELOC_NDS32_17_PCREL: howto manager. (line 1236) -* BFD_RELOC_NDS32_20: howto manager. (line 1226) -* BFD_RELOC_NDS32_25_ABS: howto manager. (line 1371) -* BFD_RELOC_NDS32_25_FIXED: howto manager. (line 1310) -* BFD_RELOC_NDS32_25_PCREL: howto manager. (line 1238) -* BFD_RELOC_NDS32_25_PLTREL: howto manager. (line 1284) -* BFD_RELOC_NDS32_5: howto manager. (line 1345) -* BFD_RELOC_NDS32_9_FIXED: howto manager. (line 1307) -* BFD_RELOC_NDS32_9_PCREL: howto manager. (line 1228) -* BFD_RELOC_NDS32_9_PLTREL: howto manager. (line 1283) -* BFD_RELOC_NDS32_COPY: howto manager. (line 1285) -* BFD_RELOC_NDS32_DATA: howto manager. (line 1373) -* BFD_RELOC_NDS32_DIFF16: howto manager. (line 1366) -* BFD_RELOC_NDS32_DIFF32: howto manager. (line 1367) -* BFD_RELOC_NDS32_DIFF8: howto manager. (line 1365) -* BFD_RELOC_NDS32_DIFF_ULEB128: howto manager. (line 1368) -* BFD_RELOC_NDS32_DWARF2_LEB: howto manager. (line 1331) -* BFD_RELOC_NDS32_DWARF2_OP1: howto manager. (line 1329) -* BFD_RELOC_NDS32_DWARF2_OP2: howto manager. (line 1330) -* BFD_RELOC_NDS32_EMPTY: howto manager. (line 1369) -* BFD_RELOC_NDS32_GLOB_DAT: howto manager. (line 1286) -* BFD_RELOC_NDS32_GOT15S2: howto manager. (line 1342) -* BFD_RELOC_NDS32_GOT17S2: howto manager. (line 1343) -* BFD_RELOC_NDS32_GOT20: howto manager. (line 1282) -* BFD_RELOC_NDS32_GOTOFF: howto manager. (line 1289) -* BFD_RELOC_NDS32_GOTOFF_HI20: howto manager. (line 1290) -* BFD_RELOC_NDS32_GOTOFF_LO12: howto manager. (line 1291) -* BFD_RELOC_NDS32_GOTOFF_LO15: howto manager. (line 1340) -* BFD_RELOC_NDS32_GOTOFF_LO19: howto manager. (line 1341) -* BFD_RELOC_NDS32_GOTOFF_SUFF: howto manager. (line 1354) -* BFD_RELOC_NDS32_GOTPC20: howto manager. (line 1292) -* BFD_RELOC_NDS32_GOTPC_HI20: howto manager. (line 1295) -* BFD_RELOC_NDS32_GOTPC_LO12: howto manager. (line 1296) -* BFD_RELOC_NDS32_GOTTPOFF: howto manager. (line 1383) -* BFD_RELOC_NDS32_GOT_HI20: howto manager. (line 1293) -* BFD_RELOC_NDS32_GOT_LO12: howto manager. (line 1294) -* BFD_RELOC_NDS32_GOT_LO15: howto manager. (line 1338) -* BFD_RELOC_NDS32_GOT_LO19: howto manager. (line 1339) -* BFD_RELOC_NDS32_GOT_SUFF: howto manager. (line 1353) -* BFD_RELOC_NDS32_HI20: howto manager. (line 1240) -* BFD_RELOC_NDS32_INSN16: howto manager. (line 1298) -* BFD_RELOC_NDS32_JMP_SLOT: howto manager. (line 1287) -* BFD_RELOC_NDS32_LABEL: howto manager. (line 1299) -* BFD_RELOC_NDS32_LO12S0: howto manager. (line 1252) -* BFD_RELOC_NDS32_LO12S0_ORI: howto manager. (line 1255) -* BFD_RELOC_NDS32_LO12S1: howto manager. (line 1249) -* BFD_RELOC_NDS32_LO12S2: howto manager. (line 1246) -* BFD_RELOC_NDS32_LO12S2_DP: howto manager. (line 1326) -* BFD_RELOC_NDS32_LO12S2_SP: howto manager. (line 1327) -* BFD_RELOC_NDS32_LO12S3: howto manager. (line 1243) -* BFD_RELOC_NDS32_LOADSTORE: howto manager. (line 1306) -* BFD_RELOC_NDS32_LONGCALL1: howto manager. (line 1300) -* BFD_RELOC_NDS32_LONGCALL2: howto manager. (line 1301) -* BFD_RELOC_NDS32_LONGCALL3: howto manager. (line 1302) -* BFD_RELOC_NDS32_LONGCALL4: howto manager. (line 1311) -* BFD_RELOC_NDS32_LONGCALL5: howto manager. (line 1312) -* BFD_RELOC_NDS32_LONGCALL6: howto manager. (line 1313) -* BFD_RELOC_NDS32_LONGJUMP1: howto manager. (line 1303) -* BFD_RELOC_NDS32_LONGJUMP2: howto manager. (line 1304) -* BFD_RELOC_NDS32_LONGJUMP3: howto manager. (line 1305) -* BFD_RELOC_NDS32_LONGJUMP4: howto manager. (line 1314) -* BFD_RELOC_NDS32_LONGJUMP5: howto manager. (line 1315) -* BFD_RELOC_NDS32_LONGJUMP6: howto manager. (line 1316) -* BFD_RELOC_NDS32_LONGJUMP7: howto manager. (line 1317) -* BFD_RELOC_NDS32_MINUEND: howto manager. (line 1363) -* BFD_RELOC_NDS32_MULCALL_SUFF: howto manager. (line 1356) -* BFD_RELOC_NDS32_PLTBLOCK: howto manager. (line 1360) -* BFD_RELOC_NDS32_PLTREL_HI20: howto manager. (line 1319) -* BFD_RELOC_NDS32_PLTREL_LO12: howto manager. (line 1320) -* BFD_RELOC_NDS32_PLT_GOTREL_HI20: howto manager. (line 1321) -* BFD_RELOC_NDS32_PLT_GOTREL_LO12: howto manager. (line 1322) -* BFD_RELOC_NDS32_PLT_GOTREL_LO15: howto manager. (line 1336) -* BFD_RELOC_NDS32_PLT_GOTREL_LO19: howto manager. (line 1337) -* BFD_RELOC_NDS32_PLT_GOTREL_LO20: howto manager. (line 1335) -* BFD_RELOC_NDS32_PLT_GOT_SUFF: howto manager. (line 1355) -* BFD_RELOC_NDS32_PTR: howto manager. (line 1357) -* BFD_RELOC_NDS32_PTR_COUNT: howto manager. (line 1358) -* BFD_RELOC_NDS32_PTR_RESOLVED: howto manager. (line 1359) -* BFD_RELOC_NDS32_RELATIVE: howto manager. (line 1288) -* BFD_RELOC_NDS32_RELAX_ENTRY: howto manager. (line 1352) -* BFD_RELOC_NDS32_RELAX_REGION_BEGIN: howto manager. (line 1361) -* BFD_RELOC_NDS32_RELAX_REGION_END: howto manager. (line 1362) -* BFD_RELOC_NDS32_SDA12S2_DP: howto manager. (line 1324) -* BFD_RELOC_NDS32_SDA12S2_SP: howto manager. (line 1325) -* BFD_RELOC_NDS32_SDA15S0: howto manager. (line 1267) -* BFD_RELOC_NDS32_SDA15S1: howto manager. (line 1264) -* BFD_RELOC_NDS32_SDA15S2: howto manager. (line 1261) -* BFD_RELOC_NDS32_SDA15S3: howto manager. (line 1258) -* BFD_RELOC_NDS32_SDA16S3: howto manager. (line 1270) -* BFD_RELOC_NDS32_SDA17S2: howto manager. (line 1273) -* BFD_RELOC_NDS32_SDA18S1: howto manager. (line 1276) -* BFD_RELOC_NDS32_SDA19S0: howto manager. (line 1279) -* BFD_RELOC_NDS32_SDA_FP7U2_RELA: howto manager. (line 1350) -* BFD_RELOC_NDS32_SUBTRAHEND: howto manager. (line 1364) -* BFD_RELOC_NDS32_TLS_IE_HI20: howto manager. (line 1384) -* BFD_RELOC_NDS32_TLS_IE_LO12S2: howto manager. (line 1385) -* BFD_RELOC_NDS32_TLS_LE_15S0: howto manager. (line 1388) -* BFD_RELOC_NDS32_TLS_LE_15S1: howto manager. (line 1389) -* BFD_RELOC_NDS32_TLS_LE_15S2: howto manager. (line 1390) -* BFD_RELOC_NDS32_TLS_LE_20: howto manager. (line 1387) -* BFD_RELOC_NDS32_TLS_LE_ADD: howto manager. (line 1381) -* BFD_RELOC_NDS32_TLS_LE_HI20: howto manager. (line 1379) -* BFD_RELOC_NDS32_TLS_LE_LO12: howto manager. (line 1380) -* BFD_RELOC_NDS32_TLS_LE_LS: howto manager. (line 1382) -* BFD_RELOC_NDS32_TLS_TPOFF: howto manager. (line 1386) -* BFD_RELOC_NDS32_TPOFF: howto manager. (line 1378) -* BFD_RELOC_NDS32_TRAN: howto manager. (line 1374) -* BFD_RELOC_NDS32_UPDATE_TA: howto manager. (line 1333) -* BFD_RELOC_NDS32_WORD_9_PCREL: howto manager. (line 1231) -* BFD_RELOC_NIOS2_ALIGN: howto manager. (line 2466) -* BFD_RELOC_NIOS2_CACHE_OPX: howto manager. (line 2456) -* BFD_RELOC_NIOS2_CALL16: howto manager. (line 2468) -* BFD_RELOC_NIOS2_CALL26: howto manager. (line 2454) -* BFD_RELOC_NIOS2_CALL26_NOAT: howto manager. (line 2486) -* BFD_RELOC_NIOS2_CALLR: howto manager. (line 2465) -* BFD_RELOC_NIOS2_CALL_HA: howto manager. (line 2490) -* BFD_RELOC_NIOS2_CALL_LO: howto manager. (line 2489) -* BFD_RELOC_NIOS2_CJMP: howto manager. (line 2464) -* BFD_RELOC_NIOS2_COPY: howto manager. (line 2481) -* BFD_RELOC_NIOS2_GLOB_DAT: howto manager. (line 2482) -* BFD_RELOC_NIOS2_GOT16: howto manager. (line 2467) -* BFD_RELOC_NIOS2_GOTOFF: howto manager. (line 2485) -* BFD_RELOC_NIOS2_GOTOFF_HA: howto manager. (line 2470) -* BFD_RELOC_NIOS2_GOTOFF_LO: howto manager. (line 2469) -* BFD_RELOC_NIOS2_GOT_HA: howto manager. (line 2488) -* BFD_RELOC_NIOS2_GOT_LO: howto manager. (line 2487) -* BFD_RELOC_NIOS2_GPREL: howto manager. (line 2462) -* BFD_RELOC_NIOS2_HI16: howto manager. (line 2459) -* BFD_RELOC_NIOS2_HIADJ16: howto manager. (line 2461) -* BFD_RELOC_NIOS2_IMM5: howto manager. (line 2455) -* BFD_RELOC_NIOS2_IMM6: howto manager. (line 2457) -* BFD_RELOC_NIOS2_IMM8: howto manager. (line 2458) -* BFD_RELOC_NIOS2_JUMP_SLOT: howto manager. (line 2483) -* BFD_RELOC_NIOS2_LO16: howto manager. (line 2460) -* BFD_RELOC_NIOS2_PCREL_HA: howto manager. (line 2472) -* BFD_RELOC_NIOS2_PCREL_LO: howto manager. (line 2471) -* BFD_RELOC_NIOS2_R2_F1I5_2: howto manager. (line 2500) -* BFD_RELOC_NIOS2_R2_I10_1_PCREL: howto manager. (line 2492) -* BFD_RELOC_NIOS2_R2_L5I4X1: howto manager. (line 2501) -* BFD_RELOC_NIOS2_R2_S12: howto manager. (line 2491) -* BFD_RELOC_NIOS2_R2_T1I7_1_PCREL: howto manager. (line 2493) -* BFD_RELOC_NIOS2_R2_T1I7_2: howto manager. (line 2494) -* BFD_RELOC_NIOS2_R2_T1X1I6: howto manager. (line 2502) -* BFD_RELOC_NIOS2_R2_T1X1I6_2: howto manager. (line 2503) -* BFD_RELOC_NIOS2_R2_T2I4: howto manager. (line 2495) -* BFD_RELOC_NIOS2_R2_T2I4_1: howto manager. (line 2496) -* BFD_RELOC_NIOS2_R2_T2I4_2: howto manager. (line 2497) -* BFD_RELOC_NIOS2_R2_X1I7_2: howto manager. (line 2498) -* BFD_RELOC_NIOS2_R2_X2L5: howto manager. (line 2499) -* BFD_RELOC_NIOS2_RELATIVE: howto manager. (line 2484) -* BFD_RELOC_NIOS2_S16: howto manager. (line 2452) -* BFD_RELOC_NIOS2_TLS_DTPMOD: howto manager. (line 2478) -* BFD_RELOC_NIOS2_TLS_DTPREL: howto manager. (line 2479) -* BFD_RELOC_NIOS2_TLS_GD16: howto manager. (line 2473) -* BFD_RELOC_NIOS2_TLS_IE16: howto manager. (line 2476) -* BFD_RELOC_NIOS2_TLS_LDM16: howto manager. (line 2474) -* BFD_RELOC_NIOS2_TLS_LDO16: howto manager. (line 2475) -* BFD_RELOC_NIOS2_TLS_LE16: howto manager. (line 2477) -* BFD_RELOC_NIOS2_TLS_TPREL: howto manager. (line 2480) -* BFD_RELOC_NIOS2_U16: howto manager. (line 2453) -* BFD_RELOC_NIOS2_UJMP: howto manager. (line 2463) -* BFD_RELOC_NONE: howto manager. (line 122) -* BFD_RELOC_NS32K_DISP_16: howto manager. (line 590) -* BFD_RELOC_NS32K_DISP_16_PCREL: howto manager. (line 593) -* BFD_RELOC_NS32K_DISP_32: howto manager. (line 591) -* BFD_RELOC_NS32K_DISP_32_PCREL: howto manager. (line 594) -* BFD_RELOC_NS32K_DISP_8: howto manager. (line 589) -* BFD_RELOC_NS32K_DISP_8_PCREL: howto manager. (line 592) -* BFD_RELOC_NS32K_IMM_16: howto manager. (line 584) -* BFD_RELOC_NS32K_IMM_16_PCREL: howto manager. (line 587) -* BFD_RELOC_NS32K_IMM_32: howto manager. (line 585) -* BFD_RELOC_NS32K_IMM_32_PCREL: howto manager. (line 588) -* BFD_RELOC_NS32K_IMM_8: howto manager. (line 583) -* BFD_RELOC_NS32K_IMM_8_PCREL: howto manager. (line 586) -* bfd_reloc_offset_in_range: typedef arelent. (line 370) -* BFD_RELOC_OR1K_COPY: howto manager. (line 2376) -* BFD_RELOC_OR1K_GLOB_DAT: howto manager. (line 2377) -* BFD_RELOC_OR1K_GOT16: howto manager. (line 2372) -* BFD_RELOC_OR1K_GOTOFF_HI16: howto manager. (line 2374) -* BFD_RELOC_OR1K_GOTOFF_LO16: howto manager. (line 2375) -* BFD_RELOC_OR1K_GOTPC_HI16: howto manager. (line 2370) -* BFD_RELOC_OR1K_GOTPC_LO16: howto manager. (line 2371) -* BFD_RELOC_OR1K_JMP_SLOT: howto manager. (line 2378) -* BFD_RELOC_OR1K_PLT26: howto manager. (line 2373) -* BFD_RELOC_OR1K_RELATIVE: howto manager. (line 2379) -* BFD_RELOC_OR1K_REL_26: howto manager. (line 2369) -* BFD_RELOC_OR1K_TLS_DTPMOD: howto manager. (line 2392) -* BFD_RELOC_OR1K_TLS_DTPOFF: howto manager. (line 2391) -* BFD_RELOC_OR1K_TLS_GD_HI16: howto manager. (line 2380) -* BFD_RELOC_OR1K_TLS_GD_LO16: howto manager. (line 2381) -* BFD_RELOC_OR1K_TLS_IE_HI16: howto manager. (line 2386) -* BFD_RELOC_OR1K_TLS_IE_LO16: howto manager. (line 2387) -* BFD_RELOC_OR1K_TLS_LDM_HI16: howto manager. (line 2382) -* BFD_RELOC_OR1K_TLS_LDM_LO16: howto manager. (line 2383) -* BFD_RELOC_OR1K_TLS_LDO_HI16: howto manager. (line 2384) -* BFD_RELOC_OR1K_TLS_LDO_LO16: howto manager. (line 2385) -* BFD_RELOC_OR1K_TLS_LE_HI16: howto manager. (line 2388) -* BFD_RELOC_OR1K_TLS_LE_LO16: howto manager. (line 2389) -* BFD_RELOC_OR1K_TLS_TPOFF: howto manager. (line 2390) -* BFD_RELOC_PDP11_DISP_6_PCREL: howto manager. (line 597) -* BFD_RELOC_PDP11_DISP_8_PCREL: howto manager. (line 596) -* BFD_RELOC_PJ_CODE_DIR16: howto manager. (line 601) -* BFD_RELOC_PJ_CODE_DIR32: howto manager. (line 602) -* BFD_RELOC_PJ_CODE_HI16: howto manager. (line 599) -* BFD_RELOC_PJ_CODE_LO16: howto manager. (line 600) -* BFD_RELOC_PJ_CODE_REL16: howto manager. (line 603) -* BFD_RELOC_PJ_CODE_REL32: howto manager. (line 604) -* BFD_RELOC_PPC64_ADDR16_DS: howto manager. (line 667) -* BFD_RELOC_PPC64_ADDR16_HIGH: howto manager. (line 678) -* BFD_RELOC_PPC64_ADDR16_HIGHA: howto manager. (line 679) -* BFD_RELOC_PPC64_ADDR16_LO_DS: howto manager. (line 668) -* BFD_RELOC_PPC64_ADDR64_LOCAL: howto manager. (line 680) -* BFD_RELOC_PPC64_DTPREL16_DS: howto manager. (line 719) -* BFD_RELOC_PPC64_DTPREL16_HIGH: howto manager. (line 727) -* BFD_RELOC_PPC64_DTPREL16_HIGHA: howto manager. (line 728) -* BFD_RELOC_PPC64_DTPREL16_HIGHER: howto manager. (line 721) -* BFD_RELOC_PPC64_DTPREL16_HIGHERA: howto manager. (line 722) -* BFD_RELOC_PPC64_DTPREL16_HIGHEST: howto manager. (line 723) -* BFD_RELOC_PPC64_DTPREL16_HIGHESTA: howto manager. (line 724) -* BFD_RELOC_PPC64_DTPREL16_LO_DS: howto manager. (line 720) -* BFD_RELOC_PPC64_ENTRY: howto manager. (line 681) -* BFD_RELOC_PPC64_GOT16_DS: howto manager. (line 669) -* BFD_RELOC_PPC64_GOT16_LO_DS: howto manager. (line 670) -* BFD_RELOC_PPC64_HIGHER: howto manager. (line 655) -* BFD_RELOC_PPC64_HIGHER_S: howto manager. (line 656) -* BFD_RELOC_PPC64_HIGHEST: howto manager. (line 657) -* BFD_RELOC_PPC64_HIGHEST_S: howto manager. (line 658) -* BFD_RELOC_PPC64_PLT16_LO_DS: howto manager. (line 671) -* BFD_RELOC_PPC64_PLTGOT16: howto manager. (line 663) -* BFD_RELOC_PPC64_PLTGOT16_DS: howto manager. (line 676) -* BFD_RELOC_PPC64_PLTGOT16_HA: howto manager. (line 666) -* BFD_RELOC_PPC64_PLTGOT16_HI: howto manager. (line 665) -* BFD_RELOC_PPC64_PLTGOT16_LO: howto manager. (line 664) -* BFD_RELOC_PPC64_PLTGOT16_LO_DS: howto manager. (line 677) -* BFD_RELOC_PPC64_SECTOFF_DS: howto manager. (line 672) -* BFD_RELOC_PPC64_SECTOFF_LO_DS: howto manager. (line 673) -* BFD_RELOC_PPC64_TOC: howto manager. (line 662) -* BFD_RELOC_PPC64_TOC16_DS: howto manager. (line 674) -* BFD_RELOC_PPC64_TOC16_HA: howto manager. (line 661) -* BFD_RELOC_PPC64_TOC16_HI: howto manager. (line 660) -* BFD_RELOC_PPC64_TOC16_LO: howto manager. (line 659) -* BFD_RELOC_PPC64_TOC16_LO_DS: howto manager. (line 675) -* BFD_RELOC_PPC64_TPREL16_DS: howto manager. (line 713) -* BFD_RELOC_PPC64_TPREL16_HIGH: howto manager. (line 725) -* BFD_RELOC_PPC64_TPREL16_HIGHA: howto manager. (line 726) -* BFD_RELOC_PPC64_TPREL16_HIGHER: howto manager. (line 715) -* BFD_RELOC_PPC64_TPREL16_HIGHERA: howto manager. (line 716) -* BFD_RELOC_PPC64_TPREL16_HIGHEST: howto manager. (line 717) -* BFD_RELOC_PPC64_TPREL16_HIGHESTA: howto manager. (line 718) -* BFD_RELOC_PPC64_TPREL16_LO_DS: howto manager. (line 714) -* BFD_RELOC_PPC_16DX_HA: howto manager. (line 653) -* BFD_RELOC_PPC_B16: howto manager. (line 609) -* BFD_RELOC_PPC_B16_BRNTAKEN: howto manager. (line 611) -* BFD_RELOC_PPC_B16_BRTAKEN: howto manager. (line 610) -* BFD_RELOC_PPC_B26: howto manager. (line 606) -* BFD_RELOC_PPC_BA16: howto manager. (line 612) -* BFD_RELOC_PPC_BA16_BRNTAKEN: howto manager. (line 614) -* BFD_RELOC_PPC_BA16_BRTAKEN: howto manager. (line 613) -* BFD_RELOC_PPC_BA26: howto manager. (line 607) -* BFD_RELOC_PPC_COPY: howto manager. (line 615) -* BFD_RELOC_PPC_DTPMOD: howto manager. (line 686) -* BFD_RELOC_PPC_DTPREL: howto manager. (line 696) -* BFD_RELOC_PPC_DTPREL16: howto manager. (line 692) -* BFD_RELOC_PPC_DTPREL16_HA: howto manager. (line 695) -* BFD_RELOC_PPC_DTPREL16_HI: howto manager. (line 694) -* BFD_RELOC_PPC_DTPREL16_LO: howto manager. (line 693) -* BFD_RELOC_PPC_EMB_BIT_FLD: howto manager. (line 634) -* BFD_RELOC_PPC_EMB_MRKREF: howto manager. (line 629) -* BFD_RELOC_PPC_EMB_NADDR16: howto manager. (line 621) -* BFD_RELOC_PPC_EMB_NADDR16_HA: howto manager. (line 624) -* BFD_RELOC_PPC_EMB_NADDR16_HI: howto manager. (line 623) -* BFD_RELOC_PPC_EMB_NADDR16_LO: howto manager. (line 622) -* BFD_RELOC_PPC_EMB_NADDR32: howto manager. (line 620) -* BFD_RELOC_PPC_EMB_RELSDA: howto manager. (line 635) -* BFD_RELOC_PPC_EMB_RELSEC16: howto manager. (line 630) -* BFD_RELOC_PPC_EMB_RELST_HA: howto manager. (line 633) -* BFD_RELOC_PPC_EMB_RELST_HI: howto manager. (line 632) -* BFD_RELOC_PPC_EMB_RELST_LO: howto manager. (line 631) -* BFD_RELOC_PPC_EMB_SDA21: howto manager. (line 628) -* BFD_RELOC_PPC_EMB_SDA2I16: howto manager. (line 626) -* BFD_RELOC_PPC_EMB_SDA2REL: howto manager. (line 627) -* BFD_RELOC_PPC_EMB_SDAI16: howto manager. (line 625) -* BFD_RELOC_PPC_GLOB_DAT: howto manager. (line 616) -* BFD_RELOC_PPC_GOT_DTPREL16: howto manager. (line 709) -* BFD_RELOC_PPC_GOT_DTPREL16_HA: howto manager. (line 712) -* BFD_RELOC_PPC_GOT_DTPREL16_HI: howto manager. (line 711) -* BFD_RELOC_PPC_GOT_DTPREL16_LO: howto manager. (line 710) -* BFD_RELOC_PPC_GOT_TLSGD16: howto manager. (line 697) -* BFD_RELOC_PPC_GOT_TLSGD16_HA: howto manager. (line 700) -* BFD_RELOC_PPC_GOT_TLSGD16_HI: howto manager. (line 699) -* BFD_RELOC_PPC_GOT_TLSGD16_LO: howto manager. (line 698) -* BFD_RELOC_PPC_GOT_TLSLD16: howto manager. (line 701) -* BFD_RELOC_PPC_GOT_TLSLD16_HA: howto manager. (line 704) -* BFD_RELOC_PPC_GOT_TLSLD16_HI: howto manager. (line 703) -* BFD_RELOC_PPC_GOT_TLSLD16_LO: howto manager. (line 702) -* BFD_RELOC_PPC_GOT_TPREL16: howto manager. (line 705) -* BFD_RELOC_PPC_GOT_TPREL16_HA: howto manager. (line 708) -* BFD_RELOC_PPC_GOT_TPREL16_HI: howto manager. (line 707) -* BFD_RELOC_PPC_GOT_TPREL16_LO: howto manager. (line 706) -* BFD_RELOC_PPC_JMP_SLOT: howto manager. (line 617) -* BFD_RELOC_PPC_LOCAL24PC: howto manager. (line 619) -* BFD_RELOC_PPC_REL16DX_HA: howto manager. (line 654) -* BFD_RELOC_PPC_RELATIVE: howto manager. (line 618) -* BFD_RELOC_PPC_TLS: howto manager. (line 683) -* BFD_RELOC_PPC_TLSGD: howto manager. (line 684) -* BFD_RELOC_PPC_TLSLD: howto manager. (line 685) -* BFD_RELOC_PPC_TOC16: howto manager. (line 608) -* BFD_RELOC_PPC_TPREL: howto manager. (line 691) -* BFD_RELOC_PPC_TPREL16: howto manager. (line 687) -* BFD_RELOC_PPC_TPREL16_HA: howto manager. (line 690) -* BFD_RELOC_PPC_TPREL16_HI: howto manager. (line 689) -* BFD_RELOC_PPC_TPREL16_LO: howto manager. (line 688) -* BFD_RELOC_PPC_VLE_HA16A: howto manager. (line 643) -* BFD_RELOC_PPC_VLE_HA16D: howto manager. (line 644) -* BFD_RELOC_PPC_VLE_HI16A: howto manager. (line 641) -* BFD_RELOC_PPC_VLE_HI16D: howto manager. (line 642) -* BFD_RELOC_PPC_VLE_LO16A: howto manager. (line 639) -* BFD_RELOC_PPC_VLE_LO16D: howto manager. (line 640) -* BFD_RELOC_PPC_VLE_REL15: howto manager. (line 637) -* BFD_RELOC_PPC_VLE_REL24: howto manager. (line 638) -* BFD_RELOC_PPC_VLE_REL8: howto manager. (line 636) -* BFD_RELOC_PPC_VLE_SDA21: howto manager. (line 645) -* BFD_RELOC_PPC_VLE_SDA21_LO: howto manager. (line 646) -* BFD_RELOC_PPC_VLE_SDAREL_HA16A: howto manager. (line 651) -* BFD_RELOC_PPC_VLE_SDAREL_HA16D: howto manager. (line 652) -* BFD_RELOC_PPC_VLE_SDAREL_HI16A: howto manager. (line 649) -* BFD_RELOC_PPC_VLE_SDAREL_HI16D: howto manager. (line 650) -* BFD_RELOC_PPC_VLE_SDAREL_LO16A: howto manager. (line 647) -* BFD_RELOC_PPC_VLE_SDAREL_LO16D: howto manager. (line 648) -* BFD_RELOC_PRU_16_PMEM: howto manager. (line 2518) -* BFD_RELOC_PRU_32_PMEM: howto manager. (line 2517) -* BFD_RELOC_PRU_GNU_DIFF16: howto manager. (line 2522) -* BFD_RELOC_PRU_GNU_DIFF16_PMEM: howto manager. (line 2524) -* BFD_RELOC_PRU_GNU_DIFF32: howto manager. (line 2523) -* BFD_RELOC_PRU_GNU_DIFF32_PMEM: howto manager. (line 2525) -* BFD_RELOC_PRU_GNU_DIFF8: howto manager. (line 2521) -* BFD_RELOC_PRU_LDI32: howto manager. (line 2509) -* BFD_RELOC_PRU_S10_PCREL: howto manager. (line 2513) -* BFD_RELOC_PRU_U16: howto manager. (line 2505) -* BFD_RELOC_PRU_U16_PMEMIMM: howto manager. (line 2507) -* BFD_RELOC_PRU_U8_PCREL: howto manager. (line 2515) -* BFD_RELOC_RELC: howto manager. (line 2406) -* BFD_RELOC_RISCV_32_PCREL: howto manager. (line 1820) -* BFD_RELOC_RISCV_ADD16: howto manager. (line 1788) -* BFD_RELOC_RISCV_ADD32: howto manager. (line 1789) -* BFD_RELOC_RISCV_ADD64: howto manager. (line 1790) -* BFD_RELOC_RISCV_ADD8: howto manager. (line 1787) -* BFD_RELOC_RISCV_ALIGN: howto manager. (line 1805) -* BFD_RELOC_RISCV_CALL: howto manager. (line 1785) -* BFD_RELOC_RISCV_CALL_PLT: howto manager. (line 1786) -* BFD_RELOC_RISCV_CFA: howto manager. (line 1814) -* BFD_RELOC_RISCV_GOT_HI20: howto manager. (line 1795) -* BFD_RELOC_RISCV_GPREL12_I: howto manager. (line 1779) -* BFD_RELOC_RISCV_GPREL12_S: howto manager. (line 1780) -* BFD_RELOC_RISCV_GPREL_I: howto manager. (line 1809) -* BFD_RELOC_RISCV_GPREL_S: howto manager. (line 1810) -* BFD_RELOC_RISCV_HI20: howto manager. (line 1773) -* BFD_RELOC_RISCV_JMP: howto manager. (line 1798) -* BFD_RELOC_RISCV_LO12_I: howto manager. (line 1777) -* BFD_RELOC_RISCV_LO12_S: howto manager. (line 1778) -* BFD_RELOC_RISCV_PCREL_HI20: howto manager. (line 1774) -* BFD_RELOC_RISCV_PCREL_LO12_I: howto manager. (line 1775) -* BFD_RELOC_RISCV_PCREL_LO12_S: howto manager. (line 1776) -* BFD_RELOC_RISCV_RELAX: howto manager. (line 1813) -* BFD_RELOC_RISCV_RVC_BRANCH: howto manager. (line 1806) -* BFD_RELOC_RISCV_RVC_JUMP: howto manager. (line 1807) -* BFD_RELOC_RISCV_RVC_LUI: howto manager. (line 1808) -* BFD_RELOC_RISCV_SET16: howto manager. (line 1818) -* BFD_RELOC_RISCV_SET32: howto manager. (line 1819) -* BFD_RELOC_RISCV_SET6: howto manager. (line 1816) -* BFD_RELOC_RISCV_SET8: howto manager. (line 1817) -* BFD_RELOC_RISCV_SUB16: howto manager. (line 1792) -* BFD_RELOC_RISCV_SUB32: howto manager. (line 1793) -* BFD_RELOC_RISCV_SUB6: howto manager. (line 1815) -* BFD_RELOC_RISCV_SUB64: howto manager. (line 1794) -* BFD_RELOC_RISCV_SUB8: howto manager. (line 1791) -* BFD_RELOC_RISCV_TLS_DTPMOD32: howto manager. (line 1799) -* BFD_RELOC_RISCV_TLS_DTPMOD64: howto manager. (line 1801) -* BFD_RELOC_RISCV_TLS_DTPREL32: howto manager. (line 1800) -* BFD_RELOC_RISCV_TLS_DTPREL64: howto manager. (line 1802) -* BFD_RELOC_RISCV_TLS_GD_HI20: howto manager. (line 1797) -* BFD_RELOC_RISCV_TLS_GOT_HI20: howto manager. (line 1796) -* BFD_RELOC_RISCV_TLS_TPREL32: howto manager. (line 1803) -* BFD_RELOC_RISCV_TLS_TPREL64: howto manager. (line 1804) -* BFD_RELOC_RISCV_TPREL_ADD: howto manager. (line 1784) -* BFD_RELOC_RISCV_TPREL_HI20: howto manager. (line 1781) -* BFD_RELOC_RISCV_TPREL_I: howto manager. (line 1811) -* BFD_RELOC_RISCV_TPREL_LO12_I: howto manager. (line 1782) -* BFD_RELOC_RISCV_TPREL_LO12_S: howto manager. (line 1783) -* BFD_RELOC_RISCV_TPREL_S: howto manager. (line 1812) -* BFD_RELOC_RL78_16U: howto manager. (line 1830) -* BFD_RELOC_RL78_16_OP: howto manager. (line 1826) -* BFD_RELOC_RL78_24U: howto manager. (line 1831) -* BFD_RELOC_RL78_24_OP: howto manager. (line 1827) -* BFD_RELOC_RL78_32_OP: howto manager. (line 1828) -* BFD_RELOC_RL78_8U: howto manager. (line 1829) -* BFD_RELOC_RL78_ABS16: howto manager. (line 1843) -* BFD_RELOC_RL78_ABS16U: howto manager. (line 1847) -* BFD_RELOC_RL78_ABS16UL: howto manager. (line 1849) -* BFD_RELOC_RL78_ABS16UW: howto manager. (line 1848) -* BFD_RELOC_RL78_ABS16_REV: howto manager. (line 1844) -* BFD_RELOC_RL78_ABS32: howto manager. (line 1845) -* BFD_RELOC_RL78_ABS32_REV: howto manager. (line 1846) -* BFD_RELOC_RL78_ABS8: howto manager. (line 1842) -* BFD_RELOC_RL78_CODE: howto manager. (line 1854) -* BFD_RELOC_RL78_DIFF: howto manager. (line 1833) -* BFD_RELOC_RL78_DIR3U_PCREL: howto manager. (line 1832) -* BFD_RELOC_RL78_GPRELB: howto manager. (line 1834) -* BFD_RELOC_RL78_GPRELL: howto manager. (line 1836) -* BFD_RELOC_RL78_GPRELW: howto manager. (line 1835) -* BFD_RELOC_RL78_HI16: howto manager. (line 1851) -* BFD_RELOC_RL78_HI8: howto manager. (line 1852) -* BFD_RELOC_RL78_LO16: howto manager. (line 1853) -* BFD_RELOC_RL78_NEG16: howto manager. (line 1823) -* BFD_RELOC_RL78_NEG24: howto manager. (line 1824) -* BFD_RELOC_RL78_NEG32: howto manager. (line 1825) -* BFD_RELOC_RL78_NEG8: howto manager. (line 1822) -* BFD_RELOC_RL78_OP_AND: howto manager. (line 1840) -* BFD_RELOC_RL78_OP_NEG: howto manager. (line 1839) -* BFD_RELOC_RL78_OP_SHRA: howto manager. (line 1841) -* BFD_RELOC_RL78_OP_SUBTRACT: howto manager. (line 1838) -* BFD_RELOC_RL78_RELAX: howto manager. (line 1850) -* BFD_RELOC_RL78_SADDR: howto manager. (line 1855) -* BFD_RELOC_RL78_SYM: howto manager. (line 1837) -* BFD_RELOC_RVA: howto manager. (line 97) -* BFD_RELOC_RX_16U: howto manager. (line 1865) -* BFD_RELOC_RX_16_OP: howto manager. (line 1861) -* BFD_RELOC_RX_24U: howto manager. (line 1866) -* BFD_RELOC_RX_24_OP: howto manager. (line 1862) -* BFD_RELOC_RX_32_OP: howto manager. (line 1863) -* BFD_RELOC_RX_8U: howto manager. (line 1864) -* BFD_RELOC_RX_ABS16: howto manager. (line 1876) -* BFD_RELOC_RX_ABS16U: howto manager. (line 1880) -* BFD_RELOC_RX_ABS16UL: howto manager. (line 1882) -* BFD_RELOC_RX_ABS16UW: howto manager. (line 1881) -* BFD_RELOC_RX_ABS16_REV: howto manager. (line 1877) -* BFD_RELOC_RX_ABS32: howto manager. (line 1878) -* BFD_RELOC_RX_ABS32_REV: howto manager. (line 1879) -* BFD_RELOC_RX_ABS8: howto manager. (line 1875) -* BFD_RELOC_RX_DIFF: howto manager. (line 1868) -* BFD_RELOC_RX_DIR3U_PCREL: howto manager. (line 1867) -* BFD_RELOC_RX_GPRELB: howto manager. (line 1869) -* BFD_RELOC_RX_GPRELL: howto manager. (line 1871) -* BFD_RELOC_RX_GPRELW: howto manager. (line 1870) -* BFD_RELOC_RX_NEG16: howto manager. (line 1858) -* BFD_RELOC_RX_NEG24: howto manager. (line 1859) -* BFD_RELOC_RX_NEG32: howto manager. (line 1860) -* BFD_RELOC_RX_NEG8: howto manager. (line 1857) -* BFD_RELOC_RX_OP_NEG: howto manager. (line 1874) -* BFD_RELOC_RX_OP_SUBTRACT: howto manager. (line 1873) -* BFD_RELOC_RX_RELAX: howto manager. (line 1883) -* BFD_RELOC_RX_SYM: howto manager. (line 1872) -* BFD_RELOC_SCORE16_BRANCH: howto manager. (line 1986) -* BFD_RELOC_SCORE16_JMP: howto manager. (line 1984) -* BFD_RELOC_SCORE_BCMP: howto manager. (line 1988) -* BFD_RELOC_SCORE_BRANCH: howto manager. (line 1978) -* BFD_RELOC_SCORE_CALL15: howto manager. (line 1992) -* BFD_RELOC_SCORE_DUMMY2: howto manager. (line 1975) -* BFD_RELOC_SCORE_DUMMY_HI16: howto manager. (line 1993) -* BFD_RELOC_SCORE_GOT15: howto manager. (line 1990) -* BFD_RELOC_SCORE_GOT_LO16: howto manager. (line 1991) -* BFD_RELOC_SCORE_GPREL15: howto manager. (line 1973) -* BFD_RELOC_SCORE_IMM30: howto manager. (line 1980) -* BFD_RELOC_SCORE_IMM32: howto manager. (line 1982) -* BFD_RELOC_SCORE_JMP: howto manager. (line 1976) -* BFD_RELOC_SH_ALIGN: howto manager. (line 904) -* BFD_RELOC_SH_CODE: howto manager. (line 905) -* BFD_RELOC_SH_COPY: howto manager. (line 910) -* BFD_RELOC_SH_COPY64: howto manager. (line 935) -* BFD_RELOC_SH_COUNT: howto manager. (line 903) -* BFD_RELOC_SH_DATA: howto manager. (line 906) -* BFD_RELOC_SH_DISP12: howto manager. (line 886) -* BFD_RELOC_SH_DISP12BY2: howto manager. (line 887) -* BFD_RELOC_SH_DISP12BY4: howto manager. (line 888) -* BFD_RELOC_SH_DISP12BY8: howto manager. (line 889) -* BFD_RELOC_SH_DISP20: howto manager. (line 890) -* BFD_RELOC_SH_DISP20BY8: howto manager. (line 891) -* BFD_RELOC_SH_FUNCDESC: howto manager. (line 978) -* BFD_RELOC_SH_GLOB_DAT: howto manager. (line 911) -* BFD_RELOC_SH_GLOB_DAT64: howto manager. (line 936) -* BFD_RELOC_SH_GOT10BY4: howto manager. (line 939) -* BFD_RELOC_SH_GOT10BY8: howto manager. (line 940) -* BFD_RELOC_SH_GOT20: howto manager. (line 972) -* BFD_RELOC_SH_GOTFUNCDESC: howto manager. (line 974) -* BFD_RELOC_SH_GOTFUNCDESC20: howto manager. (line 975) -* BFD_RELOC_SH_GOTOFF20: howto manager. (line 973) -* BFD_RELOC_SH_GOTOFFFUNCDESC: howto manager. (line 976) -* BFD_RELOC_SH_GOTOFFFUNCDESC20: howto manager. (line 977) -* BFD_RELOC_SH_GOTOFF_HI16: howto manager. (line 930) -* BFD_RELOC_SH_GOTOFF_LOW16: howto manager. (line 927) -* BFD_RELOC_SH_GOTOFF_MEDHI16: howto manager. (line 929) -* BFD_RELOC_SH_GOTOFF_MEDLOW16: howto manager. (line 928) -* BFD_RELOC_SH_GOTPC: howto manager. (line 914) -* BFD_RELOC_SH_GOTPC_HI16: howto manager. (line 934) -* BFD_RELOC_SH_GOTPC_LOW16: howto manager. (line 931) -* BFD_RELOC_SH_GOTPC_MEDHI16: howto manager. (line 933) -* BFD_RELOC_SH_GOTPC_MEDLOW16: howto manager. (line 932) -* BFD_RELOC_SH_GOTPLT10BY4: howto manager. (line 941) -* BFD_RELOC_SH_GOTPLT10BY8: howto manager. (line 942) -* BFD_RELOC_SH_GOTPLT32: howto manager. (line 943) -* BFD_RELOC_SH_GOTPLT_HI16: howto manager. (line 922) -* BFD_RELOC_SH_GOTPLT_LOW16: howto manager. (line 919) -* BFD_RELOC_SH_GOTPLT_MEDHI16: howto manager. (line 921) -* BFD_RELOC_SH_GOTPLT_MEDLOW16: howto manager. (line 920) -* BFD_RELOC_SH_GOT_HI16: howto manager. (line 918) -* BFD_RELOC_SH_GOT_LOW16: howto manager. (line 915) -* BFD_RELOC_SH_GOT_MEDHI16: howto manager. (line 917) -* BFD_RELOC_SH_GOT_MEDLOW16: howto manager. (line 916) -* BFD_RELOC_SH_IMM3: howto manager. (line 884) -* BFD_RELOC_SH_IMM3U: howto manager. (line 885) -* BFD_RELOC_SH_IMM4: howto manager. (line 892) -* BFD_RELOC_SH_IMM4BY2: howto manager. (line 893) -* BFD_RELOC_SH_IMM4BY4: howto manager. (line 894) -* BFD_RELOC_SH_IMM8: howto manager. (line 895) -* BFD_RELOC_SH_IMM8BY2: howto manager. (line 896) -* BFD_RELOC_SH_IMM8BY4: howto manager. (line 897) -* BFD_RELOC_SH_IMMS10: howto manager. (line 949) -* BFD_RELOC_SH_IMMS10BY2: howto manager. (line 950) -* BFD_RELOC_SH_IMMS10BY4: howto manager. (line 951) -* BFD_RELOC_SH_IMMS10BY8: howto manager. (line 952) -* BFD_RELOC_SH_IMMS16: howto manager. (line 953) -* BFD_RELOC_SH_IMMS6: howto manager. (line 946) -* BFD_RELOC_SH_IMMS6BY32: howto manager. (line 947) -* BFD_RELOC_SH_IMMU16: howto manager. (line 954) -* BFD_RELOC_SH_IMMU5: howto manager. (line 945) -* BFD_RELOC_SH_IMMU6: howto manager. (line 948) -* BFD_RELOC_SH_IMM_HI16: howto manager. (line 961) -* BFD_RELOC_SH_IMM_HI16_PCREL: howto manager. (line 962) -* BFD_RELOC_SH_IMM_LOW16: howto manager. (line 955) -* BFD_RELOC_SH_IMM_LOW16_PCREL: howto manager. (line 956) -* BFD_RELOC_SH_IMM_MEDHI16: howto manager. (line 959) -* BFD_RELOC_SH_IMM_MEDHI16_PCREL: howto manager. (line 960) -* BFD_RELOC_SH_IMM_MEDLOW16: howto manager. (line 957) -* BFD_RELOC_SH_IMM_MEDLOW16_PCREL: howto manager. (line 958) -* BFD_RELOC_SH_JMP_SLOT: howto manager. (line 912) -* BFD_RELOC_SH_JMP_SLOT64: howto manager. (line 937) -* BFD_RELOC_SH_LABEL: howto manager. (line 907) -* BFD_RELOC_SH_LOOP_END: howto manager. (line 909) -* BFD_RELOC_SH_LOOP_START: howto manager. (line 908) -* BFD_RELOC_SH_PCDISP12BY2: howto manager. (line 883) -* BFD_RELOC_SH_PCDISP8BY2: howto manager. (line 882) -* BFD_RELOC_SH_PCRELIMM8BY2: howto manager. (line 898) -* BFD_RELOC_SH_PCRELIMM8BY4: howto manager. (line 899) -* BFD_RELOC_SH_PLT_HI16: howto manager. (line 926) -* BFD_RELOC_SH_PLT_LOW16: howto manager. (line 923) -* BFD_RELOC_SH_PLT_MEDHI16: howto manager. (line 925) -* BFD_RELOC_SH_PLT_MEDLOW16: howto manager. (line 924) -* BFD_RELOC_SH_PT_16: howto manager. (line 963) -* BFD_RELOC_SH_RELATIVE: howto manager. (line 913) -* BFD_RELOC_SH_RELATIVE64: howto manager. (line 938) -* BFD_RELOC_SH_SHMEDIA_CODE: howto manager. (line 944) -* BFD_RELOC_SH_SWITCH16: howto manager. (line 900) -* BFD_RELOC_SH_SWITCH32: howto manager. (line 901) -* BFD_RELOC_SH_TLS_DTPMOD32: howto manager. (line 969) -* BFD_RELOC_SH_TLS_DTPOFF32: howto manager. (line 970) -* BFD_RELOC_SH_TLS_GD_32: howto manager. (line 964) -* BFD_RELOC_SH_TLS_IE_32: howto manager. (line 967) -* BFD_RELOC_SH_TLS_LDO_32: howto manager. (line 966) -* BFD_RELOC_SH_TLS_LD_32: howto manager. (line 965) -* BFD_RELOC_SH_TLS_LE_32: howto manager. (line 968) -* BFD_RELOC_SH_TLS_TPOFF32: howto manager. (line 971) -* BFD_RELOC_SH_USES: howto manager. (line 902) -* BFD_RELOC_SIZE32: howto manager. (line 69) -* BFD_RELOC_SIZE64: howto manager. (line 70) -* BFD_RELOC_SPARC13: howto manager. (line 125) -* BFD_RELOC_SPARC22: howto manager. (line 124) -* BFD_RELOC_SPARC_10: howto manager. (line 152) -* BFD_RELOC_SPARC_11: howto manager. (line 153) -* BFD_RELOC_SPARC_5: howto manager. (line 165) -* BFD_RELOC_SPARC_6: howto manager. (line 164) -* BFD_RELOC_SPARC_64: howto manager. (line 151) -* BFD_RELOC_SPARC_7: howto manager. (line 163) -* BFD_RELOC_SPARC_BASE13: howto manager. (line 148) -* BFD_RELOC_SPARC_BASE22: howto manager. (line 149) -* BFD_RELOC_SPARC_COPY: howto manager. (line 132) -* BFD_RELOC_SPARC_DISP64: howto manager. (line 166) -* BFD_RELOC_SPARC_GLOB_DAT: howto manager. (line 133) -* BFD_RELOC_SPARC_GOT10: howto manager. (line 126) -* BFD_RELOC_SPARC_GOT13: howto manager. (line 127) -* BFD_RELOC_SPARC_GOT22: howto manager. (line 128) -* BFD_RELOC_SPARC_GOTDATA_HIX22: howto manager. (line 139) -* BFD_RELOC_SPARC_GOTDATA_LOX10: howto manager. (line 140) -* BFD_RELOC_SPARC_GOTDATA_OP: howto manager. (line 143) -* BFD_RELOC_SPARC_GOTDATA_OP_HIX22: howto manager. (line 141) -* BFD_RELOC_SPARC_GOTDATA_OP_LOX10: howto manager. (line 142) -* BFD_RELOC_SPARC_H34: howto manager. (line 175) -* BFD_RELOC_SPARC_H44: howto manager. (line 171) -* BFD_RELOC_SPARC_HH22: howto manager. (line 155) -* BFD_RELOC_SPARC_HIX22: howto manager. (line 169) -* BFD_RELOC_SPARC_HM10: howto manager. (line 156) -* BFD_RELOC_SPARC_IRELATIVE: howto manager. (line 145) -* BFD_RELOC_SPARC_JMP_IREL: howto manager. (line 144) -* BFD_RELOC_SPARC_JMP_SLOT: howto manager. (line 134) -* BFD_RELOC_SPARC_L44: howto manager. (line 173) -* BFD_RELOC_SPARC_LM22: howto manager. (line 157) -* BFD_RELOC_SPARC_LOX10: howto manager. (line 170) -* BFD_RELOC_SPARC_M44: howto manager. (line 172) -* BFD_RELOC_SPARC_OLO10: howto manager. (line 154) -* BFD_RELOC_SPARC_PC10: howto manager. (line 129) -* BFD_RELOC_SPARC_PC22: howto manager. (line 130) -* BFD_RELOC_SPARC_PC_HH22: howto manager. (line 158) -* BFD_RELOC_SPARC_PC_HM10: howto manager. (line 159) -* BFD_RELOC_SPARC_PC_LM22: howto manager. (line 160) -* BFD_RELOC_SPARC_PLT32: howto manager. (line 167) -* BFD_RELOC_SPARC_PLT64: howto manager. (line 168) -* BFD_RELOC_SPARC_REGISTER: howto manager. (line 174) -* BFD_RELOC_SPARC_RELATIVE: howto manager. (line 135) -* BFD_RELOC_SPARC_REV32: howto manager. (line 180) -* BFD_RELOC_SPARC_SIZE32: howto manager. (line 176) -* BFD_RELOC_SPARC_SIZE64: howto manager. (line 177) -* BFD_RELOC_SPARC_TLS_DTPMOD32: howto manager. (line 200) -* BFD_RELOC_SPARC_TLS_DTPMOD64: howto manager. (line 201) -* BFD_RELOC_SPARC_TLS_DTPOFF32: howto manager. (line 202) -* BFD_RELOC_SPARC_TLS_DTPOFF64: howto manager. (line 203) -* BFD_RELOC_SPARC_TLS_GD_ADD: howto manager. (line 184) -* BFD_RELOC_SPARC_TLS_GD_CALL: howto manager. (line 185) -* BFD_RELOC_SPARC_TLS_GD_HI22: howto manager. (line 182) -* BFD_RELOC_SPARC_TLS_GD_LO10: howto manager. (line 183) -* BFD_RELOC_SPARC_TLS_IE_ADD: howto manager. (line 197) -* BFD_RELOC_SPARC_TLS_IE_HI22: howto manager. (line 193) -* BFD_RELOC_SPARC_TLS_IE_LD: howto manager. (line 195) -* BFD_RELOC_SPARC_TLS_IE_LDX: howto manager. (line 196) -* BFD_RELOC_SPARC_TLS_IE_LO10: howto manager. (line 194) -* BFD_RELOC_SPARC_TLS_LDM_ADD: howto manager. (line 188) -* BFD_RELOC_SPARC_TLS_LDM_CALL: howto manager. (line 189) -* BFD_RELOC_SPARC_TLS_LDM_HI22: howto manager. (line 186) -* BFD_RELOC_SPARC_TLS_LDM_LO10: howto manager. (line 187) -* BFD_RELOC_SPARC_TLS_LDO_ADD: howto manager. (line 192) -* BFD_RELOC_SPARC_TLS_LDO_HIX22: howto manager. (line 190) -* BFD_RELOC_SPARC_TLS_LDO_LOX10: howto manager. (line 191) -* BFD_RELOC_SPARC_TLS_LE_HIX22: howto manager. (line 198) -* BFD_RELOC_SPARC_TLS_LE_LOX10: howto manager. (line 199) -* BFD_RELOC_SPARC_TLS_TPOFF32: howto manager. (line 204) -* BFD_RELOC_SPARC_TLS_TPOFF64: howto manager. (line 205) -* BFD_RELOC_SPARC_UA16: howto manager. (line 136) -* BFD_RELOC_SPARC_UA32: howto manager. (line 137) -* BFD_RELOC_SPARC_UA64: howto manager. (line 138) -* BFD_RELOC_SPARC_WDISP10: howto manager. (line 178) -* BFD_RELOC_SPARC_WDISP16: howto manager. (line 161) -* BFD_RELOC_SPARC_WDISP19: howto manager. (line 162) -* BFD_RELOC_SPARC_WDISP22: howto manager. (line 123) -* BFD_RELOC_SPARC_WPLT30: howto manager. (line 131) -* BFD_RELOC_SPU_ADD_PIC: howto manager. (line 221) -* BFD_RELOC_SPU_HI16: howto manager. (line 218) -* BFD_RELOC_SPU_IMM10: howto manager. (line 209) -* BFD_RELOC_SPU_IMM10W: howto manager. (line 210) -* BFD_RELOC_SPU_IMM16: howto manager. (line 211) -* BFD_RELOC_SPU_IMM16W: howto manager. (line 212) -* BFD_RELOC_SPU_IMM18: howto manager. (line 213) -* BFD_RELOC_SPU_IMM7: howto manager. (line 207) -* BFD_RELOC_SPU_IMM8: howto manager. (line 208) -* BFD_RELOC_SPU_LO16: howto manager. (line 217) -* BFD_RELOC_SPU_PCREL16: howto manager. (line 216) -* BFD_RELOC_SPU_PCREL9a: howto manager. (line 214) -* BFD_RELOC_SPU_PCREL9b: howto manager. (line 215) -* BFD_RELOC_SPU_PPU32: howto manager. (line 219) -* BFD_RELOC_SPU_PPU64: howto manager. (line 220) -* BFD_RELOC_THUMB_PCREL_BLX: howto manager. (line 744) -* BFD_RELOC_THUMB_PCREL_BRANCH12: howto manager. (line 755) -* BFD_RELOC_THUMB_PCREL_BRANCH20: howto manager. (line 756) -* BFD_RELOC_THUMB_PCREL_BRANCH23: howto manager. (line 757) -* BFD_RELOC_THUMB_PCREL_BRANCH25: howto manager. (line 758) -* BFD_RELOC_THUMB_PCREL_BRANCH7: howto manager. (line 753) -* BFD_RELOC_THUMB_PCREL_BRANCH9: howto manager. (line 754) -* BFD_RELOC_TIC30_LDP: howto manager. (line 1484) -* BFD_RELOC_TIC54X_16_OF_23: howto manager. (line 1498) -* BFD_RELOC_TIC54X_23: howto manager. (line 1496) -* BFD_RELOC_TIC54X_MS7_OF_23: howto manager. (line 1502) -* BFD_RELOC_TIC54X_PARTLS7: howto manager. (line 1488) -* BFD_RELOC_TIC54X_PARTMS9: howto manager. (line 1492) -* BFD_RELOC_TILEGX_BROFF_X1: howto manager. (line 3124) -* BFD_RELOC_TILEGX_COPY: howto manager. (line 3120) -* BFD_RELOC_TILEGX_DEST_IMM8_X1: howto manager. (line 3131) -* BFD_RELOC_TILEGX_GLOB_DAT: howto manager. (line 3121) -* BFD_RELOC_TILEGX_HW0: howto manager. (line 3113) -* BFD_RELOC_TILEGX_HW0_LAST: howto manager. (line 3117) -* BFD_RELOC_TILEGX_HW1: howto manager. (line 3114) -* BFD_RELOC_TILEGX_HW1_LAST: howto manager. (line 3118) -* BFD_RELOC_TILEGX_HW2: howto manager. (line 3115) -* BFD_RELOC_TILEGX_HW2_LAST: howto manager. (line 3119) -* BFD_RELOC_TILEGX_HW3: howto manager. (line 3116) -* BFD_RELOC_TILEGX_IMM16_X0_HW0: howto manager. (line 3140) -* BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT: howto manager. (line 3168) -* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST: howto manager. (line 3148) -* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT: howto manager. (line 3176) -* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL: howto manager. (line 3162) +* BFD_RELOC_CR16_ABS20: howto manager. (line 2256) +* BFD_RELOC_CR16_ABS24: howto manager. (line 2257) +* BFD_RELOC_CR16_DISP16: howto manager. (line 2267) +* BFD_RELOC_CR16_DISP20: howto manager. (line 2268) +* BFD_RELOC_CR16_DISP24: howto manager. (line 2269) +* BFD_RELOC_CR16_DISP24a: howto manager. (line 2270) +* BFD_RELOC_CR16_DISP4: howto manager. (line 2265) +* BFD_RELOC_CR16_DISP8: howto manager. (line 2266) +* BFD_RELOC_CR16_GLOB_DAT: howto manager. (line 2276) +* BFD_RELOC_CR16_GOTC_REGREL20: howto manager. (line 2275) +* BFD_RELOC_CR16_GOT_REGREL20: howto manager. (line 2274) +* BFD_RELOC_CR16_IMM16: howto manager. (line 2260) +* BFD_RELOC_CR16_IMM20: howto manager. (line 2261) +* BFD_RELOC_CR16_IMM24: howto manager. (line 2262) +* BFD_RELOC_CR16_IMM32: howto manager. (line 2263) +* BFD_RELOC_CR16_IMM32a: howto manager. (line 2264) +* BFD_RELOC_CR16_IMM4: howto manager. (line 2258) +* BFD_RELOC_CR16_IMM8: howto manager. (line 2259) +* BFD_RELOC_CR16_NUM16: howto manager. (line 2245) +* BFD_RELOC_CR16_NUM32: howto manager. (line 2246) +* BFD_RELOC_CR16_NUM32a: howto manager. (line 2247) +* BFD_RELOC_CR16_NUM8: howto manager. (line 2244) +* BFD_RELOC_CR16_REGREL0: howto manager. (line 2248) +* BFD_RELOC_CR16_REGREL14: howto manager. (line 2251) +* BFD_RELOC_CR16_REGREL14a: howto manager. (line 2252) +* BFD_RELOC_CR16_REGREL16: howto manager. (line 2253) +* BFD_RELOC_CR16_REGREL20: howto manager. (line 2254) +* BFD_RELOC_CR16_REGREL20a: howto manager. (line 2255) +* BFD_RELOC_CR16_REGREL4: howto manager. (line 2249) +* BFD_RELOC_CR16_REGREL4a: howto manager. (line 2250) +* BFD_RELOC_CR16_SWITCH16: howto manager. (line 2272) +* BFD_RELOC_CR16_SWITCH32: howto manager. (line 2273) +* BFD_RELOC_CR16_SWITCH8: howto manager. (line 2271) +* BFD_RELOC_CRIS_16_DTPREL: howto manager. (line 2336) +* BFD_RELOC_CRIS_16_GOT: howto manager. (line 2318) +* BFD_RELOC_CRIS_16_GOTPLT: howto manager. (line 2322) +* BFD_RELOC_CRIS_16_GOT_GD: howto manager. (line 2332) +* BFD_RELOC_CRIS_16_GOT_TPREL: howto manager. (line 2338) +* BFD_RELOC_CRIS_16_TPREL: howto manager. (line 2340) +* BFD_RELOC_CRIS_32_DTPREL: howto manager. (line 2335) +* BFD_RELOC_CRIS_32_GD: howto manager. (line 2333) +* BFD_RELOC_CRIS_32_GOT: howto manager. (line 2316) +* BFD_RELOC_CRIS_32_GOTPLT: howto manager. (line 2320) +* BFD_RELOC_CRIS_32_GOTREL: howto manager. (line 2324) +* BFD_RELOC_CRIS_32_GOT_GD: howto manager. (line 2331) +* BFD_RELOC_CRIS_32_GOT_TPREL: howto manager. (line 2337) +* BFD_RELOC_CRIS_32_IE: howto manager. (line 2342) +* BFD_RELOC_CRIS_32_PLT_GOTREL: howto manager. (line 2326) +* BFD_RELOC_CRIS_32_PLT_PCREL: howto manager. (line 2328) +* BFD_RELOC_CRIS_32_TPREL: howto manager. (line 2339) +* BFD_RELOC_CRIS_BDISP8: howto manager. (line 2299) +* BFD_RELOC_CRIS_COPY: howto manager. (line 2311) +* BFD_RELOC_CRIS_DTP: howto manager. (line 2334) +* BFD_RELOC_CRIS_DTPMOD: howto manager. (line 2341) +* BFD_RELOC_CRIS_GLOB_DAT: howto manager. (line 2312) +* BFD_RELOC_CRIS_JUMP_SLOT: howto manager. (line 2313) +* BFD_RELOC_CRIS_LAPCQ_OFFSET: howto manager. (line 2307) +* BFD_RELOC_CRIS_RELATIVE: howto manager. (line 2314) +* BFD_RELOC_CRIS_SIGNED_16: howto manager. (line 2305) +* BFD_RELOC_CRIS_SIGNED_6: howto manager. (line 2301) +* BFD_RELOC_CRIS_SIGNED_8: howto manager. (line 2303) +* BFD_RELOC_CRIS_UNSIGNED_16: howto manager. (line 2306) +* BFD_RELOC_CRIS_UNSIGNED_4: howto manager. (line 2308) +* BFD_RELOC_CRIS_UNSIGNED_5: howto manager. (line 2300) +* BFD_RELOC_CRIS_UNSIGNED_6: howto manager. (line 2302) +* BFD_RELOC_CRIS_UNSIGNED_8: howto manager. (line 2304) +* BFD_RELOC_CRX_ABS16: howto manager. (line 2288) +* BFD_RELOC_CRX_ABS32: howto manager. (line 2289) +* BFD_RELOC_CRX_IMM16: howto manager. (line 2293) +* BFD_RELOC_CRX_IMM32: howto manager. (line 2294) +* BFD_RELOC_CRX_NUM16: howto manager. (line 2291) +* BFD_RELOC_CRX_NUM32: howto manager. (line 2292) +* BFD_RELOC_CRX_NUM8: howto manager. (line 2290) +* BFD_RELOC_CRX_REGREL12: howto manager. (line 2284) +* BFD_RELOC_CRX_REGREL22: howto manager. (line 2285) +* BFD_RELOC_CRX_REGREL28: howto manager. (line 2286) +* BFD_RELOC_CRX_REGREL32: howto manager. (line 2287) +* BFD_RELOC_CRX_REL16: howto manager. (line 2281) +* BFD_RELOC_CRX_REL24: howto manager. (line 2282) +* BFD_RELOC_CRX_REL32: howto manager. (line 2283) +* BFD_RELOC_CRX_REL4: howto manager. (line 2278) +* BFD_RELOC_CRX_REL8: howto manager. (line 2279) +* BFD_RELOC_CRX_REL8_CMP: howto manager. (line 2280) +* BFD_RELOC_CRX_SWITCH16: howto manager. (line 2296) +* BFD_RELOC_CRX_SWITCH32: howto manager. (line 2297) +* BFD_RELOC_CRX_SWITCH8: howto manager. (line 2295) +* BFD_RELOC_CTOR: howto manager. (line 728) +* BFD_RELOC_D10V_10_PCREL_L: howto manager. (line 1139) +* BFD_RELOC_D10V_10_PCREL_R: howto manager. (line 1136) +* BFD_RELOC_D10V_18: howto manager. (line 1143) +* BFD_RELOC_D10V_18_PCREL: howto manager. (line 1145) +* BFD_RELOC_D30V_15: howto manager. (line 1156) +* BFD_RELOC_D30V_15_PCREL: howto manager. (line 1159) +* BFD_RELOC_D30V_15_PCREL_R: howto manager. (line 1162) +* BFD_RELOC_D30V_21: howto manager. (line 1166) +* BFD_RELOC_D30V_21_PCREL: howto manager. (line 1169) +* BFD_RELOC_D30V_21_PCREL_R: howto manager. (line 1172) +* BFD_RELOC_D30V_32: howto manager. (line 1176) +* BFD_RELOC_D30V_32_PCREL: howto manager. (line 1178) +* BFD_RELOC_D30V_6: howto manager. (line 1147) +* BFD_RELOC_D30V_9_PCREL: howto manager. (line 1149) +* BFD_RELOC_D30V_9_PCREL_R: howto manager. (line 1152) +* BFD_RELOC_DLX_HI16_S: howto manager. (line 1180) +* BFD_RELOC_DLX_JMP26: howto manager. (line 1184) +* BFD_RELOC_DLX_LO16: howto manager. (line 1182) +* BFD_RELOC_EPIPHANY_HIGH: howto manager. (line 3266) +* BFD_RELOC_EPIPHANY_IMM11: howto manager. (line 3272) +* BFD_RELOC_EPIPHANY_IMM8: howto manager. (line 3275) +* BFD_RELOC_EPIPHANY_LOW: howto manager. (line 3268) +* BFD_RELOC_EPIPHANY_SIMM11: howto manager. (line 3270) +* BFD_RELOC_EPIPHANY_SIMM24: howto manager. (line 3264) +* BFD_RELOC_EPIPHANY_SIMM8: howto manager. (line 3262) +* BFD_RELOC_FR30_10_IN_8: howto manager. (line 1554) +* BFD_RELOC_FR30_12_PCREL: howto manager. (line 1560) +* BFD_RELOC_FR30_20: howto manager. (line 1542) +* BFD_RELOC_FR30_48: howto manager. (line 1540) +* BFD_RELOC_FR30_6_IN_4: howto manager. (line 1545) +* BFD_RELOC_FR30_8_IN_8: howto manager. (line 1548) +* BFD_RELOC_FR30_9_IN_8: howto manager. (line 1551) +* BFD_RELOC_FR30_9_PCREL: howto manager. (line 1557) +* BFD_RELOC_FRV_FUNCDESC: howto manager. (line 451) +* BFD_RELOC_FRV_FUNCDESC_GOT12: howto manager. (line 452) +* BFD_RELOC_FRV_FUNCDESC_GOTHI: howto manager. (line 453) +* BFD_RELOC_FRV_FUNCDESC_GOTLO: howto manager. (line 454) +* BFD_RELOC_FRV_FUNCDESC_GOTOFF12: howto manager. (line 456) +* BFD_RELOC_FRV_FUNCDESC_GOTOFFHI: howto manager. (line 457) +* BFD_RELOC_FRV_FUNCDESC_GOTOFFLO: howto manager. (line 458) +* BFD_RELOC_FRV_FUNCDESC_VALUE: howto manager. (line 455) +* BFD_RELOC_FRV_GETTLSOFF: howto manager. (line 462) +* BFD_RELOC_FRV_GETTLSOFF_RELAX: howto manager. (line 475) +* BFD_RELOC_FRV_GOT12: howto manager. (line 448) +* BFD_RELOC_FRV_GOTHI: howto manager. (line 449) +* BFD_RELOC_FRV_GOTLO: howto manager. (line 450) +* BFD_RELOC_FRV_GOTOFF12: howto manager. (line 459) +* BFD_RELOC_FRV_GOTOFFHI: howto manager. (line 460) +* BFD_RELOC_FRV_GOTOFFLO: howto manager. (line 461) +* BFD_RELOC_FRV_GOTTLSDESC12: howto manager. (line 464) +* BFD_RELOC_FRV_GOTTLSDESCHI: howto manager. (line 465) +* BFD_RELOC_FRV_GOTTLSDESCLO: howto manager. (line 466) +* BFD_RELOC_FRV_GOTTLSOFF12: howto manager. (line 470) +* BFD_RELOC_FRV_GOTTLSOFFHI: howto manager. (line 471) +* BFD_RELOC_FRV_GOTTLSOFFLO: howto manager. (line 472) +* BFD_RELOC_FRV_GPREL12: howto manager. (line 443) +* BFD_RELOC_FRV_GPREL32: howto manager. (line 445) +* BFD_RELOC_FRV_GPRELHI: howto manager. (line 446) +* BFD_RELOC_FRV_GPRELLO: howto manager. (line 447) +* BFD_RELOC_FRV_GPRELU12: howto manager. (line 444) +* BFD_RELOC_FRV_HI16: howto manager. (line 442) +* BFD_RELOC_FRV_LABEL16: howto manager. (line 439) +* BFD_RELOC_FRV_LABEL24: howto manager. (line 440) +* BFD_RELOC_FRV_LO16: howto manager. (line 441) +* BFD_RELOC_FRV_TLSDESC_RELAX: howto manager. (line 474) +* BFD_RELOC_FRV_TLSDESC_VALUE: howto manager. (line 463) +* BFD_RELOC_FRV_TLSMOFF: howto manager. (line 477) +* BFD_RELOC_FRV_TLSMOFF12: howto manager. (line 467) +* BFD_RELOC_FRV_TLSMOFFHI: howto manager. (line 468) +* BFD_RELOC_FRV_TLSMOFFLO: howto manager. (line 469) +* BFD_RELOC_FRV_TLSOFF: howto manager. (line 473) +* BFD_RELOC_FRV_TLSOFF_RELAX: howto manager. (line 476) +* BFD_RELOC_FT32_10: howto manager. (line 429) +* BFD_RELOC_FT32_15: howto manager. (line 436) +* BFD_RELOC_FT32_17: howto manager. (line 431) +* BFD_RELOC_FT32_18: howto manager. (line 432) +* BFD_RELOC_FT32_20: howto manager. (line 430) +* BFD_RELOC_FT32_DIFF32: howto manager. (line 437) +* BFD_RELOC_FT32_RELAX: howto manager. (line 433) +* BFD_RELOC_FT32_SC0: howto manager. (line 434) +* BFD_RELOC_FT32_SC1: howto manager. (line 435) +* BFD_RELOC_GPREL16: howto manager. (line 112) +* BFD_RELOC_GPREL32: howto manager. (line 113) +* BFD_RELOC_H8_DIR16A8: howto manager. (line 2369) +* BFD_RELOC_H8_DIR16R8: howto manager. (line 2370) +* BFD_RELOC_H8_DIR24A8: howto manager. (line 2371) +* BFD_RELOC_H8_DIR24R8: howto manager. (line 2372) +* BFD_RELOC_H8_DIR32A16: howto manager. (line 2373) +* BFD_RELOC_H8_DISP32A16: howto manager. (line 2374) +* BFD_RELOC_HI16: howto manager. (line 312) +* BFD_RELOC_HI16_BASEREL: howto manager. (line 92) +* BFD_RELOC_HI16_GOTOFF: howto manager. (line 51) +* BFD_RELOC_HI16_PCREL: howto manager. (line 321) +* BFD_RELOC_HI16_PLTOFF: howto manager. (line 63) +* BFD_RELOC_HI16_S: howto manager. (line 314) +* BFD_RELOC_HI16_S_BASEREL: howto manager. (line 93) +* BFD_RELOC_HI16_S_GOTOFF: howto manager. (line 52) +* BFD_RELOC_HI16_S_PCREL: howto manager. (line 323) +* BFD_RELOC_HI16_S_PLTOFF: howto manager. (line 64) +* BFD_RELOC_HI22: howto manager. (line 108) +* BFD_RELOC_I370_D12: howto manager. (line 726) +* BFD_RELOC_IA64_COPY: howto manager. (line 2101) +* BFD_RELOC_IA64_DIR32LSB: howto manager. (line 2046) +* BFD_RELOC_IA64_DIR32MSB: howto manager. (line 2045) +* BFD_RELOC_IA64_DIR64LSB: howto manager. (line 2048) +* BFD_RELOC_IA64_DIR64MSB: howto manager. (line 2047) +* BFD_RELOC_IA64_DTPMOD64LSB: howto manager. (line 2111) +* BFD_RELOC_IA64_DTPMOD64MSB: howto manager. (line 2110) +* BFD_RELOC_IA64_DTPREL14: howto manager. (line 2113) +* BFD_RELOC_IA64_DTPREL22: howto manager. (line 2114) +* BFD_RELOC_IA64_DTPREL32LSB: howto manager. (line 2117) +* BFD_RELOC_IA64_DTPREL32MSB: howto manager. (line 2116) +* BFD_RELOC_IA64_DTPREL64I: howto manager. (line 2115) +* BFD_RELOC_IA64_DTPREL64LSB: howto manager. (line 2119) +* BFD_RELOC_IA64_DTPREL64MSB: howto manager. (line 2118) +* BFD_RELOC_IA64_FPTR32LSB: howto manager. (line 2063) +* BFD_RELOC_IA64_FPTR32MSB: howto manager. (line 2062) +* BFD_RELOC_IA64_FPTR64I: howto manager. (line 2061) +* BFD_RELOC_IA64_FPTR64LSB: howto manager. (line 2065) +* BFD_RELOC_IA64_FPTR64MSB: howto manager. (line 2064) +* BFD_RELOC_IA64_GPREL22: howto manager. (line 2049) +* BFD_RELOC_IA64_GPREL32LSB: howto manager. (line 2052) +* BFD_RELOC_IA64_GPREL32MSB: howto manager. (line 2051) +* BFD_RELOC_IA64_GPREL64I: howto manager. (line 2050) +* BFD_RELOC_IA64_GPREL64LSB: howto manager. (line 2054) +* BFD_RELOC_IA64_GPREL64MSB: howto manager. (line 2053) +* BFD_RELOC_IA64_IMM14: howto manager. (line 2042) +* BFD_RELOC_IA64_IMM22: howto manager. (line 2043) +* BFD_RELOC_IA64_IMM64: howto manager. (line 2044) +* BFD_RELOC_IA64_IPLTLSB: howto manager. (line 2100) +* BFD_RELOC_IA64_IPLTMSB: howto manager. (line 2099) +* BFD_RELOC_IA64_LDXMOV: howto manager. (line 2103) +* BFD_RELOC_IA64_LTOFF22: howto manager. (line 2055) +* BFD_RELOC_IA64_LTOFF22X: howto manager. (line 2102) +* BFD_RELOC_IA64_LTOFF64I: howto manager. (line 2056) +* BFD_RELOC_IA64_LTOFF_DTPMOD22: howto manager. (line 2112) +* BFD_RELOC_IA64_LTOFF_DTPREL22: howto manager. (line 2120) +* BFD_RELOC_IA64_LTOFF_FPTR22: howto manager. (line 2077) +* BFD_RELOC_IA64_LTOFF_FPTR32LSB: howto manager. (line 2080) +* BFD_RELOC_IA64_LTOFF_FPTR32MSB: howto manager. (line 2079) +* BFD_RELOC_IA64_LTOFF_FPTR64I: howto manager. (line 2078) +* BFD_RELOC_IA64_LTOFF_FPTR64LSB: howto manager. (line 2082) +* BFD_RELOC_IA64_LTOFF_FPTR64MSB: howto manager. (line 2081) +* BFD_RELOC_IA64_LTOFF_TPREL22: howto manager. (line 2109) +* BFD_RELOC_IA64_LTV32LSB: howto manager. (line 2096) +* BFD_RELOC_IA64_LTV32MSB: howto manager. (line 2095) +* BFD_RELOC_IA64_LTV64LSB: howto manager. (line 2098) +* BFD_RELOC_IA64_LTV64MSB: howto manager. (line 2097) +* BFD_RELOC_IA64_PCREL21B: howto manager. (line 2066) +* BFD_RELOC_IA64_PCREL21BI: howto manager. (line 2067) +* BFD_RELOC_IA64_PCREL21F: howto manager. (line 2069) +* BFD_RELOC_IA64_PCREL21M: howto manager. (line 2068) +* BFD_RELOC_IA64_PCREL22: howto manager. (line 2070) +* BFD_RELOC_IA64_PCREL32LSB: howto manager. (line 2074) +* BFD_RELOC_IA64_PCREL32MSB: howto manager. (line 2073) +* BFD_RELOC_IA64_PCREL60B: howto manager. (line 2071) +* BFD_RELOC_IA64_PCREL64I: howto manager. (line 2072) +* BFD_RELOC_IA64_PCREL64LSB: howto manager. (line 2076) +* BFD_RELOC_IA64_PCREL64MSB: howto manager. (line 2075) +* BFD_RELOC_IA64_PLTOFF22: howto manager. (line 2057) +* BFD_RELOC_IA64_PLTOFF64I: howto manager. (line 2058) +* BFD_RELOC_IA64_PLTOFF64LSB: howto manager. (line 2060) +* BFD_RELOC_IA64_PLTOFF64MSB: howto manager. (line 2059) +* BFD_RELOC_IA64_REL32LSB: howto manager. (line 2092) +* BFD_RELOC_IA64_REL32MSB: howto manager. (line 2091) +* BFD_RELOC_IA64_REL64LSB: howto manager. (line 2094) +* BFD_RELOC_IA64_REL64MSB: howto manager. (line 2093) +* BFD_RELOC_IA64_SECREL32LSB: howto manager. (line 2088) +* BFD_RELOC_IA64_SECREL32MSB: howto manager. (line 2087) +* BFD_RELOC_IA64_SECREL64LSB: howto manager. (line 2090) +* BFD_RELOC_IA64_SECREL64MSB: howto manager. (line 2089) +* BFD_RELOC_IA64_SEGREL32LSB: howto manager. (line 2084) +* BFD_RELOC_IA64_SEGREL32MSB: howto manager. (line 2083) +* BFD_RELOC_IA64_SEGREL64LSB: howto manager. (line 2086) +* BFD_RELOC_IA64_SEGREL64MSB: howto manager. (line 2085) +* BFD_RELOC_IA64_TPREL14: howto manager. (line 2104) +* BFD_RELOC_IA64_TPREL22: howto manager. (line 2105) +* BFD_RELOC_IA64_TPREL64I: howto manager. (line 2106) +* BFD_RELOC_IA64_TPREL64LSB: howto manager. (line 2108) +* BFD_RELOC_IA64_TPREL64MSB: howto manager. (line 2107) +* BFD_RELOC_IP2K_ADDR16CJP: howto manager. (line 2003) +* BFD_RELOC_IP2K_BANK: howto manager. (line 2001) +* BFD_RELOC_IP2K_EX8DATA: howto manager. (line 2009) +* BFD_RELOC_IP2K_FR9: howto manager. (line 1999) +* BFD_RELOC_IP2K_FR_OFFSET: howto manager. (line 2018) +* BFD_RELOC_IP2K_HI8DATA: howto manager. (line 2008) +* BFD_RELOC_IP2K_HI8INSN: howto manager. (line 2012) +* BFD_RELOC_IP2K_LO8DATA: howto manager. (line 2007) +* BFD_RELOC_IP2K_LO8INSN: howto manager. (line 2011) +* BFD_RELOC_IP2K_PAGE3: howto manager. (line 2005) +* BFD_RELOC_IP2K_PC_SKIP: howto manager. (line 2014) +* BFD_RELOC_IP2K_TEXT: howto manager. (line 2016) +* BFD_RELOC_IQ2000_OFFSET_16: howto manager. (line 2508) +* BFD_RELOC_IQ2000_OFFSET_21: howto manager. (line 2509) +* BFD_RELOC_IQ2000_UHI16: howto manager. (line 2510) +* BFD_RELOC_LM32_16_GOT: howto manager. (line 2600) +* BFD_RELOC_LM32_BRANCH: howto manager. (line 2599) +* BFD_RELOC_LM32_CALL: howto manager. (line 2598) +* BFD_RELOC_LM32_COPY: howto manager. (line 2603) +* BFD_RELOC_LM32_GLOB_DAT: howto manager. (line 2604) +* BFD_RELOC_LM32_GOTOFF_HI16: howto manager. (line 2601) +* BFD_RELOC_LM32_GOTOFF_LO16: howto manager. (line 2602) +* BFD_RELOC_LM32_JMP_SLOT: howto manager. (line 2605) +* BFD_RELOC_LM32_RELATIVE: howto manager. (line 2606) +* BFD_RELOC_LO10: howto manager. (line 109) +* BFD_RELOC_LO16: howto manager. (line 319) +* BFD_RELOC_LO16_BASEREL: howto manager. (line 91) +* BFD_RELOC_LO16_GOTOFF: howto manager. (line 50) +* BFD_RELOC_LO16_PCREL: howto manager. (line 325) +* BFD_RELOC_LO16_PLTOFF: howto manager. (line 62) +* BFD_RELOC_M32C_HI8: howto manager. (line 1186) +* BFD_RELOC_M32C_RL_1ADDR: howto manager. (line 1188) +* BFD_RELOC_M32C_RL_2ADDR: howto manager. (line 1189) +* BFD_RELOC_M32C_RL_JUMP: howto manager. (line 1187) +* BFD_RELOC_M32R_10_PCREL: howto manager. (line 1194) +* BFD_RELOC_M32R_18_PCREL: howto manager. (line 1197) +* BFD_RELOC_M32R_24: howto manager. (line 1191) +* BFD_RELOC_M32R_26_PCREL: howto manager. (line 1199) +* BFD_RELOC_M32R_26_PLTREL: howto manager. (line 1213) +* BFD_RELOC_M32R_COPY: howto manager. (line 1214) +* BFD_RELOC_M32R_GLOB_DAT: howto manager. (line 1215) +* BFD_RELOC_M32R_GOT16_HI_SLO: howto manager. (line 1224) +* BFD_RELOC_M32R_GOT16_HI_ULO: howto manager. (line 1223) +* BFD_RELOC_M32R_GOT16_LO: howto manager. (line 1225) +* BFD_RELOC_M32R_GOT24: howto manager. (line 1212) +* BFD_RELOC_M32R_GOTOFF: howto manager. (line 1218) +* BFD_RELOC_M32R_GOTOFF_HI_SLO: howto manager. (line 1220) +* BFD_RELOC_M32R_GOTOFF_HI_ULO: howto manager. (line 1219) +* BFD_RELOC_M32R_GOTOFF_LO: howto manager. (line 1221) +* BFD_RELOC_M32R_GOTPC24: howto manager. (line 1222) +* BFD_RELOC_M32R_GOTPC_HI_SLO: howto manager. (line 1227) +* BFD_RELOC_M32R_GOTPC_HI_ULO: howto manager. (line 1226) +* BFD_RELOC_M32R_GOTPC_LO: howto manager. (line 1228) +* BFD_RELOC_M32R_HI16_SLO: howto manager. (line 1204) +* BFD_RELOC_M32R_HI16_ULO: howto manager. (line 1201) +* BFD_RELOC_M32R_JMP_SLOT: howto manager. (line 1216) +* BFD_RELOC_M32R_LO16: howto manager. (line 1207) +* BFD_RELOC_M32R_RELATIVE: howto manager. (line 1217) +* BFD_RELOC_M32R_SDA16: howto manager. (line 1209) +* BFD_RELOC_M68HC11_24: howto manager. (line 2148) +* BFD_RELOC_M68HC11_3B: howto manager. (line 2128) +* BFD_RELOC_M68HC11_HI8: howto manager. (line 2122) +* BFD_RELOC_M68HC11_LO16: howto manager. (line 2139) +* BFD_RELOC_M68HC11_LO8: howto manager. (line 2125) +* BFD_RELOC_M68HC11_PAGE: howto manager. (line 2144) +* BFD_RELOC_M68HC11_RL_GROUP: howto manager. (line 2135) +* BFD_RELOC_M68HC11_RL_JUMP: howto manager. (line 2130) +* BFD_RELOC_M68HC12_10_PCREL: howto manager. (line 2191) +* BFD_RELOC_M68HC12_16B: howto manager. (line 2187) +* BFD_RELOC_M68HC12_5B: howto manager. (line 2153) +* BFD_RELOC_M68HC12_9B: howto manager. (line 2185) +* BFD_RELOC_M68HC12_9_PCREL: howto manager. (line 2189) +* BFD_RELOC_M68HC12_HI8XG: howto manager. (line 2196) +* BFD_RELOC_M68HC12_LO8XG: howto manager. (line 2193) +* BFD_RELOC_MACH_O_ARM64_ADDEND: howto manager. (line 2636) +* BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21: howto manager. (line 2638) +* BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGEOFF12: howto manager. (line 2640) +* BFD_RELOC_MACH_O_ARM64_POINTER_TO_GOT: howto manager. (line 2642) +* BFD_RELOC_MACH_O_LOCAL_SECTDIFF: howto manager. (line 2611) +* BFD_RELOC_MACH_O_PAIR: howto manager. (line 2613) +* BFD_RELOC_MACH_O_SECTDIFF: howto manager. (line 2608) +* BFD_RELOC_MACH_O_SUBTRACTOR32: howto manager. (line 2615) +* BFD_RELOC_MACH_O_SUBTRACTOR64: howto manager. (line 2617) +* BFD_RELOC_MACH_O_X86_64_BRANCH32: howto manager. (line 2619) +* BFD_RELOC_MACH_O_X86_64_BRANCH8: howto manager. (line 2620) +* BFD_RELOC_MACH_O_X86_64_GOT: howto manager. (line 2623) +* BFD_RELOC_MACH_O_X86_64_GOT_LOAD: howto manager. (line 2625) +* BFD_RELOC_MACH_O_X86_64_PCREL32_1: howto manager. (line 2628) +* BFD_RELOC_MACH_O_X86_64_PCREL32_2: howto manager. (line 2630) +* BFD_RELOC_MACH_O_X86_64_PCREL32_4: howto manager. (line 2632) +* BFD_RELOC_MACH_O_X86_64_TLV: howto manager. (line 2634) +* BFD_RELOC_MCORE_PCREL_32: howto manager. (line 1566) +* BFD_RELOC_MCORE_PCREL_IMM11BY2: howto manager. (line 1564) +* BFD_RELOC_MCORE_PCREL_IMM4BY2: howto manager. (line 1565) +* BFD_RELOC_MCORE_PCREL_IMM8BY4: howto manager. (line 1563) +* BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2: howto manager. (line 1567) +* BFD_RELOC_MCORE_RVA: howto manager. (line 1568) +* BFD_RELOC_MEP_16: howto manager. (line 1571) +* BFD_RELOC_MEP_32: howto manager. (line 1572) +* BFD_RELOC_MEP_8: howto manager. (line 1570) +* BFD_RELOC_MEP_ADDR24A4: howto manager. (line 1587) +* BFD_RELOC_MEP_GNU_VTENTRY: howto manager. (line 1589) +* BFD_RELOC_MEP_GNU_VTINHERIT: howto manager. (line 1588) +* BFD_RELOC_MEP_GPREL: howto manager. (line 1581) +* BFD_RELOC_MEP_HI16S: howto manager. (line 1580) +* BFD_RELOC_MEP_HI16U: howto manager. (line 1579) +* BFD_RELOC_MEP_LOW16: howto manager. (line 1578) +* BFD_RELOC_MEP_PCABS24A2: howto manager. (line 1577) +* BFD_RELOC_MEP_PCREL12A2: howto manager. (line 1574) +* BFD_RELOC_MEP_PCREL17A2: howto manager. (line 1575) +* BFD_RELOC_MEP_PCREL24A2: howto manager. (line 1576) +* BFD_RELOC_MEP_PCREL8A2: howto manager. (line 1573) +* BFD_RELOC_MEP_TPREL: howto manager. (line 1582) +* BFD_RELOC_MEP_TPREL7: howto manager. (line 1583) +* BFD_RELOC_MEP_TPREL7A2: howto manager. (line 1584) +* BFD_RELOC_MEP_TPREL7A4: howto manager. (line 1585) +* BFD_RELOC_MEP_UIMM24: howto manager. (line 1586) +* BFD_RELOC_METAG_COPY: howto manager. (line 1610) +* BFD_RELOC_METAG_GETSETOFF: howto manager. (line 1594) +* BFD_RELOC_METAG_GETSET_GOT: howto manager. (line 1602) +* BFD_RELOC_METAG_GETSET_GOTOFF: howto manager. (line 1601) +* BFD_RELOC_METAG_GLOB_DAT: howto manager. (line 1613) +* BFD_RELOC_METAG_GOTOFF: howto manager. (line 1608) +* BFD_RELOC_METAG_HI16_GOTOFF: howto manager. (line 1599) +* BFD_RELOC_METAG_HI16_GOTPC: howto manager. (line 1603) +* BFD_RELOC_METAG_HI16_PLT: howto manager. (line 1605) +* BFD_RELOC_METAG_HIADDR16: howto manager. (line 1591) +* BFD_RELOC_METAG_HIOG: howto manager. (line 1595) +* BFD_RELOC_METAG_JMP_SLOT: howto manager. (line 1611) +* BFD_RELOC_METAG_LO16_GOTOFF: howto manager. (line 1600) +* BFD_RELOC_METAG_LO16_GOTPC: howto manager. (line 1604) +* BFD_RELOC_METAG_LO16_PLT: howto manager. (line 1606) +* BFD_RELOC_METAG_LOADDR16: howto manager. (line 1592) +* BFD_RELOC_METAG_LOOG: howto manager. (line 1596) +* BFD_RELOC_METAG_PLT: howto manager. (line 1609) +* BFD_RELOC_METAG_REL16: howto manager. (line 1598) +* BFD_RELOC_METAG_REL8: howto manager. (line 1597) +* BFD_RELOC_METAG_RELATIVE: howto manager. (line 1612) +* BFD_RELOC_METAG_RELBRANCH: howto manager. (line 1593) +* BFD_RELOC_METAG_RELBRANCH_PLT: howto manager. (line 1607) +* BFD_RELOC_METAG_TLS_DTPMOD: howto manager. (line 1624) +* BFD_RELOC_METAG_TLS_DTPOFF: howto manager. (line 1625) +* BFD_RELOC_METAG_TLS_GD: howto manager. (line 1614) +* BFD_RELOC_METAG_TLS_IE: howto manager. (line 1619) +* BFD_RELOC_METAG_TLS_IENONPIC: howto manager. (line 1620) +* BFD_RELOC_METAG_TLS_IENONPIC_HI16: howto manager. (line 1621) +* BFD_RELOC_METAG_TLS_IENONPIC_LO16: howto manager. (line 1622) +* BFD_RELOC_METAG_TLS_LDM: howto manager. (line 1615) +* BFD_RELOC_METAG_TLS_LDO: howto manager. (line 1618) +* BFD_RELOC_METAG_TLS_LDO_HI16: howto manager. (line 1616) +* BFD_RELOC_METAG_TLS_LDO_LO16: howto manager. (line 1617) +* BFD_RELOC_METAG_TLS_LE: howto manager. (line 1626) +* BFD_RELOC_METAG_TLS_LE_HI16: howto manager. (line 1627) +* BFD_RELOC_METAG_TLS_LE_LO16: howto manager. (line 1628) +* BFD_RELOC_METAG_TLS_TPOFF: howto manager. (line 1623) +* BFD_RELOC_MICROBLAZE_32_GOTOFF: howto manager. (line 2678) +* BFD_RELOC_MICROBLAZE_32_LO: howto manager. (line 2644) +* BFD_RELOC_MICROBLAZE_32_LO_PCREL: howto manager. (line 2647) +* BFD_RELOC_MICROBLAZE_32_ROSDA: howto manager. (line 2650) +* BFD_RELOC_MICROBLAZE_32_RWSDA: howto manager. (line 2653) +* BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM: howto manager. (line 2656) +* BFD_RELOC_MICROBLAZE_32_TLSDTPMOD: howto manager. (line 2694) +* BFD_RELOC_MICROBLAZE_32_TLSDTPREL: howto manager. (line 2696) +* BFD_RELOC_MICROBLAZE_64_GOT: howto manager. (line 2667) +* BFD_RELOC_MICROBLAZE_64_GOTOFF: howto manager. (line 2674) +* BFD_RELOC_MICROBLAZE_64_GOTPC: howto manager. (line 2663) +* BFD_RELOC_MICROBLAZE_64_NONE: howto manager. (line 2659) +* BFD_RELOC_MICROBLAZE_64_PLT: howto manager. (line 2670) +* BFD_RELOC_MICROBLAZE_64_TEXTPCREL: howto manager. (line 2707) +* BFD_RELOC_MICROBLAZE_64_TEXTREL: howto manager. (line 2711) +* BFD_RELOC_MICROBLAZE_64_TLS: howto manager. (line 2684) +* BFD_RELOC_MICROBLAZE_64_TLSDTPREL: howto manager. (line 2698) +* BFD_RELOC_MICROBLAZE_64_TLSGD: howto manager. (line 2686) +* BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL: howto manager. (line 2701) +* BFD_RELOC_MICROBLAZE_64_TLSLD: howto manager. (line 2690) +* BFD_RELOC_MICROBLAZE_64_TLSTPREL: howto manager. (line 2704) +* BFD_RELOC_MICROBLAZE_COPY: howto manager. (line 2681) +* BFD_RELOC_MICROMIPS_10_PCREL_S1: howto manager. (line 352) +* BFD_RELOC_MICROMIPS_16_PCREL_S1: howto manager. (line 353) +* BFD_RELOC_MICROMIPS_7_PCREL_S1: howto manager. (line 351) +* BFD_RELOC_MICROMIPS_CALL16: howto manager. (line 370) +* BFD_RELOC_MICROMIPS_CALL_HI16: howto manager. (line 376) +* BFD_RELOC_MICROMIPS_CALL_LO16: howto manager. (line 378) +* BFD_RELOC_MICROMIPS_GOT16: howto manager. (line 368) +* BFD_RELOC_MICROMIPS_GOT_DISP: howto manager. (line 386) +* BFD_RELOC_MICROMIPS_GOT_HI16: howto manager. (line 372) +* BFD_RELOC_MICROMIPS_GOT_LO16: howto manager. (line 374) +* BFD_RELOC_MICROMIPS_GOT_OFST: howto manager. (line 384) +* BFD_RELOC_MICROMIPS_GOT_PAGE: howto manager. (line 382) +* BFD_RELOC_MICROMIPS_GPREL16: howto manager. (line 362) +* BFD_RELOC_MICROMIPS_HI16: howto manager. (line 363) +* BFD_RELOC_MICROMIPS_HI16_S: howto manager. (line 364) +* BFD_RELOC_MICROMIPS_HIGHER: howto manager. (line 395) +* BFD_RELOC_MICROMIPS_HIGHEST: howto manager. (line 393) +* BFD_RELOC_MICROMIPS_JALR: howto manager. (line 401) +* BFD_RELOC_MICROMIPS_JMP: howto manager. (line 306) +* BFD_RELOC_MICROMIPS_LITERAL: howto manager. (line 349) +* BFD_RELOC_MICROMIPS_LO16: howto manager. (line 365) +* BFD_RELOC_MICROMIPS_SCN_DISP: howto manager. (line 397) +* BFD_RELOC_MICROMIPS_SUB: howto manager. (line 380) +* BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16: howto manager. (line 411) +* BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16: howto manager. (line 413) +* BFD_RELOC_MICROMIPS_TLS_GD: howto manager. (line 407) +* BFD_RELOC_MICROMIPS_TLS_GOTTPREL: howto manager. (line 415) +* BFD_RELOC_MICROMIPS_TLS_LDM: howto manager. (line 409) +* BFD_RELOC_MICROMIPS_TLS_TPREL_HI16: howto manager. (line 419) +* BFD_RELOC_MICROMIPS_TLS_TPREL_LO16: howto manager. (line 421) +* BFD_RELOC_MIPS16_16_PCREL_S1: howto manager. (line 355) +* BFD_RELOC_MIPS16_CALL16: howto manager. (line 328) +* BFD_RELOC_MIPS16_GOT16: howto manager. (line 327) +* BFD_RELOC_MIPS16_GPREL: howto manager. (line 310) +* BFD_RELOC_MIPS16_HI16: howto manager. (line 331) +* BFD_RELOC_MIPS16_HI16_S: howto manager. (line 333) +* BFD_RELOC_MIPS16_JMP: howto manager. (line 308) +* BFD_RELOC_MIPS16_LO16: howto manager. (line 338) +* BFD_RELOC_MIPS16_TLS_DTPREL_HI16: howto manager. (line 342) +* BFD_RELOC_MIPS16_TLS_DTPREL_LO16: howto manager. (line 343) +* BFD_RELOC_MIPS16_TLS_GD: howto manager. (line 340) +* BFD_RELOC_MIPS16_TLS_GOTTPREL: howto manager. (line 344) +* BFD_RELOC_MIPS16_TLS_LDM: howto manager. (line 341) +* BFD_RELOC_MIPS16_TLS_TPREL_HI16: howto manager. (line 345) +* BFD_RELOC_MIPS16_TLS_TPREL_LO16: howto manager. (line 346) +* BFD_RELOC_MIPS_18_PCREL_S3: howto manager. (line 359) +* BFD_RELOC_MIPS_19_PCREL_S2: howto manager. (line 360) +* BFD_RELOC_MIPS_21_PCREL_S2: howto manager. (line 357) +* BFD_RELOC_MIPS_26_PCREL_S2: howto manager. (line 358) +* BFD_RELOC_MIPS_CALL16: howto manager. (line 369) +* BFD_RELOC_MIPS_CALL_HI16: howto manager. (line 375) +* BFD_RELOC_MIPS_CALL_LO16: howto manager. (line 377) +* BFD_RELOC_MIPS_COPY: howto manager. (line 424) +* BFD_RELOC_MIPS_DELETE: howto manager. (line 391) +* BFD_RELOC_MIPS_EH: howto manager. (line 422) +* BFD_RELOC_MIPS_GOT16: howto manager. (line 367) +* BFD_RELOC_MIPS_GOT_DISP: howto manager. (line 385) +* BFD_RELOC_MIPS_GOT_HI16: howto manager. (line 371) +* BFD_RELOC_MIPS_GOT_LO16: howto manager. (line 373) +* BFD_RELOC_MIPS_GOT_OFST: howto manager. (line 383) +* BFD_RELOC_MIPS_GOT_PAGE: howto manager. (line 381) +* BFD_RELOC_MIPS_HIGHER: howto manager. (line 394) +* BFD_RELOC_MIPS_HIGHEST: howto manager. (line 392) +* BFD_RELOC_MIPS_INSERT_A: howto manager. (line 389) +* BFD_RELOC_MIPS_INSERT_B: howto manager. (line 390) +* BFD_RELOC_MIPS_JALR: howto manager. (line 400) +* BFD_RELOC_MIPS_JMP: howto manager. (line 305) +* BFD_RELOC_MIPS_JUMP_SLOT: howto manager. (line 425) +* BFD_RELOC_MIPS_LITERAL: howto manager. (line 348) +* BFD_RELOC_MIPS_REL16: howto manager. (line 398) +* BFD_RELOC_MIPS_RELGOT: howto manager. (line 399) +* BFD_RELOC_MIPS_SCN_DISP: howto manager. (line 396) +* BFD_RELOC_MIPS_SHIFT5: howto manager. (line 387) +* BFD_RELOC_MIPS_SHIFT6: howto manager. (line 388) +* BFD_RELOC_MIPS_SUB: howto manager. (line 379) +* BFD_RELOC_MIPS_TLS_DTPMOD32: howto manager. (line 402) +* BFD_RELOC_MIPS_TLS_DTPMOD64: howto manager. (line 404) +* BFD_RELOC_MIPS_TLS_DTPREL32: howto manager. (line 403) +* BFD_RELOC_MIPS_TLS_DTPREL64: howto manager. (line 405) +* BFD_RELOC_MIPS_TLS_DTPREL_HI16: howto manager. (line 410) +* BFD_RELOC_MIPS_TLS_DTPREL_LO16: howto manager. (line 412) +* BFD_RELOC_MIPS_TLS_GD: howto manager. (line 406) +* BFD_RELOC_MIPS_TLS_GOTTPREL: howto manager. (line 414) +* BFD_RELOC_MIPS_TLS_LDM: howto manager. (line 408) +* BFD_RELOC_MIPS_TLS_TPREL32: howto manager. (line 416) +* BFD_RELOC_MIPS_TLS_TPREL64: howto manager. (line 417) +* BFD_RELOC_MIPS_TLS_TPREL_HI16: howto manager. (line 418) +* BFD_RELOC_MIPS_TLS_TPREL_LO16: howto manager. (line 420) +* BFD_RELOC_MMIX_ADDR19: howto manager. (line 1652) +* BFD_RELOC_MMIX_ADDR27: howto manager. (line 1655) +* BFD_RELOC_MMIX_BASE_PLUS_OFFSET: howto manager. (line 1664) +* BFD_RELOC_MMIX_CBRANCH: howto manager. (line 1635) +* BFD_RELOC_MMIX_CBRANCH_1: howto manager. (line 1637) +* BFD_RELOC_MMIX_CBRANCH_2: howto manager. (line 1638) +* BFD_RELOC_MMIX_CBRANCH_3: howto manager. (line 1639) +* BFD_RELOC_MMIX_CBRANCH_J: howto manager. (line 1636) +* BFD_RELOC_MMIX_GETA: howto manager. (line 1630) +* BFD_RELOC_MMIX_GETA_1: howto manager. (line 1631) +* BFD_RELOC_MMIX_GETA_2: howto manager. (line 1632) +* BFD_RELOC_MMIX_GETA_3: howto manager. (line 1633) +* BFD_RELOC_MMIX_JMP: howto manager. (line 1647) +* BFD_RELOC_MMIX_JMP_1: howto manager. (line 1648) +* BFD_RELOC_MMIX_JMP_2: howto manager. (line 1649) +* BFD_RELOC_MMIX_JMP_3: howto manager. (line 1650) +* BFD_RELOC_MMIX_LOCAL: howto manager. (line 1667) +* BFD_RELOC_MMIX_PUSHJ: howto manager. (line 1641) +* BFD_RELOC_MMIX_PUSHJ_1: howto manager. (line 1642) +* BFD_RELOC_MMIX_PUSHJ_2: howto manager. (line 1643) +* BFD_RELOC_MMIX_PUSHJ_3: howto manager. (line 1644) +* BFD_RELOC_MMIX_PUSHJ_STUBBABLE: howto manager. (line 1645) +* BFD_RELOC_MMIX_REG: howto manager. (line 1661) +* BFD_RELOC_MMIX_REG_OR_BYTE: howto manager. (line 1658) +* BFD_RELOC_MN10300_16_PCREL: howto manager. (line 518) +* BFD_RELOC_MN10300_32_PCREL: howto manager. (line 515) +* BFD_RELOC_MN10300_ALIGN: howto manager. (line 502) +* BFD_RELOC_MN10300_COPY: howto manager. (line 490) +* BFD_RELOC_MN10300_GLOB_DAT: howto manager. (line 492) +* BFD_RELOC_MN10300_GOT16: howto manager. (line 487) +* BFD_RELOC_MN10300_GOT24: howto manager. (line 484) +* BFD_RELOC_MN10300_GOT32: howto manager. (line 481) +* BFD_RELOC_MN10300_GOTOFF24: howto manager. (line 479) +* BFD_RELOC_MN10300_JMP_SLOT: howto manager. (line 494) +* BFD_RELOC_MN10300_RELATIVE: howto manager. (line 496) +* BFD_RELOC_MN10300_SYM_DIFF: howto manager. (line 498) +* BFD_RELOC_MN10300_TLS_DTPMOD: howto manager. (line 511) +* BFD_RELOC_MN10300_TLS_DTPOFF: howto manager. (line 512) +* BFD_RELOC_MN10300_TLS_GD: howto manager. (line 505) +* BFD_RELOC_MN10300_TLS_GOTIE: howto manager. (line 508) +* BFD_RELOC_MN10300_TLS_IE: howto manager. (line 509) +* BFD_RELOC_MN10300_TLS_LD: howto manager. (line 506) +* BFD_RELOC_MN10300_TLS_LDO: howto manager. (line 507) +* BFD_RELOC_MN10300_TLS_LE: howto manager. (line 510) +* BFD_RELOC_MN10300_TLS_TPOFF: howto manager. (line 513) +* BFD_RELOC_MOXIE_10_PCREL: howto manager. (line 427) +* BFD_RELOC_MSP430X_ABS16: howto manager. (line 2422) +* BFD_RELOC_MSP430X_ABS20_ADR_DST: howto manager. (line 2419) +* BFD_RELOC_MSP430X_ABS20_ADR_SRC: howto manager. (line 2418) +* BFD_RELOC_MSP430X_ABS20_EXT_DST: howto manager. (line 2416) +* BFD_RELOC_MSP430X_ABS20_EXT_ODST: howto manager. (line 2417) +* BFD_RELOC_MSP430X_ABS20_EXT_SRC: howto manager. (line 2415) +* BFD_RELOC_MSP430X_PCR16: howto manager. (line 2420) +* BFD_RELOC_MSP430X_PCR20_CALL: howto manager. (line 2421) +* BFD_RELOC_MSP430X_PCR20_EXT_DST: howto manager. (line 2413) +* BFD_RELOC_MSP430X_PCR20_EXT_ODST: howto manager. (line 2414) +* BFD_RELOC_MSP430X_PCR20_EXT_SRC: howto manager. (line 2412) +* BFD_RELOC_MSP430_10_PCREL: howto manager. (line 2404) +* BFD_RELOC_MSP430_16: howto manager. (line 2406) +* BFD_RELOC_MSP430_16_BYTE: howto manager. (line 2408) +* BFD_RELOC_MSP430_16_PCREL: howto manager. (line 2405) +* BFD_RELOC_MSP430_16_PCREL_BYTE: howto manager. (line 2407) +* BFD_RELOC_MSP430_2X_PCREL: howto manager. (line 2409) +* BFD_RELOC_MSP430_ABS8: howto manager. (line 2411) +* BFD_RELOC_MSP430_ABS_HI16: howto manager. (line 2423) +* BFD_RELOC_MSP430_PREL31: howto manager. (line 2424) +* BFD_RELOC_MSP430_RL_PCREL: howto manager. (line 2410) +* BFD_RELOC_MSP430_SYM_DIFF: howto manager. (line 2425) +* BFD_RELOC_MT_GNU_VTENTRY: howto manager. (line 2400) +* BFD_RELOC_MT_GNU_VTINHERIT: howto manager. (line 2398) +* BFD_RELOC_MT_HI16: howto manager. (line 2394) +* BFD_RELOC_MT_LO16: howto manager. (line 2396) +* BFD_RELOC_MT_PC16: howto manager. (line 2392) +* BFD_RELOC_MT_PCINSN8: howto manager. (line 2402) +* BFD_RELOC_NDS32_10IFCU_PCREL: howto manager. (line 1380) +* BFD_RELOC_NDS32_10_UPCREL: howto manager. (line 1351) +* BFD_RELOC_NDS32_15_FIXED: howto manager. (line 1312) +* BFD_RELOC_NDS32_15_PCREL: howto manager. (line 1238) +* BFD_RELOC_NDS32_17IFC_PCREL: howto manager. (line 1379) +* BFD_RELOC_NDS32_17_FIXED: howto manager. (line 1313) +* BFD_RELOC_NDS32_17_PCREL: howto manager. (line 1240) +* BFD_RELOC_NDS32_20: howto manager. (line 1230) +* BFD_RELOC_NDS32_25_ABS: howto manager. (line 1375) +* BFD_RELOC_NDS32_25_FIXED: howto manager. (line 1314) +* BFD_RELOC_NDS32_25_PCREL: howto manager. (line 1242) +* BFD_RELOC_NDS32_25_PLTREL: howto manager. (line 1288) +* BFD_RELOC_NDS32_5: howto manager. (line 1349) +* BFD_RELOC_NDS32_9_FIXED: howto manager. (line 1311) +* BFD_RELOC_NDS32_9_PCREL: howto manager. (line 1232) +* BFD_RELOC_NDS32_9_PLTREL: howto manager. (line 1287) +* BFD_RELOC_NDS32_COPY: howto manager. (line 1289) +* BFD_RELOC_NDS32_DATA: howto manager. (line 1377) +* BFD_RELOC_NDS32_DIFF16: howto manager. (line 1370) +* BFD_RELOC_NDS32_DIFF32: howto manager. (line 1371) +* BFD_RELOC_NDS32_DIFF8: howto manager. (line 1369) +* BFD_RELOC_NDS32_DIFF_ULEB128: howto manager. (line 1372) +* BFD_RELOC_NDS32_DWARF2_LEB: howto manager. (line 1335) +* BFD_RELOC_NDS32_DWARF2_OP1: howto manager. (line 1333) +* BFD_RELOC_NDS32_DWARF2_OP2: howto manager. (line 1334) +* BFD_RELOC_NDS32_EMPTY: howto manager. (line 1373) +* BFD_RELOC_NDS32_GLOB_DAT: howto manager. (line 1290) +* BFD_RELOC_NDS32_GOT15S2: howto manager. (line 1346) +* BFD_RELOC_NDS32_GOT17S2: howto manager. (line 1347) +* BFD_RELOC_NDS32_GOT20: howto manager. (line 1286) +* BFD_RELOC_NDS32_GOTOFF: howto manager. (line 1293) +* BFD_RELOC_NDS32_GOTOFF_HI20: howto manager. (line 1294) +* BFD_RELOC_NDS32_GOTOFF_LO12: howto manager. (line 1295) +* BFD_RELOC_NDS32_GOTOFF_LO15: howto manager. (line 1344) +* BFD_RELOC_NDS32_GOTOFF_LO19: howto manager. (line 1345) +* BFD_RELOC_NDS32_GOTOFF_SUFF: howto manager. (line 1358) +* BFD_RELOC_NDS32_GOTPC20: howto manager. (line 1296) +* BFD_RELOC_NDS32_GOTPC_HI20: howto manager. (line 1299) +* BFD_RELOC_NDS32_GOTPC_LO12: howto manager. (line 1300) +* BFD_RELOC_NDS32_GOTTPOFF: howto manager. (line 1387) +* BFD_RELOC_NDS32_GOT_HI20: howto manager. (line 1297) +* BFD_RELOC_NDS32_GOT_LO12: howto manager. (line 1298) +* BFD_RELOC_NDS32_GOT_LO15: howto manager. (line 1342) +* BFD_RELOC_NDS32_GOT_LO19: howto manager. (line 1343) +* BFD_RELOC_NDS32_GOT_SUFF: howto manager. (line 1357) +* BFD_RELOC_NDS32_HI20: howto manager. (line 1244) +* BFD_RELOC_NDS32_INSN16: howto manager. (line 1302) +* BFD_RELOC_NDS32_JMP_SLOT: howto manager. (line 1291) +* BFD_RELOC_NDS32_LABEL: howto manager. (line 1303) +* BFD_RELOC_NDS32_LO12S0: howto manager. (line 1256) +* BFD_RELOC_NDS32_LO12S0_ORI: howto manager. (line 1259) +* BFD_RELOC_NDS32_LO12S1: howto manager. (line 1253) +* BFD_RELOC_NDS32_LO12S2: howto manager. (line 1250) +* BFD_RELOC_NDS32_LO12S2_DP: howto manager. (line 1330) +* BFD_RELOC_NDS32_LO12S2_SP: howto manager. (line 1331) +* BFD_RELOC_NDS32_LO12S3: howto manager. (line 1247) +* BFD_RELOC_NDS32_LOADSTORE: howto manager. (line 1310) +* BFD_RELOC_NDS32_LONGCALL1: howto manager. (line 1304) +* BFD_RELOC_NDS32_LONGCALL2: howto manager. (line 1305) +* BFD_RELOC_NDS32_LONGCALL3: howto manager. (line 1306) +* BFD_RELOC_NDS32_LONGCALL4: howto manager. (line 1315) +* BFD_RELOC_NDS32_LONGCALL5: howto manager. (line 1316) +* BFD_RELOC_NDS32_LONGCALL6: howto manager. (line 1317) +* BFD_RELOC_NDS32_LONGJUMP1: howto manager. (line 1307) +* BFD_RELOC_NDS32_LONGJUMP2: howto manager. (line 1308) +* BFD_RELOC_NDS32_LONGJUMP3: howto manager. (line 1309) +* BFD_RELOC_NDS32_LONGJUMP4: howto manager. (line 1318) +* BFD_RELOC_NDS32_LONGJUMP5: howto manager. (line 1319) +* BFD_RELOC_NDS32_LONGJUMP6: howto manager. (line 1320) +* BFD_RELOC_NDS32_LONGJUMP7: howto manager. (line 1321) +* BFD_RELOC_NDS32_MINUEND: howto manager. (line 1367) +* BFD_RELOC_NDS32_MULCALL_SUFF: howto manager. (line 1360) +* BFD_RELOC_NDS32_PLTBLOCK: howto manager. (line 1364) +* BFD_RELOC_NDS32_PLTREL_HI20: howto manager. (line 1323) +* BFD_RELOC_NDS32_PLTREL_LO12: howto manager. (line 1324) +* BFD_RELOC_NDS32_PLT_GOTREL_HI20: howto manager. (line 1325) +* BFD_RELOC_NDS32_PLT_GOTREL_LO12: howto manager. (line 1326) +* BFD_RELOC_NDS32_PLT_GOTREL_LO15: howto manager. (line 1340) +* BFD_RELOC_NDS32_PLT_GOTREL_LO19: howto manager. (line 1341) +* BFD_RELOC_NDS32_PLT_GOTREL_LO20: howto manager. (line 1339) +* BFD_RELOC_NDS32_PLT_GOT_SUFF: howto manager. (line 1359) +* BFD_RELOC_NDS32_PTR: howto manager. (line 1361) +* BFD_RELOC_NDS32_PTR_COUNT: howto manager. (line 1362) +* BFD_RELOC_NDS32_PTR_RESOLVED: howto manager. (line 1363) +* BFD_RELOC_NDS32_RELATIVE: howto manager. (line 1292) +* BFD_RELOC_NDS32_RELAX_ENTRY: howto manager. (line 1356) +* BFD_RELOC_NDS32_RELAX_REGION_BEGIN: howto manager. (line 1365) +* BFD_RELOC_NDS32_RELAX_REGION_END: howto manager. (line 1366) +* BFD_RELOC_NDS32_SDA12S2_DP: howto manager. (line 1328) +* BFD_RELOC_NDS32_SDA12S2_SP: howto manager. (line 1329) +* BFD_RELOC_NDS32_SDA15S0: howto manager. (line 1271) +* BFD_RELOC_NDS32_SDA15S1: howto manager. (line 1268) +* BFD_RELOC_NDS32_SDA15S2: howto manager. (line 1265) +* BFD_RELOC_NDS32_SDA15S3: howto manager. (line 1262) +* BFD_RELOC_NDS32_SDA16S3: howto manager. (line 1274) +* BFD_RELOC_NDS32_SDA17S2: howto manager. (line 1277) +* BFD_RELOC_NDS32_SDA18S1: howto manager. (line 1280) +* BFD_RELOC_NDS32_SDA19S0: howto manager. (line 1283) +* BFD_RELOC_NDS32_SDA_FP7U2_RELA: howto manager. (line 1354) +* BFD_RELOC_NDS32_SUBTRAHEND: howto manager. (line 1368) +* BFD_RELOC_NDS32_TLS_IE_HI20: howto manager. (line 1388) +* BFD_RELOC_NDS32_TLS_IE_LO12S2: howto manager. (line 1389) +* BFD_RELOC_NDS32_TLS_LE_15S0: howto manager. (line 1392) +* BFD_RELOC_NDS32_TLS_LE_15S1: howto manager. (line 1393) +* BFD_RELOC_NDS32_TLS_LE_15S2: howto manager. (line 1394) +* BFD_RELOC_NDS32_TLS_LE_20: howto manager. (line 1391) +* BFD_RELOC_NDS32_TLS_LE_ADD: howto manager. (line 1385) +* BFD_RELOC_NDS32_TLS_LE_HI20: howto manager. (line 1383) +* BFD_RELOC_NDS32_TLS_LE_LO12: howto manager. (line 1384) +* BFD_RELOC_NDS32_TLS_LE_LS: howto manager. (line 1386) +* BFD_RELOC_NDS32_TLS_TPOFF: howto manager. (line 1390) +* BFD_RELOC_NDS32_TPOFF: howto manager. (line 1382) +* BFD_RELOC_NDS32_TRAN: howto manager. (line 1378) +* BFD_RELOC_NDS32_UPDATE_TA: howto manager. (line 1337) +* BFD_RELOC_NDS32_WORD_9_PCREL: howto manager. (line 1235) +* BFD_RELOC_NIOS2_ALIGN: howto manager. (line 2441) +* BFD_RELOC_NIOS2_CACHE_OPX: howto manager. (line 2431) +* BFD_RELOC_NIOS2_CALL16: howto manager. (line 2443) +* BFD_RELOC_NIOS2_CALL26: howto manager. (line 2429) +* BFD_RELOC_NIOS2_CALL26_NOAT: howto manager. (line 2461) +* BFD_RELOC_NIOS2_CALLR: howto manager. (line 2440) +* BFD_RELOC_NIOS2_CALL_HA: howto manager. (line 2465) +* BFD_RELOC_NIOS2_CALL_LO: howto manager. (line 2464) +* BFD_RELOC_NIOS2_CJMP: howto manager. (line 2439) +* BFD_RELOC_NIOS2_COPY: howto manager. (line 2456) +* BFD_RELOC_NIOS2_GLOB_DAT: howto manager. (line 2457) +* BFD_RELOC_NIOS2_GOT16: howto manager. (line 2442) +* BFD_RELOC_NIOS2_GOTOFF: howto manager. (line 2460) +* BFD_RELOC_NIOS2_GOTOFF_HA: howto manager. (line 2445) +* BFD_RELOC_NIOS2_GOTOFF_LO: howto manager. (line 2444) +* BFD_RELOC_NIOS2_GOT_HA: howto manager. (line 2463) +* BFD_RELOC_NIOS2_GOT_LO: howto manager. (line 2462) +* BFD_RELOC_NIOS2_GPREL: howto manager. (line 2437) +* BFD_RELOC_NIOS2_HI16: howto manager. (line 2434) +* BFD_RELOC_NIOS2_HIADJ16: howto manager. (line 2436) +* BFD_RELOC_NIOS2_IMM5: howto manager. (line 2430) +* BFD_RELOC_NIOS2_IMM6: howto manager. (line 2432) +* BFD_RELOC_NIOS2_IMM8: howto manager. (line 2433) +* BFD_RELOC_NIOS2_JUMP_SLOT: howto manager. (line 2458) +* BFD_RELOC_NIOS2_LO16: howto manager. (line 2435) +* BFD_RELOC_NIOS2_PCREL_HA: howto manager. (line 2447) +* BFD_RELOC_NIOS2_PCREL_LO: howto manager. (line 2446) +* BFD_RELOC_NIOS2_R2_F1I5_2: howto manager. (line 2475) +* BFD_RELOC_NIOS2_R2_I10_1_PCREL: howto manager. (line 2467) +* BFD_RELOC_NIOS2_R2_L5I4X1: howto manager. (line 2476) +* BFD_RELOC_NIOS2_R2_S12: howto manager. (line 2466) +* BFD_RELOC_NIOS2_R2_T1I7_1_PCREL: howto manager. (line 2468) +* BFD_RELOC_NIOS2_R2_T1I7_2: howto manager. (line 2469) +* BFD_RELOC_NIOS2_R2_T1X1I6: howto manager. (line 2477) +* BFD_RELOC_NIOS2_R2_T1X1I6_2: howto manager. (line 2478) +* BFD_RELOC_NIOS2_R2_T2I4: howto manager. (line 2470) +* BFD_RELOC_NIOS2_R2_T2I4_1: howto manager. (line 2471) +* BFD_RELOC_NIOS2_R2_T2I4_2: howto manager. (line 2472) +* BFD_RELOC_NIOS2_R2_X1I7_2: howto manager. (line 2473) +* BFD_RELOC_NIOS2_R2_X2L5: howto manager. (line 2474) +* BFD_RELOC_NIOS2_RELATIVE: howto manager. (line 2459) +* BFD_RELOC_NIOS2_S16: howto manager. (line 2427) +* BFD_RELOC_NIOS2_TLS_DTPMOD: howto manager. (line 2453) +* BFD_RELOC_NIOS2_TLS_DTPREL: howto manager. (line 2454) +* BFD_RELOC_NIOS2_TLS_GD16: howto manager. (line 2448) +* BFD_RELOC_NIOS2_TLS_IE16: howto manager. (line 2451) +* BFD_RELOC_NIOS2_TLS_LDM16: howto manager. (line 2449) +* BFD_RELOC_NIOS2_TLS_LDO16: howto manager. (line 2450) +* BFD_RELOC_NIOS2_TLS_LE16: howto manager. (line 2452) +* BFD_RELOC_NIOS2_TLS_TPREL: howto manager. (line 2455) +* BFD_RELOC_NIOS2_U16: howto manager. (line 2428) +* BFD_RELOC_NIOS2_UJMP: howto manager. (line 2438) +* BFD_RELOC_NONE: howto manager. (line 118) +* BFD_RELOC_NS32K_DISP_16: howto manager. (line 586) +* BFD_RELOC_NS32K_DISP_16_PCREL: howto manager. (line 589) +* BFD_RELOC_NS32K_DISP_32: howto manager. (line 587) +* BFD_RELOC_NS32K_DISP_32_PCREL: howto manager. (line 590) +* BFD_RELOC_NS32K_DISP_8: howto manager. (line 585) +* BFD_RELOC_NS32K_DISP_8_PCREL: howto manager. (line 588) +* BFD_RELOC_NS32K_IMM_16: howto manager. (line 580) +* BFD_RELOC_NS32K_IMM_16_PCREL: howto manager. (line 583) +* BFD_RELOC_NS32K_IMM_32: howto manager. (line 581) +* BFD_RELOC_NS32K_IMM_32_PCREL: howto manager. (line 584) +* BFD_RELOC_NS32K_IMM_8: howto manager. (line 579) +* BFD_RELOC_NS32K_IMM_8_PCREL: howto manager. (line 582) +* bfd_reloc_offset_in_range: typedef arelent. (line 368) +* BFD_RELOC_OR1K_COPY: howto manager. (line 2351) +* BFD_RELOC_OR1K_GLOB_DAT: howto manager. (line 2352) +* BFD_RELOC_OR1K_GOT16: howto manager. (line 2347) +* BFD_RELOC_OR1K_GOTOFF_HI16: howto manager. (line 2349) +* BFD_RELOC_OR1K_GOTOFF_LO16: howto manager. (line 2350) +* BFD_RELOC_OR1K_GOTPC_HI16: howto manager. (line 2345) +* BFD_RELOC_OR1K_GOTPC_LO16: howto manager. (line 2346) +* BFD_RELOC_OR1K_JMP_SLOT: howto manager. (line 2353) +* BFD_RELOC_OR1K_PLT26: howto manager. (line 2348) +* BFD_RELOC_OR1K_RELATIVE: howto manager. (line 2354) +* BFD_RELOC_OR1K_REL_26: howto manager. (line 2344) +* BFD_RELOC_OR1K_TLS_DTPMOD: howto manager. (line 2367) +* BFD_RELOC_OR1K_TLS_DTPOFF: howto manager. (line 2366) +* BFD_RELOC_OR1K_TLS_GD_HI16: howto manager. (line 2355) +* BFD_RELOC_OR1K_TLS_GD_LO16: howto manager. (line 2356) +* BFD_RELOC_OR1K_TLS_IE_HI16: howto manager. (line 2361) +* BFD_RELOC_OR1K_TLS_IE_LO16: howto manager. (line 2362) +* BFD_RELOC_OR1K_TLS_LDM_HI16: howto manager. (line 2357) +* BFD_RELOC_OR1K_TLS_LDM_LO16: howto manager. (line 2358) +* BFD_RELOC_OR1K_TLS_LDO_HI16: howto manager. (line 2359) +* BFD_RELOC_OR1K_TLS_LDO_LO16: howto manager. (line 2360) +* BFD_RELOC_OR1K_TLS_LE_HI16: howto manager. (line 2363) +* BFD_RELOC_OR1K_TLS_LE_LO16: howto manager. (line 2364) +* BFD_RELOC_OR1K_TLS_TPOFF: howto manager. (line 2365) +* BFD_RELOC_PDP11_DISP_6_PCREL: howto manager. (line 593) +* BFD_RELOC_PDP11_DISP_8_PCREL: howto manager. (line 592) +* BFD_RELOC_PJ_CODE_DIR16: howto manager. (line 597) +* BFD_RELOC_PJ_CODE_DIR32: howto manager. (line 598) +* BFD_RELOC_PJ_CODE_HI16: howto manager. (line 595) +* BFD_RELOC_PJ_CODE_LO16: howto manager. (line 596) +* BFD_RELOC_PJ_CODE_REL16: howto manager. (line 599) +* BFD_RELOC_PJ_CODE_REL32: howto manager. (line 600) +* BFD_RELOC_PPC64_ADDR16_DS: howto manager. (line 663) +* BFD_RELOC_PPC64_ADDR16_HIGH: howto manager. (line 674) +* BFD_RELOC_PPC64_ADDR16_HIGHA: howto manager. (line 675) +* BFD_RELOC_PPC64_ADDR16_LO_DS: howto manager. (line 664) +* BFD_RELOC_PPC64_ADDR64_LOCAL: howto manager. (line 676) +* BFD_RELOC_PPC64_DTPREL16_DS: howto manager. (line 715) +* BFD_RELOC_PPC64_DTPREL16_HIGH: howto manager. (line 723) +* BFD_RELOC_PPC64_DTPREL16_HIGHA: howto manager. (line 724) +* BFD_RELOC_PPC64_DTPREL16_HIGHER: howto manager. (line 717) +* BFD_RELOC_PPC64_DTPREL16_HIGHERA: howto manager. (line 718) +* BFD_RELOC_PPC64_DTPREL16_HIGHEST: howto manager. (line 719) +* BFD_RELOC_PPC64_DTPREL16_HIGHESTA: howto manager. (line 720) +* BFD_RELOC_PPC64_DTPREL16_LO_DS: howto manager. (line 716) +* BFD_RELOC_PPC64_ENTRY: howto manager. (line 677) +* BFD_RELOC_PPC64_GOT16_DS: howto manager. (line 665) +* BFD_RELOC_PPC64_GOT16_LO_DS: howto manager. (line 666) +* BFD_RELOC_PPC64_HIGHER: howto manager. (line 651) +* BFD_RELOC_PPC64_HIGHER_S: howto manager. (line 652) +* BFD_RELOC_PPC64_HIGHEST: howto manager. (line 653) +* BFD_RELOC_PPC64_HIGHEST_S: howto manager. (line 654) +* BFD_RELOC_PPC64_PLT16_LO_DS: howto manager. (line 667) +* BFD_RELOC_PPC64_PLTGOT16: howto manager. (line 659) +* BFD_RELOC_PPC64_PLTGOT16_DS: howto manager. (line 672) +* BFD_RELOC_PPC64_PLTGOT16_HA: howto manager. (line 662) +* BFD_RELOC_PPC64_PLTGOT16_HI: howto manager. (line 661) +* BFD_RELOC_PPC64_PLTGOT16_LO: howto manager. (line 660) +* BFD_RELOC_PPC64_PLTGOT16_LO_DS: howto manager. (line 673) +* BFD_RELOC_PPC64_SECTOFF_DS: howto manager. (line 668) +* BFD_RELOC_PPC64_SECTOFF_LO_DS: howto manager. (line 669) +* BFD_RELOC_PPC64_TOC: howto manager. (line 658) +* BFD_RELOC_PPC64_TOC16_DS: howto manager. (line 670) +* BFD_RELOC_PPC64_TOC16_HA: howto manager. (line 657) +* BFD_RELOC_PPC64_TOC16_HI: howto manager. (line 656) +* BFD_RELOC_PPC64_TOC16_LO: howto manager. (line 655) +* BFD_RELOC_PPC64_TOC16_LO_DS: howto manager. (line 671) +* BFD_RELOC_PPC64_TPREL16_DS: howto manager. (line 709) +* BFD_RELOC_PPC64_TPREL16_HIGH: howto manager. (line 721) +* BFD_RELOC_PPC64_TPREL16_HIGHA: howto manager. (line 722) +* BFD_RELOC_PPC64_TPREL16_HIGHER: howto manager. (line 711) +* BFD_RELOC_PPC64_TPREL16_HIGHERA: howto manager. (line 712) +* BFD_RELOC_PPC64_TPREL16_HIGHEST: howto manager. (line 713) +* BFD_RELOC_PPC64_TPREL16_HIGHESTA: howto manager. (line 714) +* BFD_RELOC_PPC64_TPREL16_LO_DS: howto manager. (line 710) +* BFD_RELOC_PPC_16DX_HA: howto manager. (line 649) +* BFD_RELOC_PPC_B16: howto manager. (line 605) +* BFD_RELOC_PPC_B16_BRNTAKEN: howto manager. (line 607) +* BFD_RELOC_PPC_B16_BRTAKEN: howto manager. (line 606) +* BFD_RELOC_PPC_B26: howto manager. (line 602) +* BFD_RELOC_PPC_BA16: howto manager. (line 608) +* BFD_RELOC_PPC_BA16_BRNTAKEN: howto manager. (line 610) +* BFD_RELOC_PPC_BA16_BRTAKEN: howto manager. (line 609) +* BFD_RELOC_PPC_BA26: howto manager. (line 603) +* BFD_RELOC_PPC_COPY: howto manager. (line 611) +* BFD_RELOC_PPC_DTPMOD: howto manager. (line 682) +* BFD_RELOC_PPC_DTPREL: howto manager. (line 692) +* BFD_RELOC_PPC_DTPREL16: howto manager. (line 688) +* BFD_RELOC_PPC_DTPREL16_HA: howto manager. (line 691) +* BFD_RELOC_PPC_DTPREL16_HI: howto manager. (line 690) +* BFD_RELOC_PPC_DTPREL16_LO: howto manager. (line 689) +* BFD_RELOC_PPC_EMB_BIT_FLD: howto manager. (line 630) +* BFD_RELOC_PPC_EMB_MRKREF: howto manager. (line 625) +* BFD_RELOC_PPC_EMB_NADDR16: howto manager. (line 617) +* BFD_RELOC_PPC_EMB_NADDR16_HA: howto manager. (line 620) +* BFD_RELOC_PPC_EMB_NADDR16_HI: howto manager. (line 619) +* BFD_RELOC_PPC_EMB_NADDR16_LO: howto manager. (line 618) +* BFD_RELOC_PPC_EMB_NADDR32: howto manager. (line 616) +* BFD_RELOC_PPC_EMB_RELSDA: howto manager. (line 631) +* BFD_RELOC_PPC_EMB_RELSEC16: howto manager. (line 626) +* BFD_RELOC_PPC_EMB_RELST_HA: howto manager. (line 629) +* BFD_RELOC_PPC_EMB_RELST_HI: howto manager. (line 628) +* BFD_RELOC_PPC_EMB_RELST_LO: howto manager. (line 627) +* BFD_RELOC_PPC_EMB_SDA21: howto manager. (line 624) +* BFD_RELOC_PPC_EMB_SDA2I16: howto manager. (line 622) +* BFD_RELOC_PPC_EMB_SDA2REL: howto manager. (line 623) +* BFD_RELOC_PPC_EMB_SDAI16: howto manager. (line 621) +* BFD_RELOC_PPC_GLOB_DAT: howto manager. (line 612) +* BFD_RELOC_PPC_GOT_DTPREL16: howto manager. (line 705) +* BFD_RELOC_PPC_GOT_DTPREL16_HA: howto manager. (line 708) +* BFD_RELOC_PPC_GOT_DTPREL16_HI: howto manager. (line 707) +* BFD_RELOC_PPC_GOT_DTPREL16_LO: howto manager. (line 706) +* BFD_RELOC_PPC_GOT_TLSGD16: howto manager. (line 693) +* BFD_RELOC_PPC_GOT_TLSGD16_HA: howto manager. (line 696) +* BFD_RELOC_PPC_GOT_TLSGD16_HI: howto manager. (line 695) +* BFD_RELOC_PPC_GOT_TLSGD16_LO: howto manager. (line 694) +* BFD_RELOC_PPC_GOT_TLSLD16: howto manager. (line 697) +* BFD_RELOC_PPC_GOT_TLSLD16_HA: howto manager. (line 700) +* BFD_RELOC_PPC_GOT_TLSLD16_HI: howto manager. (line 699) +* BFD_RELOC_PPC_GOT_TLSLD16_LO: howto manager. (line 698) +* BFD_RELOC_PPC_GOT_TPREL16: howto manager. (line 701) +* BFD_RELOC_PPC_GOT_TPREL16_HA: howto manager. (line 704) +* BFD_RELOC_PPC_GOT_TPREL16_HI: howto manager. (line 703) +* BFD_RELOC_PPC_GOT_TPREL16_LO: howto manager. (line 702) +* BFD_RELOC_PPC_JMP_SLOT: howto manager. (line 613) +* BFD_RELOC_PPC_LOCAL24PC: howto manager. (line 615) +* BFD_RELOC_PPC_REL16DX_HA: howto manager. (line 650) +* BFD_RELOC_PPC_RELATIVE: howto manager. (line 614) +* BFD_RELOC_PPC_TLS: howto manager. (line 679) +* BFD_RELOC_PPC_TLSGD: howto manager. (line 680) +* BFD_RELOC_PPC_TLSLD: howto manager. (line 681) +* BFD_RELOC_PPC_TOC16: howto manager. (line 604) +* BFD_RELOC_PPC_TPREL: howto manager. (line 687) +* BFD_RELOC_PPC_TPREL16: howto manager. (line 683) +* BFD_RELOC_PPC_TPREL16_HA: howto manager. (line 686) +* BFD_RELOC_PPC_TPREL16_HI: howto manager. (line 685) +* BFD_RELOC_PPC_TPREL16_LO: howto manager. (line 684) +* BFD_RELOC_PPC_VLE_HA16A: howto manager. (line 639) +* BFD_RELOC_PPC_VLE_HA16D: howto manager. (line 640) +* BFD_RELOC_PPC_VLE_HI16A: howto manager. (line 637) +* BFD_RELOC_PPC_VLE_HI16D: howto manager. (line 638) +* BFD_RELOC_PPC_VLE_LO16A: howto manager. (line 635) +* BFD_RELOC_PPC_VLE_LO16D: howto manager. (line 636) +* BFD_RELOC_PPC_VLE_REL15: howto manager. (line 633) +* BFD_RELOC_PPC_VLE_REL24: howto manager. (line 634) +* BFD_RELOC_PPC_VLE_REL8: howto manager. (line 632) +* BFD_RELOC_PPC_VLE_SDA21: howto manager. (line 641) +* BFD_RELOC_PPC_VLE_SDA21_LO: howto manager. (line 642) +* BFD_RELOC_PPC_VLE_SDAREL_HA16A: howto manager. (line 647) +* BFD_RELOC_PPC_VLE_SDAREL_HA16D: howto manager. (line 648) +* BFD_RELOC_PPC_VLE_SDAREL_HI16A: howto manager. (line 645) +* BFD_RELOC_PPC_VLE_SDAREL_HI16D: howto manager. (line 646) +* BFD_RELOC_PPC_VLE_SDAREL_LO16A: howto manager. (line 643) +* BFD_RELOC_PPC_VLE_SDAREL_LO16D: howto manager. (line 644) +* BFD_RELOC_PRU_16_PMEM: howto manager. (line 2493) +* BFD_RELOC_PRU_32_PMEM: howto manager. (line 2492) +* BFD_RELOC_PRU_GNU_DIFF16: howto manager. (line 2497) +* BFD_RELOC_PRU_GNU_DIFF16_PMEM: howto manager. (line 2499) +* BFD_RELOC_PRU_GNU_DIFF32: howto manager. (line 2498) +* BFD_RELOC_PRU_GNU_DIFF32_PMEM: howto manager. (line 2500) +* BFD_RELOC_PRU_GNU_DIFF8: howto manager. (line 2496) +* BFD_RELOC_PRU_LDI32: howto manager. (line 2484) +* BFD_RELOC_PRU_S10_PCREL: howto manager. (line 2488) +* BFD_RELOC_PRU_U16: howto manager. (line 2480) +* BFD_RELOC_PRU_U16_PMEMIMM: howto manager. (line 2482) +* BFD_RELOC_PRU_U8_PCREL: howto manager. (line 2490) +* BFD_RELOC_RELC: howto manager. (line 2381) +* BFD_RELOC_RISCV_32_PCREL: howto manager. (line 1824) +* BFD_RELOC_RISCV_ADD16: howto manager. (line 1792) +* BFD_RELOC_RISCV_ADD32: howto manager. (line 1793) +* BFD_RELOC_RISCV_ADD64: howto manager. (line 1794) +* BFD_RELOC_RISCV_ADD8: howto manager. (line 1791) +* BFD_RELOC_RISCV_ALIGN: howto manager. (line 1809) +* BFD_RELOC_RISCV_CALL: howto manager. (line 1789) +* BFD_RELOC_RISCV_CALL_PLT: howto manager. (line 1790) +* BFD_RELOC_RISCV_CFA: howto manager. (line 1818) +* BFD_RELOC_RISCV_GOT_HI20: howto manager. (line 1799) +* BFD_RELOC_RISCV_GPREL12_I: howto manager. (line 1783) +* BFD_RELOC_RISCV_GPREL12_S: howto manager. (line 1784) +* BFD_RELOC_RISCV_GPREL_I: howto manager. (line 1813) +* BFD_RELOC_RISCV_GPREL_S: howto manager. (line 1814) +* BFD_RELOC_RISCV_HI20: howto manager. (line 1777) +* BFD_RELOC_RISCV_JMP: howto manager. (line 1802) +* BFD_RELOC_RISCV_LO12_I: howto manager. (line 1781) +* BFD_RELOC_RISCV_LO12_S: howto manager. (line 1782) +* BFD_RELOC_RISCV_PCREL_HI20: howto manager. (line 1778) +* BFD_RELOC_RISCV_PCREL_LO12_I: howto manager. (line 1779) +* BFD_RELOC_RISCV_PCREL_LO12_S: howto manager. (line 1780) +* BFD_RELOC_RISCV_RELAX: howto manager. (line 1817) +* BFD_RELOC_RISCV_RVC_BRANCH: howto manager. (line 1810) +* BFD_RELOC_RISCV_RVC_JUMP: howto manager. (line 1811) +* BFD_RELOC_RISCV_RVC_LUI: howto manager. (line 1812) +* BFD_RELOC_RISCV_SET16: howto manager. (line 1822) +* BFD_RELOC_RISCV_SET32: howto manager. (line 1823) +* BFD_RELOC_RISCV_SET6: howto manager. (line 1820) +* BFD_RELOC_RISCV_SET8: howto manager. (line 1821) +* BFD_RELOC_RISCV_SUB16: howto manager. (line 1796) +* BFD_RELOC_RISCV_SUB32: howto manager. (line 1797) +* BFD_RELOC_RISCV_SUB6: howto manager. (line 1819) +* BFD_RELOC_RISCV_SUB64: howto manager. (line 1798) +* BFD_RELOC_RISCV_SUB8: howto manager. (line 1795) +* BFD_RELOC_RISCV_TLS_DTPMOD32: howto manager. (line 1803) +* BFD_RELOC_RISCV_TLS_DTPMOD64: howto manager. (line 1805) +* BFD_RELOC_RISCV_TLS_DTPREL32: howto manager. (line 1804) +* BFD_RELOC_RISCV_TLS_DTPREL64: howto manager. (line 1806) +* BFD_RELOC_RISCV_TLS_GD_HI20: howto manager. (line 1801) +* BFD_RELOC_RISCV_TLS_GOT_HI20: howto manager. (line 1800) +* BFD_RELOC_RISCV_TLS_TPREL32: howto manager. (line 1807) +* BFD_RELOC_RISCV_TLS_TPREL64: howto manager. (line 1808) +* BFD_RELOC_RISCV_TPREL_ADD: howto manager. (line 1788) +* BFD_RELOC_RISCV_TPREL_HI20: howto manager. (line 1785) +* BFD_RELOC_RISCV_TPREL_I: howto manager. (line 1815) +* BFD_RELOC_RISCV_TPREL_LO12_I: howto manager. (line 1786) +* BFD_RELOC_RISCV_TPREL_LO12_S: howto manager. (line 1787) +* BFD_RELOC_RISCV_TPREL_S: howto manager. (line 1816) +* BFD_RELOC_RL78_16U: howto manager. (line 1834) +* BFD_RELOC_RL78_16_OP: howto manager. (line 1830) +* BFD_RELOC_RL78_24U: howto manager. (line 1835) +* BFD_RELOC_RL78_24_OP: howto manager. (line 1831) +* BFD_RELOC_RL78_32_OP: howto manager. (line 1832) +* BFD_RELOC_RL78_8U: howto manager. (line 1833) +* BFD_RELOC_RL78_ABS16: howto manager. (line 1847) +* BFD_RELOC_RL78_ABS16U: howto manager. (line 1851) +* BFD_RELOC_RL78_ABS16UL: howto manager. (line 1853) +* BFD_RELOC_RL78_ABS16UW: howto manager. (line 1852) +* BFD_RELOC_RL78_ABS16_REV: howto manager. (line 1848) +* BFD_RELOC_RL78_ABS32: howto manager. (line 1849) +* BFD_RELOC_RL78_ABS32_REV: howto manager. (line 1850) +* BFD_RELOC_RL78_ABS8: howto manager. (line 1846) +* BFD_RELOC_RL78_CODE: howto manager. (line 1858) +* BFD_RELOC_RL78_DIFF: howto manager. (line 1837) +* BFD_RELOC_RL78_DIR3U_PCREL: howto manager. (line 1836) +* BFD_RELOC_RL78_GPRELB: howto manager. (line 1838) +* BFD_RELOC_RL78_GPRELL: howto manager. (line 1840) +* BFD_RELOC_RL78_GPRELW: howto manager. (line 1839) +* BFD_RELOC_RL78_HI16: howto manager. (line 1855) +* BFD_RELOC_RL78_HI8: howto manager. (line 1856) +* BFD_RELOC_RL78_LO16: howto manager. (line 1857) +* BFD_RELOC_RL78_NEG16: howto manager. (line 1827) +* BFD_RELOC_RL78_NEG24: howto manager. (line 1828) +* BFD_RELOC_RL78_NEG32: howto manager. (line 1829) +* BFD_RELOC_RL78_NEG8: howto manager. (line 1826) +* BFD_RELOC_RL78_OP_AND: howto manager. (line 1844) +* BFD_RELOC_RL78_OP_NEG: howto manager. (line 1843) +* BFD_RELOC_RL78_OP_SHRA: howto manager. (line 1845) +* BFD_RELOC_RL78_OP_SUBTRACT: howto manager. (line 1842) +* BFD_RELOC_RL78_RELAX: howto manager. (line 1854) +* BFD_RELOC_RL78_SADDR: howto manager. (line 1859) +* BFD_RELOC_RL78_SYM: howto manager. (line 1841) +* BFD_RELOC_RVA: howto manager. (line 95) +* BFD_RELOC_RX_16U: howto manager. (line 1869) +* BFD_RELOC_RX_16_OP: howto manager. (line 1865) +* BFD_RELOC_RX_24U: howto manager. (line 1870) +* BFD_RELOC_RX_24_OP: howto manager. (line 1866) +* BFD_RELOC_RX_32_OP: howto manager. (line 1867) +* BFD_RELOC_RX_8U: howto manager. (line 1868) +* BFD_RELOC_RX_ABS16: howto manager. (line 1880) +* BFD_RELOC_RX_ABS16U: howto manager. (line 1884) +* BFD_RELOC_RX_ABS16UL: howto manager. (line 1886) +* BFD_RELOC_RX_ABS16UW: howto manager. (line 1885) +* BFD_RELOC_RX_ABS16_REV: howto manager. (line 1881) +* BFD_RELOC_RX_ABS32: howto manager. (line 1882) +* BFD_RELOC_RX_ABS32_REV: howto manager. (line 1883) +* BFD_RELOC_RX_ABS8: howto manager. (line 1879) +* BFD_RELOC_RX_DIFF: howto manager. (line 1872) +* BFD_RELOC_RX_DIR3U_PCREL: howto manager. (line 1871) +* BFD_RELOC_RX_GPRELB: howto manager. (line 1873) +* BFD_RELOC_RX_GPRELL: howto manager. (line 1875) +* BFD_RELOC_RX_GPRELW: howto manager. (line 1874) +* BFD_RELOC_RX_NEG16: howto manager. (line 1862) +* BFD_RELOC_RX_NEG24: howto manager. (line 1863) +* BFD_RELOC_RX_NEG32: howto manager. (line 1864) +* BFD_RELOC_RX_NEG8: howto manager. (line 1861) +* BFD_RELOC_RX_OP_NEG: howto manager. (line 1878) +* BFD_RELOC_RX_OP_SUBTRACT: howto manager. (line 1877) +* BFD_RELOC_RX_RELAX: howto manager. (line 1887) +* BFD_RELOC_RX_SYM: howto manager. (line 1876) +* BFD_RELOC_S12Z_15_PCREL: howto manager. (line 2199) +* BFD_RELOC_SCORE16_BRANCH: howto manager. (line 1990) +* BFD_RELOC_SCORE16_JMP: howto manager. (line 1988) +* BFD_RELOC_SCORE_BCMP: howto manager. (line 1992) +* BFD_RELOC_SCORE_BRANCH: howto manager. (line 1982) +* BFD_RELOC_SCORE_CALL15: howto manager. (line 1996) +* BFD_RELOC_SCORE_DUMMY2: howto manager. (line 1979) +* BFD_RELOC_SCORE_DUMMY_HI16: howto manager. (line 1997) +* BFD_RELOC_SCORE_GOT15: howto manager. (line 1994) +* BFD_RELOC_SCORE_GOT_LO16: howto manager. (line 1995) +* BFD_RELOC_SCORE_GPREL15: howto manager. (line 1977) +* BFD_RELOC_SCORE_IMM30: howto manager. (line 1984) +* BFD_RELOC_SCORE_IMM32: howto manager. (line 1986) +* BFD_RELOC_SCORE_JMP: howto manager. (line 1980) +* BFD_RELOC_SH_ALIGN: howto manager. (line 908) +* BFD_RELOC_SH_CODE: howto manager. (line 909) +* BFD_RELOC_SH_COPY: howto manager. (line 914) +* BFD_RELOC_SH_COPY64: howto manager. (line 939) +* BFD_RELOC_SH_COUNT: howto manager. (line 907) +* BFD_RELOC_SH_DATA: howto manager. (line 910) +* BFD_RELOC_SH_DISP12: howto manager. (line 890) +* BFD_RELOC_SH_DISP12BY2: howto manager. (line 891) +* BFD_RELOC_SH_DISP12BY4: howto manager. (line 892) +* BFD_RELOC_SH_DISP12BY8: howto manager. (line 893) +* BFD_RELOC_SH_DISP20: howto manager. (line 894) +* BFD_RELOC_SH_DISP20BY8: howto manager. (line 895) +* BFD_RELOC_SH_FUNCDESC: howto manager. (line 982) +* BFD_RELOC_SH_GLOB_DAT: howto manager. (line 915) +* BFD_RELOC_SH_GLOB_DAT64: howto manager. (line 940) +* BFD_RELOC_SH_GOT10BY4: howto manager. (line 943) +* BFD_RELOC_SH_GOT10BY8: howto manager. (line 944) +* BFD_RELOC_SH_GOT20: howto manager. (line 976) +* BFD_RELOC_SH_GOTFUNCDESC: howto manager. (line 978) +* BFD_RELOC_SH_GOTFUNCDESC20: howto manager. (line 979) +* BFD_RELOC_SH_GOTOFF20: howto manager. (line 977) +* BFD_RELOC_SH_GOTOFFFUNCDESC: howto manager. (line 980) +* BFD_RELOC_SH_GOTOFFFUNCDESC20: howto manager. (line 981) +* BFD_RELOC_SH_GOTOFF_HI16: howto manager. (line 934) +* BFD_RELOC_SH_GOTOFF_LOW16: howto manager. (line 931) +* BFD_RELOC_SH_GOTOFF_MEDHI16: howto manager. (line 933) +* BFD_RELOC_SH_GOTOFF_MEDLOW16: howto manager. (line 932) +* BFD_RELOC_SH_GOTPC: howto manager. (line 918) +* BFD_RELOC_SH_GOTPC_HI16: howto manager. (line 938) +* BFD_RELOC_SH_GOTPC_LOW16: howto manager. (line 935) +* BFD_RELOC_SH_GOTPC_MEDHI16: howto manager. (line 937) +* BFD_RELOC_SH_GOTPC_MEDLOW16: howto manager. (line 936) +* BFD_RELOC_SH_GOTPLT10BY4: howto manager. (line 945) +* BFD_RELOC_SH_GOTPLT10BY8: howto manager. (line 946) +* BFD_RELOC_SH_GOTPLT32: howto manager. (line 947) +* BFD_RELOC_SH_GOTPLT_HI16: howto manager. (line 926) +* BFD_RELOC_SH_GOTPLT_LOW16: howto manager. (line 923) +* BFD_RELOC_SH_GOTPLT_MEDHI16: howto manager. (line 925) +* BFD_RELOC_SH_GOTPLT_MEDLOW16: howto manager. (line 924) +* BFD_RELOC_SH_GOT_HI16: howto manager. (line 922) +* BFD_RELOC_SH_GOT_LOW16: howto manager. (line 919) +* BFD_RELOC_SH_GOT_MEDHI16: howto manager. (line 921) +* BFD_RELOC_SH_GOT_MEDLOW16: howto manager. (line 920) +* BFD_RELOC_SH_IMM3: howto manager. (line 888) +* BFD_RELOC_SH_IMM3U: howto manager. (line 889) +* BFD_RELOC_SH_IMM4: howto manager. (line 896) +* BFD_RELOC_SH_IMM4BY2: howto manager. (line 897) +* BFD_RELOC_SH_IMM4BY4: howto manager. (line 898) +* BFD_RELOC_SH_IMM8: howto manager. (line 899) +* BFD_RELOC_SH_IMM8BY2: howto manager. (line 900) +* BFD_RELOC_SH_IMM8BY4: howto manager. (line 901) +* BFD_RELOC_SH_IMMS10: howto manager. (line 953) +* BFD_RELOC_SH_IMMS10BY2: howto manager. (line 954) +* BFD_RELOC_SH_IMMS10BY4: howto manager. (line 955) +* BFD_RELOC_SH_IMMS10BY8: howto manager. (line 956) +* BFD_RELOC_SH_IMMS16: howto manager. (line 957) +* BFD_RELOC_SH_IMMS6: howto manager. (line 950) +* BFD_RELOC_SH_IMMS6BY32: howto manager. (line 951) +* BFD_RELOC_SH_IMMU16: howto manager. (line 958) +* BFD_RELOC_SH_IMMU5: howto manager. (line 949) +* BFD_RELOC_SH_IMMU6: howto manager. (line 952) +* BFD_RELOC_SH_IMM_HI16: howto manager. (line 965) +* BFD_RELOC_SH_IMM_HI16_PCREL: howto manager. (line 966) +* BFD_RELOC_SH_IMM_LOW16: howto manager. (line 959) +* BFD_RELOC_SH_IMM_LOW16_PCREL: howto manager. (line 960) +* BFD_RELOC_SH_IMM_MEDHI16: howto manager. (line 963) +* BFD_RELOC_SH_IMM_MEDHI16_PCREL: howto manager. (line 964) +* BFD_RELOC_SH_IMM_MEDLOW16: howto manager. (line 961) +* BFD_RELOC_SH_IMM_MEDLOW16_PCREL: howto manager. (line 962) +* BFD_RELOC_SH_JMP_SLOT: howto manager. (line 916) +* BFD_RELOC_SH_JMP_SLOT64: howto manager. (line 941) +* BFD_RELOC_SH_LABEL: howto manager. (line 911) +* BFD_RELOC_SH_LOOP_END: howto manager. (line 913) +* BFD_RELOC_SH_LOOP_START: howto manager. (line 912) +* BFD_RELOC_SH_PCDISP12BY2: howto manager. (line 887) +* BFD_RELOC_SH_PCDISP8BY2: howto manager. (line 886) +* BFD_RELOC_SH_PCRELIMM8BY2: howto manager. (line 902) +* BFD_RELOC_SH_PCRELIMM8BY4: howto manager. (line 903) +* BFD_RELOC_SH_PLT_HI16: howto manager. (line 930) +* BFD_RELOC_SH_PLT_LOW16: howto manager. (line 927) +* BFD_RELOC_SH_PLT_MEDHI16: howto manager. (line 929) +* BFD_RELOC_SH_PLT_MEDLOW16: howto manager. (line 928) +* BFD_RELOC_SH_PT_16: howto manager. (line 967) +* BFD_RELOC_SH_RELATIVE: howto manager. (line 917) +* BFD_RELOC_SH_RELATIVE64: howto manager. (line 942) +* BFD_RELOC_SH_SHMEDIA_CODE: howto manager. (line 948) +* BFD_RELOC_SH_SWITCH16: howto manager. (line 904) +* BFD_RELOC_SH_SWITCH32: howto manager. (line 905) +* BFD_RELOC_SH_TLS_DTPMOD32: howto manager. (line 973) +* BFD_RELOC_SH_TLS_DTPOFF32: howto manager. (line 974) +* BFD_RELOC_SH_TLS_GD_32: howto manager. (line 968) +* BFD_RELOC_SH_TLS_IE_32: howto manager. (line 971) +* BFD_RELOC_SH_TLS_LDO_32: howto manager. (line 970) +* BFD_RELOC_SH_TLS_LD_32: howto manager. (line 969) +* BFD_RELOC_SH_TLS_LE_32: howto manager. (line 972) +* BFD_RELOC_SH_TLS_TPOFF32: howto manager. (line 975) +* BFD_RELOC_SH_USES: howto manager. (line 906) +* BFD_RELOC_SIZE32: howto manager. (line 67) +* BFD_RELOC_SIZE64: howto manager. (line 68) +* BFD_RELOC_SPARC13: howto manager. (line 121) +* BFD_RELOC_SPARC22: howto manager. (line 120) +* BFD_RELOC_SPARC_10: howto manager. (line 148) +* BFD_RELOC_SPARC_11: howto manager. (line 149) +* BFD_RELOC_SPARC_5: howto manager. (line 161) +* BFD_RELOC_SPARC_6: howto manager. (line 160) +* BFD_RELOC_SPARC_64: howto manager. (line 147) +* BFD_RELOC_SPARC_7: howto manager. (line 159) +* BFD_RELOC_SPARC_BASE13: howto manager. (line 144) +* BFD_RELOC_SPARC_BASE22: howto manager. (line 145) +* BFD_RELOC_SPARC_COPY: howto manager. (line 128) +* BFD_RELOC_SPARC_DISP64: howto manager. (line 162) +* BFD_RELOC_SPARC_GLOB_DAT: howto manager. (line 129) +* BFD_RELOC_SPARC_GOT10: howto manager. (line 122) +* BFD_RELOC_SPARC_GOT13: howto manager. (line 123) +* BFD_RELOC_SPARC_GOT22: howto manager. (line 124) +* BFD_RELOC_SPARC_GOTDATA_HIX22: howto manager. (line 135) +* BFD_RELOC_SPARC_GOTDATA_LOX10: howto manager. (line 136) +* BFD_RELOC_SPARC_GOTDATA_OP: howto manager. (line 139) +* BFD_RELOC_SPARC_GOTDATA_OP_HIX22: howto manager. (line 137) +* BFD_RELOC_SPARC_GOTDATA_OP_LOX10: howto manager. (line 138) +* BFD_RELOC_SPARC_H34: howto manager. (line 171) +* BFD_RELOC_SPARC_H44: howto manager. (line 167) +* BFD_RELOC_SPARC_HH22: howto manager. (line 151) +* BFD_RELOC_SPARC_HIX22: howto manager. (line 165) +* BFD_RELOC_SPARC_HM10: howto manager. (line 152) +* BFD_RELOC_SPARC_IRELATIVE: howto manager. (line 141) +* BFD_RELOC_SPARC_JMP_IREL: howto manager. (line 140) +* BFD_RELOC_SPARC_JMP_SLOT: howto manager. (line 130) +* BFD_RELOC_SPARC_L44: howto manager. (line 169) +* BFD_RELOC_SPARC_LM22: howto manager. (line 153) +* BFD_RELOC_SPARC_LOX10: howto manager. (line 166) +* BFD_RELOC_SPARC_M44: howto manager. (line 168) +* BFD_RELOC_SPARC_OLO10: howto manager. (line 150) +* BFD_RELOC_SPARC_PC10: howto manager. (line 125) +* BFD_RELOC_SPARC_PC22: howto manager. (line 126) +* BFD_RELOC_SPARC_PC_HH22: howto manager. (line 154) +* BFD_RELOC_SPARC_PC_HM10: howto manager. (line 155) +* BFD_RELOC_SPARC_PC_LM22: howto manager. (line 156) +* BFD_RELOC_SPARC_PLT32: howto manager. (line 163) +* BFD_RELOC_SPARC_PLT64: howto manager. (line 164) +* BFD_RELOC_SPARC_REGISTER: howto manager. (line 170) +* BFD_RELOC_SPARC_RELATIVE: howto manager. (line 131) +* BFD_RELOC_SPARC_REV32: howto manager. (line 176) +* BFD_RELOC_SPARC_SIZE32: howto manager. (line 172) +* BFD_RELOC_SPARC_SIZE64: howto manager. (line 173) +* BFD_RELOC_SPARC_TLS_DTPMOD32: howto manager. (line 196) +* BFD_RELOC_SPARC_TLS_DTPMOD64: howto manager. (line 197) +* BFD_RELOC_SPARC_TLS_DTPOFF32: howto manager. (line 198) +* BFD_RELOC_SPARC_TLS_DTPOFF64: howto manager. (line 199) +* BFD_RELOC_SPARC_TLS_GD_ADD: howto manager. (line 180) +* BFD_RELOC_SPARC_TLS_GD_CALL: howto manager. (line 181) +* BFD_RELOC_SPARC_TLS_GD_HI22: howto manager. (line 178) +* BFD_RELOC_SPARC_TLS_GD_LO10: howto manager. (line 179) +* BFD_RELOC_SPARC_TLS_IE_ADD: howto manager. (line 193) +* BFD_RELOC_SPARC_TLS_IE_HI22: howto manager. (line 189) +* BFD_RELOC_SPARC_TLS_IE_LD: howto manager. (line 191) +* BFD_RELOC_SPARC_TLS_IE_LDX: howto manager. (line 192) +* BFD_RELOC_SPARC_TLS_IE_LO10: howto manager. (line 190) +* BFD_RELOC_SPARC_TLS_LDM_ADD: howto manager. (line 184) +* BFD_RELOC_SPARC_TLS_LDM_CALL: howto manager. (line 185) +* BFD_RELOC_SPARC_TLS_LDM_HI22: howto manager. (line 182) +* BFD_RELOC_SPARC_TLS_LDM_LO10: howto manager. (line 183) +* BFD_RELOC_SPARC_TLS_LDO_ADD: howto manager. (line 188) +* BFD_RELOC_SPARC_TLS_LDO_HIX22: howto manager. (line 186) +* BFD_RELOC_SPARC_TLS_LDO_LOX10: howto manager. (line 187) +* BFD_RELOC_SPARC_TLS_LE_HIX22: howto manager. (line 194) +* BFD_RELOC_SPARC_TLS_LE_LOX10: howto manager. (line 195) +* BFD_RELOC_SPARC_TLS_TPOFF32: howto manager. (line 200) +* BFD_RELOC_SPARC_TLS_TPOFF64: howto manager. (line 201) +* BFD_RELOC_SPARC_UA16: howto manager. (line 132) +* BFD_RELOC_SPARC_UA32: howto manager. (line 133) +* BFD_RELOC_SPARC_UA64: howto manager. (line 134) +* BFD_RELOC_SPARC_WDISP10: howto manager. (line 174) +* BFD_RELOC_SPARC_WDISP16: howto manager. (line 157) +* BFD_RELOC_SPARC_WDISP19: howto manager. (line 158) +* BFD_RELOC_SPARC_WDISP22: howto manager. (line 119) +* BFD_RELOC_SPARC_WPLT30: howto manager. (line 127) +* BFD_RELOC_SPU_ADD_PIC: howto manager. (line 217) +* BFD_RELOC_SPU_HI16: howto manager. (line 214) +* BFD_RELOC_SPU_IMM10: howto manager. (line 205) +* BFD_RELOC_SPU_IMM10W: howto manager. (line 206) +* BFD_RELOC_SPU_IMM16: howto manager. (line 207) +* BFD_RELOC_SPU_IMM16W: howto manager. (line 208) +* BFD_RELOC_SPU_IMM18: howto manager. (line 209) +* BFD_RELOC_SPU_IMM7: howto manager. (line 203) +* BFD_RELOC_SPU_IMM8: howto manager. (line 204) +* BFD_RELOC_SPU_LO16: howto manager. (line 213) +* BFD_RELOC_SPU_PCREL16: howto manager. (line 212) +* BFD_RELOC_SPU_PCREL9a: howto manager. (line 210) +* BFD_RELOC_SPU_PCREL9b: howto manager. (line 211) +* BFD_RELOC_SPU_PPU32: howto manager. (line 215) +* BFD_RELOC_SPU_PPU64: howto manager. (line 216) +* BFD_RELOC_THUMB_PCREL_BLX: howto manager. (line 740) +* BFD_RELOC_THUMB_PCREL_BRANCH12: howto manager. (line 751) +* BFD_RELOC_THUMB_PCREL_BRANCH20: howto manager. (line 752) +* BFD_RELOC_THUMB_PCREL_BRANCH23: howto manager. (line 753) +* BFD_RELOC_THUMB_PCREL_BRANCH25: howto manager. (line 754) +* BFD_RELOC_THUMB_PCREL_BRANCH7: howto manager. (line 749) +* BFD_RELOC_THUMB_PCREL_BRANCH9: howto manager. (line 750) +* BFD_RELOC_TIC30_LDP: howto manager. (line 1488) +* BFD_RELOC_TIC54X_16_OF_23: howto manager. (line 1502) +* BFD_RELOC_TIC54X_23: howto manager. (line 1500) +* BFD_RELOC_TIC54X_MS7_OF_23: howto manager. (line 1506) +* BFD_RELOC_TIC54X_PARTLS7: howto manager. (line 1492) +* BFD_RELOC_TIC54X_PARTMS9: howto manager. (line 1496) +* BFD_RELOC_TILEGX_BROFF_X1: howto manager. (line 3163) +* BFD_RELOC_TILEGX_COPY: howto manager. (line 3159) +* BFD_RELOC_TILEGX_DEST_IMM8_X1: howto manager. (line 3170) +* BFD_RELOC_TILEGX_GLOB_DAT: howto manager. (line 3160) +* BFD_RELOC_TILEGX_HW0: howto manager. (line 3152) +* BFD_RELOC_TILEGX_HW0_LAST: howto manager. (line 3156) +* BFD_RELOC_TILEGX_HW1: howto manager. (line 3153) +* BFD_RELOC_TILEGX_HW1_LAST: howto manager. (line 3157) +* BFD_RELOC_TILEGX_HW2: howto manager. (line 3154) +* BFD_RELOC_TILEGX_HW2_LAST: howto manager. (line 3158) +* BFD_RELOC_TILEGX_HW3: howto manager. (line 3155) +* BFD_RELOC_TILEGX_IMM16_X0_HW0: howto manager. (line 3179) +* BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT: howto manager. (line 3207) +* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST: howto manager. (line 3187) +* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT: howto manager. (line 3215) +* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL: howto manager. (line 3201) * BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL: howto manager. - (line 3196) -* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD: howto manager. (line 3190) -* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE: howto manager. (line 3202) -* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE: howto manager. (line 3186) -* BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL: howto manager. (line 3154) -* BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL: howto manager. (line 3170) -* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD: howto manager. (line 3182) -* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE: howto manager. (line 3194) -* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE: howto manager. (line 3184) -* BFD_RELOC_TILEGX_IMM16_X0_HW1: howto manager. (line 3142) -* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST: howto manager. (line 3150) -* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT: howto manager. (line 3178) -* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL: howto manager. (line 3164) + (line 3235) +* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD: howto manager. (line 3229) +* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE: howto manager. (line 3241) +* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE: howto manager. (line 3225) +* BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL: howto manager. (line 3193) +* BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL: howto manager. (line 3209) +* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD: howto manager. (line 3221) +* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE: howto manager. (line 3233) +* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE: howto manager. (line 3223) +* BFD_RELOC_TILEGX_IMM16_X0_HW1: howto manager. (line 3181) +* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST: howto manager. (line 3189) +* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT: howto manager. (line 3217) +* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL: howto manager. (line 3203) * BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL: howto manager. - (line 3198) -* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD: howto manager. (line 3192) -* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE: howto manager. (line 3204) -* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE: howto manager. (line 3188) -* BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL: howto manager. (line 3156) -* BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL: howto manager. (line 3172) -* BFD_RELOC_TILEGX_IMM16_X0_HW2: howto manager. (line 3144) -* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST: howto manager. (line 3152) -* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL: howto manager. (line 3166) + (line 3237) +* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD: howto manager. (line 3231) +* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE: howto manager. (line 3243) +* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE: howto manager. (line 3227) +* BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL: howto manager. (line 3195) +* BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL: howto manager. (line 3211) +* BFD_RELOC_TILEGX_IMM16_X0_HW2: howto manager. (line 3183) +* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST: howto manager. (line 3191) +* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL: howto manager. (line 3205) * BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL: howto manager. - (line 3200) -* BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL: howto manager. (line 3158) -* BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL: howto manager. (line 3174) -* BFD_RELOC_TILEGX_IMM16_X0_HW3: howto manager. (line 3146) -* BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL: howto manager. (line 3160) -* BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL: howto manager. (line 3180) -* BFD_RELOC_TILEGX_IMM16_X1_HW0: howto manager. (line 3141) -* BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT: howto manager. (line 3169) -* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST: howto manager. (line 3149) -* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT: howto manager. (line 3177) -* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL: howto manager. (line 3163) + (line 3239) +* BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL: howto manager. (line 3197) +* BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL: howto manager. (line 3213) +* BFD_RELOC_TILEGX_IMM16_X0_HW3: howto manager. (line 3185) +* BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL: howto manager. (line 3199) +* BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL: howto manager. (line 3219) +* BFD_RELOC_TILEGX_IMM16_X1_HW0: howto manager. (line 3180) +* BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT: howto manager. (line 3208) +* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST: howto manager. (line 3188) +* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT: howto manager. (line 3216) +* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL: howto manager. (line 3202) * BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL: howto manager. - (line 3197) -* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD: howto manager. (line 3191) -* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE: howto manager. (line 3203) -* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE: howto manager. (line 3187) -* BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL: howto manager. (line 3155) -* BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL: howto manager. (line 3171) -* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD: howto manager. (line 3183) -* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE: howto manager. (line 3195) -* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE: howto manager. (line 3185) -* BFD_RELOC_TILEGX_IMM16_X1_HW1: howto manager. (line 3143) -* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST: howto manager. (line 3151) -* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT: howto manager. (line 3179) -* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL: howto manager. (line 3165) + (line 3236) +* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD: howto manager. (line 3230) +* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE: howto manager. (line 3242) +* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE: howto manager. (line 3226) +* BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL: howto manager. (line 3194) +* BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL: howto manager. (line 3210) +* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD: howto manager. (line 3222) +* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE: howto manager. (line 3234) +* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE: howto manager. (line 3224) +* BFD_RELOC_TILEGX_IMM16_X1_HW1: howto manager. (line 3182) +* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST: howto manager. (line 3190) +* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT: howto manager. (line 3218) +* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL: howto manager. (line 3204) * BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL: howto manager. - (line 3199) -* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD: howto manager. (line 3193) -* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE: howto manager. (line 3205) -* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE: howto manager. (line 3189) -* BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL: howto manager. (line 3157) -* BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL: howto manager. (line 3173) -* BFD_RELOC_TILEGX_IMM16_X1_HW2: howto manager. (line 3145) -* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST: howto manager. (line 3153) -* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL: howto manager. (line 3167) + (line 3238) +* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD: howto manager. (line 3232) +* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE: howto manager. (line 3244) +* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE: howto manager. (line 3228) +* BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL: howto manager. (line 3196) +* BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL: howto manager. (line 3212) +* BFD_RELOC_TILEGX_IMM16_X1_HW2: howto manager. (line 3184) +* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST: howto manager. (line 3192) +* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL: howto manager. (line 3206) * BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL: howto manager. - (line 3201) -* BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL: howto manager. (line 3159) -* BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL: howto manager. (line 3175) -* BFD_RELOC_TILEGX_IMM16_X1_HW3: howto manager. (line 3147) -* BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL: howto manager. (line 3161) -* BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL: howto manager. (line 3181) -* BFD_RELOC_TILEGX_IMM8_X0: howto manager. (line 3127) -* BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD: howto manager. (line 3218) -* BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD: howto manager. (line 3213) -* BFD_RELOC_TILEGX_IMM8_X1: howto manager. (line 3129) -* BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD: howto manager. (line 3219) -* BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD: howto manager. (line 3214) -* BFD_RELOC_TILEGX_IMM8_Y0: howto manager. (line 3128) -* BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD: howto manager. (line 3220) -* BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD: howto manager. (line 3215) -* BFD_RELOC_TILEGX_IMM8_Y1: howto manager. (line 3130) -* BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD: howto manager. (line 3221) -* BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD: howto manager. (line 3216) -* BFD_RELOC_TILEGX_JMP_SLOT: howto manager. (line 3122) -* BFD_RELOC_TILEGX_JUMPOFF_X1: howto manager. (line 3125) -* BFD_RELOC_TILEGX_JUMPOFF_X1_PLT: howto manager. (line 3126) -* BFD_RELOC_TILEGX_MF_IMM14_X1: howto manager. (line 3133) -* BFD_RELOC_TILEGX_MMEND_X0: howto manager. (line 3135) -* BFD_RELOC_TILEGX_MMSTART_X0: howto manager. (line 3134) -* BFD_RELOC_TILEGX_MT_IMM14_X1: howto manager. (line 3132) -* BFD_RELOC_TILEGX_RELATIVE: howto manager. (line 3123) -* BFD_RELOC_TILEGX_SHAMT_X0: howto manager. (line 3136) -* BFD_RELOC_TILEGX_SHAMT_X1: howto manager. (line 3137) -* BFD_RELOC_TILEGX_SHAMT_Y0: howto manager. (line 3138) -* BFD_RELOC_TILEGX_SHAMT_Y1: howto manager. (line 3139) -* BFD_RELOC_TILEGX_TLS_DTPMOD32: howto manager. (line 3209) -* BFD_RELOC_TILEGX_TLS_DTPMOD64: howto manager. (line 3206) -* BFD_RELOC_TILEGX_TLS_DTPOFF32: howto manager. (line 3210) -* BFD_RELOC_TILEGX_TLS_DTPOFF64: howto manager. (line 3207) -* BFD_RELOC_TILEGX_TLS_GD_CALL: howto manager. (line 3212) -* BFD_RELOC_TILEGX_TLS_IE_LOAD: howto manager. (line 3217) -* BFD_RELOC_TILEGX_TLS_TPOFF32: howto manager. (line 3211) -* BFD_RELOC_TILEGX_TLS_TPOFF64: howto manager. (line 3208) -* BFD_RELOC_TILEPRO_BROFF_X1: howto manager. (line 3037) -* BFD_RELOC_TILEPRO_COPY: howto manager. (line 3033) -* BFD_RELOC_TILEPRO_DEST_IMM8_X1: howto manager. (line 3044) -* BFD_RELOC_TILEPRO_GLOB_DAT: howto manager. (line 3034) -* BFD_RELOC_TILEPRO_IMM16_X0: howto manager. (line 3047) -* BFD_RELOC_TILEPRO_IMM16_X0_GOT: howto manager. (line 3063) -* BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA: howto manager. (line 3069) -* BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI: howto manager. (line 3067) -* BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO: howto manager. (line 3065) -* BFD_RELOC_TILEPRO_IMM16_X0_HA: howto manager. (line 3053) -* BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL: howto manager. (line 3061) -* BFD_RELOC_TILEPRO_IMM16_X0_HI: howto manager. (line 3051) -* BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL: howto manager. (line 3059) -* BFD_RELOC_TILEPRO_IMM16_X0_LO: howto manager. (line 3049) -* BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL: howto manager. (line 3057) -* BFD_RELOC_TILEPRO_IMM16_X0_PCREL: howto manager. (line 3055) -* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD: howto manager. (line 3085) -* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA: howto manager. (line 3091) -* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI: howto manager. (line 3089) -* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO: howto manager. (line 3087) -* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE: howto manager. (line 3093) -* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA: howto manager. (line 3099) -* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI: howto manager. (line 3097) -* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO: howto manager. (line 3095) -* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE: howto manager. (line 3104) -* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA: howto manager. (line 3110) -* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI: howto manager. (line 3108) -* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO: howto manager. (line 3106) -* BFD_RELOC_TILEPRO_IMM16_X1: howto manager. (line 3048) -* BFD_RELOC_TILEPRO_IMM16_X1_GOT: howto manager. (line 3064) -* BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA: howto manager. (line 3070) -* BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI: howto manager. (line 3068) -* BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO: howto manager. (line 3066) -* BFD_RELOC_TILEPRO_IMM16_X1_HA: howto manager. (line 3054) -* BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL: howto manager. (line 3062) -* BFD_RELOC_TILEPRO_IMM16_X1_HI: howto manager. (line 3052) -* BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL: howto manager. (line 3060) -* BFD_RELOC_TILEPRO_IMM16_X1_LO: howto manager. (line 3050) -* BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL: howto manager. (line 3058) -* BFD_RELOC_TILEPRO_IMM16_X1_PCREL: howto manager. (line 3056) -* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD: howto manager. (line 3086) -* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA: howto manager. (line 3092) -* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI: howto manager. (line 3090) -* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO: howto manager. (line 3088) -* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE: howto manager. (line 3094) -* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA: howto manager. (line 3100) -* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI: howto manager. (line 3098) -* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO: howto manager. (line 3096) -* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE: howto manager. (line 3105) -* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA: howto manager. (line 3111) -* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI: howto manager. (line 3109) -* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO: howto manager. (line 3107) -* BFD_RELOC_TILEPRO_IMM8_X0: howto manager. (line 3040) -* BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD: howto manager. (line 3080) -* BFD_RELOC_TILEPRO_IMM8_X1: howto manager. (line 3042) -* BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD: howto manager. (line 3081) -* BFD_RELOC_TILEPRO_IMM8_Y0: howto manager. (line 3041) -* BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD: howto manager. (line 3082) -* BFD_RELOC_TILEPRO_IMM8_Y1: howto manager. (line 3043) -* BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD: howto manager. (line 3083) -* BFD_RELOC_TILEPRO_JMP_SLOT: howto manager. (line 3035) -* BFD_RELOC_TILEPRO_JOFFLONG_X1: howto manager. (line 3038) -* BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT: howto manager. (line 3039) -* BFD_RELOC_TILEPRO_MF_IMM15_X1: howto manager. (line 3046) -* BFD_RELOC_TILEPRO_MMEND_X0: howto manager. (line 3072) -* BFD_RELOC_TILEPRO_MMEND_X1: howto manager. (line 3074) -* BFD_RELOC_TILEPRO_MMSTART_X0: howto manager. (line 3071) -* BFD_RELOC_TILEPRO_MMSTART_X1: howto manager. (line 3073) -* BFD_RELOC_TILEPRO_MT_IMM15_X1: howto manager. (line 3045) -* BFD_RELOC_TILEPRO_RELATIVE: howto manager. (line 3036) -* BFD_RELOC_TILEPRO_SHAMT_X0: howto manager. (line 3075) -* BFD_RELOC_TILEPRO_SHAMT_X1: howto manager. (line 3076) -* BFD_RELOC_TILEPRO_SHAMT_Y0: howto manager. (line 3077) -* BFD_RELOC_TILEPRO_SHAMT_Y1: howto manager. (line 3078) -* BFD_RELOC_TILEPRO_TLS_DTPMOD32: howto manager. (line 3101) -* BFD_RELOC_TILEPRO_TLS_DTPOFF32: howto manager. (line 3102) -* BFD_RELOC_TILEPRO_TLS_GD_CALL: howto manager. (line 3079) -* BFD_RELOC_TILEPRO_TLS_IE_LOAD: howto manager. (line 3084) -* BFD_RELOC_TILEPRO_TLS_TPOFF32: howto manager. (line 3103) -* bfd_reloc_type_lookup: howto manager. (line 3259) -* BFD_RELOC_V850_16_GOT: howto manager. (line 1460) -* BFD_RELOC_V850_16_GOTOFF: howto manager. (line 1476) -* BFD_RELOC_V850_16_PCREL: howto manager. (line 1440) -* BFD_RELOC_V850_16_S1: howto manager. (line 1452) -* BFD_RELOC_V850_16_SPLIT_OFFSET: howto manager. (line 1450) -* BFD_RELOC_V850_17_PCREL: howto manager. (line 1442) -* BFD_RELOC_V850_22_PCREL: howto manager. (line 1394) -* BFD_RELOC_V850_22_PLT_PCREL: howto manager. (line 1464) -* BFD_RELOC_V850_23: howto manager. (line 1444) -* BFD_RELOC_V850_32_ABS: howto manager. (line 1448) -* BFD_RELOC_V850_32_GOT: howto manager. (line 1462) -* BFD_RELOC_V850_32_GOTOFF: howto manager. (line 1478) -* BFD_RELOC_V850_32_GOTPCREL: howto manager. (line 1458) -* BFD_RELOC_V850_32_PCREL: howto manager. (line 1446) -* BFD_RELOC_V850_32_PLT_PCREL: howto manager. (line 1466) -* BFD_RELOC_V850_9_PCREL: howto manager. (line 1392) -* BFD_RELOC_V850_ALIGN: howto manager. (line 1435) -* BFD_RELOC_V850_CALLT_15_16_OFFSET: howto manager. (line 1456) -* BFD_RELOC_V850_CALLT_16_16_OFFSET: howto manager. (line 1429) -* BFD_RELOC_V850_CALLT_6_7_OFFSET: howto manager. (line 1427) -* BFD_RELOC_V850_CODE: howto manager. (line 1480) -* BFD_RELOC_V850_COPY: howto manager. (line 1468) -* BFD_RELOC_V850_DATA: howto manager. (line 1482) -* BFD_RELOC_V850_GLOB_DAT: howto manager. (line 1470) -* BFD_RELOC_V850_JMP_SLOT: howto manager. (line 1472) -* BFD_RELOC_V850_LO16_S1: howto manager. (line 1454) -* BFD_RELOC_V850_LO16_SPLIT_OFFSET: howto manager. (line 1437) -* BFD_RELOC_V850_LONGCALL: howto manager. (line 1431) -* BFD_RELOC_V850_LONGJUMP: howto manager. (line 1433) -* BFD_RELOC_V850_RELATIVE: howto manager. (line 1474) -* BFD_RELOC_V850_SDA_15_16_OFFSET: howto manager. (line 1398) -* BFD_RELOC_V850_SDA_16_16_OFFSET: howto manager. (line 1396) -* BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET: howto manager. (line 1421) -* BFD_RELOC_V850_TDA_16_16_OFFSET: howto manager. (line 1414) -* BFD_RELOC_V850_TDA_4_4_OFFSET: howto manager. (line 1419) -* BFD_RELOC_V850_TDA_4_5_OFFSET: howto manager. (line 1416) -* BFD_RELOC_V850_TDA_6_8_OFFSET: howto manager. (line 1406) -* BFD_RELOC_V850_TDA_7_7_OFFSET: howto manager. (line 1412) -* BFD_RELOC_V850_TDA_7_8_OFFSET: howto manager. (line 1409) -* BFD_RELOC_V850_ZDA_15_16_OFFSET: howto manager. (line 1403) -* BFD_RELOC_V850_ZDA_16_16_OFFSET: howto manager. (line 1401) -* BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET: howto manager. (line 1424) -* BFD_RELOC_VAX_GLOB_DAT: howto manager. (line 2413) -* BFD_RELOC_VAX_JMP_SLOT: howto manager. (line 2414) -* BFD_RELOC_VAX_RELATIVE: howto manager. (line 2415) -* BFD_RELOC_VISIUM_HI16: howto manager. (line 3238) -* BFD_RELOC_VISIUM_HI16_PCREL: howto manager. (line 3242) -* BFD_RELOC_VISIUM_IM16: howto manager. (line 3240) -* BFD_RELOC_VISIUM_IM16_PCREL: howto manager. (line 3244) -* BFD_RELOC_VISIUM_LO16: howto manager. (line 3239) -* BFD_RELOC_VISIUM_LO16_PCREL: howto manager. (line 3243) -* BFD_RELOC_VISIUM_REL16: howto manager. (line 3241) -* BFD_RELOC_VPE4KMATH_DATA: howto manager. (line 2016) -* BFD_RELOC_VPE4KMATH_INSN: howto manager. (line 2017) -* BFD_RELOC_VTABLE_ENTRY: howto manager. (line 2020) -* BFD_RELOC_VTABLE_INHERIT: howto manager. (line 2019) -* BFD_RELOC_WASM32_ABS32_CODE: howto manager. (line 3251) -* BFD_RELOC_WASM32_CODE_POINTER: howto manager. (line 3253) -* BFD_RELOC_WASM32_COPY: howto manager. (line 3252) -* BFD_RELOC_WASM32_INDEX: howto manager. (line 3254) -* BFD_RELOC_WASM32_LEB128: howto manager. (line 3246) -* BFD_RELOC_WASM32_LEB128_GOT: howto manager. (line 3247) -* BFD_RELOC_WASM32_LEB128_GOT_CODE: howto manager. (line 3248) -* BFD_RELOC_WASM32_LEB128_PLT: howto manager. (line 3249) -* BFD_RELOC_WASM32_PLT_INDEX: howto manager. (line 3250) -* BFD_RELOC_WASM32_PLT_SIG: howto manager. (line 3255) -* BFD_RELOC_X86_64_32S: howto manager. (line 558) -* BFD_RELOC_X86_64_COPY: howto manager. (line 553) -* BFD_RELOC_X86_64_DTPMOD64: howto manager. (line 559) -* BFD_RELOC_X86_64_DTPOFF32: howto manager. (line 564) -* BFD_RELOC_X86_64_DTPOFF64: howto manager. (line 560) -* BFD_RELOC_X86_64_GLOB_DAT: howto manager. (line 554) -* BFD_RELOC_X86_64_GOT32: howto manager. (line 551) -* BFD_RELOC_X86_64_GOT64: howto manager. (line 569) -* BFD_RELOC_X86_64_GOTOFF64: howto manager. (line 567) -* BFD_RELOC_X86_64_GOTPC32: howto manager. (line 568) -* BFD_RELOC_X86_64_GOTPC32_TLSDESC: howto manager. (line 574) -* BFD_RELOC_X86_64_GOTPC64: howto manager. (line 571) -* BFD_RELOC_X86_64_GOTPCREL: howto manager. (line 557) -* BFD_RELOC_X86_64_GOTPCREL64: howto manager. (line 570) -* BFD_RELOC_X86_64_GOTPCRELX: howto manager. (line 580) -* BFD_RELOC_X86_64_GOTPLT64: howto manager. (line 572) -* BFD_RELOC_X86_64_GOTTPOFF: howto manager. (line 565) -* BFD_RELOC_X86_64_IRELATIVE: howto manager. (line 577) -* BFD_RELOC_X86_64_JUMP_SLOT: howto manager. (line 555) -* BFD_RELOC_X86_64_PC32_BND: howto manager. (line 578) -* BFD_RELOC_X86_64_PLT32: howto manager. (line 552) -* BFD_RELOC_X86_64_PLT32_BND: howto manager. (line 579) -* BFD_RELOC_X86_64_PLTOFF64: howto manager. (line 573) -* BFD_RELOC_X86_64_RELATIVE: howto manager. (line 556) -* BFD_RELOC_X86_64_REX_GOTPCRELX: howto manager. (line 581) -* BFD_RELOC_X86_64_TLSDESC: howto manager. (line 576) -* BFD_RELOC_X86_64_TLSDESC_CALL: howto manager. (line 575) -* BFD_RELOC_X86_64_TLSGD: howto manager. (line 562) -* BFD_RELOC_X86_64_TLSLD: howto manager. (line 563) -* BFD_RELOC_X86_64_TPOFF32: howto manager. (line 566) -* BFD_RELOC_X86_64_TPOFF64: howto manager. (line 561) -* BFD_RELOC_XC16X_PAG: howto manager. (line 2408) -* BFD_RELOC_XC16X_POF: howto manager. (line 2409) -* BFD_RELOC_XC16X_SEG: howto manager. (line 2410) -* BFD_RELOC_XC16X_SOF: howto manager. (line 2411) -* BFD_RELOC_XGATE_24: howto manager. (line 2163) -* BFD_RELOC_XGATE_GPAGE: howto manager. (line 2161) -* BFD_RELOC_XGATE_IMM3: howto manager. (line 2175) -* BFD_RELOC_XGATE_IMM4: howto manager. (line 2177) -* BFD_RELOC_XGATE_IMM5: howto manager. (line 2179) -* BFD_RELOC_XGATE_IMM8_HI: howto manager. (line 2172) -* BFD_RELOC_XGATE_IMM8_LO: howto manager. (line 2169) -* BFD_RELOC_XGATE_LO16: howto manager. (line 2158) -* BFD_RELOC_XGATE_PCREL_10: howto manager. (line 2167) -* BFD_RELOC_XGATE_PCREL_9: howto manager. (line 2165) -* BFD_RELOC_XGATE_RL_GROUP: howto manager. (line 2154) -* BFD_RELOC_XGATE_RL_JUMP: howto manager. (line 2151) -* BFD_RELOC_XSTORMY16_12: howto manager. (line 2402) -* BFD_RELOC_XSTORMY16_24: howto manager. (line 2403) -* BFD_RELOC_XSTORMY16_FPTR16: howto manager. (line 2404) -* BFD_RELOC_XSTORMY16_REL_12: howto manager. (line 2401) -* BFD_RELOC_XTENSA_ASM_EXPAND: howto manager. (line 2599) -* BFD_RELOC_XTENSA_ASM_SIMPLIFY: howto manager. (line 2603) -* BFD_RELOC_XTENSA_DIFF16: howto manager. (line 2550) -* BFD_RELOC_XTENSA_DIFF32: howto manager. (line 2551) -* BFD_RELOC_XTENSA_DIFF8: howto manager. (line 2549) -* BFD_RELOC_XTENSA_GLOB_DAT: howto manager. (line 2541) -* BFD_RELOC_XTENSA_JMP_SLOT: howto manager. (line 2542) -* BFD_RELOC_XTENSA_OP0: howto manager. (line 2594) -* BFD_RELOC_XTENSA_OP1: howto manager. (line 2595) -* BFD_RELOC_XTENSA_OP2: howto manager. (line 2596) -* BFD_RELOC_XTENSA_PLT: howto manager. (line 2545) -* BFD_RELOC_XTENSA_RELATIVE: howto manager. (line 2543) -* BFD_RELOC_XTENSA_RTLD: howto manager. (line 2537) -* BFD_RELOC_XTENSA_SLOT0_ALT: howto manager. (line 2577) -* BFD_RELOC_XTENSA_SLOT0_OP: howto manager. (line 2558) -* BFD_RELOC_XTENSA_SLOT10_ALT: howto manager. (line 2587) -* BFD_RELOC_XTENSA_SLOT10_OP: howto manager. (line 2568) -* BFD_RELOC_XTENSA_SLOT11_ALT: howto manager. (line 2588) -* BFD_RELOC_XTENSA_SLOT11_OP: howto manager. (line 2569) -* BFD_RELOC_XTENSA_SLOT12_ALT: howto manager. (line 2589) -* BFD_RELOC_XTENSA_SLOT12_OP: howto manager. (line 2570) -* BFD_RELOC_XTENSA_SLOT13_ALT: howto manager. (line 2590) -* BFD_RELOC_XTENSA_SLOT13_OP: howto manager. (line 2571) -* BFD_RELOC_XTENSA_SLOT14_ALT: howto manager. (line 2591) -* BFD_RELOC_XTENSA_SLOT14_OP: howto manager. (line 2572) -* BFD_RELOC_XTENSA_SLOT1_ALT: howto manager. (line 2578) -* BFD_RELOC_XTENSA_SLOT1_OP: howto manager. (line 2559) -* BFD_RELOC_XTENSA_SLOT2_ALT: howto manager. (line 2579) -* BFD_RELOC_XTENSA_SLOT2_OP: howto manager. (line 2560) -* BFD_RELOC_XTENSA_SLOT3_ALT: howto manager. (line 2580) -* BFD_RELOC_XTENSA_SLOT3_OP: howto manager. (line 2561) -* BFD_RELOC_XTENSA_SLOT4_ALT: howto manager. (line 2581) -* BFD_RELOC_XTENSA_SLOT4_OP: howto manager. (line 2562) -* BFD_RELOC_XTENSA_SLOT5_ALT: howto manager. (line 2582) -* BFD_RELOC_XTENSA_SLOT5_OP: howto manager. (line 2563) -* BFD_RELOC_XTENSA_SLOT6_ALT: howto manager. (line 2583) -* BFD_RELOC_XTENSA_SLOT6_OP: howto manager. (line 2564) -* BFD_RELOC_XTENSA_SLOT7_ALT: howto manager. (line 2584) -* BFD_RELOC_XTENSA_SLOT7_OP: howto manager. (line 2565) -* BFD_RELOC_XTENSA_SLOT8_ALT: howto manager. (line 2585) -* BFD_RELOC_XTENSA_SLOT8_OP: howto manager. (line 2566) -* BFD_RELOC_XTENSA_SLOT9_ALT: howto manager. (line 2586) -* BFD_RELOC_XTENSA_SLOT9_OP: howto manager. (line 2567) -* BFD_RELOC_XTENSA_TLSDESC_ARG: howto manager. (line 2608) -* BFD_RELOC_XTENSA_TLSDESC_FN: howto manager. (line 2607) -* BFD_RELOC_XTENSA_TLS_ARG: howto manager. (line 2612) -* BFD_RELOC_XTENSA_TLS_CALL: howto manager. (line 2613) -* BFD_RELOC_XTENSA_TLS_DTPOFF: howto manager. (line 2609) -* BFD_RELOC_XTENSA_TLS_FUNC: howto manager. (line 2611) -* BFD_RELOC_XTENSA_TLS_TPOFF: howto manager. (line 2610) -* BFD_RELOC_Z80_DISP8: howto manager. (line 2615) -* BFD_RELOC_Z8K_CALLR: howto manager. (line 2619) -* BFD_RELOC_Z8K_DISP7: howto manager. (line 2617) -* BFD_RELOC_Z8K_IMM4L: howto manager. (line 2621) -* bfd_rename_section: section prototypes. (line 177) -* bfd_scan_arch: Architectures. (line 555) + (line 3240) +* BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL: howto manager. (line 3198) +* BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL: howto manager. (line 3214) +* BFD_RELOC_TILEGX_IMM16_X1_HW3: howto manager. (line 3186) +* BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL: howto manager. (line 3200) +* BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL: howto manager. (line 3220) +* BFD_RELOC_TILEGX_IMM8_X0: howto manager. (line 3166) +* BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD: howto manager. (line 3257) +* BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD: howto manager. (line 3252) +* BFD_RELOC_TILEGX_IMM8_X1: howto manager. (line 3168) +* BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD: howto manager. (line 3258) +* BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD: howto manager. (line 3253) +* BFD_RELOC_TILEGX_IMM8_Y0: howto manager. (line 3167) +* BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD: howto manager. (line 3259) +* BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD: howto manager. (line 3254) +* BFD_RELOC_TILEGX_IMM8_Y1: howto manager. (line 3169) +* BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD: howto manager. (line 3260) +* BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD: howto manager. (line 3255) +* BFD_RELOC_TILEGX_JMP_SLOT: howto manager. (line 3161) +* BFD_RELOC_TILEGX_JUMPOFF_X1: howto manager. (line 3164) +* BFD_RELOC_TILEGX_JUMPOFF_X1_PLT: howto manager. (line 3165) +* BFD_RELOC_TILEGX_MF_IMM14_X1: howto manager. (line 3172) +* BFD_RELOC_TILEGX_MMEND_X0: howto manager. (line 3174) +* BFD_RELOC_TILEGX_MMSTART_X0: howto manager. (line 3173) +* BFD_RELOC_TILEGX_MT_IMM14_X1: howto manager. (line 3171) +* BFD_RELOC_TILEGX_RELATIVE: howto manager. (line 3162) +* BFD_RELOC_TILEGX_SHAMT_X0: howto manager. (line 3175) +* BFD_RELOC_TILEGX_SHAMT_X1: howto manager. (line 3176) +* BFD_RELOC_TILEGX_SHAMT_Y0: howto manager. (line 3177) +* BFD_RELOC_TILEGX_SHAMT_Y1: howto manager. (line 3178) +* BFD_RELOC_TILEGX_TLS_DTPMOD32: howto manager. (line 3248) +* BFD_RELOC_TILEGX_TLS_DTPMOD64: howto manager. (line 3245) +* BFD_RELOC_TILEGX_TLS_DTPOFF32: howto manager. (line 3249) +* BFD_RELOC_TILEGX_TLS_DTPOFF64: howto manager. (line 3246) +* BFD_RELOC_TILEGX_TLS_GD_CALL: howto manager. (line 3251) +* BFD_RELOC_TILEGX_TLS_IE_LOAD: howto manager. (line 3256) +* BFD_RELOC_TILEGX_TLS_TPOFF32: howto manager. (line 3250) +* BFD_RELOC_TILEGX_TLS_TPOFF64: howto manager. (line 3247) +* BFD_RELOC_TILEPRO_BROFF_X1: howto manager. (line 3076) +* BFD_RELOC_TILEPRO_COPY: howto manager. (line 3072) +* BFD_RELOC_TILEPRO_DEST_IMM8_X1: howto manager. (line 3083) +* BFD_RELOC_TILEPRO_GLOB_DAT: howto manager. (line 3073) +* BFD_RELOC_TILEPRO_IMM16_X0: howto manager. (line 3086) +* BFD_RELOC_TILEPRO_IMM16_X0_GOT: howto manager. (line 3102) +* BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA: howto manager. (line 3108) +* BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI: howto manager. (line 3106) +* BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO: howto manager. (line 3104) +* BFD_RELOC_TILEPRO_IMM16_X0_HA: howto manager. (line 3092) +* BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL: howto manager. (line 3100) +* BFD_RELOC_TILEPRO_IMM16_X0_HI: howto manager. (line 3090) +* BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL: howto manager. (line 3098) +* BFD_RELOC_TILEPRO_IMM16_X0_LO: howto manager. (line 3088) +* BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL: howto manager. (line 3096) +* BFD_RELOC_TILEPRO_IMM16_X0_PCREL: howto manager. (line 3094) +* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD: howto manager. (line 3124) +* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA: howto manager. (line 3130) +* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI: howto manager. (line 3128) +* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO: howto manager. (line 3126) +* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE: howto manager. (line 3132) +* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA: howto manager. (line 3138) +* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI: howto manager. (line 3136) +* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO: howto manager. (line 3134) +* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE: howto manager. (line 3143) +* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA: howto manager. (line 3149) +* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI: howto manager. (line 3147) +* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO: howto manager. (line 3145) +* BFD_RELOC_TILEPRO_IMM16_X1: howto manager. (line 3087) +* BFD_RELOC_TILEPRO_IMM16_X1_GOT: howto manager. (line 3103) +* BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA: howto manager. (line 3109) +* BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI: howto manager. (line 3107) +* BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO: howto manager. (line 3105) +* BFD_RELOC_TILEPRO_IMM16_X1_HA: howto manager. (line 3093) +* BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL: howto manager. (line 3101) +* BFD_RELOC_TILEPRO_IMM16_X1_HI: howto manager. (line 3091) +* BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL: howto manager. (line 3099) +* BFD_RELOC_TILEPRO_IMM16_X1_LO: howto manager. (line 3089) +* BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL: howto manager. (line 3097) +* BFD_RELOC_TILEPRO_IMM16_X1_PCREL: howto manager. (line 3095) +* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD: howto manager. (line 3125) +* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA: howto manager. (line 3131) +* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI: howto manager. (line 3129) +* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO: howto manager. (line 3127) +* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE: howto manager. (line 3133) +* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA: howto manager. (line 3139) +* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI: howto manager. (line 3137) +* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO: howto manager. (line 3135) +* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE: howto manager. (line 3144) +* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA: howto manager. (line 3150) +* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI: howto manager. (line 3148) +* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO: howto manager. (line 3146) +* BFD_RELOC_TILEPRO_IMM8_X0: howto manager. (line 3079) +* BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD: howto manager. (line 3119) +* BFD_RELOC_TILEPRO_IMM8_X1: howto manager. (line 3081) +* BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD: howto manager. (line 3120) +* BFD_RELOC_TILEPRO_IMM8_Y0: howto manager. (line 3080) +* BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD: howto manager. (line 3121) +* BFD_RELOC_TILEPRO_IMM8_Y1: howto manager. (line 3082) +* BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD: howto manager. (line 3122) +* BFD_RELOC_TILEPRO_JMP_SLOT: howto manager. (line 3074) +* BFD_RELOC_TILEPRO_JOFFLONG_X1: howto manager. (line 3077) +* BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT: howto manager. (line 3078) +* BFD_RELOC_TILEPRO_MF_IMM15_X1: howto manager. (line 3085) +* BFD_RELOC_TILEPRO_MMEND_X0: howto manager. (line 3111) +* BFD_RELOC_TILEPRO_MMEND_X1: howto manager. (line 3113) +* BFD_RELOC_TILEPRO_MMSTART_X0: howto manager. (line 3110) +* BFD_RELOC_TILEPRO_MMSTART_X1: howto manager. (line 3112) +* BFD_RELOC_TILEPRO_MT_IMM15_X1: howto manager. (line 3084) +* BFD_RELOC_TILEPRO_RELATIVE: howto manager. (line 3075) +* BFD_RELOC_TILEPRO_SHAMT_X0: howto manager. (line 3114) +* BFD_RELOC_TILEPRO_SHAMT_X1: howto manager. (line 3115) +* BFD_RELOC_TILEPRO_SHAMT_Y0: howto manager. (line 3116) +* BFD_RELOC_TILEPRO_SHAMT_Y1: howto manager. (line 3117) +* BFD_RELOC_TILEPRO_TLS_DTPMOD32: howto manager. (line 3140) +* BFD_RELOC_TILEPRO_TLS_DTPOFF32: howto manager. (line 3141) +* BFD_RELOC_TILEPRO_TLS_GD_CALL: howto manager. (line 3118) +* BFD_RELOC_TILEPRO_TLS_IE_LOAD: howto manager. (line 3123) +* BFD_RELOC_TILEPRO_TLS_TPOFF32: howto manager. (line 3142) +* bfd_reloc_type_lookup: howto manager. (line 3298) +* BFD_RELOC_V850_16_GOT: howto manager. (line 1464) +* BFD_RELOC_V850_16_GOTOFF: howto manager. (line 1480) +* BFD_RELOC_V850_16_PCREL: howto manager. (line 1444) +* BFD_RELOC_V850_16_S1: howto manager. (line 1456) +* BFD_RELOC_V850_16_SPLIT_OFFSET: howto manager. (line 1454) +* BFD_RELOC_V850_17_PCREL: howto manager. (line 1446) +* BFD_RELOC_V850_22_PCREL: howto manager. (line 1398) +* BFD_RELOC_V850_22_PLT_PCREL: howto manager. (line 1468) +* BFD_RELOC_V850_23: howto manager. (line 1448) +* BFD_RELOC_V850_32_ABS: howto manager. (line 1452) +* BFD_RELOC_V850_32_GOT: howto manager. (line 1466) +* BFD_RELOC_V850_32_GOTOFF: howto manager. (line 1482) +* BFD_RELOC_V850_32_GOTPCREL: howto manager. (line 1462) +* BFD_RELOC_V850_32_PCREL: howto manager. (line 1450) +* BFD_RELOC_V850_32_PLT_PCREL: howto manager. (line 1470) +* BFD_RELOC_V850_9_PCREL: howto manager. (line 1396) +* BFD_RELOC_V850_ALIGN: howto manager. (line 1439) +* BFD_RELOC_V850_CALLT_15_16_OFFSET: howto manager. (line 1460) +* BFD_RELOC_V850_CALLT_16_16_OFFSET: howto manager. (line 1433) +* BFD_RELOC_V850_CALLT_6_7_OFFSET: howto manager. (line 1431) +* BFD_RELOC_V850_CODE: howto manager. (line 1484) +* BFD_RELOC_V850_COPY: howto manager. (line 1472) +* BFD_RELOC_V850_DATA: howto manager. (line 1486) +* BFD_RELOC_V850_GLOB_DAT: howto manager. (line 1474) +* BFD_RELOC_V850_JMP_SLOT: howto manager. (line 1476) +* BFD_RELOC_V850_LO16_S1: howto manager. (line 1458) +* BFD_RELOC_V850_LO16_SPLIT_OFFSET: howto manager. (line 1441) +* BFD_RELOC_V850_LONGCALL: howto manager. (line 1435) +* BFD_RELOC_V850_LONGJUMP: howto manager. (line 1437) +* BFD_RELOC_V850_RELATIVE: howto manager. (line 1478) +* BFD_RELOC_V850_SDA_15_16_OFFSET: howto manager. (line 1402) +* BFD_RELOC_V850_SDA_16_16_OFFSET: howto manager. (line 1400) +* BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET: howto manager. (line 1425) +* BFD_RELOC_V850_TDA_16_16_OFFSET: howto manager. (line 1418) +* BFD_RELOC_V850_TDA_4_4_OFFSET: howto manager. (line 1423) +* BFD_RELOC_V850_TDA_4_5_OFFSET: howto manager. (line 1420) +* BFD_RELOC_V850_TDA_6_8_OFFSET: howto manager. (line 1410) +* BFD_RELOC_V850_TDA_7_7_OFFSET: howto manager. (line 1416) +* BFD_RELOC_V850_TDA_7_8_OFFSET: howto manager. (line 1413) +* BFD_RELOC_V850_ZDA_15_16_OFFSET: howto manager. (line 1407) +* BFD_RELOC_V850_ZDA_16_16_OFFSET: howto manager. (line 1405) +* BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET: howto manager. (line 1428) +* BFD_RELOC_VAX_GLOB_DAT: howto manager. (line 2388) +* BFD_RELOC_VAX_JMP_SLOT: howto manager. (line 2389) +* BFD_RELOC_VAX_RELATIVE: howto manager. (line 2390) +* BFD_RELOC_VISIUM_HI16: howto manager. (line 3277) +* BFD_RELOC_VISIUM_HI16_PCREL: howto manager. (line 3281) +* BFD_RELOC_VISIUM_IM16: howto manager. (line 3279) +* BFD_RELOC_VISIUM_IM16_PCREL: howto manager. (line 3283) +* BFD_RELOC_VISIUM_LO16: howto manager. (line 3278) +* BFD_RELOC_VISIUM_LO16_PCREL: howto manager. (line 3282) +* BFD_RELOC_VISIUM_REL16: howto manager. (line 3280) +* BFD_RELOC_VPE4KMATH_DATA: howto manager. (line 2020) +* BFD_RELOC_VPE4KMATH_INSN: howto manager. (line 2021) +* BFD_RELOC_VTABLE_ENTRY: howto manager. (line 2024) +* BFD_RELOC_VTABLE_INHERIT: howto manager. (line 2023) +* BFD_RELOC_WASM32_ABS32_CODE: howto manager. (line 3290) +* BFD_RELOC_WASM32_CODE_POINTER: howto manager. (line 3292) +* BFD_RELOC_WASM32_COPY: howto manager. (line 3291) +* BFD_RELOC_WASM32_INDEX: howto manager. (line 3293) +* BFD_RELOC_WASM32_LEB128: howto manager. (line 3285) +* BFD_RELOC_WASM32_LEB128_GOT: howto manager. (line 3286) +* BFD_RELOC_WASM32_LEB128_GOT_CODE: howto manager. (line 3287) +* BFD_RELOC_WASM32_LEB128_PLT: howto manager. (line 3288) +* BFD_RELOC_WASM32_PLT_INDEX: howto manager. (line 3289) +* BFD_RELOC_WASM32_PLT_SIG: howto manager. (line 3294) +* BFD_RELOC_X86_64_32S: howto manager. (line 554) +* BFD_RELOC_X86_64_COPY: howto manager. (line 549) +* BFD_RELOC_X86_64_DTPMOD64: howto manager. (line 555) +* BFD_RELOC_X86_64_DTPOFF32: howto manager. (line 560) +* BFD_RELOC_X86_64_DTPOFF64: howto manager. (line 556) +* BFD_RELOC_X86_64_GLOB_DAT: howto manager. (line 550) +* BFD_RELOC_X86_64_GOT32: howto manager. (line 547) +* BFD_RELOC_X86_64_GOT64: howto manager. (line 565) +* BFD_RELOC_X86_64_GOTOFF64: howto manager. (line 563) +* BFD_RELOC_X86_64_GOTPC32: howto manager. (line 564) +* BFD_RELOC_X86_64_GOTPC32_TLSDESC: howto manager. (line 570) +* BFD_RELOC_X86_64_GOTPC64: howto manager. (line 567) +* BFD_RELOC_X86_64_GOTPCREL: howto manager. (line 553) +* BFD_RELOC_X86_64_GOTPCREL64: howto manager. (line 566) +* BFD_RELOC_X86_64_GOTPCRELX: howto manager. (line 576) +* BFD_RELOC_X86_64_GOTPLT64: howto manager. (line 568) +* BFD_RELOC_X86_64_GOTTPOFF: howto manager. (line 561) +* BFD_RELOC_X86_64_IRELATIVE: howto manager. (line 573) +* BFD_RELOC_X86_64_JUMP_SLOT: howto manager. (line 551) +* BFD_RELOC_X86_64_PC32_BND: howto manager. (line 574) +* BFD_RELOC_X86_64_PLT32: howto manager. (line 548) +* BFD_RELOC_X86_64_PLT32_BND: howto manager. (line 575) +* BFD_RELOC_X86_64_PLTOFF64: howto manager. (line 569) +* BFD_RELOC_X86_64_RELATIVE: howto manager. (line 552) +* BFD_RELOC_X86_64_REX_GOTPCRELX: howto manager. (line 577) +* BFD_RELOC_X86_64_TLSDESC: howto manager. (line 572) +* BFD_RELOC_X86_64_TLSDESC_CALL: howto manager. (line 571) +* BFD_RELOC_X86_64_TLSGD: howto manager. (line 558) +* BFD_RELOC_X86_64_TLSLD: howto manager. (line 559) +* BFD_RELOC_X86_64_TPOFF32: howto manager. (line 562) +* BFD_RELOC_X86_64_TPOFF64: howto manager. (line 557) +* BFD_RELOC_XC16X_PAG: howto manager. (line 2383) +* BFD_RELOC_XC16X_POF: howto manager. (line 2384) +* BFD_RELOC_XC16X_SEG: howto manager. (line 2385) +* BFD_RELOC_XC16X_SOF: howto manager. (line 2386) +* BFD_RELOC_XGATE_24: howto manager. (line 2167) +* BFD_RELOC_XGATE_GPAGE: howto manager. (line 2165) +* BFD_RELOC_XGATE_IMM3: howto manager. (line 2179) +* BFD_RELOC_XGATE_IMM4: howto manager. (line 2181) +* BFD_RELOC_XGATE_IMM5: howto manager. (line 2183) +* BFD_RELOC_XGATE_IMM8_HI: howto manager. (line 2176) +* BFD_RELOC_XGATE_IMM8_LO: howto manager. (line 2173) +* BFD_RELOC_XGATE_LO16: howto manager. (line 2162) +* BFD_RELOC_XGATE_PCREL_10: howto manager. (line 2171) +* BFD_RELOC_XGATE_PCREL_9: howto manager. (line 2169) +* BFD_RELOC_XGATE_RL_GROUP: howto manager. (line 2158) +* BFD_RELOC_XGATE_RL_JUMP: howto manager. (line 2155) +* BFD_RELOC_XSTORMY16_12: howto manager. (line 2377) +* BFD_RELOC_XSTORMY16_24: howto manager. (line 2378) +* BFD_RELOC_XSTORMY16_FPTR16: howto manager. (line 2379) +* BFD_RELOC_XSTORMY16_REL_12: howto manager. (line 2376) +* BFD_RELOC_XTENSA_ASM_EXPAND: howto manager. (line 2574) +* BFD_RELOC_XTENSA_ASM_SIMPLIFY: howto manager. (line 2578) +* BFD_RELOC_XTENSA_DIFF16: howto manager. (line 2525) +* BFD_RELOC_XTENSA_DIFF32: howto manager. (line 2526) +* BFD_RELOC_XTENSA_DIFF8: howto manager. (line 2524) +* BFD_RELOC_XTENSA_GLOB_DAT: howto manager. (line 2516) +* BFD_RELOC_XTENSA_JMP_SLOT: howto manager. (line 2517) +* BFD_RELOC_XTENSA_OP0: howto manager. (line 2569) +* BFD_RELOC_XTENSA_OP1: howto manager. (line 2570) +* BFD_RELOC_XTENSA_OP2: howto manager. (line 2571) +* BFD_RELOC_XTENSA_PLT: howto manager. (line 2520) +* BFD_RELOC_XTENSA_RELATIVE: howto manager. (line 2518) +* BFD_RELOC_XTENSA_RTLD: howto manager. (line 2512) +* BFD_RELOC_XTENSA_SLOT0_ALT: howto manager. (line 2552) +* BFD_RELOC_XTENSA_SLOT0_OP: howto manager. (line 2533) +* BFD_RELOC_XTENSA_SLOT10_ALT: howto manager. (line 2562) +* BFD_RELOC_XTENSA_SLOT10_OP: howto manager. (line 2543) +* BFD_RELOC_XTENSA_SLOT11_ALT: howto manager. (line 2563) +* BFD_RELOC_XTENSA_SLOT11_OP: howto manager. (line 2544) +* BFD_RELOC_XTENSA_SLOT12_ALT: howto manager. (line 2564) +* BFD_RELOC_XTENSA_SLOT12_OP: howto manager. (line 2545) +* BFD_RELOC_XTENSA_SLOT13_ALT: howto manager. (line 2565) +* BFD_RELOC_XTENSA_SLOT13_OP: howto manager. (line 2546) +* BFD_RELOC_XTENSA_SLOT14_ALT: howto manager. (line 2566) +* BFD_RELOC_XTENSA_SLOT14_OP: howto manager. (line 2547) +* BFD_RELOC_XTENSA_SLOT1_ALT: howto manager. (line 2553) +* BFD_RELOC_XTENSA_SLOT1_OP: howto manager. (line 2534) +* BFD_RELOC_XTENSA_SLOT2_ALT: howto manager. (line 2554) +* BFD_RELOC_XTENSA_SLOT2_OP: howto manager. (line 2535) +* BFD_RELOC_XTENSA_SLOT3_ALT: howto manager. (line 2555) +* BFD_RELOC_XTENSA_SLOT3_OP: howto manager. (line 2536) +* BFD_RELOC_XTENSA_SLOT4_ALT: howto manager. (line 2556) +* BFD_RELOC_XTENSA_SLOT4_OP: howto manager. (line 2537) +* BFD_RELOC_XTENSA_SLOT5_ALT: howto manager. (line 2557) +* BFD_RELOC_XTENSA_SLOT5_OP: howto manager. (line 2538) +* BFD_RELOC_XTENSA_SLOT6_ALT: howto manager. (line 2558) +* BFD_RELOC_XTENSA_SLOT6_OP: howto manager. (line 2539) +* BFD_RELOC_XTENSA_SLOT7_ALT: howto manager. (line 2559) +* BFD_RELOC_XTENSA_SLOT7_OP: howto manager. (line 2540) +* BFD_RELOC_XTENSA_SLOT8_ALT: howto manager. (line 2560) +* BFD_RELOC_XTENSA_SLOT8_OP: howto manager. (line 2541) +* BFD_RELOC_XTENSA_SLOT9_ALT: howto manager. (line 2561) +* BFD_RELOC_XTENSA_SLOT9_OP: howto manager. (line 2542) +* BFD_RELOC_XTENSA_TLSDESC_ARG: howto manager. (line 2583) +* BFD_RELOC_XTENSA_TLSDESC_FN: howto manager. (line 2582) +* BFD_RELOC_XTENSA_TLS_ARG: howto manager. (line 2587) +* BFD_RELOC_XTENSA_TLS_CALL: howto manager. (line 2588) +* BFD_RELOC_XTENSA_TLS_DTPOFF: howto manager. (line 2584) +* BFD_RELOC_XTENSA_TLS_FUNC: howto manager. (line 2586) +* BFD_RELOC_XTENSA_TLS_TPOFF: howto manager. (line 2585) +* BFD_RELOC_Z80_DISP8: howto manager. (line 2590) +* BFD_RELOC_Z8K_CALLR: howto manager. (line 2594) +* BFD_RELOC_Z8K_DISP7: howto manager. (line 2592) +* BFD_RELOC_Z8K_IMM4L: howto manager. (line 2596) +* bfd_rename_section: section prototypes. (line 169) +* bfd_scan_arch: Architectures. (line 547) * bfd_scan_vma: Miscellaneous. (line 126) -* bfd_sections_find_if: section prototypes. (line 207) +* bfd_sections_find_if: section prototypes. (line 199) * bfd_section_already_linked: Writing the symbol table. (line 55) * bfd_section_list_clear: section prototypes. (line 7) * bfd_set_archive_head: Archives. (line 74) -* bfd_set_arch_info: Architectures. (line 596) -* bfd_set_assert_handler: Error reporting. (line 146) -* bfd_set_default_target: bfd_target. (line 483) +* bfd_set_arch_info: Architectures. (line 588) +* bfd_set_assert_handler: Error reporting. (line 161) +* bfd_set_default_target: bfd_target. (line 485) * bfd_set_error: Error reporting. (line 57) -* bfd_set_error_handler: Error reporting. (line 111) -* bfd_set_error_program_name: Error reporting. (line 120) +* bfd_set_error_handler: Error reporting. (line 127) +* bfd_set_error_program_name: Error reporting. (line 135) * bfd_set_file_flags: Miscellaneous. (line 45) * bfd_set_format: Formats. (line 67) * bfd_set_gp_size: Miscellaneous. (line 116) * bfd_set_input_error: Error reporting. (line 68) * bfd_set_private_flags: Miscellaneous. (line 174) * bfd_set_reloc: Miscellaneous. (line 33) -* bfd_set_section_contents: section prototypes. (line 239) -* bfd_set_section_flags: section prototypes. (line 162) -* bfd_set_section_size: section prototypes. (line 224) +* bfd_set_section_contents: section prototypes. (line 231) +* bfd_set_section_flags: section prototypes. (line 154) +* bfd_set_section_size: section prototypes. (line 216) * bfd_set_start_address: Miscellaneous. (line 95) * bfd_set_symtab: symbol handling functions. (line 63) * bfd_symbol_info: symbol handling functions. (line 135) -* bfd_target_list: bfd_target. (line 535) +* bfd_target_list: bfd_target. (line 537) * bfd_update_compression_header: Miscellaneous. (line 350) * bfd_write_bigendian_4byte_int: Internal. (line 12) * bfd_zalloc: Opening and Closing. @@ -14042,7 +14071,7 @@ (line 266) * check_build_id_file: Opening and Closing. (line 491) -* coff_symbol_type: coff. (line 244) +* coff_symbol_type: coff. (line 233) * core_file_matches_executable_p: Core Files. (line 38) * find_separate_debug_file: Opening and Closing. (line 365) @@ -14066,76 +14095,76 @@ (line 6) * target vector (_bfd_link_hash_table_create): Creating a Linker Hash Table. (line 6) -* The HOWTO Macro: typedef arelent. (line 290) +* The HOWTO Macro: typedef arelent. (line 288) * what is it?: Overview. (line 6)  Tag Table: -Node: Top1054 -Node: Overview1390 -Node: History2448 -Node: How It Works3393 -Node: What BFD Version 2 Can Do4930 -Node: BFD information loss6247 -Node: Canonical format8788 -Node: BFD front end13165 -Node: typedef bfd13589 -Node: Error reporting26116 -Node: Miscellaneous30839 -Node: Memory Usage49719 -Node: Initialization50950 -Node: Sections51409 -Node: Section Input51892 -Node: Section Output53261 -Node: typedef asection55748 -Node: section prototypes83566 -Node: Symbols94177 -Node: Reading Symbols95780 -Node: Writing Symbols96888 -Node: Mini Symbols98632 -Node: typedef asymbol99606 -Node: symbol handling functions105691 -Node: Archives111066 -Node: Formats115203 -Node: Relocations118154 -Node: typedef arelent118881 -Node: howto manager134986 -Node: Core Files260527 -Node: Targets262565 -Node: bfd_target264540 -Node: Architectures289896 -Node: Opening and Closing320577 -Node: Internal338752 -Node: File Caching345077 -Node: Linker Functions346995 -Node: Creating a Linker Hash Table348669 -Node: Adding Symbols to the Hash Table350408 -Node: Differing file formats351308 -Node: Adding symbols from an object file353033 -Node: Adding symbols from an archive355183 -Node: Performing the Final Link357529 -Node: Information provided by the linker358770 -Node: Relocating the section contents359924 -Node: Writing the symbol table361676 -Node: Hash Tables368342 -Node: Creating and Freeing a Hash Table369540 -Node: Looking Up or Entering a String370790 -Node: Traversing a Hash Table372043 -Node: Deriving a New Hash Table Type372832 -Node: Define the Derived Structures373898 -Node: Write the Derived Creation Routine374979 -Node: Write Other Derived Routines377604 -Node: BFD back ends378919 -Node: What to Put Where379189 -Node: aout379369 -Node: coff385712 -Node: elf414503 -Node: mmo414904 -Node: File layout415774 -Node: Symbol-table421687 -Node: mmo section mapping425450 -Node: GNU Free Documentation License429104 -Node: BFD Index454168 +Node: Top1051 +Node: Overview1387 +Node: History2445 +Node: How It Works3390 +Node: What BFD Version 2 Can Do4927 +Node: BFD information loss6244 +Node: Canonical format8785 +Node: BFD front end13128 +Node: typedef bfd13552 +Node: Error reporting25873 +Node: Miscellaneous31100 +Node: Memory Usage49993 +Node: Initialization51224 +Node: Sections51683 +Node: Section Input52166 +Node: Section Output53360 +Node: typedef asection55847 +Node: section prototypes83451 +Node: Symbols93865 +Node: Reading Symbols95468 +Node: Writing Symbols96576 +Node: Mini Symbols98320 +Node: typedef asymbol99294 +Node: symbol handling functions105379 +Node: Archives110754 +Node: Formats114891 +Node: Relocations117842 +Node: typedef arelent118569 +Node: howto manager134537 +Node: Core Files262511 +Node: Targets264549 +Node: bfd_target266524 +Node: Architectures291990 +Node: Opening and Closing322218 +Node: Internal340393 +Node: File Caching346718 +Node: Linker Functions348636 +Node: Creating a Linker Hash Table350310 +Node: Adding Symbols to the Hash Table352049 +Node: Differing file formats352949 +Node: Adding symbols from an object file354674 +Node: Adding symbols from an archive356824 +Node: Performing the Final Link359170 +Node: Information provided by the linker360411 +Node: Relocating the section contents361565 +Node: Writing the symbol table363317 +Node: Hash Tables370471 +Node: Creating and Freeing a Hash Table371669 +Node: Looking Up or Entering a String372919 +Node: Traversing a Hash Table374172 +Node: Deriving a New Hash Table Type374961 +Node: Define the Derived Structures376027 +Node: Write the Derived Creation Routine377108 +Node: Write Other Derived Routines379733 +Node: BFD back ends381048 +Node: What to Put Where381318 +Node: aout381498 +Node: coff387780 +Node: elf415931 +Node: mmo416332 +Node: File layout417202 +Node: Symbol-table423115 +Node: mmo section mapping426878 +Node: GNU Free Documentation License430532 +Node: BFD Index455596  End Tag Table diff -Nru gdb-8.1/bfd/doc/bfdint.texi gdb-8.2/bfd/doc/bfdint.texi --- gdb-8.1/bfd/doc/bfdint.texi 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/doc/bfdint.texi 2018-09-05 07:27:13.000000000 +0000 @@ -318,7 +318,7 @@ @table @samp @item name The name of the target vector. This is an arbitrary string. This is -how the target vector is named in command line options for tools which +how the target vector is named in command-line options for tools which use BFD, such as the @samp{--oformat} linker option. @item flavour @@ -336,12 +336,6 @@ ECOFF. @item bfd_target_elf_flavour ELF. -@item bfd_target_ieee_flavour -IEEE-695. -@item bfd_target_nlm_flavour -NLM. -@item bfd_target_oasys_flavour -OASYS. @item bfd_target_tekhex_flavour Tektronix hex format. @item bfd_target_srec_flavour @@ -1104,34 +1098,9 @@ and @file{elf64-target.h}, one of which is included by every ELF target. It defines the ELF target vector. -@item freebsd.h -@cindex @file{freebsd.h} -Presumably intended to be included by all FreeBSD targets, but in fact -there is only one such target, @samp{i386-freebsd}. This defines a -function used to set the right magic number for FreeBSD, as well as -various macros, and includes @file{aout-target.h}. - @item netbsd.h @cindex @file{netbsd.h} -Like @file{freebsd.h}, except that there are several files which include -it. - -@item nlm-target.h -@cindex @file{nlm-target.h} -Defines the target vector for a standard NLM target. - -@item nlmcode.h -@cindex @file{nlmcode.h} -Like @file{elfcode.h}, but for NLM targets. This is only included by -@file{nlm32.c} and @file{nlm64.c}, both of which define the macro -@samp{ARCH_SIZE} to an appropriate value. There are no 64 bit NLM -targets anyhow, so this is sort of useless. - -@item nlmswap.h -@cindex @file{nlmswap.h} -Like @file{coffswap.h}, but for NLM targets. This is included by each -NLM target, but I think it winds up compiling to the exact same code for -every target, and as such is fairly useless. +Used by all netbsd aout targets. Several other files include it. @item peicode.h @cindex @file{peicode.h} @@ -1186,8 +1155,7 @@ In general, relocations can be arbitrarily complex. For example, relocations used in dynamic linking systems often require the linker to allocate space in a different section and use the offset within that -section as the value to store. In the IEEE object file format, -relocations may involve arbitrary expressions. +section as the value to store. When doing a relocatable link, the linker may or may not have to do anything with a relocation, depending upon the definition of the @@ -1826,11 +1794,6 @@ Load Memory Address. This is the address at which a section will be loaded. Compare with VMA, below. -@item NLM -NetWare Loadable Module. Used to describe the format of an object which -be loaded into NetWare, which is some kind of PC based network server -program. - @item object file A binary file including machine instructions, symbols, and relocation information. Normally produced by an assembler. diff -Nru gdb-8.1/bfd/doc/bfdsumm.texi gdb-8.2/bfd/doc/bfdsumm.texi --- gdb-8.1/bfd/doc/bfdsumm.texi 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/doc/bfdsumm.texi 2018-09-05 07:27:13.000000000 +0000 @@ -115,12 +115,12 @@ functions and to global, static, and common variables. Some symbol information is not worth retaining; in @code{a.out}, type information is stored in the symbol table as long symbol names. This information would -be useless to most COFF debuggers; the linker has command line switches +be useless to most COFF debuggers; the linker has command-line switches to allow users to throw it away. There is one word of type information within the symbol, so if the format supports symbol type information within symbols (for example, COFF, -IEEE, Oasys) and the type is simple enough to fit within one word +Oasys) and the type is simple enough to fit within one word (nearly everything but aggregates), the information will be preserved. @item relocation level @@ -146,5 +146,5 @@ function whose line number is being described. The rest of the list is made up of pairs: offsets into the section and line numbers. Any format which can simply derive this information can pass it successfully -between formats (COFF, IEEE and Oasys). +between formats. @end table diff -Nru gdb-8.1/bfd/doc/bfd.texi gdb-8.2/bfd/doc/bfd.texi --- gdb-8.1/bfd/doc/bfd.texi 1970-01-01 00:00:00.000000000 +0000 +++ gdb-8.2/bfd/doc/bfd.texi 2018-09-05 07:27:13.000000000 +0000 @@ -0,0 +1,339 @@ +\input texinfo.tex +@setfilename bfd.info +@c Copyright (C) 1988-2018 Free Software Foundation, Inc. +@c +@synindex fn cp + +@ifnottex +@dircategory Software development +@direntry +* Bfd: (bfd). The Binary File Descriptor library. +@end direntry +@end ifnottex + +@copying +This file documents the BFD library. + +Copyright @copyright{} 1991-2018 Free Software Foundation, Inc. + +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.3 or +any later version published by the Free Software Foundation; with the +Invariant Sections being ``GNU General Public License'' and ``Funding +Free Software'', the Front-Cover texts being (a) (see below), and with +the Back-Cover Texts being (b) (see below). A copy of the license is +included in the section entitled ``GNU Free Documentation License''. + +(a) The FSF's Front-Cover Text is: + + A GNU Manual + +(b) The FSF's Back-Cover Text is: + + You have freedom to copy and modify this GNU Manual, like GNU + software. Copies published by the Free Software Foundation raise + funds for GNU development. +@end copying +@iftex +@c@finalout +@setchapternewpage on +@c@setchapternewpage odd +@settitle LIB BFD, the Binary File Descriptor Library +@titlepage +@title{libbfd} +@subtitle{The Binary File Descriptor Library} +@sp 1 +@subtitle First Edition---BFD version < 3.0 % Since no product is stable before version 3.0 :-) +@subtitle Original Document Created: April 1991 +@author {Steve Chamberlain} +@author {Cygnus Support} +@page + +@tex +\def\$#1${{#1}} % Kluge: collect RCS revision info without $...$ +\xdef\manvers{1.5} % For use in headers, footers too +{\parskip=0pt +\hfill Free Software Foundation\par +\hfill sac\@www.gnu.org\par +\hfill {\it BFD}, \manvers\par +\hfill \TeX{}info \texinfoversion\par +} +\global\parindent=0pt % Steve likes it this way +@end tex + +@vskip 0pt plus 1filll +Copyright @copyright{} 1991-2018 Free Software Foundation, Inc. + + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.3 + or any later version published by the Free Software Foundation; + with no Invariant Sections, with no Front-Cover Texts, and with no + Back-Cover Texts. A copy of the license is included in the + section entitled ``GNU Free Documentation License''. + +@end titlepage +@end iftex +@contents + +@node Top, Overview, (dir), (dir) +@ifinfo +This file documents the binary file descriptor library libbfd. +@end ifinfo + +@menu +* Overview:: Overview of BFD +* BFD front end:: BFD front end +* BFD back ends:: BFD back ends +* GNU Free Documentation License:: GNU Free Documentation License +* BFD Index:: BFD Index +@end menu + +@node Overview, BFD front end, Top, Top +@chapter Introduction +@cindex BFD +@cindex what is it? +BFD is a package which allows applications to use the +same routines to operate on object files whatever the object file +format. A new object file format can be supported simply by +creating a new BFD back end and adding it to the library. + +BFD is split into two parts: the front end, and the back ends (one for +each object file format). +@itemize @bullet +@item The front end of BFD provides the interface to the user. It manages +memory and various canonical data structures. The front end also +decides which back end to use and when to call back end routines. +@item The back ends provide BFD its view of the real world. Each back +end provides a set of calls which the BFD front end can use to maintain +its canonical form. The back ends also may keep around information for +their own use, for greater efficiency. +@end itemize +@menu +* History:: History +* How It Works:: How It Works +* What BFD Version 2 Can Do:: What BFD Version 2 Can Do +@end menu + +@node History, How It Works, Overview, Overview +@section History + +One spur behind BFD was the desire, on the part of the GNU 960 team at +Intel Oregon, for interoperability of applications on their COFF and +b.out file formats. Cygnus was providing GNU support for the team, and +was contracted to provide the required functionality. + +The name came from a conversation David Wallace was having with Richard +Stallman about the library: RMS said that it would be quite hard---David +said ``BFD''. Stallman was right, but the name stuck. + +At the same time, Ready Systems wanted much the same thing, but for +different object file formats: IEEE-695, Oasys, Srecords, a.out and 68k +coff. + +BFD was first implemented by members of Cygnus Support; Steve +Chamberlain (@code{sac@@cygnus.com}), John Gilmore +(@code{gnu@@cygnus.com}), K. Richard Pixley (@code{rich@@cygnus.com}) +and David Henkel-Wallace (@code{gumby@@cygnus.com}). + + + +@node How It Works, What BFD Version 2 Can Do, History, Overview +@section How To Use BFD + +To use the library, include @file{bfd.h} and link with @file{libbfd.a}. + +BFD provides a common interface to the parts of an object file +for a calling application. + +When an application successfully opens a target file (object, archive, or +whatever), a pointer to an internal structure is returned. This pointer +points to a structure called @code{bfd}, described in +@file{bfd.h}. Our convention is to call this pointer a BFD, and +instances of it within code @code{abfd}. All operations on +the target object file are applied as methods to the BFD. The mapping is +defined within @code{bfd.h} in a set of macros, all beginning +with @samp{bfd_} to reduce namespace pollution. + +For example, this sequence does what you would probably expect: +return the number of sections in an object file attached to a BFD +@code{abfd}. + +@example +@c @cartouche +#include "bfd.h" + +unsigned int number_of_sections (abfd) +bfd *abfd; +@{ + return bfd_count_sections (abfd); +@} +@c @end cartouche +@end example + +The abstraction used within BFD is that an object file has: + +@itemize @bullet +@item +a header, +@item +a number of sections containing raw data (@pxref{Sections}), +@item +a set of relocations (@pxref{Relocations}), and +@item +some symbol information (@pxref{Symbols}). +@end itemize +@noindent +Also, BFDs opened for archives have the additional attribute of an index +and contain subordinate BFDs. This approach is fine for a.out and coff, +but loses efficiency when applied to formats such as S-records and +IEEE-695. + +@node What BFD Version 2 Can Do, , How It Works, Overview +@section What BFD Version 2 Can Do +@include bfdsumm.texi + +@node BFD front end, BFD back ends, Overview, Top +@chapter BFD Front End + +@menu +* typedef bfd:: +* Error reporting:: +* Miscellaneous:: +* Memory Usage:: +* Initialization:: +* Sections:: +* Symbols:: +* Archives:: +* Formats:: +* Relocations:: +* Core Files:: +* Targets:: +* Architectures:: +* Opening and Closing:: +* Internal:: +* File Caching:: +* Linker Functions:: +* Hash Tables:: +@end menu + +@include bfdt.texi +@include bfdio.texi + +@node Memory Usage, Initialization, Miscellaneous, BFD front end +@section Memory Usage +BFD keeps all of its internal structures in obstacks. There is one obstack +per open BFD file, into which the current state is stored. When a BFD is +closed, the obstack is deleted, and so everything which has been +allocated by BFD for the closing file is thrown away. + +BFD does not free anything created by an application, but pointers into +@code{bfd} structures become invalid on a @code{bfd_close}; for example, +after a @code{bfd_close} the vector passed to +@code{bfd_canonicalize_symtab} is still around, since it has been +allocated by the application, but the data that it pointed to are +lost. + +The general rule is to not close a BFD until all operations dependent +upon data from the BFD have been completed, or all the data from within +the file has been copied. To help with the management of memory, there +is a function (@code{bfd_alloc_size}) which returns the number of bytes +in obstacks associated with the supplied BFD. This could be used to +select the greediest open BFD, close it to reclaim the memory, perform +some operation and reopen the BFD again, to get a fresh copy of the data +structures. + +@node Initialization, Sections, Memory Usage, BFD front end +@include init.texi + +@node Sections, Symbols, Initialization, BFD front end +@include section.texi + +@node Symbols, Archives, Sections, BFD front end +@include syms.texi + +@node Archives, Formats, Symbols, BFD front end +@include archive.texi + +@node Formats, Relocations, Archives, BFD front end +@include format.texi + +@node Relocations, Core Files, Formats, BFD front end +@include reloc.texi + +@node Core Files, Targets, Relocations, BFD front end +@include core.texi + +@node Targets, Architectures, Core Files, BFD front end +@include targets.texi + +@node Architectures, Opening and Closing, Targets, BFD front end +@include archures.texi + +@node Opening and Closing, Internal, Architectures, BFD front end +@include opncls.texi + +@node Internal, File Caching, Opening and Closing, BFD front end +@include libbfd.texi + +@node File Caching, Linker Functions, Internal, BFD front end +@include cache.texi + +@node Linker Functions, Hash Tables, File Caching, BFD front end +@include linker.texi + +@node Hash Tables, , Linker Functions, BFD front end +@include hash.texi + +@node BFD back ends, GNU Free Documentation License, BFD front end, Top +@chapter BFD back ends +@menu +* What to Put Where:: +* aout :: a.out backends +* coff :: coff backends +* elf :: elf backends +* mmo :: mmo backend +@ignore +* srecord :: s-record backend +@end ignore +@end menu +@node What to Put Where, aout, BFD back ends, BFD back ends +@section What to Put Where +All of BFD lives in one directory. + +@node aout, coff, What to Put Where, BFD back ends +@include aoutx.texi + +@node coff, elf, aout, BFD back ends +@include coffcode.texi + +@node elf, mmo, coff, BFD back ends +@include elf.texi +@c Leave this out until the file has some actual contents... +@c @include elfcode.texi + +@node mmo, , elf, BFD back ends +@include mmo.texi + +@node GNU Free Documentation License, BFD Index, BFD back ends, Top +@include fdl.texi + +@node BFD Index, , GNU Free Documentation License, Top +@unnumbered BFD Index +@printindex cp + +@tex +% I think something like @@colophon should be in texinfo. In the +% meantime: +\long\def\colophon{\hbox to0pt{}\vfill +\centerline{The body of this manual is set in} +\centerline{\fontname\tenrm,} +\centerline{with headings in {\bf\fontname\tenbf}} +\centerline{and examples in {\tt\fontname\tentt}.} +\centerline{{\it\fontname\tenit\/} and} +\centerline{{\sl\fontname\tensl\/}} +\centerline{are used for emphasis.}\vfill} +\page\colophon +% Blame: doc@@cygnus.com, 28mar91. +@end tex + +@bye diff -Nru gdb-8.1/bfd/doc/bfd.texinfo gdb-8.2/bfd/doc/bfd.texinfo --- gdb-8.1/bfd/doc/bfd.texinfo 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/doc/bfd.texinfo 1970-01-01 00:00:00.000000000 +0000 @@ -1,341 +0,0 @@ -\input texinfo.tex -@setfilename bfd.info -@c Copyright (C) 1988-2018 Free Software Foundation, Inc. -@c -@synindex fn cp - -@ifnottex -@dircategory Software development -@direntry -* Bfd: (bfd). The Binary File Descriptor library. -@end direntry -@end ifnottex - -@copying -This file documents the BFD library. - -Copyright @copyright{} 1991-2018 Free Software Foundation, Inc. - -Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.3 or -any later version published by the Free Software Foundation; with the -Invariant Sections being ``GNU General Public License'' and ``Funding -Free Software'', the Front-Cover texts being (a) (see below), and with -the Back-Cover Texts being (b) (see below). A copy of the license is -included in the section entitled ``GNU Free Documentation License''. - -(a) The FSF's Front-Cover Text is: - - A GNU Manual - -(b) The FSF's Back-Cover Text is: - - You have freedom to copy and modify this GNU Manual, like GNU - software. Copies published by the Free Software Foundation raise - funds for GNU development. -@end copying -@iftex -@c@finalout -@setchapternewpage on -@c@setchapternewpage odd -@settitle LIB BFD, the Binary File Descriptor Library -@titlepage -@title{libbfd} -@subtitle{The Binary File Descriptor Library} -@sp 1 -@subtitle First Edition---BFD version < 3.0 % Since no product is stable before version 3.0 :-) -@subtitle Original Document Created: April 1991 -@author {Steve Chamberlain} -@author {Cygnus Support} -@page - -@tex -\def\$#1${{#1}} % Kluge: collect RCS revision info without $...$ -\xdef\manvers{1.5} % For use in headers, footers too -{\parskip=0pt -\hfill Free Software Foundation\par -\hfill sac\@www.gnu.org\par -\hfill {\it BFD}, \manvers\par -\hfill \TeX{}info \texinfoversion\par -} -\global\parindent=0pt % Steve likes it this way -@end tex - -@vskip 0pt plus 1filll -Copyright @copyright{} 1991-2018 Free Software Foundation, Inc. - - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.3 - or any later version published by the Free Software Foundation; - with no Invariant Sections, with no Front-Cover Texts, and with no - Back-Cover Texts. A copy of the license is included in the - section entitled ``GNU Free Documentation License''. - -@end titlepage -@end iftex -@contents - -@node Top, Overview, (dir), (dir) -@ifinfo -This file documents the binary file descriptor library libbfd. -@end ifinfo - -@menu -* Overview:: Overview of BFD -* BFD front end:: BFD front end -* BFD back ends:: BFD back ends -* GNU Free Documentation License:: GNU Free Documentation License -* BFD Index:: BFD Index -@end menu - -@node Overview, BFD front end, Top, Top -@chapter Introduction -@cindex BFD -@cindex what is it? -BFD is a package which allows applications to use the -same routines to operate on object files whatever the object file -format. A new object file format can be supported simply by -creating a new BFD back end and adding it to the library. - -BFD is split into two parts: the front end, and the back ends (one for -each object file format). -@itemize @bullet -@item The front end of BFD provides the interface to the user. It manages -memory and various canonical data structures. The front end also -decides which back end to use and when to call back end routines. -@item The back ends provide BFD its view of the real world. Each back -end provides a set of calls which the BFD front end can use to maintain -its canonical form. The back ends also may keep around information for -their own use, for greater efficiency. -@end itemize -@menu -* History:: History -* How It Works:: How It Works -* What BFD Version 2 Can Do:: What BFD Version 2 Can Do -@end menu - -@node History, How It Works, Overview, Overview -@section History - -One spur behind BFD was the desire, on the part of the GNU 960 team at -Intel Oregon, for interoperability of applications on their COFF and -b.out file formats. Cygnus was providing GNU support for the team, and -was contracted to provide the required functionality. - -The name came from a conversation David Wallace was having with Richard -Stallman about the library: RMS said that it would be quite hard---David -said ``BFD''. Stallman was right, but the name stuck. - -At the same time, Ready Systems wanted much the same thing, but for -different object file formats: IEEE-695, Oasys, Srecords, a.out and 68k -coff. - -BFD was first implemented by members of Cygnus Support; Steve -Chamberlain (@code{sac@@cygnus.com}), John Gilmore -(@code{gnu@@cygnus.com}), K. Richard Pixley (@code{rich@@cygnus.com}) -and David Henkel-Wallace (@code{gumby@@cygnus.com}). - - - -@node How It Works, What BFD Version 2 Can Do, History, Overview -@section How To Use BFD - -To use the library, include @file{bfd.h} and link with @file{libbfd.a}. - -BFD provides a common interface to the parts of an object file -for a calling application. - -When an application successfully opens a target file (object, archive, or -whatever), a pointer to an internal structure is returned. This pointer -points to a structure called @code{bfd}, described in -@file{bfd.h}. Our convention is to call this pointer a BFD, and -instances of it within code @code{abfd}. All operations on -the target object file are applied as methods to the BFD. The mapping is -defined within @code{bfd.h} in a set of macros, all beginning -with @samp{bfd_} to reduce namespace pollution. - -For example, this sequence does what you would probably expect: -return the number of sections in an object file attached to a BFD -@code{abfd}. - -@example -@c @cartouche -#include "bfd.h" - -unsigned int number_of_sections (abfd) -bfd *abfd; -@{ - return bfd_count_sections (abfd); -@} -@c @end cartouche -@end example - -The abstraction used within BFD is that an object file has: - -@itemize @bullet -@item -a header, -@item -a number of sections containing raw data (@pxref{Sections}), -@item -a set of relocations (@pxref{Relocations}), and -@item -some symbol information (@pxref{Symbols}). -@end itemize -@noindent -Also, BFDs opened for archives have the additional attribute of an index -and contain subordinate BFDs. This approach is fine for a.out and coff, -but loses efficiency when applied to formats such as S-records and -IEEE-695. - -@node What BFD Version 2 Can Do, , How It Works, Overview -@section What BFD Version 2 Can Do -@include bfdsumm.texi - -@node BFD front end, BFD back ends, Overview, Top -@chapter BFD Front End - -@menu -* typedef bfd:: -* Error reporting:: -* Miscellaneous:: -* Memory Usage:: -* Initialization:: -* Sections:: -* Symbols:: -* Archives:: -* Formats:: -* Relocations:: -* Core Files:: -* Targets:: -* Architectures:: -* Opening and Closing:: -* Internal:: -* File Caching:: -* Linker Functions:: -* Hash Tables:: -@end menu - -@include bfdt.texi -@include bfdio.texi - -@node Memory Usage, Initialization, Miscellaneous, BFD front end -@section Memory Usage -BFD keeps all of its internal structures in obstacks. There is one obstack -per open BFD file, into which the current state is stored. When a BFD is -closed, the obstack is deleted, and so everything which has been -allocated by BFD for the closing file is thrown away. - -BFD does not free anything created by an application, but pointers into -@code{bfd} structures become invalid on a @code{bfd_close}; for example, -after a @code{bfd_close} the vector passed to -@code{bfd_canonicalize_symtab} is still around, since it has been -allocated by the application, but the data that it pointed to are -lost. - -The general rule is to not close a BFD until all operations dependent -upon data from the BFD have been completed, or all the data from within -the file has been copied. To help with the management of memory, there -is a function (@code{bfd_alloc_size}) which returns the number of bytes -in obstacks associated with the supplied BFD. This could be used to -select the greediest open BFD, close it to reclaim the memory, perform -some operation and reopen the BFD again, to get a fresh copy of the data -structures. - -@node Initialization, Sections, Memory Usage, BFD front end -@include init.texi - -@node Sections, Symbols, Initialization, BFD front end -@include section.texi - -@node Symbols, Archives, Sections, BFD front end -@include syms.texi - -@node Archives, Formats, Symbols, BFD front end -@include archive.texi - -@node Formats, Relocations, Archives, BFD front end -@include format.texi - -@node Relocations, Core Files, Formats, BFD front end -@include reloc.texi - -@node Core Files, Targets, Relocations, BFD front end -@include core.texi - -@node Targets, Architectures, Core Files, BFD front end -@include targets.texi - -@node Architectures, Opening and Closing, Targets, BFD front end -@include archures.texi - -@node Opening and Closing, Internal, Architectures, BFD front end -@include opncls.texi - -@node Internal, File Caching, Opening and Closing, BFD front end -@include libbfd.texi - -@node File Caching, Linker Functions, Internal, BFD front end -@include cache.texi - -@node Linker Functions, Hash Tables, File Caching, BFD front end -@include linker.texi - -@node Hash Tables, , Linker Functions, BFD front end -@include hash.texi - -@node BFD back ends, GNU Free Documentation License, BFD front end, Top -@chapter BFD back ends -@menu -* What to Put Where:: -* aout :: a.out backends -* coff :: coff backends -* elf :: elf backends -* mmo :: mmo backend -@ignore -* oasys :: oasys backends -* ieee :: ieee backend -* srecord :: s-record backend -@end ignore -@end menu -@node What to Put Where, aout, BFD back ends, BFD back ends -@section What to Put Where -All of BFD lives in one directory. - -@node aout, coff, What to Put Where, BFD back ends -@include aoutx.texi - -@node coff, elf, aout, BFD back ends -@include coffcode.texi - -@node elf, mmo, coff, BFD back ends -@include elf.texi -@c Leave this out until the file has some actual contents... -@c @include elfcode.texi - -@node mmo, , elf, BFD back ends -@include mmo.texi - -@node GNU Free Documentation License, BFD Index, BFD back ends, Top -@include fdl.texi - -@node BFD Index, , GNU Free Documentation License, Top -@unnumbered BFD Index -@printindex cp - -@tex -% I think something like @@colophon should be in texinfo. In the -% meantime: -\long\def\colophon{\hbox to0pt{}\vfill -\centerline{The body of this manual is set in} -\centerline{\fontname\tenrm,} -\centerline{with headings in {\bf\fontname\tenbf}} -\centerline{and examples in {\tt\fontname\tentt}.} -\centerline{{\it\fontname\tenit\/} and} -\centerline{{\sl\fontname\tensl\/}} -\centerline{are used for emphasis.}\vfill} -\page\colophon -% Blame: doc@@cygnus.com, 28mar91. -@end tex - -@bye diff -Nru gdb-8.1/bfd/doc/bfdt.texi gdb-8.2/bfd/doc/bfdt.texi --- gdb-8.1/bfd/doc/bfdt.texi 2018-01-31 03:01:19.000000000 +0000 +++ gdb-8.2/bfd/doc/bfdt.texi 2018-09-05 07:46:55.000000000 +0000 @@ -49,8 +49,9 @@ least-recently-used list of BFDs. */ struct bfd *lru_prev, *lru_next; - /* When a file is closed by the caching routines, BFD retains - state information on the file here... */ + /* Track current file position (or current buffer offset for + in-memory BFDs). When a file is closed by the caching routines, + BFD retains state information on the file here. */ ufile_ptr where; /* File modified time, if mtime_set is TRUE. */ @@ -279,21 +280,15 @@ @{ struct aout_data_struct *aout_data; struct artdata *aout_ar_data; - struct _oasys_data *oasys_obj_data; - struct _oasys_ar_data *oasys_ar_data; struct coff_tdata *coff_obj_data; struct pe_tdata *pe_obj_data; struct xcoff_tdata *xcoff_obj_data; struct ecoff_tdata *ecoff_obj_data; - struct ieee_data_struct *ieee_data; - struct ieee_ar_data_struct *ieee_ar_data; struct srec_data_struct *srec_data; struct verilog_data_struct *verilog_data; struct ihex_data_struct *ihex_data; struct tekhex_data_struct *tekhex_data; struct elf_obj_tdata *elf_obj_data; - struct nlm_obj_tdata *nlm_obj_data; - struct bout_data_struct *bout_data; struct mmo_data_struct *mmo_data; struct sun_core_struct *sun_core_data; struct sco5_core_struct *sco5_core_data; @@ -453,6 +448,24 @@ typedef void (*bfd_error_handler_type) (const char *, va_list); @end example +@findex _bfd_error_handler +@subsubsection @code{_bfd_error_handler} +@strong{Synopsis} +@example +void _bfd_error_handler (const char *fmt, ...) ATTRIBUTE_PRINTF_1; +@end example +@strong{Description}@* +This is the default routine to handle BFD error messages. +Like fprintf (stderr, ...), but also handles some extra format +specifiers. + +%pA section name from section. For group components, prints +group name too. +%pB file name from bfd. For archive components, prints +archive too. + +Beware: Only supports a maximum of 9 format arguments. + @findex bfd_set_error_handler @subsubsection @code{bfd_set_error_handler} @strong{Synopsis} @@ -878,7 +891,7 @@ @subsubsection @code{bfd_emul_get_commonpagesize} @strong{Synopsis} @example -bfd_vma bfd_emul_get_commonpagesize (const char *); +bfd_vma bfd_emul_get_commonpagesize (const char *, bfd_boolean); @end example @strong{Description}@* Returns the common page size, in bytes, as determined by diff -Nru gdb-8.1/bfd/doc/bfdver.texi gdb-8.2/bfd/doc/bfdver.texi --- gdb-8.1/bfd/doc/bfdver.texi 2018-01-31 03:01:19.000000000 +0000 +++ gdb-8.2/bfd/doc/bfdver.texi 2018-09-05 07:46:56.000000000 +0000 @@ -1,4 +1,4 @@ -@set VERSION 2.29.51 +@set VERSION 2.31.51 @set VERSION_PACKAGE (GNU Binutils) -@set UPDATED January 2018 +@set UPDATED September 2018 @set BUGURL @uref{http://www.sourceware.org/bugzilla/} diff -Nru gdb-8.1/bfd/doc/coffcode.texi gdb-8.2/bfd/doc/coffcode.texi --- gdb-8.1/bfd/doc/coffcode.texi 2018-01-31 03:01:19.000000000 +0000 +++ gdb-8.2/bfd/doc/coffcode.texi 2018-09-05 07:46:55.000000000 +0000 @@ -6,19 +6,14 @@ Coff in all its varieties is implemented with a few common files and a number of implementation specific files. For -example, The 88k bcs coff format is implemented in the file -@file{coff-m88k.c}. This file @code{#include}s -@file{coff/m88k.h} which defines the external structure of the -coff format for the 88k, and @file{coff/internal.h} which -defines the internal structure. @file{coff-m88k.c} also -defines the relocations used by the 88k format +example, the i386 coff format is implemented in the file +@file{coff-i386.c}. This file @code{#include}s +@file{coff/i386.h} which defines the external structure of the +coff format for the i386, and @file{coff/internal.h} which +defines the internal structure. @file{coff-i386.c} also +defines the relocations used by the i386 coff format @xref{Relocations}. -The Intel i960 processor version of coff is implemented in -@file{coff-i960.c}. This file has the same structure as -@file{coff-m88k.c}, except that it includes @file{coff/i960.h} -rather than @file{coff-m88k.h}. - @subsection Porting to a new version of coff The recommended method is to select from the existing implementations the version of coff which is most like the one @@ -67,15 +62,6 @@ Some of the Coff targets then also have additional routines in the target source file itself. -For example, @file{coff-i960.c} includes -@file{coff/internal.h} and @file{coff/i960.h}. It then -defines a few constants, such as @code{I960}, and includes -@file{coffcode.h}. Since the i960 has complex relocation -types, @file{coff-i960.c} also includes some code to -manipulate the i960 relocs. This code is not in -@file{coffcode.h} because it would not be used by any other -target. - @subsubsection Coff long section names In the standard Coff object format, section names are limited to the eight bytes available in the @code{s_name} field of the @@ -689,8 +675,7 @@ @item The reloc index is turned into a pointer to a howto structure, in a back end specific way. For instance, the 386 -and 960 use the @code{r_type} to directly produce an index -into a howto table vector; the 88k subtracts a number from the -@code{r_type} field and creates an addend field. +uses the @code{r_type} to directly produce an index +into a howto table vector. @end itemize diff -Nru gdb-8.1/bfd/doc/linker.texi gdb-8.2/bfd/doc/linker.texi --- gdb-8.1/bfd/doc/linker.texi 2018-01-31 03:01:19.000000000 +0000 +++ gdb-8.2/bfd/doc/linker.texi 2018-09-05 07:46:55.000000000 +0000 @@ -393,6 +393,24 @@ @end example +@findex _bfd_generic_link_hide_symbol +@subsubsection @code{_bfd_generic_link_hide_symbol} +@strong{Synopsis} +@example +void _bfd_generic_link_hide_symbol + (bfd *output_bfd, struct bfd_link_info *info, + struct bfd_link_hash_entry *h); +@end example +@strong{Description}@* +Hide symbol @var{h}. +This is an internal function. It should not be called from +outside the BFD library. +@example +#define bfd_link_hide_symbol(output_bfd, info, h) \ + BFD_SEND (output_bfd, _bfd_link_hide_symbol, (output_bfd, info, h)) + +@end example + @findex bfd_generic_define_start_stop @subsubsection @code{bfd_generic_define_start_stop} @strong{Synopsis} diff -Nru gdb-8.1/bfd/doc/Makefile.am gdb-8.2/bfd/doc/Makefile.am --- gdb-8.1/bfd/doc/Makefile.am 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/doc/Makefile.am 2018-09-05 07:27:13.000000000 +0000 @@ -17,7 +17,7 @@ # . # -AUTOMAKE_OPTIONS = 1.9 cygnus +AUTOMAKE_OPTIONS = info-in-builddir no-texinfo.tex foreign DOCFILES = aoutx.texi archive.texi archures.texi \ bfdt.texi cache.texi coffcode.texi \ @@ -68,7 +68,7 @@ TEXIDIR = $(srcdir)/../../texinfo/fsf -info_TEXINFOS = bfd.texinfo +info_TEXINFOS = bfd.texi bfd_TEXINFOS = $(DOCFILES) bfdsumm.texi MKDOC = chew$(EXEEXT_FOR_BUILD) @@ -116,7 +116,7 @@ touch $@ # We use bfdt.texi, rather than bfd.texi, to avoid conflicting with -# bfd.texinfo on an 8.3 filesystem. +# bfd.texi on an 8.3 filesystem. bfdt.texi: bfdt.stamp ; @true bfdt.stamp: $(srcdir)/../bfd.c $(srcdir)/doc.str $(MKDOC) ./$(MKDOC) -f $(srcdir)/doc.str < $(srcdir)/../bfd.c >bfd.tmp @@ -277,6 +277,7 @@ echo "#ifdef __cplusplus" >> $@ echo "}" >> $@ echo "#endif" >> $@ + echo "#endif" >> $@ LIBCOFF_H_DEP = \ $(srcdir)/../libcoff-in.h \ @@ -299,6 +300,7 @@ echo "#ifdef __cplusplus" >> $@ echo "}" >> $@ echo "#endif" >> $@ + echo "#endif" >> $@ BFD_H_DEP = \ $(srcdir)/../bfd-in.h \ @@ -366,10 +368,3 @@ install: install-info MAINTAINERCLEANFILES += bfd.info - -# Automake 1.9 will only build info files in the objdir if they are -# mentioned in DISTCLEANFILES. It doesn't have to be unconditional, -# though, so we use a bogus condition. -if GENINSRC_NEVER -DISTCLEANFILES += bfd.info -endif diff -Nru gdb-8.1/bfd/doc/Makefile.in gdb-8.2/bfd/doc/Makefile.in --- gdb-8.1/bfd/doc/Makefile.in 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/doc/Makefile.in 2018-09-05 07:27:13.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2017 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. @@ -33,23 +32,61 @@ # . # VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -69,14 +106,7 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ - -# Automake 1.9 will only build info files in the objdir if they are -# mentioned in DISTCLEANFILES. It doesn't have to be unconditional, -# though, so we use a bogus condition. -@GENINSRC_NEVER_TRUE@am__append_1 = bfd.info subdir = doc -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(bfd_TEXINFOS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/depstand.m4 \ @@ -97,26 +127,61 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -depcomp = -am__depfiles_maybe = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = SOURCES = +DIST_SOURCES = +AM_V_DVIPS = $(am__v_DVIPS_@AM_V@) +am__v_DVIPS_ = $(am__v_DVIPS_@AM_DEFAULT_V@) +am__v_DVIPS_0 = @echo " DVIPS " $@; +am__v_DVIPS_1 = +AM_V_MAKEINFO = $(am__v_MAKEINFO_@AM_V@) +am__v_MAKEINFO_ = $(am__v_MAKEINFO_@AM_DEFAULT_V@) +am__v_MAKEINFO_0 = @echo " MAKEINFO" $@; +am__v_MAKEINFO_1 = +AM_V_INFOHTML = $(am__v_INFOHTML_@AM_V@) +am__v_INFOHTML_ = $(am__v_INFOHTML_@AM_DEFAULT_V@) +am__v_INFOHTML_0 = @echo " INFOHTML" $@; +am__v_INFOHTML_1 = +AM_V_TEXI2DVI = $(am__v_TEXI2DVI_@AM_V@) +am__v_TEXI2DVI_ = $(am__v_TEXI2DVI_@AM_DEFAULT_V@) +am__v_TEXI2DVI_0 = @echo " TEXI2DVI" $@; +am__v_TEXI2DVI_1 = +AM_V_TEXI2PDF = $(am__v_TEXI2PDF_@AM_V@) +am__v_TEXI2PDF_ = $(am__v_TEXI2PDF_@AM_DEFAULT_V@) +am__v_TEXI2PDF_0 = @echo " TEXI2PDF" $@; +am__v_TEXI2PDF_1 = +AM_V_texinfo = $(am__v_texinfo_@AM_V@) +am__v_texinfo_ = $(am__v_texinfo_@AM_DEFAULT_V@) +am__v_texinfo_0 = -q +am__v_texinfo_1 = +AM_V_texidevnull = $(am__v_texidevnull_@AM_V@) +am__v_texidevnull_ = $(am__v_texidevnull_@AM_DEFAULT_V@) +am__v_texidevnull_0 = > /dev/null +am__v_texidevnull_1 = INFO_DEPS = bfd.info -TEXINFO_TEX = $(top_srcdir)/../texinfo/texinfo.tex -am__TEXINFO_TEX_DIR = $(top_srcdir)/../texinfo +am__TEXINFO_TEX_DIR = $(srcdir) DVIS = bfd.dvi PDFS = bfd.pdf PSS = bfd.ps HTMLS = bfd.html -TEXINFOS = bfd.texinfo -TEXI2DVI = `if test -f $(top_srcdir)/../texinfo/util/texi2dvi; then \ - echo $(top_srcdir)/../texinfo/util/texi2dvi; \ - else \ - echo texi2dvi; \ - fi` +TEXINFOS = bfd.texi +TEXI2DVI = texi2dvi TEXI2PDF = $(TEXI2DVI) --pdf --batch MAKEINFOHTML = $(MAKEINFO) --html AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS) @@ -126,6 +191,7 @@ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__installdirs = "$(DESTDIR)$(infodir)" am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -153,8 +219,13 @@ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(bfd_TEXINFOS) $(srcdir)/Makefile.in \ + $(top_srcdir)/../mkinstalldirs +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -322,7 +393,7 @@ wordsize = @wordsize@ zlibdir = @zlibdir@ zlibinc = @zlibinc@ -AUTOMAKE_OPTIONS = 1.9 cygnus +AUTOMAKE_OPTIONS = info-in-builddir no-texinfo.tex foreign DOCFILES = aoutx.texi archive.texi archures.texi \ bfdt.texi cache.texi coffcode.texi \ core.texi elf.texi elfcode.texi format.texi \ @@ -371,7 +442,7 @@ $(srcdir)/../init.c TEXIDIR = $(srcdir)/../../texinfo/fsf -info_TEXINFOS = bfd.texinfo +info_TEXINFOS = bfd.texi bfd_TEXINFOS = $(DOCFILES) bfdsumm.texi MKDOC = chew$(EXEEXT_FOR_BUILD) AM_CPPFLAGS = -I.. -I$(srcdir)/.. -I$(srcdir)/../../include \ @@ -424,8 +495,7 @@ noinst_TEXINFOS = bfdint.texi MOSTLYCLEANFILES = $(MKDOC) *.o *.stamp CLEANFILES = *.p *.ip -DISTCLEANFILES = bfd.?? bfd.??? bfd.h libbfd.h libcoff.h texput.log \ - $(am__append_1) +DISTCLEANFILES = bfd.?? bfd.??? bfd.h libbfd.h libcoff.h texput.log MAINTAINERCLEANFILES = $(DOCFILES) bfd.info all: all-am @@ -443,7 +513,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign doc/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -468,8 +537,8 @@ clean-libtool: -rm -rf .libs _libs -bfd.info: bfd.texinfo $(bfd_TEXINFOS) - restore=: && backupdir="$(am__leading_dot)am$$$$" && \ +bfd.info: bfd.texi $(bfd_TEXINFOS) + $(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \ rm -rf $$backupdir && mkdir $$backupdir && \ if ($(MAKEINFO) --version) >/dev/null 2>&1; then \ for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \ @@ -477,7 +546,7 @@ done; \ else :; fi && \ if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ - -o $@ `test -f 'bfd.texinfo' || echo '$(srcdir)/'`bfd.texinfo; \ + -o $@ `test -f 'bfd.texi' || echo '$(srcdir)/'`bfd.texi; \ then \ rc=0; \ else \ @@ -486,32 +555,30 @@ fi; \ rm -rf $$backupdir; exit $$rc -bfd.dvi: bfd.texinfo $(bfd_TEXINFOS) - TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ +bfd.dvi: bfd.texi $(bfd_TEXINFOS) + $(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ - $(TEXI2DVI) -o $@ `test -f 'bfd.texinfo' || echo '$(srcdir)/'`bfd.texinfo + $(TEXI2DVI) $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \ + `test -f 'bfd.texi' || echo '$(srcdir)/'`bfd.texi -bfd.pdf: bfd.texinfo $(bfd_TEXINFOS) - TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ +bfd.pdf: bfd.texi $(bfd_TEXINFOS) + $(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ - $(TEXI2PDF) -o $@ `test -f 'bfd.texinfo' || echo '$(srcdir)/'`bfd.texinfo + $(TEXI2PDF) $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \ + `test -f 'bfd.texi' || echo '$(srcdir)/'`bfd.texi -bfd.html: bfd.texinfo $(bfd_TEXINFOS) - rm -rf $(@:.html=.htp) - if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ - -o $(@:.html=.htp) `test -f 'bfd.texinfo' || echo '$(srcdir)/'`bfd.texinfo; \ +bfd.html: bfd.texi $(bfd_TEXINFOS) + $(AM_V_MAKEINFO)rm -rf $(@:.html=.htp) + $(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ + -o $(@:.html=.htp) `test -f 'bfd.texi' || echo '$(srcdir)/'`bfd.texi; \ then \ - rm -rf $@; \ - if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ - mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \ + rm -rf $@ && mv $(@:.html=.htp) $@; \ else \ - if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ - rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \ - exit 1; \ + rm -rf $(@:.html=.htp); exit 1; \ fi .dvi.ps: - TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ - $(DVIPS) -o $@ $< + $(AM_V_DVIPS)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ + $(DVIPS) $(AM_V_texinfo) -o $@ $< uninstall-dvi-am: @$(NORMAL_UNINSTALL) @@ -590,8 +657,7 @@ done mostlyclean-aminfo: - -rm -rf bfd.aux bfd.cp bfd.cps bfd.fn bfd.ky bfd.kys bfd.log bfd.pg bfd.pgs \ - bfd.tmp bfd.toc bfd.tp bfd.tps bfd.vr bfd.vrs + -rm -rf bfd.t2d bfd.t2p clean-aminfo: -test -z "bfd.dvi bfd.pdf bfd.ps bfd.html" \ @@ -603,18 +669,53 @@ echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \ rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \ done +tags TAGS: + +ctags CTAGS: -clean-info: mostlyclean-aminfo clean-aminfo -tags: TAGS -TAGS: +cscope cscopelist: -ctags: CTAGS -CTAGS: -check-am: +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-info +check-am: all-am check: check-am -all-am: Makefile +all-am: Makefile $(INFO_DEPS) installdirs: + for dir in "$(DESTDIR)$(infodir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am @@ -668,7 +769,7 @@ info-am: $(INFO_DEPS) -install-data-am: +install-data-am: install-info-am install-dvi: install-dvi-am @@ -811,18 +912,21 @@ .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-aminfo clean-generic \ - clean-info clean-libtool dist-info distclean distclean-generic \ - distclean-libtool dvi dvi-am html html-am info info-am install \ - install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-aminfo \ - maintainer-clean-generic mostlyclean mostlyclean-aminfo \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - uninstall uninstall-am uninstall-dvi-am uninstall-html-am \ - uninstall-info-am uninstall-pdf-am uninstall-ps-am + clean-libtool cscopelist-am ctags-am dist-info distclean \ + distclean-generic distclean-libtool distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-aminfo maintainer-clean-generic mostlyclean \ + mostlyclean-aminfo mostlyclean-generic mostlyclean-libtool pdf \ + pdf-am ps ps-am tags-am uninstall uninstall-am \ + uninstall-dvi-am uninstall-html-am uninstall-info-am \ + uninstall-pdf-am uninstall-ps-am + +.PRECIOUS: Makefile $(MKDOC): chew.stamp ; @true @@ -865,7 +969,7 @@ touch $@ # We use bfdt.texi, rather than bfd.texi, to avoid conflicting with -# bfd.texinfo on an 8.3 filesystem. +# bfd.texi on an 8.3 filesystem. bfdt.texi: bfdt.stamp ; @true bfdt.stamp: $(srcdir)/../bfd.c $(srcdir)/doc.str $(MKDOC) ./$(MKDOC) -f $(srcdir)/doc.str < $(srcdir)/../bfd.c >bfd.tmp @@ -1013,6 +1117,7 @@ echo "#ifdef __cplusplus" >> $@ echo "}" >> $@ echo "#endif" >> $@ + echo "#endif" >> $@ libcoff.h: $(LIBCOFF_H_DEP) echo "$(LIBCOFF_H_DEP)" | sed -f $(srcdir)/header.sed > $@ @@ -1028,6 +1133,7 @@ echo "#ifdef __cplusplus" >> $@ echo "}" >> $@ echo "#endif" >> $@ + echo "#endif" >> $@ bfd.h: $(BFD_H_DEP) echo "$(BFD_H_DEP)" | sed -f $(srcdir)/header.sed > $@ diff -Nru gdb-8.1/bfd/doc/reloc.texi gdb-8.2/bfd/doc/reloc.texi --- gdb-8.1/bfd/doc/reloc.texi 2018-01-31 03:01:19.000000000 +0000 +++ gdb-8.2/bfd/doc/reloc.texi 2018-09-05 07:46:55.000000000 +0000 @@ -49,10 +49,9 @@ /* The symbol to relocate against was undefined. */ bfd_reloc_undefined, - /* The relocation was performed, but may not be ok - presently - generated only when linking i960 coff files with i960 b.out - symbols. If this type is returned, the error_message argument - to bfd_perform_relocation will be set. */ + /* The relocation was performed, but may not be ok. If this type is + returned, the error_message argument to bfd_perform_relocation + will be set. */ bfd_reloc_dangerous @} bfd_reloc_status_type; @@ -295,8 +294,7 @@ /* If this field is non null, then the supplied function is called rather than the normal function. This allows really - strange relocation methods to be accommodated (e.g., i960 callj - instructions). */ + strange relocation methods to be accommodated. */ bfd_reloc_status_type (*special_function) (bfd *, arelent *, struct bfd_symbol *, void *, asection *, bfd *, char **); @@ -340,7 +338,7 @@ slot of the instruction, so that a PC relative relocation can be made just by adding in an ordinary offset (e.g., sun3 a.out). Some formats leave the displacement part of an instruction - empty (e.g., m88k bcs); this flag signals the fact. */ + empty (e.g., ELF); this flag signals the fact. */ bfd_boolean pcrel_offset; @}; @@ -536,8 +534,6 @@ PC-relative relocations. Sometimes these are relative to the address of the relocation itself; sometimes they are relative to the start of the section containing the relocation. It depends on the specific target. - -The 24-bit relocation is used in some Intel 960 configurations. @end deffn @deffn {} BFD_RELOC_32_SECREL Section relative relocations. Some targets need this for DWARF2. @@ -623,9 +619,6 @@ handled specially, because the value the register will have is decided relatively late. @end deffn -@deffn {} BFD_RELOC_I960_CALLJ -Reloc types used for i960/b.out. -@end deffn @deffn {} BFD_RELOC_NONE @deffnx {} BFD_RELOC_SPARC_WDISP22 @deffnx {} BFD_RELOC_SPARC22 @@ -1373,6 +1366,15 @@ @deffnx {} BFD_RELOC_ARM_THUMB_MOVT_PCREL Low and High halfword relocations for MOVW and MOVT instructions. @end deffn +@deffn {} BFD_RELOC_ARM_GOTFUNCDESC +@deffnx {} BFD_RELOC_ARM_GOTOFFFUNCDESC +@deffnx {} BFD_RELOC_ARM_FUNCDESC +@deffnx {} BFD_RELOC_ARM_FUNCDESC_VALUE +@deffnx {} BFD_RELOC_ARM_TLS_GD32_FDPIC +@deffnx {} BFD_RELOC_ARM_TLS_LDM32_FDPIC +@deffnx {} BFD_RELOC_ARM_TLS_IE32_FDPIC +ARM FDPIC specific relocations. +@end deffn @deffn {} BFD_RELOC_ARM_JUMP_SLOT @deffnx {} BFD_RELOC_ARM_GLOB_DAT @deffnx {} BFD_RELOC_ARM_GOT32 @@ -3089,6 +3091,11 @@ This is the 8 bit high part of an absolute address and immediately follows a matching LO8XG part. @end deffn +@deffn {} BFD_RELOC_S12Z_15_PCREL +Freescale S12Z reloc. +This is a 15 bit relative address. If the most significant bits are all zero +then it may be truncated to 8 bits. +@end deffn @deffn {} BFD_RELOC_16C_NUM08 @deffnx {} BFD_RELOC_16C_NUM08_C @deffnx {} BFD_RELOC_16C_NUM16 @@ -3242,40 +3249,6 @@ @deffnx {} BFD_RELOC_CRIS_32_IE Relocs used in TLS code for CRIS. @end deffn -@deffn {} BFD_RELOC_860_COPY -@deffnx {} BFD_RELOC_860_GLOB_DAT -@deffnx {} BFD_RELOC_860_JUMP_SLOT -@deffnx {} BFD_RELOC_860_RELATIVE -@deffnx {} BFD_RELOC_860_PC26 -@deffnx {} BFD_RELOC_860_PLT26 -@deffnx {} BFD_RELOC_860_PC16 -@deffnx {} BFD_RELOC_860_LOW0 -@deffnx {} BFD_RELOC_860_SPLIT0 -@deffnx {} BFD_RELOC_860_LOW1 -@deffnx {} BFD_RELOC_860_SPLIT1 -@deffnx {} BFD_RELOC_860_LOW2 -@deffnx {} BFD_RELOC_860_SPLIT2 -@deffnx {} BFD_RELOC_860_LOW3 -@deffnx {} BFD_RELOC_860_LOGOT0 -@deffnx {} BFD_RELOC_860_SPGOT0 -@deffnx {} BFD_RELOC_860_LOGOT1 -@deffnx {} BFD_RELOC_860_SPGOT1 -@deffnx {} BFD_RELOC_860_LOGOTOFF0 -@deffnx {} BFD_RELOC_860_SPGOTOFF0 -@deffnx {} BFD_RELOC_860_LOGOTOFF1 -@deffnx {} BFD_RELOC_860_SPGOTOFF1 -@deffnx {} BFD_RELOC_860_LOGOTOFF2 -@deffnx {} BFD_RELOC_860_LOGOTOFF3 -@deffnx {} BFD_RELOC_860_LOPC -@deffnx {} BFD_RELOC_860_HIGHADJ -@deffnx {} BFD_RELOC_860_HAGOT -@deffnx {} BFD_RELOC_860_HAGOTOFF -@deffnx {} BFD_RELOC_860_HAPC -@deffnx {} BFD_RELOC_860_HIGH -@deffnx {} BFD_RELOC_860_HIGOT -@deffnx {} BFD_RELOC_860_HIGOTOFF -Intel i860 Relocations. -@end deffn @deffn {} BFD_RELOC_OR1K_REL_26 @deffnx {} BFD_RELOC_OR1K_GOTPC_HI16 @deffnx {} BFD_RELOC_OR1K_GOTPC_LO16 @@ -3614,6 +3587,9 @@ @deffn {} BFD_RELOC_MACH_O_X86_64_PCREL32_4 Same as BFD_RELOC_32_PCREL but with an implicit -4 addend. @end deffn +@deffn {} BFD_RELOC_MACH_O_X86_64_TLV +Used when referencing a TLV entry. +@end deffn @deffn {} BFD_RELOC_MACH_O_ARM64_ADDEND Addend for PAGE or PAGEOFF. @end deffn @@ -3710,6 +3686,16 @@ This is a 64 bit reloc that stores 32-bit thread pointer relative offset to two words (uses imm instruction). @end deffn +@deffn {} BFD_RELOC_MICROBLAZE_64_TEXTPCREL +This is a 64 bit reloc that stores the 32 bit pc relative +value in two words (with an imm instruction). The relocation is +PC-relative offset from start of TEXT. +@end deffn +@deffn {} BFD_RELOC_MICROBLAZE_64_TEXTREL +This is a 64 bit reloc that stores the 32 bit offset +value in two words (with an imm instruction). The relocation is +relative offset from start of TEXT. +@end deffn @deffn {} BFD_RELOC_AARCH64_RELOC_START AArch64 pseudo relocation code to mark the start of the AArch64 relocation enumerators. N.B. the order of the enumerators is @@ -3778,6 +3764,36 @@ of a signed value. Changes instruction to MOVZ or MOVN depending on the value's sign. @end deffn +@deffn {} BFD_RELOC_AARCH64_MOVW_PREL_G0 +AArch64 MOV[NZ] instruction with most significant bits 0 to 15 +of a signed value. Changes instruction to MOVZ or MOVN depending on the +value's sign. +@end deffn +@deffn {} BFD_RELOC_AARCH64_MOVW_PREL_G0_NC +AArch64 MOV[NZ] instruction with most significant bits 0 to 15 +of a signed value. Changes instruction to MOVZ or MOVN depending on the +value's sign. +@end deffn +@deffn {} BFD_RELOC_AARCH64_MOVW_PREL_G1 +AArch64 MOVK instruction with most significant bits 16 to 31 +of a signed value. +@end deffn +@deffn {} BFD_RELOC_AARCH64_MOVW_PREL_G1_NC +AArch64 MOVK instruction with most significant bits 16 to 31 +of a signed value. +@end deffn +@deffn {} BFD_RELOC_AARCH64_MOVW_PREL_G2 +AArch64 MOVK instruction with most significant bits 32 to 47 +of a signed value. +@end deffn +@deffn {} BFD_RELOC_AARCH64_MOVW_PREL_G2_NC +AArch64 MOVK instruction with most significant bits 32 to 47 +of a signed value. +@end deffn +@deffn {} BFD_RELOC_AARCH64_MOVW_PREL_G3 +AArch64 MOVK instruction with most significant bits 47 to 63 +of a signed value. +@end deffn @deffn {} BFD_RELOC_AARCH64_LD_LO19_PCREL AArch64 Load Literal instruction, holding a 19 bit pc-relative word offset. The lowest two bits must be zero and are not stored in the @@ -4005,6 +4021,34 @@ @deffn {} BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC AArch64 TLS LOCAL EXEC relocation. @end deffn +@deffn {} BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12 +bit[11:1] of byte offset to module TLS base address, encoded in ldst +instructions. +@end deffn +@deffn {} BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12_NC +Similar as BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12, but no overflow check. +@end deffn +@deffn {} BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12 +bit[11:2] of byte offset to module TLS base address, encoded in ldst +instructions. +@end deffn +@deffn {} BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12_NC +Similar as BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12, but no overflow check. +@end deffn +@deffn {} BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12 +bit[11:3] of byte offset to module TLS base address, encoded in ldst +instructions. +@end deffn +@deffn {} BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12_NC +Similar as BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12, but no overflow check. +@end deffn +@deffn {} BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12 +bit[11:0] of byte offset to module TLS base address, encoded in ldst +instructions. +@end deffn +@deffn {} BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12_NC +Similar as BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12, but no overflow check. +@end deffn @deffn {} BFD_RELOC_AARCH64_TLSDESC_LD_PREL19 AArch64 TLS DESC relocation. @end deffn @@ -4088,6 +4132,14 @@ @deffn {} BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC Similar as BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12, but no overflow check. @end deffn +@deffn {} BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12 +AArch64 pseudo relocation code for TLS local exec mode. It's to be +used internally by the AArch64 assembler and not (currently) written to +any object files. +@end deffn +@deffn {} BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12_NC +Similar as BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12, but no overflow check. +@end deffn @deffn {} BFD_RELOC_AARCH64_LD_GOT_LO12_NC AArch64 pseudo relocation code to be used internally by the AArch64 assembler and not (currently) written to any object files. diff -Nru gdb-8.1/bfd/doc/section.texi gdb-8.2/bfd/doc/section.texi --- gdb-8.1/bfd/doc/section.texi 2018-01-31 03:01:19.000000000 +0000 +++ gdb-8.2/bfd/doc/section.texi 2018-09-05 07:46:55.000000000 +0000 @@ -38,10 +38,7 @@ data in place until a @code{bfd_get_section_contents} call is made. Other back ends may read in all the data at once. For example, an S-record file has to be read once to determine the -size of the data. An IEEE-695 file doesn't contain raw data in -sections, but data and relocation expressions intermixed, so -the data area has to be parsed to get out the data and -relocations. +size of the data. @node Section Output, typedef asection, Section Input, Sections @subsection Section output @@ -180,13 +177,10 @@ /* The section contains thread local data. */ #define SEC_THREAD_LOCAL 0x400 - /* The section has GOT references. This flag is only for the - linker, and is currently only used by the elf32-hppa back end. - It will be set if global offset table references were detected - in this section, which indicate to the linker that the section - contains PIC code, and must be handled specially when doing a - static link. */ -#define SEC_HAS_GOT_REF 0x800 + /* The section's size is fixed. Generic linker code will not + recalculate it and it is up to whoever has set this flag to + get the size right. */ +#define SEC_FIXED_SIZE 0x800 /* The section contains common symbols (symbols may be defined multiple times, the value of a symbol is the amount of @@ -892,15 +886,6 @@ section named @var{name}. If there is an error, return @code{NULL} and set @code{bfd_error}. -@findex bfd_get_next_section_id -@subsubsection @code{bfd_get_next_section_id} -@strong{Synopsis} -@example -int bfd_get_next_section_id (void); -@end example -@strong{Description}@* -Returns the id that the next section created will have. - @findex bfd_set_section_flags @subsubsection @code{bfd_set_section_flags} @strong{Synopsis} diff -Nru gdb-8.1/bfd/doc/targets.texi gdb-8.2/bfd/doc/targets.texi --- gdb-8.1/bfd/doc/targets.texi 2018-01-31 03:01:19.000000000 +0000 +++ gdb-8.2/bfd/doc/targets.texi 2018-09-05 07:46:55.000000000 +0000 @@ -121,9 +121,6 @@ bfd_target_ecoff_flavour, bfd_target_xcoff_flavour, bfd_target_elf_flavour, - bfd_target_ieee_flavour, - bfd_target_nlm_flavour, - bfd_target_oasys_flavour, bfd_target_tekhex_flavour, bfd_target_srec_flavour, bfd_target_verilog_flavour, @@ -440,6 +437,7 @@ NAME##_bfd_discard_group, \ NAME##_section_already_linked, \ NAME##_bfd_define_common_symbol, \ + NAME##_bfd_link_hide_symbol, \ NAME##_bfd_define_start_stop int (*_bfd_sizeof_headers) (bfd *, struct bfd_link_info *); @@ -506,6 +504,10 @@ bfd_boolean (*_bfd_define_common_symbol) (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *); + /* Hide a symbol. */ + void (*_bfd_link_hide_symbol) (bfd *, struct bfd_link_info *, + struct bfd_link_hash_entry *); + /* Define a __start, __stop, .startof. or .sizeof. symbol. */ struct bfd_link_hash_entry * (*_bfd_define_start_stop) (struct bfd_link_info *, const char *, diff -Nru gdb-8.1/bfd/dwarf1.c gdb-8.2/bfd/dwarf1.c --- gdb-8.1/bfd/dwarf1.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/dwarf1.c 2018-09-05 07:27:13.000000000 +0000 @@ -213,6 +213,7 @@ /* Then the attributes. */ while (xptr + 2 <= aDiePtrEnd) { + unsigned int block_len; unsigned short attr; /* Parse the attribute based on its form. This section @@ -255,12 +256,24 @@ break; case FORM_BLOCK2: if (xptr + 2 <= aDiePtrEnd) - xptr += bfd_get_16 (abfd, xptr); + { + block_len = bfd_get_16 (abfd, xptr); + if (xptr + block_len > aDiePtrEnd + || xptr + block_len < xptr) + return FALSE; + xptr += block_len; + } xptr += 2; break; case FORM_BLOCK4: if (xptr + 4 <= aDiePtrEnd) - xptr += bfd_get_32 (abfd, xptr); + { + block_len = bfd_get_32 (abfd, xptr); + if (xptr + block_len > aDiePtrEnd + || xptr + block_len < xptr) + return FALSE; + xptr += block_len; + } xptr += 4; break; case FORM_STRING: diff -Nru gdb-8.1/bfd/dwarf2.c gdb-8.2/bfd/dwarf2.c --- gdb-8.1/bfd/dwarf2.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/dwarf2.c 2018-09-05 07:44:28.000000000 +0000 @@ -540,7 +540,7 @@ } if (! msec) { - _bfd_error_handler (_("Dwarf Error: Can't find %s section."), + _bfd_error_handler (_("DWARF error: can't find %s section."), sec->uncompressed_name); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -569,9 +569,10 @@ if (offset != 0 && offset >= *section_size) { /* xgettext: c-format */ - _bfd_error_handler (_("Dwarf Error: Offset (%llu)" - " greater than or equal to %s size (%Lu)."), - (long long) offset, section_name, *section_size); + _bfd_error_handler (_("DWARF error: offset (%" PRIu64 ")" + " greater than or equal to %s size (%" PRIu64 ")"), + (uint64_t) offset, section_name, + (uint64_t) *section_size); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -622,14 +623,24 @@ } static bfd_byte * -read_n_bytes (bfd *abfd ATTRIBUTE_UNUSED, - bfd_byte *buf, - bfd_byte *end, - unsigned int size ATTRIBUTE_UNUSED) -{ - if (buf + size > end) - return NULL; - return buf; +read_n_bytes (bfd_byte * buf, + bfd_byte * end, + struct dwarf_block * block) +{ + unsigned int size = block->size; + bfd_byte * block_end = buf + size; + + if (block_end > end || block_end < buf) + { + block->data = NULL; + block->size = 0; + return end; + } + else + { + block->data = buf; + return block_end; + } } /* Scans a NUL terminated string starting at BUF, returning a pointer to it. @@ -1086,7 +1097,7 @@ if (info_ptr >= info_ptr_end && form != DW_FORM_flag_present) { - _bfd_error_handler (_("Dwarf Error: Info pointer extends beyond end of attributes")); + _bfd_error_handler (_("DWARF error: info pointer extends beyond end of attributes")); bfd_set_error (bfd_error_bad_value); return info_ptr; } @@ -1127,8 +1138,7 @@ return NULL; blk->size = read_2_bytes (abfd, info_ptr, info_ptr_end); info_ptr += 2; - blk->data = read_n_bytes (abfd, info_ptr, info_ptr_end, blk->size); - info_ptr += blk->size; + info_ptr = read_n_bytes (info_ptr, info_ptr_end, blk); attr->u.blk = blk; break; case DW_FORM_block4: @@ -1138,8 +1148,7 @@ return NULL; blk->size = read_4_bytes (abfd, info_ptr, info_ptr_end); info_ptr += 4; - blk->data = read_n_bytes (abfd, info_ptr, info_ptr_end, blk->size); - info_ptr += blk->size; + info_ptr = read_n_bytes (info_ptr, info_ptr_end, blk); attr->u.blk = blk; break; case DW_FORM_data2: @@ -1179,8 +1188,7 @@ blk->size = _bfd_safe_read_leb128 (abfd, info_ptr, &bytes_read, FALSE, info_ptr_end); info_ptr += bytes_read; - blk->data = read_n_bytes (abfd, info_ptr, info_ptr_end, blk->size); - info_ptr += blk->size; + info_ptr = read_n_bytes (info_ptr, info_ptr_end, blk); attr->u.blk = blk; break; case DW_FORM_block1: @@ -1190,8 +1198,7 @@ return NULL; blk->size = read_1_byte (abfd, info_ptr, info_ptr_end); info_ptr += 1; - blk->data = read_n_bytes (abfd, info_ptr, info_ptr_end, blk->size); - info_ptr += blk->size; + info_ptr = read_n_bytes (info_ptr, info_ptr_end, blk); attr->u.blk = blk; break; case DW_FORM_data1: @@ -1258,7 +1265,7 @@ attr->u.sval = implicit_const; break; default: - _bfd_error_handler (_("Dwarf Error: Invalid or unhandled FORM value: %#x."), + _bfd_error_handler (_("DWARF error: invalid or unhandled FORM value: %#x"), form); bfd_set_error (bfd_error_bad_value); return NULL; @@ -1559,12 +1566,12 @@ { char *filename; - if (file - 1 >= table->num_files) + if (table == NULL || file - 1 >= table->num_files) { /* FILE == 0 means unknown. */ if (file) _bfd_error_handler - (_("Dwarf Error: mangled line number section (bad file number).")); + (_("DWARF error: mangled line number section (bad file number)")); return strdup (""); } @@ -1909,7 +1916,7 @@ buf += bytes_read; if (format_count == 0 && data_count != 0) { - _bfd_error_handler (_("Dwarf Error: Zero format count.")); + _bfd_error_handler (_("DWARF error: zero format count")); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -1918,8 +1925,9 @@ if we know that we are going to run out of buffer. */ if (data_count > (bfd_vma) (buf_end - buf)) { - _bfd_error_handler (_("Dwarf Error: data count (%Lx) larger than buffer size."), - data_count); + _bfd_error_handler + (_("DWARF error: data count (%" PRIx64 ") larger than buffer size"), + (uint64_t) data_count); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -1959,8 +1967,8 @@ break; default: _bfd_error_handler - (_("Dwarf Error: Unknown format content type %Lu."), - content_type); + (_("DWARF error: unknown format content type %" PRIu64), + (uint64_t) content_type); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -2039,8 +2047,8 @@ if (stash->dwarf_line_size < 16) { _bfd_error_handler - (_("Dwarf Error: Line info section is too small (%Ld)"), - stash->dwarf_line_size); + (_("DWARF error: line info section is too small (%" PRId64 ")"), + (int64_t) stash->dwarf_line_size); bfd_set_error (bfd_error_bad_value); return NULL; } @@ -2069,9 +2077,9 @@ { _bfd_error_handler /* xgettext: c-format */ - (_("Dwarf Error: Line info data is bigger (%#Lx)" + (_("DWARF error: line info data is bigger (%#" PRIx64 ")" " than the space remaining in the section (%#lx)"), - lh.total_length, (unsigned long) (line_end - line_ptr)); + (uint64_t) lh.total_length, (unsigned long) (line_end - line_ptr)); bfd_set_error (bfd_error_bad_value); return NULL; } @@ -2082,7 +2090,7 @@ if (lh.version < 2 || lh.version > 5) { _bfd_error_handler - (_("Dwarf Error: Unhandled .debug_line version %d."), lh.version); + (_("DWARF error: unhandled .debug_line version %d"), lh.version); bfd_set_error (bfd_error_bad_value); return NULL; } @@ -2092,7 +2100,7 @@ >= line_end) { _bfd_error_handler - (_("Dwarf Error: Ran out of room reading prologue")); + (_("DWARF error: ran out of room reading prologue")); bfd_set_error (bfd_error_bad_value); return NULL; } @@ -2110,7 +2118,7 @@ if (segment_selector_size != 0) { _bfd_error_handler - (_("Dwarf Error: Line info unsupported segment selector size %u."), + (_("DWARF error: line info unsupported segment selector size %u"), segment_selector_size); bfd_set_error (bfd_error_bad_value); return NULL; @@ -2137,7 +2145,7 @@ if (lh.maximum_ops_per_insn == 0) { _bfd_error_handler - (_("Dwarf Error: Invalid maximum operations per instruction.")); + (_("DWARF error: invalid maximum operations per instruction")); bfd_set_error (bfd_error_bad_value); return NULL; } @@ -2156,7 +2164,7 @@ if (line_ptr + (lh.opcode_base - 1) >= line_end) { - _bfd_error_handler (_("Dwarf Error: Ran out of room reading opcodes")); + _bfd_error_handler (_("DWARF error: ran out of room reading opcodes")); bfd_set_error (bfd_error_bad_value); return NULL; } @@ -2329,7 +2337,7 @@ break; default: _bfd_error_handler - (_("Dwarf Error: mangled line number section.")); + (_("DWARF error: mangled line number section")); bfd_set_error (bfd_error_bad_value); line_fail: if (filename != NULL) @@ -2788,11 +2796,13 @@ } static bfd_boolean -find_abstract_instance_name (struct comp_unit *unit, - bfd_byte *orig_info_ptr, - struct attribute *attr_ptr, - const char **pname, - bfd_boolean *is_linkage) +find_abstract_instance (struct comp_unit * unit, + bfd_byte * orig_info_ptr, + struct attribute * attr_ptr, + const char ** pname, + bfd_boolean * is_linkage, + char ** filename_ptr, + int * linenumber_ptr) { bfd *abfd = unit->abfd; bfd_byte *info_ptr; @@ -2830,7 +2840,7 @@ if (!die_ref || die_ref >= total) { _bfd_error_handler - (_("Dwarf Error: Invalid abstract instance DIE ref.")); + (_("DWARF error: invalid abstract instance DIE ref")); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -2867,8 +2877,8 @@ if (info_ptr == NULL) { _bfd_error_handler - (_("Dwarf Error: Unable to read alt ref %llu."), - (long long) die_ref); + (_("DWARF error: unable to read alt ref %" PRIu64), + (uint64_t) die_ref); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -2891,7 +2901,7 @@ if (!die_ref || die_ref >= total) { _bfd_error_handler - (_("Dwarf Error: Invalid abstract instance DIE ref.")); + (_("DWARF error: invalid abstract instance DIE ref")); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -2908,7 +2918,7 @@ if (! abbrev) { _bfd_error_handler - (_("Dwarf Error: Could not find abbrev number %u."), abbrev_number); + (_("DWARF error: could not find abbrev number %u"), abbrev_number); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -2925,7 +2935,7 @@ if (info_ptr == orig_info_ptr) { _bfd_error_handler - (_("Dwarf Error: Abstract instance recursion detected.")); + (_("DWARF error: abstract instance recursion detected")); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -2942,8 +2952,9 @@ } break; case DW_AT_specification: - if (!find_abstract_instance_name (unit, info_ptr, &attr, - pname, is_linkage)) + if (!find_abstract_instance (unit, info_ptr, &attr, + pname, is_linkage, + filename_ptr, linenumber_ptr)) return FALSE; break; case DW_AT_linkage_name: @@ -2956,6 +2967,13 @@ *is_linkage = TRUE; } break; + case DW_AT_decl_file: + *filename_ptr = concat_filename (unit->line_table, + attr.u.val); + break; + case DW_AT_decl_line: + *linenumber_ptr = attr.u.val; + break; default: break; } @@ -3073,7 +3091,7 @@ if (abbrev_number != previous_failed_abbrev) { _bfd_error_handler - (_("Dwarf Error: Could not find abbrev number %u."), + (_("DWARF error: could not find abbrev number %u"), abbrev_number); previous_failed_abbrev = abbrev_number; } @@ -3148,9 +3166,11 @@ case DW_AT_abstract_origin: case DW_AT_specification: - if (!find_abstract_instance_name (unit, info_ptr, &attr, - &func->name, - &func->is_linkage)) + if (!find_abstract_instance (unit, info_ptr, &attr, + &func->name, + &func->is_linkage, + &func->file, + &func->line)) goto fail; break; @@ -3344,8 +3364,8 @@ if (version) { _bfd_error_handler - (_("Dwarf Error: found dwarf version '%u', this reader" - " only handles version 2, 3, 4 and 5 information."), version); + (_("DWARF error: found dwarf version '%u', this reader" + " only handles version 2, 3, 4 and 5 information"), version); bfd_set_error (bfd_error_bad_value); } return NULL; @@ -3388,8 +3408,8 @@ { _bfd_error_handler /* xgettext: c-format */ - (_("Dwarf Error: found address size '%u', this reader" - " can not handle sizes greater than '%u'."), + (_("DWARF error: found address size '%u', this reader" + " can not handle sizes greater than '%u'"), addr_size, (unsigned int) sizeof (bfd_vma)); bfd_set_error (bfd_error_bad_value); @@ -3399,8 +3419,8 @@ if (addr_size != 2 && addr_size != 4 && addr_size != 8) { _bfd_error_handler - ("Dwarf Error: found address size '%u', this reader" - " can only handle address sizes '2', '4' and '8'.", addr_size); + ("DWARF error: found address size '%u', this reader" + " can only handle address sizes '2', '4' and '8'", addr_size); bfd_set_error (bfd_error_bad_value); return NULL; } @@ -3425,7 +3445,7 @@ abbrev = lookup_abbrev (abbrev_number, abbrevs); if (! abbrev) { - _bfd_error_handler (_("Dwarf Error: Could not find abbrev number %u."), + _bfd_error_handler (_("DWARF error: could not find abbrev number %u"), abbrev_number); bfd_set_error (bfd_error_bad_value); return NULL; @@ -3491,7 +3511,7 @@ if (! is_str_attr (attr.form)) { _bfd_error_handler - (_("Dwarf Error: DW_AT_comp_dir attribute encountered with a non-string form.")); + (_("DWARF error: DW_AT_comp_dir attribute encountered with a non-string form")); comp_dir = NULL; } diff -Nru gdb-8.1/bfd/ecoff.c gdb-8.2/bfd/ecoff.c --- gdb-8.1/bfd/ecoff.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/ecoff.c 2018-09-05 07:27:13.000000000 +0000 @@ -182,6 +182,13 @@ return _bfd_generic_new_section_hook (abfd, section); } +void +_bfd_ecoff_set_alignment_hook (bfd *abfd ATTRIBUTE_UNUSED, + asection *section ATTRIBUTE_UNUSED, + void *scnhdr ATTRIBUTE_UNUSED) +{ +} + /* Determine the machine architecture and type. This is called from the generic COFF routines. It is the inverse of ecoff_get_magic, below. This could be an ECOFF backend routine, with one version @@ -961,7 +968,7 @@ bfd_get_symcount (abfd) = internal_ptr - internal; _bfd_error_handler /* xgettext:c-format */ - (_("%B: warning: isymMax (%ld) is greater than ifdMax (%ld)"), + (_("%pB: warning: isymMax (%ld) is greater than ifdMax (%ld)"), abfd, ecoff_data (abfd)->debug_info.symbolic_header.isymMax, ecoff_data (abfd)->debug_info.symbolic_header.ifdMax); } @@ -1258,7 +1265,7 @@ break; default: - sprintf (p1, _("Unknown basic type %d"), (int) basic_type); + sprintf (p1, _("unknown basic type %d"), (int) basic_type); break; } @@ -2211,22 +2218,6 @@ return TRUE; } -/* Get the GP value for an ECOFF file. This is a hook used by - nlmconv. */ - -bfd_vma -bfd_ecoff_get_gp_value (bfd *abfd) -{ - if (bfd_get_flavour (abfd) != bfd_target_ecoff_flavour - || bfd_get_format (abfd) != bfd_object) - { - bfd_set_error (bfd_error_invalid_operation); - return 0; - } - - return ecoff_data (abfd)->gp; -} - /* Set the GP value for an ECOFF file. This is a hook used by the assembler. */ diff -Nru gdb-8.1/bfd/elf32-arc.c gdb-8.2/bfd/elf32-arc.c --- gdb-8.1/bfd/elf32-arc.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-arc.c 2018-09-05 07:44:28.000000000 +0000 @@ -98,6 +98,7 @@ break; } } + #undef ARC_RELOC_HOWTO /* Try to minimize the amount of space occupied by relocation tables @@ -160,7 +161,7 @@ }; /* Should be included at this location due to static declarations - * defined before this point. */ + defined before this point. */ #include "arc-got.h" #define arc_bfd_get_8(A,B,C) bfd_get_8(A,B) @@ -199,11 +200,13 @@ #define ARC_RELOC_HOWTO(TYPE, VALUE, SIZE, BITSIZE, RELOC_FUNCTION, OVERFLOW, FORMULA) \ TYPE = VALUE, + enum howto_list { #include "elf/arc-reloc.def" HOWTO_LIST_LAST }; + #undef ARC_RELOC_HOWTO #define ARC_RELOC_HOWTO(TYPE, VALUE, RSIZE, BITSIZE, RELOC_FUNCTION, OVERFLOW, FORMULA) \ @@ -233,16 +236,17 @@ }; #undef ARC_RELOC_HOWTO -static void arc_elf_howto_init (void) +static void +arc_elf_howto_init (void) { #define ARC_RELOC_HOWTO(TYPE, VALUE, SIZE, BITSIZE, RELOC_FUNCTION, OVERFLOW, FORMULA) \ - elf_arc_howto_table[TYPE].pc_relative = \ + elf_arc_howto_table[TYPE].pc_relative = \ (strstr (#FORMULA, " P ") != NULL || strstr (#FORMULA, " PDATA ") != NULL); \ - elf_arc_howto_table[TYPE].dst_mask = RELOC_FUNCTION(0, ~0); \ - /* Only 32 bit data relocations should be marked as ME. */ \ - if (strstr (#FORMULA, " ME ") != NULL) \ - { \ - BFD_ASSERT (SIZE == 2); \ + elf_arc_howto_table[TYPE].dst_mask = RELOC_FUNCTION(0, ~0); \ + /* Only 32 bit data relocations should be marked as ME. */ \ + if (strstr (#FORMULA, " ME ") != NULL) \ + { \ + BFD_ASSERT (SIZE == 2); \ } #include "elf/arc-reloc.def" @@ -253,10 +257,12 @@ #define ARC_RELOC_HOWTO(TYPE, VALUE, SIZE, BITSIZE, RELOC_FUNCTION, OVERFLOW, FORMULA) \ [TYPE] = VALUE, + const int howto_table_lookup[] = { #include "elf/arc-reloc.def" }; + #undef ARC_RELOC_HOWTO static reloc_howto_type * @@ -358,6 +364,7 @@ #define ARC_RELOC_HOWTO(TYPE, VALUE, SIZE, BITSIZE, RELOC_FUNCTION, OVERFLOW, FORMULA) \ { BFD_RELOC_##TYPE, R_##TYPE }, + static const struct arc_reloc_map arc_reloc_map[] = { #include "elf/arc-reloc.def" @@ -368,6 +375,7 @@ {BFD_RELOC_24, R_ARC_24}, {BFD_RELOC_32, R_ARC_32}, }; + #undef ARC_RELOC_HOWTO typedef ATTRIBUTE_UNUSED bfd_vma (*replace_func) (unsigned, int ATTRIBUTE_UNUSED); @@ -376,6 +384,7 @@ case TYPE: \ func = (void *) RELOC_FUNCTION; \ break; + static replace_func get_replace_function (bfd *abfd, unsigned int r_type) { @@ -387,7 +396,7 @@ } if (func == replace_bits24 && bfd_big_endian (abfd)) - return (replace_func) replace_bits24_be; + func = replace_bits24_be; return (replace_func) func; } @@ -496,16 +505,25 @@ /* Set the howto pointer for an ARC ELF reloc. */ -static void -arc_info_to_howto_rel (bfd * abfd ATTRIBUTE_UNUSED, +static bfd_boolean +arc_info_to_howto_rel (bfd * abfd, arelent * cache_ptr, Elf_Internal_Rela * dst) { unsigned int r_type; r_type = ELF32_R_TYPE (dst->r_info); - BFD_ASSERT (r_type < (unsigned int) R_ARC_max); + if (r_type >= (unsigned int) R_ARC_max) + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + cache_ptr->howto = arc_elf_howto (r_type); + return TRUE; } /* Extract CPU features from an NTBS. */ @@ -608,8 +626,8 @@ /* It's sometimes ok to mix different configs, so this is only a warning. */ _bfd_error_handler - (_("Warning: %B: Conflicting platform configuration " - "%s with %s.\n"), ibfd, + (_("warning: %pB: conflicting platform configuration " + "%s with %s"), ibfd, tagval[in_attr[i].i], tagval[out_attr[i].i]); } @@ -627,8 +645,8 @@ BFD_ASSERT (out_attr[i].i < 5); /* We cannot mix code for different CPUs. */ _bfd_error_handler - (_("error: %B: unable to merge CPU base attributes " - "%s with %s.\n"), + (_("error: %pB: unable to merge CPU base attributes " + "%s with %s"), obfd, tagval[in_attr[i].i], tagval[out_attr[i].i]); @@ -664,8 +682,8 @@ && (!(cpu_out & bfd_feature_list[j].cpus))) { _bfd_error_handler - (_("error: %B: unable to merge ISA extension attributes " - "%s.\n"), + (_("error: %pB: unable to merge ISA extension attributes " + "%s"), obfd, bfd_feature_list[j].name); result = FALSE; break; @@ -688,8 +706,8 @@ p2 = (char *) bfd_feature_list[k].name; } _bfd_error_handler - (_("error: %B: conflicting ISA extension attributes " - "%s with %s.\n"), + (_("error: %pB: conflicting ISA extension attributes " + "%s with %s"), obfd, p1, p2); result = FALSE; break; @@ -723,7 +741,7 @@ { /* We cannot mix code with rf16 and without. */ _bfd_error_handler - (_("error: %B: cannot mix rf16 with full register set %B.\n"), + (_("error: %pB: cannot mix rf16 with full register set %pB"), obfd, ibfd); result = FALSE; } @@ -749,7 +767,7 @@ && out_attr[i].i != in_attr[i].i) { _bfd_error_handler - (_("error: %B: conflicting attributes %s: %s with %s.\n"), + (_("error: %pB: conflicting attributes %s: %s with %s"), obfd, tagname, tagval[in_attr[i].i], tagval[out_attr[i].i]); @@ -774,7 +792,7 @@ && out_attr[i].i != in_attr[i].i) { _bfd_error_handler - (_("error: %B: conflicting attributes %s.\n"), + (_("error: %pB: conflicting attributes %s"), obfd, tagname); result = FALSE; } @@ -874,8 +892,8 @@ if (mach_ibfd != mach_obfd) { /* xgettext:c-format */ - _bfd_error_handler (_("ERROR: Attempting to link %B " - "with a binary %B of different architecture"), + _bfd_error_handler (_("error: attempting to link %pB " + "with a binary %pB of different architecture"), ibfd, obfd); return FALSE; } @@ -888,7 +906,7 @@ /* Warn if different flags. */ _bfd_error_handler /* xgettext:c-format */ - (_("%B: uses different e_flags (%#x) fields than " + (_("%pB: uses different e_flags (%#x) fields than " "previous modules (%#x)"), ibfd, in_flags, out_flags); if (in_flags && out_flags) @@ -977,14 +995,14 @@ if (e_machine == EM_ARC) { _bfd_error_handler - (_("Error: The ARC4 architecture is no longer supported.\n")); + (_("error: the ARC4 architecture is no longer supported")); return FALSE; } else { _bfd_error_handler - (_("Warning: unset or old architecture flags. \n" - " Use default machine.\n")); + (_("warning: unset or old architecture flags; " + "use default machine")); } } @@ -1116,26 +1134,26 @@ if (reloc_data.reloc_addend == 0) _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): CMEM relocation to `%s' is invalid, " - "16 MSB should be %#x (value is %#Lx)"), + (_("%pB(%pA+%#" PRIx64 "): CMEM relocation to `%s' is invalid, " + "16 MSB should be %#x (value is %#" PRIx64 ")"), reloc_data.input_section->owner, reloc_data.input_section, - reloc_data.reloc_offset, + (uint64_t) reloc_data.reloc_offset, reloc_data.symbol_name, NPS_CMEM_HIGH_VALUE, - relocation); + (uint64_t) relocation); else _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): CMEM relocation to `%s+%#Lx' is invalid, " - "16 MSB should be %#x (value is %#Lx)"), + (_("%pB(%pA+%#" PRIx64 "): CMEM relocation to `%s+%#" PRIx64 + "' is invalid, 16 MSB should be %#x (value is %#" PRIx64 ")"), reloc_data.input_section->owner, reloc_data.input_section, - reloc_data.reloc_offset, + (uint64_t) reloc_data.reloc_offset, reloc_data.symbol_name, - reloc_data.reloc_addend, + (uint64_t) reloc_data.reloc_addend, NPS_CMEM_HIGH_VALUE, - relocation); + (uint64_t) relocation); return bfd_reloc_overflow; } break; @@ -1534,7 +1552,6 @@ { _bfd_clear_contents (howto, input_bfd, input_section, contents + rel->r_offset); - rel->r_offset = rel->r_offset; rel->r_info = 0; rel->r_addend = 0; @@ -1820,7 +1837,7 @@ && !reloc_data.sdata_begin_symbol_vma_set) { _bfd_error_handler - ("Error: Linker symbol __SDATA_BEGIN__ not found"); + ("error: linker symbol __SDATA_BEGIN__ not found"); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -1833,7 +1850,7 @@ && reloc_data.sym_section == NULL) { _bfd_error_handler - (_("GOT and PLT relocations cannot be fixed with a non dynamic linker.")); + (_("GOT and PLT relocations cannot be fixed with a non dynamic linker")); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -1857,27 +1874,27 @@ case bfd_reloc_other: /* xgettext:c-format */ - msg = _("%B(%A): warning: unaligned access to symbol '%s' in the small data area"); + msg = _("%pB(%pA): warning: unaligned access to symbol '%s' in the small data area"); break; case bfd_reloc_outofrange: /* xgettext:c-format */ - msg = _("%B(%A): internal error: out of range error"); + msg = _("%pB(%pA): internal error: out of range error"); break; case bfd_reloc_notsupported: /* xgettext:c-format */ - msg = _("%B(%A): internal error: unsupported relocation error"); + msg = _("%pB(%pA): internal error: unsupported relocation error"); break; case bfd_reloc_dangerous: /* xgettext:c-format */ - msg = _("%B(%A): internal error: dangerous relocation"); + msg = _("%pB(%pA): internal error: dangerous relocation"); break; default: /* xgettext:c-format */ - msg = _("%B(%A): internal error: unknown error"); + msg = _("%pB(%pA): internal error: unknown error"); break; } @@ -1965,11 +1982,11 @@ name = "UNKNOWN"; _bfd_error_handler /* xgettext:c-format */ - (_("\ -%B: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC"), - abfd, - arc_elf_howto (r_type)->name, - name); + (_("%pB: relocation %s against `%s' can not be used" + " when making a shared object; recompile with -fPIC"), + abfd, + arc_elf_howto (r_type)->name, + name); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -2780,26 +2797,6 @@ #define elf_backend_size_info arc_elf32_size_info -/* Hook called by the linker routine which adds symbols from an object - file. */ - -static bfd_boolean -elf_arc_add_symbol_hook (bfd * abfd, - struct bfd_link_info * info, - Elf_Internal_Sym * sym, - const char ** namep ATTRIBUTE_UNUSED, - flagword * flagsp ATTRIBUTE_UNUSED, - asection ** secp ATTRIBUTE_UNUSED, - bfd_vma * valp ATTRIBUTE_UNUSED) -{ - if (ELF_ST_TYPE (sym->st_info) == STT_GNU_IFUNC - && (abfd->flags & DYNAMIC) == 0 - && bfd_get_flavour (info->output_bfd) == bfd_target_elf_flavour) - elf_tdata (info->output_bfd)->has_gnu_symbols |= elf_gnu_symbol_ifunc; - - return TRUE; -} - /* GDB expects general purpose registers to be in section .reg. However Linux kernel doesn't create this section and instead writes registers to NOTE section. It is up to the binutils to create a pseudo-section .reg from the @@ -2857,7 +2854,7 @@ if ((tag & 127) < (Tag_ARC_ISA_mpy_option + 1)) { _bfd_error_handler - (_("%B: Unknown mandatory ARC object attribute %d."), + (_("%pB: unknown mandatory ARC object attribute %d"), abfd, tag); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -2865,7 +2862,7 @@ else { _bfd_error_handler - (_("Warning: %B: Unknown ARC object attribute %d."), + (_("warning: %pB: unknown ARC object attribute %d"), abfd, tag); return TRUE; } @@ -2929,7 +2926,6 @@ #define elf_backend_finish_dynamic_sections elf_arc_finish_dynamic_sections #define elf_backend_size_dynamic_sections elf_arc_size_dynamic_sections -#define elf_backend_add_symbol_hook elf_arc_add_symbol_hook #define elf_backend_can_gc_sections 1 #define elf_backend_want_got_plt 1 diff -Nru gdb-8.1/bfd/elf32-arm.c gdb-8.2/bfd/elf32-arm.c --- gdb-8.1/bfd/elf32-arm.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-arm.c 2018-09-05 07:44:28.000000000 +0000 @@ -56,7 +56,7 @@ ? bfd_elf32_swap_reloc_out \ : bfd_elf32_swap_reloca_out) -#define elf_info_to_howto 0 +#define elf_info_to_howto NULL #define elf_info_to_howto_rel elf32_arm_info_to_howto #define ARM_ELF_ABI_VERSION 0 @@ -1746,7 +1746,7 @@ }; /* 160 onwards: */ -static reloc_howto_type elf32_arm_howto_table_2[1] = +static reloc_howto_type elf32_arm_howto_table_2[8] = { HOWTO (R_ARM_IRELATIVE, /* type */ 0, /* rightshift */ @@ -1760,7 +1760,98 @@ TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - FALSE) /* pcrel_offset */ + FALSE), /* pcrel_offset */ + HOWTO (R_ARM_GOTFUNCDESC, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield,/* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_ARM_GOTFUNCDESC", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + HOWTO (R_ARM_GOTOFFFUNCDESC, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield,/* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_ARM_GOTOFFFUNCDESC",/* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + HOWTO (R_ARM_FUNCDESC, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield,/* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_ARM_FUNCDESC", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + HOWTO (R_ARM_FUNCDESC_VALUE, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 64, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield,/* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_ARM_FUNCDESC_VALUE",/* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + HOWTO (R_ARM_TLS_GD32_FDPIC, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield,/* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_ARM_TLS_GD32_FDPIC",/* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + HOWTO (R_ARM_TLS_LDM32_FDPIC, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield,/* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_ARM_TLS_LDM32_FDPIC",/* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + HOWTO (R_ARM_TLS_IE32_FDPIC, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield,/* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_ARM_TLS_IE32_FDPIC",/* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ }; /* 249-255 extended, currently unused, relocations: */ @@ -1829,7 +1920,8 @@ if (r_type < ARRAY_SIZE (elf32_arm_howto_table_1)) return &elf32_arm_howto_table_1[r_type]; - if (r_type == R_ARM_IRELATIVE) + if (r_type >= R_ARM_IRELATIVE + && r_type < R_ARM_IRELATIVE + ARRAY_SIZE (elf32_arm_howto_table_2)) return &elf32_arm_howto_table_2[r_type - R_ARM_IRELATIVE]; if (r_type >= R_ARM_RREL32 @@ -1839,14 +1931,22 @@ return NULL; } -static void -elf32_arm_info_to_howto (bfd * abfd ATTRIBUTE_UNUSED, arelent * bfd_reloc, +static bfd_boolean +elf32_arm_info_to_howto (bfd * abfd, arelent * bfd_reloc, Elf_Internal_Rela * elf_reloc) { unsigned int r_type; r_type = ELF32_R_TYPE (elf_reloc->r_info); - bfd_reloc->howto = elf32_arm_howto_from_type (r_type); + if ((bfd_reloc->howto = elf32_arm_howto_from_type (r_type)) == NULL) + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + return TRUE; } struct elf32_arm_reloc_map @@ -1905,6 +2005,13 @@ {BFD_RELOC_ARM_TLS_IE32, R_ARM_TLS_IE32}, {BFD_RELOC_ARM_TLS_LE32, R_ARM_TLS_LE32}, {BFD_RELOC_ARM_IRELATIVE, R_ARM_IRELATIVE}, + {BFD_RELOC_ARM_GOTFUNCDESC, R_ARM_GOTFUNCDESC}, + {BFD_RELOC_ARM_GOTOFFFUNCDESC, R_ARM_GOTOFFFUNCDESC}, + {BFD_RELOC_ARM_FUNCDESC, R_ARM_FUNCDESC}, + {BFD_RELOC_ARM_FUNCDESC_VALUE, R_ARM_FUNCDESC_VALUE}, + {BFD_RELOC_ARM_TLS_GD32_FDPIC, R_ARM_TLS_GD32_FDPIC}, + {BFD_RELOC_ARM_TLS_LDM32_FDPIC, R_ARM_TLS_LDM32_FDPIC}, + {BFD_RELOC_ARM_TLS_IE32_FDPIC, R_ARM_TLS_IE32_FDPIC}, {BFD_RELOC_VTABLE_INHERIT, R_ARM_GNU_VTINHERIT}, {BFD_RELOC_VTABLE_ENTRY, R_ARM_GNU_VTENTRY}, {BFD_RELOC_ARM_MOVW, R_ARM_MOVW_ABS_NC}, @@ -2061,13 +2168,22 @@ case NT_PRPSINFO: { - char data[124]; + char data[124] ATTRIBUTE_NONSTRING; va_list ap; va_start (ap, note_type); memset (data, 0, sizeof (data)); strncpy (data + 28, va_arg (ap, const char *), 16); + DIAGNOSTIC_PUSH; + /* GCC 8.1 warns about 80 equals destination size with + -Wstringop-truncation: + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85643 + */ +#if GCC_VERSION == 8001 + DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION; +#endif strncpy (data + 44, va_arg (ap, const char *), 80); + DIAGNOSTIC_POP; va_end (ap); return elfcore_write_note (abfd, buf, bufsiz, @@ -2144,6 +2260,9 @@ section. */ #define ELF_DYNAMIC_INTERPRETER "/usr/lib/ld.so.1" +/* FDPIC default stack size. */ +#define DEFAULT_STACK_SIZE 0x8000 + static const unsigned long tls_trampoline [] = { 0xe08e0000, /* add r0, lr, r0 */ @@ -2164,6 +2283,38 @@ 0x00000018, /* 4: .word _GLOBAL_OFFSET_TABLE_ - 2b - 8 */ }; +/* ARM FDPIC PLT entry. */ +/* The last 5 words contain PLT lazy fragment code and data. */ +static const bfd_vma elf32_arm_fdpic_plt_entry [] = + { + 0xe59fc008, /* ldr r12, .L1 */ + 0xe08cc009, /* add r12, r12, r9 */ + 0xe59c9004, /* ldr r9, [r12, #4] */ + 0xe59cf000, /* ldr pc, [r12] */ + 0x00000000, /* L1. .word foo(GOTOFFFUNCDESC) */ + 0x00000000, /* L1. .word foo(funcdesc_value_reloc_offset) */ + 0xe51fc00c, /* ldr r12, [pc, #-12] */ + 0xe92d1000, /* push {r12} */ + 0xe599c004, /* ldr r12, [r9, #4] */ + 0xe599f000, /* ldr pc, [r9] */ + }; + +/* Thumb FDPIC PLT entry. */ +/* The last 5 words contain PLT lazy fragment code and data. */ +static const bfd_vma elf32_arm_fdpic_thumb_plt_entry [] = + { + 0xc00cf8df, /* ldr.w r12, .L1 */ + 0x0c09eb0c, /* add.w r12, r12, r9 */ + 0x9004f8dc, /* ldr.w r9, [r12, #4] */ + 0xf000f8dc, /* ldr.w pc, [r12] */ + 0x00000000, /* .L1 .word foo(GOTOFFFUNCDESC) */ + 0x00000000, /* .L2 .word foo(funcdesc_value_reloc_offset) */ + 0xc008f85f, /* ldr.w r12, .L2 */ + 0xcd04f84d, /* push {r12} */ + 0xc004f8d9, /* ldr.w r12, [r9, #4] */ + 0xf000f8d9, /* ldr.w pc, [r9] */ + }; + #ifdef FOUR_WORD_PLT /* The first entry in a procedure linkage table looks like @@ -2936,6 +3087,13 @@ struct elf_dyn_relocs *dyn_relocs; }; +/* Structure to handle FDPIC support for local functions. */ +struct fdpic_local { + unsigned int funcdesc_cnt; + unsigned int gotofffuncdesc_cnt; + int funcdesc_offset; +}; + struct elf_arm_obj_tdata { struct elf_obj_tdata root; @@ -2954,6 +3112,9 @@ /* Zero to warn when linking objects with incompatible wchar_t sizes. */ int no_wchar_size_warning; + + /* Maintains FDPIC counters and funcdesc info. */ + struct fdpic_local *local_fdpic_cnts; }; #define elf_arm_tdata(bfd) \ @@ -2968,6 +3129,9 @@ #define elf32_arm_local_iplt(bfd) \ (elf_arm_tdata (bfd)->local_iplt) +#define elf32_arm_local_fdpic_cnts(bfd) \ + (elf_arm_tdata (bfd)->local_fdpic_cnts) + #define is_arm_elf(bfd) \ (bfd_get_flavour (bfd) == bfd_target_elf_flavour \ && elf_tdata (bfd) != NULL \ @@ -2982,6 +3146,15 @@ #define elf32_arm_hash_entry(ent) ((struct elf32_arm_link_hash_entry *)(ent)) +/* Structure to handle FDPIC support for extern functions. */ +struct fdpic_global { + unsigned int gotofffuncdesc_cnt; + unsigned int gotfuncdesc_cnt; + unsigned int funcdesc_cnt; + int funcdesc_offset; + int gotfuncdesc_offset; +}; + /* Arm ELF linker hash entry. */ struct elf32_arm_link_hash_entry { @@ -3017,6 +3190,9 @@ /* A pointer to the most recently used stub hash entry against this symbol. */ struct elf32_arm_stub_hash_entry *stub_cache; + + /* Counter for FDPIC relocations against this symbol. */ + struct fdpic_global fdpic_cnts; }; /* Traverse an arm ELF linker hash table. */ @@ -3142,7 +3318,7 @@ int nacl_p; /* True if the target uses REL relocations. */ - int use_rel; + bfd_boolean use_rel; /* Nonzero if import library must be a secure gateway import library as per ARMv8-M Security Extensions. */ @@ -3174,7 +3350,7 @@ /* Offset in .plt section of tls_arm_trampoline. */ bfd_vma tls_trampoline; - /* Data for R_ARM_TLS_LDM32 relocations. */ + /* Data for R_ARM_TLS_LDM32/R_ARM_TLS_LDM32_FDPIC relocations. */ union { bfd_signed_vma refcount; @@ -3220,8 +3396,25 @@ unsigned int bfd_count; unsigned int top_index; asection **input_list; + + /* True if the target system uses FDPIC. */ + int fdpic_p; + + /* Fixup section. Used for FDPIC. */ + asection *srofixup; }; +/* Add an FDPIC read-only fixup. */ +static void +arm_elf_add_rofixup (bfd *output_bfd, asection *srofixup, bfd_vma offset) +{ + bfd_vma fixup_offset; + + fixup_offset = srofixup->reloc_count++ * 4; + BFD_ASSERT (fixup_offset < srofixup->size); + bfd_put_32 (output_bfd, offset, srofixup->contents + fixup_offset); +} + static inline int ctz (unsigned int mask) { @@ -3259,6 +3452,57 @@ #endif } +static void elf32_arm_add_dynreloc (bfd *output_bfd, struct bfd_link_info *info, + asection *sreloc, Elf_Internal_Rela *rel); + +static void +arm_elf_fill_funcdesc(bfd *output_bfd, + struct bfd_link_info *info, + int *funcdesc_offset, + int dynindx, + int offset, + bfd_vma addr, + bfd_vma dynreloc_value, + bfd_vma seg) +{ + if ((*funcdesc_offset & 1) == 0) + { + struct elf32_arm_link_hash_table *globals = elf32_arm_hash_table (info); + asection *sgot = globals->root.sgot; + + if (bfd_link_pic(info)) + { + asection *srelgot = globals->root.srelgot; + Elf_Internal_Rela outrel; + + outrel.r_info = ELF32_R_INFO (dynindx, R_ARM_FUNCDESC_VALUE); + outrel.r_offset = sgot->output_section->vma + sgot->output_offset + offset; + outrel.r_addend = 0; + + elf32_arm_add_dynreloc (output_bfd, info, srelgot, &outrel); + bfd_put_32 (output_bfd, addr, sgot->contents + offset); + bfd_put_32 (output_bfd, seg, sgot->contents + offset + 4); + } + else + { + struct elf_link_hash_entry *hgot = globals->root.hgot; + bfd_vma got_value = hgot->root.u.def.value + + hgot->root.u.def.section->output_section->vma + + hgot->root.u.def.section->output_offset; + + arm_elf_add_rofixup(output_bfd, globals->srofixup, + sgot->output_section->vma + sgot->output_offset + + offset); + arm_elf_add_rofixup(output_bfd, globals->srofixup, + sgot->output_section->vma + sgot->output_offset + + offset + 4); + bfd_put_32 (output_bfd, dynreloc_value, sgot->contents + offset); + bfd_put_32 (output_bfd, got_value, sgot->contents + offset + 4); + } + *funcdesc_offset |= 1; + } +} + /* Create an entry in an ARM ELF linker hash table. */ static struct bfd_hash_entry * @@ -3294,6 +3538,12 @@ ret->export_glue = NULL; ret->stub_cache = NULL; + + ret->fdpic_cnts.gotofffuncdesc_cnt = 0; + ret->fdpic_cnts.gotfuncdesc_cnt = 0; + ret->fdpic_cnts.funcdesc_cnt = 0; + ret->fdpic_cnts.funcdesc_offset = -1; + ret->fdpic_cnts.gotfuncdesc_offset = -1; } return (struct bfd_hash_entry *) ret; @@ -3315,11 +3565,15 @@ size = num_syms * (sizeof (bfd_signed_vma) + sizeof (struct arm_local_iplt_info *) + sizeof (bfd_vma) - + sizeof (char)); + + sizeof (char) + + sizeof (struct fdpic_local)); data = bfd_zalloc (abfd, size); if (data == NULL) return FALSE; + elf32_arm_local_fdpic_cnts (abfd) = (struct fdpic_local *) data; + data += num_syms * sizeof (struct fdpic_local); + elf_local_got_refcounts (abfd) = (bfd_signed_vma *) data; data += num_syms * sizeof (bfd_signed_vma); @@ -3391,6 +3645,8 @@ return TRUE; } +static bfd_boolean using_thumb_only (struct elf32_arm_link_hash_table *globals); + /* Return true if the PLT described by ARM_PLT requires a Thumb stub before it. */ @@ -3401,8 +3657,9 @@ struct elf32_arm_link_hash_table *htab; htab = elf32_arm_hash_table (info); - return (arm_plt->thumb_refcount != 0 - || (!htab->use_blx && arm_plt->maybe_thumb_refcount != 0)); + + return (!using_thumb_only(htab) && (arm_plt->thumb_refcount != 0 + || (!htab->use_blx && arm_plt->maybe_thumb_refcount != 0))); } /* Return a pointer to the head of the dynamic reloc list that should @@ -3501,6 +3758,16 @@ if (! _bfd_elf_create_got_section (dynobj, info)) return FALSE; + /* Also create .rofixup. */ + if (htab->fdpic_p) + { + htab->srofixup = bfd_make_section_with_flags (dynobj, ".rofixup", + (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS + | SEC_IN_MEMORY | SEC_LINKER_CREATED | SEC_READONLY)); + if (htab->srofixup == NULL || ! bfd_set_section_alignment (dynobj, htab->srofixup, 2)) + return FALSE; + } + return TRUE; } @@ -3678,6 +3945,14 @@ htab->obfd = saved_obfd; } + if (htab->fdpic_p) { + htab->plt_header_size = 0; + if (info->flags & DF_BIND_NOW) + htab->plt_entry_size = 4 * (ARRAY_SIZE(elf32_arm_fdpic_plt_entry) - 5); + else + htab->plt_entry_size = 4 * ARRAY_SIZE(elf32_arm_fdpic_plt_entry); + } + if (!htab->root.splt || !htab->root.srelplt || !htab->root.sdynbss @@ -3740,6 +4015,11 @@ edir->plt.noncall_refcount += eind->plt.noncall_refcount; eind->plt.noncall_refcount = 0; + /* Copy FDPIC counters. */ + edir->fdpic_cnts.gotofffuncdesc_cnt += eind->fdpic_cnts.gotofffuncdesc_cnt; + edir->fdpic_cnts.gotfuncdesc_cnt += eind->fdpic_cnts.gotfuncdesc_cnt; + edir->fdpic_cnts.funcdesc_cnt += eind->fdpic_cnts.funcdesc_cnt; + /* We should only allocate a function to .iplt once the final symbol information is known. */ BFD_ASSERT (!eind->is_iplt); @@ -3796,8 +4076,9 @@ ret->plt_header_size = 20; ret->plt_entry_size = elf32_arm_use_long_plt_entry ? 16 : 12; #endif - ret->use_rel = 1; + ret->use_rel = TRUE; ret->obfd = abfd; + ret->fdpic_p = 0; if (!bfd_hash_table_init (&ret->stub_hash_table, stub_hash_newfunc, sizeof (struct elf32_arm_stub_hash_entry))) @@ -4019,10 +4300,10 @@ { if (input_sec->flags & SEC_ELF_PURECODE) _bfd_error_handler - (_("%B(%A): warning: long branch veneers used in" + (_("%pB(%pA): warning: long branch veneers used in" " section with SHF_ARM_PURECODE section" " attribute is only supported for M-profile" - " targets that implement the movw instruction."), + " targets that implement the movw instruction"), input_bfd, input_sec); stub_type = (bfd_link_pic (info) | globals->pic_veneer) @@ -4053,10 +4334,10 @@ { if (input_sec->flags & SEC_ELF_PURECODE) _bfd_error_handler - (_("%B(%A): warning: long branch veneers used in" + (_("%pB(%pA): warning: long branch veneers used in" " section with SHF_ARM_PURECODE section" " attribute is only supported for M-profile" - " targets that implement the movw instruction."), + " targets that implement the movw instruction"), input_bfd, input_sec); stub_type = (bfd_link_pic (info) | globals->pic_veneer) @@ -4072,10 +4353,10 @@ { if (input_sec->flags & SEC_ELF_PURECODE) _bfd_error_handler - (_("%B(%A): warning: long branch veneers used in" + (_("%pB(%pA): warning: long branch veneers used in" " section with SHF_ARM_PURECODE section" " attribute is only supported" " for M-profile" - " targets that implement the movw instruction."), + " targets that implement the movw instruction"), input_bfd, input_sec); /* Thumb to arm. */ @@ -4084,9 +4365,9 @@ && !INTERWORK_FLAG (sym_sec->owner)) { _bfd_error_handler - (_("%B(%s): warning: interworking not enabled.\n" - " first occurrence: %B: Thumb call to ARM"), - sym_sec->owner, name, input_bfd); + (_("%pB(%s): warning: interworking not enabled;" + " first occurrence: %pB: %s call to %s"), + sym_sec->owner, name, input_bfd, "Thumb", "ARM"); } stub_type = @@ -4124,10 +4405,10 @@ { if (input_sec->flags & SEC_ELF_PURECODE) _bfd_error_handler - (_("%B(%A): warning: long branch veneers used in" + (_("%pB(%pA): warning: long branch veneers used in" " section with SHF_ARM_PURECODE section" " attribute is only supported for M-profile" - " targets that implement the movw instruction."), + " targets that implement the movw instruction"), input_bfd, input_sec); if (branch_type == ST_BRANCH_TO_THUMB) { @@ -4138,9 +4419,9 @@ && !INTERWORK_FLAG (sym_sec->owner)) { _bfd_error_handler - (_("%B(%s): warning: interworking not enabled.\n" - " first occurrence: %B: ARM call to Thumb"), - sym_sec->owner, name, input_bfd); + (_("%pB(%s): warning: interworking not enabled;" + " first occurrence: %pB: %s call to %s"), + sym_sec->owner, name, input_bfd, "ARM", "Thumb"); } /* We have an extra 2-bytes reach because of @@ -4412,7 +4693,7 @@ out_sec = bfd_get_section_by_name (output_bfd, out_sec_name); if (out_sec == NULL) { - _bfd_error_handler (_("No address assigned to the veneers output " + _bfd_error_handler (_("no address assigned to the veneers output " "section %s"), out_sec_name); return NULL; } @@ -4487,7 +4768,7 @@ { if (section == NULL) section = stub_sec; - _bfd_error_handler (_("%B: cannot create stub entry %s"), + _bfd_error_handler (_("%pB: cannot create stub entry %s"), section->owner, stub_name); return NULL; } @@ -5672,8 +5953,8 @@ if (!is_v8m) { - _bfd_error_handler (_("%B: Special symbol `%s' only allowed for " - "ARMv8-M architecture or later."), + _bfd_error_handler (_("%pB: special symbol `%s' only allowed for " + "ARMv8-M architecture or later"), input_bfd, sym_name); is_v8m = TRUE; /* Avoid multiple warning. */ ret = FALSE; @@ -5681,10 +5962,9 @@ if (cmse_invalid) { - _bfd_error_handler (_("%B: invalid special symbol `%s'."), + _bfd_error_handler (_("%pB: invalid special symbol `%s'; it must be" + " a global or weak function symbol"), input_bfd, sym_name); - _bfd_error_handler (_("It must be a global or weak function " - "symbol.")); ret = FALSE; if (i < ext_start) continue; @@ -5721,13 +6001,13 @@ if (hash || j < ext_start) { _bfd_error_handler - (_("%B: invalid standard symbol `%s'."), input_bfd, sym_name); - _bfd_error_handler - (_("It must be a global or weak function symbol.")); + (_("%pB: invalid standard symbol `%s'; it must be " + "a global or weak function symbol"), + input_bfd, sym_name); } else _bfd_error_handler - (_("%B: absent standard symbol `%s'."), input_bfd, sym_name); + (_("%pB: absent standard symbol `%s'"), input_bfd, sym_name); ret = FALSE; if (!hash) continue; @@ -5739,7 +6019,7 @@ if (cmse_hash->root.root.u.def.section != section) { _bfd_error_handler - (_("%B: `%s' and its special symbol are in different sections."), + (_("%pB: `%s' and its special symbol are in different sections"), input_bfd, sym_name); ret = FALSE; } @@ -5751,14 +6031,14 @@ if (section->output_section == NULL) { _bfd_error_handler - (_("%B: entry function `%s' not output."), input_bfd, sym_name); + (_("%pB: entry function `%s' not output"), input_bfd, sym_name); continue; } if (hash->root.size == 0) { _bfd_error_handler - (_("%B: entry function `%s' is empty."), input_bfd, sym_name); + (_("%pB: entry function `%s' is empty"), input_bfd, sym_name); ret = FALSE; } @@ -5887,8 +6167,8 @@ in_implib_bfd = htab->in_implib_bfd; if (!htab->cmse_implib) { - _bfd_error_handler (_("%B: --in-implib only supported for Secure " - "Gateway import libraries."), in_implib_bfd); + _bfd_error_handler (_("%pB: --in-implib only supported for Secure " + "Gateway import libraries"), in_implib_bfd); return FALSE; } @@ -5933,10 +6213,10 @@ || (ARM_GET_SYM_BRANCH_TYPE (intsym->st_target_internal) != ST_BRANCH_TO_THUMB)) { - _bfd_error_handler (_("%B: invalid import library entry: `%s'."), + _bfd_error_handler (_("%pB: invalid import library entry: `%s'; " + "symbol should be absolute, global and " + "refer to Thumb functions"), in_implib_bfd, sym_name); - _bfd_error_handler (_("Symbol should be absolute, global and " - "refer to Thumb functions.")); ret = FALSE; continue; } @@ -5955,7 +6235,7 @@ bfd_boolean new_stub; _bfd_error_handler - (_("Entry function `%s' disappeared from secure code."), sym_name); + (_("entry function `%s' disappeared from secure code"), sym_name); hash = (struct elf32_arm_link_hash_entry *) elf_link_hash_lookup (&(htab)->root, sym_name, TRUE, TRUE, TRUE); stub_entry @@ -5979,7 +6259,7 @@ { if (!cmse_entry_fct_p (hash)) { - _bfd_error_handler (_("`%s' refers to a non entry function."), + _bfd_error_handler (_("`%s' refers to a non entry function"), sym_name); ret = FALSE; } @@ -5994,7 +6274,7 @@ if (!!(flags & BSF_GLOBAL) != (hash->root.root.type == bfd_link_hash_defined)) _bfd_error_handler - (_("%B: visibility of symbol `%s' has changed."), in_implib_bfd, + (_("%pB: visibility of symbol `%s' has changed"), in_implib_bfd, sym_name); stub_entry->stub_offset = stub_offset; @@ -6003,7 +6283,7 @@ /* Size should match that of a SG veneer. */ if (intsym->st_size != cmse_stub_size) { - _bfd_error_handler (_("%B: incorrect size for symbol `%s'."), + _bfd_error_handler (_("%pB: incorrect size for symbol `%s'"), in_implib_bfd, sym_name); ret = FALSE; } @@ -6022,8 +6302,8 @@ if (stub_offset % cmse_stub_size) { _bfd_error_handler - (_("Offset of veneer for entry function `%s' not a multiple of " - "its size."), sym_name); + (_("offset of veneer for entry function `%s' not a multiple of " + "its size"), sym_name); ret = FALSE; } @@ -6050,7 +6330,7 @@ if (cmse_stub_array_start != cmse_stub_sec_vma) { _bfd_error_handler - (_("Start address of `%s' is different from previous link."), + (_("start address of `%s' is different from previous link"), out_sec_name); ret = FALSE; } @@ -6624,7 +6904,7 @@ TRUE, FALSE); if (stub_entry == NULL) { - _bfd_error_handler (_("%B: cannot create stub entry %s"), + _bfd_error_handler (_("%pB: cannot create stub entry %s"), section->owner, stub_name); return FALSE; } @@ -6757,8 +7037,8 @@ (&(hash_table)->root, tmp_name, FALSE, FALSE, TRUE); if (hash == NULL - && asprintf (error_message, _("unable to find THUMB glue '%s' for '%s'"), - tmp_name, name) == -1) + && asprintf (error_message, _("unable to find %s glue '%s' for '%s'"), + "Thumb", tmp_name, name) == -1) *error_message = (char *) bfd_errmsg (bfd_error_system_call); free (tmp_name); @@ -6793,8 +7073,8 @@ (&(hash_table)->root, tmp_name, FALSE, FALSE, TRUE); if (myh == NULL - && asprintf (error_message, _("unable to find ARM glue '%s' for '%s'"), - tmp_name, name) == -1) + && asprintf (error_message, _("unable to find %s glue '%s' for '%s'"), + "ARM", tmp_name, name) == -1) *error_message = (char *) bfd_errmsg (bfd_error_system_call); free (tmp_name); @@ -7508,7 +7788,7 @@ if (globals->byteswap_code && !bfd_big_endian (abfd)) { - _bfd_error_handler (_("%B: BE8 images only valid in big-endian mode."), + _bfd_error_handler (_("%pB: BE8 images only valid in big-endian mode"), abfd); return FALSE; } @@ -7739,7 +8019,7 @@ default: /* Give a warning, but do as the user requests anyway. */ - _bfd_error_handler (_("%B: warning: selected VFP11 erratum " + _bfd_error_handler (_("%pB: warning: selected VFP11 erratum " "workaround is not necessary for target architecture"), obfd); } } @@ -7766,7 +8046,7 @@ if (globals->stm32l4xx_fix != BFD_ARM_STM32L4XX_FIX_NONE) /* Give a warning, but do as the user requests anyway. */ _bfd_error_handler - (_("%B: warning: selected STM32L4XX erratum " + (_("%pB: warning: selected STM32L4XX erratum " "workaround is not necessary for target architecture"), obfd); } } @@ -8303,8 +8583,8 @@ (&(globals)->root, tmp_name, FALSE, FALSE, TRUE); if (myh == NULL) - _bfd_error_handler (_("%B: unable to find VFP11 veneer " - "`%s'"), abfd, tmp_name); + _bfd_error_handler (_("%pB: unable to find %s veneer `%s'"), + abfd, "VFP11", tmp_name); vma = myh->root.u.def.section->output_section->vma + myh->root.u.def.section->output_offset @@ -8323,8 +8603,8 @@ (&(globals)->root, tmp_name, FALSE, FALSE, TRUE); if (myh == NULL) - _bfd_error_handler (_("%B: unable to find VFP11 veneer " - "`%s'"), abfd, tmp_name); + _bfd_error_handler (_("%pB: unable to find %s veneer `%s'"), + abfd, "VFP11", tmp_name); vma = myh->root.u.def.section->output_section->vma + myh->root.u.def.section->output_offset @@ -8389,8 +8669,8 @@ (&(globals)->root, tmp_name, FALSE, FALSE, TRUE); if (myh == NULL) - _bfd_error_handler (_("%B: unable to find STM32L4XX veneer " - "`%s'"), abfd, tmp_name); + _bfd_error_handler (_("%pB: unable to find %s veneer `%s'"), + abfd, "STM32L4XX", tmp_name); vma = myh->root.u.def.section->output_section->vma + myh->root.u.def.section->output_offset @@ -8408,8 +8688,8 @@ (&(globals)->root, tmp_name, FALSE, FALSE, TRUE); if (myh == NULL) - _bfd_error_handler (_("%B: unable to find STM32L4XX veneer " - "`%s'"), abfd, tmp_name); + _bfd_error_handler (_("%pB: unable to find %s veneer `%s'"), + abfd, "STM32L4XX", tmp_name); vma = myh->root.u.def.section->output_section->vma + myh->root.u.def.section->output_offset @@ -8615,11 +8895,11 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#x): error: multiple load detected" - " in non-last IT block instruction :" - " STM32L4XX veneer cannot be generated.\n" - "Use gcc option -mrestrict-it to generate" - " only one instruction per IT block.\n"), + (_("%pB(%pA+%#x): error: multiple load detected" + " in non-last IT block instruction:" + " STM32L4XX veneer cannot be generated; " + "use gcc option -mrestrict-it to generate" + " only one instruction per IT block"), abfd, sec, i); } else @@ -8705,7 +8985,9 @@ return; globals->target1_is_rel = params->target1_is_rel; - if (strcmp (params->target2_type, "rel") == 0) + if (globals->fdpic_p) + globals->target2_reloc = R_ARM_GOT32; + else if (strcmp (params->target2_type, "rel") == 0) globals->target2_reloc = R_ARM_REL32; else if (strcmp (params->target2_type, "abs") == 0) globals->target2_reloc = R_ARM_ABS32; @@ -8713,14 +8995,17 @@ globals->target2_reloc = R_ARM_GOT_PREL; else { - _bfd_error_handler (_("Invalid TARGET2 relocation type '%s'."), + _bfd_error_handler (_("invalid TARGET2 relocation type '%s'"), params->target2_type); } globals->fix_v4bx = params->fix_v4bx; globals->use_blx |= params->use_blx; globals->vfp11_fix = params->vfp11_denorm_fix; globals->stm32l4xx_fix = params->stm32l4xx_fix; - globals->pic_veneer = params->pic_veneer; + if (globals->fdpic_p) + globals->pic_veneer = 1; + else + globals->pic_veneer = params->pic_veneer; globals->fix_cortex_a8 = params->fix_cortex_a8; globals->fix_arm1176 = params->fix_arm1176; globals->cmse_implib = params->cmse_implib; @@ -8803,9 +9088,9 @@ && !INTERWORK_FLAG (sym_sec->owner)) { _bfd_error_handler - (_("%B(%s): warning: interworking not enabled.\n" - " first occurrence: %B: Thumb call to ARM"), - sym_sec->owner, name, input_bfd); + (_("%pB(%s): warning: interworking not enabled;" + " first occurrence: %pB: %s call to %s"), + sym_sec->owner, name, input_bfd, "Thumb", "ARM"); return FALSE; } @@ -8893,9 +9178,9 @@ && !INTERWORK_FLAG (sym_sec->owner)) { _bfd_error_handler - (_("%B(%s): warning: interworking not enabled.\n" - " first occurrence: %B: arm call to thumb"), - sym_sec->owner, name, input_bfd); + (_("%pB(%s): warning: interworking not enabled;" + " first occurrence: %pB: %s call to %s"), + sym_sec->owner, name, input_bfd, "ARM", "Thumb"); } --my_offset; @@ -9206,8 +9491,22 @@ splt = htab->root.splt; sgotplt = htab->root.sgotplt; - /* Allocate room for an R_JUMP_SLOT relocation in .rel.plt. */ - elf32_arm_allocate_dynrelocs (info, htab->root.srelplt, 1); + if (htab->fdpic_p) + { + /* Allocate room for R_ARM_FUNCDESC_VALUE. */ + /* For lazy binding, relocations will be put into .rel.plt, in + .rel.got otherwise. */ + /* FIXME: today we don't support lazy binding so put it in .rel.got */ + if (info->flags & DF_BIND_NOW) + elf32_arm_allocate_dynrelocs (info, htab->root.srelgot, 1); + else + elf32_arm_allocate_dynrelocs (info, htab->root.srelplt, 1); + } + else + { + /* Allocate room for an R_JUMP_SLOT relocation in .rel.plt. */ + elf32_arm_allocate_dynrelocs (info, htab->root.srelplt, 1); + } /* If this is the first .plt entry, make room for the special first entry. */ @@ -9231,7 +9530,11 @@ arm_plt->got_offset = sgotplt->size; else arm_plt->got_offset = sgotplt->size - 8 * htab->num_tls_desc; - sgotplt->size += 4; + if (htab->fdpic_p) + /* Function descriptor takes 64 bits in GOT. */ + sgotplt->size += 8; + else + sgotplt->size += 4; } } @@ -9340,7 +9643,11 @@ in all the symbols for which we are making plt entries. After the reserved .got.plt entries, all symbols appear in the same order as in .plt. */ - plt_index = (got_offset - got_header_size) / 4; + if (htab->fdpic_p) + /* Function descriptor takes 8 bytes. */ + plt_index = (got_offset - got_header_size) / 8; + else + plt_index = (got_offset - got_header_size) / 4; /* Calculate the address of the GOT entry. */ got_address = (sgot->output_section->vma @@ -9448,6 +9755,41 @@ | (tail_displacement & 0x00ffffff), ptr + 12); } + else if (htab->fdpic_p) + { + const bfd_vma *plt_entry = using_thumb_only(htab) + ? elf32_arm_fdpic_thumb_plt_entry + : elf32_arm_fdpic_plt_entry; + + /* Fill-up Thumb stub if needed. */ + if (elf32_arm_plt_needs_thumb_stub_p (info, arm_plt)) + { + put_thumb_insn (htab, output_bfd, + elf32_arm_plt_thumb_stub[0], ptr - 4); + put_thumb_insn (htab, output_bfd, + elf32_arm_plt_thumb_stub[1], ptr - 2); + } + /* As we are using 32 bit instructions even for the Thumb + version, we have to use 'put_arm_insn' instead of + 'put_thumb_insn'. */ + put_arm_insn(htab, output_bfd, plt_entry[0], ptr + 0); + put_arm_insn(htab, output_bfd, plt_entry[1], ptr + 4); + put_arm_insn(htab, output_bfd, plt_entry[2], ptr + 8); + put_arm_insn(htab, output_bfd, plt_entry[3], ptr + 12); + bfd_put_32 (output_bfd, got_offset, ptr + 16); + + if (!(info->flags & DF_BIND_NOW)) + { + /* funcdesc_value_reloc_offset. */ + bfd_put_32 (output_bfd, + htab->root.srelplt->reloc_count * RELOC_SIZE (htab), + ptr + 20); + put_arm_insn(htab, output_bfd, plt_entry[6], ptr + 24); + put_arm_insn(htab, output_bfd, plt_entry[7], ptr + 28); + put_arm_insn(htab, output_bfd, plt_entry[8], ptr + 32); + put_arm_insn(htab, output_bfd, plt_entry[9], ptr + 36); + } + } else if (using_thumb_only (htab)) { /* PR ld/16017: Generate thumb only PLT entries. */ @@ -9455,7 +9797,7 @@ { /* FIXME: We ought to be able to generate thumb-1 PLT instructions... */ - _bfd_error_handler (_("%B: Warning: thumb-1 mode PLT generation not currently supported"), + _bfd_error_handler (_("%pB: warning: thumb-1 mode PLT generation not currently supported"), output_bfd); return FALSE; } @@ -9558,22 +9900,61 @@ } else { - rel.r_info = ELF32_R_INFO (dynindx, R_ARM_JUMP_SLOT); - initial_got_entry = (splt->output_section->vma - + splt->output_offset); + /* For FDPIC we will have to resolve a R_ARM_FUNCDESC_VALUE + used by PLT entry. */ + if (htab->fdpic_p) + { + rel.r_info = ELF32_R_INFO (dynindx, R_ARM_FUNCDESC_VALUE); + initial_got_entry = 0; + } + else + { + rel.r_info = ELF32_R_INFO (dynindx, R_ARM_JUMP_SLOT); + initial_got_entry = (splt->output_section->vma + + splt->output_offset); + } } /* Fill in the entry in the global offset table. */ bfd_put_32 (output_bfd, initial_got_entry, sgot->contents + got_offset); + + if (htab->fdpic_p && !(info->flags & DF_BIND_NOW)) + { + /* Setup initial funcdesc value. */ + /* FIXME: we don't support lazy binding because there is a + race condition between both words getting written and + some other thread attempting to read them. The ARM + architecture does not have an atomic 64 bit load/store + instruction that could be used to prevent it; it is + recommended that threaded FDPIC applications run with the + LD_BIND_NOW environment variable set. */ + bfd_put_32(output_bfd, plt_address + 0x18, + sgot->contents + got_offset); + bfd_put_32(output_bfd, -1 /*TODO*/, + sgot->contents + got_offset + 4); + } } if (dynindx == -1) elf32_arm_add_dynreloc (output_bfd, info, srel, &rel); else { - loc = srel->contents + plt_index * RELOC_SIZE (htab); - SWAP_RELOC_OUT (htab) (output_bfd, &rel, loc); + if (htab->fdpic_p) + { + /* For FDPIC we put PLT relocationss into .rel.got when not + lazy binding otherwise we put them in .rel.plt. For now, + we don't support lazy binding so put it in .rel.got. */ + if (info->flags & DF_BIND_NOW) + elf32_arm_add_dynreloc(output_bfd, info, htab->root.srelgot, &rel); + else + elf32_arm_add_dynreloc(output_bfd, info, htab->root.srelplt, &rel); + } + else + { + loc = srel->contents + plt_index * RELOC_SIZE (htab); + SWAP_RELOC_OUT (htab) (output_bfd, &rel, loc); + } } return TRUE; @@ -9720,8 +10101,10 @@ | bfd_get_16 (input_bfd, contents + rel->r_offset + 2); _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): unexpected Thumb instruction '%#lx' in TLS trampoline"), - input_bfd, input_sec, rel->r_offset, insn); + (_("%pB(%pA+%#" PRIx64 "): " + "unexpected %s instruction '%#lx' in TLS trampoline"), + input_bfd, input_sec, (uint64_t) rel->r_offset, + "Thumb", insn); return bfd_reloc_notsupported; } break; @@ -9760,8 +10143,10 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): unexpected ARM instruction '%#lx' in TLS trampoline"), - input_bfd, input_sec, rel->r_offset, insn); + (_("%pB(%pA+%#" PRIx64 "): " + "unexpected %s instruction '%#lx' in TLS trampoline"), + input_bfd, input_sec, (uint64_t) rel->r_offset, + "ARM", insn); return bfd_reloc_notsupported; } break; @@ -10075,7 +10460,8 @@ relocations are copied into the output file to be resolved at run time. */ if ((bfd_link_pic (info) - || globals->root.is_relocatable_executable) + || globals->root.is_relocatable_executable + || globals->fdpic_p) && (input_section->flags & SEC_ALLOC) && !(globals->vxworks_p && strcmp (input_section->output_section->name, @@ -10096,6 +10482,7 @@ { Elf_Internal_Rela outrel; bfd_boolean skip, relocate; + int isrofixup = 0; if ((r_type == R_ARM_REL32 || r_type == R_ARM_REL32_NOI) && !h->def_regular) @@ -10106,7 +10493,7 @@ v = _("PIE executable"); _bfd_error_handler - (_("%B: relocation %s against external or undefined symbol `%s'" + (_("%pB: relocation %s against external or undefined symbol `%s'" " can not be used when making a %s; recompile with -fPIC"), input_bfd, elf32_arm_howto_table_1[r_type].name, h->root.root.string, v); return bfd_reloc_notsupported; @@ -10151,7 +10538,8 @@ int symbol; /* This symbol is local, or marked to become local. */ - BFD_ASSERT (r_type == R_ARM_ABS32 || r_type == R_ARM_ABS32_NOI); + BFD_ASSERT (r_type == R_ARM_ABS32 || r_type == R_ARM_ABS32_NOI + || (globals->fdpic_p && !bfd_link_pic(info))); if (globals->symbian_p) { asection *osec; @@ -10197,6 +10585,8 @@ must use an R_ARM_IRELATIVE relocation to obtain the correct run-time address. */ outrel.r_info = ELF32_R_INFO (symbol, R_ARM_IRELATIVE); + else if (globals->fdpic_p && !bfd_link_pic(info)) + isrofixup = 1; else outrel.r_info = ELF32_R_INFO (symbol, R_ARM_RELATIVE); if (globals->use_rel) @@ -10205,7 +10595,10 @@ outrel.r_addend += dynreloc_value; } - elf32_arm_add_dynreloc (output_bfd, info, sreloc, &outrel); + if (isrofixup) + arm_elf_add_rofixup(output_bfd, globals->srofixup, outrel.r_offset); + else + elf32_arm_add_dynreloc (output_bfd, info, sreloc, &outrel); /* If this reloc is against an external symbol, we do not want to fiddle with the addend. Otherwise, we need to include the symbol @@ -10237,9 +10630,10 @@ instruction instead ? */ if (branch_type != ST_BRANCH_TO_THUMB) _bfd_error_handler - (_("\%B: Warning: Arm BLX instruction targets Arm function '%s'."), - input_bfd, - h ? h->root.root.string : "(local)"); + (_("\%pB: warning: %s BLX instruction targets" + " %s function '%s'"), + input_bfd, "ARM", + "ARM", h ? h->root.root.string : "(local)"); } else if (r_type == R_ARM_PC24) { @@ -10663,9 +11057,10 @@ instruction instead ? */ if (branch_type == ST_BRANCH_TO_THUMB) _bfd_error_handler - (_("%B: Warning: Thumb BLX instruction targets thumb function '%s'."), - input_bfd, - h ? h->root.root.string : "(local)"); + (_("%pB: warning: %s BLX instruction targets" + " %s function '%s'"), + input_bfd, "Thumb", + "Thumb", h ? h->root.root.string : "(local)"); } else { @@ -11079,8 +11474,10 @@ else { Elf_Internal_Rela outrel; + int isrofixup = 0; - if (h->dynindx != -1 && !SYMBOL_REFERENCES_LOCAL (info, h)) + if (((h->dynindx != -1) || globals->fdpic_p) + && !SYMBOL_REFERENCES_LOCAL (info, h)) { /* If the symbol doesn't resolve locally in a static object, we have an undefined reference. If the @@ -11103,6 +11500,8 @@ && (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT || h->root.type != bfd_link_hash_undefweak)) outrel.r_info = ELF32_R_INFO (0, R_ARM_RELATIVE); + else if (globals->fdpic_p) + isrofixup = 1; else outrel.r_info = 0; outrel.r_addend = dynreloc_value; @@ -11111,20 +11510,27 @@ /* The GOT entry is initialized to zero by default. See if we should install a different value. */ if (outrel.r_addend != 0 - && (outrel.r_info == 0 || globals->use_rel)) + && (outrel.r_info == 0 || globals->use_rel || isrofixup)) { bfd_put_32 (output_bfd, outrel.r_addend, sgot->contents + off); outrel.r_addend = 0; } - if (outrel.r_info != 0) + if (outrel.r_info != 0 && !isrofixup) { outrel.r_offset = (sgot->output_section->vma + sgot->output_offset + off); elf32_arm_add_dynreloc (output_bfd, info, srelgot, &outrel); } + else if (isrofixup) + { + arm_elf_add_rofixup(output_bfd, + elf32_arm_hash_table(info)->srofixup, + sgot->output_section->vma + + sgot->output_offset + off); + } h->got.offset |= 1; } value = sgot->output_offset + off; @@ -11162,6 +11568,14 @@ outrel.r_info = ELF32_R_INFO (0, R_ARM_RELATIVE); elf32_arm_add_dynreloc (output_bfd, info, srelgot, &outrel); } + else if (globals->fdpic_p) + { + /* For FDPIC executables, we use rofixup to fix + address at runtime. */ + arm_elf_add_rofixup(output_bfd, globals->srofixup, + sgot->output_section->vma + sgot->output_offset + + off); + } local_got_offsets[r_symndx] |= 1; } @@ -11183,6 +11597,7 @@ rel->r_addend); case R_ARM_TLS_LDM32: + case R_ARM_TLS_LDM32_FDPIC: { bfd_vma off; @@ -11221,18 +11636,32 @@ globals->tls_ldm_got.offset |= 1; } - value = sgot->output_section->vma + sgot->output_offset + off - - (input_section->output_section->vma + input_section->output_offset + rel->r_offset); + if (r_type == R_ARM_TLS_LDM32_FDPIC) + { + bfd_put_32(output_bfd, + globals->root.sgot->output_offset + off, + contents + rel->r_offset); - return _bfd_final_link_relocate (howto, input_bfd, input_section, - contents, rel->r_offset, value, - rel->r_addend); + return bfd_reloc_ok; + } + else + { + value = sgot->output_section->vma + sgot->output_offset + off + - (input_section->output_section->vma + + input_section->output_offset + rel->r_offset); + + return _bfd_final_link_relocate (howto, input_bfd, input_section, + contents, rel->r_offset, value, + rel->r_addend); + } } case R_ARM_TLS_CALL: case R_ARM_THM_TLS_CALL: case R_ARM_TLS_GD32: + case R_ARM_TLS_GD32_FDPIC: case R_ARM_TLS_IE32: + case R_ARM_TLS_IE32_FDPIC: case R_ARM_TLS_GOTDESC: case R_ARM_TLS_DESCSEQ: case R_ARM_THM_TLS_DESCSEQ: @@ -11420,7 +11849,7 @@ local_got_offsets[r_symndx] |= 1; } - if ((tls_type & GOT_TLS_GD) && r_type != R_ARM_TLS_GD32) + if ((tls_type & GOT_TLS_GD) && r_type != R_ARM_TLS_GD32 && r_type != R_ARM_TLS_GD32_FDPIC) off += 8; else if (tls_type & GOT_TLS_GDESC) off = offplt; @@ -11531,8 +11960,11 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): unexpected Thumb instruction '%#lx' referenced by TLS_GOTDESC"), - input_bfd, input_section, rel->r_offset, insn); + (_("%pB(%pA+%#" PRIx64 "): " + "unexpected %s instruction '%#lx' " + "referenced by TLS_GOTDESC"), + input_bfd, input_section, (uint64_t) rel->r_offset, + "Thumb", insn); return bfd_reloc_notsupported; } } @@ -11554,8 +11986,11 @@ default: _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): unexpected ARM instruction '%#lx' referenced by TLS_GOTDESC"), - input_bfd, input_section, rel->r_offset, insn); + (_("%pB(%pA+%#" PRIx64 "): " + "unexpected %s instruction '%#lx' " + "referenced by TLS_GOTDESC"), + input_bfd, input_section, (uint64_t) rel->r_offset, + "ARM", insn); return bfd_reloc_notsupported; } } @@ -11573,9 +12008,23 @@ - (input_section->output_section->vma + input_section->output_offset + rel->r_offset)); - return _bfd_final_link_relocate (howto, input_bfd, input_section, - contents, rel->r_offset, value, - rel->r_addend); + if (globals->fdpic_p && (r_type == R_ARM_TLS_GD32_FDPIC || + r_type == R_ARM_TLS_IE32_FDPIC)) + { + /* For FDPIC relocations, resolve to the offset of the GOT + entry from the start of GOT. */ + bfd_put_32(output_bfd, + globals->root.sgot->output_offset + off, + contents + rel->r_offset); + + return bfd_reloc_ok; + } + else + { + return _bfd_final_link_relocate (howto, input_bfd, input_section, + contents, rel->r_offset, value, + rel->r_addend); + } } case R_ARM_TLS_LE32: @@ -11583,8 +12032,9 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): %s relocation not permitted in shared object"), - input_bfd, input_section, rel->r_offset, howto->name); + (_("%pB(%pA+%#" PRIx64 "): %s relocation not permitted " + "in shared object"), + input_bfd, input_section, (uint64_t) rel->r_offset, howto->name); return bfd_reloc_notsupported; } else @@ -11796,8 +12246,9 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): Only ADD or SUB instructions are allowed for ALU group relocations"), - input_bfd, input_section, rel->r_offset); + (_("%pB(%pA+%#" PRIx64 "): only ADD or SUB instructions " + "are allowed for ALU group relocations"), + input_bfd, input_section, (uint64_t) rel->r_offset); return bfd_reloc_overflow; } @@ -11836,9 +12287,11 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): Overflow whilst splitting %#Lx for group relocation %s"), - input_bfd, input_section, rel->r_offset, - signed_value < 0 ? -signed_value : signed_value, howto->name); + (_("%pB(%pA+%#" PRIx64 "): overflow whilst " + "splitting %#" PRIx64 " for group relocation %s"), + input_bfd, input_section, (uint64_t) rel->r_offset, + (uint64_t) (signed_value < 0 ? -signed_value : signed_value), + howto->name); return bfd_reloc_overflow; } @@ -11926,9 +12379,11 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): Overflow whilst splitting %#Lx for group relocation %s"), - input_bfd, input_section, rel->r_offset, - signed_value < 0 ? -signed_value : signed_value, howto->name); + (_("%pB(%pA+%#" PRIx64 "): overflow whilst " + "splitting %#" PRIx64 " for group relocation %s"), + input_bfd, input_section, (uint64_t) rel->r_offset, + (uint64_t) (signed_value < 0 ? -signed_value : signed_value), + howto->name); return bfd_reloc_overflow; } @@ -12012,9 +12467,11 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): Overflow whilst splitting %#Lx for group relocation %s"), - input_bfd, input_section, rel->r_offset, - signed_value < 0 ? -signed_value : signed_value, howto->name); + (_("%pB(%pA+%#" PRIx64 "): overflow whilst " + "splitting %#" PRIx64 " for group relocation %s"), + input_bfd, input_section, (uint64_t) rel->r_offset, + (uint64_t) (signed_value < 0 ? -signed_value : signed_value), + howto->name); return bfd_reloc_overflow; } @@ -12100,9 +12557,11 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): Overflow whilst splitting %#Lx for group relocation %s"), - input_bfd, input_section, rel->r_offset, - signed_value < 0 ? -signed_value : signed_value, howto->name); + (_("%pB(%pA+%#" PRIx64 "): overflow whilst " + "splitting %#" PRIx64 " for group relocation %s"), + input_bfd, input_section, (uint64_t) rel->r_offset, + (uint64_t) (signed_value < 0 ? -signed_value : signed_value), + howto->name); return bfd_reloc_overflow; } @@ -12147,6 +12606,241 @@ *unresolved_reloc_p = FALSE; return bfd_reloc_ok; + case R_ARM_GOTOFFFUNCDESC: + { + if (h == NULL) + { + struct fdpic_local *local_fdpic_cnts = elf32_arm_local_fdpic_cnts(input_bfd); + int dynindx = elf_section_data (sym_sec->output_section)->dynindx; + int offset = local_fdpic_cnts[r_symndx].funcdesc_offset & ~1; + bfd_vma addr = dynreloc_value - sym_sec->output_section->vma; + bfd_vma seg = -1; + + if (bfd_link_pic(info) && dynindx == 0) + abort(); + + /* Resolve relocation. */ + bfd_put_32(output_bfd, (offset + sgot->output_offset) + , contents + rel->r_offset); + /* Emit R_ARM_FUNCDESC_VALUE or two fixups on funcdesc if + not done yet. */ + arm_elf_fill_funcdesc(output_bfd, info, + &local_fdpic_cnts[r_symndx].funcdesc_offset, + dynindx, offset, addr, dynreloc_value, seg); + } + else + { + int dynindx; + int offset = eh->fdpic_cnts.funcdesc_offset & ~1; + bfd_vma addr; + bfd_vma seg = -1; + + /* For static binaries, sym_sec can be null. */ + if (sym_sec) + { + dynindx = elf_section_data (sym_sec->output_section)->dynindx; + addr = dynreloc_value - sym_sec->output_section->vma; + } + else + { + dynindx = 0; + addr = 0; + } + + if (bfd_link_pic(info) && dynindx == 0) + abort(); + + /* This case cannot occur since funcdesc is allocated by + the dynamic loader so we cannot resolve the relocation. */ + if (h->dynindx != -1) + abort(); + + /* Resolve relocation. */ + bfd_put_32(output_bfd, (offset + sgot->output_offset), + contents + rel->r_offset); + /* Emit R_ARM_FUNCDESC_VALUE on funcdesc if not done yet. */ + arm_elf_fill_funcdesc(output_bfd, info, + &eh->fdpic_cnts.funcdesc_offset, + dynindx, offset, addr, dynreloc_value, seg); + } + } + *unresolved_reloc_p = FALSE; + return bfd_reloc_ok; + + case R_ARM_GOTFUNCDESC: + { + if (h != NULL) + { + Elf_Internal_Rela outrel; + + /* Resolve relocation. */ + bfd_put_32(output_bfd, ((eh->fdpic_cnts.gotfuncdesc_offset & ~1) + + sgot->output_offset), + contents + rel->r_offset); + /* Add funcdesc and associated R_ARM_FUNCDESC_VALUE. */ + if(h->dynindx == -1) + { + int dynindx; + int offset = eh->fdpic_cnts.funcdesc_offset & ~1; + bfd_vma addr; + bfd_vma seg = -1; + + /* For static binaries sym_sec can be null. */ + if (sym_sec) + { + dynindx = elf_section_data (sym_sec->output_section)->dynindx; + addr = dynreloc_value - sym_sec->output_section->vma; + } + else + { + dynindx = 0; + addr = 0; + } + + /* Emit R_ARM_FUNCDESC_VALUE on funcdesc if not done yet. */ + arm_elf_fill_funcdesc(output_bfd, info, + &eh->fdpic_cnts.funcdesc_offset, + dynindx, offset, addr, dynreloc_value, seg); + } + + /* Add a dynamic relocation on GOT entry if not already done. */ + if ((eh->fdpic_cnts.gotfuncdesc_offset & 1) == 0) + { + if (h->dynindx == -1) + { + outrel.r_info = ELF32_R_INFO (0, R_ARM_RELATIVE); + if (h->root.type == bfd_link_hash_undefweak) + bfd_put_32(output_bfd, 0, sgot->contents + + (eh->fdpic_cnts.gotfuncdesc_offset & ~1)); + else + bfd_put_32(output_bfd, sgot->output_section->vma + + sgot->output_offset + + (eh->fdpic_cnts.funcdesc_offset & ~1), + sgot->contents + + (eh->fdpic_cnts.gotfuncdesc_offset & ~1)); + } + else + { + outrel.r_info = ELF32_R_INFO (h->dynindx, R_ARM_FUNCDESC); + } + outrel.r_offset = sgot->output_section->vma + + sgot->output_offset + + (eh->fdpic_cnts.gotfuncdesc_offset & ~1); + outrel.r_addend = 0; + if (h->dynindx == -1 && !bfd_link_pic(info)) + if (h->root.type == bfd_link_hash_undefweak) + arm_elf_add_rofixup(output_bfd, globals->srofixup, -1); + else + arm_elf_add_rofixup(output_bfd, globals->srofixup, outrel.r_offset); + else + elf32_arm_add_dynreloc (output_bfd, info, srelgot, &outrel); + eh->fdpic_cnts.gotfuncdesc_offset |= 1; + } + } + else + { + /* Such relocation on static function should not have been + emitted by the compiler. */ + abort(); + } + } + *unresolved_reloc_p = FALSE; + return bfd_reloc_ok; + + case R_ARM_FUNCDESC: + { + if (h == NULL) + { + struct fdpic_local *local_fdpic_cnts = elf32_arm_local_fdpic_cnts(input_bfd); + Elf_Internal_Rela outrel; + int dynindx = elf_section_data (sym_sec->output_section)->dynindx; + int offset = local_fdpic_cnts[r_symndx].funcdesc_offset & ~1; + bfd_vma addr = dynreloc_value - sym_sec->output_section->vma; + bfd_vma seg = -1; + + if (bfd_link_pic(info) && dynindx == 0) + abort(); + + /* Replace static FUNCDESC relocation with a + R_ARM_RELATIVE dynamic relocation or with a rofixup for + executable. */ + outrel.r_info = ELF32_R_INFO (0, R_ARM_RELATIVE); + outrel.r_offset = input_section->output_section->vma + + input_section->output_offset + rel->r_offset; + outrel.r_addend = 0; + if (bfd_link_pic(info)) + elf32_arm_add_dynreloc (output_bfd, info, srelgot, &outrel); + else + arm_elf_add_rofixup(output_bfd, globals->srofixup, outrel.r_offset); + + bfd_put_32 (input_bfd, sgot->output_section->vma + + sgot->output_offset + offset, hit_data); + + /* Emit R_ARM_FUNCDESC_VALUE on funcdesc if not done yet. */ + arm_elf_fill_funcdesc(output_bfd, info, + &local_fdpic_cnts[r_symndx].funcdesc_offset, + dynindx, offset, addr, dynreloc_value, seg); + } + else + { + if (h->dynindx == -1) + { + int dynindx; + int offset = eh->fdpic_cnts.funcdesc_offset & ~1; + bfd_vma addr; + bfd_vma seg = -1; + Elf_Internal_Rela outrel; + + /* For static binaries sym_sec can be null. */ + if (sym_sec) + { + dynindx = elf_section_data (sym_sec->output_section)->dynindx; + addr = dynreloc_value - sym_sec->output_section->vma; + } + else + { + dynindx = 0; + addr = 0; + } + + if (bfd_link_pic(info) && dynindx == 0) + abort(); + + /* Replace static FUNCDESC relocation with a + R_ARM_RELATIVE dynamic relocation. */ + outrel.r_info = ELF32_R_INFO (0, R_ARM_RELATIVE); + outrel.r_offset = input_section->output_section->vma + + input_section->output_offset + rel->r_offset; + outrel.r_addend = 0; + if (bfd_link_pic(info)) + elf32_arm_add_dynreloc (output_bfd, info, srelgot, &outrel); + else + arm_elf_add_rofixup(output_bfd, globals->srofixup, outrel.r_offset); + + bfd_put_32 (input_bfd, sgot->output_section->vma + + sgot->output_offset + offset, hit_data); + + /* Emit R_ARM_FUNCDESC_VALUE on funcdesc if not done yet. */ + arm_elf_fill_funcdesc(output_bfd, info, + &eh->fdpic_cnts.funcdesc_offset, + dynindx, offset, addr, dynreloc_value, seg); + } + else + { + Elf_Internal_Rela outrel; + + /* Add a dynamic relocation. */ + outrel.r_info = ELF32_R_INFO (h->dynindx, R_ARM_FUNCDESC); + outrel.r_offset = input_section->output_section->vma + + input_section->output_offset + rel->r_offset; + outrel.r_addend = 0; + elf32_arm_add_dynreloc (output_bfd, info, srelgot, &outrel); + } + } + } + *unresolved_reloc_p = FALSE; + return bfd_reloc_ok; + default: return bfd_reloc_notsupported; } @@ -12228,13 +12922,16 @@ #define IS_ARM_TLS_RELOC(R_TYPE) \ ((R_TYPE) == R_ARM_TLS_GD32 \ + || (R_TYPE) == R_ARM_TLS_GD32_FDPIC \ || (R_TYPE) == R_ARM_TLS_LDO32 \ || (R_TYPE) == R_ARM_TLS_LDM32 \ + || (R_TYPE) == R_ARM_TLS_LDM32_FDPIC \ || (R_TYPE) == R_ARM_TLS_DTPOFF32 \ || (R_TYPE) == R_ARM_TLS_DTPMOD32 \ || (R_TYPE) == R_ARM_TLS_TPOFF32 \ || (R_TYPE) == R_ARM_TLS_LE32 \ || (R_TYPE) == R_ARM_TLS_IE32 \ + || (R_TYPE) == R_ARM_TLS_IE32_FDPIC \ || IS_ARM_TLS_GNU_RELOC (R_TYPE)) /* Specific set of relocations for the gnu tls dialect. */ @@ -12366,9 +13063,10 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): %s relocation against SEC_MERGE section"), + (_("%pB(%pA+%#" PRIx64 "): " + "%s relocation against SEC_MERGE section"), input_bfd, input_section, - rel->r_offset, howto->name); + (uint64_t) rel->r_offset, howto->name); return FALSE; } @@ -12478,12 +13176,12 @@ _bfd_error_handler ((sym_type == STT_TLS /* xgettext:c-format */ - ? _("%B(%A+%#Lx): %s used with TLS symbol %s") + ? _("%pB(%pA+%#" PRIx64 "): %s used with TLS symbol %s") /* xgettext:c-format */ - : _("%B(%A+%#Lx): %s used with non-TLS symbol %s")), + : _("%pB(%pA+%#" PRIx64 "): %s used with non-TLS symbol %s")), input_bfd, input_section, - rel->r_offset, + (uint64_t) rel->r_offset, howto->name, name); } @@ -12533,10 +13231,11 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"), + (_("%pB(%pA+%#" PRIx64 "): " + "unresolvable %s relocation against symbol `%s'"), input_bfd, input_section, - rel->r_offset, + (uint64_t) rel->r_offset, howto->name, h->root.root.string); return FALSE; @@ -12943,6 +13642,7 @@ switch (arch) { + case TAG_CPU_ARCH_PRE_V4: return bfd_mach_arm_3M; case TAG_CPU_ARCH_V4: return bfd_mach_arm_4; case TAG_CPU_ARCH_V4T: return bfd_mach_arm_4T; case TAG_CPU_ARCH_V5T: return bfd_mach_arm_5T; @@ -12980,7 +13680,38 @@ return bfd_mach_arm_5TE; } + case TAG_CPU_ARCH_V5TEJ: + return bfd_mach_arm_5TEJ; + case TAG_CPU_ARCH_V6: + return bfd_mach_arm_6; + case TAG_CPU_ARCH_V6KZ: + return bfd_mach_arm_6KZ; + case TAG_CPU_ARCH_V6T2: + return bfd_mach_arm_6T2; + case TAG_CPU_ARCH_V6K: + return bfd_mach_arm_6K; + case TAG_CPU_ARCH_V7: + return bfd_mach_arm_7; + case TAG_CPU_ARCH_V6_M: + return bfd_mach_arm_6M; + case TAG_CPU_ARCH_V6S_M: + return bfd_mach_arm_6SM; + case TAG_CPU_ARCH_V7E_M: + return bfd_mach_arm_7EM; + case TAG_CPU_ARCH_V8: + return bfd_mach_arm_8; + case TAG_CPU_ARCH_V8R: + return bfd_mach_arm_8R; + case TAG_CPU_ARCH_V8M_BASE: + return bfd_mach_arm_8M_BASE; + case TAG_CPU_ARCH_V8M_MAIN: + return bfd_mach_arm_8M_MAIN; + default: + /* Force entry to be added for any new known Tag_CPU_arch value. */ + BFD_ASSERT (arch > MAX_TAG_CPU_ARCH); + + /* Unknown Tag_CPU_arch value. */ return bfd_mach_arm_unknown; } } @@ -13018,11 +13749,11 @@ { if (flags & EF_ARM_INTERWORK) _bfd_error_handler - (_("Warning: Not setting interworking flag of %B since it has already been specified as non-interworking"), + (_("warning: not setting interworking flag of %pB since it has already been specified as non-interworking"), abfd); else _bfd_error_handler - (_("Warning: Clearing the interworking flag of %B due to outside request"), + (_("warning: clearing the interworking flag of %pB due to outside request"), abfd); } } @@ -13067,7 +13798,7 @@ { if (out_flags & EF_ARM_INTERWORK) _bfd_error_handler - (_("Warning: Clearing the interworking flag of %B because non-interworking code in %B has been linked with it"), + (_("warning: clearing the interworking flag of %pB because non-interworking code in %pB has been linked with it"), obfd, ibfd); in_flags &= ~EF_ARM_INTERWORK; @@ -13154,7 +13885,7 @@ if ((tag & 127) < 64) { _bfd_error_handler - (_("%B: Unknown mandatory EABI object attribute %d"), + (_("%pB: unknown mandatory EABI object attribute %d"), abfd, tag); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -13162,7 +13893,7 @@ else { _bfd_error_handler - (_("Warning: %B: Unknown EABI object attribute %d"), + (_("warning: %pB: unknown EABI object attribute %d"), abfd, tag); return TRUE; } @@ -13429,7 +14160,7 @@ if (oldtag > MAX_TAG_CPU_ARCH || newtag > MAX_TAG_CPU_ARCH) { - _bfd_error_handler (_("error: %B: Unknown CPU architecture"), ibfd); + _bfd_error_handler (_("error: %pB: unknown CPU architecture"), ibfd); return -1; } @@ -13467,7 +14198,7 @@ if (result == -1) { - _bfd_error_handler (_("error: %B: Conflicting CPU architectures %d/%d"), + _bfd_error_handler (_("error: %pB: conflicting CPU architectures %d/%d"), ibfd, oldtag, newtag); return -1; } @@ -13564,7 +14295,7 @@ != out_attr[Tag_MPextension_use].i) { _bfd_error_handler - (_("Error: %B has both the current and legacy " + (_("Error: %pB has both the current and legacy " "Tag_MPextension_use attributes"), ibfd); result = FALSE; } @@ -13593,7 +14324,7 @@ && in_attr[Tag_ABI_VFP_args].i != AEABI_VFP_args_compatible) { _bfd_error_handler - (_("error: %B uses VFP register arguments, %B does not"), + (_("error: %pB uses VFP register arguments, %pB does not"), in_attr[Tag_ABI_VFP_args].i ? ibfd : obfd, in_attr[Tag_ABI_VFP_args].i ? obfd : ibfd); result = FALSE; @@ -13722,7 +14453,7 @@ binaries in the toolchain have had the attributes set properly. _bfd_error_handler - (_("error: %B: 8-byte data alignment conflicts with %B"), + (_("error: %pB: 8-byte data alignment conflicts with %pB"), obfd, ibfd); result = FALSE; */ } @@ -13751,8 +14482,8 @@ else { _bfd_error_handler - (_("error: %B: unable to merge virtualization attributes " - "with %B"), + (_("error: %pB: unable to merge virtualization attributes " + "with %pB"), obfd, ibfd); result = FALSE; } @@ -13777,7 +14508,7 @@ else { _bfd_error_handler - (_("error: %B: Conflicting architecture profiles %c/%c"), + (_("error: %pB: conflicting architecture profiles %c/%c"), ibfd, in_attr[i].i ? in_attr[i].i : '0', out_attr[i].i ? out_attr[i].i : '0'); @@ -13916,7 +14647,7 @@ /* It's sometimes ok to mix different configs, so this is only a warning. */ _bfd_error_handler - (_("Warning: %B: Conflicting platform configuration"), ibfd); + (_("warning: %pB: conflicting platform configuration"), ibfd); } break; case Tag_ABI_PCS_R9_use: @@ -13925,7 +14656,7 @@ && in_attr[i].i != AEABI_R9_unused) { _bfd_error_handler - (_("error: %B: Conflicting use of R9"), ibfd); + (_("error: %pB: conflicting use of R9"), ibfd); result = FALSE; } if (out_attr[i].i == AEABI_R9_unused) @@ -13937,7 +14668,7 @@ && out_attr[Tag_ABI_PCS_R9_use].i != AEABI_R9_unused) { _bfd_error_handler - (_("error: %B: SB relative addressing conflicts with use of R9"), + (_("error: %pB: SB relative addressing conflicts with use of R9"), ibfd); result = FALSE; } @@ -13950,7 +14681,7 @@ && !elf_arm_tdata (obfd)->no_wchar_size_warning) { _bfd_error_handler - (_("warning: %B uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may fail"), + (_("warning: %pB uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may fail"), ibfd, in_attr[i].i, out_attr[i].i); } else if (in_attr[i].i && !out_attr[i].i) @@ -13981,7 +14712,7 @@ ? aeabi_enum_names[out_attr[i].i] : ""; _bfd_error_handler - (_("warning: %B uses %s enums yet the output is to use %s enums; use of enum values across objects may fail"), + (_("warning: %pB uses %s enums yet the output is to use %s enums; use of enum values across objects may fail"), ibfd, in_name, out_name); } } @@ -13993,7 +14724,7 @@ if (in_attr[i].i != out_attr[i].i) { _bfd_error_handler - (_("error: %B uses iWMMXt register arguments, %B does not"), + (_("error: %pB uses iWMMXt register arguments, %pB does not"), ibfd, obfd); result = FALSE; } @@ -14010,7 +14741,7 @@ if (in_attr[i].i != out_attr[i].i) { _bfd_error_handler - (_("error: fp16 format mismatch between %B and %B"), + (_("error: fp16 format mismatch between %pB and %pB"), ibfd, obfd); result = FALSE; } @@ -14046,7 +14777,7 @@ if (in_attr[Tag_MPextension_use].i != in_attr[i].i) { _bfd_error_handler - (_("%B has both the current and legacy " + (_("%pB has both the current and legacy " "Tag_MPextension_use attributes"), ibfd); result = FALSE; @@ -14245,7 +14976,13 @@ if (flags & EF_ARM_RELEXEC) fprintf (file, _(" [relocatable executable]")); - flags &= ~EF_ARM_RELEXEC; + if (flags & EF_ARM_PIC) + fprintf (file, _(" [position independent]")); + + if (elf_elfheader (abfd)->e_ident[EI_OSABI] == ELFOSABI_ARM_FDPIC) + fprintf (file, _(" [FDPIC ABI supplement]")); + + flags &= ~ (EF_ARM_RELEXEC | EF_ARM_PIC); if (flags) fprintf (file, _("")); @@ -14365,7 +15102,7 @@ object file containing relocations but no symbol table. */ && (r_symndx > STN_UNDEF || nsyms > 0)) { - _bfd_error_handler (_("%B: bad symbol index: %d"), abfd, + _bfd_error_handler (_("%pB: bad symbol index: %d"), abfd, r_symndx); return FALSE; } @@ -14401,10 +15138,60 @@ r_type = elf32_arm_tls_transition (info, r_type, h); switch (r_type) { + case R_ARM_GOTOFFFUNCDESC: + { + if (h == NULL) + { + if (!elf32_arm_allocate_local_sym_info (abfd)) + return FALSE; + elf32_arm_local_fdpic_cnts(abfd)[r_symndx].gotofffuncdesc_cnt += 1; + elf32_arm_local_fdpic_cnts(abfd)[r_symndx].funcdesc_offset = -1; + } + else + { + eh->fdpic_cnts.gotofffuncdesc_cnt++; + } + } + break; + + case R_ARM_GOTFUNCDESC: + { + if (h == NULL) + { + /* Such a relocation is not supposed to be generated + by gcc on a static function. */ + /* Anyway if needed it could be handled. */ + abort(); + } + else + { + eh->fdpic_cnts.gotfuncdesc_cnt++; + } + } + break; + + case R_ARM_FUNCDESC: + { + if (h == NULL) + { + if (!elf32_arm_allocate_local_sym_info (abfd)) + return FALSE; + elf32_arm_local_fdpic_cnts(abfd)[r_symndx].funcdesc_cnt += 1; + elf32_arm_local_fdpic_cnts(abfd)[r_symndx].funcdesc_offset = -1; + } + else + { + eh->fdpic_cnts.funcdesc_cnt++; + } + } + break; + case R_ARM_GOT32: case R_ARM_GOT_PREL: case R_ARM_TLS_GD32: + case R_ARM_TLS_GD32_FDPIC: case R_ARM_TLS_IE32: + case R_ARM_TLS_IE32_FDPIC: case R_ARM_TLS_GOTDESC: case R_ARM_TLS_DESCSEQ: case R_ARM_THM_TLS_DESCSEQ: @@ -14417,8 +15204,10 @@ switch (r_type) { case R_ARM_TLS_GD32: tls_type = GOT_TLS_GD; break; + case R_ARM_TLS_GD32_FDPIC: tls_type = GOT_TLS_GD; break; case R_ARM_TLS_IE32: tls_type = GOT_TLS_IE; break; + case R_ARM_TLS_IE32_FDPIC: tls_type = GOT_TLS_IE; break; case R_ARM_TLS_GOTDESC: case R_ARM_TLS_CALL: case R_ARM_THM_TLS_CALL: @@ -14476,7 +15265,8 @@ /* Fall through. */ case R_ARM_TLS_LDM32: - if (r_type == R_ARM_TLS_LDM32) + case R_ARM_TLS_LDM32_FDPIC: + if (r_type == R_ARM_TLS_LDM32 || r_type == R_ARM_TLS_LDM32_FDPIC) htab->tls_ldm_got.refcount++; /* Fall through. */ @@ -14518,7 +15308,7 @@ if (bfd_link_pic (info)) { _bfd_error_handler - (_("%B: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC"), + (_("%pB: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC"), abfd, elf32_arm_howto_table_1[r_type].name, (h) ? h->root.root.string : "a local symbol"); bfd_set_error (bfd_error_bad_value); @@ -14542,7 +15332,8 @@ case R_ARM_THM_MOVT_PREL: /* Should the interworking branches be listed here? */ - if ((bfd_link_pic (info) || htab->root.is_relocatable_executable) + if ((bfd_link_pic (info) || htab->root.is_relocatable_executable + || htab->fdpic_p) && (sec->flags & SEC_ALLOC) != 0) { if (h == NULL @@ -14695,6 +15486,18 @@ if (elf32_arm_howto_from_type (r_type)->pc_relative) p->pc_count += 1; p->count += 1; + if (h == NULL && htab->fdpic_p && !bfd_link_pic(info) + && r_type != R_ARM_ABS32 && r_type != R_ARM_ABS32_NOI) { + /* Here we only support R_ARM_ABS32 and R_ARM_ABS32_NOI + that will become rofixup. */ + /* This is due to the fact that we suppose all will become rofixup. */ + fprintf(stderr, "FDPIC does not yet support %d relocation to become dynamic for executable\n", r_type); + _bfd_error_handler + (_("FDPIC does not yet support %s relocation" + " to become dynamic for executable"), + elf32_arm_howto_table_1[r_type].name); + abort(); + } } } @@ -15357,7 +16160,7 @@ /* Make sure this symbol is output as a dynamic symbol. Undefined weak syms won't yet be marked as dynamic. */ - if (h->dynindx == -1 && !h->forced_local + if (htab->root.dynamic_sections_created && h->dynindx == -1 && !h->forced_local && h->root.type == bfd_link_hash_undefweak) { if (! bfd_elf_link_record_dynamic_symbol (info, h)) @@ -15392,15 +16195,17 @@ if (tls_type & GOT_TLS_GD) { - /* R_ARM_TLS_GD32 needs 2 consecutive GOT slots. If - the symbol is both GD and GDESC, got.offset may - have been overwritten. */ + /* R_ARM_TLS_GD32 and R_ARM_TLS_GD32_FDPIC need two + consecutive GOT slots. If the symbol is both GD + and GDESC, got.offset may have been + overwritten. */ h->got.offset = s->size; s->size += 8; } if (tls_type & GOT_TLS_IE) - /* R_ARM_TLS_IE32 needs one GOT slot. */ + /* R_ARM_TLS_IE32/R_ARM_TLS_IE32_FDPIC need one GOT + slot. */ s->size += 4; } @@ -15437,7 +16242,8 @@ if ((tls_type & GOT_TLS_GD) && indx != 0) elf32_arm_allocate_dynrelocs (info, htab->root.srelgot, 1); } - else if (indx != -1 && !SYMBOL_REFERENCES_LOCAL (info, h)) + else if (((indx != -1) || htab->fdpic_p) + && !SYMBOL_REFERENCES_LOCAL (info, h)) { if (htab->root.dynamic_sections_created) /* Reserve room for the GOT entry's R_ARM_GLOB_DAT relocation. */ @@ -15454,11 +16260,110 @@ || h->root.type != bfd_link_hash_undefweak)) /* Reserve room for the GOT entry's R_ARM_RELATIVE relocation. */ elf32_arm_allocate_dynrelocs (info, htab->root.srelgot, 1); + else if (htab->fdpic_p && tls_type == GOT_NORMAL) + /* Reserve room for rofixup for FDPIC executable. */ + /* TLS relocs do not need space since they are completely + resolved. */ + htab->srofixup->size += 4; } } else h->got.offset = (bfd_vma) -1; + /* FDPIC support. */ + if (eh->fdpic_cnts.gotofffuncdesc_cnt > 0) + { + /* Symbol musn't be exported. */ + if (h->dynindx != -1) + abort(); + + /* We only allocate one function descriptor with its associated relocation. */ + if (eh->fdpic_cnts.funcdesc_offset == -1) + { + asection *s = htab->root.sgot; + + eh->fdpic_cnts.funcdesc_offset = s->size; + s->size += 8; + /* We will add an R_ARM_FUNCDESC_VALUE relocation or two rofixups. */ + if (bfd_link_pic(info)) + elf32_arm_allocate_dynrelocs (info, htab->root.srelgot, 1); + else + htab->srofixup->size += 8; + } + } + + if (eh->fdpic_cnts.gotfuncdesc_cnt > 0) + { + asection *s = htab->root.sgot; + + if (htab->root.dynamic_sections_created && h->dynindx == -1 + && !h->forced_local) + if (! bfd_elf_link_record_dynamic_symbol (info, h)) + return FALSE; + + if (h->dynindx == -1) + { + /* We only allocate one function descriptor with its associated relocation. q */ + if (eh->fdpic_cnts.funcdesc_offset == -1) + { + + eh->fdpic_cnts.funcdesc_offset = s->size; + s->size += 8; + /* We will add an R_ARM_FUNCDESC_VALUE relocation or two rofixups. */ + if (bfd_link_pic(info)) + elf32_arm_allocate_dynrelocs (info, htab->root.srelgot, 1); + else + htab->srofixup->size += 8; + } + } + + /* Add one entry into the GOT and a R_ARM_FUNCDESC or + R_ARM_RELATIVE/rofixup relocation on it. */ + eh->fdpic_cnts.gotfuncdesc_offset = s->size; + s->size += 4; + if (h->dynindx == -1 && !bfd_link_pic(info)) + htab->srofixup->size += 4; + else + elf32_arm_allocate_dynrelocs (info, htab->root.srelgot, 1); + } + + if (eh->fdpic_cnts.funcdesc_cnt > 0) + { + if (htab->root.dynamic_sections_created && h->dynindx == -1 + && !h->forced_local) + if (! bfd_elf_link_record_dynamic_symbol (info, h)) + return FALSE; + + if (h->dynindx == -1) + { + /* We only allocate one function descriptor with its associated relocation. */ + if (eh->fdpic_cnts.funcdesc_offset == -1) + { + asection *s = htab->root.sgot; + + eh->fdpic_cnts.funcdesc_offset = s->size; + s->size += 8; + /* We will add an R_ARM_FUNCDESC_VALUE relocation or two rofixups. */ + if (bfd_link_pic(info)) + elf32_arm_allocate_dynrelocs (info, htab->root.srelgot, 1); + else + htab->srofixup->size += 8; + } + } + if (h->dynindx == -1 && !bfd_link_pic(info)) + { + /* For FDPIC executable we replace R_ARM_RELATIVE with a rofixup. */ + htab->srofixup->size += 4 * eh->fdpic_cnts.funcdesc_cnt; + } + else + { + /* Will need one dynamic reloc per reference. will be either + R_ARM_FUNCDESC or R_ARM_RELATIVE for hidden symbols. */ + elf32_arm_allocate_dynrelocs (info, htab->root.srelgot, + eh->fdpic_cnts.funcdesc_cnt); + } + } + /* Allocate stubs for exported Thumb functions on v4t. */ if (!htab->use_blx && h->dynindx != -1 && h->def_regular @@ -15501,7 +16406,7 @@ space for pc-relative relocs that have become local due to symbol visibility changes. */ - if (bfd_link_pic (info) || htab->root.is_relocatable_executable) + if (bfd_link_pic (info) || htab->root.is_relocatable_executable || htab->fdpic_p) { /* Relocs that use pc_count are PC-relative forms, which will appear on something like ".long foo - ." or "movw REG, foo - .". We want @@ -15548,7 +16453,7 @@ /* Make sure undefined weak symbols are output as a dynamic symbol in PIEs. */ - else if (h->dynindx == -1 + else if (htab->root.dynamic_sections_created && h->dynindx == -1 && !h->forced_local) { if (! bfd_elf_link_record_dynamic_symbol (info, h)) @@ -15604,10 +16509,15 @@ for (p = eh->dyn_relocs; p != NULL; p = p->next) { asection *sreloc = elf_section_data (p->sec)->sreloc; + if (h->type == STT_GNU_IFUNC && eh->plt.noncall_refcount == 0 && SYMBOL_REFERENCES_LOCAL (info, h)) elf32_arm_allocate_irelocs (info, sreloc, p->count); + else if (h->dynindx != -1 && (!bfd_link_pic(info) || !info->symbolic || !h->def_regular)) + elf32_arm_allocate_dynrelocs (info, sreloc, p->count); + else if (htab->fdpic_p && !bfd_link_pic(info)) + htab->srofixup->size += 4 * p->count; else elf32_arm_allocate_dynrelocs (info, sreloc, p->count); } @@ -15633,12 +16543,13 @@ info->flags |= DF_TEXTREL; info->callbacks->minfo - (_("%B: dynamic relocation against `%T' in read-only section `%A'\n"), + (_("%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"), sec->owner, h->root.root.string, sec); /* Not an error, just cut short the traversal. */ return FALSE; } + return TRUE; } @@ -15702,6 +16613,7 @@ asection *srel; bfd_boolean is_vxworks = htab->vxworks_p; unsigned int symndx; + struct fdpic_local *local_fdpic_cnts; if (! is_arm_elf (ibfd)) continue; @@ -15731,7 +16643,10 @@ else if (p->count != 0) { srel = elf_section_data (p->sec)->sreloc; - elf32_arm_allocate_dynrelocs (info, srel, p->count); + if (htab->fdpic_p && !bfd_link_pic(info)) + htab->srofixup->size += 4 * p->count; + else + elf32_arm_allocate_dynrelocs (info, srel, p->count); if ((p->sec->output_section->flags & SEC_READONLY) != 0) info->flags |= DF_TEXTREL; } @@ -15748,15 +16663,54 @@ local_iplt_ptr = elf32_arm_local_iplt (ibfd); local_tls_type = elf32_arm_local_got_tls_type (ibfd); local_tlsdesc_gotent = elf32_arm_local_tlsdesc_gotent (ibfd); + local_fdpic_cnts = elf32_arm_local_fdpic_cnts (ibfd); symndx = 0; s = htab->root.sgot; srel = htab->root.srelgot; for (; local_got < end_local_got; ++local_got, ++local_iplt_ptr, ++local_tls_type, - ++local_tlsdesc_gotent, ++symndx) + ++local_tlsdesc_gotent, ++symndx, ++local_fdpic_cnts) { *local_tlsdesc_gotent = (bfd_vma) -1; local_iplt = *local_iplt_ptr; + + /* FDPIC support. */ + if (local_fdpic_cnts->gotofffuncdesc_cnt > 0) + { + if (local_fdpic_cnts->funcdesc_offset == -1) + { + local_fdpic_cnts->funcdesc_offset = s->size; + s->size += 8; + + /* We will add an R_ARM_FUNCDESC_VALUE relocation or two rofixups. */ + if (bfd_link_pic(info)) + elf32_arm_allocate_dynrelocs (info, srel, 1); + else + htab->srofixup->size += 8; + } + } + + if (local_fdpic_cnts->funcdesc_cnt > 0) + { + if (local_fdpic_cnts->funcdesc_offset == -1) + { + local_fdpic_cnts->funcdesc_offset = s->size; + s->size += 8; + + /* We will add an R_ARM_FUNCDESC_VALUE relocation or two rofixups. */ + if (bfd_link_pic(info)) + elf32_arm_allocate_dynrelocs (info, srel, 1); + else + htab->srofixup->size += 8; + } + + /* We will add n R_ARM_RELATIVE relocations or n rofixups. */ + if (bfd_link_pic(info)) + elf32_arm_allocate_dynrelocs (info, srel, local_fdpic_cnts->funcdesc_cnt); + else + htab->srofixup->size += 4 * local_fdpic_cnts->funcdesc_cnt; + } + if (local_iplt != NULL) { struct elf_dyn_relocs *p; @@ -15831,13 +16785,15 @@ && (local_iplt == NULL || local_iplt->arm.noncall_refcount == 0)) elf32_arm_allocate_irelocs (info, srel, 1); - else if (bfd_link_pic (info) || output_bfd->flags & DYNAMIC) + else if (bfd_link_pic (info) || output_bfd->flags & DYNAMIC || htab->fdpic_p) { - if ((bfd_link_pic (info) && !(*local_tls_type & GOT_TLS_GDESC)) - || *local_tls_type & GOT_TLS_GD) + if ((bfd_link_pic (info) && !(*local_tls_type & GOT_TLS_GDESC))) elf32_arm_allocate_dynrelocs (info, srel, 1); + else if (htab->fdpic_p && *local_tls_type & GOT_NORMAL) + htab->srofixup->size += 4; - if (bfd_link_pic (info) && *local_tls_type & GOT_TLS_GDESC) + if ((bfd_link_pic (info) || htab->fdpic_p) + && *local_tls_type & GOT_TLS_GDESC) { elf32_arm_allocate_dynrelocs (info, htab->root.srelplt, 1); @@ -15853,7 +16809,7 @@ if (htab->tls_ldm_got.refcount > 0) { /* Allocate two GOT entries and one dynamic relocation (if necessary) - for R_ARM_TLS_LDM32 relocations. */ + for R_ARM_TLS_LDM32/R_ARM_TLS_LDM32_FDPIC relocations. */ htab->tls_ldm_got.offset = htab->root.sgot->size; htab->root.sgot->size += 8; if (bfd_link_pic (info)) @@ -15862,6 +16818,11 @@ else htab->tls_ldm_got.offset = -1; + /* At the very end of the .rofixup section is a pointer to the GOT, + reserve space for it. */ + if (htab->fdpic_p && htab->srofixup != NULL) + htab->srofixup->size += 4; + /* Allocate global sym .plt and .got entries, and space for global sym dynamic relocs. */ elf_link_hash_traverse (& htab->root, allocate_dynrelocs_for_symbol, info); @@ -15878,7 +16839,7 @@ if (!bfd_elf32_arm_process_before_allocation (ibfd, info) || !bfd_elf32_arm_vfp11_erratum_scan (ibfd, info) || !bfd_elf32_arm_stm32l4xx_erratum_scan (ibfd, info)) - _bfd_error_handler (_("Errors encountered processing file %B"), ibfd); + _bfd_error_handler (_("errors encountered processing file %pB"), ibfd); } /* Allocate space for the glue sections now that we've sized them. */ @@ -15952,7 +16913,8 @@ && s != htab->root.iplt && s != htab->root.igotplt && s != htab->root.sdynbss - && s != htab->root.sdynrelro) + && s != htab->root.sdynrelro + && s != htab->srofixup) { /* It's not one of our sections, so don't allocate space. */ continue; @@ -16058,6 +17020,9 @@ struct bfd_link_info *info) { asection *tls_sec; + struct elf32_arm_link_hash_table *htab; + + htab = elf32_arm_hash_table (info); if (bfd_link_relocatable (info)) return TRUE; @@ -16090,6 +17055,12 @@ (*bed->elf_backend_hide_symbol) (info, tlsbase, TRUE); } } + + if (htab->fdpic_p && !bfd_link_relocatable (info) + && !bfd_elf_stack_segment_size (output_bfd, info, + "__stacksize", DEFAULT_STACK_SIZE)) + return FALSE; + return TRUE; } @@ -16174,10 +17145,10 @@ } /* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute. On VxWorks, - the _GLOBAL_OFFSET_TABLE_ symbol is not absolute: it is relative - to the ".got" section. */ + and for FDPIC, the _GLOBAL_OFFSET_TABLE_ symbol is not absolute: + it is relative to the ".got" section. */ if (h == htab->root.hdynamic - || (!htab->vxworks_p && h == htab->root.hgot)) + || (!htab->fdpic_p && !htab->vxworks_p && h == htab->root.hgot)) sym->st_shndx = SHN_ABS; return TRUE; @@ -16584,6 +17555,21 @@ elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 4; } + /* At the very end of the .rofixup section is a pointer to the GOT. */ + if (htab->fdpic_p && htab->srofixup != NULL) + { + struct elf_link_hash_entry *hgot = htab->root.hgot; + + bfd_vma got_value = hgot->root.u.def.value + + hgot->root.u.def.section->output_section->vma + + hgot->root.u.def.section->output_offset; + + arm_elf_add_rofixup(output_bfd, htab->srofixup, got_value); + + /* Make sure we allocated and generated the same number of fixups. */ + BFD_ASSERT (htab->srofixup->reloc_count * 4 == htab->srofixup->size); + } + return TRUE; } @@ -16607,6 +17593,9 @@ globals = elf32_arm_hash_table (link_info); if (globals != NULL && globals->byteswap_code) i_ehdrp->e_flags |= EF_ARM_BE8; + + if (globals->fdpic_p) + i_ehdrp->e_ident[EI_OSABI] |= ELFOSABI_ARM_FDPIC; } if (EF_ARM_EABI_VERSION (i_ehdrp->e_flags) == EF_ARM_EABI_VER5 @@ -16835,6 +17824,23 @@ if (!elf32_arm_output_map_sym (osi, ARM_MAP_ARM, addr)) return FALSE; } + else if (htab->fdpic_p) + { + enum map_symbol_type type = using_thumb_only(htab) + ? ARM_MAP_THUMB + : ARM_MAP_ARM; + + if (elf32_arm_plt_needs_thumb_stub_p (osi->info, arm_plt)) + if (!elf32_arm_output_map_sym (osi, ARM_MAP_THUMB, addr - 4)) + return FALSE; + if (!elf32_arm_output_map_sym (osi, type, addr)) + return FALSE; + if (!elf32_arm_output_map_sym (osi, ARM_MAP_DATA, addr + 16)) + return FALSE; + if (htab->plt_entry_size == 4 * ARRAY_SIZE(elf32_arm_fdpic_plt_entry)) + if (!elf32_arm_output_map_sym (osi, type, addr + 24)) + return FALSE; + } else if (using_thumb_only (htab)) { if (!elf32_arm_output_map_sym (osi, ARM_MAP_THUMB, addr)) @@ -17191,7 +18197,7 @@ if (!elf32_arm_output_map_sym (&osi, ARM_MAP_ARM, 0)) return FALSE; } - else if (using_thumb_only (htab)) + else if (using_thumb_only (htab) && !htab->fdpic_p) { if (!elf32_arm_output_map_sym (&osi, ARM_MAP_THUMB, 0)) return FALSE; @@ -17200,7 +18206,7 @@ if (!elf32_arm_output_map_sym (&osi, ARM_MAP_THUMB, 16)) return FALSE; } - else if (!htab->symbian_p) + else if (!htab->symbian_p && !htab->fdpic_p) { if (!elf32_arm_output_map_sym (&osi, ARM_MAP_ARM, 0)) return FALSE; @@ -17491,7 +18497,7 @@ This check is just to be on the safe side... */ if ((veneered_insn_loc & ~0xfff) == (veneer_entry_loc & ~0xfff)) { - _bfd_error_handler (_("%B: error: Cortex-A8 erratum stub is " + _bfd_error_handler (_("%pB: error: Cortex-A8 erratum stub is " "allocated in unsafe location"), abfd); return FALSE; } @@ -17518,7 +18524,7 @@ { /* There's not much we can do apart from complain if this happens. */ - _bfd_error_handler (_("%B: error: Cortex-A8 erratum stub out " + _bfd_error_handler (_("%pB: error: Cortex-A8 erratum stub out " "of range (input file too large)"), abfd); return FALSE; } @@ -18345,7 +19351,7 @@ if ((signed) branch_to_veneer < -(1 << 25) || (signed) branch_to_veneer >= (1 << 25)) - _bfd_error_handler (_("%B: error: VFP11 veneer out of " + _bfd_error_handler (_("%pB: error: VFP11 veneer out of " "range"), output_bfd); insn |= (branch_to_veneer >> 2) & 0xffffff; @@ -18367,7 +19373,7 @@ if ((signed) branch_from_veneer < -(1 << 25) || (signed) branch_from_veneer >= (1 << 25)) - _bfd_error_handler (_("%B: error: VFP11 veneer out of " + _bfd_error_handler (_("%pB: error: VFP11 veneer out of " "range"), output_bfd); /* Original instruction. */ @@ -18418,12 +19424,13 @@ branch_to_veneer - (1 << 24) : 0; _bfd_error_handler - (_("%B(%#Lx): error: Cannot create STM32L4XX veneer. " - "Jump out of range by %Ld bytes. " - "Cannot encode branch instruction. "), + (_("%pB(%#" PRIx64 "): error: " + "cannot create STM32L4XX veneer; " + "jump out of range by %" PRId64 " bytes; " + "cannot encode branch instruction"), output_bfd, - stm32l4xx_errnode->vma - 4, - out_of_range); + (uint64_t) (stm32l4xx_errnode->vma - 4), + (int64_t) out_of_range); continue; } @@ -18456,8 +19463,8 @@ STM32L4XX_ERRATUM_LDM_VENEER_SIZE) < -(1 << 24) || (signed) (veneer_r - veneer) >= (1 << 24)) { - _bfd_error_handler (_("%B: error: Cannot create STM32L4XX " - "veneer."), output_bfd); + _bfd_error_handler (_("%pB: error: cannot create STM32L4XX " + "veneer"), output_bfd); continue; } @@ -18787,11 +19794,6 @@ Elf_Internal_Sym *sym, const char **namep, flagword *flagsp, asection **secp, bfd_vma *valp) { - if (ELF_ST_TYPE (sym->st_info) == STT_GNU_IFUNC - && (abfd->flags & DYNAMIC) == 0 - && bfd_get_flavour (info->output_bfd) == bfd_target_elf_flavour) - elf_tdata (info->output_bfd)->has_gnu_symbols |= elf_gnu_symbol_ifunc; - if (elf32_arm_hash_table (info) == NULL) return FALSE; @@ -19379,6 +20381,78 @@ #define ELF_COMMONPAGESIZE 0x1000 +/* FDPIC Targets. */ + +#undef TARGET_LITTLE_SYM +#define TARGET_LITTLE_SYM arm_elf32_fdpic_le_vec +#undef TARGET_LITTLE_NAME +#define TARGET_LITTLE_NAME "elf32-littlearm-fdpic" +#undef TARGET_BIG_SYM +#define TARGET_BIG_SYM arm_elf32_fdpic_be_vec +#undef TARGET_BIG_NAME +#define TARGET_BIG_NAME "elf32-bigarm-fdpic" +#undef elf_match_priority +#define elf_match_priority 128 +#undef ELF_OSABI +#define ELF_OSABI ELFOSABI_ARM_FDPIC + +/* Like elf32_arm_link_hash_table_create -- but overrides + appropriately for FDPIC. */ + +static struct bfd_link_hash_table * +elf32_arm_fdpic_link_hash_table_create (bfd *abfd) +{ + struct bfd_link_hash_table *ret; + + ret = elf32_arm_link_hash_table_create (abfd); + if (ret) + { + struct elf32_arm_link_hash_table *htab = (struct elf32_arm_link_hash_table *) ret; + + htab->fdpic_p = 1; + } + return ret; +} + +/* We need dynamic symbols for every section, since segments can + relocate independently. */ +static bfd_boolean +elf32_arm_fdpic_omit_section_dynsym (bfd *output_bfd ATTRIBUTE_UNUSED, + struct bfd_link_info *info + ATTRIBUTE_UNUSED, + asection *p ATTRIBUTE_UNUSED) +{ + switch (elf_section_data (p)->this_hdr.sh_type) + { + case SHT_PROGBITS: + case SHT_NOBITS: + /* If sh_type is yet undecided, assume it could be + SHT_PROGBITS/SHT_NOBITS. */ + case SHT_NULL: + return FALSE; + + /* There shouldn't be section relative relocations + against any other section. */ + default: + return TRUE; + } +} + +#undef elf32_bed +#define elf32_bed elf32_arm_fdpic_bed + +#undef bfd_elf32_bfd_link_hash_table_create +#define bfd_elf32_bfd_link_hash_table_create elf32_arm_fdpic_link_hash_table_create + +#undef elf_backend_omit_section_dynsym +#define elf_backend_omit_section_dynsym elf32_arm_fdpic_omit_section_dynsym + +#include "elf32-target.h" + +#undef elf_match_priority +#undef ELF_OSABI +#undef elf_backend_omit_section_dynsym + /* VxWorks Targets. */ #undef TARGET_LITTLE_SYM @@ -19478,7 +20552,7 @@ && !(ibfd->flags & DYNAMIC) && (in_flags & EF_ARM_BE8)) { - _bfd_error_handler (_("error: %B is already in final BE8 format"), + _bfd_error_handler (_("error: %pB is already in final BE8 format"), ibfd); return FALSE; } @@ -19554,7 +20628,7 @@ EF_ARM_EABI_VERSION (out_flags))) { _bfd_error_handler - (_("error: Source object %B has EABI version %d, but target %B has EABI version %d"), + (_("error: source object %pB has EABI version %d, but target %pB has EABI version %d"), ibfd, (in_flags & EF_ARM_EABIMASK) >> 24, obfd, (out_flags & EF_ARM_EABIMASK) >> 24); return FALSE; @@ -19569,7 +20643,7 @@ if ((in_flags & EF_ARM_APCS_26) != (out_flags & EF_ARM_APCS_26)) { _bfd_error_handler - (_("error: %B is compiled for APCS-%d, whereas target %B uses APCS-%d"), + (_("error: %pB is compiled for APCS-%d, whereas target %pB uses APCS-%d"), ibfd, in_flags & EF_ARM_APCS_26 ? 26 : 32, obfd, out_flags & EF_ARM_APCS_26 ? 26 : 32); flags_compatible = FALSE; @@ -19579,11 +20653,11 @@ { if (in_flags & EF_ARM_APCS_FLOAT) _bfd_error_handler - (_("error: %B passes floats in float registers, whereas %B passes them in integer registers"), + (_("error: %pB passes floats in float registers, whereas %pB passes them in integer registers"), ibfd, obfd); else _bfd_error_handler - (_("error: %B passes floats in integer registers, whereas %B passes them in float registers"), + (_("error: %pB passes floats in integer registers, whereas %pB passes them in float registers"), ibfd, obfd); flags_compatible = FALSE; @@ -19593,12 +20667,12 @@ { if (in_flags & EF_ARM_VFP_FLOAT) _bfd_error_handler - (_("error: %B uses VFP instructions, whereas %B does not"), - ibfd, obfd); + (_("error: %pB uses %s instructions, whereas %pB does not"), + ibfd, "VFP", obfd); else _bfd_error_handler - (_("error: %B uses FPA instructions, whereas %B does not"), - ibfd, obfd); + (_("error: %pB uses %s instructions, whereas %pB does not"), + ibfd, "FPA", obfd); flags_compatible = FALSE; } @@ -19607,12 +20681,12 @@ { if (in_flags & EF_ARM_MAVERICK_FLOAT) _bfd_error_handler - (_("error: %B uses Maverick instructions, whereas %B does not"), - ibfd, obfd); + (_("error: %pB uses %s instructions, whereas %pB does not"), + ibfd, "Maverick", obfd); else _bfd_error_handler - (_("error: %B does not use Maverick instructions, whereas %B does"), - ibfd, obfd); + (_("error: %pB does not use %s instructions, whereas %pB does"), + ibfd, "Maverick", obfd); flags_compatible = FALSE; } @@ -19630,11 +20704,11 @@ { if (in_flags & EF_ARM_SOFT_FLOAT) _bfd_error_handler - (_("error: %B uses software FP, whereas %B uses hardware FP"), + (_("error: %pB uses software FP, whereas %pB uses hardware FP"), ibfd, obfd); else _bfd_error_handler - (_("error: %B uses hardware FP, whereas %B uses software FP"), + (_("error: %pB uses hardware FP, whereas %pB uses software FP"), ibfd, obfd); flags_compatible = FALSE; @@ -19648,13 +20722,13 @@ if (in_flags & EF_ARM_INTERWORK) { _bfd_error_handler - (_("Warning: %B supports interworking, whereas %B does not"), + (_("warning: %pB supports interworking, whereas %pB does not"), ibfd, obfd); } else { _bfd_error_handler - (_("Warning: %B does not support interworking, whereas %B does"), + (_("warning: %pB does not support interworking, whereas %pB does"), ibfd, obfd); } } diff -Nru gdb-8.1/bfd/elf32-avr.c gdb-8.2/bfd/elf32-avr.c --- gdb-8.1/bfd/elf32-avr.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-avr.c 2018-09-05 07:44:28.000000000 +0000 @@ -945,8 +945,8 @@ /* Set the howto pointer for an AVR ELF reloc. */ -static void -avr_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +avr_info_to_howto_rela (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { @@ -956,10 +956,13 @@ if (r_type >= (unsigned int) R_AVR_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid AVR reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = &elf_avr_howto_table[r_type]; + return TRUE; } static bfd_boolean diff -Nru gdb-8.1/bfd/elf32-bfin.c gdb-8.2/bfd/elf32-bfin.c --- gdb-8.1/bfd/elf32-bfin.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-bfin.c 2018-09-05 07:27:13.000000000 +0000 @@ -1040,8 +1040,8 @@ }; -static void -bfin_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +bfin_info_to_howto (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { @@ -1056,7 +1056,15 @@ cache_ptr->howto = &bfin_gnuext_howto_table [r_type - BFIN_GNUEXT_RELOC_MIN]; else - cache_ptr->howto = (reloc_howto_type *) NULL; + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + + return TRUE; } /* Given a BFD reloc type, return the howto. */ @@ -1574,9 +1582,10 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): unresolvable relocation against symbol `%s'"), - input_bfd, - input_section, rel->r_offset, h->root.root.string); + (_("%pB(%pA+%#" PRIx64 "): " + "unresolvable relocation against symbol `%s'"), + input_bfd, input_section, (uint64_t) rel->r_offset, + h->root.root.string); return FALSE; } @@ -1605,8 +1614,9 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): reloc against `%s': error %d"), - input_bfd, input_section, rel->r_offset, name, (int) r); + (_("%pB(%pA+%#" PRIx64 "): reloc against `%s': error %d"), + input_bfd, input_section, (uint64_t) rel->r_offset, + name, (int) r); return FALSE; } } @@ -2625,8 +2635,9 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: relocation at `%A+%#Lx' references symbol `%s' with nonzero addend"), - input_bfd, input_section, rel->r_offset, name); + (_("%pB: relocation at `%pA+%#" PRIx64 "' " + "references symbol `%s' with nonzero addend"), + input_bfd, input_section, (uint64_t) rel->r_offset, name); return FALSE; } @@ -4684,7 +4695,7 @@ bad_reloc: _bfd_error_handler /* xgettext:c-format */ - (_("%B: unsupported relocation type %d"), + (_("%pB: unsupported relocation type %#x"), abfd, (int) ELF32_R_TYPE (rel->r_info)); return FALSE; } @@ -4759,7 +4770,7 @@ if (0) #endif _bfd_error_handler - ("old_flags = 0x%.8x, new_flags = 0x%.8x, init = %s, filename = %B", + ("old_flags = 0x%.8x, new_flags = 0x%.8x, init = %s, filename = %pB", old_flags, new_flags, elf_flags_init (obfd) ? "yes" : "no", ibfd); if (!elf_flags_init (obfd)) /* First call, no flags set. */ @@ -4773,11 +4784,11 @@ error = TRUE; if (IS_FDPIC (obfd)) _bfd_error_handler - (_("%B: cannot link non-fdpic object file into fdpic executable"), + (_("%pB: cannot link non-fdpic object file into fdpic executable"), ibfd); else _bfd_error_handler - (_("%B: cannot link fdpic object file into non-fdpic executable"), + (_("%pB: cannot link fdpic object file into non-fdpic executable"), ibfd); } @@ -5337,7 +5348,7 @@ /* We can only relocate absolute longword relocs at run time. */ if (ELF32_R_TYPE (irel->r_info) != (int) R_BFIN_BYTE4_DATA) { - *errmsg = _("unsupported reloc type"); + *errmsg = _("unsupported relocation type"); bfd_set_error (bfd_error_bad_value); goto error_return; } @@ -5421,7 +5432,7 @@ #define bfd_elf32_bfd_reloc_name_lookup \ bfin_bfd_reloc_name_lookup #define elf_info_to_howto bfin_info_to_howto -#define elf_info_to_howto_rel 0 +#define elf_info_to_howto_rel NULL #define elf_backend_object_p elf32_bfin_object_p #define bfd_elf32_bfd_is_local_label_name \ diff -Nru gdb-8.1/bfd/elf32-cr16.c gdb-8.2/bfd/elf32-cr16.c --- gdb-8.1/bfd/elf32-cr16.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-cr16.c 2018-09-05 07:27:13.000000000 +0000 @@ -641,7 +641,7 @@ /* Retrieve a howto ptr using a BFD reloc_code. */ static reloc_howto_type * -elf_cr16_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, +elf_cr16_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code) { unsigned int i; @@ -650,7 +650,8 @@ if (code == cr16_reloc_map[i].bfd_reloc_enum) return &cr16_elf_howto_table[cr16_reloc_map[i].cr16_reloc_type]; - _bfd_error_handler (_("Unsupported CR16 relocation type: 0x%x\n"), code); + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, code); return NULL; } @@ -670,8 +671,8 @@ /* Retrieve a howto ptr using an internal relocation entry. */ -static void -elf_cr16_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr, +static bfd_boolean +elf_cr16_info_to_howto (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { unsigned int r_type = ELF32_R_TYPE (dst->r_info); @@ -679,12 +680,13 @@ if (r_type >= R_CR16_MAX) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: unrecognised CR16 reloc number: %d"), + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), abfd, r_type); bfd_set_error (bfd_error_bad_value); - r_type = R_CR16_NONE; + return FALSE; } cache_ptr->howto = cr16_elf_howto_table + r_type; + return TRUE; } /* Look through the relocs for a section during the first phase. @@ -2798,7 +2800,7 @@ if (!((ELF32_R_TYPE (irel->r_info) == (int) R_CR16_NUM32a) || (ELF32_R_TYPE (irel->r_info) == (int) R_CR16_NUM32))) { - *errmsg = _("unsupported reloc type"); + *errmsg = _("unsupported relocation type"); bfd_set_error (bfd_error_bad_value); goto error_return; } @@ -2894,7 +2896,7 @@ #define bfd_elf32_bfd_reloc_type_lookup elf_cr16_reloc_type_lookup #define bfd_elf32_bfd_reloc_name_lookup elf_cr16_reloc_name_lookup #define elf_info_to_howto elf_cr16_info_to_howto -#define elf_info_to_howto_rel 0 +#define elf_info_to_howto_rel NULL #define elf_backend_relocate_section elf32_cr16_relocate_section #define bfd_elf32_bfd_relax_section elf32_cr16_relax_section #define bfd_elf32_bfd_get_relocated_section_contents \ @@ -2921,8 +2923,7 @@ _bfd_cr16_elf_adjust_dynamic_symbol #define elf_backend_size_dynamic_sections \ _bfd_cr16_elf_size_dynamic_sections -#define elf_backend_omit_section_dynsym \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true) +#define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all #define elf_backend_finish_dynamic_symbol \ _bfd_cr16_elf_finish_dynamic_symbol #define elf_backend_finish_dynamic_sections \ diff -Nru gdb-8.1/bfd/elf32-cr16c.c gdb-8.2/bfd/elf32-cr16c.c --- gdb-8.1/bfd/elf32-cr16c.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-cr16c.c 2018-09-05 07:27:13.000000000 +0000 @@ -165,15 +165,15 @@ return NULL; } -static void +static bfd_boolean elf_cr16c_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr ATTRIBUTE_UNUSED, Elf_Internal_Rela *dst ATTRIBUTE_UNUSED) { - abort (); + return FALSE; } -static void +static bfd_boolean elf_cr16c_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr, Elf_Internal_Rela *dst) @@ -183,10 +183,13 @@ if (r_type >= RINDEX_16C_MAX) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid CR16C reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = &elf_howto_table[r_type]; + return TRUE; } /* Perform a relocation as part of a final link. */ diff -Nru gdb-8.1/bfd/elf32-cris.c gdb-8.2/bfd/elf32-cris.c --- gdb-8.1/bfd/elf32-cris.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-cris.c 2018-09-05 07:27:13.000000000 +0000 @@ -453,7 +453,7 @@ /* Set the howto pointer for an CRIS ELF reloc. */ -static void +static bfd_boolean cris_info_to_howto_rela (bfd * abfd ATTRIBUTE_UNUSED, arelent * cache_ptr, Elf_Internal_Rela * dst) @@ -464,10 +464,13 @@ if (r_type >= R_CRIS_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid CRIS reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = & cris_elf_howto_table [r_type]; + return TRUE; } bfd_reloc_status_type @@ -1113,7 +1116,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B, section %A: unresolvable relocation %s against symbol `%s'"), + (_("%pB, section %pA: unresolvable relocation %s against symbol `%s'"), input_bfd, input_section, cris_elf_howto_table[r_type].name, @@ -1178,10 +1181,10 @@ _bfd_error_handler ((h->got.offset == (bfd_vma) -1) /* xgettext:c-format */ - ? _("%B, section %A: No PLT nor GOT for relocation %s" + ? _("%pB, section %pA: no PLT nor GOT for relocation %s" " against symbol `%s'") /* xgettext:c-format */ - : _("%B, section %A: No PLT for relocation %s" + : _("%pB, section %pA: no PLT for relocation %s" " against symbol `%s'"), input_bfd, input_section, @@ -1305,21 +1308,21 @@ if (h == NULL) _bfd_error_handler /* xgettext:c-format */ - (_("%B, section %A: relocation %s with non-zero addend %Ld" - " against local symbol"), + (_("%pB, section %pA: relocation %s with non-zero addend" + " %" PRId64 " against local symbol"), input_bfd, input_section, cris_elf_howto_table[r_type].name, - rel->r_addend); + (int64_t) rel->r_addend); else _bfd_error_handler /* xgettext:c-format */ - (_("%B, section %A: relocation %s with non-zero addend %Ld" - " against symbol `%s'"), + (_("%pB, section %pA: relocation %s with non-zero addend" + " %" PRId64 " against symbol `%s'"), input_bfd, input_section, cris_elf_howto_table[r_type].name, - rel->r_addend, + (int64_t) rel->r_addend, symname[0] != '\0' ? symname : _("[whose name is lost]")); bfd_set_error (bfd_error_bad_value); @@ -1341,7 +1344,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B, section %A: relocation %s is" + (_("%pB, section %pA: relocation %s is" " not allowed for global symbol: `%s'"), input_bfd, input_section, @@ -1358,7 +1361,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B, section %A: relocation %s with no GOT created"), + (_("%pB, section %pA: relocation %s with no GOT created"), input_bfd, input_section, cris_elf_howto_table[r_type].name); @@ -1575,10 +1578,10 @@ ((h->root.type == bfd_link_hash_undefined) /* We shouldn't get here for GCC-emitted code. */ /* xgettext:c-format */ - ? _("%B, section %A: relocation %s has an undefined" + ? _("%pB, section %pA: relocation %s has an undefined" " reference to `%s', perhaps a declaration mixup?") /* xgettext:c-format */ - : _("%B, section %A: relocation %s is" + : _("%pB, section %pA: relocation %s is" " not allowed for `%s', a global symbol with default" " visibility, perhaps a declaration mixup?"), input_bfd, @@ -1662,12 +1665,12 @@ to pass us these kinds of things. */ _bfd_error_handler /* xgettext:c-format */ - (_("%B, section %A: relocation %s with non-zero addend %Ld" - " against symbol `%s'"), + (_("%pB, section %pA: relocation %s with non-zero addend" + " %" PRId64 " against symbol `%s'"), input_bfd, input_section, cris_elf_howto_table[r_type].name, - rel->r_addend, + (int64_t) rel->r_addend, symname[0] != '\0' ? symname : _("[whose name is lost]")); bfd_set_error (bfd_error_bad_value); @@ -1815,12 +1818,12 @@ things. */ _bfd_error_handler /* xgettext:c-format */ - (_("%B, section %A: relocation %s with non-zero addend %Ld" - " against symbol `%s'"), + (_("%pB, section %pA: relocation %s with non-zero addend" + " %" PRId64 " against symbol `%s'"), input_bfd, input_section, cris_elf_howto_table[r_type].name, - rel->r_addend, + (int64_t) rel->r_addend, symname[0] != '\0' ? symname : _("[whose name is lost]")); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -1949,7 +1952,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B, section %A: relocation %s is" + (_("%pB, section %pA: relocation %s is" " not allowed for symbol: `%s'" " which is defined outside the program," " perhaps a declaration mixup?"), @@ -3044,7 +3047,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B, section %A:\n v10/v32 compatible object" + (_("%pB, section %pA: v10/v32 compatible object" " must not contain a PIC relocation"), abfd, sec); return FALSE; @@ -3098,7 +3101,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B, section %A:\n relocation %s not valid" + (_("%pB, section %pA:\n relocation %s not valid" " in a shared object;" " typically an option mixup, recompile with -fPIC"), abfd, @@ -3316,7 +3319,7 @@ /* FIXME: How do we make this optionally a warning only? */ _bfd_error_handler /* xgettext:c-format */ - (_("%B, section %A:\n relocation %s should not" + (_("%pB, section %pA: relocation %s should not" " be used in a shared object; recompile with -fPIC"), abfd, sec, @@ -3741,8 +3744,8 @@ /* FIXME: How do we make this optionally a warning only? */ _bfd_error_handler /* xgettext:c-format */ - (_("%B, section `%A', to symbol `%s':\n" - " relocation %s should not be used" + (_("%pB, section `%pA', to symbol `%s':" + " relocation %s should not be used" " in a shared object; recompile with -fPIC"), s->section->owner, s->section, @@ -3854,7 +3857,7 @@ default: _bfd_abort (__FILE__, __LINE__, - _("Unexpected machine number")); + _("unexpected machine number")); } elf_elfheader (abfd)->e_flags = e_flags; @@ -3955,8 +3958,8 @@ { _bfd_error_handler (bfd_get_symbol_leading_char (ibfd) == '_' - ? _("%B: uses _-prefixed symbols, but writing file with non-prefixed symbols") - : _("%B: uses non-prefixed symbols, but writing file with _-prefixed symbols"), + ? _("%pB: uses _-prefixed symbols, but writing file with non-prefixed symbols") + : _("%pB: uses non-prefixed symbols, but writing file with _-prefixed symbols"), ibfd); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -3975,9 +3978,9 @@ { _bfd_error_handler ((imach == bfd_mach_cris_v32) - ? _("%B contains CRIS v32 code, incompatible" + ? _("%pB contains CRIS v32 code, incompatible" " with previous objects") - : _("%B contains non-CRIS-v32 code, incompatible" + : _("%pB contains non-CRIS-v32 code, incompatible" " with previous objects"), ibfd); bfd_set_error (bfd_error_bad_value); diff -Nru gdb-8.1/bfd/elf32-crx.c gdb-8.2/bfd/elf32-crx.c --- gdb-8.1/bfd/elf32-crx.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-crx.c 2018-09-05 07:27:13.000000000 +0000 @@ -28,7 +28,7 @@ static reloc_howto_type *elf_crx_reloc_type_lookup (bfd *, bfd_reloc_code_real_type); -static void elf_crx_info_to_howto +static bfd_boolean elf_crx_info_to_howto (bfd *, arelent *, Elf_Internal_Rela *); static bfd_boolean elf32_crx_relax_delete_bytes (struct bfd_link_info *, bfd *, asection *, bfd_vma, int); @@ -418,20 +418,21 @@ /* Retrieve a howto ptr using an internal relocation entry. */ -static void -elf_crx_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr, +static bfd_boolean +elf_crx_info_to_howto (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { unsigned int r_type = ELF32_R_TYPE (dst->r_info); if (r_type >= R_CRX_MAX) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: unrecognised CRX reloc number: %d"), + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), abfd, r_type); bfd_set_error (bfd_error_bad_value); - r_type = R_CRX_NONE; + return FALSE; } cache_ptr->howto = &crx_elf_howto_table[r_type]; + return TRUE; } /* Perform a relocation as part of a final link. */ @@ -1320,7 +1321,7 @@ #define bfd_elf32_bfd_reloc_name_lookup \ elf_crx_reloc_name_lookup #define elf_info_to_howto elf_crx_info_to_howto -#define elf_info_to_howto_rel 0 +#define elf_info_to_howto_rel NULL #define elf_backend_relocate_section elf32_crx_relocate_section #define bfd_elf32_bfd_relax_section elf32_crx_relax_section #define bfd_elf32_bfd_get_relocated_section_contents \ diff -Nru gdb-8.1/bfd/elf32-d10v.c gdb-8.2/bfd/elf32-d10v.c --- gdb-8.1/bfd/elf32-d10v.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-d10v.c 2018-09-05 07:27:13.000000000 +0000 @@ -220,8 +220,8 @@ /* Set the howto pointer for an D10V ELF reloc. */ -static void -d10v_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +d10v_info_to_howto_rel (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { @@ -231,10 +231,13 @@ if (r_type >= (unsigned int) R_D10V_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid D10V reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = &elf_d10v_howto_table[r_type]; + return TRUE; } static asection * @@ -539,7 +542,7 @@ #define TARGET_BIG_SYM d10v_elf32_vec #define TARGET_BIG_NAME "elf32-d10v" -#define elf_info_to_howto 0 +#define elf_info_to_howto NULL #define elf_info_to_howto_rel d10v_info_to_howto_rel #define elf_backend_object_p 0 #define elf_backend_final_write_processing 0 diff -Nru gdb-8.1/bfd/elf32-d30v.c gdb-8.2/bfd/elf32-d30v.c --- gdb-8.1/bfd/elf32-d30v.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-d30v.c 2018-09-05 07:27:13.000000000 +0000 @@ -508,8 +508,8 @@ /* Set the howto pointer for an D30V ELF reloc (type REL). */ -static void -d30v_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +d30v_info_to_howto_rel (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { @@ -519,16 +519,19 @@ if (r_type >= (unsigned int) R_D30V_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid D30V reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = &elf_d30v_howto_table[r_type]; + return TRUE; } /* Set the howto pointer for an D30V ELF reloc (type RELA). */ -static void -d30v_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +d30v_info_to_howto_rela (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { @@ -538,10 +541,13 @@ if (r_type >= (unsigned int) R_D30V_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid D30V reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = &elf_d30v_howto_table[r_type]; + return TRUE; } #define ELF_ARCH bfd_arch_d30v diff -Nru gdb-8.1/bfd/elf32-dlx.c gdb-8.2/bfd/elf32-dlx.c --- gdb-8.1/bfd/elf32-dlx.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-dlx.c 2018-09-05 07:27:13.000000000 +0000 @@ -138,7 +138,7 @@ if (strcmp (input_section->name, symbol->section->output_section->name) != 0) { _bfd_error_handler - (_("BFD Link Error: branch (PC rel16) to section (%s) not supported"), + (_("branch (PC rel16) to section (%s) not supported"), symbol->section->output_section->name); return bfd_reloc_undefined; } @@ -201,7 +201,7 @@ if (strcmp (input_section->name, symbol->section->output_section->name) != 0) { _bfd_error_handler - (_("BFD Link Error: jump (PC rel26) to section (%s) not supported"), + (_("jump (PC rel26) to section (%s) not supported"), symbol->section->output_section->name); return bfd_reloc_undefined; } @@ -530,7 +530,7 @@ } static reloc_howto_type * -dlx_rtype_to_howto (unsigned int r_type) +dlx_rtype_to_howto (bfd *abfd, unsigned int r_type) { switch (r_type) { @@ -545,31 +545,33 @@ default: if (r_type >= (unsigned int) R_DLX_max) { - _bfd_error_handler (_("Invalid DLX reloc number: %d"), r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return NULL; } return & dlx_elf_howto_table[r_type]; } } -static void +static bfd_boolean elf32_dlx_info_to_howto (bfd * abfd ATTRIBUTE_UNUSED, arelent * cache_ptr ATTRIBUTE_UNUSED, Elf_Internal_Rela * dst ATTRIBUTE_UNUSED) { - abort (); + return FALSE; } -static void -elf32_dlx_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +elf32_dlx_info_to_howto_rel (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { unsigned int r_type; r_type = ELF32_R_TYPE (dst->r_info); - cache_ptr->howto = dlx_rtype_to_howto (r_type); - return; + cache_ptr->howto = dlx_rtype_to_howto (abfd, r_type); + return cache_ptr->howto != NULL; } #define TARGET_BIG_SYM dlx_elf32_be_vec diff -Nru gdb-8.1/bfd/elf32-epiphany.c gdb-8.2/bfd/elf32-epiphany.c --- gdb-8.1/bfd/elf32-epiphany.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-epiphany.c 2018-09-05 07:27:13.000000000 +0000 @@ -362,8 +362,8 @@ /* Set the howto pointer for a EPIPHANY ELF reloc. */ -static void -epiphany_info_to_howto_rela (bfd * abfd ATTRIBUTE_UNUSED, +static bfd_boolean +epiphany_info_to_howto_rela (bfd * abfd, arelent * cache_ptr, Elf_Internal_Rela * dst) { @@ -373,10 +373,13 @@ if (r_type >= (unsigned int) R_EPIPHANY_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid Epiphany reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = & epiphany_elf_howto_table [r_type]; + return TRUE; } /* Perform a single relocation. diff -Nru gdb-8.1/bfd/elf32-fr30.c gdb-8.2/bfd/elf32-fr30.c --- gdb-8.1/bfd/elf32-fr30.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-fr30.c 2018-09-05 07:27:13.000000000 +0000 @@ -367,7 +367,7 @@ /* Set the howto pointer for an FR30 ELF reloc. */ -static void +static bfd_boolean fr30_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr, Elf_Internal_Rela *dst) @@ -378,10 +378,13 @@ if (r_type >= (unsigned int) R_FR30_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid FR30 reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = & fr30_elf_howto_table [r_type]; + return TRUE; } /* Perform a single relocation. By default we use the standard BFD diff -Nru gdb-8.1/bfd/elf32-frv.c gdb-8.2/bfd/elf32-frv.c --- gdb-8.1/bfd/elf32-frv.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-frv.c 2018-09-05 07:27:13.000000000 +0000 @@ -25,6 +25,7 @@ #include "elf/frv.h" #include "dwarf2.h" #include "hashtab.h" +#include "libiberty.h" /* Forward declarations. */ @@ -2532,7 +2533,7 @@ /* Set the howto pointer for an FRV ELF reloc. */ -static void +static bfd_boolean frv_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr, Elf_Internal_Rela *dst) @@ -2551,19 +2552,23 @@ break; default: - if (r_type >= (unsigned int) R_FRV_max) + if (r_type >= ARRAY_SIZE (elf32_frv_howto_table)) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid FRV reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = & elf32_frv_howto_table [r_type]; break; } + return TRUE; } /* Set the howto pointer for an FRV ELF REL reloc. */ -static void + +static bfd_boolean frvfdpic_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr, Elf_Internal_Rela *dst) { @@ -2594,8 +2599,9 @@ default: cache_ptr->howto = NULL; - break; + return FALSE; } + return TRUE; } /* Perform a single relocation. By default we use the standard BFD @@ -3529,9 +3535,10 @@ if (addend) { info->callbacks->einfo - (_("%H: R_FRV_FUNCDESC references dynamic symbol" + (_("%H: %s references dynamic symbol" " with nonzero addend\n"), - input_bfd, input_section, rel->r_offset); + input_bfd, input_section, rel->r_offset, + "R_FRV_FUNCDESC"); return FALSE; } dynindx = h->dynindx; @@ -3650,9 +3657,10 @@ if (addend && r_type == R_FRV_FUNCDESC_VALUE) { info->callbacks->einfo - (_("%H: R_FRV_FUNCDESC_VALUE" - " references dynamic symbol with nonzero addend\n"), - input_bfd, input_section, rel->r_offset); + (_("%H: %s references dynamic symbol" + " with nonzero addend\n"), + input_bfd, input_section, rel->r_offset, + "R_FRV_FUNCDESC_VALUE"); return FALSE; } dynindx = h->dynindx; @@ -6250,10 +6258,9 @@ default: bad_reloc: - info->callbacks->einfo - /* xgettext:c-format */ - (_("%B: unsupported relocation type %i\n"), - abfd, ELF32_R_TYPE (rel->r_info)); + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, (unsigned int) ELF32_R_TYPE (rel->r_info)); return FALSE; } } @@ -6504,7 +6511,7 @@ error = TRUE; _bfd_error_handler /* xgettext:c-format */ - (_("%B: compiled with %s and linked with modules" + (_("%pB: compiled with %s and linked with modules" " that use non-pic relocations"), ibfd, (new_flags & EF_FRV_BIGPIC) ? "-fPIC" : "-fpic"); #endif @@ -6558,7 +6565,7 @@ error = TRUE; _bfd_error_handler /* xgettext:c-format */ - (_("%B: compiled with %s and linked with modules compiled with %s"), + (_("%pB: compiled with %s and linked with modules compiled with %s"), ibfd, new_opt, old_opt); } @@ -6571,7 +6578,7 @@ error = TRUE; _bfd_error_handler /* xgettext:c-format */ - (_("%B: uses different unknown e_flags (%#x) fields" + (_("%pB: uses different unknown e_flags (%#x) fields" " than previous modules (%#x)"), ibfd, new_partial, old_partial); } @@ -6593,11 +6600,11 @@ error = TRUE; if (IS_FDPIC (obfd)) _bfd_error_handler - (_("%B: cannot link non-fdpic object file into fdpic executable"), + (_("%pB: cannot link non-fdpic object file into fdpic executable"), ibfd); else _bfd_error_handler - (_("%B: cannot link fdpic object file into non-fdpic executable"), + (_("%pB: cannot link fdpic object file into non-fdpic executable"), ibfd); } diff -Nru gdb-8.1/bfd/elf32-ft32.c gdb-8.2/bfd/elf32-ft32.c --- gdb-8.1/bfd/elf32-ft32.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-ft32.c 2018-09-05 07:27:13.000000000 +0000 @@ -292,16 +292,25 @@ /* Set the howto pointer for an FT32 ELF reloc. */ -static void -ft32_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +ft32_info_to_howto_rela (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { unsigned int r_type; r_type = ELF32_R_TYPE (dst->r_info); - BFD_ASSERT (r_type < (unsigned int) R_FT32_max); + if (r_type >= (unsigned int) R_FT32_max) + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + cache_ptr->howto = & ft32_elf_howto_table [r_type]; + return cache_ptr->howto != NULL; } /* Relocate an FT32 ELF section. diff -Nru gdb-8.1/bfd/elf32-gen.c gdb-8.2/bfd/elf32-gen.c --- gdb-8.1/bfd/elf32-gen.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-gen.c 2018-09-05 07:27:13.000000000 +0000 @@ -41,20 +41,22 @@ 0, /* dst_mask */ FALSE); /* pcrel_offset */ -static void +static bfd_boolean elf_generic_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *bfd_reloc, Elf_Internal_Rela *elf_reloc ATTRIBUTE_UNUSED) { bfd_reloc->howto = &dummy; + return TRUE; } -static void +static bfd_boolean elf_generic_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED, arelent *bfd_reloc, Elf_Internal_Rela *elf_reloc ATTRIBUTE_UNUSED) { bfd_reloc->howto = &dummy; + return TRUE; } static void @@ -66,7 +68,7 @@ ehdrp = elf_elfheader (abfd); /* xgettext:c-format */ - _bfd_error_handler (_("%B: Relocations in generic ELF (EM: %d)"), + _bfd_error_handler (_("%pB: relocations in generic ELF (EM: %d)"), abfd, ehdrp->e_machine); bfd_set_error (bfd_error_wrong_format); diff -Nru gdb-8.1/bfd/elf32-h8300.c gdb-8.2/bfd/elf32-h8300.c --- gdb-8.1/bfd/elf32-h8300.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-h8300.c 2018-09-05 07:27:13.000000000 +0000 @@ -26,9 +26,9 @@ static reloc_howto_type *elf32_h8_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code); -static void elf32_h8_info_to_howto +static bfd_boolean elf32_h8_info_to_howto (bfd *, arelent *, Elf_Internal_Rela *); -static void elf32_h8_info_to_howto_rel +static bfd_boolean elf32_h8_info_to_howto_rel (bfd *, arelent *, Elf_Internal_Rela *); static unsigned long elf32_h8_mach (flagword); static void elf32_h8_final_write_processing (bfd *, bfd_boolean); @@ -284,7 +284,7 @@ return NULL; } -static void +static bfd_boolean elf32_h8_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *bfd_reloc, Elf_Internal_Rela *elf_reloc) { @@ -296,20 +296,20 @@ if (h8_elf_howto_table[i].type == r) { bfd_reloc->howto = &h8_elf_howto_table[i]; - return; + return TRUE; } - abort (); + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), abfd, r); + bfd_set_error (bfd_error_bad_value); + return FALSE; } -static void -elf32_h8_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED, arelent *bfd_reloc, +static bfd_boolean +elf32_h8_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED, + arelent *bfd_reloc ATTRIBUTE_UNUSED, Elf_Internal_Rela *elf_reloc ATTRIBUTE_UNUSED) { - unsigned int r; - - abort (); - r = ELF32_R_TYPE (elf_reloc->r_info); - bfd_reloc->howto = &h8_elf_howto_table[r]; + return FALSE; } /* Special handling for H8/300 relocs. @@ -453,7 +453,8 @@ arelent bfd_reloc; reloc_howto_type *howto; - elf32_h8_info_to_howto (input_bfd, &bfd_reloc, rel); + if (! elf32_h8_info_to_howto (input_bfd, &bfd_reloc, rel)) + continue; howto = bfd_reloc.howto; r_symndx = ELF32_R_SYM (rel->r_info); @@ -733,7 +734,8 @@ { arelent bfd_reloc; - elf32_h8_info_to_howto (abfd, &bfd_reloc, irel); + if (! elf32_h8_info_to_howto (abfd, &bfd_reloc, irel)) + continue; } /* Keep track of the previous reloc so that we can delete some long jumps created by the compiler. */ @@ -1249,7 +1251,8 @@ reloc_howto_type *h; bfd_vma last_reloc_size; - elf32_h8_info_to_howto (abfd, &bfd_reloc, last_reloc); + if (! elf32_h8_info_to_howto (abfd, &bfd_reloc, last_reloc)) + break; h = bfd_reloc.howto; last_reloc_size = 1 << h->size; if (last_reloc->r_offset + last_reloc_size @@ -1267,7 +1270,8 @@ reloc_howto_type *h; bfd_vma next_reloc_size; - elf32_h8_info_to_howto (abfd, &bfd_reloc, next_reloc); + if (! elf32_h8_info_to_howto (abfd, &bfd_reloc, next_reloc)) + break; h = bfd_reloc.howto; next_reloc_size = 1 << h->size; if (next_reloc->r_offset + next_reloc_size diff -Nru gdb-8.1/bfd/elf32-hppa.c gdb-8.2/bfd/elf32-hppa.c --- gdb-8.1/bfd/elf32-hppa.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-hppa.c 2018-09-05 07:27:13.000000000 +0000 @@ -503,6 +503,8 @@ more than one stub used to reach say, printf, and we need to distinguish between them. */ id_sec = htab->stub_group[input_section->id].link_sec; + if (id_sec == NULL) + return NULL; if (hh != NULL && hh->hsh_cache != NULL && hh->hsh_cache->hh == hh @@ -574,7 +576,7 @@ if (hsh == NULL) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: cannot create stub entry %s"), + _bfd_error_handler (_("%pB: cannot create stub entry %s"), section->owner, stub_name); return NULL; } @@ -612,6 +614,9 @@ return hppa_stub_import; } + if (destination == (bfd_vma) -1) + return hppa_stub_none; + /* Determine where the call point is. */ location = (input_sec->output_offset + input_sec->output_section->vma @@ -826,10 +831,11 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): cannot reach %s, recompile with -ffunction-sections"), + (_("%pB(%pA+%#" PRIx64 "): " + "cannot reach %s, recompile with -ffunction-sections"), hsh->target_section->owner, stub_sec, - hsh->stub_offset, + (uint64_t) hsh->stub_offset, hsh->bh_root.string); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -1239,7 +1245,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: relocation %s can not be used when making a shared object; recompile with -fPIC"), + (_("%pB: relocation %s can not be used when making a shared object; recompile with -fPIC"), abfd, elf_hppa_howto_table[r_type].name); bfd_set_error (bfd_error_bad_value); @@ -1890,18 +1896,19 @@ } /* Calculate size of relocs needed for symbol given its TLS_TYPE and - NEEDed GOT entries. KNOWN says a TPREL offset can be calculated - at link time. */ + NEEDed GOT entries. TPREL_KNOWN says a TPREL offset can be + calculated at link time. DTPREL_KNOWN says the same for a DTPREL + offset. */ static inline unsigned int -got_relocs_needed (int tls_type, unsigned int need, bfd_boolean known) +got_relocs_needed (int tls_type, unsigned int need, + bfd_boolean dtprel_known, bfd_boolean tprel_known) { /* All the entries we allocated need relocs. - Except IE in executable with a local symbol. We could also omit - the DTPOFF reloc on the second word of a GD entry under the same - condition as that for IE, but ld.so might want to differentiate - LD and GD entries at some stage. */ - if ((tls_type & GOT_TLS_IE) != 0 && known) + Except for GD and IE with local symbols. */ + if ((tls_type & GOT_TLS_GD) != 0 && dtprel_known) + need -= GOT_ENTRY_SIZE; + if ((tls_type & GOT_TLS_IE) != 0 && tprel_known) need -= GOT_ENTRY_SIZE; return need * sizeof (Elf32_External_Rela) / GOT_ENTRY_SIZE; } @@ -1955,15 +1962,16 @@ need = got_entries_needed (hh->tls_type); sec->size += need; if (htab->etab.dynamic_sections_created - && (bfd_link_pic (info) + && (bfd_link_dll (info) + || (bfd_link_pic (info) && (hh->tls_type & GOT_NORMAL) != 0) || (eh->dynindx != -1 && !SYMBOL_REFERENCES_LOCAL (info, eh))) && !UNDEFWEAK_NO_DYNAMIC_RELOC (info, eh)) { - bfd_boolean tprel_known = (bfd_link_executable (info) - && SYMBOL_REFERENCES_LOCAL (info, eh)); + bfd_boolean local = SYMBOL_REFERENCES_LOCAL (info, eh); htab->etab.srelgot->size - += got_relocs_needed (hh->tls_type, need, tprel_known); + += got_relocs_needed (hh->tls_type, need, local, + local && bfd_link_executable (info)); } } else @@ -2079,7 +2087,7 @@ info->flags |= DF_TEXTREL; info->callbacks->minfo - (_("%B: dynamic relocation against `%T' in read-only section `%A'\n"), + (_("%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"), sec->owner, eh->root.root.string, sec); /* Not an error, just cut short the traversal. */ @@ -2188,12 +2196,12 @@ *local_got = sec->size; need = got_entries_needed (*local_tls_type); sec->size += need; - if (bfd_link_pic (info)) - { - bfd_boolean tprel_known = bfd_link_executable (info); - htab->etab.srelgot->size - += got_relocs_needed (*local_tls_type, need, tprel_known); - } + if (bfd_link_dll (info) + || (bfd_link_pic (info) + && (*local_tls_type & GOT_NORMAL) != 0)) + htab->etab.srelgot->size + += got_relocs_needed (*local_tls_type, need, TRUE, + bfd_link_executable (info)); } else *local_got = (bfd_vma) -1; @@ -2677,7 +2685,7 @@ else { /* xgettext:c-format */ - _bfd_error_handler (_("%B: duplicate export stub %s"), + _bfd_error_handler (_("%pB: duplicate export stub %s"), input_bfd, stub_name); } } @@ -2789,6 +2797,9 @@ /* If there aren't any relocs, then there's nothing more to do. */ if ((section->flags & SEC_RELOC) == 0 + || (section->flags & SEC_ALLOC) == 0 + || (section->flags & SEC_LOAD) == 0 + || (section->flags & SEC_CODE) == 0 || section->reloc_count == 0) continue; @@ -2842,7 +2853,7 @@ section. */ sym_sec = NULL; sym_value = 0; - destination = 0; + destination = -1; hh = NULL; if (r_indx < symtab_hdr->sh_info) { @@ -3272,7 +3283,7 @@ || hh->eh.root.type == bfd_link_hash_defweak))) { hsh = hppa_get_stub_entry (input_section, sym_sec, - hh, rela, htab); + hh, rela, htab); if (hsh != NULL) { value = (hsh->stub_offset @@ -3330,10 +3341,11 @@ error. */ _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): %s fixup for insn %#x is not supported in a non-shared link"), + (_("%pB(%pA+%#" PRIx64 "): %s fixup for insn %#x " + "is not supported in a non-shared link"), input_bfd, input_section, - offset, + (uint64_t) offset, howto->name, insn); } @@ -3471,7 +3483,7 @@ if (value + addend + max_branch_offset >= 2*max_branch_offset) { hsh = hppa_get_stub_entry (input_section, sym_sec, - hh, rela, htab); + hh, rela, htab); if (hsh == NULL) return bfd_reloc_undefined; @@ -3496,10 +3508,11 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): cannot reach %s, recompile with -ffunction-sections"), + (_("%pB(%pA+%#" PRIx64 "): cannot reach %s, " + "recompile with -ffunction-sections"), input_bfd, input_section, - offset, + (uint64_t) offset, hsh->bh_root.string); bfd_set_error (bfd_error_bad_value); return bfd_reloc_notsupported; @@ -4035,7 +4048,7 @@ GD GOT are necessary, we emit the GD first. */ if (indx != 0 - || (bfd_link_pic (info) + || (bfd_link_dll (info) && (hh == NULL || !UNDEFWEAK_NO_DYNAMIC_RELOC (info, &hh->eh)))) { @@ -4059,6 +4072,20 @@ bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc); htab->etab.srelgot->reloc_count++; loc += sizeof (Elf32_External_Rela); + bfd_put_32 (output_bfd, 0, + htab->etab.sgot->contents + cur_off); + } + else + /* If we are not emitting relocations for a + general dynamic reference, then we must be in a + static link or an executable link with the + symbol binding locally. Mark it as belonging + to module 1, the executable. */ + bfd_put_32 (output_bfd, 1, + htab->etab.sgot->contents + cur_off); + + if (indx != 0) + { outrel.r_info = ELF32_R_INFO (indx, R_PARISC_TLS_DTPOFF32); outrel.r_offset += 4; @@ -4066,22 +4093,11 @@ htab->etab.srelgot->reloc_count++; loc += sizeof (Elf32_External_Rela); bfd_put_32 (output_bfd, 0, - htab->etab.sgot->contents + cur_off); - bfd_put_32 (output_bfd, 0, htab->etab.sgot->contents + cur_off + 4); } else - { - /* If we are not emitting relocations for a - general dynamic reference, then we must be in a - static link or an executable link with the - symbol binding locally. Mark it as belonging - to module 1, the executable. */ - bfd_put_32 (output_bfd, 1, - htab->etab.sgot->contents + cur_off); - bfd_put_32 (output_bfd, relocation - dtpoff_base (info), - htab->etab.sgot->contents + cur_off + 4); - } + bfd_put_32 (output_bfd, relocation - dtpoff_base (info), + htab->etab.sgot->contents + cur_off + 4); cur_off += 8; } @@ -4139,7 +4155,7 @@ if (*sym_name == '\0') sym_name = bfd_section_name (input_bfd, sym_sec); _bfd_error_handler - (_("%B:%s has both normal and TLS relocs"), + (_("%pB:%s has both normal and TLS relocs"), input_bfd, sym_name); } bfd_set_error (bfd_error_bad_value); @@ -4198,10 +4214,10 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): cannot handle %s for %s"), + (_("%pB(%pA+%#" PRIx64 "): cannot handle %s for %s"), input_bfd, input_section, - rela->r_offset, + (uint64_t) rela->r_offset, howto->name, sym_name); bfd_set_error (bfd_error_bad_value); diff -Nru gdb-8.1/bfd/elf32-i370.c gdb-8.2/bfd/elf32-i370.c --- gdb-8.1/bfd/elf32-i370.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-i370.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,1419 +0,0 @@ -/* i370-specific support for 32-bit ELF - Copyright (C) 1994-2018 Free Software Foundation, Inc. - Written by Ian Lance Taylor, Cygnus Support. - Hacked by Linas Vepstas for i370 linas@linas.org - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* This file is based on a preliminary PowerPC ELF ABI. - But its been hacked on for the IBM 360/370 architectures. - Basically, the 31bit relocation works, and just about everything - else is a wild card. In particular, don't expect shared libs or - dynamic loading to work ... its never been tested. */ - -#include "sysdep.h" -#include "bfd.h" -#include "bfdlink.h" -#include "libbfd.h" -#include "elf-bfd.h" -#include "elf/i370.h" - -static reloc_howto_type *i370_elf_howto_table[ (int)R_I370_max ]; - -static reloc_howto_type i370_elf_howto_raw[] = -{ - /* This reloc does nothing. */ - HOWTO (R_I370_NONE, /* type */ - 0, /* rightshift */ - 3, /* size (0 = byte, 1 = short, 2 = long) */ - 0, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_I370_NONE", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* A standard 31 bit relocation. */ - HOWTO (R_I370_ADDR31, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 31, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_I370_ADDR31", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x7fffffff, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* A standard 32 bit relocation. */ - HOWTO (R_I370_ADDR32, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 32, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_I370_ADDR32", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xffffffff, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* A standard 16 bit relocation. */ - HOWTO (R_I370_ADDR16, /* 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, /* special_function */ - "R_I370_ADDR16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xffff, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* 31-bit PC relative. */ - HOWTO (R_I370_REL31, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 31, /* bitsize */ - TRUE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_I370_REL31", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x7fffffff, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* 32-bit PC relative. */ - HOWTO (R_I370_REL32, /* 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, /* special_function */ - "R_I370_REL32", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xffffffff, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* A standard 12 bit relocation. */ - HOWTO (R_I370_ADDR12, /* type */ - 0, /* rightshift */ - 1, /* size (0 = byte, 1 = short, 2 = long) */ - 12, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_I370_ADDR12", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xfff, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* 12-bit PC relative. */ - HOWTO (R_I370_REL12, /* type */ - 0, /* rightshift */ - 1, /* size (0 = byte, 1 = short, 2 = long) */ - 12, /* bitsize */ - TRUE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_I370_REL12", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xfff, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* A standard 8 bit relocation. */ - HOWTO (R_I370_ADDR8, /* type */ - 0, /* rightshift */ - 0, /* size (0 = byte, 1 = short, 2 = long) */ - 8, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_I370_ADDR8", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xff, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* 8-bit PC relative. */ - HOWTO (R_I370_REL8, /* type */ - 0, /* rightshift */ - 0, /* size (0 = byte, 1 = short, 2 = long) */ - 8, /* bitsize */ - TRUE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_I370_REL8", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xff, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* This is used only by the dynamic linker. The symbol should exist - both in the object being run and in some shared library. The - dynamic linker copies the data addressed by the symbol from the - shared library into the object, because the object being - run has to have the data at some particular address. */ - HOWTO (R_I370_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, /* special_function */ - "R_I370_COPY", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used only by the dynamic linker. When the object is run, this - longword is set to the load address of the object, plus the - addend. */ - HOWTO (R_I370_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, /* special_function */ - "R_I370_RELATIVE", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xffffffff, /* dst_mask */ - FALSE), /* pcrel_offset */ - -}; - -/* Initialize the i370_elf_howto_table, so that linear accesses can be done. */ - -static void -i370_elf_howto_init (void) -{ - unsigned int i, type; - - for (i = 0; i < sizeof (i370_elf_howto_raw) / sizeof (i370_elf_howto_raw[0]); i++) - { - type = i370_elf_howto_raw[i].type; - BFD_ASSERT (type < sizeof (i370_elf_howto_table) / sizeof (i370_elf_howto_table[0])); - i370_elf_howto_table[type] = &i370_elf_howto_raw[i]; - } -} - -static reloc_howto_type * -i370_elf_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, - bfd_reloc_code_real_type code) -{ - enum i370_reloc_type i370_reloc = R_I370_NONE; - - if (!i370_elf_howto_table[ R_I370_ADDR31 ]) - /* Initialize howto table if needed. */ - i370_elf_howto_init (); - - switch ((int) code) - { - default: - return NULL; - - case BFD_RELOC_NONE: i370_reloc = R_I370_NONE; break; - case BFD_RELOC_32: i370_reloc = R_I370_ADDR31; break; - case BFD_RELOC_16: i370_reloc = R_I370_ADDR16; break; - case BFD_RELOC_32_PCREL: i370_reloc = R_I370_REL31; break; - case BFD_RELOC_CTOR: i370_reloc = R_I370_ADDR31; break; - case BFD_RELOC_I370_D12: i370_reloc = R_I370_ADDR12; break; - } - - return i370_elf_howto_table[ (int)i370_reloc ]; -}; - -static reloc_howto_type * -i370_elf_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, - const char *r_name) -{ - unsigned int i; - - for (i = 0; - i < sizeof (i370_elf_howto_raw) / sizeof (i370_elf_howto_raw[0]); - i++) - if (i370_elf_howto_raw[i].name != NULL - && strcasecmp (i370_elf_howto_raw[i].name, r_name) == 0) - return &i370_elf_howto_raw[i]; - - return NULL; -} - -/* The name of the dynamic interpreter. This is put in the .interp - section. */ - -#define ELF_DYNAMIC_INTERPRETER "/lib/ld.so" - -/* Set the howto pointer for an i370 ELF reloc. */ - -static void -i370_elf_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, - arelent *cache_ptr, - Elf_Internal_Rela *dst) -{ - unsigned int r_type; - - if (!i370_elf_howto_table[ R_I370_ADDR31 ]) - /* Initialize howto table. */ - i370_elf_howto_init (); - - r_type = ELF32_R_TYPE (dst->r_info); - if (r_type >= R_I370_max) - { - /* xgettext:c-format */ - _bfd_error_handler (_("%B: unrecognised I370 reloc number: %d"), - abfd, r_type); - bfd_set_error (bfd_error_bad_value); - r_type = R_I370_NONE; - } - cache_ptr->howto = i370_elf_howto_table[r_type]; -} - -/* Hack alert -- the following several routines look generic to me ... - why are we bothering with them ? */ -/* Function to set whether a module needs the -mrelocatable bit set. */ - -static bfd_boolean -i370_elf_set_private_flags (bfd *abfd, flagword flags) -{ - BFD_ASSERT (!elf_flags_init (abfd) - || elf_elfheader (abfd)->e_flags == flags); - - elf_elfheader (abfd)->e_flags = flags; - elf_flags_init (abfd) = TRUE; - return TRUE; -} - -/* Merge backend specific data from an object file to the output - object file when linking. */ - -static bfd_boolean -i370_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info) -{ - bfd *obfd = info->output_bfd; - flagword old_flags; - flagword new_flags; - - if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return TRUE; - - new_flags = elf_elfheader (ibfd)->e_flags; - old_flags = elf_elfheader (obfd)->e_flags; - if (!elf_flags_init (obfd)) /* First call, no flags set. */ - { - elf_flags_init (obfd) = TRUE; - elf_elfheader (obfd)->e_flags = new_flags; - } - - else if (new_flags == old_flags) /* Compatible flags are ok. */ - ; - - else /* Incompatible flags. */ - { - _bfd_error_handler - /* xgettext:c-format */ - (_("%B: uses different e_flags (%#x) fields than previous modules (%#x)"), - ibfd, new_flags, old_flags); - - bfd_set_error (bfd_error_bad_value); - return FALSE; - } - - return TRUE; -} - -/* Handle an i370 specific section when reading an object file. This - is called when elfcode.h finds a section with an unknown type. */ -/* 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 bfd_boolean -i370_elf_section_from_shdr (bfd *abfd, - Elf_Internal_Shdr *hdr, - const char *name, - int shindex) -{ - asection *newsect; - flagword flags; - - if (! _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex)) - return FALSE; - - newsect = hdr->bfd_section; - flags = bfd_get_section_flags (abfd, newsect); - if (hdr->sh_type == SHT_ORDERED) - flags |= SEC_SORT_ENTRIES; - - bfd_set_section_flags (abfd, newsect, flags); - return TRUE; -} - -/* Set up any other section flags and such that may be necessary. */ -/* 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 bfd_boolean -i370_elf_fake_sections (bfd *abfd ATTRIBUTE_UNUSED, - Elf_Internal_Shdr *shdr, - asection *asect) -{ - if ((asect->flags & (SEC_GROUP | SEC_EXCLUDE)) == SEC_EXCLUDE) - shdr->sh_flags |= SHF_EXCLUDE; - - if ((asect->flags & SEC_SORT_ENTRIES) != 0) - shdr->sh_type = SHT_ORDERED; - - return TRUE; -} - -/* 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). */ -/* 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 bfd_boolean -i370_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info) -{ - asection *s; - flagword flags; - - if (!_bfd_elf_create_dynamic_sections(abfd, info)) - return FALSE; - - flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY - | SEC_LINKER_CREATED); - - s = bfd_make_section_anyway_with_flags (abfd, ".dynsbss", - SEC_ALLOC | SEC_LINKER_CREATED); - if (s == NULL) - return FALSE; - - if (! bfd_link_pic (info)) - { - s = bfd_make_section_anyway_with_flags (abfd, ".rela.sbss", - flags | SEC_READONLY); - if (s == NULL - || ! bfd_set_section_alignment (abfd, s, 2)) - return FALSE; - } - - /* XXX beats me, seem to need a rela.text ... */ - s = bfd_make_section_anyway_with_flags (abfd, ".rela.text", - flags | SEC_READONLY); - if (s == NULL - || ! bfd_set_section_alignment (abfd, s, 2)) - 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. */ -/* 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 bfd_boolean -i370_elf_adjust_dynamic_symbol (struct bfd_link_info *info, - struct elf_link_hash_entry *h) -{ - bfd *dynobj = elf_hash_table (info)->dynobj; - asection *s; - -#ifdef DEBUG - fprintf (stderr, "i370_elf_adjust_dynamic_symbol called for %s\n", - h->root.root.string); -#endif - - /* Make sure we know what is going on here. */ - BFD_ASSERT (dynobj != NULL - && (h->needs_plt - || h->is_weakalias - || (h->def_dynamic - && h->ref_regular - && !h->def_regular))); - - s = bfd_get_linker_section (dynobj, ".rela.text"); - BFD_ASSERT (s != NULL); - s->size += sizeof (Elf32_External_Rela); - - /* 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->is_weakalias) - { - struct elf_link_hash_entry *def = weakdef (h); - BFD_ASSERT (def->root.type == bfd_link_hash_defined); - h->root.u.def.section = def->root.u.def.section; - h->root.u.def.value = def->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 (bfd_link_pic (info)) - 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. - - Of course, if the symbol is sufficiently small, we must instead - allocate it in .sbss. FIXME: It would be better to do this if and - only if there were actually SDAREL relocs for that symbol. */ - - if (h->size <= elf_gp_size (dynobj)) - s = bfd_get_linker_section (dynobj, ".dynsbss"); - else - s = bfd_get_linker_section (dynobj, ".dynbss"); - BFD_ASSERT (s != NULL); - - /* We must generate a R_I370_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 && h->size != 0) - { - asection *srel; - - if (h->size <= elf_gp_size (dynobj)) - srel = bfd_get_linker_section (dynobj, ".rela.sbss"); - else - srel = bfd_get_linker_section (dynobj, ".rela.bss"); - BFD_ASSERT (srel != NULL); - srel->size += sizeof (Elf32_External_Rela); - h->needs_copy = 1; - } - - return _bfd_elf_adjust_dynamic_copy (info, h, s); -} - -/* Increment the index of a dynamic symbol by a given amount. Called - via elf_link_hash_traverse. */ -/* 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 bfd_boolean -i370_elf_adjust_dynindx (struct elf_link_hash_entry *h, void * cparg) -{ - int *cp = (int *) cparg; - -#ifdef DEBUG - fprintf (stderr, - "i370_elf_adjust_dynindx called, h->dynindx = %ld, *cp = %d\n", - h->dynindx, *cp); -#endif - - if (h->dynindx != -1) - h->dynindx += *cp; - - return TRUE; -} - -/* Set the sizes of the dynamic sections. */ -/* 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 bfd_boolean -i370_elf_size_dynamic_sections (bfd *output_bfd, - struct bfd_link_info *info) -{ - bfd *dynobj; - asection *s; - bfd_boolean plt; - bfd_boolean relocs; - bfd_boolean reltext; - -#ifdef DEBUG - fprintf (stderr, "i370_elf_size_dynamic_sections called\n"); -#endif - - 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 (bfd_link_executable (info) && !info->nointerp) - { - s = bfd_get_linker_section (dynobj, ".interp"); - BFD_ASSERT (s != NULL); - s->size = sizeof ELF_DYNAMIC_INTERPRETER; - s->contents = (unsigned char *) ELF_DYNAMIC_INTERPRETER; - } - } - else - { - /* We may have created entries in the .rela.got, .rela.sdata, and - .rela.sdata2 sections. However, if we are not creating the - dynamic sections, we will not actually use these entries. Reset - the size of .rela.got, et al, which will cause it to get - stripped from the output file below. */ - static char *rela_sections[] = { ".rela.got", ".rela.sdata", - ".rela.sdata2", ".rela.sbss", - NULL }; - char **p; - - for (p = rela_sections; *p != NULL; p++) - { - s = bfd_get_linker_section (dynobj, *p); - if (s != NULL) - s->size = 0; - } - } - - /* 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; - - 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); - - if (strcmp (name, ".plt") == 0) - { - /* Remember whether there is a PLT. */ - plt = s->size != 0; - } - else if (CONST_STRNEQ (name, ".rela")) - { - if (s->size != 0) - { - asection *target; - const char *outname; - - /* Remember whether there are any relocation sections. */ - relocs = TRUE; - - /* If this relocation section applies to a read only - section, then we probably need a DT_TEXTREL entry. */ - 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 (strcmp (name, ".got") != 0 - && strcmp (name, ".sdata") != 0 - && strcmp (name, ".sdata2") != 0 - && strcmp (name, ".dynbss") != 0 - && strcmp (name, ".dynsbss") != 0) - { - /* It's not one of our sections, so don't allocate space. */ - continue; - } - - if (s->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. */ - s->flags |= SEC_EXCLUDE; - continue; - } - - if ((s->flags & SEC_HAS_CONTENTS) == 0) - continue; - - /* Allocate memory for the section contents. */ - s->contents = bfd_zalloc (dynobj, s->size); - if (s->contents == NULL) - return FALSE; - } - - if (elf_hash_table (info)->dynamic_sections_created) - { - /* Add some entries to the .dynamic section. We fill in the - values later, in i370_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. */ -#define add_dynamic_entry(TAG, VAL) \ - _bfd_elf_add_dynamic_entry (info, TAG, VAL) - - if (!bfd_link_pic (info)) - { - if (!add_dynamic_entry (DT_DEBUG, 0)) - return FALSE; - } - - if (plt) - { - if (!add_dynamic_entry (DT_PLTGOT, 0) - || !add_dynamic_entry (DT_PLTRELSZ, 0) - || !add_dynamic_entry (DT_PLTREL, DT_RELA) - || !add_dynamic_entry (DT_JMPREL, 0)) - return FALSE; - } - - if (relocs) - { - if (!add_dynamic_entry (DT_RELA, 0) - || !add_dynamic_entry (DT_RELASZ, 0) - || !add_dynamic_entry (DT_RELAENT, sizeof (Elf32_External_Rela))) - return FALSE; - } - - if (reltext) - { - if (!add_dynamic_entry (DT_TEXTREL, 0)) - return FALSE; - info->flags |= DF_TEXTREL; - } - } -#undef add_dynamic_entry - - /* If we are generating a shared library, we generate a section - symbol for each output section. These are local symbols, which - means that they must come first in the dynamic symbol table. - That means we must increment the dynamic symbol index of every - other dynamic symbol. - - FIXME: We assume that there will never be relocations to - locations in linker-created sections that do not have - externally-visible names. Instead, we should work out precisely - which sections relocations are targeted at. */ - if (bfd_link_pic (info)) - { - int c; - - for (c = 0, s = output_bfd->sections; s != NULL; s = s->next) - { - if ((s->flags & SEC_LINKER_CREATED) != 0 - || (s->flags & SEC_ALLOC) == 0) - { - elf_section_data (s)->dynindx = -1; - continue; - } - - /* These symbols will have no names, so we don't need to - fiddle with dynstr_index. */ - - elf_section_data (s)->dynindx = c + 1; - - c++; - } - - elf_link_hash_traverse (elf_hash_table (info), - i370_elf_adjust_dynindx, & c); - elf_hash_table (info)->dynsymcount += c; - } - - return TRUE; -} - -/* Look through the relocs for a section during the first phase, and - allocate space in the global offset table or procedure linkage - table. */ -/* 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 bfd_boolean -i370_elf_check_relocs (bfd *abfd, - struct bfd_link_info *info, - asection *sec, - const Elf_Internal_Rela *relocs) -{ - bfd *dynobj; - Elf_Internal_Shdr *symtab_hdr; - struct elf_link_hash_entry **sym_hashes; - const Elf_Internal_Rela *rel; - const Elf_Internal_Rela *rel_end; - asection *sreloc; - - if (bfd_link_relocatable (info)) - return TRUE; - -#ifdef DEBUG - _bfd_error_handler ("i370_elf_check_relocs called for section %A in %B", - sec, abfd); -#endif - - dynobj = elf_hash_table (info)->dynobj; - symtab_hdr = &elf_tdata (abfd)->symtab_hdr; - sym_hashes = elf_sym_hashes (abfd); - - sreloc = NULL; - - rel_end = relocs + sec->reloc_count; - for (rel = relocs; rel < rel_end; rel++) - { - unsigned long r_symndx; - struct elf_link_hash_entry *h; - - r_symndx = ELF32_R_SYM (rel->r_info); - if (r_symndx < symtab_hdr->sh_info) - h = NULL; - else - { - h = sym_hashes[r_symndx - symtab_hdr->sh_info]; - 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 (bfd_link_pic (info)) - { -#ifdef DEBUG - fprintf (stderr, - "i370_elf_check_relocs needs to create relocation for %s\n", - (h && h->root.root.string) - ? h->root.root.string : ""); -#endif - if (sreloc == NULL) - { - sreloc = _bfd_elf_make_dynamic_reloc_section - (sec, dynobj, 2, abfd, /*rela?*/ TRUE); - - if (sreloc == NULL) - return FALSE; - } - - sreloc->size += sizeof (Elf32_External_Rela); - - /* FIXME: We should here do what the m68k and i386 - backends do: if the reloc is pc-relative, record it - in case it turns out that the reloc is unnecessary - because the symbol is forced local by versioning or - we are linking with -Bdynamic. Fortunately this - case is not frequent. */ - } - } - - return TRUE; -} - -/* Finish up the dynamic sections. */ -/* 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 bfd_boolean -i370_elf_finish_dynamic_sections (bfd *output_bfd, - struct bfd_link_info *info) -{ - asection *sdyn; - bfd *dynobj = elf_hash_table (info)->dynobj; - asection *sgot = elf_hash_table (info)->sgot; - -#ifdef DEBUG - fprintf (stderr, "i370_elf_finish_dynamic_sections called\n"); -#endif - - sdyn = bfd_get_linker_section (dynobj, ".dynamic"); - - if (elf_hash_table (info)->dynamic_sections_created) - { - asection *splt; - Elf32_External_Dyn *dyncon, *dynconend; - - splt = elf_hash_table (info)->splt; - BFD_ASSERT (splt != NULL && sdyn != NULL); - - dyncon = (Elf32_External_Dyn *) sdyn->contents; - dynconend = (Elf32_External_Dyn *) (sdyn->contents + sdyn->size); - for (; dyncon < dynconend; dyncon++) - { - Elf_Internal_Dyn dyn; - asection *s; - bfd_boolean size; - - bfd_elf32_swap_dyn_in (dynobj, dyncon, &dyn); - - switch (dyn.d_tag) - { - case DT_PLTGOT: - s = elf_hash_table (info)->splt; - size = FALSE; - break; - case DT_PLTRELSZ: - s = elf_hash_table (info)->srelplt; - size = TRUE; - break; - case DT_JMPREL: - s = elf_hash_table (info)->srelplt; - size = FALSE; - break; - default: - continue; - } - - if (s == NULL) - dyn.d_un.d_val = 0; - else - { - if (!size) - dyn.d_un.d_ptr = s->output_section->vma + s->output_offset; - else - dyn.d_un.d_val = s->size; - } - bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon); - } - } - - if (sgot && sgot->size != 0) - { - unsigned char *contents = sgot->contents; - - if (sdyn == NULL) - bfd_put_32 (output_bfd, (bfd_vma) 0, contents); - else - bfd_put_32 (output_bfd, - sdyn->output_section->vma + sdyn->output_offset, - contents); - - elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 4; - } - - if (bfd_link_pic (info)) - { - asection *sdynsym; - asection *s; - Elf_Internal_Sym sym; - int maxdindx = 0; - - /* Set up the section symbols for the output sections. */ - - sdynsym = bfd_get_linker_section (dynobj, ".dynsym"); - BFD_ASSERT (sdynsym != NULL); - - sym.st_size = 0; - sym.st_name = 0; - sym.st_info = ELF_ST_INFO (STB_LOCAL, STT_SECTION); - sym.st_other = 0; - sym.st_target_internal = 0; - - for (s = output_bfd->sections; s != NULL; s = s->next) - { - int indx, dindx; - Elf32_External_Sym *esym; - - sym.st_value = s->vma; - - indx = elf_section_data (s)->this_idx; - dindx = elf_section_data (s)->dynindx; - if (dindx != -1) - { - BFD_ASSERT(indx > 0); - BFD_ASSERT(dindx > 0); - - if (dindx > maxdindx) - maxdindx = dindx; - - sym.st_shndx = indx; - - esym = (Elf32_External_Sym *) sdynsym->contents + dindx; - bfd_elf32_swap_symbol_out (output_bfd, &sym, esym, NULL); - } - } - - /* Set the sh_info field of the output .dynsym section to the - index of the first global symbol. */ - elf_section_data (sdynsym->output_section)->this_hdr.sh_info = - maxdindx + 1; - } - - return TRUE; -} - -/* The RELOCATE_SECTION function is called by the ELF backend linker - to handle the relocations for a section. - - The relocs are always passed as Rela structures; if the section - actually uses Rel structures, the r_addend field will always be - zero. - - This function is responsible for adjust the section contents as - 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 - address or the reloc symbol index. - - LOCAL_SYMS is a pointer to the swapped in local symbols. - - LOCAL_SECTIONS is an array giving the section in the input file - corresponding to the st_shndx field of each local symbol. - - The global hash table entry for the global symbols can be found - via elf_sym_hashes (input_bfd). - - 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 -i370_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 = &elf_tdata (input_bfd)->symtab_hdr; - struct elf_link_hash_entry **sym_hashes = elf_sym_hashes (input_bfd); - Elf_Internal_Rela *rel = relocs; - Elf_Internal_Rela *relend = relocs + input_section->reloc_count; - asection *sreloc = NULL; - bfd_boolean ret = TRUE; - -#ifdef DEBUG - _bfd_error_handler ("i370_elf_relocate_section called for %B section %A, %u relocations%s", - input_bfd, input_section, - input_section->reloc_count, - (bfd_link_relocatable (info)) ? " (relocatable)" : ""); -#endif - - if (!i370_elf_howto_table[ R_I370_ADDR31 ]) - /* Initialize howto table if needed. */ - i370_elf_howto_init (); - - for (; rel < relend; rel++) - { - enum i370_reloc_type r_type = (enum i370_reloc_type) ELF32_R_TYPE (rel->r_info); - bfd_vma offset = rel->r_offset; - bfd_vma addend = rel->r_addend; - bfd_reloc_status_type r = bfd_reloc_other; - Elf_Internal_Sym *sym = NULL; - asection *sec = NULL; - struct elf_link_hash_entry * h = NULL; - const char *sym_name = NULL; - reloc_howto_type *howto; - unsigned long r_symndx; - bfd_vma relocation; - - /* Unknown relocation handling. */ - if ((unsigned) r_type >= (unsigned) R_I370_max - || !i370_elf_howto_table[(int)r_type]) - { - /* xgettext:c-format */ - _bfd_error_handler (_("%B: unknown relocation type %d"), - input_bfd, (int) r_type); - - bfd_set_error (bfd_error_bad_value); - ret = FALSE; - continue; - } - - howto = i370_elf_howto_table[(int) r_type]; - r_symndx = ELF32_R_SYM (rel->r_info); - relocation = 0; - - if (r_symndx < symtab_hdr->sh_info) - { - sym = local_syms + r_symndx; - sec = local_sections[r_symndx]; - sym_name = ""; - - relocation = _bfd_elf_rela_local_sym (output_bfd, sym, & sec, rel); - addend = rel->r_addend; - } - else - { - h = sym_hashes[r_symndx - symtab_hdr->sh_info]; - - if (info->wrap_hash != NULL - && (input_section->flags & SEC_DEBUGGING) != 0) - h = ((struct elf_link_hash_entry *) - unwrap_hash_lookup (info, input_bfd, &h->root)); - - 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; - sym_name = h->root.root.string; - if (h->root.type == bfd_link_hash_defined - || h->root.type == bfd_link_hash_defweak) - { - sec = h->root.u.def.section; - if (bfd_link_pic (info) - && ((! info->symbolic && h->dynindx != -1) - || !h->def_regular) - && (input_section->flags & SEC_ALLOC) != 0 - && (r_type == R_I370_ADDR31 - || r_type == R_I370_COPY - || r_type == R_I370_ADDR16 - || r_type == R_I370_RELATIVE)) - /* In these cases, we don't need the relocation - value. We check specially because in some - obscure cases sec->output_section will be NULL. */ - ; - else - relocation = (h->root.u.def.value - + sec->output_section->vma - + sec->output_offset); - } - else if (h->root.type == bfd_link_hash_undefweak) - ; - else if (info->unresolved_syms_in_objects == RM_IGNORE - && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT) - ; - else if (!bfd_link_relocatable (info)) - { - (*info->callbacks->undefined_symbol) - (info, h->root.root.string, input_bfd, - input_section, rel->r_offset, - (info->unresolved_syms_in_objects == RM_GENERATE_ERROR - || ELF_ST_VISIBILITY (h->other))); - ret = FALSE; - continue; - } - } - - if (sec != NULL && discarded_section (sec)) - RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section, - rel, 1, relend, howto, 0, contents); - - if (bfd_link_relocatable (info)) - continue; - - switch ((int) r_type) - { - default: - _bfd_error_handler - (_("%B: unknown relocation type %d for symbol %s"), - input_bfd, (int) r_type, sym_name); - - bfd_set_error (bfd_error_bad_value); - ret = FALSE; - continue; - - case (int) R_I370_NONE: - continue; - - /* Relocations that may need to be propagated if this is a shared - object. */ - case (int) R_I370_REL31: - /* 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) - break; - /* Fall through. */ - - /* Relocations that always need to be propagated if this is a shared - object. */ - case (int) R_I370_ADDR31: - case (int) R_I370_ADDR16: - if (bfd_link_pic (info) - && r_symndx != STN_UNDEF) - { - Elf_Internal_Rela outrel; - bfd_byte *loc; - int skip; - -#ifdef DEBUG - fprintf (stderr, - "i370_elf_relocate_section needs to create relocation for %s\n", - (h && h->root.root.string) ? h->root.root.string : ""); -#endif - - /* When generating a shared object, these relocations - are copied into the output file to be resolved at run - time. */ - - if (sreloc == NULL) - { - sreloc = _bfd_elf_get_dynamic_reloc_section - (input_bfd, input_section, /*rela?*/ TRUE); - if (sreloc == NULL) - return FALSE; - } - - skip = 0; - - outrel.r_offset = - _bfd_elf_section_offset (output_bfd, info, input_section, - rel->r_offset); - if (outrel.r_offset == (bfd_vma) -1 - || outrel.r_offset == (bfd_vma) -2) - skip = (int) outrel.r_offset; - outrel.r_offset += (input_section->output_section->vma - + input_section->output_offset); - - if (skip) - memset (&outrel, 0, sizeof outrel); - /* h->dynindx may be -1 if this symbol was marked to - become local. */ - else if (h != NULL - && ((! info->symbolic && h->dynindx != -1) - || !h->def_regular)) - { - BFD_ASSERT (h->dynindx != -1); - outrel.r_info = ELF32_R_INFO (h->dynindx, r_type); - outrel.r_addend = rel->r_addend; - } - else - { - if (r_type == R_I370_ADDR31) - { - outrel.r_info = ELF32_R_INFO (0, R_I370_RELATIVE); - outrel.r_addend = relocation + rel->r_addend; - } - else - { - long indx; - - if (bfd_is_abs_section (sec)) - indx = 0; - else if (sec == NULL || sec->owner == NULL) - { - bfd_set_error (bfd_error_bad_value); - return FALSE; - } - else - { - asection *osec; - - /* We are turning this relocation into one - against a section symbol. It would be - proper to subtract the symbol's value, - osec->vma, from the emitted reloc addend, - but ld.so expects buggy relocs. */ - osec = sec->output_section; - indx = elf_section_data (osec)->dynindx; - if (indx == 0) - { - struct elf_link_hash_table *htab; - htab = elf_hash_table (info); - osec = htab->text_index_section; - indx = elf_section_data (osec)->dynindx; - } - BFD_ASSERT (indx != 0); -#ifdef DEBUG - if (indx <= 0) - { - printf ("indx=%ld section=%s flags=%08x name=%s\n", - indx, osec->name, osec->flags, - h->root.root.string); - } -#endif - } - - outrel.r_info = ELF32_R_INFO (indx, r_type); - outrel.r_addend = relocation + rel->r_addend; - } - } - - loc = sreloc->contents; - loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela); - bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc); - - /* This reloc will be computed at runtime, so there's no - need to do anything now, unless this is a RELATIVE - reloc in an unallocated section. */ - if (skip == -1 - || (input_section->flags & SEC_ALLOC) != 0 - || ELF32_R_TYPE (outrel.r_info) != R_I370_RELATIVE) - continue; - } - break; - - case (int) R_I370_COPY: - case (int) R_I370_RELATIVE: - _bfd_error_handler - /* xgettext:c-format */ - (_("%B: Relocation %s is not yet supported for symbol %s."), - input_bfd, - i370_elf_howto_table[(int) r_type]->name, - sym_name); - - bfd_set_error (bfd_error_invalid_operation); - ret = FALSE; - continue; - } - -#ifdef DEBUG - fprintf (stderr, "\ttype = %s (%d), name = %s, symbol index = %ld, offset = %ld, addend = %ld\n", - howto->name, - (int)r_type, - sym_name, - r_symndx, - (long) offset, - (long) addend); -#endif - - r = _bfd_final_link_relocate (howto, input_bfd, input_section, contents, - offset, relocation, addend); - - if (r != bfd_reloc_ok) - { - ret = FALSE; - switch (r) - { - default: - break; - - case bfd_reloc_overflow: - { - const char *name; - - if (h != NULL) - name = NULL; - else - { - name = bfd_elf_string_from_elf_section (input_bfd, - symtab_hdr->sh_link, - sym->st_name); - if (name == NULL) - break; - - if (*name == '\0') - name = bfd_section_name (input_bfd, sec); - } - - (*info->callbacks->reloc_overflow) (info, - (h ? &h->root : NULL), - name, - howto->name, - (bfd_vma) 0, - input_bfd, - input_section, - offset); - } - break; - } - } - } - -#ifdef DEBUG - fprintf (stderr, "\n"); -#endif - - return ret; -} - -#define TARGET_BIG_SYM i370_elf32_vec -#define TARGET_BIG_NAME "elf32-i370" -#define ELF_ARCH bfd_arch_i370 -#define ELF_MACHINE_CODE EM_S370 -#ifdef EM_I370_OLD -#define ELF_MACHINE_ALT1 EM_I370_OLD -#endif -#define ELF_MAXPAGESIZE 0x1000 -#define ELF_OSABI ELFOSABI_GNU - -#define elf_info_to_howto i370_elf_info_to_howto - -#define elf_backend_plt_not_loaded 1 -#define elf_backend_rela_normal 1 - -#define bfd_elf32_bfd_reloc_type_lookup i370_elf_reloc_type_lookup -#define bfd_elf32_bfd_reloc_name_lookup i370_elf_reloc_name_lookup -#define bfd_elf32_bfd_set_private_flags i370_elf_set_private_flags -#define bfd_elf32_bfd_merge_private_bfd_data i370_elf_merge_private_bfd_data -#define elf_backend_relocate_section i370_elf_relocate_section - -/* Dynamic loader support is mostly broken; just enough here to be able to - link glibc's ld.so without errors. */ -#define elf_backend_create_dynamic_sections i370_elf_create_dynamic_sections -#define elf_backend_size_dynamic_sections i370_elf_size_dynamic_sections -#define elf_backend_init_index_section _bfd_elf_init_1_index_section -#define elf_backend_finish_dynamic_sections i370_elf_finish_dynamic_sections -#define elf_backend_fake_sections i370_elf_fake_sections -#define elf_backend_section_from_shdr i370_elf_section_from_shdr -#define elf_backend_adjust_dynamic_symbol i370_elf_adjust_dynamic_symbol -#define elf_backend_check_relocs i370_elf_check_relocs - -static int -i370_noop (void) -{ - return 1; -} - -#define elf_backend_finish_dynamic_symbol \ - (bfd_boolean (*) \ - (bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, \ - Elf_Internal_Sym *)) i370_noop - -#include "elf32-target.h" diff -Nru gdb-8.1/bfd/elf32-i386.c gdb-8.2/bfd/elf32-i386.c --- gdb-8.1/bfd/elf32-i386.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-i386.c 2018-09-05 07:27:13.000000000 +0000 @@ -194,7 +194,7 @@ #endif static reloc_howto_type * -elf_i386_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, +elf_i386_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code) { switch (code) @@ -346,11 +346,13 @@ return &elf_howto_table[R_386_GNU_VTENTRY - R_386_vt_offset]; default: - break; + TRACE ("Unknown"); + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type: %#x"), + abfd, (int) code); + bfd_set_error (bfd_error_bad_value); + return NULL; } - - TRACE ("Unknown"); - return 0; } static reloc_howto_type * @@ -368,7 +370,7 @@ } static reloc_howto_type * -elf_i386_rtype_to_howto (bfd *abfd, unsigned r_type) +elf_i386_rtype_to_howto (bfd *abfd ATTRIBUTE_UNUSED, unsigned r_type) { unsigned int indx; @@ -379,25 +381,30 @@ >= R_386_ext2 - R_386_ext) && ((indx = r_type - R_386_vt_offset) - R_386_ext2 >= R_386_vt - R_386_ext2)) - { - /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid relocation type %d"), - abfd, (int) r_type); - indx = R_386_NONE; - } + return NULL; /* PR 17512: file: 0f67f69d. */ if (elf_howto_table [indx].type != r_type) return NULL; return &elf_howto_table[indx]; } -static void -elf_i386_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +elf_i386_info_to_howto_rel (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { unsigned int r_type = ELF32_R_TYPE (dst->r_info); - cache_ptr->howto = elf_i386_rtype_to_howto (abfd, r_type); + + if ((cache_ptr->howto = elf_i386_rtype_to_howto (abfd, r_type)) == NULL) + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + + return TRUE; } /* Return whether a symbol name implies a local label. The UnixWare @@ -759,6 +766,12 @@ sizeof (elf_i386_lazy_plt0_entry), /* plt0_entry_size */ elf_i386_lazy_plt_entry, /* plt_entry */ LAZY_PLT_ENTRY_SIZE, /* plt_entry_size */ + NULL, /* plt_tlsdesc_entry */ + 0, /* plt_tlsdesc_entry_size*/ + 0, /* plt_tlsdesc_got1_offset */ + 0, /* plt_tlsdesc_got2_offset */ + 0, /* plt_tlsdesc_got1_insn_end */ + 0, /* plt_tlsdesc_got2_insn_end */ 2, /* plt0_got1_offset */ 8, /* plt0_got2_offset */ 0, /* plt0_got2_insn_end */ @@ -791,6 +804,12 @@ sizeof (elf_i386_lazy_ibt_plt0_entry), /* plt0_entry_size */ elf_i386_lazy_ibt_plt_entry, /* plt_entry */ LAZY_PLT_ENTRY_SIZE, /* plt_entry_size */ + NULL, /* plt_tlsdesc_entry */ + 0, /* plt_tlsdesc_entry_size*/ + 0, /* plt_tlsdesc_got1_offset */ + 0, /* plt_tlsdesc_got2_offset */ + 0, /* plt_tlsdesc_got1_insn_end */ + 0, /* plt_tlsdesc_got2_insn_end */ 2, /* plt0_got1_offset */ 8, /* plt0_got2_offset */ 0, /* plt0_got2_insn_end */ @@ -1156,10 +1175,10 @@ _bfd_error_handler /* xgettext:c-format */ - (_("%B: TLS transition from %s to %s against `%s' at %#Lx " - "in section `%A' failed"), + (_("%pB: TLS transition from %s to %s against `%s'" + " at %#" PRIx64 " in section `%pA' failed"), abfd, from->name, to->name, name, - rel->r_offset, sec); + (uint64_t) rel->r_offset, sec); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -1247,7 +1266,7 @@ _bfd_error_handler /* xgettext:c-format */ - (_("%B: direct GOT relocation R_386_GOT32X against `%s' without base" + (_("%pB: direct GOT relocation R_386_GOT32X against `%s' without base" " register can not be used when making a shared object"), abfd, name); return FALSE; @@ -1507,7 +1526,7 @@ if (r_symndx >= NUM_SHDR_ENTRIES (symtab_hdr)) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: bad symbol index: %d"), + _bfd_error_handler (_("%pB: bad symbol index: %d"), abfd, r_symndx); goto error_return; } @@ -1578,6 +1597,10 @@ rel, rel_end, h, r_symndx, FALSE)) goto error_return; + /* Check if _GLOBAL_OFFSET_TABLE_ is referenced. */ + if (h == htab->elf.hgot) + htab->got_referenced = TRUE; + switch (r_type) { case R_386_TLS_LDM: @@ -1700,7 +1723,7 @@ NULL); _bfd_error_handler /* xgettext:c-format */ - (_("%B: `%s' accessed both as normal and " + (_("%pB: `%s' accessed both as normal and " "thread local symbol"), abfd, name); bfd_set_error (bfd_error_bad_value); @@ -1720,11 +1743,19 @@ case R_386_GOTOFF: case R_386_GOTPC: - create_got: +create_got: if (r_type != R_386_TLS_IE) { if (eh != NULL) - eh->zero_undefweak &= 0x2; + { + eh->zero_undefweak &= 0x2; + + /* Need GOT to resolve undefined weak symbol to 0. */ + if (r_type == R_386_GOTOFF + && h->root.type == bfd_link_hash_undefweak + && bfd_link_executable (info)) + htab->got_referenced = TRUE; + } break; } /* Fall through */ @@ -1764,7 +1795,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: unsupported non-PIC call to IFUNC `%s'"), + (_("%pB: unsupported non-PIC call to IFUNC `%s'"), abfd, h->root.root.string); bfd_set_error (bfd_error_bad_value); goto error_return; @@ -1800,7 +1831,7 @@ size_reloc = FALSE; do_size: - if (NEED_DYNAMIC_RELOCATION_P (info, h, sec, r_type, + if (NEED_DYNAMIC_RELOCATION_P (info, FALSE, h, sec, r_type, R_386_32)) { struct elf_dyn_relocs *p; @@ -2202,6 +2233,10 @@ if ((input_section->flags & SEC_ALLOC) == 0) { + /* If this is a SHT_NOTE section without SHF_ALLOC, treat + STT_GNU_IFUNC symbol as STT_FUNC. */ + if (elf_section_type (input_section) == SHT_NOTE) + goto skip_ifunc; /* Dynamic relocs are not propagated for SEC_DEBUGGING sections because such sections are not SEC_ALLOC and thus ld.so will not process them. */ @@ -2342,7 +2377,7 @@ NULL); _bfd_error_handler /* xgettext:c-format */ - (_("%B: relocation %s against STT_GNU_IFUNC " + (_("%pB: relocation %s against STT_GNU_IFUNC " "symbol `%s' isn't supported"), input_bfd, howto->name, name); bfd_set_error (bfd_error_bad_value); @@ -2375,7 +2410,7 @@ if (POINTER_LOCAL_IFUNC_P (info, h)) { - info->callbacks->minfo (_("Local IFUNC function `%s' in %B\n"), + info->callbacks->minfo (_("Local IFUNC function `%s' in %pB\n"), h->root.root.string, h->root.u.def.section->owner); @@ -2421,72 +2456,14 @@ } } +skip_ifunc: resolved_to_zero = (eh != NULL && UNDEFINED_WEAK_RESOLVED_TO_ZERO (info, eh)); switch (r_type) { case R_386_GOT32X: - /* Avoid optimizing _DYNAMIC since ld.so may use its - link-time address. */ - if (h == htab->elf.hdynamic) - goto r_386_got32; - - if (bfd_link_pic (info)) - { - /* It is OK to convert mov to lea and convert indirect - branch to direct branch. It is OK to convert adc, - add, and, cmp, or, sbb, sub, test, xor only when PIC - is false. */ - unsigned int opcode, addend; - addend = bfd_get_32 (input_bfd, contents + rel->r_offset); - if (addend != 0) - goto r_386_got32; - opcode = bfd_get_8 (input_bfd, contents + rel->r_offset - 2); - if (opcode != 0x8b && opcode != 0xff) - goto r_386_got32; - } - - /* Resolve "mov GOT[(%reg)], %reg", - "call/jmp *GOT[(%reg)]", "test %reg, foo@GOT[(%reg)]" - and "binop foo@GOT[(%reg)], %reg". */ - if (h == NULL - || (h->plt.offset == (bfd_vma) -1 - && h->got.offset == (bfd_vma) -1) - || htab->elf.sgotplt == NULL) - abort (); - - offplt = (htab->elf.sgotplt->output_section->vma - + htab->elf.sgotplt->output_offset); - - /* It is relative to .got.plt section. */ - if (h->got.offset != (bfd_vma) -1) - /* Use GOT entry. Mask off the least significant bit in - GOT offset which may be set by R_386_GOT32 processing - below. */ - relocation = (htab->elf.sgot->output_section->vma - + htab->elf.sgot->output_offset - + (h->got.offset & ~1) - offplt); - else - /* Use GOTPLT entry. */ - relocation = (h->plt.offset / plt_entry_size - - htab->plt.has_plt0 + 3) * 4; - - if (!bfd_link_pic (info)) - { - /* If not PIC, add the .got.plt section address for - baseless addressing. */ - unsigned int modrm; - modrm = bfd_get_8 (input_bfd, contents + rel->r_offset - 1); - if ((modrm & 0xc7) == 0x5) - relocation += offplt; - } - - unresolved_reloc = FALSE; - break; - case R_386_GOT32: -r_386_got32: /* Relocation is to the entry for this symbol in the global offset table. */ if (htab->elf.sgot == NULL) @@ -2590,7 +2567,7 @@ _bfd_error_handler /* xgettext:c-format */ - (_("%B: direct GOT relocation %s against `%s'" + (_("%pB: direct GOT relocation %s against `%s'" " without base register can not be used" " when making a shared object"), input_bfd, howto->name, name); @@ -2640,7 +2617,7 @@ _bfd_error_handler /* xgettext:c-format */ - (_("%B: relocation R_386_GOTOFF against undefined %s" + (_("%pB: relocation R_386_GOTOFF against undefined %s" " `%s' can not be used when making a shared object"), input_bfd, v, h->root.root.string); bfd_set_error (bfd_error_bad_value); @@ -2653,7 +2630,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: relocation R_386_GOTOFF against protected %s" + (_("%pB: relocation R_386_GOTOFF against protected %s" " `%s' can not be used when making a shared object"), input_bfd, h->type == STT_FUNC ? "function" : "data", @@ -3430,10 +3407,10 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"), + (_("%pB(%pA+%#" PRIx64 "): unresolvable %s relocation against symbol `%s'"), input_bfd, input_section, - rel->r_offset, + (uint64_t) rel->r_offset, howto->name, h->root.root.string); return FALSE; @@ -3470,9 +3447,9 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): reloc against `%s': error %d"), + (_("%pB(%pA+%#" PRIx64 "): reloc against `%s': error %d"), input_bfd, input_section, - rel->r_offset, name, (int) r); + (uint64_t) rel->r_offset, name, (int) r); return FALSE; } } @@ -3681,7 +3658,7 @@ + got_offset); if (PLT_LOCAL_IFUNC_P (info, h)) { - info->callbacks->minfo (_("Local IFUNC function `%s' in %B\n"), + info->callbacks->minfo (_("Local IFUNC function `%s' in %pB\n"), h->root.root.string, h->root.u.def.section->owner); @@ -3781,6 +3758,8 @@ sym->st_value = 0; } + _bfd_x86_elf_link_fixup_ifunc_symbol (info, htab, h, sym); + /* Don't generate dynamic GOT relocation against undefined weak symbol in executable. */ if (h->got.offset != (bfd_vma) -1 @@ -3820,7 +3799,7 @@ } if (SYMBOL_REFERENCES_LOCAL_P (info, h)) { - info->callbacks->minfo (_("Local IFUNC function `%s' in %B\n"), + info->callbacks->minfo (_("Local IFUNC function `%s' in %pB\n"), h->root.root.string, h->root.u.def.section->owner); @@ -4178,6 +4157,7 @@ switch (get_elf_x86_backend_data (abfd)->target_os) { case is_normal: + case is_solaris: non_lazy_plt = &elf_i386_non_lazy_plt; lazy_ibt_plt = &elf_i386_lazy_ibt_plt; non_lazy_ibt_plt = &elf_i386_non_lazy_ibt_plt; @@ -4337,6 +4317,7 @@ switch (get_elf_x86_backend_data (info->output_bfd)->target_os) { case is_normal: + case is_solaris: init_table.plt0_pad_byte = 0x0; init_table.lazy_plt = &elf_i386_lazy_plt; init_table.non_lazy_plt = &elf_i386_non_lazy_plt; @@ -4409,6 +4390,8 @@ #define elf_backend_linux_prpsinfo32_ugid16 TRUE +#define elf32_bed elf32_i386_bed + #include "elf32-target.h" /* FreeBSD support. */ @@ -4454,6 +4437,14 @@ #undef TARGET_LITTLE_NAME #define TARGET_LITTLE_NAME "elf32-i386-sol2" +static const struct elf_x86_backend_data elf_i386_solaris_arch_bed = + { + is_solaris /* os */ + }; + +#undef elf_backend_arch_data +#define elf_backend_arch_data &elf_i386_solaris_arch_bed + #undef elf_backend_post_process_headers /* Restore default: we cannot use ELFOSABI_SOLARIS, otherwise ELFOSABI_NONE @@ -4580,6 +4571,9 @@ #undef ELF_MACHINE_CODE #define ELF_MACHINE_CODE EM_IAMCU +#undef elf_backend_arch_data +#define elf_backend_arch_data &elf_i386_arch_bed + #undef ELF_OSABI #undef elf32_bed @@ -4746,6 +4740,12 @@ sizeof (elf_i386_nacl_plt0_entry), /* plt0_entry_size */ elf_i386_nacl_plt_entry, /* plt_entry */ NACL_PLT_ENTRY_SIZE, /* plt_entry_size */ + NULL, /* plt_tlsdesc_entry */ + 0, /* plt_tlsdesc_entry_size*/ + 0, /* plt_tlsdesc_got1_offset */ + 0, /* plt_tlsdesc_got2_offset */ + 0, /* plt_tlsdesc_got1_insn_end */ + 0, /* plt_tlsdesc_got2_insn_end */ 2, /* plt0_got1_offset */ 8, /* plt0_got2_offset */ 0, /* plt0_got2_insn_end */ diff -Nru gdb-8.1/bfd/elf32-i860.c gdb-8.2/bfd/elf32-i860.c --- gdb-8.1/bfd/elf32-i860.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-i860.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,1265 +0,0 @@ -/* Intel i860 specific support for 32-bit ELF. - Copyright (C) 1993-2018 Free Software Foundation, Inc. - - Full i860 support contributed by Jason Eckhardt . - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "elf-bfd.h" -#include "elf/i860.h" - -/* special_function for R_860_PC26 relocation. */ -static bfd_reloc_status_type -i860_howto_pc26_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 insn; - bfd_vma relocation; - bfd_byte *addr; - - if (output_bfd != NULL - && (symbol->flags & BSF_SECTION_SYM) == 0 - && (! reloc_entry->howto->partial_inplace - || reloc_entry->addend == 0)) - { - reloc_entry->address += input_section->output_offset; - return bfd_reloc_ok; - } - - /* Used elf32-mips.c as an example. */ - if (bfd_is_und_section (symbol->section) - && output_bfd == (bfd *) NULL) - return bfd_reloc_undefined; - - if (bfd_is_com_section (symbol->section)) - relocation = 0; - else - relocation = symbol->value; - - relocation += symbol->section->output_section->vma; - relocation += symbol->section->output_offset; - relocation += reloc_entry->addend; - - if (reloc_entry->address > bfd_get_section_limit (abfd, input_section)) - return bfd_reloc_outofrange; - - /* Adjust for PC-relative relocation. */ - relocation -= (input_section->output_section->vma - + input_section->output_offset - + reloc_entry->address - + 4); - - /* Check for target out of range. */ - if ((bfd_signed_vma)relocation > (0x3ffffff << 2) - || (bfd_signed_vma)relocation < (-0x4000000 * 4)) - return bfd_reloc_outofrange; - - addr = (bfd_byte *) data + reloc_entry->address; - insn = bfd_get_32 (abfd, addr); - - relocation >>= reloc_entry->howto->rightshift; - insn = (insn & ~reloc_entry->howto->dst_mask) - | (relocation & reloc_entry->howto->dst_mask); - - bfd_put_32 (abfd, (bfd_vma) insn, addr); - - return bfd_reloc_ok; -} - -/* special_function for R_860_PC16 relocation. */ -static bfd_reloc_status_type -i860_howto_pc16_reloc (bfd *abfd, - arelent *reloc_entry, - asymbol *symbol, - void *data, - asection *input_section, - bfd *output_bfd, - char **error_message ATTRIBUTE_UNUSED) -{ - bfd_vma insn; - bfd_vma relocation; - bfd_byte *addr; - - if (output_bfd != NULL - && (symbol->flags & BSF_SECTION_SYM) == 0 - && (! reloc_entry->howto->partial_inplace - || reloc_entry->addend == 0)) - { - reloc_entry->address += input_section->output_offset; - return bfd_reloc_ok; - } - - /* Used elf32-mips.c as an example. */ - if (bfd_is_und_section (symbol->section) - && output_bfd == (bfd *) NULL) - return bfd_reloc_undefined; - - if (bfd_is_com_section (symbol->section)) - relocation = 0; - else - relocation = symbol->value; - - relocation += symbol->section->output_section->vma; - relocation += symbol->section->output_offset; - relocation += reloc_entry->addend; - - if (reloc_entry->address > bfd_get_section_limit (abfd, input_section)) - return bfd_reloc_outofrange; - - /* Adjust for PC-relative relocation. */ - relocation -= (input_section->output_section->vma - + input_section->output_offset - + reloc_entry->address - + 4); - - /* Check for target out of range. */ - if ((bfd_signed_vma)relocation > (0x7fff << 2) - || (bfd_signed_vma)relocation < (-0x8000 * 4)) - return bfd_reloc_outofrange; - - addr = (bfd_byte *) data + reloc_entry->address; - insn = bfd_get_32 (abfd, addr); - - relocation >>= reloc_entry->howto->rightshift; - relocation = (((relocation & 0xf800) << 5) | (relocation & 0x7ff)) - & reloc_entry->howto->dst_mask; - insn = (insn & ~reloc_entry->howto->dst_mask) | relocation; - - bfd_put_32 (abfd, (bfd_vma) insn, addr); - - return bfd_reloc_ok; -} - -/* special_function for R_860_HIGHADJ relocation. */ -static bfd_reloc_status_type -i860_howto_highadj_reloc (bfd *abfd, - arelent *reloc_entry, - asymbol *symbol, - void *data, - asection *input_section, - bfd *output_bfd, - char **error_message ATTRIBUTE_UNUSED) -{ - bfd_vma insn; - bfd_vma relocation; - bfd_byte *addr; - - if (output_bfd != NULL - && (symbol->flags & BSF_SECTION_SYM) == 0 - && (! reloc_entry->howto->partial_inplace - || reloc_entry->addend == 0)) - { - reloc_entry->address += input_section->output_offset; - return bfd_reloc_ok; - } - - /* Used elf32-mips.c as an example. */ - if (bfd_is_und_section (symbol->section) - && output_bfd == (bfd *) NULL) - return bfd_reloc_undefined; - - if (bfd_is_com_section (symbol->section)) - relocation = 0; - else - relocation = symbol->value; - - relocation += symbol->section->output_section->vma; - relocation += symbol->section->output_offset; - relocation += reloc_entry->addend; - relocation += 0x8000; - - if (reloc_entry->address > bfd_get_section_limit (abfd, input_section)) - return bfd_reloc_outofrange; - - addr = (bfd_byte *) data + reloc_entry->address; - insn = bfd_get_32 (abfd, addr); - - relocation = ((relocation >> 16) & 0xffff); - - insn = (insn & 0xffff0000) | relocation; - - bfd_put_32 (abfd, (bfd_vma) insn, addr); - - return bfd_reloc_ok; -} - -/* special_function for R_860_SPLITn relocations. */ -static bfd_reloc_status_type -i860_howto_splitn_reloc (bfd *abfd, - arelent *reloc_entry, - asymbol *symbol, - void *data, - asection *input_section, - bfd *output_bfd, - char **error_message ATTRIBUTE_UNUSED) -{ - bfd_vma insn; - bfd_vma relocation; - bfd_byte *addr; - - if (output_bfd != NULL - && (symbol->flags & BSF_SECTION_SYM) == 0 - && (! reloc_entry->howto->partial_inplace - || reloc_entry->addend == 0)) - { - reloc_entry->address += input_section->output_offset; - return bfd_reloc_ok; - } - - /* Used elf32-mips.c as an example. */ - if (bfd_is_und_section (symbol->section) - && output_bfd == (bfd *) NULL) - return bfd_reloc_undefined; - - if (bfd_is_com_section (symbol->section)) - relocation = 0; - else - relocation = symbol->value; - - relocation += symbol->section->output_section->vma; - relocation += symbol->section->output_offset; - relocation += reloc_entry->addend; - - if (reloc_entry->address > bfd_get_section_limit (abfd, input_section)) - return bfd_reloc_outofrange; - - addr = (bfd_byte *) data + reloc_entry->address; - insn = bfd_get_32 (abfd, addr); - - relocation = (((relocation & 0xf800) << 5) | (relocation & 0x7ff)) - & reloc_entry->howto->dst_mask; - insn = (insn & ~reloc_entry->howto->dst_mask) | relocation; - - bfd_put_32 (abfd, (bfd_vma) insn, addr); - - return bfd_reloc_ok; -} - -/* This howto table is preliminary. */ -static reloc_howto_type elf32_i860_howto_table [] = -{ - /* This relocation does nothing. */ - HOWTO (R_860_NONE, /* type */ - 0, /* rightshift */ - 3, /* size (0 = byte, 1 = short, 2 = long) */ - 0, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_860_NONE", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* A 32-bit absolute relocation. */ - HOWTO (R_860_32, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 32, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_860_32", /* name */ - FALSE, /* partial_inplace */ - 0xffffffff, /* src_mask */ - 0xffffffff, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_860_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, /* special_function */ - "R_860_COPY", /* name */ - TRUE, /* partial_inplace */ - 0xffffffff, /* src_mask */ - 0xffffffff, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_860_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, /* special_function */ - "R_860_GLOB_DAT", /* name */ - TRUE, /* partial_inplace */ - 0xffffffff, /* src_mask */ - 0xffffffff, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_860_JUMP_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, /* special_function */ - "R_860_JUMP_SLOT", /* name */ - TRUE, /* partial_inplace */ - 0xffffffff, /* src_mask */ - 0xffffffff, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_860_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, /* special_function */ - "R_860_RELATIVE", /* name */ - TRUE, /* partial_inplace */ - 0xffffffff, /* src_mask */ - 0xffffffff, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* A 26-bit PC-relative relocation. */ - HOWTO (R_860_PC26, /* type */ - 2, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 26, /* bitsize */ - TRUE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - i860_howto_pc26_reloc, /* special_function */ - "R_860_PC26", /* name */ - FALSE, /* partial_inplace */ - 0x3ffffff, /* src_mask */ - 0x3ffffff, /* dst_mask */ - TRUE), /* pcrel_offset */ - - HOWTO (R_860_PLT26, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 26, /* bitsize */ - TRUE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_860_PLT26", /* name */ - TRUE, /* partial_inplace */ - 0xffffffff, /* src_mask */ - 0xffffffff, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* A 16-bit PC-relative relocation. */ - HOWTO (R_860_PC16, /* type */ - 2, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - TRUE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - i860_howto_pc16_reloc, /* special_function */ - "R_860_PC16", /* name */ - FALSE, /* partial_inplace */ - 0x1f07ff, /* src_mask */ - 0x1f07ff, /* dst_mask */ - TRUE), /* pcrel_offset */ - - HOWTO (R_860_LOW0, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_860_LOW0", /* name */ - FALSE, /* partial_inplace */ - 0xffff, /* src_mask */ - 0xffff, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_860_SPLIT0, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - i860_howto_splitn_reloc, /* special_function */ - "R_860_SPLIT0", /* name */ - FALSE, /* partial_inplace */ - 0x1f07ff, /* src_mask */ - 0x1f07ff, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_860_LOW1, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_860_LOW1", /* name */ - FALSE, /* partial_inplace */ - 0xfffe, /* src_mask */ - 0xfffe, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_860_SPLIT1, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - i860_howto_splitn_reloc, /* special_function */ - "R_860_SPLIT1", /* name */ - FALSE, /* partial_inplace */ - 0x1f07fe, /* src_mask */ - 0x1f07fe, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_860_LOW2, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_860_LOW2", /* name */ - FALSE, /* partial_inplace */ - 0xfffc, /* src_mask */ - 0xfffc, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_860_SPLIT2, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - i860_howto_splitn_reloc, /* special_function */ - "R_860_SPLIT2", /* name */ - FALSE, /* partial_inplace */ - 0x1f07fc, /* src_mask */ - 0x1f07fc, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_860_LOW3, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_860_LOW3", /* name */ - FALSE, /* partial_inplace */ - 0xfff8, /* src_mask */ - 0xfff8, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_860_LOGOT0, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_860_LOGOT0", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xffff, /* dst_mask */ - TRUE), /* pcrel_offset */ - - HOWTO (R_860_SPGOT0, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_860_SPGOT0", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xffff, /* dst_mask */ - TRUE), /* pcrel_offset */ - - HOWTO (R_860_LOGOT1, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_860_LOGOT1", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xffff, /* dst_mask */ - TRUE), /* pcrel_offset */ - - HOWTO (R_860_SPGOT1, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_860_SPGOT1", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xffff, /* dst_mask */ - TRUE), /* pcrel_offset */ - - HOWTO (R_860_LOGOTOFF0, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 32, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_860_LOGOTOFF0", /* name */ - TRUE, /* partial_inplace */ - 0xffffffff, /* src_mask */ - 0xffffffff, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_860_SPGOTOFF0, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 32, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_860_SPGOTOFF0", /* name */ - TRUE, /* partial_inplace */ - 0xffffffff, /* src_mask */ - 0xffffffff, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_860_LOGOTOFF1, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 32, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_860_LOGOTOFF1", /* name */ - TRUE, /* partial_inplace */ - 0xffffffff, /* src_mask */ - 0xffffffff, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_860_SPGOTOFF1, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 32, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_860_SPGOTOFF1", /* name */ - TRUE, /* partial_inplace */ - 0xffffffff, /* src_mask */ - 0xffffffff, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_860_LOGOTOFF2, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 32, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_860_LOGOTOFF2", /* name */ - TRUE, /* partial_inplace */ - 0xffffffff, /* src_mask */ - 0xffffffff, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_860_LOGOTOFF3, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 32, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_860_LOGOTOFF3", /* name */ - TRUE, /* partial_inplace */ - 0xffffffff, /* src_mask */ - 0xffffffff, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_860_LOPC, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - TRUE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_860_LOPC", /* name */ - FALSE, /* partial_inplace */ - 0xffff, /* src_mask */ - 0xffff, /* dst_mask */ - TRUE), /* pcrel_offset */ - - HOWTO (R_860_HIGHADJ, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - i860_howto_highadj_reloc, /* special_function */ - "R_860_HIGHADJ", /* name */ - FALSE, /* partial_inplace */ - 0xffff, /* src_mask */ - 0xffff, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_860_HAGOT, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_860_HAGOT", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xffff, /* dst_mask */ - TRUE), /* pcrel_offset */ - - HOWTO (R_860_HAGOTOFF, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 32, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_860_HAGOTOFF", /* name */ - TRUE, /* partial_inplace */ - 0xffffffff, /* src_mask */ - 0xffffffff, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_860_HAPC, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - TRUE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_860_HAPC", /* name */ - FALSE, /* partial_inplace */ - 0xffff, /* src_mask */ - 0xffff, /* dst_mask */ - TRUE), /* pcrel_offset */ - - HOWTO (R_860_HIGH, /* type */ - 16, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_860_HIGH", /* name */ - FALSE, /* partial_inplace */ - 0xffff, /* src_mask */ - 0xffff, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_860_HIGOT, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_860_HIGOT", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xffff, /* dst_mask */ - TRUE), /* pcrel_offset */ - - HOWTO (R_860_HIGOTOFF, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 32, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_860_HIGOTOFF", /* name */ - TRUE, /* partial_inplace */ - 0xffffffff, /* src_mask */ - 0xffffffff, /* dst_mask */ - FALSE), /* pcrel_offset */ -}; - -static unsigned char elf_code_to_howto_index[R_860_max + 1]; - -static reloc_howto_type * -lookup_howto (unsigned int rtype) -{ - static int initialized = 0; - int i; - int howto_tbl_size = (int) (sizeof (elf32_i860_howto_table) - / sizeof (elf32_i860_howto_table[0])); - - if (! initialized) - { - initialized = 1; - memset (elf_code_to_howto_index, 0xff, - sizeof (elf_code_to_howto_index)); - for (i = 0; i < howto_tbl_size; i++) - elf_code_to_howto_index[elf32_i860_howto_table[i].type] = i; - } - - BFD_ASSERT (rtype <= R_860_max); - i = elf_code_to_howto_index[rtype]; - if (i >= howto_tbl_size) - return 0; - return elf32_i860_howto_table + i; -} - -/* Given a BFD reloc, return the matching HOWTO structure. */ -static reloc_howto_type * -elf32_i860_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, - bfd_reloc_code_real_type code) -{ - unsigned int rtype; - - switch (code) - { - case BFD_RELOC_NONE: - rtype = R_860_NONE; - break; - case BFD_RELOC_32: - rtype = R_860_32; - break; - case BFD_RELOC_860_COPY: - rtype = R_860_COPY; - break; - case BFD_RELOC_860_GLOB_DAT: - rtype = R_860_GLOB_DAT; - break; - case BFD_RELOC_860_JUMP_SLOT: - rtype = R_860_JUMP_SLOT; - break; - case BFD_RELOC_860_RELATIVE: - rtype = R_860_RELATIVE; - break; - case BFD_RELOC_860_PC26: - rtype = R_860_PC26; - break; - case BFD_RELOC_860_PLT26: - rtype = R_860_PLT26; - break; - case BFD_RELOC_860_PC16: - rtype = R_860_PC16; - break; - case BFD_RELOC_860_LOW0: - rtype = R_860_LOW0; - break; - case BFD_RELOC_860_SPLIT0: - rtype = R_860_SPLIT0; - break; - case BFD_RELOC_860_LOW1: - rtype = R_860_LOW1; - break; - case BFD_RELOC_860_SPLIT1: - rtype = R_860_SPLIT1; - break; - case BFD_RELOC_860_LOW2: - rtype = R_860_LOW2; - break; - case BFD_RELOC_860_SPLIT2: - rtype = R_860_SPLIT2; - break; - case BFD_RELOC_860_LOW3: - rtype = R_860_LOW3; - break; - case BFD_RELOC_860_LOGOT0: - rtype = R_860_LOGOT0; - break; - case BFD_RELOC_860_SPGOT0: - rtype = R_860_SPGOT0; - break; - case BFD_RELOC_860_LOGOT1: - rtype = R_860_LOGOT1; - break; - case BFD_RELOC_860_SPGOT1: - rtype = R_860_SPGOT1; - break; - case BFD_RELOC_860_LOGOTOFF0: - rtype = R_860_LOGOTOFF0; - break; - case BFD_RELOC_860_SPGOTOFF0: - rtype = R_860_SPGOTOFF0; - break; - case BFD_RELOC_860_LOGOTOFF1: - rtype = R_860_LOGOTOFF1; - break; - case BFD_RELOC_860_SPGOTOFF1: - rtype = R_860_SPGOTOFF1; - break; - case BFD_RELOC_860_LOGOTOFF2: - rtype = R_860_LOGOTOFF2; - break; - case BFD_RELOC_860_LOGOTOFF3: - rtype = R_860_LOGOTOFF3; - break; - case BFD_RELOC_860_LOPC: - rtype = R_860_LOPC; - break; - case BFD_RELOC_860_HIGHADJ: - rtype = R_860_HIGHADJ; - break; - case BFD_RELOC_860_HAGOT: - rtype = R_860_HAGOT; - break; - case BFD_RELOC_860_HAGOTOFF: - rtype = R_860_HAGOTOFF; - break; - case BFD_RELOC_860_HAPC: - rtype = R_860_HAPC; - break; - case BFD_RELOC_860_HIGH: - rtype = R_860_HIGH; - break; - case BFD_RELOC_860_HIGOT: - rtype = R_860_HIGOT; - break; - case BFD_RELOC_860_HIGOTOFF: - rtype = R_860_HIGOTOFF; - break; - default: - rtype = 0; - break; - } - return lookup_howto (rtype); -} - -static reloc_howto_type * -elf32_i860_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, - const char *r_name) -{ - unsigned int i; - - for (i = 0; - i < (sizeof (elf32_i860_howto_table) - / sizeof (elf32_i860_howto_table[0])); - i++) - if (elf32_i860_howto_table[i].name != NULL - && strcasecmp (elf32_i860_howto_table[i].name, r_name) == 0) - return &elf32_i860_howto_table[i]; - - return NULL; -} - -/* Given a ELF reloc, return the matching HOWTO structure. */ -static void -elf32_i860_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED, - arelent *bfd_reloc, - Elf_Internal_Rela *elf_reloc) -{ - bfd_reloc->howto - = lookup_howto ((unsigned) ELF32_R_TYPE (elf_reloc->r_info)); -} - -/* Specialized relocation handler for R_860_SPLITn. These relocations - involves a 16-bit field that is split into two contiguous parts. */ -static bfd_reloc_status_type -elf32_i860_relocate_splitn (bfd *input_bfd, - Elf_Internal_Rela *rello, - bfd_byte *contents, - bfd_vma value) -{ - bfd_vma insn; - reloc_howto_type *howto; - howto = lookup_howto ((unsigned) ELF32_R_TYPE (rello->r_info)); - insn = bfd_get_32 (input_bfd, contents + rello->r_offset); - - /* Relocate. */ - value += rello->r_addend; - - /* Separate the fields and insert. */ - value = (((value & 0xf800) << 5) | (value & 0x7ff)) & howto->dst_mask; - insn = (insn & ~howto->dst_mask) | value; - - bfd_put_32 (input_bfd, insn, contents + rello->r_offset); - return bfd_reloc_ok; -} - -/* Specialized relocation handler for R_860_PC16. This relocation - involves a 16-bit, PC-relative field that is split into two contiguous - parts. */ -static bfd_reloc_status_type -elf32_i860_relocate_pc16 (bfd *input_bfd, - asection *input_section, - Elf_Internal_Rela *rello, - bfd_byte *contents, - bfd_vma value) -{ - bfd_vma insn; - reloc_howto_type *howto; - howto = lookup_howto ((unsigned) ELF32_R_TYPE (rello->r_info)); - insn = bfd_get_32 (input_bfd, contents + rello->r_offset); - - /* Adjust for PC-relative relocation. */ - value -= (input_section->output_section->vma - + input_section->output_offset); - value -= rello->r_offset; - - /* Relocate. */ - value += rello->r_addend; - - /* Adjust the value by 4, then separate the fields and insert. */ - value = (value - 4) >> howto->rightshift; - value = (((value & 0xf800) << 5) | (value & 0x7ff)) & howto->dst_mask; - insn = (insn & ~howto->dst_mask) | value; - - bfd_put_32 (input_bfd, insn, contents + rello->r_offset); - return bfd_reloc_ok; - -} - -/* Specialized relocation handler for R_860_PC26. This relocation - involves a 26-bit, PC-relative field which must be adjusted by 4. */ -static bfd_reloc_status_type -elf32_i860_relocate_pc26 (bfd *input_bfd, - asection *input_section, - Elf_Internal_Rela *rello, - bfd_byte *contents, - bfd_vma value) -{ - bfd_vma insn; - reloc_howto_type *howto; - howto = lookup_howto ((unsigned) ELF32_R_TYPE (rello->r_info)); - insn = bfd_get_32 (input_bfd, contents + rello->r_offset); - - /* Adjust for PC-relative relocation. */ - value -= (input_section->output_section->vma - + input_section->output_offset); - value -= rello->r_offset; - - /* Relocate. */ - value += rello->r_addend; - - /* Adjust value by 4 and insert the field. */ - value = ((value - 4) >> howto->rightshift) & howto->dst_mask; - insn = (insn & ~howto->dst_mask) | value; - - bfd_put_32 (input_bfd, insn, contents + rello->r_offset); - return bfd_reloc_ok; - -} - -/* Specialized relocation handler for R_860_HIGHADJ. */ -static bfd_reloc_status_type -elf32_i860_relocate_highadj (bfd *input_bfd, - Elf_Internal_Rela *rel, - bfd_byte *contents, - bfd_vma value) -{ - bfd_vma insn; - - insn = bfd_get_32 (input_bfd, contents + rel->r_offset); - - value += rel->r_addend; - value += 0x8000; - value = ((value >> 16) & 0xffff); - - insn = (insn & 0xffff0000) | value; - - bfd_put_32 (input_bfd, insn, contents + rel->r_offset); - return bfd_reloc_ok; -} - -/* Perform a single relocation. By default we use the standard BFD - routines. However, we handle some specially. */ -static bfd_reloc_status_type -i860_final_link_relocate (reloc_howto_type *howto, - bfd *input_bfd, - asection *input_section, - bfd_byte *contents, - Elf_Internal_Rela *rel, - bfd_vma relocation) -{ - return _bfd_final_link_relocate (howto, input_bfd, input_section, - contents, rel->r_offset, relocation, - rel->r_addend); -} - -/* Relocate an i860 ELF section. - - This is boiler-plate code copied from fr30. - - The RELOCATE_SECTION function is called by the new ELF backend linker - to handle the relocations for a section. - - The relocs are always passed as Rela structures; if the section - actually uses Rel structures, the r_addend field will always be - zero. - - This function is responsible for adjusting the section contents as - 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 - address or the reloc symbol index. - - LOCAL_SYMS is a pointer to the swapped in local symbols. - - LOCAL_SECTIONS is an array giving the section in the input file - corresponding to the st_shndx field of each local symbol. - - The global hash table entry for the global symbols can be found - via elf_sym_hashes (input_bfd). - - 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 -elf32_i860_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED, - 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; - Elf_Internal_Rela *relend; - - symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr; - sym_hashes = elf_sym_hashes (input_bfd); - relend = relocs + input_section->reloc_count; - - for (rel = relocs; rel < relend; rel ++) - { - reloc_howto_type * howto; - unsigned long r_symndx; - Elf_Internal_Sym * sym; - asection * sec; - struct elf_link_hash_entry * h; - bfd_vma relocation; - bfd_reloc_status_type r; - const char * name = NULL; - int r_type; - - r_type = ELF32_R_TYPE (rel->r_info); - r_symndx = ELF32_R_SYM (rel->r_info); - - howto = lookup_howto ((unsigned) ELF32_R_TYPE (rel->r_info)); - h = NULL; - sym = NULL; - sec = NULL; - - if (r_symndx < symtab_hdr->sh_info) - { - sym = local_syms + r_symndx; - sec = local_sections [r_symndx]; - relocation = _bfd_elf_rela_local_sym (output_bfd, sym, &sec, rel); - - name = bfd_elf_string_from_elf_section - (input_bfd, symtab_hdr->sh_link, sym->st_name); - name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name; - } - else - { - bfd_boolean unresolved_reloc, warned, ignored; - - RELOC_FOR_GLOBAL_SYMBOL (info, input_bfd, input_section, rel, - r_symndx, symtab_hdr, sym_hashes, - h, sec, relocation, - unresolved_reloc, warned, ignored); - } - - if (sec != NULL && discarded_section (sec)) - RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section, - rel, 1, relend, howto, 0, contents); - - if (bfd_link_relocatable (info)) - continue; - - switch (r_type) - { - default: - r = i860_final_link_relocate (howto, input_bfd, input_section, - contents, rel, relocation); - break; - - case R_860_HIGHADJ: - r = elf32_i860_relocate_highadj (input_bfd, rel, contents, - relocation); - break; - - case R_860_PC16: - r = elf32_i860_relocate_pc16 (input_bfd, input_section, rel, - contents, relocation); - break; - - case R_860_PC26: - r = elf32_i860_relocate_pc26 (input_bfd, input_section, rel, - contents, relocation); - break; - - case R_860_SPLIT0: - case R_860_SPLIT1: - case R_860_SPLIT2: - r = elf32_i860_relocate_splitn (input_bfd, rel, contents, - relocation); - break; - - /* We do not yet handle GOT/PLT/Dynamic relocations. */ - case R_860_COPY: - case R_860_GLOB_DAT: - case R_860_JUMP_SLOT: - case R_860_RELATIVE: - case R_860_PLT26: - case R_860_LOGOT0: - case R_860_SPGOT0: - case R_860_LOGOT1: - case R_860_SPGOT1: - case R_860_LOGOTOFF0: - case R_860_SPGOTOFF0: - case R_860_LOGOTOFF1: - case R_860_SPGOTOFF1: - case R_860_LOGOTOFF2: - case R_860_LOGOTOFF3: - case R_860_LOPC: - case R_860_HAGOT: - case R_860_HAGOTOFF: - case R_860_HAPC: - case R_860_HIGOT: - case R_860_HIGOTOFF: - r = bfd_reloc_notsupported; - break; - } - - if (r != bfd_reloc_ok) - { - const char * msg = (const char *) NULL; - - switch (r) - { - case bfd_reloc_overflow: - (*info->callbacks->reloc_overflow) - (info, (h ? &h->root : NULL), name, howto->name, - (bfd_vma) 0, input_bfd, input_section, rel->r_offset); - break; - - case bfd_reloc_undefined: - (*info->callbacks->undefined_symbol) - (info, name, input_bfd, input_section, rel->r_offset, TRUE); - break; - - case bfd_reloc_outofrange: - msg = _("internal error: out of range error"); - break; - - case bfd_reloc_notsupported: - msg = _("internal error: unsupported relocation error"); - break; - - case bfd_reloc_dangerous: - msg = _("internal error: dangerous relocation"); - break; - - default: - msg = _("internal error: unknown error"); - break; - } - - if (msg) - (*info->callbacks->warning) (info, msg, name, input_bfd, - input_section, rel->r_offset); - } - } - - return TRUE; -} - -/* Return whether a symbol name implies a local label. SVR4/860 compilers - generate labels of the form ".ep.function_name" to denote the end of a - function prolog. These should be local. - ??? Do any other SVR4 compilers have this convention? If so, this should - be added to the generic routine. */ -static bfd_boolean -elf32_i860_is_local_label_name (bfd *abfd, const char *name) -{ - if (name[0] == '.' && name[1] == 'e' && name[2] == 'p' && name[3] == '.') - return TRUE; - - return _bfd_elf_is_local_label_name (abfd, name); -} - -#define TARGET_BIG_SYM i860_elf32_vec -#define TARGET_BIG_NAME "elf32-i860" -#define TARGET_LITTLE_SYM i860_elf32_le_vec -#define TARGET_LITTLE_NAME "elf32-i860-little" -#define ELF_ARCH bfd_arch_i860 -#define ELF_MACHINE_CODE EM_860 -#define ELF_MAXPAGESIZE 4096 - -#define elf_backend_rela_normal 1 -#define elf_info_to_howto_rel NULL -#define elf_info_to_howto elf32_i860_info_to_howto_rela -#define elf_backend_relocate_section elf32_i860_relocate_section -#define bfd_elf32_bfd_reloc_type_lookup elf32_i860_reloc_type_lookup -#define bfd_elf32_bfd_reloc_name_lookup elf32_i860_reloc_name_lookup -#define bfd_elf32_bfd_is_local_label_name elf32_i860_is_local_label_name - -#include "elf32-target.h" diff -Nru gdb-8.1/bfd/elf32-i960.c gdb-8.2/bfd/elf32-i960.c --- gdb-8.1/bfd/elf32-i960.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-i960.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,174 +0,0 @@ -/* Intel 960 specific support for 32-bit ELF - Copyright (C) 1999-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "elf-bfd.h" -#include "elf/i960.h" - -#define USE_REL 1 - -#define bfd_elf32_bfd_reloc_type_lookup elf32_i960_reloc_type_lookup -#define bfd_elf32_bfd_reloc_name_lookup \ - elf32_i960_reloc_name_lookup -#define elf_info_to_howto elf32_i960_info_to_howto -#define elf_info_to_howto_rel elf32_i960_info_to_howto_rel - -/* 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 - change anything about the way the reloc is handled, since it will - 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 - relocatable output against an external symbol. */ - -static bfd_reloc_status_type -elf32_i960_relocate (bfd *abfd ATTRIBUTE_UNUSED, - arelent *reloc_entry, - asymbol *symbol, - void * data ATTRIBUTE_UNUSED, - asection *input_section, - bfd *output_bfd, - char **error_message ATTRIBUTE_UNUSED) -{ - /* HACK: I think this first condition is necessary when producing - relocatable output. After the end of HACK, the code is identical - to bfd_elf_generic_reloc(). I would _guess_ the first change - belongs there rather than here. martindo 1998-10-23. */ - if (output_bfd != (bfd *) NULL - && reloc_entry->howto->pc_relative - && !reloc_entry->howto->pcrel_offset) - reloc_entry->addend -= symbol->value; - - /* This is more dubious. */ - else if (output_bfd != (bfd *) NULL - && (symbol->flags & BSF_SECTION_SYM) != 0) - reloc_entry->addend -= symbol->section->output_section->vma; - - else - { - /* ...end of HACK. */ - if (output_bfd != (bfd *) NULL - && (symbol->flags & BSF_SECTION_SYM) == 0 - && (! reloc_entry->howto->partial_inplace - || reloc_entry->addend == 0)) - { - reloc_entry->address += input_section->output_offset; - return bfd_reloc_ok; - } - } - - return bfd_reloc_continue; -} - -static reloc_howto_type elf_howto_table[]= -{ - HOWTO (R_960_NONE, 0, 3, 0, FALSE, 0, complain_overflow_dont, - elf32_i960_relocate, "R_960_NONE", TRUE, - 0x00000000, 0x00000000, FALSE), - EMPTY_HOWTO (1), - HOWTO (R_960_32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, - elf32_i960_relocate, "R_960_32", TRUE, - 0xffffffff, 0xffffffff, FALSE), - HOWTO (R_960_IP24, 0, 2, 24, TRUE, 0, complain_overflow_signed, - elf32_i960_relocate, "R_960_IP24 ", TRUE, - 0x00ffffff, 0x00ffffff, FALSE), - EMPTY_HOWTO (4), - EMPTY_HOWTO (5), - EMPTY_HOWTO (6), - EMPTY_HOWTO (7) -}; - -static enum elf_i960_reloc_type -elf32_i960_bfd_to_reloc_type (bfd_reloc_code_real_type code) -{ - switch (code) - { - default: - return R_960_NONE; - case BFD_RELOC_I960_CALLJ: - return R_960_OPTCALL; - case BFD_RELOC_32: - case BFD_RELOC_CTOR: - return R_960_32; - case BFD_RELOC_24_PCREL: - return R_960_IP24; - } -} - -static void -elf32_i960_info_to_howto (bfd * abfd ATTRIBUTE_UNUSED, - arelent * cache_ptr ATTRIBUTE_UNUSED, - Elf_Internal_Rela * dst ATTRIBUTE_UNUSED) -{ - abort (); -} - -static void -elf32_i960_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED, - arelent *cache_ptr, - Elf_Internal_Rela *dst) -{ - enum elf_i960_reloc_type type; - - type = (enum elf_i960_reloc_type) ELF32_R_TYPE (dst->r_info); - - /* PR 17521: file: 9609b8d6. */ - if (type >= R_960_max) - { - /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid i960 reloc number: %d"), abfd, type); - type = 0; - } - - cache_ptr->howto = &elf_howto_table[(int) type]; -} - -static reloc_howto_type * -elf32_i960_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, - bfd_reloc_code_real_type code) -{ - return elf_howto_table + elf32_i960_bfd_to_reloc_type (code); -} - -static reloc_howto_type * -elf32_i960_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, - const char *r_name) -{ - unsigned int i; - - for (i = 0; i < sizeof (elf_howto_table) / sizeof (elf_howto_table[0]); i++) - if (elf_howto_table[i].name != NULL - && strcasecmp (elf_howto_table[i].name, r_name) == 0) - return &elf_howto_table[i]; - - return NULL; -} - -#define TARGET_LITTLE_SYM i960_elf32_vec -#define TARGET_LITTLE_NAME "elf32-i960" -#define ELF_ARCH bfd_arch_i960 -#define ELF_MACHINE_CODE EM_960 -#define ELF_MAXPAGESIZE 1 /* FIXME: This number is wrong, It should be the page size in bytes. */ - -#include "elf32-target.h" diff -Nru gdb-8.1/bfd/elf32-ip2k.c gdb-8.2/bfd/elf32-ip2k.c --- gdb-8.1/bfd/elf32-ip2k.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-ip2k.c 2018-09-05 07:27:13.000000000 +0000 @@ -1231,8 +1231,8 @@ /* Set the howto pointer for a IP2K ELF reloc. */ -static void -ip2k_info_to_howto_rela (bfd * abfd ATTRIBUTE_UNUSED, +static bfd_boolean +ip2k_info_to_howto_rela (bfd * abfd, arelent * cache_ptr, Elf_Internal_Rela * dst) { @@ -1242,10 +1242,13 @@ if (r_type >= (unsigned int) R_IP2K_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid IP2K reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = & ip2k_elf_howto_table [r_type]; + return TRUE; } /* Perform a single relocation. @@ -1295,9 +1298,11 @@ ip2k_nominal_page_bits (input_bfd, input_section, rel->r_offset, contents)) /* xgettext:c-format */ - _bfd_error_handler (_("ip2k linker: missing page instruction at %#Lx (dest = %#Lx)"), - BASEADDR (input_section) + rel->r_offset, - relocation + rel->r_addend); + _bfd_error_handler + (_("ip2k linker: missing page instruction " + "at %#" PRIx64 " (dest = %#" PRIx64 ")"), + (uint64_t) (BASEADDR (input_section) + rel->r_offset), + (uint64_t) (relocation + rel->r_addend)); } else if (ip2k_relaxed) { @@ -1312,9 +1317,11 @@ ip2k_nominal_page_bits (input_bfd, input_section, rel->r_offset - 2, contents))) /* xgettext:c-format */ - _bfd_error_handler (_("ip2k linker: redundant page instruction at %#Lx (dest = %#Lx)"), - page_addr, - relocation + rel->r_addend); + _bfd_error_handler + (_("ip2k linker: redundant page instruction " + "at %#" PRIx64 " (dest = %#" PRIx64 ")"), + (uint64_t) page_addr, + (uint64_t) (relocation + rel->r_addend)); } if ((relocation & IP2K_INSN_MASK) == IP2K_INSN_VALUE) relocation &= ~IP2K_INSN_MASK; diff -Nru gdb-8.1/bfd/elf32-iq2000.c gdb-8.2/bfd/elf32-iq2000.c --- gdb-8.1/bfd/elf32-iq2000.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-iq2000.c 2018-09-05 07:27:13.000000000 +0000 @@ -22,6 +22,7 @@ #include "libbfd.h" #include "elf-bfd.h" #include "elf/iq2000.h" +#include "libiberty.h" /* Forward declarations. */ @@ -416,7 +417,7 @@ /* Set the howto pointer for a IQ2000 ELF reloc. */ -static void +static bfd_boolean iq2000_info_to_howto_rela (bfd * abfd ATTRIBUTE_UNUSED, arelent * cache_ptr, Elf_Internal_Rela * dst) @@ -435,15 +436,18 @@ break; default: - if (r_type >= (unsigned int) R_IQ2000_max) + if (r_type >= ARRAY_SIZE (iq2000_elf_howto_table)) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid IQ2000 reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = & iq2000_elf_howto_table [r_type]; break; } + return TRUE; } /* Look through the relocs for a section during the first phase. @@ -825,7 +829,7 @@ error = TRUE; _bfd_error_handler /* xgettext:c-format */ - (_("%B: compiled with %s and linked with modules compiled with %s"), + (_("%pB: compiled with %s and linked with modules compiled with %s"), ibfd, new_opt, old_opt); } @@ -839,7 +843,7 @@ _bfd_error_handler /* xgettext:c-format */ - (_("%B: uses different e_flags (%#x) fields than previous modules (%#x)"), + (_("%pB: uses different e_flags (%#x) fields than previous modules (%#x)"), ibfd, new_flags, old_flags); } } diff -Nru gdb-8.1/bfd/elf32-lm32.c gdb-8.2/bfd/elf32-lm32.c --- gdb-8.1/bfd/elf32-lm32.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-lm32.c 2018-09-05 07:27:13.000000000 +0000 @@ -525,8 +525,8 @@ /* Set the howto pointer for an Lattice Mico32 ELF reloc. */ -static void -lm32_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +lm32_info_to_howto_rela (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { @@ -536,10 +536,13 @@ if (r_type >= (unsigned int) R_LM32_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid LM32 reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = &lm32_elf_howto_table[r_type]; + return TRUE; } /* Set the right machine number for an Lattice Mico32 ELF file. */ @@ -995,7 +998,9 @@ /* Addend should be zero. */ if (rel->r_addend != 0) - _bfd_error_handler (_("internal error: addend should be zero for R_LM32_16_GOT")); + _bfd_error_handler + (_("internal error: addend should be zero for %s"), + "R_LM32_16_GOT"); r = _bfd_final_link_relocate (howto, input_bfd, @@ -1073,7 +1078,8 @@ const char *msg = NULL; arelent bfd_reloc; - lm32_info_to_howto_rela (input_bfd, &bfd_reloc, rel); + if (! lm32_info_to_howto_rela (input_bfd, &bfd_reloc, rel)) + continue; howto = bfd_reloc.howto; if (h != NULL) @@ -1427,8 +1433,9 @@ != (lm32fdpic_fixup32_section (info)->reloc_count * 4)) { _bfd_error_handler - ("LINKER BUG: .rofixup section size mismatch: size/4 %Ld != relocs %d", - lm32fdpic_fixup32_section (info)->size/4, + ("LINKER BUG: .rofixup section size mismatch: size/4 %" PRId64 + " != relocs %d", + (int64_t) (lm32fdpic_fixup32_section (info)->size / 4), lm32fdpic_fixup32_section (info)->reloc_count); return FALSE; } @@ -1449,7 +1456,9 @@ if (hend->u.def.value != value) { _bfd_error_handler - ("LINKER BUG: .rofixup section hend->u.def.value != value: %Ld != %Ld", hend->u.def.value, value); + ("LINKER BUG: .rofixup section hend->u.def.value != value: %" + PRId64 " != %" PRId64, + (int64_t) hend->u.def.value, (int64_t) value); return FALSE; } } @@ -1986,7 +1995,7 @@ info->flags |= DF_TEXTREL; info->callbacks->minfo - (_("%B: dynamic relocation against `%T' in read-only section `%A'\n"), + (_("%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"), sec->owner, h->root.root.string, sec); /* Not an error, just cut short the traversal. */ @@ -2562,7 +2571,7 @@ #define bfd_elf32_bfd_reloc_type_lookup lm32_reloc_type_lookup #define bfd_elf32_bfd_reloc_name_lookup lm32_reloc_name_lookup #define elf_info_to_howto lm32_info_to_howto_rela -#define elf_info_to_howto_rel 0 +#define elf_info_to_howto_rel NULL #define elf_backend_rela_normal 1 #define elf_backend_object_p lm32_elf_object_p #define elf_backend_final_write_processing lm32_elf_final_write_processing @@ -2580,7 +2589,7 @@ #define elf_backend_reloc_type_class lm32_elf_reloc_type_class #define elf_backend_copy_indirect_symbol lm32_elf_copy_indirect_symbol #define elf_backend_size_dynamic_sections lm32_elf_size_dynamic_sections -#define elf_backend_omit_section_dynsym ((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true) +#define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all #define elf_backend_create_dynamic_sections lm32_elf_create_dynamic_sections #define elf_backend_finish_dynamic_sections lm32_elf_finish_dynamic_sections #define elf_backend_adjust_dynamic_symbol lm32_elf_adjust_dynamic_symbol diff -Nru gdb-8.1/bfd/elf32-m32c.c gdb-8.2/bfd/elf32-m32c.c --- gdb-8.1/bfd/elf32-m32c.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-m32c.c 2018-09-05 07:27:13.000000000 +0000 @@ -28,7 +28,7 @@ /* Forward declarations. */ static reloc_howto_type * m32c_reloc_type_lookup (bfd *, bfd_reloc_code_real_type); -static void m32c_info_to_howto_rela +static bfd_boolean m32c_info_to_howto_rela (bfd *, arelent *, Elf_Internal_Rela *); static bfd_boolean m32c_elf_relocate_section (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **); @@ -291,11 +291,10 @@ /* Set the howto pointer for an M32C ELF reloc. */ -static void -m32c_info_to_howto_rela - (bfd * abfd ATTRIBUTE_UNUSED, - arelent * cache_ptr, - Elf_Internal_Rela * dst) +static bfd_boolean +m32c_info_to_howto_rela (bfd * abfd, + arelent * cache_ptr, + Elf_Internal_Rela * dst) { unsigned int r_type; @@ -303,10 +302,13 @@ if (r_type >= (unsigned int) R_M32C_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid M32C reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = & m32c_elf_howto_table [r_type]; + return TRUE; } @@ -871,7 +873,7 @@ error = TRUE; _bfd_error_handler /* xgettext:c-format */ - (_("%B: compiled with %s and linked with modules compiled with %s"), + (_("%pB: compiled with %s and linked with modules compiled with %s"), ibfd, new_opt, old_opt); } @@ -884,7 +886,7 @@ error = TRUE; _bfd_error_handler /* xgettext:c-format */ - (_("%B: uses different e_flags (%#x) fields" + (_("%pB: uses different e_flags (%#x) fields" " than previous modules (%#x)"), ibfd, new_flags, old_flags); } diff -Nru gdb-8.1/bfd/elf32-m32r.c gdb-8.2/bfd/elf32-m32r.c --- gdb-8.1/bfd/elf32-m32r.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-m32r.c 2018-09-05 07:27:13.000000000 +0000 @@ -1272,7 +1272,7 @@ /* Set the howto pointer for an M32R ELF reloc. */ -static void +static bfd_boolean m32r_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr, Elf_Internal_Rela *dst) @@ -1283,21 +1283,34 @@ if (r_type > (unsigned int) R_M32R_GNU_VTENTRY) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid M32R reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = &m32r_elf_howto_table[r_type]; + return TRUE; } -static void +static bfd_boolean m32r_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr, Elf_Internal_Rela *dst) { - BFD_ASSERT ((ELF32_R_TYPE(dst->r_info) == (unsigned int) R_M32R_NONE) - || ((ELF32_R_TYPE(dst->r_info) > (unsigned int) R_M32R_GNU_VTENTRY) - && (ELF32_R_TYPE(dst->r_info) < (unsigned int) R_M32R_max))); - cache_ptr->howto = &m32r_elf_howto_table[ELF32_R_TYPE(dst->r_info)]; + unsigned int r_type = ELF32_R_TYPE (dst->r_info); + + if (r_type == (unsigned int) R_M32R_NONE + || ((r_type > (unsigned int) R_M32R_GNU_VTENTRY) + && (r_type < (unsigned int) R_M32R_max))) + { + cache_ptr->howto = &m32r_elf_howto_table[r_type]; + return TRUE; + } + + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } @@ -2094,7 +2107,7 @@ info->flags |= DF_TEXTREL; info->callbacks->minfo - (_("%B: dynamic relocation against `%T' in read-only section `%A'\n"), + (_("%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"), sec->owner, h->root.root.string, sec); /* Not an error, just cut short the traversal. */ @@ -2401,7 +2414,7 @@ if (r_type < 0 || r_type >= (int) R_M32R_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: unknown relocation type %d"), + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), input_bfd, (int) r_type); bfd_set_error (bfd_error_bad_value); ret = FALSE; @@ -2523,11 +2536,11 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): unresolvable %s relocation " + (_("%pB(%pA+%#" PRIx64 "): unresolvable %s relocation " "against symbol `%s'"), input_bfd, input_section, - rel->r_offset, + (uint64_t) rel->r_offset, howto->name, h->root.root.string); } @@ -2968,7 +2981,8 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: The target (%s) of an %s relocation is in the wrong section (%A)"), + (_("%pB: the target (%s) of an %s relocation" + " is in the wrong section (%pA)"), input_bfd, sym_name, m32r_elf_howto_table[(int) r_type].name, @@ -3470,7 +3484,7 @@ || ((in_flags & EF_M32R_ARCH) == E_M32R2_ARCH)) { _bfd_error_handler - (_("%B: Instruction set mismatch with previous modules"), ibfd); + (_("%pB: instruction set mismatch with previous modules"), ibfd); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -3854,8 +3868,7 @@ #define elf_backend_create_dynamic_sections m32r_elf_create_dynamic_sections #define bfd_elf32_bfd_link_hash_table_create m32r_elf_link_hash_table_create #define elf_backend_size_dynamic_sections m32r_elf_size_dynamic_sections -#define elf_backend_omit_section_dynsym \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true) +#define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all #define elf_backend_finish_dynamic_sections m32r_elf_finish_dynamic_sections #define elf_backend_adjust_dynamic_symbol m32r_elf_adjust_dynamic_symbol #define elf_backend_finish_dynamic_symbol m32r_elf_finish_dynamic_symbol diff -Nru gdb-8.1/bfd/elf32-m68hc11.c gdb-8.2/bfd/elf32-m68hc11.c --- gdb-8.1/bfd/elf32-m68hc11.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-m68hc11.c 2018-09-05 07:27:13.000000000 +0000 @@ -32,7 +32,7 @@ /* Relocation functions. */ static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup (bfd *, bfd_reloc_code_real_type); -static void m68hc11_info_to_howto_rel +static bfd_boolean m68hc11_info_to_howto_rel (bfd *, arelent *, Elf_Internal_Rela *); /* Trampoline generation. */ @@ -377,8 +377,8 @@ /* Set the howto pointer for an M68HC11 ELF reloc. */ -static void -m68hc11_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +m68hc11_info_to_howto_rel (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { unsigned int r_type; @@ -387,10 +387,13 @@ if (r_type >= (unsigned int) R_M68HC11_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid M68HC11 reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = &elf_m68hc11_howto_table[r_type]; + return TRUE; } @@ -1296,7 +1299,7 @@ #define TARGET_BIG_SYM m68hc11_elf32_vec #define TARGET_BIG_NAME "elf32-m68hc11" -#define elf_info_to_howto 0 +#define elf_info_to_howto NULL #define elf_info_to_howto_rel m68hc11_info_to_howto_rel #define bfd_elf32_bfd_relax_section m68hc11_elf_relax_section #define elf_backend_check_relocs elf32_m68hc11_check_relocs diff -Nru gdb-8.1/bfd/elf32-m68hc12.c gdb-8.2/bfd/elf32-m68hc12.c --- gdb-8.1/bfd/elf32-m68hc12.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-m68hc12.c 2018-09-05 07:27:13.000000000 +0000 @@ -32,7 +32,7 @@ /* Relocation functions. */ static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup (bfd *, bfd_reloc_code_real_type); -static void m68hc11_info_to_howto_rel +static bfd_boolean m68hc11_info_to_howto_rel (bfd *, arelent *, Elf_Internal_Rela *); /* Trampoline generation. */ @@ -497,8 +497,8 @@ /* Set the howto pointer for an M68HC11 ELF reloc. */ -static void -m68hc11_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +m68hc11_info_to_howto_rel (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { unsigned int r_type; @@ -507,10 +507,13 @@ if (r_type >= (unsigned int) R_M68HC11_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid M68HC12 reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = &elf_m68hc11_howto_table[r_type]; + return TRUE; } @@ -646,7 +649,7 @@ #define TARGET_BIG_SYM m68hc12_elf32_vec #define TARGET_BIG_NAME "elf32-m68hc12" -#define elf_info_to_howto 0 +#define elf_info_to_howto NULL #define elf_info_to_howto_rel m68hc11_info_to_howto_rel #define elf_backend_check_relocs elf32_m68hc11_check_relocs #define elf_backend_relocate_section elf32_m68hc11_relocate_section diff -Nru gdb-8.1/bfd/elf32-m68hc1x.c gdb-8.2/bfd/elf32-m68hc1x.c --- gdb-8.1/bfd/elf32-m68hc1x.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-m68hc1x.c 2018-09-05 07:44:28.000000000 +0000 @@ -162,7 +162,7 @@ if (stub_entry == NULL) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: cannot create stub entry %s"), + _bfd_error_handler (_("%pB: cannot create stub entry %s"), section->owner, stub_name); return NULL; } @@ -963,7 +963,8 @@ || r_type == R_M68HC11_GNU_VTINHERIT) continue; - (*ebd->elf_info_to_howto_rel) (input_bfd, &arel, rel); + if (! (*ebd->elf_info_to_howto_rel) (input_bfd, &arel, rel)) + continue; howto = arel.howto; h = NULL; @@ -1112,7 +1113,7 @@ /* Get virtual address of instruction having the relocation. */ if (is_far) { - msg = _("Reference to the far symbol `%s' using a wrong " + msg = _("reference to the far symbol `%s' using a wrong " "relocation may result in incorrect execution"); buf = xmalloc (strlen (msg) + strlen (name) + 10); sprintf (buf, msg, name); @@ -1348,14 +1349,14 @@ if ((new_flags & E_M68HC11_I32) != (old_flags & E_M68HC11_I32)) { _bfd_error_handler - (_("%B: linking files compiled for 16-bit integers (-mshort) " + (_("%pB: linking files compiled for 16-bit integers (-mshort) " "and others for 32-bit integers"), ibfd); ok = FALSE; } if ((new_flags & E_M68HC11_F64) != (old_flags & E_M68HC11_F64)) { _bfd_error_handler - (_("%B: linking files compiled for 32-bit double (-fshort-double) " + (_("%pB: linking files compiled for 32-bit double (-fshort-double) " "and others for 64-bit double"), ibfd); ok = FALSE; } @@ -1364,7 +1365,7 @@ if (!EF_M68HC11_CAN_MERGE_MACH (new_flags, old_flags)) { _bfd_error_handler - (_("%B: linking files compiled for HCS12 with " + (_("%pB: linking files compiled for HCS12 with " "others compiled for HC12"), ibfd); ok = FALSE; } @@ -1381,7 +1382,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: uses different e_flags (%#x) fields than previous modules (%#x)"), + (_("%pB: uses different e_flags (%#x) fields than previous modules (%#x)"), ibfd, new_flags, old_flags); ok = FALSE; } diff -Nru gdb-8.1/bfd/elf32-m68k.c gdb-8.2/bfd/elf32-m68k.c --- gdb-8.1/bfd/elf32-m68k.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-m68k.c 2018-09-05 07:27:13.000000000 +0000 @@ -341,7 +341,7 @@ FALSE), /* pcrel_offset */ }; -static void +static bfd_boolean rtype_to_howto (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { unsigned int indx = ELF32_R_TYPE (dst->r_info); @@ -349,11 +349,13 @@ if (indx >= (unsigned int) R_68K_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid relocation type %d"), - abfd, (int) indx); - indx = R_68K_NONE; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, indx); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = &howto_table[indx]; + return TRUE; } #define elf_info_to_howto rtype_to_howto @@ -1655,15 +1657,15 @@ { if (got->n_slots[R_8] > ELF_M68K_R_8_MAX_N_SLOTS_IN_GOT (info)) /* xgettext:c-format */ - _bfd_error_handler (_("%B: GOT overflow: " - "Number of relocations with 8-bit " + _bfd_error_handler (_("%pB: GOT overflow: " + "number of relocations with 8-bit " "offset > %d"), abfd, ELF_M68K_R_8_MAX_N_SLOTS_IN_GOT (info)); else /* xgettext:c-format */ - _bfd_error_handler (_("%B: GOT overflow: " - "Number of relocations with 8- or 16-bit " + _bfd_error_handler (_("%pB: GOT overflow: " + "number of relocations with 8- or 16-bit " "offset > %d"), abfd, ELF_M68K_R_8_16_MAX_N_SLOTS_IN_GOT (info)); @@ -3698,8 +3700,10 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): %s relocation not permitted in shared object"), - input_bfd, input_section, rel->r_offset, howto->name); + (_("%pB(%pA+%#" PRIx64 "): " + "%s relocation not permitted in shared object"), + input_bfd, input_section, (uint64_t) rel->r_offset, + howto->name); return FALSE; } @@ -3892,10 +3896,11 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"), + (_("%pB(%pA+%#" PRIx64 "): " + "unresolvable %s relocation against symbol `%s'"), input_bfd, input_section, - rel->r_offset, + (uint64_t) rel->r_offset, howto->name, h->root.root.string); return FALSE; @@ -3928,12 +3933,12 @@ _bfd_error_handler ((sym_type == STT_TLS /* xgettext:c-format */ - ? _("%B(%A+%#Lx): %s used with TLS symbol %s") + ? _("%pB(%pA+%#" PRIx64 "): %s used with TLS symbol %s") /* xgettext:c-format */ - : _("%B(%A+%#Lx): %s used with non-TLS symbol %s")), + : _("%pB(%pA+%#" PRIx64 "): %s used with non-TLS symbol %s")), input_bfd, input_section, - rel->r_offset, + (uint64_t) rel->r_offset, howto->name, name); } @@ -3968,9 +3973,9 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): reloc against `%s': error %d"), + (_("%pB(%pA+%#" PRIx64 "): reloc against `%s': error %d"), input_bfd, input_section, - rel->r_offset, name, (int) r); + (uint64_t) rel->r_offset, name, (int) r); return FALSE; } } @@ -4382,7 +4387,7 @@ /* We can only relocate absolute longword relocs at run time. */ if (ELF32_R_TYPE (irel->r_info) != (int) R_68K_32) { - *errmsg = _("unsupported reloc type"); + *errmsg = _("unsupported relocation type"); bfd_set_error (bfd_error_bad_value); goto error_return; } @@ -4584,26 +4589,6 @@ return TRUE; } -/* Hook called by the linker routine which adds symbols from an object - file. */ - -static bfd_boolean -elf_m68k_add_symbol_hook (bfd *abfd, - struct bfd_link_info *info, - Elf_Internal_Sym *sym, - const char **namep ATTRIBUTE_UNUSED, - flagword *flagsp ATTRIBUTE_UNUSED, - asection **secp ATTRIBUTE_UNUSED, - bfd_vma *valp ATTRIBUTE_UNUSED) -{ - if (ELF_ST_TYPE (sym->st_info) == STT_GNU_IFUNC - && (abfd->flags & DYNAMIC) == 0 - && bfd_get_flavour (info->output_bfd) == bfd_target_elf_flavour) - elf_tdata (info->output_bfd)->has_gnu_symbols |= elf_gnu_symbol_ifunc; - - return TRUE; -} - #define TARGET_BIG_SYM m68k_elf32_vec #define TARGET_BIG_NAME "elf32-m68k" #define ELF_MACHINE_CODE EM_68K @@ -4641,7 +4626,6 @@ #define elf_backend_object_p elf32_m68k_object_p #define elf_backend_grok_prstatus elf_m68k_grok_prstatus #define elf_backend_grok_psinfo elf_m68k_grok_psinfo -#define elf_backend_add_symbol_hook elf_m68k_add_symbol_hook #define elf_backend_can_gc_sections 1 #define elf_backend_can_refcount 1 diff -Nru gdb-8.1/bfd/elf32-m88k.c gdb-8.2/bfd/elf32-m88k.c --- gdb-8.1/bfd/elf32-m88k.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-m88k.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ -/* Motorola 88k-specific support for 32-bit ELF - Copyright (C) 1993-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "elf-bfd.h" - -/* This does not include any relocations, but should be good enough - for GDB. */ - -#define TARGET_BIG_SYM m88k_elf32_vec -#define TARGET_BIG_NAME "elf32-m88k" -#define ELF_ARCH bfd_arch_m88k -#define ELF_MACHINE_CODE EM_88K -#define ELF_MAXPAGESIZE 1 /* FIXME: This number is wrong, It should be the page size in bytes. */ -#define bfd_elf32_bfd_reloc_type_lookup bfd_default_reloc_type_lookup -#define bfd_elf32_bfd_reloc_name_lookup _bfd_norelocs_bfd_reloc_name_lookup -#define elf_info_to_howto _bfd_elf_no_info_to_howto - -#include "elf32-target.h" diff -Nru gdb-8.1/bfd/elf32-mcore.c gdb-8.2/bfd/elf32-mcore.c --- gdb-8.1/bfd/elf32-mcore.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-mcore.c 2018-09-05 07:27:13.000000000 +0000 @@ -97,10 +97,9 @@ BFD_ASSERT (reloc_entry->howto != (reloc_howto_type *)0); /* xgettext:c-format */ - _bfd_error_handler (_("%B: Relocation %s (%d) is not currently supported.\n"), + _bfd_error_handler (_("%pB: %s unsupported"), abfd, - reloc_entry->howto->name, - reloc_entry->howto->type); + reloc_entry->howto->name); return bfd_reloc_notsupported; } @@ -337,8 +336,8 @@ /* Set the howto pointer for a RCE ELF reloc. */ -static void -mcore_elf_info_to_howto (bfd * abfd ATTRIBUTE_UNUSED, +static bfd_boolean +mcore_elf_info_to_howto (bfd * abfd, arelent * cache_ptr, Elf_Internal_Rela * dst) { @@ -352,13 +351,14 @@ if (r_type >= R_MCORE_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: unrecognised MCore reloc number: %d"), + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), abfd, r_type); bfd_set_error (bfd_error_bad_value); - r_type = R_MCORE_NONE; + return FALSE; } cache_ptr->howto = mcore_elf_howto_table [r_type]; + return TRUE; } /* The RELOCATE_SECTION function is called by the ELF backend linker @@ -408,7 +408,7 @@ #ifdef DEBUG _bfd_error_handler - ("mcore_elf_relocate_section called for %B section %A, %u relocations%s", + ("mcore_elf_relocate_section called for %pB section %pA, %u relocations%s", input_bfd, input_section, input_section->reloc_count, @@ -437,7 +437,7 @@ || ! mcore_elf_howto_table [(int)r_type]) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: Unknown relocation type %d\n"), + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), input_bfd, (int) r_type); bfd_set_error (bfd_error_bad_value); @@ -452,10 +452,9 @@ if (howto->special_function == mcore_elf_unsupported_reloc) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: Relocation %s (%d) is not currently supported.\n"), + _bfd_error_handler (_("%pB: %s unsupported"), input_bfd, - howto->name, - (int)r_type); + howto->name); bfd_set_error (bfd_error_bad_value); ret = FALSE; diff -Nru gdb-8.1/bfd/elf32-mep.c gdb-8.2/bfd/elf32-mep.c --- gdb-8.1/bfd/elf32-mep.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-mep.c 2018-09-05 07:44:28.000000000 +0000 @@ -375,11 +375,10 @@ /* Set the howto pointer for a MEP ELF reloc. */ -static void -mep_info_to_howto_rela - (bfd * abfd ATTRIBUTE_UNUSED, - arelent * cache_ptr, - Elf_Internal_Rela * dst) +static bfd_boolean +mep_info_to_howto_rela (bfd * abfd, + arelent * cache_ptr, + Elf_Internal_Rela * dst) { unsigned int r_type; @@ -387,10 +386,13 @@ if (r_type >= R_MEP_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid MEP reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = & mep_elf_howto_table [r_type]; + return TRUE; } /* Relocate a MEP ELF section. @@ -585,7 +587,7 @@ old_flags = elf_elfheader (obfd)->e_flags; #ifdef DEBUG - _bfd_error_handler ("%B: old_flags = 0x%.8x, new_flags = 0x%.8x, init = %s", + _bfd_error_handler ("%pB: old_flags = 0x%.8x, new_flags = 0x%.8x, init = %s", ibfd, old_flags, new_flags, elf_flags_init (obfd) ? "yes" : "no"); #endif @@ -617,7 +619,7 @@ else { /* xgettext:c-format */ - _bfd_error_handler (_("%B and %B are for different cores"), + _bfd_error_handler (_("%pB and %pB are for different cores"), last_ibfd, ibfd); bfd_set_error (bfd_error_invalid_target); return FALSE; @@ -636,7 +638,7 @@ else { /* xgettext:c-format */ - _bfd_error_handler (_("%B and %B are for different configurations"), + _bfd_error_handler (_("%pB and %pB are for different configurations"), last_ibfd, ibfd); bfd_set_error (bfd_error_invalid_target); return FALSE; diff -Nru gdb-8.1/bfd/elf32-metag.c gdb-8.2/bfd/elf32-metag.c --- gdb-8.1/bfd/elf32-metag.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-metag.c 2018-09-05 07:27:13.000000000 +0000 @@ -864,8 +864,8 @@ elf_hash_table (info)->tls_sec->alignment_power)); } -static void -metag_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +metag_info_to_howto_rela (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { @@ -875,10 +875,13 @@ if (r_type >= (unsigned int) R_METAG_MAX) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid METAG reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = & elf_metag_howto_table [r_type]; + return TRUE; } static reloc_howto_type * @@ -1180,7 +1183,7 @@ if (hsh == NULL) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: cannot create stub entry %s"), + _bfd_error_handler (_("%pB: cannot create stub entry %s"), section->owner, stub_name); return NULL; } @@ -1857,10 +1860,10 @@ /* We don't support changing the TLS model. */ /* PR 20675 */ if (bfd_link_pic (info)) - _bfd_error_handler (_("%B(%A): multiple TLS models are not supported"), + _bfd_error_handler (_("%pB(%pA): multiple TLS models are not supported"), input_bfd, input_section); else - _bfd_error_handler (_("%B(%A): shared library symbol %s encountered whilst performing a static link"), + _bfd_error_handler (_("%pB(%pA): shared library symbol %s encountered whilst performing a static link"), input_bfd, input_section, name); return FALSE; } @@ -1913,8 +1916,10 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): %s relocation not permitted in shared object"), - input_bfd, input_section, rel->r_offset, howto->name); + (_("%pB(%pA+%#" PRIx64 "): " + "%s relocation not permitted in shared object"), + input_bfd, input_section, (uint64_t) rel->r_offset, + howto->name); return FALSE; } else @@ -2249,7 +2254,7 @@ name = bfd_elf_sym_name (abfd, symtab_hdr, isym, NULL); _bfd_error_handler /* xgettext:c-format */ - (_("%B: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC"), + (_("%pB: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC"), abfd, elf_metag_howto_table[r_type].name, name); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -2789,7 +2794,7 @@ info->flags |= DF_TEXTREL; info->callbacks->minfo - (_("%B: dynamic relocation against `%T' in read-only section `%A'\n"), + (_("%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"), sec->owner, h->root.root.string, sec); /* Not an error, just cut short the traversal. */ @@ -4141,7 +4146,7 @@ #define elf_backend_finish_dynamic_sections elf_metag_finish_dynamic_sections #define elf_backend_size_dynamic_sections elf_metag_size_dynamic_sections #define elf_backend_omit_section_dynsym \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true) + _bfd_elf_omit_section_dynsym_all #define elf_backend_post_process_headers elf_metag_post_process_headers #define elf_backend_reloc_type_class elf_metag_reloc_type_class #define elf_backend_copy_indirect_symbol elf_metag_copy_indirect_symbol diff -Nru gdb-8.1/bfd/elf32-microblaze.c gdb-8.2/bfd/elf32-microblaze.c --- gdb-8.1/bfd/elf32-microblaze.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-microblaze.c 2018-09-05 07:27:13.000000000 +0000 @@ -251,6 +251,21 @@ 0x0000ffff, /* Dest Mask. */ TRUE), /* PC relative offset? */ + /* A 64 bit TEXTPCREL relocation. Table-entry not really used. */ + HOWTO (R_MICROBLAZE_TEXTPCREL_64, /* Type. */ + 0, /* Rightshift. */ + 2, /* Size (0 = byte, 1 = short, 2 = long). */ + 16, /* Bitsize. */ + TRUE, /* PC_relative. */ + 0, /* Bitpos. */ + complain_overflow_dont, /* Complain on overflow. */ + bfd_elf_generic_reloc, /* Special Function. */ + "R_MICROBLAZE_TEXTPCREL_64", /* Name. */ + FALSE, /* Partial Inplace. */ + 0, /* Source Mask. */ + 0x0000ffff, /* Dest Mask. */ + TRUE), /* PC relative offset? */ + /* A 64 bit GOT relocation. Table-entry not really used. */ HOWTO (R_MICROBLAZE_GOT_64, /* Type. */ 0, /* Rightshift. */ @@ -266,6 +281,21 @@ 0x0000ffff, /* Dest Mask. */ FALSE), /* PC relative offset? */ + /* A 64 bit TEXTREL relocation. Table-entry not really used. */ + HOWTO (R_MICROBLAZE_TEXTREL_64, /* Type. */ + 0, /* Rightshift. */ + 2, /* Size (0 = byte, 1 = short, 2 = long). */ + 16, /* Bitsize. */ + FALSE, /* PC_relative. */ + 0, /* Bitpos. */ + complain_overflow_dont, /* Complain on overflow. */ + bfd_elf_generic_reloc,/* Special Function. */ + "R_MICROBLAZE_TEXTREL_64",/* Name. */ + FALSE, /* Partial Inplace. */ + 0, /* Source Mask. */ + 0x0000ffff, /* Dest Mask. */ + FALSE), /* PC relative offset? */ + /* A 64 bit PLT relocation. Table-entry not really used. */ HOWTO (R_MICROBLAZE_PLT_64, /* Type. */ 0, /* Rightshift. */ @@ -578,6 +608,12 @@ case BFD_RELOC_MICROBLAZE_64_GOT: microblaze_reloc = R_MICROBLAZE_GOT_64; break; + case BFD_RELOC_MICROBLAZE_64_TEXTPCREL: + microblaze_reloc = R_MICROBLAZE_TEXTPCREL_64; + break; + case BFD_RELOC_MICROBLAZE_64_TEXTREL: + microblaze_reloc = R_MICROBLAZE_TEXTREL_64; + break; case BFD_RELOC_MICROBLAZE_64_PLT: microblaze_reloc = R_MICROBLAZE_PLT_64; break; @@ -638,8 +674,8 @@ /* Set the howto pointer for a RCE ELF reloc. */ -static void -microblaze_elf_info_to_howto (bfd * abfd ATTRIBUTE_UNUSED, +static bfd_boolean +microblaze_elf_info_to_howto (bfd * abfd, arelent * cache_ptr, Elf_Internal_Rela * dst) { @@ -653,13 +689,14 @@ if (r_type >= R_MICROBLAZE_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: unrecognised MicroBlaze reloc number: %d"), + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), abfd, r_type); bfd_set_error (bfd_error_bad_value); - r_type = R_MICROBLAZE_NONE; + return FALSE; } cache_ptr->howto = microblaze_elf_howto_table [r_type]; + return TRUE; } /* Microblaze ELF local labels start with 'L.' or '$L', not '.L'. */ @@ -929,7 +966,7 @@ if (r_type < 0 || r_type >= (int) R_MICROBLAZE_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: unknown relocation type %d"), + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), input_bfd, (int) r_type); bfd_set_error (bfd_error_bad_value); ret = FALSE; @@ -1061,8 +1098,8 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: The target (%s) of an %s relocation" - " is in the wrong section (%A)"), + (_("%pB: the target (%s) of an %s relocation" + " is in the wrong section (%pA)"), input_bfd, sym_name, microblaze_elf_howto_table[(int) r_type]->name, @@ -1109,8 +1146,8 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: The target (%s) of an %s relocation" - " is in the wrong section (%A)"), + (_("%pB: the target (%s) of an %s relocation" + " is in the wrong section (%pA)"), input_bfd, sym_name, microblaze_elf_howto_table[(int) r_type]->name, @@ -1139,6 +1176,18 @@ contents + offset + endian + INST_WORD_SIZE); break; + case (int) R_MICROBLAZE_TEXTPCREL_64: + relocation = input_section->output_section->vma; + relocation -= (input_section->output_section->vma + + input_section->output_offset + + offset + INST_WORD_SIZE); + relocation += addend; + bfd_put_16 (input_bfd, (relocation >> 16) & 0xffff, + contents + offset + endian); + bfd_put_16 (input_bfd, relocation & 0xffff, + contents + offset + endian + INST_WORD_SIZE); + break; + case (int) R_MICROBLAZE_PLT_64: { bfd_vma immediate; @@ -1389,6 +1438,8 @@ bfd_put_16 (input_bfd, relocation & 0xffff, contents + offset + 2 + INST_WORD_SIZE); break; + case (int) R_MICROBLAZE_TEXTREL_64: + case (int) R_MICROBLAZE_TEXTREL_32_LO: case (int) R_MICROBLAZE_64_PCREL : case (int) R_MICROBLAZE_64: case (int) R_MICROBLAZE_32: @@ -1407,11 +1458,22 @@ relocation -= (input_section->output_section->vma + input_section->output_offset + offset + INST_WORD_SIZE); - bfd_put_16 (input_bfd, (relocation >> 16) & 0xffff, + else if (r_type == R_MICROBLAZE_TEXTREL_64 + || r_type == R_MICROBLAZE_TEXTREL_32_LO) + relocation -= input_section->output_section->vma; + + if (r_type == R_MICROBLAZE_TEXTREL_32_LO) + bfd_put_16 (input_bfd, relocation & 0xffff, + contents + offset + endian); + + else + { + bfd_put_16 (input_bfd, (relocation >> 16) & 0xffff, contents + offset + endian); - bfd_put_16 (input_bfd, relocation & 0xffff, + bfd_put_16 (input_bfd, relocation & 0xffff, contents + offset + endian + INST_WORD_SIZE); } + } break; } @@ -1479,7 +1541,7 @@ { BFD_FAIL (); _bfd_error_handler - (_("%B: probably compiled without -fPIC?"), + (_("%pB: probably compiled without -fPIC?"), input_bfd); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -1502,11 +1564,24 @@ relocation -= (input_section->output_section->vma + input_section->output_offset + offset + INST_WORD_SIZE); - bfd_put_16 (input_bfd, (relocation >> 16) & 0xffff, - contents + offset + endian); - bfd_put_16 (input_bfd, relocation & 0xffff, - contents + offset + endian + INST_WORD_SIZE); - } + else if (r_type == R_MICROBLAZE_TEXTREL_64 + || r_type == R_MICROBLAZE_TEXTREL_32_LO) + relocation -= input_section->output_section->vma; + + if (r_type == R_MICROBLAZE_TEXTREL_32_LO) + { + bfd_put_16 (input_bfd, relocation & 0xffff, + contents + offset + endian); + } + else + { + bfd_put_16 (input_bfd, (relocation >> 16) & 0xffff, + contents + offset + endian); + bfd_put_16 (input_bfd, relocation & 0xffff, + contents + offset + endian + + INST_WORD_SIZE); + } + } break; } } @@ -1699,7 +1774,8 @@ { bfd_vma symval; if ((ELF32_R_TYPE (irel->r_info) != (int) R_MICROBLAZE_64_PCREL) - && (ELF32_R_TYPE (irel->r_info) != (int) R_MICROBLAZE_64 )) + && (ELF32_R_TYPE (irel->r_info) != (int) R_MICROBLAZE_64) + && (ELF32_R_TYPE (irel->r_info) != (int) R_MICROBLAZE_TEXTREL_64)) continue; /* Can't delete this reloc. */ /* Get the section contents. */ @@ -1769,6 +1845,10 @@ + sec->output_section->vma + sec->output_offset); } + else if (ELF32_R_TYPE (irel->r_info) == (int) R_MICROBLAZE_TEXTREL_64) + { + symval = symval + irel->r_addend - (sec->output_section->vma); + } else symval += irel->r_addend; @@ -1791,6 +1871,10 @@ irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info), (int) R_MICROBLAZE_32_LO); break; + case R_MICROBLAZE_TEXTREL_64: + irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info), + (int) R_MICROBLAZE_TEXTREL_32_LO); + break; default: /* Cannot happen. */ BFD_ASSERT (FALSE); @@ -1817,6 +1901,8 @@ break; case R_MICROBLAZE_64_PCREL: break; + case R_MICROBLAZE_TEXTREL_64: + case R_MICROBLAZE_TEXTREL_32_LO: case R_MICROBLAZE_64: case R_MICROBLAZE_32_LO: /* If this reloc is against a symbol defined in this @@ -1953,7 +2039,10 @@ } } else if ((ELF32_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_32_PCREL_LO) - || (ELF32_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_32_LO)) + || (ELF32_R_TYPE (irelscan->r_info) + == (int) R_MICROBLAZE_32_LO) + || (ELF32_R_TYPE (irelscan->r_info) + == (int) R_MICROBLAZE_TEXTREL_32_LO)) { isym = isymbuf + ELF32_R_SYM (irelscan->r_info); @@ -1997,7 +2086,9 @@ } } - if (ELF32_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_64) + if (ELF32_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_64 + || (ELF32_R_TYPE (irelscan->r_info) + == (int) R_MICROBLAZE_TEXTREL_64)) { isym = isymbuf + ELF32_R_SYM (irelscan->r_info); diff -Nru gdb-8.1/bfd/elf32-mips.c gdb-8.2/bfd/elf32-mips.c --- gdb-8.1/bfd/elf32-mips.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-mips.c 2018-09-05 07:27:13.000000000 +0000 @@ -57,11 +57,9 @@ (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup (bfd *, bfd_reloc_code_real_type); -static reloc_howto_type *mips_elf32_rtype_to_howto - (unsigned int, bfd_boolean); -static void mips_info_to_howto_rel +static bfd_boolean mips_info_to_howto_rel (bfd *, arelent *, Elf_Internal_Rela *); -static void mips_info_to_howto_rela +static bfd_boolean mips_info_to_howto_rela (bfd *, arelent *, Elf_Internal_Rela *); static bfd_boolean mips_elf_sym_is_global (bfd *, asymbol *); @@ -2196,9 +2194,12 @@ /* Given a MIPS Elf_Internal_Rel, fill in an arelent structure. */ static reloc_howto_type * -mips_elf32_rtype_to_howto (unsigned int r_type, +mips_elf32_rtype_to_howto (bfd *abfd, + unsigned int r_type, bfd_boolean rela_p ATTRIBUTE_UNUSED) { + reloc_howto_type *howto = NULL; + switch (r_type) { case R_MIPS_GNU_VTINHERIT: @@ -2217,30 +2218,33 @@ return &elf_mips_eh_howto; default: if (r_type >= R_MICROMIPS_min && r_type < R_MICROMIPS_max) - return &elf_micromips_howto_table_rel[r_type - R_MICROMIPS_min]; + howto = &elf_micromips_howto_table_rel[r_type - R_MICROMIPS_min]; if (r_type >= R_MIPS16_min && r_type < R_MIPS16_max) - return &elf_mips16_howto_table_rel[r_type - R_MIPS16_min]; - if (r_type >= (unsigned int) R_MIPS_max) - { - _bfd_error_handler (_("Unrecognised MIPS reloc number: %d"), r_type); - bfd_set_error (bfd_error_bad_value); - r_type = R_MIPS_NONE; - } - return &elf_mips_howto_table_rel[r_type]; + howto = &elf_mips16_howto_table_rel[r_type - R_MIPS16_min]; + if (r_type < R_MIPS_max) + howto = &elf_mips_howto_table_rel[r_type]; + if (howto != NULL && howto->name != NULL) + return howto; + + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return NULL; } } /* Given a MIPS Elf_Internal_Rel, fill in an arelent structure. */ -static void +static bfd_boolean mips_info_to_howto_rel (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { - const struct elf_backend_data *bed; unsigned int r_type; r_type = ELF32_R_TYPE (dst->r_info); - bed = get_elf_backend_data (abfd); - cache_ptr->howto = bed->elf_backend_mips_rtype_to_howto (r_type, FALSE); + cache_ptr->howto = mips_elf32_rtype_to_howto (abfd, r_type, FALSE); + + if (cache_ptr->howto == NULL) + return FALSE; /* The addend for a GPREL16 or LITERAL relocation comes from the GP value for the object file. We get the addend now, rather than @@ -2249,14 +2253,16 @@ if (((*cache_ptr->sym_ptr_ptr)->flags & BSF_SECTION_SYM) != 0 && (gprel16_reloc_p (r_type) || literal_reloc_p (r_type))) cache_ptr->addend = elf_gp (abfd); + + return TRUE; } /* Given a MIPS Elf_Internal_Rela, fill in an arelent structure. */ -static void +static bfd_boolean mips_info_to_howto_rela (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { - mips_info_to_howto_rel (abfd, cache_ptr, dst); + return mips_info_to_howto_rel (abfd, cache_ptr, dst); /* If we ever need to do any extra processing with dst->r_addend (the field omitted in an Elf_Internal_Rel) we can do it here. */ @@ -2414,6 +2420,17 @@ } } } + +/* Remove the magic _gp_disp symbol from the symbol tables. */ + +static bfd_boolean +elf32_mips_fixup_symbol (struct bfd_link_info *info, + struct elf_link_hash_entry *h) +{ + if (strcmp (h->root.root.string, "_gp_disp") == 0) + _bfd_elf_link_hash_hide_symbol (info, h, TRUE); + return TRUE; +} /* Depending on the target vector we generate some version of Irix executables or "normal" MIPS ELF ABI executables. */ @@ -2517,6 +2534,7 @@ #define elf_backend_gc_mark_hook _bfd_mips_elf_gc_mark_hook #define elf_backend_copy_indirect_symbol \ _bfd_mips_elf_copy_indirect_symbol +#define elf_backend_fixup_symbol elf32_mips_fixup_symbol #define elf_backend_grok_prstatus elf32_mips_grok_prstatus #define elf_backend_grok_psinfo elf32_mips_grok_psinfo #define elf_backend_ecoff_debug_swap &mips_elf32_ecoff_debug_swap diff -Nru gdb-8.1/bfd/elf32-moxie.c gdb-8.2/bfd/elf32-moxie.c --- gdb-8.1/bfd/elf32-moxie.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-moxie.c 2018-09-05 07:27:13.000000000 +0000 @@ -123,8 +123,8 @@ /* Set the howto pointer for an MOXIE ELF reloc. */ -static void -moxie_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +moxie_info_to_howto_rela (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { @@ -134,10 +134,13 @@ if (r_type >= (unsigned int) R_MOXIE_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid Moxie reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = & moxie_elf_howto_table [r_type]; + return TRUE; } /* Perform a single relocation. By default we use the standard BFD diff -Nru gdb-8.1/bfd/elf32-msp430.c gdb-8.2/bfd/elf32-msp430.c --- gdb-8.1/bfd/elf32-msp430.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-msp430.c 2018-09-05 07:27:13.000000000 +0000 @@ -631,8 +631,8 @@ /* Set the howto pointer for an MSP430 ELF reloc. */ -static void -msp430_info_to_howto_rela (bfd * abfd ATTRIBUTE_UNUSED, +static bfd_boolean +msp430_info_to_howto_rela (bfd * abfd, arelent * cache_ptr, Elf_Internal_Rela * dst) { @@ -645,20 +645,25 @@ if (r_type >= (unsigned int) R_MSP430x_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid MSP430X reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = elf_msp430x_howto_table + r_type; - return; } - - if (r_type >= (unsigned int) R_MSP430_max) + else if (r_type >= (unsigned int) R_MSP430_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid MSP430 reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } - cache_ptr->howto = &elf_msp430_howto_table[r_type]; + else + cache_ptr->howto = &elf_msp430_howto_table[r_type]; + + return TRUE; } /* Look through the relocs for a section during the first phase. @@ -829,7 +834,7 @@ { info->callbacks->warning (info, - _("Try enabling relaxation to avoid relocation truncations"), + _("try enabling relaxation to avoid relocation truncations"), NULL, input_bfd, input_section, relocation); warned = TRUE; } @@ -1143,7 +1148,7 @@ { info->callbacks->warning (info, - _("Try enabling relaxation to avoid relocation truncations"), + _("try enabling relaxation to avoid relocation truncations"), NULL, input_bfd, input_section, relocation); warned = TRUE; } @@ -2349,7 +2354,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("Warning: %B: Unknown MSPABI object attribute %d"), + (_("warning: %pB: unknown MSPABI object attribute %d"), abfd, tag); return TRUE; } @@ -2442,7 +2447,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("error: %B uses %s instructions but %B uses %s"), + (_("error: %pB uses %s instructions but %pB uses %s"), ibfd, isa_type (in_attr[OFBA_MSPABI_Tag_ISA].i), first_input_bfd, isa_type (out_attr[OFBA_MSPABI_Tag_ISA].i)); result = FALSE; @@ -2454,7 +2459,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("error: %B uses the %s code model whereas %B uses the %s code model"), + (_("error: %pB uses the %s code model whereas %pB uses the %s code model"), ibfd, code_model (in_attr[OFBA_MSPABI_Tag_Code_Model].i), first_input_bfd, code_model (out_attr[OFBA_MSPABI_Tag_Code_Model].i)); result = FALSE; @@ -2466,7 +2471,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("error: %B uses the large code model but %B uses MSP430 instructions"), + (_("error: %pB uses the large code model but %pB uses MSP430 instructions"), ibfd, first_input_bfd); result = FALSE; } @@ -2477,7 +2482,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("error: %B uses the %s data model whereas %B uses the %s data model"), + (_("error: %pB uses the %s data model whereas %pB uses the %s data model"), ibfd, data_model (in_attr[OFBA_MSPABI_Tag_Data_Model].i), first_input_bfd, data_model (out_attr[OFBA_MSPABI_Tag_Data_Model].i)); result = FALSE; @@ -2489,7 +2494,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("error: %B uses the small code model but %B uses the %s data model"), + (_("error: %pB uses the small code model but %pB uses the %s data model"), ibfd, first_input_bfd, data_model (out_attr[OFBA_MSPABI_Tag_Data_Model].i)); result = FALSE; @@ -2501,7 +2506,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("error: %B uses the %s data model but %B only uses MSP430 instructions"), + (_("error: %pB uses the %s data model but %pB only uses MSP430 instructions"), ibfd, data_model (in_attr[OFBA_MSPABI_Tag_Data_Model].i), first_input_bfd); result = FALSE; diff -Nru gdb-8.1/bfd/elf32-mt.c gdb-8.2/bfd/elf32-mt.c --- gdb-8.1/bfd/elf32-mt.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-mt.c 2018-09-05 07:27:13.000000000 +0000 @@ -28,7 +28,7 @@ static reloc_howto_type * mt_reloc_type_lookup (bfd *, bfd_reloc_code_real_type); -static void mt_info_to_howto_rela +static bfd_boolean mt_info_to_howto_rela (bfd *, arelent *, Elf_Internal_Rela *); static bfd_reloc_status_type mt_elf_relocate_hi16 @@ -227,11 +227,10 @@ /* Set the howto pointer for a MT ELF reloc. */ -static void -mt_info_to_howto_rela - (bfd * abfd ATTRIBUTE_UNUSED, - arelent * cache_ptr, - Elf_Internal_Rela * dst) +static bfd_boolean +mt_info_to_howto_rela (bfd * abfd, + arelent * cache_ptr, + Elf_Internal_Rela * dst) { unsigned int r_type; @@ -239,10 +238,13 @@ if (r_type >= (unsigned int) R_MT_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid MT reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = & mt_elf_howto_table [r_type]; + return TRUE; } /* Perform a single relocation. By default we use the standard BFD @@ -520,7 +522,7 @@ old_flags = elf_elfheader (obfd)->e_flags; #ifdef DEBUG - _bfd_error_handler ("%B: old_flags = 0x%.8x, new_flags = 0x%.8x, init = %s", + _bfd_error_handler ("%pB: old_flags = 0x%.8x, new_flags = 0x%.8x, init = %s", ibfd, old_flags, new_flags, elf_flags_init (obfd) ? "yes" : "no"); #endif diff -Nru gdb-8.1/bfd/elf32-nds32.c gdb-8.2/bfd/elf32-nds32.c --- gdb-8.1/bfd/elf32-nds32.c 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/bfd/elf32-nds32.c 2018-09-05 07:44:28.000000000 +0000 @@ -62,23 +62,8 @@ (bfd *, Elf_Internal_Rela *, Elf_Internal_Sym *, Elf_Internal_Shdr *); static int nds32_get_section_contents (bfd *, asection *, bfd_byte **, bfd_boolean); -static bfd_boolean nds32_elf_ex9_build_hash_table -(bfd *, asection *, struct bfd_link_info *); -static bfd_boolean nds32_elf_ex9_itb_base (struct bfd_link_info *); -static void nds32_elf_ex9_import_table (struct bfd_link_info *); -static void nds32_elf_ex9_finish (struct bfd_link_info *); -static void nds32_elf_ex9_reloc_jmp (struct bfd_link_info *); -static void nds32_elf_get_insn_with_reg - (Elf_Internal_Rela *, uint32_t, uint32_t *); static int nds32_get_local_syms (bfd *, asection *ATTRIBUTE_UNUSED, Elf_Internal_Sym **); -static bfd_boolean nds32_elf_ex9_replace_instruction - (struct bfd_link_info *, bfd *, asection *); -static bfd_boolean nds32_elf_ifc_calc (struct bfd_link_info *, bfd *, - asection *); -static bfd_boolean nds32_elf_ifc_finish (struct bfd_link_info *); -static bfd_boolean nds32_elf_ifc_replace (struct bfd_link_info *); -static bfd_boolean nds32_elf_ifc_reloc (void); static bfd_boolean nds32_relax_fp_as_gp (struct bfd_link_info *link_info, bfd *abfd, asection *sec, Elf_Internal_Rela *internal_relocs, Elf_Internal_Rela *irelend, @@ -163,7 +148,6 @@ /* Size of small data/bss sections, used to calculate SDA_BASE. */ static long got_size = 0; static int is_SDA_BASE_set = 0; -static int is_ITB_BASE_set = 0; /* Convert ELF-VER in eflags to string for debugging purpose. */ static const char *const nds32_elfver_strtab[] = @@ -212,7 +196,6 @@ #define FP_BASE_NAME "_FP_BASE_" static int check_start_export_sym = 0; -static size_t ex9_relax_size = 0; /* Save ex9 predicted reducing size. */ /* The offset for executable tls relaxation. */ #define TP_OFFSET 0x0 @@ -2884,8 +2867,8 @@ /* Set the howto pointer for an NDS32 ELF reloc. */ -static void -nds32_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr, +static bfd_boolean +nds32_info_to_howto_rel (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { enum elf_nds32_reloc_type r_type; @@ -2894,20 +2877,33 @@ if (r_type > R_NDS32_GNU_VTENTRY) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid NDS32 reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = bfd_elf32_bfd_reloc_type_table_lookup (r_type); + return TRUE; } -static void +static bfd_boolean nds32_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr, Elf_Internal_Rela *dst) { - BFD_ASSERT ((ELF32_R_TYPE (dst->r_info) == R_NDS32_NONE) - || ((ELF32_R_TYPE (dst->r_info) > R_NDS32_GNU_VTENTRY) - && (ELF32_R_TYPE (dst->r_info) < R_NDS32_max))); - cache_ptr->howto = bfd_elf32_bfd_reloc_type_table_lookup (ELF32_R_TYPE (dst->r_info)); + unsigned int r_type = ELF32_R_TYPE (dst->r_info); + + if ((r_type == R_NDS32_NONE) + || ((r_type > R_NDS32_GNU_VTENTRY) + && (r_type < R_NDS32_max))) + { + cache_ptr->howto = bfd_elf32_bfd_reloc_type_table_lookup (r_type); + return TRUE; + } + + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } /* Support for core dump NOTE sections. @@ -3229,7 +3225,7 @@ } else { - _bfd_error_handler (_("error: Can't find symbol: _SDA_BASE_.")); + _bfd_error_handler (_("error: can't find symbol: %s"), "_SDA_BASE_"); return bfd_reloc_dangerous; } } @@ -3841,7 +3837,7 @@ info->flags |= DF_TEXTREL; info->callbacks->minfo - (_("%B: dynamic relocation against `%T' in read-only section `%A'\n"), + (_("%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"), sec->owner, h->root.root.string, sec); /* Not an error, just cut short the traversal. */ @@ -4238,12 +4234,7 @@ /* If the relocation is PC relative, we want to set RELOCATION to the distance between the symbol (currently in RELOCATION) and the - location we are relocating. Some targets (e.g., i386-aout) - arrange for the contents of the section to be the negative of the - offset of the location within the section; for such targets - pcrel_offset is FALSE. Other targets (e.g., m88kbcs or ELF) - simply leave the contents of the section as zero; for such - targets pcrel_offset is TRUE. If pcrel_offset is FALSE we do not + location we are relocating. If pcrel_offset is FALSE we do not need to subtract out the offset of the location within the section (which is just ADDRESS). */ if (howto->pc_relative) @@ -4402,26 +4393,6 @@ return FALSE; } - if (is_ITB_BASE_set == 0) - { - /* Set the _ITB_BASE_. */ - if (!nds32_elf_ex9_itb_base (info)) - { - _bfd_error_handler (_("%B: error: Cannot set _ITB_BASE_"), - output_bfd); - bfd_set_error (bfd_error_bad_value); - } - } - - if (table->target_optimize & NDS32_RELAX_JUMP_IFC_ON) - if (!nds32_elf_ifc_reloc ()) - _bfd_error_handler (_("error: IFC relocation error.")); - - /* Relocation for .ex9.itable. */ - if (table->target_optimize & NDS32_RELAX_EX9_ON - || (table->ex9_import_file && table->update_ex9_table)) - nds32_elf_ex9_reloc_jmp (info); - /* Use gp as fp to prevent truncated fit. Because in relaxation time the fp value is set as gp, and it has be reverted for instruction setting fp. */ @@ -4449,7 +4420,7 @@ if (r_type >= R_NDS32_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: error: unknown relocation type %d."), + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), input_bfd, r_type); bfd_set_error (bfd_error_bad_value); ret = FALSE; @@ -4895,8 +4866,8 @@ if (bfd_link_pic (info)) { _bfd_error_handler - (_("%B: warning: cannot deal R_NDS32_25_ABS_RELA in shared " - "mode."), input_bfd); + (_("%pB: warning: %s unsupported in shared mode"), + input_bfd, "R_NDS32_25_ABS_RELA"); return FALSE; } break; @@ -5029,7 +5000,7 @@ { /* Incorrect alignment. */ _bfd_error_handler - (_("%B: warning: unaligned access to GOT entry."), input_bfd); + (_("%pB: warning: unaligned access to GOT entry"), input_bfd); ret = FALSE; r = bfd_reloc_dangerous; goto check_reloc; @@ -5071,7 +5042,7 @@ if (r != bfd_reloc_ok) { _bfd_error_handler - (_("%B: warning: relocate SDA_BASE failed."), input_bfd); + (_("%pB: warning: relocate SDA_BASE failed"), input_bfd); ret = FALSE; goto check_reloc; } @@ -5093,7 +5064,8 @@ /* Incorrect alignment. */ _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A): warning: unaligned small data access of type %d."), + (_("%pB(%pA): warning: unaligned small data access" + " of type %d"), input_bfd, input_section, r_type); ret = FALSE; goto check_reloc; @@ -5841,7 +5813,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: ISR vector size mismatch" + (_("%pB: ISR vector size mismatch" " with previous modules, previous %u-byte, current %u-byte"), ibfd, nds32_vec_size == 1 ? 4 : nds32_vec_size == 2 ? 16 : 0xffffffff, @@ -5885,7 +5857,7 @@ if (bfd_little_endian (ibfd) != bfd_little_endian (obfd)) { _bfd_error_handler - (_("%B: warning: Endian mismatch with previous modules."), ibfd); + (_("%pB: warning: endian mismatch with previous modules"), ibfd); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -5895,8 +5867,8 @@ if (in_version == E_NDS32_ELF_VER_1_2) { _bfd_error_handler - (_("%B: warning: Older version of object file encountered, " - "Please recompile with current tool chain."), ibfd); + (_("%pB: warning: older version of object file encountered, " + "please recompile with current tool chain"), ibfd); } /* We may need to merge V1 and V2 arch object files to V2. */ @@ -5973,7 +5945,7 @@ if ((in_flags & EF_NDS_ABI) != (out_flags & EF_NDS_ABI)) { _bfd_error_handler - (_("%B: error: ABI mismatch with previous modules."), ibfd); + (_("%pB: error: ABI mismatch with previous modules"), ibfd); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -5984,7 +5956,8 @@ if (((in_flags & EF_NDS_ARCH) != E_N1_ARCH)) { _bfd_error_handler - (_("%B: error: Instruction set mismatch with previous modules."), ibfd); + (_("%pB: error: instruction set mismatch with previous modules"), + ibfd); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -6010,7 +5983,7 @@ if (in_version != out_version) _bfd_error_handler /* xgettext:c-format */ - (_("%B: warning: Incompatible elf-versions %s and %s."), + (_("%pB: warning: incompatible elf-versions %s and %s"), ibfd, nds32_elfver_strtab[out_version], nds32_elfver_strtab[in_version]); @@ -6835,7 +6808,7 @@ { int op6; uint16_t insn16 = 0; - int insn_type; + int insn_type = 0; unsigned long mach = bfd_get_mach (abfd); /* Decode 32-bit instruction. */ @@ -8532,7 +8505,8 @@ && (blank_t2->offset > raddr || blank_t2->next->offset <= raddr)) _bfd_error_handler - (_("%B: Error: search_nds32_elf_blank reports wrong node\n"), abfd); + (_("%pB: error: search_nds32_elf_blank reports wrong node"), + abfd); /* Mark reloc in deleted portion as NONE. For some relocs like R_NDS32_LABEL that doesn't modify the @@ -8791,7 +8765,7 @@ static const char * unrecognized_reloc_msg = /* xgettext:c-format */ - N_("%B: warning: %s points to unrecognized reloc at %#Lx"); + N_("%pB: warning: %s points to unrecognized reloc at %#" PRIx64); /* Relax LONGCALL1 relocation for nds32_elf_relax_section. */ @@ -8844,7 +8818,7 @@ if (hi_irelfn == irelend || lo_irelfn == irelend) { _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGCALL1", - irel->r_offset); + (uint64_t) irel->r_offset); return FALSE; } @@ -8925,7 +8899,7 @@ if (i1_irelfn == irelend) { _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGCALL2", - irel->r_offset); + (uint64_t) irel->r_offset); return FALSE; } @@ -9031,7 +9005,7 @@ if (hi_irelfn == irelend || lo_irelfn == irelend) { _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGCALL3", - irel->r_offset); + (uint64_t) irel->r_offset); return FALSE; } @@ -9165,7 +9139,7 @@ if (hi_irelfn == irelend || lo_irelfn == irelend) { _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGJUMP1", - irel->r_offset); + (uint64_t) irel->r_offset); return FALSE; } @@ -9371,7 +9345,7 @@ if (i2_irelfn == irelend || cond_irelfn == irelend) { _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGJUMP2", - irel->r_offset); + (uint64_t) irel->r_offset); return FALSE; } @@ -9563,7 +9537,7 @@ if (hi_irelfn == irelend || lo_irelfn == irelend || cond_irelfn == irelend) { _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGJUMP3", - irel->r_offset); + (uint64_t) irel->r_offset); return FALSE; } @@ -9690,7 +9664,6 @@ else { irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info), reloc); - irel->r_addend = irel->r_addend; hi_irelfn->r_info = ELF32_R_INFO (ELF32_R_SYM (hi_irelfn->r_info), cond_reloc); } @@ -9743,7 +9716,7 @@ if (hi_irel == irelend) { _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGCALL4", - irel->r_offset); + (uint64_t) irel->r_offset); return FALSE; } @@ -9773,7 +9746,7 @@ if (ptr_irel == irelend || em_irel == irelend) { _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGCALL4", - irel->r_offset); + (uint64_t) irel->r_offset); return FALSE; } /* Check these is enough space to insert jal in R_NDS32_EMPTY. */ @@ -9844,7 +9817,7 @@ if (cond_irel == irelend) { _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGCALL5", - irel->r_offset); + (uint64_t) irel->r_offset); return FALSE; } @@ -9922,7 +9895,7 @@ if (em_irel == irelend) { _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGCALL6", - irel->r_offset); + (uint64_t) irel->r_offset); return FALSE; } @@ -9960,7 +9933,7 @@ if (cond_irel == irelend) { _bfd_error_handler (unrecognized_reloc_msg, abfd, - "R_NDS32_LONGCALL6", irel->r_offset); + "R_NDS32_LONGCALL6", (uint64_t) irel->r_offset); return FALSE; } cond_irel->r_addend = 1; @@ -10009,7 +9982,7 @@ if (cond_irel == irelend) { _bfd_error_handler (unrecognized_reloc_msg, abfd, - "R_NDS32_LONGCALL6", irel->r_offset); + "R_NDS32_LONGCALL6", (uint64_t) irel->r_offset); return FALSE; } cond_irel->r_addend = 1; @@ -10059,7 +10032,7 @@ if (hi_irel == irelend) { _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGJUMP4", - irel->r_offset); + (uint64_t) irel->r_offset); return FALSE; } @@ -10081,7 +10054,7 @@ if (ptr_irel == irelend || em_irel == irelend) { _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGJUMP4", - irel->r_offset); + (uint64_t) irel->r_offset); return FALSE; } @@ -10155,7 +10128,7 @@ if (cond_irel == irelend) { _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGJUMP5", - irel->r_offset); + (uint64_t) irel->r_offset); return FALSE; } @@ -10284,7 +10257,7 @@ if (em_irel == irelend) { _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGJUMP6", - irel->r_offset); + (uint64_t) irel->r_offset); return FALSE; } @@ -10454,7 +10427,7 @@ if (cond_irel == irelend) { _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGJUMP7", - irel->r_offset); + (uint64_t) irel->r_offset); return FALSE; } @@ -10559,7 +10532,7 @@ if (hi_irelfn == irelend) { _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LOADSTORE", - irel->r_offset); + (uint64_t) irel->r_offset); return FALSE; } @@ -10606,7 +10579,7 @@ break; if (range_type == NDS32_LOADSTORE_FLOAT_S - || range_type == NDS32_LOADSTORE_FLOAT_S) + || range_type == NDS32_LOADSTORE_FLOAT_D) { range_l = sdata_range[0][0]; range_h = sdata_range[0][1]; @@ -11033,7 +11006,7 @@ if (re_irel == irelend) { _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_PTR", - irel->r_offset); + (uint64_t) irel->r_offset); return FALSE; } @@ -11568,118 +11541,6 @@ return TRUE; } -/* Pick relaxation round. */ - -static int -nds32_elf_pick_relax (bfd_boolean init, asection *sec, bfd_boolean *again, - struct elf_nds32_link_hash_table *table, - struct bfd_link_info *link_info) -{ - static asection *final_sec, *first_sec = NULL; - static bfd_boolean normal_again = FALSE; - static bfd_boolean set = FALSE; - static bfd_boolean first = TRUE; - int round_table[] = { - NDS32_RELAX_NORMAL_ROUND, - NDS32_RELAX_JUMP_IFC_ROUND, - NDS32_RELAX_EX9_BUILD_ROUND, - NDS32_RELAX_EX9_REPLACE_ROUND, - }; - static int pass = 0; - static int relax_round; - - /* The new round. */ - if (init && first_sec == sec) - { - set = TRUE; - normal_again = FALSE; - } - - if (first) - { - /* Run an empty run to get the final section. */ - relax_round = NDS32_RELAX_EMPTY_ROUND; - - /* It has to enter relax again because we can - not make sure what the final turn is. */ - *again = TRUE; - - first = FALSE; - first_sec = sec; - } - - if (!set) - { - /* Not reenter yet. */ - final_sec = sec; - return relax_round; - } - - relax_round = round_table[pass]; - - if (!init && relax_round == NDS32_RELAX_NORMAL_ROUND && *again) - normal_again = TRUE; - - if (!init && final_sec == sec) - { - switch (relax_round) - { - case NDS32_RELAX_NORMAL_ROUND: - if (!normal_again) - { - /* Normal relaxation done. */ - if (table->target_optimize & NDS32_RELAX_JUMP_IFC_ON) - { - pass++; - *again = TRUE; - } - else if (table->target_optimize & NDS32_RELAX_EX9_ON) - { - pass += 2; /* NDS32_RELAX_EX9_BUILD_ROUND */ - *again = TRUE; - } - else if (table->ex9_import_file) - { - /* Import ex9 table. */ - if (table->update_ex9_table) - pass += 2; /* NDS32_RELAX_EX9_BUILD_ROUND */ - else - pass += 3; /* NDS32_RELAX_EX9_REPLACE_ROUND */ - nds32_elf_ex9_import_table (link_info); - *again = TRUE; - } - } - break; - case NDS32_RELAX_JUMP_IFC_ROUND: - if (!nds32_elf_ifc_finish (link_info)) - _bfd_error_handler (_("error: Jump IFC Fail.")); - if (table->target_optimize & NDS32_RELAX_EX9_ON) - { - pass++; - *again = TRUE; - } - break; - case NDS32_RELAX_EX9_BUILD_ROUND: - nds32_elf_ex9_finish (link_info); - pass++; - *again = TRUE; - break; - case NDS32_RELAX_EX9_REPLACE_ROUND: - if (table->target_optimize & NDS32_RELAX_JUMP_IFC_ON) - { - /* Do jump IFC optimization again. */ - if (!nds32_elf_ifc_finish (link_info)) - _bfd_error_handler (_("error: Jump IFC Fail.")); - } - break; - default: - break; - } - } - - return relax_round; -} - static bfd_boolean nds32_elf_relax_section (bfd *abfd, asection *sec, struct bfd_link_info *link_info, bfd_boolean *again) @@ -11700,7 +11561,6 @@ /* Target dependnet option. */ struct elf_nds32_link_hash_table *table; int load_store_relax; - int relax_round; relax_blank_list = NULL; @@ -11728,41 +11588,6 @@ /* The optimization type to do. */ table = nds32_elf_hash_table (link_info); - relax_round = nds32_elf_pick_relax (TRUE, sec, again, table, link_info); - switch (relax_round) - { - case NDS32_RELAX_JUMP_IFC_ROUND: - /* Here is the entrance of ifc jump relaxation. */ - if (!nds32_elf_ifc_calc (link_info, abfd, sec)) - return FALSE; - nds32_elf_pick_relax (FALSE, sec, again, table, link_info); - return TRUE; - - case NDS32_RELAX_EX9_BUILD_ROUND: - /* Here is the entrance of ex9 relaxation. There are two pass of - ex9 relaxation. The one is to traverse all instructions and build - the hash table. The other one is to compare instructions and replace - it by ex9.it. */ - if (!nds32_elf_ex9_build_hash_table (abfd, sec, link_info)) - return FALSE; - nds32_elf_pick_relax (FALSE, sec, again, table, link_info); - return TRUE; - - case NDS32_RELAX_EX9_REPLACE_ROUND: - if (!nds32_elf_ex9_replace_instruction (link_info, abfd, sec)) - return FALSE; - return TRUE; - - case NDS32_RELAX_EMPTY_ROUND: - nds32_elf_pick_relax (FALSE, sec, again, table, link_info); - return TRUE; - - case NDS32_RELAX_NORMAL_ROUND: - default: - if (sec->reloc_count == 0) - return TRUE; - break; - } /* The begining of general relaxation. */ @@ -11775,16 +11600,6 @@ relax_range_measurement (abfd); } - if (is_ITB_BASE_set == 0) - { - /* Set the _ITB_BASE_. */ - if (!nds32_elf_ex9_itb_base (link_info)) - { - _bfd_error_handler (_("%B: error: Cannot set _ITB_BASE_"), abfd); - bfd_set_error (bfd_error_bad_value); - } - } - symtab_hdr = &elf_tdata (abfd)->symtab_hdr; /* Relocations MUST be kept in memory, because relaxation adjust them. */ internal_relocs = _bfd_elf_link_read_relocs (abfd, sec, NULL, NULL, @@ -11802,10 +11617,7 @@ if (ELF32_R_TYPE (irel->r_info) == R_NDS32_RELAX_ENTRY) { if (irel->r_addend & R_NDS32_RELAX_ENTRY_DISABLE_RELAX_FLAG) - { - nds32_elf_pick_relax (FALSE, sec, again, table, link_info); - return TRUE; - } + return TRUE; if (irel->r_addend & R_NDS32_RELAX_ENTRY_OPTIMIZE_FLAG) optimize = 1; @@ -12059,8 +11871,6 @@ } } - nds32_elf_pick_relax (FALSE, sec, again, table, link_info); - if (!*again) { if (!nds32_relax_adjust_label (abfd, sec, internal_relocs, contents, @@ -12526,7 +12336,7 @@ /* Begin of the region. */ if (begin_rel) /* xgettext:c-format */ - _bfd_error_handler (_("%B: Nested OMIT_FP in %A."), abfd, sec); + _bfd_error_handler (_("%pB: nested OMIT_FP in %pA"), abfd, sec); begin_rel = irel; nds32_fag_init (&fag_head); @@ -12545,7 +12355,8 @@ if (begin_rel == NULL) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: Unmatched OMIT_FP in %A."), abfd, sec); + _bfd_error_handler (_("%pB: unmatched OMIT_FP in %pA"), + abfd, sec); continue; } @@ -12828,7 +12639,7 @@ message instead. */ link_info->callbacks->einfo /* xgettext:c-format */ - (_("%X%P: %B(%A): relocation \"%R\" goes out of range\n"), + (_("%X%P: %pB(%pA): relocation \"%pR\" goes out of range\n"), abfd, input_section, * parent); goto error_return; @@ -12848,2586 +12659,6 @@ return NULL; } -/* Link-time IFC relaxation. - In this optimization, we chains jump instructions - of the same destination with ifcall. */ - - -/* List to save jal and j relocation. */ -struct elf_nds32_ifc_symbol_entry -{ - asection *sec; - struct elf_link_hash_entry *h; - struct elf_nds32_ifc_irel_list *irel_head; - unsigned long insn; - int times; - int enable; /* Apply ifc. */ - int ex9_enable; /* Apply ifc after ex9. */ - struct elf_nds32_ifc_symbol_entry *next; -}; - -struct elf_nds32_ifc_irel_list -{ - Elf_Internal_Rela *irel; - asection *sec; - bfd_vma addr; - /* If this is set, then it is the last instruction for - ifc-chain, so it must be keep for the actual branching. */ - int keep; - struct elf_nds32_ifc_irel_list *next; -}; - -static struct elf_nds32_ifc_symbol_entry *ifc_symbol_head = NULL; - -/* Insert symbol of jal and j for ifc. */ - -static void -nds32_elf_ifc_insert_symbol (asection *sec, - struct elf_link_hash_entry *h, - Elf_Internal_Rela *irel, - unsigned long insn) -{ - struct elf_nds32_ifc_symbol_entry *ptr = ifc_symbol_head; - - /* Check there is target of existing entry the same as the new one. */ - while (ptr != NULL) - { - if (((h == NULL && ptr->sec == sec - && ELF32_R_SYM (ptr->irel_head->irel->r_info) == ELF32_R_SYM (irel->r_info) - && ptr->irel_head->irel->r_addend == irel->r_addend) - || h != NULL) - && ptr->h == h - && ptr->insn == insn) - { - /* The same target exist, so insert into list. */ - struct elf_nds32_ifc_irel_list *irel_list = ptr->irel_head; - - while (irel_list->next != NULL) - irel_list = irel_list->next; - irel_list->next = bfd_malloc (sizeof (struct elf_nds32_ifc_irel_list)); - irel_list = irel_list->next; - irel_list->irel = irel; - irel_list->keep = 1; - - if (h == NULL) - irel_list->sec = NULL; - else - irel_list->sec = sec; - irel_list->next = NULL; - return; - } - if (ptr->next == NULL) - break; - ptr = ptr->next; - } - - /* There is no same target entry, so build a new one. */ - if (ifc_symbol_head == NULL) - { - ifc_symbol_head = bfd_malloc (sizeof (struct elf_nds32_ifc_symbol_entry)); - ptr = ifc_symbol_head; - } - else - { - ptr->next = bfd_malloc (sizeof (struct elf_nds32_ifc_symbol_entry)); - ptr = ptr->next; - } - - ptr->h = h; - ptr->irel_head = bfd_malloc (sizeof (struct elf_nds32_ifc_irel_list)); - ptr->irel_head->irel = irel; - ptr->insn = insn; - ptr->irel_head->keep = 1; - - if (h == NULL) - { - /* Local symbols. */ - ptr->sec = sec; - ptr->irel_head->sec = NULL; - } - else - { - /* Global symbol. */ - ptr->sec = NULL; - ptr->irel_head->sec = sec; - } - - ptr->irel_head->next = NULL; - ptr->times = 0; - ptr->enable = 0; - ptr->ex9_enable = 0; - ptr->next = NULL; -} - -/* Gather all jal and j instructions. */ - -static bfd_boolean -nds32_elf_ifc_calc (struct bfd_link_info *info, - bfd *abfd, asection *sec) -{ - Elf_Internal_Rela *internal_relocs; - Elf_Internal_Rela *irelend; - Elf_Internal_Rela *irel; - Elf_Internal_Shdr *symtab_hdr; - bfd_byte *contents = NULL; - uint32_t insn, insn_with_reg; - unsigned long r_symndx; - struct elf_link_hash_entry *h; - struct elf_link_hash_entry **sym_hashes = elf_sym_hashes (abfd); - struct elf_nds32_link_hash_table *table; - bfd_boolean ifc_loop_aware; - - internal_relocs = _bfd_elf_link_read_relocs (abfd, sec, NULL, NULL, - TRUE /* keep_memory */); - irelend = internal_relocs + sec->reloc_count; - symtab_hdr = &elf_tdata (abfd)->symtab_hdr; - - /* Check if the object enable ifc. */ - irel = find_relocs_at_address (internal_relocs, internal_relocs, irelend, - R_NDS32_RELAX_ENTRY); - - if (irel == NULL - || irel >= irelend - || ELF32_R_TYPE (irel->r_info) != R_NDS32_RELAX_ENTRY - || (ELF32_R_TYPE (irel->r_info) == R_NDS32_RELAX_ENTRY - && !(irel->r_addend & R_NDS32_RELAX_ENTRY_IFC_FLAG))) - return TRUE; - - if (!nds32_get_section_contents (abfd, sec, &contents, TRUE)) - return FALSE; - - table = nds32_elf_hash_table (info); - ifc_loop_aware = table->ifc_loop_aware; - while (irel != NULL && irel < irelend) - { - /* Traverse all relocation and gather all of them to build the list. */ - - if (ELF32_R_TYPE (irel->r_info) == R_NDS32_RELAX_REGION_BEGIN) - { - if (ifc_loop_aware == 1 - && (irel->r_addend & R_NDS32_RELAX_REGION_INNERMOST_LOOP_FLAG) != 0) - { - /* Check the region if loop or not. If it is true and - ifc-loop-aware is true, ignore the region till region end. */ - while (irel != NULL - && irel < irelend - && (ELF32_R_TYPE (irel->r_info) != R_NDS32_RELAX_REGION_END - || (irel->r_addend & R_NDS32_RELAX_REGION_INNERMOST_LOOP_FLAG) != 0)) - irel++; - } - } - - if (ELF32_R_TYPE (irel->r_info) == R_NDS32_25_PCREL_RELA) - { - insn = bfd_getb32 (contents + irel->r_offset); - nds32_elf_get_insn_with_reg (irel, insn, &insn_with_reg); - r_symndx = ELF32_R_SYM (irel->r_info); - if (r_symndx < symtab_hdr->sh_info) - { - /* Local symbol. */ - nds32_elf_ifc_insert_symbol (sec, NULL, irel, insn_with_reg); - } - else - { - /* External symbol. */ - h = sym_hashes[r_symndx - symtab_hdr->sh_info]; - nds32_elf_ifc_insert_symbol (sec, h, irel, insn_with_reg); - } - } - irel++; - } - return TRUE; -} - -/* Determine whether j and jal should be substituted. */ - -static void -nds32_elf_ifc_filter (struct bfd_link_info *info) -{ - struct elf_nds32_ifc_symbol_entry *ptr = ifc_symbol_head; - struct elf_nds32_ifc_irel_list *irel_ptr = NULL; - struct elf_nds32_ifc_irel_list *irel_keeper = NULL; - struct elf_nds32_link_hash_table *table; - int target_optimize; - bfd_vma address; - - table = nds32_elf_hash_table (info); - target_optimize = table->target_optimize; - while (ptr) - { - irel_ptr = ptr->irel_head; - if (ptr->h == NULL) - { - /* Local symbol. */ - irel_keeper = irel_ptr; - while (irel_ptr && irel_ptr->next) - { - /* Check there is jump target can be used. */ - if ((irel_ptr->next->irel->r_offset - - irel_keeper->irel->r_offset) > 1022) - irel_keeper = irel_ptr->next; - else - { - ptr->enable = 1; - irel_ptr->keep = 0; - } - irel_ptr = irel_ptr->next; - } - } - else - { - /* Global symbol. */ - /* We have to get the absolute address and decide - whether to keep it or not. */ - while (irel_ptr) - { - address = (irel_ptr->irel->r_offset - + irel_ptr->sec->output_section->vma - + irel_ptr->sec->output_offset); - irel_ptr->addr = address; - irel_ptr = irel_ptr->next; - } - - irel_ptr = ptr->irel_head; - while (irel_ptr) - { - /* Sort by address. */ - struct elf_nds32_ifc_irel_list *irel_dest = irel_ptr; - struct elf_nds32_ifc_irel_list *irel_temp = irel_ptr; - struct elf_nds32_ifc_irel_list *irel_ptr_prev = NULL; - struct elf_nds32_ifc_irel_list *irel_dest_prev = NULL; - - /* Get the smallest one. */ - while (irel_temp->next) - { - if (irel_temp->next->addr < irel_dest->addr) - { - irel_dest_prev = irel_temp; - irel_dest = irel_temp->next; - } - irel_temp = irel_temp->next; - } - - if (irel_dest != irel_ptr) - { - if (irel_ptr_prev) - irel_ptr_prev->next = irel_dest; - if (irel_dest_prev) - irel_dest_prev->next = irel_ptr; - irel_temp = irel_ptr->next; - irel_ptr->next = irel_dest->next; - irel_dest->next = irel_temp; - } - irel_ptr_prev = irel_ptr; - irel_ptr = irel_ptr->next; - } - - irel_ptr = ptr->irel_head; - irel_keeper = irel_ptr; - while (irel_ptr && irel_ptr->next) - { - if ((irel_ptr->next->addr - irel_keeper->addr) > 1022) - irel_keeper = irel_ptr->next; - else - { - ptr->enable = 1; - irel_ptr->keep = 0; - } - irel_ptr = irel_ptr->next; - } - } - - /* Ex9 enable. Reserve it for ex9. */ - if ((target_optimize & NDS32_RELAX_EX9_ON) - && ptr->irel_head != irel_keeper) - ptr->enable = 0; - ptr = ptr->next; - } -} - -/* Determine whether j and jal should be substituted after ex9 done. */ - -static void -nds32_elf_ifc_filter_after_ex9 (void) -{ - struct elf_nds32_ifc_symbol_entry *ptr = ifc_symbol_head; - struct elf_nds32_ifc_irel_list *irel_ptr = NULL; - - while (ptr) - { - if (ptr->enable == 0) - { - /* Check whether ifc is applied or not. */ - irel_ptr = ptr->irel_head; - ptr->ex9_enable = 1; - while (irel_ptr) - { - if (ELF32_R_TYPE (irel_ptr->irel->r_info) == R_NDS32_TRAN) - { - /* Ex9 already. */ - ptr->ex9_enable = 0; - break; - } - irel_ptr = irel_ptr->next; - } - } - ptr = ptr->next; - } -} - -/* Wrapper to do ifc relaxation. */ - -bfd_boolean -nds32_elf_ifc_finish (struct bfd_link_info *info) -{ - int relax_status; - struct elf_nds32_link_hash_table *table; - - table = nds32_elf_hash_table (info); - relax_status = table->relax_status; - - if (!(relax_status & NDS32_RELAX_JUMP_IFC_DONE)) - nds32_elf_ifc_filter (info); - else - nds32_elf_ifc_filter_after_ex9 (); - - if (!nds32_elf_ifc_replace (info)) - return FALSE; - - if (table) - table->relax_status |= NDS32_RELAX_JUMP_IFC_DONE; - return TRUE; -} - -/* Traverse the result of ifc filter and replace it with ifcall9. */ - -static bfd_boolean -nds32_elf_ifc_replace (struct bfd_link_info *info) -{ - struct elf_nds32_ifc_symbol_entry *ptr = ifc_symbol_head; - struct elf_nds32_ifc_irel_list *irel_ptr = NULL; - nds32_elf_blank_t *relax_blank_list = NULL; - bfd_byte *contents = NULL; - Elf_Internal_Rela *internal_relocs; - Elf_Internal_Rela *irel; - Elf_Internal_Rela *irelend; - unsigned short insn16 = INSN_IFCALL9; - struct elf_nds32_link_hash_table *table; - int relax_status; - - table = nds32_elf_hash_table (info); - relax_status = table->relax_status; - - while (ptr) - { - /* Traverse the ifc gather list, and replace the - filter entries by ifcall9. */ - if ((!(relax_status & NDS32_RELAX_JUMP_IFC_DONE) && ptr->enable == 1) - || ((relax_status & NDS32_RELAX_JUMP_IFC_DONE) - && ptr->ex9_enable == 1)) - { - irel_ptr = ptr->irel_head; - if (ptr->h == NULL) - { - /* Local symbol. */ - internal_relocs = _bfd_elf_link_read_relocs - (ptr->sec->owner, ptr->sec, NULL, NULL, TRUE /* keep_memory */); - irelend = internal_relocs + ptr->sec->reloc_count; - - if (!nds32_get_section_contents (ptr->sec->owner, ptr->sec, - &contents, TRUE)) - return FALSE; - - while (irel_ptr) - { - if (irel_ptr->keep == 0 && irel_ptr->next) - { - /* The one can be replaced. We have to check whether - there is any alignment point in the region. */ - irel = irel_ptr->irel; - while (((irel_ptr->next->keep == 0 - && irel < irel_ptr->next->irel) - || (irel_ptr->next->keep == 1 && irel < irelend)) - && !(ELF32_R_TYPE (irel->r_info) == R_NDS32_LABEL - && (irel->r_addend & 0x1f) == 2)) - irel++; - if (irel >= irelend - || !(ELF32_R_TYPE (irel->r_info) == R_NDS32_LABEL - && (irel->r_addend & 0x1f) == 2 - && ((irel->r_offset - get_nds32_elf_blank_total - (&relax_blank_list, irel->r_offset, 1)) - & 0x02) == 0)) - { - /* Replace by ifcall9. */ - bfd_putb16 (insn16, contents + irel_ptr->irel->r_offset); - if (!insert_nds32_elf_blank_recalc_total - (&relax_blank_list, irel_ptr->irel->r_offset + 2, 2)) - return FALSE; - irel_ptr->irel->r_info = - ELF32_R_INFO (ELF32_R_SYM (irel_ptr->irel->r_info), - R_NDS32_10IFCU_PCREL_RELA); - } - } - irel_ptr = irel_ptr->next; - } - - /* Delete the redundant code. */ - if (relax_blank_list) - { - nds32_elf_relax_delete_blanks (ptr->sec->owner, ptr->sec, - relax_blank_list); - relax_blank_list = NULL; - } - } - else - { - /* Global symbol. */ - while (irel_ptr) - { - if (irel_ptr->keep == 0 && irel_ptr->next) - { - /* The one can be replaced, and we have to check - whether there is any alignment point in the region. */ - internal_relocs = _bfd_elf_link_read_relocs - (irel_ptr->sec->owner, irel_ptr->sec, NULL, NULL, - TRUE /* keep_memory */); - irelend = internal_relocs + irel_ptr->sec->reloc_count; - if (!nds32_get_section_contents (irel_ptr->sec->owner, - irel_ptr->sec, &contents, - TRUE)) - return FALSE; - - irel = irel_ptr->irel; - while (((irel_ptr->sec == irel_ptr->next->sec - && irel_ptr->next->keep == 0 - && irel < irel_ptr->next->irel) - || ((irel_ptr->sec != irel_ptr->next->sec - || irel_ptr->next->keep == 1) - && irel < irelend)) - && !(ELF32_R_TYPE (irel->r_info) == R_NDS32_LABEL - && (irel->r_addend & 0x1f) == 2)) - irel++; - if (irel >= irelend - || !(ELF32_R_TYPE (irel->r_info) == R_NDS32_LABEL - && (irel->r_addend & 0x1f) == 2 - && ((irel->r_offset - - get_nds32_elf_blank_total (&relax_blank_list, - irel->r_offset, 1)) & 0x02) == 0)) - { - /* Replace by ifcall9. */ - bfd_putb16 (insn16, contents + irel_ptr->irel->r_offset); - if (!insert_nds32_elf_blank_recalc_total - (&relax_blank_list, irel_ptr->irel->r_offset + 2, 2)) - return FALSE; - - /* Delete the redundant code, and clear the relocation. */ - nds32_elf_relax_delete_blanks (irel_ptr->sec->owner, - irel_ptr->sec, - relax_blank_list); - irel_ptr->irel->r_info = - ELF32_R_INFO (ELF32_R_SYM (irel_ptr->irel->r_info), - R_NDS32_10IFCU_PCREL_RELA); - relax_blank_list = NULL; - } - } - - irel_ptr = irel_ptr->next; - } - } - } - ptr = ptr->next; - } - - return TRUE; -} - -/* Relocate ifcall. */ - -static bfd_boolean -nds32_elf_ifc_reloc (void) -{ - struct elf_nds32_ifc_symbol_entry *ptr = ifc_symbol_head; - struct elf_nds32_ifc_irel_list *irel_ptr = NULL; - struct elf_nds32_ifc_irel_list *irel_keeper = NULL; - bfd_vma relocation, address; - unsigned short insn16; - bfd_byte *contents = NULL; - static bfd_boolean done = FALSE; - - if (done) - return TRUE; - - done = TRUE; - - while (ptr) - { - /* Check the entry is enable ifcall. */ - if (ptr->enable == 1 || ptr->ex9_enable == 1) - { - /* Get the reserve jump. */ - irel_ptr = ptr->irel_head; - while (irel_ptr) - { - if (irel_ptr->keep == 1) - { - irel_keeper = irel_ptr; - break; - } - irel_ptr = irel_ptr->next; - } - - irel_ptr = ptr->irel_head; - if (ptr->h == NULL) - { - /* Local symbol. */ - if (!nds32_get_section_contents (ptr->sec->owner, ptr->sec, - &contents, TRUE)) - return FALSE; - - while (irel_ptr) - { - if (irel_ptr->keep == 0 - && ELF32_R_TYPE (irel_ptr->irel->r_info) == R_NDS32_10IFCU_PCREL_RELA) - { - relocation = irel_keeper->irel->r_offset; - relocation = relocation - irel_ptr->irel->r_offset; - while (irel_keeper && relocation > 1022) - { - irel_keeper = irel_keeper->next; - if (irel_keeper && irel_keeper->keep == 1) - { - relocation = irel_keeper->irel->r_offset; - relocation = relocation - irel_ptr->irel->r_offset; - } - } - if (relocation > 1022) - { - /* Double check. */ - irel_keeper = ptr->irel_head; - while (irel_keeper) - { - if (irel_keeper->keep == 1) - { - relocation = irel_keeper->irel->r_offset; - relocation = relocation - irel_ptr->irel->r_offset; - } - if (relocation <= 1022) - break; - irel_keeper = irel_keeper->next; - } - if (!irel_keeper) - return FALSE; - } - irel_ptr->irel->r_info = - ELF32_R_INFO (ELF32_R_SYM (irel_ptr->irel->r_info), - R_NDS32_NONE); - insn16 = INSN_IFCALL9 | (relocation >> 1); - bfd_putb16 (insn16, contents + irel_ptr->irel->r_offset); - } - irel_ptr = irel_ptr->next; - } - } - else - { - /* Global symbol. */ - while (irel_ptr) - { - if (irel_ptr->keep == 0 - && ELF32_R_TYPE (irel_ptr->irel->r_info) == R_NDS32_10IFCU_PCREL_RELA) - { - /* Get the distance between ifcall and jump. */ - relocation = (irel_keeper->irel->r_offset - + irel_keeper->sec->output_section->vma - + irel_keeper->sec->output_offset); - address = (irel_ptr->irel->r_offset - + irel_ptr->sec->output_section->vma - + irel_ptr->sec->output_offset); - relocation = relocation - address; - - /* The distance is over ragne, find callee again. */ - while (irel_keeper && relocation > 1022) - { - irel_keeper = irel_keeper->next; - if (irel_keeper && irel_keeper->keep ==1) - { - relocation = (irel_keeper->irel->r_offset - + irel_keeper->sec->output_section->vma - + irel_keeper->sec->output_offset); - relocation = relocation - address; - } - } - - if (relocation > 1022) - { - /* Double check. */ - irel_keeper = ptr->irel_head; - while (irel_keeper) - { - if (irel_keeper->keep == 1) - { - - relocation = (irel_keeper->irel->r_offset - + irel_keeper->sec->output_section->vma - + irel_keeper->sec->output_offset); - relocation = relocation - address; - } - if (relocation <= 1022) - break; - irel_keeper = irel_keeper->next; - } - if (!irel_keeper) - return FALSE; - } - if (!nds32_get_section_contents - (irel_ptr->sec->owner, irel_ptr->sec, &contents, TRUE)) - return FALSE; - insn16 = INSN_IFCALL9 | (relocation >> 1); - bfd_putb16 (insn16, contents + irel_ptr->irel->r_offset); - irel_ptr->irel->r_info = - ELF32_R_INFO (ELF32_R_SYM (irel_ptr->irel->r_info), - R_NDS32_NONE); - } - irel_ptr =irel_ptr->next; - } - } - } - ptr = ptr->next; - } - - return TRUE; -} - -/* End of IFC relaxation. */ - -/* EX9 Instruction Table Relaxation. */ - -/* Global hash list. */ -struct elf_link_hash_entry_list -{ - struct elf_link_hash_entry *h; - struct elf_link_hash_entry_list *next; -}; - -/* Save different destination but same insn. */ -struct elf_link_hash_entry_mul_list -{ - /* Global symbol times. */ - int times; - /* Save relocation for each global symbol but useful?? */ - Elf_Internal_Rela *irel; - /* For sethi, two sethi may have the same high-part but different low-parts. */ - Elf_Internal_Rela rel_backup; - struct elf_link_hash_entry_list *h_list; - struct elf_link_hash_entry_mul_list *next; -}; - -/* Instruction hash table. */ -struct elf_nds32_code_hash_entry -{ - struct bfd_hash_entry root; - int times; - /* For insn that can use relocation or constant ex: sethi. */ - int const_insn; - asection *sec; - struct elf_link_hash_entry_mul_list *m_list; - /* Using r_addend. */ - Elf_Internal_Rela *irel; - /* Using r_info. */ - Elf_Internal_Rela rel_backup; -}; - -/* Instruction count list. */ -struct elf_nds32_insn_times_entry -{ - const char *string; - int times; - int order; - asection *sec; - struct elf_link_hash_entry_mul_list *m_list; - Elf_Internal_Rela *irel; - Elf_Internal_Rela rel_backup; - struct elf_nds32_insn_times_entry *next; -}; - -/* J and JAL symbol list. */ -struct elf_nds32_symbol_entry -{ - char *string; - unsigned long insn; - struct elf_nds32_symbol_entry *next; -}; - -/* Relocation list. */ -struct elf_nds32_irel_entry -{ - Elf_Internal_Rela *irel; - struct elf_nds32_irel_entry *next; -}; - -/* ex9.it insn need to be fixed. */ -struct elf_nds32_ex9_refix -{ - Elf_Internal_Rela *irel; - asection *sec; - struct elf_link_hash_entry *h; - int order; - struct elf_nds32_ex9_refix *next; -}; - -static struct bfd_hash_table ex9_code_table; -static struct elf_nds32_insn_times_entry *ex9_insn_head = NULL; -static struct elf_nds32_ex9_refix *ex9_refix_head = NULL; - -/* EX9 hash function. */ - -static struct bfd_hash_entry * -nds32_elf_code_hash_newfunc (struct bfd_hash_entry *entry, - struct bfd_hash_table *table, - const char *string) -{ - struct elf_nds32_code_hash_entry *ret; - - /* 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 (*ret)); - if (entry == NULL) - return entry; - } - - /* Call the allocation method of the superclass. */ - entry = bfd_hash_newfunc (entry, table, string); - if (entry == NULL) - return entry; - - ret = (struct elf_nds32_code_hash_entry*) entry; - ret->times = 0; - ret->const_insn = 0; - ret->m_list = NULL; - ret->sec = NULL; - ret->irel = NULL; - return &ret->root; -} - -/* Insert ex9 entry - this insert must be stable sorted by times. */ - -static void -nds32_elf_ex9_insert_entry (struct elf_nds32_insn_times_entry *ptr) -{ - struct elf_nds32_insn_times_entry *temp; - struct elf_nds32_insn_times_entry *temp2; - - if (ex9_insn_head == NULL) - { - ex9_insn_head = ptr; - ptr->next = NULL; - } - else - { - temp = ex9_insn_head; - temp2 = ex9_insn_head; - while (temp->next && - (temp->next->times >= ptr->times - || temp->times == -1)) - { - if (temp->times == -1) - temp2 = temp; - temp = temp->next; - } - if (ptr->times > temp->times && temp->times != -1) - { - ptr->next = temp; - if (temp2->times == -1) - temp2->next = ptr; - else - ex9_insn_head = ptr; - } - else if (temp->next == NULL) - { - temp->next = ptr; - ptr->next = NULL; - } - else - { - ptr->next = temp->next; - temp->next = ptr; - } - } -} - -/* Examine each insn times in hash table. - Handle multi-link hash entry. - - TODO: This function doesn't assign so much info since it is fake. */ - -static int -nds32_elf_examine_insn_times (struct elf_nds32_code_hash_entry *h) -{ - struct elf_nds32_insn_times_entry *ptr; - int times; - - if (h->m_list == NULL) - { - /* Local symbol insn or insn without relocation. */ - if (h->times < 3) - return TRUE; - - ptr = (struct elf_nds32_insn_times_entry *) - bfd_malloc (sizeof (struct elf_nds32_insn_times_entry)); - ptr->times = h->times; - ptr->string = h->root.string; - ptr->m_list = NULL; - ptr->sec = h->sec; - ptr->irel = h->irel; - ptr->rel_backup = h->rel_backup; - nds32_elf_ex9_insert_entry (ptr); - } - else - { - /* Global symbol insn. */ - /* Only sethi insn has multiple m_list. */ - struct elf_link_hash_entry_mul_list *m_list = h->m_list; - - times = 0; - while (m_list) - { - times += m_list->times; - m_list = m_list->next; - } - if (times >= 3) - { - m_list = h->m_list; - ptr = (struct elf_nds32_insn_times_entry *) - bfd_malloc (sizeof (struct elf_nds32_insn_times_entry)); - ptr->times = times; /* Use the total times. */ - ptr->string = h->root.string; - ptr->m_list = m_list; - ptr->sec = h->sec; - ptr->irel = m_list->irel; - ptr->rel_backup = m_list->rel_backup; - nds32_elf_ex9_insert_entry (ptr); - } - if (h->const_insn == 1) - { - /* sethi with constant value. */ - if (h->times < 3) - return TRUE; - - ptr = (struct elf_nds32_insn_times_entry *) - bfd_malloc (sizeof (struct elf_nds32_insn_times_entry)); - ptr->times = h->times; - ptr->string = h->root.string; - ptr->m_list = NULL; - ptr->sec = NULL; - ptr->irel = NULL; - ptr->rel_backup = h->rel_backup; - nds32_elf_ex9_insert_entry (ptr); - } - } - return TRUE; -} - -/* Count each insn times in hash table. - Handle multi-link hash entry. */ - -static int -nds32_elf_count_insn_times (struct elf_nds32_code_hash_entry *h) -{ - int reservation, times; - unsigned long relocation, min_relocation; - struct elf_nds32_insn_times_entry *ptr; - - if (h->m_list == NULL) - { - /* Local symbol insn or insn without relocation. */ - if (h->times < 3) - return TRUE; - ptr = (struct elf_nds32_insn_times_entry *) - bfd_malloc (sizeof (struct elf_nds32_insn_times_entry)); - ptr->times = h->times; - ptr->string = h->root.string; - ptr->m_list = NULL; - ptr->sec = h->sec; - ptr->irel = h->irel; - ptr->rel_backup = h->rel_backup; - nds32_elf_ex9_insert_entry (ptr); - } - else - { - /* Global symbol insn. */ - /* Only sethi insn has multiple m_list. */ - struct elf_link_hash_entry_mul_list *m_list = h->m_list; - - if (ELF32_R_TYPE (m_list->rel_backup.r_info) == R_NDS32_HI20_RELA - && m_list->next != NULL) - { - /* Sethi insn has different symbol or addend but has same hi20. */ - times = 0; - reservation = 1; - relocation = 0; - min_relocation = 0xffffffff; - while (m_list) - { - /* Get the minimum sethi address - and calculate how many entry the sethi-list have to use. */ - if ((m_list->h_list->h->root.type == bfd_link_hash_defined - || m_list->h_list->h->root.type == bfd_link_hash_defweak) - && (m_list->h_list->h->root.u.def.section != NULL - && m_list->h_list->h->root.u.def.section->output_section != NULL)) - { - relocation = (m_list->h_list->h->root.u.def.value + - m_list->h_list->h->root.u.def.section->output_section->vma + - m_list->h_list->h->root.u.def.section->output_offset); - relocation += m_list->irel->r_addend; - } - else - relocation = 0; - if (relocation < min_relocation) - min_relocation = relocation; - times += m_list->times; - m_list = m_list->next; - } - if (min_relocation < ex9_relax_size) - reservation = (min_relocation >> 12) + 1; - else - reservation = (min_relocation >> 12) - - ((min_relocation - ex9_relax_size) >> 12) + 1; - if (reservation < (times / 3)) - { - /* Efficient enough to use ex9. */ - int i; - - for (i = reservation ; i > 0; i--) - { - /* Allocate number of reservation ex9 entry. */ - ptr = (struct elf_nds32_insn_times_entry *) - bfd_malloc (sizeof (struct elf_nds32_insn_times_entry)); - ptr->times = h->m_list->times / reservation; - ptr->string = h->root.string; - ptr->m_list = h->m_list; - ptr->sec = h->sec; - ptr->irel = h->m_list->irel; - ptr->rel_backup = h->m_list->rel_backup; - nds32_elf_ex9_insert_entry (ptr); - } - } - } - else - { - /* Normal global symbol that means no different address symbol - using same ex9 entry. */ - if (m_list->times >= 3) - { - ptr = (struct elf_nds32_insn_times_entry *) - bfd_malloc (sizeof (struct elf_nds32_insn_times_entry)); - ptr->times = m_list->times; - ptr->string = h->root.string; - ptr->m_list = h->m_list; - ptr->sec = h->sec; - ptr->irel = h->m_list->irel; - ptr->rel_backup = h->m_list->rel_backup; - nds32_elf_ex9_insert_entry (ptr); - } - } - - if (h->const_insn == 1) - { - /* sethi with constant value. */ - if (h->times < 3) - return TRUE; - - ptr = (struct elf_nds32_insn_times_entry *) - bfd_malloc (sizeof (struct elf_nds32_insn_times_entry)); - ptr->times = h->times; - ptr->string = h->root.string; - ptr->m_list = NULL; - ptr->sec = NULL; - ptr->irel = NULL; - ptr->rel_backup = h->rel_backup; - nds32_elf_ex9_insert_entry (ptr); - } - } - - return TRUE; -} - -/* Hash table traverse function. */ - -static void -nds32_elf_code_hash_traverse (int (*func) (struct elf_nds32_code_hash_entry*)) -{ - unsigned int i; - - ex9_code_table.frozen = 1; - for (i = 0; i < ex9_code_table.size; i++) - { - struct bfd_hash_entry *p; - - for (p = ex9_code_table.table[i]; p != NULL; p = p->next) - if (!func ((struct elf_nds32_code_hash_entry *) p)) - goto out; - } -out: - ex9_code_table.frozen = 0; -} - - -/* Give order number to insn list. */ - -static void -nds32_elf_order_insn_times (struct bfd_link_info *info) -{ - struct elf_nds32_insn_times_entry *ex9_insn; - struct elf_nds32_insn_times_entry *temp = NULL; - struct elf_nds32_link_hash_table *table; - int ex9_limit; - int number = 0; - - if (ex9_insn_head == NULL) - return; - -/* The max number of entries is 512. */ - ex9_insn = ex9_insn_head; - table = nds32_elf_hash_table (info); - ex9_limit = table->ex9_limit; - - ex9_insn = ex9_insn_head; - - while (ex9_insn != NULL && number < ex9_limit) - { - ex9_insn->order = number; - number++; - temp = ex9_insn; - ex9_insn = ex9_insn->next; - } - - if (ex9_insn && temp) - temp->next = NULL; - - while (ex9_insn != NULL) - { - /* Free useless entry. */ - temp = ex9_insn; - ex9_insn = ex9_insn->next; - free (temp); - } -} - -/* Build .ex9.itable section. */ - -static void -nds32_elf_ex9_build_itable (struct bfd_link_info *link_info) -{ - asection *table_sec; - struct elf_nds32_insn_times_entry *ptr; - bfd *it_abfd; - int number = 0; - bfd_byte *contents = NULL; - - for (it_abfd = link_info->input_bfds; it_abfd != NULL; - it_abfd = it_abfd->link.next) - { - /* Find the section .ex9.itable, and put all entries into it. */ - table_sec = bfd_get_section_by_name (it_abfd, ".ex9.itable"); - if (table_sec != NULL) - { - if (!nds32_get_section_contents (it_abfd, table_sec, &contents, TRUE)) - return; - - for (ptr = ex9_insn_head; ptr !=NULL ; ptr = ptr->next) - number++; - - table_sec->size = number * 4; - - if (number == 0) - return; - - elf_elfheader (link_info->output_bfd)->e_flags |= E_NDS32_HAS_EX9_INST; - number = 0; - for (ptr = ex9_insn_head; ptr !=NULL ; ptr = ptr->next) - { - long val; - - val = strtol (ptr->string, NULL, 16); - bfd_putb32 ((bfd_vma) val, (char *) contents + (number * 4)); - number++; - } - break; - } - } -} - -/* Get insn with regs according to relocation type. */ - -static void -nds32_elf_get_insn_with_reg (Elf_Internal_Rela *irel, - uint32_t insn, uint32_t *insn_with_reg) -{ - reloc_howto_type *howto = NULL; - - if (irel == NULL - || (ELF32_R_TYPE (irel->r_info) >= (int) ARRAY_SIZE (nds32_elf_howto_table) - && (ELF32_R_TYPE (irel->r_info) - R_NDS32_RELAX_ENTRY) - >= (int) ARRAY_SIZE (nds32_elf_relax_howto_table))) - { - *insn_with_reg = insn; - return; - } - - howto = bfd_elf32_bfd_reloc_type_table_lookup (ELF32_R_TYPE (irel->r_info)); - *insn_with_reg = insn & (0xffffffff ^ howto->dst_mask); -} - -/* Mask number of address bits according to relocation. */ - -static unsigned long -nds32_elf_irel_mask (Elf_Internal_Rela *irel) -{ - reloc_howto_type *howto = NULL; - - if (irel == NULL - || (ELF32_R_TYPE (irel->r_info) >= (int) ARRAY_SIZE (nds32_elf_howto_table) - && (ELF32_R_TYPE (irel->r_info) - R_NDS32_RELAX_ENTRY) - >= (int) ARRAY_SIZE (nds32_elf_relax_howto_table))) - return 0; - - howto = bfd_elf32_bfd_reloc_type_table_lookup (ELF32_R_TYPE (irel->r_info)); - return howto->dst_mask; -} - -static void -nds32_elf_insert_irel_entry (struct elf_nds32_irel_entry **irel_list, - struct elf_nds32_irel_entry *irel_ptr) -{ - if (*irel_list == NULL) - { - *irel_list = irel_ptr; - irel_ptr->next = NULL; - } - else - { - irel_ptr->next = *irel_list; - *irel_list = irel_ptr; - } -} - -static void -nds32_elf_ex9_insert_fix (asection * sec, Elf_Internal_Rela * irel, - struct elf_link_hash_entry *h, int order) -{ - struct elf_nds32_ex9_refix *ptr; - - ptr = bfd_malloc (sizeof (struct elf_nds32_ex9_refix)); - ptr->sec = sec; - ptr->irel = irel; - ptr->h = h; - ptr->order = order; - ptr->next = NULL; - - if (ex9_refix_head == NULL) - ex9_refix_head = ptr; - else - { - struct elf_nds32_ex9_refix *temp = ex9_refix_head; - - while (temp->next != NULL) - temp = temp->next; - temp->next = ptr; - } -} - -enum -{ - DATA_EXIST = 1, - CLEAN_PRE = 1 << 1, - PUSH_PRE = 1 << 2 -}; - -/* Check relocation type if supporting for ex9. */ - -static int -nds32_elf_ex9_relocation_check (struct bfd_link_info *info, - Elf_Internal_Rela **irel, - Elf_Internal_Rela *irelend, - nds32_elf_blank_t *relax_blank_list, - asection *sec,bfd_vma *off, - bfd_byte *contents) -{ - /* Suppress ex9 if `.no_relax ex9' or inner loop. */ - bfd_boolean nested_ex9, nested_loop; - bfd_boolean ex9_loop_aware; - /* We use the highest 1 byte of result to record - how many bytes location counter has to move. */ - int result = 0; - Elf_Internal_Rela *irel_save = NULL; - struct elf_nds32_link_hash_table *table; - - table = nds32_elf_hash_table (info); - ex9_loop_aware = table->ex9_loop_aware; - - while ((*irel) != NULL && (*irel) < irelend && *off == (*irel)->r_offset) - { - switch (ELF32_R_TYPE ((*irel)->r_info)) - { - case R_NDS32_RELAX_REGION_BEGIN: - /* Ignore code block. */ - nested_ex9 = FALSE; - nested_loop = FALSE; - if (((*irel)->r_addend & R_NDS32_RELAX_REGION_NO_EX9_FLAG) - || (ex9_loop_aware - && ((*irel)->r_addend & R_NDS32_RELAX_REGION_INNERMOST_LOOP_FLAG))) - { - /* Check the region if loop or not. If it is true and - ex9-loop-aware is true, ignore the region till region end. */ - /* To save the status for in .no_relax ex9 region and - loop region to conform the block can do ex9 relaxation. */ - nested_ex9 = ((*irel)->r_addend & R_NDS32_RELAX_REGION_NO_EX9_FLAG); - nested_loop = (ex9_loop_aware - && ((*irel)->r_addend & R_NDS32_RELAX_REGION_INNERMOST_LOOP_FLAG)); - while ((*irel) && (*irel) < irelend && (nested_ex9 || nested_loop)) - { - (*irel)++; - if (ELF32_R_TYPE ((*irel)->r_info) == R_NDS32_RELAX_REGION_BEGIN) - { - /* There may be nested region. */ - if (((*irel)->r_addend & R_NDS32_RELAX_REGION_NO_EX9_FLAG) != 0) - nested_ex9 = TRUE; - else if (ex9_loop_aware - && ((*irel)->r_addend & R_NDS32_RELAX_REGION_INNERMOST_LOOP_FLAG)) - nested_loop = TRUE; - } - else if (ELF32_R_TYPE ((*irel)->r_info) == R_NDS32_RELAX_REGION_END) - { - /* The end of region. */ - if (((*irel)->r_addend & R_NDS32_RELAX_REGION_NO_EX9_FLAG) != 0) - nested_ex9 = FALSE; - else if (ex9_loop_aware - && ((*irel)->r_addend & R_NDS32_RELAX_REGION_INNERMOST_LOOP_FLAG)) - nested_loop = FALSE; - } - else if (ELF32_R_TYPE ((*irel)->r_info) == R_NDS32_LABEL - && ((*irel)->r_addend & 0x1f) == 2) - { - /* Alignment exist in the region. */ - result |= CLEAN_PRE; - if (((*irel)->r_offset - - get_nds32_elf_blank_total (&relax_blank_list, - (*irel)->r_offset, 0)) & 0x02) - result |= PUSH_PRE; - } - } - if ((*irel) >= irelend) - *off = sec->size; - else - *off = (*irel)->r_offset; - - /* The final instruction in the region, regard this one as data to ignore it. */ - result |= DATA_EXIST; - return result; - } - break; - - case R_NDS32_LABEL: - if (((*irel)->r_addend & 0x1f) == 2) - { - /* Check this point is align and decide to do ex9 or not. */ - result |= CLEAN_PRE; - if (((*irel)->r_offset - - get_nds32_elf_blank_total (&relax_blank_list, - (*irel)->r_offset, 0)) & 0x02) - result |= PUSH_PRE; - } - break; - case R_NDS32_32_RELA: - /* Data. */ - result |= (4 << 24); - result |= DATA_EXIST; - break; - case R_NDS32_16_RELA: - /* Data. */ - result |= (2 << 24); - result |= DATA_EXIST; - break; - case R_NDS32_DATA: - /* Data. */ - /* The least code alignment is 2. If the data is only one byte, - we have to shift one more byte. */ - if ((*irel)->r_addend == 1) - result |= ((*irel)->r_addend << 25) ; - else - result |= ((*irel)->r_addend << 24) ; - - result |= DATA_EXIST; - break; - - case R_NDS32_25_PCREL_RELA: - case R_NDS32_SDA16S3_RELA: - case R_NDS32_SDA15S3_RELA: - case R_NDS32_SDA15S3: - case R_NDS32_SDA17S2_RELA: - case R_NDS32_SDA15S2_RELA: - case R_NDS32_SDA12S2_SP_RELA: - case R_NDS32_SDA12S2_DP_RELA: - case R_NDS32_SDA15S2: - case R_NDS32_SDA18S1_RELA: - case R_NDS32_SDA15S1_RELA: - case R_NDS32_SDA15S1: - case R_NDS32_SDA19S0_RELA: - case R_NDS32_SDA15S0_RELA: - case R_NDS32_SDA15S0: - case R_NDS32_HI20_RELA: - case R_NDS32_LO12S0_ORI_RELA: - case R_NDS32_LO12S0_RELA: - case R_NDS32_LO12S1_RELA: - case R_NDS32_LO12S2_RELA: - /* These relocation is supported ex9 relaxation currently. */ - /* We have to save the relocation for using later, since we have - to check there is any alignment in the same address. */ - irel_save = *irel; - break; - default: - /* Not support relocations. */ - if (ELF32_R_TYPE ((*irel)->r_info) < ARRAY_SIZE (nds32_elf_howto_table) - && ELF32_R_TYPE ((*irel)->r_info) != R_NDS32_NONE - && ELF32_R_TYPE ((*irel)->r_info) != R_NDS32_INSN16) - { - /* Note: To optimize aggressively, it maybe can ignore R_NDS32_INSN16 here. - But we have to consider if there is any side-effect. */ - if (!(result & DATA_EXIST)) - { - /* We have to confirm there is no data relocation in the - same address. In general case, this won't happen. */ - /* We have to do ex9 conservative, for those relocation not - considerd we ignore instruction. */ - result |= DATA_EXIST; - if (*(contents + *off) & 0x80) - result |= (2 << 24); - else - result |= (4 << 24); - break; - } - } - } - if ((*irel) < irelend - && ((*irel) + 1) < irelend - && (*irel)->r_offset == ((*irel) + 1)->r_offset) - /* There are relocations pointing to the same address, we have to - check all of them. */ - (*irel)++; - else - { - if (irel_save) - *irel = irel_save; - return result; - } - } - return result; -} - -/* Replace with ex9 instruction. */ - -static bfd_boolean -nds32_elf_ex9_push_insn (uint16_t insn16, bfd_byte *contents, bfd_vma pre_off, - nds32_elf_blank_t **relax_blank_list, - struct elf_nds32_irel_entry *pre_irel_ptr, - struct elf_nds32_irel_entry **irel_list) -{ - if (insn16 != 0) - { - /* Implement the ex9 relaxation. */ - bfd_putb16 (insn16, contents + pre_off); - if (!insert_nds32_elf_blank_recalc_total (relax_blank_list, - pre_off + 2, 2)) - return FALSE; - if (pre_irel_ptr != NULL) - nds32_elf_insert_irel_entry (irel_list, pre_irel_ptr); - } - return TRUE; -} - -/* Replace input file instruction which is in ex9 itable. */ - -static bfd_boolean -nds32_elf_ex9_replace_instruction (struct bfd_link_info *info, bfd *abfd, asection *sec) -{ - struct elf_nds32_insn_times_entry *ex9_insn = ex9_insn_head; - bfd_byte *contents = NULL; - bfd_vma off; - uint16_t insn16, insn_ex9; - /* `pre_*' are used to track previous instruction that can use ex9.it. */ - bfd_vma pre_off = -1; - uint16_t pre_insn16 = 0; - struct elf_nds32_irel_entry *pre_irel_ptr = NULL; - Elf_Internal_Rela *internal_relocs; - Elf_Internal_Rela *irel; - Elf_Internal_Rela *irelend; - Elf_Internal_Shdr *symtab_hdr; - Elf_Internal_Sym *isym = NULL; - nds32_elf_blank_t *relax_blank_list = NULL; - uint32_t insn = 0; - uint32_t insn_with_reg = 0; - uint32_t it_insn; - uint32_t it_insn_with_reg; - unsigned long r_symndx; - asection *isec; - struct elf_nds32_irel_entry *irel_list = NULL; - struct elf_link_hash_entry **sym_hashes = elf_sym_hashes (abfd); - int data_flag, do_replace, save_irel; - struct elf_link_hash_entry_list *h_list; - - - /* Load section instructions, relocations, and symbol table. */ - if (!nds32_get_section_contents (abfd, sec, &contents, TRUE) - || !nds32_get_local_syms (abfd, sec, &isym)) - return FALSE; - internal_relocs = - _bfd_elf_link_read_relocs (abfd, sec, NULL, NULL, TRUE /* keep_memory */); - irelend = internal_relocs + sec->reloc_count; - symtab_hdr = &elf_tdata (abfd)->symtab_hdr; - - off = 0; - - /* Check if the object enable ex9. */ - irel = find_relocs_at_address (internal_relocs, internal_relocs, - irelend, R_NDS32_RELAX_ENTRY); - - /* Check this section trigger ex9 relaxation. */ - if (irel == NULL - || irel >= irelend - || ELF32_R_TYPE (irel->r_info) != R_NDS32_RELAX_ENTRY - || (ELF32_R_TYPE (irel->r_info) == R_NDS32_RELAX_ENTRY - && !(irel->r_addend & R_NDS32_RELAX_ENTRY_EX9_FLAG))) - return TRUE; - - irel = internal_relocs; - - /* Check alignment and fetch proper relocation. */ - while (off < sec->size) - { - struct elf_link_hash_entry *h = NULL; - struct elf_nds32_irel_entry *irel_ptr = NULL; - - /* Syn the instruction and the relocation. */ - while (irel != NULL && irel < irelend && irel->r_offset < off) - irel++; - - data_flag = nds32_elf_ex9_relocation_check (info, &irel, irelend, - relax_blank_list, sec, - &off, contents); - if (data_flag & PUSH_PRE) - if (!nds32_elf_ex9_push_insn (pre_insn16, contents, pre_off, - &relax_blank_list, pre_irel_ptr, - &irel_list)) - return FALSE; - - if (data_flag & CLEAN_PRE) - { - pre_off = 0; - pre_insn16 = 0; - pre_irel_ptr = NULL; - } - if (data_flag & DATA_EXIST) - { - /* We save the move offset in the highest byte. */ - off += (data_flag >> 24); - continue; - } - - if (*(contents + off) & 0x80) - { - /* 2-byte instruction. */ - off += 2; - continue; - } - - /* Load the instruction and its opcode with register for comparing. */ - ex9_insn = ex9_insn_head; - insn = bfd_getb32 (contents + off); - insn_with_reg = 0; - while (ex9_insn) - { - it_insn = strtol (ex9_insn->string, NULL, 16); - it_insn_with_reg = 0; - do_replace = 0; - save_irel = 0; - - if (irel != NULL && irel < irelend && irel->r_offset == off) - { - /* Insn with relocation. */ - nds32_elf_get_insn_with_reg (irel, insn, &insn_with_reg); - - if (ex9_insn->irel != NULL) - nds32_elf_get_insn_with_reg (ex9_insn->irel, it_insn, - &it_insn_with_reg); - - if (ex9_insn->irel != NULL - && (ELF32_R_TYPE (irel->r_info) == - ELF32_R_TYPE (ex9_insn->irel->r_info)) - && (insn_with_reg == it_insn_with_reg)) - { - /* Insn relocation and format is the same as table entry. */ - - if (ELF32_R_TYPE (irel->r_info) == R_NDS32_25_PCREL_RELA - || ELF32_R_TYPE (irel->r_info) == R_NDS32_LO12S0_ORI_RELA - || ELF32_R_TYPE (irel->r_info) == R_NDS32_LO12S0_RELA - || ELF32_R_TYPE (irel->r_info) == R_NDS32_LO12S1_RELA - || ELF32_R_TYPE (irel->r_info) == R_NDS32_LO12S2_RELA - || (ELF32_R_TYPE (irel->r_info) >= R_NDS32_SDA15S3 - && ELF32_R_TYPE (irel->r_info) <= R_NDS32_SDA15S0) - || (ELF32_R_TYPE (irel->r_info) >= R_NDS32_SDA15S3_RELA - && ELF32_R_TYPE (irel->r_info) <= R_NDS32_SDA15S0_RELA) - || (ELF32_R_TYPE (irel->r_info) >= R_NDS32_SDA12S2_DP_RELA - && ELF32_R_TYPE (irel->r_info) <= - R_NDS32_SDA12S2_SP_RELA) - || (ELF32_R_TYPE (irel->r_info) >= R_NDS32_SDA16S3_RELA - && ELF32_R_TYPE (irel->r_info) <= R_NDS32_SDA19S0_RELA)) - { - r_symndx = ELF32_R_SYM (irel->r_info); - if (r_symndx < symtab_hdr->sh_info) - { - /* Local symbol. */ - int shndx = isym[r_symndx].st_shndx; - - isec = elf_elfsections (abfd)[shndx]->bfd_section; - if (ex9_insn->sec == isec - && ex9_insn->irel->r_addend == irel->r_addend - && ex9_insn->irel->r_info == irel->r_info) - { - do_replace = 1; - save_irel = 1; - } - } - else - { - /* External symbol. */ - h = sym_hashes[r_symndx - symtab_hdr->sh_info]; - if (ex9_insn->m_list) - { - h_list = ex9_insn->m_list->h_list; - while (h_list) - { - if (h == h_list->h - && (ex9_insn->m_list->irel->r_addend == - irel->r_addend)) - { - do_replace = 1; - save_irel = 1; - break; - } - h_list = h_list->next; - } - } - } - } - else if (ELF32_R_TYPE (irel->r_info) == R_NDS32_HI20_RELA) - { - r_symndx = ELF32_R_SYM (irel->r_info); - if (r_symndx < symtab_hdr->sh_info) - { - /* Local symbols. Compare its base symbol and offset. */ - int shndx = isym[r_symndx].st_shndx; - - isec = elf_elfsections (abfd)[shndx]->bfd_section; - if (ex9_insn->sec == isec - && ex9_insn->irel->r_addend == irel->r_addend - && ex9_insn->irel->r_info == irel->r_info) - { - do_replace = 1; - save_irel = 1; - } - } - else - { - /* External symbol. */ - struct elf_link_hash_entry_mul_list *m_list; - - h = sym_hashes[r_symndx - symtab_hdr->sh_info]; - m_list = ex9_insn->m_list; - - while (m_list) - { - h_list = m_list->h_list; - - while (h_list) - { - if (h == h_list->h - && (m_list->irel->r_addend - == irel->r_addend)) - { - do_replace = 1; - save_irel = 1; - if (ex9_insn->next - && ex9_insn->m_list - && ex9_insn->m_list == ex9_insn->next->m_list) - { - /* sethi multiple entry must be fixed */ - nds32_elf_ex9_insert_fix (sec, irel, - h, ex9_insn->order); - } - break; - } - h_list = h_list->next; - } - m_list = m_list->next; - } - } - } - } - - /* Import table: Check the symbol hash table and the - jump target. Only R_NDS32_25_PCREL_RELA now. */ - else if (ex9_insn->times == -1 - && ELF32_R_TYPE (irel->r_info) == R_NDS32_25_PCREL_RELA) - { - nds32_elf_get_insn_with_reg (irel, it_insn, &it_insn_with_reg); - if (insn_with_reg == it_insn_with_reg) - { - char code[10]; - bfd_vma relocation; - - r_symndx = ELF32_R_SYM (irel->r_info); - if (r_symndx >= symtab_hdr->sh_info) - { - h = sym_hashes[r_symndx - symtab_hdr->sh_info]; - if ((h->root.type == bfd_link_hash_defined - || h->root.type == bfd_link_hash_defweak) - && h->root.u.def.section != NULL - && h->root.u.def.section->output_section != NULL - && h->root.u.def.section->gc_mark == 1 - && bfd_is_abs_section (h->root.u.def.section) - && h->root.u.def.value > sec->size) - { - relocation = h->root.u.def.value + - h->root.u.def.section->output_section->vma + - h->root.u.def.section->output_offset; - relocation += irel->r_addend; - insn = insn_with_reg - | ((relocation >> 1) & 0xffffff); - snprintf (code, sizeof (code), "%08x", insn); - if (strcmp (code, ex9_insn->string) == 0) - { - do_replace = 1; - save_irel = 1; - } - } - } - } - } - else if (ELF32_R_TYPE (irel->r_info) == R_NDS32_RELAX_REGION_BEGIN - || ELF32_R_TYPE (irel->r_info) == R_NDS32_RELAX_REGION_END - || ELF32_R_TYPE (irel->r_info) == R_NDS32_NONE) - { - /* These relocations do not have to relocate contens, so it can - be regard as instruction without relocation. */ - if (insn == it_insn && ex9_insn->irel == NULL) - do_replace = 1; - } - } - else - { - /* Instruction without relocation, we only - have to compare their byte code. */ - if (insn == it_insn && ex9_insn->irel == NULL) - do_replace = 1; - } - - /* Insntruction match so replacing the code here. */ - if (do_replace == 1) - { - /* There are two formats of ex9 instruction. */ - if (ex9_insn->order < 32) - insn_ex9 = INSN_EX9_IT_2; - else - insn_ex9 = INSN_EX9_IT_1; - insn16 = insn_ex9 | ex9_insn->order; - - /* Insert ex9 instruction. */ - nds32_elf_ex9_push_insn (pre_insn16, contents, pre_off, - &relax_blank_list, pre_irel_ptr, - &irel_list); - pre_off = off; - pre_insn16 = insn16; - - if (save_irel) - { - /* For instuction with relocation do relax. */ - irel_ptr = (struct elf_nds32_irel_entry *) - bfd_malloc (sizeof (struct elf_nds32_irel_entry)); - irel_ptr->irel = irel; - irel_ptr->next = NULL; - pre_irel_ptr = irel_ptr; - } - else - pre_irel_ptr = NULL; - break; - } - ex9_insn = ex9_insn->next; - } - off += 4; - } - - /* Insert ex9 instruction. */ - nds32_elf_ex9_push_insn (pre_insn16, contents, pre_off, - &relax_blank_list, pre_irel_ptr, - &irel_list); - - /* Delete the redundant code. */ - if (relax_blank_list) - { - nds32_elf_relax_delete_blanks (abfd, sec, relax_blank_list); - relax_blank_list = NULL; - } - - /* Clear the relocation that is replaced by ex9. */ - while (irel_list) - { - struct elf_nds32_irel_entry *irel_ptr; - - irel_ptr = irel_list; - irel_list = irel_ptr->next; - irel_ptr->irel->r_info = - ELF32_R_INFO (ELF32_R_SYM (irel_ptr->irel->r_info), R_NDS32_TRAN); - free (irel_ptr); - } - return TRUE; -} - -/* Initialize ex9 hash table. */ - -int -nds32_elf_ex9_init (void) -{ - if (!bfd_hash_table_init_n (&ex9_code_table, nds32_elf_code_hash_newfunc, - sizeof (struct elf_nds32_code_hash_entry), - 1023)) - { - _bfd_error_handler (_("Linker: cannot init ex9 hash table error \n")); - return FALSE; - } - return TRUE; -} - -/* Predict how many bytes will be relaxed with ex9 and ifc. */ - -static void -nds32_elf_ex9_total_relax (struct bfd_link_info *info) -{ - struct elf_nds32_insn_times_entry *ex9_insn; - struct elf_nds32_insn_times_entry *temp; - int target_optimize; - struct elf_nds32_link_hash_table *table; - - if (ex9_insn_head == NULL) - return; - - table = nds32_elf_hash_table (info); - target_optimize = table->target_optimize; - ex9_insn = ex9_insn_head; - while (ex9_insn) - { - ex9_relax_size = ex9_insn->times * 2 + ex9_relax_size; - temp = ex9_insn; - ex9_insn = ex9_insn->next; - free (temp); - } - ex9_insn_head = NULL; - - if ((target_optimize & NDS32_RELAX_JUMP_IFC_ON)) - { - /* Examine ifc reduce size. */ - struct elf_nds32_ifc_symbol_entry *ifc_ent = ifc_symbol_head; - struct elf_nds32_ifc_irel_list *irel_ptr = NULL; - int size = 0; - - while (ifc_ent) - { - if (ifc_ent->enable == 0) - { - /* Not ifc yet. */ - irel_ptr = ifc_ent->irel_head; - while (irel_ptr) - { - size += 2; - irel_ptr = irel_ptr->next; - } - } - size -= 2; - ifc_ent = ifc_ent->next; - } - ex9_relax_size += size; - } -} - -/* Finish ex9 table. */ - -void -nds32_elf_ex9_finish (struct bfd_link_info *link_info) -{ - nds32_elf_code_hash_traverse (nds32_elf_examine_insn_times); - nds32_elf_order_insn_times (link_info); - nds32_elf_ex9_total_relax (link_info); - /* Traverse the hash table and count its times. */ - nds32_elf_code_hash_traverse (nds32_elf_count_insn_times); - nds32_elf_order_insn_times (link_info); - nds32_elf_ex9_build_itable (link_info); -} - -/* Relocate the entries in ex9 table. */ - -static bfd_vma -nds32_elf_ex9_reloc_insn (struct elf_nds32_insn_times_entry *ptr, - struct bfd_link_info *link_info) -{ - Elf_Internal_Sym *isym = NULL; - bfd_vma relocation = -1; - struct elf_link_hash_entry *h; - - if (ptr->m_list != NULL) - { - /* Global symbol. */ - h = ptr->m_list->h_list->h; - if ((h->root.type == bfd_link_hash_defined - || h->root.type == bfd_link_hash_defweak) - && h->root.u.def.section != NULL - && h->root.u.def.section->output_section != NULL) - { - - relocation = h->root.u.def.value + - h->root.u.def.section->output_section->vma + - h->root.u.def.section->output_offset; - relocation += ptr->m_list->irel->r_addend; - } - else - relocation = 0; - } - else if (ptr->sec !=NULL) - { - /* Local symbol. */ - Elf_Internal_Sym sym; - asection *sec = NULL; - asection isec; - asection *isec_ptr = &isec; - Elf_Internal_Rela irel_backup = *(ptr->irel); - asection *sec_backup = ptr->sec; - bfd *abfd = ptr->sec->owner; - - if (!nds32_get_local_syms (abfd, sec, &isym)) - return FALSE; - isym = isym + ELF32_R_SYM (ptr->irel->r_info); - - sec = bfd_section_from_elf_index (abfd, isym->st_shndx); - if (sec != NULL) - *isec_ptr = *sec; - sym = *isym; - - /* The purpose is same as elf_link_input_bfd. */ - if (isec_ptr != NULL - && isec_ptr->sec_info_type == SEC_INFO_TYPE_MERGE - && ELF_ST_TYPE (isym->st_info) != STT_SECTION) - { - sym.st_value = - _bfd_merged_section_offset (ptr->sec->output_section->owner, &isec_ptr, - elf_section_data (isec_ptr)->sec_info, - isym->st_value); - } - relocation = _bfd_elf_rela_local_sym (link_info->output_bfd, &sym, - &ptr->sec, ptr->irel); - if (ptr->irel != NULL) - relocation += ptr->irel->r_addend; - - /* Restore origin value since there may be some insntructions that - could not be replaced with ex9.it. */ - *(ptr->irel) = irel_backup; - ptr->sec = sec_backup; - } - - return relocation; -} - -/* Import ex9 table and build list. */ - -void -nds32_elf_ex9_import_table (struct bfd_link_info *info) -{ - int num = 0; - bfd_byte *contents; - FILE *ex9_import_file; - int update_ex9_table; - struct elf_nds32_link_hash_table *table; - - table = nds32_elf_hash_table (info); - ex9_import_file = table->ex9_import_file; - rewind (table->ex9_import_file); - - contents = bfd_malloc (sizeof (bfd_byte) * 4); - - /* Read instructions from the input file and build the list. */ - while (!feof (ex9_import_file)) - { - unsigned long insn; - char *code; - struct elf_nds32_insn_times_entry *ptr; - size_t nread; - - nread = fread (contents, sizeof (bfd_byte) * 4, 1, ex9_import_file); - /* Ignore the final byte 0x0a. */ - if (nread < 1) - break; - insn = bfd_getb32 (contents); - code = bfd_malloc (sizeof (char) * 9); - snprintf (code, 9, "%08lx", (insn & 0xffffffff)); - ptr = bfd_malloc (sizeof (struct elf_nds32_insn_times_entry)); - ptr->string = code; - ptr->order = num; - ptr->times = -1; - ptr->sec = NULL; - ptr->m_list = NULL; - ptr->rel_backup.r_offset = 0; - ptr->rel_backup.r_info = 0; - ptr->rel_backup.r_addend = 0; - ptr->irel = NULL; - ptr->next = NULL; - nds32_elf_ex9_insert_entry (ptr); - num++; - } - - update_ex9_table = table->update_ex9_table; - if (update_ex9_table == 1) - { - /* It has to consider of sethi need to use multiple page - but it not be done yet. */ - nds32_elf_code_hash_traverse (nds32_elf_examine_insn_times); - nds32_elf_order_insn_times (info); - } -} - -/* Export ex9 table. */ - -static void -nds32_elf_ex9_export (struct bfd_link_info *info, - bfd_byte *contents, int size) -{ - FILE *ex9_export_file; - struct elf_nds32_link_hash_table *table; - - table = nds32_elf_hash_table (info); - ex9_export_file = table->ex9_export_file; - fwrite (contents, sizeof (bfd_byte), size, ex9_export_file); - fclose (ex9_export_file); -} - -/* Adjust relocations of J and JAL in ex9.itable. - Export ex9 table. */ - -static void -nds32_elf_ex9_reloc_jmp (struct bfd_link_info *link_info) -{ - asection *table_sec = NULL; - struct elf_nds32_insn_times_entry *ex9_insn = ex9_insn_head; - struct elf_nds32_insn_times_entry *temp_ptr, *temp_ptr2; - bfd *it_abfd; - uint32_t insn, insn_with_reg, source_insn; - bfd_byte *contents = NULL, *source_contents = NULL; - int size = 0; - bfd_vma gp; - int shift, update_ex9_table, offset = 0; - reloc_howto_type *howto = NULL; - Elf_Internal_Rela rel_backup; - unsigned short insn_ex9; - struct elf_nds32_link_hash_table *table; - FILE *ex9_export_file; - static bfd_boolean done = FALSE; - - if (done) - return; - - done = TRUE; - - table = nds32_elf_hash_table (link_info); - if (table) - table->relax_status |= NDS32_RELAX_EX9_DONE; - - - update_ex9_table = table->update_ex9_table; - /* Generated ex9.itable exactly. */ - if (update_ex9_table == 0) - { - for (it_abfd = link_info->input_bfds; it_abfd != NULL; - it_abfd = it_abfd->link.next) - { - table_sec = bfd_get_section_by_name (it_abfd, ".ex9.itable"); - if (table_sec != NULL) - break; - } - - if (table_sec != NULL) - { - bfd *output_bfd; - - output_bfd = table_sec->output_section->owner; - nds32_elf_final_sda_base (output_bfd, link_info, &gp, FALSE); - if (table_sec->size == 0) - return; - - if (!nds32_get_section_contents (it_abfd, table_sec, &contents, TRUE)) - return; - } - } - else - { - /* Set gp. */ - bfd *output_bfd; - - output_bfd = link_info->input_bfds->sections->output_section->owner; - nds32_elf_final_sda_base (output_bfd, link_info, &gp, FALSE); - contents = bfd_malloc (sizeof (bfd_byte) * 2048); - } - - /* Relocate instruction. */ - while (ex9_insn) - { - bfd_vma relocation, min_relocation = 0xffffffff; - - insn = strtol (ex9_insn->string, NULL, 16); - insn_with_reg = 0; - if (ex9_insn->m_list != NULL || ex9_insn->sec != NULL) - { - if (ex9_insn->m_list) - rel_backup = ex9_insn->m_list->rel_backup; - else - rel_backup = ex9_insn->rel_backup; - - nds32_elf_get_insn_with_reg (&rel_backup, insn, &insn_with_reg); - howto = - bfd_elf32_bfd_reloc_type_table_lookup (ELF32_R_TYPE - (rel_backup.r_info)); - shift = howto->rightshift; - if (ELF32_R_TYPE (rel_backup.r_info) == R_NDS32_25_PCREL_RELA - || ELF32_R_TYPE (rel_backup.r_info) == R_NDS32_LO12S0_ORI_RELA - || ELF32_R_TYPE (rel_backup.r_info) == R_NDS32_LO12S0_RELA - || ELF32_R_TYPE (rel_backup.r_info) == R_NDS32_LO12S1_RELA - || ELF32_R_TYPE (rel_backup.r_info) == R_NDS32_LO12S2_RELA) - { - relocation = nds32_elf_ex9_reloc_insn (ex9_insn, link_info); - insn = - insn_with_reg | ((relocation >> shift) & - nds32_elf_irel_mask (&rel_backup)); - bfd_putb32 (insn, contents + (ex9_insn->order) * 4); - } - else if ((ELF32_R_TYPE (rel_backup.r_info) >= R_NDS32_SDA15S3 - && ELF32_R_TYPE (rel_backup.r_info) <= R_NDS32_SDA15S0) - || (ELF32_R_TYPE (rel_backup.r_info) >= R_NDS32_SDA15S3_RELA - && ELF32_R_TYPE (rel_backup.r_info) <= R_NDS32_SDA15S0_RELA) - || (ELF32_R_TYPE (rel_backup.r_info) >= R_NDS32_SDA12S2_DP_RELA - && ELF32_R_TYPE (rel_backup.r_info) <= R_NDS32_SDA12S2_SP_RELA) - || (ELF32_R_TYPE (rel_backup.r_info) >= R_NDS32_SDA16S3_RELA - && ELF32_R_TYPE (rel_backup.r_info) <= R_NDS32_SDA19S0_RELA)) - { - relocation = nds32_elf_ex9_reloc_insn (ex9_insn, link_info); - insn = - insn_with_reg | (((relocation - gp) >> shift) & - nds32_elf_irel_mask (&rel_backup)); - bfd_putb32 (insn, contents + (ex9_insn->order) * 4); - } - else if (ELF32_R_TYPE (rel_backup.r_info) == R_NDS32_HI20_RELA) - { - /* Sethi may be multiple entry for one insn. */ - if (ex9_insn->next && ex9_insn->m_list - && ex9_insn->m_list == ex9_insn->next->m_list) - { - struct elf_link_hash_entry_mul_list *m_list; - struct elf_nds32_ex9_refix *fix_ptr; - struct elf_link_hash_entry *h; - - temp_ptr = ex9_insn; - temp_ptr2 = ex9_insn; - m_list = ex9_insn->m_list; - while (m_list) - { - h = m_list->h_list->h; - relocation = h->root.u.def.value + - h->root.u.def.section->output_section->vma + - h->root.u.def.section->output_offset; - relocation += m_list->irel->r_addend; - - if (relocation < min_relocation) - min_relocation = relocation; - m_list = m_list->next; - } - relocation = min_relocation; - - /* Put insntruction into ex9 table. */ - insn = insn_with_reg - | ((relocation >> shift) & nds32_elf_irel_mask (&rel_backup)); - bfd_putb32 (insn, contents + (ex9_insn->order) * 4); - relocation = relocation + 0x1000; /* hi20 */ - - while (ex9_insn->next && ex9_insn->m_list - && ex9_insn->m_list == ex9_insn->next->m_list) - { - /* Multiple sethi. */ - ex9_insn = ex9_insn->next; - size += 4; - insn = - insn_with_reg | ((relocation >> shift) & - nds32_elf_irel_mask (&rel_backup)); - bfd_putb32 (insn, contents + (ex9_insn->order) * 4); - relocation = relocation + 0x1000; /* hi20 */ - } - - fix_ptr = ex9_refix_head; - while (fix_ptr) - { - /* Fix ex9 insn. */ - /* temp_ptr2 points to the head of multiple sethi. */ - temp_ptr = temp_ptr2; - while (fix_ptr->order != temp_ptr->order && fix_ptr->next) - { - fix_ptr = fix_ptr->next; - } - if (fix_ptr->order != temp_ptr->order) - break; - - /* Set source insn. */ - relocation = - fix_ptr->h->root.u.def.value + - fix_ptr->h->root.u.def.section->output_section->vma + - fix_ptr->h->root.u.def.section->output_offset; - relocation += fix_ptr->irel->r_addend; - /* sethi imm is imm20s. */ - source_insn = insn_with_reg | ((relocation >> shift) & 0xfffff); - - while (temp_ptr) - { - /* Match entry and source code. */ - insn = bfd_getb32 (contents + (temp_ptr->order) * 4 + offset); - if (insn == source_insn) - { - /* Fix the ex9 insn. */ - if (temp_ptr->order != fix_ptr->order) - { - if (!nds32_get_section_contents - (fix_ptr->sec->owner, fix_ptr->sec, - &source_contents, TRUE)) - _bfd_error_handler - (_("Linker: error cannot fixed ex9 relocation \n")); - if (temp_ptr->order < 32) - insn_ex9 = INSN_EX9_IT_2; - else - insn_ex9 = INSN_EX9_IT_1; - insn_ex9 = insn_ex9 | temp_ptr->order; - bfd_putb16 (insn_ex9, source_contents + fix_ptr->irel->r_offset); - } - break; - } - else - { - if (!temp_ptr->next || temp_ptr->m_list != temp_ptr->next->m_list) - _bfd_error_handler - (_("Linker: error cannot fixed ex9 relocation \n")); - else - temp_ptr = temp_ptr->next; - } - } - fix_ptr = fix_ptr->next; - } - } - else - { - relocation = nds32_elf_ex9_reloc_insn (ex9_insn, link_info); - insn = insn_with_reg - | ((relocation >> shift) & nds32_elf_irel_mask (&rel_backup)); - bfd_putb32 (insn, contents + (ex9_insn->order) * 4); - } - } - } - else - { - /* Insn without relocation does not have to be fixed - if need to update export table. */ - if (update_ex9_table == 1) - bfd_putb32 (insn, contents + (ex9_insn->order) * 4); - } - ex9_insn = ex9_insn->next; - size += 4; - } - - ex9_export_file = table->ex9_export_file; - if (ex9_export_file != NULL) - nds32_elf_ex9_export (link_info, contents, table_sec->size); - else if (update_ex9_table == 1) - { - table->ex9_export_file = table->ex9_import_file; - rewind (table->ex9_export_file); - nds32_elf_ex9_export (link_info, contents, size); - } -} - -/* Generate ex9 hash table. */ - -static bfd_boolean -nds32_elf_ex9_build_hash_table (bfd *abfd, asection *sec, - struct bfd_link_info *link_info) -{ - Elf_Internal_Rela *internal_relocs; - Elf_Internal_Rela *irelend; - Elf_Internal_Rela *irel; - Elf_Internal_Rela *jrel; - Elf_Internal_Rela rel_backup; - Elf_Internal_Shdr *symtab_hdr; - Elf_Internal_Sym *isym = NULL; - asection *isec; - struct elf_link_hash_entry **sym_hashes; - bfd_byte *contents = NULL; - bfd_vma off = 0; - unsigned long r_symndx; - uint32_t insn, insn_with_reg; - struct elf_link_hash_entry *h; - int data_flag, shift, align; - bfd_vma relocation; - /* Suppress ex9 if `.no_relax ex9' or inner loop. */ - reloc_howto_type *howto = NULL; - - sym_hashes = elf_sym_hashes (abfd); - /* Load section instructions, relocations, and symbol table. */ - if (!nds32_get_section_contents (abfd, sec, &contents, TRUE)) - return FALSE; - - internal_relocs = _bfd_elf_link_read_relocs (abfd, sec, NULL, NULL, - TRUE /* keep_memory */); - irelend = internal_relocs + sec->reloc_count; - symtab_hdr = &elf_tdata (abfd)->symtab_hdr; - if (!nds32_get_local_syms (abfd, sec, &isym)) - return FALSE; - - /* Check the object if enable ex9. */ - irel = find_relocs_at_address (internal_relocs, internal_relocs, irelend, - R_NDS32_RELAX_ENTRY); - - /* Check this section trigger ex9 relaxation. */ - if (irel == NULL - || irel >= irelend - || ELF32_R_TYPE (irel->r_info) != R_NDS32_RELAX_ENTRY - || (ELF32_R_TYPE (irel->r_info) == R_NDS32_RELAX_ENTRY - && !(irel->r_addend & R_NDS32_RELAX_ENTRY_EX9_FLAG))) - return TRUE; - - irel = internal_relocs; - - /* Push each insn into hash table. */ - while (off < sec->size) - { - char code[10]; - struct elf_nds32_code_hash_entry *entry; - - while (irel != NULL && irel < irelend && irel->r_offset < off) - irel++; - - data_flag = nds32_elf_ex9_relocation_check (link_info, &irel, irelend, - NULL, sec, &off, contents); - if (data_flag & DATA_EXIST) - { - /* We save the move offset in the highest byte. */ - off += (data_flag >> 24); - continue; - } - - if (*(contents + off) & 0x80) - { - off += 2; - } - else - { - h = NULL; - isec = NULL; - jrel = NULL; - rel_backup.r_info = 0; - rel_backup.r_offset = 0; - rel_backup.r_addend = 0; - /* Load the instruction and its opcode with register for comparing. */ - insn = bfd_getb32 (contents + off); - insn_with_reg = 0; - if (irel != NULL && irel < irelend && irel->r_offset == off) - { - nds32_elf_get_insn_with_reg (irel, insn, &insn_with_reg); - howto = bfd_elf32_bfd_reloc_type_table_lookup (ELF32_R_TYPE (irel->r_info)); - shift = howto->rightshift; - align = (1 << shift) - 1; - if (ELF32_R_TYPE (irel->r_info) == R_NDS32_25_PCREL_RELA - || ELF32_R_TYPE (irel->r_info) == R_NDS32_HI20_RELA - || ELF32_R_TYPE (irel->r_info) == R_NDS32_LO12S0_ORI_RELA - || ELF32_R_TYPE (irel->r_info) == R_NDS32_LO12S0_RELA - || ELF32_R_TYPE (irel->r_info) == R_NDS32_LO12S1_RELA - || ELF32_R_TYPE (irel->r_info) == R_NDS32_LO12S2_RELA - ||(ELF32_R_TYPE (irel->r_info) >= R_NDS32_SDA15S3 - && ELF32_R_TYPE (irel->r_info) <= R_NDS32_SDA15S0) - || (ELF32_R_TYPE (irel->r_info) >= R_NDS32_SDA15S3_RELA - && ELF32_R_TYPE (irel->r_info) <= R_NDS32_SDA15S0_RELA) - || (ELF32_R_TYPE (irel->r_info) >= R_NDS32_SDA12S2_DP_RELA - && ELF32_R_TYPE (irel->r_info) <= R_NDS32_SDA12S2_SP_RELA) - || (ELF32_R_TYPE (irel->r_info) >= R_NDS32_SDA16S3_RELA - && ELF32_R_TYPE (irel->r_info) <= R_NDS32_SDA19S0_RELA)) - { - r_symndx = ELF32_R_SYM (irel->r_info); - jrel = irel; - rel_backup = *irel; - if (r_symndx < symtab_hdr->sh_info) - { - /* Local symbol. */ - int shndx = isym[r_symndx].st_shndx; - - bfd_vma st_value = (isym + r_symndx)->st_value; - isec = elf_elfsections (abfd)[shndx]->bfd_section; - relocation = (isec->output_section->vma + isec->output_offset - + st_value + irel->r_addend); - } - else - { - /* External symbol. */ - bfd_boolean warned ATTRIBUTE_UNUSED; - bfd_boolean ignored ATTRIBUTE_UNUSED; - bfd_boolean unresolved_reloc ATTRIBUTE_UNUSED; - asection *sym_sec; - - /* Maybe there is a better way to get h and relocation */ - RELOC_FOR_GLOBAL_SYMBOL (link_info, abfd, sec, irel, - r_symndx, symtab_hdr, sym_hashes, - h, sym_sec, relocation, - unresolved_reloc, warned, ignored); - relocation += irel->r_addend; - if ((h->root.type != bfd_link_hash_defined - && h->root.type != bfd_link_hash_defweak) - || strcmp (h->root.root.string, "_FP_BASE_") == 0) - { - off += 4; - continue; - } - } - - /* Check for gp relative instruction alignment. */ - if ((ELF32_R_TYPE (irel->r_info) >= R_NDS32_SDA15S3 - && ELF32_R_TYPE (irel->r_info) <= R_NDS32_SDA15S0) - || (ELF32_R_TYPE (irel->r_info) >= R_NDS32_SDA15S3_RELA - && ELF32_R_TYPE (irel->r_info) <= R_NDS32_SDA15S0_RELA) - || (ELF32_R_TYPE (irel->r_info) >= R_NDS32_SDA12S2_DP_RELA - && ELF32_R_TYPE (irel->r_info) <= R_NDS32_SDA12S2_SP_RELA) - || (ELF32_R_TYPE (irel->r_info) >= R_NDS32_SDA16S3_RELA - && ELF32_R_TYPE (irel->r_info) <= R_NDS32_SDA19S0_RELA)) - { - bfd_vma gp; - bfd *output_bfd = sec->output_section->owner; - bfd_reloc_status_type r; - - /* If the symbol is in the abs section, the out_bfd will be null. - This happens when the relocation has a symbol@GOTOFF. */ - r = nds32_elf_final_sda_base (output_bfd, link_info, &gp, FALSE); - if (r != bfd_reloc_ok) - { - off += 4; - continue; - } - - relocation -= gp; - - /* Make sure alignment is correct. */ - if (relocation & align) - { - /* Incorrect alignment. */ - _bfd_error_handler - /* xgettext:c-format */ - (_("%B: warning: unaligned small data access " - "for entry: {%Ld, %Ld, %Ld}, addr = %#Lx, align = %#x"), - abfd, irel->r_offset, - irel->r_info, irel->r_addend, relocation, align); - off += 4; - continue; - } - } - - insn = insn_with_reg - | ((relocation >> shift) & nds32_elf_irel_mask (irel)); - } - else if (ELF32_R_TYPE (irel->r_info) == R_NDS32_RELAX_REGION_BEGIN - || ELF32_R_TYPE (irel->r_info) == R_NDS32_RELAX_REGION_END - || ELF32_R_TYPE (irel->r_info) == R_NDS32_NONE) - { - /* These relocations do not have to relocate contens, so it can - be regard as instruction without relocation. */ - } - else - { - off += 4; - continue; - } - } - - snprintf (code, sizeof (code), "%08x", insn); - /* Copy "code". */ - entry = (struct elf_nds32_code_hash_entry*) - bfd_hash_lookup (&ex9_code_table, code, TRUE, TRUE); - if (entry == NULL) - { - _bfd_error_handler - (_("failed creating ex9.it %s hash table entry"), code); - return FALSE; - } - if (h) - { - if (h->root.type == bfd_link_hash_undefined) - return TRUE; - /* Global symbol. */ - /* In order to do sethi with different symbol but same value. */ - if (entry->m_list == NULL) - { - struct elf_link_hash_entry_mul_list *m_list_new; - struct elf_link_hash_entry_list *h_list_new; - - m_list_new = (struct elf_link_hash_entry_mul_list *) - bfd_malloc (sizeof (struct elf_link_hash_entry_mul_list)); - h_list_new = (struct elf_link_hash_entry_list *) - bfd_malloc (sizeof (struct elf_link_hash_entry_list)); - entry->m_list = m_list_new; - m_list_new->h_list = h_list_new; - m_list_new->rel_backup = rel_backup; - m_list_new->times = 1; - m_list_new->irel = jrel; - m_list_new->next = NULL; - h_list_new->h = h; - h_list_new->next = NULL; - } - else - { - struct elf_link_hash_entry_mul_list *m_list = entry->m_list; - struct elf_link_hash_entry_list *h_list; - - while (m_list) - { - /* Build the different symbols that point to the same address. */ - h_list = m_list->h_list; - if (h_list->h->root.u.def.value == h->root.u.def.value - && h_list->h->root.u.def.section->output_section->vma - == h->root.u.def.section->output_section->vma - && h_list->h->root.u.def.section->output_offset - == h->root.u.def.section->output_offset - && m_list->rel_backup.r_addend == rel_backup.r_addend) - { - m_list->times++; - m_list->irel = jrel; - while (h_list->h != h && h_list->next) - h_list = h_list->next; - if (h_list->h != h) - { - struct elf_link_hash_entry_list *h_list_new; - - h_list_new = (struct elf_link_hash_entry_list *) - bfd_malloc (sizeof (struct elf_link_hash_entry_list)); - h_list->next = h_list_new; - h_list_new->h = h; - h_list_new->next = NULL; - } - break; - } - /* The sethi case may have different address but the - hi20 is the same. */ - else if (ELF32_R_TYPE (jrel->r_info) == R_NDS32_HI20_RELA - && m_list->next == NULL) - { - struct elf_link_hash_entry_mul_list *m_list_new; - struct elf_link_hash_entry_list *h_list_new; - - m_list_new = (struct elf_link_hash_entry_mul_list *) - bfd_malloc (sizeof (struct elf_link_hash_entry_mul_list)); - h_list_new = (struct elf_link_hash_entry_list *) - bfd_malloc (sizeof (struct elf_link_hash_entry_list)); - m_list->next = m_list_new; - m_list_new->h_list = h_list_new; - m_list_new->rel_backup = rel_backup; - m_list_new->times = 1; - m_list_new->irel = jrel; - m_list_new->next = NULL; - h_list_new->h = h; - h_list_new->next = NULL; - break; - } - m_list = m_list->next; - } - if (!m_list) - { - off += 4; - continue; - } - } - } - else - { - /* Local symbol and insn without relocation*/ - entry->times++; - entry->rel_backup = rel_backup; - } - - /* Use in sethi insn with constant and global symbol in same format. */ - if (!jrel) - entry->const_insn = 1; - else - entry->irel = jrel; - entry->sec = isec; - off += 4; - } - } - return TRUE; -} - -/* Set the _ITB_BASE, and point it to ex9 table. */ - -bfd_boolean -nds32_elf_ex9_itb_base (struct bfd_link_info *link_info) -{ - bfd *abfd; - asection *sec; - bfd *output_bfd = NULL; - struct bfd_link_hash_entry *bh = NULL; - - if (is_ITB_BASE_set == 1) - return TRUE; - - is_ITB_BASE_set = 1; - - bh = bfd_link_hash_lookup (link_info->hash, "_ITB_BASE_", FALSE, FALSE, TRUE); - - if (bh && (bh->type == bfd_link_hash_defined - || bh->type == bfd_link_hash_defweak)) - return TRUE; - - for (abfd = link_info->input_bfds; abfd != NULL; - abfd = abfd->link.next) - { - sec = bfd_get_section_by_name (abfd, ".ex9.itable"); - if (sec != NULL) - { - output_bfd = sec->output_section->owner; - break; - } - } - if (output_bfd == NULL) - { - output_bfd = link_info->output_bfd; - if (output_bfd->sections == NULL) - return TRUE; - else - sec = bfd_abs_section_ptr; - } - bh = bfd_link_hash_lookup (link_info->hash, "_ITB_BASE_", - FALSE, FALSE, TRUE); - return (_bfd_generic_link_add_one_symbol - (link_info, output_bfd, "_ITB_BASE_", - BSF_GLOBAL | BSF_WEAK, sec, 0, - (const char *) NULL, FALSE, get_elf_backend_data - (output_bfd)->collect, &bh)); -} /* End EX9.IT */ - #define ELF_ARCH bfd_arch_nds32 #define ELF_MACHINE_CODE EM_NDS32 diff -Nru gdb-8.1/bfd/elf32-nds32.h gdb-8.2/bfd/elf32-nds32.h --- gdb-8.1/bfd/elf32-nds32.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-nds32.h 2018-09-05 07:27:13.000000000 +0000 @@ -46,6 +46,13 @@ #define R_NDS32_RELAX_ENTRY_EX9_FLAG (1 << 2) /* Enable IFC optimization for this section. */ #define R_NDS32_RELAX_ENTRY_IFC_FLAG (1 << 3) +/* Two bits for ICT to comply with files without directive. */ +/* ICT small model. */ +#define R_NDS32_RELAX_ENTRY_ICT_SMALL (0x2 << 4) +/* ICT large model. */ +#define R_NDS32_RELAX_ENTRY_ICT_LARGE (0x3 << 4) +/* Mask for get ict bits. */ +#define R_NDS32_RELAX_ENTRY_ICT_MASK (0x3 << 4) /* Relocation flags for R_NDS32_INSN16. */ diff -Nru gdb-8.1/bfd/elf32-nios2.c gdb-8.2/bfd/elf32-nios2.c --- gdb-8.1/bfd/elf32-nios2.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-nios2.c 2018-09-05 07:27:13.000000000 +0000 @@ -31,6 +31,7 @@ #include "elf/nios2.h" #include "opcode/nios2.h" #include "elf32-nios2.h" +#include "libiberty.h" /* Use RELA relocations. */ #ifndef USE_RELA @@ -1578,10 +1579,8 @@ int i; /* R2 relocations are a superset of R1, so use that for the lookup table. */ - int r1_howto_tbl_size = (int) (sizeof (elf_nios2_r1_howto_table_rel) - / sizeof (elf_nios2_r1_howto_table_rel[0])); - int r2_howto_tbl_size = (int) (sizeof (elf_nios2_r2_howto_table_rel) - / sizeof (elf_nios2_r2_howto_table_rel[0])); + int r1_howto_tbl_size = (int) ARRAY_SIZE (elf_nios2_r1_howto_table_rel); + int r2_howto_tbl_size = (int) ARRAY_SIZE (elf_nios2_r2_howto_table_rel); if (!initialized) { @@ -1597,18 +1596,19 @@ } } - BFD_ASSERT (rtype <= R_NIOS2_ILLEGAL); + if (rtype > R_NIOS2_ILLEGAL) + return NULL; i = elf_code_to_howto_index[rtype]; if (BFD_IS_R2 (abfd)) { if (i >= r2_howto_tbl_size) - return 0; + return NULL; return elf_nios2_r2_howto_table_rel + i; } else { if (i >= r1_howto_tbl_size) - return 0; + return NULL; return elf_nios2_r1_howto_table_rel + i; } } @@ -1620,7 +1620,8 @@ enum elf_nios2_reloc_type elf_val; }; -static const struct elf_reloc_map nios2_reloc_map[] = { +static const struct elf_reloc_map nios2_reloc_map[] = +{ {BFD_RELOC_NONE, R_NIOS2_NONE}, {BFD_RELOC_NIOS2_S16, R_NIOS2_S16}, {BFD_RELOC_NIOS2_U16, R_NIOS2_U16}, @@ -2204,7 +2205,7 @@ if (hsh == NULL) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: cannot create stub entry %s"), + _bfd_error_handler (_("%pB: cannot create stub entry %s"), section->owner, stub_name); return NULL; @@ -2926,7 +2927,7 @@ if (bfd_big_endian (ibfd)) { _bfd_error_handler - (_("error: %B: Big-endian R2 is not supported."), ibfd); + (_("error: %pB: big-endian R2 is not supported"), ibfd); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -2942,7 +2943,7 @@ architectures. */ _bfd_error_handler /* xgettext:c-format */ - (_("error: %B: Conflicting CPU architectures %d/%d"), + (_("error: %pB: conflicting CPU architectures %d/%d"), ibfd, new_flags, old_flags); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -2954,18 +2955,16 @@ return TRUE; } - /* Implement bfd_elf32_bfd_reloc_type_lookup: Given a BFD reloc type, return a howto structure. */ + static reloc_howto_type * nios2_elf32_bfd_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code) { int i; - for (i = 0; - i < (int) (sizeof (nios2_reloc_map) / sizeof (struct elf_reloc_map)); - ++i) + for (i = 0; i < (int) ARRAY_SIZE (nios2_reloc_map); ++i) if (nios2_reloc_map[i].bfd_val == code) return lookup_howto (nios2_reloc_map[i].elf_val, abfd); return NULL; @@ -2973,6 +2972,7 @@ /* Implement bfd_elf32_bfd_reloc_name_lookup: Given a reloc name, return a howto structure. */ + static reloc_howto_type * nios2_elf32_bfd_reloc_name_lookup (bfd *abfd, const char *r_name) @@ -2984,32 +2984,40 @@ if (BFD_IS_R2 (abfd)) { howto_tbl = elf_nios2_r2_howto_table_rel; - howto_tbl_size = (int) (sizeof (elf_nios2_r2_howto_table_rel) - / sizeof (elf_nios2_r2_howto_table_rel[0])); + howto_tbl_size = (int) ARRAY_SIZE (elf_nios2_r2_howto_table_rel); } else { howto_tbl = elf_nios2_r1_howto_table_rel; - howto_tbl_size = (int) (sizeof (elf_nios2_r1_howto_table_rel) - / sizeof (elf_nios2_r1_howto_table_rel[0])); + howto_tbl_size = (int) ARRAY_SIZE (elf_nios2_r1_howto_table_rel); } for (i = 0; i < howto_tbl_size; i++) if (howto_tbl[i].name && strcasecmp (howto_tbl[i].name, r_name) == 0) return howto_tbl + i; + return NULL; } /* Implement elf_info_to_howto: Given a ELF32 relocation, fill in a arelent structure. */ -static void + +static bfd_boolean nios2_elf32_info_to_howto (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { unsigned int r_type; r_type = ELF32_R_TYPE (dst->r_info); - cache_ptr->howto = lookup_howto (r_type, abfd); + if ((cache_ptr->howto = lookup_howto (r_type, abfd)) == NULL) + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + return TRUE; } /* Return the base VMA address which should be subtracted from real addresses @@ -3831,10 +3839,10 @@ if (h) name = h->root.root.string; /* xgettext:c-format */ - format = _("Unable to reach %s (at 0x%08x) from the " + format = _("unable to reach %s (at 0x%08x) from the " "global pointer (at 0x%08x) because the " "offset (%d) is out of the allowed range, " - "-32678 to 32767.\n" ); + "-32678 to 32767\n" ); sprintf (msgbuf, format, name, symbol_address, gp, (signed)relocation); msg = msgbuf; @@ -4355,10 +4363,10 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): %s relocation not " + (_("%pB(%pA+%#" PRIx64 "): %s relocation not " "permitted in shared object"), input_bfd, input_section, - rel->r_offset, howto->name); + (uint64_t) rel->r_offset, howto->name); return FALSE; } else diff -Nru gdb-8.1/bfd/elf32-or1k.c gdb-8.2/bfd/elf32-or1k.c --- gdb-8.1/bfd/elf32-or1k.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-or1k.c 2018-09-05 07:27:13.000000000 +0000 @@ -701,8 +701,8 @@ /* Set the howto pointer for an Or1k ELF reloc. */ -static void -or1k_info_to_howto_rela (bfd * abfd ATTRIBUTE_UNUSED, +static bfd_boolean +or1k_info_to_howto_rela (bfd * abfd, arelent * cache_ptr, Elf_Internal_Rela * dst) { @@ -712,10 +712,13 @@ if (r_type >= (unsigned int) R_OR1K_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid OR1K reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = & or1k_elf_howto_table[r_type]; + return TRUE; } @@ -962,7 +965,8 @@ /* Addend should be zero. */ if (rel->r_addend != 0) _bfd_error_handler - (_("internal error: addend should be zero for R_OR1K_GOT16")); + (_("internal error: addend should be zero for %s"), + "R_OR1K_GOT16"); break; @@ -1049,7 +1053,7 @@ { BFD_FAIL (); _bfd_error_handler - (_("%B: probably compiled without -fPIC?"), + (_("%pB: probably compiled without -fPIC?"), input_bfd); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -1071,7 +1075,7 @@ /* TODO: implement support for local dynamic. */ BFD_FAIL (); _bfd_error_handler - (_("%B: support for local dynamic not implemented"), + (_("%pB: support for local dynamic not implemented"), input_bfd); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -1206,7 +1210,7 @@ be used as linker input. */ BFD_FAIL (); _bfd_error_handler - (_("%B: will not resolve runtime TLS relocation"), + (_("%pB: will not resolve runtime TLS relocation"), input_bfd); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -1526,7 +1530,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: bad relocation section name `%s\'"), + (_("%pB: bad relocation section name `%s\'"), abfd, name); } @@ -2278,7 +2282,7 @@ info->flags |= DF_TEXTREL; info->callbacks->minfo - (_("%B: dynamic relocation against `%T' in read-only section `%A'\n"), + (_("%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"), sec->owner, h->root.root.string, sec); /* Not an error, just cut short the traversal. */ @@ -2638,7 +2642,8 @@ if ((in_flags & EF_OR1K_NODELAY) != (out_flags & EF_OR1K_NODELAY)) { _bfd_error_handler - (_("%B: EF_OR1K_NODELAY flag mismatch with previous modules"), ibfd); + (_("%pB: %s flag mismatch with previous modules"), + ibfd, "EF_OR1K_NODELAY"); bfd_set_error (bfd_error_bad_value); return FALSE; diff -Nru gdb-8.1/bfd/elf32-pj.c gdb-8.2/bfd/elf32-pj.c --- gdb-8.1/bfd/elf32-pj.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-pj.c 2018-09-05 07:27:13.000000000 +0000 @@ -310,8 +310,8 @@ /* Given an ELF reloc, fill in the howto field of a relent. */ -static void -pj_elf_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +pj_elf_info_to_howto (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { @@ -322,13 +322,14 @@ if (r >= R_PJ_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: unrecognised PicoJava reloc number: %d"), + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), abfd, r); bfd_set_error (bfd_error_bad_value); - r = R_PJ_NONE; + return FALSE; } cache_ptr->howto = &pj_elf_howto_table[r]; + return TRUE; } /* Take this moment to fill in the special picoJava bits in the diff -Nru gdb-8.1/bfd/elf32-ppc.c gdb-8.2/bfd/elf32-ppc.c --- gdb-8.1/bfd/elf32-ppc.c 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/bfd/elf32-ppc.c 2018-09-05 07:44:28.000000000 +0000 @@ -68,8 +68,13 @@ /* For new-style .glink and .plt. */ #define GLINK_PLTRESOLVE 16*4 -#define GLINK_ENTRY_SIZE 4*4 -#define TLS_GET_ADDR_GLINK_SIZE 12*4 +#define GLINK_ENTRY_SIZE(htab, h) \ + ((4*4 \ + + (h != NULL \ + && h == htab->tls_get_addr \ + && !htab->params->no_tls_get_addr_opt ? 8*4 : 0) \ + + (1u << htab->params->plt_stub_align) - 1) \ + & -(1u << htab->params->plt_stub_align)) /* VxWorks uses its own plt layout, filled in by the static linker. */ @@ -813,6 +818,35 @@ 0, /* dst_mask */ FALSE), /* pcrel_offset */ + /* Marker relocs on inline plt call instructions. */ + HOWTO (R_PPC_PLTSEQ, + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_PPC_PLTSEQ", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0, /* dst_mask */ + FALSE), /* pcrel_offset */ + + HOWTO (R_PPC_PLTCALL, + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_PPC_PLTCALL", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0, /* dst_mask */ + FALSE), /* pcrel_offset */ + /* Computes the load module index of the load module that contains the definition of its TLS sym. */ HOWTO (R_PPC_DTPMOD32, @@ -2009,7 +2043,7 @@ /* Set the howto pointer for a PowerPC ELF reloc. */ -static void +static bfd_boolean ppc_elf_info_to_howto (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) @@ -2024,24 +2058,27 @@ if (r_type >= R_PPC_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: unrecognised PPC reloc number: %d"), + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), abfd, r_type); bfd_set_error (bfd_error_bad_value); - r_type = R_PPC_NONE; + return FALSE; } + cache_ptr->howto = ppc_elf_howto_table[r_type]; /* Just because the above assert didn't trigger doesn't mean that ELF32_R_TYPE (dst->r_info) is necessarily a valid relocation. */ - if (!cache_ptr->howto) + if (cache_ptr->howto == NULL) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid relocation type %d"), + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), abfd, r_type); bfd_set_error (bfd_error_bad_value); - cache_ptr->howto = ppc_elf_howto_table[R_PPC_NONE]; + return FALSE; } + + return TRUE; } /* Handle the R_PPC_ADDR16_HA and R_PPC_REL16_HA relocs. */ @@ -2368,13 +2405,22 @@ case NT_PRPSINFO: { - char data[128]; + char data[128] ATTRIBUTE_NONSTRING; va_list ap; va_start (ap, note_type); memset (data, 0, sizeof (data)); strncpy (data + 32, va_arg (ap, const char *), 16); + DIAGNOSTIC_PUSH; + /* GCC 8.1 warns about 80 equals destination size with + -Wstringop-truncation: + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85643 + */ +#if GCC_VERSION == 8001 + DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION; +#endif strncpy (data + 48, va_arg (ap, const char *), 80); + DIAGNOSTIC_POP; va_end (ap); return elfcore_write_note (abfd, buf, bufsiz, "CORE", note_type, data, sizeof (data)); @@ -2729,7 +2775,7 @@ continue; /* xgettext:c-format */ - error_message = _("corrupt %s section in %B"); + error_message = _("corrupt %s section in %pB"); length = asec->size; if (length < 20) goto fail; @@ -2749,7 +2795,7 @@ || (bfd_bread (buffer, length, ibfd) != length)) { /* xgettext:c-format */ - error_message = _("unable to read in %s section from %B"); + error_message = _("unable to read in %s section from %pB"); goto fail; } @@ -2791,7 +2837,7 @@ { ibfd = abfd; /* xgettext:c-format */ - error_message = _("warning: unable to set size of %s section in %B"); + error_message = _("warning: unable to set size of %s section in %pB"); } } @@ -2841,7 +2887,7 @@ if (buffer == NULL) { _bfd_error_handler - (_("failed to allocate space for new APUinfo section.")); + (_("failed to allocate space for new APUinfo section")); return; } @@ -2860,10 +2906,10 @@ } if (length != asec->size) - _bfd_error_handler (_("failed to compute new APUinfo section.")); + _bfd_error_handler (_("failed to compute new APUinfo section")); if (! bfd_set_section_contents (abfd, asec, buffer, (file_ptr) 0, length)) - _bfd_error_handler (_("failed to install new APUinfo section.")); + _bfd_error_handler (_("failed to install new APUinfo section")); free (buffer); @@ -2873,9 +2919,9 @@ static bfd_boolean is_nonpic_glink_stub (bfd *abfd, asection *glink, bfd_vma off) { - bfd_byte buf[GLINK_ENTRY_SIZE]; + bfd_byte buf[4 * 4]; - if (!bfd_get_section_contents (abfd, glink, buf, off, GLINK_ENTRY_SIZE)) + if (!bfd_get_section_contents (abfd, glink, buf, off, sizeof buf)) return FALSE; return ((bfd_get_32 (abfd, buf + 0) & 0xffff0000) == LIS_11 @@ -2902,10 +2948,10 @@ asection *plt, *relplt, *dynamic, *glink; bfd_vma glink_vma = 0; bfd_vma resolv_vma = 0; - bfd_vma stub_vma; + bfd_vma stub_off; asymbol *s; arelent *p; - long count, i; + long count, i, stub_delta; size_t size; char *names; bfd_byte buf[4]; @@ -3016,9 +3062,14 @@ /* If the stubs are those for -shared/-pie then we might have multiple stubs for each plt entry. If that is the case then there is no way to associate stubs with their plt entries short - of figuring out the GOT pointer value used in the stub. */ - if (!is_nonpic_glink_stub (abfd, glink, - glink_vma - GLINK_ENTRY_SIZE - glink->vma)) + of figuring out the GOT pointer value used in the stub. + The offsets tested here need to cover all possible values of + GLINK_ENTRY_SIZE for other than __tls_get_addr_opt. */ + stub_off = glink_vma - glink->vma; + for (stub_delta = 16; stub_delta <= 32; stub_delta += 8) + if (is_nonpic_glink_stub (abfd, glink, stub_off - stub_delta)) + break; + if (stub_delta > 32) return 0; slurp_relocs = get_elf_backend_data (abfd)->s->slurp_reloc_table; @@ -3043,13 +3094,16 @@ if (s == NULL) return -1; - stub_vma = glink_vma; + stub_off = glink_vma - glink->vma; names = (char *) (s + count + 1 + (resolv_vma != 0)); p = relplt->relocation + count - 1; for (i = 0; i < count; i++) { size_t len; + stub_off -= stub_delta; + if (strcmp ((*p->sym_ptr_ptr)->name, "__tls_get_addr_opt") == 0) + stub_off -= 32; *s = **p->sym_ptr_ptr; /* Undefined syms won't have BSF_LOCAL or BSF_GLOBAL set. Since we are defining a symbol, ensure one of them is set. */ @@ -3057,10 +3111,7 @@ s->flags |= BSF_GLOBAL; s->flags |= BSF_SYNTHETIC; s->section = glink; - stub_vma -= 16; - if (strcmp ((*p->sym_ptr_ptr)->name, "__tls_get_addr_opt") == 0) - stub_vma -= 32; - s->value = stub_vma - glink->vma; + s->value = stub_off; s->name = names; s->udata.p = NULL; len = strlen ((*p->sym_ptr_ptr)->name); @@ -3213,19 +3264,30 @@ /* Track dynamic relocs copied for this symbol. */ struct elf_dyn_relocs *dyn_relocs; - /* Contexts in which symbol is used in the GOT (or TOC). - TLS_GD .. TLS_TLS bits are or'd into the mask as the - corresponding relocs are encountered during check_relocs. - tls_optimize clears TLS_GD .. TLS_TPREL when optimizing to - indicate the corresponding GOT entry type is not needed. */ -#define TLS_GD 1 /* GD reloc. */ -#define TLS_LD 2 /* LD reloc. */ -#define TLS_TPREL 4 /* TPREL reloc, => IE. */ -#define TLS_DTPREL 8 /* DTPREL reloc, => LD. */ -#define TLS_TLS 16 /* Any TLS reloc. */ -#define TLS_TPRELGD 32 /* TPREL reloc resulting from GD->IE. */ -#define PLT_IFUNC 64 /* STT_GNU_IFUNC. */ - char tls_mask; + /* Contexts in which symbol is used in the GOT. + Bits are or'd into the mask as the corresponding relocs are + encountered during check_relocs, with TLS_TLS being set when any + of the other TLS bits are set. tls_optimize clears bits when + optimizing to indicate the corresponding GOT entry type is not + needed. If set, TLS_TLS is never cleared. tls_optimize may also + set TLS_TPRELGD when a GD reloc turns into a TPREL one. We use a + separate flag rather than setting TPREL just for convenience in + distinguishing the two cases. + These flags are also kept for local symbols. */ +#define TLS_TLS 1 /* Any TLS reloc. */ +#define TLS_GD 2 /* GD reloc. */ +#define TLS_LD 4 /* LD reloc. */ +#define TLS_TPREL 8 /* TPREL reloc, => IE. */ +#define TLS_DTPREL 16 /* DTPREL reloc, => LD. */ +#define TLS_MARK 32 /* __tls_get_addr call marked. */ +#define TLS_TPRELGD 64 /* TPREL reloc resulting from GD->IE. */ + unsigned char tls_mask; + + /* The above field is also used to mark function symbols. In which + case TLS_TLS will be 0. */ +#define PLT_IFUNC 2 /* STT_GNU_IFUNC. */ +#define PLT_KEEP 4 /* inline plt call requires plt entry. */ +#define NON_GOT 256 /* local symbol plt, not stored. */ /* Nonzero if we have seen a small data relocation referring to this symbol. */ @@ -3254,6 +3316,8 @@ elf_linker_section_t sdata[2]; asection *sbss; asection *glink_eh_frame; + asection *pltlocal; + asection *relpltlocal; /* The (unloaded but important) .rela.plt.unloaded on VxWorks. */ asection *srelplt2; @@ -3292,6 +3356,9 @@ /* Set if tls optimization is enabled. */ unsigned int do_tls_opt:1; + /* Set if inline plt calls should be converted to direct calls. */ + unsigned int can_convert_all_inline_plt:1; + /* The size of PLT entries. */ int plt_entry_size; /* The distance between adjacent PLT slots. */ @@ -3312,6 +3379,9 @@ /* Nonzero if this section has a call to __tls_get_addr. */ #define has_tls_get_addr_call sec_flg1 + /* Flag set when PLTCALL relocs are detected. */ +#define has_pltcall sec_flg2 + /* Get the PPC ELF linker hash table from a link_info structure. */ #define ppc_elf_hash_table(p) \ @@ -3355,7 +3425,7 @@ { struct ppc_elf_link_hash_table *ret; static struct ppc_elf_params default_params - = { PLT_OLD, 0, 1, 0, 0, 12, 0, 0, 0 }; + = { PLT_OLD, 0, 0, 1, 0, 0, 12, 0, 0, 0 }; ret = bfd_zmalloc (sizeof (struct ppc_elf_link_hash_table)); if (ret == NULL) @@ -3464,14 +3534,17 @@ struct ppc_elf_link_hash_table *htab = ppc_elf_hash_table (info); asection *s; flagword flags; + int p2align; flags = (SEC_ALLOC | SEC_LOAD | SEC_CODE | SEC_READONLY | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_LINKER_CREATED); s = bfd_make_section_anyway_with_flags (abfd, ".glink", flags); htab->glink = s; + p2align = htab->params->ppc476_workaround ? 6 : 4; + if (p2align < htab->params->plt_stub_align) + p2align = htab->params->plt_stub_align; if (s == NULL - || !bfd_set_section_alignment (abfd, s, - htab->params->ppc476_workaround ? 6 : 4)) + || !bfd_set_section_alignment (abfd, s, p2align)) return FALSE; if (!info->no_ld_generated_unwind_info) @@ -3500,6 +3573,26 @@ || ! bfd_set_section_alignment (abfd, s, 2)) return FALSE; + /* Local plt entries. */ + flags = (SEC_ALLOC | SEC_LOAD + | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_LINKER_CREATED); + htab->pltlocal = bfd_make_section_anyway_with_flags (abfd, ".branch_lt", + flags); + if (htab->pltlocal == NULL + || ! bfd_set_section_alignment (abfd, htab->pltlocal, 2)) + return FALSE; + + if (bfd_link_pic (info)) + { + flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY + | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_LINKER_CREATED); + htab->relpltlocal + = bfd_make_section_anyway_with_flags (abfd, ".rela.branch_lt", flags); + if (htab->relpltlocal == NULL + || ! bfd_set_section_alignment (abfd, htab->relpltlocal, 2)) + return FALSE; + } + if (!ppc_elf_create_linker_section (abfd, info, 0, &htab->sdata[0])) return FALSE; @@ -3708,11 +3801,6 @@ *valp = sym->st_size; } - if (ELF_ST_TYPE (sym->st_info) == STT_GNU_IFUNC - && (abfd->flags & DYNAMIC) == 0 - && bfd_get_flavour (info->output_bfd) == bfd_target_elf_flavour) - elf_tdata (info->output_bfd)->has_gnu_symbols |= elf_gnu_symbol_ifunc; - return TRUE; } @@ -3828,7 +3916,7 @@ { bfd_signed_vma *local_got_refcounts = elf_local_got_refcounts (abfd); struct plt_entry **local_plt; - char *local_got_tls_masks; + unsigned char *local_got_tls_masks; if (local_got_refcounts == NULL) { @@ -3844,9 +3932,9 @@ } local_plt = (struct plt_entry **) (local_got_refcounts + symtab_hdr->sh_info); - local_got_tls_masks = (char *) (local_plt + symtab_hdr->sh_info); - local_got_tls_masks[r_symndx] |= tls_type; - if (tls_type != PLT_IFUNC) + local_got_tls_masks = (unsigned char *) (local_plt + symtab_hdr->sh_info); + local_got_tls_masks[r_symndx] |= tls_type & 0xff; + if ((tls_type & NON_GOT) == 0) local_got_refcounts[r_symndx] += 1; return local_plt + r_symndx; } @@ -3907,12 +3995,23 @@ || r_type == R_PPC_VLE_REL24); } +/* Relocs on inline plt call sequence insns prior to the call. */ + +static bfd_boolean +is_plt_seq_reloc (enum elf_ppc_reloc_type r_type) +{ + return (r_type == R_PPC_PLT16_HA + || r_type == R_PPC_PLT16_HI + || r_type == R_PPC_PLT16_LO + || r_type == R_PPC_PLTSEQ); +} + static void bad_shared_reloc (bfd *abfd, enum elf_ppc_reloc_type r_type) { _bfd_error_handler /* xgettext:c-format */ - (_("%B: relocation %s cannot be used when making a shared object"), + (_("%pB: relocation %s cannot be used when making a shared object"), abfd, ppc_elf_howto_table[r_type]->name); bfd_set_error (bfd_error_bad_value); @@ -3949,7 +4048,7 @@ return TRUE; #ifdef DEBUG - _bfd_error_handler ("ppc_elf_check_relocs called for section %A in %B", + _bfd_error_handler ("ppc_elf_check_relocs called for section %pA in %pB", sec, abfd); #endif @@ -3982,6 +4081,8 @@ struct elf_link_hash_entry *h; int tls_type; struct plt_entry **ifunc; + struct plt_entry **pltent; + bfd_vma addend; r_symndx = ELF32_R_SYM (rel->r_info); if (r_symndx < symtab_hdr->sh_info) @@ -4022,7 +4123,7 @@ { /* Set PLT_IFUNC flag for this sym, no GOT entry yet. */ ifunc = update_local_sym_info (abfd, symtab_hdr, r_symndx, - PLT_IFUNC); + NON_GOT | PLT_IFUNC); if (ifunc == NULL) return FALSE; @@ -4030,15 +4131,20 @@ In a non-pie executable even when there are no plt calls. */ if (!bfd_link_pic (info) - || is_branch_reloc (r_type)) + || is_branch_reloc (r_type) + || r_type == R_PPC_PLT16_LO + || r_type == R_PPC_PLT16_HI + || r_type == R_PPC_PLT16_HA) { - bfd_vma addend = 0; + addend = 0; if (r_type == R_PPC_PLTREL24) - { - ppc_elf_tdata (abfd)->makes_plt_call = 1; - if (bfd_link_pic (info)) - addend = rel->r_addend; - } + ppc_elf_tdata (abfd)->makes_plt_call = 1; + if (bfd_link_pic (info) + && (r_type == R_PPC_PLTREL24 + || r_type == R_PPC_PLT16_LO + || r_type == R_PPC_PLT16_HI + || r_type == R_PPC_PLT16_HA)) + addend = rel->r_addend; if (!update_plt_info (abfd, ifunc, got2, addend)) return FALSE; } @@ -4067,6 +4173,15 @@ case R_PPC_TLSLD: /* These special tls relocs tie a call to __tls_get_addr with its parameter symbol. */ + if (h != NULL) + ppc_elf_hash_entry (h)->tls_mask |= TLS_TLS | TLS_MARK; + else + if (!update_local_sym_info (abfd, symtab_hdr, r_symndx, + NON_GOT | TLS_TLS | TLS_MARK)) + return FALSE; + break; + + case R_PPC_PLTSEQ: break; case R_PPC_GOT_TLSLD16: @@ -4245,45 +4360,46 @@ case R_PPC_PLTREL24: if (h == NULL) break; - /* Fall through */ + ppc_elf_tdata (abfd)->makes_plt_call = 1; + goto pltentry; + + case R_PPC_PLTCALL: + sec->has_pltcall = 1; + /* Fall through. */ + case R_PPC_PLT32: case R_PPC_PLTREL32: case R_PPC_PLT16_LO: case R_PPC_PLT16_HI: case R_PPC_PLT16_HA: + pltentry: #ifdef DEBUG fprintf (stderr, "Reloc requires a PLT entry\n"); #endif /* This symbol requires a procedure linkage table entry. */ if (h == NULL) { - if (ifunc == NULL) - { - /* It does not make sense to have a procedure linkage - table entry for a non-ifunc local symbol. */ - info->callbacks->einfo - /* xgettext:c-format */ - (_("%H: %s reloc against local symbol\n"), - abfd, sec, rel->r_offset, - ppc_elf_howto_table[r_type]->name); - bfd_set_error (bfd_error_bad_value); - return FALSE; - } + pltent = update_local_sym_info (abfd, symtab_hdr, r_symndx, + NON_GOT | PLT_KEEP); + if (pltent == NULL) + return FALSE; } else { - bfd_vma addend = 0; - - if (r_type == R_PPC_PLTREL24) - { - ppc_elf_tdata (abfd)->makes_plt_call = 1; - if (bfd_link_pic (info)) - addend = rel->r_addend; - } + if (r_type != R_PPC_PLTREL24) + ppc_elf_hash_entry (h)->tls_mask |= PLT_KEEP; h->needs_plt = 1; - if (!update_plt_info (abfd, &h->plt.plist, got2, addend)) - return FALSE; + pltent = &h->plt.plist; } + addend = 0; + if (bfd_link_pic (info) + && (r_type == R_PPC_PLTREL24 + || r_type == R_PPC_PLT16_LO + || r_type == R_PPC_PLT16_HI + || r_type == R_PPC_PLT16_HA)) + addend = rel->r_addend; + if (!update_plt_info (abfd, pltent, got2, addend)) + return FALSE; break; /* The following relocations don't need to propagate the @@ -4619,27 +4735,41 @@ ; else if (out_fp == 0) { - out_attr->type = 1; + out_attr->type = ATTR_TYPE_FLAG_INT_VAL; out_attr->i ^= in_fp; } else if (out_fp != 2 && in_fp == 2) - _bfd_error_handler - /* xgettext:c-format */ - (_("Warning: %B uses hard float, %B uses soft float"), obfd, ibfd); + { + _bfd_error_handler + /* xgettext:c-format */ + (_("warning: %pB uses hard float, %pB uses soft float"), + obfd, ibfd); + out_attr->type = ATTR_TYPE_FLAG_INT_VAL | ATTR_TYPE_FLAG_ERROR; + } else if (out_fp == 2 && in_fp != 2) - _bfd_error_handler - /* xgettext:c-format */ - (_("Warning: %B uses hard float, %B uses soft float"), ibfd, obfd); + { + _bfd_error_handler + /* xgettext:c-format */ + (_("warning: %pB uses hard float, %pB uses soft float"), + ibfd, obfd); + out_attr->type = ATTR_TYPE_FLAG_INT_VAL | ATTR_TYPE_FLAG_ERROR; + } else if (out_fp == 1 && in_fp == 3) - _bfd_error_handler - /* xgettext:c-format */ - (_("Warning: %B uses double-precision hard float, " - "%B uses single-precision hard float"), obfd, ibfd); + { + _bfd_error_handler + /* xgettext:c-format */ + (_("warning: %pB uses double-precision hard float, " + "%pB uses single-precision hard float"), obfd, ibfd); + out_attr->type = ATTR_TYPE_FLAG_INT_VAL | ATTR_TYPE_FLAG_ERROR; + } else if (out_fp == 3 && in_fp == 1) - _bfd_error_handler - /* xgettext:c-format */ - (_("Warning: %B uses double-precision hard float, " - "%B uses single-precision hard float"), ibfd, obfd); + { + _bfd_error_handler + /* xgettext:c-format */ + (_("warning: %pB uses double-precision hard float, " + "%pB uses single-precision hard float"), ibfd, obfd); + out_attr->type = ATTR_TYPE_FLAG_INT_VAL | ATTR_TYPE_FLAG_ERROR; + } in_fp = in_attr->i & 0xc; out_fp = out_attr->i & 0xc; @@ -4647,29 +4777,41 @@ ; else if (out_fp == 0) { - out_attr->type = 1; + out_attr->type = ATTR_TYPE_FLAG_INT_VAL; out_attr->i ^= in_fp; } else if (out_fp != 2 * 4 && in_fp == 2 * 4) - _bfd_error_handler - /* xgettext:c-format */ - (_("Warning: %B uses 64-bit long double, " - "%B uses 128-bit long double"), ibfd, obfd); + { + _bfd_error_handler + /* xgettext:c-format */ + (_("warning: %pB uses 64-bit long double, " + "%pB uses 128-bit long double"), ibfd, obfd); + out_attr->type = ATTR_TYPE_FLAG_INT_VAL | ATTR_TYPE_FLAG_ERROR; + } else if (in_fp != 2 * 4 && out_fp == 2 * 4) - _bfd_error_handler - /* xgettext:c-format */ - (_("Warning: %B uses 64-bit long double, " - "%B uses 128-bit long double"), obfd, ibfd); + { + _bfd_error_handler + /* xgettext:c-format */ + (_("warning: %pB uses 64-bit long double, " + "%pB uses 128-bit long double"), obfd, ibfd); + out_attr->type = ATTR_TYPE_FLAG_INT_VAL | ATTR_TYPE_FLAG_ERROR; + } else if (out_fp == 1 * 4 && in_fp == 3 * 4) - _bfd_error_handler - /* xgettext:c-format */ - (_("Warning: %B uses IBM long double, " - "%B uses IEEE long double"), ibfd, obfd); + { + _bfd_error_handler + /* xgettext:c-format */ + (_("warning: %pB uses IBM long double, " + "%pB uses IEEE long double"), obfd, ibfd); + out_attr->type = ATTR_TYPE_FLAG_INT_VAL | ATTR_TYPE_FLAG_ERROR; + } else if (out_fp == 3 * 4 && in_fp == 1 * 4) - _bfd_error_handler - /* xgettext:c-format */ - (_("Warning: %B uses IBM long double, " - "%B uses IEEE long double"), obfd, ibfd); + { + _bfd_error_handler + /* xgettext:c-format */ + (_("warning: %pB uses IBM long double, " + "%pB uses IEEE long double"), ibfd, obfd); + out_attr->type = ATTR_TYPE_FLAG_INT_VAL | ATTR_TYPE_FLAG_ERROR; + } } } @@ -4701,7 +4843,7 @@ ; else if (out_vec == 0) { - out_attr->type = 1; + out_attr->type = ATTR_TYPE_FLAG_INT_VAL; out_attr->i = in_vec; } /* For now, allow generic to transition to AltiVec or SPE @@ -4713,19 +4855,25 @@ ; else if (out_vec == 1) { - out_attr->type = 1; + out_attr->type = ATTR_TYPE_FLAG_INT_VAL; out_attr->i = in_vec; } else if (out_vec < in_vec) - _bfd_error_handler - /* xgettext:c-format */ - (_("Warning: %B uses AltiVec vector ABI, %B uses SPE vector ABI"), - obfd, ibfd); + { + _bfd_error_handler + /* xgettext:c-format */ + (_("warning: %pB uses AltiVec vector ABI, %pB uses SPE vector ABI"), + obfd, ibfd); + out_attr->type = ATTR_TYPE_FLAG_INT_VAL | ATTR_TYPE_FLAG_ERROR; + } else if (out_vec > in_vec) - _bfd_error_handler - /* xgettext:c-format */ - (_("Warning: %B uses AltiVec vector ABI, %B uses SPE vector ABI"), - ibfd, obfd); + { + _bfd_error_handler + /* xgettext:c-format */ + (_("warning: %pB uses AltiVec vector ABI, %pB uses SPE vector ABI"), + ibfd, obfd); + out_attr->type = ATTR_TYPE_FLAG_INT_VAL | ATTR_TYPE_FLAG_ERROR; + } } /* Check for conflicting Tag_GNU_Power_ABI_Struct_Return attributes @@ -4741,25 +4889,29 @@ ; else if (out_struct == 0) { - out_attr->type = 1; + out_attr->type = ATTR_TYPE_FLAG_INT_VAL; out_attr->i = in_struct; } else if (out_struct < in_struct) - _bfd_error_handler - /* xgettext:c-format */ - (_("Warning: %B uses r3/r4 for small structure returns, " - "%B uses memory"), obfd, ibfd); + { + _bfd_error_handler + /* xgettext:c-format */ + (_("warning: %pB uses r3/r4 for small structure returns, " + "%pB uses memory"), obfd, ibfd); + out_attr->type = ATTR_TYPE_FLAG_INT_VAL | ATTR_TYPE_FLAG_ERROR; + } else if (out_struct > in_struct) - _bfd_error_handler - /* xgettext:c-format */ - (_("Warning: %B uses r3/r4 for small structure returns, " - "%B uses memory"), ibfd, obfd); + { + _bfd_error_handler + /* xgettext:c-format */ + (_("warning: %pB uses r3/r4 for small structure returns, " + "%pB uses memory"), ibfd, obfd); + out_attr->type = ATTR_TYPE_FLAG_INT_VAL | ATTR_TYPE_FLAG_ERROR; + } } /* Merge Tag_compatibility attributes and any common GNU ones. */ - _bfd_elf_merge_object_attributes (ibfd, info); - - return TRUE; + return _bfd_elf_merge_object_attributes (ibfd, info); } /* Merge backend specific data from an object file to the output @@ -4807,7 +4959,7 @@ { error = TRUE; _bfd_error_handler - (_("%B: compiled with -mrelocatable and linked with " + (_("%pB: compiled with -mrelocatable and linked with " "modules compiled normally"), ibfd); } else if ((new_flags & (EF_PPC_RELOCATABLE | EF_PPC_RELOCATABLE_LIB)) == 0 @@ -4815,7 +4967,7 @@ { error = TRUE; _bfd_error_handler - (_("%B: compiled normally and linked with " + (_("%pB: compiled normally and linked with " "modules compiled with -mrelocatable"), ibfd); } @@ -4843,7 +4995,7 @@ error = TRUE; _bfd_error_handler /* xgettext:c-format */ - (_("%B: uses different e_flags (%#x) fields " + (_("%pB: uses different e_flags (%#x) fields " "than previous modules (%#x)"), ibfd, new_flags, old_flags); } @@ -4884,7 +5036,7 @@ else _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+0x%lx): expected 16A style relocation on 0x%08x insn"), + (_("%pB(%pA+0x%lx): expected 16A style relocation on 0x%08x insn"), input_bfd, input_section, offset, opcode); } } @@ -4903,7 +5055,7 @@ else _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+0x%lx): expected 16D style relocation on 0x%08x insn"), + (_("%pB(%pA+0x%lx): expected 16D style relocation on 0x%08x insn"), input_bfd, input_section, offset, opcode); } } @@ -4994,10 +5146,9 @@ if (htab->plt_type == PLT_OLD && htab->params->plt_style == PLT_NEW) { if (htab->old_bfd != NULL) - info->callbacks->einfo (_("%P: bss-plt forced due to %B\n"), - htab->old_bfd); + _bfd_error_handler (_("bss-plt forced due to %pB"), htab->old_bfd); else - info->callbacks->einfo (_("%P: bss-plt forced by profiling\n")); + _bfd_error_handler (_("bss-plt forced by profiling")); } BFD_ASSERT (htab->plt_type != PLT_VXWORKS); @@ -5047,7 +5198,229 @@ return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym); } + +static bfd_boolean +get_sym_h (struct elf_link_hash_entry **hp, + Elf_Internal_Sym **symp, + asection **symsecp, + unsigned char **tls_maskp, + Elf_Internal_Sym **locsymsp, + unsigned long r_symndx, + bfd *ibfd) +{ + Elf_Internal_Shdr *symtab_hdr = &elf_symtab_hdr (ibfd); + + if (r_symndx >= symtab_hdr->sh_info) + { + struct elf_link_hash_entry **sym_hashes = elf_sym_hashes (ibfd); + struct elf_link_hash_entry *h; + + h = sym_hashes[r_symndx - symtab_hdr->sh_info]; + 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 (hp != NULL) + *hp = h; + + if (symp != NULL) + *symp = NULL; + + if (symsecp != NULL) + { + asection *symsec = NULL; + if (h->root.type == bfd_link_hash_defined + || h->root.type == bfd_link_hash_defweak) + symsec = h->root.u.def.section; + *symsecp = symsec; + } + + if (tls_maskp != NULL) + *tls_maskp = &ppc_elf_hash_entry (h)->tls_mask; + } + else + { + Elf_Internal_Sym *sym; + Elf_Internal_Sym *locsyms = *locsymsp; + + if (locsyms == NULL) + { + locsyms = (Elf_Internal_Sym *) symtab_hdr->contents; + if (locsyms == NULL) + locsyms = bfd_elf_get_elf_syms (ibfd, symtab_hdr, + symtab_hdr->sh_info, + 0, NULL, NULL, NULL); + if (locsyms == NULL) + return FALSE; + *locsymsp = locsyms; + } + sym = locsyms + r_symndx; + + if (hp != NULL) + *hp = NULL; + + if (symp != NULL) + *symp = sym; + + if (symsecp != NULL) + *symsecp = bfd_section_from_elf_index (ibfd, sym->st_shndx); + + if (tls_maskp != NULL) + { + bfd_signed_vma *local_got; + unsigned char *tls_mask; + + tls_mask = NULL; + local_got = elf_local_got_refcounts (ibfd); + if (local_got != NULL) + { + struct plt_entry **local_plt = (struct plt_entry **) + (local_got + symtab_hdr->sh_info); + unsigned char *lgot_masks = (unsigned char *) + (local_plt + symtab_hdr->sh_info); + tls_mask = &lgot_masks[r_symndx]; + } + *tls_maskp = tls_mask; + } + } + return TRUE; +} +/* Analyze inline PLT call relocations to see whether calls to locally + defined functions can be converted to direct calls. */ + +bfd_boolean +ppc_elf_inline_plt (struct bfd_link_info *info) +{ + struct ppc_elf_link_hash_table *htab; + bfd *ibfd; + asection *sec; + bfd_vma low_vma, high_vma, limit; + + htab = ppc_elf_hash_table (info); + if (htab == NULL) + return FALSE; + + /* A bl insn can reach -0x2000000 to 0x1fffffc. The limit is + reduced somewhat to cater for possible stubs that might be added + between the call and its destination. */ + limit = 0x1e00000; + low_vma = -1; + high_vma = 0; + for (sec = info->output_bfd->sections; sec != NULL; sec = sec->next) + if ((sec->flags & (SEC_ALLOC | SEC_CODE)) == (SEC_ALLOC | SEC_CODE)) + { + if (low_vma > sec->vma) + low_vma = sec->vma; + if (high_vma < sec->vma + sec->size) + high_vma = sec->vma + sec->size; + } + + /* If a "bl" can reach anywhere in local code sections, then we can + convert all inline PLT sequences to direct calls when the symbol + is local. */ + if (high_vma - low_vma < limit) + { + htab->can_convert_all_inline_plt = 1; + return TRUE; + } + + /* Otherwise, go looking through relocs for cases where a direct + call won't reach. Mark the symbol on any such reloc to disable + the optimization and keep the PLT entry as it seems likely that + this will be better than creating trampolines. Note that this + will disable the optimization for all inline PLT calls to a + particular symbol, not just those that won't reach. The + difficulty in doing a more precise optimization is that the + linker needs to make a decision depending on whether a + particular R_PPC_PLTCALL insn can be turned into a direct + call, for each of the R_PPC_PLTSEQ and R_PPC_PLT16* insns in + the sequence, and there is nothing that ties those relocs + together except their symbol. */ + + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) + { + Elf_Internal_Shdr *symtab_hdr; + Elf_Internal_Sym *local_syms; + + if (!is_ppc_elf (ibfd)) + continue; + + local_syms = NULL; + symtab_hdr = &elf_symtab_hdr (ibfd); + + for (sec = ibfd->sections; sec != NULL; sec = sec->next) + if (sec->has_pltcall + && !bfd_is_abs_section (sec->output_section)) + { + Elf_Internal_Rela *relstart, *rel, *relend; + + /* Read the relocations. */ + relstart = _bfd_elf_link_read_relocs (ibfd, sec, NULL, NULL, + info->keep_memory); + if (relstart == NULL) + return FALSE; + + relend = relstart + sec->reloc_count; + for (rel = relstart; rel < relend; ) + { + enum elf_ppc_reloc_type r_type; + unsigned long r_symndx; + asection *sym_sec; + struct elf_link_hash_entry *h; + Elf_Internal_Sym *sym; + unsigned char *tls_maskp; + + r_type = ELF32_R_TYPE (rel->r_info); + if (r_type != R_PPC_PLTCALL) + continue; + + r_symndx = ELF32_R_SYM (rel->r_info); + if (!get_sym_h (&h, &sym, &sym_sec, &tls_maskp, &local_syms, + r_symndx, ibfd)) + { + if (elf_section_data (sec)->relocs != relstart) + free (relstart); + if (local_syms != NULL + && symtab_hdr->contents != (unsigned char *) local_syms) + free (local_syms); + return FALSE; + } + + if (sym_sec != NULL && sym_sec->output_section != NULL) + { + bfd_vma from, to; + if (h != NULL) + to = h->root.u.def.value; + else + to = sym->st_value; + to += (rel->r_addend + + sym_sec->output_offset + + sym_sec->output_section->vma); + from = (rel->r_offset + + sec->output_offset + + sec->output_section->vma); + if (to - from + limit < 2 * limit) + *tls_maskp &= ~PLT_KEEP; + } + } + if (elf_section_data (sec)->relocs != relstart) + free (relstart); + } + + if (local_syms != NULL + && symtab_hdr->contents != (unsigned char *) local_syms) + { + if (!info->keep_memory) + free (local_syms); + else + symtab_hdr->contents = (unsigned char *) local_syms; + } + } + + return TRUE; +} + /* Set plt output section type, htab->tls_get_addr, and call the generic ELF tls_setup function. */ @@ -5175,7 +5548,6 @@ for (pass = 0; pass < 2; ++pass) for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { - Elf_Internal_Sym *locsyms = NULL; Elf_Internal_Shdr *symtab_hdr = &elf_symtab_hdr (ibfd); asection *got2 = bfd_get_section_by_name (ibfd, ".got2"); @@ -5197,8 +5569,8 @@ enum elf_ppc_reloc_type r_type; unsigned long r_symndx; struct elf_link_hash_entry *h = NULL; - char *tls_mask; - char tls_set, tls_clear; + unsigned char *tls_mask; + unsigned char tls_set, tls_clear; bfd_boolean is_local; bfd_signed_vma *got_count; @@ -5294,6 +5666,40 @@ case R_PPC_TLSGD: case R_PPC_TLSLD: + if (rel + 1 < relend + && is_plt_seq_reloc (ELF32_R_TYPE (rel[1].r_info))) + { + if (pass != 0 + && ELF32_R_TYPE (rel[1].r_info) != R_PPC_PLTSEQ) + { + r_type = ELF32_R_TYPE (rel[1].r_info); + r_symndx = ELF32_R_SYM (rel[1].r_info); + if (r_symndx >= symtab_hdr->sh_info) + { + struct elf_link_hash_entry **sym_hashes; + + sym_hashes = elf_sym_hashes (ibfd); + h = sym_hashes[r_symndx - symtab_hdr->sh_info]; + 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 != NULL) + { + struct plt_entry *ent = NULL; + bfd_vma addend = 0; + + if (bfd_link_pic (info)) + addend = rel->r_addend; + ent = find_plt_ent (&h->plt.plist, + got2, addend); + if (ent != NULL + && ent->plt.refcount > 0) + ent->plt.refcount -= 1; + } + } + } + continue; + } expecting_tls_get_addr = 2; tls_set = 0; tls_clear = 0; @@ -5306,8 +5712,7 @@ if (pass == 0) { if (!expecting_tls_get_addr - || (expecting_tls_get_addr == 1 - && !sec->has_tls_get_addr_call)) + || !sec->has_tls_get_addr_call) continue; if (rel + 1 < relend @@ -5327,23 +5732,6 @@ return TRUE; } - if (expecting_tls_get_addr) - { - struct plt_entry *ent; - bfd_vma addend = 0; - - if (bfd_link_pic (info) - && ELF32_R_TYPE (rel[1].r_info) == R_PPC_PLTREL24) - addend = rel[1].r_addend; - ent = find_plt_ent (&htab->tls_get_addr->plt.plist, - got2, addend); - if (ent != NULL && ent->plt.refcount > 0) - ent->plt.refcount -= 1; - - if (expecting_tls_get_addr == 2) - continue; - } - if (h != NULL) { tls_mask = &ppc_elf_hash_entry (h)->tls_mask; @@ -5353,33 +5741,51 @@ { bfd_signed_vma *lgot_refs; struct plt_entry **local_plt; - char *lgot_masks; + unsigned char *lgot_masks; - if (locsyms == NULL) - { - locsyms = (Elf_Internal_Sym *) symtab_hdr->contents; - if (locsyms == NULL) - locsyms = bfd_elf_get_elf_syms (ibfd, symtab_hdr, - symtab_hdr->sh_info, - 0, NULL, NULL, NULL); - if (locsyms == NULL) - { - if (elf_section_data (sec)->relocs != relstart) - free (relstart); - return FALSE; - } - } lgot_refs = elf_local_got_refcounts (ibfd); if (lgot_refs == NULL) abort (); local_plt = (struct plt_entry **) (lgot_refs + symtab_hdr->sh_info); - lgot_masks = (char *) (local_plt + symtab_hdr->sh_info); + lgot_masks = (unsigned char *) + (local_plt + symtab_hdr->sh_info); tls_mask = &lgot_masks[r_symndx]; got_count = &lgot_refs[r_symndx]; } - if (tls_set == 0) + /* If we don't have old-style __tls_get_addr calls + without TLSGD/TLSLD marker relocs, and we haven't + found a new-style __tls_get_addr call with a + marker for this symbol, then we either have a + broken object file or an -mlongcall style + indirect call to __tls_get_addr without a marker. + Disable optimization in this case. */ + if ((tls_clear & (TLS_GD | TLS_LD)) != 0 + && !sec->has_tls_get_addr_call + && ((*tls_mask & (TLS_TLS | TLS_MARK)) + != (TLS_TLS | TLS_MARK))) + continue; + + if (expecting_tls_get_addr) + { + struct plt_entry *ent; + bfd_vma addend = 0; + + if (bfd_link_pic (info) + && (ELF32_R_TYPE (rel[1].r_info) == R_PPC_PLTREL24 + || ELF32_R_TYPE (rel[1].r_info) == R_PPC_PLTCALL)) + addend = rel[1].r_addend; + ent = find_plt_ent (&htab->tls_get_addr->plt.plist, + got2, addend); + if (ent != NULL && ent->plt.refcount > 0) + ent->plt.refcount -= 1; + + if (expecting_tls_get_addr == 2) + continue; + } + + if (tls_set == 0) { /* We managed to get rid of a got entry. */ if (*got_count > 0) @@ -5393,15 +5799,6 @@ if (elf_section_data (sec)->relocs != relstart) free (relstart); } - - if (locsyms != NULL - && (symtab_hdr->contents != (unsigned char *) locsyms)) - { - if (!info->keep_memory) - free (locsyms); - else - symtab_hdr->contents = (unsigned char *) locsyms; - } } htab->do_tls_opt = 1; return TRUE; @@ -5502,7 +5899,11 @@ if (ent->plt.refcount > 0) break; if (ent == NULL - || (h->type != STT_GNU_IFUNC && local)) + || (h->type != STT_GNU_IFUNC + && local + && (htab->can_convert_all_inline_plt + || (ppc_elf_hash_entry (h)->tls_mask + & (TLS_TLS | PLT_KEEP)) != PLT_KEEP))) { /* A PLT entry is not required/allowed when: @@ -5538,9 +5939,9 @@ && !readonly_dynrelocs (h)) { h->pointer_equality_needed = 0; - /* If we haven't seen a branch reloc then we don't need - a plt entry. */ - if (!h->needs_plt) + /* If we haven't seen a branch reloc and the symbol + isn't an ifunc then we don't need a plt entry. */ + if (!h->needs_plt && h->type != STT_GNU_IFUNC) h->plt.plist = NULL; } else if (!bfd_link_pic (info)) @@ -5791,7 +6192,8 @@ the DTPREL reloc on the second word of a GD entry under the same condition as that for IE, but ld.so needs to differentiate LD and GD entries. */ - if ((tls_mask & (TLS_TPREL | TLS_TPRELGD)) != 0 && known) + if (known && (tls_mask & TLS_TLS) != 0 + && (tls_mask & (TLS_TPREL | TLS_TPRELGD)) != 0) need -= 4; return need * sizeof (Elf32_External_Rela) / 4; } @@ -5846,7 +6248,7 @@ return FALSE; need = 0; - if ((eh->tls_mask & TLS_LD) != 0) + if ((eh->tls_mask & (TLS_TLS | TLS_LD)) == (TLS_TLS | TLS_LD)) { if (!eh->elf.def_dynamic) /* We'll just use htab->tlsld_got.offset. This should @@ -5874,7 +6276,8 @@ &eh->elf)); need = got_relocs_needed (eh->tls_mask, need, tprel_known); - if ((eh->tls_mask & TLS_LD) != 0 && eh->elf.def_dynamic) + if ((eh->tls_mask & (TLS_TLS | TLS_LD)) == (TLS_TLS | TLS_LD) + && eh->elf.def_dynamic) need -= sizeof (Elf32_External_Rela); rsec = htab->elf.srelgot; if (eh->elf.type == STT_GNU_IFUNC) @@ -5986,13 +6389,26 @@ sreloc->size += p->count * sizeof (Elf32_External_Rela); } - /* Handle PLT relocs. Done last, after dynindx has settled. */ + /* Handle PLT relocs. Done last, after dynindx has settled. + We might need a PLT entry when the symbol + a) is dynamic, or + b) is an ifunc, or + c) has plt16 relocs and has been processed by adjust_dynamic_symbol, or + d) has plt16 relocs and we are linking statically. */ dyn = htab->elf.dynamic_sections_created && h->dynindx != -1; - if (dyn || h->type == STT_GNU_IFUNC) + if (dyn + || h->type == STT_GNU_IFUNC + || (h->needs_plt && h->dynamic_adjusted) + || (h->needs_plt + && h->def_regular + && !htab->elf.dynamic_sections_created + && !htab->can_convert_all_inline_plt + && (ppc_elf_hash_entry (h)->tls_mask + & (TLS_TLS | PLT_KEEP)) == PLT_KEEP)) { struct plt_entry *ent; bfd_boolean doneone = FALSE; - bfd_vma plt_offset = 0, glink_offset = 0; + bfd_vma plt_offset = 0, glink_offset = (bfd_vma) -1; for (ent = h->plt.plist; ent != NULL; ent = ent->next) if (ent->plt.refcount > 0) @@ -6000,7 +6416,12 @@ asection *s = htab->elf.splt; if (!dyn) - s = htab->elf.iplt; + { + if (h->type == STT_GNU_IFUNC) + s = htab->elf.iplt; + else + s = htab->pltlocal; + } if (htab->plt_type == PLT_NEW || !dyn) { @@ -6011,28 +6432,30 @@ } ent->plt.offset = plt_offset; - s = htab->glink; - if (!doneone || bfd_link_pic (info)) - { - glink_offset = s->size; - s->size += GLINK_ENTRY_SIZE; - if (h == htab->tls_get_addr - && !htab->params->no_tls_get_addr_opt) - s->size += TLS_GET_ADDR_GLINK_SIZE - GLINK_ENTRY_SIZE; - } - if (!doneone - && !bfd_link_pic (info) - && h->def_dynamic - && !h->def_regular) + if (s == htab->pltlocal) + ent->glink_offset = glink_offset; + else { - h->root.u.def.section = s; - h->root.u.def.value = glink_offset; - } - ent->glink_offset = glink_offset; + s = htab->glink; + if (!doneone || bfd_link_pic (info)) + { + glink_offset = s->size; + s->size += GLINK_ENTRY_SIZE (htab, h); + } + if (!doneone + && !bfd_link_pic (info) + && h->def_dynamic + && !h->def_regular) + { + h->root.u.def.section = s; + h->root.u.def.value = glink_offset; + } + ent->glink_offset = glink_offset; - if (htab->params->emit_stub_syms - && !add_stub_sym (ent, h, info)) - return FALSE; + if (htab->params->emit_stub_syms + && !add_stub_sym (ent, h, info)) + return FALSE; + } } else { @@ -6085,7 +6508,18 @@ if (!doneone) { if (!dyn) - htab->elf.irelplt->size += sizeof (Elf32_External_Rela); + { + if (h->type == STT_GNU_IFUNC) + { + s = htab->elf.irelplt; + s->size += sizeof (Elf32_External_Rela); + } + else if (bfd_link_pic (info)) + { + s = htab->relpltlocal; + s->size += sizeof (Elf32_External_Rela); + } + } else { htab->elf.srelplt->size += sizeof (Elf32_External_Rela); @@ -6153,7 +6587,7 @@ info->flags |= DF_TEXTREL; info->callbacks->minfo - (_("%B: dynamic relocation against `%T' in read-only section `%A'\n"), + (_("%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"), sec->owner, h->root.root.string, sec); /* Not an error, just cut short the traversal. */ @@ -6261,7 +6695,7 @@ == (SEC_READONLY | SEC_ALLOC)) { info->flags |= DF_TEXTREL; - info->callbacks->minfo (_("%B: dynamic relocation in read-only section `%A'\n"), + info->callbacks->minfo (_("%pB: dynamic relocation in read-only section `%pA'\n"), p->sec->owner, p->sec); } } @@ -6283,7 +6717,7 @@ if (*local_got > 0) { unsigned int need; - if ((*lgot_masks & TLS_LD) != 0) + if ((*lgot_masks & (TLS_TLS | TLS_LD)) == (TLS_TLS | TLS_LD)) htab->tlsld_got.refcount += 1; need = got_entries_needed (*lgot_masks); if (need == 0) @@ -6298,7 +6732,7 @@ need = got_relocs_needed (*lgot_masks, need, tprel_known); srel = htab->elf.srelgot; - if ((*lgot_masks & PLT_IFUNC) != 0) + if ((*lgot_masks & (TLS_TLS | PLT_IFUNC)) == PLT_IFUNC) srel = htab->elf.irelplt; srel->size += need; } @@ -6311,16 +6745,26 @@ continue; /* Allocate space for calls to local STT_GNU_IFUNC syms in .iplt. */ - for (; local_plt < end_local_plt; ++local_plt) + lgot_masks = (char *) end_local_plt; + for (; local_plt < end_local_plt; ++local_plt, ++lgot_masks) { struct plt_entry *ent; bfd_boolean doneone = FALSE; - bfd_vma plt_offset = 0, glink_offset = 0; + bfd_vma plt_offset = 0, glink_offset = (bfd_vma) -1; for (ent = *local_plt; ent != NULL; ent = ent->next) if (ent->plt.refcount > 0) { - s = htab->elf.iplt; + if ((*lgot_masks & (TLS_TLS | PLT_IFUNC)) == PLT_IFUNC) + s = htab->elf.iplt; + else if (htab->can_convert_all_inline_plt + || (*lgot_masks & (TLS_TLS | PLT_KEEP)) != PLT_KEEP) + { + ent->plt.offset = (bfd_vma) -1; + continue; + } + else + s = htab->pltlocal; if (!doneone) { @@ -6329,17 +6773,26 @@ } ent->plt.offset = plt_offset; - s = htab->glink; - if (!doneone || bfd_link_pic (info)) + if (s != htab->pltlocal && (!doneone || bfd_link_pic (info))) { + s = htab->glink; glink_offset = s->size; - s->size += GLINK_ENTRY_SIZE; + s->size += GLINK_ENTRY_SIZE (htab, NULL); } ent->glink_offset = glink_offset; if (!doneone) { - htab->elf.irelplt->size += sizeof (Elf32_External_Rela); + if ((*lgot_masks & (TLS_TLS | PLT_IFUNC)) == PLT_IFUNC) + { + s = htab->elf.irelplt; + s->size += sizeof (Elf32_External_Rela); + } + else if (bfd_link_pic (info)) + { + s = htab->relpltlocal; + s->size += sizeof (Elf32_External_Rela); + } doneone = TRUE; } } @@ -6401,10 +6854,9 @@ && htab->elf.dynamic_sections_created) { htab->glink_pltresolve = htab->glink->size; - /* Space for the branch table. ??? We don't need entries for - non-dynamic symbols in this table. This case can arise with - static ifuncs or forced local ifuncs. */ - htab->glink->size += htab->glink->size / (GLINK_ENTRY_SIZE / 4) - 4; + /* Space for the branch table. */ + htab->glink->size + += htab->elf.srelplt->size / (sizeof (Elf32_External_Rela) / 4) - 4; /* Pad out to align the start of PLTresolve. */ htab->glink->size += -htab->glink->size & (htab->params->ppc476_workaround ? 63 : 15); @@ -6486,6 +6938,7 @@ comment below. */ } else if (s == htab->elf.iplt + || s == htab->pltlocal || s == htab->glink || s == htab->glink_eh_frame || s == htab->elf.sgotplt @@ -6866,6 +7319,7 @@ bfd_byte *hit_addr; unsigned long t0; struct elf_link_hash_entry *h; + Elf_Internal_Sym *isym; struct plt_entry **plist; unsigned char sym_type; @@ -6874,6 +7328,7 @@ case R_PPC_REL24: case R_PPC_LOCAL24PC: case R_PPC_PLTREL24: + case R_PPC_PLTCALL: max_branch_offset = 1 << 25; break; @@ -6893,57 +7348,34 @@ } /* Get the value of the symbol referred to by the reloc. */ - h = NULL; - if (ELF32_R_SYM (irel->r_info) < symtab_hdr->sh_info) - { - /* A local symbol. */ - Elf_Internal_Sym *isym; + if (!get_sym_h (&h, &isym, &tsec, NULL, &isymbuf, + ELF32_R_SYM (irel->r_info), abfd)) + goto error_return; - /* Read this BFD's local symbols. */ - if (isymbuf == NULL) - { - isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents; - if (isymbuf == NULL) - isymbuf = bfd_elf_get_elf_syms (abfd, symtab_hdr, - symtab_hdr->sh_info, 0, - NULL, NULL, NULL); - if (isymbuf == 0) - goto error_return; - } - isym = isymbuf + ELF32_R_SYM (irel->r_info); - if (isym->st_shndx == SHN_UNDEF) + if (isym != NULL) + { + if (tsec != NULL) + ; + else if (isym->st_shndx == SHN_UNDEF) tsec = bfd_und_section_ptr; else if (isym->st_shndx == SHN_ABS) tsec = bfd_abs_section_ptr; else if (isym->st_shndx == SHN_COMMON) tsec = bfd_com_section_ptr; - else - tsec = bfd_section_from_elf_index (abfd, isym->st_shndx); toff = isym->st_value; sym_type = ELF_ST_TYPE (isym->st_info); } else { - /* Global symbol handling. */ - unsigned long indx; - - indx = ELF32_R_SYM (irel->r_info) - symtab_hdr->sh_info; - h = elf_sym_hashes (abfd)[indx]; - - 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->root.type == bfd_link_hash_defined - || h->root.type == bfd_link_hash_defweak) - { - tsec = h->root.u.def.section; - toff = h->root.u.def.value; - } + if (tsec != NULL) + toff = h->root.u.def.value; else if (h->root.type == bfd_link_hash_undefined || h->root.type == bfd_link_hash_undefweak) { + unsigned long indx; + + indx = ELF32_R_SYM (irel->r_info) - symtab_hdr->sh_info; tsec = bfd_und_section_ptr; toff = bfd_link_relocatable (link_info) ? indx : 0; } @@ -7443,12 +7875,36 @@ #define PPC_HA(v) PPC_HI ((v) + 0x8000) static void -write_glink_stub (struct plt_entry *ent, asection *plt_sec, unsigned char *p, +write_glink_stub (struct elf_link_hash_entry *h, struct plt_entry *ent, + asection *plt_sec, unsigned char *p, struct bfd_link_info *info) { struct ppc_elf_link_hash_table *htab = ppc_elf_hash_table (info); bfd *output_bfd = info->output_bfd; bfd_vma plt; + unsigned char *end = p + GLINK_ENTRY_SIZE (htab, h); + + if (h != NULL + && h == htab->tls_get_addr + && !htab->params->no_tls_get_addr_opt) + { + bfd_put_32 (output_bfd, LWZ_11_3, p); + p += 4; + bfd_put_32 (output_bfd, LWZ_12_3 + 4, p); + p += 4; + bfd_put_32 (output_bfd, MR_0_3, p); + p += 4; + bfd_put_32 (output_bfd, CMPWI_11_0, p); + p += 4; + bfd_put_32 (output_bfd, ADD_3_12_2, p); + p += 4; + bfd_put_32 (output_bfd, BEQLR, p); + p += 4; + bfd_put_32 (output_bfd, MR_3_0, p); + p += 4; + bfd_put_32 (output_bfd, NOP, p); + p += 4; + } plt = ((ent->plt.offset & ~1) + plt_sec->output_section->vma @@ -7468,26 +7924,12 @@ plt -= got; if (plt + 0x8000 < 0x10000) - { - bfd_put_32 (output_bfd, LWZ_11_30 + PPC_LO (plt), p); - p += 4; - bfd_put_32 (output_bfd, MTCTR_11, p); - p += 4; - bfd_put_32 (output_bfd, BCTR, p); - p += 4; - bfd_put_32 (output_bfd, htab->params->ppc476_workaround ? BA : NOP, p); - p += 4; - } + bfd_put_32 (output_bfd, LWZ_11_30 + PPC_LO (plt), p); else { bfd_put_32 (output_bfd, ADDIS_11_30 + PPC_HA (plt), p); p += 4; bfd_put_32 (output_bfd, LWZ_11_11 + PPC_LO (plt), p); - p += 4; - bfd_put_32 (output_bfd, MTCTR_11, p); - p += 4; - bfd_put_32 (output_bfd, BCTR, p); - p += 4; } } else @@ -7495,10 +7937,15 @@ bfd_put_32 (output_bfd, LIS_11 + PPC_HA (plt), p); p += 4; bfd_put_32 (output_bfd, LWZ_11_11 + PPC_LO (plt), p); - p += 4; - bfd_put_32 (output_bfd, MTCTR_11, p); - p += 4; - bfd_put_32 (output_bfd, BCTR, p); + } + p += 4; + bfd_put_32 (output_bfd, MTCTR_11, p); + p += 4; + bfd_put_32 (output_bfd, BCTR, p); + p += 4; + while (p < end) + { + bfd_put_32 (output_bfd, htab->params->ppc476_workaround ? BA : NOP, p); p += 4; } } @@ -7671,7 +8118,7 @@ struct ppc_elf_relax_info *relax_info = NULL; #ifdef DEBUG - _bfd_error_handler ("ppc_elf_relocate_section called for %B section %A, " + _bfd_error_handler ("ppc_elf_relocate_section called for %pB section %pA, " "%ld relocations%s", input_bfd, input_section, (long) input_section->reloc_count, @@ -7710,10 +8157,10 @@ unsigned long r_symndx; bfd_vma relocation; bfd_vma branch_bit, from; - bfd_boolean unresolved_reloc; + bfd_boolean unresolved_reloc, save_unresolved_reloc; bfd_boolean warned; unsigned int tls_type, tls_mask, tls_gd; - struct plt_entry **ifunc; + struct plt_entry **ifunc, **plt_list; struct reloc_howto_struct alt_howto; again: @@ -7974,11 +8421,19 @@ break; case R_PPC_TLSGD: - if ((tls_mask & TLS_TLS) != 0 && (tls_mask & TLS_GD) == 0) + if ((tls_mask & TLS_TLS) != 0 && (tls_mask & TLS_GD) == 0 + && rel + 1 < relend) { unsigned int insn2; bfd_vma offset = rel->r_offset; + if (is_plt_seq_reloc (ELF32_R_TYPE (rel[1].r_info))) + { + bfd_put_32 (input_bfd, NOP, contents + offset); + rel[1].r_info = ELF32_R_INFO (STN_UNDEF, R_PPC_NONE); + break; + } + if ((tls_mask & TLS_TPRELGD) != 0) { /* IE */ @@ -8001,10 +8456,18 @@ break; case R_PPC_TLSLD: - if ((tls_mask & TLS_TLS) != 0 && (tls_mask & TLS_LD) == 0) + if ((tls_mask & TLS_TLS) != 0 && (tls_mask & TLS_LD) == 0 + && rel + 1 < relend) { unsigned int insn2; + if (is_plt_seq_reloc (ELF32_R_TYPE (rel[1].r_info))) + { + bfd_put_32 (input_bfd, NOP, contents + rel->r_offset); + rel[1].r_info = ELF32_R_INFO (STN_UNDEF, R_PPC_NONE); + break; + } + for (r_symndx = 0; r_symndx < symtab_hdr->sh_info; r_symndx++) @@ -8048,7 +8511,7 @@ case R_PPC_ADDR14_BRNTAKEN: case R_PPC_REL14_BRNTAKEN: { - bfd_vma insn; + unsigned int insn; insn = bfd_get_32 (input_bfd, contents + rel->r_offset); insn &= ~BRANCH_PREDICT_BIT; @@ -8063,8 +8526,33 @@ insn ^= BRANCH_PREDICT_BIT; bfd_put_32 (input_bfd, insn, contents + rel->r_offset); - break; } + break; + + case R_PPC_PLT16_HA: + { + unsigned int insn; + + insn = bfd_get_32 (input_bfd, + contents + rel->r_offset - d_offset); + if ((insn & (0x3f << 26)) == 15u << 26 + && (insn & (0x1f << 16)) != 0) + { + if (!bfd_link_pic (info)) + { + /* Convert addis to lis. */ + insn &= ~(0x1f << 16); + bfd_put_32 (input_bfd, insn, + contents + rel->r_offset - d_offset); + } + } + else if (bfd_link_pic (info)) + info->callbacks->einfo + (_("%P: %H: error: %s with unexpected instruction %x\n"), + input_bfd, input_section, rel->r_offset, + "R_PPC_PLT16_HA", insn); + } + break; } if (ELIMINATE_COPY_RELOCS @@ -8137,8 +8625,9 @@ else _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): error: %s with unexpected instruction %#x"), - input_bfd, input_section, rel->r_offset, + (_("%pB(%pA+%#" PRIx64 "): error: " + "%s with unexpected instruction %#x"), + input_bfd, input_section, (uint64_t) rel->r_offset, "R_PPC_ADDR16_HA", insn); } else if (r_type == R_PPC_ADDR16_LO) @@ -8172,8 +8661,9 @@ else _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): error: %s with unexpected instruction %#x"), - input_bfd, input_section, rel->r_offset, + (_("%pB(%pA+%#" PRIx64 "): error: " + "%s with unexpected instruction %#x"), + input_bfd, input_section, (uint64_t) rel->r_offset, "R_PPC_ADDR16_LO", insn); } } @@ -8201,10 +8691,17 @@ ent = NULL; if (ifunc != NULL && (!bfd_link_pic (info) - || is_branch_reloc (r_type))) + || is_branch_reloc (r_type) + || r_type == R_PPC_PLT16_LO + || r_type == R_PPC_PLT16_HI + || r_type == R_PPC_PLT16_HA)) { addend = 0; - if (r_type == R_PPC_PLTREL24 && bfd_link_pic (info)) + if (bfd_link_pic (info) + && (r_type == R_PPC_PLTREL24 + || r_type == R_PPC_PLT16_LO + || r_type == R_PPC_PLT16_HI + || r_type == R_PPC_PLT16_HA)) addend = rel->r_addend; ent = find_plt_ent (ifunc, got2, addend); } @@ -8231,31 +8728,6 @@ (_("%X%H: unsupported bss-plt -fPIC ifunc %s\n"), input_bfd, input_section, rel->r_offset, sym_name); } - if (h == NULL && (ent->plt.offset & 1) == 0) - { - Elf_Internal_Rela rela; - bfd_byte *loc; - - rela.r_offset = (htab->elf.iplt->output_section->vma - + htab->elf.iplt->output_offset - + ent->plt.offset); - rela.r_info = ELF32_R_INFO (0, R_PPC_IRELATIVE); - rela.r_addend = relocation; - loc = htab->elf.irelplt->contents; - loc += (htab->elf.irelplt->reloc_count++ - * sizeof (Elf32_External_Rela)); - bfd_elf32_swap_reloca_out (output_bfd, &rela, loc); - htab->local_ifunc_resolver = 1; - - ent->plt.offset |= 1; - } - if (h == NULL && (ent->glink_offset & 1) == 0) - { - unsigned char *p = ((unsigned char *) htab->glink->contents - + ent->glink_offset); - write_glink_stub (ent, htab->elf.iplt, p, info); - ent->glink_offset |= 1; - } unresolved_reloc = FALSE; if (htab->plt_type == PLT_NEW @@ -8273,6 +8745,7 @@ } addend = rel->r_addend; + save_unresolved_reloc = unresolved_reloc; howto = NULL; if (r_type < R_PPC_max) howto = ppc_elf_howto_table[r_type]; @@ -8314,10 +8787,9 @@ switch (r_type) { default: - info->callbacks->einfo - /* xgettext:c-format */ - (_("%P: %B: unknown relocation type %d for symbol %s\n"), - input_bfd, (int) r_type, sym_name); + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: %s unsupported"), + input_bfd, howto->name); bfd_set_error (bfd_error_bad_value); ret = FALSE; @@ -8418,9 +8890,10 @@ off &= ~1; else { - unsigned int tls_m = (tls_mask - & (TLS_LD | TLS_GD | TLS_DTPREL - | TLS_TPREL | TLS_TPRELGD)); + unsigned int tls_m = ((tls_mask & TLS_TLS) != 0 + ? tls_mask & (TLS_LD | TLS_GD | TLS_DTPREL + | TLS_TPREL | TLS_TPRELGD) + : 0); if (offp == &htab->tlsld_got.offset) tls_m = TLS_LD; @@ -9053,6 +9526,65 @@ addend = 0; break; + case R_PPC_PLTSEQ: + case R_PPC_PLTCALL: + case R_PPC_PLT16_LO: + case R_PPC_PLT16_HI: + case R_PPC_PLT16_HA: + plt_list = NULL; + if (h != NULL) + plt_list = &h->plt.plist; + else if (ifunc != NULL) + plt_list = ifunc; + else if (local_got_offsets != NULL) + { + struct plt_entry **local_plt; + local_plt = (struct plt_entry **) (local_got_offsets + + symtab_hdr->sh_info); + plt_list = local_plt + r_symndx; + } + unresolved_reloc = TRUE; + if (plt_list != NULL) + { + struct plt_entry *ent; + + ent = find_plt_ent (plt_list, got2, + bfd_link_pic (info) ? addend : 0); + if (ent != NULL && ent->plt.offset != (bfd_vma) -1) + { + asection *plt; + + unresolved_reloc = FALSE; + plt = htab->elf.splt; + if (!htab->elf.dynamic_sections_created + || h == NULL + || h->dynindx == -1) + { + if (ifunc != NULL) + plt = htab->elf.iplt; + else + plt = htab->pltlocal; + } + relocation = (plt->output_section->vma + + plt->output_offset + + ent->plt.offset); + if (bfd_link_pic (info)) + { + bfd_vma got = 0; + + if (ent->addend >= 32768) + got = (ent->addend + + ent->sec->output_section->vma + + ent->sec->output_offset); + else + got = SYM_VAL (htab->elf.hgot); + relocation -= got; + } + } + } + addend = 0; + break; + /* Relocate against _SDA_BASE_. */ case R_PPC_SDAREL16: { @@ -9072,10 +9604,10 @@ if (!(strcmp (name, ".sdata") == 0 || strcmp (name, ".sbss") == 0)) { - info->callbacks->einfo + _bfd_error_handler /* xgettext:c-format */ - (_("%P: %B: the target (%s) of a %s relocation is " - "in the wrong output section (%s)\n"), + (_("%pB: the target (%s) of a %s relocation is " + "in the wrong output section (%s)"), input_bfd, sym_name, howto->name, @@ -9103,10 +9635,10 @@ if (!(strcmp (name, ".sdata2") == 0 || strcmp (name, ".sbss2") == 0)) { - info->callbacks->einfo + _bfd_error_handler /* xgettext:c-format */ - (_("%P: %B: the target (%s) of a %s relocation is " - "in the wrong output section (%s)\n"), + (_("%pB: the target (%s) of a %s relocation is " + "in the wrong output section (%s)"), input_bfd, sym_name, howto->name, @@ -9194,10 +9726,10 @@ } else { - info->callbacks->einfo + _bfd_error_handler /* xgettext:c-format */ - (_("%P: %B: the target (%s) of a %s relocation is " - "in the wrong output section (%s)\n"), + (_("%pB: the target (%s) of a %s relocation is " + "in the wrong output section (%s)"), input_bfd, sym_name, howto->name, @@ -9284,7 +9816,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: the target (%s) of a %s relocation is " + (_("%pB: the target (%s) of a %s relocation is " "in the wrong output section (%s)"), input_bfd, sym_name, @@ -9381,27 +9913,63 @@ case R_PPC_IRELATIVE: case R_PPC_PLT32: case R_PPC_PLTREL32: - case R_PPC_PLT16_LO: - case R_PPC_PLT16_HI: - case R_PPC_PLT16_HA: case R_PPC_ADDR30: case R_PPC_EMB_RELSEC16: case R_PPC_EMB_RELST_LO: case R_PPC_EMB_RELST_HI: case R_PPC_EMB_RELST_HA: case R_PPC_EMB_BIT_FLD: - info->callbacks->einfo - /* xgettext:c-format */ - (_("%P: %B: relocation %s is not yet supported for symbol %s\n"), - input_bfd, - howto->name, - sym_name); + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: %s unsupported"), + input_bfd, howto->name); bfd_set_error (bfd_error_invalid_operation); ret = FALSE; goto copy_reloc; } + switch (r_type) + { + default: + break; + + case R_PPC_PLTCALL: + if (unresolved_reloc) + { + bfd_byte *p = contents + rel->r_offset; + unsigned int insn = bfd_get_32 (input_bfd, p); + insn &= 1; + bfd_put_32 (input_bfd, B | insn, p); + unresolved_reloc = save_unresolved_reloc; + r_type = R_PPC_REL24; + howto = ppc_elf_howto_table[r_type]; + } + else if (htab->plt_type != PLT_NEW) + info->callbacks->einfo + (_("%P: %H: %s relocation unsupported for bss-plt\n"), + input_bfd, input_section, rel->r_offset, + howto->name); + break; + + case R_PPC_PLTSEQ: + case R_PPC_PLT16_HA: + case R_PPC_PLT16_LO: + if (unresolved_reloc) + { + bfd_byte *p = contents + (rel->r_offset & ~3); + bfd_put_32 (input_bfd, NOP, p); + unresolved_reloc = FALSE; + r_type = R_PPC_NONE; + howto = ppc_elf_howto_table[r_type]; + } + else if (htab->plt_type != PLT_NEW) + info->callbacks->einfo + (_("%P: %H: %s relocation unsupported for bss-plt\n"), + input_bfd, input_section, rel->r_offset, + howto->name); + break; + } + /* Do any further special processing. */ switch (r_type) { @@ -9919,27 +10487,16 @@ return ret; } -/* Finish up dynamic symbol handling. We set the contents of various - dynamic sections here. */ +/* Write out the PLT relocs and entries for H. */ static bfd_boolean -ppc_elf_finish_dynamic_symbol (bfd *output_bfd, - struct bfd_link_info *info, - struct elf_link_hash_entry *h, - Elf_Internal_Sym *sym) +write_global_sym_plt (struct elf_link_hash_entry *h, void *inf) { - struct ppc_elf_link_hash_table *htab; + struct bfd_link_info *info = (struct bfd_link_info *) inf; + struct ppc_elf_link_hash_table *htab = ppc_elf_hash_table (info); struct plt_entry *ent; bfd_boolean doneone; -#ifdef DEBUG - fprintf (stderr, "ppc_elf_finish_dynamic_symbol called for %s", - h->root.root.string); -#endif - - htab = ppc_elf_hash_table (info); - BFD_ASSERT (htab->elf.dynobj != NULL); - doneone = FALSE; for (ent = h->plt.plist; ent != NULL; ent = ent->next) if (ent->plt.offset != (bfd_vma) -1) @@ -9949,6 +10506,8 @@ Elf_Internal_Rela rela; bfd_byte *loc; bfd_vma reloc_index; + asection *plt = htab->elf.splt; + asection *relplt = htab->elf.srelplt; if (htab->plt_type == PLT_NEW || !htab->elf.dynamic_sections_created @@ -9982,29 +10541,29 @@ /* Fill in the .plt on VxWorks. */ if (bfd_link_pic (info)) { - bfd_put_32 (output_bfd, + bfd_put_32 (info->output_bfd, plt_entry[0] | PPC_HA (got_offset), - htab->elf.splt->contents + ent->plt.offset + 0); - bfd_put_32 (output_bfd, + plt->contents + ent->plt.offset + 0); + bfd_put_32 (info->output_bfd, plt_entry[1] | PPC_LO (got_offset), - htab->elf.splt->contents + ent->plt.offset + 4); + plt->contents + ent->plt.offset + 4); } else { bfd_vma got_loc = got_offset + SYM_VAL (htab->elf.hgot); - bfd_put_32 (output_bfd, + bfd_put_32 (info->output_bfd, plt_entry[0] | PPC_HA (got_loc), - htab->elf.splt->contents + ent->plt.offset + 0); - bfd_put_32 (output_bfd, + plt->contents + ent->plt.offset + 0); + bfd_put_32 (info->output_bfd, plt_entry[1] | PPC_LO (got_loc), - htab->elf.splt->contents + ent->plt.offset + 4); + plt->contents + ent->plt.offset + 4); } - bfd_put_32 (output_bfd, plt_entry[2], - htab->elf.splt->contents + ent->plt.offset + 8); - bfd_put_32 (output_bfd, plt_entry[3], - htab->elf.splt->contents + ent->plt.offset + 12); + bfd_put_32 (info->output_bfd, plt_entry[2], + plt->contents + ent->plt.offset + 8); + bfd_put_32 (info->output_bfd, plt_entry[3], + plt->contents + ent->plt.offset + 12); /* This instruction is an immediate load. The value loaded is the byte offset of the R_PPC_JMP_SLOT relocation from the @@ -10012,30 +10571,30 @@ low-order 16 bits of the load instruction. */ /* NOTE: It appears that this is now an index rather than a prescaled offset. */ - bfd_put_32 (output_bfd, + bfd_put_32 (info->output_bfd, plt_entry[4] | reloc_index, - htab->elf.splt->contents + ent->plt.offset + 16); + plt->contents + ent->plt.offset + 16); /* This instruction is a PC-relative branch whose target is the start of the PLT section. The address of this branch instruction is 20 bytes beyond the start of this PLT entry. The address is encoded in bits 6-29, inclusive. The value stored is right-shifted by two bits, permitting a 26-bit offset. */ - bfd_put_32 (output_bfd, + bfd_put_32 (info->output_bfd, (plt_entry[5] | (-(ent->plt.offset + 20) & 0x03fffffc)), - htab->elf.splt->contents + ent->plt.offset + 20); - bfd_put_32 (output_bfd, plt_entry[6], - htab->elf.splt->contents + ent->plt.offset + 24); - bfd_put_32 (output_bfd, plt_entry[7], - htab->elf.splt->contents + ent->plt.offset + 28); + plt->contents + ent->plt.offset + 20); + bfd_put_32 (info->output_bfd, plt_entry[6], + plt->contents + ent->plt.offset + 24); + bfd_put_32 (info->output_bfd, plt_entry[7], + plt->contents + ent->plt.offset + 28); /* Fill in the GOT entry corresponding to this PLT slot with the address immediately after the "bctr" instruction in this PLT entry. */ - bfd_put_32 (output_bfd, (htab->elf.splt->output_section->vma - + htab->elf.splt->output_offset - + ent->plt.offset + 16), + bfd_put_32 (info->output_bfd, (plt->output_section->vma + + plt->output_offset + + ent->plt.offset + 16), htab->elf.sgotplt->contents + got_offset); if (!bfd_link_pic (info)) @@ -10047,23 +10606,23 @@ * sizeof (Elf32_External_Rela)); /* Provide the @ha relocation for the first instruction. */ - rela.r_offset = (htab->elf.splt->output_section->vma - + htab->elf.splt->output_offset + rela.r_offset = (plt->output_section->vma + + plt->output_offset + ent->plt.offset + 2); rela.r_info = ELF32_R_INFO (htab->elf.hgot->indx, R_PPC_ADDR16_HA); rela.r_addend = got_offset; - bfd_elf32_swap_reloca_out (output_bfd, &rela, loc); + bfd_elf32_swap_reloca_out (info->output_bfd, &rela, loc); loc += sizeof (Elf32_External_Rela); /* Provide the @l relocation for the second instruction. */ - rela.r_offset = (htab->elf.splt->output_section->vma - + htab->elf.splt->output_offset + rela.r_offset = (plt->output_section->vma + + plt->output_offset + ent->plt.offset + 6); rela.r_info = ELF32_R_INFO (htab->elf.hgot->indx, R_PPC_ADDR16_LO); rela.r_addend = got_offset; - bfd_elf32_swap_reloca_out (output_bfd, &rela, loc); + bfd_elf32_swap_reloca_out (info->output_bfd, &rela, loc); loc += sizeof (Elf32_External_Rela); /* Provide a relocation for the GOT entry corresponding to this @@ -10074,7 +10633,7 @@ rela.r_info = ELF32_R_INFO (htab->elf.hplt->indx, R_PPC_ADDR32); rela.r_addend = ent->plt.offset + 16; - bfd_elf32_swap_reloca_out (output_bfd, &rela, loc); + bfd_elf32_swap_reloca_out (info->output_bfd, &rela, loc); } /* VxWorks uses non-standard semantics for R_PPC_JMP_SLOT. @@ -10085,102 +10644,82 @@ rela.r_offset = (htab->elf.sgotplt->output_section->vma + htab->elf.sgotplt->output_offset + got_offset); - + rela.r_addend = 0; } else { - asection *splt = htab->elf.splt; + rela.r_addend = 0; if (!htab->elf.dynamic_sections_created || h->dynindx == -1) - splt = htab->elf.iplt; + { + if (h->type == STT_GNU_IFUNC) + { + plt = htab->elf.iplt; + relplt = htab->elf.irelplt; + } + else + { + plt = htab->pltlocal; + relplt = bfd_link_pic (info) ? htab->relpltlocal : NULL; + } + if (h->def_regular + && (h->root.type == bfd_link_hash_defined + || h->root.type == bfd_link_hash_defweak)) + rela.r_addend = SYM_VAL (h); + } - rela.r_offset = (splt->output_section->vma - + splt->output_offset - + ent->plt.offset); - if (htab->plt_type == PLT_OLD - || !htab->elf.dynamic_sections_created - || h->dynindx == -1) + if (relplt == NULL) { - /* We don't need to fill in the .plt. The ppc dynamic - linker will fill it in. */ + loc = plt->contents + ent->plt.offset; + bfd_put_32 (info->output_bfd, rela.r_addend, loc); } else { - bfd_vma val = (htab->glink_pltresolve + ent->plt.offset - + htab->glink->output_section->vma - + htab->glink->output_offset); - bfd_put_32 (output_bfd, val, - splt->contents + ent->plt.offset); - } - } + rela.r_offset = (plt->output_section->vma + + plt->output_offset + + ent->plt.offset); - /* Fill in the entry in the .rela.plt section. */ - rela.r_addend = 0; - if (!htab->elf.dynamic_sections_created - || h->dynindx == -1) - { - BFD_ASSERT (h->type == STT_GNU_IFUNC - && h->def_regular - && (h->root.type == bfd_link_hash_defined - || h->root.type == bfd_link_hash_defweak)); - rela.r_info = ELF32_R_INFO (0, R_PPC_IRELATIVE); - rela.r_addend = SYM_VAL (h); + if (htab->plt_type == PLT_OLD + || !htab->elf.dynamic_sections_created + || h->dynindx == -1) + { + /* We don't need to fill in the .plt. The ppc dynamic + linker will fill it in. */ + } + else + { + bfd_vma val = (htab->glink_pltresolve + ent->plt.offset + + htab->glink->output_section->vma + + htab->glink->output_offset); + bfd_put_32 (info->output_bfd, val, + plt->contents + ent->plt.offset); + } + } } - else - rela.r_info = ELF32_R_INFO (h->dynindx, R_PPC_JMP_SLOT); - if (!htab->elf.dynamic_sections_created - || h->dynindx == -1) - { - loc = (htab->elf.irelplt->contents - + (htab->elf.irelplt->reloc_count++ - * sizeof (Elf32_External_Rela))); - htab->local_ifunc_resolver = 1; - } - else + if (relplt != NULL) { - loc = (htab->elf.srelplt->contents - + reloc_index * sizeof (Elf32_External_Rela)); - if (h->type == STT_GNU_IFUNC && is_static_defined (h)) - htab->maybe_local_ifunc_resolver = 1; - } - bfd_elf32_swap_reloca_out (output_bfd, &rela, loc); - - if (!h->def_regular) - { - /* Mark the symbol as undefined, rather than as - defined in the .plt section. Leave the value if - there were any relocations where pointer equality - matters (this is a clue for the dynamic linker, to - make function pointer comparisons work between an - application and shared library), otherwise set it - to zero. */ - sym->st_shndx = SHN_UNDEF; - if (!h->pointer_equality_needed) - sym->st_value = 0; - else if (!h->ref_regular_nonweak) + /* Fill in the entry in the .rela.plt section. */ + if (!htab->elf.dynamic_sections_created + || h->dynindx == -1) { - /* This breaks function pointer comparisons, but - that is better than breaking tests for a NULL - function pointer. */ - sym->st_value = 0; + if (h->type == STT_GNU_IFUNC) + rela.r_info = ELF32_R_INFO (0, R_PPC_IRELATIVE); + else + rela.r_info = ELF32_R_INFO (0, R_PPC_RELATIVE); + loc = relplt->contents + (relplt->reloc_count++ + * sizeof (Elf32_External_Rela)); + htab->local_ifunc_resolver = 1; } - } - else if (h->type == STT_GNU_IFUNC - && !bfd_link_pic (info)) - { - /* Set the value of ifunc symbols in a non-pie - executable to the glink entry. This is to avoid - text relocations. We can't do this for ifunc in - allocate_dynrelocs, as we do for normal dynamic - function symbols with plt entries, because we need - to keep the original value around for the ifunc - relocation. */ - sym->st_shndx = (_bfd_elf_section_from_bfd_section - (output_bfd, htab->glink->output_section)); - sym->st_value = (ent->glink_offset - + htab->glink->output_offset - + htab->glink->output_section->vma); + else + { + rela.r_info = ELF32_R_INFO (h->dynindx, R_PPC_JMP_SLOT); + loc = relplt->contents + (reloc_index + * sizeof (Elf32_External_Rela)); + if (h->type == STT_GNU_IFUNC && is_static_defined (h)) + htab->maybe_local_ifunc_resolver = 1; + } + bfd_elf32_swap_reloca_out (info->output_bfd, &rela, loc); } doneone = TRUE; } @@ -10190,34 +10729,19 @@ || h->dynindx == -1) { unsigned char *p; - asection *splt = htab->elf.splt; + asection *plt = htab->elf.splt; + if (!htab->elf.dynamic_sections_created || h->dynindx == -1) - splt = htab->elf.iplt; - - p = (unsigned char *) htab->glink->contents + ent->glink_offset; - - if (h == htab->tls_get_addr && !htab->params->no_tls_get_addr_opt) { - bfd_put_32 (output_bfd, LWZ_11_3, p); - p += 4; - bfd_put_32 (output_bfd, LWZ_12_3 + 4, p); - p += 4; - bfd_put_32 (output_bfd, MR_0_3, p); - p += 4; - bfd_put_32 (output_bfd, CMPWI_11_0, p); - p += 4; - bfd_put_32 (output_bfd, ADD_3_12_2, p); - p += 4; - bfd_put_32 (output_bfd, BEQLR, p); - p += 4; - bfd_put_32 (output_bfd, MR_3_0, p); - p += 4; - bfd_put_32 (output_bfd, NOP, p); - p += 4; + if (h->type == STT_GNU_IFUNC) + plt = htab->elf.iplt; + else + break; } - write_glink_stub (ent, splt, p, info); + p = (unsigned char *) htab->glink->contents + ent->glink_offset; + write_glink_stub (h, ent, plt, p, info); if (!bfd_link_pic (info)) /* We only need one non-PIC glink stub. */ @@ -10226,6 +10750,181 @@ else break; } + return TRUE; +} + +/* Finish up PLT handling. */ + +bfd_boolean +ppc_finish_symbols (struct bfd_link_info *info) +{ + struct ppc_elf_link_hash_table *htab = ppc_elf_hash_table (info); + bfd *ibfd; + + if (!htab) + return TRUE; + + elf_link_hash_traverse (&htab->elf, write_global_sym_plt, info); + + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) + { + bfd_vma *local_got, *end_local_got; + struct plt_entry **local_plt, **lplt, **end_local_plt; + Elf_Internal_Shdr *symtab_hdr; + bfd_size_type locsymcount; + Elf_Internal_Sym *local_syms = NULL; + struct plt_entry *ent; + + if (!is_ppc_elf (ibfd)) + continue; + + local_got = elf_local_got_offsets (ibfd); + if (!local_got) + continue; + + symtab_hdr = &elf_symtab_hdr (ibfd); + locsymcount = symtab_hdr->sh_info; + end_local_got = local_got + locsymcount; + local_plt = (struct plt_entry **) end_local_got; + end_local_plt = local_plt + locsymcount; + for (lplt = local_plt; lplt < end_local_plt; ++lplt) + for (ent = *lplt; ent != NULL; ent = ent->next) + { + if (ent->plt.offset != (bfd_vma) -1) + { + Elf_Internal_Sym *sym; + asection *sym_sec; + asection *plt, *relplt; + bfd_byte *loc; + bfd_vma val; + Elf_Internal_Rela rela; + + if (!get_sym_h (NULL, &sym, &sym_sec, NULL, &local_syms, + lplt - local_plt, ibfd)) + { + if (local_syms != NULL + && symtab_hdr->contents != (unsigned char *) local_syms) + free (local_syms); + return FALSE; + } + + val = sym->st_value; + if (sym_sec != NULL && sym_sec->output_section != NULL) + val += sym_sec->output_offset + sym_sec->output_section->vma; + + if (ELF_ST_TYPE (sym->st_info) == STT_GNU_IFUNC) + { + htab->local_ifunc_resolver = 1; + plt = htab->elf.iplt; + relplt = htab->elf.irelplt; + rela.r_info = ELF32_R_INFO (0, R_PPC_IRELATIVE); + } + else + { + plt = htab->pltlocal; + if (bfd_link_pic (info)) + { + relplt = htab->relpltlocal; + rela.r_info = ELF32_R_INFO (0, R_PPC_RELATIVE); + } + else + { + loc = plt->contents + ent->plt.offset; + bfd_put_32 (info->output_bfd, val, loc); + continue; + } + } + + rela.r_offset = (ent->plt.offset + + plt->output_offset + + plt->output_section->vma); + rela.r_addend = val; + loc = relplt->contents + (relplt->reloc_count++ + * sizeof (Elf32_External_Rela)); + bfd_elf32_swap_reloca_out (info->output_bfd, &rela, loc); + } + if ((ent->glink_offset & 1) == 0) + { + unsigned char *p = ((unsigned char *) htab->glink->contents + + ent->glink_offset); + + write_glink_stub (NULL, ent, htab->elf.iplt, p, info); + ent->glink_offset |= 1; + } + } + + if (local_syms != NULL + && symtab_hdr->contents != (unsigned char *) local_syms) + { + if (!info->keep_memory) + free (local_syms); + else + symtab_hdr->contents = (unsigned char *) local_syms; + } + } + return TRUE; +} + +/* Finish up dynamic symbol handling. We set the contents of various + dynamic sections here. */ + +static bfd_boolean +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 = ppc_elf_hash_table (info); + struct plt_entry *ent; + +#ifdef DEBUG + fprintf (stderr, "ppc_elf_finish_dynamic_symbol called for %s", + h->root.root.string); +#endif + + if (!h->def_regular + || (h->type == STT_GNU_IFUNC && !bfd_link_pic (info))) + for (ent = h->plt.plist; ent != NULL; ent = ent->next) + if (ent->plt.offset != (bfd_vma) -1) + { + if (!h->def_regular) + { + /* Mark the symbol as undefined, rather than as + defined in the .plt section. Leave the value if + there were any relocations where pointer equality + matters (this is a clue for the dynamic linker, to + make function pointer comparisons work between an + application and shared library), otherwise set it + to zero. */ + sym->st_shndx = SHN_UNDEF; + if (!h->pointer_equality_needed) + sym->st_value = 0; + else if (!h->ref_regular_nonweak) + { + /* This breaks function pointer comparisons, but + that is better than breaking tests for a NULL + function pointer. */ + sym->st_value = 0; + } + } + else + { + /* Set the value of ifunc symbols in a non-pie + executable to the glink entry. This is to avoid + text relocations. We can't do this for ifunc in + allocate_dynrelocs, as we do for normal dynamic + function symbols with plt entries, because we need + to keep the original value around for the ifunc + relocation. */ + sym->st_shndx + = (_bfd_elf_section_from_bfd_section + (info->output_bfd, htab->glink->output_section)); + sym->st_value = (ent->glink_offset + + htab->glink->output_offset + + htab->glink->output_section->vma); + } + break; + } if (h->needs_copy) { @@ -10400,11 +11099,10 @@ else { /* xgettext:c-format */ - info->callbacks->einfo (_("%P: %s not defined in linker created %s\n"), - htab->elf.hgot->root.root.string, - (htab->elf.sgotplt != NULL - ? htab->elf.sgotplt->name - : htab->elf.sgot->name)); + _bfd_error_handler (_("%s not defined in linker created %pA"), + htab->elf.hgot->root.root.string, + (htab->elf.sgotplt != NULL + ? htab->elf.sgotplt : htab->elf.sgot)); bfd_set_error (bfd_error_bad_value); ret = FALSE; } @@ -10502,7 +11200,6 @@ unsigned char *p; unsigned char *endp; bfd_vma res0; - unsigned int i; /* * PIC glink code is the following: @@ -10539,28 +11236,7 @@ * add 0,11,11 * add 11,0,11 # r11 = index * 12 = reloc offset. * bctr - */ - static const unsigned int pic_plt_resolve[] = - { - ADDIS_11_11, - MFLR_0, - BCL_20_31, - ADDI_11_11, - MFLR_12, - MTLR_0, - SUB_11_11_12, - ADDIS_12_12, - LWZ_0_12, - LWZ_12_12, - MTCTR_0, - ADD_0_11_11, - ADD_11_0_11, - BCTR, - NOP, - NOP - }; - - /* + * * Non-PIC glink code is a little simpler. * * # ith PLT code stub. @@ -10582,30 +11258,6 @@ * add 11,0,11 # r11 = index * 12 = reloc offset. * bctr */ - static const unsigned int plt_resolve[] = - { - LIS_12, - ADDIS_11_11, - LWZ_0_12, - ADDI_11_11, - MTCTR_0, - ADD_0_11_11, - LWZ_12_12, - ADD_11_0_11, - BCTR, - NOP, - NOP, - NOP, - NOP, - NOP, - NOP, - NOP - }; - - if (ARRAY_SIZE (pic_plt_resolve) != GLINK_PLTRESOLVE / 4) - abort (); - if (ARRAY_SIZE (plt_resolve) != GLINK_PLTRESOLVE / 4) - abort (); /* Build the branch table, one for each plt entry (less one), and perhaps some padding. */ @@ -10662,80 +11314,83 @@ } /* Last comes the PLTresolve stub. */ + endp = p + GLINK_PLTRESOLVE; if (bfd_link_pic (info)) { bfd_vma bcl; - for (i = 0; i < ARRAY_SIZE (pic_plt_resolve); i++) - { - unsigned int insn = pic_plt_resolve[i]; - - if (htab->params->ppc476_workaround && insn == NOP) - insn = BA + 0; - bfd_put_32 (output_bfd, insn, p); - p += 4; - } - p -= 4 * ARRAY_SIZE (pic_plt_resolve); - bcl = (htab->glink->size - GLINK_PLTRESOLVE + 3*4 + htab->glink->output_section->vma + htab->glink->output_offset); - bfd_put_32 (output_bfd, - ADDIS_11_11 + PPC_HA (bcl - res0), p + 0*4); - bfd_put_32 (output_bfd, - ADDI_11_11 + PPC_LO (bcl - res0), p + 3*4); - bfd_put_32 (output_bfd, - ADDIS_12_12 + PPC_HA (got + 4 - bcl), p + 7*4); + bfd_put_32 (output_bfd, ADDIS_11_11 + PPC_HA (bcl - res0), p); + p += 4; + bfd_put_32 (output_bfd, MFLR_0, p); + p += 4; + bfd_put_32 (output_bfd, BCL_20_31, p); + p += 4; + bfd_put_32 (output_bfd, ADDI_11_11 + PPC_LO (bcl - res0), p); + p += 4; + bfd_put_32 (output_bfd, MFLR_12, p); + p += 4; + bfd_put_32 (output_bfd, MTLR_0, p); + p += 4; + bfd_put_32 (output_bfd, SUB_11_11_12, p); + p += 4; + bfd_put_32 (output_bfd, ADDIS_12_12 + PPC_HA (got + 4 - bcl), p); + p += 4; if (PPC_HA (got + 4 - bcl) == PPC_HA (got + 8 - bcl)) { - bfd_put_32 (output_bfd, - LWZ_0_12 + PPC_LO (got + 4 - bcl), p + 8*4); - bfd_put_32 (output_bfd, - LWZ_12_12 + PPC_LO (got + 8 - bcl), p + 9*4); + bfd_put_32 (output_bfd, LWZ_0_12 + PPC_LO (got + 4 - bcl), p); + p += 4; + bfd_put_32 (output_bfd, LWZ_12_12 + PPC_LO (got + 8 - bcl), p); + p += 4; } else { - bfd_put_32 (output_bfd, - LWZU_0_12 + PPC_LO (got + 4 - bcl), p + 8*4); - bfd_put_32 (output_bfd, - LWZ_12_12 + 4, p + 9*4); + bfd_put_32 (output_bfd, LWZU_0_12 + PPC_LO (got + 4 - bcl), p); + p += 4; + bfd_put_32 (output_bfd, LWZ_12_12 + 4, p); + p += 4; } + bfd_put_32 (output_bfd, MTCTR_0, p); + p += 4; + bfd_put_32 (output_bfd, ADD_0_11_11, p); } else { - for (i = 0; i < ARRAY_SIZE (plt_resolve); i++) - { - unsigned int insn = plt_resolve[i]; - - if (htab->params->ppc476_workaround && insn == NOP) - insn = BA + 0; - bfd_put_32 (output_bfd, insn, p); - p += 4; - } - p -= 4 * ARRAY_SIZE (plt_resolve); - - bfd_put_32 (output_bfd, - LIS_12 + PPC_HA (got + 4), p + 0*4); - bfd_put_32 (output_bfd, - ADDIS_11_11 + PPC_HA (-res0), p + 1*4); - bfd_put_32 (output_bfd, - ADDI_11_11 + PPC_LO (-res0), p + 3*4); + bfd_put_32 (output_bfd, LIS_12 + PPC_HA (got + 4), p); + p += 4; + bfd_put_32 (output_bfd, ADDIS_11_11 + PPC_HA (-res0), p); + p += 4; if (PPC_HA (got + 4) == PPC_HA (got + 8)) - { - bfd_put_32 (output_bfd, - LWZ_0_12 + PPC_LO (got + 4), p + 2*4); - bfd_put_32 (output_bfd, - LWZ_12_12 + PPC_LO (got + 8), p + 6*4); - } + bfd_put_32 (output_bfd, LWZ_0_12 + PPC_LO (got + 4), p); else - { - bfd_put_32 (output_bfd, - LWZU_0_12 + PPC_LO (got + 4), p + 2*4); - bfd_put_32 (output_bfd, - LWZ_12_12 + 4, p + 6*4); - } + bfd_put_32 (output_bfd, LWZU_0_12 + PPC_LO (got + 4), p); + p += 4; + bfd_put_32 (output_bfd, ADDI_11_11 + PPC_LO (-res0), p); + p += 4; + bfd_put_32 (output_bfd, MTCTR_0, p); + p += 4; + bfd_put_32 (output_bfd, ADD_0_11_11, p); + p += 4; + if (PPC_HA (got + 4) == PPC_HA (got + 8)) + bfd_put_32 (output_bfd, LWZ_12_12 + PPC_LO (got + 8), p); + else + bfd_put_32 (output_bfd, LWZ_12_12 + 4, p); } + p += 4; + bfd_put_32 (output_bfd, ADD_11_0_11, p); + p += 4; + bfd_put_32 (output_bfd, BCTR, p); + p += 4; + while (p < endp) + { + bfd_put_32 (output_bfd, + htab->params->ppc476_workaround ? BA : NOP, p); + p += 4; + } + BFD_ASSERT (p == endp); } if (htab->glink_eh_frame != NULL @@ -10774,14 +11429,9 @@ #define ELF_ARCH bfd_arch_powerpc #define ELF_TARGET_ID PPC32_ELF_DATA #define ELF_MACHINE_CODE EM_PPC -#ifdef __QNXTARGET__ -#define ELF_MAXPAGESIZE 0x1000 -#define ELF_COMMONPAGESIZE 0x1000 -#else #define ELF_MAXPAGESIZE 0x10000 -#define ELF_COMMONPAGESIZE 0x10000 -#endif -#define ELF_MINPAGESIZE 0x1000 +#define ELF_COMMONPAGESIZE 0x1000 +#define ELF_RELROPAGESIZE ELF_MAXPAGESIZE #define elf_info_to_howto ppc_elf_info_to_howto #ifdef EM_CYGNUS_POWERPC diff -Nru gdb-8.1/bfd/elf32-ppc.h gdb-8.2/bfd/elf32-ppc.h --- gdb-8.1/bfd/elf32-ppc.h 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/bfd/elf32-ppc.h 2018-09-05 07:27:13.000000000 +0000 @@ -32,6 +32,9 @@ /* Chooses the type of .plt. */ enum ppc_elf_plt_type plt_style; + /* Set if individual PLT call stubs should be aligned. */ + int plt_stub_align; + /* Whether to emit symbols for stubs. */ int emit_stub_syms; @@ -57,9 +60,10 @@ void ppc_elf_link_params (struct bfd_link_info *, struct ppc_elf_params *); int ppc_elf_select_plt_layout (bfd *, struct bfd_link_info *); +bfd_boolean ppc_elf_inline_plt (struct bfd_link_info *); asection *ppc_elf_tls_setup (bfd *, struct bfd_link_info *); bfd_boolean ppc_elf_tls_optimize (bfd *, struct bfd_link_info *); void ppc_elf_maybe_strip_sdata_syms (struct bfd_link_info *); -extern bfd_boolean ppc_elf_modify_segment_map (bfd *, - struct bfd_link_info * ATTRIBUTE_UNUSED); +extern bfd_boolean ppc_elf_modify_segment_map (bfd *, struct bfd_link_info *); extern bfd_boolean ppc_elf_section_processing (bfd *, Elf_Internal_Shdr *); +extern bfd_boolean ppc_finish_symbols (struct bfd_link_info *); diff -Nru gdb-8.1/bfd/elf32-pru.c gdb-8.2/bfd/elf32-pru.c --- gdb-8.1/bfd/elf32-pru.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-pru.c 2018-09-05 07:27:13.000000000 +0000 @@ -30,6 +30,7 @@ #include "elf-bfd.h" #include "elf/pru.h" #include "opcode/pru.h" +#include "libiberty.h" #define SWAP_VALS(A,B) \ do { \ @@ -291,38 +292,42 @@ static unsigned char elf_code_to_howto_index[R_PRU_ILLEGAL + 1]; /* Return the howto for relocation RTYPE. */ + static reloc_howto_type * lookup_howto (unsigned int rtype) { - static int initialized = 0; + static bfd_boolean initialized = FALSE; int i; int howto_tbl_size = (int) (sizeof (elf_pru_howto_table_rel) / sizeof (elf_pru_howto_table_rel[0])); - if (!initialized) + if (! initialized) { - initialized = 1; + initialized = TRUE; memset (elf_code_to_howto_index, 0xff, sizeof (elf_code_to_howto_index)); for (i = 0; i < howto_tbl_size; i++) elf_code_to_howto_index[elf_pru_howto_table_rel[i].type] = i; } - BFD_ASSERT (rtype <= R_PRU_ILLEGAL); + if (rtype > R_PRU_ILLEGAL) + return NULL; i = elf_code_to_howto_index[rtype]; if (i >= howto_tbl_size) - return 0; + return NULL; return elf_pru_howto_table_rel + i; } /* Map for converting BFD reloc types to PRU reloc types. */ + struct elf_reloc_map { bfd_reloc_code_real_type bfd_val; enum elf_pru_reloc_type elf_val; }; -static const struct elf_reloc_map pru_reloc_map[] = { +static const struct elf_reloc_map pru_reloc_map[] = +{ {BFD_RELOC_NONE, R_PRU_NONE}, {BFD_RELOC_PRU_16_PMEM, R_PRU_16_PMEM}, {BFD_RELOC_PRU_U16_PMEMIMM, R_PRU_U16_PMEMIMM}, @@ -346,6 +351,7 @@ /* Assorted hash table functions. */ /* Create an entry in a PRU ELF linker hash table. */ + static struct bfd_hash_entry * link_hash_newfunc (struct bfd_hash_entry *entry, struct bfd_hash_table *table, const char *string) @@ -368,14 +374,14 @@ /* Implement bfd_elf32_bfd_reloc_type_lookup: Given a BFD reloc type, return a howto structure. */ + static reloc_howto_type * pru_elf32_bfd_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, bfd_reloc_code_real_type code) { - int i; - for (i = 0; - i < (int) (sizeof (pru_reloc_map) / sizeof (struct elf_reloc_map)); - ++i) + unsigned int i; + + for (i = 0; i < ARRAY_SIZE (pru_reloc_map); ++i) if (pru_reloc_map[i].bfd_val == code) return lookup_howto ((unsigned int) pru_reloc_map[i].elf_val); return NULL; @@ -383,15 +389,14 @@ /* Implement bfd_elf32_bfd_reloc_name_lookup: Given a reloc name, return a howto structure. */ + static reloc_howto_type * pru_elf32_bfd_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, const char *r_name) { unsigned int i; - for (i = 0; - i < (sizeof (elf_pru_howto_table_rel) - / sizeof (elf_pru_howto_table_rel[0])); - i++) + + for (i = 0; i < ARRAY_SIZE (elf_pru_howto_table_rel); i++) if (elf_pru_howto_table_rel[i].name && strcasecmp (elf_pru_howto_table_rel[i].name, r_name) == 0) return &elf_pru_howto_table_rel[i]; @@ -401,15 +406,24 @@ /* Implement elf_info_to_howto: Given a ELF32 relocation, fill in a arelent structure. */ -static void -pru_elf32_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr, + +static bfd_boolean +pru_elf32_info_to_howto (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { unsigned int r_type; r_type = ELF32_R_TYPE (dst->r_info); - BFD_ASSERT (r_type < R_PRU_ILLEGAL); + if (r_type >= R_PRU_ILLEGAL) + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + cache_ptr->howto = lookup_howto (r_type); + return cache_ptr->howto != NULL; } /* Do the relocations that require special handling. */ @@ -525,7 +539,7 @@ bfd_signed_vma relocation; bfd_size_type octets = offset * bfd_octets_per_byte (abfd); bfd_byte *location; - unsigned long in1, in2, num; + unsigned long in1, in2; /* A hacked-up version of _bfd_final_link_relocate() follows. */ @@ -550,18 +564,23 @@ in1 = bfd_get_32 (abfd, location); in2 = bfd_get_32 (abfd, location + 4); - /* Extract the addend - should be zero per my understanding. */ - num = GET_INSN_FIELD (IMM16, in1) | (GET_INSN_FIELD (IMM16, in2) << 16); - BFD_ASSERT (!num); - - relocation += num; - - SET_INSN_FIELD (IMM16, in1, relocation & 0xffff); - SET_INSN_FIELD (IMM16, in2, relocation >> 16); + SET_INSN_FIELD (IMM16, in1, relocation >> 16); + SET_INSN_FIELD (IMM16, in2, relocation & 0xffff); bfd_put_32 (abfd, in1, location); bfd_put_32 (abfd, in2, location + 4); + /* Old GAS and LD versions have a bug, where the two + LDI instructions are swapped. Detect such object + files and bail. */ + if (GET_INSN_FIELD (RDSEL, in1) != RSEL_31_16) + { + /* xgettext:c-format */ + _bfd_error_handler (_("error: %pB: old incompatible object file detected"), + abfd); + return bfd_reloc_notsupported; + } + return bfd_reloc_ok; } @@ -580,6 +599,7 @@ return bfd_elf_generic_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd, error_message); + BFD_ASSERT (0); return pru_elf32_do_pmem_relocate (abfd, reloc_entry->howto, input_section, data, reloc_entry->address, @@ -667,15 +687,24 @@ Elf_Internal_Sym *local_syms, asection **local_sections) { + struct bfd_elf_section_data * esd = elf_section_data (input_section); Elf_Internal_Shdr *symtab_hdr; struct elf_link_hash_entry **sym_hashes; Elf_Internal_Rela *rel; Elf_Internal_Rela *relend; + bfd_boolean is_rel_reloc; symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; sym_hashes = elf_sym_hashes (input_bfd); relend = relocs + input_section->reloc_count; + /* See if we have a REL type relocation. */ + is_rel_reloc = (esd->rel.hdr != NULL); + /* Sanity check - only one type of relocation per section. + FIXME: Theoretically it is possible to have both types, + but if that happens how can we distinguish between the two ? */ + BFD_ASSERT (! is_rel_reloc || ! esd->rela.hdr); + for (rel = relocs; rel < relend; rel++) { reloc_howto_type *howto; @@ -688,6 +717,10 @@ const char *name = NULL; const char* msg = (const char*) NULL; bfd_boolean unresolved_reloc; + bfd_vma addend; + + /* If we are using a REL relocation then the addend should be empty. */ + BFD_ASSERT (! is_rel_reloc || rel->r_addend == 0); r_symndx = ELF32_R_SYM (rel->r_info); @@ -730,15 +763,52 @@ r = bfd_reloc_ok; break; + case R_PRU_U16: + if (is_rel_reloc) + { + unsigned long insn; + insn = bfd_get_32 (input_bfd, contents + rel->r_offset); + addend = GET_INSN_FIELD (IMM16, insn); + } + else + addend = rel->r_addend; + r = _bfd_final_link_relocate (howto, input_bfd, + input_section, contents, + rel->r_offset, relocation, + addend); + break; + case R_PRU_U16_PMEMIMM: case R_PRU_32_PMEM: case R_PRU_16_PMEM: + if (is_rel_reloc && howto->type == R_PRU_U16_PMEMIMM) + { + unsigned long insn; + insn = bfd_get_32 (input_bfd, contents + rel->r_offset); + addend = GET_INSN_FIELD (IMM16, insn) << 2; + } + else if (is_rel_reloc && howto->type == R_PRU_32_PMEM) + { + addend = bfd_get_32 (input_bfd, contents + rel->r_offset); + addend <<= 2; + } + else if (is_rel_reloc && howto->type == R_PRU_16_PMEM) + { + addend = bfd_get_16 (input_bfd, contents + rel->r_offset); + addend <<= 2; + } + else + { + BFD_ASSERT (!is_rel_reloc); + addend = rel->r_addend; + } r = pru_elf32_do_pmem_relocate (input_bfd, howto, input_section, contents, rel->r_offset, - relocation, rel->r_addend); + relocation, addend); break; case R_PRU_S10_PCREL: + BFD_ASSERT (! is_rel_reloc); r = pru_elf32_do_s10_pcrel_relocate (input_bfd, howto, input_section, contents, @@ -747,6 +817,7 @@ rel->r_addend); break; case R_PRU_U8_PCREL: + BFD_ASSERT (! is_rel_reloc); r = pru_elf32_do_u8_pcrel_relocate (input_bfd, howto, input_section, contents, @@ -755,29 +826,70 @@ rel->r_addend); break; case R_PRU_LDI32: + if (is_rel_reloc) + { + unsigned long in1, in2; + in1 = bfd_get_32 (input_bfd, contents + rel->r_offset); + in2 = bfd_get_32 (input_bfd, contents + rel->r_offset + 4); + addend = (GET_INSN_FIELD (IMM16, in1) << 16) + | GET_INSN_FIELD (IMM16, in2); + } + else + { + addend = rel->r_addend; + } r = pru_elf32_do_ldi32_relocate (input_bfd, howto, input_section, contents, rel->r_offset, relocation, - rel->r_addend); + addend); break; case R_PRU_GNU_DIFF8: case R_PRU_GNU_DIFF16: case R_PRU_GNU_DIFF32: case R_PRU_GNU_DIFF16_PMEM: case R_PRU_GNU_DIFF32_PMEM: + /* GNU extensions support only rela. */ + BFD_ASSERT (! is_rel_reloc); /* Nothing to do here, as contents already contain the diff value. */ r = bfd_reloc_ok; break; - default: + case R_PRU_BFD_RELOC_16: + if (is_rel_reloc) + addend = bfd_get_16 (input_bfd, contents + rel->r_offset); + else + addend = rel->r_addend; + r = _bfd_final_link_relocate (howto, input_bfd, + input_section, contents, + rel->r_offset, relocation, + addend); + break; + + case R_PRU_BFD_RELOC_32: + if (is_rel_reloc) + addend = bfd_get_32 (input_bfd, contents + rel->r_offset); + else + addend = rel->r_addend; + r = _bfd_final_link_relocate (howto, input_bfd, + input_section, contents, + rel->r_offset, relocation, + addend); + break; + + case R_PRU_GNU_BFD_RELOC_8: + BFD_ASSERT (! is_rel_reloc); r = _bfd_final_link_relocate (howto, input_bfd, input_section, contents, rel->r_offset, relocation, rel->r_addend); break; + + default: + BFD_ASSERT (0); + break; } } else @@ -1080,7 +1192,7 @@ continue; shrinked_insn_address = (sec->output_section->vma - + sec->output_offset + addr - count); + + sec->output_offset + addr); irel = elf_section_data (isec)->relocs; /* PR 12161: Read in the relocs for this section if necessary. */ @@ -1340,17 +1452,39 @@ if ((long) value >> 16 == 0) { + unsigned long insn; + /* Note that we've changed the relocs, section contents. */ elf_section_data (sec)->relocs = internal_relocs; elf_section_data (sec)->this_hdr.contents = contents; symtab_hdr->contents = (unsigned char *) isymbuf; - /* Delete bytes. */ - if (!pru_elf_relax_delete_bytes (abfd, sec, irel->r_offset + 4, 4)) + /* Make the second instruction load the 16-bit constant + into the full 32-bit register. */ + insn = bfd_get_32 (abfd, contents + irel->r_offset + 4); + + /* Old GAS and LD versions have a bug, where the two + LDI instructions are swapped. Detect such object + files and bail. */ + if (GET_INSN_FIELD (RDSEL, insn) != RSEL_15_0) + { + /* xgettext:c-format */ + _bfd_error_handler (_("error: %pB: old incompatible object file detected"), + abfd); + goto error_return; + } + + SET_INSN_FIELD (RDSEL, insn, RSEL_31_0); + bfd_put_32 (abfd, insn, contents + irel->r_offset + 4); + + /* Delete the first LDI instruction. Note that there should + be no relocations or symbols pointing to the second LDI + instruction. */ + if (!pru_elf_relax_delete_bytes (abfd, sec, irel->r_offset, 4)) goto error_return; - /* We're done with deletion of the second instruction. - Set a regular LDI relocation for the first instruction + /* We're done with deletion of the first instruction. + Set a regular LDI relocation for the second instruction we left to load the 16-bit value into the 32-bit register. */ irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info), @@ -1452,12 +1586,17 @@ #define bfd_elf32_bfd_reloc_type_lookup pru_elf32_bfd_reloc_type_lookup #define bfd_elf32_bfd_reloc_name_lookup pru_elf32_bfd_reloc_name_lookup -/* elf_info_to_howto (using RELA relocations). */ - #define elf_info_to_howto pru_elf32_info_to_howto +#define elf_info_to_howto_rel NULL /* elf backend functions. */ +/* TI folks like to use a mix of REL and RELA relocations. See also + the MSP430 and TI C6X backends. */ +#define elf_backend_may_use_rel_p 1 +#define elf_backend_may_use_rela_p 1 +#define elf_backend_default_use_rela_p 1 + #define elf_backend_rela_normal 1 #define elf_backend_relocate_section pru_elf32_relocate_section diff -Nru gdb-8.1/bfd/elf32-rl78.c gdb-8.2/bfd/elf32-rl78.c --- gdb-8.1/bfd/elf32-rl78.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-rl78.c 2018-09-05 07:27:13.000000000 +0000 @@ -278,8 +278,8 @@ /* Set the howto pointer for an RL78 ELF reloc. */ -static void -rl78_info_to_howto_rela (bfd * abfd ATTRIBUTE_UNUSED, +static bfd_boolean +rl78_info_to_howto_rela (bfd * abfd, arelent * cache_ptr, Elf_Internal_Rela * dst) { @@ -289,10 +289,13 @@ if (r_type >= (unsigned int) R_RL78_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid RL78 reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = rl78_elf_howto_table + r_type; + return TRUE; } static bfd_vma @@ -367,7 +370,7 @@ if (rl78_stack_top < NUM_STACK_ENTRIES) \ rl78_stack [rl78_stack_top ++] = (val); \ else \ - _bfd_error_handler (_("Internal Error: RL78 reloc stack overflow")); \ + _bfd_error_handler (_("internal error: RL78 reloc stack overflow")); \ } \ while (0) @@ -378,7 +381,7 @@ (dest) = rl78_stack [-- rl78_stack_top];\ else \ { \ - _bfd_error_handler (_("Internal Error: RL78 reloc stack underflow")); \ + _bfd_error_handler (_("internal error: RL78 reloc stack underflow")); \ (dest) = 0; \ } \ } \ @@ -1047,7 +1050,8 @@ { relocation = 0; if (h->root.type != bfd_link_hash_undefweak) - _bfd_error_handler (_("Warning: RL78_SYM reloc with an unknown symbol")); + _bfd_error_handler + (_("warning: RL78_SYM reloc with an unknown symbol")); } (void) rl78_compute_complex_reloc (r_type, relocation, input_section); break; @@ -1078,7 +1082,7 @@ and emit a more helpful error message. */ if (r_type == R_RL78_DIR24S_PCREL) /* xgettext:c-format */ - msg = _("%B(%A): error: call to undefined function '%s'"); + msg = _("%pB(%pA): error: call to undefined function '%s'"); else (*info->callbacks->reloc_overflow) (info, (h ? &h->root : NULL), name, howto->name, (bfd_vma) 0, @@ -1092,27 +1096,27 @@ case bfd_reloc_other: /* xgettext:c-format */ - msg = _("%B(%A): warning: unaligned access to symbol '%s' in the small data area"); + msg = _("%pB(%pA): warning: unaligned access to symbol '%s' in the small data area"); break; case bfd_reloc_outofrange: /* xgettext:c-format */ - msg = _("%B(%A): internal error: out of range error"); + msg = _("%pB(%pA): internal error: out of range error"); break; case bfd_reloc_notsupported: /* xgettext:c-format */ - msg = _("%B(%A): internal error: unsupported relocation error"); + msg = _("%pB(%pA): internal error: unsupported relocation error"); break; case bfd_reloc_dangerous: /* xgettext:c-format */ - msg = _("%B(%A): internal error: dangerous relocation"); + msg = _("%pB(%pA): internal error: dangerous relocation"); break; default: /* xgettext:c-format */ - msg = _("%B(%A): internal error: unknown error"); + msg = _("%pB(%pA): internal error: unknown error"); break; } @@ -1199,8 +1203,8 @@ _bfd_error_handler /* xgettext:c-format */ - (_("RL78 ABI conflict: G10 file %B cannot be linked" - " with %s file %B"), + (_("RL78 ABI conflict: G10 file %pB cannot be linked" + " with %s file %pB"), ibfd, rl78_cpu_name (out_cpu), obfd); } else @@ -1216,7 +1220,7 @@ _bfd_error_handler /* xgettext:c-format */ - (_("RL78 ABI conflict: cannot link %s file %B with %s file %B"), + (_("RL78 ABI conflict: cannot link %s file %pB with %s file %pB"), rl78_cpu_name (in_cpu), ibfd, rl78_cpu_name (out_cpu), obfd); } @@ -1229,11 +1233,11 @@ if (old_flags & E_FLAG_RL78_64BIT_DOUBLES) /* xgettext:c-format */ - _bfd_error_handler (_("- %B is 64-bit, %B is not"), + _bfd_error_handler (_("- %pB is 64-bit, %pB is not"), obfd, ibfd); else /* xgettext:c-format */ - _bfd_error_handler (_("- %B is 64-bit, %B is not"), + _bfd_error_handler (_("- %pB is 64-bit, %pB is not"), ibfd, obfd); error = TRUE; } diff -Nru gdb-8.1/bfd/elf32-rx.c gdb-8.2/bfd/elf32-rx.c --- gdb-8.1/bfd/elf32-rx.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-rx.c 2018-09-05 07:27:13.000000000 +0000 @@ -300,8 +300,8 @@ /* Set the howto pointer for an RX ELF reloc. */ -static void -rx_info_to_howto_rela (bfd * abfd ATTRIBUTE_UNUSED, +static bfd_boolean +rx_info_to_howto_rela (bfd * abfd, arelent * cache_ptr, Elf_Internal_Rela * dst) { @@ -311,10 +311,21 @@ if (r_type >= (unsigned int) R_RX_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid RX reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = rx_elf_howto_table + r_type; + if (cache_ptr->howto->name == NULL) + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + return TRUE; } static bfd_vma @@ -592,14 +603,14 @@ if (table_end_cache <= entry_vma || entry_vma < table_start_cache) { /* xgettext:c-format */ - _bfd_error_handler (_("%B:%A: table entry %s outside table"), + _bfd_error_handler (_("%pB:%pA: table entry %s outside table"), input_bfd, input_section, name); } else if ((int) (entry_vma - table_start_cache) % 4) { /* xgettext:c-format */ - _bfd_error_handler (_("%B:%A: table entry %s not word-aligned within table"), + _bfd_error_handler (_("%pB:%pA: table entry %s not word-aligned within table"), input_bfd, input_section, name); } @@ -660,13 +671,20 @@ r = bfd_reloc_ok; -#define RANGE(a,b) if (a > (long) relocation || (long) relocation > b) r = bfd_reloc_overflow -#define ALIGN(m) if (relocation & m) r = bfd_reloc_other; -#define OP(i) (contents[rel->r_offset + (i)]) +#define RANGE(a,b) \ + if (a > (long) relocation || (long) relocation > b) \ + r = bfd_reloc_overflow +#define ALIGN(m) \ + if (relocation & m) \ + r = bfd_reloc_other +#define OP(i) \ + (contents[rel->r_offset + (i)]) #define WARN_REDHAT(type) \ - /* xgettext:c-format */ \ - _bfd_error_handler (_("%B:%A: Warning: deprecated Red Hat reloc " type " detected against: %s."), \ - input_bfd, input_section, name) + /* xgettext:c-format */ \ + _bfd_error_handler \ + (_("%pB:%pA: warning: deprecated Red Hat reloc " \ + "%s detected against: %s"), \ + input_bfd, input_section, #type, name) /* Check for unsafe relocs in PID mode. These are any relocs where an absolute address is being computed. There are special cases @@ -684,9 +702,12 @@ && strcmp (name, "__romdatastart") != 0 \ && !saw_subtract) \ /* xgettext:c-format */ \ - _bfd_error_handler (_("%B(%A): unsafe PID relocation %s at %#Lx (against %s in %s)"), \ + _bfd_error_handler (_("%pB(%pA): unsafe PID relocation %s " \ + "at %#" PRIx64 " (against %s in %s)"), \ input_bfd, input_section, howto->name, \ - input_section->output_section->vma + input_section->output_offset + rel->r_offset, \ + (uint64_t) (input_section->output_section->vma \ + + input_section->output_offset \ + + rel->r_offset), \ name, sec->name); \ } \ while (0) @@ -1264,7 +1285,8 @@ + sec->output_offset + rel->r_addend); else - _bfd_error_handler (_("Warning: RX_SYM reloc with an unknown symbol")); + _bfd_error_handler + (_("warning: RX_SYM reloc with an unknown symbol")); } break; @@ -1432,7 +1454,7 @@ and emit a more helpful error message. */ if (r_type == R_RX_DIR24S_PCREL) /* xgettext:c-format */ - msg = _("%B(%A): error: call to undefined function '%s'"); + msg = _("%pB(%pA): error: call to undefined function '%s'"); else (*info->callbacks->reloc_overflow) (info, (h ? &h->root : NULL), name, howto->name, (bfd_vma) 0, @@ -1446,27 +1468,27 @@ case bfd_reloc_other: /* xgettext:c-format */ - msg = _("%B(%A): warning: unaligned access to symbol '%s' in the small data area"); + msg = _("%pB(%pA): warning: unaligned access to symbol '%s' in the small data area"); break; case bfd_reloc_outofrange: /* xgettext:c-format */ - msg = _("%B(%A): internal error: out of range error"); + msg = _("%pB(%pA): internal error: out of range error"); break; case bfd_reloc_notsupported: /* xgettext:c-format */ - msg = _("%B(%A): internal error: unsupported relocation error"); + msg = _("%pB(%pA): internal error: unsupported relocation error"); break; case bfd_reloc_dangerous: /* xgettext:c-format */ - msg = _("%B(%A): internal error: dangerous relocation"); + msg = _("%pB(%pA): internal error: dangerous relocation"); break; default: /* xgettext:c-format */ - msg = _("%B(%A): internal error: unknown error"); + msg = _("%pB(%pA): internal error: unknown error"); break; } @@ -3143,8 +3165,8 @@ } else { - _bfd_error_handler (_("There is a conflict merging the" - " ELF header flags from %B"), + _bfd_error_handler (_("there is a conflict merging the" + " ELF header flags from %pB"), ibfd); _bfd_error_handler (_(" the input file's flags: %s"), describe_flags (new_flags)); @@ -3755,7 +3777,7 @@ && h->type != bfd_link_hash_defweak)) { /* xgettext:c-format */ - _bfd_error_handler (_("%B:%A: table %s missing corresponding %s"), + _bfd_error_handler (_("%pB:%pA: table %s missing corresponding %s"), abfd, sec, name, buf); return TRUE; } @@ -3763,7 +3785,7 @@ if (h->u.def.section != ent->u.def.section) { /* xgettext:c-format */ - _bfd_error_handler (_("%B:%A: %s and %s must be in the same input section"), + _bfd_error_handler (_("%pB:%pA: %s and %s must be in the same input section"), h->u.def.section->owner, h->u.def.section, name, buf); return TRUE; diff -Nru gdb-8.1/bfd/elf32-s12z.c gdb-8.2/bfd/elf32-s12z.c --- gdb-8.1/bfd/elf32-s12z.c 1970-01-01 00:00:00.000000000 +0000 +++ gdb-8.2/bfd/elf32-s12z.c 2018-09-05 07:44:28.000000000 +0000 @@ -0,0 +1,270 @@ +/* Freescale S12Z-specific support for 32-bit ELF + Copyright (C) 1999-2018 Free Software Foundation, Inc. + (Heavily copied from the D10V port by Martin Hunt (hunt@cygnus.com)) + + 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 3 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., 51 Franklin Street - Fifth Floor, Boston, + MA 02110-1301, USA. */ + +#include "sysdep.h" +#include "bfd.h" +#include "bfdlink.h" +#include "libbfd.h" +#include "elf-bfd.h" + +#include "elf/s12z.h" + +/* Relocation functions. */ +static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup + (bfd *, bfd_reloc_code_real_type); +static bfd_boolean s12z_info_to_howto_rel + (bfd *, arelent *, Elf_Internal_Rela *); + +static bfd_reloc_status_type +shift_addend_reloc (bfd *abfd, arelent *reloc_entry, struct bfd_symbol *symbol ATTRIBUTE_UNUSED, + void *data ATTRIBUTE_UNUSED, asection *input_section ATTRIBUTE_UNUSED, + bfd *output ATTRIBUTE_UNUSED, char **msg ATTRIBUTE_UNUSED) +{ + /* This is a really peculiar reloc, which is done for compatibility + with the Freescale toolchain. + + That toolchain appears to (ab)use the lowest 15 bits of the addend for + the purpose of holding flags. The purpose of these flags are unknown. + So in this function, when writing the bfd we left shift the addend by + 15, and when reading we right shift it by 15 (discarding the lower bits). + + This allows the linker to work with object files generated by Freescale, + as well as by Gas. */ + + if (abfd->is_linker_input) + reloc_entry->addend >>= 15; + else + reloc_entry->addend <<= 15; + + return bfd_reloc_continue; +} + +#define USE_REL 0 + +static reloc_howto_type elf_s12z_howto_table[] = +{ + /* This reloc does nothing. */ + HOWTO (R_S12Z_NONE, /* type */ + 0, /* rightshift */ + 3, /* size (0 = byte, 1 = short, 2 = long) */ + 0, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont,/* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_S12Z_NONE", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* A 24 bit absolute relocation emitted by the OPR mode operands */ + HOWTO (R_S12Z_OPR, /* type */ + 0, /* rightshift */ + 5, /* size (0 = byte, 1 = short, 2 = long) */ + 24, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + shift_addend_reloc, + "R_S12Z_OPR", /* name */ + FALSE, /* partial_inplace */ + 0x00ffffff, /* src_mask */ + 0x00ffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* The purpose of this reloc is not known */ + HOWTO (R_S12Z_UKNWN_2, /* type */ + 0, /* rightshift */ + 3, /* size (0 = byte, 1 = short, 2 = long) */ + 0, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont,/* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_S12Z_UKNWN_2", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* A 15 bit PC-rel relocation */ + HOWTO (R_S12Z_PCREL_7_15, /* type */ + 0, /* rightshift */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ + 15, /* bitsize */ + TRUE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + shift_addend_reloc, + "R_S12Z_PCREL_7_15", /* name */ + FALSE, /* partial_inplace */ + 0x00, /* src_mask */ + 0x007fff, /* dst_mask */ + TRUE), /* pcrel_offset */ + + /* A 24 bit absolute relocation emitted by EXT24 mode operands */ + HOWTO (R_S12Z_EXT24, /* type */ + 0, /* rightshift */ + 5, /* size (0 = byte, 1 = short, 2 = long) */ + 24, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_S12Z_EXT24", /* name */ + FALSE, /* partial_inplace */ + 0x00ffffff, /* src_mask */ + 0x00ffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* The purpose of this reloc is not known */ + HOWTO (R_S12Z_UKNWN_3, /* type */ + 0, /* rightshift */ + 3, /* size (0 = byte, 1 = short, 2 = long) */ + 0, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont,/* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_S12Z_UKNWN_3", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* A 32 bit absolute relocation */ + HOWTO (R_S12Z_EXT32, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_S12Z_EXT32", /* name */ + FALSE, /* partial_inplace */ + 0xffffffff, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ +}; + +/* Map BFD reloc types to S12Z ELF reloc types. */ + +struct s12z_reloc_map +{ + bfd_reloc_code_real_type bfd_reloc_val; + unsigned char elf_reloc_val; +}; + +static const struct s12z_reloc_map s12z_reloc_map[] = +{ + /* bfd reloc val */ /* elf reloc val */ + {BFD_RELOC_NONE, R_S12Z_NONE}, + {BFD_RELOC_32, R_S12Z_EXT32}, + {BFD_RELOC_24, R_S12Z_EXT24}, + {BFD_RELOC_16_PCREL, R_S12Z_PCREL_7_15} +}; + +static reloc_howto_type * +bfd_elf32_bfd_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, + bfd_reloc_code_real_type code) +{ + unsigned int i; + + for (i = 0; + i < sizeof (s12z_reloc_map) / sizeof (struct s12z_reloc_map); + i++) + { + if (s12z_reloc_map[i].bfd_reloc_val == code) + { + return &elf_s12z_howto_table[s12z_reloc_map[i].elf_reloc_val]; + } + } + + printf ("%s:%d Not found type %d\n", __FILE__, __LINE__, code); + + return NULL; +} + +static reloc_howto_type * +bfd_elf32_bfd_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, + const char *r_name) +{ + unsigned int i; + + printf ("%s:%d Looking up %s\n", __FILE__, __LINE__, r_name); + + for (i = 0; + i < (sizeof (elf_s12z_howto_table) + / sizeof (elf_s12z_howto_table[0])); + i++) + if (elf_s12z_howto_table[i].name != NULL + && strcasecmp (elf_s12z_howto_table[i].name, r_name) == 0) + return &elf_s12z_howto_table[i]; + + return NULL; +} + +/* Set the howto pointer for an S12Z ELF reloc. */ + +static bfd_boolean +s12z_info_to_howto_rel (bfd *abfd, + arelent *cache_ptr, Elf_Internal_Rela *dst) +{ + unsigned int r_type = ELF32_R_TYPE (dst->r_info); + + if (r_type >= (unsigned int) R_S12Z_max) + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + + cache_ptr->howto = &elf_s12z_howto_table[r_type]; + return TRUE; +} + +static bfd_boolean +s12z_elf_set_mach_from_flags (bfd *abfd) +{ + bfd_default_set_arch_mach (abfd, bfd_arch_s12z, 0); // bfd_mach_s12z); + + return TRUE; +} + +#define ELF_ARCH bfd_arch_s12z +#define ELF_TARGET_ID 0 +#define ELF_MACHINE_CODE EM_S12Z +#define ELF_MAXPAGESIZE 0x1000 + +#define TARGET_BIG_SYM s12z_elf32_vec +#define TARGET_BIG_NAME "elf32-s12z" + +#define elf_info_to_howto NULL +#define elf_info_to_howto_rel s12z_info_to_howto_rel +#define elf_backend_object_p s12z_elf_set_mach_from_flags +#define elf_backend_final_write_processing NULL +#define elf_backend_can_gc_sections 1 + +#include "elf32-target.h" diff -Nru gdb-8.1/bfd/elf32-s390.c gdb-8.2/bfd/elf32-s390.c --- gdb-8.1/bfd/elf32-s390.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-s390.c 2018-09-05 07:44:28.000000000 +0000 @@ -323,12 +323,13 @@ /* We need to use ELF32_R_TYPE so we have our own copy of this function, and elf32-s390.c has its own copy. */ -static void -elf_s390_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +elf_s390_info_to_howto (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { unsigned int r_type = ELF32_R_TYPE(dst->r_info); + switch (r_type) { case R_390_GNU_VTINHERIT: @@ -343,12 +344,15 @@ if (r_type >= sizeof (elf_howto_table) / sizeof (elf_howto_table[0])) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid relocation type %d"), - abfd, (int) r_type); - r_type = R_390_NONE; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = &elf_howto_table[r_type]; } + + return TRUE; } /* A relocation function which doesn't do anything. */ @@ -953,7 +957,7 @@ if (r_symndx >= NUM_SHDR_ENTRIES (symtab_hdr)) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: bad symbol index: %d"), + _bfd_error_handler (_("%pB: bad symbol index: %d"), abfd, r_symndx); return FALSE; } @@ -1181,7 +1185,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: `%s' accessed both as normal and thread local symbol"), + (_("%pB: `%s' accessed both as normal and thread local symbol"), abfd, h->root.root.string); return FALSE; } @@ -1848,7 +1852,7 @@ info->flags |= DF_TEXTREL; info->callbacks->minfo - (_("%B: dynamic relocation against `%T' in read-only section `%A'\n"), + (_("%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"), sec->owner, h->root.root.string, sec); /* Not an error, just cut short the traversal. */ @@ -2134,10 +2138,10 @@ howto = elf_howto_table + ELF32_R_TYPE (rel->r_info); _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): invalid instruction for TLS relocation %s"), + (_("%pB(%pA+%#" PRIx64 "): invalid instruction for TLS relocation %s"), input_bfd, input_section, - rel->r_offset, + (uint64_t) rel->r_offset, howto->name); bfd_set_error (bfd_error_bad_value); } @@ -2601,6 +2605,9 @@ case R_390_8: case R_390_16: case R_390_32: + if ((input_section->flags & SEC_ALLOC) == 0) + break; + if (h != NULL && s390_is_ifunc_symbol_p (h) && h->def_regular) @@ -2662,9 +2669,6 @@ } } - if ((input_section->flags & SEC_ALLOC) == 0) - break; - if ((bfd_link_pic (info) && (h == NULL || (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT @@ -3201,10 +3205,11 @@ rel->r_offset) != (bfd_vma) -1) _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"), + (_("%pB(%pA+%#" PRIx64 "): " + "unresolvable %s relocation against symbol `%s'"), input_bfd, input_section, - rel->r_offset, + (uint64_t) rel->r_offset, howto->name, h->root.root.string); @@ -3258,9 +3263,9 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): reloc against `%s': error %d"), + (_("%pB(%pA+%#" PRIx64 "): reloc against `%s': error %d"), input_bfd, input_section, - rel->r_offset, name, (int) r); + (uint64_t) rel->r_offset, name, (int) r); return FALSE; } } @@ -3937,7 +3942,7 @@ case NT_PRPSINFO: { - char data[124] = { 0 }; + char data[124] ATTRIBUTE_NONSTRING = { 0 }; const char *fname, *psargs; va_start (ap, note_type); @@ -3946,7 +3951,16 @@ va_end (ap); strncpy (data + 28, fname, 16); + DIAGNOSTIC_PUSH; + /* GCC 8.1 warns about 80 equals destination size with + -Wstringop-truncation: + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85643 + */ +#if GCC_VERSION == 8001 + DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION; +#endif strncpy (data + 44, psargs, 80); + DIAGNOSTIC_POP; return elfcore_write_note (abfd, buf, bufsiz, "CORE", note_type, &data, sizeof (data)); } @@ -4044,7 +4058,6 @@ #define elf_backend_grok_psinfo elf_s390_grok_psinfo #define elf_backend_write_core_note elf_s390_write_core_note #define elf_backend_plt_sym_val elf_s390_plt_sym_val -#define elf_backend_add_symbol_hook elf_s390_add_symbol_hook #define elf_backend_sort_relocs_p elf_s390_elf_sort_relocs_p #define bfd_elf32_mkobject elf_s390_mkobject diff -Nru gdb-8.1/bfd/elf32-score7.c gdb-8.2/bfd/elf32-score7.c --- gdb-8.1/bfd/elf32-score7.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-score7.c 2018-09-05 07:27:13.000000000 +0000 @@ -2214,7 +2214,7 @@ /* Score backend functions. */ -void +bfd_boolean s7_bfd_score_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *bfd_reloc, Elf_Internal_Rela *elf_reloc) @@ -2223,9 +2223,10 @@ r_type = ELF32_R_TYPE (elf_reloc->r_info); if (r_type >= ARRAY_SIZE (elf32_score_howto_table)) - bfd_reloc->howto = NULL; - else - bfd_reloc->howto = &elf32_score_howto_table[r_type]; + return FALSE; + + bfd_reloc->howto = &elf32_score_howto_table[r_type]; + return TRUE; } /* Relocate an score ELF section. */ @@ -2288,7 +2289,8 @@ r_symndx = ELF32_R_SYM (rel->r_info); r_type = ELF32_R_TYPE (rel->r_info); - s7_bfd_score_info_to_howto (input_bfd, &bfd_reloc, (Elf_Internal_Rela *) rel); + if (! s7_bfd_score_info_to_howto (input_bfd, &bfd_reloc, (Elf_Internal_Rela *) rel)) + continue; howto = bfd_reloc.howto; h = NULL; @@ -2627,7 +2629,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: Malformed reloc detected for section %A"), abfd, sec); + (_("%pB: malformed reloc detected for section %pA"), abfd, sec); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -2681,8 +2683,8 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: CALL15 reloc at %#Lx not against global symbol"), - abfd, rel->r_offset); + (_("%pB: CALL15 reloc at %#" PRIx64 " not against global symbol"), + abfd, (uint64_t) rel->r_offset); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -3850,7 +3852,7 @@ if (((in_flags & EF_SCORE_PIC) != 0) != ((out_flags & EF_SCORE_PIC) != 0)) { - _bfd_error_handler (_("%B: warning: linking PIC files with non-PIC files"), ibfd); + _bfd_error_handler (_("%pB: warning: linking PIC files with non-PIC files"), ibfd); } /* Maybe dependency fix compatibility should be checked here. */ @@ -3871,5 +3873,4 @@ return _bfd_elf_new_section_hook (abfd, sec); } -#define elf_backend_omit_section_dynsym \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true) +#define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all diff -Nru gdb-8.1/bfd/elf32-score.c gdb-8.2/bfd/elf32-score.c --- gdb-8.1/bfd/elf32-score.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-score.c 2018-09-05 07:27:13.000000000 +0000 @@ -2375,7 +2375,7 @@ } /* Score backend functions. */ -static void +static bfd_boolean s3_bfd_score_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *bfd_reloc, Elf_Internal_Rela *elf_reloc) @@ -2384,9 +2384,10 @@ r_type = ELF32_R_TYPE (elf_reloc->r_info); if (r_type >= ARRAY_SIZE (elf32_score_howto_table)) - bfd_reloc->howto = NULL; - else - bfd_reloc->howto = &elf32_score_howto_table[r_type]; + return FALSE; + + bfd_reloc->howto = &elf32_score_howto_table[r_type]; + return TRUE; } /* Relocate an score ELF section. */ @@ -2448,7 +2449,8 @@ r_symndx = ELF32_R_SYM (rel->r_info); r_type = ELF32_R_TYPE (rel->r_info); - s3_bfd_score_info_to_howto (input_bfd, &bfd_reloc, (Elf_Internal_Rela *) rel); + if (! s3_bfd_score_info_to_howto (input_bfd, &bfd_reloc, (Elf_Internal_Rela *) rel)) + continue; howto = bfd_reloc.howto; h = NULL; @@ -2741,7 +2743,7 @@ /* Use bfd_reloc_other to check lw48, sw48 word align. */ case bfd_reloc_other: - msg = _("address not word align"); + msg = _("address not word aligned"); goto common_error; default: @@ -2822,7 +2824,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: Malformed reloc detected for section %A"), abfd, sec); + (_("%pB: malformed reloc detected for section %pA"), abfd, sec); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -2876,8 +2878,8 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: CALL15 reloc at %#Lx not against global symbol"), - abfd, rel->r_offset); + (_("%pB: CALL15 reloc at %#" PRIx64 " not against global symbol"), + abfd, (uint64_t) rel->r_offset); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -4045,7 +4047,7 @@ if (((in_flags & EF_SCORE_PIC) != 0) != ((out_flags & EF_SCORE_PIC) != 0)) _bfd_error_handler - (_("%B: warning: linking PIC files with non-PIC files"), ibfd); + (_("%pB: warning: linking PIC files with non-PIC files"), ibfd); /* FIXME: Maybe dependency fix compatibility should be checked here. */ @@ -4069,7 +4071,7 @@ /*****************************************************************************/ /* s3_s7: backend hooks. */ -static void +static bfd_boolean _bfd_score_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *bfd_reloc, Elf_Internal_Rela *elf_reloc) @@ -4450,7 +4452,7 @@ #define ELF_MACHINE_ALT1 EM_SCORE_OLD #define ELF_MAXPAGESIZE 0x8000 -#define elf_info_to_howto 0 +#define elf_info_to_howto NULL #define elf_info_to_howto_rel _bfd_score_info_to_howto #define elf_backend_relocate_section _bfd_score_elf_relocate_section #define elf_backend_check_relocs _bfd_score_elf_check_relocs @@ -4466,8 +4468,7 @@ _bfd_score_elf_always_size_sections #define elf_backend_size_dynamic_sections \ _bfd_score_elf_size_dynamic_sections -#define elf_backend_omit_section_dynsym \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true) +#define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all #define elf_backend_create_dynamic_sections \ _bfd_score_elf_create_dynamic_sections #define elf_backend_finish_dynamic_symbol \ diff -Nru gdb-8.1/bfd/elf32-score.h gdb-8.2/bfd/elf32-score.h --- gdb-8.1/bfd/elf32-score.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-score.h 2018-09-05 07:27:13.000000000 +0000 @@ -30,7 +30,7 @@ struct elf_link_hash_entry *, bfd_boolean); -extern void +extern bfd_boolean s7_bfd_score_info_to_howto (bfd *, arelent *, Elf_Internal_Rela *); extern bfd_boolean diff -Nru gdb-8.1/bfd/elf32-sh64.c gdb-8.2/bfd/elf32-sh64.c --- gdb-8.1/bfd/elf32-sh64.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-sh64.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,813 +0,0 @@ -/* SuperH SH64-specific support for 32-bit ELF - Copyright (C) 2000-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define SH64_ELF - -#include "sysdep.h" -#include "bfd.h" -#include "elf-bfd.h" -#include "../opcodes/sh64-opc.h" -#include "elf32-sh64.h" - -/* Add a suffix for datalabel indirection symbols. It must not match any - other symbols; user symbols with or without version or other - decoration. It must only be used internally and not emitted by any - means. */ -#define DATALABEL_SUFFIX " DL" - -/* Used to hold data for function called through bfd_map_over_sections. */ -struct sh64_find_section_vma_data - { - asection *section; - bfd_vma addr; - }; - -static bfd_boolean sh64_elf_new_section_hook - (bfd *, asection *); -static bfd_boolean sh64_elf_copy_private_data - (bfd *, bfd *); -static bfd_boolean sh64_elf_merge_private_data - (bfd *, struct bfd_link_info *); -static bfd_boolean sh64_elf_fake_sections - (bfd *, Elf_Internal_Shdr *, asection *); -static bfd_boolean sh64_elf_set_private_flags - (bfd *, flagword); -static bfd_boolean sh64_elf_set_mach_from_flags - (bfd *); -static bfd_boolean shmedia_prepare_reloc - (struct bfd_link_info *, bfd *, asection *, bfd_byte *, - const Elf_Internal_Rela *, bfd_vma *); -static int sh64_elf_get_symbol_type - (Elf_Internal_Sym *, int); -static bfd_boolean sh64_elf_add_symbol_hook - (bfd *, struct bfd_link_info *, Elf_Internal_Sym *, const char **, - flagword *, asection **, bfd_vma *); -static int sh64_elf_link_output_symbol_hook - (struct bfd_link_info *, const char *, Elf_Internal_Sym *, asection *, - struct elf_link_hash_entry *); -static bfd_boolean sh64_backend_section_from_shdr - (bfd *, Elf_Internal_Shdr *, const char *, int); -static void sh64_elf_final_write_processing - (bfd *, bfd_boolean); -static bfd_boolean sh64_bfd_elf_copy_private_section_data - (bfd *, asection *, bfd *, asection *); -static void sh64_find_section_for_address - (bfd *, asection *, void *); - -/* Let elf32-sh.c handle the "bfd_" definitions, so we only have to - intrude with an #ifndef around the function definition. */ -#define sh_elf_copy_private_data sh64_elf_copy_private_data -#define sh_elf_merge_private_data sh64_elf_merge_private_data -#define sh_elf_set_private_flags sh64_elf_set_private_flags -/* Typo in elf32-sh.c (and unlinear name). */ -#define bfd_elf32_bfd_set_private_flags sh64_elf_set_private_flags -#define sh_elf_set_mach_from_flags sh64_elf_set_mach_from_flags - -#define elf_backend_sign_extend_vma 1 -#define elf_backend_fake_sections sh64_elf_fake_sections -#define elf_backend_get_symbol_type sh64_elf_get_symbol_type -#define elf_backend_add_symbol_hook sh64_elf_add_symbol_hook -#define elf_backend_link_output_symbol_hook \ - sh64_elf_link_output_symbol_hook -#define elf_backend_merge_symbol_attribute sh64_elf_merge_symbol_attribute -#define elf_backend_final_write_processing sh64_elf_final_write_processing -#define elf_backend_section_from_shdr sh64_backend_section_from_shdr -#define elf_backend_special_sections sh64_elf_special_sections -#define elf_backend_section_flags sh64_elf_section_flags - -#define bfd_elf32_new_section_hook sh64_elf_new_section_hook - -/* For objcopy, we need to set up sh64_elf_section_data (asection *) from - incoming section flags. This is otherwise done in sh64elf.em when - linking or tc-sh64.c when assembling. */ -#define bfd_elf32_bfd_copy_private_section_data \ - sh64_bfd_elf_copy_private_section_data - -/* This COFF-only function (only compiled with COFF support, making - ELF-only chains problematic) returns TRUE early for SH4, so let's just - define it TRUE here. */ -#define _bfd_sh_align_load_span(a,b,c,d,e,f,g,h,i,j) \ - ((void) f, (void) h, (void) i, TRUE) - -#define GOT_BIAS (-((long)-32768)) -#define INCLUDE_SHMEDIA -#define SH_TARGET_ALREADY_DEFINED -#include "elf32-sh.c" - -/* Tack some extra info on struct bfd_elf_section_data. */ - -static bfd_boolean -sh64_elf_new_section_hook (bfd *abfd, asection *sec) -{ - if (!sec->used_by_bfd) - { - struct _sh64_elf_section_data *sdata; - bfd_size_type amt = sizeof (*sdata); - - sdata = bfd_zalloc (abfd, amt); - if (sdata == NULL) - return FALSE; - sec->used_by_bfd = sdata; - } - - return _bfd_elf_new_section_hook (abfd, sec); -} - -/* Set the SHF_SH5_ISA32 flag for ISA SHmedia code sections, and pass - through SHT_SH5_CR_SORTED on a sorted .cranges section. */ - -bfd_boolean -sh64_elf_fake_sections (bfd *output_bfd ATTRIBUTE_UNUSED, - Elf_Internal_Shdr *elf_section_hdr, - asection *asect) -{ - if (sh64_elf_section_data (asect)->sh64_info != NULL) - elf_section_hdr->sh_flags - |= sh64_elf_section_data (asect)->sh64_info->contents_flags; - - /* If this section has the SEC_SORT_ENTRIES flag set, it is a sorted - .cranges section passing through objcopy. */ - if ((bfd_get_section_flags (output_bfd, asect) & SEC_SORT_ENTRIES) != 0 - && strcmp (bfd_get_section_name (output_bfd, asect), - SH64_CRANGES_SECTION_NAME) == 0) - elf_section_hdr->sh_type = SHT_SH5_CR_SORTED; - - return TRUE; -} - -static bfd_boolean -sh64_elf_set_mach_from_flags (bfd *abfd) -{ - flagword flags = elf_elfheader (abfd)->e_flags; - - switch (flags & EF_SH_MACH_MASK) - { - case EF_SH5: - /* These are fit to execute on SH5. Just one but keep the switch - construct to make additions easy. */ - bfd_default_set_arch_mach (abfd, bfd_arch_sh, bfd_mach_sh5); - break; - - default: - bfd_set_error (bfd_error_wrong_format); - return FALSE; - } - - return TRUE; -} - -static bfd_boolean -sh64_elf_section_flags (flagword *flags, - const Elf_Internal_Shdr *hdr) -{ - if (hdr->bfd_section == NULL) - return FALSE; - - if (strcmp (hdr->bfd_section->name, SH64_CRANGES_SECTION_NAME) == 0) - *flags |= SEC_DEBUGGING; - - return TRUE; -} - -static bfd_boolean -sh64_elf_copy_private_data (bfd * ibfd, bfd * obfd) -{ - if ( bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return TRUE; - - BFD_ASSERT (!elf_flags_init (obfd) - || (elf_elfheader (obfd)->e_flags - == elf_elfheader (ibfd)->e_flags)); - - elf_elfheader (obfd)->e_flags = elf_elfheader (ibfd)->e_flags; - - return _bfd_elf_copy_private_bfd_data (ibfd, obfd); -} - -static bfd_boolean -sh64_elf_merge_private_data (bfd *ibfd, struct bfd_link_info *info) -{ - bfd *obfd = info->output_bfd; - flagword old_flags, new_flags; - - if (! _bfd_generic_verify_endian_match (ibfd, info)) - return FALSE; - - if ( bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return TRUE; - - if (bfd_get_arch_size (ibfd) != bfd_get_arch_size (obfd)) - { - const char *msg; - - if (bfd_get_arch_size (ibfd) == 32 - && bfd_get_arch_size (obfd) == 64) - /* xgettext:c-format */ - msg = _("%B: compiled as 32-bit object and %B is 64-bit"); - else if (bfd_get_arch_size (ibfd) == 64 - && bfd_get_arch_size (obfd) == 32) - /* xgettext:c-format */ - msg = _("%B: compiled as 64-bit object and %B is 32-bit"); - else - /* xgettext:c-format */ - msg = _("%B: object size does not match that of target %B"); - - _bfd_error_handler (msg, ibfd, obfd); - bfd_set_error (bfd_error_wrong_format); - return FALSE; - } - - old_flags = elf_elfheader (obfd)->e_flags; - new_flags = elf_elfheader (ibfd)->e_flags; - if (! elf_flags_init (obfd)) - { - /* This happens when ld starts out with a 'blank' output file. */ - elf_flags_init (obfd) = TRUE; - elf_elfheader (obfd)->e_flags = old_flags = new_flags; - } - /* We don't allow linking in non-SH64 code. */ - else if ((new_flags & EF_SH_MACH_MASK) != EF_SH5) - { - _bfd_error_handler - ("%B: uses non-SH64 instructions while previous modules" - " use SH64 instructions", - ibfd); - bfd_set_error (bfd_error_bad_value); - return FALSE; - } - - /* I can't think of anything sane other than old_flags being EF_SH5 and - that we need to preserve that. */ - elf_elfheader (obfd)->e_flags = old_flags; - return sh64_elf_set_mach_from_flags (obfd); -} - -/* Handle a SH64-specific section when reading an object file. This - is called when bfd_section_from_shdr finds a section with an unknown - type. - - We only recognize SHT_SH5_CR_SORTED, on the .cranges section. */ - -bfd_boolean -sh64_backend_section_from_shdr (bfd *abfd, Elf_Internal_Shdr *hdr, - const char *name, int shindex) -{ - flagword flags = 0; - - /* We do like MIPS with a bit switch for recognized types, and returning - FALSE for a recognized section type with an unexpected name. Right - now we only have one recognized type, but that might change. */ - switch (hdr->sh_type) - { - case SHT_SH5_CR_SORTED: - if (strcmp (name, SH64_CRANGES_SECTION_NAME) != 0) - return FALSE; - - /* We set the SEC_SORT_ENTRIES flag so it can be passed on to - sh64_elf_fake_sections, keeping SHT_SH5_CR_SORTED if this object - passes through objcopy. Perhaps it is brittle; the flag can - suddenly be used by other BFD parts, but it seems not really used - anywhere at the moment. */ - flags = SEC_DEBUGGING | SEC_SORT_ENTRIES; - break; - - default: - return FALSE; - } - - if (! _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex)) - return FALSE; - - if (flags - && ! bfd_set_section_flags (abfd, hdr->bfd_section, - bfd_get_section_flags (abfd, - hdr->bfd_section) - | flags)) - return FALSE; - - return TRUE; -} - -/* In contrast to sh64_backend_section_from_shdr, this is called for all - sections, but only when copying sections, not when linking or - assembling. We need to set up the sh64_elf_section_data (asection *) - structure for the SH64 ELF section flags to be copied correctly. */ - -bfd_boolean -sh64_bfd_elf_copy_private_section_data (bfd *ibfd, asection *isec, - bfd *obfd, asection *osec) -{ - struct sh64_section_data *sh64_sec_data; - - if (ibfd->xvec->flavour != bfd_target_elf_flavour - || obfd->xvec->flavour != bfd_target_elf_flavour) - return TRUE; - - if (! _bfd_elf_copy_private_section_data (ibfd, isec, obfd, osec)) - return FALSE; - - sh64_sec_data = sh64_elf_section_data (isec)->sh64_info; - if (sh64_sec_data == NULL) - { - sh64_sec_data = bfd_zmalloc (sizeof (struct sh64_section_data)); - - if (sh64_sec_data == NULL) - return FALSE; - - sh64_sec_data->contents_flags - = (elf_section_data (isec)->this_hdr.sh_flags - & (SHF_SH5_ISA32 | SHF_SH5_ISA32_MIXED)); - - sh64_elf_section_data (osec)->sh64_info = sh64_sec_data; - } - - return TRUE; -} - -/* Function to keep SH64 specific file flags. */ - -static bfd_boolean -sh64_elf_set_private_flags (bfd *abfd, flagword flags) -{ - BFD_ASSERT (! elf_flags_init (abfd) - || elf_elfheader (abfd)->e_flags == flags); - - elf_elfheader (abfd)->e_flags = flags; - elf_flags_init (abfd) = TRUE; - return sh64_elf_set_mach_from_flags (abfd); -} - -/* Called when writing out an object file to decide the type of a symbol. */ - -static int -sh64_elf_get_symbol_type (Elf_Internal_Sym *elf_sym, int type) -{ - if (ELF_ST_TYPE (elf_sym->st_info) == STT_DATALABEL) - return STT_DATALABEL; - - return type; -} - -/* Hook called by the linker routine which adds symbols from an object - file. We must make indirect symbols for undefined symbols marked with - STT_DATALABEL, so relocations passing them will pick up that attribute - and neutralize STO_SH5_ISA32 found on the symbol definition. - - There is a problem, though: We want to fill in the hash-table entry for - this symbol and signal to the caller that no further processing is - needed. But we don't have the index for this hash-table entry. We - rely here on that the current entry is the first hash-entry with NULL, - which seems brittle. Also, iterating over the hash-table to find that - entry is a linear operation on the number of symbols in this input - file, and this function should take constant time, so that's not good - too. Only comfort is that DataLabel references should only be found in - hand-written assembly code and thus be rare. FIXME: Talk maintainers - into adding an option to elf_add_symbol_hook (preferably) for the index - or the hash entry, alternatively adding the index to Elf_Internal_Sym - (not so good). */ - -static bfd_boolean -sh64_elf_add_symbol_hook (bfd *abfd, struct bfd_link_info *info, - Elf_Internal_Sym *sym, const char **namep, - flagword *flagsp ATTRIBUTE_UNUSED, - asection **secp, bfd_vma *valp) -{ - /* We want to do this for relocatable as well as final linking. */ - if (ELF_ST_TYPE (sym->st_info) == STT_DATALABEL - && is_elf_hash_table (info->hash)) - { - struct elf_link_hash_entry *h; - - /* 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 - = bfd_link_relocatable (info) || info->emitrelocations - ? BSF_GLOBAL : BSF_GLOBAL | BSF_INDIRECT; - - char *dl_name - = bfd_malloc (strlen (*namep) + sizeof (DATALABEL_SUFFIX)); - struct elf_link_hash_entry ** sym_hash = elf_sym_hashes (abfd); - - BFD_ASSERT (sym_hash != NULL); - - /* Allocation may fail. */ - if (dl_name == NULL) - return FALSE; - - strcpy (dl_name, *namep); - strcat (dl_name, DATALABEL_SUFFIX); - - h = (struct elf_link_hash_entry *) - bfd_link_hash_lookup (info->hash, dl_name, FALSE, FALSE, FALSE); - - if (h == NULL) - { - /* No previous datalabel symbol. Make one. */ - struct bfd_link_hash_entry *bh = NULL; - const struct elf_backend_data *bed = get_elf_backend_data (abfd); - - if (! _bfd_generic_link_add_one_symbol (info, abfd, dl_name, - flags, *secp, *valp, - *namep, FALSE, - bed->collect, &bh)) - { - free (dl_name); - return FALSE; - } - - h = (struct elf_link_hash_entry *) bh; - h->non_elf = 0; - h->type = STT_DATALABEL; - } - else - /* If a new symbol was created, it holds the allocated name. - Otherwise, we don't need it anymore and should deallocate it. */ - free (dl_name); - - if (h->type != STT_DATALABEL - || ((bfd_link_relocatable (info) || info->emitrelocations) - && h->root.type != bfd_link_hash_undefined) - || (! bfd_link_relocatable (info) && !info->emitrelocations - && h->root.type != bfd_link_hash_indirect)) - { - /* Make sure we don't get confused on invalid input. */ - _bfd_error_handler - (_("%B: encountered datalabel symbol in input"), abfd); - bfd_set_error (bfd_error_bad_value); - return FALSE; - } - - /* Now find the hash-table slot for this entry and fill it in. */ - while (*sym_hash != NULL) - sym_hash++; - *sym_hash = h; - - /* Signal to caller to skip this symbol - we've handled it. */ - *namep = NULL; - } - - return TRUE; -} - -/* This hook function is called before the linker writes out a global - symbol. For relocatable links, DataLabel symbols will be present in - linker output. We cut off the special suffix on those symbols, so the - right name appears in the output. - - When linking and emitting relocations, there can appear global symbols - that are not referenced by relocs, but rather only implicitly through - DataLabel references, a relation that is not visible to the linker. - Since no stripping of global symbols in done when doing such linking, - we don't need to look up and make sure to emit the main symbol for each - DataLabel symbol. */ - -static int -sh64_elf_link_output_symbol_hook (struct bfd_link_info *info, - const char *cname, - Elf_Internal_Sym *sym, - asection *input_sec ATTRIBUTE_UNUSED, - struct elf_link_hash_entry *h ATTRIBUTE_UNUSED) -{ - char *name = (char *) cname; - - if (bfd_link_relocatable (info) || info->emitrelocations) - { - if (ELF_ST_TYPE (sym->st_info) == STT_DATALABEL) - name[strlen (name) - strlen (DATALABEL_SUFFIX)] = 0; - } - - return 1; -} - -/* Check a SH64-specific reloc and put the value to relocate to into - RELOCATION, ready to pass to _bfd_final_link_relocate. Return FALSE if - bad value, TRUE if ok. */ - -static bfd_boolean -shmedia_prepare_reloc (struct bfd_link_info *info, bfd *abfd, - asection *input_section, bfd_byte *contents, - const Elf_Internal_Rela *rel, bfd_vma *relocation) -{ - bfd_vma disp, dropped; - - switch (ELF32_R_TYPE (rel->r_info)) - { - case R_SH_PT_16: - /* Check the lowest bit of the destination field. If it is 1, we - check the ISA type of the destination (i.e. the low bit of the - "relocation" value, and emit an error if the instruction does not - match). If it is 0, we change a PTA to PTB. There should never - be a PTB that should change to a PTA; that indicates a toolchain - error; a mismatch with GAS. */ - { - char *msg = NULL; - bfd_vma insn = bfd_get_32 (abfd, contents + rel->r_offset); - - if (insn & (1 << 10)) - { - /* Check matching insn and ISA (address of target). */ - if ((insn & SHMEDIA_PTB_BIT) != 0 - && ((*relocation + rel->r_addend) & 1) != 0) - msg = _("PTB mismatch: a SHmedia address (bit 0 == 1)"); - else if ((insn & SHMEDIA_PTB_BIT) == 0 - && ((*relocation + rel->r_addend) & 1) == 0) - msg = _("PTA mismatch: a SHcompact address (bit 0 == 0)"); - - if (msg != NULL) - (*info->callbacks->reloc_dangerous) - (info, msg, abfd, input_section, rel->r_offset); - } - else - { - /* We shouldn't get here with a PTB insn and a R_SH_PT_16. It - means GAS output does not match expectations; a PTA or PTB - expressed as such (or a PT found at assembly to be PTB) - would match the test above, and PT expansion with an - unknown destination (or when relaxing) will get us here. */ - if ((insn & SHMEDIA_PTB_BIT) != 0) - { - _bfd_error_handler - (_("%B: GAS error: unexpected PTB insn with R_SH_PT_16"), - input_section->owner); - return FALSE; - } - - /* Change the PTA to a PTB, if destination indicates so. */ - if (((*relocation + rel->r_addend) & 1) == 0) - bfd_put_32 (abfd, insn | SHMEDIA_PTB_BIT, - contents + rel->r_offset); - } - } - - case R_SH_SHMEDIA_CODE: - case R_SH_DIR5U: - case R_SH_DIR6S: - case R_SH_DIR6U: - case R_SH_DIR10S: - case R_SH_DIR10SW: - case R_SH_DIR10SL: - case R_SH_DIR10SQ: - case R_SH_IMMS16: - case R_SH_IMMU16: - case R_SH_IMM_LOW16: - case R_SH_IMM_LOW16_PCREL: - case R_SH_IMM_MEDLOW16: - case R_SH_IMM_MEDLOW16_PCREL: - case R_SH_IMM_MEDHI16: - case R_SH_IMM_MEDHI16_PCREL: - case R_SH_IMM_HI16: - case R_SH_IMM_HI16_PCREL: - case R_SH_64: - case R_SH_64_PCREL: - break; - - default: - return FALSE; - } - - disp = (*relocation & 0xf); - dropped = 0; - switch (ELF32_R_TYPE (rel->r_info)) - { - case R_SH_DIR10SW: dropped = disp & 1; break; - case R_SH_DIR10SL: dropped = disp & 3; break; - case R_SH_DIR10SQ: dropped = disp & 7; break; - } - if (dropped != 0) - { - _bfd_error_handler - /* xgettext:c-format */ - (_("%B: error: unaligned relocation type %d at %#Lx reloc %#Lx"), - input_section->owner, (int) ELF32_R_TYPE (rel->r_info), - rel->r_offset, *relocation); - return FALSE; - } - - return TRUE; -} - -/* Helper function to locate the section holding a certain address. This - is called via bfd_map_over_sections. */ - -static void -sh64_find_section_for_address (bfd *abfd ATTRIBUTE_UNUSED, - asection *section, void *data) -{ - bfd_vma vma; - bfd_size_type size; - - struct sh64_find_section_vma_data *fsec_datap - = (struct sh64_find_section_vma_data *) data; - - /* Return if already found. */ - if (fsec_datap->section) - return; - - /* If this section isn't part of the addressable contents, skip it. */ - if ((bfd_get_section_flags (abfd, section) & SEC_ALLOC) == 0) - return; - - vma = bfd_get_section_vma (abfd, section); - if (fsec_datap->addr < vma) - return; - - size = section->size; - if (fsec_datap->addr >= vma + size) - return; - - fsec_datap->section = section; -} - -/* Make sure to write out the generated entries in the .cranges section - when doing partial linking, and set bit 0 on the entry address if it - points to SHmedia code and write sorted .cranges entries when writing - executables (final linking and objcopy). */ - -static void -sh64_elf_final_write_processing (bfd *abfd, - bfd_boolean linker ATTRIBUTE_UNUSED) -{ - bfd_vma ld_generated_cranges_size; - asection *cranges - = bfd_get_section_by_name (abfd, SH64_CRANGES_SECTION_NAME); - - /* If no new .cranges were added, the generic ELF linker parts will - write it all out. If not, we need to write them out when doing - partial linking. For a final link, we will sort them and write them - all out further below. */ - if (linker - && cranges != NULL - && elf_elfheader (abfd)->e_type != ET_EXEC - && (ld_generated_cranges_size - = sh64_elf_section_data (cranges)->sh64_info->cranges_growth) != 0) - { - bfd_vma incoming_cranges_size - = cranges->size - ld_generated_cranges_size; - - if (! bfd_set_section_contents (abfd, cranges, - cranges->contents - + incoming_cranges_size, - cranges->output_offset - + incoming_cranges_size, - ld_generated_cranges_size)) - { - bfd_set_error (bfd_error_file_truncated); - _bfd_error_handler - (_("%B: could not write out added .cranges entries"), abfd); - } - } - - /* Only set entry address bit 0 and sort .cranges when linking to an - executable; never with objcopy or strip. */ - if (linker && elf_elfheader (abfd)->e_type == ET_EXEC) - { - struct sh64_find_section_vma_data fsec_data; - sh64_elf_crange dummy; - - /* For a final link, set the low bit of the entry address to - reflect whether or not it is a SHmedia address. - FIXME: Perhaps we shouldn't do this if the entry address was - supplied numerically, but we currently lack the infrastructure to - recognize that: The entry symbol, and info whether it is numeric - or a symbol name is kept private in the linker. */ - fsec_data.addr = elf_elfheader (abfd)->e_entry; - fsec_data.section = NULL; - - bfd_map_over_sections (abfd, sh64_find_section_for_address, - &fsec_data); - if (fsec_data.section - && (sh64_get_contents_type (fsec_data.section, - elf_elfheader (abfd)->e_entry, - &dummy) == CRT_SH5_ISA32)) - elf_elfheader (abfd)->e_entry |= 1; - - /* If we have a .cranges section, sort the entries. */ - if (cranges != NULL) - { - bfd_size_type cranges_size = cranges->size; - - /* We know we always have these in memory at this time. */ - BFD_ASSERT (cranges->contents != NULL); - - /* The .cranges may already have been sorted in the process of - finding out the ISA-type of the entry address. If not, we do - it here. */ - if (elf_section_data (cranges)->this_hdr.sh_type - != SHT_SH5_CR_SORTED) - { - qsort (cranges->contents, cranges_size / SH64_CRANGE_SIZE, - SH64_CRANGE_SIZE, - bfd_big_endian (cranges->owner) - ? _bfd_sh64_crange_qsort_cmpb - : _bfd_sh64_crange_qsort_cmpl); - elf_section_data (cranges)->this_hdr.sh_type - = SHT_SH5_CR_SORTED; - } - - /* We need to write it out in whole as sorted. */ - if (! bfd_set_section_contents (abfd, cranges, - cranges->contents, - cranges->output_offset, - cranges_size)) - { - bfd_set_error (bfd_error_file_truncated); - _bfd_error_handler - (_("%B: could not write out sorted .cranges entries"), abfd); - } - } - } -} - -/* Merge non visibility st_other attribute when the symbol comes from - a dynamic object. */ -static void -sh64_elf_merge_symbol_attribute (struct elf_link_hash_entry *h, - const Elf_Internal_Sym *isym, - bfd_boolean definition, - bfd_boolean dynamic ATTRIBUTE_UNUSED) -{ - if ((isym->st_other & ~ELF_ST_VISIBILITY (-1)) != 0) - { - unsigned char other; - - /* Take the balance of OTHER from the definition. */ - other = (definition ? isym->st_other : h->other); - other &= ~ ELF_ST_VISIBILITY (-1); - h->other = other | ELF_ST_VISIBILITY (h->other); - } - - return; -} - -static const struct bfd_elf_special_section sh64_elf_special_sections[] = -{ - { STRING_COMMA_LEN (".cranges"), 0, SHT_PROGBITS, 0 }, - { NULL, 0, 0, 0, 0 } -}; - -#undef TARGET_BIG_SYM -#define TARGET_BIG_SYM sh64_elf32_vec -#undef TARGET_BIG_NAME -#define TARGET_BIG_NAME "elf32-sh64" -#undef TARGET_LITTLE_SYM -#define TARGET_LITTLE_SYM sh64_elf32_le_vec -#undef TARGET_LITTLE_NAME -#define TARGET_LITTLE_NAME "elf32-sh64l" - -#include "elf32-target.h" - -/* NetBSD support. */ -#undef TARGET_BIG_SYM -#define TARGET_BIG_SYM sh64_elf32_nbsd_vec -#undef TARGET_BIG_NAME -#define TARGET_BIG_NAME "elf32-sh64-nbsd" -#undef TARGET_LITTLE_SYM -#define TARGET_LITTLE_SYM sh64_elf32_nbsd_le_vec -#undef TARGET_LITTLE_NAME -#define TARGET_LITTLE_NAME "elf32-sh64l-nbsd" -#undef ELF_MAXPAGESIZE -#define ELF_MAXPAGESIZE 0x10000 -#undef ELF_COMMONPAGESIZE -#undef elf_symbol_leading_char -#define elf_symbol_leading_char 0 -#undef elf32_bed -#define elf32_bed elf32_sh64_nbsd_bed - -#include "elf32-target.h" - -/* Linux support. */ -#undef TARGET_BIG_SYM -#define TARGET_BIG_SYM sh64_elf32_linux_be_vec -#undef TARGET_BIG_NAME -#define TARGET_BIG_NAME "elf32-sh64big-linux" -#undef TARGET_LITTLE_SYM -#define TARGET_LITTLE_SYM sh64_elf32_linux_vec -#undef TARGET_LITTLE_NAME -#define TARGET_LITTLE_NAME "elf32-sh64-linux" -#undef elf32_bed -#define elf32_bed elf32_sh64_lin_bed -#undef ELF_COMMONPAGESIZE -#define ELF_COMMONPAGESIZE 0x1000 - -#include "elf32-target.h" - diff -Nru gdb-8.1/bfd/elf32-sh64-com.c gdb-8.2/bfd/elf32-sh64-com.c --- gdb-8.1/bfd/elf32-sh64-com.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-sh64-com.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,245 +0,0 @@ -/* SuperH SH64-specific support for 32-bit ELF - Copyright (C) 2000-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define SH64_ELF - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "elf-bfd.h" -#include "elf/sh.h" -#include "elf32-sh64.h" -#include "../opcodes/sh64-opc.h" - -static bfd_boolean sh64_address_in_cranges - (asection *cranges, bfd_vma, sh64_elf_crange *); - -/* Ordering functions of a crange, for the qsort and bsearch calls and for - different endianness. */ - -int -_bfd_sh64_crange_qsort_cmpb (const void *p1, const void *p2) -{ - bfd_vma a1 = bfd_getb32 (p1); - bfd_vma a2 = bfd_getb32 (p2); - - /* Preserve order if there's ambiguous contents. */ - if (a1 == a2) - return (char *) p1 - (char *) p2; - - return a1 - a2; -} - -int -_bfd_sh64_crange_qsort_cmpl (const void *p1, const void *p2) -{ - bfd_vma a1 = (bfd_vma) bfd_getl32 (p1); - bfd_vma a2 = (bfd_vma) bfd_getl32 (p2); - - /* Preserve order if there's ambiguous contents. */ - if (a1 == a2) - return (char *) p1 - (char *) p2; - - return a1 - a2; -} - -int -_bfd_sh64_crange_bsearch_cmpb (const void *p1, const void *p2) -{ - bfd_vma a1 = *(bfd_vma *) p1; - bfd_vma a2 = (bfd_vma) bfd_getb32 (p2); - bfd_size_type size - = (bfd_size_type) bfd_getb32 (SH64_CRANGE_CR_SIZE_OFFSET + (char *) p2); - - if (a1 >= a2 + size) - return 1; - if (a1 < a2) - return -1; - return 0; -} - -int -_bfd_sh64_crange_bsearch_cmpl (const void *p1, const void *p2) -{ - bfd_vma a1 = *(bfd_vma *) p1; - bfd_vma a2 = (bfd_vma) bfd_getl32 (p2); - bfd_size_type size - = (bfd_size_type) bfd_getl32 (SH64_CRANGE_CR_SIZE_OFFSET + (char *) p2); - - if (a1 >= a2 + size) - return 1; - if (a1 < a2) - return -1; - return 0; -} - -/* Check whether a specific address is specified within a .cranges - section. Return FALSE if not found, and TRUE if found, and the region - filled into RANGEP if non-NULL. */ - -static bfd_boolean -sh64_address_in_cranges (asection *cranges, bfd_vma addr, - sh64_elf_crange *rangep) -{ - bfd_byte *cranges_contents; - bfd_byte *found_rangep; - bfd_size_type cranges_size = cranges->size; - - /* If the size is not a multiple of the cranges entry size, then - something is badly wrong. */ - if ((cranges_size % SH64_CRANGE_SIZE) != 0) - return FALSE; - - /* If this section has relocations, then we can't do anything sane. */ - if (bfd_get_section_flags (cranges->owner, cranges) & SEC_RELOC) - return FALSE; - - /* Has some kind soul (or previous call) left processed, sorted contents - for us? */ - if ((bfd_get_section_flags (cranges->owner, cranges) & SEC_IN_MEMORY) - && elf_section_data (cranges)->this_hdr.sh_type == SHT_SH5_CR_SORTED) - cranges_contents = cranges->contents; - else - { - if (!bfd_malloc_and_get_section (cranges->owner, cranges, - &cranges_contents)) - goto error_return; - - /* Is it sorted? */ - if (elf_section_data (cranges)->this_hdr.sh_type - != SHT_SH5_CR_SORTED) - /* Nope. Lets sort it. */ - qsort (cranges_contents, cranges_size / SH64_CRANGE_SIZE, - SH64_CRANGE_SIZE, - bfd_big_endian (cranges->owner) - ? _bfd_sh64_crange_qsort_cmpb : _bfd_sh64_crange_qsort_cmpl); - - /* Let's keep it around. */ - cranges->contents = cranges_contents; - bfd_set_section_flags (cranges->owner, cranges, - bfd_get_section_flags (cranges->owner, cranges) - | SEC_IN_MEMORY); - - /* It's sorted now. */ - elf_section_data (cranges)->this_hdr.sh_type = SHT_SH5_CR_SORTED; - } - - /* Try and find a matching range. */ - found_rangep - = bsearch (&addr, cranges_contents, cranges_size / SH64_CRANGE_SIZE, - SH64_CRANGE_SIZE, - bfd_big_endian (cranges->owner) - ? _bfd_sh64_crange_bsearch_cmpb - : _bfd_sh64_crange_bsearch_cmpl); - - /* Fill in a few return values if we found a matching range. */ - if (found_rangep) - { - enum sh64_elf_cr_type cr_type - = bfd_get_16 (cranges->owner, - SH64_CRANGE_CR_TYPE_OFFSET + found_rangep); - bfd_vma cr_addr - = bfd_get_32 (cranges->owner, - SH64_CRANGE_CR_ADDR_OFFSET - + (char *) found_rangep); - bfd_size_type cr_size - = bfd_get_32 (cranges->owner, - SH64_CRANGE_CR_SIZE_OFFSET - + (char *) found_rangep); - - rangep->cr_addr = cr_addr; - rangep->cr_size = cr_size; - rangep->cr_type = cr_type; - - return TRUE; - } - - /* There is a .cranges section, but it does not have a descriptor - matching this address. */ - return FALSE; - -error_return: - if (cranges_contents != NULL) - free (cranges_contents); - return FALSE; -} - -/* Determine what ADDR points to in SEC, and fill in a range descriptor in - *RANGEP if it's non-NULL. */ - -enum sh64_elf_cr_type -sh64_get_contents_type (asection *sec, bfd_vma addr, sh64_elf_crange *rangep) -{ - asection *cranges; - - /* Fill in the range with the boundaries of the section as a default. */ - if (bfd_get_flavour (sec->owner) == bfd_target_elf_flavour - && elf_elfheader (sec->owner)->e_type == ET_EXEC) - { - rangep->cr_addr = bfd_get_section_vma (sec->owner, sec); - rangep->cr_size = sec->size; - rangep->cr_type = CRT_NONE; - } - else - return FALSE; - - /* If none of the pertinent bits are set, then it's a SHcompact (or at - least not SHmedia). */ - if ((elf_section_data (sec)->this_hdr.sh_flags - & (SHF_SH5_ISA32 | SHF_SH5_ISA32_MIXED)) == 0) - { - enum sh64_elf_cr_type cr_type - = ((bfd_get_section_flags (sec->owner, sec) & SEC_CODE) != 0 - ? CRT_SH5_ISA16 : CRT_DATA); - rangep->cr_type = cr_type; - return cr_type; - } - - /* If only the SHF_SH5_ISA32 bit is set, then we have SHmedia. */ - if ((elf_section_data (sec)->this_hdr.sh_flags - & (SHF_SH5_ISA32 | SHF_SH5_ISA32_MIXED)) == SHF_SH5_ISA32) - { - rangep->cr_type = CRT_SH5_ISA32; - return CRT_SH5_ISA32; - } - - /* Otherwise, we have to look up the .cranges section. */ - cranges = bfd_get_section_by_name (sec->owner, SH64_CRANGES_SECTION_NAME); - - if (cranges == NULL) - /* A mixed section but there's no .cranges section. This is probably - bad input; it does not comply to specs. */ - return CRT_NONE; - - /* If this call fails, we will still have CRT_NONE in rangep->cr_type - and that will be suitable to return. */ - sh64_address_in_cranges (cranges, addr, rangep); - - return rangep->cr_type; -} - -/* This is a simpler exported interface for the benefit of gdb et al. */ - -bfd_boolean -sh64_address_is_shmedia (asection *sec, bfd_vma addr) -{ - sh64_elf_crange dummy; - return sh64_get_contents_type (sec, addr, &dummy) == CRT_SH5_ISA32; -} diff -Nru gdb-8.1/bfd/elf32-sh64.h gdb-8.2/bfd/elf32-sh64.h --- gdb-8.1/bfd/elf32-sh64.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-sh64.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ -/* SH ELF support for BFD. - Copyright (C) 2003-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef ELF32_SH64_H -#define ELF32_SH64_H - -#define SH64_CRANGES_SECTION_NAME ".cranges" -enum sh64_elf_cr_type { - CRT_NONE = 0, - CRT_DATA = 1, - CRT_SH5_ISA16 = 2, - CRT_SH5_ISA32 = 3 -}; - -/* The official definition is this: - - typedef struct { - Elf32_Addr cr_addr; - Elf32_Word cr_size; - Elf32_Half cr_type; - } Elf32_CRange; - - but we have no use for that exact type. Instead we use this struct for - the internal representation. */ -typedef struct { - bfd_vma cr_addr; - bfd_size_type cr_size; - enum sh64_elf_cr_type cr_type; -} sh64_elf_crange; - -#define SH64_CRANGE_SIZE (4 + 4 + 2) -#define SH64_CRANGE_CR_ADDR_OFFSET 0 -#define SH64_CRANGE_CR_SIZE_OFFSET 4 -#define SH64_CRANGE_CR_TYPE_OFFSET (4 + 4) - -/* Get the contents type of an arbitrary address, or return CRT_NONE. */ -extern enum sh64_elf_cr_type sh64_get_contents_type - (asection *, bfd_vma, sh64_elf_crange *); - -/* Simpler interface. - FIXME: This seems redundant now that we export the interface above. */ -extern bfd_boolean sh64_address_is_shmedia - (asection *, bfd_vma); - -extern int _bfd_sh64_crange_qsort_cmpb - (const void *, const void *); -extern int _bfd_sh64_crange_qsort_cmpl - (const void *, const void *); -extern int _bfd_sh64_crange_bsearch_cmpb - (const void *, const void *); -extern int _bfd_sh64_crange_bsearch_cmpl - (const void *, const void *); - -struct sh64_section_data -{ - flagword contents_flags; - - /* Only used in the cranges section, but we don't have an official - backend-specific bfd field. */ - bfd_size_type cranges_growth; -}; - -struct _sh64_elf_section_data -{ - struct bfd_elf_section_data elf; - struct sh64_section_data *sh64_info; -}; - -#define sh64_elf_section_data(sec) \ - ((struct _sh64_elf_section_data *) elf_section_data (sec)) - -#endif /* ELF32_SH64_H */ diff -Nru gdb-8.1/bfd/elf32-sh.c gdb-8.2/bfd/elf32-sh.c --- gdb-8.1/bfd/elf32-sh.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-sh.c 2018-09-05 07:44:28.000000000 +0000 @@ -38,10 +38,8 @@ (bfd *, asection *, bfd_vma, int); static bfd_boolean sh_elf_align_loads (bfd *, asection *, Elf_Internal_Rela *, bfd_byte *, bfd_boolean *); -#ifndef SH64_ELF static bfd_boolean sh_elf_swap_insns (bfd *, asection *, void *, bfd_byte *, bfd_vma); -#endif static int sh_elf_optimized_tls_reloc (struct bfd_link_info *, int, int); static bfd_vma dtpoff_base @@ -87,7 +85,7 @@ static bfd_boolean vxworks_object_p (bfd *abfd ATTRIBUTE_UNUSED) { -#if !defined INCLUDE_SHMEDIA && !defined SH_TARGET_ALREADY_DEFINED +#if !defined SH_TARGET_ALREADY_DEFINED extern const bfd_target sh_elf32_vxworks_le_vec; extern const bfd_target sh_elf32_vxworks_vec; @@ -103,7 +101,7 @@ static bfd_boolean fdpic_object_p (bfd *abfd ATTRIBUTE_UNUSED) { -#if !defined INCLUDE_SHMEDIA && !defined SH_TARGET_ALREADY_DEFINED +#if !defined SH_TARGET_ALREADY_DEFINED extern const bfd_target sh_elf32_fdpic_le_vec; extern const bfd_target sh_elf32_fdpic_be_vec; @@ -371,57 +369,6 @@ { BFD_RELOC_SH_GOTOFFFUNCDESC, R_SH_GOTOFFFUNCDESC }, { BFD_RELOC_SH_GOTOFFFUNCDESC20, R_SH_GOTOFFFUNCDESC20 }, { BFD_RELOC_SH_FUNCDESC, R_SH_FUNCDESC }, -#ifdef INCLUDE_SHMEDIA - { BFD_RELOC_SH_GOT_LOW16, R_SH_GOT_LOW16 }, - { BFD_RELOC_SH_GOT_MEDLOW16, R_SH_GOT_MEDLOW16 }, - { BFD_RELOC_SH_GOT_MEDHI16, R_SH_GOT_MEDHI16 }, - { BFD_RELOC_SH_GOT_HI16, R_SH_GOT_HI16 }, - { BFD_RELOC_SH_GOTPLT_LOW16, R_SH_GOTPLT_LOW16 }, - { BFD_RELOC_SH_GOTPLT_MEDLOW16, R_SH_GOTPLT_MEDLOW16 }, - { BFD_RELOC_SH_GOTPLT_MEDHI16, R_SH_GOTPLT_MEDHI16 }, - { BFD_RELOC_SH_GOTPLT_HI16, R_SH_GOTPLT_HI16 }, - { BFD_RELOC_SH_PLT_LOW16, R_SH_PLT_LOW16 }, - { BFD_RELOC_SH_PLT_MEDLOW16, R_SH_PLT_MEDLOW16 }, - { BFD_RELOC_SH_PLT_MEDHI16, R_SH_PLT_MEDHI16 }, - { BFD_RELOC_SH_PLT_HI16, R_SH_PLT_HI16 }, - { BFD_RELOC_SH_GOTOFF_LOW16, R_SH_GOTOFF_LOW16 }, - { BFD_RELOC_SH_GOTOFF_MEDLOW16, R_SH_GOTOFF_MEDLOW16 }, - { BFD_RELOC_SH_GOTOFF_MEDHI16, R_SH_GOTOFF_MEDHI16 }, - { BFD_RELOC_SH_GOTOFF_HI16, R_SH_GOTOFF_HI16 }, - { BFD_RELOC_SH_GOTPC_LOW16, R_SH_GOTPC_LOW16 }, - { BFD_RELOC_SH_GOTPC_MEDLOW16, R_SH_GOTPC_MEDLOW16 }, - { BFD_RELOC_SH_GOTPC_MEDHI16, R_SH_GOTPC_MEDHI16 }, - { BFD_RELOC_SH_GOTPC_HI16, R_SH_GOTPC_HI16 }, - { BFD_RELOC_SH_COPY64, R_SH_COPY64 }, - { BFD_RELOC_SH_GLOB_DAT64, R_SH_GLOB_DAT64 }, - { BFD_RELOC_SH_JMP_SLOT64, R_SH_JMP_SLOT64 }, - { BFD_RELOC_SH_RELATIVE64, R_SH_RELATIVE64 }, - { BFD_RELOC_SH_GOT10BY4, R_SH_GOT10BY4 }, - { BFD_RELOC_SH_GOT10BY8, R_SH_GOT10BY8 }, - { BFD_RELOC_SH_GOTPLT10BY4, R_SH_GOTPLT10BY4 }, - { BFD_RELOC_SH_GOTPLT10BY8, R_SH_GOTPLT10BY8 }, - { BFD_RELOC_SH_PT_16, R_SH_PT_16 }, - { BFD_RELOC_SH_SHMEDIA_CODE, R_SH_SHMEDIA_CODE }, - { BFD_RELOC_SH_IMMU5, R_SH_DIR5U }, - { BFD_RELOC_SH_IMMS6, R_SH_DIR6S }, - { BFD_RELOC_SH_IMMU6, R_SH_DIR6U }, - { BFD_RELOC_SH_IMMS10, R_SH_DIR10S }, - { BFD_RELOC_SH_IMMS10BY2, R_SH_DIR10SW }, - { BFD_RELOC_SH_IMMS10BY4, R_SH_DIR10SL }, - { BFD_RELOC_SH_IMMS10BY8, R_SH_DIR10SQ }, - { BFD_RELOC_SH_IMMS16, R_SH_IMMS16 }, - { BFD_RELOC_SH_IMMU16, R_SH_IMMU16 }, - { BFD_RELOC_SH_IMM_LOW16, R_SH_IMM_LOW16 }, - { BFD_RELOC_SH_IMM_LOW16_PCREL, R_SH_IMM_LOW16_PCREL }, - { BFD_RELOC_SH_IMM_MEDLOW16, R_SH_IMM_MEDLOW16 }, - { BFD_RELOC_SH_IMM_MEDLOW16_PCREL, R_SH_IMM_MEDLOW16_PCREL }, - { BFD_RELOC_SH_IMM_MEDHI16, R_SH_IMM_MEDHI16 }, - { BFD_RELOC_SH_IMM_MEDHI16_PCREL, R_SH_IMM_MEDHI16_PCREL }, - { BFD_RELOC_SH_IMM_HI16, R_SH_IMM_HI16 }, - { BFD_RELOC_SH_IMM_HI16_PCREL, R_SH_IMM_HI16_PCREL }, - { BFD_RELOC_64, R_SH_64 }, - { BFD_RELOC_64_PCREL, R_SH_64_PCREL }, -#endif /* not INCLUDE_SHMEDIA */ }; /* Given a BFD reloc code, return the howto structure for the @@ -472,7 +419,7 @@ /* Given an ELF reloc, fill in the howto field of a relent. */ -static void +static bfd_boolean sh_elf_info_to_howto (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { unsigned int r; @@ -488,13 +435,14 @@ || (r >= R_SH_FIRST_INVALID_RELOC_6 && r <= R_SH_LAST_INVALID_RELOC_6)) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: unrecognised SH reloc number: %d"), + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), abfd, r); bfd_set_error (bfd_error_bad_value); - r = R_SH_NONE; + return FALSE; } cache_ptr->howto = get_howto_table (abfd) + r; + return TRUE; } /* This function handles relaxing for SH ELF. See the corresponding @@ -525,14 +473,6 @@ || sec->reloc_count == 0) return TRUE; -#ifdef INCLUDE_SHMEDIA - if (elf_section_data (sec)->this_hdr.sh_flags - & (SHF_SH5_ISA32 | SHF_SH5_ISA32_MIXED)) - { - return TRUE; - } -#endif - symtab_hdr = &elf_symtab_hdr (abfd); internal_relocs = (_bfd_elf_link_read_relocs @@ -577,8 +517,9 @@ if (laddr >= sec->size) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: %#Lx: warning: bad R_SH_USES offset"), - abfd, irel->r_offset); + _bfd_error_handler + (_("%pB: %#" PRIx64 ": warning: bad R_SH_USES offset"), + abfd, (uint64_t) irel->r_offset); continue; } insn = bfd_get_16 (abfd, contents + laddr); @@ -589,8 +530,9 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: %#Lx: warning: R_SH_USES points to unrecognized insn 0x%x"), - abfd, irel->r_offset, insn); + (_("%pB: %#" PRIx64 ": warning: " + "R_SH_USES points to unrecognized insn 0x%x"), + abfd, (uint64_t) irel->r_offset, insn); continue; } @@ -607,8 +549,8 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: %#Lx: warning: bad R_SH_USES load offset"), - abfd, irel->r_offset); + (_("%pB: %#" PRIx64 ": warning: bad R_SH_USES load offset"), + abfd, (uint64_t) irel->r_offset); continue; } @@ -623,8 +565,8 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: %#Lx: warning: could not find expected reloc"), - abfd, paddr); + (_("%pB: %#" PRIx64 ": warning: could not find expected reloc"), + abfd, (uint64_t) paddr); continue; } @@ -652,8 +594,8 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: %#Lx: warning: symbol in unexpected section"), - abfd, paddr); + (_("%pB: %#" PRIx64 ": warning: symbol in unexpected section"), + abfd, (uint64_t) paddr); continue; } @@ -782,8 +724,9 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: %#Lx: warning: could not find expected COUNT reloc"), - abfd, paddr); + (_("%pB: %#" PRIx64 ": warning: " + "could not find expected COUNT reloc"), + abfd, (uint64_t) paddr); continue; } @@ -792,8 +735,8 @@ if (irelcount->r_addend == 0) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: %#Lx: warning: bad count"), - abfd, paddr); + _bfd_error_handler (_("%pB: %#" PRIx64 ": warning: bad count"), + abfd, (uint64_t) paddr); continue; } @@ -1196,8 +1139,8 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: %#Lx: fatal: reloc overflow while relaxing"), - abfd, irel->r_offset); + (_("%pB: %#" PRIx64 ": fatal: reloc overflow while relaxing"), + abfd, (uint64_t) irel->r_offset); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -1447,7 +1390,6 @@ return FALSE; } -#ifndef SH64_ELF /* Swap two SH instructions. This is like sh_swap_insns in coff-sh.c. */ static bfd_boolean @@ -1567,8 +1509,8 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: %#Lx: fatal: reloc overflow while relaxing"), - abfd, irel->r_offset); + (_("%pB: %#" PRIx64 ": fatal: reloc overflow while relaxing"), + abfd, (uint64_t) irel->r_offset); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -1577,7 +1519,6 @@ return TRUE; } -#endif /* defined SH64_ELF */ /* Describes one of the various PLT styles. */ @@ -1622,223 +1563,6 @@ const struct elf_sh_plt_info *short_plt; }; -#ifdef INCLUDE_SHMEDIA - -/* The size in bytes of an entry in the procedure linkage table. */ - -#define ELF_PLT_ENTRY_SIZE 64 - -/* First entry in an absolute procedure linkage table look like this. */ - -static const bfd_byte elf_sh_plt0_entry_be[ELF_PLT_ENTRY_SIZE] = -{ - 0xcc, 0x00, 0x01, 0x10, /* movi .got.plt >> 16, r17 */ - 0xc8, 0x00, 0x01, 0x10, /* shori .got.plt & 65535, r17 */ - 0x89, 0x10, 0x09, 0x90, /* ld.l r17, 8, r25 */ - 0x6b, 0xf1, 0x66, 0x00, /* ptabs r25, tr0 */ - 0x89, 0x10, 0x05, 0x10, /* ld.l r17, 4, r17 */ - 0x44, 0x01, 0xff, 0xf0, /* blink tr0, r63 */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ -}; - -static const bfd_byte elf_sh_plt0_entry_le[ELF_PLT_ENTRY_SIZE] = -{ - 0x10, 0x01, 0x00, 0xcc, /* movi .got.plt >> 16, r17 */ - 0x10, 0x01, 0x00, 0xc8, /* shori .got.plt & 65535, r17 */ - 0x90, 0x09, 0x10, 0x89, /* ld.l r17, 8, r25 */ - 0x00, 0x66, 0xf1, 0x6b, /* ptabs r25, tr0 */ - 0x10, 0x05, 0x10, 0x89, /* ld.l r17, 4, r17 */ - 0xf0, 0xff, 0x01, 0x44, /* blink tr0, r63 */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ -}; - -/* Sebsequent entries in an absolute procedure linkage table look like - this. */ - -static const bfd_byte elf_sh_plt_entry_be[ELF_PLT_ENTRY_SIZE] = -{ - 0xcc, 0x00, 0x01, 0x90, /* movi nameN-in-GOT >> 16, r25 */ - 0xc8, 0x00, 0x01, 0x90, /* shori nameN-in-GOT & 65535, r25 */ - 0x89, 0x90, 0x01, 0x90, /* ld.l r25, 0, r25 */ - 0x6b, 0xf1, 0x66, 0x00, /* ptabs r25, tr0 */ - 0x44, 0x01, 0xff, 0xf0, /* blink tr0, r63 */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0xcc, 0x00, 0x01, 0x90, /* movi .PLT0 >> 16, r25 */ - 0xc8, 0x00, 0x01, 0x90, /* shori .PLT0 & 65535, r25 */ - 0x6b, 0xf1, 0x66, 0x00, /* ptabs r25, tr0 */ - 0xcc, 0x00, 0x01, 0x50, /* movi reloc-offset >> 16, r21 */ - 0xc8, 0x00, 0x01, 0x50, /* shori reloc-offset & 65535, r21 */ - 0x44, 0x01, 0xff, 0xf0, /* blink tr0, r63 */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ -}; - -static const bfd_byte elf_sh_plt_entry_le[ELF_PLT_ENTRY_SIZE] = -{ - 0x90, 0x01, 0x00, 0xcc, /* movi nameN-in-GOT >> 16, r25 */ - 0x90, 0x01, 0x00, 0xc8, /* shori nameN-in-GOT & 65535, r25 */ - 0x90, 0x01, 0x90, 0x89, /* ld.l r25, 0, r25 */ - 0x00, 0x66, 0xf1, 0x6b, /* ptabs r25, tr0 */ - 0xf0, 0xff, 0x01, 0x44, /* blink tr0, r63 */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0x90, 0x01, 0x00, 0xcc, /* movi .PLT0 >> 16, r25 */ - 0x90, 0x01, 0x00, 0xc8, /* shori .PLT0 & 65535, r25 */ - 0x00, 0x66, 0xf1, 0x6b, /* ptabs r25, tr0 */ - 0x50, 0x01, 0x00, 0xcc, /* movi reloc-offset >> 16, r21 */ - 0x50, 0x01, 0x00, 0xc8, /* shori reloc-offset & 65535, r21 */ - 0xf0, 0xff, 0x01, 0x44, /* blink tr0, r63 */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ -}; - -/* Entries in a PIC procedure linkage table look like this. */ - -static const bfd_byte elf_sh_pic_plt_entry_be[ELF_PLT_ENTRY_SIZE] = -{ - 0xcc, 0x00, 0x01, 0x90, /* movi nameN@GOT >> 16, r25 */ - 0xc8, 0x00, 0x01, 0x90, /* shori nameN@GOT & 65535, r25 */ - 0x40, 0xc2, 0x65, 0x90, /* ldx.l r12, r25, r25 */ - 0x6b, 0xf1, 0x66, 0x00, /* ptabs r25, tr0 */ - 0x44, 0x01, 0xff, 0xf0, /* blink tr0, r63 */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0xce, 0x00, 0x01, 0x10, /* movi -GOT_BIAS, r17 */ - 0x00, 0xc8, 0x45, 0x10, /* add.l r12, r17, r17 */ - 0x89, 0x10, 0x09, 0x90, /* ld.l r17, 8, r25 */ - 0x6b, 0xf1, 0x66, 0x00, /* ptabs r25, tr0 */ - 0x89, 0x10, 0x05, 0x10, /* ld.l r17, 4, r17 */ - 0xcc, 0x00, 0x01, 0x50, /* movi reloc-offset >> 16, r21 */ - 0xc8, 0x00, 0x01, 0x50, /* shori reloc-offset & 65535, r21 */ - 0x44, 0x01, 0xff, 0xf0, /* blink tr0, r63 */ -}; - -static const bfd_byte elf_sh_pic_plt_entry_le[ELF_PLT_ENTRY_SIZE] = -{ - 0x90, 0x01, 0x00, 0xcc, /* movi nameN@GOT >> 16, r25 */ - 0x90, 0x01, 0x00, 0xc8, /* shori nameN@GOT & 65535, r25 */ - 0x90, 0x65, 0xc2, 0x40, /* ldx.l r12, r25, r25 */ - 0x00, 0x66, 0xf1, 0x6b, /* ptabs r25, tr0 */ - 0xf0, 0xff, 0x01, 0x44, /* blink tr0, r63 */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0x10, 0x01, 0x00, 0xce, /* movi -GOT_BIAS, r17 */ - 0x10, 0x45, 0xc8, 0x00, /* add.l r12, r17, r17 */ - 0x90, 0x09, 0x10, 0x89, /* ld.l r17, 8, r25 */ - 0x00, 0x66, 0xf1, 0x6b, /* ptabs r25, tr0 */ - 0x10, 0x05, 0x10, 0x89, /* ld.l r17, 4, r17 */ - 0x50, 0x01, 0x00, 0xcc, /* movi reloc-offset >> 16, r21 */ - 0x50, 0x01, 0x00, 0xc8, /* shori reloc-offset & 65535, r21 */ - 0xf0, 0xff, 0x01, 0x44, /* blink tr0, r63 */ -}; - -static const struct elf_sh_plt_info elf_sh_plts[2][2] = { - { - { - /* Big-endian non-PIC. */ - elf_sh_plt0_entry_be, - ELF_PLT_ENTRY_SIZE, - { 0, MINUS_ONE, MINUS_ONE }, - elf_sh_plt_entry_be, - ELF_PLT_ENTRY_SIZE, - { 0, 32, 48, FALSE }, - 33, /* includes ISA encoding */ - NULL - }, - { - /* Little-endian non-PIC. */ - elf_sh_plt0_entry_le, - ELF_PLT_ENTRY_SIZE, - { 0, MINUS_ONE, MINUS_ONE }, - elf_sh_plt_entry_le, - ELF_PLT_ENTRY_SIZE, - { 0, 32, 48, FALSE }, - 33, /* includes ISA encoding */ - NULL - }, - }, - { - { - /* Big-endian PIC. */ - elf_sh_plt0_entry_be, - ELF_PLT_ENTRY_SIZE, - { MINUS_ONE, MINUS_ONE, MINUS_ONE }, - elf_sh_pic_plt_entry_be, - ELF_PLT_ENTRY_SIZE, - { 0, MINUS_ONE, 52, FALSE }, - 33, /* includes ISA encoding */ - NULL - }, - { - /* Little-endian PIC. */ - elf_sh_plt0_entry_le, - ELF_PLT_ENTRY_SIZE, - { MINUS_ONE, MINUS_ONE, MINUS_ONE }, - elf_sh_pic_plt_entry_le, - ELF_PLT_ENTRY_SIZE, - { 0, MINUS_ONE, 52, FALSE }, - 33, /* includes ISA encoding */ - NULL - }, - } -}; - -/* Return offset of the linker in PLT0 entry. */ -#define elf_sh_plt0_gotplt_offset(info) 0 - -/* Install a 32-bit PLT field starting at ADDR, which occurs in OUTPUT_BFD. - VALUE is the field's value and CODE_P is true if VALUE refers to code, - not data. - - On SH64, each 32-bit field is loaded by a movi/shori pair. */ - -inline static void -install_plt_field (bfd *output_bfd, bfd_boolean code_p, - unsigned long value, bfd_byte *addr) -{ - value |= code_p; - bfd_put_32 (output_bfd, - bfd_get_32 (output_bfd, addr) - | ((value >> 6) & 0x3fffc00), - addr); - bfd_put_32 (output_bfd, - bfd_get_32 (output_bfd, addr + 4) - | ((value << 10) & 0x3fffc00), - addr + 4); -} - -/* Return the type of PLT associated with ABFD. PIC_P is true if - the object is position-independent. */ - -static const struct elf_sh_plt_info * -get_plt_info (bfd *abfd ATTRIBUTE_UNUSED, bfd_boolean pic_p) -{ - return &elf_sh_plts[pic_p][!bfd_big_endian (abfd)]; -} -#else /* The size in bytes of an entry in the procedure linkage table. */ #define ELF_PLT_ENTRY_SIZE 28 @@ -2317,7 +2041,6 @@ { bfd_put_32 (output_bfd, value, addr); } -#endif /* The number of PLT entries which can use a shorter PLT, if any. Currently always 64K, since only SH-2A FDPIC uses this; a @@ -2379,14 +2102,6 @@ { struct elf_link_hash_entry root; -#ifdef INCLUDE_SHMEDIA - union - { - bfd_signed_vma refcount; - bfd_vma offset; - } datalabel_got; -#endif - /* Track dynamic relocs copied for this symbol. */ struct elf_dyn_relocs *dyn_relocs; @@ -2525,9 +2240,6 @@ { ret->dyn_relocs = NULL; ret->gotplt_refcount = 0; -#ifdef INCLUDE_SHMEDIA - ret->datalabel_got.refcount = ret->root.got.refcount; -#endif ret->funcdesc.refcount = 0; ret->abs_funcdesc_refcount = 0; ret->got_type = GOT_UNKNOWN; @@ -3097,32 +2809,6 @@ else h->got.offset = (bfd_vma) -1; -#ifdef INCLUDE_SHMEDIA - if (eh->datalabel_got.refcount > 0) - { - asection *s; - bfd_boolean dyn; - - /* Make sure this symbol is output as a dynamic symbol. - Undefined weak syms won't yet be marked as dynamic. */ - if (h->dynindx == -1 - && !h->forced_local) - { - if (! bfd_elf_link_record_dynamic_symbol (info, h)) - return FALSE; - } - - s = htab->root.sgot; - eh->datalabel_got.offset = s->size; - s->size += 4; - dyn = htab->root.dynamic_sections_created; - if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, bfd_link_pic (info), h)) - htab->root.srelgot->size += sizeof (Elf32_External_Rela); - } - else - eh->datalabel_got.offset = (bfd_vma) -1; -#endif - /* Allocate space for any dynamic relocations to function descriptors, canonical or otherwise. We need to relocate the reference unless it resolves to zero, which only happens for @@ -3286,7 +2972,7 @@ info->flags |= DF_TEXTREL; info->callbacks->minfo - (_("%B: dynamic relocation against `%T' in read-only section `%A'\n"), + (_("%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"), sec->owner, h->root.root.string, sec); /* Not an error, just cut short the traversal. */ @@ -3389,7 +3075,7 @@ if ((p->sec->output_section->flags & SEC_READONLY) != 0) { info->flags |= DF_TEXTREL; - info->callbacks->minfo (_("%B: dynamic relocation in read-only section `%A'\n"), + info->callbacks->minfo (_("%pB: dynamic relocation in read-only section `%pA'\n"), p->sec->owner, p->sec); } @@ -3402,10 +3088,6 @@ symtab_hdr = &elf_symtab_hdr (ibfd); locsymcount = symtab_hdr->sh_info; -#ifdef INCLUDE_SHMEDIA - /* Count datalabel local GOT. */ - locsymcount *= 2; -#endif s = htab->root.sgot; srel = htab->root.srelgot; @@ -3944,7 +3626,7 @@ if ((sym->st_other & STO_SH5_ISA32) != 0) (*info->callbacks->reloc_dangerous) (info, - _("Unexpected STO_SH5_ISA32 on local symbol is not handled"), + _("unexpected STO_SH5_ISA32 on local symbol is not handled"), input_bfd, input_section, rel->r_offset); if (sec != NULL && discarded_section (sec)) @@ -4000,9 +3682,10 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): %s relocation against SEC_MERGE section"), + (_("%pB(%pA+%#" PRIx64 "): " + "%s relocation against SEC_MERGE section"), input_bfd, input_section, - rel->r_offset, howto->name); + (uint64_t) rel->r_offset, howto->name); return FALSE; } @@ -4025,15 +3708,7 @@ symname = h->root.root.string; while (h->root.type == bfd_link_hash_indirect || h->root.type == bfd_link_hash_warning) - { -#ifdef INCLUDE_SHMEDIA - /* If the reference passes a symbol marked with - STT_DATALABEL, then any STO_SH5_ISA32 on the final value - doesn't count. */ - seen_stt_datalabel |= h->type == STT_DATALABEL; -#endif - h = (struct elf_link_hash_entry *) h->root.u.i.link; - } + h = (struct elf_link_hash_entry *) h->root.u.i.link; if (h->root.type == bfd_link_hash_defined || h->root.type == bfd_link_hash_defweak) { @@ -4118,10 +3793,11 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"), + (_("%pB(%pA+%#" PRIx64 "): " + "unresolvable %s relocation against symbol `%s'"), input_bfd, input_section, - rel->r_offset, + (uint64_t) rel->r_offset, howto->name, h->root.root.string); return FALSE; @@ -4197,9 +3873,10 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: %#Lx: fatal: unaligned branch target for relax-support relocation"), + (_("%pB: %#" PRIx64 ": fatal: " + "unaligned branch target for relax-support relocation"), input_section->owner, - rel->r_offset); + (uint64_t) rel->r_offset); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -4210,11 +3887,6 @@ break; default: -#ifdef INCLUDE_SHMEDIA - if (shmedia_prepare_reloc (info, input_bfd, input_section, - contents, rel, &relocation)) - goto final_link_relocate; -#endif bfd_set_error (bfd_error_bad_value); return FALSE; @@ -4231,10 +3903,10 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: %#Lx: fatal: unaligned %s relocation %#Lx"), - input_section->owner, - rel->r_offset, howto->name, - relocation); + (_("%pB: %#" PRIx64 ": fatal: " + "unaligned %s relocation %#" PRIx64), + input_section->owner, (uint64_t) rel->r_offset, + howto->name, (uint64_t) relocation); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -4247,10 +3919,11 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: %#Lx: fatal: unaligned %s relocation %#Lx"), + (_("%pB: %#" PRIx64 ": fatal: " + "unaligned %s relocation %#" PRIx64 ""), input_section->owner, - rel->r_offset, howto->name, - relocation); + (uint64_t) rel->r_offset, howto->name, + (uint64_t) relocation); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -4262,10 +3935,11 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: %#Lx: fatal: R_SH_PSHA relocation %Ld not in range -32..32"), + (_("%pB: %#" PRIx64 ": fatal: R_SH_PSHA relocation %" PRId64 + " not in range -32..32"), input_section->owner, - rel->r_offset, - relocation); + (uint64_t) rel->r_offset, + (int64_t) relocation); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -4277,10 +3951,11 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: %#Lx: fatal: R_SH_PSHL relocation %Ld not in range -32..32"), + (_("%pB: %#" PRIx64 ": fatal: R_SH_PSHL relocation %" PRId64 + " not in range -32..32"), input_section->owner, - rel->r_offset, - relocation); + (uint64_t) rel->r_offset, + (int64_t) relocation); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -4288,12 +3963,6 @@ case R_SH_DIR32: case R_SH_REL32: -#ifdef INCLUDE_SHMEDIA - case R_SH_IMM_LOW16_PCREL: - case R_SH_IMM_MEDLOW16_PCREL: - case R_SH_IMM_MEDHI16_PCREL: - case R_SH_IMM_HI16_PCREL: -#endif if (bfd_link_pic (info) && (h == NULL || (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT @@ -4345,17 +4014,6 @@ ? bfd_get_32 (input_bfd, contents + rel->r_offset) : addend); } -#ifdef INCLUDE_SHMEDIA - else if (r_type == R_SH_IMM_LOW16_PCREL - || r_type == R_SH_IMM_MEDLOW16_PCREL - || r_type == R_SH_IMM_MEDHI16_PCREL - || r_type == R_SH_IMM_HI16_PCREL) - { - BFD_ASSERT (h != NULL && h->dynindx != -1); - outrel.r_info = ELF32_R_INFO (h->dynindx, r_type); - outrel.r_addend = addend; - } -#endif else if (fdpic_p && (h == NULL || ((info->symbolic || h->dynindx == -1) @@ -4423,10 +4081,11 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): cannot emit fixup to `%s' in read-only section"), + (_("%pB(%pA+%#" PRIx64 "): " + "cannot emit fixup to `%s' in read-only section"), input_bfd, input_section, - rel->r_offset, + (uint64_t) rel->r_offset, symname); return FALSE; } @@ -4450,14 +4109,6 @@ goto final_link_relocate; case R_SH_GOTPLT32: -#ifdef INCLUDE_SHMEDIA - case R_SH_GOTPLT_LOW16: - case R_SH_GOTPLT_MEDLOW16: - case R_SH_GOTPLT_MEDHI16: - case R_SH_GOTPLT_HI16: - case R_SH_GOTPLT10BY4: - case R_SH_GOTPLT10BY8: -#endif /* Relocation is to the entry for this symbol in the procedure linkage table. */ @@ -4488,14 +4139,6 @@ force_got: case R_SH_GOT32: case R_SH_GOT20: -#ifdef INCLUDE_SHMEDIA - case R_SH_GOT_LOW16: - case R_SH_GOT_MEDLOW16: - case R_SH_GOT_MEDHI16: - case R_SH_GOT_HI16: - case R_SH_GOT10BY4: - case R_SH_GOT10BY8: -#endif /* Relocation is to the entry for this symbol in the global offset table. */ @@ -4508,15 +4151,6 @@ bfd_boolean dyn; off = h->got.offset; -#ifdef INCLUDE_SHMEDIA - if (seen_stt_datalabel) - { - struct elf_sh_link_hash_entry *hsh; - - hsh = (struct elf_sh_link_hash_entry *)h; - off = hsh->datalabel_got.offset; - } -#endif BFD_ASSERT (off != (bfd_vma) -1); dyn = htab->root.dynamic_sections_created; @@ -4547,17 +4181,7 @@ { bfd_put_32 (output_bfd, relocation, sgot->contents + off); -#ifdef INCLUDE_SHMEDIA - if (seen_stt_datalabel) - { - struct elf_sh_link_hash_entry *hsh; - - hsh = (struct elf_sh_link_hash_entry *)h; - hsh->datalabel_got.offset |= 1; - } - else -#endif - h->got.offset |= 1; + h->got.offset |= 1; /* If we initialize the GOT entry here with a valid symbol address, also add a fixup. */ @@ -4576,27 +4200,10 @@ } else { -#ifdef INCLUDE_SHMEDIA - if (rel->r_addend) - { - BFD_ASSERT (local_got_offsets != NULL - && (local_got_offsets[symtab_hdr->sh_info - + r_symndx] - != (bfd_vma) -1)); - - off = local_got_offsets[symtab_hdr->sh_info - + r_symndx]; - } - else - { -#endif BFD_ASSERT (local_got_offsets != NULL && local_got_offsets[r_symndx] != (bfd_vma) -1); off = local_got_offsets[r_symndx]; -#ifdef INCLUDE_SHMEDIA - } -#endif /* The offset must always be a multiple of 4. We use the least significant bit to record whether we have @@ -4640,12 +4247,7 @@ + sgot->output_offset + off); -#ifdef INCLUDE_SHMEDIA - if (rel->r_addend) - local_got_offsets[symtab_hdr->sh_info + r_symndx] |= 1; - else -#endif - local_got_offsets[r_symndx] |= 1; + local_got_offsets[r_symndx] |= 1; } relocation = sh_elf_got_offset (htab) + off; @@ -4667,12 +4269,6 @@ case R_SH_GOTOFF: case R_SH_GOTOFF20: -#ifdef INCLUDE_SHMEDIA - case R_SH_GOTOFF_LOW16: - case R_SH_GOTOFF_MEDLOW16: - case R_SH_GOTOFF_MEDHI16: - case R_SH_GOTOFF_HI16: -#endif /* GOTOFF relocations are relative to _GLOBAL_OFFSET_TABLE_, which we place at the start of the .got.plt section. This is the same as the start of the output .got section, unless there are function @@ -4700,12 +4296,6 @@ goto final_link_relocate; case R_SH_GOTPC: -#ifdef INCLUDE_SHMEDIA - case R_SH_GOTPC_LOW16: - case R_SH_GOTPC_MEDLOW16: - case R_SH_GOTPC_MEDHI16: - case R_SH_GOTPC_HI16: -#endif /* Use global offset table as symbol value. */ BFD_ASSERT (sgotplt != NULL); @@ -4720,12 +4310,6 @@ goto final_link_relocate; case R_SH_PLT32: -#ifdef INCLUDE_SHMEDIA - case R_SH_PLT_LOW16: - case R_SH_PLT_MEDLOW16: - case R_SH_PLT_MEDHI16: - case R_SH_PLT_HI16: -#endif /* Relocation is to the entry for this symbol in the procedure linkage table. */ @@ -4758,10 +4342,6 @@ + splt->output_offset + h->plt.offset); -#ifdef INCLUDE_SHMEDIA - relocation++; -#endif - addend = rel->r_addend; goto final_link_relocate; @@ -4896,10 +4476,11 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): cannot emit fixup to `%s' in read-only section"), + (_("%pB(%pA+%#" PRIx64 "): " + "cannot emit fixup to `%s' in read-only section"), input_bfd, input_section, - rel->r_offset, + (uint64_t) rel->r_offset, symname); return FALSE; } @@ -4998,9 +4579,10 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): %s relocation against external symbol \"%s\""), - input_bfd, input_section, rel->r_offset, howto->name, - h->root.root.string); + (_("%pB(%pA+%#" PRIx64 "): " + "%s relocation against external symbol \"%s\""), + input_bfd, input_section, (uint64_t) rel->r_offset, + howto->name, h->root.root.string); return FALSE; } else @@ -5707,10 +5289,6 @@ } edir->gotplt_refcount = eind->gotplt_refcount; eind->gotplt_refcount = 0; -#ifdef INCLUDE_SHMEDIA - edir->datalabel_got.refcount += eind->datalabel_got.refcount; - eind->datalabel_got.refcount = 0; -#endif edir->funcdesc.refcount += eind->funcdesc.refcount; eind->funcdesc.refcount = 0; edir->abs_funcdesc_refcount += eind->abs_funcdesc_refcount; @@ -5805,9 +5383,6 @@ { struct elf_link_hash_entry *h; unsigned long r_symndx; -#ifdef INCLUDE_SHMEDIA - int seen_stt_datalabel = 0; -#endif r_symndx = ELF32_R_SYM (rel->r_info); r_type = ELF32_R_TYPE (rel->r_info); @@ -5819,12 +5394,7 @@ h = sym_hashes[r_symndx - symtab_hdr->sh_info]; while (h->root.type == bfd_link_hash_indirect || h->root.type == bfd_link_hash_warning) - { -#ifdef INCLUDE_SHMEDIA - seen_stt_datalabel |= h->type == STT_DATALABEL; -#endif - h = (struct elf_link_hash_entry *) h->root.u.i.link; - } + h = (struct elf_link_hash_entry *) h->root.u.i.link; } r_type = sh_elf_optimized_tls_reloc (info, r_type, h == NULL); @@ -5882,28 +5452,6 @@ case R_SH_GOTOFFFUNCDESC: case R_SH_GOTOFFFUNCDESC20: case R_SH_GOTPC: -#ifdef INCLUDE_SHMEDIA - case R_SH_GOTPLT_LOW16: - case R_SH_GOTPLT_MEDLOW16: - case R_SH_GOTPLT_MEDHI16: - case R_SH_GOTPLT_HI16: - case R_SH_GOTPLT10BY4: - case R_SH_GOTPLT10BY8: - case R_SH_GOT_LOW16: - case R_SH_GOT_MEDLOW16: - case R_SH_GOT_MEDHI16: - case R_SH_GOT_HI16: - case R_SH_GOT10BY4: - case R_SH_GOT10BY8: - case R_SH_GOTOFF_LOW16: - case R_SH_GOTOFF_MEDLOW16: - case R_SH_GOTOFF_MEDHI16: - case R_SH_GOTOFF_HI16: - case R_SH_GOTPC_LOW16: - case R_SH_GOTPC_MEDLOW16: - case R_SH_GOTPC_MEDHI16: - case R_SH_GOTPC_HI16: -#endif case R_SH_TLS_GD_32: case R_SH_TLS_LD_32: case R_SH_TLS_IE_32: @@ -5945,14 +5493,6 @@ case R_SH_TLS_GD_32: case R_SH_GOT32: case R_SH_GOT20: -#ifdef INCLUDE_SHMEDIA - case R_SH_GOT_LOW16: - case R_SH_GOT_MEDLOW16: - case R_SH_GOT_MEDHI16: - case R_SH_GOT_HI16: - case R_SH_GOT10BY4: - case R_SH_GOT10BY8: -#endif case R_SH_GOTFUNCDESC: case R_SH_GOTFUNCDESC20: switch (r_type) @@ -5974,17 +5514,7 @@ if (h != NULL) { -#ifdef INCLUDE_SHMEDIA - if (seen_stt_datalabel) - { - struct elf_sh_link_hash_entry *eh - = (struct elf_sh_link_hash_entry *) h; - - eh->datalabel_got.refcount += 1; - } - else -#endif - h->got.refcount += 1; + h->got.refcount += 1; old_got_type = sh_elf_hash_entry (h)->got_type; } else @@ -6000,33 +5530,16 @@ size = symtab_hdr->sh_info; size *= sizeof (bfd_signed_vma); -#ifdef INCLUDE_SHMEDIA - /* Reserve space for both the datalabel and - codelabel local GOT offsets. */ - size *= 2; -#endif size += symtab_hdr->sh_info; local_got_refcounts = ((bfd_signed_vma *) bfd_zalloc (abfd, size)); if (local_got_refcounts == NULL) return FALSE; elf_local_got_refcounts (abfd) = local_got_refcounts; -#ifdef INCLUDE_SHMEDIA - /* Take care of both the datalabel and codelabel local - GOT offsets. */ - sh_elf_local_got_type (abfd) - = (char *) (local_got_refcounts + 2 * symtab_hdr->sh_info); -#else sh_elf_local_got_type (abfd) = (char *) (local_got_refcounts + symtab_hdr->sh_info); -#endif } -#ifdef INCLUDE_SHMEDIA - if (rel->r_addend & 1) - local_got_refcounts[symtab_hdr->sh_info + r_symndx] += 1; - else -#endif - local_got_refcounts[r_symndx] += 1; + local_got_refcounts[r_symndx] += 1; old_got_type = sh_elf_local_got_type (abfd) [r_symndx]; } @@ -6043,18 +5556,18 @@ && (old_got_type == GOT_NORMAL || got_type == GOT_NORMAL)) _bfd_error_handler /* xgettext:c-format */ - (_("%B: `%s' accessed both as normal and FDPIC symbol"), + (_("%pB: `%s' accessed both as normal and FDPIC symbol"), abfd, h->root.root.string); else if (old_got_type == GOT_FUNCDESC || got_type == GOT_FUNCDESC) _bfd_error_handler /* xgettext:c-format */ - (_("%B: `%s' accessed both as FDPIC and thread local symbol"), + (_("%pB: `%s' accessed both as FDPIC and thread local symbol"), abfd, h->root.root.string); else _bfd_error_handler /* xgettext:c-format */ - (_("%B: `%s' accessed both as normal and thread local symbol"), + (_("%pB: `%s' accessed both as normal and thread local symbol"), abfd, h->root.root.string); return FALSE; } @@ -6080,7 +5593,7 @@ if (rel->r_addend) { _bfd_error_handler - (_("%B: Function descriptor relocation with non-zero addend"), + (_("%pB: Function descriptor relocation with non-zero addend"), abfd); return FALSE; } @@ -6096,10 +5609,6 @@ bfd_size_type size; size = symtab_hdr->sh_info * sizeof (union gotref); -#ifdef INCLUDE_SHMEDIA - /* Count datalabel local GOT. */ - size *= 2; -#endif local_funcdesc = (union gotref *) bfd_zalloc (abfd, size); if (local_funcdesc == NULL) return FALSE; @@ -6129,26 +5638,18 @@ if (old_got_type == GOT_NORMAL) _bfd_error_handler /* xgettext:c-format */ - (_("%B: `%s' accessed both as normal and FDPIC symbol"), + (_("%pB: `%s' accessed both as normal and FDPIC symbol"), abfd, h->root.root.string); else _bfd_error_handler /* xgettext:c-format */ - (_("%B: `%s' accessed both as FDPIC and thread local symbol"), + (_("%pB: `%s' accessed both as FDPIC and thread local symbol"), abfd, h->root.root.string); } } break; case R_SH_GOTPLT32: -#ifdef INCLUDE_SHMEDIA - case R_SH_GOTPLT_LOW16: - case R_SH_GOTPLT_MEDLOW16: - case R_SH_GOTPLT_MEDHI16: - case R_SH_GOTPLT_HI16: - case R_SH_GOTPLT10BY4: - case R_SH_GOTPLT10BY8: -#endif /* If this is a local symbol, we resolve it directly without creating a procedure linkage table entry. */ @@ -6166,12 +5667,6 @@ break; case R_SH_PLT32: -#ifdef INCLUDE_SHMEDIA - case R_SH_PLT_LOW16: - case R_SH_PLT_MEDLOW16: - case R_SH_PLT_MEDHI16: - case R_SH_PLT_HI16: -#endif /* 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 @@ -6193,12 +5688,6 @@ case R_SH_DIR32: case R_SH_REL32: -#ifdef INCLUDE_SHMEDIA - case R_SH_IMM_LOW16_PCREL: - case R_SH_IMM_MEDLOW16_PCREL: - case R_SH_IMM_MEDHI16_PCREL: - case R_SH_IMM_HI16_PCREL: -#endif if (h != NULL && ! bfd_link_pic (info)) { h->non_got_ref = 1; @@ -6294,14 +5783,7 @@ } p->count += 1; - if (r_type == R_SH_REL32 -#ifdef INCLUDE_SHMEDIA - || r_type == R_SH_IMM_LOW16_PCREL - || r_type == R_SH_IMM_MEDLOW16_PCREL - || r_type == R_SH_IMM_MEDHI16_PCREL - || r_type == R_SH_IMM_HI16_PCREL -#endif - ) + if (r_type == R_SH_REL32) p->pc_count += 1; } @@ -6318,7 +5800,7 @@ if (bfd_link_dll (info)) { _bfd_error_handler - (_("%B: TLS local exec code cannot be linked into shared objects"), + (_("%pB: TLS local exec code cannot be linked into shared objects"), abfd); return FALSE; } @@ -6433,7 +5915,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: uses %s instructions while previous modules " + (_("%pB: uses %s instructions while previous modules " "use %s instructions"), ibfd, SH_ARCH_SET_HAS_DSP (new_arch) ? "dsp" : "floating point", @@ -6482,7 +5964,7 @@ if (! sh_merge_bfd_arch (ibfd, info)) { - _bfd_error_handler (_("%B: uses instructions which are incompatible " + _bfd_error_handler (_("%pB: uses instructions which are incompatible " "with instructions used in previous modules"), ibfd); bfd_set_error (bfd_error_bad_value); @@ -6495,7 +5977,7 @@ if (fdpic_object_p (ibfd) != fdpic_object_p (obfd)) { - _bfd_error_handler (_("%B: attempt to mix FDPIC and non-FDPIC objects"), + _bfd_error_handler (_("%pB: attempt to mix FDPIC and non-FDPIC objects"), ibfd); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -6791,70 +6273,6 @@ bfd_elf32_swap_reloca_out (output_bfd, &rel, loc); } -#ifdef INCLUDE_SHMEDIA - { - struct elf_sh_link_hash_entry *eh; - - eh = (struct elf_sh_link_hash_entry *) h; - if (eh->datalabel_got.offset != (bfd_vma) -1) - { - asection *sgot; - asection *srelgot; - Elf_Internal_Rela rel; - bfd_byte *loc; - - /* This symbol has a datalabel entry in the global offset table. - Set it up. */ - - sgot = htab->root.sgot; - srelgot = htab->root.srelgot; - BFD_ASSERT (sgot != NULL && srelgot != NULL); - - rel.r_offset = (sgot->output_section->vma - + sgot->output_offset - + (eh->datalabel_got.offset &~ (bfd_vma) 1)); - - /* If this is a static link, or it is a -Bsymbolic link and the - symbol is defined locally or was forced to be local because - of a version file, we just want to emit a RELATIVE reloc. - The entry in the global offset table will already have been - initialized in the relocate_section function. */ - if (bfd_link_pic (info) - && SYMBOL_REFERENCES_LOCAL (info, h)) - { - if (htab->fdpic_p) - { - asection *sec = h->root.u.def.section; - int dynindx - = elf_section_data (sec->output_section)->dynindx; - - rel.r_info = ELF32_R_INFO (dynindx, R_SH_DIR32); - rel.r_addend = (h->root.u.def.value - + h->root.u.def.section->output_offset); - } - else - { - rel.r_info = ELF32_R_INFO (0, R_SH_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 - + eh->datalabel_got.offset); - rel.r_info = ELF32_R_INFO (h->dynindx, R_SH_GLOB_DAT); - rel.r_addend = 0; - } - - loc = srelgot->contents; - loc += srelgot->reloc_count++ * sizeof (Elf32_External_Rela); - bfd_elf32_swap_reloca_out (output_bfd, &rel, loc); - } - } -#endif - if (h->needs_copy) { asection *s; @@ -6918,9 +6336,6 @@ { Elf_Internal_Dyn dyn; asection *s; -#ifdef INCLUDE_SHMEDIA - const char *name; -#endif bfd_elf32_swap_dyn_in (htab->root.dynobj, dyncon, &dyn); @@ -6932,29 +6347,6 @@ bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon); break; -#ifdef INCLUDE_SHMEDIA - case DT_INIT: - name = info->init_function; - goto get_sym; - - case DT_FINI: - name = info->fini_function; - get_sym: - if (dyn.d_un.d_val != 0) - { - struct elf_link_hash_entry *h; - - h = elf_link_hash_lookup (&htab->root, name, - FALSE, FALSE, TRUE); - if (h != NULL && (h->other & STO_SH5_ISA32)) - { - dyn.d_un.d_val |= 1; - bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon); - } - } - break; -#endif - case DT_PLTGOT: BFD_ASSERT (htab->root.hgot != NULL); s = htab->root.hgot->root.u.def.section; @@ -7304,7 +6696,7 @@ #define elf_backend_linux_prpsinfo32_ugid16 TRUE -#if !defined INCLUDE_SHMEDIA && !defined SH_TARGET_ALREADY_DEFINED +#if !defined SH_TARGET_ALREADY_DEFINED #include "elf32-target.h" @@ -7402,4 +6794,4 @@ #include "elf32-target.h" -#endif /* neither INCLUDE_SHMEDIA nor SH_TARGET_ALREADY_DEFINED */ +#endif /* not SH_TARGET_ALREADY_DEFINED */ diff -Nru gdb-8.1/bfd/elf32-sh-relocs.h gdb-8.2/bfd/elf32-sh-relocs.h --- gdb-8.1/bfd/elf32-sh-relocs.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-sh-relocs.h 2018-09-05 07:27:13.000000000 +0000 @@ -575,113 +575,6 @@ 0x0f, /* dst_mask */ FALSE), /* pcrel_offset */ -#ifdef INCLUDE_SHMEDIA - /* Used in SHLLI.L and SHLRI.L. */ - HOWTO (R_SH_DIR5U, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 5, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_unsigned, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_DIR5U", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xfc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in SHARI, SHLLI et al. */ - HOWTO (R_SH_DIR6U, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 6, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_unsigned, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_DIR6U", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xfc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in BxxI, LDHI.L et al. */ - HOWTO (R_SH_DIR6S, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 6, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_DIR6S", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xfc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in ADDI, ANDI et al. */ - HOWTO (R_SH_DIR10S, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 10, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_DIR10S", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in LD.UW, ST.W et al. */ - HOWTO (R_SH_DIR10SW, /* type */ - 1, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 11, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_DIR10SW", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in LD.L, FLD.S et al. */ - HOWTO (R_SH_DIR10SL, /* type */ - 2, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 12, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_DIR10SL", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in FLD.D, FST.P et al. */ - HOWTO (R_SH_DIR10SQ, /* type */ - 3, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 13, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_DIR10SQ", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - -#else EMPTY_HOWTO (45), EMPTY_HOWTO (46), EMPTY_HOWTO (47), @@ -689,7 +582,6 @@ EMPTY_HOWTO (49), EMPTY_HOWTO (50), EMPTY_HOWTO (51), -#endif EMPTY_HOWTO (52), @@ -1046,423 +938,6 @@ 0xffffffff, /* dst_mask */ FALSE), /* pcrel_offset */ -#ifdef INCLUDE_SHMEDIA - /* Used in MOVI and SHORI (x & 65536). */ - HOWTO (R_SH_GOT_LOW16, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOT_LOW16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 16) & 65536). */ - HOWTO (R_SH_GOT_MEDLOW16, /* type */ - 16, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOT_MEDLOW16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 32) & 65536). */ - HOWTO (R_SH_GOT_MEDHI16, /* type */ - 32, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOT_MEDHI16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 48) & 65536). */ - HOWTO (R_SH_GOT_HI16, /* type */ - 48, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOT_HI16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI (x & 65536). */ - HOWTO (R_SH_GOTPLT_LOW16, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTPLT_LOW16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 16) & 65536). */ - HOWTO (R_SH_GOTPLT_MEDLOW16, /* type */ - 16, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTPLT_MEDLOW16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 32) & 65536). */ - HOWTO (R_SH_GOTPLT_MEDHI16, /* type */ - 32, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTPLT_MEDHI16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 48) & 65536). */ - HOWTO (R_SH_GOTPLT_HI16, /* type */ - 48, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTPLT_HI16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI (x & 65536). */ - HOWTO (R_SH_PLT_LOW16, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_PLT_LOW16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 16) & 65536). */ - HOWTO (R_SH_PLT_MEDLOW16, /* type */ - 16, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_PLT_MEDLOW16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 32) & 65536). */ - HOWTO (R_SH_PLT_MEDHI16, /* type */ - 32, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_PLT_MEDHI16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 48) & 65536). */ - HOWTO (R_SH_PLT_HI16, /* type */ - 48, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_PLT_HI16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* Used in MOVI and SHORI (x & 65536). */ - HOWTO (R_SH_GOTOFF_LOW16, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTOFF_LOW16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 16) & 65536). */ - HOWTO (R_SH_GOTOFF_MEDLOW16, /* type */ - 16, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTOFF_MEDLOW16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 32) & 65536). */ - HOWTO (R_SH_GOTOFF_MEDHI16, /* type */ - 32, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTOFF_MEDHI16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 48) & 65536). */ - HOWTO (R_SH_GOTOFF_HI16, /* type */ - 48, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTOFF_HI16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI (x & 65536). */ - HOWTO (R_SH_GOTPC_LOW16, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTPC_LOW16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 16) & 65536). */ - HOWTO (R_SH_GOTPC_MEDLOW16, /* type */ - 16, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTPC_MEDLOW16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 32) & 65536). */ - HOWTO (R_SH_GOTPC_MEDHI16, /* type */ - 32, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTPC_MEDHI16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 48) & 65536). */ - HOWTO (R_SH_GOTPC_HI16, /* type */ - 48, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTPC_HI16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* Used in LD.L, FLD.S et al. */ - HOWTO (R_SH_GOT10BY4, /* type */ - 2, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 12, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOT10BY4", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in LD.L, FLD.S et al. */ - HOWTO (R_SH_GOTPLT10BY4, /* type */ - 2, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 12, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTPLT10BY4", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in FLD.D, FST.P et al. */ - HOWTO (R_SH_GOT10BY8, /* type */ - 3, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 13, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOT10BY8", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in FLD.D, FST.P et al. */ - HOWTO (R_SH_GOTPLT10BY8, /* type */ - 3, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 13, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTPLT10BY8", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_SH_COPY64, /* type */ - 0, /* rightshift */ - 4, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_COPY64", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - ((bfd_vma) 0) - 1, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_SH_GLOB_DAT64, /* type */ - 0, /* rightshift */ - 4, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GLOB_DAT64", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - ((bfd_vma) 0) - 1, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_SH_JMP_SLOT64, /* type */ - 0, /* rightshift */ - 4, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_JMP_SLOT64", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - ((bfd_vma) 0) - 1, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_SH_RELATIVE64, /* type */ - 0, /* rightshift */ - 4, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_RELATIVE64", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - ((bfd_vma) 0) - 1, /* dst_mask */ - FALSE), /* pcrel_offset */ -#else EMPTY_HOWTO (169), EMPTY_HOWTO (170), EMPTY_HOWTO (171), @@ -1491,8 +966,6 @@ EMPTY_HOWTO (194), EMPTY_HOWTO (195), EMPTY_HOWTO (196), -#endif - EMPTY_HOWTO (197), EMPTY_HOWTO (198), EMPTY_HOWTO (199), @@ -1619,262 +1092,6 @@ 0xffffffff, /* dst_mask */ FALSE), /* pcrel_offset */ -#ifdef INCLUDE_SHMEDIA - EMPTY_HOWTO (209), - EMPTY_HOWTO (210), - EMPTY_HOWTO (211), - EMPTY_HOWTO (212), - EMPTY_HOWTO (213), - EMPTY_HOWTO (214), - EMPTY_HOWTO (215), - EMPTY_HOWTO (216), - EMPTY_HOWTO (217), - EMPTY_HOWTO (218), - EMPTY_HOWTO (219), - EMPTY_HOWTO (220), - EMPTY_HOWTO (221), - EMPTY_HOWTO (222), - EMPTY_HOWTO (223), - EMPTY_HOWTO (224), - EMPTY_HOWTO (225), - EMPTY_HOWTO (226), - EMPTY_HOWTO (227), - EMPTY_HOWTO (228), - EMPTY_HOWTO (229), - EMPTY_HOWTO (230), - EMPTY_HOWTO (231), - EMPTY_HOWTO (232), - EMPTY_HOWTO (233), - EMPTY_HOWTO (234), - EMPTY_HOWTO (235), - EMPTY_HOWTO (236), - EMPTY_HOWTO (237), - EMPTY_HOWTO (238), - EMPTY_HOWTO (239), - EMPTY_HOWTO (240), - EMPTY_HOWTO (241), - - /* Relocations for SHmedia code. None of these are partial_inplace or - use the field being relocated (except R_SH_PT_16). */ - - /* The assembler will generate this reloc before a block of SHmedia - instructions. A section should be processed as assuming it contains - data, unless this reloc is seen. Note that a block of SHcompact - instructions are instead preceded by R_SH_CODE. - This is currently not implemented, but should be used for SHmedia - linker relaxation. */ - HOWTO (R_SH_SHMEDIA_CODE, /* type */ - 0, /* rightshift */ - 1, /* size (0 = byte, 1 = short, 2 = long) */ - 0, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_unsigned, /* complain_on_overflow */ - sh_elf_ignore_reloc, /* special_function */ - "R_SH_SHMEDIA_CODE", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* The assembler will generate this reloc at a PTA or PTB instruction, - and the linker checks the right type of target, or changes a PTA to a - PTB, if the original insn was PT. */ - HOWTO (R_SH_PT_16, /* type */ - 2, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 18, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_PT_16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* Used in unexpanded MOVI. */ - HOWTO (R_SH_IMMS16, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_IMMS16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in SHORI. */ - HOWTO (R_SH_IMMU16, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_unsigned, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_IMMU16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI (x & 65536). */ - HOWTO (R_SH_IMM_LOW16, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_IMM_LOW16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x - $) & 65536). */ - HOWTO (R_SH_IMM_LOW16_PCREL, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_IMM_LOW16_PCREL", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 16) & 65536). */ - HOWTO (R_SH_IMM_MEDLOW16, /* type */ - 16, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_IMM_MEDLOW16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI (((x - $) >> 16) & 65536). */ - HOWTO (R_SH_IMM_MEDLOW16_PCREL, /* type */ - 16, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_IMM_MEDLOW16_PCREL", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 32) & 65536). */ - HOWTO (R_SH_IMM_MEDHI16, /* type */ - 32, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_IMM_MEDHI16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI (((x - $) >> 32) & 65536). */ - HOWTO (R_SH_IMM_MEDHI16_PCREL, /* type */ - 32, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_IMM_MEDHI16_PCREL", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 48) & 65536). */ - HOWTO (R_SH_IMM_HI16, /* type */ - 48, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_IMM_HI16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI (((x - $) >> 48) & 65536). */ - HOWTO (R_SH_IMM_HI16_PCREL, /* type */ - 48, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_IMM_HI16_PCREL", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* For the .uaquad pseudo. */ - HOWTO (R_SH_64, /* type */ - 0, /* rightshift */ - 4, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_64", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - ((bfd_vma) 0) - 1, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* For the .uaquad pseudo, (x - $). */ - HOWTO (R_SH_64_PCREL, /* type */ - 48, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_64_PCREL", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - ((bfd_vma) 0) - 1, /* dst_mask */ - TRUE), /* pcrel_offset */ - -#endif #undef SH_PARTIAL32 #undef SH_SRC_MASK32 #undef SH_ELF_RELOC diff -Nru gdb-8.1/bfd/elf32-sh-symbian.c gdb-8.2/bfd/elf32-sh-symbian.c --- gdb-8.1/bfd/elf32-sh-symbian.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-sh-symbian.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,615 +0,0 @@ -/* Renesas / SuperH specific support for Symbian 32-bit ELF files - Copyright (C) 2004-2018 Free Software Foundation, Inc. - Contributed by Red Hat - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - - -/* Stop elf32-sh.c from defining any target vectors. */ -#define SH_TARGET_ALREADY_DEFINED -#define sh_find_elf_flags sh_symbian_find_elf_flags -#define sh_elf_get_flags_from_mach sh_symbian_elf_get_flags_from_mach -#include "elf32-sh.c" - - -//#define SYMBIAN_DEBUG 1 -#define SYMBIAN_DEBUG 0 - -#define DIRECTIVE_HEADER "##\n" -#define DIRECTIVE_IMPORT "IMPORT " -#define DIRECTIVE_EXPORT "EXPORT " -#define DIRECTIVE_AS "AS " - -/* Macro to advance 's' until either it reaches 'e' or the - character pointed to by 's' is equal to 'c'. If 'e' is - reached and SYMBIAN_DEBUG is enabled then the error message 'm' - is displayed. */ -#define SKIP_UNTIL(s,e,c,m) \ - do \ - { \ - while (s < e && *s != c) \ - ++ s; \ - if (s >= e) \ - { \ - if (SYMBIAN_DEBUG) \ - fprintf (stderr, "Corrupt directive: %s\n", m); \ - result = FALSE; \ - } \ - } \ - while (0); \ - if (!result) \ - break; - -/* Like SKIP_UNTIL except there are two terminator characters - c1 and c2. */ -#define SKIP_UNTIL2(s,e,c1,c2,m) \ - do \ - { \ - while (s < e && *s != c1 && *s != c2) \ - ++ s; \ - if (s >= e) \ - { \ - if (SYMBIAN_DEBUG) \ - fprintf (stderr, "Corrupt directive: %s\n", m); \ - result = FALSE; \ - } \ - } \ - while (0); \ - if (!result) \ - break; - -/* Macro to advance 's' until either it reaches 'e' or the - character pointed to by 's' is not equal to 'c'. If 'e' - is reached and SYMBIAN_DEBUG is enabled then the error message - 'm' is displayed. */ -#define SKIP_WHILE(s,e,c,m) \ - do \ - { \ - while (s < e && *s == c) \ - ++ s; \ - if (s >= e) \ - { \ - if (SYMBIAN_DEBUG) \ - fprintf (stderr, "Corrupt directive: %s\n", m); \ - result = FALSE; \ - } \ - } \ - while (0); \ - if (!result) \ - break; - - -typedef struct symbol_rename -{ - struct symbol_rename * next; - char * current_name; - char * new_name; - struct elf_link_hash_entry * current_hash; - unsigned long new_symndx; -} -symbol_rename; - -static symbol_rename * rename_list = NULL; - -/* Accumulate a list of symbols to be renamed. */ - -static bfd_boolean -sh_symbian_import_as (struct bfd_link_info *info, bfd * abfd, - char * current_name, char * new_name) -{ - struct elf_link_hash_entry * new_hash; - symbol_rename * node; - - if (SYMBIAN_DEBUG) - fprintf (stderr, "IMPORT '%s' AS '%s'\n", current_name, new_name); - - for (node = rename_list; node; node = node->next) - if (strcmp (node->current_name, current_name) == 0) - { - if (strcmp (node->new_name, new_name) == 0) - /* Already added to rename list. */ - return TRUE; - - bfd_set_error (bfd_error_invalid_operation); - /* xgettext:c-format */ - _bfd_error_handler (_("%B: IMPORT AS directive for %s conceals previous IMPORT AS"), - abfd, current_name); - return FALSE; - } - - if ((node = bfd_malloc (sizeof * node)) == NULL) - { - if (SYMBIAN_DEBUG) - fprintf (stderr, "IMPORT AS: No mem for new rename node\n"); - return FALSE; - } - - if ((node->current_name = bfd_malloc (strlen (current_name) + 1)) == NULL) - { - if (SYMBIAN_DEBUG) - fprintf (stderr, "IMPORT AS: No mem for current name field in rename node\n"); - free (node); - return FALSE; - } - else - strcpy (node->current_name, current_name); - - if ((node->new_name = bfd_malloc (strlen (new_name) + 1)) == NULL) - { - if (SYMBIAN_DEBUG) - fprintf (stderr, "IMPORT AS: No mem for new name field in rename node\n"); - free (node->current_name); - free (node); - return FALSE; - } - else - strcpy (node->new_name, new_name); - - node->next = rename_list; - node->current_hash = NULL; - node->new_symndx = 0; - rename_list = node; - - new_hash = elf_link_hash_lookup (elf_hash_table (info), node->new_name, TRUE, FALSE, TRUE); - bfd_elf_link_record_dynamic_symbol (info, new_hash); - if (new_hash->root.type == bfd_link_hash_new) - new_hash->root.type = bfd_link_hash_undefined; - - return TRUE; -} - - -static bfd_boolean -sh_symbian_import (bfd * abfd ATTRIBUTE_UNUSED, char * name) -{ - if (SYMBIAN_DEBUG) - fprintf (stderr, "IMPORT '%s'\n", name); - - /* XXX: Generate an import somehow ? */ - - return TRUE; -} - -static bfd_boolean -sh_symbian_export (bfd * abfd ATTRIBUTE_UNUSED, char * name) -{ - if (SYMBIAN_DEBUG) - fprintf (stderr, "EXPORT '%s'\n", name); - - /* XXX: Generate an export somehow ? */ - - return TRUE; -} - -/* Process any magic embedded commands in the .directive. section. - Returns TRUE upon sucecss, but if it fails it sets bfd_error and - returns FALSE. */ - -static bfd_boolean -sh_symbian_process_embedded_commands (struct bfd_link_info *info, bfd * abfd, - asection * sec, bfd_byte * contents) -{ - char *s; - char *e; - bfd_boolean result = TRUE; - bfd_size_type sz = sec->rawsize ? sec->rawsize : sec->size; - - for (s = (char *) contents, e = s + sz; s < e;) - { - char * directive = s; - - switch (*s) - { - /* I want to use "case DIRECTIVE_HEADER [0]:" here but gcc won't let me :-( */ - case '#': - if (strcmp (s, DIRECTIVE_HEADER)) - result = FALSE; - else - /* Just ignore the header. - XXX: Strictly speaking we ought to check that the header - is present and that it is the first thing in the file. */ - s += strlen (DIRECTIVE_HEADER) + 1; - break; - - case 'I': - if (! CONST_STRNEQ (s, DIRECTIVE_IMPORT)) - result = FALSE; - else - { - char * new_name; - char * new_name_end; - char name_end_char; - - /* Skip the IMPORT directive. */ - s += strlen (DIRECTIVE_IMPORT); - - new_name = s; - /* Find the end of the new name. */ - while (s < e && *s != ' ' && *s != '\n') - ++ s; - if (s >= e) - { - /* We have reached the end of the .directive section - without encountering a string terminator. This is - allowed for IMPORT directives. */ - new_name_end = e - 1; - name_end_char = * new_name_end; - * new_name_end = 0; - result = sh_symbian_import (abfd, new_name); - * new_name_end = name_end_char; - break; - } - - /* Remember where the name ends. */ - new_name_end = s; - /* Skip any whitespace before the 'AS'. */ - SKIP_WHILE (s, e, ' ', "IMPORT: Name just followed by spaces"); - /* Terminate the new name. (Do this after skiping...) */ - name_end_char = * new_name_end; - * new_name_end = 0; - - /* Check to see if 'AS '... is present. If so we have an - IMPORT AS directive, otherwise we have an IMPORT directive. */ - if (! CONST_STRNEQ (s, DIRECTIVE_AS)) - { - /* Skip the new-line at the end of the name. */ - if (SYMBIAN_DEBUG && name_end_char != '\n') - fprintf (stderr, "IMPORT: No newline at end of directive\n"); - else - s ++; - - result = sh_symbian_import (abfd, new_name); - - /* Skip past the NUL character. */ - if (* s ++ != 0) - { - if (SYMBIAN_DEBUG) - fprintf (stderr, "IMPORT: No NUL at end of directive\n"); - } - } - else - { - char * current_name; - char * current_name_end; - char current_name_end_char; - - /* Skip the 'AS '. */ - s += strlen (DIRECTIVE_AS); - /* Skip any white space after the 'AS '. */ - SKIP_WHILE (s, e, ' ', "IMPORT AS: Nothing after AS"); - current_name = s; - /* Find the end of the current name. */ - SKIP_UNTIL2 (s, e, ' ', '\n', "IMPORT AS: No newline at the end of the current name"); - /* Skip (backwards) over spaces at the end of the current name. */ - current_name_end = s; - current_name_end_char = * current_name_end; - - SKIP_WHILE (s, e, ' ', "IMPORT AS: Current name just followed by spaces"); - /* Skip past the newline character. */ - if (* s ++ != '\n') - if (SYMBIAN_DEBUG) - fprintf (stderr, "IMPORT AS: No newline at end of directive\n"); - - /* Terminate the current name after having performed the skips. */ - * current_name_end = 0; - - result = sh_symbian_import_as (info, abfd, current_name, new_name); - - /* The next character should be a NUL. */ - if (* s != 0) - { - if (SYMBIAN_DEBUG) - fprintf (stderr, "IMPORT AS: Junk at end of directive\n"); - result = FALSE; - } - s ++; - - * current_name_end = current_name_end_char; - } - - /* Restore the characters we overwrote, since - the .directive section will be emitted. */ - * new_name_end = name_end_char; - } - break; - - case 'E': - if (! CONST_STRNEQ (s, DIRECTIVE_EXPORT)) - result = FALSE; - else - { - char * name; - char * name_end; - char name_end_char; - - /* Skip the directive. */ - s += strlen (DIRECTIVE_EXPORT); - name = s; - /* Find the end of the name to be exported. */ - SKIP_UNTIL (s, e, '\n', "EXPORT: no newline at end of directive"); - /* Skip (backwards) over spaces at end of exported name. */ - for (name_end = s; name_end[-1] == ' '; name_end --) - ; - /* name_end now points at the first character after the - end of the exported name, so we can termiante it */ - name_end_char = * name_end; - * name_end = 0; - /* Skip passed the newline character. */ - s ++; - - result = sh_symbian_export (abfd, name); - - /* The next character should be a NUL. */ - if (* s != 0) - { - if (SYMBIAN_DEBUG) - fprintf (stderr, "EXPORT: Junk at end of directive\n"); - result = FALSE; - } - s++; - - /* Restore the character we deleted. */ - * name_end = name_end_char; - } - break; - - default: - result = FALSE; - break; - } - - if (! result) - { - if (SYMBIAN_DEBUG) - fprintf (stderr, "offset into .directive section: %ld\n", - (long) (directive - (char *) contents)); - - bfd_set_error (bfd_error_invalid_operation); - /* xgettext:c-format */ - _bfd_error_handler (_("%B: Unrecognised .directive command: %s"), - abfd, directive); - break; - } - } - - return result; -} - - -/* Scan a bfd for a .directive section, and if found process it. - Returns TRUE upon success, FALSE otherwise. */ - -static bfd_boolean -sh_symbian_process_directives (bfd *abfd, struct bfd_link_info *info) -{ - bfd_boolean result = FALSE; - bfd_byte * contents; - asection * sec = bfd_get_section_by_name (abfd, ".directive"); - bfd_size_type sz; - - if (!sec) - return TRUE; - - sz = sec->rawsize ? sec->rawsize : sec->size; - contents = bfd_malloc (sz); - - if (!contents) - bfd_set_error (bfd_error_no_memory); - else - { - if (bfd_get_section_contents (abfd, sec, contents, 0, sz)) - result = sh_symbian_process_embedded_commands (info, abfd, sec, contents); - free (contents); - } - - return result; -} - -/* Intercept the normal sh_relocate_section() function - and magle the relocs to allow for symbol renaming. */ - -static bfd_boolean -sh_symbian_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) -{ - /* When performing a final link we implement the IMPORT AS directives. */ - if (!bfd_link_relocatable (info)) - { - Elf_Internal_Rela * rel; - Elf_Internal_Rela * relend; - Elf_Internal_Shdr * symtab_hdr; - struct elf_link_hash_entry ** sym_hashes; - struct elf_link_hash_entry ** sym_hashes_end; - struct elf_link_hash_table * hash_table; - symbol_rename * ptr; - bfd_size_type num_global_syms; - unsigned long num_local_syms; - - BFD_ASSERT (! elf_bad_symtab (input_bfd)); - - symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr; - hash_table = elf_hash_table (info); - num_local_syms = symtab_hdr->sh_info; - num_global_syms = symtab_hdr->sh_size / sizeof (Elf32_External_Sym); - num_global_syms -= num_local_syms; - sym_hashes = elf_sym_hashes (input_bfd); - sym_hashes_end = sym_hashes + num_global_syms; - - /* First scan the rename table, caching the hash entry and the new index. */ - for (ptr = rename_list; ptr; ptr = ptr->next) - { - struct elf_link_hash_entry * new_hash; - struct elf_link_hash_entry ** h; - - ptr->current_hash = elf_link_hash_lookup (hash_table, ptr->current_name, FALSE, FALSE, TRUE); - - if (ptr->current_hash == NULL) - { - if (SYMBIAN_DEBUG) - fprintf (stderr, "IMPORT AS: current symbol '%s' does not exist\n", ptr->current_name); - continue; - } - - new_hash = elf_link_hash_lookup (hash_table, ptr->new_name, - FALSE, FALSE, TRUE); - /* If we could not find the symbol then it is a new, undefined symbol. - Symbian want this behaviour - ie they want to be able to rename the - reference in a reloc from one undefined symbol to another, new and - undefined symbol. So we create that symbol here. */ - if (new_hash == NULL) - { - struct bfd_link_hash_entry *bh = NULL; - bfd_boolean collect = get_elf_backend_data (input_bfd)->collect; - if (_bfd_generic_link_add_one_symbol (info, input_bfd, - ptr->new_name, BSF_GLOBAL, - bfd_und_section_ptr, 0, - NULL, FALSE, collect, - &bh)) - { - new_hash = (struct elf_link_hash_entry *) bh; - new_hash->type = STT_FUNC; - new_hash->non_elf = 0; - - if (SYMBIAN_DEBUG) - fprintf (stderr, "Created new symbol %s\n", ptr->new_name); - } - } - - if (new_hash == NULL) - { - /* xgettext:c-format */ - _bfd_error_handler (_("%B: Failed to add renamed symbol %s"), - input_bfd, ptr->new_name); - continue; - } - - /* Convert the new_hash value into a index into the table of symbol hashes. */ - for (h = sym_hashes; h < sym_hashes_end; h ++) - { - if (* h == new_hash) - { - ptr->new_symndx = h - sym_hashes + num_local_syms; - if (SYMBIAN_DEBUG) - fprintf (stderr, "Converted new hash to index of %ld\n", ptr->new_symndx); - break; - } - } - /* If the new symbol is not in the hash table then it must be - because it is one of the newly created undefined symbols - manufactured above. So we extend the sym has table here to - include this extra symbol. */ - if (h == sym_hashes_end) - { - struct elf_link_hash_entry ** new_sym_hashes; - - /* This is not very efficient, but it works. */ - ++ num_global_syms; - new_sym_hashes = bfd_alloc (input_bfd, num_global_syms * sizeof * sym_hashes); - if (new_sym_hashes == NULL) - { - if (SYMBIAN_DEBUG) - fprintf (stderr, "Out of memory extending hash table\n"); - continue; - } - memcpy (new_sym_hashes, sym_hashes, (num_global_syms - 1) * sizeof * sym_hashes); - new_sym_hashes[num_global_syms - 1] = new_hash; - elf_sym_hashes (input_bfd) = sym_hashes = new_sym_hashes; - sym_hashes_end = sym_hashes + num_global_syms; - symtab_hdr->sh_size = (num_global_syms + num_local_syms) * sizeof (Elf32_External_Sym); - - ptr->new_symndx = num_global_syms - 1 + num_local_syms; - - if (SYMBIAN_DEBUG) - fprintf (stderr, "Extended symbol hash table to insert new symbol as index %ld\n", - ptr->new_symndx); - } - } - - /* Walk the reloc list looking for references to renamed symbols. - When we find one, we alter the index in the reloc to point to the new symbol. */ - for (rel = relocs, relend = relocs + input_section->reloc_count; - rel < relend; - rel ++) - { - int r_type; - unsigned long r_symndx; - struct elf_link_hash_entry * h; - - r_symndx = ELF32_R_SYM (rel->r_info); - r_type = ELF32_R_TYPE (rel->r_info); - - /* Ignore unused relocs. */ - if ((r_type >= (int) R_SH_GNU_VTINHERIT - && r_type <= (int) R_SH_LABEL) - || r_type == (int) R_SH_NONE - || r_type < 0 - || r_type >= R_SH_max) - continue; - - /* Ignore relocs against local symbols. */ - if (r_symndx < num_local_syms) - continue; - - BFD_ASSERT (r_symndx < (num_global_syms + num_local_syms)); - h = sym_hashes[r_symndx - num_local_syms]; - BFD_ASSERT (h != NULL); - - 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 the symbol is defined there is no need to rename it. - XXX - is this true ? */ - if ( h->root.type == bfd_link_hash_defined - || h->root.type == bfd_link_hash_defweak - || h->root.type == bfd_link_hash_undefweak) - continue; - - for (ptr = rename_list; ptr; ptr = ptr->next) - if (h == ptr->current_hash) - { - BFD_ASSERT (ptr->new_symndx); - if (SYMBIAN_DEBUG) - fprintf (stderr, "convert reloc %lx from using index %ld to using index %ld\n", - (unsigned long) rel->r_info, - (long) ELF32_R_SYM (rel->r_info), ptr->new_symndx); - rel->r_info = ELF32_R_INFO (ptr->new_symndx, r_type); - break; - } - } - } - - return sh_elf_relocate_section (output_bfd, info, input_bfd, input_section, - contents, relocs, local_syms, local_sections); -} - -#define TARGET_LITTLE_SYM sh_elf32_symbian_le_vec -#define TARGET_LITTLE_NAME "elf32-shl-symbian" - -#undef elf_backend_relocate_section -#define elf_backend_relocate_section sh_symbian_relocate_section -#undef elf_backend_check_directives -#define elf_backend_check_directives sh_symbian_process_directives - -#include "elf32-target.h" diff -Nru gdb-8.1/bfd/elf32-sparc.c gdb-8.2/bfd/elf32-sparc.c --- gdb-8.1/bfd/elf32-sparc.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-sparc.c 2018-09-05 07:27:13.000000000 +0000 @@ -86,7 +86,7 @@ { error = TRUE; _bfd_error_handler - (_("%B: compiled for a 64 bit system and target is 32 bit"), ibfd); + (_("%pB: compiled for a 64 bit system and target is 32 bit"), ibfd); } else if ((ibfd->flags & DYNAMIC) == 0) { @@ -99,7 +99,7 @@ && previous_ibfd_e_flags != (unsigned long) -1) { _bfd_error_handler - (_("%B: linking little endian files with big endian files"), ibfd); + (_("%pB: linking little endian files with big endian files"), ibfd); error = TRUE; } previous_ibfd_e_flags = elf_elfheader (ibfd)->e_flags & EF_SPARC_LEDATA; @@ -175,25 +175,6 @@ } } -/* Hook called by the linker routine which adds symbols from an object - file. */ - -static bfd_boolean -elf32_sparc_add_symbol_hook (bfd * abfd, - struct bfd_link_info * info, - Elf_Internal_Sym * sym, - const char ** namep ATTRIBUTE_UNUSED, - flagword * flagsp ATTRIBUTE_UNUSED, - asection ** secp ATTRIBUTE_UNUSED, - bfd_vma * valp ATTRIBUTE_UNUSED) -{ - if (ELF_ST_TYPE (sym->st_info) == STT_GNU_IFUNC - && (abfd->flags & DYNAMIC) == 0 - && bfd_get_flavour (info->output_bfd) == bfd_target_elf_flavour) - elf_tdata (info->output_bfd)->has_gnu_symbols |= elf_gnu_symbol_ifunc; - return TRUE; -} - #define TARGET_BIG_SYM sparc_elf32_vec #define TARGET_BIG_NAME "elf32-sparc" #define ELF_ARCH bfd_arch_sparc @@ -249,8 +230,6 @@ #define elf_backend_want_dynrelro 1 #define elf_backend_rela_normal 1 -#define elf_backend_add_symbol_hook elf32_sparc_add_symbol_hook - #define elf_backend_linux_prpsinfo32_ugid16 TRUE #include "elf32-target.h" diff -Nru gdb-8.1/bfd/elf32-spu.c gdb-8.2/bfd/elf32-spu.c --- gdb-8.1/bfd/elf32-spu.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-spu.c 2018-09-05 07:27:13.000000000 +0000 @@ -145,8 +145,8 @@ } } -static void -spu_elf_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +spu_elf_info_to_howto (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { @@ -157,12 +157,13 @@ if (r_type >= R_SPU_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: unrecognised SPU reloc number: %d"), + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), abfd, r_type); bfd_set_error (bfd_error_bad_value); - r_type = R_SPU_NONE; + return FALSE; } cache_ptr->howto = &elf_howto_table[(int) r_type]; + return TRUE; } static reloc_howto_type * @@ -723,16 +724,16 @@ if ((s->vma - vma_start) & (htab->params->line_size - 1)) { - info->callbacks->einfo (_("%X%P: overlay section %A " - "does not start on a cache line.\n"), + info->callbacks->einfo (_("%X%P: overlay section %pA " + "does not start on a cache line\n"), s); bfd_set_error (bfd_error_bad_value); return 0; } else if (s->size > htab->params->line_size) { - info->callbacks->einfo (_("%X%P: overlay section %A " - "is larger than a cache line.\n"), + info->callbacks->einfo (_("%X%P: overlay section %pA " + "is larger than a cache line\n"), s); bfd_set_error (bfd_error_bad_value); return 0; @@ -751,8 +752,8 @@ s = alloc_sec[i]; if (s->vma < ovl_end) { - info->callbacks->einfo (_("%X%P: overlay section %A " - "is not in cache area.\n"), + info->callbacks->einfo (_("%X%P: overlay section %pA " + "is not in cache area\n"), alloc_sec[i-1]); bfd_set_error (bfd_error_bad_value); return 0; @@ -792,9 +793,9 @@ if (s0->vma != s->vma) { /* xgettext:c-format */ - info->callbacks->einfo (_("%X%P: overlay sections %A " - "and %A do not start at the " - "same address.\n"), + info->callbacks->einfo (_("%X%P: overlay sections %pA " + "and %pA do not start at the " + "same address\n"), s0, s); bfd_set_error (bfd_error_bad_value); return 0; @@ -1018,7 +1019,7 @@ } _bfd_error_handler /* xgettext:c-format */ - (_("warning: call to non-function symbol %s defined in %B"), + (_("warning: call to non-function symbol %s defined in %pB"), sym_name, sym_sec->owner); } @@ -1368,7 +1369,7 @@ if (stub_type != br000_ovl_stub && lrlive != stub_type - br000_ovl_stub) /* xgettext:c-format */ - info->callbacks->einfo (_("%A:0x%v lrlive .brinfo (%u) differs " + info->callbacks->einfo (_("%pA:0x%v lrlive .brinfo (%u) differs " "from analysis (%u)\n"), isec, irela->r_offset, lrlive, stub_type - br000_ovl_stub); @@ -1900,7 +1901,7 @@ else if (h->root.u.def.section->owner != NULL) { /* xgettext:c-format */ - _bfd_error_handler (_("%B is not allowed to define %s"), + _bfd_error_handler (_("%pB is not allowed to define %s"), h->root.u.def.section->owner, h->root.root.string); bfd_set_error (bfd_error_bad_value); @@ -2611,7 +2612,7 @@ return &sinfo->fun[mid]; } /* xgettext:c-format */ - info->callbacks->einfo (_("%A:0x%v not found in function table\n"), + info->callbacks->einfo (_("%pA:0x%v not found in function table\n"), sec, offset); bfd_set_error (bfd_error_bad_value); return NULL; @@ -2752,8 +2753,8 @@ if (!warned) info->callbacks->einfo /* xgettext:c-format */ - (_("%B(%A+0x%v): call to non-code section" - " %B(%A), analysis incomplete\n"), + (_("%pB(%pA+0x%v): call to non-code section" + " %pB(%pA), analysis incomplete\n"), sec->owner, sec, irela->r_offset, sym_sec->owner, sym_sec); warned = TRUE; @@ -3321,7 +3322,7 @@ const char *f2 = func_name (call->fun); /* xgettext:c-format */ - info->callbacks->info (_("Stack analysis will ignore the call " + info->callbacks->info (_("stack analysis will ignore the call " "from %s to %s\n"), f1, f2); } @@ -4541,7 +4542,7 @@ if (i == base) { /* xgettext:c-format */ - info->callbacks->einfo (_("%B:%A%s exceeds overlay size\n"), + info->callbacks->einfo (_("%pB:%pA%s exceeds overlay size\n"), ovly_sections[2 * i]->owner, ovly_sections[2 * i], ovly_sections[2 * i + 1] ? " + rodata" : ""); @@ -5040,10 +5041,11 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%s+%#Lx): unresolvable %s relocation against symbol `%s'"), + (_("%pB(%s+%#" PRIx64 "): " + "unresolvable %s relocation against symbol `%s'"), input_bfd, bfd_get_section_name (input_bfd, input_section), - rel->r_offset, + (uint64_t) rel->r_offset, howto->name, sym_name); ret = FALSE; diff -Nru gdb-8.1/bfd/elf32-tic6x.c gdb-8.2/bfd/elf32-tic6x.c --- gdb-8.1/bfd/elf32-tic6x.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-tic6x.c 2018-09-05 07:27:13.000000000 +0000 @@ -1495,7 +1495,7 @@ return NULL; } -static void +static bfd_boolean elf32_tic6x_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *bfd_reloc, Elf_Internal_Rela *elf_reloc) { @@ -1503,12 +1503,28 @@ r_type = ELF32_R_TYPE (elf_reloc->r_info); if (r_type >= ARRAY_SIZE (elf32_tic6x_howto_table)) - bfd_reloc->howto = NULL; - else - bfd_reloc->howto = &elf32_tic6x_howto_table[r_type]; + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + + bfd_reloc->howto = &elf32_tic6x_howto_table[r_type]; + if (bfd_reloc->howto == NULL || bfd_reloc->howto->name == NULL) + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + + return TRUE; } -static void +static bfd_boolean elf32_tic6x_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED, arelent *bfd_reloc, Elf_Internal_Rela *elf_reloc) { @@ -1516,9 +1532,25 @@ r_type = ELF32_R_TYPE (elf_reloc->r_info); if (r_type >= ARRAY_SIZE (elf32_tic6x_howto_table_rel)) - bfd_reloc->howto = NULL; - else - bfd_reloc->howto = &elf32_tic6x_howto_table_rel[r_type]; + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + + bfd_reloc->howto = &elf32_tic6x_howto_table_rel[r_type]; + if (bfd_reloc->howto == NULL || bfd_reloc->howto->name == NULL) + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + + return TRUE; } void @@ -2213,6 +2245,7 @@ bfd_reloc_status_type r; struct bfd_link_hash_entry *sbh; bfd_boolean is_rel; + bfd_boolean res; r_type = ELF32_R_TYPE (rel->r_info); r_symndx = ELF32_R_SYM (rel->r_info); @@ -2221,11 +2254,11 @@ relocs, rel); if (is_rel) - elf32_tic6x_info_to_howto_rel (input_bfd, &bfd_reloc, rel); + res = elf32_tic6x_info_to_howto_rel (input_bfd, &bfd_reloc, rel); else - elf32_tic6x_info_to_howto (input_bfd, &bfd_reloc, rel); - howto = bfd_reloc.howto; - if (howto == NULL) + res = elf32_tic6x_info_to_howto (input_bfd, &bfd_reloc, rel); + + if (!res || (howto = bfd_reloc.howto) == NULL) { bfd_set_error (bfd_error_bad_value); return FALSE; @@ -2457,7 +2490,7 @@ } else { - _bfd_error_handler (_("%B: SB-relative relocation but " + _bfd_error_handler (_("%pB: SB-relative relocation but " "__c6xabi_DSBT_BASE not defined"), input_bfd); ok = FALSE; @@ -2567,21 +2600,21 @@ if (h == NULL) _bfd_error_handler /* xgettext:c-format */ - (_("%B, section %A: relocation %s with non-zero addend %Ld" - " against local symbol"), + (_("%pB, section %pA: relocation %s with non-zero addend %" + PRId64 " against local symbol"), input_bfd, input_section, elf32_tic6x_howto_table[r_type].name, - rel->r_addend); + (int64_t) rel->r_addend); else _bfd_error_handler /* xgettext:c-format */ - (_("%B, section %A: relocation %s with non-zero addend %Ld" - " against symbol `%s'"), + (_("%pB, section %pA: relocation %s with non-zero addend %" + PRId64 " against symbol `%s'"), input_bfd, input_section, elf32_tic6x_howto_table[r_type].name, - rel->r_addend, + (int64_t) rel->r_addend, h->root.root.string[0] != '\0' ? h->root.root.string : _("[whose name is lost]")); @@ -2606,8 +2639,9 @@ default: /* Unknown relocation. */ /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid relocation type %d"), + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), input_bfd, r_type); + bfd_set_error (bfd_error_bad_value); ok = FALSE; continue; } @@ -2746,7 +2780,7 @@ if (r_symndx >= NUM_SHDR_ENTRIES (symtab_hdr)) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: bad symbol index: %d"), + _bfd_error_handler (_("%pB: bad symbol index: %d"), abfd, r_symndx); return FALSE; } @@ -2938,6 +2972,19 @@ case R_C6000_SBR_H16_B: case R_C6000_SBR_H16_H: case R_C6000_SBR_H16_W: + { + /* These relocations implicitly reference __c6xabi_DSBT_BASE. + Add an explicit reference so that the symbol will be + provided by a linker script. */ + struct bfd_link_hash_entry *bh = NULL; + if (!_bfd_generic_link_add_one_symbol (info, abfd, + "__c6xabi_DSBT_BASE", + BSF_GLOBAL, + bfd_und_section_ptr, 0, + NULL, FALSE, FALSE, &bh)) + return FALSE; + ((struct elf_link_hash_entry *) bh)->non_elf = 0; + } if (h != NULL && bfd_link_executable (info)) { /* For B14-relative addresses, we might need a copy @@ -3202,7 +3249,7 @@ info->flags |= DF_TEXTREL; info->callbacks->minfo - (_("%B: dynamic relocation against `%T' in read-only section `%A'\n"), + (_("%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"), sec->owner, h->root.root.string, sec); /* Not an error, just cut short the traversal. */ @@ -3579,7 +3626,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: error: unknown mandatory EABI object attribute %d"), + (_("%pB: error: unknown mandatory EABI object attribute %d"), abfd, tag); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -3588,7 +3635,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: warning: unknown EABI object attribute %d"), + (_("%pB: warning: unknown EABI object attribute %d"), abfd, tag); return TRUE; } @@ -3702,7 +3749,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("error: %B requires more stack alignment than %B preserves"), + (_("error: %pB requires more stack alignment than %pB preserves"), ibfd, obfd); result = FALSE; } @@ -3711,7 +3758,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("error: %B requires more stack alignment than %B preserves"), + (_("error: %pB requires more stack alignment than %pB preserves"), obfd, ibfd); result = FALSE; } @@ -3721,7 +3768,7 @@ if (array_align_in == -1) { _bfd_error_handler - (_("error: unknown Tag_ABI_array_object_alignment value in %B"), + (_("error: unknown Tag_ABI_array_object_alignment value in %pB"), ibfd); result = FALSE; } @@ -3730,7 +3777,7 @@ if (array_align_out == -1) { _bfd_error_handler - (_("error: unknown Tag_ABI_array_object_alignment value in %B"), + (_("error: unknown Tag_ABI_array_object_alignment value in %pB"), obfd); result = FALSE; } @@ -3739,7 +3786,7 @@ if (array_expect_in == -1) { _bfd_error_handler - (_("error: unknown Tag_ABI_array_object_align_expected value in %B"), + (_("error: unknown Tag_ABI_array_object_align_expected value in %pB"), ibfd); result = FALSE; } @@ -3748,7 +3795,7 @@ if (array_expect_out == -1) { _bfd_error_handler - (_("error: unknown Tag_ABI_array_object_align_expected value in %B"), + (_("error: unknown Tag_ABI_array_object_align_expected value in %pB"), obfd); result = FALSE; } @@ -3757,7 +3804,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("error: %B requires more array alignment than %B preserves"), + (_("error: %pB requires more array alignment than %pB preserves"), ibfd, obfd); result = FALSE; } @@ -3765,7 +3812,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("error: %B requires more array alignment than %B preserves"), + (_("error: %pB requires more array alignment than %pB preserves"), obfd, ibfd); result = FALSE; } @@ -3788,7 +3835,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("warning: %B and %B differ in wchar_t size"), obfd, ibfd); + (_("warning: %pB and %pB differ in wchar_t size"), obfd, ibfd); } break; @@ -3807,7 +3854,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("warning: %B and %B differ in whether code is " + (_("warning: %pB and %pB differ in whether code is " "compiled for DSBT"), obfd, ibfd); } diff -Nru gdb-8.1/bfd/elf32-tilepro.c gdb-8.2/bfd/elf32-tilepro.c --- gdb-8.1/bfd/elf32-tilepro.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-tilepro.c 2018-09-05 07:27:13.000000000 +0000 @@ -783,7 +783,7 @@ /* Set the howto pointer for an TILEPro ELF reloc. */ -static void +static bfd_boolean tilepro_info_to_howto_rela (bfd * abfd ATTRIBUTE_UNUSED, arelent * cache_ptr, Elf_Internal_Rela * dst) @@ -793,11 +793,19 @@ if (r_type <= (unsigned int) R_TILEPRO_IMM16_X1_TLS_LE_HA) cache_ptr->howto = &tilepro_elf_howto_table [r_type]; else if (r_type - R_TILEPRO_GNU_VTINHERIT - <= (unsigned int) R_TILEPRO_GNU_VTENTRY) + <= ((unsigned int) R_TILEPRO_GNU_VTENTRY + - (unsigned int) R_TILEPRO_GNU_VTINHERIT)) cache_ptr->howto = &tilepro_elf_howto_table2 [r_type - R_TILEPRO_GNU_VTINHERIT]; else - abort (); + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + return TRUE; } typedef tilepro_bundle_bits (*tilepro_create_func)(int); @@ -1468,7 +1476,7 @@ if (r_symndx >= NUM_SHDR_ENTRIES (symtab_hdr)) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: bad symbol index: %d"), + _bfd_error_handler (_("%pB: bad symbol index: %d"), abfd, r_symndx); return FALSE; } @@ -1581,7 +1589,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: `%s' accessed both as normal and thread local symbol"), + (_("%pB: `%s' accessed both as normal and thread local symbol"), abfd, h ? h->root.root.string : ""); return FALSE; } @@ -2234,7 +2242,7 @@ info->flags |= DF_TEXTREL; info->callbacks->minfo - (_("%B: dynamic relocation against `%T' in read-only section `%A'\n"), + (_("%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"), sec->owner, h->root.root.string, sec); /* Not an error, just cut short the traversal. */ @@ -2257,7 +2265,7 @@ if (strcmp (p->name, ".got") == 0) return FALSE; - return _bfd_elf_link_omit_section_dynsym (output_bfd, info, p); + return _bfd_elf_omit_section_dynsym_default (output_bfd, info, p); } /* Set the sizes of the dynamic sections. */ @@ -2328,7 +2336,7 @@ { info->flags |= DF_TEXTREL; - info->callbacks->minfo (_("%B: dynamic relocation in read-only section `%A'\n"), + info->callbacks->minfo (_("%pB: dynamic relocation in read-only section `%pA'\n"), p->sec->owner, p->sec); } } @@ -3144,7 +3152,7 @@ { BFD_FAIL (); _bfd_error_handler - (_("%B: probably compiled without -fPIC?"), + (_("%pB: probably compiled without -fPIC?"), input_bfd); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -3398,10 +3406,11 @@ rel->r_offset) != (bfd_vma) -1) _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"), + (_("%pB(%pA+%#" PRIx64 "): " + "unresolvable %s relocation against symbol `%s'"), input_bfd, input_section, - rel->r_offset, + (uint64_t) rel->r_offset, howto->name, h->root.root.string); @@ -3749,7 +3758,7 @@ if (bfd_is_abs_section (htab->elf.sgotplt->output_section)) { _bfd_error_handler - (_("discarded output section: `%A'"), htab->elf.sgotplt); + (_("discarded output section: `%pA'"), htab->elf.sgotplt); return FALSE; } diff -Nru gdb-8.1/bfd/elf32-v850.c gdb-8.2/bfd/elf32-v850.c --- gdb-8.1/bfd/elf32-v850.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-v850.c 2018-09-05 07:27:13.000000000 +0000 @@ -61,7 +61,7 @@ return TRUE; #ifdef DEBUG - _bfd_error_handler ("v850_elf_check_relocs called for section %A in %B", + _bfd_error_handler ("v850_elf_check_relocs called for section %pA in %pB", sec, abfd); #endif @@ -150,19 +150,19 @@ switch (h->other & V850_OTHER_MASK) { default: - msg = _("Variable `%s' cannot occupy in multiple small data regions"); + msg = _("variable `%s' cannot occupy in multiple small data regions"); break; case V850_OTHER_SDA | V850_OTHER_ZDA | V850_OTHER_TDA: - msg = _("Variable `%s' can only be in one of the small, zero, and tiny data regions"); + msg = _("variable `%s' can only be in one of the small, zero, and tiny data regions"); break; case V850_OTHER_SDA | V850_OTHER_ZDA: - msg = _("Variable `%s' cannot be in both small and zero data regions simultaneously"); + msg = _("variable `%s' cannot be in both small and zero data regions simultaneously"); break; case V850_OTHER_SDA | V850_OTHER_TDA: - msg = _("Variable `%s' cannot be in both small and tiny data regions simultaneously"); + msg = _("variable `%s' cannot be in both small and tiny data regions simultaneously"); break; case V850_OTHER_ZDA | V850_OTHER_TDA: - msg = _("Variable `%s' cannot be in both zero and tiny data regions simultaneously"); + msg = _("variable `%s' cannot be in both zero and tiny data regions simultaneously"); break; } @@ -460,7 +460,7 @@ } else { - _bfd_error_handler (_("FAILED to find previous HI16 reloc")); + _bfd_error_handler (_("failed to find previous HI16 reloc")); return FALSE; } } @@ -490,7 +490,8 @@ { default: #ifdef DEBUG - fprintf (stderr, "%B: reloc number %d not recognised\n", abfd, r_type); + _bfd_error_handler ("%pB: unsupported relocation type %#x", + abfd, r_type); #endif return bfd_reloc_notsupported; @@ -1884,8 +1885,8 @@ /* Set the howto pointer for an V850 ELF reloc. */ -static void -v850_elf_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +v850_elf_info_to_howto_rel (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { @@ -1895,16 +1896,19 @@ if (r_type >= (unsigned int) R_V850_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid V850 reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = &v850_elf_howto_table[r_type]; + return TRUE; } /* Set the howto pointer for a V850 ELF reloc (type RELA). */ -static void -v850_elf_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +v850_elf_info_to_howto_rela (bfd *abfd, arelent * cache_ptr, Elf_Internal_Rela *dst) { @@ -1914,10 +1918,13 @@ if (r_type >= (unsigned int) R_V850_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid V850 reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = &v850_elf_howto_table[r_type]; + return TRUE; } static bfd_boolean @@ -2145,7 +2152,8 @@ default: #ifdef DEBUG - fprintf (stderr, "%B: reloc number %d not recognised\n", input_bfd, r_type); + _bfd_error_handler ("%pB: unsupported relocation type %#x", + input_bfd, r_type); #endif return bfd_reloc_notsupported; } @@ -2521,7 +2529,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("error: %B needs 8-byte alignment but %B is set for 4-byte alignment"), + (_("error: %pB needs 8-byte alignment but %pB is set for 4-byte alignment"), ibfd, obfd); result = FALSE; } @@ -2537,8 +2545,8 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("error: %B uses 64-bit doubles but " - "%B uses 32-bit doubles"), ibfd, obfd); + (_("error: %pB uses 64-bit doubles but " + "%pB uses 32-bit doubles"), ibfd, obfd); result = FALSE; } else @@ -2552,7 +2560,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("error: %B uses FPU-3.0 but %B only supports FPU-2.0"), + (_("error: %pB uses FPU-3.0 but %pB only supports FPU-2.0"), ibfd, obfd); result = FALSE; } @@ -2809,7 +2817,7 @@ if ((in_flags & EF_V800_850E3) != (out_flags & EF_V800_850E3)) { _bfd_error_handler - (_("%B: Architecture mismatch with previous modules"), ibfd); + (_("%pB: architecture mismatch with previous modules"), ibfd); elf_elfheader (obfd)->e_flags |= EF_V800_850E3; } @@ -2865,7 +2873,7 @@ } _bfd_error_handler - (_("%B: Architecture mismatch with previous modules"), ibfd); + (_("%pB: architecture mismatch with previous modules"), ibfd); } return result; @@ -3598,9 +3606,9 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: %#Lx: warning: R_V850_LONGCALL points to " + (_("%pB: %#" PRIx64 ": warning: %s points to " "unrecognized insns"), - abfd, irel->r_offset); + abfd, (uint64_t) irel->r_offset, "R_V850_LONGCALL"); continue; } @@ -3608,10 +3616,11 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: %#Lx: warning: R_V850_LONGCALL points to " + (_("%pB: %#" PRIx64 ": warning: %s points to " "unrecognized insn %#x"), abfd, - irel->r_offset + no_match, + (uint64_t) (irel->r_offset + no_match), + "R_V850_LONGCALL", insn[no_match]); continue; } @@ -3653,9 +3662,9 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: %#Lx: warning: R_V850_LONGCALL points to " + (_("%pB: %#" PRIx64 ": warning: %s points to " "unrecognized reloc"), - abfd, irel->r_offset); + abfd, (uint64_t) irel->r_offset, "R_V850_LONGCALL"); continue; } @@ -3693,10 +3702,10 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: %#Lx: warning: R_V850_LONGCALL points to " - "unrecognized reloc %#Lx"), - abfd, irel->r_offset, - irelcall->r_offset); + (_("%pB: %#" PRIx64 ": warning: %s points to " + "unrecognized reloc %#" PRIx64), + abfd, (uint64_t) irel->r_offset, "R_V850_LONGCALL", + (uint64_t) irelcall->r_offset); continue; } @@ -3836,9 +3845,9 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: %#Lx: warning: R_V850_LONGJUMP points to " + (_("%pB: %#" PRIx64 ": warning: %s points to " "unrecognized insns"), - abfd, irel->r_offset); + abfd, (uint64_t) irel->r_offset, "R_V850_LONGJUMP"); continue; } @@ -3846,10 +3855,11 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: %#Lx: warning: R_V850_LONGJUMP points to " + (_("%pB: %#" PRIx64 ": warning: %s points to " "unrecognized insn %#x"), abfd, - irel->r_offset + no_match, + (uint64_t) (irel->r_offset + no_match), + "R_V850_LONGJUMP", insn[no_match]); continue; } @@ -3880,9 +3890,9 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: %#Lx: warning: R_V850_LONGJUMP points to " + (_("%pB: %#" PRIx64 ": warning: %s points to " "unrecognized reloc"), - abfd, irel->r_offset); + abfd, (uint64_t) irel->r_offset, "R_V850_LONGJUMP"); continue; } @@ -4241,25 +4251,30 @@ /* Set the howto pointer in CACHE_PTR for a V800 ELF reloc. */ -static void +static bfd_boolean v800_elf_info_to_howto (bfd * abfd, arelent * cache_ptr, Elf_Internal_Rela * dst) { unsigned int r_type = ELF32_R_TYPE (dst->r_info); - BFD_ASSERT (bfd_get_arch (abfd) == bfd_arch_v850_rh850); - - BFD_ASSERT (r_type < (unsigned int) R_V800_max); - if (r_type == R_V800_NONE) r_type = R_V810_NONE; - BFD_ASSERT (r_type >= (unsigned int) R_V810_NONE); - r_type -= R_V810_NONE; - BFD_ASSERT (r_type < ARRAY_SIZE (v800_elf_howto_table)); + if (bfd_get_arch (abfd) != bfd_arch_v850_rh850 + || r_type >= (unsigned int) R_V800_max + || r_type < (unsigned int) R_V810_NONE + || (r_type - R_V810_NONE) >= ARRAY_SIZE (v800_elf_howto_table)) + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } - cache_ptr->howto = v800_elf_howto_table + r_type; + cache_ptr->howto = v800_elf_howto_table + (r_type - R_V810_NONE); + return TRUE; } #undef TARGET_LITTLE_SYM diff -Nru gdb-8.1/bfd/elf32-vax.c gdb-8.2/bfd/elf32-vax.c --- gdb-8.1/bfd/elf32-vax.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-vax.c 2018-09-05 07:27:13.000000000 +0000 @@ -27,7 +27,7 @@ #include "elf/vax.h" static reloc_howto_type *reloc_type_lookup (bfd *, bfd_reloc_code_real_type); -static void rtype_to_howto (bfd *, arelent *, Elf_Internal_Rela *); +static bfd_boolean rtype_to_howto (bfd *, arelent *, Elf_Internal_Rela *); static struct bfd_hash_entry *elf_vax_link_hash_newfunc (struct bfd_hash_entry *, struct bfd_hash_table *, const char *); @@ -278,7 +278,7 @@ FALSE), /* pcrel_offset */ }; -static void +static bfd_boolean rtype_to_howto (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { unsigned int r_type; @@ -287,12 +287,13 @@ if (r_type >= R_VAX_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: unrecognised VAX reloc number: %d"), + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), abfd, r_type); bfd_set_error (bfd_error_bad_value); - r_type = R_VAX_NONE; + return FALSE; } cache_ptr->howto = &howto_table[r_type]; + return TRUE; } #define elf_info_to_howto rtype_to_howto @@ -628,10 +629,10 @@ if (eh->got_addend != (bfd_vma) rel->r_addend) _bfd_error_handler /* xgettext:c-format */ - (_("%B: warning: GOT addend of %Ld to `%s' does" - " not match previous GOT addend of %Ld"), - abfd, rel->r_addend, h->root.root.string, - eh->got_addend); + (_("%pB: warning: GOT addend of %" PRId64 " to `%s' does" + " not match previous GOT addend of %" PRId64), + abfd, (int64_t) rel->r_addend, h->root.root.string, + (int64_t) eh->got_addend); } } @@ -1442,9 +1443,10 @@ else if (rel->r_addend != 0) _bfd_error_handler /* xgettext:c-format */ - (_("%B: warning: PLT addend of %Ld to `%s'" - " from %A section ignored"), - input_bfd, rel->r_addend, h->root.root.string, input_section); + (_("%pB: warning: PLT addend of %" PRId64 " to `%s'" + " from %pA section ignored"), + input_bfd, (int64_t) rel->r_addend, h->root.root.string, + input_section); rel->r_addend = 0; break; @@ -1567,15 +1569,16 @@ if (h != NULL) _bfd_error_handler /* xgettext:c-format */ - (_("%B: warning: %s relocation against symbol `%s'" - " from %A section"), + (_("%pB: warning: %s relocation against symbol `%s'" + " from %pA section"), input_bfd, howto->name, h->root.root.string, input_section); else _bfd_error_handler /* xgettext:c-format */ - (_("%B: warning: %s relocation to %#Lx from %A section"), - input_bfd, howto->name, outrel.r_addend, + (_("%pB: warning: %s relocation to %#" PRIx64 + " from %pA section"), + input_bfd, howto->name, (uint64_t) outrel.r_addend, input_section); } loc = sreloc->contents; diff -Nru gdb-8.1/bfd/elf32-visium.c gdb-8.2/bfd/elf32-visium.c --- gdb-8.1/bfd/elf32-visium.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-visium.c 2018-09-05 07:27:13.000000000 +0000 @@ -25,6 +25,7 @@ #include "libbfd.h" #include "elf-bfd.h" #include "elf/visium.h" +#include "libiberty.h" static bfd_reloc_status_type visium_elf_howto_parity_reloc (bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **); @@ -458,8 +459,8 @@ /* Set the howto pointer for a VISIUM ELF reloc. */ -static void -visium_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr, +static bfd_boolean +visium_info_to_howto_rela (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { unsigned int r_type = ELF32_R_TYPE (dst->r_info); @@ -475,15 +476,18 @@ break; default: - if (r_type >= (unsigned int) R_VISIUM_max) + if (r_type >= ARRAY_SIZE (visium_elf_howto_table)) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid Visium reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = &visium_elf_howto_table[r_type]; break; } + return TRUE; } /* Look through the relocs for a section during the first phase. @@ -814,7 +818,7 @@ if (mismatch) _bfd_error_handler /* xgettext:c-format */ - (_("%B: compiled %s -mtune=%s and linked with modules" + (_("%pB: compiled %s -mtune=%s and linked with modules" " compiled %s -mtune=%s"), ibfd, new_opt_with, opt_arch, old_opt_with, opt_arch); } diff -Nru gdb-8.1/bfd/elf32-wasm32.c gdb-8.2/bfd/elf32-wasm32.c --- gdb-8.1/bfd/elf32-wasm32.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-wasm32.c 2018-09-05 07:27:13.000000000 +0000 @@ -103,26 +103,29 @@ if (i >= ARRAY_SIZE (elf32_wasm32_howto_table)) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid relocation type %d"), - abfd, (int) r_type); - i = R_WASM32_NONE; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return NULL; } if (elf32_wasm32_howto_table[i].type != r_type) return NULL; - return &elf32_wasm32_howto_table[i]; + return elf32_wasm32_howto_table + i; } /* Translate the ELF-internal relocation RELA into CACHE_PTR. */ -static void -elf32_wasm32_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +elf32_wasm32_info_to_howto_rela (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { unsigned int r_type = ELF32_R_TYPE (dst->r_info); + cache_ptr->howto = elf32_wasm32_rtype_to_howto (abfd, r_type); + return cache_ptr->howto != NULL; } #define ELF_ARCH bfd_arch_wasm32 diff -Nru gdb-8.1/bfd/elf32-xc16x.c gdb-8.2/bfd/elf32-xc16x.c --- gdb-8.1/bfd/elf32-xc16x.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-xc16x.c 2018-09-05 07:27:13.000000000 +0000 @@ -212,9 +212,7 @@ { unsigned int i; - for (i = 0; - i < sizeof (xc16x_elf_howto_table) / sizeof (xc16x_elf_howto_table[0]); - i++) + for (i = 0; i < ARRAY_SIZE (xc16x_elf_howto_table); i++) if (xc16x_elf_howto_table[i].name != NULL && strcasecmp (xc16x_elf_howto_table[i].name, r_name) == 0) return &xc16x_elf_howto_table[i]; @@ -225,8 +223,8 @@ /* For a particular operand this function is called to finalise the type of relocation. */ -static void -elf32_xc16x_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *bfd_reloc, +static bfd_boolean +elf32_xc16x_info_to_howto (bfd *abfd, arelent *bfd_reloc, Elf_Internal_Rela *elf_reloc) { unsigned int r; @@ -237,9 +235,12 @@ if (xc16x_elf_howto_table[i].type == r) { bfd_reloc->howto = &xc16x_elf_howto_table[i]; - return; + return TRUE; } - abort (); + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), abfd, r); + bfd_set_error (bfd_error_bad_value); + return FALSE; } static bfd_reloc_status_type diff -Nru gdb-8.1/bfd/elf32-xgate.c gdb-8.2/bfd/elf32-xgate.c --- gdb-8.1/bfd/elf32-xgate.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-xgate.c 2018-09-05 07:44:28.000000000 +0000 @@ -34,7 +34,7 @@ bfd_elf32_bfd_reloc_type_lookup (bfd *, bfd_reloc_code_real_type); static reloc_howto_type * bfd_elf32_bfd_reloc_name_lookup (bfd *, const char *); -static void +static bfd_boolean xgate_info_to_howto_rel (bfd *, arelent *, Elf_Internal_Rela *); static bfd_boolean xgate_elf_set_mach_from_flags (bfd *); @@ -395,7 +395,7 @@ for (i = 0; i < ARRAY_SIZE (xgate_reloc_map); i++) if (xgate_reloc_map[i].bfd_reloc_val == code) return &elf_xgate_howto_table[xgate_reloc_map[i].elf_reloc_val]; - + return NULL; } @@ -414,8 +414,8 @@ /* Set the howto pointer for an XGATE ELF reloc. */ -static void -xgate_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +xgate_info_to_howto_rel (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { @@ -425,10 +425,13 @@ if (r_type >= (unsigned int) R_XGATE_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid XGate reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = &elf_xgate_howto_table[r_type]; + return TRUE; } /* Destroy an XGATE ELF linker hash table. */ @@ -701,12 +704,12 @@ #define TARGET_BIG_SYM xgate_elf32_vec #define TARGET_BIG_NAME "elf32-xgate" -#define elf_info_to_howto 0 +#define elf_info_to_howto NULL #define elf_info_to_howto_rel xgate_info_to_howto_rel #define elf_backend_check_relocs elf32_xgate_check_relocs #define elf_backend_relocate_section elf32_xgate_relocate_section #define elf_backend_object_p xgate_elf_set_mach_from_flags -#define elf_backend_final_write_processing 0 +#define elf_backend_final_write_processing NULL #define elf_backend_can_gc_sections 1 #define elf_backend_special_sections elf32_xgate_special_sections #define elf_backend_post_process_headers elf32_xgate_post_process_headers diff -Nru gdb-8.1/bfd/elf32-xstormy16.c gdb-8.2/bfd/elf32-xstormy16.c --- gdb-8.1/bfd/elf32-xstormy16.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-xstormy16.c 2018-09-05 07:27:13.000000000 +0000 @@ -375,8 +375,8 @@ /* Set the howto pointer for an XSTORMY16 ELF reloc. */ -static void -xstormy16_info_to_howto_rela (bfd * abfd ATTRIBUTE_UNUSED, +static bfd_boolean +xstormy16_info_to_howto_rela (bfd * abfd, arelent * cache_ptr, Elf_Internal_Rela * dst) { @@ -385,11 +385,19 @@ if (r_type <= (unsigned int) R_XSTORMY16_12) cache_ptr->howto = &xstormy16_elf_howto_table [r_type]; else if (r_type - R_XSTORMY16_GNU_VTINHERIT - <= (unsigned int) R_XSTORMY16_GNU_VTENTRY) + <= ((unsigned int) R_XSTORMY16_GNU_VTENTRY + - (unsigned int) R_XSTORMY16_GNU_VTINHERIT)) cache_ptr->howto = &xstormy16_elf_howto_table2 [r_type - R_XSTORMY16_GNU_VTINHERIT]; else - abort (); + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + return TRUE; } /* We support 16-bit pointers to code above 64k by generating a thunk @@ -1009,7 +1017,7 @@ #define elf_backend_always_size_sections \ xstormy16_elf_always_size_sections #define elf_backend_omit_section_dynsym \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true) + _bfd_elf_omit_section_dynsym_all #define elf_backend_finish_dynamic_sections \ xstormy16_elf_finish_dynamic_sections diff -Nru gdb-8.1/bfd/elf32-xtensa.c gdb-8.2/bfd/elf32-xtensa.c --- gdb-8.1/bfd/elf32-xtensa.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf32-xtensa.c 2018-09-05 07:44:28.000000000 +0000 @@ -154,6 +154,11 @@ int elf32xtensa_no_literal_movement = 1; +/* Place property records for a section into individual property section + with xt.prop. prefix. */ + +bfd_boolean elf32xtensa_separate_props = FALSE; + /* Rename one of the generic section flags to better document how it is used here. */ /* Whether relocations have been processed. */ @@ -450,6 +455,9 @@ break; } + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), abfd, (int) code); + bfd_set_error (bfd_error_bad_value); TRACE ("Unknown"); return NULL; } @@ -472,8 +480,8 @@ /* Given an ELF "rela" relocation, find the corresponding howto and record it in the BFD internal arelent representation of the relocation. */ -static void -elf_xtensa_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +elf_xtensa_info_to_howto_rela (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { @@ -482,10 +490,13 @@ if (r_type >= (unsigned int) R_XTENSA_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid XTENSA reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = &elf_howto_table[r_type]; + return TRUE; } @@ -791,7 +802,7 @@ section. Sets TABLE_P and returns the number of entries. On error, returns a negative value. */ -static int +int xtensa_read_table_entries (bfd *abfd, asection *section, property_table_entry **table_p, @@ -923,7 +934,7 @@ blocks[blk - 1].size != 0) { /* xgettext:c-format */ - _bfd_error_handler (_("%B(%A): invalid property table"), + _bfd_error_handler (_("%pB(%pA): invalid property table"), abfd, section); bfd_set_error (bfd_error_bad_value); free (blocks); @@ -1015,7 +1026,7 @@ if (r_symndx >= NUM_SHDR_ENTRIES (symtab_hdr)) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: bad symbol index: %d"), + _bfd_error_handler (_("%pB: bad symbol index: %d"), abfd, r_symndx); return FALSE; } @@ -1189,7 +1200,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: `%s' accessed both as normal and thread local symbol"), + (_("%pB: `%s' accessed both as normal and thread local symbol"), abfd, h ? h->root.root.string : ""); return FALSE; @@ -2652,8 +2663,10 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): relocation offset out of range (size=%#Lx)"), - input_bfd, input_section, rel->r_offset, input_size); + (_("%pB(%pA+%#" PRIx64 "): " + "relocation offset out of range (size=%#" PRIx64 ")"), + input_bfd, input_section, (uint64_t) rel->r_offset, + (uint64_t) input_size); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -2678,12 +2691,12 @@ _bfd_error_handler ((sym_type == STT_TLS /* xgettext:c-format */ - ? _("%B(%A+%#Lx): %s used with TLS symbol %s") + ? _("%pB(%pA+%#" PRIx64 "): %s used with TLS symbol %s") /* xgettext:c-format */ - : _("%B(%A+%#Lx): %s used with non-TLS symbol %s")), + : _("%pB(%pA+%#" PRIx64 "): %s used with non-TLS symbol %s")), input_bfd, input_section, - rel->r_offset, + (uint64_t) rel->r_offset, howto->name, name); } @@ -2936,10 +2949,11 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"), + (_("%pB(%pA+%#" PRIx64 "): " + "unresolvable %s relocation against symbol `%s'"), input_bfd, input_section, - rel->r_offset, + (uint64_t) rel->r_offset, howto->name, name); return FALSE; @@ -3347,7 +3361,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: incompatible machine type. Output is 0x%x. Input is 0x%x"), + (_("%pB: incompatible machine type; output is 0x%x; input is 0x%x"), ibfd, out_mach, in_mach); bfd_set_error (bfd_error_wrong_format); return FALSE; @@ -4578,7 +4592,7 @@ if (content_length < address) { - *error_message = _("Attempt to convert L32R/CALLX to CALL failed"); + *error_message = _("attempt to convert L32R/CALLX to CALL failed"); return bfd_reloc_other; } @@ -4586,7 +4600,7 @@ direct_call_opcode = swap_callx_for_call_opcode (opcode); if (direct_call_opcode == XTENSA_UNDEFINED) { - *error_message = _("Attempt to convert L32R/CALLX to CALL failed"); + *error_message = _("attempt to convert L32R/CALLX to CALL failed"); return bfd_reloc_other; } @@ -6414,9 +6428,10 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): could not decode instruction; " + (_("%pB(%pA+%#" PRIx64 "): could not decode instruction; " "possible configuration mismatch"), - ebb->sec->owner, ebb->sec, ebb->end_offset + insn_block_len); + ebb->sec->owner, ebb->sec, + (uint64_t) (ebb->end_offset + insn_block_len)); return FALSE; } ebb->end_offset += insn_block_len; @@ -6492,9 +6507,10 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): could not decode instruction; " + (_("%pB(%pA+%#" PRIx64 "): could not decode instruction; " "possible configuration mismatch"), - ebb->sec->owner, ebb->sec, ebb->end_offset + insn_block_len); + ebb->sec->owner, ebb->sec, + (uint64_t) (ebb->end_offset + insn_block_len)); return FALSE; } ebb->start_offset -= insn_block_len; @@ -6714,7 +6730,6 @@ static bfd_boolean check_section_ebb_reduces (const ebb_constraint *); static void text_action_add_proposed (text_action_list *, const ebb_constraint *, asection *); -static int compute_fill_extra_space (property_table_entry *); /* First pass: */ static bfd_boolean compute_removed_literals @@ -7607,10 +7622,10 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): could not decode instruction for " + (_("%pB(%pA+%#" PRIx64 "): could not decode instruction for " "XTENSA_ASM_SIMPLIFY relocation; " "possible configuration mismatch"), - sec->owner, sec, r_offset); + sec->owner, sec, (uint64_t) r_offset); continue; } @@ -7868,9 +7883,9 @@ decode_error: _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): could not decode instruction; " + (_("%pB(%pA+%#" PRIx64 "): could not decode instruction; " "possible configuration mismatch"), - ebb->sec->owner, ebb->sec, offset); + ebb->sec->owner, ebb->sec, (uint64_t) offset); return FALSE; } @@ -8120,7 +8135,7 @@ BFD_ASSERT (action->action == ta_fill); BFD_ASSERT (ebb->ends_unreachable->flags & XTENSA_PROP_UNREACHABLE); - extra_space = compute_fill_extra_space (ebb->ends_unreachable); + extra_space = xtensa_compute_fill_extra_space (ebb->ends_unreachable); br = action->removed_bytes + removed_bytes + extra_space; br = br & ((1 << ebb->sec->alignment_power ) - 1); @@ -8139,8 +8154,8 @@ struct xlate_map_entry { - unsigned orig_address; - unsigned new_address; + bfd_vma orig_address; + bfd_vma new_address; unsigned size; }; @@ -8171,6 +8186,7 @@ { void *r; xlate_map_entry_t *e; + struct xlate_map_entry se; if (map == NULL) return offset_with_removed_text (action_list, offset); @@ -8178,10 +8194,19 @@ if (map->entry_count == 0) return offset; - r = bsearch (&offset, map->entry, map->entry_count, + se.orig_address = offset; + r = bsearch (&se, map->entry, map->entry_count, sizeof (xlate_map_entry_t), &xlate_compare); e = (xlate_map_entry_t *) r; + /* There could be a jump past the end of the section, + allow it using the last xlate map entry to translate its address. */ + if (e == NULL) + { + e = map->entry + map->entry_count - 1; + if (xlate_compare (&se, e) <= 0) + e = NULL; + } BFD_ASSERT (e != NULL); if (e == NULL) return offset; @@ -8534,7 +8559,7 @@ int -compute_fill_extra_space (property_table_entry *entry) +xtensa_compute_fill_extra_space (property_table_entry *entry) { int fill_extra_space; @@ -8815,7 +8840,7 @@ do not add fill. */ the_add_entry = elf_xtensa_find_property_entry (prop_table, ptblsize, entry_sec_offset); - fill_extra_space = compute_fill_extra_space (the_add_entry); + fill_extra_space = xtensa_compute_fill_extra_space (the_add_entry); fa = find_fill_action (&relax_info->action_list, sec, entry_sec_offset); removed_diff = compute_removed_action_diff (fa, sec, entry_sec_offset, @@ -10646,8 +10671,8 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): unexpected fix for %s relocation"), - input_bfd, input_section, rel->r_offset, + (_("%pB(%pA+%#" PRIx64 "): unexpected fix for %s relocation"), + input_bfd, input_section, (uint64_t) rel->r_offset, elf_howto_table[r_type].name); return FALSE; } @@ -10966,10 +10991,30 @@ } +static char * +xtensa_add_names (const char *base, const char *suffix) +{ + if (suffix) + { + size_t base_len = strlen (base); + size_t suffix_len = strlen (suffix); + char *str = bfd_malloc (base_len + suffix_len + 1); + + memcpy (str, base, base_len); + memcpy (str + base_len, suffix, suffix_len + 1); + return str; + } + else + { + return strdup (base); + } +} + static int linkonce_len = sizeof (".gnu.linkonce.") - 1; static char * -xtensa_property_section_name (asection *sec, const char *base_name) +xtensa_property_section_name (asection *sec, const char *base_name, + bfd_boolean separate_sections) { const char *suffix, *group_name; char *prop_sec_name; @@ -10980,11 +11025,7 @@ suffix = strrchr (sec->name, '.'); if (suffix == sec->name) suffix = 0; - prop_sec_name = (char *) bfd_malloc (strlen (base_name) + 1 - + (suffix ? strlen (suffix) : 0)); - strcpy (prop_sec_name, base_name); - if (suffix) - strcat (prop_sec_name, suffix); + prop_sec_name = xtensa_add_names (base_name, suffix); } else if (strncmp (sec->name, ".gnu.linkonce.", linkonce_len) == 0) { @@ -11012,19 +11053,24 @@ strcat (prop_sec_name + linkonce_len, suffix); } else - prop_sec_name = strdup (base_name); + { + prop_sec_name = xtensa_add_names (base_name, + separate_sections ? sec->name : NULL); + } return prop_sec_name; } static asection * -xtensa_get_property_section (asection *sec, const char *base_name) +xtensa_get_separate_property_section (asection *sec, const char *base_name, + bfd_boolean separate_section) { char *prop_sec_name; asection *prop_sec; - prop_sec_name = xtensa_property_section_name (sec, base_name); + prop_sec_name = xtensa_property_section_name (sec, base_name, + separate_section); prop_sec = bfd_get_section_by_name_if (sec->owner, prop_sec_name, match_section_group, (void *) elf_group_name (sec)); @@ -11032,6 +11078,21 @@ return prop_sec; } +static asection * +xtensa_get_property_section (asection *sec, const char *base_name) +{ + asection *prop_sec; + + /* Try individual property section first. */ + prop_sec = xtensa_get_separate_property_section (sec, base_name, TRUE); + + /* Refer to a common property section if individual is not present. */ + if (!prop_sec) + prop_sec = xtensa_get_separate_property_section (sec, base_name, FALSE); + + return prop_sec; +} + asection * xtensa_make_property_section (asection *sec, const char *base_name) @@ -11040,7 +11101,8 @@ asection *prop_sec; /* Check if the section already exists. */ - prop_sec_name = xtensa_property_section_name (sec, base_name); + prop_sec_name = xtensa_property_section_name (sec, base_name, + elf32xtensa_separate_props); prop_sec = bfd_get_section_by_name_if (sec->owner, prop_sec_name, match_section_group, (void *) elf_group_name (sec)); @@ -11243,8 +11305,7 @@ #define elf_backend_relocate_section elf_xtensa_relocate_section #define elf_backend_size_dynamic_sections elf_xtensa_size_dynamic_sections #define elf_backend_always_size_sections elf_xtensa_always_size_sections -#define elf_backend_omit_section_dynsym \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true) +#define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all #define elf_backend_special_sections elf_xtensa_special_sections #define elf_backend_action_discarded elf_xtensa_action_discarded #define elf_backend_copy_indirect_symbol elf_xtensa_copy_indirect_symbol diff -Nru gdb-8.1/bfd/elf64-alpha.c gdb-8.2/bfd/elf64-alpha.c --- gdb-8.1/bfd/elf64-alpha.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf64-alpha.c 2018-09-05 07:27:13.000000000 +0000 @@ -1100,8 +1100,8 @@ /* Given an Alpha ELF reloc type, fill in an arelent structure. */ -static void -elf64_alpha_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr, +static bfd_boolean +elf64_alpha_info_to_howto (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { unsigned r_type = ELF64_R_TYPE(dst->r_info); @@ -1109,12 +1109,13 @@ if (r_type >= R_ALPHA_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: unrecognised Alpha reloc number: %d"), + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), abfd, r_type); bfd_set_error (bfd_error_bad_value); - r_type = R_ALPHA_NONE; + return FALSE; } cache_ptr->howto = &elf64_alpha_howto_table[r_type]; + return TRUE; } /* These two relocations create a two-word entry in the got. */ @@ -2459,7 +2460,7 @@ /* Yikes! A single object file has too many entries. */ _bfd_error_handler /* xgettext:c-format */ - (_("%B: .got subsegment exceeds 64K (size %d)"), + (_("%pB: .got subsegment exceeds 64K (size %d)"), i, alpha_elf_tdata (this_got)->total_got_size); return FALSE; } @@ -3014,8 +3015,9 @@ reloc_howto_type *howto = elf64_alpha_howto_table + r_type; _bfd_error_handler /* xgettext:c-format */ - (_("%B: %A+%#Lx: warning: %s relocation against unexpected insn"), - info->abfd, info->sec, irel->r_offset, howto->name); + (_("%pB: %pA+%#" PRIx64 ": warning: " + "%s relocation against unexpected insn"), + info->abfd, info->sec, (uint64_t) irel->r_offset, howto->name); return TRUE; } @@ -3209,8 +3211,9 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: %A+%#Lx: warning: LITERAL relocation against unexpected insn"), - abfd, info->sec, irel->r_offset); + (_("%pB: %pA+%#" PRIx64 ": warning: " + "%s relocation against unexpected insn"), + abfd, info->sec, (uint64_t) irel->r_offset, "LITERAL"); return TRUE; } @@ -4095,7 +4098,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: unknown relocation type %d"), + (_("%pB: unsupported relocation type %#x"), input_bfd, (int) r_type); bfd_set_error (bfd_error_bad_value); ret_val = FALSE; @@ -4243,7 +4246,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: unknown relocation type %d"), + (_("%pB: unsupported relocation type %#x"), input_bfd, (int) r_type); bfd_set_error (bfd_error_bad_value); ret_val = FALSE; @@ -4409,7 +4412,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: gp-relative relocation against dynamic symbol %s"), + (_("%pB: gp-relative relocation against dynamic symbol %s"), input_bfd, h->root.root.root.string); ret_val = FALSE; } @@ -4422,7 +4425,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: gp-relative relocation against dynamic symbol %s"), + (_("%pB: gp-relative relocation against dynamic symbol %s"), input_bfd, h->root.root.root.string); ret_val = FALSE; } @@ -4449,7 +4452,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: pc-relative relocation against dynamic symbol %s"), + (_("%pB: pc-relative relocation against dynamic symbol %s"), input_bfd, h->root.root.root.string); ret_val = FALSE; } @@ -4478,7 +4481,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: change in gp: BRSGP %s"), + (_("%pB: change in gp: BRSGP %s"), input_bfd, h->root.root.root.string); ret_val = FALSE; } @@ -4509,7 +4512,7 @@ } _bfd_error_handler /* xgettext:c-format */ - (_("%B: !samegp reloc against symbol without .prologue: %s"), + (_("%pB: !samegp reloc against symbol without .prologue: %s"), input_bfd, name); ret_val = FALSE; break; @@ -4567,7 +4570,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: unhandled dynamic relocation against %s"), + (_("%pB: unhandled dynamic relocation against %s"), input_bfd, h->root.root.root.string); ret_val = FALSE; @@ -4593,7 +4596,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: pc-relative relocation against dynamic symbol %s"), + (_("%pB: pc-relative relocation against dynamic symbol %s"), input_bfd, h->root.root.root.string); ret_val = FALSE; } @@ -4602,7 +4605,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: pc-relative relocation against undefined weak symbol %s"), + (_("%pB: pc-relative relocation against undefined weak symbol %s"), input_bfd, h->root.root.root.string); ret_val = FALSE; } @@ -4668,7 +4671,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: dtp-relative relocation against dynamic symbol %s"), + (_("%pB: dtp-relative relocation against dynamic symbol %s"), input_bfd, h->root.root.root.string); ret_val = FALSE; } @@ -4685,7 +4688,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: TLS local exec code cannot be linked into shared objects"), + (_("%pB: TLS local exec code cannot be linked into shared objects"), input_bfd); ret_val = FALSE; } @@ -4693,7 +4696,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: tp-relative relocation against dynamic symbol %s"), + (_("%pB: tp-relative relocation against dynamic symbol %s"), input_bfd, h->root.root.root.string); ret_val = FALSE; } @@ -5495,7 +5498,7 @@ #define elf_backend_size_dynamic_sections \ elf64_alpha_size_dynamic_sections #define elf_backend_omit_section_dynsym \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true) + _bfd_elf_omit_section_dynsym_all #define elf_backend_relocate_section \ elf64_alpha_relocate_section #define elf_backend_finish_dynamic_symbol \ diff -Nru gdb-8.1/bfd/elf64-gen.c gdb-8.2/bfd/elf64-gen.c --- gdb-8.1/bfd/elf64-gen.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf64-gen.c 2018-09-05 07:27:13.000000000 +0000 @@ -41,20 +41,22 @@ 0, /* dst_mask */ FALSE); /* pcrel_offset */ -static void +static bfd_boolean elf_generic_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *bfd_reloc, Elf_Internal_Rela *elf_reloc ATTRIBUTE_UNUSED) { bfd_reloc->howto = &dummy; + return TRUE; } -static void +static bfd_boolean elf_generic_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED, arelent *bfd_reloc, Elf_Internal_Rela *elf_reloc ATTRIBUTE_UNUSED) { bfd_reloc->howto = &dummy; + return TRUE; } static void @@ -66,7 +68,7 @@ ehdrp = elf_elfheader (abfd); /* xgettext:c-format */ - _bfd_error_handler (_("%B: Relocations in generic ELF (EM: %d)"), + _bfd_error_handler (_("%pB: Relocations in generic ELF (EM: %d)"), abfd, ehdrp->e_machine); bfd_set_error (bfd_error_wrong_format); diff -Nru gdb-8.1/bfd/elf64-hppa.c gdb-8.2/bfd/elf64-hppa.c --- gdb-8.1/bfd/elf64-hppa.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf64-hppa.c 2018-09-05 07:44:28.000000000 +0000 @@ -2078,8 +2078,8 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("stub entry for %s cannot load .plt, dp offset = %Ld"), - hh->eh.root.root.string, value); + (_("stub entry for %s cannot load .plt, dp offset = %" PRId64), + hh->eh.root.root.string, (int64_t) value); return FALSE; } @@ -3283,10 +3283,10 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): cannot reach %s"), + (_("%pB(%pA+%#" PRIx64 "): cannot reach %s"), input_bfd, input_section, - offset, + (uint64_t) offset, eh ? eh->root.root.string : "unknown"); bfd_set_error (bfd_error_bad_value); return bfd_reloc_overflow; @@ -4052,8 +4052,8 @@ elf64_hppa_create_dynamic_sections #define elf_backend_post_process_headers elf64_hppa_post_process_headers -#define elf_backend_omit_section_dynsym \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true) +#define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all + #define elf_backend_adjust_dynamic_symbol \ elf64_hppa_adjust_dynamic_symbol diff -Nru gdb-8.1/bfd/elf64-ia64-vms.c gdb-8.2/bfd/elf64-ia64-vms.c --- gdb-8.1/bfd/elf64-ia64-vms.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf64-ia64-vms.c 2018-09-05 07:27:13.000000000 +0000 @@ -240,13 +240,24 @@ /* Given a ELF reloc, return the matching HOWTO structure. */ -static void +static bfd_boolean elf64_ia64_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *bfd_reloc, Elf_Internal_Rela *elf_reloc) { - bfd_reloc->howto - = ia64_elf_lookup_howto ((unsigned int) ELF64_R_TYPE (elf_reloc->r_info)); + unsigned int r_type = ELF32_R_TYPE (elf_reloc->r_info); + + bfd_reloc->howto = ia64_elf_lookup_howto (r_type); + if (bfd_reloc->howto == NULL) + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + + return TRUE; } @@ -584,9 +595,9 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: Can't relax br at %#Lx in section `%A'." - " Please use brl or indirect branch."), - sec->owner, roff, sec); + (_("%pB: can't relax br at %#" PRIx64 " in section `%pA';" + " please use brl or indirect branch"), + sec->owner, (uint64_t) roff, sec); bfd_set_error (bfd_error_bad_value); goto error_return; } @@ -3278,8 +3289,8 @@ overflow: _bfd_error_handler /* xgettext:c-format */ - (_("%B: short data segment overflowed (%#Lx >= 0x400000)"), - abfd, max_short_vma - min_short_vma); + (_("%pB: short data segment overflowed (%#" PRIx64 " >= 0x400000)"), + abfd, (uint64_t) (max_short_vma - min_short_vma)); return FALSE; } else if ((gp_val > min_short_vma @@ -3288,7 +3299,7 @@ && max_short_vma - gp_val >= 0x200000)) { _bfd_error_handler - (_("%B: __gp does not cover short data segment"), abfd); + (_("%pB: __gp does not cover short data segment"), abfd); return FALSE; } } @@ -3425,16 +3436,20 @@ r_type = ELF64_R_TYPE (rel->r_info); if (r_type > R_IA64_MAX_RELOC_CODE) { - _bfd_error_handler - /* xgettext:c-format */ - (_("%B: unknown relocation type %d"), - input_bfd, (int) r_type); + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + input_bfd, (int) r_type); bfd_set_error (bfd_error_bad_value); ret_val = FALSE; continue; } howto = ia64_elf_lookup_howto (r_type); + if (howto == NULL) + { + ret_val = FALSE; + continue; + } r_symndx = ELF64_R_SYM (rel->r_info); h = NULL; sym = NULL; @@ -3554,7 +3569,7 @@ shared libraries nor dynamic executables. */ _bfd_error_handler /* xgettext:c-format */ - (_("%B: non-pic code with imm relocation against" + (_("%pB: non-pic code with imm relocation against" " dynamic symbol `%s'"), input_bfd, h ? h->root.root.string @@ -3618,7 +3633,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: @gprel relocation against dynamic symbol %s"), + (_("%pB: @gprel relocation against dynamic symbol %s"), input_bfd, h ? h->root.root.string : bfd_elf_sym_name (input_bfd, symtab_hdr, sym, @@ -3677,7 +3692,7 @@ /* ??? People shouldn't be doing non-pic code in shared libraries. Hork. */ _bfd_error_handler - (_("%B: linking non-pic code in a position independent executable"), + (_("%pB: linking non-pic code in a position independent executable"), input_bfd); ret_val = FALSE; continue; @@ -3779,13 +3794,13 @@ if (r_type == R_IA64_PCREL21BI) /* xgettext:c-format */ - msg = _("%B: @internal branch to dynamic symbol %s"); + msg = _("%pB: @internal branch to dynamic symbol %s"); else if (r_type == R_IA64_PCREL21F || r_type == R_IA64_PCREL21M) /* xgettext:c-format */ - msg = _("%B: speculation fixup to dynamic symbol %s"); + msg = _("%pB: speculation fixup to dynamic symbol %s"); else /* xgettext:c-format */ - msg = _("%B: @pcrel relocation against dynamic symbol %s"); + msg = _("%pB: @pcrel relocation against dynamic symbol %s"); _bfd_error_handler (msg, input_bfd, h ? h->root.root.string : bfd_elf_sym_name (input_bfd, @@ -3946,10 +3961,10 @@ case R_IA64_LTOFF_DTPREL22: _bfd_error_handler /* xgettext:c-format */ - (_("%B: missing TLS section for relocation %s against `%s'" - " at %#Lx in section `%A'."), + (_("%pB: missing TLS section for relocation %s against `%s'" + " at %#" PRIx64 " in section `%pA'."), input_bfd, howto->name, name, - rel->r_offset, input_section); + (uint64_t) rel->r_offset, input_section); break; case R_IA64_PCREL21B: @@ -3963,10 +3978,11 @@ that the section is too big to relax. */ _bfd_error_handler /* xgettext:c-format */ - (_("%B: Can't relax br (%s) to `%s' at %#Lx in section" - " `%A' with size %#Lx (> 0x1000000)."), - input_bfd, howto->name, name, rel->r_offset, - input_section, input_section->size); + (_("%pB: Can't relax br (%s) to `%s' " + "at %#" PRIx64 " in section `%pA' " + "with size %#" PRIx64 " (> 0x1000000)."), + input_bfd, howto->name, name, (uint64_t) rel->r_offset, + input_section, (uint64_t) input_section->size); break; } /* Fall through. */ @@ -4254,7 +4270,7 @@ if ((in_flags & EF_IA_64_TRAPNIL) != (out_flags & EF_IA_64_TRAPNIL)) { _bfd_error_handler - (_("%B: linking trap-on-NULL-dereference with non-trapping files"), + (_("%pB: linking trap-on-NULL-dereference with non-trapping files"), ibfd); bfd_set_error (bfd_error_bad_value); @@ -4263,7 +4279,7 @@ if ((in_flags & EF_IA_64_BE) != (out_flags & EF_IA_64_BE)) { _bfd_error_handler - (_("%B: linking big-endian files with little-endian files"), + (_("%pB: linking big-endian files with little-endian files"), ibfd); bfd_set_error (bfd_error_bad_value); @@ -4272,7 +4288,7 @@ if ((in_flags & EF_IA_64_ABI64) != (out_flags & EF_IA_64_ABI64)) { _bfd_error_handler - (_("%B: linking 64-bit files with 32-bit files"), + (_("%pB: linking 64-bit files with 32-bit files"), ibfd); bfd_set_error (bfd_error_bad_value); @@ -4281,7 +4297,7 @@ if ((in_flags & EF_IA_64_CONS_GP) != (out_flags & EF_IA_64_CONS_GP)) { _bfd_error_handler - (_("%B: linking constant-gp files with non-constant-gp files"), + (_("%pB: linking constant-gp files with non-constant-gp files"), ibfd); bfd_set_error (bfd_error_bad_value); @@ -4291,7 +4307,7 @@ != (out_flags & EF_IA_64_NOFUNCDESC_CONS_GP)) { _bfd_error_handler - (_("%B: linking auto-pic files with non-auto-pic files"), + (_("%pB: linking auto-pic files with non-auto-pic files"), ibfd); bfd_set_error (bfd_error_bad_value); @@ -5134,15 +5150,15 @@ if (normal_bfd == NULL) _bfd_error_handler /* xgettext:c-format */ - (_("Warning: alignment %u of common symbol `%s' in %B" - " is greater than the alignment (%u) of its section %A"), + (_("warning: alignment %u of common symbol `%s' in %pB" + " is greater than the alignment (%u) of its section %pA"), 1 << common_align, name, common_bfd, 1 << normal_align, h->root.u.def.section); else _bfd_error_handler /* xgettext:c-format */ - (_("Warning: alignment %u of symbol `%s' in %B" - " is smaller than %u in %B"), + (_("warning: alignment %u of symbol `%s' in %pB" + " is smaller than %u in %pB"), 1 << normal_align, name, normal_bfd, 1 << common_align, common_bfd); } @@ -5157,9 +5173,10 @@ && ! size_change_ok) _bfd_error_handler /* xgettext:c-format */ - (_("Warning: size of symbol `%s' changed" - " from %Lu in %B to %Lu in %B"), - name, h->size, old_bfd, isym->st_size, abfd); + (_("warning: size of symbol `%s' changed" + " from %" PRIu64 " in %pB to %" PRIu64 " in %pB"), + name, (uint64_t) h->size, old_bfd, + (uint64_t) isym->st_size, abfd); h->size = isym->st_size; } @@ -5183,8 +5200,8 @@ if (h->type != STT_NOTYPE && ! type_change_ok) _bfd_error_handler /* xgettext:c-format */ - (_("Warning: type of symbol `%s' changed" - " from %d to %d in %B"), + (_("warning: type of symbol `%s' changed" + " from %d to %d in %pB"), name, h->type, type, abfd); h->type = type; @@ -5481,7 +5498,7 @@ #define elf_backend_size_dynamic_sections \ elf64_ia64_size_dynamic_sections #define elf_backend_omit_section_dynsym \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true) + _bfd_elf_omit_section_dynsym_all #define elf_backend_relocate_section \ elf64_ia64_relocate_section #define elf_backend_finish_dynamic_symbol \ diff -Nru gdb-8.1/bfd/elf64-mips.c gdb-8.2/bfd/elf64-mips.c --- gdb-8.1/bfd/elf64-mips.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf64-mips.c 2018-09-05 07:27:13.000000000 +0000 @@ -80,11 +80,7 @@ (bfd *, const Elf_Internal_Rela *, bfd_byte *); static reloc_howto_type *bfd_elf64_bfd_reloc_type_lookup (bfd *, bfd_reloc_code_real_type); -static reloc_howto_type *mips_elf64_rtype_to_howto - (unsigned int, bfd_boolean); -static void mips_elf64_info_to_howto_rel - (bfd *, arelent *, Elf_Internal_Rela *); -static void mips_elf64_info_to_howto_rela +static bfd_boolean mips_elf64_info_to_howto_rela (bfd *, arelent *, Elf_Internal_Rela *); static long mips_elf64_get_dynamic_reloc_upper_bound (bfd *); @@ -2425,6 +2421,166 @@ 0, /* src_mask */ 0x00000000, /* dst_mask */ FALSE), /* pcrel_offset */ + + /* Low 16 bits of symbol value. Note that the high 16 bits of symbol values + must be zero. This is used for relaxation. */ + HOWTO (R_MICROMIPS_HI0_LO16, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_HI0_LO16",/* name */ + TRUE, /* partial_inplace */ + 0x0000ffff, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + EMPTY_HOWTO (158), + EMPTY_HOWTO (159), + EMPTY_HOWTO (160), + EMPTY_HOWTO (161), + + /* TLS general dynamic variable reference. */ + HOWTO (R_MICROMIPS_TLS_GD, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_GD", /* name */ + TRUE, /* partial_inplace */ + 0x0000ffff, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* TLS local dynamic variable reference. */ + HOWTO (R_MICROMIPS_TLS_LDM, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_LDM", /* name */ + TRUE, /* partial_inplace */ + 0x0000ffff, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* TLS local dynamic offset. */ + HOWTO (R_MICROMIPS_TLS_DTPREL_HI16, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_DTPREL_HI16", /* name */ + TRUE, /* partial_inplace */ + 0x0000ffff, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* TLS local dynamic offset. */ + HOWTO (R_MICROMIPS_TLS_DTPREL_LO16, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_DTPREL_LO16", /* name */ + TRUE, /* partial_inplace */ + 0x0000ffff, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* TLS thread pointer offset. */ + HOWTO (R_MICROMIPS_TLS_GOTTPREL, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_GOTTPREL", /* name */ + TRUE, /* partial_inplace */ + 0x0000ffff, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + EMPTY_HOWTO (167), + EMPTY_HOWTO (168), + + /* TLS thread pointer offset. */ + HOWTO (R_MICROMIPS_TLS_TPREL_HI16, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_TPREL_HI16", /* name */ + TRUE, /* partial_inplace */ + 0x0000ffff, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* TLS thread pointer offset. */ + HOWTO (R_MICROMIPS_TLS_TPREL_LO16, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_TPREL_LO16", /* name */ + TRUE, /* partial_inplace */ + 0x0000ffff, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + EMPTY_HOWTO (171), + + /* GP- and PC-relative relocations. */ + HOWTO (R_MICROMIPS_GPREL7_S2, /* type */ + 2, /* rightshift */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ + 7, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf32_gprel16_reloc, /* special_function */ + "R_MICROMIPS_GPREL7_S2", /* name */ + TRUE, /* partial_inplace */ + 0x0000007f, /* src_mask */ + 0x0000007f, /* dst_mask */ + FALSE), /* pcrel_offset */ + + HOWTO (R_MICROMIPS_PC23_S2, /* type */ + 2, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 23, /* bitsize */ + TRUE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_PC23_S2", /* name */ + TRUE, /* partial_inplace */ + 0x007fffff, /* src_mask */ + 0x007fffff, /* dst_mask */ + TRUE), /* pcrel_offset */ }; static reloc_howto_type micromips_elf64_howto_table_rela[] = @@ -2767,6 +2923,166 @@ 0, /* src_mask */ 0x00000000, /* dst_mask */ FALSE), /* pcrel_offset */ + + /* Low 16 bits of symbol value. Note that the high 16 bits of symbol values + must be zero. This is used for relaxation. */ + HOWTO (R_MICROMIPS_HI0_LO16, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_HI0_LO16",/* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + EMPTY_HOWTO (158), + EMPTY_HOWTO (159), + EMPTY_HOWTO (160), + EMPTY_HOWTO (161), + + /* TLS general dynamic variable reference. */ + HOWTO (R_MICROMIPS_TLS_GD, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_GD", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* TLS local dynamic variable reference. */ + HOWTO (R_MICROMIPS_TLS_LDM, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_LDM", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* TLS local dynamic offset. */ + HOWTO (R_MICROMIPS_TLS_DTPREL_HI16, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_DTPREL_HI16", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* TLS local dynamic offset. */ + HOWTO (R_MICROMIPS_TLS_DTPREL_LO16, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_DTPREL_LO16", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* TLS thread pointer offset. */ + HOWTO (R_MICROMIPS_TLS_GOTTPREL, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_GOTTPREL", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + EMPTY_HOWTO (167), + EMPTY_HOWTO (168), + + /* TLS thread pointer offset. */ + HOWTO (R_MICROMIPS_TLS_TPREL_HI16, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_TPREL_HI16", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* TLS thread pointer offset. */ + HOWTO (R_MICROMIPS_TLS_TPREL_LO16, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_TPREL_LO16", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + EMPTY_HOWTO (171), + + /* GP- and PC-relative relocations. */ + HOWTO (R_MICROMIPS_GPREL7_S2, /* type */ + 2, /* rightshift */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ + 7, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf32_gprel16_reloc, /* special_function */ + "R_MICROMIPS_GPREL7_S2", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0x0000007f, /* dst_mask */ + FALSE), /* pcrel_offset */ + + HOWTO (R_MICROMIPS_PC23_S2, /* type */ + 2, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 23, /* bitsize */ + TRUE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_PC23_S2", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0x007fffff, /* dst_mask */ + TRUE), /* pcrel_offset */ }; /* GNU extension to record C++ vtable hierarchy */ @@ -3467,6 +3783,21 @@ { BFD_RELOC_MICROMIPS_CALL_LO16, R_MICROMIPS_CALL_LO16 - R_MICROMIPS_min }, { BFD_RELOC_MICROMIPS_SCN_DISP, R_MICROMIPS_SCN_DISP - R_MICROMIPS_min }, { BFD_RELOC_MICROMIPS_JALR, R_MICROMIPS_JALR - R_MICROMIPS_min }, + /* There is no BFD reloc for R_MICROMIPS_HI0_LO16. */ + { BFD_RELOC_MICROMIPS_TLS_GD, R_MICROMIPS_TLS_GD - R_MICROMIPS_min }, + { BFD_RELOC_MICROMIPS_TLS_LDM, R_MICROMIPS_TLS_LDM - R_MICROMIPS_min }, + { BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16, + R_MICROMIPS_TLS_DTPREL_HI16 - R_MICROMIPS_min }, + { BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16, + R_MICROMIPS_TLS_DTPREL_LO16 - R_MICROMIPS_min }, + { BFD_RELOC_MICROMIPS_TLS_GOTTPREL, + R_MICROMIPS_TLS_GOTTPREL - R_MICROMIPS_min }, + { BFD_RELOC_MICROMIPS_TLS_TPREL_HI16, + R_MICROMIPS_TLS_TPREL_HI16 - R_MICROMIPS_min }, + { BFD_RELOC_MICROMIPS_TLS_TPREL_LO16, + R_MICROMIPS_TLS_TPREL_LO16 - R_MICROMIPS_min }, + /* There is no BFD reloc for R_MICROMIPS_GPREL7_S2. */ + /* There is no BFD reloc for R_MICROMIPS_PC23_S2. */ }; /* Given a BFD reloc type, return a howto structure. */ @@ -3574,8 +3905,10 @@ /* Given a MIPS Elf_Internal_Rel, fill in an arelent structure. */ static reloc_howto_type * -mips_elf64_rtype_to_howto (unsigned int r_type, bfd_boolean rela_p) +mips_elf64_rtype_to_howto (bfd *abfd, unsigned int r_type, bfd_boolean rela_p) { + reloc_howto_type *howto = NULL; + switch (r_type) { case R_MIPS_GNU_VTINHERIT: @@ -3599,47 +3932,49 @@ if (r_type >= R_MICROMIPS_min && r_type < R_MICROMIPS_max) { if (rela_p) - return µmips_elf64_howto_table_rela[r_type - R_MICROMIPS_min]; + howto + = µmips_elf64_howto_table_rela[r_type - R_MICROMIPS_min]; else - return µmips_elf64_howto_table_rel[r_type - R_MICROMIPS_min]; + howto + = µmips_elf64_howto_table_rel[r_type - R_MICROMIPS_min]; } if (r_type >= R_MIPS16_min && r_type < R_MIPS16_max) { if (rela_p) - return &mips16_elf64_howto_table_rela[r_type - R_MIPS16_min]; + howto = &mips16_elf64_howto_table_rela[r_type - R_MIPS16_min]; else - return &mips16_elf64_howto_table_rel[r_type - R_MIPS16_min]; + howto = &mips16_elf64_howto_table_rel[r_type - R_MIPS16_min]; } - if (r_type >= R_MIPS_max) + if (r_type < R_MIPS_max) { - _bfd_error_handler (_("unrecognised MIPS reloc number: %d"), r_type); - bfd_set_error (bfd_error_bad_value); - r_type = R_MIPS_NONE; + if (rela_p) + howto = &mips_elf64_howto_table_rela[r_type]; + else + howto = &mips_elf64_howto_table_rel[r_type]; } - if (rela_p) - return &mips_elf64_howto_table_rela[r_type]; - else - return &mips_elf64_howto_table_rel[r_type]; - break; + if (howto != NULL && howto->name != NULL) + return howto; + + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return NULL; } } /* Prevent relocation handling by bfd for MIPS ELF64. */ -static void -mips_elf64_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED, - arelent *cache_ptr ATTRIBUTE_UNUSED, - Elf_Internal_Rela *dst ATTRIBUTE_UNUSED) -{ - BFD_ASSERT (0); -} - -static void -mips_elf64_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +mips_elf64_info_to_howto_rela (bfd *abfd, arelent *cache_ptr ATTRIBUTE_UNUSED, - Elf_Internal_Rela *dst ATTRIBUTE_UNUSED) + Elf_Internal_Rela *dst) { - BFD_ASSERT (0); + unsigned int r_type = ELF32_R_TYPE (dst->r_info); + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } /* Since each entry in an SHT_REL or SHT_RELA section can represent up @@ -3669,6 +4004,7 @@ { void *allocated; bfd_byte *native_relocs; + unsigned int symcount; arelent *relent; bfd_vma i; int entsize; @@ -3694,6 +4030,11 @@ else rela_p = TRUE; + if (dynamic) + symcount = bfd_get_dynamic_symcount (abfd); + else + symcount = bfd_get_symcount (abfd); + for (i = 0, relent = relents; i < reloc_count; i++, native_relocs += entsize) @@ -3750,6 +4091,17 @@ { if (rela.r_sym == STN_UNDEF) relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + else if (rela.r_sym > symcount) + { + _bfd_error_handler + /* xgettext:c-format */ + (_("%pB(%pA): relocation %" PRIu64 + " has invalid symbol index %ld"), + abfd, asect, (uint64_t) i, rela.r_sym); + bfd_set_error (bfd_error_bad_value); + relent->sym_ptr_ptr + = bfd_abs_section_ptr->symbol_ptr_ptr; + } else { asymbol **ps, *s; @@ -3805,7 +4157,9 @@ relent->addend = rela.r_addend; - relent->howto = mips_elf64_rtype_to_howto (type, rela_p); + relent->howto = mips_elf64_rtype_to_howto (abfd, type, rela_p); + if (relent->howto == NULL) + goto error_return; ++relent; } @@ -4019,7 +4373,8 @@ int_rel.r_sym = n; int_rel.r_ssym = RSS_UNDEF; - if ((*ptr->sym_ptr_ptr)->the_bfd->xvec != abfd->xvec + if ((*ptr->sym_ptr_ptr)->the_bfd != NULL + && (*ptr->sym_ptr_ptr)->the_bfd->xvec != abfd->xvec && ! _bfd_elf_validate_reloc (abfd, ptr)) { *failedp = TRUE; @@ -4118,7 +4473,8 @@ int_rela.r_addend = ptr->addend; int_rela.r_ssym = RSS_UNDEF; - if ((*ptr->sym_ptr_ptr)->the_bfd->xvec != abfd->xvec + if ((*ptr->sym_ptr_ptr)->the_bfd != NULL + && (*ptr->sym_ptr_ptr)->the_bfd->xvec != abfd->xvec && ! _bfd_elf_validate_reloc (abfd, ptr)) { *failedp = TRUE; @@ -4379,7 +4735,7 @@ #define elf_backend_gc_mark_extra_sections \ _bfd_mips_elf_gc_mark_extra_sections #define elf_info_to_howto mips_elf64_info_to_howto_rela -#define elf_info_to_howto_rel mips_elf64_info_to_howto_rel +#define elf_info_to_howto_rel mips_elf64_info_to_howto_rela #define elf_backend_object_p mips_elf64_object_p #define elf_backend_symbol_processing _bfd_mips_elf_symbol_processing #define elf_backend_section_processing _bfd_mips_elf_section_processing diff -Nru gdb-8.1/bfd/elf64-mmix.c gdb-8.2/bfd/elf64-mmix.c --- gdb-8.1/bfd/elf64-mmix.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf64-mmix.c 2018-09-05 07:27:13.000000000 +0000 @@ -982,10 +982,10 @@ a verbose message. */ *error_message = _("invalid input relocation when producing" - " non-ELF, non-mmo format output." - "\n Please use the objcopy program to convert from" + " non-ELF, non-mmo format output;" + " please use the objcopy program to convert from" " ELF or mmo," - "\n or assemble using" + " or assemble using" " \"-no-expand\" (for gcc, \"-Wa,-no-expand\""); mmix_elf_section_data (isec)->has_warned_pushj = TRUE; return bfd_reloc_dangerous; @@ -1166,10 +1166,10 @@ a verbose message. */ *error_message = _("invalid input relocation when producing" - " non-ELF, non-mmo format output." - "\n Please use the objcopy program to convert from" + " non-ELF, non-mmo format output;" + " please use the objcopy program to convert from" " ELF or mmo," - "\n or compile using the gcc-option" + " or compile using the gcc-option" " \"-mno-base-addresses\"."); mmix_elf_section_data (isec)->has_warned_bpo = TRUE; return bfd_reloc_dangerous; @@ -1192,11 +1192,11 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: Internal inconsistency error for value for\n\ - linker-allocated global register: linked: %#Lx != relaxed: %#Lx"), + (_("%pB: Internal inconsistency error for value for\n\ + linker-allocated global register: linked: %#" PRIx64 " != relaxed: %#" PRIx64 ""), isec->owner, - value, - gregdata->reloc_request[bpo_index].value); + (uint64_t) value, + (uint64_t) gregdata->reloc_request[bpo_index].value); bfd_set_error (bfd_error_bad_value); return bfd_reloc_overflow; } @@ -1250,8 +1250,8 @@ /* Set the howto pointer for an MMIX ELF reloc (type RELA). */ -static void -mmix_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +mmix_info_to_howto_rela (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { @@ -1261,10 +1261,13 @@ if (r_type >= (unsigned int) R_MMIX_max) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid MMIX reloc number: %d"), abfd, r_type); - r_type = 0; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = &elf_mmix_howto_table[r_type]; + return TRUE; } /* Any MMIX-specific relocation gets here at assembly time or when linking @@ -1613,14 +1616,14 @@ if (symname == NULL || *symname == 0) _bfd_error_handler /* xgettext:c-format */ - (_("%B: base-plus-offset relocation against register symbol:" - " (unknown) in %A"), + (_("%pB: base-plus-offset relocation against register symbol:" + " (unknown) in %pA"), input_section->owner, symsec); else _bfd_error_handler /* xgettext:c-format */ - (_("%B: base-plus-offset relocation against register symbol:" - " %s in %A"), + (_("%pB: base-plus-offset relocation against register symbol:" + " %s in %pA"), input_section->owner, symname, symsec); return bfd_reloc_overflow; } @@ -1664,14 +1667,14 @@ if (symname == NULL || *symname == 0) _bfd_error_handler /* xgettext:c-format */ - (_("%B: register relocation against non-register symbol:" - " (unknown) in %A"), + (_("%pB: register relocation against non-register symbol:" + " (unknown) in %pA"), input_section->owner, symsec); else _bfd_error_handler /* xgettext:c-format */ - (_("%B: register relocation against non-register symbol:" - " %s in %A"), + (_("%pB: register relocation against non-register symbol:" + " %s in %pA"), input_section->owner, symname, symsec); /* The bfd_reloc_outofrange return value, though intuitively a @@ -1707,7 +1710,7 @@ MMIX_REG_SECTION_NAME) != 0) { _bfd_error_handler - (_("%B: directive LOCAL valid only with a register or absolute value"), + (_("%pB: directive LOCAL valid only with a register or absolute value"), input_section->owner); return bfd_reloc_overflow; @@ -1738,9 +1741,10 @@ /* FIXME: Better error message. */ _bfd_error_handler /* xgettext:c-format */ - (_("%B: LOCAL directive: Register $%Ld is not a local register." - " First global register is $%Ld."), - input_section->owner, srel, first_global); + (_("%pB: LOCAL directive: " + "register $%" PRId64 " is not a local register;" + " first global register is $%" PRId64), + input_section->owner, (int64_t) srel, (int64_t) first_global); return bfd_reloc_overflow; } @@ -2166,8 +2170,8 @@ h->u.def.section->owner is NULL. */ _bfd_error_handler /* xgettext:c-format */ - (_("%B: Error: multiple definition of `%s'; start of %s " - "is set in a earlier linked file\n"), + (_("%pB: error: multiple definition of `%s'; start of %s " + "is set in a earlier linked file"), abfd, *namep, *namep + strlen (MMIX_LOC_SECTION_START_SYMBOL_PREFIX)); bfd_set_error (bfd_error_bad_value); @@ -2221,7 +2225,7 @@ { /* FIXME: Pass error state gracefully. */ if (bfd_get_section_flags (abfd, reg_section) & SEC_HAS_CONTENTS) - _bfd_abort (__FILE__, __LINE__, _("Register section has contents\n")); + _bfd_abort (__FILE__, __LINE__, _("register section has contents\n")); /* Really remove the section, if it hasn't already been done. */ if (!bfd_section_removed_from_list (abfd, reg_section)) @@ -2411,8 +2415,8 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("Internal inconsistency: remaining %lu != max %lu.\n\ - Please report this bug."), + (_("internal inconsistency: remaining %lu != max %lu;" + " please report this bug"), (unsigned long) gregdata->n_remaining_bpo_relocs_this_relaxation_round, (unsigned long) gregdata->n_bpo_relocs); return FALSE; @@ -2901,8 +2905,7 @@ #define elf_backend_check_relocs mmix_elf_check_relocs #define elf_backend_symbol_processing mmix_elf_symbol_processing -#define elf_backend_omit_section_dynsym \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true) +#define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all #define bfd_elf64_bfd_copy_link_hash_symbol_type \ _bfd_generic_copy_link_hash_symbol_type diff -Nru gdb-8.1/bfd/elf64-nfp.c gdb-8.2/bfd/elf64-nfp.c --- gdb-8.1/bfd/elf64-nfp.c 1970-01-01 00:00:00.000000000 +0000 +++ gdb-8.2/bfd/elf64-nfp.c 2018-09-05 07:27:13.000000000 +0000 @@ -0,0 +1,276 @@ +/* NFP-specific support for 64-bit ELF + Copyright (C) 2017-2018 Free Software Foundation, Inc. + Contributed by Francois H. Theron + + 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 3 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., 51 Franklin Street - Fifth Floor, + Boston, MA 02110-1301, USA. */ + +#include "sysdep.h" +#include "bfd.h" +#include "libbfd.h" +#include "elf-bfd.h" +#include "elf/nfp.h" +#include "bfd_stdint.h" + + +static bfd_reloc_status_type +elf64_nfp_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); + +/* We don't actually apply any relocations in this toolset + so we make them all do nothing, but at least display useful + names. + Most of these are mainly used by the NFP toolchain to resolve things + before the final ELF file is created. */ +static reloc_howto_type elf_nfp_howto_table[] = +{ + HOWTO (R_NFP_NOTYPE, /* Type. */ + 0, /* Rightshift. */ + 3, /* Size. */ + 0, /* Bitsize. */ + FALSE, /* PC_relative. */ + 0, /* Bitpos. */ + complain_overflow_dont,/* Complain_on_overflow. */ + elf64_nfp_reloc, /* Special_function. */ + "R_NFP_NOTYPE", /* Name. */ + FALSE, /* Partial_inplace. */ + 0, /* Src_mask. */ + 0, /* Dst_mask. */ + FALSE), /* PCrel_offset. */ + HOWTO (R_NFP_W32LE, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_W32LE", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_SRC8_A, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_SRC8_A", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_SRC8_B, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_SRC8_B", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_IMMED8_I, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_IMMED8_I", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_SC, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_SC", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_IMMED_LO16_I_A, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_IMMED_LO16_I_A", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_IMMED_LO16_I_B, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_IMMED_LO16_I_B", + TRUE, 0, 0, FALSE), + HOWTO (R_NFP_SRC7_B, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_SRC7_B", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_SRC7_A, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_SRC7_A", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_SRC8_I_B, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_SRC8_I_B", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_SRC8_I_A, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_SRC8_I_A", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_IMMED_HI16_I_A, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_IMMED_HI16_I_A", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_IMMED_HI16_I_B, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_IMMED_HI16_I_B", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_W64LE, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_W64LE", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_SH_INFO, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_SH_INFO", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_W32BE, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_W32BE", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_W64BE, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_W64BE", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_W32_29_24, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_W32_29_24", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_W32LE_AND, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_W32LE_AND", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_W32BE_AND, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_W32BE_AND", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_W32LE_OR, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_W32LE_OR", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_W32BE_OR, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_W32BE_OR", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_W64LE_AND, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_W64LE_AND", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_W64BE_AND, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_W64BE_AND", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_W64LE_OR, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_W64LE_OR", + FALSE, 0, 0, FALSE), + HOWTO (R_NFP_W64BE_OR, 0, 3, 0, FALSE, 0, + complain_overflow_dont, elf64_nfp_reloc, + "R_NFP_W64BE_OR", + FALSE, 0, 0, FALSE) +}; + +static bfd_boolean +elf64_nfp_object_p (bfd * abfd) +{ + /* If the e_machine value is one of the unofficial ones, we convert + it first and set e_flags accordingly for later consistency. */ + if (elf_elfheader (abfd)->e_machine == E_NFP_MACH_3200) + { + elf_elfheader (abfd)->e_machine = EM_NFP; + elf_elfheader (abfd)->e_flags &= ~EF_NFP_SET_MACH (~0); + elf_elfheader (abfd)->e_flags |= EF_NFP_SET_MACH (E_NFP_MACH_3200); + } + else if (elf_elfheader (abfd)->e_machine == E_NFP_MACH_6000) + { + elf_elfheader (abfd)->e_machine = EM_NFP; + elf_elfheader (abfd)->e_flags &= ~EF_NFP_SET_MACH (~0); + elf_elfheader (abfd)->e_flags |= EF_NFP_SET_MACH (E_NFP_MACH_6000); + } + + if (elf_elfheader (abfd)->e_machine == EM_NFP) + { + int e_mach = EF_NFP_MACH (elf_elfheader (abfd)->e_flags); + + switch (e_mach) + { + case E_NFP_MACH_3200: + case E_NFP_MACH_6000: + if (!bfd_default_set_arch_mach (abfd, bfd_arch_nfp, e_mach)) + return FALSE; + default: + break; + } + } + + return TRUE; +} + +static bfd_boolean +elf64_nfp_section_from_shdr (bfd * abfd, + Elf_Internal_Shdr * hdr, + const char *name, int shindex) +{ + switch (hdr->sh_type) + { + case SHT_NFP_INITREG: + case SHT_NFP_MECONFIG: + case SHT_NFP_UDEBUG: + return _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex); + default: + return FALSE; + } +} + +bfd_reloc_status_type +elf64_nfp_reloc (bfd * abfd ATTRIBUTE_UNUSED, + arelent * reloc_entry ATTRIBUTE_UNUSED, + asymbol * symbol ATTRIBUTE_UNUSED, + void *data ATTRIBUTE_UNUSED, + asection * input_section ATTRIBUTE_UNUSED, + bfd * output_bfd ATTRIBUTE_UNUSED, + char **error_message ATTRIBUTE_UNUSED) +{ + return bfd_reloc_ok; +} + +static bfd_boolean +elf64_nfp_info_to_howto (bfd * abfd ATTRIBUTE_UNUSED, + arelent * cache_ptr, Elf_Internal_Rela * dst) +{ + unsigned int r_type; + + r_type = ELF64_R_TYPE (dst->r_info); + if (r_type >= R_NFP_MAX) + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + cache_ptr->howto = &elf_nfp_howto_table[r_type]; + return TRUE; +} + +static reloc_howto_type * +elf64_nfp_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED, + bfd_reloc_code_real_type code ATTRIBUTE_UNUSED) +{ + return NULL; +} + +static reloc_howto_type * +elf64_nfp_reloc_name_lookup (bfd * abfd ATTRIBUTE_UNUSED, + const char *r_name ATTRIBUTE_UNUSED) +{ + return NULL; +} + +#define ELF_ARCH bfd_arch_nfp +#define ELF_MACHINE_CODE EM_NFP +#define ELF_MACHINE_ALT1 E_NFP_MACH_6000 +#define ELF_MACHINE_ALT2 E_NFP_MACH_3200 +#define ELF_MAXPAGESIZE 1 +#define TARGET_LITTLE_NAME "elf64-nfp" +#define TARGET_LITTLE_SYM nfp_elf64_vec + +#define elf_backend_object_p elf64_nfp_object_p +#define elf_backend_section_from_shdr elf64_nfp_section_from_shdr +#define elf_info_to_howto elf64_nfp_info_to_howto +#define bfd_elf64_bfd_reloc_type_lookup elf64_nfp_reloc_type_lookup +#define bfd_elf64_bfd_reloc_name_lookup elf64_nfp_reloc_name_lookup + +#include "elf64-target.h" diff -Nru gdb-8.1/bfd/elf64-ppc.c gdb-8.2/bfd/elf64-ppc.c --- gdb-8.1/bfd/elf64-ppc.c 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/bfd/elf64-ppc.c 2018-09-05 07:44:28.000000000 +0000 @@ -64,7 +64,8 @@ #define ELF_TARGET_ID PPC64_ELF_DATA #define ELF_MACHINE_CODE EM_PPC64 #define ELF_MAXPAGESIZE 0x10000 -#define ELF_COMMONPAGESIZE 0x10000 +#define ELF_COMMONPAGESIZE 0x1000 +#define ELF_RELROPAGESIZE ELF_MAXPAGESIZE #define elf_info_to_howto ppc64_elf_info_to_howto #define elf_backend_want_got_sym 0 @@ -129,6 +130,7 @@ /* The size in bytes of an entry in the procedure linkage table. */ #define PLT_ENTRY_SIZE(htab) (htab->opd_abi ? 24 : 8) +#define LOCAL_PLT_ENTRY_SIZE(htab) (htab->opd_abi ? 16 : 8) /* The initial size of the plt reserved for the dynamic linker. */ #define PLT_INITIAL_ENTRY_SIZE(htab) (htab->opd_abi ? 24 : 16) @@ -187,8 +189,9 @@ #define ADDIS_R12_R12 0x3d8c0000 /* addis %r12,%r12,xxx@ha */ #define LD_R12_0R12 0xe98c0000 /* ld %r12,xxx@l(%r12) */ -/* glink call stub instructions. We enter with the index in R0. */ -#define GLINK_CALL_STUB_SIZE (16*4) +/* __glink_PLTresolve stub instructions. We enter with the index in R0. */ +#define GLINK_PLTRESOLVE_SIZE(htab) \ + (8u + (htab->opd_abi ? 11 * 4 : 14 * 4)) /* 0: */ /* .quad plt0-1f */ /* __glink: */ @@ -269,7 +272,8 @@ /* Relocation HOWTO's. */ static reloc_howto_type *ppc64_elf_howto_table[(int) R_PPC64_max]; -static reloc_howto_type ppc64_elf_howto_raw[] = { +static reloc_howto_type ppc64_elf_howto_raw[] = +{ /* This reloc does nothing. */ HOWTO (R_PPC64_NONE, /* type */ 0, /* rightshift */ @@ -1333,6 +1337,8 @@ 0, /* dst_mask */ FALSE), /* pcrel_offset */ + /* Marker reloc for optimizing r2 save in prologue rather than on + each plt call stub. */ HOWTO (R_PPC64_TOCSAVE, 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ @@ -1347,6 +1353,35 @@ 0, /* dst_mask */ FALSE), /* pcrel_offset */ + /* Marker relocs on inline plt call instructions. */ + HOWTO (R_PPC64_PLTSEQ, + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_PPC64_PLTSEQ", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0, /* dst_mask */ + FALSE), /* pcrel_offset */ + + HOWTO (R_PPC64_PLTCALL, + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_PPC64_PLTCALL", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0, /* dst_mask */ + FALSE), /* pcrel_offset */ + /* Computes the load module index of the load module that contains the definition of its TLS sym. */ HOWTO (R_PPC64_DTPMOD64, @@ -2230,7 +2265,7 @@ } static reloc_howto_type * -ppc64_elf_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, +ppc64_elf_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code) { enum elf_ppc64_reloc_type r = R_PPC64_NONE; @@ -2242,6 +2277,9 @@ switch (code) { default: + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), abfd, (int) code); + bfd_set_error (bfd_error_bad_value); return NULL; case BFD_RELOC_NONE: r = R_PPC64_NONE; @@ -2494,12 +2532,13 @@ && strcasecmp (ppc64_elf_howto_raw[i].name, r_name) == 0) return &ppc64_elf_howto_raw[i]; + return NULL; } /* Set the howto pointer for a PowerPC ELF reloc. */ -static void +static bfd_boolean ppc64_elf_info_to_howto (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { @@ -2513,11 +2552,22 @@ if (type >= ARRAY_SIZE (ppc64_elf_howto_table)) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid relocation type %d"), - abfd, (int) type); - type = R_PPC64_NONE; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = ppc64_elf_howto_table[type]; + if (cache_ptr->howto == NULL || cache_ptr->howto->name == NULL) + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + + return TRUE; } /* Handle the R_PPC64_ADDR16_HA and similar relocs. */ @@ -2985,13 +3035,22 @@ case NT_PRPSINFO: { - char data[136]; + char data[136] ATTRIBUTE_NONSTRING; va_list ap; va_start (ap, note_type); memset (data, 0, sizeof (data)); strncpy (data + 40, va_arg (ap, const char *), 16); + DIAGNOSTIC_PUSH; + /* GCC 8.1 warns about 80 equals destination size with + -Wstringop-truncation: + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85643 + */ +#if GCC_VERSION == 8001 + DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION; +#endif strncpy (data + 56, va_arg (ap, const char *), 80); + DIAGNOSTIC_POP; va_end (ap); return elfcore_write_note (abfd, buf, bufsiz, "CORE", note_type, data, sizeof (data)); @@ -3074,6 +3133,9 @@ /* Flag set when small branches are detected. Used to select suitable defaults for the stub group size. */ unsigned int has_14bit_branch:1; + + /* Flag set when PLTCALL relocs are detected. */ + unsigned int has_pltcall:1; }; #define ppc64_elf_section_data(sec) \ @@ -3252,10 +3314,9 @@ asymbol **ret) { asymbol *s; - long i; - long count; + size_t i, j, count; char *names; - long symcount, codesecsym, codesecsymend, secsymend, opdsymend; + size_t symcount, codesecsym, codesecsymend, secsymend, opdsymend; asection *opd = NULL; bfd_boolean relocatable = (abfd->flags & (EXEC_P | DYNAMIC)) == 0; asymbol **syms; @@ -3300,20 +3361,37 @@ else memcpy (syms, static_syms, (symcount + 1) * sizeof (*syms)); + /* Trim uninteresting symbols. Interesting symbols are section, + function, and notype symbols. */ + for (i = 0, j = 0; i < symcount; ++i) + if ((syms[i]->flags & (BSF_FILE | BSF_OBJECT | BSF_THREAD_LOCAL + | BSF_RELC | BSF_SRELC)) == 0) + syms[j++] = syms[i]; + symcount = j; + synthetic_relocatable = relocatable; synthetic_opd = opd; qsort (syms, symcount, sizeof (*syms), compare_symbols); if (!relocatable && symcount > 1) { - long j; - /* Trim duplicate syms, since we may have merged the normal and - dynamic symbols. Actually, we only care about syms that have - different values, so trim any with the same value. */ + /* Trim duplicate syms, since we may have merged the normal + and dynamic symbols. Actually, we only care about syms + that have different values, so trim any with the same + value. Don't consider ifunc and ifunc resolver symbols + duplicates however, because GDB wants to know whether a + text symbol is an ifunc resolver. */ for (i = 1, j = 1; i < symcount; ++i) - if (syms[i - 1]->value + syms[i - 1]->section->vma - != syms[i]->value + syms[i]->section->vma) - syms[j++] = syms[i]; + { + const asymbol *s0 = syms[i - 1]; + const asymbol *s1 = syms[i]; + + if ((s0->value + s0->section->vma + != s1->value + s1->section->vma) + || ((s0->flags & BSF_GNU_INDIRECT_FUNCTION) + != (s1->flags & BSF_GNU_INDIRECT_FUNCTION))) + syms[j++] = syms[i]; + } symcount = j; } @@ -3322,7 +3400,7 @@ sym->section directly. With separate debug info files, the symbols will be extracted from the debug file while abfd passed to this function is the real binary. */ - if (opd != NULL && strcmp (syms[i]->section->name, ".opd") == 0) + if (strcmp (syms[i]->section->name, ".opd") == 0) ++i; codesecsym = i; @@ -3357,7 +3435,7 @@ bfd_boolean (*slurp_relocs) (bfd *, asection *, asymbol **, bfd_boolean); arelent *r; size_t size; - long relcount; + size_t relcount; if (opdsymend == secsymend) goto done; @@ -3456,7 +3534,7 @@ bfd_boolean (*slurp_relocs) (bfd *, asection *, asymbol **, bfd_boolean); bfd_byte *contents = NULL; size_t size; - long plt_count = 0; + size_t plt_count = 0; bfd_vma glink_vma = 0, resolv_vma = 0; asection *dynamic, *glink = NULL, *relplt = NULL; arelent *p; @@ -3515,9 +3593,9 @@ if (dyn.d_tag == DT_PPC64_GLINK) { - /* The first glink stub starts at offset 32; see - comment in ppc64_elf_finish_dynamic_sections. */ - glink_vma = dyn.d_un.d_val + GLINK_CALL_STUB_SIZE - 8 * 4; + /* The first glink stub starts at DT_PPC64_GLINK plus 32. + See comment in ppc64_elf_finish_dynamic_sections. */ + glink_vma = dyn.d_un.d_val + 8 * 4; /* The .glink section usually does not survive the final link; search for the section (usually .text) where the glink stubs now reside. */ @@ -3593,7 +3671,7 @@ ent = bfd_get_64 (abfd, contents + syms[i]->value); if (!sym_exists_at (syms, opdsymend, symcount, -1, ent)) { - long lo, hi; + size_t lo, hi; size_t len; asection *sec = abfd->sections; @@ -3602,7 +3680,7 @@ hi = codesecsymend; while (lo < hi) { - long mid = (lo + hi) >> 1; + size_t mid = (lo + hi) >> 1; if (syms[mid]->section->vma < ent) lo = mid + 1; else if (syms[mid]->section->vma > ent) @@ -3954,6 +4032,9 @@ struct ppc_link_hash_entry *h; struct plt_entry *plt_ent; + /* Symbol type. */ + unsigned char symtype; + /* Symbol st_other. */ unsigned char other; }; @@ -4023,22 +4104,30 @@ unsigned int non_zero_localentry:1; /* Contexts in which symbol is used in the GOT (or TOC). - TLS_GD .. TLS_EXPLICIT bits are or'd into the mask as the - corresponding relocs are encountered during check_relocs. - tls_optimize clears TLS_GD .. TLS_TPREL when optimizing to - indicate the corresponding GOT entry type is not needed. - tls_optimize may also set TLS_TPRELGD when a GD reloc turns into - a TPREL one. We use a separate flag rather than setting TPREL - just for convenience in distinguishing the two cases. */ -#define TLS_GD 1 /* GD reloc. */ -#define TLS_LD 2 /* LD reloc. */ -#define TLS_TPREL 4 /* TPREL reloc, => IE. */ -#define TLS_DTPREL 8 /* DTPREL reloc, => LD. */ -#define TLS_TLS 16 /* Any TLS reloc. */ -#define TLS_EXPLICIT 32 /* Marks TOC section TLS relocs. */ + Bits are or'd into the mask as the corresponding relocs are + encountered during check_relocs, with TLS_TLS being set when any + of the other TLS bits are set. tls_optimize clears bits when + optimizing to indicate the corresponding GOT entry type is not + needed. If set, TLS_TLS is never cleared. tls_optimize may also + set TLS_TPRELGD when a GD reloc turns into a TPREL one. We use a + separate flag rather than setting TPREL just for convenience in + distinguishing the two cases. + These flags are also kept for local symbols. */ +#define TLS_TLS 1 /* Any TLS reloc. */ +#define TLS_GD 2 /* GD reloc. */ +#define TLS_LD 4 /* LD reloc. */ +#define TLS_TPREL 8 /* TPREL reloc, => IE. */ +#define TLS_DTPREL 16 /* DTPREL reloc, => LD. */ +#define TLS_MARK 32 /* __tls_get_addr call marked. */ #define TLS_TPRELGD 64 /* TPREL reloc resulting from GD->IE. */ -#define PLT_IFUNC 128 /* STT_GNU_IFUNC. */ +#define TLS_EXPLICIT 128 /* Marks TOC section TLS relocs. */ unsigned char tls_mask; + + /* The above field is also used to mark function symbols. In which + case TLS_TLS will be 0. */ +#define PLT_IFUNC 2 /* STT_GNU_IFUNC. */ +#define PLT_KEEP 4 /* inline plt call requires plt entry. */ +#define NON_GOT 256 /* local symbol plt, not stored. */ }; /* ppc64 ELF linker hash table. */ @@ -4092,7 +4181,10 @@ /* Shortcuts to get to dynamic linker sections. */ asection *glink; + asection *global_entry; asection *sfpr; + asection *pltlocal; + asection *relpltlocal; asection *brlt; asection *relbrlt; asection *glink_eh_frame; @@ -4122,6 +4214,9 @@ /* Set if tls optimization is enabled. */ unsigned int do_tls_opt:1; + /* Set if inline plt calls should be converted to direct calls. */ + unsigned int can_convert_all_inline_plt:1; + /* Set on error. */ unsigned int stub_error:1; @@ -4149,7 +4244,7 @@ /* Nonzero if this section has TLS related relocations. */ #define has_tls_reloc sec_flg0 -/* Nonzero if this section has a call to __tls_get_addr. */ +/* Nonzero if this section has an old-style call to __tls_get_addr. */ #define has_tls_get_addr_call sec_flg1 /* Nonzero if this section has any toc or got relocs. */ @@ -4431,6 +4526,14 @@ || ! bfd_set_section_alignment (dynobj, htab->glink, 3)) return FALSE; + /* The part of .glink used by global entry stubs, separate so that + it can be aligned appropriately without affecting htab->glink. */ + htab->global_entry = bfd_make_section_anyway_with_flags (dynobj, ".glink", + flags); + if (htab->global_entry == NULL + || ! bfd_set_section_alignment (dynobj, htab->global_entry, 2)) + return FALSE; + if (!info->no_ld_generated_unwind_info) { flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_HAS_CONTENTS @@ -4466,18 +4569,31 @@ || ! bfd_set_section_alignment (dynobj, htab->brlt, 3)) return FALSE; + /* Local plt entries, put in .branch_lt but a separate section for + convenience. */ + htab->pltlocal = bfd_make_section_anyway_with_flags (dynobj, ".branch_lt", + flags); + if (htab->pltlocal == NULL + || ! bfd_set_section_alignment (dynobj, htab->pltlocal, 3)) + return FALSE; + if (!bfd_link_pic (info)) return TRUE; flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_LINKER_CREATED); - htab->relbrlt = bfd_make_section_anyway_with_flags (dynobj, - ".rela.branch_lt", - flags); + htab->relbrlt + = bfd_make_section_anyway_with_flags (dynobj, ".rela.branch_lt", flags); if (htab->relbrlt == NULL || ! bfd_set_section_alignment (dynobj, htab->relbrlt, 3)) return FALSE; + htab->relpltlocal + = bfd_make_section_anyway_with_flags (dynobj, ".rela.branch_lt", flags); + if (htab->relpltlocal == NULL + || ! bfd_set_section_alignment (dynobj, htab->relpltlocal, 3)) + return FALSE; + return TRUE; } @@ -4637,8 +4753,8 @@ if (stub_entry == NULL) { /* xgettext:c-format */ - info->callbacks->einfo (_("%P: %B: cannot create stub entry %s\n"), - section->owner, stub_name); + _bfd_error_handler (_("%pB: cannot create stub entry %s"), + section->owner, stub_name); return NULL; } @@ -4927,11 +5043,6 @@ asection **sec, bfd_vma *value) { - if (ELF_ST_TYPE (isym->st_info) == STT_GNU_IFUNC - && (ibfd->flags & DYNAMIC) == 0 - && bfd_get_flavour (info->output_bfd) == bfd_target_elf_flavour) - elf_tdata (info->output_bfd)->has_gnu_symbols |= elf_gnu_symbol_ifunc; - if (*sec != NULL && strcmp ((*sec)->name, ".opd") == 0) { @@ -4968,8 +5079,8 @@ set_abiversion (ibfd, 2); else if (abiversion (ibfd) == 1) { - info->callbacks->einfo (_("%P: symbol '%s' has invalid st_other" - " for ABI version 1\n"), name); + _bfd_error_handler (_("symbol '%s' has invalid st_other" + " for ABI version 1"), *name); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -5036,7 +5147,7 @@ len = strlen (name); dot_name = bfd_alloc (abfd, len + 2); if (dot_name == NULL) - return (struct elf_link_hash_entry *) 0 - 1; + return (struct elf_link_hash_entry *) -1; dot_name[0] = '.'; memcpy (dot_name + 1, name, len + 1); h = _bfd_elf_archive_symbol_lookup (abfd, info, dot_name); @@ -5143,9 +5254,8 @@ else if (abiversion (ibfd) >= 2) { /* xgettext:c-format */ - info->callbacks->einfo (_("%P: %B .opd not allowed in ABI" - " version %d\n"), - ibfd, abiversion (ibfd)); + _bfd_error_handler (_("%pB .opd not allowed in ABI version %d"), + ibfd, abiversion (ibfd)); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -5306,7 +5416,7 @@ elf_local_got_ents (abfd) = local_got_ents; } - if ((tls_type & (PLT_IFUNC | TLS_EXPLICIT)) == 0) + if ((tls_type & (NON_GOT | TLS_EXPLICIT)) == 0) { struct got_entry *ent; @@ -5334,7 +5444,7 @@ local_plt = (struct plt_entry **) (local_got_ents + symtab_hdr->sh_info); local_got_tls_masks = (unsigned char *) (local_plt + symtab_hdr->sh_info); - local_got_tls_masks[r_symndx] |= tls_type; + local_got_tls_masks[r_symndx] |= tls_type & 0xff; return local_plt + r_symndx; } @@ -5372,7 +5482,20 @@ || r_type == R_PPC64_ADDR24 || r_type == R_PPC64_ADDR14 || r_type == R_PPC64_ADDR14_BRTAKEN - || r_type == R_PPC64_ADDR14_BRNTAKEN); + || r_type == R_PPC64_ADDR14_BRNTAKEN + || r_type == R_PPC64_PLTCALL); +} + +/* Relocs on inline plt call sequence insns prior to the call. */ + +static bfd_boolean +is_plt_seq_reloc (enum elf_ppc64_reloc_type r_type) +{ + return (r_type == R_PPC64_PLT16_HA + || r_type == R_PPC64_PLT16_HI + || r_type == R_PPC64_PLT16_LO + || r_type == R_PPC64_PLT16_LO_DS + || r_type == R_PPC64_PLTSEQ); } /* Look through the relocs for a section during the first phase, and @@ -5460,7 +5583,8 @@ if (ELF_ST_TYPE (isym->st_info) == STT_GNU_IFUNC) { ifunc = update_local_sym_info (abfd, symtab_hdr, r_symndx, - rel->r_addend, PLT_IFUNC); + rel->r_addend, + NON_GOT | PLT_IFUNC); if (ifunc == NULL) return FALSE; } @@ -5473,6 +5597,14 @@ case R_PPC64_TLSLD: /* These special tls relocs tie a call to __tls_get_addr with its parameter symbol. */ + if (h != NULL) + ((struct ppc_link_hash_entry *) h)->tls_mask |= TLS_TLS | TLS_MARK; + else + if (!update_local_sym_info (abfd, symtab_hdr, r_symndx, + rel->r_addend, + NON_GOT | TLS_TLS | TLS_MARK)) + return FALSE; + sec->has_tls_reloc = 1; break; case R_PPC64_GOT_TLSLD16: @@ -5576,6 +5708,7 @@ case R_PPC64_PLT16_HA: case R_PPC64_PLT16_HI: case R_PPC64_PLT16_LO: + case R_PPC64_PLT16_LO_DS: case R_PPC64_PLT32: case R_PPC64_PLT64: /* This symbol requires a procedure linkage table entry. */ @@ -5586,20 +5719,13 @@ if (h->root.root.string[0] == '.' && h->root.root.string[1] != '\0') ((struct ppc_link_hash_entry *) h)->is_func = 1; + ((struct ppc_link_hash_entry *) h)->tls_mask |= PLT_KEEP; plt_list = &h->plt.plist; } if (plt_list == NULL) - { - /* It does not make sense to have a procedure linkage - table entry for a non-ifunc local symbol. */ - info->callbacks->einfo - /* xgettext:c-format */ - (_("%H: %s reloc against local symbol\n"), - abfd, sec, rel->r_offset, - ppc64_elf_howto_table[r_type]->name); - bfd_set_error (bfd_error_bad_value); - return FALSE; - } + plt_list = update_local_sym_info (abfd, symtab_hdr, r_symndx, + rel->r_addend, + NON_GOT | PLT_KEEP); if (!update_plt_info (abfd, plt_list, rel->r_addend)) return FALSE; break; @@ -5643,7 +5769,7 @@ ppc_howto_init (); /* xgettext:c-format */ info->callbacks->einfo (_("%H: %s reloc unsupported " - "in shared libraries and PIEs.\n"), + "in shared libraries and PIEs\n"), abfd, sec, rel->r_offset, ppc64_elf_howto_table[r_type]->name); bfd_set_error (bfd_error_bad_value); @@ -5713,9 +5839,14 @@ if (dest != sec) ppc64_elf_section_data (sec)->has_14bit_branch = 1; } + goto rel24; + + case R_PPC64_PLTCALL: + ppc64_elf_section_data (sec)->has_pltcall = 1; /* Fall through. */ case R_PPC64_REL24: + rel24: plt_list = ifunc; if (h != NULL) { @@ -6032,7 +6163,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B uses unknown e_flags 0x%lx"), ibfd, iflags); + (_("%pB uses unknown e_flags 0x%lx"), ibfd, iflags); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -6040,7 +6171,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: ABI version %ld is not compatible with ABI version %ld output"), + (_("%pB: ABI version %ld is not compatible with ABI version %ld output"), ibfd, iflags, oflags); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -6049,9 +6180,7 @@ _bfd_elf_ppc_merge_fp_attributes (ibfd, info); /* Merge Tag_compatibility attributes and any common GNU ones. */ - _bfd_elf_merge_object_attributes (ibfd, info); - - return TRUE; + return _bfd_elf_merge_object_attributes (ibfd, info); } static bfd_boolean @@ -6447,7 +6576,7 @@ if ((eh->elf.root.type == bfd_link_hash_defined || eh->elf.root.type == bfd_link_hash_defweak) - && (eh->elf.ref_dynamic + && ((eh->elf.ref_dynamic && !eh->elf.forced_local) || ((eh->elf.def_regular || ELF_COMMON_DEF_P (&eh->elf)) && ELF_ST_VISIBILITY (eh->elf.other) != STV_INTERNAL && ELF_ST_VISIBILITY (eh->elf.other) != STV_HIDDEN @@ -6635,7 +6764,7 @@ { s->root.type = bfd_link_hash_defined; s->root.u.def.section = stub_sec; - s->root.u.def.value = (stub_sec->size + s->root.u.def.value = (stub_sec->size - htab->sfpr->size + h->elf.root.u.def.value); s->ref_regular = 1; s->def_regular = 1; @@ -7153,7 +7282,11 @@ if (ent->plt.refcount > 0) break; if (ent == NULL - || (h->type != STT_GNU_IFUNC && local)) + || (h->type != STT_GNU_IFUNC + && local + && (htab->can_convert_all_inline_plt + || (((struct ppc_link_hash_entry *) h)->tls_mask + & (TLS_TLS | PLT_KEEP)) != PLT_KEEP))) { h->plt.plist = NULL; h->needs_plt = 0; @@ -7173,8 +7306,8 @@ if (!readonly_dynrelocs (h)) { h->pointer_equality_needed = 0; - /* If we haven't seen a branch reloc then we don't need - a plt entry. */ + /* If we haven't seen a branch reloc and the symbol + isn't an ifunc then we don't need a plt entry. */ if (!h->needs_plt) h->plt.plist = NULL; } @@ -7190,8 +7323,8 @@ else if (!h->needs_plt && !readonly_dynrelocs (h)) { - /* If we haven't seen a branch reloc then we don't need a - plt entry. */ + /* If we haven't seen a branch reloc and the symbol isn't an + ifunc then we don't need a plt entry. */ h->plt.plist = NULL; h->pointer_equality_needed = 0; return TRUE; @@ -7252,7 +7385,7 @@ sections. Allow them to proceed, but warn that this might break at runtime. */ info->callbacks->einfo - (_("%P: copy reloc against `%T' requires lazy plt linking; " + (_("%P: copy reloc against `%pT' requires lazy plt linking; " "avoid setting LD_BIND_NOW=1 or upgrade gcc\n"), h->root.root.string); } @@ -7467,7 +7600,9 @@ if (!get_sym_h (&h, &sym, &sec, tls_maskp, locsymsp, r_symndx, ibfd)) return 0; - if ((*tls_maskp != NULL && **tls_maskp != 0) + if ((*tls_maskp != NULL + && (**tls_maskp & TLS_TLS) != 0 + && **tls_maskp != (TLS_TLS | TLS_MARK)) || sec == NULL || ppc64_elf_section_data (sec) == NULL || ppc64_elf_section_data (sec)->sec_type != sec_toc) @@ -7519,7 +7654,7 @@ if (ent.sec == NULL || ent.sec->output_section == NULL) { _bfd_error_handler - (_("%B: undefined symbol on R_PPC64_TOCSAVE relocation"), ibfd); + (_("%pB: undefined symbol on R_PPC64_TOCSAVE relocation"), ibfd); return NULL; } @@ -7746,8 +7881,8 @@ } /* xgettext:c-format */ - info->callbacks->einfo (_("%P: dynreloc miscount for %B, section %A\n"), - sec->owner, sec); + _bfd_error_handler (_("dynreloc miscount for %pB, section %pA"), + sec->owner, sec); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -7835,7 +7970,7 @@ optimization for them! */ broken_opd: _bfd_error_handler - (_("%B: .opd is not a regular array of opd entries"), ibfd); + (_("%pB: .opd is not a regular array of opd entries"), ibfd); broken = TRUE; break; } @@ -7845,7 +7980,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: unexpected reloc type %u in .opd section"), + (_("%pB: unexpected reloc type %u in .opd section"), ibfd, r_type); broken = TRUE; break; @@ -7867,7 +8002,7 @@ _bfd_error_handler /* xgettext:c-format */ - (_("%B: undefined sym `%s' in .opd section"), + (_("%pB: undefined sym `%s' in .opd section"), ibfd, sym_name); broken = TRUE; break; @@ -8165,6 +8300,153 @@ return TRUE; } +/* Analyze inline PLT call relocations to see whether calls to locally + defined functions can be converted to direct calls. */ + +bfd_boolean +ppc64_elf_inline_plt (struct bfd_link_info *info) +{ + struct ppc_link_hash_table *htab; + bfd *ibfd; + asection *sec; + bfd_vma low_vma, high_vma, limit; + + htab = ppc_hash_table (info); + if (htab == NULL) + return FALSE; + + /* A bl insn can reach -0x2000000 to 0x1fffffc. The limit is + reduced somewhat to cater for possible stubs that might be added + between the call and its destination. */ + if (htab->params->group_size < 0) + { + limit = -htab->params->group_size; + if (limit == 1) + limit = 0x1e00000; + } + else + { + limit = htab->params->group_size; + if (limit == 1) + limit = 0x1c00000; + } + + low_vma = -1; + high_vma = 0; + for (sec = info->output_bfd->sections; sec != NULL; sec = sec->next) + if ((sec->flags & (SEC_ALLOC | SEC_CODE)) == (SEC_ALLOC | SEC_CODE)) + { + if (low_vma > sec->vma) + low_vma = sec->vma; + if (high_vma < sec->vma + sec->size) + high_vma = sec->vma + sec->size; + } + + /* If a "bl" can reach anywhere in local code sections, then we can + convert all inline PLT sequences to direct calls when the symbol + is local. */ + if (high_vma - low_vma < limit) + { + htab->can_convert_all_inline_plt = 1; + return TRUE; + } + + /* Otherwise, go looking through relocs for cases where a direct + call won't reach. Mark the symbol on any such reloc to disable + the optimization and keep the PLT entry as it seems likely that + this will be better than creating trampolines. Note that this + will disable the optimization for all inline PLT calls to a + particular symbol, not just those that won't reach. The + difficulty in doing a more precise optimization is that the + linker needs to make a decision depending on whether a + particular R_PPC64_PLTCALL insn can be turned into a direct + call, for each of the R_PPC64_PLTSEQ and R_PPC64_PLT16* insns in + the sequence, and there is nothing that ties those relocs + together except their symbol. */ + + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) + { + Elf_Internal_Shdr *symtab_hdr; + Elf_Internal_Sym *local_syms; + + if (!is_ppc64_elf (ibfd)) + continue; + + local_syms = NULL; + symtab_hdr = &elf_symtab_hdr (ibfd); + + for (sec = ibfd->sections; sec != NULL; sec = sec->next) + if (ppc64_elf_section_data (sec)->has_pltcall + && !bfd_is_abs_section (sec->output_section)) + { + Elf_Internal_Rela *relstart, *rel, *relend; + + /* Read the relocations. */ + relstart = _bfd_elf_link_read_relocs (ibfd, sec, NULL, NULL, + info->keep_memory); + if (relstart == NULL) + return FALSE; + + relend = relstart + sec->reloc_count; + for (rel = relstart; rel < relend; ) + { + enum elf_ppc64_reloc_type r_type; + unsigned long r_symndx; + asection *sym_sec; + struct elf_link_hash_entry *h; + Elf_Internal_Sym *sym; + unsigned char *tls_maskp; + + r_type = ELF64_R_TYPE (rel->r_info); + if (r_type != R_PPC64_PLTCALL) + continue; + + r_symndx = ELF64_R_SYM (rel->r_info); + if (!get_sym_h (&h, &sym, &sym_sec, &tls_maskp, &local_syms, + r_symndx, ibfd)) + { + if (elf_section_data (sec)->relocs != relstart) + free (relstart); + if (local_syms != NULL + && symtab_hdr->contents != (unsigned char *) local_syms) + free (local_syms); + return FALSE; + } + + if (sym_sec != NULL && sym_sec->output_section != NULL) + { + bfd_vma from, to; + if (h != NULL) + to = h->root.u.def.value; + else + to = sym->st_value; + to += (rel->r_addend + + sym_sec->output_offset + + sym_sec->output_section->vma); + from = (rel->r_offset + + sec->output_offset + + sec->output_section->vma); + if (to - from + limit < 2 * limit) + *tls_maskp &= ~PLT_KEEP; + } + } + if (elf_section_data (sec)->relocs != relstart) + free (relstart); + } + + if (local_syms != NULL + && symtab_hdr->contents != (unsigned char *) local_syms) + { + if (!info->keep_memory) + free (local_syms); + else + symtab_hdr->contents = (unsigned char *) local_syms; + } + } + + return TRUE; +} + /* Set htab->tls_get_addr and call the generic ELF tls_setup function. */ asection * @@ -8203,9 +8485,9 @@ if (htab->params->plt_localentry0 && elf_link_hash_lookup (&htab->elf, "GLIBC_2.26", FALSE, FALSE, FALSE) == NULL) - info->callbacks->einfo - (_("%P: warning: --plt-localentry is especially dangerous without " - "ld.so support to detect ABI violations.\n")); + _bfd_error_handler + (_("warning: --plt-localentry is especially dangerous without " + "ld.so support to detect ABI violations")); htab->tls_get_addr = ((struct ppc_link_hash_entry *) elf_link_hash_lookup (&htab->elf, ".__tls_get_addr", @@ -8517,6 +8799,33 @@ case R_PPC64_TLSGD: case R_PPC64_TLSLD: + if (rel + 1 < relend + && is_plt_seq_reloc (ELF64_R_TYPE (rel[1].r_info))) + { + if (pass != 0 + && ELF64_R_TYPE (rel[1].r_info) != R_PPC64_PLTSEQ) + { + r_symndx = ELF64_R_SYM (rel[1].r_info); + if (!get_sym_h (&h, NULL, NULL, NULL, &locsyms, + r_symndx, ibfd)) + goto err_free_rel; + if (h != NULL) + { + struct plt_entry *ent = NULL; + + for (ent = h->plt.plist; + ent != NULL; + ent = ent->next) + if (ent->addend == rel[1].r_addend) + break; + + if (ent != NULL + && ent->plt.refcount > 0) + ent->plt.refcount -= 1; + } + } + continue; + } found_tls_get_addr_arg = 1; /* Fall through. */ @@ -8634,7 +8943,8 @@ goto err_free_rel; if (toc_tls != NULL) { - if ((*toc_tls & (TLS_GD | TLS_LD)) != 0) + if ((*toc_tls & TLS_TLS) != 0 + && ((*toc_tls & (TLS_GD | TLS_LD)) != 0)) found_tls_get_addr_arg = 1; if (retval > 1) toc_ref[toc_ref_index] = 1; @@ -8643,9 +8953,6 @@ continue; } - if (expecting_tls_get_addr != 1) - continue; - /* Uh oh, we didn't find the expected call. We could just mark this symbol to exclude it from tls optimization but it's safer to skip @@ -8658,35 +8965,41 @@ goto err_free_rel; } - if (expecting_tls_get_addr && htab->tls_get_addr != NULL) + /* If we don't have old-style __tls_get_addr calls + without TLSGD/TLSLD marker relocs, and we haven't + found a new-style __tls_get_addr call with a + marker for this symbol, then we either have a + broken object file or an -mlongcall style + indirect call to __tls_get_addr without a marker. + Disable optimization in this case. */ + if ((tls_clear & (TLS_GD | TLS_LD)) != 0 + && (tls_set & TLS_EXPLICIT) == 0 + && !sec->has_tls_get_addr_call + && ((*tls_mask & (TLS_TLS | TLS_MARK)) + != (TLS_TLS | TLS_MARK))) + continue; + + if (expecting_tls_get_addr) { - struct plt_entry *ent; - for (ent = htab->tls_get_addr->elf.plt.plist; - ent != NULL; - ent = ent->next) - if (ent->addend == 0) - { - if (ent->plt.refcount > 0) - { - ent->plt.refcount -= 1; - expecting_tls_get_addr = 0; - } + struct plt_entry *ent = NULL; + + if (htab->tls_get_addr != NULL) + for (ent = htab->tls_get_addr->elf.plt.plist; + ent != NULL; + ent = ent->next) + if (ent->addend == 0) break; - } - } - if (expecting_tls_get_addr && htab->tls_get_addr_fd != NULL) - { - struct plt_entry *ent; - for (ent = htab->tls_get_addr_fd->elf.plt.plist; - ent != NULL; - ent = ent->next) - if (ent->addend == 0) - { - if (ent->plt.refcount > 0) - ent->plt.refcount -= 1; + if (ent == NULL && htab->tls_get_addr_fd != NULL) + for (ent = htab->tls_get_addr_fd->elf.plt.plist; + ent != NULL; + ent = ent->next) + if (ent->addend == 0) break; - } + + if (ent != NULL + && ent->plt.refcount > 0) + ent->plt.refcount -= 1; } if (tls_clear == 0) @@ -9163,7 +9476,7 @@ info->callbacks->einfo /* xgettext:c-format */ (_("%H: toc optimization is not supported for" - " %s instruction.\n"), + " %s instruction\n"), ibfd, sec, rel->r_offset & ~3, str); } } @@ -9617,7 +9930,7 @@ eh = (struct ppc_link_hash_entry *) h; /* Run through the TLS GD got entries first if we're changing them to TPREL. */ - if ((eh->tls_mask & TLS_TPRELGD) != 0) + if ((eh->tls_mask & (TLS_TLS | TLS_TPRELGD)) == (TLS_TLS | TLS_TPRELGD)) for (gent = h->got.glist; gent != NULL; gent = gent->next) if (gent->got.refcount > 0 && (gent->tls_type & TLS_GD) != 0) @@ -9760,9 +10073,20 @@ } } - if ((htab->elf.dynamic_sections_created - && h->dynindx != -1) - || h->type == STT_GNU_IFUNC) + /* We might need a PLT entry when the symbol + a) is dynamic, or + b) is an ifunc, or + c) has plt16 relocs and has been processed by adjust_dynamic_symbol, or + d) has plt16 relocs and we are linking statically. */ + if ((htab->elf.dynamic_sections_created && h->dynindx != -1) + || h->type == STT_GNU_IFUNC + || (h->needs_plt && h->dynamic_adjusted) + || (h->needs_plt + && h->def_regular + && !htab->elf.dynamic_sections_created + && !htab->can_convert_all_inline_plt + && (((struct ppc_link_hash_entry *) h)->tls_mask + & (TLS_TLS | PLT_KEEP)) == PLT_KEEP)) { struct plt_entry *pent; bfd_boolean doneone = FALSE; @@ -9772,10 +10096,20 @@ if (!htab->elf.dynamic_sections_created || h->dynindx == -1) { - s = htab->elf.iplt; - pent->plt.offset = s->size; - s->size += PLT_ENTRY_SIZE (htab); - s = htab->elf.irelplt; + if (h->type == STT_GNU_IFUNC) + { + s = htab->elf.iplt; + pent->plt.offset = s->size; + s->size += PLT_ENTRY_SIZE (htab); + s = htab->elf.irelplt; + } + else + { + s = htab->pltlocal; + pent->plt.offset = s->size; + s->size += LOCAL_PLT_ENTRY_SIZE (htab); + s = bfd_link_pic (info) ? htab->relpltlocal : NULL; + } } else { @@ -9793,11 +10127,11 @@ /* Make room for the .glink code. */ s = htab->glink; if (s->size == 0) - s->size += GLINK_CALL_STUB_SIZE; + s->size += GLINK_PLTRESOLVE_SIZE (htab); if (htab->opd_abi) { /* We need bigger stubs past index 32767. */ - if (s->size >= GLINK_CALL_STUB_SIZE + 32768*2*4) + if (s->size >= GLINK_PLTRESOLVE_SIZE (htab) + 32768*2*4) s->size += 4; s->size += 2*4; } @@ -9807,7 +10141,8 @@ /* We also need to make an entry in the .rela.plt section. */ s = htab->elf.srelplt; } - s->size += sizeof (Elf64_External_Rela); + if (s != NULL) + s->size += sizeof (Elf64_External_Rela); doneone = TRUE; } else @@ -9827,6 +10162,10 @@ return TRUE; } +#define PPC_LO(v) ((v) & 0xffff) +#define PPC_HI(v) (((v) >> 16) & 0xffff) +#define PPC_HA(v) PPC_HI ((v) + 0x8000) + /* Called via elf_link_hash_traverse from ppc64_elf_size_dynamic_sections to set up space for global entry stubs. These are put in glink, after the branch table. */ @@ -9837,7 +10176,7 @@ struct bfd_link_info *info; struct ppc_link_hash_table *htab; struct plt_entry *pent; - asection *s; + asection *s, *plt; if (h->root.type == bfd_link_hash_indirect) return TRUE; @@ -9853,7 +10192,8 @@ if (htab == NULL) return FALSE; - s = htab->glink; + s = htab->global_entry; + plt = htab->elf.splt; for (pent = h->plt.plist; pent != NULL; pent = pent->next) if (pent->plt.offset != (bfd_vma) -1 && pent->addend == 0) @@ -9862,11 +10202,39 @@ and we are not generating a shared library or pie, then we need to define the symbol in the executable on a call stub. This is to avoid text relocations. */ - s->size = (s->size + 15) & -16; + bfd_vma off, stub_align, stub_off, stub_size; + unsigned int align_power; + + stub_size = 16; + stub_off = s->size; + if (htab->params->plt_stub_align >= 0) + align_power = htab->params->plt_stub_align; + else + align_power = -htab->params->plt_stub_align; + /* Setting section alignment is delayed until we know it is + non-empty. Otherwise the .text output section will be + aligned at least to plt_stub_align even when no global + entry stubs are needed. */ + if (s->alignment_power < align_power) + s->alignment_power = align_power; + stub_align = (bfd_vma) 1 << align_power; + if (htab->params->plt_stub_align >= 0 + || ((((stub_off + stub_size - 1) & -stub_align) + - (stub_off & -stub_align)) + > ((stub_size - 1) & -stub_align))) + stub_off = (stub_off + stub_align - 1) & -stub_align; + off = pent->plt.offset + plt->output_offset + plt->output_section->vma; + off -= stub_off + s->output_offset + s->output_section->vma; + /* Note that for --plt-stub-align negative we have a possible + dependency between stub offset and size. Break that + dependency by assuming the max stub size when calculating + the stub offset. */ + if (PPC_HA (off) == 0) + stub_size -= 4; h->root.type = bfd_link_hash_defined; h->root.u.def.section = s; - h->root.u.def.value = s->size; - s->size += 16; + h->root.u.def.value = stub_off; + s->size = stub_off + stub_size; break; } return TRUE; @@ -9890,7 +10258,7 @@ info->flags |= DF_TEXTREL; info->callbacks->minfo - (_("%B: dynamic relocation against `%T' in read-only section `%A'\n"), + (_("%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"), sec->owner, h->root.root.string, sec); /* Not an error, just cut short the traversal. */ @@ -10010,7 +10378,7 @@ rel_size *= 2; } s->size += ent_size; - if ((*lgot_masks & PLT_IFUNC) != 0) + if ((*lgot_masks & (TLS_TLS | PLT_IFUNC)) == PLT_IFUNC) { htab->elf.irelplt->size += rel_size; htab->got_reli_size += rel_size; @@ -10029,19 +10397,33 @@ *pent = ent->next; } - /* Allocate space for calls to local STT_GNU_IFUNC syms in .iplt. */ - for (; local_plt < end_local_plt; ++local_plt) + /* Allocate space for plt calls to local syms. */ + lgot_masks = (unsigned char *) end_local_plt; + for (; local_plt < end_local_plt; ++local_plt, ++lgot_masks) { struct plt_entry *ent; for (ent = *local_plt; ent != NULL; ent = ent->next) if (ent->plt.refcount > 0) { - s = htab->elf.iplt; - ent->plt.offset = s->size; - s->size += PLT_ENTRY_SIZE (htab); - - htab->elf.irelplt->size += sizeof (Elf64_External_Rela); + if ((*lgot_masks & (TLS_TLS | PLT_IFUNC)) == PLT_IFUNC) + { + s = htab->elf.iplt; + ent->plt.offset = s->size; + s->size += PLT_ENTRY_SIZE (htab); + htab->elf.irelplt->size += sizeof (Elf64_External_Rela); + } + else if (htab->can_convert_all_inline_plt + || (*lgot_masks & (TLS_TLS | PLT_KEEP)) != PLT_KEEP) + ent->plt.offset = (bfd_vma) -1; + else + { + s = htab->pltlocal; + ent->plt.offset = s->size; + s->size += LOCAL_PLT_ENTRY_SIZE (htab); + if (bfd_link_pic (info)) + htab->relpltlocal->size += sizeof (Elf64_External_Rela); + } } else ent->plt.offset = (bfd_vma) -1; @@ -10051,9 +10433,6 @@ /* Allocate global sym .plt and .got entries, and space for global sym dynamic relocs. */ elf_link_hash_traverse (&htab->elf, allocate_dynrelocs, info); - /* Stash the end of glink branch table. */ - if (htab->glink != NULL) - htab->glink->rawsize = htab->glink->size; if (!htab->opd_abi && !bfd_link_pic (info)) elf_link_hash_traverse (&htab->elf, size_global_entry_stubs, info); @@ -10107,7 +10486,9 @@ else if (s == htab->elf.sgot || s == htab->elf.splt || s == htab->elf.iplt + || s == htab->pltlocal || s == htab->glink + || s == htab->global_entry || s == htab->elf.sdynbss || s == htab->elf.sdynrelro) { @@ -10360,7 +10741,9 @@ /* Determine if a long branch stub is needed. */ max_branch_offset = 1 << 25; - if (r_type != R_PPC64_REL24) + if (r_type == R_PPC64_REL14 + || r_type == R_PPC64_REL14_BRTAKEN + || r_type == R_PPC64_REL14_BRNTAKEN) max_branch_offset = 1 << 15; if (branch_offset + max_branch_offset >= 2 * max_branch_offset - local_off) @@ -10393,10 +10776,6 @@ #define ALWAYS_USE_FAKE_DEP 0 #define ALWAYS_EMIT_R2SAVE 0 -#define PPC_LO(v) ((v) & 0xffff) -#define PPC_HI(v) (((v) >> 16) & 0xffff) -#define PPC_HA(v) PPC_HI ((v) + 0x8000) - static inline unsigned int plt_stub_size (struct ppc_link_hash_table *htab, struct ppc_stub_hash_entry *stub_entry, @@ -10492,7 +10871,7 @@ bfd_vma pltoff = stub_entry->plt_ent->plt.offset & ~1; bfd_vma pltindex = ((pltoff - PLT_INITIAL_ENTRY_SIZE (htab)) / PLT_ENTRY_SIZE (htab)); - bfd_vma glinkoff = GLINK_CALL_STUB_SIZE + pltindex * 8; + bfd_vma glinkoff = GLINK_PLTRESOLVE_SIZE (htab) + pltindex * 8; bfd_vma to, from; if (pltindex > 32768) @@ -10743,7 +11122,7 @@ if (strcmp (opd->name, ".opd") != 0 || opd->reloc_count != 0) { - info->callbacks->einfo (_("%P: cannot find opd entry toc for `%T'\n"), + info->callbacks->einfo (_("%P: cannot find opd entry toc for `%pT'\n"), stub_entry->h->elf.root.root.string); bfd_set_error (bfd_error_bad_value); return (bfd_vma) -1; @@ -10767,7 +11146,6 @@ bfd_byte *loc; bfd_byte *p; bfd_vma dest, off; - int size; Elf_Internal_Rela *r; asection *plt; @@ -10800,7 +11178,7 @@ + stub_entry->group->stub_sec->output_offset + stub_entry->group->stub_sec->output_section->vma); - size = 4; + p = loc; if (stub_entry->stub_type == ppc_stub_long_branch_r2off) { bfd_vma r2off = get_r2off (info, stub_entry); @@ -10810,31 +11188,29 @@ htab->stub_error = TRUE; return FALSE; } - bfd_put_32 (htab->params->stub_bfd, STD_R2_0R1 + STK_TOC (htab), loc); - loc += 4; - size = 8; + bfd_put_32 (htab->params->stub_bfd, STD_R2_0R1 + STK_TOC (htab), p); + p += 4; if (PPC_HA (r2off) != 0) { bfd_put_32 (htab->params->stub_bfd, - ADDIS_R2_R2 | PPC_HA (r2off), loc); - loc += 4; - size += 4; + ADDIS_R2_R2 | PPC_HA (r2off), p); + p += 4; } if (PPC_LO (r2off) != 0) { bfd_put_32 (htab->params->stub_bfd, - ADDI_R2_R2 | PPC_LO (r2off), loc); - loc += 4; - size += 4; + ADDI_R2_R2 | PPC_LO (r2off), p); + p += 4; } - off -= size - 4; + off -= p - loc; } - bfd_put_32 (htab->params->stub_bfd, B_DOT | (off & 0x3fffffc), loc); + bfd_put_32 (htab->params->stub_bfd, B_DOT | (off & 0x3fffffc), p); + p += 4; if (off + (1 << 25) >= (bfd_vma) (1 << 26)) { - info->callbacks->einfo - (_("%P: long branch stub `%s' offset overflow\n"), + _bfd_error_handler + (_("long branch stub `%s' offset overflow"), stub_entry->root.string); htab->stub_error = TRUE; return FALSE; @@ -10845,7 +11221,7 @@ r = get_relocs (stub_entry->group->stub_sec, 1); if (r == NULL) return FALSE; - r->r_offset = loc - stub_entry->group->stub_sec->contents; + r->r_offset = p - 4 - stub_entry->group->stub_sec->contents; r->r_info = ELF64_R_INFO (0, R_PPC64_REL24); r->r_addend = dest; if (stub_entry->h != NULL) @@ -10893,8 +11269,8 @@ FALSE, FALSE); if (br_entry == NULL) { - info->callbacks->einfo (_("%P: can't find branch stub `%s'\n"), - stub_entry->root.string); + _bfd_error_handler (_("can't find branch stub `%s'"), + stub_entry->root.string); htab->stub_error = TRUE; return FALSE; } @@ -10957,7 +11333,7 @@ if (off + 0x80008000 > 0xffffffff || (off & 7) != 0) { info->callbacks->einfo - (_("%P: linkage table error against `%T'\n"), + (_("%P: linkage table error against `%pT'\n"), stub_entry->root.string); bfd_set_error (bfd_error_bad_value); htab->stub_error = TRUE; @@ -10985,23 +11361,20 @@ } } + p = loc; if (stub_entry->stub_type != ppc_stub_plt_branch_r2off) { if (PPC_HA (off) != 0) { - size = 16; bfd_put_32 (htab->params->stub_bfd, - ADDIS_R12_R2 | PPC_HA (off), loc); - loc += 4; + ADDIS_R12_R2 | PPC_HA (off), p); + p += 4; bfd_put_32 (htab->params->stub_bfd, - LD_R12_0R12 | PPC_LO (off), loc); + LD_R12_0R12 | PPC_LO (off), p); } else - { - size = 12; - bfd_put_32 (htab->params->stub_bfd, - LD_R12_0R2 | PPC_LO (off), loc); - } + bfd_put_32 (htab->params->stub_bfd, + LD_R12_0R2 | PPC_LO (off), p); } else { @@ -11013,40 +11386,37 @@ return FALSE; } - bfd_put_32 (htab->params->stub_bfd, STD_R2_0R1 + STK_TOC (htab), loc); - loc += 4; - size = 16; + bfd_put_32 (htab->params->stub_bfd, STD_R2_0R1 + STK_TOC (htab), p); + p += 4; if (PPC_HA (off) != 0) { - size += 4; bfd_put_32 (htab->params->stub_bfd, - ADDIS_R12_R2 | PPC_HA (off), loc); - loc += 4; + ADDIS_R12_R2 | PPC_HA (off), p); + p += 4; bfd_put_32 (htab->params->stub_bfd, - LD_R12_0R12 | PPC_LO (off), loc); + LD_R12_0R12 | PPC_LO (off), p); } else - bfd_put_32 (htab->params->stub_bfd, LD_R12_0R2 | PPC_LO (off), loc); + bfd_put_32 (htab->params->stub_bfd, LD_R12_0R2 | PPC_LO (off), p); if (PPC_HA (r2off) != 0) { - size += 4; - loc += 4; + p += 4; bfd_put_32 (htab->params->stub_bfd, - ADDIS_R2_R2 | PPC_HA (r2off), loc); + ADDIS_R2_R2 | PPC_HA (r2off), p); } if (PPC_LO (r2off) != 0) { - size += 4; - loc += 4; + p += 4; bfd_put_32 (htab->params->stub_bfd, - ADDI_R2_R2 | PPC_LO (r2off), loc); + ADDI_R2_R2 | PPC_LO (r2off), p); } } - loc += 4; - bfd_put_32 (htab->params->stub_bfd, MTCTR_R12, loc); - loc += 4; - bfd_put_32 (htab->params->stub_bfd, BCTR, loc); + p += 4; + bfd_put_32 (htab->params->stub_bfd, MTCTR_R12, p); + p += 4; + bfd_put_32 (htab->params->stub_bfd, BCTR, p); + p += 4; break; case ppc_stub_plt_call: @@ -11074,33 +11444,15 @@ if (!htab->elf.dynamic_sections_created || stub_entry->h == NULL || stub_entry->h->elf.dynindx == -1) - plt = htab->elf.iplt; - - dest += plt->output_offset + plt->output_section->vma; - - if (stub_entry->h == NULL - && (stub_entry->plt_ent->plt.offset & 1) == 0) { - Elf_Internal_Rela rela; - bfd_byte *rl; - - rela.r_offset = dest; - if (htab->opd_abi) - rela.r_info = ELF64_R_INFO (0, R_PPC64_JMP_IREL); + if (stub_entry->symtype == STT_GNU_IFUNC) + plt = htab->elf.iplt; else - rela.r_info = ELF64_R_INFO (0, R_PPC64_IRELATIVE); - rela.r_addend = (stub_entry->target_value - + stub_entry->target_section->output_offset - + stub_entry->target_section->output_section->vma); - - rl = (htab->elf.irelplt->contents - + (htab->elf.irelplt->reloc_count++ - * sizeof (Elf64_External_Rela))); - bfd_elf64_swap_reloca_out (info->output_bfd, &rela, rl); - stub_entry->plt_ent->plt.offset |= 1; - htab->local_ifunc_resolver = 1; + plt = htab->pltlocal; } + dest += plt->output_offset + plt->output_section->vma; + off = (dest - elf_gp (info->output_bfd) - htab->sec_info[stub_entry->group->link_sec->id].toc_off); @@ -11109,7 +11461,7 @@ { info->callbacks->einfo /* xgettext:c-format */ - (_("%P: linkage table error against `%T'\n"), + (_("%P: linkage table error against `%pT'\n"), stub_entry->h != NULL ? stub_entry->h->elf.root.root.string : ""); @@ -11150,7 +11502,6 @@ p = build_tls_get_addr_stub (htab, stub_entry, loc, off, r); else p = build_plt_stub (htab, stub_entry, loc, off, r); - size = p - loc; break; case ppc_stub_save_res: @@ -11161,7 +11512,7 @@ return FALSE; } - stub_entry->group->stub_sec->size += size; + stub_entry->group->stub_sec->size += p - loc; if (htab->params->emit_stub_syms) { @@ -11247,7 +11598,12 @@ if (!htab->elf.dynamic_sections_created || stub_entry->h == NULL || stub_entry->h->elf.dynindx == -1) - plt = htab->elf.iplt; + { + if (stub_entry->symtype == STT_GNU_IFUNC) + plt = htab->elf.iplt; + else + plt = htab->pltlocal; + } off += (plt->output_offset + plt->output_section->vma - elf_gp (info->output_bfd) @@ -11314,7 +11670,7 @@ local_off = PPC64_LOCAL_ENTRY_OFFSET (stub_entry->other); - /* If the branch offset if too big, use a ppc_stub_plt_branch. + /* If the branch offset is too big, use a ppc_stub_plt_branch. Do the same for -R objects without function descriptors. */ if (off + (1 << 25) >= (bfd_vma) (1 << 26) - local_off || (stub_entry->stub_type == ppc_stub_long_branch_r2off @@ -11328,8 +11684,8 @@ TRUE, FALSE); if (br_entry == NULL) { - info->callbacks->einfo (_("%P: can't build branch stub `%s'\n"), - stub_entry->root.string); + _bfd_error_handler (_("can't build branch stub `%s'"), + stub_entry->root.string); htab->stub_error = TRUE; return FALSE; } @@ -11406,7 +11762,7 @@ if (htab == NULL) return -1; - htab->sec_info_arr_size = bfd_get_next_section_id (); + htab->sec_info_arr_size = _bfd_section_id; amt = sizeof (*htab->sec_info) * (htab->sec_info_arr_size); htab->sec_info = bfd_zmalloc (amt); if (htab->sec_info == NULL) @@ -11653,12 +12009,14 @@ rel_size *= 2; } s->size += ent_size; - if ((*lgot_masks & PLT_IFUNC) != 0) + if ((*lgot_masks & (TLS_TLS | PLT_IFUNC)) == PLT_IFUNC) { htab->elf.irelplt->size += rel_size; htab->got_reli_size += rel_size; } - else if (bfd_link_pic (info)) + else if (bfd_link_pic (info) + && !((ent->tls_type & TLS_TPREL) != 0 + && bfd_link_executable (info))) { asection *srel = ppc64_elf_tdata (ibfd)->relgot; srel->size += rel_size; @@ -11792,7 +12150,8 @@ if (r_type != R_PPC64_REL24 && r_type != R_PPC64_REL14 && r_type != R_PPC64_REL14_BRTAKEN - && r_type != R_PPC64_REL14_BRNTAKEN) + && r_type != R_PPC64_REL14_BRNTAKEN + && r_type != R_PPC64_PLTCALL) continue; r_symndx = ELF64_R_SYM (rel->r_info); @@ -12101,7 +12460,7 @@ big_sec = total > group_size; if (big_sec && !suppress_size_errors) /* xgettext:c-format */ - _bfd_error_handler (_("%B section %A exceeds stub group size"), + _bfd_error_handler (_("%pB section %pA exceeds stub group size"), tail->owner, tail); curr_toc = htab->sec_info[tail->id].toc_off; @@ -12526,7 +12885,7 @@ if (!get_tls_mask (&tls_mask, NULL, NULL, &local_syms, irela - 1, input_bfd)) goto error_ret_free_internal; - if (*tls_mask != 0) + if ((*tls_mask & TLS_TLS) != 0) continue; } @@ -12597,6 +12956,8 @@ } stub_entry->h = hash; stub_entry->plt_ent = plt_ent; + stub_entry->symtype + = hash ? hash->elf.type : ELF_ST_TYPE (sym->st_info); stub_entry->other = hash ? hash->elf.other : sym->st_other; if (stub_entry->h != NULL) @@ -12634,6 +12995,9 @@ stub_sec->flags &= ~SEC_RELOC; } + if (htab->stub_iteration <= STUB_SHRINK_ITER + || htab->brlt->rawsize < htab->brlt->size) + htab->brlt->rawsize = htab->brlt->size; htab->brlt->size = 0; htab->brlt->reloc_count = 0; htab->brlt->flags &= ~SEC_RELOC; @@ -12675,9 +13039,11 @@ if (htab->params->plt_stub_align != 0) for (group = htab->group; group != NULL; group = group->next) if (group->stub_sec != NULL) - group->stub_sec->size = ((group->stub_sec->size - + (1 << htab->params->plt_stub_align) - 1) - & -(1 << htab->params->plt_stub_align)); + { + int align = abs (htab->params->plt_stub_align); + group->stub_sec->size + = (group->stub_sec->size + (1 << align) - 1) & -(1 << align); + } for (group = htab->group; group != NULL; group = group->next) if (group->stub_sec != NULL @@ -12687,6 +13053,9 @@ break; if (group == NULL + && (htab->brlt->rawsize == htab->brlt->size + || (htab->stub_iteration > STUB_SHRINK_ITER + && htab->brlt->rawsize > htab->brlt->size)) && (htab->glink_eh_frame == NULL || htab->glink_eh_frame->rawsize == htab->glink_eh_frame->size)) break; @@ -12927,34 +13296,119 @@ } /* Called via elf_link_hash_traverse from ppc64_elf_build_stubs to - write out any global entry stubs. */ + write out any global entry stubs, and PLT relocations. */ static bfd_boolean -build_global_entry_stubs (struct elf_link_hash_entry *h, void *inf) +build_global_entry_stubs_and_plt (struct elf_link_hash_entry *h, void *inf) { struct bfd_link_info *info; struct ppc_link_hash_table *htab; - struct plt_entry *pent; + struct plt_entry *ent; asection *s; if (h->root.type == bfd_link_hash_indirect) return TRUE; + info = inf; + htab = ppc_hash_table (info); + if (htab == NULL) + return FALSE; + + for (ent = h->plt.plist; ent != NULL; ent = ent->next) + if (ent->plt.offset != (bfd_vma) -1) + { + /* This symbol has an entry in the procedure linkage + table. Set it up. */ + Elf_Internal_Rela rela; + asection *plt, *relplt; + bfd_byte *loc; + + if (!htab->elf.dynamic_sections_created + || h->dynindx == -1) + { + if (!(h->def_regular + && (h->root.type == bfd_link_hash_defined + || h->root.type == bfd_link_hash_defweak))) + continue; + if (h->type == STT_GNU_IFUNC) + { + plt = htab->elf.iplt; + relplt = htab->elf.irelplt; + htab->local_ifunc_resolver = 1; + if (htab->opd_abi) + rela.r_info = ELF64_R_INFO (0, R_PPC64_JMP_IREL); + else + rela.r_info = ELF64_R_INFO (0, R_PPC64_IRELATIVE); + } + else + { + plt = htab->pltlocal; + if (bfd_link_pic (info)) + { + relplt = htab->relpltlocal; + if (htab->opd_abi) + rela.r_info = ELF64_R_INFO (0, R_PPC64_JMP_SLOT); + else + rela.r_info = ELF64_R_INFO (0, R_PPC64_RELATIVE); + } + else + relplt = NULL; + } + rela.r_addend = (h->root.u.def.value + + h->root.u.def.section->output_offset + + h->root.u.def.section->output_section->vma + + ent->addend); + + if (relplt == NULL) + { + loc = plt->contents + ent->plt.offset; + bfd_put_64 (info->output_bfd, rela.r_addend, loc); + if (htab->opd_abi) + { + bfd_vma toc = elf_gp (info->output_bfd); + toc += htab->sec_info[h->root.u.def.section->id].toc_off; + bfd_put_64 (info->output_bfd, toc, loc + 8); + } + } + else + { + rela.r_offset = (plt->output_section->vma + + plt->output_offset + + ent->plt.offset); + loc = relplt->contents + (relplt->reloc_count++ + * sizeof (Elf64_External_Rela)); + bfd_elf64_swap_reloca_out (info->output_bfd, &rela, loc); + } + } + else + { + rela.r_offset = (htab->elf.splt->output_section->vma + + htab->elf.splt->output_offset + + ent->plt.offset); + rela.r_info = ELF64_R_INFO (h->dynindx, R_PPC64_JMP_SLOT); + rela.r_addend = ent->addend; + loc = (htab->elf.srelplt->contents + + ((ent->plt.offset - PLT_INITIAL_ENTRY_SIZE (htab)) + / PLT_ENTRY_SIZE (htab) * sizeof (Elf64_External_Rela))); + if (h->type == STT_GNU_IFUNC && is_static_defined (h)) + htab->maybe_local_ifunc_resolver = 1; + bfd_elf64_swap_reloca_out (info->output_bfd, &rela, loc); + } + } + if (!h->pointer_equality_needed) return TRUE; if (h->def_regular) return TRUE; - info = inf; - htab = ppc_hash_table (info); - if (htab == NULL) - return FALSE; + s = htab->global_entry; + if (s == NULL || s->size == 0) + return TRUE; - s = htab->glink; - for (pent = h->plt.plist; pent != NULL; pent = pent->next) - if (pent->plt.offset != (bfd_vma) -1 - && pent->addend == 0) + for (ent = h->plt.plist; ent != NULL; ent = ent->next) + if (ent->plt.offset != (bfd_vma) -1 + && ent->addend == 0) { bfd_byte *p; asection *plt; @@ -12964,14 +13418,19 @@ plt = htab->elf.splt; if (!htab->elf.dynamic_sections_created || h->dynindx == -1) - plt = htab->elf.iplt; - off = pent->plt.offset + plt->output_offset + plt->output_section->vma; + { + if (h->type == STT_GNU_IFUNC) + plt = htab->elf.iplt; + else + plt = htab->pltlocal; + } + off = ent->plt.offset + plt->output_offset + plt->output_section->vma; off -= h->root.u.def.value + s->output_offset + s->output_section->vma; if (off + 0x80008000 > 0xffffffff || (off & 3) != 0) { info->callbacks->einfo - (_("%P: linkage table error against `%T'\n"), + (_("%P: linkage table error against `%pT'\n"), h->root.root.string); bfd_set_error (bfd_error_bad_value); htab->stub_error = TRUE; @@ -13019,6 +13478,120 @@ return TRUE; } +/* Write PLT relocs for locals. */ + +static bfd_boolean +write_plt_relocs_for_local_syms (struct bfd_link_info *info) +{ + struct ppc_link_hash_table *htab = ppc_hash_table (info); + bfd *ibfd; + + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) + { + struct got_entry **lgot_ents, **end_lgot_ents; + struct plt_entry **local_plt, **lplt, **end_local_plt; + Elf_Internal_Shdr *symtab_hdr; + bfd_size_type locsymcount; + Elf_Internal_Sym *local_syms = NULL; + struct plt_entry *ent; + + if (!is_ppc64_elf (ibfd)) + continue; + + lgot_ents = elf_local_got_ents (ibfd); + if (!lgot_ents) + continue; + + symtab_hdr = &elf_symtab_hdr (ibfd); + locsymcount = symtab_hdr->sh_info; + end_lgot_ents = lgot_ents + locsymcount; + local_plt = (struct plt_entry **) end_lgot_ents; + end_local_plt = local_plt + locsymcount; + for (lplt = local_plt; lplt < end_local_plt; ++lplt) + for (ent = *lplt; ent != NULL; ent = ent->next) + if (ent->plt.offset != (bfd_vma) -1) + { + Elf_Internal_Sym *sym; + asection *sym_sec; + asection *plt, *relplt; + bfd_byte *loc; + bfd_vma val; + + if (!get_sym_h (NULL, &sym, &sym_sec, NULL, &local_syms, + lplt - local_plt, ibfd)) + { + if (local_syms != NULL + && symtab_hdr->contents != (unsigned char *) local_syms) + free (local_syms); + return FALSE; + } + + val = sym->st_value + ent->addend; + val += PPC64_LOCAL_ENTRY_OFFSET (sym->st_other); + if (sym_sec != NULL && sym_sec->output_section != NULL) + val += sym_sec->output_offset + sym_sec->output_section->vma; + + if (ELF_ST_TYPE (sym->st_info) == STT_GNU_IFUNC) + { + htab->local_ifunc_resolver = 1; + plt = htab->elf.iplt; + relplt = htab->elf.irelplt; + } + else + { + plt = htab->pltlocal; + relplt = bfd_link_pic (info) ? htab->relpltlocal : NULL; + } + + if (relplt == NULL) + { + loc = plt->contents + ent->plt.offset; + bfd_put_64 (info->output_bfd, val, loc); + if (htab->opd_abi) + { + bfd_vma toc = elf_gp (ibfd); + bfd_put_64 (info->output_bfd, toc, loc + 8); + } + } + else + { + Elf_Internal_Rela rela; + rela.r_offset = (ent->plt.offset + + plt->output_offset + + plt->output_section->vma); + if (ELF_ST_TYPE (sym->st_info) == STT_GNU_IFUNC) + { + if (htab->opd_abi) + rela.r_info = ELF64_R_INFO (0, R_PPC64_JMP_IREL); + else + rela.r_info = ELF64_R_INFO (0, R_PPC64_IRELATIVE); + } + else + { + if (htab->opd_abi) + rela.r_info = ELF64_R_INFO (0, R_PPC64_JMP_SLOT); + else + rela.r_info = ELF64_R_INFO (0, R_PPC64_RELATIVE); + } + rela.r_addend = val; + loc = relplt->contents + (relplt->reloc_count++ + * sizeof (Elf64_External_Rela)); + bfd_elf64_swap_reloca_out (info->output_bfd, &rela, loc); + } + } + + if (local_syms != NULL + && symtab_hdr->contents != (unsigned char *) local_syms) + { + if (!info->keep_memory) + free (local_syms); + else + symtab_hdr->contents = (unsigned char *) local_syms; + } + } + return TRUE; +} + /* Build all the stubs associated with the current output file. The stubs are kept in a hash table attached to the main linker hash table. This function is called via gldelf64ppc_finish. */ @@ -13144,15 +13717,11 @@ } bfd_put_32 (htab->glink->owner, BCTR, p); p += 4; - while (p - htab->glink->contents < GLINK_CALL_STUB_SIZE) - { - bfd_put_32 (htab->glink->owner, NOP, p); - p += 4; - } + BFD_ASSERT (p == htab->glink->contents + GLINK_PLTRESOLVE_SIZE (htab)); /* Build the .glink lazy link call stubs. */ indx = 0; - while (p < htab->glink->contents + htab->glink->rawsize) + while (p < htab->glink->contents + htab->glink->size) { if (htab->opd_abi) { @@ -13175,12 +13744,14 @@ indx++; p += 4; } - - /* Build .glink global entry stubs. */ - if (htab->glink->size > htab->glink->rawsize) - elf_link_hash_traverse (&htab->elf, build_global_entry_stubs, info); } + /* Build .glink global entry stubs, and PLT relocs for globals. */ + elf_link_hash_traverse (&htab->elf, build_global_entry_stubs_and_plt, info); + + if (!write_plt_relocs_for_local_syms (info)) + return FALSE; + if (htab->brlt != NULL && htab->brlt->size != 0) { htab->brlt->contents = bfd_zalloc (htab->brlt->owner, @@ -13201,10 +13772,25 @@ for (group = htab->group; group != NULL; group = group->next) if (group->needs_save_res) + group->stub_sec->size += htab->sfpr->size; + + if (htab->relbrlt != NULL) + htab->relbrlt->reloc_count = 0; + + if (htab->params->plt_stub_align != 0) + for (group = htab->group; group != NULL; group = group->next) + if ((stub_sec = group->stub_sec) != NULL) + { + int align = abs (htab->params->plt_stub_align); + stub_sec->size = (stub_sec->size + (1 << align) - 1) & -(1 << align); + } + + for (group = htab->group; group != NULL; group = group->next) + if (group->needs_save_res) { stub_sec = group->stub_sec; - memcpy (stub_sec->contents + stub_sec->size, htab->sfpr->contents, - htab->sfpr->size); + memcpy (stub_sec->contents + stub_sec->size - htab->sfpr->size, + htab->sfpr->contents, htab->sfpr->size); if (htab->params->emit_stub_syms) { unsigned int i; @@ -13213,19 +13799,8 @@ if (!sfpr_define (info, &save_res_funcs[i], stub_sec)) return FALSE; } - stub_sec->size += htab->sfpr->size; } - if (htab->relbrlt != NULL) - htab->relbrlt->reloc_count = 0; - - if (htab->params->plt_stub_align != 0) - for (group = htab->group; group != NULL; group = group->next) - if ((stub_sec = group->stub_sec) != NULL) - stub_sec->size = ((stub_sec->size - + (1 << htab->params->plt_stub_align) - 1) - & -(1 << htab->params->plt_stub_align)); - for (group = htab->group; group != NULL; group = group->next) if ((stub_sec = group->stub_sec) != NULL) { @@ -13239,7 +13814,7 @@ if (group != NULL) { htab->stub_error = TRUE; - info->callbacks->einfo (_("%P: stubs don't match calculated size\n")); + _bfd_error_handler (_("stubs don't match calculated size")); } if (htab->stub_error) @@ -13386,7 +13961,7 @@ unsigned char tls_mask, tls_gd, tls_type; unsigned char sym_type; bfd_vma relocation; - bfd_boolean unresolved_reloc; + bfd_boolean unresolved_reloc, save_unresolved_reloc; bfd_boolean warned; enum { DEST_NORMAL, DEST_OPD, DEST_STUB } reloc_dest; unsigned int insn; @@ -13538,7 +14113,7 @@ (local_plt + symtab_hdr->sh_info); tls_mask = lgot_masks[r_symndx]; } - if (tls_mask == 0 + if (((tls_mask & TLS_TLS) == 0 || tls_mask == (TLS_TLS | TLS_MARK)) && (r_type == R_PPC64_TLS || r_type == R_PPC64_TLSGD || r_type == R_PPC64_TLSLD)) @@ -13566,7 +14141,7 @@ || (sym_type == STT_SECTION && (sec->flags & SEC_THREAD_LOCAL) != 0)))) { - if (tls_mask != 0 + if ((tls_mask & TLS_TLS) != 0 && (r_type == R_PPC64_TLS || r_type == R_PPC64_TLSGD || r_type == R_PPC64_TLSLD)) @@ -13576,9 +14151,9 @@ info->callbacks->einfo (!IS_PPC64_TLS_RELOC (r_type) /* xgettext:c-format */ - ? _("%H: %s used with TLS symbol `%T'\n") + ? _("%H: %s used with TLS symbol `%pT'\n") /* xgettext:c-format */ - : _("%H: %s used with non-TLS symbol `%T'\n"), + : _("%H: %s used with non-TLS symbol `%pT'\n"), input_bfd, input_section, rel->r_offset, ppc64_elf_howto_table[r_type]->name, sym_name); @@ -13632,7 +14207,7 @@ if (r_type == R_PPC64_TOC16_DS || r_type == R_PPC64_TOC16_LO_DS) { - if (tls_mask != 0 + if ((tls_mask & TLS_TLS) != 0 && (tls_mask & (TLS_DTPREL | TLS_TPREL)) == 0) goto toctprel; } @@ -13643,12 +14218,14 @@ if (retval == 2) { tls_gd = TLS_TPRELGD; - if (tls_mask != 0 && (tls_mask & TLS_GD) == 0) + if ((tls_mask & TLS_TLS) != 0 + && (tls_mask & TLS_GD) == 0) goto tls_ldgd_opt; } else if (retval == 3) { - if (tls_mask != 0 && (tls_mask & TLS_LD) == 0) + if ((tls_mask & TLS_TLS) != 0 + && (tls_mask & TLS_LD) == 0) goto tls_ldgd_opt; } } @@ -13658,7 +14235,7 @@ case R_PPC64_GOT_TPREL16_HI: case R_PPC64_GOT_TPREL16_HA: - if (tls_mask != 0 + if ((tls_mask & TLS_TLS) != 0 && (tls_mask & TLS_TPREL) == 0) { rel->r_offset -= d_offset; @@ -13670,7 +14247,7 @@ case R_PPC64_GOT_TPREL16_DS: case R_PPC64_GOT_TPREL16_LO_DS: - if (tls_mask != 0 + if ((tls_mask & TLS_TLS) != 0 && (tls_mask & TLS_TPREL) == 0) { toctprel: @@ -13695,7 +14272,7 @@ break; case R_PPC64_TLS: - if (tls_mask != 0 + if ((tls_mask & TLS_TLS) != 0 && (tls_mask & TLS_TPREL) == 0) { insn = bfd_get_32 (input_bfd, contents + rel->r_offset); @@ -13723,13 +14300,13 @@ case R_PPC64_GOT_TLSGD16_HI: case R_PPC64_GOT_TLSGD16_HA: tls_gd = TLS_TPRELGD; - if (tls_mask != 0 && (tls_mask & TLS_GD) == 0) + if ((tls_mask & TLS_TLS) != 0 && (tls_mask & TLS_GD) == 0) goto tls_gdld_hi; break; case R_PPC64_GOT_TLSLD16_HI: case R_PPC64_GOT_TLSLD16_HA: - if (tls_mask != 0 && (tls_mask & TLS_LD) == 0) + if ((tls_mask & TLS_TLS) != 0 && (tls_mask & TLS_LD) == 0) { tls_gdld_hi: if ((tls_mask & tls_gd) != 0) @@ -13748,13 +14325,13 @@ case R_PPC64_GOT_TLSGD16: case R_PPC64_GOT_TLSGD16_LO: tls_gd = TLS_TPRELGD; - if (tls_mask != 0 && (tls_mask & TLS_GD) == 0) + if ((tls_mask & TLS_TLS) != 0 && (tls_mask & TLS_GD) == 0) goto tls_ldgd_opt; break; case R_PPC64_GOT_TLSLD16: case R_PPC64_GOT_TLSLD16_LO: - if (tls_mask != 0 && (tls_mask & TLS_LD) == 0) + if ((tls_mask & TLS_TLS) != 0 && (tls_mask & TLS_LD) == 0) { unsigned int insn1, insn2; bfd_vma offset; @@ -13847,11 +14424,22 @@ break; case R_PPC64_TLSGD: - if (tls_mask != 0 && (tls_mask & TLS_GD) == 0) + if ((tls_mask & TLS_TLS) != 0 && (tls_mask & TLS_GD) == 0 + && rel + 1 < relend) { unsigned int insn2; bfd_vma offset = rel->r_offset; + if (is_plt_seq_reloc (ELF64_R_TYPE (rel[1].r_info))) + { + bfd_put_32 (output_bfd, NOP, contents + offset); + rel[1].r_info = ELF64_R_INFO (STN_UNDEF, R_PPC64_NONE); + break; + } + + if (ELF64_R_TYPE (rel[1].r_info) == R_PPC64_PLTCALL) + bfd_put_32 (output_bfd, NOP, contents + offset + 4); + if ((tls_mask & TLS_TPRELGD) != 0) { /* IE */ @@ -13881,11 +14469,22 @@ break; case R_PPC64_TLSLD: - if (tls_mask != 0 && (tls_mask & TLS_LD) == 0) + if ((tls_mask & TLS_TLS) != 0 && (tls_mask & TLS_LD) == 0 + && rel + 1 < relend) { unsigned int insn2; bfd_vma offset = rel->r_offset; + if (is_plt_seq_reloc (ELF64_R_TYPE (rel[1].r_info))) + { + bfd_put_32 (output_bfd, NOP, contents + offset); + rel[1].r_info = ELF64_R_INFO (STN_UNDEF, R_PPC64_NONE); + break; + } + + if (ELF64_R_TYPE (rel[1].r_info) == R_PPC64_PLTCALL) + bfd_put_32 (output_bfd, NOP, contents + offset + 4); + if (toc_symndx) sec = local_sections[toc_symndx]; for (r_symndx = 0; @@ -14077,6 +14676,7 @@ /* Fall through. */ case R_PPC64_REL24: + case R_PPC64_PLTCALL: /* 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 @@ -14090,6 +14690,12 @@ fdh = ppc_follow_link (h->oh); stub_entry = ppc_get_stub_entry (input_section, sec, fdh, &orig_rel, htab); + if (r_type == R_PPC64_PLTCALL + && stub_entry != NULL + && (stub_entry->stub_type == ppc_stub_plt_call + || stub_entry->stub_type == ppc_stub_plt_call_r2save)) + stub_entry = NULL; + if (stub_entry != NULL && (stub_entry->stub_type == ppc_stub_plt_call || stub_entry->stub_type == ppc_stub_plt_call_r2save @@ -14122,8 +14728,11 @@ nop = bfd_get_32 (input_bfd, contents + rel->r_offset + 4); - if (nop == NOP - || nop == CROR_151515 || nop == CROR_313131) + if (nop == LD_R2_0R1 + STK_TOC (htab)) + can_plt_call = TRUE; + else if (nop == NOP + || nop == CROR_151515 + || nop == CROR_313131) { if (h != NULL && (h == htab->tls_get_addr_fd @@ -14188,13 +14797,13 @@ || stub_entry->stub_type == ppc_stub_plt_call_r2save) info->callbacks->einfo /* xgettext:c-format */ - (_("%H: call to `%T' lacks nop, can't restore toc; " + (_("%H: call to `%pT' lacks nop, can't restore toc; " "recompile with -fPIC\n"), input_bfd, input_section, rel->r_offset, sym_name); else info->callbacks->einfo /* xgettext:c-format */ - (_("%H: call to `%T' lacks nop, can't restore toc; " + (_("%H: call to `%pT' lacks nop, can't restore toc; " "(-mcmodel=small toc adjust stub)\n"), input_bfd, input_section, rel->r_offset, sym_name); @@ -14317,13 +14926,13 @@ /* Set `addend'. */ tls_type = 0; + save_unresolved_reloc = unresolved_reloc; switch (r_type) { default: - info->callbacks->einfo - /* xgettext:c-format */ - (_("%P: %B: unknown relocation type %d for `%T'\n"), - input_bfd, (int) r_type, sym_name); + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: %s unsupported"), + input_bfd, ppc64_elf_howto_table[r_type]->name); bfd_set_error (bfd_error_bad_value); ret = FALSE; @@ -14573,10 +15182,14 @@ case R_PPC64_PLT16_HA: case R_PPC64_PLT16_HI: case R_PPC64_PLT16_LO: + case R_PPC64_PLT16_LO_DS: case R_PPC64_PLT32: case R_PPC64_PLT64: + case R_PPC64_PLTSEQ: + case R_PPC64_PLTCALL: /* Relocation is to the entry for this symbol in the procedure linkage table. */ + unresolved_reloc = TRUE; { struct plt_entry **plt_list = NULL; if (h != NULL) @@ -14585,10 +15198,7 @@ { struct plt_entry **local_plt = (struct plt_entry **) (local_got_ents + symtab_hdr->sh_info); - unsigned char *local_got_tls_masks = (unsigned char *) - (local_plt + symtab_hdr->sh_info); - if ((local_got_tls_masks[r_symndx] & PLT_IFUNC) != 0) - plt_list = local_plt + r_symndx; + plt_list = local_plt + r_symndx; } if (plt_list) { @@ -14599,15 +15209,32 @@ && ent->addend == orig_rel.r_addend) { asection *plt; + bfd_vma got; plt = htab->elf.splt; if (!htab->elf.dynamic_sections_created || h == NULL || h->elf.dynindx == -1) - plt = htab->elf.iplt; + { + if (h != NULL + ? h->elf.type == STT_GNU_IFUNC + : ELF_ST_TYPE (sym->st_info) == STT_GNU_IFUNC) + plt = htab->elf.iplt; + else + plt = htab->pltlocal; + } relocation = (plt->output_section->vma + plt->output_offset + ent->plt.offset); + if (r_type == R_PPC64_PLT16_HA + || r_type ==R_PPC64_PLT16_HI + || r_type ==R_PPC64_PLT16_LO + || r_type ==R_PPC64_PLT16_LO_DS) + { + got = (elf_gp (output_bfd) + + htab->sec_info[input_section->id].toc_off); + relocation -= got; + } addend = 0; unresolved_reloc = FALSE; break; @@ -14872,7 +15499,7 @@ info->callbacks->einfo /* xgettext:c-format */ (_("%H: %s for indirect " - "function `%T' unsupported\n"), + "function `%pT' unsupported\n"), input_bfd, input_section, rel->r_offset, ppc64_elf_howto_table[r_type]->name, sym_name); @@ -14983,7 +15610,7 @@ info->callbacks->einfo /* xgettext:c-format */ - (_("%P: %B: %s is not supported for `%T'\n"), + (_("%P: %pB: %s is not supported for `%pT'\n"), input_bfd, ppc64_elf_howto_table[r_type]->name, sym_name); @@ -14995,7 +15622,6 @@ /* Multi-instruction sequences that access the TOC can be optimized, eg. addis ra,r2,0; addi rb,ra,x; to nop; addi rb,r2,x; */ - howto = ppc64_elf_howto_table[(int) r_type]; switch (r_type) { default: @@ -15016,6 +15642,35 @@ insn. */ break; + case R_PPC64_PLTCALL: + if (unresolved_reloc) + { + /* No plt entry. Make this into a direct call. */ + bfd_byte *p = contents + rel->r_offset; + insn = bfd_get_32 (input_bfd, p); + insn &= 1; + bfd_put_32 (input_bfd, B_DOT | insn, p); + bfd_put_32 (input_bfd, NOP, p + 4); + unresolved_reloc = save_unresolved_reloc; + r_type = R_PPC64_REL24; + } + break; + + case R_PPC64_PLTSEQ: + if (unresolved_reloc) + { + unresolved_reloc = FALSE; + goto nop_it; + } + break; + + case R_PPC64_PLT16_HA: + if (unresolved_reloc) + { + unresolved_reloc = FALSE; + goto nop_it; + } + /* Fall through. */ case R_PPC64_GOT_TLSLD16_HA: case R_PPC64_GOT_TLSGD16_HA: case R_PPC64_GOT_TPREL16_HA: @@ -15025,11 +15680,22 @@ if (htab->do_toc_opt && relocation + addend + 0x8000 < 0x10000 && !ppc64_elf_tdata (input_bfd)->unexpected_toc_insn) { - bfd_byte *p = contents + (rel->r_offset & ~3); + bfd_byte *p; + nop_it: + p = contents + (rel->r_offset & ~3); bfd_put_32 (input_bfd, NOP, p); + goto copy_reloc; } break; + case R_PPC64_PLT16_LO: + case R_PPC64_PLT16_LO_DS: + if (unresolved_reloc) + { + unresolved_reloc = FALSE; + goto nop_it; + } + /* Fall through. */ case R_PPC64_GOT_TLSLD16_LO: case R_PPC64_GOT_TLSGD16_LO: case R_PPC64_GOT_TPREL16_LO_DS: @@ -15068,9 +15734,13 @@ /* xgettext:c-format */ info->callbacks->minfo (_("%H: warning: %s unexpected insn %#x.\n"), - input_bfd, input_section, rel->r_offset, howto->name, insn); + input_bfd, input_section, rel->r_offset, + ppc64_elf_howto_table[r_type]->name, insn); else - bfd_put_32 (input_bfd, NOP, p); + { + bfd_put_32 (input_bfd, NOP, p); + goto copy_reloc; + } } break; @@ -15168,7 +15838,7 @@ /* xgettext:c-format */ (_("%H: error: %s not a multiple of %u\n"), input_bfd, input_section, rel->r_offset, - howto->name, + ppc64_elf_howto_table[r_type]->name, mask + 1); bfd_set_error (bfd_error_bad_value); ret = FALSE; @@ -15180,6 +15850,7 @@ /* Dynamic relocs are not propagated for SEC_DEBUGGING sections because such sections are not SEC_ALLOC and thus ld.so will not process them. */ + howto = ppc64_elf_howto_table[(int) r_type]; if (unresolved_reloc && !((input_section->flags & SEC_DEBUGGING) != 0 && h->elf.def_dynamic) @@ -15188,7 +15859,7 @@ { info->callbacks->einfo /* xgettext:c-format */ - (_("%H: unresolvable %s against `%T'\n"), + (_("%H: unresolvable %s against `%pT'\n"), input_bfd, input_section, rel->r_offset, howto->name, h->elf.root.root.string); @@ -15285,7 +15956,7 @@ { info->callbacks->einfo /* xgettext:c-format */ - (_("%H: %s against `%T': error %d\n"), + (_("%H: %s against `%pT': error %d\n"), input_bfd, input_section, rel->r_offset, reloc_name, sym_name, (int) r); ret = FALSE; @@ -15380,85 +16051,41 @@ { struct ppc_link_hash_table *htab; struct plt_entry *ent; - Elf_Internal_Rela rela; - bfd_byte *loc; htab = ppc_hash_table (info); if (htab == NULL) return FALSE; - for (ent = h->plt.plist; ent != NULL; ent = ent->next) - if (ent->plt.offset != (bfd_vma) -1) - { - /* This symbol has an entry in the procedure linkage - table. Set it up. */ - if (!htab->elf.dynamic_sections_created - || h->dynindx == -1) - { - BFD_ASSERT (h->type == STT_GNU_IFUNC - && h->def_regular - && (h->root.type == bfd_link_hash_defined - || h->root.type == bfd_link_hash_defweak)); - rela.r_offset = (htab->elf.iplt->output_section->vma - + htab->elf.iplt->output_offset - + ent->plt.offset); - if (htab->opd_abi) - rela.r_info = ELF64_R_INFO (0, R_PPC64_JMP_IREL); - else - rela.r_info = ELF64_R_INFO (0, R_PPC64_IRELATIVE); - rela.r_addend = (h->root.u.def.value - + h->root.u.def.section->output_offset - + h->root.u.def.section->output_section->vma - + ent->addend); - loc = (htab->elf.irelplt->contents - + (htab->elf.irelplt->reloc_count++ - * sizeof (Elf64_External_Rela))); - htab->local_ifunc_resolver = 1; - } - else - { - rela.r_offset = (htab->elf.splt->output_section->vma - + htab->elf.splt->output_offset - + ent->plt.offset); - rela.r_info = ELF64_R_INFO (h->dynindx, R_PPC64_JMP_SLOT); - rela.r_addend = ent->addend; - loc = (htab->elf.srelplt->contents - + ((ent->plt.offset - PLT_INITIAL_ENTRY_SIZE (htab)) - / PLT_ENTRY_SIZE (htab) * sizeof (Elf64_External_Rela))); - if (h->type == STT_GNU_IFUNC && is_static_defined (h)) - htab->maybe_local_ifunc_resolver = 1; - } - bfd_elf64_swap_reloca_out (output_bfd, &rela, loc); - - if (!htab->opd_abi) - { - if (!h->def_regular) - { - /* Mark the symbol as undefined, rather than as - defined in glink. Leave the value if there were - any relocations where pointer equality matters - (this is a clue for the dynamic linker, to make - function pointer comparisons work between an - application and shared library), otherwise set it - to zero. */ - sym->st_shndx = SHN_UNDEF; - if (!h->pointer_equality_needed) - sym->st_value = 0; - else if (!h->ref_regular_nonweak) - { - /* This breaks function pointer comparisons, but - that is better than breaking tests for a NULL - function pointer. */ - sym->st_value = 0; - } - } - } - } + if (!htab->opd_abi && !h->def_regular) + for (ent = h->plt.plist; ent != NULL; ent = ent->next) + if (ent->plt.offset != (bfd_vma) -1) + { + /* Mark the symbol as undefined, rather than as + defined in glink. Leave the value if there were + any relocations where pointer equality matters + (this is a clue for the dynamic linker, to make + function pointer comparisons work between an + application and shared library), otherwise set it + to zero. */ + sym->st_shndx = SHN_UNDEF; + if (!h->pointer_equality_needed) + sym->st_value = 0; + else if (!h->ref_regular_nonweak) + { + /* This breaks function pointer comparisons, but + that is better than breaking tests for a NULL + function pointer. */ + sym->st_value = 0; + } + break; + } if (h->needs_copy) { /* This symbol needs a copy reloc. Set it up. */ + Elf_Internal_Rela rela; asection *srel; + bfd_byte *loc; if (h->dynindx == -1 || (h->root.type != bfd_link_hash_defined @@ -15557,7 +16184,7 @@ 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 - 8 * 4; + dyn.d_un.d_ptr += GLINK_PLTRESOLVE_SIZE (htab) - 8 * 4; break; case DT_PPC64_OPD: @@ -15674,8 +16301,8 @@ + (p + 8 - htab->glink_eh_frame->contents)); if (val + 0x80000000 > 0xffffffff) { - info->callbacks->einfo - (_("%P: %s offset too large for .eh_frame sdata4 encoding"), + _bfd_error_handler + (_("%s offset too large for .eh_frame sdata4 encoding"), group->stub_sec->name); return FALSE; } @@ -15693,8 +16320,8 @@ + (p + 8 - htab->glink_eh_frame->contents)); if (val + 0x80000000 > 0xffffffff) { - info->callbacks->einfo - (_("%P: %s offset too large for .eh_frame sdata4 encoding"), + _bfd_error_handler + (_("%s offset too large for .eh_frame sdata4 encoding"), htab->glink->name); return FALSE; } diff -Nru gdb-8.1/bfd/elf64-ppc.h gdb-8.2/bfd/elf64-ppc.h --- gdb-8.1/bfd/elf64-ppc.h 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/bfd/elf64-ppc.h 2018-09-05 07:27:13.000000000 +0000 @@ -69,6 +69,8 @@ (struct bfd_link_info *, struct ppc64_elf_params *); bfd_boolean ppc64_elf_edit_opd (struct bfd_link_info *); +bfd_boolean ppc64_elf_inline_plt + (struct bfd_link_info *); asection *ppc64_elf_tls_setup (struct bfd_link_info *); bfd_boolean ppc64_elf_tls_optimize diff -Nru gdb-8.1/bfd/elf64-s390.c gdb-8.2/bfd/elf64-s390.c --- gdb-8.1/bfd/elf64-s390.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf64-s390.c 2018-09-05 07:44:28.000000000 +0000 @@ -189,7 +189,7 @@ HOWTO (R_390_GNU_VTENTRY, 0,4,0,FALSE,0,complain_overflow_dont, _bfd_elf_rel_vtable_reloc_fn,"R_390_GNU_VTENTRY", FALSE,0,0, FALSE); static reloc_howto_type * -elf_s390_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, +elf_s390_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code) { switch (code) @@ -323,7 +323,11 @@ default: break; } - return 0; + + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), abfd, (int) code); + bfd_set_error (bfd_error_bad_value); + return NULL; } static reloc_howto_type * @@ -350,12 +354,13 @@ /* We need to use ELF64_R_TYPE so we have our own copy of this function, and elf64-s390.c has its own copy. */ -static void +static bfd_boolean elf_s390_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr, Elf_Internal_Rela *dst) { unsigned int r_type = ELF64_R_TYPE(dst->r_info); + switch (r_type) { case R_390_GNU_VTINHERIT: @@ -370,12 +375,14 @@ if (r_type >= sizeof (elf_howto_table) / sizeof (elf_howto_table[0])) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid relocation type %d"), - abfd, (int) r_type); - r_type = R_390_NONE; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; } cache_ptr->howto = &elf_howto_table[r_type]; } + return TRUE; } /* A relocation function which doesn't do anything. */ @@ -872,7 +879,7 @@ if (r_symndx >= NUM_SHDR_ENTRIES (symtab_hdr)) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: bad symbol index: %d"), + _bfd_error_handler (_("%pB: bad symbol index: %d"), abfd, r_symndx); return FALSE; } @@ -1110,7 +1117,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: `%s' accessed both as normal and thread local symbol"), + (_("%pB: `%s' accessed both as normal and thread local symbol"), abfd, h->root.root.string); return FALSE; } @@ -1782,7 +1789,7 @@ info->flags |= DF_TEXTREL; info->callbacks->minfo - (_("%B: dynamic relocation against `%T' in read-only section `%A'\n"), + (_("%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"), sec->owner, h->root.root.string, sec); /* Not an error, just cut short the traversal. */ @@ -2072,10 +2079,10 @@ howto = elf_howto_table + ELF64_R_TYPE (rel->r_info); _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): invalid instruction for TLS relocation %s"), + (_("%pB(%pA+%#" PRIx64 "): invalid instruction for TLS relocation %s"), input_bfd, input_section, - rel->r_offset, + (uint64_t) rel->r_offset, howto->name); bfd_set_error (bfd_error_bad_value); } @@ -2530,7 +2537,7 @@ && bfd_link_pie (info) && !h->def_regular) { - _bfd_error_handler (_("%B: `%s' non-PLT reloc for symbol defined " + _bfd_error_handler (_("%pB: `%s' non-PLT reloc for symbol defined " "in shared library and accessed " "from executable " "(rebuild file with -fPIC ?)"), @@ -2558,6 +2565,9 @@ case R_390_32: case R_390_64: + if ((input_section->flags & SEC_ALLOC) == 0) + break; + if (h != NULL && s390_is_ifunc_symbol_p (h) && h->def_regular) @@ -2620,9 +2630,6 @@ } } - if ((input_section->flags & SEC_ALLOC) == 0) - break; - if ((bfd_link_pic (info) && (h == NULL || (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT @@ -3115,10 +3122,11 @@ rel->r_offset) != (bfd_vma) -1) _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"), + (_("%pB(%pA+%#" PRIx64 "): " + "unresolvable %s relocation against symbol `%s'"), input_bfd, input_section, - rel->r_offset, + (uint64_t) rel->r_offset, howto->name, h->root.root.string); @@ -3172,9 +3180,9 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): reloc against `%s': error %d"), + (_("%pB(%pA+%#" PRIx64 "): reloc against `%s': error %d"), input_bfd, input_section, - rel->r_offset, name, (int) r); + (uint64_t) rel->r_offset, name, (int) r); return FALSE; } } @@ -3743,7 +3751,7 @@ case NT_PRPSINFO: { - char data[136] = { 0 }; + char data[136] ATTRIBUTE_NONSTRING = { 0 }; const char *fname, *psargs; va_start (ap, note_type); @@ -3752,7 +3760,16 @@ va_end (ap); strncpy (data + 40, fname, 16); + DIAGNOSTIC_PUSH; + /* GCC 8.1 warns about 80 equals destination size with + -Wstringop-truncation: + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85643 + */ +#if GCC_VERSION == 8001 + DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION; +#endif strncpy (data + 56, psargs, 80); + DIAGNOSTIC_POP; return elfcore_write_note (abfd, buf, bufsiz, "CORE", note_type, &data, sizeof (data)); } @@ -3954,7 +3971,6 @@ #define elf_backend_grok_psinfo elf_s390_grok_psinfo #define elf_backend_write_core_note elf_s390_write_core_note #define elf_backend_plt_sym_val elf_s390_plt_sym_val -#define elf_backend_add_symbol_hook elf_s390_add_symbol_hook #define elf_backend_sort_relocs_p elf_s390_elf_sort_relocs_p #define elf_backend_additional_program_headers elf_s390_additional_program_headers #define elf_backend_modify_segment_map elf_s390_modify_segment_map diff -Nru gdb-8.1/bfd/elf64-sh64.c gdb-8.2/bfd/elf64-sh64.c --- gdb-8.1/bfd/elf64-sh64.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf64-sh64.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,3977 +0,0 @@ -/* SuperH SH64-specific support for 64-bit ELF - Copyright (C) 2000-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define SH64_ELF64 - -#include "sysdep.h" -#include "bfd.h" -#include "bfdlink.h" -#include "libbfd.h" -#include "elf-bfd.h" -#include "elf/sh.h" - -/* Add a suffix for datalabel indirection symbols. It must not match any - other symbols; user symbols with or without version or other - decoration. It must only be used internally and not emitted by any - means. */ -#define DATALABEL_SUFFIX " DL" - -#define GOT_BIAS (-((long)-32768)) - -#define PLT_ENTRY_SIZE 64 - -/* Return size of a PLT entry. */ -#define elf_sh64_sizeof_plt(info) PLT_ENTRY_SIZE - -/* Return offset of the PLT0 address in an absolute PLT entry. */ -#define elf_sh64_plt_plt0_offset(info) 32 - -/* Return offset of the linker in PLT0 entry. */ -#define elf_sh64_plt0_gotplt_offset(info) 0 - -/* Return offset of the trampoline in PLT entry */ -#define elf_sh64_plt_temp_offset(info) 33 /* Add one because it's SHmedia. */ - -/* Return offset of the symbol in PLT entry. */ -#define elf_sh64_plt_symbol_offset(info) 0 - -/* Return offset of the relocation in PLT entry. */ -#define elf_sh64_plt_reloc_offset(info) (bfd_link_pic (info) ? 52 : 44) - -#define ELF_DYNAMIC_INTERPRETER "/usr/lib/libc.so.1" - -/* The sh linker needs to keep track of the number of relocs that it - decides to copy in check_relocs for each symbol. This is so that - it can discard PC relative relocs if it doesn't need them when - linking with -Bsymbolic. We store the information in a field - extending the regular ELF linker hash table. */ - -/* This structure keeps track of the number of PC relative relocs we - have copied for a given symbol. */ - -struct elf_sh64_pcrel_relocs_copied -{ - /* Next section. */ - struct elf_sh64_pcrel_relocs_copied *next; - /* A section in dynobj. */ - asection *section; - /* Number of relocs copied in this section. */ - bfd_size_type count; -}; - -/* sh ELF linker hash entry. */ - -struct elf_sh64_link_hash_entry -{ - struct elf_link_hash_entry root; - - bfd_vma datalabel_got_offset; - - /* Number of PC relative relocs copied for this symbol. */ - struct elf_sh64_pcrel_relocs_copied *pcrel_relocs_copied; -}; - -/* Traverse an sh ELF linker hash table. */ - -#define sh64_elf64_link_hash_traverse(table, func, info) \ - (elf_link_hash_traverse \ - ((table), \ - (bfd_boolean (*) (struct elf_link_hash_entry *, void *)) (func), \ - (info))) - -static bfd_reloc_status_type sh_elf64_ignore_reloc - (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); -static bfd_reloc_status_type sh_elf64_reloc - (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); - -static reloc_howto_type sh_elf64_howto_table[] = { - /* No relocation. */ - HOWTO (R_SH_NONE, /* type */ - 0, /* rightshift */ - 3, /* size (0 = byte, 1 = short, 2 = long) */ - 0, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - sh_elf64_ignore_reloc, /* special_function */ - "R_SH_NONE", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* 32 bit absolute relocation. Setting partial_inplace to TRUE and - src_mask to a non-zero value is similar to the COFF toolchain. */ - HOWTO (R_SH_DIR32, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 32, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - sh_elf64_reloc, /* special_function */ - "R_SH_DIR32", /* name */ - TRUE, /* partial_inplace */ - 0xffffffff, /* src_mask */ - 0xffffffff, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* 32 bit PC relative relocation. */ - HOWTO (R_SH_REL32, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 32, /* bitsize */ - TRUE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - sh_elf64_ignore_reloc, /* special_function */ - "R_SH_REL32", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xffffffff, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* For 32-bit sh, this is R_SH_DIR8WPN. */ - EMPTY_HOWTO (3), - - /* For 32-bit sh, this is R_SH_IND12W. */ - EMPTY_HOWTO (4), - - /* For 32-bit sh, this is R_SH_DIR8WPL. */ - EMPTY_HOWTO (5), - - /* For 32-bit sh, this is R_SH_DIR8WPZ. */ - EMPTY_HOWTO (6), - - /* For 32-bit sh, this is R_SH_DIR8BP. */ - EMPTY_HOWTO (7), - - /* For 32-bit sh, this is R_SH_DIR8W. */ - EMPTY_HOWTO (8), - - /* For 32-bit sh, this is R_SH_DIR8L. */ - EMPTY_HOWTO (9), - - EMPTY_HOWTO (10), - EMPTY_HOWTO (11), - EMPTY_HOWTO (12), - EMPTY_HOWTO (13), - EMPTY_HOWTO (14), - EMPTY_HOWTO (15), - EMPTY_HOWTO (16), - EMPTY_HOWTO (17), - EMPTY_HOWTO (18), - EMPTY_HOWTO (19), - EMPTY_HOWTO (20), - EMPTY_HOWTO (21), - EMPTY_HOWTO (22), - EMPTY_HOWTO (23), - EMPTY_HOWTO (24), - - /* The remaining relocs are a GNU extension used for relaxing. The - final pass of the linker never needs to do anything with any of - these relocs. Any required operations are handled by the - relaxation code. */ - - /* A 16 bit switch table entry. This is generated for an expression - such as ``.word L1 - L2''. The offset holds the difference - between the reloc address and L2. */ - HOWTO (R_SH_SWITCH16, /* type */ - 0, /* rightshift */ - 1, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_unsigned, /* complain_on_overflow */ - sh_elf64_ignore_reloc, /* special_function */ - "R_SH_SWITCH16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* A 32 bit switch table entry. This is generated for an expression - such as ``.long L1 - L2''. The offset holds the difference - between the reloc address and L2. */ - HOWTO (R_SH_SWITCH32, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 32, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_unsigned, /* complain_on_overflow */ - sh_elf64_ignore_reloc, /* special_function */ - "R_SH_SWITCH32", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* For 32-bit sh, this is R_SH_USES. */ - EMPTY_HOWTO (27), - - /* For 32-bit sh, this is R_SH_COUNT. */ - EMPTY_HOWTO (28), - - /* For 32-bit sh, this is R_SH_ALIGN. FIXME: For linker relaxation, - this might be emitted. When linker relaxation is implemented, we - might want to use it. */ - EMPTY_HOWTO (29), - - /* For 32-bit sh, this is R_SH_CODE. FIXME: For linker relaxation, - this might be emitted. When linker relaxation is implemented, we - might want to use it. */ - EMPTY_HOWTO (30), - - /* For 32-bit sh, this is R_SH_DATA. FIXME: For linker relaxation, - this might be emitted. When linker relaxation is implemented, we - might want to use it. */ - EMPTY_HOWTO (31), - - /* For 32-bit sh, this is R_SH_LABEL. FIXME: For linker relaxation, - this might be emitted. When linker relaxation is implemented, we - might want to use it. */ - EMPTY_HOWTO (32), - - /* An 8 bit switch table entry. This is generated for an expression - such as ``.word L1 - L2''. The offset holds the difference - between the reloc address and L2. */ - HOWTO (R_SH_SWITCH8, /* type */ - 0, /* rightshift */ - 0, /* size (0 = byte, 1 = short, 2 = long) */ - 8, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_unsigned, /* complain_on_overflow */ - sh_elf64_ignore_reloc, /* special_function */ - "R_SH_SWITCH8", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* GNU extension to record C++ vtable hierarchy */ - HOWTO (R_SH_GNU_VTINHERIT, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 0, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - NULL, /* special_function */ - "R_SH_GNU_VTINHERIT", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* GNU extension to record C++ vtable member usage */ - HOWTO (R_SH_GNU_VTENTRY, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 0, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - _bfd_elf_rel_vtable_reloc_fn, /* special_function */ - "R_SH_GNU_VTENTRY", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* For 32-bit sh, this is R_SH_LOOP_START. */ - EMPTY_HOWTO (36), - - /* For 32-bit sh, this is R_SH_LOOP_END. */ - EMPTY_HOWTO (37), - - EMPTY_HOWTO (38), - EMPTY_HOWTO (39), - EMPTY_HOWTO (40), - EMPTY_HOWTO (41), - EMPTY_HOWTO (42), - EMPTY_HOWTO (43), - EMPTY_HOWTO (44), - - /* Used in SHLLI.L and SHLRI.L. */ - HOWTO (R_SH_DIR5U, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 5, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_unsigned, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_DIR5U", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xfc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in SHARI, SHLLI et al. */ - HOWTO (R_SH_DIR6U, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 6, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_unsigned, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_DIR6U", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xfc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in BxxI, LDHI.L et al. */ - HOWTO (R_SH_DIR6S, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 6, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_DIR6S", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xfc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in ADDI, ANDI et al. */ - HOWTO (R_SH_DIR10S, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 10, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_DIR10S", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in LD.UW, ST.W et al. */ - HOWTO (R_SH_DIR10SW, /* type */ - 1, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 11, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_DIR10SW", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in LD.L, FLD.S et al. */ - HOWTO (R_SH_DIR10SL, /* type */ - 2, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 12, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_DIR10SL", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in FLD.D, FST.P et al. */ - HOWTO (R_SH_DIR10SQ, /* type */ - 3, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 13, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_DIR10SQ", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - EMPTY_HOWTO (52), - EMPTY_HOWTO (53), - EMPTY_HOWTO (54), - EMPTY_HOWTO (55), - EMPTY_HOWTO (56), - EMPTY_HOWTO (57), - EMPTY_HOWTO (58), - EMPTY_HOWTO (59), - EMPTY_HOWTO (60), - EMPTY_HOWTO (61), - EMPTY_HOWTO (62), - EMPTY_HOWTO (63), - EMPTY_HOWTO (64), - EMPTY_HOWTO (65), - EMPTY_HOWTO (66), - EMPTY_HOWTO (67), - EMPTY_HOWTO (68), - EMPTY_HOWTO (69), - EMPTY_HOWTO (70), - EMPTY_HOWTO (71), - EMPTY_HOWTO (72), - EMPTY_HOWTO (73), - EMPTY_HOWTO (74), - EMPTY_HOWTO (75), - EMPTY_HOWTO (76), - EMPTY_HOWTO (77), - EMPTY_HOWTO (78), - EMPTY_HOWTO (79), - EMPTY_HOWTO (80), - EMPTY_HOWTO (81), - EMPTY_HOWTO (82), - EMPTY_HOWTO (83), - EMPTY_HOWTO (84), - EMPTY_HOWTO (85), - EMPTY_HOWTO (86), - EMPTY_HOWTO (87), - EMPTY_HOWTO (88), - EMPTY_HOWTO (89), - EMPTY_HOWTO (90), - EMPTY_HOWTO (91), - EMPTY_HOWTO (92), - EMPTY_HOWTO (93), - EMPTY_HOWTO (94), - EMPTY_HOWTO (95), - EMPTY_HOWTO (96), - EMPTY_HOWTO (97), - EMPTY_HOWTO (98), - EMPTY_HOWTO (99), - EMPTY_HOWTO (100), - EMPTY_HOWTO (101), - EMPTY_HOWTO (102), - EMPTY_HOWTO (103), - EMPTY_HOWTO (104), - EMPTY_HOWTO (105), - EMPTY_HOWTO (106), - EMPTY_HOWTO (107), - EMPTY_HOWTO (108), - EMPTY_HOWTO (109), - EMPTY_HOWTO (110), - EMPTY_HOWTO (111), - EMPTY_HOWTO (112), - EMPTY_HOWTO (113), - EMPTY_HOWTO (114), - EMPTY_HOWTO (115), - EMPTY_HOWTO (116), - EMPTY_HOWTO (117), - EMPTY_HOWTO (118), - EMPTY_HOWTO (119), - EMPTY_HOWTO (120), - EMPTY_HOWTO (121), - EMPTY_HOWTO (122), - EMPTY_HOWTO (123), - EMPTY_HOWTO (124), - EMPTY_HOWTO (125), - EMPTY_HOWTO (126), - EMPTY_HOWTO (127), - EMPTY_HOWTO (128), - EMPTY_HOWTO (129), - EMPTY_HOWTO (130), - EMPTY_HOWTO (131), - EMPTY_HOWTO (132), - EMPTY_HOWTO (133), - EMPTY_HOWTO (134), - EMPTY_HOWTO (135), - EMPTY_HOWTO (136), - EMPTY_HOWTO (137), - EMPTY_HOWTO (138), - EMPTY_HOWTO (139), - EMPTY_HOWTO (140), - EMPTY_HOWTO (141), - EMPTY_HOWTO (142), - EMPTY_HOWTO (143), - EMPTY_HOWTO (144), - EMPTY_HOWTO (145), - EMPTY_HOWTO (146), - EMPTY_HOWTO (147), - EMPTY_HOWTO (148), - EMPTY_HOWTO (149), - EMPTY_HOWTO (150), - EMPTY_HOWTO (151), - EMPTY_HOWTO (152), - EMPTY_HOWTO (153), - EMPTY_HOWTO (154), - EMPTY_HOWTO (155), - EMPTY_HOWTO (156), - EMPTY_HOWTO (157), - EMPTY_HOWTO (158), - EMPTY_HOWTO (159), - - /* Relocs for dynamic linking for 32-bit SH would follow. We don't have - any dynamic linking support for 64-bit SH at present. */ - - EMPTY_HOWTO (160), - EMPTY_HOWTO (161), - EMPTY_HOWTO (162), - EMPTY_HOWTO (163), - EMPTY_HOWTO (164), - EMPTY_HOWTO (165), - EMPTY_HOWTO (166), - EMPTY_HOWTO (167), - EMPTY_HOWTO (168), - - /* Back to SH5 relocations. */ - /* Used in MOVI and SHORI (x & 65536). */ - HOWTO (R_SH_GOT_LOW16, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOT_LOW16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 16) & 65536). */ - HOWTO (R_SH_GOT_MEDLOW16, /* type */ - 16, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOT_MEDLOW16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 32) & 65536). */ - HOWTO (R_SH_GOT_MEDHI16, /* type */ - 32, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOT_MEDHI16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 48) & 65536). */ - HOWTO (R_SH_GOT_HI16, /* type */ - 48, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOT_HI16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI (x & 65536). */ - HOWTO (R_SH_GOTPLT_LOW16, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTPLT_LOW16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 16) & 65536). */ - HOWTO (R_SH_GOTPLT_MEDLOW16, /* type */ - 16, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTPLT_MEDLOW16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 32) & 65536). */ - HOWTO (R_SH_GOTPLT_MEDHI16, /* type */ - 32, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTPLT_MEDHI16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 48) & 65536). */ - HOWTO (R_SH_GOTPLT_HI16, /* type */ - 48, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTPLT_HI16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI (x & 65536). */ - HOWTO (R_SH_PLT_LOW16, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_PLT_LOW16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 16) & 65536). */ - HOWTO (R_SH_PLT_MEDLOW16, /* type */ - 16, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_PLT_MEDLOW16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 32) & 65536). */ - HOWTO (R_SH_PLT_MEDHI16, /* type */ - 32, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_PLT_MEDHI16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 48) & 65536). */ - HOWTO (R_SH_PLT_HI16, /* type */ - 48, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_PLT_HI16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* Used in MOVI and SHORI (x & 65536). */ - HOWTO (R_SH_GOTOFF_LOW16, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTOFF_LOW16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 16) & 65536). */ - HOWTO (R_SH_GOTOFF_MEDLOW16, /* type */ - 16, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTOFF_MEDLOW16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 32) & 65536). */ - HOWTO (R_SH_GOTOFF_MEDHI16, /* type */ - 32, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTOFF_MEDHI16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 48) & 65536). */ - HOWTO (R_SH_GOTOFF_HI16, /* type */ - 48, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTOFF_HI16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI (x & 65536). */ - HOWTO (R_SH_GOTPC_LOW16, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTPC_LOW16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 16) & 65536). */ - HOWTO (R_SH_GOTPC_MEDLOW16, /* type */ - 16, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTPC_MEDLOW16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 32) & 65536). */ - HOWTO (R_SH_GOTPC_MEDHI16, /* type */ - 32, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTPC_MEDHI16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 48) & 65536). */ - HOWTO (R_SH_GOTPC_HI16, /* type */ - 48, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTPC_HI16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* Used in LD.L, FLD.S et al. */ - HOWTO (R_SH_GOT10BY4, /* type */ - 2, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 12, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOT10BY4", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in LD.L, FLD.S et al. */ - HOWTO (R_SH_GOTPLT10BY4, /* type */ - 2, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 12, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTPLT10BY4", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in FLD.D, FST.P et al. */ - HOWTO (R_SH_GOT10BY8, /* type */ - 3, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 13, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOT10BY8", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in FLD.D, FST.P et al. */ - HOWTO (R_SH_GOTPLT10BY8, /* type */ - 3, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 13, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GOTPLT10BY8", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0xffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_SH_COPY64, /* type */ - 0, /* rightshift */ - 4, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_COPY64", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - ((bfd_vma) 0) - 1, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_SH_GLOB_DAT64, /* type */ - 0, /* rightshift */ - 4, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_GLOB_DAT64", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - ((bfd_vma) 0) - 1, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_SH_JMP_SLOT64, /* type */ - 0, /* rightshift */ - 4, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_JMP_SLOT64", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - ((bfd_vma) 0) - 1, /* dst_mask */ - FALSE), /* pcrel_offset */ - - HOWTO (R_SH_RELATIVE64, /* type */ - 0, /* rightshift */ - 4, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_RELATIVE64", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - ((bfd_vma) 0) - 1, /* dst_mask */ - FALSE), /* pcrel_offset */ - - EMPTY_HOWTO (197), - EMPTY_HOWTO (198), - EMPTY_HOWTO (199), - EMPTY_HOWTO (200), - EMPTY_HOWTO (201), - EMPTY_HOWTO (202), - EMPTY_HOWTO (203), - EMPTY_HOWTO (204), - EMPTY_HOWTO (205), - EMPTY_HOWTO (206), - EMPTY_HOWTO (207), - EMPTY_HOWTO (208), - EMPTY_HOWTO (209), - EMPTY_HOWTO (210), - EMPTY_HOWTO (211), - EMPTY_HOWTO (212), - EMPTY_HOWTO (213), - EMPTY_HOWTO (214), - EMPTY_HOWTO (215), - EMPTY_HOWTO (216), - EMPTY_HOWTO (217), - EMPTY_HOWTO (218), - EMPTY_HOWTO (219), - EMPTY_HOWTO (220), - EMPTY_HOWTO (221), - EMPTY_HOWTO (222), - EMPTY_HOWTO (223), - EMPTY_HOWTO (224), - EMPTY_HOWTO (225), - EMPTY_HOWTO (226), - EMPTY_HOWTO (227), - EMPTY_HOWTO (228), - EMPTY_HOWTO (229), - EMPTY_HOWTO (230), - EMPTY_HOWTO (231), - EMPTY_HOWTO (232), - EMPTY_HOWTO (233), - EMPTY_HOWTO (234), - EMPTY_HOWTO (235), - EMPTY_HOWTO (236), - EMPTY_HOWTO (237), - EMPTY_HOWTO (238), - EMPTY_HOWTO (239), - EMPTY_HOWTO (240), - EMPTY_HOWTO (241), - - /* Relocations for SHmedia code. None of these are partial_inplace or - use the field being relocated. */ - - /* The assembler will generate this reloc before a block of SHmedia - instructions. A section should be processed as assuming it contains - data, unless this reloc is seen. Note that a block of SHcompact - instructions are instead preceded by R_SH_CODE. - This is currently not implemented, but should be used for SHmedia - linker relaxation. */ - HOWTO (R_SH_SHMEDIA_CODE, /* type */ - 0, /* rightshift */ - 1, /* size (0 = byte, 1 = short, 2 = long) */ - 0, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_unsigned, /* complain_on_overflow */ - sh_elf64_ignore_reloc, /* special_function */ - "R_SH_SHMEDIA_CODE", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* The assembler will generate this reloc at a PTA or PTB instruction, - and the linker checks the right type of target, or changes a PTA to a - PTB, if the original insn was PT. */ - HOWTO (R_SH_PT_16, /* type */ - 2, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 18, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_PT_16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* Used in unexpanded MOVI. */ - HOWTO (R_SH_IMMS16, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_IMMS16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in SHORI. */ - HOWTO (R_SH_IMMU16, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 16, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_unsigned, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_IMMU16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI (x & 65536). */ - HOWTO (R_SH_IMM_LOW16, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_IMM_LOW16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x - $) & 65536). */ - HOWTO (R_SH_IMM_LOW16_PCREL, /* type */ - 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_IMM_LOW16_PCREL", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 16) & 65536). */ - HOWTO (R_SH_IMM_MEDLOW16, /* type */ - 16, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_IMM_MEDLOW16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI (((x - $) >> 16) & 65536). */ - HOWTO (R_SH_IMM_MEDLOW16_PCREL, /* type */ - 16, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_IMM_MEDLOW16_PCREL", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 32) & 65536). */ - HOWTO (R_SH_IMM_MEDHI16, /* type */ - 32, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_IMM_MEDHI16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI (((x - $) >> 32) & 65536). */ - HOWTO (R_SH_IMM_MEDHI16_PCREL, /* type */ - 32, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_IMM_MEDHI16_PCREL", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* Used in MOVI and SHORI ((x >> 48) & 65536). */ - HOWTO (R_SH_IMM_HI16, /* type */ - 48, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_IMM_HI16", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* Used in MOVI and SHORI (((x - $) >> 48) & 65536). */ - HOWTO (R_SH_IMM_HI16_PCREL, /* type */ - 48, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_IMM_HI16_PCREL", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - 0x3fffc00, /* dst_mask */ - TRUE), /* pcrel_offset */ - - /* For the .uaquad pseudo. */ - HOWTO (R_SH_64, /* type */ - 0, /* rightshift */ - 4, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - FALSE, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_64", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - ((bfd_vma) 0) - 1, /* dst_mask */ - FALSE), /* pcrel_offset */ - - /* For the .uaquad pseudo, (x - $). */ - HOWTO (R_SH_64_PCREL, /* type */ - 48, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ - 64, /* bitsize */ - TRUE, /* pc_relative */ - 10, /* bitpos */ - complain_overflow_dont, /* complain_on_overflow */ - bfd_elf_generic_reloc, /* special_function */ - "R_SH_64_PCREL", /* name */ - FALSE, /* partial_inplace */ - 0, /* src_mask */ - ((bfd_vma) 0) - 1, /* dst_mask */ - TRUE), /* pcrel_offset */ - -}; - -/* This function is used for relocs which are only used for relaxing, - which the linker should otherwise ignore. */ - -static bfd_reloc_status_type -sh_elf64_ignore_reloc (bfd *abfd ATTRIBUTE_UNUSED, arelent *reloc_entry, - asymbol *symbol ATTRIBUTE_UNUSED, - void *data ATTRIBUTE_UNUSED, asection *input_section, - bfd *output_bfd, - char **error_message ATTRIBUTE_UNUSED) -{ - if (output_bfd != NULL) - reloc_entry->address += input_section->output_offset; - return bfd_reloc_ok; -} - -/* This function is used for normal relocs. This used to be like the COFF - function, and is almost certainly incorrect for other ELF targets. - - See sh_elf_reloc in elf32-sh.c for the original. */ - -static bfd_reloc_status_type -sh_elf64_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol_in, - void *data, asection *input_section, bfd *output_bfd, - char **error_message ATTRIBUTE_UNUSED) -{ - unsigned long insn; - bfd_vma sym_value; - enum elf_sh_reloc_type r_type; - bfd_vma addr = reloc_entry->address; - bfd_byte *hit_data = addr + (bfd_byte *) data; - - r_type = (enum elf_sh_reloc_type) reloc_entry->howto->type; - - if (output_bfd != NULL) - { - /* Partial linking--do nothing. */ - reloc_entry->address += input_section->output_offset; - return bfd_reloc_ok; - } - - if (symbol_in != NULL - && bfd_is_und_section (symbol_in->section)) - return bfd_reloc_undefined; - - if (bfd_is_com_section (symbol_in->section)) - sym_value = 0; - else - sym_value = (symbol_in->value + - symbol_in->section->output_section->vma + - symbol_in->section->output_offset); - - switch (r_type) - { - case R_SH_DIR32: - insn = bfd_get_32 (abfd, hit_data); - insn += sym_value + reloc_entry->addend; - bfd_put_32 (abfd, insn, hit_data); - break; - - default: - abort (); - break; - } - - return bfd_reloc_ok; -} - -/* This structure is used to map BFD reloc codes to SH ELF relocs. */ - -struct elf_reloc_map -{ - bfd_reloc_code_real_type bfd_reloc_val; - unsigned char elf_reloc_val; -}; - -/* An array mapping BFD reloc codes to SH ELF relocs. */ - -static const struct elf_reloc_map sh64_reloc_map[] = -{ - { BFD_RELOC_NONE, R_SH_NONE }, - { BFD_RELOC_32, R_SH_DIR32 }, - { BFD_RELOC_CTOR, R_SH_DIR32 }, - { BFD_RELOC_32_PCREL, R_SH_REL32 }, - { BFD_RELOC_8_PCREL, R_SH_SWITCH8 }, - { BFD_RELOC_SH_SWITCH16, R_SH_SWITCH16 }, - { BFD_RELOC_SH_SWITCH32, R_SH_SWITCH32 }, - { BFD_RELOC_VTABLE_INHERIT, R_SH_GNU_VTINHERIT }, - { BFD_RELOC_VTABLE_ENTRY, R_SH_GNU_VTENTRY }, - { BFD_RELOC_SH_GOT_LOW16, R_SH_GOT_LOW16 }, - { BFD_RELOC_SH_GOT_MEDLOW16, R_SH_GOT_MEDLOW16 }, - { BFD_RELOC_SH_GOT_MEDHI16, R_SH_GOT_MEDHI16 }, - { BFD_RELOC_SH_GOT_HI16, R_SH_GOT_HI16 }, - { BFD_RELOC_SH_GOTPLT_LOW16, R_SH_GOTPLT_LOW16 }, - { BFD_RELOC_SH_GOTPLT_MEDLOW16, R_SH_GOTPLT_MEDLOW16 }, - { BFD_RELOC_SH_GOTPLT_MEDHI16, R_SH_GOTPLT_MEDHI16 }, - { BFD_RELOC_SH_GOTPLT_HI16, R_SH_GOTPLT_HI16 }, - { BFD_RELOC_SH_PLT_LOW16, R_SH_PLT_LOW16 }, - { BFD_RELOC_SH_PLT_MEDLOW16, R_SH_PLT_MEDLOW16 }, - { BFD_RELOC_SH_PLT_MEDHI16, R_SH_PLT_MEDHI16 }, - { BFD_RELOC_SH_PLT_HI16, R_SH_PLT_HI16 }, - { BFD_RELOC_SH_GOTOFF_LOW16, R_SH_GOTOFF_LOW16 }, - { BFD_RELOC_SH_GOTOFF_MEDLOW16, R_SH_GOTOFF_MEDLOW16 }, - { BFD_RELOC_SH_GOTOFF_MEDHI16, R_SH_GOTOFF_MEDHI16 }, - { BFD_RELOC_SH_GOTOFF_HI16, R_SH_GOTOFF_HI16 }, - { BFD_RELOC_SH_GOTPC_LOW16, R_SH_GOTPC_LOW16 }, - { BFD_RELOC_SH_GOTPC_MEDLOW16, R_SH_GOTPC_MEDLOW16 }, - { BFD_RELOC_SH_GOTPC_MEDHI16, R_SH_GOTPC_MEDHI16 }, - { BFD_RELOC_SH_GOTPC_HI16, R_SH_GOTPC_HI16 }, - { BFD_RELOC_SH_COPY64, R_SH_COPY64 }, - { BFD_RELOC_SH_GLOB_DAT64, R_SH_GLOB_DAT64 }, - { BFD_RELOC_SH_JMP_SLOT64, R_SH_JMP_SLOT64 }, - { BFD_RELOC_SH_RELATIVE64, R_SH_RELATIVE64 }, - { BFD_RELOC_SH_GOT10BY4, R_SH_GOT10BY4 }, - { BFD_RELOC_SH_GOT10BY8, R_SH_GOT10BY8 }, - { BFD_RELOC_SH_GOTPLT10BY4, R_SH_GOTPLT10BY4 }, - { BFD_RELOC_SH_GOTPLT10BY8, R_SH_GOTPLT10BY8 }, - { BFD_RELOC_SH_PT_16, R_SH_PT_16 }, - { BFD_RELOC_SH_SHMEDIA_CODE, R_SH_SHMEDIA_CODE }, - { BFD_RELOC_SH_IMMU5, R_SH_DIR5U }, - { BFD_RELOC_SH_IMMS6, R_SH_DIR6S }, - { BFD_RELOC_SH_IMMU6, R_SH_DIR6U }, - { BFD_RELOC_SH_IMMS10, R_SH_DIR10S }, - { BFD_RELOC_SH_IMMS10BY2, R_SH_DIR10SW }, - { BFD_RELOC_SH_IMMS10BY4, R_SH_DIR10SL }, - { BFD_RELOC_SH_IMMS10BY8, R_SH_DIR10SQ }, - { BFD_RELOC_SH_IMMS16, R_SH_IMMS16 }, - { BFD_RELOC_SH_IMMU16, R_SH_IMMU16 }, - { BFD_RELOC_SH_IMM_LOW16, R_SH_IMM_LOW16 }, - { BFD_RELOC_SH_IMM_LOW16_PCREL, R_SH_IMM_LOW16_PCREL }, - { BFD_RELOC_SH_IMM_MEDLOW16, R_SH_IMM_MEDLOW16 }, - { BFD_RELOC_SH_IMM_MEDLOW16_PCREL, R_SH_IMM_MEDLOW16_PCREL }, - { BFD_RELOC_SH_IMM_MEDHI16, R_SH_IMM_MEDHI16 }, - { BFD_RELOC_SH_IMM_MEDHI16_PCREL, R_SH_IMM_MEDHI16_PCREL }, - { BFD_RELOC_SH_IMM_HI16, R_SH_IMM_HI16 }, - { BFD_RELOC_SH_IMM_HI16_PCREL, R_SH_IMM_HI16_PCREL }, - { BFD_RELOC_64, R_SH_64 }, - { BFD_RELOC_64_PCREL, R_SH_64_PCREL }, -}; - -/* Given a BFD reloc code, return the howto structure for the - corresponding SH ELf reloc. */ - -static reloc_howto_type * -sh_elf64_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, - bfd_reloc_code_real_type code) -{ - unsigned int i; - - for (i = 0; i < sizeof (sh64_reloc_map) / sizeof (struct elf_reloc_map); i++) - { - if (sh64_reloc_map[i].bfd_reloc_val == code) - return &sh_elf64_howto_table[(int) sh64_reloc_map[i].elf_reloc_val]; - } - - return NULL; -} - -static reloc_howto_type * -sh_elf64_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, - const char *r_name) -{ - unsigned int i; - - for (i = 0; - i < sizeof (sh_elf64_howto_table) / sizeof (sh_elf64_howto_table[0]); - i++) - if (sh_elf64_howto_table[i].name != NULL - && strcasecmp (sh_elf64_howto_table[i].name, r_name) == 0) - return &sh_elf64_howto_table[i]; - - return NULL; -} - -/* Given an ELF reloc, fill in the howto field of a relent. - - See sh_elf_info_to_howto in elf32-sh.c for the original. */ - -static void -sh_elf64_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr, - Elf_Internal_Rela *dst) -{ - unsigned int r; - - r = ELF64_R_TYPE (dst->r_info); - - BFD_ASSERT (r <= (unsigned int) R_SH_64_PCREL); - BFD_ASSERT (r < R_SH_FIRST_INVALID_RELOC || r > R_SH_LAST_INVALID_RELOC); - BFD_ASSERT (r < R_SH_DIR8WPN || r > R_SH_LAST_INVALID_RELOC_2); - BFD_ASSERT (r < R_SH_FIRST_INVALID_RELOC_3 || r > R_SH_GOTPLT32); - BFD_ASSERT (r < R_SH_FIRST_INVALID_RELOC_4 || r > R_SH_LAST_INVALID_RELOC_4); - - cache_ptr->howto = &sh_elf64_howto_table[r]; -} - -/* Relocate an SH ELF section. - - See sh_elf_info_to_howto in elf32-sh.c for the original. */ - -static bfd_boolean -sh_elf64_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED, - 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; - bfd_vma *local_got_offsets; - asection *sgot; - asection *sgotplt; - asection *splt; - asection *sreloc; - bfd_vma disp, dropped; - - symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; - sym_hashes = elf_sym_hashes (input_bfd); - local_got_offsets = elf_local_got_offsets (input_bfd); - - sreloc = NULL; - - rel = relocs; - relend = relocs + input_section->reloc_count; - for (; rel < relend; rel++) - { - int r_type; - reloc_howto_type *howto; - unsigned long r_symndx; - Elf_Internal_Sym *sym; - asection *sec; - struct elf_link_hash_entry *h; - bfd_vma relocation; - bfd_vma addend = (bfd_vma)0; - bfd_reloc_status_type r; - int seen_stt_datalabel = 0; - - r_symndx = ELF64_R_SYM (rel->r_info); - - r_type = ELF64_R_TYPE (rel->r_info); - - if (r_type == (int) R_SH_NONE) - continue; - - if (r_type < 0 - || r_type > R_SH_64_PCREL - || (r_type >= (int) R_SH_FIRST_INVALID_RELOC - && r_type <= (int) R_SH_LAST_INVALID_RELOC) - || (r_type >= (int) R_SH_DIR8WPN - && r_type <= (int) R_SH_LAST_INVALID_RELOC) - || (r_type >= (int) R_SH_GNU_VTINHERIT - && r_type <= (int) R_SH_PSHL) - || (r_type >= (int) R_SH_FIRST_INVALID_RELOC_2 - && r_type <= R_SH_GOTPLT32) - || (r_type >= (int) R_SH_FIRST_INVALID_RELOC_4 - && r_type <= (int) R_SH_LAST_INVALID_RELOC_4)) - { - bfd_set_error (bfd_error_bad_value); - return FALSE; - } - - howto = sh_elf64_howto_table + r_type; - - h = NULL; - sym = NULL; - sec = NULL; - relocation = 0; - if (r_symndx < symtab_hdr->sh_info) - { - sym = local_syms + r_symndx; - sec = local_sections[r_symndx]; - relocation = ((sec->output_section->vma - + sec->output_offset - + sym->st_value) - | ((sym->st_other & STO_SH5_ISA32) != 0)); - - /* A local symbol never has STO_SH5_ISA32, so we don't need - datalabel processing here. Make sure this does not change - without notice. */ - if ((sym->st_other & STO_SH5_ISA32) != 0) - (*info->callbacks->reloc_dangerous) - (info, - _("Unexpected STO_SH5_ISA32 on local symbol is not handled"), - input_bfd, input_section, rel->r_offset); - - if (sec != NULL && discarded_section (sec)) - /* Handled below. */ - ; - else if (bfd_link_relocatable (info)) - { - /* 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. */ - if (ELF_ST_TYPE (sym->st_info) == STT_SECTION) - goto final_link_relocate; - - continue; - } - else if (! howto->partial_inplace) - { - relocation = _bfd_elf_rela_local_sym (output_bfd, sym, &sec, rel); - relocation |= ((sym->st_other & STO_SH5_ISA32) != 0); - } - else if ((sec->flags & SEC_MERGE) - && ELF_ST_TYPE (sym->st_info) == STT_SECTION) - { - asection *msec; - - if (howto->rightshift || howto->src_mask != 0xffffffff) - { - _bfd_error_handler - /* xgettext:c-format */ - (_("%B(%A+%#Lx): %s relocation against SEC_MERGE section"), - input_bfd, input_section, - rel->r_offset, howto->name); - return FALSE; - } - - addend = bfd_get_32 (input_bfd, contents + rel->r_offset); - msec = sec; - addend = - _bfd_elf_rel_local_sym (output_bfd, sym, &msec, addend) - - relocation; - addend += msec->output_section->vma + msec->output_offset; - bfd_put_32 (input_bfd, addend, contents + rel->r_offset); - addend = 0; - } - } - else - { - /* ??? Could we use the RELOC_FOR_GLOBAL_SYMBOL macro here ? */ - - h = sym_hashes[r_symndx - symtab_hdr->sh_info]; - while (h->root.type == bfd_link_hash_indirect - || h->root.type == bfd_link_hash_warning) - { - /* If the reference passes a symbol marked with - STT_DATALABEL, then any STO_SH5_ISA32 on the final value - doesn't count. */ - seen_stt_datalabel |= h->type == STT_DATALABEL; - h = (struct elf_link_hash_entry *) h->root.u.i.link; - } - - if (h->root.type == bfd_link_hash_defined - || h->root.type == bfd_link_hash_defweak) - { - sec = h->root.u.def.section; - /* In these cases, we don't need the relocation value. - We check specially because in some obscure cases - sec->output_section will be NULL. */ - if (r_type == R_SH_GOTPC_LOW16 - || r_type == R_SH_GOTPC_MEDLOW16 - || r_type == R_SH_GOTPC_MEDHI16 - || r_type == R_SH_GOTPC_HI16 - || ((r_type == R_SH_PLT_LOW16 - || r_type == R_SH_PLT_MEDLOW16 - || r_type == R_SH_PLT_MEDHI16 - || r_type == R_SH_PLT_HI16) - && h->plt.offset != (bfd_vma) -1) - || ((r_type == R_SH_GOT_LOW16 - || r_type == R_SH_GOT_MEDLOW16 - || r_type == R_SH_GOT_MEDHI16 - || r_type == R_SH_GOT_HI16) - && elf_hash_table (info)->dynamic_sections_created - && (! bfd_link_pic (info) - || (! info->symbolic && h->dynindx != -1) - || !h->def_regular)) - /* The cases above are those in which relocation is - overwritten in the switch block below. The cases - below are those in which we must defer relocation - to run-time, because we can't resolve absolute - addresses when creating a shared library. */ - || (bfd_link_pic (info) - && ((! info->symbolic && h->dynindx != -1) - || !h->def_regular) - && ((r_type == R_SH_64 - && !(ELF_ST_VISIBILITY (h->other) == STV_INTERNAL - || ELF_ST_VISIBILITY (h->other) == STV_HIDDEN)) - || r_type == R_SH_64_PCREL) - && ((input_section->flags & SEC_ALLOC) != 0 - /* DWARF will emit R_SH_DIR32 relocations in its - sections against symbols defined externally - in shared libraries. We can't do anything - with them here. */ - || (input_section->flags & SEC_DEBUGGING) != 0)) - /* Dynamic relocs are not propagated for SEC_DEBUGGING - sections because such sections are not SEC_ALLOC and - thus ld.so will not process them. */ - || (sec->output_section == NULL - && ((input_section->flags & SEC_DEBUGGING) != 0 - && h->def_dynamic))) - ; - else if (sec->output_section != NULL) - relocation = ((h->root.u.def.value - + sec->output_section->vma - + sec->output_offset) - /* A STO_SH5_ISA32 causes a "bitor 1" to the - symbol value, unless we've seen - STT_DATALABEL on the way to it. */ - | ((h->other & STO_SH5_ISA32) != 0 - && ! seen_stt_datalabel)); - else if (!bfd_link_relocatable (info) - && (_bfd_elf_section_offset (output_bfd, info, - input_section, - rel->r_offset) - != (bfd_vma) -1)) - { - _bfd_error_handler - /* xgettext:c-format */ - (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"), - input_bfd, - input_section, - rel->r_offset, - howto->name, - h->root.root.string); - } - } - else if (h->root.type == bfd_link_hash_undefweak) - ; - else if (info->unresolved_syms_in_objects == RM_IGNORE - && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT) - ; - else if (!bfd_link_relocatable (info)) - (*info->callbacks->undefined_symbol) - (info, h->root.root.string, input_bfd, - input_section, rel->r_offset, - (info->unresolved_syms_in_objects == RM_GENERATE_ERROR - || ELF_ST_VISIBILITY (h->other))); - } - - if (sec != NULL && discarded_section (sec)) - RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section, - rel, 1, relend, howto, 0, contents); - - if (bfd_link_relocatable (info)) - continue; - - disp = (relocation - - input_section->output_section->vma - - input_section->output_offset - - rel->r_offset); - dropped = 0; - switch ((int)r_type) - { - case R_SH_PT_16: dropped = disp & 2; break; - case R_SH_DIR10SW: dropped = disp & 1; break; - case R_SH_DIR10SL: dropped = disp & 3; break; - case R_SH_DIR10SQ: dropped = disp & 7; break; - } - if (dropped != 0) - { - _bfd_error_handler - /* xgettext:c-format */ - (_("%B: error: unaligned relocation type %d at %08Lx reloc %08Lx"), - input_bfd, (int) r_type, rel->r_offset, - relocation); - bfd_set_error (bfd_error_bad_value); - return FALSE; - } - switch ((int)r_type) - { - case R_SH_64: - case R_SH_64_PCREL: - if (bfd_link_pic (info) - && (input_section->flags & SEC_ALLOC) != 0 - && (r_type != R_SH_64_PCREL - || (h != NULL - && h->dynindx != -1 - && (! info->symbolic - || !h->def_regular)))) - { - Elf_Internal_Rela outrel; - bfd_byte *loc; - 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) - { - sreloc = _bfd_elf_get_dynamic_reloc_section - (input_bfd, input_section, /*rela?*/ TRUE); - if (sreloc == NULL) - return FALSE; - } - - 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) - skip = TRUE; - else if (outrel.r_offset == (bfd_vma) -2) - skip = TRUE, relocate = TRUE; - - outrel.r_offset += (input_section->output_section->vma - + input_section->output_offset); - - if (skip) - memset (&outrel, 0, sizeof outrel); - else if (r_type == R_SH_64_PCREL) - { - BFD_ASSERT (h != NULL && h->dynindx != -1); - outrel.r_info = ELF64_R_INFO (h->dynindx, R_SH_64_PCREL); - outrel.r_addend = rel->r_addend; - } - else - { - /* h->dynindx may be -1 if this symbol was marked to - become local. */ - if (h == NULL - || ((info->symbolic || h->dynindx == -1) - && h->def_regular)) - { - relocate = TRUE; - outrel.r_info = ELF64_R_INFO (0, R_SH_RELATIVE64); - outrel.r_addend = relocation + rel->r_addend; - } - else - { - BFD_ASSERT (h->dynindx != -1); - outrel.r_info = ELF64_R_INFO (h->dynindx, R_SH_64); - outrel.r_addend = relocation + rel->r_addend; - } - } - - loc = sreloc->contents; - loc += sreloc->reloc_count++ * sizeof (Elf64_External_Rela); - bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc); - - /* 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) - continue; - } - else if (r_type == R_SH_64) - addend = rel->r_addend; - goto final_link_relocate; - - case R_SH_GOTPLT_LOW16: - case R_SH_GOTPLT_MEDLOW16: - case R_SH_GOTPLT_MEDHI16: - case R_SH_GOTPLT_HI16: - case R_SH_GOTPLT10BY4: - case R_SH_GOTPLT10BY8: - /* Relocation is to the entry for this symbol in the - procedure linkage table. */ - - if (h == NULL - || ELF_ST_VISIBILITY (h->other) == STV_INTERNAL - || ELF_ST_VISIBILITY (h->other) == STV_HIDDEN - || ! bfd_link_pic (info) - || info->symbolic - || h->dynindx == -1 - || h->plt.offset == (bfd_vma) -1 - || h->got.offset != (bfd_vma) -1) - goto force_got; - - /* Relocation is to the entry for this symbol in the global - offset table extension for the procedure linkage table. */ - sgotplt = elf_hash_table (info)->sgotplt; - BFD_ASSERT (sgotplt != NULL); - - relocation = (sgotplt->output_offset - + ((h->plt.offset / elf_sh64_sizeof_plt (info) - - 1 + 3) * 8)); - - relocation -= GOT_BIAS; - - goto final_link_relocate; - - force_got: - case R_SH_GOT_LOW16: - case R_SH_GOT_MEDLOW16: - case R_SH_GOT_MEDHI16: - case R_SH_GOT_HI16: - case R_SH_GOT10BY4: - case R_SH_GOT10BY8: - /* Relocation is to the entry for this symbol in the global - offset table. */ - sgot = elf_hash_table (info)->sgot; - BFD_ASSERT (sgot != NULL); - - if (h != NULL) - { - bfd_vma off; - - off = h->got.offset; - if (seen_stt_datalabel) - { - struct elf_sh64_link_hash_entry *hsh; - - hsh = (struct elf_sh64_link_hash_entry *)h; - off = hsh->datalabel_got_offset; - } - BFD_ASSERT (off != (bfd_vma) -1); - - if (! elf_hash_table (info)->dynamic_sections_created - || (bfd_link_pic (info) - && (info->symbolic || h->dynindx == -1 - || ELF_ST_VISIBILITY (h->other) == STV_INTERNAL - || ELF_ST_VISIBILITY (h->other) == STV_HIDDEN) - && h->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. Since the - offset must always be a multiple of 4, we use the - least significant bit to record whether we have - initialized it already. - - 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. */ - if ((off & 1) != 0) - off &= ~1; - else - { - bfd_put_64 (output_bfd, relocation, - sgot->contents + off); - if (seen_stt_datalabel) - { - struct elf_sh64_link_hash_entry *hsh; - - hsh = (struct elf_sh64_link_hash_entry *)h; - hsh->datalabel_got_offset |= 1; - } - else - h->got.offset |= 1; - } - } - - relocation = sgot->output_offset + off; - } - else - { - bfd_vma off; - - if (rel->r_addend) - { - BFD_ASSERT (local_got_offsets != NULL - && (local_got_offsets[symtab_hdr->sh_info - + r_symndx] - != (bfd_vma) -1)); - - off = local_got_offsets[symtab_hdr->sh_info - + r_symndx]; - } - else - { - BFD_ASSERT (local_got_offsets != NULL - && local_got_offsets[r_symndx] != (bfd_vma) -1); - - off = local_got_offsets[r_symndx]; - } - - /* The offset must always be a multiple of 8. We use - the least significant bit to record whether we have - already generated the necessary reloc. */ - if ((off & 1) != 0) - off &= ~1; - else - { - bfd_put_64 (output_bfd, relocation, sgot->contents + off); - - if (bfd_link_pic (info)) - { - asection *s; - Elf_Internal_Rela outrel; - bfd_byte *loc; - - s = elf_hash_table (info)->srelgot; - BFD_ASSERT (s != NULL); - - outrel.r_offset = (sgot->output_section->vma - + sgot->output_offset - + off); - outrel.r_info = ELF64_R_INFO (0, R_SH_RELATIVE64); - outrel.r_addend = relocation; - loc = s->contents; - loc += s->reloc_count++ * sizeof (Elf64_External_Rela); - bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc); - } - - if (rel->r_addend) - local_got_offsets[symtab_hdr->sh_info + r_symndx] |= 1; - else - local_got_offsets[r_symndx] |= 1; - } - - relocation = sgot->output_offset + off; - } - - relocation -= GOT_BIAS; - - goto final_link_relocate; - - case R_SH_GOTOFF_LOW16: - case R_SH_GOTOFF_MEDLOW16: - case R_SH_GOTOFF_MEDHI16: - case R_SH_GOTOFF_HI16: - /* Relocation is relative to the start of the global offset - table. */ - - sgot = elf_hash_table (info)->sgot; - BFD_ASSERT (sgot != NULL); - - /* Note that sgot->output_offset is not involved in this - calculation. We always want the start of .got. If we - defined _GLOBAL_OFFSET_TABLE in a different way, as is - permitted by the ABI, we might have to change this - calculation. */ - relocation -= sgot->output_section->vma; - - relocation -= GOT_BIAS; - - addend = rel->r_addend; - - goto final_link_relocate; - - case R_SH_GOTPC_LOW16: - case R_SH_GOTPC_MEDLOW16: - case R_SH_GOTPC_MEDHI16: - case R_SH_GOTPC_HI16: - /* Use global offset table as symbol value. */ - - sgot = elf_hash_table (info)->sgot; - BFD_ASSERT (sgot != NULL); - - relocation = sgot->output_section->vma; - - relocation += GOT_BIAS; - - addend = rel->r_addend; - - goto final_link_relocate; - - case R_SH_PLT_LOW16: - case R_SH_PLT_MEDLOW16: - case R_SH_PLT_MEDHI16: - case R_SH_PLT_HI16: - /* Relocation is to the entry for this symbol in the - procedure linkage table. */ - - /* Resolve a PLT reloc against a local symbol directly, - without using the procedure linkage table. */ - if (h == NULL) - goto final_link_relocate; - - if (ELF_ST_VISIBILITY (h->other) == STV_INTERNAL - || ELF_ST_VISIBILITY (h->other) == STV_HIDDEN) - goto final_link_relocate; - - if (h->plt.offset == (bfd_vma) -1) - { - /* We didn't make a PLT entry for this symbol. This - happens when statically linking PIC code, or when - using -Bsymbolic. */ - goto final_link_relocate; - } - - splt = elf_hash_table (info)->splt; - BFD_ASSERT (splt != NULL); - - relocation = (splt->output_section->vma - + splt->output_offset - + h->plt.offset); - relocation++; - - addend = rel->r_addend; - - goto final_link_relocate; - - case R_SH_DIR32: - case R_SH_SHMEDIA_CODE: - case R_SH_PT_16: - case R_SH_DIR5U: - case R_SH_DIR6S: - case R_SH_DIR6U: - case R_SH_DIR10S: - case R_SH_DIR10SW: - case R_SH_DIR10SL: - case R_SH_DIR10SQ: - case R_SH_IMMS16: - case R_SH_IMMU16: - case R_SH_IMM_LOW16: - case R_SH_IMM_LOW16_PCREL: - case R_SH_IMM_MEDLOW16: - case R_SH_IMM_MEDLOW16_PCREL: - case R_SH_IMM_MEDHI16: - case R_SH_IMM_MEDHI16_PCREL: - case R_SH_IMM_HI16: - case R_SH_IMM_HI16_PCREL: - addend = rel->r_addend; - /* Fall through. */ - case R_SH_REL32: - final_link_relocate: - r = _bfd_final_link_relocate (howto, input_bfd, input_section, - contents, rel->r_offset, - relocation, addend); - break; - - default: - bfd_set_error (bfd_error_bad_value); - return FALSE; - - } - - if (r != bfd_reloc_ok) - { - switch (r) - { - default: - case bfd_reloc_outofrange: - abort (); - case bfd_reloc_overflow: - { - const char *name; - - if (h != NULL) - name = NULL; - else - { - name = (bfd_elf_string_from_elf_section - (input_bfd, symtab_hdr->sh_link, sym->st_name)); - if (name == NULL) - return FALSE; - if (*name == '\0') - name = bfd_section_name (input_bfd, sec); - } - (*info->callbacks->reloc_overflow) - (info, (h ? &h->root : NULL), name, howto->name, - (bfd_vma) 0, input_bfd, input_section, rel->r_offset); - } - break; - } - } - } - - return TRUE; -} - -/* This is a version of bfd_generic_get_relocated_section_contents - that uses sh_elf64_relocate_section. - - See sh_elf_relocate_section in elf32-sh.c for the original. */ - -static bfd_byte * -sh_elf64_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; - bfd *input_bfd = input_section->owner; - asection **sections = NULL; - Elf_Internal_Rela *internal_relocs = NULL; - Elf_Internal_Sym *isymbuf = NULL; - - /* We only need to handle the case of relaxing, or of having a - particular set of section contents, specially. */ - 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, - relocatable, - symbols); - - symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; - - memcpy (data, elf_section_data (input_section)->this_hdr.contents, - input_section->size); - - if ((input_section->flags & SEC_RELOC) != 0 - && input_section->reloc_count > 0) - { - Elf_Internal_Sym *isymp; - Elf_Internal_Sym *isymend; - asection **secpp; - - /* Read this BFD's local symbols. */ - if (symtab_hdr->sh_info != 0) - { - isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents; - if (isymbuf == NULL) - isymbuf = bfd_elf_get_elf_syms (input_bfd, symtab_hdr, - symtab_hdr->sh_info, 0, - NULL, NULL, NULL); - if (isymbuf == NULL) - goto error_return; - } - - internal_relocs = (_bfd_elf_link_read_relocs - (input_bfd, input_section, NULL, - (Elf_Internal_Rela *) NULL, FALSE)); - if (internal_relocs == NULL) - goto error_return; - - sections = (asection **) bfd_malloc (symtab_hdr->sh_info - * sizeof (asection *)); - if (sections == NULL && symtab_hdr->sh_info > 0) - goto error_return; - - secpp = sections; - isymend = isymbuf + symtab_hdr->sh_info; - for (isymp = isymbuf; isymp < isymend; ++isymp, ++secpp) - { - asection *isec; - - if (isymp->st_shndx == SHN_UNDEF) - isec = bfd_und_section_ptr; - else if (isymp->st_shndx == SHN_ABS) - isec = bfd_abs_section_ptr; - else if (isymp->st_shndx == SHN_COMMON) - isec = bfd_com_section_ptr; - else - isec = bfd_section_from_elf_index (input_bfd, isymp->st_shndx); - - *secpp = isec; - } - - if (! sh_elf64_relocate_section (output_bfd, link_info, input_bfd, - input_section, data, internal_relocs, - isymbuf, sections)) - goto error_return; - - if (sections != NULL) - free (sections); - if (internal_relocs != elf_section_data (input_section)->relocs) - free (internal_relocs); - if (isymbuf != NULL - && (unsigned char *) isymbuf != symtab_hdr->contents) - free (isymbuf); - } - - return data; - - error_return: - if (sections != NULL) - free (sections); - if (internal_relocs != NULL - && internal_relocs != elf_section_data (input_section)->relocs) - free (internal_relocs); - if (isymbuf != NULL - && (unsigned char *) isymbuf != symtab_hdr->contents) - free (isymbuf); - return NULL; -} - -/* Set the SHF_SH5_ISA32 flag for ISA SHmedia code sections. */ - -static bfd_boolean -sh64_elf64_fake_sections (bfd *output_bfd ATTRIBUTE_UNUSED, - Elf_Internal_Shdr *elf_section_hdr, - asection *asect) -{ - /* Code sections can only contain SH64 code, so mark them as such. */ - if (bfd_get_section_flags (output_bfd, asect) & SEC_CODE) - elf_section_hdr->sh_flags |= SHF_SH5_ISA32; - - return TRUE; -} - -static bfd_boolean -sh_elf64_set_mach_from_flags (bfd *abfd) -{ - flagword flags = elf_elfheader (abfd)->e_flags; - - switch (flags & EF_SH_MACH_MASK) - { - case EF_SH5: - /* Just one, but keep the switch construct to make additions easy. */ - bfd_default_set_arch_mach (abfd, bfd_arch_sh, bfd_mach_sh5); - break; - - default: - bfd_set_error (bfd_error_wrong_format); - return FALSE; - } - return TRUE; -} - -/* Function to keep SH64 specific file flags. - - See sh64_elf_set_private_flags in elf32-sh64.c for the original. */ - -static bfd_boolean -sh_elf64_set_private_flags (bfd *abfd, flagword flags) -{ - BFD_ASSERT (! elf_flags_init (abfd) - || elf_elfheader (abfd)->e_flags == flags); - - elf_elfheader (abfd)->e_flags = flags; - elf_flags_init (abfd) = TRUE; - return sh_elf64_set_mach_from_flags (abfd); -} - -/* Copy the SHF_SH5_ISA32 attribute that we keep on all sections with - code, to keep attributes the same as for SHmedia in 32-bit ELF. */ - -static bfd_boolean -sh_elf64_copy_private_data_internal (bfd *ibfd, bfd *obfd) -{ - if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return TRUE; - - /* Copy object attributes. */ - _bfd_elf_copy_private_bfd_data (ibfd, obfd); - - return sh_elf64_set_private_flags (obfd, elf_elfheader (ibfd)->e_flags); -} - -static bfd_boolean -sh_elf64_copy_private_data (bfd *ibfd, bfd *obfd) -{ - return sh_elf64_copy_private_data_internal (ibfd, obfd); -} - -static bfd_boolean -sh_elf64_merge_private_data (bfd *ibfd, struct bfd_link_info *info) -{ - bfd *obfd = info->output_bfd; - flagword old_flags, new_flags; - - if (! _bfd_generic_verify_endian_match (ibfd, info)) - return FALSE; - - if ( bfd_get_flavour (ibfd) != bfd_target_elf_flavour - || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return TRUE; - - if (bfd_get_arch_size (ibfd) != bfd_get_arch_size (obfd)) - { - const char *msg; - - if (bfd_get_arch_size (ibfd) == 32 - && bfd_get_arch_size (obfd) == 64) - /* xgettext:c-format */ - msg = _("%B: compiled as 32-bit object and %B is 64-bit"); - else if (bfd_get_arch_size (ibfd) == 64 - && bfd_get_arch_size (obfd) == 32) - /* xgettext:c-format */ - msg = _("%B: compiled as 64-bit object and %B is 32-bit"); - else - /* xgettext:c-format */ - msg = _("%B: object size does not match that of target %B"); - - _bfd_error_handler (msg, ibfd, obfd); - bfd_set_error (bfd_error_wrong_format); - return FALSE; - } - - old_flags = elf_elfheader (obfd)->e_flags; - new_flags = elf_elfheader (ibfd)->e_flags; - if (! elf_flags_init (obfd)) - { - /* This happens when ld starts out with a 'blank' output file. */ - elf_flags_init (obfd) = TRUE; - elf_elfheader (obfd)->e_flags = old_flags = new_flags; - } - /* We don't allow linking in anything else than SH64 code, and since - this is a 64-bit ELF, we assume the 64-bit ABI is used. Add code - here as things change. */ - else if ((new_flags & EF_SH_MACH_MASK) != EF_SH5) - { - _bfd_error_handler - ("%B: does not use the SH64 64-bit ABI as previous modules do", ibfd); - bfd_set_error (bfd_error_bad_value); - return FALSE; - } - - sh_elf64_copy_private_data_internal (ibfd, obfd); - - /* I can't think of anything sane other than old_flags being EF_SH5 and - that we need to preserve that. */ - elf_elfheader (obfd)->e_flags = old_flags; - - return sh_elf64_set_mach_from_flags (obfd); -} - -/* Return the section that should be marked against GC for a given - relocation. */ - -static asection * -sh_elf64_gc_mark_hook (asection *sec, - struct bfd_link_info *info, - Elf_Internal_Rela *rel, - struct elf_link_hash_entry *h, - Elf_Internal_Sym *sym) -{ - if (h != NULL) - switch (ELF64_R_TYPE (rel->r_info)) - { - case R_SH_GNU_VTINHERIT: - case R_SH_GNU_VTENTRY: - return NULL; - } - - return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym); -} - -/* Look through the relocs for a section during the first phase. - Since we don't do .gots or .plts, we just need to consider the - virtual table relocs for gc. */ - -static bfd_boolean -sh_elf64_check_relocs (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; - const Elf_Internal_Rela *rel; - const Elf_Internal_Rela *rel_end; - bfd *dynobj; - bfd_vma *local_got_offsets; - asection *sgot; - asection *srelgot; - asection *sreloc; - - sreloc = NULL; - - if (bfd_link_relocatable (info)) - return TRUE; - - symtab_hdr = &elf_tdata (abfd)->symtab_hdr; - sym_hashes = elf_sym_hashes (abfd); - - 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++) - { - struct elf_link_hash_entry *h; - unsigned long r_symndx; - - r_symndx = ELF64_R_SYM (rel->r_info); - if (r_symndx < symtab_hdr->sh_info) - h = NULL; - else - { - h = sym_hashes[r_symndx - symtab_hdr->sh_info]; - 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; - } - - /* Some relocs require a global offset table. */ - if (dynobj == NULL) - { - switch (ELF64_R_TYPE (rel->r_info)) - { - case R_SH_GOTPLT_LOW16: - case R_SH_GOTPLT_MEDLOW16: - case R_SH_GOTPLT_MEDHI16: - case R_SH_GOTPLT_HI16: - case R_SH_GOTPLT10BY4: - case R_SH_GOTPLT10BY8: - case R_SH_GOT_LOW16: - case R_SH_GOT_MEDLOW16: - case R_SH_GOT_MEDHI16: - case R_SH_GOT_HI16: - case R_SH_GOT10BY4: - case R_SH_GOT10BY8: - case R_SH_GOTOFF_LOW16: - case R_SH_GOTOFF_MEDLOW16: - case R_SH_GOTOFF_MEDHI16: - case R_SH_GOTOFF_HI16: - case R_SH_GOTPC_LOW16: - case R_SH_GOTPC_MEDLOW16: - case R_SH_GOTPC_MEDHI16: - case R_SH_GOTPC_HI16: - elf_hash_table (info)->dynobj = dynobj = abfd; - if (! _bfd_elf_create_got_section (dynobj, info)) - return FALSE; - break; - - default: - break; - } - } - - switch (ELF64_R_TYPE (rel->r_info)) - { - /* This relocation describes the C++ object vtable hierarchy. - Reconstruct it for later use during GC. */ - case R_SH_GNU_VTINHERIT: - if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return FALSE; - break; - - /* This relocation describes which C++ vtable entries are actually - used. Record for later use during GC. */ - case R_SH_GNU_VTENTRY: - BFD_ASSERT (h != NULL); - if (h != NULL - && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend)) - return FALSE; - break; - - force_got: - case R_SH_GOT_LOW16: - case R_SH_GOT_MEDLOW16: - case R_SH_GOT_MEDHI16: - case R_SH_GOT_HI16: - case R_SH_GOT10BY4: - case R_SH_GOT10BY8: - /* This symbol requires a global offset table entry. */ - - sgot = elf_hash_table (info)->sgot; - srelgot = elf_hash_table (info)->srelgot; - BFD_ASSERT (sgot != NULL && srelgot != NULL); - - if (h != NULL) - { - if (h->type == STT_DATALABEL) - { - struct elf_sh64_link_hash_entry *hsh; - - h = (struct elf_link_hash_entry *) h->root.u.i.link; - hsh = (struct elf_sh64_link_hash_entry *)h; - if (hsh->datalabel_got_offset != (bfd_vma) -1) - break; - - hsh->datalabel_got_offset = sgot->size; - } - else - { - if (h->got.offset != (bfd_vma) -1) - { - /* We have already allocated space in the .got. */ - break; - } - h->got.offset = sgot->size; - } - - /* 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; - } - - srelgot->size += sizeof (Elf64_External_Rela); - } - else - { - /* This is a global offset table entry for a local - symbol. */ - if (local_got_offsets == NULL) - { - size_t size; - register unsigned int i; - - size = symtab_hdr->sh_info * sizeof (bfd_vma); - /* Reserve space for both the datalabel and - codelabel local GOT offsets. */ - size *= 2; - 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; - for (; i < 2 * symtab_hdr->sh_info; i++) - local_got_offsets[i] = (bfd_vma) -1; - } - if ((rel->r_addend & 1) != 0) - { - if (local_got_offsets[symtab_hdr->sh_info - + r_symndx] != (bfd_vma) -1) - { - /* We have already allocated space in the .got. */ - break; - } - local_got_offsets[symtab_hdr->sh_info - + r_symndx] = sgot->size; - } - else - { - if (local_got_offsets[r_symndx] != (bfd_vma) -1) - { - /* We have already allocated space in the .got. */ - break; - } - local_got_offsets[r_symndx] = sgot->size; - } - - if (bfd_link_pic (info)) - { - /* If we are generating a shared object, we need to - output a R_SH_RELATIVE reloc so that the dynamic - linker can adjust this GOT entry. */ - srelgot->size += sizeof (Elf64_External_Rela); - } - } - - sgot->size += 8; - - break; - - case R_SH_GOTPLT_LOW16: - case R_SH_GOTPLT_MEDLOW16: - case R_SH_GOTPLT_MEDHI16: - case R_SH_GOTPLT_HI16: - case R_SH_GOTPLT10BY4: - case R_SH_GOTPLT10BY8: - /* If this is a local symbol, we resolve it directly without - creating a procedure linkage table entry. */ - - if (h == NULL - || ELF_ST_VISIBILITY (h->other) == STV_INTERNAL - || ELF_ST_VISIBILITY (h->other) == STV_HIDDEN - || ! bfd_link_pic (info) - || info->symbolic - || h->dynindx == -1 - || h->got.offset != (bfd_vma) -1) - goto force_got; - - /* 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; - } - - h->needs_plt = 1; - - break; - - case R_SH_PLT_LOW16: - case R_SH_PLT_MEDLOW16: - case R_SH_PLT_MEDHI16: - case R_SH_PLT_HI16: - /* 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->needs_plt = 1; - - break; - - case R_SH_64: - case R_SH_64_PCREL: - if (h != NULL) - h->non_got_ref = 1; - - /* 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 (bfd_link_pic (info) - && (sec->flags & SEC_ALLOC) != 0 - && (ELF32_R_TYPE (rel->r_info) != R_SH_64_PCREL - || (h != NULL - && (! info->symbolic - || !h->def_regular)))) - { - /* 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) - { - sreloc = _bfd_elf_make_dynamic_reloc_section - (sec, dynobj, 2, abfd, /*rela?*/ TRUE); - - if (sreloc == NULL) - return FALSE; - } - - sreloc->size += sizeof (Elf64_External_Rela); - - /* If we are linking with -Bsymbolic, and this is a - global symbol, we count the number of PC relative - relocations we have entered for this symbol, so that - we can discard them again if the symbol is later - defined by a regular object. Note that this function - is only called if we are using an elf_sh linker - hash table, which means that h is really a pointer to - an elf_sh_link_hash_entry. */ - if (h != NULL && info->symbolic - && ELF64_R_TYPE (rel->r_info) == R_SH_64_PCREL) - { - struct elf_sh64_link_hash_entry *eh; - struct elf_sh64_pcrel_relocs_copied *p; - - eh = (struct elf_sh64_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_sh64_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; - } - } - - return TRUE; -} - -static int -sh64_elf64_get_symbol_type (Elf_Internal_Sym * elf_sym, int type) -{ - if (ELF_ST_TYPE (elf_sym->st_info) == STT_DATALABEL) - return STT_DATALABEL; - - return type; -} - -/* FIXME: This is a copy of sh64_elf_add_symbol_hook in elf32-sh64.c. - Either file can presumably exist without the other, but do not differ - in elf-size-ness. How to share? - - Hook called by the linker routine which adds symbols from an object - file. We must make indirect symbols for undefined symbols marked with - STT_DATALABEL, so relocations passing them will pick up that attribute - and neutralize STO_SH5_ISA32 found on the symbol definition. - - There is a problem, though: We want to fill in the hash-table entry for - this symbol and signal to the caller that no further processing is - needed. But we don't have the index for this hash-table entry. We - rely here on that the current entry is the first hash-entry with NULL, - which seems brittle. Also, iterating over the hash-table to find that - entry is a linear operation on the number of symbols in this input - file, and this function should take constant time, so that's not good - too. Only comfort is that DataLabel references should only be found in - hand-written assembly code and thus be rare. FIXME: Talk maintainers - into adding an option to elf_add_symbol_hook (preferably) for the index - or the hash entry, alternatively adding the index to Elf_Internal_Sym - (not so good). */ - -static bfd_boolean -sh64_elf64_add_symbol_hook (bfd *abfd, struct bfd_link_info *info, - Elf_Internal_Sym *sym, const char **namep, - flagword *flagsp ATTRIBUTE_UNUSED, - asection **secp, bfd_vma *valp) -{ - /* We want to do this for relocatable as well as final linking. */ - if (ELF_ST_TYPE (sym->st_info) == STT_DATALABEL - && is_elf_hash_table (info->hash)) - { - struct elf_link_hash_entry *h; - - /* 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 - = bfd_link_relocatable (info) || info->emitrelocations - ? BSF_GLOBAL : BSF_GLOBAL | BSF_INDIRECT; - - char *dl_name - = bfd_malloc (strlen (*namep) + sizeof (DATALABEL_SUFFIX)); - struct elf_link_hash_entry ** sym_hash = elf_sym_hashes (abfd); - - BFD_ASSERT (sym_hash != NULL); - - /* Allocation may fail. */ - if (dl_name == NULL) - return FALSE; - - strcpy (dl_name, *namep); - strcat (dl_name, DATALABEL_SUFFIX); - - h = (struct elf_link_hash_entry *) - bfd_link_hash_lookup (info->hash, dl_name, FALSE, FALSE, FALSE); - - if (h == NULL) - { - /* No previous datalabel symbol. Make one. */ - struct bfd_link_hash_entry *bh = NULL; - const struct elf_backend_data *bed = get_elf_backend_data (abfd); - - if (! _bfd_generic_link_add_one_symbol (info, abfd, dl_name, - flags, *secp, *valp, - *namep, FALSE, - bed->collect, &bh)) - { - free (dl_name); - return FALSE; - } - - h = (struct elf_link_hash_entry *) bh; - h->non_elf = 0; - h->type = STT_DATALABEL; - } - else - /* If a new symbol was created, it holds the allocated name. - Otherwise, we don't need it anymore and should deallocate it. */ - free (dl_name); - - if (h->type != STT_DATALABEL - || ((bfd_link_relocatable (info) || info->emitrelocations) - && h->root.type != bfd_link_hash_undefined) - || (! bfd_link_relocatable (info) && !info->emitrelocations - && h->root.type != bfd_link_hash_indirect)) - { - /* Make sure we don't get confused on invalid input. */ - _bfd_error_handler - (_("%B: encountered datalabel symbol in input"), abfd); - bfd_set_error (bfd_error_bad_value); - return FALSE; - } - - /* Now find the hash-table slot for this entry and fill it in. */ - while (*sym_hash != NULL) - sym_hash++; - *sym_hash = h; - - /* Signal to caller to skip this symbol - we've handled it. */ - *namep = NULL; - } - - return TRUE; -} - -/* This hook function is called before the linker writes out a global - symbol. For relocatable links, DataLabel symbols will be present in - linker output. We cut off the special suffix on those symbols, so the - right name appears in the output. - - When linking and emitting relocations, there can appear global symbols - that are not referenced by relocs, but rather only implicitly through - DataLabel references, a relation that is not visible to the linker. - Since no stripping of global symbols in done when doing such linking, - we don't need to look up and make sure to emit the main symbol for each - DataLabel symbol. */ - -static int -sh64_elf64_link_output_symbol_hook (struct bfd_link_info *info, - const char *cname, - Elf_Internal_Sym *sym, - asection *input_sec ATTRIBUTE_UNUSED, - struct elf_link_hash_entry *h ATTRIBUTE_UNUSED) -{ - char *name = (char *) cname; - - if (bfd_link_relocatable (info) || info->emitrelocations) - { - if (ELF_ST_TYPE (sym->st_info) == STT_DATALABEL) - name[strlen (name) - strlen (DATALABEL_SUFFIX)] = 0; - } - - return 1; -} - -/* Set bit 0 on the entry address; it always points to SHmedia code. This - is mostly for symmetry with the 32-bit format, where code can be - SHcompact and we need to make a distinction to make sure execution - starts in the right ISA mode. It is also convenient for a loader, - which would otherwise have to set this bit when loading a TR register - before jumping to the program entry. */ - -static void -sh64_elf64_final_write_processing (bfd *abfd, - bfd_boolean linker ATTRIBUTE_UNUSED) -{ - /* FIXME: Perhaps we shouldn't do this if the entry address was supplied - numerically, but we currently lack the infrastructure to recognize - that: The entry symbol, and info whether it is numeric or a symbol - name is kept private in the linker. */ - if (elf_elfheader (abfd)->e_type == ET_EXEC) - elf_elfheader (abfd)->e_entry |= 1; -} - -/* First entry in an absolute procedure linkage table look like this. */ - -static const bfd_byte elf_sh64_plt0_entry_be[PLT_ENTRY_SIZE] = -{ - 0xcc, 0x00, 0x01, 0x10, /* movi .got.plt >> 48, r17 */ - 0xc8, 0x00, 0x01, 0x10, /* shori (.got.plt >> 32) & 65535, r17 */ - 0xc8, 0x00, 0x01, 0x10, /* shori (.got.plt >> 16) & 65535, r17 */ - 0xc8, 0x00, 0x01, 0x10, /* shori .got.plt & 65535, r17 */ - 0x8d, 0x10, 0x09, 0x90, /* ld.q r17, 16, r25 */ - 0x6b, 0xf1, 0x66, 0x00, /* ptabs r25, tr0 */ - 0x8d, 0x10, 0x05, 0x10, /* ld.q r17, 8, r17 */ - 0x44, 0x01, 0xff, 0xf0, /* blink tr0, r63 */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ -}; - -static const bfd_byte elf_sh64_plt0_entry_le[PLT_ENTRY_SIZE] = -{ - 0x10, 0x01, 0x00, 0xcc, /* movi .got.plt >> 16, r17 */ - 0x10, 0x01, 0x00, 0xc8, /* shori (.got.plt >> 32) & 65535, r17 */ - 0x10, 0x01, 0x00, 0xc8, /* shori (.got.plt >> 16) & 65535, r17 */ - 0x10, 0x01, 0x00, 0xc8, /* shori .got.plt & 65535, r17 */ - 0x90, 0x09, 0x10, 0x8d, /* ld.q r17, 16, r25 */ - 0x00, 0x66, 0xf1, 0x6b, /* ptabs r25, tr0 */ - 0x10, 0x05, 0x10, 0x8d, /* ld.q r17, 8, r17 */ - 0xf0, 0xff, 0x01, 0x44, /* blink tr0, r63 */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ -}; - -/* Sebsequent entries in an absolute procedure linkage table look like - this. */ - -static const bfd_byte elf_sh64_plt_entry_be[PLT_ENTRY_SIZE] = -{ - 0xcc, 0x00, 0x01, 0x90, /* movi nameN-in-GOT >> 48, r25 */ - 0xc8, 0x00, 0x01, 0x90, /* shori (nameN-in-GOT >> 32) & 65535, r25 */ - 0xc8, 0x00, 0x01, 0x90, /* shori (nameN-in-GOT >> 16) & 65535, r25 */ - 0xc8, 0x00, 0x01, 0x90, /* shori nameN-in-GOT & 65535, r25 */ - 0x8d, 0x90, 0x01, 0x90, /* ld.q r25, 0, r25 */ - 0x6b, 0xf1, 0x66, 0x00, /* ptabs r25, tr0 */ - 0x44, 0x01, 0xff, 0xf0, /* blink tr0, r63 */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0xcc, 0x00, 0x01, 0x90, /* movi (.+8-.PLT0) >> 16, r25 */ - 0xc8, 0x00, 0x01, 0x90, /* shori (.+4-.PLT0) & 65535, r25 */ - 0x6b, 0xf5, 0x66, 0x00, /* ptrel r25, tr0 */ - 0xcc, 0x00, 0x01, 0x50, /* movi reloc-offset >> 16, r21 */ - 0xc8, 0x00, 0x01, 0x50, /* shori reloc-offset & 65535, r21 */ - 0x44, 0x01, 0xff, 0xf0, /* blink tr0, r63 */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ -}; - -static const bfd_byte elf_sh64_plt_entry_le[PLT_ENTRY_SIZE] = -{ - 0x90, 0x01, 0x00, 0xcc, /* movi nameN-in-GOT >> 16, r25 */ - 0x90, 0x01, 0x00, 0xc8, /* shori nameN-in-GOT & 65535, r25 */ - 0x90, 0x01, 0x00, 0xc8, /* shori nameN-in-GOT & 65535, r25 */ - 0x90, 0x01, 0x00, 0xc8, /* shori nameN-in-GOT & 65535, r25 */ - 0x90, 0x01, 0x90, 0x8d, /* ld.q r25, 0, r25 */ - 0x00, 0x66, 0xf1, 0x6b, /* ptabs r25, tr0 */ - 0xf0, 0xff, 0x01, 0x44, /* blink tr0, r63 */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0x90, 0x01, 0x00, 0xcc, /* movi (.+8-.PLT0) >> 16, r25 */ - 0x90, 0x01, 0x00, 0xc8, /* shori (.+4-.PLT0) & 65535, r25 */ - 0x00, 0x66, 0xf5, 0x6b, /* ptrel r25, tr0 */ - 0x50, 0x01, 0x00, 0xcc, /* movi reloc-offset >> 16, r21 */ - 0x50, 0x01, 0x00, 0xc8, /* shori reloc-offset & 65535, r21 */ - 0xf0, 0xff, 0x01, 0x44, /* blink tr0, r63 */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ -}; - -/* Entries in a PIC procedure linkage table look like this. */ - -static const bfd_byte elf_sh64_pic_plt_entry_be[PLT_ENTRY_SIZE] = -{ - 0xcc, 0x00, 0x01, 0x90, /* movi nameN@GOT >> 16, r25 */ - 0xc8, 0x00, 0x01, 0x90, /* shori nameN@GOT & 65535, r25 */ - 0x40, 0xc3, 0x65, 0x90, /* ldx.q r12, r25, r25 */ - 0x6b, 0xf1, 0x66, 0x00, /* ptabs r25, tr0 */ - 0x44, 0x01, 0xff, 0xf0, /* blink tr0, r63 */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0x6f, 0xf0, 0xff, 0xf0, /* nop */ - 0xce, 0x00, 0x01, 0x10, /* movi -GOT_BIAS, r17 */ - 0x00, 0xc9, 0x45, 0x10, /* add r12, r17, r17 */ - 0x8d, 0x10, 0x09, 0x90, /* ld.q r17, 16, r25 */ - 0x6b, 0xf1, 0x66, 0x00, /* ptabs r25, tr0 */ - 0x8d, 0x10, 0x05, 0x10, /* ld.q r17, 8, r17 */ - 0xcc, 0x00, 0x01, 0x50, /* movi reloc-offset >> 16, r21 */ - 0xc8, 0x00, 0x01, 0x50, /* shori reloc-offset & 65535, r21 */ - 0x44, 0x01, 0xff, 0xf0, /* blink tr0, r63 */ -}; - -static const bfd_byte elf_sh64_pic_plt_entry_le[PLT_ENTRY_SIZE] = -{ - 0x90, 0x01, 0x00, 0xcc, /* movi nameN@GOT >> 16, r25 */ - 0x90, 0x01, 0x00, 0xc8, /* shori nameN@GOT & 65535, r25 */ - 0x90, 0x65, 0xc3, 0x40, /* ldx.q r12, r25, r25 */ - 0x00, 0x66, 0xf1, 0x6b, /* ptabs r25, tr0 */ - 0xf0, 0xff, 0x01, 0x44, /* blink tr0, r63 */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0xf0, 0xff, 0xf0, 0x6f, /* nop */ - 0x10, 0x01, 0x00, 0xce, /* movi -GOT_BIAS, r17 */ - 0x10, 0x45, 0xc9, 0x00, /* add r12, r17, r17 */ - 0x90, 0x09, 0x10, 0x8d, /* ld.q r17, 16, r25 */ - 0x00, 0x66, 0xf1, 0x6b, /* ptabs r25, tr0 */ - 0x10, 0x05, 0x10, 0x8d, /* ld.q r17, 8, r17 */ - 0x50, 0x01, 0x00, 0xcc, /* movi reloc-offset >> 16, r21 */ - 0x50, 0x01, 0x00, 0xc8, /* shori reloc-offset & 65535, r21 */ - 0xf0, 0xff, 0x01, 0x44, /* blink tr0, r63 */ -}; - -static const bfd_byte *elf_sh64_plt0_entry; -static const bfd_byte *elf_sh64_plt_entry; -static const bfd_byte *elf_sh64_pic_plt_entry; - -/* Create an entry in an sh ELF linker hash table. */ - -static struct bfd_hash_entry * -sh64_elf64_link_hash_newfunc (struct bfd_hash_entry *entry, - struct bfd_hash_table *table, - const char *string) -{ - struct elf_sh64_link_hash_entry *ret = - (struct elf_sh64_link_hash_entry *) entry; - - /* Allocate the structure if it has not already been allocated by a - subclass. */ - if (ret == (struct elf_sh64_link_hash_entry *) NULL) - ret = ((struct elf_sh64_link_hash_entry *) - bfd_hash_allocate (table, - sizeof (struct elf_sh64_link_hash_entry))); - if (ret == (struct elf_sh64_link_hash_entry *) NULL) - return (struct bfd_hash_entry *) ret; - - /* Call the allocation method of the superclass. */ - ret = ((struct elf_sh64_link_hash_entry *) - _bfd_elf_link_hash_newfunc ((struct bfd_hash_entry *) ret, - table, string)); - if (ret != (struct elf_sh64_link_hash_entry *) NULL) - { - ret->pcrel_relocs_copied = NULL; - ret->datalabel_got_offset = (bfd_vma) -1; - } - - return (struct bfd_hash_entry *) ret; -} - -/* Create an sh64 ELF linker hash table. */ - -static struct bfd_link_hash_table * -sh64_elf64_link_hash_table_create (bfd *abfd) -{ - struct elf_link_hash_table *ret; - - ret = (struct elf_link_hash_table *) bfd_zmalloc (sizeof (* ret)); - if (ret == (struct elf_link_hash_table *) NULL) - return NULL; - - if (!_bfd_elf_link_hash_table_init (ret, abfd, - sh64_elf64_link_hash_newfunc, - sizeof (struct elf_sh64_link_hash_entry), - GENERIC_ELF_DATA)) - { - free (ret); - return NULL; - } - - return &ret->root; -} - -inline static void -movi_shori_putval (bfd *output_bfd, unsigned long value, bfd_byte *addr) -{ - bfd_put_32 (output_bfd, - bfd_get_32 (output_bfd, addr) - | ((value >> 6) & 0x3fffc00), - addr); - bfd_put_32 (output_bfd, - bfd_get_32 (output_bfd, addr + 4) - | ((value << 10) & 0x3fffc00), - addr + 4); -} - -inline static void -movi_3shori_putval (bfd *output_bfd, bfd_vma value, bfd_byte *addr) -{ - bfd_put_32 (output_bfd, - bfd_get_32 (output_bfd, addr) - | ((value >> 38) & 0x3fffc00), - addr); - bfd_put_32 (output_bfd, - bfd_get_32 (output_bfd, addr + 4) - | ((value >> 22) & 0x3fffc00), - addr + 4); - bfd_put_32 (output_bfd, - bfd_get_32 (output_bfd, addr + 8) - | ((value >> 6) & 0x3fffc00), - addr + 8); - bfd_put_32 (output_bfd, - bfd_get_32 (output_bfd, addr + 12) - | ((value << 10) & 0x3fffc00), - addr + 12); -} - -/* Create dynamic sections when linking against a dynamic object. */ - -static bfd_boolean -sh64_elf64_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info) -{ - flagword flags, pltflags; - register asection *s; - const 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); - - 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_anyway_with_flags (abfd, ".plt", pltflags); - if (s == NULL - || ! 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; - struct bfd_link_hash_entry *bh = NULL; - - if (! (_bfd_generic_link_add_one_symbol - (info, abfd, "_PROCEDURE_LINKAGE_TABLE_", BSF_GLOBAL, s, - (bfd_vma) 0, (const char *) NULL, FALSE, bed->collect, &bh))) - return FALSE; - - h = (struct elf_link_hash_entry *) bh; - h->def_regular = 1; - h->type = STT_OBJECT; - elf_hash_table (info)->hplt = h; - - if (bfd_link_pic (info) - && ! bfd_elf_link_record_dynamic_symbol (info, h)) - return FALSE; - } - - s = bfd_make_section_anyway_with_flags (abfd, - bed->default_use_rela_p - ? ".rela.plt" : ".rel.plt", - flags | SEC_READONLY); - if (s == NULL - || ! bfd_set_section_alignment (abfd, s, ptralign)) - return FALSE; - - if (! _bfd_elf_create_got_section (abfd, info)) - 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_anyway_with_flags (abfd, ".dynbss", - SEC_ALLOC | SEC_LINKER_CREATED); - if (s == NULL) - 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 (! bfd_link_pic (info)) - { - s = bfd_make_section_anyway_with_flags (abfd, - (bed->default_use_rela_p - ? ".rela.bss" : ".rel.bss"), - flags | SEC_READONLY); - if (s == NULL - || ! 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 -sh64_elf64_adjust_dynamic_symbol (struct bfd_link_info *info, - struct elf_link_hash_entry *h) -{ - bfd *dynobj; - asection *s; - - dynobj = elf_hash_table (info)->dynobj; - - /* Make sure we know what is going on here. */ - BFD_ASSERT (dynobj != NULL - && (h->needs_plt - || h->is_weakalias - || (h->def_dynamic - && h->ref_regular - && !h->def_regular))); - - /* 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->needs_plt) - { - if (! bfd_link_pic (info) - && !h->def_dynamic - && !h->ref_dynamic) - { - /* 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 REL64 - reloc instead. */ - BFD_ASSERT (h->needs_plt); - return TRUE; - } - - /* 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; - } - - s = elf_hash_table (info)->splt; - BFD_ASSERT (s != NULL); - - /* If this is the first .plt entry, make room for the special - first entry. */ - if (s->size == 0) - s->size += PLT_ENTRY_SIZE; - - /* If this symbol is not defined in a regular file, and we are - not generating a shared library, then set the symbol to this - location in the .plt. This is required to make function - pointers compare as equal between the normal executable and - the shared library. */ - if (! bfd_link_pic (info) - && !h->def_regular) - { - h->root.u.def.section = s; - h->root.u.def.value = s->size; - } - - h->plt.offset = s->size; - - /* Make room for this entry. */ - s->size += elf_sh64_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 = elf_hash_table (info)->sgotplt; - BFD_ASSERT (s != NULL); - s->size += 8; - - /* We also need to make an entry in the .rela.plt section. */ - - s = elf_hash_table (info)->srelplt; - BFD_ASSERT (s != NULL); - s->size += sizeof (Elf64_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->is_weakalias) - { - struct elf_link_hash_entry *def = weakdef (h); - BFD_ASSERT (def->root.type == bfd_link_hash_defined); - h->root.u.def.section = def->root.u.def.section; - h->root.u.def.value = def->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 (bfd_link_pic (info)) - 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->non_got_ref) - return TRUE; - - /* We must allocate the symbol in our .dynbss section, which will - become part of the .bss section of the executable. There will be - an entry for this symbol in the .dynsym section. The dynamic - 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_linker_section (dynobj, ".dynbss"); - BFD_ASSERT (s != NULL); - - /* We must generate a R_SH_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 && h->size != 0) - { - asection *srel; - - srel = bfd_get_linker_section (dynobj, ".rela.bss"); - BFD_ASSERT (srel != NULL); - srel->size += sizeof (Elf64_External_Rela); - h->needs_copy = 1; - } - - return _bfd_elf_adjust_dynamic_copy (info, h, s); -} - -/* This function is called via sh_elf_link_hash_traverse if we are - creating a shared object with -Bsymbolic. It discards the space - allocated to copy PC relative relocs against symbols which are - defined in regular objects. We allocated space for them in the - check_relocs routine, but we won't fill them in in the - relocate_section routine. */ - -static bfd_boolean -sh64_elf64_discard_copies (struct elf_sh64_link_hash_entry *h, - void *ignore ATTRIBUTE_UNUSED) -{ - struct elf_sh64_pcrel_relocs_copied *s; - - /* We only discard relocs for symbols defined in a regular object. */ - if (!h->root.def_regular) - return TRUE; - - for (s = h->pcrel_relocs_copied; s != NULL; s = s->next) - s->section->size -= s->count * sizeof (Elf64_External_Rela); - - return TRUE; -} - -/* Set the sizes of the dynamic sections. */ - -static bfd_boolean -sh64_elf64_size_dynamic_sections (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 (bfd_link_executable (info) && !info->nointerp) - { - s = bfd_get_linker_section (dynobj, ".interp"); - BFD_ASSERT (s != NULL); - s->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 = elf_hash_table (info)->srelgot; - if (s != NULL) - s->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 (bfd_link_pic (info) && info->symbolic) - sh64_elf64_link_hash_traverse (elf_hash_table (info), - sh64_elf64_discard_copies, NULL); - - /* The check_relocs and adjust_dynamic_symbol entry points have - determined the sizes of the various dynamic sections. Allocate - memory for them. */ - plt = FALSE; - relocs = FALSE; - reltext = FALSE; - for (s = dynobj->sections; s != NULL; s = s->next) - { - const char *name; - - 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); - - if (strcmp (name, ".plt") == 0) - { - /* Remember whether there is a PLT. */ - plt = s->size != 0; - } - else if (CONST_STRNEQ (name, ".rela")) - { - if (s->size != 0) - { - 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 (! CONST_STRNEQ (name, ".got") - && strcmp (name, ".dynbss") != 0) - { - /* It's not one of our sections, so don't allocate space. */ - continue; - } - - if (s->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. */ - s->flags |= SEC_EXCLUDE; - continue; - } - - if ((s->flags & SEC_HAS_CONTENTS) == 0) - continue; - - /* Allocate memory for the section contents. */ - s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->size); - if (s->contents == NULL) - return FALSE; - } - - if (elf_hash_table (info)->dynamic_sections_created) - { - /* Add some entries to the .dynamic section. We fill in the - values later, in sh64_elf64_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 (bfd_link_executable (info)) - { - if (!_bfd_elf_add_dynamic_entry (info, DT_DEBUG, 0)) - return FALSE; - } - - if (plt) - { - if (!_bfd_elf_add_dynamic_entry (info, DT_PLTGOT, 0) - || !_bfd_elf_add_dynamic_entry (info, DT_PLTRELSZ, 0) - || !_bfd_elf_add_dynamic_entry (info, DT_PLTREL, DT_RELA) - || !_bfd_elf_add_dynamic_entry (info, DT_JMPREL, 0)) - return FALSE; - } - - if (relocs) - { - if (!_bfd_elf_add_dynamic_entry (info, DT_RELA, 0) - || !_bfd_elf_add_dynamic_entry (info, DT_RELASZ, 0) - || !_bfd_elf_add_dynamic_entry (info, DT_RELAENT, - sizeof (Elf64_External_Rela))) - return FALSE; - } - - if (reltext) - { - if (!_bfd_elf_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 -sh64_elf64_finish_dynamic_symbol (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; - bfd_byte *loc; - - /* This symbol has an entry in the procedure linkage table. Set - it up. */ - - BFD_ASSERT (h->dynindx != -1); - - splt = elf_hash_table (info)->splt; - sgot = elf_hash_table (info)->sgotplt; - srel = elf_hash_table (info)->srelplt; - 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_sh64_sizeof_plt (info) - 1; - - /* Get the offset into the .got table of the entry that - corresponds to this function. Each .got entry is 8 bytes. - The first three are reserved. */ - got_offset = (plt_index + 3) * 8; - - if (bfd_link_pic (info)) - got_offset -= GOT_BIAS; - - /* Fill in the entry in the procedure linkage table. */ - if (! bfd_link_pic (info)) - { - if (elf_sh64_plt_entry == NULL) - { - elf_sh64_plt_entry = (bfd_big_endian (output_bfd) ? - elf_sh64_plt_entry_be : elf_sh64_plt_entry_le); - } - memcpy (splt->contents + h->plt.offset, elf_sh64_plt_entry, - elf_sh64_sizeof_plt (info)); - movi_3shori_putval (output_bfd, - (sgot->output_section->vma - + sgot->output_offset - + got_offset), - (splt->contents + h->plt.offset - + elf_sh64_plt_symbol_offset (info))); - - /* Set bottom bit because its for a branch to SHmedia */ - movi_shori_putval (output_bfd, - -(h->plt.offset - + elf_sh64_plt_plt0_offset (info) + 8) - | 1, - (splt->contents + h->plt.offset - + elf_sh64_plt_plt0_offset (info))); - } - else - { - if (elf_sh64_pic_plt_entry == NULL) - { - elf_sh64_pic_plt_entry = (bfd_big_endian (output_bfd) ? - elf_sh64_pic_plt_entry_be : - elf_sh64_pic_plt_entry_le); - } - memcpy (splt->contents + h->plt.offset, elf_sh64_pic_plt_entry, - elf_sh64_sizeof_plt (info)); - movi_shori_putval (output_bfd, got_offset, - (splt->contents + h->plt.offset - + elf_sh64_plt_symbol_offset (info))); - } - - if (bfd_link_pic (info)) - got_offset += GOT_BIAS; - - movi_shori_putval (output_bfd, - plt_index * sizeof (Elf64_External_Rela), - (splt->contents + h->plt.offset - + elf_sh64_plt_reloc_offset (info))); - - /* Fill in the entry in the global offset table. */ - bfd_put_64 (output_bfd, - (splt->output_section->vma - + splt->output_offset - + h->plt.offset - + elf_sh64_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 = ELF64_R_INFO (h->dynindx, R_SH_JMP_SLOT64); - rel.r_addend = 0; - rel.r_addend = GOT_BIAS; - loc = srel->contents + plt_index * sizeof (Elf64_External_Rela); - bfd_elf64_swap_reloca_out (output_bfd, &rel, loc); - - if (!h->def_regular) - { - /* 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; - bfd_byte *loc; - - /* This symbol has an entry in the global offset table. Set it - up. */ - - sgot = elf_hash_table (info)->sgot; - srel = elf_hash_table (info)->srelgot; - 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 (bfd_link_pic (info) - && (info->symbolic || h->dynindx == -1) - && h->def_regular) - { - rel.r_info = ELF64_R_INFO (0, R_SH_RELATIVE64); - 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_64 (output_bfd, (bfd_vma) 0, sgot->contents + h->got.offset); - rel.r_info = ELF64_R_INFO (h->dynindx, R_SH_GLOB_DAT64); - rel.r_addend = 0; - } - - loc = srel->contents; - loc += srel->reloc_count++ * sizeof (Elf64_External_Rela); - bfd_elf64_swap_reloca_out (output_bfd, &rel, loc); - } - - if (h->needs_copy) - { - asection *s; - Elf_Internal_Rela rel; - bfd_byte *loc; - - /* 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_linker_section (dynobj, ".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 = ELF64_R_INFO (h->dynindx, R_SH_COPY64); - rel.r_addend = 0; - loc = s->contents; - loc += s->reloc_count++ * sizeof (Elf64_External_Rela); - bfd_elf64_swap_reloca_out (output_bfd, &rel, loc); - } - - /* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute. */ - if (h == elf_hash_table (info)->hdynamic - || h == elf_hash_table (info)->hgot) - sym->st_shndx = SHN_ABS; - - return TRUE; -} - -/* Finish up the dynamic sections. */ - -static bfd_boolean -sh64_elf64_finish_dynamic_sections (bfd *output_bfd, - struct bfd_link_info *info) -{ - bfd *dynobj; - asection *sgot; - asection *sdyn; - - dynobj = elf_hash_table (info)->dynobj; - - sgot = elf_hash_table (info)->sgotplt; - BFD_ASSERT (sgot != NULL); - sdyn = bfd_get_linker_section (dynobj, ".dynamic"); - - if (elf_hash_table (info)->dynamic_sections_created) - { - asection *splt; - Elf64_External_Dyn *dyncon, *dynconend; - - BFD_ASSERT (sdyn != NULL); - - dyncon = (Elf64_External_Dyn *) sdyn->contents; - dynconend = (Elf64_External_Dyn *) (sdyn->contents + sdyn->size); - for (; dyncon < dynconend; dyncon++) - { - Elf_Internal_Dyn dyn; - const char *name; - asection *s; - struct elf_link_hash_entry *h; - - bfd_elf64_swap_dyn_in (dynobj, dyncon, &dyn); - - switch (dyn.d_tag) - { - default: - break; - - case DT_INIT: - name = info->init_function; - goto get_sym; - - case DT_FINI: - name = info->fini_function; - get_sym: - if (dyn.d_un.d_val != 0) - { - h = elf_link_hash_lookup (elf_hash_table (info), name, - FALSE, FALSE, TRUE); - if (h != NULL && (h->other & STO_SH5_ISA32)) - { - dyn.d_un.d_val |= 1; - bfd_elf64_swap_dyn_out (output_bfd, &dyn, dyncon); - } - } - break; - - case DT_PLTGOT: - s = elf_hash_table (info)->sgotplt; - goto get_vma; - - case DT_JMPREL: - s = elf_hash_table (info)->srelplt; - get_vma: - dyn.d_un.d_ptr = s->output_section->vma + s->output_offset; - bfd_elf64_swap_dyn_out (output_bfd, &dyn, dyncon); - break; - - case DT_PLTRELSZ: - s = elf_hash_table (info)->srelplt; - dyn.d_un.d_val = s->size; - bfd_elf64_swap_dyn_out (output_bfd, &dyn, dyncon); - break; - } - } - - /* Fill in the first entry in the procedure linkage table. */ - splt = elf_hash_table (info)->splt; - if (splt && splt->size > 0) - { - if (bfd_link_pic (info)) - { - if (elf_sh64_pic_plt_entry == NULL) - { - elf_sh64_pic_plt_entry = (bfd_big_endian (output_bfd) ? - elf_sh64_pic_plt_entry_be : - elf_sh64_pic_plt_entry_le); - } - memcpy (splt->contents, elf_sh64_pic_plt_entry, - elf_sh64_sizeof_plt (info)); - } - else - { - if (elf_sh64_plt0_entry == NULL) - { - elf_sh64_plt0_entry = (bfd_big_endian (output_bfd) ? - elf_sh64_plt0_entry_be : - elf_sh64_plt0_entry_le); - } - memcpy (splt->contents, elf_sh64_plt0_entry, PLT_ENTRY_SIZE); - movi_3shori_putval (output_bfd, - sgot->output_section->vma - + sgot->output_offset, - splt->contents - + elf_sh64_plt0_gotplt_offset (info)); - } - - /* UnixWare sets the entsize of .plt to 8, although that doesn't - really seem like the right value. */ - elf_section_data (splt->output_section)->this_hdr.sh_entsize = 8; - } - } - - /* Fill in the first three entries in the global offset table. */ - if (sgot->size > 0) - { - if (sdyn == NULL) - bfd_put_64 (output_bfd, (bfd_vma) 0, sgot->contents); - else - bfd_put_64 (output_bfd, - sdyn->output_section->vma + sdyn->output_offset, - sgot->contents); - bfd_put_64 (output_bfd, (bfd_vma) 0, sgot->contents + 8); - bfd_put_64 (output_bfd, (bfd_vma) 0, sgot->contents + 16); - } - - elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 8; - - return TRUE; -} - -/* Merge non visibility st_other attribute when the symbol comes from - a dynamic object. */ -static void -sh64_elf64_merge_symbol_attribute (struct elf_link_hash_entry *h, - const Elf_Internal_Sym *isym, - bfd_boolean definition, - bfd_boolean dynamic ATTRIBUTE_UNUSED) -{ - if ((isym->st_other & ~ELF_ST_VISIBILITY (-1)) != 0) - { - unsigned char other; - - /* Take the balance of OTHER from the definition. */ - other = (definition ? isym->st_other : h->other); - other &= ~ ELF_ST_VISIBILITY (-1); - h->other = other | ELF_ST_VISIBILITY (h->other); - } - - return; -} - -static const struct bfd_elf_special_section sh64_elf64_special_sections[]= -{ - { STRING_COMMA_LEN (".cranges"), 0, SHT_PROGBITS, 0 }, - { NULL, 0, 0, 0, 0 } -}; - -#define TARGET_BIG_SYM sh64_elf64_vec -#define TARGET_BIG_NAME "elf64-sh64" -#define TARGET_LITTLE_SYM sh64_elf64_le_vec -#define TARGET_LITTLE_NAME "elf64-sh64l" -#define ELF_ARCH bfd_arch_sh -#define ELF_MACHINE_CODE EM_SH -#define ELF_MAXPAGESIZE 128 - -#define elf_symbol_leading_char '_' - -#define bfd_elf64_bfd_reloc_type_lookup sh_elf64_reloc_type_lookup -#define bfd_elf64_bfd_reloc_name_lookup \ - sh_elf64_reloc_name_lookup -#define elf_info_to_howto sh_elf64_info_to_howto - -/* Note: there's no relaxation at present. */ - -#define elf_backend_relocate_section sh_elf64_relocate_section -#define bfd_elf64_bfd_get_relocated_section_contents \ - sh_elf64_get_relocated_section_contents -#define elf_backend_object_p sh_elf64_set_mach_from_flags -#define bfd_elf64_bfd_set_private_flags \ - sh_elf64_set_private_flags -#define bfd_elf64_bfd_copy_private_bfd_data \ - sh_elf64_copy_private_data -#define bfd_elf64_bfd_merge_private_bfd_data \ - sh_elf64_merge_private_data -#define elf_backend_fake_sections sh64_elf64_fake_sections - -#define elf_backend_gc_mark_hook sh_elf64_gc_mark_hook -#define elf_backend_check_relocs sh_elf64_check_relocs - -#define elf_backend_can_gc_sections 1 - -#define elf_backend_get_symbol_type sh64_elf64_get_symbol_type - -#define elf_backend_add_symbol_hook sh64_elf64_add_symbol_hook - -#define elf_backend_link_output_symbol_hook \ - sh64_elf64_link_output_symbol_hook - -#define elf_backend_merge_symbol_attribute \ - sh64_elf64_merge_symbol_attribute - -#define elf_backend_final_write_processing \ - sh64_elf64_final_write_processing - -#define elf_backend_create_dynamic_sections \ - sh64_elf64_create_dynamic_sections -#define bfd_elf64_bfd_link_hash_table_create \ - sh64_elf64_link_hash_table_create -#define elf_backend_adjust_dynamic_symbol \ - sh64_elf64_adjust_dynamic_symbol -#define elf_backend_size_dynamic_sections \ - sh64_elf64_size_dynamic_sections -#define elf_backend_omit_section_dynsym \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true) -#define elf_backend_finish_dynamic_symbol \ - sh64_elf64_finish_dynamic_symbol -#define elf_backend_finish_dynamic_sections \ - sh64_elf64_finish_dynamic_sections -#define elf_backend_special_sections sh64_elf64_special_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 24 -#define elf_backend_dtrel_excludes_plt 1 - -#define elf_backend_linux_prpsinfo64_ugid16 TRUE - -#include "elf64-target.h" - -/* NetBSD support. */ -#undef TARGET_BIG_SYM -#define TARGET_BIG_SYM sh64_elf64_nbsd_vec -#undef TARGET_BIG_NAME -#define TARGET_BIG_NAME "elf64-sh64-nbsd" -#undef TARGET_LITTLE_SYM -#define TARGET_LITTLE_SYM sh64_elf64_nbsd_le_vec -#undef TARGET_LITTLE_NAME -#define TARGET_LITTLE_NAME "elf64-sh64l-nbsd" -#undef ELF_MAXPAGESIZE -#define ELF_MAXPAGESIZE 0x10000 -#undef elf_symbol_leading_char -#define elf_symbol_leading_char 0 - -#define elf64_bed elf64_sh64_nbsd_bed - -#include "elf64-target.h" - -/* Linux support. */ -#undef TARGET_BIG_SYM -#define TARGET_BIG_SYM sh64_elf64_linux_be_vec -#undef TARGET_BIG_NAME -#define TARGET_BIG_NAME "elf64-sh64big-linux" -#undef TARGET_LITTLE_SYM -#define TARGET_LITTLE_SYM sh64_elf64_linux_vec -#undef TARGET_LITTLE_NAME -#define TARGET_LITTLE_NAME "elf64-sh64-linux" -#undef elf64_bed -#define elf64_bed elf64_sh64_linux_bed - -#include "elf64-target.h" diff -Nru gdb-8.1/bfd/elf64-sparc.c gdb-8.2/bfd/elf64-sparc.c --- gdb-8.1/bfd/elf64-sparc.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf64-sparc.c 2018-09-05 07:44:28.000000000 +0000 @@ -122,15 +122,19 @@ r_type = ELF64_R_TYPE_ID (rela.r_info); if (r_type == R_SPARC_OLO10) { - relent->howto = _bfd_sparc_elf_info_to_howto_ptr (R_SPARC_LO10); + relent->howto = _bfd_sparc_elf_info_to_howto_ptr (abfd, R_SPARC_LO10); relent[1].address = relent->address; relent++; relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; relent->addend = ELF64_R_TYPE_DATA (rela.r_info); - relent->howto = _bfd_sparc_elf_info_to_howto_ptr (R_SPARC_13); + relent->howto = _bfd_sparc_elf_info_to_howto_ptr (abfd, R_SPARC_13); } else - relent->howto = _bfd_sparc_elf_info_to_howto_ptr (r_type); + { + relent->howto = _bfd_sparc_elf_info_to_howto_ptr (abfd, r_type); + if (relent->howto == NULL) + goto error_return; + } } canon_reloc_count (asect) += relent - relents; @@ -440,11 +444,6 @@ { static const char *const stt_types[] = { "NOTYPE", "OBJECT", "FUNCTION" }; - if (ELF_ST_TYPE (sym->st_info) == STT_GNU_IFUNC - && (abfd->flags & DYNAMIC) == 0 - && bfd_get_flavour (info->output_bfd) == bfd_target_elf_flavour) - elf_tdata (info->output_bfd)->has_gnu_symbols |= elf_gnu_symbol_ifunc; - if (ELF_ST_TYPE (sym->st_info) == STT_REGISTER) { int reg; @@ -457,7 +456,7 @@ case 6: reg -= 4; break; default: _bfd_error_handler - (_("%B: Only registers %%g[2367] can be declared using STT_REGISTER"), + (_("%pB: only registers %%g[2367] can be declared using STT_REGISTER"), abfd); return FALSE; } @@ -478,8 +477,8 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("Register %%g%d used incompatibly: %s in %B," - " previously %s in %B"), + (_("register %%g%d used incompatibly: %s in %pB," + " previously %s in %pB"), (int) sym->st_value, **namep ? *namep : "#scratch", abfd, *p->name ? p->name : "#scratch", p->abfd); return FALSE; @@ -502,8 +501,8 @@ type = 0; _bfd_error_handler /* xgettext:c-format */ - (_("Symbol `%s' has differing types: REGISTER in %B," - " previously %s in %B"), + (_("symbol `%s' has differing types: REGISTER in %pB," + " previously %s in %pB"), *namep, abfd, stt_types[type], p->abfd); return FALSE; } @@ -549,8 +548,8 @@ type = 0; _bfd_error_handler /* xgettext:c-format */ - (_("Symbol `%s' has differing types: %s in %B," - " previously REGISTER in %B"), + (_("Symbol `%s' has differing types: %s in %pB," + " previously REGISTER in %pB"), *namep, stt_types[type], abfd, p->abfd); return FALSE; } @@ -704,7 +703,7 @@ { error = TRUE; _bfd_error_handler - (_("%B: linking UltraSPARC specific with HAL specific code"), + (_("%pB: linking UltraSPARC specific with HAL specific code"), ibfd); } /* Choose the most restrictive memory ordering. */ @@ -724,7 +723,7 @@ error = TRUE; _bfd_error_handler /* xgettext:c-format */ - (_("%B: uses different e_flags (%#x) fields than previous modules (%#x)"), + (_("%pB: uses different e_flags (%#x) fields than previous modules (%#x)"), ibfd, new_flags, old_flags); } diff -Nru gdb-8.1/bfd/elf64-x86-64.c gdb-8.2/bfd/elf64-x86-64.c --- gdb-8.1/bfd/elf64-x86-64.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf64-x86-64.c 2018-09-05 07:27:13.000000000 +0000 @@ -282,9 +282,10 @@ if (r_type >= (unsigned int) R_X86_64_standard) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: invalid relocation type %d"), - abfd, (int) r_type); - r_type = R_X86_64_NONE; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return NULL; } i = r_type; } @@ -336,19 +337,18 @@ /* Given an x86_64 ELF reloc type, fill in an arelent structure. */ -static void -elf_x86_64_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr, +static bfd_boolean +elf_x86_64_info_to_howto (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { unsigned r_type; r_type = ELF32_R_TYPE (dst->r_info); - if (r_type != (unsigned int) R_X86_64_GNU_VTINHERIT - && r_type != (unsigned int) R_X86_64_GNU_VTENTRY) - r_type &= ~R_X86_64_converted_reloc_bit; cache_ptr->howto = elf_x86_64_rtype_to_howto (abfd, r_type); - + if (cache_ptr->howto == NULL) + return FALSE; BFD_ASSERT (r_type == cache_ptr->howto->type || cache_ptr->howto->type == R_X86_64_NONE); + return TRUE; } /* Support for core dump NOTE sections. */ @@ -439,6 +439,10 @@ } #ifdef CORE_HEADER +# if GCC_VERSION >= 8000 +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wstringop-truncation" +# endif static char * elf_x86_64_write_core_note (bfd *abfd, char *buf, int *bufsiz, int note_type, ...) @@ -524,6 +528,9 @@ } /* NOTREACHED */ } +# if GCC_VERSION >= 8000 +# pragma GCC diagnostic pop +# endif #endif /* Functions for the x86-64 ELF linker. */ @@ -653,6 +660,14 @@ 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00 /* nopw 0x0(%rax,%rax,1) */ }; +/* The TLSDESC entry in a lazy procedure linkage table. */ +static const bfd_byte elf_x86_64_tlsdesc_plt_entry[LAZY_PLT_ENTRY_SIZE] = +{ + 0xf3, 0x0f, 0x1e, 0xfa, /* endbr64 */ + 0xff, 0x35, 8, 0, 0, 0, /* pushq GOT+8(%rip) */ + 0xff, 0x25, 16, 0, 0, 0 /* jmpq *GOT+TDG(%rip) */ +}; + /* .eh_frame covering the lazy .plt section. */ static const bfd_byte elf_x86_64_eh_frame_lazy_plt[] = @@ -827,6 +842,12 @@ LAZY_PLT_ENTRY_SIZE, /* plt0_entry_size */ elf_x86_64_lazy_plt_entry, /* plt_entry */ LAZY_PLT_ENTRY_SIZE, /* plt_entry_size */ + elf_x86_64_tlsdesc_plt_entry, /* plt_tlsdesc_entry */ + LAZY_PLT_ENTRY_SIZE, /* plt_tlsdesc_entry_size */ + 6, /* plt_tlsdesc_got1_offset */ + 12, /* plt_tlsdesc_got2_offset */ + 10, /* plt_tlsdesc_got1_insn_end */ + 16, /* plt_tlsdesc_got2_insn_end */ 2, /* plt0_got1_offset */ 8, /* plt0_got2_offset */ 12, /* plt0_got2_insn_end */ @@ -859,6 +880,12 @@ LAZY_PLT_ENTRY_SIZE, /* plt0_entry_size */ elf_x86_64_lazy_bnd_plt_entry, /* plt_entry */ LAZY_PLT_ENTRY_SIZE, /* plt_entry_size */ + elf_x86_64_tlsdesc_plt_entry, /* plt_tlsdesc_entry */ + LAZY_PLT_ENTRY_SIZE, /* plt_tlsdesc_entry_size */ + 6, /* plt_tlsdesc_got1_offset */ + 12, /* plt_tlsdesc_got2_offset */ + 10, /* plt_tlsdesc_got1_insn_end */ + 16, /* plt_tlsdesc_got2_insn_end */ 2, /* plt0_got1_offset */ 1+8, /* plt0_got2_offset */ 1+12, /* plt0_got2_insn_end */ @@ -891,6 +918,12 @@ LAZY_PLT_ENTRY_SIZE, /* plt0_entry_size */ elf_x86_64_lazy_ibt_plt_entry, /* plt_entry */ LAZY_PLT_ENTRY_SIZE, /* plt_entry_size */ + elf_x86_64_tlsdesc_plt_entry, /* plt_tlsdesc_entry */ + LAZY_PLT_ENTRY_SIZE, /* plt_tlsdesc_entry_size */ + 6, /* plt_tlsdesc_got1_offset */ + 12, /* plt_tlsdesc_got2_offset */ + 10, /* plt_tlsdesc_got1_insn_end */ + 16, /* plt_tlsdesc_got2_insn_end */ 2, /* plt0_got1_offset */ 1+8, /* plt0_got2_offset */ 1+12, /* plt0_got2_insn_end */ @@ -912,6 +945,12 @@ LAZY_PLT_ENTRY_SIZE, /* plt0_entry_size */ elf_x32_lazy_ibt_plt_entry, /* plt_entry */ LAZY_PLT_ENTRY_SIZE, /* plt_entry_size */ + elf_x86_64_tlsdesc_plt_entry, /* plt_tlsdesc_entry */ + LAZY_PLT_ENTRY_SIZE, /* plt_tlsdesc_entry_size */ + 6, /* plt_tlsdesc_got1_offset */ + 12, /* plt_tlsdesc_got2_offset */ + 10, /* plt_tlsdesc_got1_insn_end */ + 16, /* plt_tlsdesc_got2_insn_end */ 2, /* plt0_got1_offset */ 8, /* plt0_got2_offset */ 12, /* plt0_got2_insn_end */ @@ -1311,6 +1350,9 @@ from = elf_x86_64_rtype_to_howto (abfd, from_type); to = elf_x86_64_rtype_to_howto (abfd, to_type); + if (from == NULL || to == NULL) + return FALSE; + if (h) name = h->root.root.string; else @@ -1332,9 +1374,9 @@ _bfd_error_handler /* xgettext:c-format */ - (_("%B: TLS transition from %s to %s against `%s' at %#Lx " - "in section `%A' failed"), - abfd, from->name, to->name, name, rel->r_offset, sec); + (_("%pB: TLS transition from %s to %s against `%s' at %#" PRIx64 + " in section `%pA' failed"), + abfd, from->name, to->name, name, (uint64_t) rel->r_offset, sec); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -1401,7 +1443,7 @@ object = _("a PDE object"); /* xgettext:c-format */ - _bfd_error_handler (_("%B: relocation %s against %s%s`%s' can " + _bfd_error_handler (_("%pB: relocation %s against %s%s`%s' can " "not be used when making %s%s"), input_bfd, howto->name, und, v, name, object, pic); @@ -1820,7 +1862,7 @@ if (r_symndx >= NUM_SHDR_ENTRIES (symtab_hdr)) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: bad symbol index: %d"), + _bfd_error_handler (_("%pB: bad symbol index: %d"), abfd, r_symndx); goto error_return; } @@ -1886,7 +1928,7 @@ NULL); _bfd_error_handler /* xgettext:c-format */ - (_("%B: relocation %s against symbol `%s' isn't " + (_("%pB: relocation %s against symbol `%s' isn't " "supported in x32 mode"), abfd, x86_64_elf_howto_table[r_type].name, name); bfd_set_error (bfd_error_bad_value); @@ -1927,6 +1969,10 @@ rel, rel_end, h, r_symndx, FALSE)) goto error_return; + /* Check if _GLOBAL_OFFSET_TABLE_ is referenced. */ + if (h == htab->elf.hgot) + htab->got_referenced = TRUE; + eh = (struct elf_x86_link_hash_entry *) h; switch (r_type) { @@ -2024,7 +2070,7 @@ isym, NULL); _bfd_error_handler /* xgettext:c-format */ - (_("%B: '%s' accessed both as normal and" + (_("%pB: '%s' accessed both as normal and" " thread local symbol"), abfd, name); bfd_set_error (bfd_error_bad_value); @@ -2131,7 +2177,17 @@ as pointer, make sure that PLT is used if foo is a function defined in a shared library. */ if ((sec->flags & SEC_CODE) == 0) - h->pointer_equality_needed = 1; + { + h->pointer_equality_needed = 1; + if (bfd_link_pie (info) + && h->type == STT_FUNC + && !h->def_regular + && h->def_dynamic) + { + h->needs_plt = 1; + h->plt.refcount = 1; + } + } } else if (r_type != R_X86_64_PC32_BND && r_type != R_X86_64_PC64) @@ -2169,7 +2225,7 @@ size_reloc = FALSE; do_size: - if (NEED_DYNAMIC_RELOCATION_P (info, h, sec, r_type, + if (NEED_DYNAMIC_RELOCATION_P (info, TRUE, h, sec, r_type, htab->pointer_r_type)) { struct elf_dyn_relocs *p; @@ -2303,24 +2359,6 @@ return address - static_tls_size - htab->tls_sec->vma; } -/* Is the instruction before OFFSET in CONTENTS a 32bit relative - branch? */ - -static bfd_boolean -is_32bit_relative_branch (bfd_byte *contents, bfd_vma offset) -{ - /* Opcode Instruction - 0xe8 call - 0xe9 jump - 0x0f 0x8x conditional jump */ - return ((offset > 0 - && (contents [offset - 1] == 0xe8 - || contents [offset - 1] == 0xe9)) - || (offset > 1 - && contents [offset - 2] == 0x0f - && (contents [offset - 1] & 0xf0) == 0x80)); -} - /* Relocate an x86_64 ELF section. */ static bfd_boolean @@ -2393,8 +2431,13 @@ continue; } + r_symndx = htab->r_sym (rel->r_info); converted_reloc = (r_type & R_X86_64_converted_reloc_bit) != 0; - r_type &= ~R_X86_64_converted_reloc_bit; + if (converted_reloc) + { + r_type &= ~R_X86_64_converted_reloc_bit; + rel->r_info = htab->r_info (r_symndx, r_type); + } if (r_type >= (int) R_X86_64_standard) return _bfd_unrecognized_reloc (input_bfd, input_section, r_type); @@ -2405,7 +2448,6 @@ else howto = (x86_64_elf_howto_table + ARRAY_SIZE (x86_64_elf_howto_table) - 1); - r_symndx = htab->r_sym (rel->r_info); h = NULL; sym = NULL; sec = NULL; @@ -2501,6 +2543,10 @@ if ((input_section->flags & SEC_ALLOC) == 0) { + /* If this is a SHT_NOTE section without SHF_ALLOC, treat + STT_GNU_IFUNC symbol as STT_FUNC. */ + if (elf_section_type (input_section) == SHT_NOTE) + goto skip_ifunc; /* Dynamic relocs are not propagated for SEC_DEBUGGING sections because such sections are not SEC_ALLOC and thus ld.so will not process them. */ @@ -2622,7 +2668,7 @@ NULL); _bfd_error_handler /* xgettext:c-format */ - (_("%B: relocation %s against STT_GNU_IFUNC " + (_("%pB: relocation %s against STT_GNU_IFUNC " "symbol `%s' isn't supported"), input_bfd, howto->name, name); bfd_set_error (bfd_error_bad_value); @@ -2648,9 +2694,9 @@ sym, NULL); _bfd_error_handler /* xgettext:c-format */ - (_("%B: relocation %s against STT_GNU_IFUNC " - "symbol `%s' has non-zero addend: %Ld"), - input_bfd, howto->name, name, rel->r_addend); + (_("%pB: relocation %s against STT_GNU_IFUNC " + "symbol `%s' has non-zero addend: %" PRId64), + input_bfd, howto->name, name, (int64_t) rel->r_addend); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -2679,7 +2725,7 @@ if (POINTER_LOCAL_IFUNC_P (info, h)) { - info->callbacks->minfo (_("Local IFUNC function `%s' in %B\n"), + info->callbacks->minfo (_("Local IFUNC function `%s' in %pB\n"), h->root.root.string, h->root.u.def.section->owner); @@ -2724,6 +2770,7 @@ } } +skip_ifunc: resolved_to_zero = (eh != NULL && UNDEFINED_WEAK_RESOLVED_TO_ZERO (info, eh)); @@ -2885,7 +2932,7 @@ _bfd_error_handler /* xgettext:c-format */ - (_("%B: relocation R_X86_64_GOTOFF64 against undefined %s" + (_("%pB: relocation R_X86_64_GOTOFF64 against undefined %s" " `%s' can not be used when making a shared object"), input_bfd, v, h->root.root.string); bfd_set_error (bfd_error_bad_value); @@ -2899,7 +2946,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: relocation R_X86_64_GOTOFF64 against protected %s" + (_("%pB: relocation R_X86_64_GOTOFF64 against protected %s" " `%s' can not be used when making a shared object"), input_bfd, h->type == STT_FUNC ? "function" : "data", @@ -2982,6 +3029,7 @@ break; } +use_plt: if (h->plt.offset != (bfd_vma) -1) { if (htab->plt_second != NULL) @@ -3019,14 +3067,18 @@ case R_X86_64_PC32: case R_X86_64_PC32_BND: /* Don't complain about -fPIC if the symbol is undefined when - building executable unless it is unresolved weak symbol or - -z nocopyreloc is used. */ + building executable unless it is unresolved weak symbol, + references a dynamic definition in PIE or -z nocopyreloc + is used. */ if ((input_section->flags & SEC_ALLOC) != 0 && (input_section->flags & SEC_READONLY) != 0 && h != NULL && ((bfd_link_executable (info) && ((h->root.type == bfd_link_hash_undefweak && !resolved_to_zero) + || (bfd_link_pie (info) + && !h->def_regular + && h->def_dynamic) || ((info->nocopyreloc || (eh->def_protected && elf_has_no_copy_on_protected (h->root.u.def.section->owner))) @@ -3035,32 +3087,36 @@ || bfd_link_dll (info))) { bfd_boolean fail = FALSE; - bfd_boolean branch - = ((r_type == R_X86_64_PC32 - || r_type == R_X86_64_PC32_BND) - && is_32bit_relative_branch (contents, rel->r_offset)); - if (SYMBOL_REFERENCES_LOCAL_P (info, h)) { /* Symbol is referenced locally. Make sure it is - defined locally or for a branch. */ - fail = (!(h->def_regular || ELF_COMMON_DEF_P (h)) - && !branch); + defined locally. */ + fail = !(h->def_regular || ELF_COMMON_DEF_P (h)); } else if (!(bfd_link_pie (info) && (h->needs_copy || eh->needs_copy))) { /* Symbol doesn't need copy reloc and isn't referenced - locally. We only allow branch to symbol with - non-default visibility. */ - fail = (!branch - || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT); + locally. Address of protected function may not be + reachable at run-time. */ + fail = (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT + || (ELF_ST_VISIBILITY (h->other) == STV_PROTECTED + && h->type == STT_FUNC)); } if (fail) return elf_x86_64_need_pic (info, input_bfd, input_section, h, NULL, NULL, howto); } + /* Since x86-64 has PC-relative PLT, we can use PLT in PIE + as function address. */ + else if (h != NULL + && (input_section->flags & SEC_CODE) == 0 + && bfd_link_pie (info) + && h->type == STT_FUNC + && !h->def_regular + && h->def_dynamic) + goto use_plt; /* Fall through. */ case R_X86_64_8: @@ -3150,11 +3206,12 @@ sym, NULL); _bfd_error_handler /* xgettext:c-format */ - (_("%B: addend %s%#x in relocation %s against " - "symbol `%s' at %#Lx in section `%A' is " - "out of range"), + (_("%pB: addend %s%#x in relocation %s against " + "symbol `%s' at %#" PRIx64 + " in section `%pA' is out of range"), input_bfd, addend < 0 ? "-" : "", addend, - howto->name, name, rel->r_offset, input_section); + howto->name, name, (uint64_t) rel->r_offset, + input_section); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -3787,10 +3844,11 @@ default: _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"), + (_("%pB(%pA+%#" PRIx64 "): " + "unresolvable %s relocation against symbol `%s'"), input_bfd, input_section, - rel->r_offset, + (uint64_t) rel->r_offset, howto->name, h->root.root.string); return FALSE; @@ -3836,9 +3894,9 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): reloc against `%s': error %d"), + (_("%pB(%pA+%#" PRIx64 "): reloc against `%s': error %d"), input_bfd, input_section, - rel->r_offset, name, (int) r); + (uint64_t) rel->r_offset, name, (int) r); return FALSE; } } @@ -3983,7 +4041,7 @@ /* Check PC-relative offset overflow in PLT entry. */ if ((plt_got_pcrel_offset + 0x80000000) > 0xffffffff) /* xgettext:c-format */ - info->callbacks->einfo (_("%F%B: PC-relative offset overflow in PLT entry for `%s'\n"), + info->callbacks->einfo (_("%F%pB: PC-relative offset overflow in PLT entry for `%s'\n"), output_bfd, h->root.root.string); bfd_put_32 (output_bfd, plt_got_pcrel_offset, @@ -4009,7 +4067,7 @@ + got_offset); if (PLT_LOCAL_IFUNC_P (info, h)) { - info->callbacks->minfo (_("Local IFUNC function `%s' in %B\n"), + info->callbacks->minfo (_("Local IFUNC function `%s' in %pB\n"), h->root.root.string, h->root.u.def.section->owner); @@ -4046,7 +4104,7 @@ will overflow first. */ if (plt0_offset > 0x80000000) /* xgettext:c-format */ - info->callbacks->einfo (_("%F%B: branch displacement overflow in PLT entry for `%s'\n"), + info->callbacks->einfo (_("%F%pB: branch displacement overflow in PLT entry for `%s'\n"), output_bfd, h->root.root.string); bfd_put_32 (output_bfd, - plt0_offset, (plt->contents + h->plt.offset @@ -4099,7 +4157,7 @@ if ((got_after_plt && got_pcrel_offset < 0) || (!got_after_plt && got_pcrel_offset > 0)) /* xgettext:c-format */ - info->callbacks->einfo (_("%F%B: PC-relative offset overflow in GOT PLT entry for `%s'\n"), + info->callbacks->einfo (_("%F%pB: PC-relative offset overflow in GOT PLT entry for `%s'\n"), output_bfd, h->root.root.string); bfd_put_32 (output_bfd, got_pcrel_offset, @@ -4125,6 +4183,8 @@ sym->st_value = 0; } + _bfd_x86_elf_link_fixup_ifunc_symbol (info, htab, h, sym); + /* Don't generate dynamic GOT relocation against undefined weak symbol in executable. */ if (h->got.offset != (bfd_vma) -1 @@ -4163,7 +4223,7 @@ } if (SYMBOL_REFERENCES_LOCAL_P (info, h)) { - info->callbacks->minfo (_("Local IFUNC function `%s' in %B\n"), + info->callbacks->minfo (_("Local IFUNC function `%s' in %pB\n"), h->root.root.string, h->root.u.def.section->owner); @@ -4397,11 +4457,12 @@ htab->elf.sgot->contents + htab->tlsdesc_got); memcpy (htab->elf.splt->contents + htab->tlsdesc_plt, - htab->lazy_plt->plt0_entry, - htab->lazy_plt->plt0_entry_size); + htab->lazy_plt->plt_tlsdesc_entry, + htab->lazy_plt->plt_tlsdesc_entry_size); - /* Add offset for pushq GOT+8(%rip), since the - instruction uses 6 bytes subtract this value. */ + /* Add offset for pushq GOT+8(%rip), since ENDBR64 uses 4 + bytes and the instruction uses 6 bytes, subtract these + values. */ bfd_put_32 (output_bfd, (htab->elf.sgotplt->output_section->vma + htab->elf.sgotplt->output_offset @@ -4409,14 +4470,13 @@ - htab->elf.splt->output_section->vma - htab->elf.splt->output_offset - htab->tlsdesc_plt - - 6), + - htab->lazy_plt->plt_tlsdesc_got1_insn_end), (htab->elf.splt->contents + htab->tlsdesc_plt - + htab->lazy_plt->plt0_got1_offset)); - /* Add offset for the PC-relative instruction accessing - GOT+TDG, where TDG stands for htab->tlsdesc_got, - subtracting the offset to the end of that - instruction. */ + + htab->lazy_plt->plt_tlsdesc_got1_offset)); + /* Add offset for indirect branch via GOT+TDG, where TDG + stands for htab->tlsdesc_got, subtracting the offset + to the end of that instruction. */ bfd_put_32 (output_bfd, (htab->elf.sgot->output_section->vma + htab->elf.sgot->output_offset @@ -4424,10 +4484,10 @@ - htab->elf.splt->output_section->vma - htab->elf.splt->output_offset - htab->tlsdesc_plt - - htab->lazy_plt->plt0_got2_insn_end), + - htab->lazy_plt->plt_tlsdesc_got2_insn_end), (htab->elf.splt->contents + htab->tlsdesc_plt - + htab->lazy_plt->plt0_got2_offset)); + + htab->lazy_plt->plt_tlsdesc_got2_offset)); } } @@ -4515,7 +4575,7 @@ if (relsize <= 0) return -1; - if (get_elf_x86_backend_data (abfd)->target_os == is_normal) + if (get_elf_x86_backend_data (abfd)->target_os != is_nacl) { lazy_plt = &elf_x86_64_lazy_plt; non_lazy_plt = &elf_x86_64_non_lazy_plt; @@ -4866,8 +4926,7 @@ /* This is unused for x86-64. */ init_table.plt0_pad_byte = 0x90; - if (get_elf_x86_backend_data (info->output_bfd)->target_os - == is_normal) + if (get_elf_x86_backend_data (info->output_bfd)->target_os != is_nacl) { if (info->bndplt) { @@ -4930,7 +4989,11 @@ #define ELF_ARCH bfd_arch_i386 #define ELF_TARGET_ID X86_64_ELF_DATA #define ELF_MACHINE_CODE EM_X86_64 -#define ELF_MAXPAGESIZE 0x200000 +#if DEFAULT_LD_Z_SEPARATE_CODE +# define ELF_MAXPAGESIZE 0x1000 +#else +# define ELF_MAXPAGESIZE 0x200000 +#endif #define ELF_MINPAGESIZE 0x1000 #define ELF_COMMONPAGESIZE 0x1000 @@ -4996,6 +5059,9 @@ #define elf_backend_hide_symbol \ _bfd_x86_elf_hide_symbol +#undef elf64_bed +#define elf64_bed elf64_x86_64_bed + #include "elf64-target.h" /* CloudABI support. */ @@ -5035,6 +5101,14 @@ #undef TARGET_LITTLE_NAME #define TARGET_LITTLE_NAME "elf64-x86-64-sol2" +static const struct elf_x86_backend_data elf_x86_64_solaris_arch_bed = + { + is_solaris /* os */ + }; + +#undef elf_backend_arch_data +#define elf_backend_arch_data &elf_x86_64_solaris_arch_bed + /* Restore default: we cannot use ELFOSABI_SOLARIS, otherwise ELFOSABI_NONE objects won't be recognized. */ #undef ELF_OSABI @@ -5202,6 +5276,12 @@ NACL_PLT_ENTRY_SIZE, /* plt0_entry_size */ elf_x86_64_nacl_plt_entry, /* plt_entry */ NACL_PLT_ENTRY_SIZE, /* plt_entry_size */ + elf_x86_64_nacl_plt0_entry, /* plt_tlsdesc_entry */ + NACL_PLT_ENTRY_SIZE, /* plt_tlsdesc_entry_size */ + 2, /* plt_tlsdesc_got1_offset */ + 9, /* plt_tlsdesc_got2_offset */ + 6, /* plt_tlsdesc_got1_insn_end */ + 13, /* plt_tlsdesc_got2_insn_end */ 2, /* plt0_got1_offset */ 9, /* plt0_got2_offset */ 13, /* plt0_got2_insn_end */ @@ -5272,6 +5352,9 @@ #define elf_backend_size_info \ _bfd_elf32_size_info +#undef elf32_bed +#define elf32_bed elf32_x86_64_bed + #include "elf32-target.h" /* Restore defaults. */ @@ -5315,7 +5398,11 @@ #undef ELF_MAXPAGESIZE #undef ELF_MINPAGESIZE #undef ELF_COMMONPAGESIZE -#define ELF_MAXPAGESIZE 0x200000 +#if DEFAULT_LD_Z_SEPARATE_CODE +# define ELF_MAXPAGESIZE 0x1000 +#else +# define ELF_MAXPAGESIZE 0x200000 +#endif #define ELF_MINPAGESIZE 0x1000 #define ELF_COMMONPAGESIZE 0x1000 #undef elf_backend_plt_alignment diff -Nru gdb-8.1/bfd/elf-attrs.c gdb-8.2/bfd/elf-attrs.c --- gdb-8.1/bfd/elf-attrs.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf-attrs.c 2018-09-05 07:27:13.000000000 +0000 @@ -42,6 +42,8 @@ static bfd_boolean is_default_attr (obj_attribute *attr) { + if (ATTR_TYPE_HAS_ERROR (attr->type)) + return TRUE; if (ATTR_TYPE_HAS_INT_VAL (attr->type) && attr->i != 0) return FALSE; if (ATTR_TYPE_HAS_STR_VAL (attr->type) && attr->s && *attr->s) @@ -438,6 +440,15 @@ /* PR 17512: file: 2844a11d. */ if (hdr->sh_size == 0) return; + if (hdr->sh_size > bfd_get_file_size (abfd)) + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: error: attribute section '%pA' too big: %#llx"), + abfd, hdr->bfd_section, (long long) hdr->sh_size); + bfd_set_error (bfd_error_invalid_operation); + return; + } + contents = (bfd_byte *) bfd_malloc (hdr->sh_size + 1); if (!contents) return; @@ -472,8 +483,9 @@ len -= section_len; if (section_len <= 4) { - _bfd_error_handler (_("%B: error: attribute section length too small: %ld"), - abfd, section_len); + _bfd_error_handler + (_("%pB: error: attribute section length too small: %" PRId64), + abfd, (int64_t) section_len); break; } section_len -= 4; @@ -600,7 +612,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("error: %B: Object has vendor-specific contents that " + (_("error: %pB: object has vendor-specific contents that " "must be processed by the '%s' toolchain"), ibfd, in_attr->s); return FALSE; @@ -610,7 +622,7 @@ || (in_attr->i != 0 && strcmp (in_attr->s, out_attr->s) != 0)) { /* xgettext:c-format */ - _bfd_error_handler (_("error: %B: Object tag '%d, %s' is " + _bfd_error_handler (_("error: %pB: object tag '%d, %s' is " "incompatible with tag '%d, %s'"), ibfd, in_attr->i, in_attr->s ? in_attr->s : "", diff -Nru gdb-8.1/bfd/elf-bfd.h gdb-8.2/bfd/elf-bfd.h --- gdb-8.1/bfd/elf-bfd.h 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/bfd/elf-bfd.h 2018-09-05 07:44:28.000000000 +0000 @@ -543,6 +543,9 @@ when linking against or generating a shared object. */ bfd_boolean dynamic_sections_created; + /* Whether dynamic relocations are present. */ + bfd_boolean dynamic_relocs; + /* True if this target has relocatable executables, so needs dynamic section symbols. */ bfd_boolean is_relocatable_executable; @@ -864,6 +867,9 @@ /* The common page size for this backend. */ bfd_vma commonpagesize; + /* The value of commonpagesize to use when -z relro for this backend. */ + bfd_vma relropagesize; + /* The BFD flags applied to sections created for dynamic linking. */ flagword dynamic_sec_flags; @@ -872,13 +878,13 @@ const void *arch_data; /* A function to translate an ELF RELA relocation to a BFD arelent - structure. */ - void (*elf_info_to_howto) + structure. Returns TRUE upon success, FALSE otherwise. */ + bfd_boolean (*elf_info_to_howto) (bfd *, arelent *, Elf_Internal_Rela *); /* A function to translate an ELF REL relocation to a BFD arelent - structure. */ - void (*elf_info_to_howto_rel) + structure. Returns TRUE upon success, FALSE otherwise. */ + bfd_boolean (*elf_info_to_howto_rel) (bfd *, arelent *, Elf_Internal_Rela *); /* A function to determine whether a symbol is global when @@ -1352,7 +1358,7 @@ (bfd *); reloc_howto_type *(*elf_backend_mips_rtype_to_howto) - (unsigned int, bfd_boolean); + (bfd *, unsigned int, bfd_boolean); /* The swapping table to use when dealing with ECOFF information. Used for the MIPS ELF .mdebug section. */ @@ -1668,6 +1674,7 @@ #define elf_linked_to_section(sec) (elf_section_data(sec)->linked_to) #define elf_section_type(sec) (elf_section_data(sec)->this_hdr.sh_type) #define elf_section_flags(sec) (elf_section_data(sec)->this_hdr.sh_flags) +#define elf_section_info(sec) (elf_section_data(sec)->this_hdr.sh_info) #define elf_group_name(sec) (elf_section_data(sec)->group.name) #define elf_group_id(sec) (elf_section_data(sec)->group.id) #define elf_next_in_group(sec) (elf_section_data(sec)->next_in_group) @@ -1692,17 +1699,20 @@ /* The value of an object attribute. The type indicates whether the attribute holds and integer, a string, or both. It can also indicate that there can - be no default (i.e. all values must be written to file, even zero). */ + be no default (i.e. all values must be written to file, even zero), or + that the value is in error and should not be written to file. */ typedef struct obj_attribute { #define ATTR_TYPE_FLAG_INT_VAL (1 << 0) #define ATTR_TYPE_FLAG_STR_VAL (1 << 1) #define ATTR_TYPE_FLAG_NO_DEFAULT (1 << 2) +#define ATTR_TYPE_FLAG_ERROR (1 << 3) #define ATTR_TYPE_HAS_INT_VAL(TYPE) ((TYPE) & ATTR_TYPE_FLAG_INT_VAL) #define ATTR_TYPE_HAS_STR_VAL(TYPE) ((TYPE) & ATTR_TYPE_FLAG_STR_VAL) #define ATTR_TYPE_HAS_NO_DEFAULT(TYPE) ((TYPE) & ATTR_TYPE_FLAG_NO_DEFAULT) +#define ATTR_TYPE_HAS_ERROR(TYPE) ((TYPE) & ATTR_TYPE_FLAG_ERROR) int type; unsigned int i; @@ -1909,6 +1919,10 @@ Elf_Internal_Shdr **group_sect_ptr; int num_group; + /* Index into group_sect_ptr, updated by setup_group when finding a + section's group. Used to optimize subsequent group searches. */ + unsigned int group_search_offset; + unsigned int symtab_section, dynsymtab_section; unsigned int dynversym_section, dynverdef_section, dynverref_section; @@ -2078,6 +2092,8 @@ struct elf_link_hash_entry *); extern void _bfd_elf_link_hash_hide_symbol (struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean); +extern void _bfd_elf_link_hide_symbol + (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *); extern bfd_boolean _bfd_elf_link_hash_fixup_symbol (struct bfd_link_info *, struct elf_link_hash_entry *); extern bfd_boolean _bfd_elf_link_hash_table_init @@ -2176,8 +2192,11 @@ extern const struct bfd_elf_special_section *_bfd_elf_get_sec_type_attr (bfd *, asection *); +extern bfd_boolean _bfd_elf_link_hide_sym_by_version + (struct bfd_link_info *, struct elf_link_hash_entry *); + /* If the target doesn't have reloc handling written yet: */ -extern void _bfd_elf_no_info_to_howto +extern bfd_boolean _bfd_elf_no_info_to_howto (bfd *, arelent *, Elf_Internal_Rela *); extern bfd_boolean bfd_section_from_shdr @@ -2266,7 +2285,9 @@ extern bfd_boolean _bfd_elf_link_create_dynamic_sections (bfd *, struct bfd_link_info *); -extern bfd_boolean _bfd_elf_link_omit_section_dynsym +extern bfd_boolean _bfd_elf_omit_section_dynsym_default + (bfd *, struct bfd_link_info *, asection *); +extern bfd_boolean _bfd_elf_omit_section_dynsym_all (bfd *, struct bfd_link_info *, asection *); extern bfd_boolean _bfd_elf_create_dynamic_sections (bfd *, struct bfd_link_info *); diff -Nru gdb-8.1/bfd/elf.c gdb-8.2/bfd/elf.c --- gdb-8.1/bfd/elf.c 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/bfd/elf.c 2018-09-05 07:44:28.000000000 +0000 @@ -298,6 +298,7 @@ /* Allocate and clear an extra byte at the end, to prevent crashes in case the string table is not terminated. */ if (shstrtabsize + 1 <= 1 + || shstrtabsize > bfd_get_file_size (abfd) || bfd_seek (abfd, offset, SEEK_SET) != 0 || (shstrtab = (bfd_byte *) bfd_alloc (abfd, shstrtabsize + 1)) == NULL) shstrtab = NULL; @@ -340,7 +341,7 @@ { /* PR 17512: file: f057ec89. */ /* xgettext:c-format */ - _bfd_error_handler (_("%B: attempt to load strings from" + _bfd_error_handler (_("%pB: attempt to load strings from" " a non-string section (number %d)"), abfd, shindex); return NULL; @@ -355,8 +356,8 @@ unsigned int shstrndx = elf_elfheader(abfd)->e_shstrndx; _bfd_error_handler /* xgettext:c-format */ - (_("%B: invalid string offset %u >= %Lu for section `%s'"), - abfd, strindex, hdr->sh_size, + (_("%pB: invalid string offset %u >= %" PRIu64 " for section `%s'"), + abfd, strindex, (uint64_t) hdr->sh_size, (shindex == shstrndx && strindex == hdr->sh_name ? ".shstrtab" : bfd_elf_string_from_elf_section (abfd, shstrndx, hdr->sh_name))); @@ -494,7 +495,7 @@ { symoffset += (esym - (bfd_byte *) extsym_buf) / extsym_size; /* xgettext:c-format */ - _bfd_error_handler (_("%B symbol number %lu references" + _bfd_error_handler (_("%pB symbol number %lu references" " nonexistent SHT_SYMTAB_SHNDX section"), ibfd, (unsigned long) symoffset); if (alloc_intsym != NULL) @@ -627,7 +628,8 @@ bfd_alloc2 (abfd, num_group, sizeof (Elf_Internal_Shdr *)); if (elf_tdata (abfd)->group_sect_ptr == NULL) return FALSE; - memset (elf_tdata (abfd)->group_sect_ptr, 0, num_group * sizeof (Elf_Internal_Shdr *)); + memset (elf_tdata (abfd)->group_sect_ptr, 0, + num_group * sizeof (Elf_Internal_Shdr *)); num_group = 0; for (i = 0; i < shnum; i++) @@ -658,8 +660,9 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: corrupt size field in group section" - " header: %#Lx"), abfd, shdr->sh_size); + (_("%pB: corrupt size field in group section" + " header: %#" PRIx64), + abfd, (uint64_t) shdr->sh_size); bfd_set_error (bfd_error_bad_value); -- num_group; continue; @@ -673,8 +676,9 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: invalid size field in group section" - " header: %#Lx"), abfd, shdr->sh_size); + (_("%pB: invalid size field in group section" + " header: %#" PRIx64 ""), + abfd, (uint64_t) shdr->sh_size); bfd_set_error (bfd_error_bad_value); -- num_group; /* PR 17510: If the group contents are even @@ -706,13 +710,24 @@ |= SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD; break; } - if (idx >= shnum) + if (idx < shnum) + { + dest->shdr = elf_elfsections (abfd)[idx]; + /* PR binutils/23199: All sections in a + section group should be marked with + SHF_GROUP. But some tools generate + broken objects without SHF_GROUP. Fix + them up here. */ + dest->shdr->sh_flags |= SHF_GROUP; + } + if (idx >= shnum + || dest->shdr->sh_type == SHT_GROUP) { _bfd_error_handler - (_("%B: invalid SHT_GROUP entry"), abfd); - idx = 0; + (_("%pB: invalid entry in SHT_GROUP section [%u]"), + abfd, i); + dest->shdr = NULL; } - dest->shdr = elf_elfsections (abfd)[idx]; } } } @@ -728,7 +743,7 @@ elf_tdata (abfd)->group_sect_ptr = NULL; elf_tdata (abfd)->num_group = num_group = -1; _bfd_error_handler - (_("%B: no valid group sections found"), abfd); + (_("%pB: no valid group sections found"), abfd); bfd_set_error (bfd_error_bad_value); } } @@ -737,10 +752,14 @@ if (num_group != (unsigned) -1) { - unsigned int i; + unsigned int search_offset = elf_tdata (abfd)->group_search_offset; + unsigned int j; - for (i = 0; i < num_group; i++) + for (j = 0; j < num_group; j++) { + /* Begin search from previous found group. */ + unsigned i = (j + search_offset) % num_group; + Elf_Internal_Shdr *shdr = elf_tdata (abfd)->group_sect_ptr[i]; Elf_Internal_Group *idx; bfd_size_type n_elt; @@ -753,7 +772,7 @@ { /* See PR 21957 for a reproducer. */ /* xgettext:c-format */ - _bfd_error_handler (_("%B: group section '%A' has no contents"), + _bfd_error_handler (_("%pB: group section '%pA' has no contents"), abfd, shdr->bfd_section); elf_tdata (abfd)->group_sect_ptr[i] = NULL; bfd_set_error (bfd_error_bad_value); @@ -774,7 +793,8 @@ idx = (Elf_Internal_Group *) shdr->contents; n_elt = shdr->sh_size / 4; while (--n_elt != 0) - if ((s = (++idx)->shdr->bfd_section) != NULL + if ((++idx)->shdr != NULL + && (s = idx->shdr->bfd_section) != NULL && elf_next_in_group (s) != NULL) break; if (n_elt != 0) @@ -803,7 +823,8 @@ if (shdr->bfd_section != NULL) elf_next_in_group (shdr->bfd_section) = newsect; - i = num_group - 1; + elf_tdata (abfd)->group_search_offset = i; + j = num_group - 1; break; } } @@ -812,7 +833,7 @@ if (elf_group_name (newsect) == NULL) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: no group info for section '%A'"), + _bfd_error_handler (_("%pB: no group info for section '%pA'"), abfd, newsect); return FALSE; } @@ -843,7 +864,7 @@ if (bed->link_order_error_handler) bed->link_order_error_handler /* xgettext:c-format */ - (_("%B: warning: sh_link not set for section `%A'"), + (_("%pB: warning: sh_link not set for section `%pA'"), abfd, s); } else @@ -863,7 +884,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: sh_link [%d] in section `%A' is incorrect"), + (_("%pB: sh_link [%d] in section `%pA' is incorrect"), s->owner, elfsec, s); result = FALSE; } @@ -876,7 +897,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: SHT_GROUP section [index %d] has no SHF_GROUP sections"), + (_("%pB: SHT_GROUP section [index %d] has no SHF_GROUP sections"), abfd, elf_section_data (s)->this_idx); result = FALSE; } @@ -897,7 +918,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: section group entry number %u is corrupt"), + (_("%pB: section group entry number %u is corrupt"), abfd, i); result = FALSE; continue; @@ -920,7 +941,7 @@ /* There are some unknown sections in the group. */ _bfd_error_handler /* xgettext:c-format */ - (_("%B: unknown type [%#x] section `%s' in group [%A]"), + (_("%pB: unknown type [%#x] section `%s' in group [%pA]"), abfd, idx->shdr->sh_type, bfd_elf_string_from_elf_section (abfd, @@ -1190,7 +1211,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: unable to initialize compress status for section %s"), + (_("%pB: unable to initialize compress status for section %s"), abfd, name); return FALSE; } @@ -1201,7 +1222,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: unable to initialize decompress status for section %s"), + (_("%pB: unable to initialize decompress status for section %s"), abfd, name); return FALSE; } @@ -1382,7 +1403,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: Invalid sh_link field (%d) in section number %d"), + (_("%pB: invalid sh_link field (%d) in section number %d"), ibfd, iheader->sh_link, secnum); return FALSE; } @@ -1398,7 +1419,7 @@ if we could not find a match ? */ _bfd_error_handler /* xgettext:c-format */ - (_("%B: Failed to find link section for section %d"), obfd, secnum); + (_("%pB: failed to find link section for section %d"), obfd, secnum); } if (iheader->sh_info) @@ -1425,7 +1446,7 @@ else _bfd_error_handler /* xgettext:c-format */ - (_("%B: Failed to find info section for section %d"), obfd, secnum); + (_("%pB: failed to find info section for section %d"), obfd, secnum); } return changed; @@ -1844,7 +1865,10 @@ if (vernum == 0) version_string = ""; - else if (vernum == 1) + else if (vernum == 1 + && (vernum > elf_tdata (abfd)->cverdefs + || (elf_tdata (abfd)->verdef[0].vd_flags + == VER_FLG_BASE))) version_string = "Base"; else if (vernum <= elf_tdata (abfd)->cverdefs) version_string = @@ -2008,7 +2032,7 @@ if (sections_being_created [shindex]) { _bfd_error_handler - (_("%B: warning: loop in section dependencies detected"), abfd); + (_("%pB: warning: loop in section dependencies detected"), abfd); return FALSE; } sections_being_created [shindex] = TRUE; @@ -2116,7 +2140,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: warning: multiple symbol tables detected" + (_("%pB: warning: multiple symbol tables detected" " - ignoring the table in section %u"), abfd, shindex); goto success; @@ -2200,7 +2224,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: warning: multiple dynamic symbol tables detected" + (_("%pB: warning: multiple dynamic symbol tables detected" " - ignoring the table in section %u"), abfd, shindex); goto success; @@ -2313,7 +2337,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: invalid link %u for reloc section %s (index %u)"), + (_("%pB: invalid link %u for reloc section %s (index %u)"), abfd, hdr->sh_link, name, shindex); ret = _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex); @@ -2472,7 +2496,7 @@ for applications? */ _bfd_error_handler /* xgettext:c-format */ - (_("%B: unknown type [%#x] section `%s'"), + (_("%pB: unknown type [%#x] section `%s'"), abfd, hdr->sh_type, name); else { @@ -2487,7 +2511,7 @@ /* FIXME: We should handle this section. */ _bfd_error_handler /* xgettext:c-format */ - (_("%B: unknown type [%#x] section `%s'"), + (_("%pB: unknown type [%#x] section `%s'"), abfd, hdr->sh_type, name); else if (hdr->sh_type >= SHT_LOOS && hdr->sh_type <= SHT_HIOS) { @@ -2498,7 +2522,7 @@ be rejected with an error message. */ _bfd_error_handler /* xgettext:c-format */ - (_("%B: unknown type [%#x] section `%s'"), + (_("%pB: unknown type [%#x] section `%s'"), abfd, hdr->sh_type, name); else { @@ -2511,7 +2535,7 @@ /* FIXME: We should handle this section. */ _bfd_error_handler /* xgettext:c-format */ - (_("%B: unknown type [%#x] section `%s'"), + (_("%pB: unknown type [%#x] section `%s'"), abfd, hdr->sh_type, name); goto fail; @@ -3216,7 +3240,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: error: Alignment power %d of section `%A' is too big"), + (_("%pB: error: alignment power %d of section `%pA' is too big"), abfd, asect->alignment_power, asect); arg->failed = TRUE; return; @@ -3246,7 +3270,7 @@ non-bss input sections to bss output sections, or emit data to a bss output section via a linker script. */ _bfd_error_handler - (_("warning: section `%A' type changed to PROGBITS"), asect); + (_("warning: section `%pA' type changed to PROGBITS"), asect); this_hdr->sh_type = sh_type; } @@ -3722,7 +3746,7 @@ if (section_number >= SHN_LORESERVE) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: too many sections: %u"), + _bfd_error_handler (_("%pB: too many sections: %u"), abfd, section_number); return FALSE; } @@ -3807,8 +3831,8 @@ asection *kept; _bfd_error_handler /* xgettext:c-format */ - (_("%B: sh_link of section `%A' points to" - " discarded section `%A' of `%B'"), + (_("%pB: sh_link of section `%pA' points to" + " discarded section `%pA' of `%pB'"), abfd, d->this_hdr.bfd_section, s, s->owner); /* Point to the kept section if it has the same @@ -3832,8 +3856,8 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: sh_link of section `%A' points to" - " removed section `%A' of `%B'"), + (_("%pB: sh_link of section `%pA' points to" + " removed section `%pA' of `%pB'"), abfd, d->this_hdr.bfd_section, s, s->owner); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -3854,7 +3878,7 @@ if (bed->link_order_error_handler) bed->link_order_error_handler /* xgettext:c-format */ - (_("%B: warning: sh_link not set for section `%A'"), + (_("%pB: warning: sh_link not set for section `%pA'"), abfd, sec); } } @@ -4015,15 +4039,22 @@ { elf_symbol_type *type_ptr; + if (sym == NULL) + return FALSE; + if ((sym->flags & BSF_SECTION_SYM) == 0) return FALSE; + if (sym->section == NULL) + return TRUE; + type_ptr = elf_symbol_from (abfd, sym); return ((type_ptr != NULL && type_ptr->internal_elf_sym.st_shndx != 0 && bfd_is_abs_section (sym->section)) || !(sym->section->owner == abfd - || (sym->section->output_section->owner == abfd + || (sym->section->output_section != NULL + && sym->section->output_section->owner == abfd && sym->section->output_offset == 0) || bfd_is_abs_section (sym->section))); } @@ -4384,7 +4415,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: GNU_MBIN section `%A' has invalid sh_info field: %d"), + (_("%pB: GNU_MBIN section `%pA' has invalid sh_info field: %d"), abfd, s, elf_section_data (s)->this_hdr.sh_info); continue; } @@ -4537,6 +4568,9 @@ return TRUE; } +#define IS_TBSS(s) \ + ((s->flags & (SEC_THREAD_LOCAL | SEC_LOAD)) == SEC_THREAD_LOCAL) + /* Set up a mapping from BFD sections to program segments. */ bfd_boolean @@ -4566,6 +4600,7 @@ asection **hdrpp; bfd_boolean phdr_in_segment = TRUE; bfd_boolean writable; + bfd_boolean executable; int tls_count = 0; asection *first_tls = NULL; asection *first_mbind = NULL; @@ -4654,6 +4689,7 @@ if (maxpagesize == 0) maxpagesize = 1; writable = FALSE; + executable = FALSE; dynsec = bfd_get_section_by_name (abfd, ".dynamic"); if (dynsec != NULL && (dynsec->flags & SEC_LOAD) == 0) @@ -4720,33 +4756,35 @@ the previous section, then we need a new segment. */ new_segment = TRUE; } + else if ((abfd->flags & D_PAGED) != 0 + && (((last_hdr->lma + last_size - 1) & -maxpagesize) + == (hdr->lma & -maxpagesize))) + { + /* If we are demand paged then we can't map two disk + pages onto the same memory page. */ + new_segment = FALSE; + } /* In the next test we have to be careful when last_hdr->lma is close to the end of the address space. If the aligned address wraps around to the start of the address space, then there are no more pages left in memory and it is OK to assume that the current section can be included in the current segment. */ - else if ((BFD_ALIGN (last_hdr->lma + last_size, maxpagesize) + maxpagesize - > last_hdr->lma) - && (BFD_ALIGN (last_hdr->lma + last_size, maxpagesize) + maxpagesize - <= hdr->lma)) + else if ((BFD_ALIGN (last_hdr->lma + last_size, maxpagesize) + + maxpagesize > last_hdr->lma) + && (BFD_ALIGN (last_hdr->lma + last_size, maxpagesize) + + maxpagesize <= hdr->lma)) { /* If putting this section in this segment would force us to skip a page in the segment, then we need a new segment. */ new_segment = TRUE; } else if ((last_hdr->flags & (SEC_LOAD | SEC_THREAD_LOCAL)) == 0 - && (hdr->flags & (SEC_LOAD | SEC_THREAD_LOCAL)) != 0 - && ((abfd->flags & D_PAGED) == 0 - || (((last_hdr->lma + last_size - 1) & -maxpagesize) - != (hdr->lma & -maxpagesize)))) + && (hdr->flags & (SEC_LOAD | SEC_THREAD_LOCAL)) != 0) { /* We don't want to put a loaded section after a nonloaded (ie. bss style) section in the same segment as that will force the non-loaded section to be loaded. - Consider .tbss sections as loaded for this purpose. - However, like the writable/non-writable case below, - if they are on the same page then they must be put - in the same segment. */ + Consider .tbss sections as loaded for this purpose. */ new_segment = TRUE; } else if ((abfd->flags & D_PAGED) == 0) @@ -4756,18 +4794,17 @@ file, then there is no other reason for a new segment. */ new_segment = FALSE; } + else if (info != NULL + && info->separate_code + && executable != ((hdr->flags & SEC_CODE) != 0)) + { + new_segment = TRUE; + } else if (! writable - && (hdr->flags & SEC_READONLY) == 0 - && (((last_hdr->lma + last_size - 1) & -maxpagesize) - != (hdr->lma & -maxpagesize))) + && (hdr->flags & SEC_READONLY) == 0) { /* We don't want to put a writable section in a read only - segment, unless they are on the same page in memory - anyhow. We already know that the last section does not - bring us past the current section on the page, so the - only case in which the new section is not on the same - page as the previous section is when the previous section - ends precisely on a page boundary. */ + segment. */ new_segment = TRUE; } else @@ -4789,13 +4826,11 @@ { if ((hdr->flags & SEC_READONLY) == 0) writable = TRUE; + if ((hdr->flags & SEC_CODE) != 0) + executable = TRUE; last_hdr = hdr; /* .tbss sections effectively have zero size. */ - if ((hdr->flags & (SEC_THREAD_LOCAL | SEC_LOAD)) - != SEC_THREAD_LOCAL) - last_size = hdr->size; - else - last_size = 0; + last_size = !IS_TBSS (hdr) ? hdr->size : 0; continue; } @@ -4814,12 +4849,14 @@ else writable = FALSE; + if ((hdr->flags & SEC_CODE) == 0) + executable = FALSE; + else + executable = TRUE; + last_hdr = hdr; /* .tbss sections effectively have zero size. */ - if ((hdr->flags & (SEC_THREAD_LOCAL | SEC_LOAD)) != SEC_THREAD_LOCAL) - last_size = hdr->size; - else - last_size = 0; + last_size = !IS_TBSS (hdr) ? hdr->size : 0; phdr_index = i; phdr_in_segment = FALSE; } @@ -4828,8 +4865,7 @@ for .tbss. */ if (last_hdr != NULL && (i - phdr_index != 1 - || ((last_hdr->flags & (SEC_THREAD_LOCAL | SEC_LOAD)) - != SEC_THREAD_LOCAL))) + || !IS_TBSS (last_hdr))) { m = make_mapping (abfd, sections, phdr_index, i, phdr_in_segment); if (m == NULL) @@ -4925,18 +4961,18 @@ if ((s->flags & SEC_THREAD_LOCAL) == 0) { _bfd_error_handler - (_("%B: TLS sections are not adjacent:"), abfd); + (_("%pB: TLS sections are not adjacent:"), abfd); s = first_tls; i = 0; while (i < (unsigned int) tls_count) { if ((s->flags & SEC_THREAD_LOCAL) != 0) { - _bfd_error_handler (_(" TLS: %A"), s); + _bfd_error_handler (_(" TLS: %pA"), s); i++; } else - _bfd_error_handler (_(" non-TLS: %A"), s); + _bfd_error_handler (_(" non-TLS: %pA"), s); s = s->next; } bfd_set_error (bfd_error_bad_value); @@ -5432,7 +5468,7 @@ && strcmp (m->sections[0]->name, ".dynamic") != 0) { _bfd_error_handler - (_("%B: The first section in the PT_DYNAMIC segment" + (_("%pB: The first section in the PT_DYNAMIC segment" " is not the .dynamic section"), abfd); bfd_set_error (bfd_error_bad_value); @@ -5460,7 +5496,7 @@ && p->p_paddr < (bfd_vma) off)) { _bfd_error_handler - (_("%B: Not enough room for program headers," + (_("%pB: not enough room for program headers," " try linking with -N"), abfd); bfd_set_error (bfd_error_bad_value); @@ -5548,8 +5584,8 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: section %A lma %#Lx adjusted to %#Lx"), - abfd, sec, s_start, p_end); + (_("%pB: section %pA lma %#" PRIx64 " adjusted to %#" PRIx64), + abfd, sec, (uint64_t) s_start, (uint64_t) p_end); adjust = 0; sec->lma = p_end; } @@ -5685,7 +5721,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: section `%A' can't be allocated in segment %d"), + (_("%pB: section `%pA' can't be allocated in segment %d"), abfd, sec, j); print_segment_map (m); } @@ -5733,7 +5769,7 @@ if (hdr->sh_size != 0) _bfd_error_handler /* xgettext:c-format */ - (_("%B: warning: allocated section `%s' not in segment"), + (_("%pB: warning: allocated section `%s' not in segment"), abfd, (hdr->bfd_section == NULL ? "*unknown*" @@ -5846,65 +5882,100 @@ { if (p->p_type == PT_GNU_RELRO) { - const Elf_Internal_Phdr *lp; - struct elf_segment_map *lm; + bfd_vma start, end; + bfd_boolean ok; if (link_info != NULL) { /* During linking the range of the RELRO segment is passed - in link_info. */ + in link_info. Note that there may be padding between + relro_start and the first RELRO section. */ + start = link_info->relro_start; + end = link_info->relro_end; + } + else if (m->count != 0) + { + if (!m->p_size_valid) + abort (); + start = m->sections[0]->vma; + end = start + m->p_size; + } + else + { + start = 0; + end = 0; + } + + ok = FALSE; + if (start < end) + { + struct elf_segment_map *lm; + const Elf_Internal_Phdr *lp; + unsigned int i; + + /* Find a LOAD segment containing a section in the RELRO + segment. */ for (lm = elf_seg_map (abfd), lp = phdrs; lm != NULL; lm = lm->next, lp++) { if (lp->p_type == PT_LOAD - && lp->p_vaddr < link_info->relro_end && lm->count != 0 - && lm->sections[0]->vma >= link_info->relro_start) + && (lm->sections[lm->count - 1]->vma + + (!IS_TBSS (lm->sections[lm->count - 1]) + ? lm->sections[lm->count - 1]->size + : 0)) > start + && lm->sections[0]->vma < end) break; } - BFD_ASSERT (lm != NULL); - } - else - { - /* Otherwise we are copying an executable or shared - library, but we need to use the same linker logic. */ - for (lp = phdrs; lp < phdrs + count; ++lp) + if (lm != NULL) { - if (lp->p_type == PT_LOAD - && lp->p_paddr == p->p_paddr) - break; - } - } + /* Find the section starting the RELRO segment. */ + for (i = 0; i < lm->count; i++) + { + asection *s = lm->sections[i]; + if (s->vma >= start + && s->vma < end + && s->size != 0) + break; + } - if (lp < phdrs + count) - { - p->p_vaddr = lp->p_vaddr; - p->p_paddr = lp->p_paddr; - p->p_offset = lp->p_offset; - if (link_info != NULL) - p->p_filesz = link_info->relro_end - lp->p_vaddr; - else if (m->p_size_valid) - p->p_filesz = m->p_size; - else - abort (); - p->p_memsz = p->p_filesz; - /* Preserve the alignment and flags if they are valid. The - gold linker generates RW/4 for the PT_GNU_RELRO section. - It is better for objcopy/strip to honor these attributes - otherwise gdb will choke when using separate debug files. - */ - if (!m->p_align_valid) - p->p_align = 1; - if (!m->p_flags_valid) - p->p_flags = PF_R; - } - else - { - memset (p, 0, sizeof *p); - p->p_type = PT_NULL; + if (i < lm->count) + { + p->p_vaddr = lm->sections[i]->vma; + p->p_paddr = lm->sections[i]->lma; + p->p_offset = lm->sections[i]->filepos; + p->p_memsz = end - p->p_vaddr; + p->p_filesz = p->p_memsz; + + /* The RELRO segment typically ends a few bytes + into .got.plt but other layouts are possible. + In cases where the end does not match any + loaded section (for instance is in file + padding), trim p_filesz back to correspond to + the end of loaded section contents. */ + if (p->p_filesz > lp->p_vaddr + lp->p_filesz - p->p_vaddr) + p->p_filesz = lp->p_vaddr + lp->p_filesz - p->p_vaddr; + + /* Preserve the alignment and flags if they are + valid. The gold linker generates RW/4 for + the PT_GNU_RELRO section. It is better for + objcopy/strip to honor these attributes + otherwise gdb will choke when using separate + debug files. */ + if (!m->p_align_valid) + p->p_align = 1; + if (!m->p_flags_valid) + p->p_flags = PF_R; + ok = TRUE; + } + } } + if (link_info != NULL) + BFD_ASSERT (ok); + if (!ok) + memset (p, 0, sizeof *p); } else if (p->p_type == PT_GNU_STACK) { @@ -5931,7 +6002,7 @@ { /* PR 17512: file: 2195325e. */ _bfd_error_handler - (_("%B: error: non-load segment %d includes file header " + (_("%pB: error: non-load segment %d includes file header " "and/or program header"), abfd, (int) (p - phdrs)); return FALSE; @@ -6080,9 +6151,7 @@ } /* Write out the program headers. */ - alloc = elf_program_header_size (abfd) / bed->s->sizeof_phdr; - - /* Sort the program headers into the ordering required by the ELF standard. */ + alloc = elf_elfheader (abfd)->e_phnum; if (alloc == 0) return TRUE; @@ -6099,17 +6168,19 @@ changed or the programs updated. */ if (alloc > 1 && tdata->phdr[0].p_type == PT_PHDR - && ! bed->elf_backend_allow_non_load_phdr (abfd, tdata->phdr, alloc) + && (bed->elf_backend_allow_non_load_phdr == NULL + || !bed->elf_backend_allow_non_load_phdr (abfd, tdata->phdr, + alloc)) && tdata->phdr[1].p_type == PT_LOAD && (tdata->phdr[1].p_vaddr > tdata->phdr[0].p_vaddr - || (tdata->phdr[1].p_vaddr + tdata->phdr[1].p_memsz) - < (tdata->phdr[0].p_vaddr + tdata->phdr[0].p_memsz))) + || (tdata->phdr[1].p_vaddr + tdata->phdr[1].p_memsz + < tdata->phdr[0].p_vaddr + tdata->phdr[0].p_memsz))) { /* The fix for this error is usually to edit the linker script being used and set up the program headers manually. Either that or leave room for the headers at the start of the SECTIONS. */ - _bfd_error_handler (_("\ -%B: error: PHDR segment not covered by LOAD segment"), + _bfd_error_handler (_("%pB: error: PHDR segment not covered" + " by LOAD segment"), abfd); return FALSE; } @@ -6339,7 +6410,8 @@ = _bfd_elf_strtab_offset (elf_shstrtab (abfd), i_shdrp[count]->sh_name); if (bed->elf_backend_section_processing) - (*bed->elf_backend_section_processing) (abfd, i_shdrp[count]); + if (!(*bed->elf_backend_section_processing) (abfd, i_shdrp[count])) + return FALSE; if (i_shdrp[count]->contents) { bfd_size_type amt = i_shdrp[count]->sh_size; @@ -6452,7 +6524,7 @@ which is used in a relocation entry. */ _bfd_error_handler /* xgettext:c-format */ - (_("%B: symbol `%s' required but not present"), + (_("%pB: symbol `%s' required but not present"), abfd, bfd_asymbol_name (asym_ptr)); bfd_set_error (bfd_error_no_symbols); return -1; @@ -6585,7 +6657,7 @@ : segment->p_vaddr != section->vma) \ || (strcmp (bfd_get_section_name (ibfd, section), ".dynamic") \ == 0)) \ - && !section->segment_mark) + && (segment->p_type != PT_LOAD || !section->segment_mark)) /* If the output section of a section in the input segment is NULL, it is removed from the corresponding output segment. */ @@ -6713,13 +6785,11 @@ asection **sections; asection *output_section; unsigned int isec; - bfd_vma matching_lma; - bfd_vma suggested_lma; + asection *matching_lma; + asection *suggested_lma; unsigned int j; bfd_size_type amt; asection *first_section; - bfd_boolean first_matching_lma; - bfd_boolean first_suggested_lma; if (segment->p_type == PT_NULL) continue; @@ -6795,9 +6865,10 @@ if (segment->p_type == PT_LOAD && (segment->p_filesz > 0 || segment->p_memsz == 0)) /* xgettext:c-format */ - _bfd_error_handler (_("%B: warning: Empty loadable segment detected" - " at vaddr=%#Lx, is this intentional?"), - ibfd, segment->p_vaddr); + _bfd_error_handler + (_("%pB: warning: empty loadable segment detected" + " at vaddr=%#" PRIx64 ", is this intentional?"), + ibfd, (uint64_t) segment->p_vaddr); map->count = 0; *pointer_to_map = map; @@ -6845,10 +6916,8 @@ we have completely filled the segment, and there is nothing more to do. */ isec = 0; - matching_lma = 0; - suggested_lma = 0; - first_matching_lma = TRUE; - first_suggested_lma = TRUE; + matching_lma = NULL; + suggested_lma = NULL; for (section = first_section, j = 0; section != NULL; @@ -6869,14 +6938,14 @@ && !bed->want_p_paddr_set_to_zero && isec == 0 && output_section->lma != 0 - && output_section->vma == (segment->p_vaddr - + (map->includes_filehdr - ? iehdr->e_ehsize - : 0) - + (map->includes_phdrs - ? (iehdr->e_phnum - * iehdr->e_phentsize) - : 0))) + && (align_power (segment->p_vaddr + + (map->includes_filehdr + ? iehdr->e_ehsize : 0) + + (map->includes_phdrs + ? iehdr->e_phnum * iehdr->e_phentsize + : 0), + output_section->alignment_power) + == output_section->vma)) map->p_paddr = segment->p_vaddr; /* Match up the physical address of the segment with the @@ -6886,22 +6955,17 @@ || (bed->want_p_paddr_set_to_zero && IS_CONTAINED_BY_VMA (output_section, segment))) { - if (first_matching_lma || output_section->lma < matching_lma) - { - matching_lma = output_section->lma; - first_matching_lma = FALSE; - } + if (matching_lma == NULL + || output_section->lma < matching_lma->lma) + matching_lma = output_section; /* We assume that if the section fits within the segment then it does not overlap any other section within that segment. */ map->sections[isec++] = output_section; } - else if (first_suggested_lma) - { - suggested_lma = output_section->lma; - first_suggested_lma = FALSE; - } + else if (suggested_lma == NULL) + suggested_lma = output_section; if (j == section_count) break; @@ -6924,63 +6988,54 @@ if (p_paddr_valid && !bed->want_p_paddr_set_to_zero - && matching_lma != map->p_paddr + && matching_lma->lma != map->p_paddr && !map->includes_filehdr && !map->includes_phdrs) /* There is some padding before the first section in the segment. So, we must account for that in the output segment's vma. */ - map->p_vaddr_offset = matching_lma - map->p_paddr; + map->p_vaddr_offset = matching_lma->lma - map->p_paddr; free (sections); continue; } else { - if (!first_matching_lma) - { - /* At least one section fits inside the current segment. - Keep it, but modify its physical address to match the - LMA of the first section that fitted. */ - map->p_paddr = matching_lma; - } - else - { - /* None of the sections fitted inside the current segment. - Change the current segment's physical address to match - the LMA of the first section. */ - map->p_paddr = suggested_lma; - } + /* Change the current segment's physical address to match + the LMA of the first section that fitted, or if no + section fitted, the first section. */ + if (matching_lma == NULL) + matching_lma = suggested_lma; + + map->p_paddr = matching_lma->lma; /* Offset the segment physical address from the lma to allow for space taken up by elf headers. */ - if (map->includes_filehdr) + if (map->includes_phdrs) { - if (map->p_paddr >= iehdr->e_ehsize) - map->p_paddr -= iehdr->e_ehsize; - else - { - map->includes_filehdr = FALSE; - map->includes_phdrs = FALSE; - } + map->p_paddr -= iehdr->e_phnum * iehdr->e_phentsize; + + /* iehdr->e_phnum is just an estimate of the number + of program headers that we will need. Make a note + here of the number we used and the segment we chose + to hold these headers, so that we can adjust the + offset when we know the correct value. */ + phdr_adjust_num = iehdr->e_phnum; + phdr_adjust_seg = map; } - if (map->includes_phdrs) + if (map->includes_filehdr) { - if (map->p_paddr >= iehdr->e_phnum * iehdr->e_phentsize) - { - map->p_paddr -= iehdr->e_phnum * iehdr->e_phentsize; - - /* iehdr->e_phnum is just an estimate of the number - of program headers that we will need. Make a note - here of the number we used and the segment we chose - to hold these headers, so that we can adjust the - offset when we know the correct value. */ - phdr_adjust_num = iehdr->e_phnum; - phdr_adjust_seg = map; - } - else - map->includes_phdrs = FALSE; + bfd_vma align = (bfd_vma) 1 << matching_lma->alignment_power; + map->p_paddr -= iehdr->e_ehsize; + /* We've subtracted off the size of headers from the + first section lma, but there may have been some + alignment padding before that section too. Try to + account for that by adjusting the segment lma down to + the same alignment. */ + if (segment->p_align != 0 && segment->p_align < align) + align = segment->p_align; + map->p_paddr &= -align; } } @@ -6995,8 +7050,7 @@ do { map->count = 0; - suggested_lma = 0; - first_suggested_lma = TRUE; + suggested_lma = NULL; /* Fill the current segment with sections that fit. */ for (j = 0; j < section_count; j++) @@ -7018,12 +7072,14 @@ /* If the first section in a segment does not start at the beginning of the segment, then something is wrong. */ - if (output_section->lma - != (map->p_paddr - + (map->includes_filehdr ? iehdr->e_ehsize : 0) - + (map->includes_phdrs - ? iehdr->e_phnum * iehdr->e_phentsize - : 0))) + if (align_power (map->p_paddr + + (map->includes_filehdr + ? iehdr->e_ehsize : 0) + + (map->includes_phdrs + ? iehdr->e_phnum * iehdr->e_phentsize + : 0), + output_section->alignment_power) + != output_section->lma) abort (); } else @@ -7041,11 +7097,8 @@ || (prev_sec->lma + prev_sec->size > output_section->lma)) { - if (first_suggested_lma) - { - suggested_lma = output_section->lma; - first_suggested_lma = FALSE; - } + if (suggested_lma == NULL) + suggested_lma = output_section; continue; } @@ -7054,13 +7107,11 @@ map->sections[map->count++] = output_section; ++isec; sections[j] = NULL; - section->segment_mark = TRUE; - } - else if (first_suggested_lma) - { - suggested_lma = output_section->lma; - first_suggested_lma = FALSE; + if (segment->p_type == PT_LOAD) + section->segment_mark = TRUE; } + else if (suggested_lma == NULL) + suggested_lma = output_section; } BFD_ASSERT (map->count > 0); @@ -7090,7 +7141,7 @@ map->p_type = segment->p_type; map->p_flags = segment->p_flags; map->p_flags_valid = 1; - map->p_paddr = suggested_lma; + map->p_paddr = suggested_lma->lma; map->p_paddr_valid = p_paddr_valid; map->includes_filehdr = 0; map->includes_phdrs = 0; @@ -7116,6 +7167,15 @@ if (count > phdr_adjust_num) phdr_adjust_seg->p_paddr -= (count - phdr_adjust_num) * iehdr->e_phentsize; + + for (map = map_first; map != NULL; map = map->next) + if (map->p_type == PT_PHDR) + { + bfd_vma adjust + = phdr_adjust_seg->includes_filehdr ? iehdr->e_ehsize : 0; + map->p_paddr = phdr_adjust_seg->p_paddr + adjust; + break; + } } #undef SEGMENT_END @@ -7409,9 +7469,9 @@ /* PR 17512: file: f17299af. */ if (segment->p_align > (bfd_vma) 1 << ((sizeof (bfd_vma) * 8) - 2)) /* xgettext:c-format */ - _bfd_error_handler (_("%B: warning: segment alignment of %#Lx" - " is too large"), - ibfd, segment->p_align); + _bfd_error_handler (_("%pB: warning: segment alignment of %#" + PRIx64 " is too large"), + ibfd, (uint64_t) segment->p_align); else maxpagesize = segment->p_align; } @@ -7564,7 +7624,16 @@ but the SHT_GROUP section is, then adjust its size. */ else if (s->output_section == discarded && isec->output_section != discarded) - removed += 4; + { + struct bfd_elf_section_data *elf_sec = elf_section_data (s); + removed += 4; + if (elf_sec->rel.hdr != NULL + && (elf_sec->rel.hdr->sh_flags & SHF_GROUP) != 0) + removed += 4; + if (elf_sec->rela.hdr != NULL + && (elf_sec->rela.hdr->sh_flags & SHF_GROUP) != 0) + removed += 4; + } s = elf_next_in_group (s); if (s == first) break; @@ -7574,18 +7643,26 @@ if (discarded != NULL) { /* If we've been called for ld -r, then we need to - adjust the input section size. This function may - be called multiple times, so save the original - size. */ + adjust the input section size. */ if (isec->rawsize == 0) isec->rawsize = isec->size; isec->size = isec->rawsize - removed; + if (isec->size <= 4) + { + isec->size = 0; + isec->flags |= SEC_EXCLUDE; + } } else { /* Adjust the output section size when called from objcopy. */ isec->output_section->size -= removed; + if (isec->output_section->size <= 4) + { + isec->output_section->size = 0; + isec->output_section->flags |= SEC_EXCLUDE; + } } } } @@ -7890,10 +7967,11 @@ if (shndx == SHN_BAD) { /* xgettext:c-format */ - _bfd_error_handler (_("\ -Unable to find equivalent output section for symbol '%s' from section '%s'"), - syms[idx]->name ? syms[idx]->name : "", - sec->name); + _bfd_error_handler + (_("unable to find equivalent output section" + " for symbol '%s' from section '%s'"), + syms[idx]->name ? syms[idx]->name : "", + sec->name); bfd_set_error (bfd_error_invalid_operation); goto error_return; } @@ -8223,7 +8301,7 @@ { error_return_bad_verref: _bfd_error_handler - (_("%B: .gnu.version_r invalid entry"), abfd); + (_("%pB: .gnu.version_r invalid entry"), abfd); bfd_set_error (bfd_error_bad_value); error_return_verref: elf_tdata (abfd)->verref = NULL; @@ -8350,7 +8428,7 @@ { error_return_bad_verdef: _bfd_error_handler - (_("%B: .gnu.version_d invalid entry"), abfd); + (_("%pB: .gnu.version_d invalid entry"), abfd); bfd_set_error (bfd_error_bad_value); error_return_verdef: elf_tdata (abfd)->verdef = NULL; @@ -8803,12 +8881,13 @@ return TRUE; } -void +bfd_boolean _bfd_elf_no_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr ATTRIBUTE_UNUSED, Elf_Internal_Rela *dst ATTRIBUTE_UNUSED) { abort (); + return FALSE; } /* Try to convert a non-ELF reloc into an ELF one. */ @@ -8900,10 +8979,9 @@ return TRUE; fail: - _bfd_error_handler - /* xgettext:c-format */ - (_("%B: unsupported relocation type %s"), - abfd, areloc->howto->name); + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: %s unsupported"), + abfd, areloc->howto->name); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -10434,6 +10512,23 @@ return buf; } +/* gcc-8 warns (*) on all the strncpy calls in this function about + possible string truncation. The "truncation" is not a bug. We + have an external representation of structs with fields that are not + necessarily NULL terminated and corresponding internal + representation fields that are one larger so that they can always + be NULL terminated. + gcc versions between 4.2 and 4.6 do not allow pragma control of + diagnostics inside functions, giving a hard error if you try to use + the finer control available with later versions. + gcc prior to 4.2 warns about diagnostic push and pop. + gcc-5, gcc-6 and gcc-7 warn that -Wstringop-truncation is unknown, + unless you also add #pragma GCC diagnostic ignored "-Wpragma". + (*) Depending on your system header files! */ +#if GCC_VERSION >= 8000 +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wstringop-truncation" +#endif char * elfcore_write_prpsinfo (bfd *abfd, char *buf, @@ -10453,16 +10548,16 @@ } #if defined (HAVE_PRPSINFO_T) || defined (HAVE_PSINFO_T) -#if defined (HAVE_PRPSINFO32_T) || defined (HAVE_PSINFO32_T) +# if defined (HAVE_PRPSINFO32_T) || defined (HAVE_PSINFO32_T) if (bed->s->elfclass == ELFCLASS32) { -#if defined (HAVE_PSINFO32_T) +# if defined (HAVE_PSINFO32_T) psinfo32_t data; int note_type = NT_PSINFO; -#else +# else prpsinfo32_t data; int note_type = NT_PRPSINFO; -#endif +# endif memset (&data, 0, sizeof (data)); strncpy (data.pr_fname, fname, sizeof (data.pr_fname)); @@ -10471,15 +10566,15 @@ "CORE", note_type, &data, sizeof (data)); } else -#endif +# endif { -#if defined (HAVE_PSINFO_T) +# if defined (HAVE_PSINFO_T) psinfo_t data; int note_type = NT_PSINFO; -#else +# else prpsinfo_t data; int note_type = NT_PRPSINFO; -#endif +# endif memset (&data, 0, sizeof (data)); strncpy (data.pr_fname, fname, sizeof (data.pr_fname)); @@ -10492,6 +10587,9 @@ free (buf); return NULL; } +#if GCC_VERSION >= 8000 +# pragma GCC diagnostic pop +#endif char * elfcore_write_linux_prpsinfo32 @@ -10996,6 +11094,8 @@ align is less than 4, we use 4 byte alignment. */ if (align < 4) align = 4; + if (align != 4 && align != 8) + return FALSE; p = buf; while (p < buf + size) diff -Nru gdb-8.1/bfd/elfcode.h gdb-8.2/bfd/elfcode.h --- gdb-8.1/bfd/elfcode.h 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/bfd/elfcode.h 2018-09-05 07:27:13.000000000 +0000 @@ -680,7 +680,7 @@ if (i_ehdrp->e_shnum > ((bfd_size_type) -1) / sizeof (*i_shdrp)) goto got_wrong_format_error; #endif - amt = sizeof (*i_shdrp) * i_ehdrp->e_shnum; + amt = sizeof (*i_shdrp) * (bfd_size_type) i_ehdrp->e_shnum; i_shdrp = (Elf_Internal_Shdr *) bfd_alloc (abfd, amt); if (!i_shdrp) goto got_no_match; @@ -757,7 +757,7 @@ so that at least some processing can be done. */ i_ehdrp->e_shstrndx = SHN_UNDEF; _bfd_error_handler - (_("warning: %B has a corrupt string table index - ignoring"), + (_("warning: %pB has a corrupt string table index - ignoring"), abfd); } } @@ -776,7 +776,7 @@ if (i_ehdrp->e_phnum > ((bfd_size_type) -1) / sizeof (*i_phdr)) goto got_wrong_format_error; #endif - amt = i_ehdrp->e_phnum * sizeof (*i_phdr); + amt = (bfd_size_type) i_ehdrp->e_phnum * sizeof (*i_phdr); elf_tdata (abfd)->phdr = (Elf_Internal_Phdr *) bfd_alloc (abfd, amt); if (elf_tdata (abfd)->phdr == NULL) goto got_no_match; @@ -1196,9 +1196,10 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: version count (%Ld) does not match symbol count (%ld)"), + (_("%pB: version count (%" PRId64 ")" + " does not match symbol count (%ld)"), abfd, - verhdr->sh_size / sizeof (Elf_External_Versym), + (int64_t) (verhdr->sh_size / sizeof (Elf_External_Versym)), symcount); /* Slurp in the symbols without the version information, @@ -1429,6 +1430,7 @@ i < reloc_count; i++, relent++, native_relocs += entsize) { + bfd_boolean res; Elf_Internal_Rela rela; if (entsize == sizeof (Elf_External_Rela)) @@ -1453,8 +1455,9 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A): relocation %d has invalid symbol index %ld"), + (_("%pB(%pA): relocation %d has invalid symbol index %ld"), abfd, asect, i, (long) ELF_R_SYM (rela.r_info)); + bfd_set_error (bfd_error_bad_value); relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; } else @@ -1471,14 +1474,16 @@ 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); + res = ebd->elf_info_to_howto (abfd, relent, &rela); else - (*ebd->elf_info_to_howto_rel) (abfd, relent, &rela); + res = ebd->elf_info_to_howto_rel (abfd, relent, &rela); + + if (! res || relent->howto == NULL) + goto error_return; } if (allocated != NULL) free (allocated); - return TRUE; error_return: diff -Nru gdb-8.1/bfd/elfcore.h gdb-8.2/bfd/elfcore.h --- gdb-8.1/bfd/elfcore.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elfcore.h 2018-09-05 07:27:13.000000000 +0000 @@ -297,9 +297,9 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("warning: %B is truncated: expected core file " - "size >= %Lu, found: %llu"), - abfd, high, (unsigned long long) statbuf.st_size); + (_("warning: %pB is truncated: expected core file " + "size >= %" PRIu64 ", found: %" PRIu64), + abfd, (uint64_t) high, (uint64_t) statbuf.st_size); } } } diff -Nru gdb-8.1/bfd/elf-eh-frame.c gdb-8.2/bfd/elf-eh-frame.c --- gdb-8.1/bfd/elf-eh-frame.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf-eh-frame.c 2018-09-05 07:27:13.000000000 +0000 @@ -939,7 +939,7 @@ { (*info->callbacks->minfo) /* xgettext:c-format */ - (_("discarding zero address range FDE in %B(%A).\n"), + (_("discarding zero address range FDE in %pB(%pA).\n"), abfd, sec); this_inf->u.fde.cie_inf = NULL; } @@ -1042,9 +1042,9 @@ goto success; free_no_table: - (*info->callbacks->einfo) + _bfd_error_handler /* xgettext:c-format */ - (_("%P: error in %B(%A); no .eh_frame_hdr table will be created.\n"), + (_("error in %pB(%pA); no .eh_frame_hdr table will be created"), abfd, sec); hdr_info->u.dwarf.table = FALSE; if (sec_info) @@ -1532,16 +1532,16 @@ hdr_info->u.dwarf.table = FALSE; if (num_warnings_issued < 10) { - (*info->callbacks->einfo) + _bfd_error_handler /* xgettext:c-format */ - (_("%P: FDE encoding in %B(%A) prevents .eh_frame_hdr" - " table being created.\n"), abfd, sec); + (_("FDE encoding in %pB(%pA) prevents .eh_frame_hdr" + " table being created"), abfd, sec); num_warnings_issued ++; } else if (num_warnings_issued == 10) { - (*info->callbacks->einfo) - (_("%P: Further warnings about FDE encoding preventing .eh_frame_hdr generation dropped.\n")); + _bfd_error_handler + (_("further warnings about FDE encoding preventing .eh_frame_hdr generation dropped")); num_warnings_issued ++; } } @@ -1863,7 +1863,7 @@ if (addr <= last_addr) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: %A not in order"), sec->owner, sec); + _bfd_error_handler (_("%pB: %pA not in order"), sec->owner, sec); return FALSE; } @@ -1877,7 +1877,7 @@ if (addr & 1) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: %A invalid input section size"), + _bfd_error_handler (_("%pB: %pA invalid input section size"), sec->owner, sec); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -1885,7 +1885,7 @@ if (last_addr >= addr + sec->rawsize) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: %A points past end of text section"), + _bfd_error_handler (_("%pB: %pA points past end of text section"), sec->owner, sec); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -2133,9 +2133,9 @@ address += elf_gp (abfd); break; default: - (*info->callbacks->einfo) - (_("%P: DW_EH_PE_datarel unspecified" - " for this architecture.\n")); + _bfd_error_handler + (_("DW_EH_PE_datarel unspecified" + " for this architecture")); /* Fall thru */ case bfd_arch_frv: case bfd_arch_i386: @@ -2304,7 +2304,7 @@ if (sec->output_section != osec) { _bfd_error_handler - (_("Invalid output section for .eh_frame_entry: %A"), + (_("invalid output section for .eh_frame_entry: %pA"), sec->output_section); return FALSE; } @@ -2327,7 +2327,7 @@ if (i != 0) { _bfd_error_handler - (_("Invalid contents in %A section"), osec); + (_("invalid contents in %pA section"), osec); return FALSE; } @@ -2483,10 +2483,9 @@ overlap = TRUE; } if (overflow) - (*info->callbacks->einfo) (_("%P: .eh_frame_hdr entry overflow.\n")); + _bfd_error_handler (_(".eh_frame_hdr entry overflow")); if (overlap) - (*info->callbacks->einfo) - (_("%P: .eh_frame_hdr refers to overlapping FDEs.\n")); + _bfd_error_handler (_(".eh_frame_hdr refers to overlapping FDEs")); if (overflow || overlap) { bfd_set_error (bfd_error_bad_value); diff -Nru gdb-8.1/bfd/elf-hppa.h gdb-8.2/bfd/elf-hppa.h --- gdb-8.1/bfd/elf-hppa.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf-hppa.h 2018-09-05 07:44:28.000000000 +0000 @@ -1020,26 +1020,58 @@ /* Translate from an elf into field into a howto relocation pointer. */ -static void -elf_hppa_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +elf_hppa_info_to_howto (bfd *abfd, arelent *bfd_reloc, Elf_Internal_Rela *elf_reloc) { - BFD_ASSERT (ELF_R_TYPE (elf_reloc->r_info) - < (unsigned int) R_PARISC_UNIMPLEMENTED); - bfd_reloc->howto = &elf_hppa_howto_table[ELF_R_TYPE (elf_reloc->r_info)]; + unsigned int r_type = ELF32_R_TYPE (elf_reloc->r_info); + unsigned int type = r_type; + reloc_howto_type *howto = NULL; + + if (r_type < (unsigned int) R_PARISC_UNIMPLEMENTED) + { + howto = &elf_hppa_howto_table[r_type]; + type = howto->type; + } + if (type >= (unsigned int) R_PARISC_UNIMPLEMENTED) + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + bfd_reloc->howto = howto; + return TRUE; } /* Translate from an elf into field into a howto relocation pointer. */ -static void -elf_hppa_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +elf_hppa_info_to_howto_rel (bfd *abfd, arelent *bfd_reloc, Elf_Internal_Rela *elf_reloc) { - BFD_ASSERT (ELF_R_TYPE (elf_reloc->r_info) - < (unsigned int) R_PARISC_UNIMPLEMENTED); - bfd_reloc->howto = &elf_hppa_howto_table[ELF_R_TYPE (elf_reloc->r_info)]; + unsigned int r_type = ELF_R_TYPE (elf_reloc->r_info); + unsigned int type = r_type; + reloc_howto_type *howto = NULL; + + if (r_type < (unsigned int) R_PARISC_UNIMPLEMENTED) + { + howto = &elf_hppa_howto_table[r_type]; + type = howto->type; + } + if (type >= (unsigned int) R_PARISC_UNIMPLEMENTED) + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + bfd_reloc->howto = howto; + return TRUE; } /* Return the address of the howto table entry to perform the CODE diff -Nru gdb-8.1/bfd/elf-ifunc.c gdb-8.2/bfd/elf-ifunc.c --- gdb-8.1/bfd/elf-ifunc.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf-ifunc.c 2018-09-05 07:27:13.000000000 +0000 @@ -131,8 +131,15 @@ the resolved function may be used. But in non-PIC executable, the address of its .plt slot may be used. Pointer equality may not work correctly. PIE or non-PLT reference should be used if - pointer equality is required here. */ + pointer equality is required here. + + If STT_GNU_IFUNC symbol is defined in position-dependent executable, + backend should change it to the normal function and set its address + to its PLT entry which should be resolved by R_*_IRELATIVE at + run-time. All external references should be resolved to its PLT in + executable. */ if (!need_dynreloc + && !(bfd_link_pde (info) && h->def_regular) && (h->dynindx != -1 || info->export_dynamic) && h->pointer_equality_needed) @@ -140,7 +147,7 @@ info->callbacks->einfo /* xgettext:c-format */ (_("%F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer " - "equality in `%B' can not be used when making an " + "equality in `%pB' can not be used when making an " "executable; recompile with -fPIE and relink with -pie\n"), h->root.root.string, h->root.u.def.section->owner); diff -Nru gdb-8.1/bfd/elflink.c gdb-8.2/bfd/elflink.c --- gdb-8.1/bfd/elflink.c 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/bfd/elflink.c 2018-09-05 07:44:28.000000000 +0000 @@ -586,7 +586,12 @@ || (d != NULL && h->non_elf && (*d->match) (&d->head, NULL, h->root.root.string))) - h->dynamic = 1; + { + h->dynamic = 1; + /* NB: If a symbol is made dynamic by --dynamic-list, it has + non-IR reference. */ + h->root.non_ir_ref_dynamic = 1; + } } /* Record an assignment to a symbol made by a linker script. We need @@ -715,6 +720,7 @@ || h->ref_dynamic || bfd_link_dll (info) || elf_hash_table (info)->is_relocatable_executable) + && !h->forced_local && h->dynindx == -1) { if (! bfd_elf_link_record_dynamic_symbol (info, h)) @@ -881,9 +887,9 @@ /* Return true if the dynamic symbol for a given section should be omitted when creating a shared library. */ bfd_boolean -_bfd_elf_link_omit_section_dynsym (bfd *output_bfd ATTRIBUTE_UNUSED, - struct bfd_link_info *info, - asection *p) +_bfd_elf_omit_section_dynsym_default (bfd *output_bfd ATTRIBUTE_UNUSED, + struct bfd_link_info *info, + asection *p) { struct elf_link_hash_table *htab; asection *ip; @@ -913,6 +919,15 @@ } } +bfd_boolean +_bfd_elf_omit_section_dynsym_all + (bfd *output_bfd ATTRIBUTE_UNUSED, + struct bfd_link_info *info ATTRIBUTE_UNUSED, + asection *p ATTRIBUTE_UNUSED) +{ + return TRUE; +} + /* Assign dynsym indices. In a shared library we generate a section symbol for each output section, which come first. Next come symbols which have been forced to local binding. Then all of the back-end @@ -938,6 +953,7 @@ for (p = output_bfd->sections; p ; p = p->next) if ((p->flags & SEC_EXCLUDE) == 0 && (p->flags & SEC_ALLOC) != 0 + && elf_hash_table (info)->dynamic_relocs && !(*bed->elf_backend_omit_section_dynsym) (output_bfd, info, p)) { ++dynsymcount; @@ -1350,26 +1366,26 @@ if (tdef && ntdef) _bfd_error_handler /* xgettext:c-format */ - (_("%s: TLS definition in %B section %A " - "mismatches non-TLS definition in %B section %A"), + (_("%s: TLS definition in %pB section %pA " + "mismatches non-TLS definition in %pB section %pA"), h->root.root.string, tbfd, tsec, ntbfd, ntsec); else if (!tdef && !ntdef) _bfd_error_handler /* xgettext:c-format */ - (_("%s: TLS reference in %B " - "mismatches non-TLS reference in %B"), + (_("%s: TLS reference in %pB " + "mismatches non-TLS reference in %pB"), h->root.root.string, tbfd, ntbfd); else if (tdef) _bfd_error_handler /* xgettext:c-format */ - (_("%s: TLS definition in %B section %A " - "mismatches non-TLS reference in %B"), + (_("%s: TLS definition in %pB section %pA " + "mismatches non-TLS reference in %pB"), h->root.root.string, tbfd, tsec, ntbfd); else _bfd_error_handler /* xgettext:c-format */ - (_("%s: TLS reference in %B " - "mismatches non-TLS definition in %B section %A"), + (_("%s: TLS reference in %pB " + "mismatches non-TLS definition in %pB section %pA"), h->root.root.string, tbfd, ntbfd, ntsec); bfd_set_error (bfd_error_bad_value); @@ -2049,7 +2065,7 @@ && hi->root.type != bfd_link_hash_defweak) _bfd_error_handler /* xgettext:c-format */ - (_("%B: unexpected redefinition of indirect versioned symbol `%s'"), + (_("%pB: unexpected redefinition of indirect versioned symbol `%s'"), abfd, shortname); } else @@ -2207,6 +2223,115 @@ return TRUE; } +/* Return TRUE and set *HIDE to TRUE if the versioned symbol is + hidden. Set *T_P to NULL if there is no match. */ + +static bfd_boolean +_bfd_elf_link_hide_versioned_symbol (struct bfd_link_info *info, + struct elf_link_hash_entry *h, + const char *version_p, + struct bfd_elf_version_tree **t_p, + bfd_boolean *hide) +{ + struct bfd_elf_version_tree *t; + + /* Look for the version. If we find it, it is no longer weak. */ + for (t = info->version_info; t != NULL; t = t->next) + { + if (strcmp (t->name, version_p) == 0) + { + size_t len; + char *alc; + struct bfd_elf_version_expr *d; + + len = version_p - h->root.root.string; + alc = (char *) bfd_malloc (len); + if (alc == NULL) + return FALSE; + memcpy (alc, h->root.root.string, len - 1); + alc[len - 1] = '\0'; + if (alc[len - 2] == ELF_VER_CHR) + alc[len - 2] = '\0'; + + h->verinfo.vertree = t; + t->used = TRUE; + d = NULL; + + if (t->globals.list != NULL) + d = (*t->match) (&t->globals, NULL, alc); + + /* See if there is anything to force this symbol to + local scope. */ + if (d == NULL && t->locals.list != NULL) + { + d = (*t->match) (&t->locals, NULL, alc); + if (d != NULL + && h->dynindx != -1 + && ! info->export_dynamic) + *hide = TRUE; + } + + free (alc); + break; + } + } + + *t_p = t; + + return TRUE; +} + +/* Return TRUE if the symbol H is hidden by version script. */ + +bfd_boolean +_bfd_elf_link_hide_sym_by_version (struct bfd_link_info *info, + struct elf_link_hash_entry *h) +{ + const char *p; + bfd_boolean hide = FALSE; + const struct elf_backend_data *bed + = get_elf_backend_data (info->output_bfd); + + /* Version script only hides symbols defined in regular objects. */ + if (!h->def_regular && !ELF_COMMON_DEF_P (h)) + return TRUE; + + p = strchr (h->root.root.string, ELF_VER_CHR); + if (p != NULL && h->verinfo.vertree == NULL) + { + struct bfd_elf_version_tree *t; + + ++p; + if (*p == ELF_VER_CHR) + ++p; + + if (*p != '\0' + && _bfd_elf_link_hide_versioned_symbol (info, h, p, &t, &hide) + && hide) + { + if (hide) + (*bed->elf_backend_hide_symbol) (info, h, TRUE); + return TRUE; + } + } + + /* If we don't have a version for this symbol, see if we can find + something. */ + if (h->verinfo.vertree == NULL && info->version_info != NULL) + { + h->verinfo.vertree + = bfd_find_version_for_sym (info->version_info, + h->root.root.string, &hide); + if (h->verinfo.vertree != NULL && hide) + { + (*bed->elf_backend_hide_symbol) (info, h, TRUE); + return TRUE; + } + } + + return FALSE; +} + /* Figure out appropriate versions for all the symbols. We may not have the version number script until we have read all of the input files, so until that point we don't know which symbols should be @@ -2220,6 +2345,7 @@ const struct elf_backend_data *bed; struct elf_info_failed eif; char *p; + bfd_boolean hide; sinfo = (struct elf_info_failed *) data; info = sinfo->info; @@ -2239,6 +2365,7 @@ if (!h->def_regular) return TRUE; + hide = FALSE; bed = get_elf_backend_data (info->output_bfd); p = strchr (h->root.root.string, ELF_VER_CHR); if (p != NULL && h->verinfo.vertree == NULL) @@ -2253,50 +2380,15 @@ if (*p == '\0') return TRUE; - /* Look for the version. If we find it, it is no longer weak. */ - for (t = sinfo->info->version_info; t != NULL; t = t->next) + if (!_bfd_elf_link_hide_versioned_symbol (info, h, p, &t, &hide)) { - if (strcmp (t->name, p) == 0) - { - size_t len; - char *alc; - struct bfd_elf_version_expr *d; - - len = p - h->root.root.string; - alc = (char *) bfd_malloc (len); - if (alc == NULL) - { - sinfo->failed = TRUE; - return FALSE; - } - memcpy (alc, h->root.root.string, len - 1); - alc[len - 1] = '\0'; - if (alc[len - 2] == ELF_VER_CHR) - alc[len - 2] = '\0'; - - h->verinfo.vertree = t; - t->used = TRUE; - d = NULL; - - if (t->globals.list != NULL) - d = (*t->match) (&t->globals, NULL, alc); - - /* See if there is anything to force this symbol to - local scope. */ - if (d == NULL && t->locals.list != NULL) - { - d = (*t->match) (&t->locals, NULL, alc); - if (d != NULL - && h->dynindx != -1 - && ! info->export_dynamic) - (*bed->elf_backend_hide_symbol) (info, h, TRUE); - } - - free (alc); - break; - } + sinfo->failed = TRUE; + return FALSE; } + if (hide) + (*bed->elf_backend_hide_symbol) (info, h, TRUE); + /* If we are building an application, we need to create a version node for this version. */ if (t == NULL && bfd_link_executable (info)) @@ -2342,7 +2434,7 @@ generating a shared archive. Return an error. */ _bfd_error_handler /* xgettext:c-format */ - (_("%B: version node not found for symbol %s"), + (_("%pB: version node not found for symbol %s"), info->output_bfd, h->root.root.string); bfd_set_error (bfd_error_bad_value); sinfo->failed = TRUE; @@ -2352,10 +2444,10 @@ /* If we don't have a version for this symbol, see if we can find something. */ - if (h->verinfo.vertree == NULL && sinfo->info->version_info != NULL) + if (!hide + && h->verinfo.vertree == NULL + && sinfo->info->version_info != NULL) { - bfd_boolean hide; - h->verinfo.vertree = bfd_find_version_for_sym (sinfo->info->version_info, h->root.root.string, &hide); @@ -2431,10 +2523,10 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: bad reloc symbol index (%#Lx >= %#lx)" - " for offset %#Lx in section `%A'"), - abfd, r_symndx, (unsigned long) nsyms, - irela->r_offset, sec); + (_("%pB: bad reloc symbol index (%#" PRIx64 " >= %#lx)" + " for offset %#" PRIx64 " in section `%pA'"), + abfd, (uint64_t) r_symndx, (unsigned long) nsyms, + (uint64_t) irela->r_offset, sec); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -2443,11 +2535,11 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: non-zero symbol index (%#Lx)" - " for offset %#Lx in section `%A'" + (_("%pB: non-zero symbol index (%#" PRIx64 ")" + " for offset %#" PRIx64 " in section `%pA'" " when the object file has no symbol table"), - abfd, r_symndx, - irela->r_offset, sec); + abfd, (uint64_t) r_symndx, + (uint64_t) irela->r_offset, sec); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -2634,7 +2726,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: relocation size mismatch in %B section %A"), + (_("%pB: relocation size mismatch in %pB section %pA"), output_bfd, input_section->owner, input_section); bfd_set_error (bfd_error_wrong_format); return FALSE; @@ -2761,10 +2853,14 @@ && (h->root.u.def.section->owner->flags & (DYNAMIC | BFD_PLUGIN)) == 0) h->def_regular = 1; + /* Symbols defined in discarded sections shouldn't be dynamic. */ + if (h->root.type == bfd_link_hash_undefined && h->indx == -3) + (*bed->elf_backend_hide_symbol) (eif->info, h, TRUE); + /* If a weak undefined symbol has non-default visibility, we also hide it from the dynamic linker. */ - if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT - && h->root.type == bfd_link_hash_undefweak) + else if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT + && h->root.type == bfd_link_hash_undefweak) (*bed->elf_backend_hide_symbol) (eif->info, h, TRUE); /* A hidden versioned symbol in executable should be forced local if @@ -3014,7 +3110,7 @@ || (info->extern_protected_data < 0 && !get_elf_backend_data (dynbss->owner)->extern_protected_data))) info->callbacks->einfo - (_("%P: copy reloc against protected `%T' is dangerous\n"), + (_("%P: copy reloc against protected `%pT' is dangerous\n"), h->root.root.string); return TRUE; @@ -3365,6 +3461,9 @@ if (! is_elf_hash_table (hash_table)) return FALSE; + if (tag == DT_RELA || tag == DT_REL) + hash_table->dynamic_relocs = TRUE; + bed = get_elf_backend_data (hash_table->dynobj); s = bfd_get_linker_section (hash_table->dynobj, ".dynamic"); BFD_ASSERT (s != NULL); @@ -3813,9 +3912,9 @@ && ehdr->e_machine == bed->elf_machine_alt1) || (bed->elf_machine_alt2 != 0 && ehdr->e_machine == bed->elf_machine_alt2))) - info->callbacks->einfo + _bfd_error_handler /* xgettext:c-format */ - (_("%P: alternate ELF machine code found (%d) in %B, expecting %d\n"), + (_("alternate ELF machine code found (%d) in %pB, expecting %d"), ehdr->e_machine, abfd, bed->elf_machine_code); /* As a GNU extension, any input sections which are named @@ -4481,7 +4580,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: %s: invalid version %u (max %d)"), + (_("%pB: %s: invalid version %u (max %d)"), abfd, name, vernum, elf_tdata (abfd)->cverdefs); bfd_set_error (bfd_error_bad_value); @@ -4518,7 +4617,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: %s: invalid needed version %d"), + (_("%pB: %s: invalid needed version %d"), abfd, name, vernum); bfd_set_error (bfd_error_bad_value); goto error_free_vers; @@ -4589,10 +4688,17 @@ (struct bfd_link_hash_entry **) sym_hash))) goto error_free_vers; - if ((flags & BSF_GNU_UNIQUE) - && (abfd->flags & DYNAMIC) == 0 - && bfd_get_flavour (info->output_bfd) == bfd_target_elf_flavour) - elf_tdata (info->output_bfd)->has_gnu_symbols |= elf_gnu_symbol_unique; + if ((abfd->flags & DYNAMIC) == 0 + && (bfd_get_flavour (info->output_bfd) + == bfd_target_elf_flavour)) + { + if (ELF_ST_TYPE (isym->st_info) == STT_GNU_IFUNC) + elf_tdata (info->output_bfd)->has_gnu_symbols + |= elf_gnu_symbol_ifunc; + if ((flags & BSF_GNU_UNIQUE)) + elf_tdata (info->output_bfd)->has_gnu_symbols + |= elf_gnu_symbol_unique; + } h = *sym_hash; /* We need to make sure that indirect symbol dynamic flags are @@ -4770,15 +4876,15 @@ if (normal_bfd == NULL) _bfd_error_handler /* xgettext:c-format */ - (_("Warning: alignment %u of common symbol `%s' in %B is" - " greater than the alignment (%u) of its section %A"), + (_("warning: alignment %u of common symbol `%s' in %pB is" + " greater than the alignment (%u) of its section %pA"), 1 << common_align, name, common_bfd, 1 << normal_align, h->root.u.def.section); else _bfd_error_handler /* xgettext:c-format */ - (_("Warning: alignment %u of symbol `%s' in %B" - " is smaller than %u in %B"), + (_("warning: alignment %u of symbol `%s' in %pB" + " is smaller than %u in %pB"), 1 << normal_align, name, normal_bfd, 1 << common_align, common_bfd); } @@ -4794,9 +4900,10 @@ && ! size_change_ok) _bfd_error_handler /* xgettext:c-format */ - (_("Warning: size of symbol `%s' changed" - " from %Lu in %B to %Lu in %B"), - name, h->size, old_bfd, isym->st_size, abfd); + (_("warning: size of symbol `%s' changed" + " from %" PRIu64 " in %pB to %" PRIu64 " in %pB"), + name, (uint64_t) h->size, old_bfd, + (uint64_t) isym->st_size, abfd); h->size = isym->st_size; } @@ -4828,8 +4935,8 @@ if (h->type != STT_NOTYPE && ! type_change_ok) /* xgettext:c-format */ _bfd_error_handler - (_("Warning: type of symbol `%s' changed" - " from %d to %d in %B"), + (_("warning: type of symbol `%s' changed" + " from %d to %d in %pB"), name, h->type, type, abfd); h->type = type; @@ -4929,7 +5036,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: undefined reference to symbol '%s'"), + (_("%pB: undefined reference to symbol '%s'"), old_bfd, name); bfd_set_error (bfd_error_missing_dso); goto error_free_vers; @@ -5422,7 +5529,7 @@ len = strlen (name); copy = (char *) bfd_alloc (abfd, len); if (copy == NULL) - return (struct elf_link_hash_entry *) 0 - 1; + return (struct elf_link_hash_entry *) -1; first = p - name + 1; memcpy (copy, name, first); @@ -5520,7 +5627,7 @@ } h = archive_symbol_lookup (abfd, info, symdef->name); - if (h == (struct elf_link_hash_entry *) 0 - 1) + if (h == (struct elf_link_hash_entry *) -1) goto error_return; if (h == NULL) @@ -6005,11 +6112,11 @@ h->type = STT_OBJECT; if (info->stacksize) /* xgettext:c-format */ - _bfd_error_handler (_("%B: stack size specified and %s set"), + _bfd_error_handler (_("%pB: stack size specified and %s set"), output_bfd, legacy_symbol); else if (h->root.u.def.section != bfd_abs_section_ptr) /* xgettext:c-format */ - _bfd_error_handler (_("%B: %s not absolute"), + _bfd_error_handler (_("%pB: %s not absolute"), output_bfd, legacy_symbol); else info->stacksize = h->root.u.def.value; @@ -6777,7 +6884,7 @@ == SHT_PREINIT_ARRAY) { _bfd_error_handler - (_("%B: .preinit_array section is not allowed in DSO"), + (_("%pB: .preinit_array section is not allowed in DSO"), sub); break; } @@ -6901,7 +7008,7 @@ for (s = output_bfd->sections; s != NULL; s = s->next) if ((s->flags & (SEC_EXCLUDE | SEC_ALLOC)) == SEC_ALLOC - && !_bfd_elf_link_omit_section_dynsym (output_bfd, info, s)) + && !_bfd_elf_omit_section_dynsym_default (output_bfd, info, s)) { elf_hash_table (info)->text_index_section = s; break; @@ -6916,10 +7023,10 @@ asection *s; /* Data first, since setting text_index_section changes - _bfd_elf_link_omit_section_dynsym. */ + _bfd_elf_omit_section_dynsym_default. */ for (s = output_bfd->sections; s != NULL; s = s->next) if (((s->flags & (SEC_EXCLUDE | SEC_ALLOC | SEC_READONLY)) == SEC_ALLOC) - && !_bfd_elf_link_omit_section_dynsym (output_bfd, info, s)) + && !_bfd_elf_omit_section_dynsym_default (output_bfd, info, s)) { elf_hash_table (info)->data_index_section = s; break; @@ -6928,7 +7035,7 @@ for (s = output_bfd->sections; s != NULL; s = s->next) if (((s->flags & (SEC_EXCLUDE | SEC_ALLOC | SEC_READONLY)) == (SEC_ALLOC | SEC_READONLY)) - && !_bfd_elf_link_omit_section_dynsym (output_bfd, info, s)) + && !_bfd_elf_omit_section_dynsym_default (output_bfd, info, s)) { elf_hash_table (info)->text_index_section = s; break; @@ -7414,6 +7521,26 @@ } } +/* Hide a symbol. */ + +void +_bfd_elf_link_hide_symbol (bfd *output_bfd, + struct bfd_link_info *info, + struct bfd_link_hash_entry *h) +{ + if (is_elf_hash_table (info->hash)) + { + const struct elf_backend_data *bed + = get_elf_backend_data (output_bfd); + struct elf_link_hash_entry *eh + = (struct elf_link_hash_entry *) h; + bed->elf_backend_hide_symbol (info, eh, TRUE); + eh->def_dynamic = 0; + eh->ref_dynamic = 0; + eh->dynamic_def = 0; + } +} + /* Initialize an ELF linker hash table. *TABLE has been zeroed by our caller. */ @@ -8707,10 +8834,10 @@ && ! info->gc_keep_exported) { /* PR 21524: Let the user know if a symbol was removed by garbage collection. */ - _bfd_error_handler (_("%B:%A: error: relocation references symbol %s which was removed by garbage collection."), + _bfd_error_handler (_("%pB:%pA: error: relocation references symbol %s which was removed by garbage collection"), abfd, sec, (*rel_hash)->root.root.string); - _bfd_error_handler (_("%B:%A: error: try relinking with --gc-keep-exported enabled."), + _bfd_error_handler (_("%pB:%pA: error: try relinking with --gc-keep-exported enabled"), abfd, sec); bfd_set_error (bfd_error_invalid_operation); return FALSE; @@ -8946,7 +9073,7 @@ /* Section size is only divisible by rela. */ if (use_rela_initialised && !use_rela) { - _bfd_error_handler (_("%B: Unable to sort relocs - " + _bfd_error_handler (_("%pB: unable to sort relocs - " "they are in more than one size"), abfd); bfd_set_error (bfd_error_invalid_operation); @@ -8964,7 +9091,7 @@ /* Section size is only divisible by rel. */ if (use_rela_initialised && use_rela) { - _bfd_error_handler (_("%B: Unable to sort relocs - " + _bfd_error_handler (_("%pB: unable to sort relocs - " "they are in more than one size"), abfd); bfd_set_error (bfd_error_invalid_operation); @@ -8980,7 +9107,7 @@ { /* The section size is not divisible by either - something is wrong. */ - _bfd_error_handler (_("%B: Unable to sort relocs - " + _bfd_error_handler (_("%pB: unable to sort relocs - " "they are of an unknown size"), abfd); bfd_set_error (bfd_error_invalid_operation); return 0; @@ -9003,7 +9130,7 @@ /* Section size is only divisible by rela. */ if (use_rela_initialised && !use_rela) { - _bfd_error_handler (_("%B: Unable to sort relocs - " + _bfd_error_handler (_("%pB: unable to sort relocs - " "they are in more than one size"), abfd); bfd_set_error (bfd_error_invalid_operation); @@ -9021,7 +9148,7 @@ /* Section size is only divisible by rel. */ if (use_rela_initialised && use_rela) { - _bfd_error_handler (_("%B: Unable to sort relocs - " + _bfd_error_handler (_("%pB: unable to sort relocs - " "they are in more than one size"), abfd); bfd_set_error (bfd_error_invalid_operation); @@ -9037,7 +9164,7 @@ { /* The section size is not divisible by either - something is wrong. */ - _bfd_error_handler (_("%B: Unable to sort relocs - " + _bfd_error_handler (_("%pB: unable to sort relocs - " "they are of an unknown size"), abfd); bfd_set_error (bfd_error_invalid_operation); return 0; @@ -9089,7 +9216,7 @@ if (sort == NULL) { (*info->callbacks->warning) - (info, _("Not enough memory to sort relocations"), 0, abfd, 0, 0); + (info, _("not enough memory to sort relocations"), 0, abfd, 0, 0); return 0; } @@ -9357,7 +9484,7 @@ beyond 64k. */ _bfd_error_handler /* xgettext:c-format */ - (_("%B: Too many sections: %d (>= %d)"), + (_("%pB: too many sections: %d (>= %d)"), abfd, bfd_count_sections (abfd), SHN_LORESERVE & 0xffff); bfd_set_error (bfd_error_nonrepresentable_section); return FALSE; @@ -9637,13 +9764,13 @@ if (ELF_ST_VISIBILITY (h->other) == STV_INTERNAL) /* xgettext:c-format */ - msg = _("%B: internal symbol `%s' in %B is referenced by DSO"); + msg = _("%pB: internal symbol `%s' in %pB is referenced by DSO"); else if (ELF_ST_VISIBILITY (h->other) == STV_HIDDEN) /* xgettext:c-format */ - msg = _("%B: hidden symbol `%s' in %B is referenced by DSO"); + msg = _("%pB: hidden symbol `%s' in %pB is referenced by DSO"); else /* xgettext:c-format */ - msg = _("%B: local symbol `%s' in %B is referenced by DSO"); + msg = _("%pB: local symbol `%s' in %pB is referenced by DSO"); def_bfd = flinfo->output_bfd; if (hi->root.u.def.section != bfd_abs_section_ptr) def_bfd = hi->root.u.def.section->owner; @@ -9729,7 +9856,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: could not find output section %A for input section %A"), + (_("%pB: could not find output section %pA for input section %pA"), flinfo->output_bfd, input_sec->output_section, input_sec); bfd_set_error (bfd_error_nonrepresentable_section); eoinfo->failed = TRUE; @@ -9883,13 +10010,13 @@ if (ELF_ST_VISIBILITY (sym.st_other) == STV_PROTECTED) /* xgettext:c-format */ - msg = _("%B: protected symbol `%s' isn't defined"); + msg = _("%pB: protected symbol `%s' isn't defined"); else if (ELF_ST_VISIBILITY (sym.st_other) == STV_INTERNAL) /* xgettext:c-format */ - msg = _("%B: internal symbol `%s' isn't defined"); + msg = _("%pB: internal symbol `%s' isn't defined"); else /* xgettext:c-format */ - msg = _("%B: hidden symbol `%s' isn't defined"); + msg = _("%pB: hidden symbol `%s' isn't defined"); _bfd_error_handler (msg, flinfo->output_bfd, h->root.root.string); bfd_set_error (bfd_error_bad_value); eoinfo->failed = TRUE; @@ -9920,7 +10047,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: No symbol version section for versioned symbol `%s'"), + (_("%pB: no symbol version section for versioned symbol `%s'"), flinfo->output_bfd, h->root.root.string); eoinfo->failed = TRUE; return FALSE; @@ -10530,7 +10657,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("error: %B: size of section %A is not " + (_("error: %pB: size of section %pA is not " "multiple of address size"), input_bfd, o); bfd_set_error (bfd_error_bad_value); @@ -10575,9 +10702,9 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("error: %B contains a reloc (%#Lx) for section %A " + (_("error: %pB contains a reloc (%#" PRIx64 ") for section %pA " "that references a non-existent global symbol"), - input_bfd, rel->r_info, o); + input_bfd, (uint64_t) rel->r_info, o); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -10661,8 +10788,8 @@ if (action_discarded & COMPLAIN) (*flinfo->info->callbacks->einfo) /* xgettext:c-format */ - (_("%X`%s' referenced in section `%A' of %B: " - "defined in discarded section `%A' of %B\n"), + (_("%X`%s' referenced in section `%pA' of %pB: " + "defined in discarded section `%pA' of %pB\n"), sym_name, o, input_bfd, sec, sec->owner); /* Try to do the best we can to support buggy old @@ -11249,7 +11376,7 @@ if (bed->link_order_error_handler) bed->link_order_error_handler /* xgettext:c-format */ - (_("%B: warning: sh_link not set for section `%A'"), s->owner, s); + (_("%pB: warning: sh_link not set for section `%pA'"), s->owner, s); return 0; } else @@ -11330,13 +11457,13 @@ if (other_sec && linkorder_sec) _bfd_error_handler /* xgettext:c-format */ - (_("%A has both ordered [`%A' in %B] " - "and unordered [`%A' in %B] sections"), + (_("%pA has both ordered [`%pA' in %pB] " + "and unordered [`%pA' in %pB] sections"), o, linkorder_sec, linkorder_sec->owner, other_sec, other_sec->owner); else _bfd_error_handler - (_("%A has both ordered and unordered sections"), o); + (_("%pA has both ordered and unordered sections"), o); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -11438,7 +11565,7 @@ if (symcount == 0) { bfd_set_error (bfd_error_no_symbols); - _bfd_error_handler (_("%B: no symbol found for import library"), + _bfd_error_handler (_("%pB: no symbol found for import library"), implib_bfd); goto free_sym_buf; } @@ -11592,6 +11719,8 @@ std_attrs_section = get_elf_backend_data (abfd)->obj_attrs_section; for (o = abfd->sections; o != NULL; o = o->next) { + bfd_boolean remove = FALSE; + if ((std_attrs_section && strcmp (o->name, std_attrs_section) == 0) || strcmp (o->name, ".gnu.attributes") == 0) { @@ -11608,15 +11737,24 @@ } attr_size = bfd_elf_obj_attr_size (abfd); + bfd_set_section_size (abfd, o, attr_size); + /* Skip this section later on. */ + o->map_head.link_order = NULL; if (attr_size) - { - bfd_set_section_size (abfd, o, attr_size); - attr_section = o; - /* Skip this section later on. */ - o->map_head.link_order = NULL; - } + attr_section = o; else - o->flags |= SEC_EXCLUDE; + remove = TRUE; + } + else if ((o->flags & SEC_GROUP) != 0 && o->size == 0) + { + /* Remove empty group section from linker output. */ + remove = TRUE; + } + if (remove) + { + o->flags |= SEC_EXCLUDE; + bfd_section_list_remove (abfd, o); + abfd->section_count--; } } @@ -12060,7 +12198,7 @@ bfd_set_error (bfd_error_wrong_format); _bfd_error_handler /* xgettext:c-format */ - (_("%B: file class %s incompatible with %s"), + (_("%pB: file class %s incompatible with %s"), sub, iclass, oclass); } @@ -12277,7 +12415,7 @@ if (info->out_implib_bfd && !elf_output_implib (abfd, info)) { - _bfd_error_handler (_("%B: failed to generate import library"), + _bfd_error_handler (_("%pB: failed to generate import library"), info->out_implib_bfd); return FALSE; } @@ -12536,10 +12674,10 @@ { if (info->error_textrel) info->callbacks->einfo - (_("%P%X: read-only segment has dynamic relocations.\n")); + (_("%P%X: read-only segment has dynamic relocations\n")); else info->callbacks->einfo - (_("%P: warning: creating a DT_TEXTREL in a shared object.\n")); + (_("%P: warning: creating a DT_TEXTREL in a shared object\n")); break; } } @@ -12785,20 +12923,31 @@ return NULL; } -/* Return the global debug definition section. */ +/* Return the debug definition section. */ static asection * elf_gc_mark_debug_section (asection *sec ATTRIBUTE_UNUSED, struct bfd_link_info *info ATTRIBUTE_UNUSED, Elf_Internal_Rela *rel ATTRIBUTE_UNUSED, struct elf_link_hash_entry *h, - Elf_Internal_Sym *sym ATTRIBUTE_UNUSED) + Elf_Internal_Sym *sym) { - if (h != NULL - && (h->root.type == bfd_link_hash_defined - || h->root.type == bfd_link_hash_defweak) - && (h->root.u.def.section->flags & SEC_DEBUGGING) != 0) - return h->root.u.def.section; + if (h != NULL) + { + /* Return the global debug definition section. */ + if ((h->root.type == bfd_link_hash_defined + || h->root.type == bfd_link_hash_defweak) + && (h->root.u.def.section->flags & SEC_DEBUGGING) != 0) + return h->root.u.def.section; + } + else + { + /* Return the local debug definition section. */ + asection *isec = bfd_section_from_elf_index (sec->owner, + sym->st_shndx); + if ((isec->flags & SEC_DEBUGGING) != 0) + return isec; + } return NULL; } @@ -12826,7 +12975,7 @@ h = cookie->sym_hashes[r_symndx - cookie->extsymoff]; if (h == NULL) { - info->callbacks->einfo (_("%F%P: corrupt input: %B\n"), + info->callbacks->einfo (_("%F%P: corrupt input: %pB\n"), sec->owner); return NULL; } @@ -13148,7 +13297,7 @@ if (info->print_gc_sections && o->size != 0) /* xgettext:c-format */ - _bfd_error_handler (_("Removing unused section '%A' in file '%B'"), + _bfd_error_handler (_("removing unused section '%pA' in file '%pB'"), o, sub); } } @@ -13277,7 +13426,7 @@ if ((h->root.type == bfd_link_hash_defined || h->root.type == bfd_link_hash_defweak) - && (h->ref_dynamic + && ((h->ref_dynamic && !h->forced_local) || ((h->def_regular || ELF_COMMON_DEF_P (h)) && ELF_ST_VISIBILITY (h->other) != STV_INTERNAL && ELF_ST_VISIBILITY (h->other) != STV_HIDDEN @@ -13366,7 +13515,7 @@ if (!bed->can_gc_sections || !is_elf_hash_table (info->hash)) { - _bfd_error_handler(_("Warning: gc-sections option ignored")); + _bfd_error_handler(_("warning: gc-sections option ignored")); return TRUE; } @@ -13428,11 +13577,19 @@ /* Start at sections marked with SEC_KEEP (ref _bfd_elf_gc_keep). Also treat note sections as a root, if the section is not part - of a group. */ + of a group. We must keep all PREINIT_ARRAY, INIT_ARRAY as + well as FINI_ARRAY sections for ld -r. */ for (o = sub->sections; o != NULL; o = o->next) if (!o->gc_mark && (o->flags & SEC_EXCLUDE) == 0 && ((o->flags & SEC_KEEP) != 0 + || (bfd_link_relocatable (info) + && ((elf_section_data (o)->this_hdr.sh_type + == SHT_PREINIT_ARRAY) + || (elf_section_data (o)->this_hdr.sh_type + == SHT_INIT_ARRAY) + || (elf_section_data (o)->this_hdr.sh_type + == SHT_FINI_ARRAY))) || (elf_section_data (o)->this_hdr.sh_type == SHT_NOTE && elf_next_in_group (o) == NULL ))) { @@ -13484,8 +13641,8 @@ } /* xgettext:c-format */ - _bfd_error_handler (_("%B: %A+%#Lx: No symbol found for INHERIT"), - abfd, sec, offset); + _bfd_error_handler (_("%pB: %pA+%#" PRIx64 ": no symbol found for INHERIT"), + abfd, sec, (uint64_t) offset); bfd_set_error (bfd_error_invalid_operation); return FALSE; @@ -13660,7 +13817,7 @@ if (!tf->valid) { info->callbacks->einfo - (_("Unrecognized INPUT_SECTION_FLAG %s\n"), tf->name); + (_("unrecognized INPUT_SECTION_FLAG %s\n"), tf->name); return FALSE; } } @@ -14330,8 +14487,9 @@ if (h != NULL && (h->root.type == bfd_link_hash_undefined || h->root.type == bfd_link_hash_undefweak - || (h->ref_regular && !h->def_regular))) + || ((h->ref_regular || h->def_dynamic) && !h->def_regular))) { + bfd_boolean was_dynamic = h->ref_dynamic || h->def_dynamic; h->root.type = bfd_link_hash_defined; h->root.u.def.section = sec; h->root.u.def.value = 0; @@ -14346,8 +14504,13 @@ bed = get_elf_backend_data (info->output_bfd); (*bed->elf_backend_hide_symbol) (info, h, TRUE); } - else if (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT) - h->other = (h->other & ~ELF_ST_VISIBILITY (-1)) | STV_PROTECTED; + else + { + if (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT) + h->other = (h->other & ~ELF_ST_VISIBILITY (-1)) | STV_PROTECTED; + if (was_dynamic) + bfd_elf_link_record_dynamic_symbol (info, h); + } return &h->root; } return NULL; diff -Nru gdb-8.1/bfd/elf-linux-core.h gdb-8.2/bfd/elf-linux-core.h --- gdb-8.1/bfd/elf-linux-core.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf-linux-core.h 2018-09-05 07:27:13.000000000 +0000 @@ -45,8 +45,8 @@ char pr_ppid[4]; char pr_pgrp[4]; char pr_sid[4]; - char pr_fname[16]; /* Filename of executable. */ - char pr_psargs[80]; /* Initial part of arg list. */ + char pr_fname[16] ATTRIBUTE_NONSTRING; /* Filename of executable. */ + char pr_psargs[80] ATTRIBUTE_NONSTRING; /* Initial part of arg list. */ }; /* Helper function to copy an elf_internal_linux_prpsinfo in host @@ -97,8 +97,8 @@ char pr_ppid[4]; char pr_pgrp[4]; char pr_sid[4]; - char pr_fname[16]; /* Filename of executable. */ - char pr_psargs[80]; /* Initial part of arg list. */ + char pr_fname[16] ATTRIBUTE_NONSTRING; /* Filename of executable. */ + char pr_psargs[80] ATTRIBUTE_NONSTRING; /* Initial part of arg list. */ }; /* Helper function to copy an elf_internal_linux_prpsinfo in host @@ -150,8 +150,8 @@ char pr_ppid[4]; char pr_pgrp[4]; char pr_sid[4]; - char pr_fname[16]; /* Filename of executable. */ - char pr_psargs[80]; /* Initial part of arg list. */ + char pr_fname[16] ATTRIBUTE_NONSTRING; /* Filename of executable. */ + char pr_psargs[80] ATTRIBUTE_NONSTRING; /* Initial part of arg list. */ }; /* Helper function to copy an elf_internal_linux_prpsinfo in host @@ -203,8 +203,8 @@ char pr_ppid[4]; char pr_pgrp[4]; char pr_sid[4]; - char pr_fname[16]; /* Filename of executable. */ - char pr_psargs[80]; /* Initial part of arg list. */ + char pr_fname[16] ATTRIBUTE_NONSTRING; /* Filename of executable. */ + char pr_psargs[80] ATTRIBUTE_NONSTRING; /* Initial part of arg list. */ }; /* Helper function to copy an elf_internal_linux_prpsinfo in host diff -Nru gdb-8.1/bfd/elf-m10200.c gdb-8.2/bfd/elf-m10200.c --- gdb-8.1/bfd/elf-m10200.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf-m10200.c 2018-09-05 07:27:13.000000000 +0000 @@ -212,16 +212,25 @@ /* Set the howto pointer for an MN10200 ELF reloc. */ -static void -mn10200_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +mn10200_info_to_howto (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { unsigned int r_type; r_type = ELF32_R_TYPE (dst->r_info); - BFD_ASSERT (r_type < (unsigned int) R_MN10200_MAX); + if (r_type >= (unsigned int) R_MN10200_MAX) + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + cache_ptr->howto = &elf_mn10200_howto_table[r_type]; + return cache_ptr->howto != NULL; } /* Perform a relocation as part of a final link. */ @@ -1378,7 +1387,7 @@ #define elf_backend_rela_normal 1 #define elf_info_to_howto mn10200_info_to_howto -#define elf_info_to_howto_rel 0 +#define elf_info_to_howto_rel NULL #define elf_backend_relocate_section mn10200_elf_relocate_section #define bfd_elf32_bfd_relax_section mn10200_elf_relax_section #define bfd_elf32_bfd_get_relocated_section_contents \ diff -Nru gdb-8.1/bfd/elf-m10300.c gdb-8.2/bfd/elf-m10300.c --- gdb-8.1/bfd/elf-m10300.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf-m10300.c 2018-09-05 07:27:13.000000000 +0000 @@ -798,8 +798,8 @@ /* Set the howto pointer for an MN10300 ELF reloc. */ -static void -mn10300_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +mn10300_info_to_howto (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { @@ -809,12 +809,13 @@ if (r_type >= R_MN10300_MAX) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: unrecognised MN10300 reloc number: %d"), + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), abfd, r_type); bfd_set_error (bfd_error_bad_value); - r_type = R_MN10300_NONE; + return FALSE; } cache_ptr->howto = elf_mn10300_howto_table + r_type; + return TRUE; } static int @@ -1025,7 +1026,7 @@ default: _bfd_error_handler /* xgettext:c-format */ - (_("%B: Unsupported transition from %s to %s"), + (_("%pB: unsupported transition from %s to %s"), input_bfd, elf_mn10300_howto_table[r_type].name, elf_mn10300_howto_table[tls_r_type].name); @@ -1194,7 +1195,7 @@ else _bfd_error_handler /* xgettext:c-format */ - (_("%B: %s' accessed both as normal and thread local symbol"), + (_("%pB: %s' accessed both as normal and thread local symbol"), abfd, h ? h->root.root.string : ""); } @@ -2090,10 +2091,11 @@ _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"), + (_("%pB(%pA+%#" PRIx64 "): " + "unresolvable %s relocation against symbol `%s'"), input_bfd, input_section, - rel->r_offset, + (uint64_t) rel->r_offset, howto->name, h->root.root.root.string); } @@ -2155,7 +2157,7 @@ " library (did you forget -fpic?)"); else if (r_type == R_MN10300_GOT32) /* xgettext:c-format */ - msg = _("%B: taking the address of protected function" + msg = _("%pB: taking the address of protected function" " '%s' cannot be done when making a shared library"); else msg = _("internal error: suspicious relocation type used" @@ -5543,7 +5545,7 @@ #endif #define elf_info_to_howto mn10300_info_to_howto -#define elf_info_to_howto_rel 0 +#define elf_info_to_howto_rel NULL #define elf_backend_can_gc_sections 1 #define elf_backend_rela_normal 1 #define elf_backend_check_relocs mn10300_elf_check_relocs @@ -5574,8 +5576,7 @@ _bfd_mn10300_elf_adjust_dynamic_symbol #define elf_backend_size_dynamic_sections \ _bfd_mn10300_elf_size_dynamic_sections -#define elf_backend_omit_section_dynsym \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true) +#define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_all #define elf_backend_finish_dynamic_symbol \ _bfd_mn10300_elf_finish_dynamic_symbol #define elf_backend_finish_dynamic_sections \ diff -Nru gdb-8.1/bfd/elfn32-mips.c gdb-8.2/bfd/elfn32-mips.c --- gdb-8.1/bfd/elfn32-mips.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elfn32-mips.c 2018-09-05 07:27:13.000000000 +0000 @@ -66,11 +66,9 @@ (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup (bfd *, bfd_reloc_code_real_type); -static reloc_howto_type *mips_elf_n32_rtype_to_howto - (unsigned int, bfd_boolean); -static void mips_info_to_howto_rel +static bfd_boolean mips_info_to_howto_rel (bfd *, arelent *, Elf_Internal_Rela *); -static void mips_info_to_howto_rela +static bfd_boolean mips_info_to_howto_rela (bfd *, arelent *, Elf_Internal_Rela *); static bfd_boolean mips_elf_sym_is_global (bfd *, asymbol *); @@ -2401,6 +2399,166 @@ 0, /* src_mask */ 0x00000000, /* dst_mask */ FALSE), /* pcrel_offset */ + + /* Low 16 bits of symbol value. Note that the high 16 bits of symbol values + must be zero. This is used for relaxation. */ + HOWTO (R_MICROMIPS_HI0_LO16, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_HI0_LO16",/* name */ + TRUE, /* partial_inplace */ + 0x0000ffff, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + EMPTY_HOWTO (158), + EMPTY_HOWTO (159), + EMPTY_HOWTO (160), + EMPTY_HOWTO (161), + + /* TLS general dynamic variable reference. */ + HOWTO (R_MICROMIPS_TLS_GD, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_GD", /* name */ + TRUE, /* partial_inplace */ + 0x0000ffff, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* TLS local dynamic variable reference. */ + HOWTO (R_MICROMIPS_TLS_LDM, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_LDM", /* name */ + TRUE, /* partial_inplace */ + 0x0000ffff, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* TLS local dynamic offset. */ + HOWTO (R_MICROMIPS_TLS_DTPREL_HI16, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_DTPREL_HI16", /* name */ + TRUE, /* partial_inplace */ + 0x0000ffff, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* TLS local dynamic offset. */ + HOWTO (R_MICROMIPS_TLS_DTPREL_LO16, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_DTPREL_LO16", /* name */ + TRUE, /* partial_inplace */ + 0x0000ffff, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* TLS thread pointer offset. */ + HOWTO (R_MICROMIPS_TLS_GOTTPREL, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_GOTTPREL", /* name */ + TRUE, /* partial_inplace */ + 0x0000ffff, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + EMPTY_HOWTO (167), + EMPTY_HOWTO (168), + + /* TLS thread pointer offset. */ + HOWTO (R_MICROMIPS_TLS_TPREL_HI16, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_TPREL_HI16", /* name */ + TRUE, /* partial_inplace */ + 0x0000ffff, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* TLS thread pointer offset. */ + HOWTO (R_MICROMIPS_TLS_TPREL_LO16, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_TPREL_LO16", /* name */ + TRUE, /* partial_inplace */ + 0x0000ffff, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + EMPTY_HOWTO (171), + + /* GP- and PC-relative relocations. */ + HOWTO (R_MICROMIPS_GPREL7_S2, /* type */ + 2, /* rightshift */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ + 7, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf32_gprel16_reloc, /* special_function */ + "R_MICROMIPS_GPREL7_S2", /* name */ + TRUE, /* partial_inplace */ + 0x0000007f, /* src_mask */ + 0x0000007f, /* dst_mask */ + FALSE), /* pcrel_offset */ + + HOWTO (R_MICROMIPS_PC23_S2, /* type */ + 2, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 23, /* bitsize */ + TRUE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_PC23_S2", /* name */ + TRUE, /* partial_inplace */ + 0x007fffff, /* src_mask */ + 0x007fffff, /* dst_mask */ + TRUE), /* pcrel_offset */ }; static reloc_howto_type elf_micromips_howto_table_rela[] = @@ -2743,6 +2901,166 @@ 0, /* src_mask */ 0x00000000, /* dst_mask */ FALSE), /* pcrel_offset */ + + /* Low 16 bits of symbol value. Note that the high 16 bits of symbol values + must be zero. This is used for relaxation. */ + HOWTO (R_MICROMIPS_HI0_LO16, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_HI0_LO16",/* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + EMPTY_HOWTO (158), + EMPTY_HOWTO (159), + EMPTY_HOWTO (160), + EMPTY_HOWTO (161), + + /* TLS general dynamic variable reference. */ + HOWTO (R_MICROMIPS_TLS_GD, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_GD", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* TLS local dynamic variable reference. */ + HOWTO (R_MICROMIPS_TLS_LDM, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_LDM", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* TLS local dynamic offset. */ + HOWTO (R_MICROMIPS_TLS_DTPREL_HI16, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_DTPREL_HI16", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* TLS local dynamic offset. */ + HOWTO (R_MICROMIPS_TLS_DTPREL_LO16, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_DTPREL_LO16", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* TLS thread pointer offset. */ + HOWTO (R_MICROMIPS_TLS_GOTTPREL, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_GOTTPREL", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + EMPTY_HOWTO (167), + EMPTY_HOWTO (168), + + /* TLS thread pointer offset. */ + HOWTO (R_MICROMIPS_TLS_TPREL_HI16, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_TPREL_HI16", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* TLS thread pointer offset. */ + HOWTO (R_MICROMIPS_TLS_TPREL_LO16, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_TLS_TPREL_LO16", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + EMPTY_HOWTO (171), + + /* GP- and PC-relative relocations. */ + HOWTO (R_MICROMIPS_GPREL7_S2, /* type */ + 2, /* rightshift */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ + 7, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf32_gprel16_reloc, /* special_function */ + "R_MICROMIPS_GPREL7_S2", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0x0000007f, /* dst_mask */ + FALSE), /* pcrel_offset */ + + HOWTO (R_MICROMIPS_PC23_S2, /* type */ + 2, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 23, /* bitsize */ + TRUE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MICROMIPS_PC23_S2", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0x007fffff, /* dst_mask */ + TRUE), /* pcrel_offset */ }; /* GNU extension to record C++ vtable hierarchy */ @@ -3293,6 +3611,21 @@ { BFD_RELOC_MICROMIPS_CALL_LO16, R_MICROMIPS_CALL_LO16 - R_MICROMIPS_min }, { BFD_RELOC_MICROMIPS_SCN_DISP, R_MICROMIPS_SCN_DISP - R_MICROMIPS_min }, { BFD_RELOC_MICROMIPS_JALR, R_MICROMIPS_JALR - R_MICROMIPS_min }, + /* There is no BFD reloc for R_MICROMIPS_HI0_LO16. */ + { BFD_RELOC_MICROMIPS_TLS_GD, R_MICROMIPS_TLS_GD - R_MICROMIPS_min }, + { BFD_RELOC_MICROMIPS_TLS_LDM, R_MICROMIPS_TLS_LDM - R_MICROMIPS_min }, + { BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16, + R_MICROMIPS_TLS_DTPREL_HI16 - R_MICROMIPS_min }, + { BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16, + R_MICROMIPS_TLS_DTPREL_LO16 - R_MICROMIPS_min }, + { BFD_RELOC_MICROMIPS_TLS_GOTTPREL, + R_MICROMIPS_TLS_GOTTPREL - R_MICROMIPS_min }, + { BFD_RELOC_MICROMIPS_TLS_TPREL_HI16, + R_MICROMIPS_TLS_TPREL_HI16 - R_MICROMIPS_min }, + { BFD_RELOC_MICROMIPS_TLS_TPREL_LO16, + R_MICROMIPS_TLS_TPREL_LO16 - R_MICROMIPS_min }, + /* There is no BFD reloc for R_MICROMIPS_GPREL7_S2. */ + /* There is no BFD reloc for R_MICROMIPS_PC23_S2. */ }; /* Given a BFD reloc type, return a howto structure. */ @@ -3402,8 +3735,10 @@ /* Given a MIPS Elf_Internal_Rel, fill in an arelent structure. */ static reloc_howto_type * -mips_elf_n32_rtype_to_howto (unsigned int r_type, bfd_boolean rela_p) +mips_elf_n32_rtype_to_howto (bfd *abfd, unsigned int r_type, bfd_boolean rela_p) { + reloc_howto_type *howto = NULL; + switch (r_type) { case R_MIPS_GNU_VTINHERIT: @@ -3427,40 +3762,46 @@ if (r_type >= R_MICROMIPS_min && r_type < R_MICROMIPS_max) { if (rela_p) - return &elf_micromips_howto_table_rela[r_type - R_MICROMIPS_min]; + howto = &elf_micromips_howto_table_rela[r_type - R_MICROMIPS_min]; else - return &elf_micromips_howto_table_rel[r_type - R_MICROMIPS_min]; + howto = &elf_micromips_howto_table_rel[r_type - R_MICROMIPS_min]; } if (r_type >= R_MIPS16_min && r_type < R_MIPS16_max) { if (rela_p) - return &elf_mips16_howto_table_rela[r_type - R_MIPS16_min]; + howto = &elf_mips16_howto_table_rela[r_type - R_MIPS16_min]; else - return &elf_mips16_howto_table_rel[r_type - R_MIPS16_min]; + howto = &elf_mips16_howto_table_rel[r_type - R_MIPS16_min]; } - if (r_type >= R_MIPS_max) + if (r_type < R_MIPS_max) { - _bfd_error_handler (_("unrecognised MIPS reloc number: %d"), r_type); - bfd_set_error (bfd_error_bad_value); - r_type = R_MIPS_NONE; + if (rela_p) + howto = &elf_mips_howto_table_rela[r_type]; + else + howto = &elf_mips_howto_table_rel[r_type]; } - if (rela_p) - return &elf_mips_howto_table_rela[r_type]; - else - return &elf_mips_howto_table_rel[r_type]; - break; + if (howto != NULL && howto->name != NULL) + return howto; + + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return NULL; } } /* Given a MIPS Elf_Internal_Rel, fill in an arelent structure. */ -static void +static bfd_boolean mips_info_to_howto_rel (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { unsigned int r_type; r_type = ELF32_R_TYPE (dst->r_info); - cache_ptr->howto = mips_elf_n32_rtype_to_howto (r_type, FALSE); + cache_ptr->howto = mips_elf_n32_rtype_to_howto (abfd, r_type, FALSE); + + if (cache_ptr->howto == NULL) + return FALSE; /* The addend for a GPREL16 or LITERAL relocation comes from the GP value for the object file. We get the addend now, rather than @@ -3469,19 +3810,22 @@ if (((*cache_ptr->sym_ptr_ptr)->flags & BSF_SECTION_SYM) != 0 && (gprel16_reloc_p (r_type) || r_type == (unsigned int) R_MIPS_LITERAL)) cache_ptr->addend = elf_gp (abfd); + + return TRUE; } /* Given a MIPS Elf_Internal_Rela, fill in an arelent structure. */ -static void -mips_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +mips_info_to_howto_rela (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { unsigned int r_type; r_type = ELF32_R_TYPE (dst->r_info); - cache_ptr->howto = mips_elf_n32_rtype_to_howto (r_type, TRUE); + cache_ptr->howto = mips_elf_n32_rtype_to_howto (abfd, r_type, TRUE); cache_ptr->addend = dst->r_addend; + return cache_ptr->howto != NULL; } /* Determine whether a symbol is global for the purposes of splitting diff -Nru gdb-8.1/bfd/elfnn-aarch64.c gdb-8.2/bfd/elfnn-aarch64.c --- gdb-8.1/bfd/elfnn-aarch64.c 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/bfd/elfnn-aarch64.c 2018-09-05 07:44:28.000000000 +0000 @@ -201,6 +201,14 @@ || (R_TYPE) == BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12 \ || (R_TYPE) == BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12 \ || (R_TYPE) == BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC \ + || (R_TYPE) == BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12 \ + || (R_TYPE) == BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12_NC \ + || (R_TYPE) == BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12 \ + || (R_TYPE) == BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12_NC \ + || (R_TYPE) == BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12 \ + || (R_TYPE) == BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12_NC \ + || (R_TYPE) == BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12 \ + || (R_TYPE) == BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12_NC \ || (R_TYPE) == BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0 \ || (R_TYPE) == BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC \ || (R_TYPE) == BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1 \ @@ -617,6 +625,114 @@ 0xffff, /* dst_mask */ FALSE), /* pcrel_offset */ + /* Group relocations to create a 16, 32, 48 or 64 bit + PC relative address inline. */ + + /* MOV[NZ]: ((S+A-P) >> 0) & 0xffff */ + HOWTO64 (AARCH64_R (MOVW_PREL_G0), /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 17, /* bitsize */ + TRUE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + AARCH64_R_STR (MOVW_PREL_G0), /* name */ + FALSE, /* partial_inplace */ + 0xffff, /* src_mask */ + 0xffff, /* dst_mask */ + TRUE), /* pcrel_offset */ + + /* MOVK: ((S+A-P) >> 0) & 0xffff [no overflow check] */ + HOWTO64 (AARCH64_R (MOVW_PREL_G0_NC), /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + TRUE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + AARCH64_R_STR (MOVW_PREL_G0_NC), /* name */ + FALSE, /* partial_inplace */ + 0xffff, /* src_mask */ + 0xffff, /* dst_mask */ + TRUE), /* pcrel_offset */ + + /* MOV[NZ]: ((S+A-P) >> 16) & 0xffff */ + HOWTO64 (AARCH64_R (MOVW_PREL_G1), /* type */ + 16, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 17, /* bitsize */ + TRUE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + AARCH64_R_STR (MOVW_PREL_G1), /* name */ + FALSE, /* partial_inplace */ + 0xffff, /* src_mask */ + 0xffff, /* dst_mask */ + TRUE), /* pcrel_offset */ + + /* MOVK: ((S+A-P) >> 16) & 0xffff [no overflow check] */ + HOWTO64 (AARCH64_R (MOVW_PREL_G1_NC), /* type */ + 16, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + TRUE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + AARCH64_R_STR (MOVW_PREL_G1_NC), /* name */ + FALSE, /* partial_inplace */ + 0xffff, /* src_mask */ + 0xffff, /* dst_mask */ + TRUE), /* pcrel_offset */ + + /* MOV[NZ]: ((S+A-P) >> 32) & 0xffff */ + HOWTO64 (AARCH64_R (MOVW_PREL_G2), /* type */ + 32, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 17, /* bitsize */ + TRUE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + AARCH64_R_STR (MOVW_PREL_G2), /* name */ + FALSE, /* partial_inplace */ + 0xffff, /* src_mask */ + 0xffff, /* dst_mask */ + TRUE), /* pcrel_offset */ + + /* MOVK: ((S+A-P) >> 32) & 0xffff [no overflow check] */ + HOWTO64 (AARCH64_R (MOVW_PREL_G2_NC), /* type */ + 32, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + TRUE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + AARCH64_R_STR (MOVW_PREL_G2_NC), /* name */ + FALSE, /* partial_inplace */ + 0xffff, /* src_mask */ + 0xffff, /* dst_mask */ + TRUE), /* pcrel_offset */ + + /* MOV[NZ]: ((S+A-P) >> 48) & 0xffff */ + HOWTO64 (AARCH64_R (MOVW_PREL_G3), /* type */ + 48, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + TRUE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + AARCH64_R_STR (MOVW_PREL_G3), /* name */ + FALSE, /* partial_inplace */ + 0xffff, /* src_mask */ + 0xffff, /* dst_mask */ + TRUE), /* pcrel_offset */ + /* Relocations to generate 19, 21 and 33 bit PC-relative load/store addresses: PG(x) is (x & ~0xfff). */ @@ -1527,6 +1643,126 @@ 0xfff, /* dst_mask */ FALSE), /* pcrel_offset */ + /* LD/ST16: bit[11:1] of byte offset to module TLS base address. */ + HOWTO (AARCH64_R (TLSLE_LDST16_TPREL_LO12), /* type */ + 1, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 11, /* bitsize */ + FALSE, /* pc_relative */ + 10, /* bitpos */ + complain_overflow_unsigned, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + AARCH64_R_STR (TLSLE_LDST16_TPREL_LO12), /* name */ + FALSE, /* partial_inplace */ + 0x1ffc00, /* src_mask */ + 0x1ffc00, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* Same as BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12, but no overflow check. */ + HOWTO (AARCH64_R (TLSLE_LDST16_TPREL_LO12_NC), /* type */ + 1, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 11, /* bitsize */ + FALSE, /* pc_relative */ + 10, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + AARCH64_R_STR (TLSLE_LDST16_TPREL_LO12_NC), /* name */ + FALSE, /* partial_inplace */ + 0x1ffc00, /* src_mask */ + 0x1ffc00, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* LD/ST32: bit[11:2] of byte offset to module TLS base address. */ + HOWTO (AARCH64_R (TLSLE_LDST32_TPREL_LO12), /* type */ + 2, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 10, /* bitsize */ + FALSE, /* pc_relative */ + 10, /* bitpos */ + complain_overflow_unsigned, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + AARCH64_R_STR (TLSLE_LDST32_TPREL_LO12), /* name */ + FALSE, /* partial_inplace */ + 0xffc00, /* src_mask */ + 0xffc00, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* Same as BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12, but no overflow check. */ + HOWTO (AARCH64_R (TLSLE_LDST32_TPREL_LO12_NC), /* type */ + 2, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 10, /* bitsize */ + FALSE, /* pc_relative */ + 10, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + AARCH64_R_STR (TLSLE_LDST32_TPREL_LO12_NC), /* name */ + FALSE, /* partial_inplace */ + 0xffc00, /* src_mask */ + 0xffc00, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* LD/ST64: bit[11:3] of byte offset to module TLS base address. */ + HOWTO (AARCH64_R (TLSLE_LDST64_TPREL_LO12), /* type */ + 3, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 9, /* bitsize */ + FALSE, /* pc_relative */ + 10, /* bitpos */ + complain_overflow_unsigned, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + AARCH64_R_STR (TLSLE_LDST64_TPREL_LO12), /* name */ + FALSE, /* partial_inplace */ + 0x7fc00, /* src_mask */ + 0x7fc00, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* Same as BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12, but no overflow check. */ + HOWTO (AARCH64_R (TLSLE_LDST64_TPREL_LO12_NC), /* type */ + 3, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 9, /* bitsize */ + FALSE, /* pc_relative */ + 10, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + AARCH64_R_STR (TLSLE_LDST64_TPREL_LO12_NC), /* name */ + FALSE, /* partial_inplace */ + 0x7fc00, /* src_mask */ + 0x7fc00, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* LD/ST8: bit[11:0] of byte offset to module TLS base address. */ + HOWTO (AARCH64_R (TLSLE_LDST8_TPREL_LO12), /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 12, /* bitsize */ + FALSE, /* pc_relative */ + 10, /* bitpos */ + complain_overflow_unsigned, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + AARCH64_R_STR (TLSLE_LDST8_TPREL_LO12), /* name */ + FALSE, /* partial_inplace */ + 0x3ffc00, /* src_mask */ + 0x3ffc00, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* Same as BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12, but no overflow check. */ + HOWTO (AARCH64_R (TLSLE_LDST8_TPREL_LO12_NC), /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 12, /* bitsize */ + FALSE, /* pc_relative */ + 10, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + AARCH64_R_STR (TLSLE_LDST8_TPREL_LO12_NC), /* name */ + FALSE, /* partial_inplace */ + 0x3ffc00, /* src_mask */ + 0x3ffc00, /* dst_mask */ + FALSE), /* pcrel_offset */ + HOWTO (AARCH64_R (TLSDESC_LD_PREL19), /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ @@ -1864,7 +2100,7 @@ /* Given R_TYPE, return the bfd internal relocation enumerator. */ static bfd_reloc_code_real_type -elfNN_aarch64_bfd_reloc_from_type (unsigned int r_type) +elfNN_aarch64_bfd_reloc_from_type (bfd *abfd, unsigned int r_type) { static bfd_boolean initialized_p = FALSE; /* Indexed by R_TYPE, values are offsets in the howto_table. */ @@ -1887,7 +2123,8 @@ /* PR 17512: file: b371e70a. */ if (r_type >= R_AARCH64_end) { - _bfd_error_handler (_("Invalid AArch64 reloc number: %d"), r_type); + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); bfd_set_error (bfd_error_bad_value); return BFD_RELOC_AARCH64_NONE; } @@ -1946,7 +2183,7 @@ } static reloc_howto_type * -elfNN_aarch64_howto_from_type (unsigned int r_type) +elfNN_aarch64_howto_from_type (bfd *abfd, unsigned int r_type) { bfd_reloc_code_real_type val; reloc_howto_type *howto; @@ -1962,7 +2199,7 @@ if (r_type == R_AARCH64_NONE) return &elfNN_aarch64_howto_none; - val = elfNN_aarch64_bfd_reloc_from_type (r_type); + val = elfNN_aarch64_bfd_reloc_from_type (abfd, r_type); howto = elfNN_aarch64_howto_from_bfd_reloc (val); if (howto != NULL) @@ -1972,14 +2209,22 @@ return NULL; } -static void -elfNN_aarch64_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *bfd_reloc, +static bfd_boolean +elfNN_aarch64_info_to_howto (bfd *abfd, arelent *bfd_reloc, Elf_Internal_Rela *elf_reloc) { unsigned int r_type; r_type = ELFNN_R_TYPE (elf_reloc->r_info); - bfd_reloc->howto = elfNN_aarch64_howto_from_type (r_type); + bfd_reloc->howto = elfNN_aarch64_howto_from_type (abfd, r_type); + + if (bfd_reloc->howto == NULL) + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), abfd, r_type); + return FALSE; + } + return TRUE; } static reloc_howto_type * @@ -2619,11 +2864,11 @@ reloc_howto_type *howto; bfd_vma place; - howto = elfNN_aarch64_howto_from_type (r_type); + howto = elfNN_aarch64_howto_from_type (input_bfd, r_type); place = (input_section->output_section->vma + input_section->output_offset + offset); - r_type = elfNN_aarch64_bfd_reloc_from_type (r_type); + r_type = elfNN_aarch64_bfd_reloc_from_type (input_bfd, r_type); value = _bfd_aarch64_elf_resolve_relocation (r_type, place, value, 0, FALSE); return _bfd_aarch64_elf_put_addend (input_bfd, input_section->contents + offset, r_type, @@ -2851,7 +3096,7 @@ if (stub_entry == NULL) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: cannot create stub entry %s"), + _bfd_error_handler (_("%pB: cannot create stub entry %s"), section->owner, stub_name); return NULL; } @@ -3500,7 +3745,8 @@ { char *stub_name = (char *) bfd_malloc (strlen ("__erratum_835769_veneer_") + 16); - sprintf (stub_name,"__erratum_835769_veneer_%d", num_fixes); + if (stub_name != NULL) + sprintf (stub_name,"__erratum_835769_veneer_%d", num_fixes); return stub_name; } @@ -3696,8 +3942,10 @@ if (!strstr (section->name, STUB_SUFFIX)) continue; + /* Add space for a branch. Add 8 bytes to keep section 8 byte aligned, + as long branch stubs contain a 64-bit address. */ if (section->size) - section->size += 4; + section->size += 8; /* Ensure all stub sections have a size which is a multiple of 4096. This is important in order to ensure that the insertion @@ -3709,9 +3957,7 @@ } } - -/* Construct an erratum 843419 workaround stub name. - */ +/* Construct an erratum 843419 workaround stub name. */ static char * _bfd_aarch64_erratum_843419_stub_name (asection *input_section, @@ -3747,6 +3993,8 @@ struct elf_aarch64_stub_hash_entry *stub_entry; stub_name = _bfd_aarch64_erratum_843419_stub_name (section, ldst_offset); + if (stub_name == NULL) + return FALSE; stub_entry = aarch64_stub_hash_lookup (&htab->stub_hash_table, stub_name, FALSE, FALSE); if (stub_entry) @@ -3764,8 +4012,7 @@ If we placed workaround veneers in any other stub section then we could not assume that all relocations have been processed on the corresponding input section at the point we output the stub - section. - */ + section. */ stub_entry = _bfd_aarch64_add_stub_entry_after (stub_name, section, htab); if (stub_entry == NULL) @@ -4253,8 +4500,11 @@ return FALSE; stub_sec->size = 0; + /* Add a branch around the stub section, and a nop, to keep it 8 byte + aligned, as long branch stubs contain a 64-bit address. */ bfd_putl32 (0x14000000 | (size >> 2), stub_sec->contents); - stub_sec->size += 4; + bfd_putl32 (INSN_NOP, stub_sec->contents + 4); + stub_sec->size += 8; } /* Build the stubs as directed by the stub hash table. */ @@ -4600,7 +4850,7 @@ unsigned long r_symndx) { bfd_reloc_code_real_type bfd_r_type - = elfNN_aarch64_bfd_reloc_from_type (r_type); + = elfNN_aarch64_bfd_reloc_from_type (input_bfd, r_type); if (! aarch64_can_relax_tls (input_bfd, info, bfd_r_type, h, r_symndx)) return bfd_r_type; @@ -4776,7 +5026,7 @@ abfd = stub_entry->target_section->owner; if (!aarch64_valid_branch_p (veneer_entry_loc, veneered_insn_loc)) _bfd_error_handler - (_("%B: error: Erratum 835769 stub out " + (_("%pB: error: erratum 835769 stub out " "of range (input file too large)"), abfd); target = stub_entry->target_value; @@ -4857,7 +5107,7 @@ abfd = stub_entry->target_section->owner; if (!aarch64_valid_branch_p (veneer_entry_loc, veneered_insn_loc)) _bfd_error_handler - (_("%B: error: Erratum 843419 stub out " + (_("%pB: error: erratum 843419 stub out " "of range (input file too large)"), abfd); branch_insn = 0x14000000; @@ -4954,6 +5204,7 @@ asection *base_got; bfd_vma orig_value = value; bfd_boolean resolved_to_zero; + bfd_boolean abs_symbol_p; globals = elf_aarch64_hash_table (info); @@ -4973,6 +5224,9 @@ weak_undef_p = (h ? h->root.type == bfd_link_hash_undefweak : bfd_is_und_section (sym_sec)); + abs_symbol_p = (h !=NULL && h->root.type == bfd_link_hash_defined + && bfd_is_abs_section (h->root.u.def.section)); + /* Since STT_GNU_IFUNC symbol must go through PLT, we handle it here if it is defined in a non-shared object. */ @@ -4986,6 +5240,11 @@ if ((input_section->flags & SEC_ALLOC) == 0) { + /* If this is a SHT_NOTE section without SHF_ALLOC, treat + STT_GNU_IFUNC symbol as STT_FUNC. */ + if (elf_section_type (input_section) == SHT_NOTE) + goto skip_ifunc; + /* Dynamic relocs are not propagated for SEC_DEBUGGING sections because such sections are not SEC_ALLOC and thus ld.so will not process them. */ @@ -4998,8 +5257,10 @@ name = bfd_elf_sym_name (input_bfd, symtab_hdr, sym, NULL); _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"), - input_bfd, input_section, rel->r_offset, howto->name, name); + (_("%pB(%pA+%#" PRIx64 "): " + "unresolvable %s relocation against symbol `%s'"), + input_bfd, input_section, (uint64_t) rel->r_offset, + howto->name, name); bfd_set_error (bfd_error_bad_value); return bfd_reloc_notsupported; } @@ -5021,7 +5282,7 @@ NULL); _bfd_error_handler /* xgettext:c-format */ - (_("%B: relocation %s against STT_GNU_IFUNC " + (_("%pB: relocation %s against STT_GNU_IFUNC " "symbol `%s' isn't handled by %s"), input_bfd, howto->name, name, __FUNCTION__); bfd_set_error (bfd_error_bad_value); @@ -5037,9 +5298,9 @@ sym, NULL); _bfd_error_handler /* xgettext:c-format */ - (_("%B: relocation %s against STT_GNU_IFUNC " - "symbol `%s' has non-zero addend: %Ld"), - input_bfd, howto->name, name, rel->r_addend); + (_("%pB: relocation %s against STT_GNU_IFUNC " + "symbol `%s' has non-zero addend: %" PRId64), + input_bfd, howto->name, name, (int64_t) rel->r_addend); bfd_set_error (bfd_error_bad_value); return bfd_reloc_notsupported; } @@ -5179,6 +5440,7 @@ } } + skip_ifunc: resolved_to_zero = (h != NULL && UNDEFWEAK_NO_DYNAMIC_RELOC (info, h)); @@ -5238,6 +5500,12 @@ skip = TRUE; relocate = TRUE; } + else if (abs_symbol_p) + { + /* Local absolute symbol. */ + skip = (h->forced_local || (h->dynindx == -1)); + relocate = skip; + } outrel.r_offset += (input_section->output_section->vma + input_section->output_offset); @@ -5247,8 +5515,7 @@ else if (h != NULL && h->dynindx != -1 && (!bfd_link_pic (info) - || !(bfd_link_pie (info) - || SYMBOLIC_BIND (info, h)) + || !(bfd_link_pie (info) || SYMBOLIC_BIND (info, h)) || !h->def_regular)) outrel.r_info = ELFNN_R_INFO (h->dynindx, r_type); else @@ -5354,6 +5621,13 @@ case BFD_RELOC_AARCH64_ADR_HI21_PCREL: case BFD_RELOC_AARCH64_ADR_LO21_PCREL: case BFD_RELOC_AARCH64_LD_LO19_PCREL: + case BFD_RELOC_AARCH64_MOVW_PREL_G0: + case BFD_RELOC_AARCH64_MOVW_PREL_G0_NC: + case BFD_RELOC_AARCH64_MOVW_PREL_G1: + case BFD_RELOC_AARCH64_MOVW_PREL_G1_NC: + case BFD_RELOC_AARCH64_MOVW_PREL_G2: + case BFD_RELOC_AARCH64_MOVW_PREL_G2_NC: + case BFD_RELOC_AARCH64_MOVW_PREL_G3: if (bfd_link_pic (info) && (input_section->flags & SEC_ALLOC) != 0 && (input_section->flags & SEC_READONLY) != 0 @@ -5363,7 +5637,7 @@ _bfd_error_handler /* xgettext:c-format */ - (_("%B: relocation %s against symbol `%s' which may bind " + (_("%pB: relocation %s against symbol `%s' which may bind " "externally can not be used when making a shared object; " "recompile with -fPIC"), input_bfd, elfNN_aarch64_howto_table[howto_index].name, @@ -5454,7 +5728,7 @@ int howto_index = bfd_r_type - BFD_RELOC_AARCH64_RELOC_START; _bfd_error_handler /* xgettext:c-format */ - (_("%B: Local symbol descriptor table be NULL when applying " + (_("%pB: local symbol descriptor table be NULL when applying " "relocation %s against local symbol"), input_bfd, elfNN_aarch64_howto_table[howto_index].name); abort (); @@ -5566,6 +5840,14 @@ case BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12: case BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12: case BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC: + case BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12: + case BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12_NC: + case BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12: + case BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12_NC: + case BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12: + case BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12_NC: + case BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12: + case BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12_NC: case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0: case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC: case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1: @@ -5676,7 +5958,7 @@ BFD_ASSERT (globals && input_bfd && contents && rel); - switch (elfNN_aarch64_bfd_reloc_from_type (r_type)) + switch (elfNN_aarch64_bfd_reloc_from_type (input_bfd, r_type)) { case BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21: case BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21: @@ -6098,7 +6380,8 @@ r_symndx = ELFNN_R_SYM (rel->r_info); r_type = ELFNN_R_TYPE (rel->r_info); - howto = bfd_reloc.howto = elfNN_aarch64_howto_from_type (r_type); + bfd_reloc.howto = elfNN_aarch64_howto_from_type (input_bfd, r_type); + howto = bfd_reloc.howto; if (howto == NULL) return _bfd_unrecognized_reloc (input_bfd, input_section, r_type); @@ -6182,11 +6465,11 @@ _bfd_error_handler ((sym_type == STT_TLS /* xgettext:c-format */ - ? _("%B(%A+%#Lx): %s used with TLS symbol %s") + ? _("%pB(%pA+%#" PRIx64 "): %s used with TLS symbol %s") /* xgettext:c-format */ - : _("%B(%A+%#Lx): %s used with non-TLS symbol %s")), + : _("%pB(%pA+%#" PRIx64 "): %s used with non-TLS symbol %s")), input_bfd, - input_section, rel->r_offset, howto->name, name); + input_section, (uint64_t) rel->r_offset, howto->name, name); } /* We relax only if we can see that there can be a valid transition @@ -6226,7 +6509,7 @@ h, &unresolved_reloc, save_addend, &addend, sym); - switch (elfNN_aarch64_bfd_reloc_from_type (r_type)) + switch (elfNN_aarch64_bfd_reloc_from_type (input_bfd, r_type)) { case BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC: case BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21: @@ -6269,7 +6552,7 @@ bfd_elfNN_swap_reloca_out (output_bfd, &rela, loc); bfd_reloc_code_real_type real_type = - elfNN_aarch64_bfd_reloc_from_type (r_type); + elfNN_aarch64_bfd_reloc_from_type (input_bfd, r_type); if (real_type == BFD_RELOC_AARCH64_TLSLD_ADR_PREL21 || real_type == BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21 @@ -6454,8 +6737,9 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"), - input_bfd, input_section, rel->r_offset, howto->name, + (_("%pB(%pA+%#" PRIx64 "): " + "unresolvable %s relocation against symbol `%s'"), + input_bfd, input_section, (uint64_t) rel->r_offset, howto->name, h->root.root.string); return FALSE; } @@ -6463,7 +6747,7 @@ if (r != bfd_reloc_ok && r != bfd_reloc_continue) { bfd_reloc_code_real_type real_r_type - = elfNN_aarch64_bfd_reloc_from_type (r_type); + = elfNN_aarch64_bfd_reloc_from_type (input_bfd, r_type); switch (r) { @@ -6476,7 +6760,7 @@ { (*info->callbacks->warning) (info, - _("Too many GOT entries for -fpic, " + _("too many GOT entries for -fpic, " "please recompile with -fPIC"), name, input_bfd, input_section, rel->r_offset); return FALSE; @@ -6504,9 +6788,9 @@ || real_r_type == BFD_RELOC_AARCH64_LDST128_LO12)) { info->callbacks->warning - (info, _("One possible cause of this error is that the \ + (info, _("one possible cause of this error is that the \ symbol is being referenced in the indicated code as if it had a larger \ -alignment than was declared where it was defined."), +alignment than was declared where it was defined"), name, input_bfd, input_section, rel->r_offset); } break; @@ -6975,7 +7259,7 @@ if (r_symndx >= NUM_SHDR_ENTRIES (symtab_hdr)) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: bad symbol index: %d"), abfd, r_symndx); + _bfd_error_handler (_("%pB: bad symbol index: %d"), abfd, r_symndx); return FALSE; } @@ -7074,14 +7358,23 @@ #if ARCH_SIZE == 64 case BFD_RELOC_AARCH64_32: #endif - if (bfd_link_pic (info) - && (sec->flags & SEC_ALLOC) != 0 - && (sec->flags & SEC_READONLY) != 0) + if (bfd_link_pic (info) && (sec->flags & SEC_ALLOC) != 0) { + if (h != NULL + /* This is an absolute symbol. It represents a value instead + of an address. */ + && ((h->root.type == bfd_link_hash_defined + && bfd_is_abs_section (h->root.u.def.section)) + /* This is an undefined symbol. */ + || h->root.type == bfd_link_hash_undefined)) + break; + + /* For local symbols, defined global symbols in a non-ABS section, + it is assumed that the value is an address. */ int howto_index = bfd_r_type - BFD_RELOC_AARCH64_RELOC_START; _bfd_error_handler /* xgettext:c-format */ - (_("%B: relocation %s against `%s' can not be used when making " + (_("%pB: relocation %s against `%s' can not be used when making " "a shared object"), abfd, elfNN_aarch64_howto_table[howto_index].name, (h) ? h->root.root.string : "a local symbol"); @@ -7100,7 +7393,7 @@ int howto_index = bfd_r_type - BFD_RELOC_AARCH64_RELOC_START; _bfd_error_handler /* xgettext:c-format */ - (_("%B: relocation %s against `%s' can not be used when making " + (_("%pB: relocation %s against `%s' can not be used when making " "a shared object; recompile with -fPIC"), abfd, elfNN_aarch64_howto_table[howto_index].name, (h) ? h->root.root.string : "a local symbol"); @@ -7532,7 +7825,7 @@ 0, &sym)) { /* xgettext:c-format */ - _bfd_error_handler (_("%B symbol number %lu references" + _bfd_error_handler (_("%pB symbol number %lu references" " nonexistent SHT_SYMTAB_SHNDX section"), abfd, r_symndx); /* Ideally an error class should be returned here. */ @@ -8316,7 +8609,7 @@ info->flags |= DF_TEXTREL; info->callbacks->minfo - (_("%B: dynamic relocation against `%T' in read-only section `%A'\n"), + (_("%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"), sec->owner, h->root.root.string, sec); /* Not an error, just cut short the traversal. */ @@ -9169,7 +9462,7 @@ if (bfd_is_abs_section (htab->root.sgotplt->output_section)) { _bfd_error_handler - (_("discarded output section: `%A'"), htab->root.sgotplt); + (_("discarded output section: `%pA'"), htab->root.sgotplt); return FALSE; } diff -Nru gdb-8.1/bfd/elfnn-ia64.c gdb-8.2/bfd/elfnn-ia64.c --- gdb-8.1/bfd/elfnn-ia64.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elfnn-ia64.c 2018-09-05 07:27:13.000000000 +0000 @@ -197,13 +197,24 @@ /* Given a ELF reloc, return the matching HOWTO structure. */ -static void +static bfd_boolean elfNN_ia64_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *bfd_reloc, Elf_Internal_Rela *elf_reloc) { - bfd_reloc->howto - = ia64_elf_lookup_howto ((unsigned int) ELFNN_R_TYPE (elf_reloc->r_info)); + unsigned int r_type = ELF32_R_TYPE (elf_reloc->r_info); + + bfd_reloc->howto = ia64_elf_lookup_howto (r_type); + if (bfd_reloc->howto == NULL) + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + + return TRUE; } #define PLT_HEADER_SIZE (3 * 16) @@ -593,6 +604,9 @@ 1, change it to slot 2. */ if ((irel->r_offset & 3) == 1) irel->r_offset += 1; + + changed_contents = TRUE; + changed_relocs = TRUE; } continue; @@ -607,6 +621,9 @@ /* Make the relocation offset point to slot 1. */ irel->r_offset = (irel->r_offset & ~((bfd_vma) 0x3)) + 1; + + changed_contents = TRUE; + changed_relocs = TRUE; continue; } @@ -617,9 +634,9 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: Can't relax br at %#Lx in section `%A'." - " Please use brl or indirect branch."), - sec->owner, roff, sec); + (_("%pB: can't relax br at %#" PRIx64 " in section `%pA';" + " please use brl or indirect branch"), + sec->owner, (uint64_t) roff, sec); bfd_set_error (bfd_error_bad_value); goto error_return; } @@ -3693,8 +3710,8 @@ overflow: _bfd_error_handler /* xgettext:c-format */ - (_("%B: short data segment overflowed (%#Lx >= 0x400000)"), - abfd, max_short_vma - min_short_vma); + (_("%pB: short data segment overflowed (%#" PRIx64 " >= 0x400000)"), + abfd, (uint64_t) (max_short_vma - min_short_vma)); return FALSE; } else if ((gp_val > min_short_vma @@ -3703,7 +3720,7 @@ && max_short_vma - gp_val >= 0x200000)) { _bfd_error_handler - (_("%B: __gp does not cover short data segment"), abfd); + (_("%pB: __gp does not cover short data segment"), abfd); return FALSE; } } @@ -3842,15 +3859,21 @@ r_type = ELFNN_R_TYPE (rel->r_info); if (r_type > R_IA64_MAX_RELOC_CODE) { - _bfd_error_handler - /* xgettext:c-format */ - (_("%B: unknown relocation type %d"), input_bfd, (int) r_type); + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + input_bfd, (int) r_type); bfd_set_error (bfd_error_bad_value); ret_val = FALSE; continue; } howto = ia64_elf_lookup_howto (r_type); + if (howto == NULL) + { + ret_val = FALSE; + continue; + } + r_symndx = ELFNN_R_SYM (rel->r_info); h = NULL; sym = NULL; @@ -3971,7 +3994,7 @@ shared libraries nor dynamic executables. */ _bfd_error_handler /* xgettext:c-format */ - (_("%B: non-pic code with imm relocation against dynamic symbol `%s'"), + (_("%pB: non-pic code with imm relocation against dynamic symbol `%s'"), input_bfd, h ? h->root.root.string : bfd_elf_sym_name (input_bfd, symtab_hdr, sym, @@ -4039,7 +4062,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: @gprel relocation against dynamic symbol %s"), + (_("%pB: @gprel relocation against dynamic symbol %s"), input_bfd, h ? h->root.root.string : bfd_elf_sym_name (input_bfd, symtab_hdr, sym, @@ -4102,7 +4125,7 @@ /* ??? People shouldn't be doing non-pic code in shared libraries. Hork. */ _bfd_error_handler - (_("%B: linking non-pic code in a position independent executable"), + (_("%pB: linking non-pic code in a position independent executable"), input_bfd); ret_val = FALSE; continue; @@ -4240,13 +4263,13 @@ if (r_type == R_IA64_PCREL21BI) /* xgettext:c-format */ - msg = _("%B: @internal branch to dynamic symbol %s"); + msg = _("%pB: @internal branch to dynamic symbol %s"); else if (r_type == R_IA64_PCREL21F || r_type == R_IA64_PCREL21M) /* xgettext:c-format */ - msg = _("%B: speculation fixup to dynamic symbol %s"); + msg = _("%pB: speculation fixup to dynamic symbol %s"); else /* xgettext:c-format */ - msg = _("%B: @pcrel relocation against dynamic symbol %s"); + msg = _("%pB: @pcrel relocation against dynamic symbol %s"); _bfd_error_handler (msg, input_bfd, h ? h->root.root.string : bfd_elf_sym_name (input_bfd, @@ -4481,10 +4504,10 @@ case R_IA64_LTOFF_DTPREL22: _bfd_error_handler /* xgettext:c-format */ - (_("%B: missing TLS section for relocation %s against `%s'" - " at %#Lx in section `%A'."), + (_("%pB: missing TLS section for relocation %s against `%s'" + " at %#" PRIx64 " in section `%pA'."), input_bfd, howto->name, name, - rel->r_offset, input_section); + (uint64_t) rel->r_offset, input_section); break; case R_IA64_PCREL21B: @@ -4498,10 +4521,11 @@ that the section is too big to relax. */ _bfd_error_handler /* xgettext:c-format */ - (_("%B: Can't relax br (%s) to `%s' at %#Lx" - " in section `%A' with size %#Lx (> 0x1000000)."), - input_bfd, howto->name, name, rel->r_offset, - input_section, input_section->size); + (_("%pB: Can't relax br (%s) to `%s' at %#" PRIx64 + " in section `%pA' with size %#" PRIx64 + " (> 0x1000000)."), + input_bfd, howto->name, name, (uint64_t) rel->r_offset, + input_section, (uint64_t) input_section->size); break; } /* Fall through. */ @@ -4755,7 +4779,7 @@ if ((in_flags & EF_IA_64_TRAPNIL) != (out_flags & EF_IA_64_TRAPNIL)) { _bfd_error_handler - (_("%B: linking trap-on-NULL-dereference with non-trapping files"), + (_("%pB: linking trap-on-NULL-dereference with non-trapping files"), ibfd); bfd_set_error (bfd_error_bad_value); @@ -4764,7 +4788,7 @@ if ((in_flags & EF_IA_64_BE) != (out_flags & EF_IA_64_BE)) { _bfd_error_handler - (_("%B: linking big-endian files with little-endian files"), + (_("%pB: linking big-endian files with little-endian files"), ibfd); bfd_set_error (bfd_error_bad_value); @@ -4773,7 +4797,7 @@ if ((in_flags & EF_IA_64_ABI64) != (out_flags & EF_IA_64_ABI64)) { _bfd_error_handler - (_("%B: linking 64-bit files with 32-bit files"), + (_("%pB: linking 64-bit files with 32-bit files"), ibfd); bfd_set_error (bfd_error_bad_value); @@ -4782,7 +4806,7 @@ if ((in_flags & EF_IA_64_CONS_GP) != (out_flags & EF_IA_64_CONS_GP)) { _bfd_error_handler - (_("%B: linking constant-gp files with non-constant-gp files"), + (_("%pB: linking constant-gp files with non-constant-gp files"), ibfd); bfd_set_error (bfd_error_bad_value); @@ -4792,7 +4816,7 @@ != (out_flags & EF_IA_64_NOFUNCDESC_CONS_GP)) { _bfd_error_handler - (_("%B: linking auto-pic files with non-auto-pic files"), + (_("%pB: linking auto-pic files with non-auto-pic files"), ibfd); bfd_set_error (bfd_error_bad_value); @@ -5046,7 +5070,7 @@ #define elf_backend_size_dynamic_sections \ elfNN_ia64_size_dynamic_sections #define elf_backend_omit_section_dynsym \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true) + _bfd_elf_omit_section_dynsym_all #define elf_backend_relocate_section \ elfNN_ia64_relocate_section #define elf_backend_finish_dynamic_symbol \ @@ -5064,6 +5088,7 @@ elfNN_ia64_print_private_bfd_data #define elf_backend_plt_readonly 1 +#define elf_backend_can_gc_sections 1 #define elf_backend_want_plt_sym 0 #define elf_backend_plt_alignment 5 #define elf_backend_got_header_size 0 diff -Nru gdb-8.1/bfd/elfnn-riscv.c gdb-8.2/bfd/elfnn-riscv.c --- gdb-8.1/bfd/elfnn-riscv.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elfnn-riscv.c 2018-09-05 07:44:28.000000000 +0000 @@ -121,12 +121,13 @@ (elf_hash_table_id ((struct elf_link_hash_table *) ((p)->hash)) \ == RISCV_ELF_DATA ? ((struct riscv_elf_link_hash_table *) ((p)->hash)) : NULL) -static void -riscv_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +riscv_info_to_howto_rela (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { - cache_ptr->howto = riscv_elf_rtype_to_howto (ELFNN_R_TYPE (dst->r_info)); + cache_ptr->howto = riscv_elf_rtype_to_howto (abfd, ELFNN_R_TYPE (dst->r_info)); + return cache_ptr->howto != NULL; } static void @@ -424,7 +425,7 @@ if ((*new_tls_type & GOT_NORMAL) && (*new_tls_type & ~GOT_NORMAL)) { (*_bfd_error_handler) - (_("%B: `%s' accessed both as normal and thread local symbol"), + (_("%pB: `%s' accessed both as normal and thread local symbol"), abfd, h ? h->root.root.string : ""); return FALSE; } @@ -467,11 +468,13 @@ static bfd_boolean bad_static_reloc (bfd *abfd, unsigned r_type, struct elf_link_hash_entry *h) { + reloc_howto_type * r = riscv_elf_rtype_to_howto (abfd, r_type); + (*_bfd_error_handler) - (_("%B: relocation %s against `%s' can not be used when making a shared " + (_("%pB: relocation %s against `%s' can not be used when making a shared " "object; recompile with -fPIC"), - abfd, riscv_elf_rtype_to_howto (r_type)->name, - h != NULL ? h->root.root.string : "a local symbol"); + abfd, r ? r->name : _(""), + h != NULL ? h->root.root.string : "a local symbol"); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -510,7 +513,7 @@ if (r_symndx >= NUM_SHDR_ENTRIES (symtab_hdr)) { - (*_bfd_error_handler) (_("%B: bad symbol index: %d"), + (*_bfd_error_handler) (_("%pB: bad symbol index: %d"), abfd, r_symndx); return FALSE; } @@ -624,9 +627,11 @@ may need to keep relocations for symbols satisfied by a dynamic library if we manage to avoid copy relocs for the symbol. */ + reloc_howto_type * r = riscv_elf_rtype_to_howto (abfd, r_type); + if ((bfd_link_pic (info) && (sec->flags & SEC_ALLOC) != 0 - && (! riscv_elf_rtype_to_howto (r_type)->pc_relative + && ((r != NULL && ! r->pc_relative) || (h != NULL && (! info->symbolic || h->root.type == bfd_link_hash_defweak @@ -696,7 +701,7 @@ } p->count += 1; - p->pc_count += riscv_elf_rtype_to_howto (r_type)->pc_relative; + p->pc_count += r == NULL ? 0 : r->pc_relative; } break; @@ -996,7 +1001,8 @@ else { s->size += RISCV_ELF_WORD_BYTES; - if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, bfd_link_pic (info), h)) + if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, bfd_link_pic (info), h) + && ! UNDEFWEAK_NO_DYNAMIC_RELOC (info, h)) htab->elf.srelgot->size += sizeof (ElfNN_External_Rela); } } @@ -1035,7 +1041,8 @@ if (eh->dyn_relocs != NULL && h->root.type == bfd_link_hash_undefweak) { - if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT) + if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT + || UNDEFWEAK_NO_DYNAMIC_RELOC (info, h)) eh->dyn_relocs = NULL; /* Make sure undefined weak symbols are output as a dynamic @@ -1109,7 +1116,7 @@ info->flags |= DF_TEXTREL; info->callbacks->minfo - (_("%B: dynamic relocation against `%T' in read-only section `%A'\n"), + (_("%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"), sec->owner, h->root.root.string, sec); /* Not an error, just cut short the traversal. */ @@ -1724,10 +1731,12 @@ bfd_boolean unresolved_reloc, is_ie = FALSE; bfd_vma pc = sec_addr (input_section) + rel->r_offset; int r_type = ELFNN_R_TYPE (rel->r_info), tls_type; - reloc_howto_type *howto = riscv_elf_rtype_to_howto (r_type); + reloc_howto_type *howto = riscv_elf_rtype_to_howto (input_bfd, r_type); const char *msg = NULL; + bfd_boolean resolved_to_zero; - if (r_type == R_RISCV_GNU_VTINHERIT || r_type == R_RISCV_GNU_VTENTRY) + if (howto == NULL + || r_type == R_RISCV_GNU_VTINHERIT || r_type == R_RISCV_GNU_VTENTRY) continue; /* This is a final link. */ @@ -1779,6 +1788,9 @@ name = bfd_section_name (input_bfd, sec); } + resolved_to_zero = (h != NULL + && UNDEFWEAK_NO_DYNAMIC_RELOC (info, h)); + switch (r_type) { case R_RISCV_NONE: @@ -1888,9 +1900,11 @@ howto, input_bfd); r_type = ELFNN_R_TYPE (rel->r_info); - howto = riscv_elf_rtype_to_howto (r_type); - if (!riscv_record_pcrel_hi_reloc (&pcrel_relocs, pc, - relocation, absolute)) + howto = riscv_elf_rtype_to_howto (input_bfd, r_type); + if (howto == NULL) + r = bfd_reloc_notsupported; + else if (!riscv_record_pcrel_hi_reloc (&pcrel_relocs, pc, + relocation, absolute)) r = bfd_reloc_overflow; break; @@ -1917,8 +1931,24 @@ } break; - case R_RISCV_CALL_PLT: case R_RISCV_CALL: + /* Handle a call to an undefined weak function. This won't be + relaxed, so we have to handle it here. */ + if (h != NULL && h->root.type == bfd_link_hash_undefweak + && h->plt.offset == MINUS_ONE) + { + /* We can use x0 as the base register. */ + bfd_vma insn = bfd_get_32 (input_bfd, + contents + rel->r_offset + 4); + insn &= ~(OP_MASK_RS1 << OP_SH_RS1); + bfd_put_32 (input_bfd, insn, contents + rel->r_offset + 4); + /* Set the relocation value so that we get 0 after the pc + relative adjustment. */ + relocation = sec_addr (input_section) + rel->r_offset; + } + /* Fall through. */ + + case R_RISCV_CALL_PLT: case R_RISCV_JAL: case R_RISCV_RVC_JUMP: if (bfd_link_pic (info) && h != NULL && h->plt.offset != MINUS_ONE) @@ -1984,15 +2014,27 @@ howto, input_bfd); r_type = ELFNN_R_TYPE (rel->r_info); - howto = riscv_elf_rtype_to_howto (r_type); - if (!riscv_record_pcrel_hi_reloc (&pcrel_relocs, pc, - relocation + rel->r_addend, - absolute)) + howto = riscv_elf_rtype_to_howto (input_bfd, r_type); + if (howto == NULL) + r = bfd_reloc_notsupported; + else if (!riscv_record_pcrel_hi_reloc (&pcrel_relocs, pc, + relocation + rel->r_addend, + absolute)) r = bfd_reloc_overflow; break; case R_RISCV_PCREL_LO12_I: case R_RISCV_PCREL_LO12_S: + /* Addends are not allowed, because then riscv_relax_delete_bytes + would have to search through all relocs to update the addends. + Also, riscv_resolve_pcrel_lo_relocs does not support addends + when searching for a matching hi reloc. */ + if (rel->r_addend) + { + r = bfd_reloc_dangerous; + break; + } + if (riscv_record_pcrel_lo_reloc (&pcrel_relocs, input_section, info, howto, rel, relocation, name, contents)) @@ -2012,7 +2054,8 @@ if ((bfd_link_pic (info) && (h == NULL - || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT + || (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT + && !resolved_to_zero) || h->root.type != bfd_link_hash_undefweak) && (! howto->pc_relative || !SYMBOL_CALLS_LOCAL (info, h))) @@ -2203,10 +2246,11 @@ rel->r_offset) != (bfd_vma) -1) { (*_bfd_error_handler) - (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"), + (_("%pB(%pA+%#" PRIx64 "): " + "unresolvable %s relocation against symbol `%s'"), input_bfd, input_section, - rel->r_offset, + (uint64_t) rel->r_offset, howto->name, h->root.root.string); continue; @@ -2234,25 +2278,30 @@ break; case bfd_reloc_outofrange: - msg = _("internal error: out of range error"); + msg = _("%X%P: internal error: out of range error\n"); break; case bfd_reloc_notsupported: - msg = _("internal error: unsupported relocation error"); + msg = _("%X%P: internal error: unsupported relocation error\n"); break; case bfd_reloc_dangerous: - msg = _("internal error: dangerous relocation"); + info->callbacks->reloc_dangerous + (info, "%pcrel_lo with addend", input_bfd, input_section, + rel->r_offset); break; default: - msg = _("internal error: unknown error"); + msg = _("%X%P: internal error: unknown error\n"); break; } if (msg) - info->callbacks->warning - (info, msg, name, input_bfd, input_section, rel->r_offset); + info->callbacks->einfo (msg); + + /* We already reported the error via a callback, so don't try to report + it again by returning false. That leads to spurious errors. */ + ret = TRUE; goto out; } @@ -2330,7 +2379,8 @@ } if (h->got.offset != (bfd_vma) -1 - && !(riscv_elf_hash_entry (h)->tls_type & (GOT_TLS_GD | GOT_TLS_IE))) + && !(riscv_elf_hash_entry (h)->tls_type & (GOT_TLS_GD | GOT_TLS_IE)) + && !UNDEFWEAK_NO_DYNAMIC_RELOC (info, h)) { asection *sgot; asection *srela; @@ -2344,15 +2394,15 @@ rela.r_offset = sec_addr (sgot) + (h->got.offset &~ (bfd_vma) 1); - /* If this is a -Bsymbolic link, and the symbol is defined - locally, we just want to emit a RELATIVE reloc. Likewise if + /* If this is a local symbol reference, we just want to emit a RELATIVE + reloc. This can happen if it is a -Bsymbolic link, or a pie link, or 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 (bfd_link_pic (info) - && (info->symbolic || h->dynindx == -1) - && h->def_regular) + && SYMBOL_REFERENCES_LOCAL (info, h)) { + BFD_ASSERT((h->got.offset & 1) != 0); asection *sec = h->root.u.def.section; rela.r_info = ELFNN_R_INFO (0, R_RISCV_RELATIVE); rela.r_addend = (h->root.u.def.value @@ -2361,6 +2411,7 @@ } else { + BFD_ASSERT((h->got.offset & 1) == 0); BFD_ASSERT (h->dynindx != -1); rela.r_info = ELFNN_R_INFO (h->dynindx, R_RISCV_NN); rela.r_addend = 0; @@ -2489,7 +2540,7 @@ if (bfd_is_abs_section (output_section)) { (*_bfd_error_handler) - (_("discarded output section: `%A'"), htab->elf.sgotplt); + (_("discarded output section: `%pA'"), htab->elf.sgotplt); return FALSE; } @@ -2567,7 +2618,7 @@ if (strcmp (bfd_get_target (ibfd), bfd_get_target (obfd)) != 0) { (*_bfd_error_handler) - (_("%B: ABI is incompatible with that of the selected emulation:\n" + (_("%pB: ABI is incompatible with that of the selected emulation:\n" " target emulation `%s' does not match `%s'"), ibfd, bfd_get_target (ibfd), bfd_get_target (obfd)); return FALSE; @@ -2587,7 +2638,15 @@ if ((old_flags ^ new_flags) & EF_RISCV_FLOAT_ABI) { (*_bfd_error_handler) - (_("%B: can't link hard-float modules with soft-float modules"), ibfd); + (_("%pB: can't link hard-float modules with soft-float modules"), ibfd); + goto fail; + } + + /* Disallow linking RVE and non-RVE. */ + if ((old_flags ^ new_flags) & EF_RISCV_RVE) + { + (*_bfd_error_handler) + (_("%pB: can't link RVE with other target"), ibfd); goto fail; } @@ -2604,7 +2663,8 @@ /* Delete some bytes from a section while relaxing. */ static bfd_boolean -riscv_relax_delete_bytes (bfd *abfd, asection *sec, bfd_vma addr, size_t count) +riscv_relax_delete_bytes (bfd *abfd, asection *sec, bfd_vma addr, size_t count, + struct bfd_link_info *link_info) { unsigned int i, symcount; bfd_vma toaddr = sec->size; @@ -2638,10 +2698,16 @@ /* If the symbol *spans* the bytes we just deleted (i.e. its *end* is in the moved bytes but its *start* isn't), then we - must adjust its size. */ - if (sym->st_value <= addr - && sym->st_value + sym->st_size > addr - && sym->st_value + sym->st_size <= toaddr) + must adjust its size. + + This test needs to use the original value of st_value, otherwise + we might accidentally decrease size when deleting bytes right + before the symbol. But since deleted relocs can't span across + symbols, we can't have both a st_value and a st_size decrease, + so it is simpler to just use an else. */ + else if (sym->st_value <= addr + && sym->st_value + sym->st_size > addr + && sym->st_value + sym->st_size <= toaddr) sym->st_size -= count; } } @@ -2654,6 +2720,34 @@ { struct elf_link_hash_entry *sym_hash = sym_hashes[i]; + /* The '--wrap SYMBOL' option is causing a pain when the object file, + containing the definition of __wrap_SYMBOL, includes a direct + call to SYMBOL as well. Since both __wrap_SYMBOL and SYMBOL reference + the same symbol (which is __wrap_SYMBOL), but still exist as two + different symbols in 'sym_hashes', we don't want to adjust + the global symbol __wrap_SYMBOL twice. */ + /* The same problem occurs with symbols that are versioned_hidden, as + foo becomes an alias for foo@BAR, and hence they need the same + treatment. */ + if (link_info->wrap_hash != NULL + || sym_hash->versioned == versioned_hidden) + { + struct elf_link_hash_entry **cur_sym_hashes; + + /* Loop only over the symbols which have already been checked. */ + for (cur_sym_hashes = sym_hashes; cur_sym_hashes < &sym_hashes[i]; + cur_sym_hashes++) + { + /* If the current symbol is identical to 'sym_hash', that means + the symbol was already adjusted (or at least checked). */ + if (*cur_sym_hashes == sym_hash) + break; + } + /* Don't adjust the symbol again. */ + if (cur_sym_hashes < &sym_hashes[i]) + continue; + } + if ((sym_hash->root.type == bfd_link_hash_defined || sym_hash->root.type == bfd_link_hash_defweak) && sym_hash->root.u.def.section == sec) @@ -2664,9 +2758,9 @@ sym_hash->root.u.def.value -= count; /* As above, adjust the size if needed. */ - if (sym_hash->root.u.def.value <= addr - && sym_hash->root.u.def.value + sym_hash->size > addr - && sym_hash->root.u.def.value + sym_hash->size <= toaddr) + else if (sym_hash->root.u.def.value <= addr + && sym_hash->root.u.def.value + sym_hash->size > addr + && sym_hash->root.u.def.value + sym_hash->size <= toaddr) sym_hash->size -= count; } } @@ -2886,7 +2980,8 @@ /* Delete unnecessary JALR. */ *again = TRUE; - return riscv_relax_delete_bytes (abfd, sec, rel->r_offset + len, 8 - len); + return riscv_relax_delete_bytes (abfd, sec, rel->r_offset + len, 8 - len, + link_info); } /* Traverse all output sections and return the max alignment. */ @@ -2964,7 +3059,8 @@ /* We can delete the unnecessary LUI and reloc. */ rel->r_info = ELFNN_R_INFO (0, R_RISCV_NONE); *again = TRUE; - return riscv_relax_delete_bytes (abfd, sec, rel->r_offset, 4); + return riscv_relax_delete_bytes (abfd, sec, rel->r_offset, 4, + link_info); default: abort (); @@ -2991,7 +3087,8 @@ rel->r_info = ELFNN_R_INFO (ELFNN_R_SYM (rel->r_info), R_RISCV_RVC_LUI); *again = TRUE; - return riscv_relax_delete_bytes (abfd, sec, rel->r_offset + 2, 2); + return riscv_relax_delete_bytes (abfd, sec, rel->r_offset + 2, 2, + link_info); } return TRUE; @@ -3031,7 +3128,7 @@ /* We can delete the unnecessary instruction and reloc. */ rel->r_info = ELFNN_R_INFO (0, R_RISCV_NONE); *again = TRUE; - return riscv_relax_delete_bytes (abfd, sec, rel->r_offset, 4); + return riscv_relax_delete_bytes (abfd, sec, rel->r_offset, 4, link_info); default: abort (); @@ -3043,7 +3140,7 @@ static bfd_boolean _bfd_riscv_relax_align (bfd *abfd, asection *sec, asection *sym_sec, - struct bfd_link_info *link_info ATTRIBUTE_UNUSED, + struct bfd_link_info *link_info, Elf_Internal_Rela *rel, bfd_vma symval, bfd_vma max_alignment ATTRIBUTE_UNUSED, @@ -3066,10 +3163,11 @@ /* Make sure there are enough NOPs to actually achieve the alignment. */ if (rel->r_addend < nop_bytes) { - (*_bfd_error_handler) - (_("%B(%A+0x%lx): %d bytes required for alignment " - "to %d-byte boundary, but only %d present"), - abfd, sym_sec, rel->r_offset, nop_bytes, alignment, rel->r_addend); + _bfd_error_handler + (_("%pB(%pA+%#" PRIx64 "): %" PRId64 " bytes required for alignment " + "to %" PRId64 "-byte boundary, but only %" PRId64 " present"), + abfd, sym_sec, (uint64_t) rel->r_offset, + (int64_t) nop_bytes, (int64_t) alignment, (int64_t) rel->r_addend); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -3091,7 +3189,7 @@ /* Delete the excess bytes. */ return riscv_relax_delete_bytes (abfd, sec, rel->r_offset + nop_bytes, - rel->r_addend - nop_bytes); + rel->r_addend - nop_bytes, link_info); } /* Relax PC-relative references to GP-relative references. */ @@ -3114,7 +3212,8 @@ /* Chain the _LO relocs to their cooresponding _HI reloc to compute the * actual target address. */ - riscv_pcgp_hi_reloc hi_reloc = {0}; + riscv_pcgp_hi_reloc hi_reloc; + memset (&hi_reloc, 0, sizeof (hi_reloc)); switch (ELFNN_R_TYPE (rel->r_info)) { case R_RISCV_PCREL_LO12_I: @@ -3132,10 +3231,10 @@ symval = hi_reloc.hi_addr; sym_sec = hi_reloc.sym_sec; if (!riscv_use_pcgp_hi_reloc(pcgp_relocs, hi->hi_sec_off)) - (*_bfd_error_handler) - (_("%B(%A+0x%lx): Unable to clear RISCV_PCREL_HI20 reloc" - "for cooresponding RISCV_PCREL_LO12 reloc"), - abfd, sec, rel->r_offset); + _bfd_error_handler + (_("%pB(%pA+%#" PRIx64 "): Unable to clear RISCV_PCREL_HI20 reloc " + "for corresponding RISCV_PCREL_LO12 reloc"), + abfd, sec, (uint64_t) rel->r_offset); } break; @@ -3212,7 +3311,7 @@ _bfd_riscv_relax_delete (bfd *abfd, asection *sec, asection *sym_sec ATTRIBUTE_UNUSED, - struct bfd_link_info *link_info ATTRIBUTE_UNUSED, + struct bfd_link_info *link_info, Elf_Internal_Rela *rel, bfd_vma symval ATTRIBUTE_UNUSED, bfd_vma max_alignment ATTRIBUTE_UNUSED, @@ -3220,7 +3319,8 @@ bfd_boolean *again ATTRIBUTE_UNUSED, riscv_pcgp_relocs *pcgp_relocs ATTRIBUTE_UNUSED) { - if (!riscv_relax_delete_bytes(abfd, sec, rel->r_offset, rel->r_addend)) + if (!riscv_relax_delete_bytes(abfd, sec, rel->r_offset, rel->r_addend, + link_info)) return FALSE; rel->r_info = ELFNN_R_INFO(0, R_RISCV_NONE); return TRUE; @@ -3353,8 +3453,14 @@ { BFD_ASSERT (isym->st_shndx < elf_numsections (abfd)); sym_sec = elf_elfsections (abfd)[isym->st_shndx]->bfd_section; +#if 0 + /* The purpose of this code is unknown. It breaks linker scripts + for embedded development that place sections at address zero. + This code is believed to be unnecessary. Disabling it but not + yet removing it, in case something breaks. */ if (sec_addr (sym_sec) == 0) continue; +#endif symval = sec_addr (sym_sec) + isym->st_value; } } diff -Nru gdb-8.1/bfd/elf-properties.c gdb-8.2/bfd/elf-properties.c --- gdb-8.1/bfd/elf-properties.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf-properties.c 2018-09-05 07:44:28.000000000 +0000 @@ -62,7 +62,7 @@ p = (elf_property_list *) bfd_alloc (abfd, sizeof (*p)); if (p == NULL) { - _bfd_error_handler (_("%B: out of memory in _bfd_elf_get_property"), + _bfd_error_handler (_("%pB: out of memory in _bfd_elf_get_property"), abfd); _exit (EXIT_FAILURE); } @@ -88,7 +88,7 @@ { bad_size: _bfd_error_handler - (_("warning: %B: corrupt GNU_PROPERTY_TYPE (%ld) size: %#lx"), + (_("warning: %pB: corrupt GNU_PROPERTY_TYPE (%ld) size: %#lx"), abfd, note->type, note->descsz); return FALSE; } @@ -109,7 +109,7 @@ if (datasz > (size_t) (ptr_end - ptr)) { _bfd_error_handler - (_("warning: %B: corrupt GNU_PROPERTY_TYPE (%ld) type (0x%x) datasz: 0x%x"), + (_("warning: %pB: corrupt GNU_PROPERTY_TYPE (%ld) type (0x%x) datasz: 0x%x"), abfd, note->type, type, datasz); /* Clear all properties. */ elf_properties (abfd) = NULL; @@ -148,7 +148,7 @@ if (datasz != align_size) { _bfd_error_handler - (_("warning: %B: corrupt stack size: 0x%x"), + (_("warning: %pB: corrupt stack size: 0x%x"), abfd, datasz); /* Clear all properties. */ elf_properties (abfd) = NULL; @@ -166,7 +166,7 @@ if (datasz != 0) { _bfd_error_handler - (_("warning: %B: corrupt no copy on protected size: 0x%x"), + (_("warning: %pB: corrupt no copy on protected size: 0x%x"), abfd, datasz); /* Clear all properties. */ elf_properties (abfd) = NULL; @@ -183,7 +183,7 @@ } _bfd_error_handler - (_("warning: %B: unsupported GNU_PROPERTY_TYPE (%ld) type: 0x%x"), + (_("warning: %pB: unsupported GNU_PROPERTY_TYPE (%ld) type: 0x%x"), abfd, note->type, type); next: diff -Nru gdb-8.1/bfd/elf-s390-common.c gdb-8.2/bfd/elf-s390-common.c --- gdb-8.1/bfd/elf-s390-common.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elf-s390-common.c 2018-09-05 07:44:28.000000000 +0000 @@ -223,25 +223,6 @@ return TRUE; } -/* Pick ELFOSABI_GNU if IFUNC symbols are used. */ - -static bfd_boolean -elf_s390_add_symbol_hook (bfd *abfd, - struct bfd_link_info *info, - Elf_Internal_Sym *sym, - const char **namep ATTRIBUTE_UNUSED, - flagword *flagsp ATTRIBUTE_UNUSED, - asection **secp ATTRIBUTE_UNUSED, - bfd_vma *valp ATTRIBUTE_UNUSED) -{ - if (ELF_ST_TYPE (sym->st_info) == STT_GNU_IFUNC - && (abfd->flags & DYNAMIC) == 0 - && bfd_get_flavour (info->output_bfd) == bfd_target_elf_flavour) - elf_tdata (info->output_bfd)->has_gnu_symbols |= elf_gnu_symbol_ifunc; - - return TRUE; -} - /* Whether to sort relocs output by ld -r or ld --emit-relocs, by r_offset. Don't do so for code sections. We want to keep ordering of GDCALL / PLT32DBL for TLS optimizations as is. On the other @@ -286,12 +267,12 @@ if (in_attr->i > 2) _bfd_error_handler /* xgettext:c-format */ - (_("Warning: %B uses unknown vector ABI %d"), ibfd, + (_("warning: %pB uses unknown vector ABI %d"), ibfd, in_attr->i); else if (out_attr->i > 2) _bfd_error_handler /* xgettext:c-format */ - (_("Warning: %B uses unknown vector ABI %d"), obfd, + (_("warning: %pB uses unknown vector ABI %d"), obfd, out_attr->i); else if (in_attr->i != out_attr->i) { @@ -303,7 +284,7 @@ _bfd_error_handler /* xgettext:c-format */ - (_("Warning: %B uses vector %s ABI, %B uses %s ABI"), + (_("warning: %pB uses vector %s ABI, %pB uses %s ABI"), ibfd, abi_str[in_attr->i], obfd, abi_str[out_attr->i]); } if (in_attr->i > out_attr->i) diff -Nru gdb-8.1/bfd/elfxx-aarch64.c gdb-8.2/bfd/elfxx-aarch64.c --- gdb-8.1/bfd/elfxx-aarch64.c 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/bfd/elfxx-aarch64.c 2018-09-05 07:44:28.000000000 +0000 @@ -285,11 +285,18 @@ case BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC: case BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12: case BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC: + case BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12: + case BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12_NC: + case BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12: + case BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12_NC: + case BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12: + case BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12_NC: + case BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12: + case BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12_NC: if (old_addend & ((1 << howto->rightshift) - 1)) return bfd_reloc_overflow; /* Used for ldr*|str* rt, [rn, #uimm12] to provide the low order - 12 bits of the page offset following BFD_RELOC_AARCH64_ADR_HI21_PCREL - which computes the (pc-relative) page base. */ + 12 bits address offset. */ contents = reencode_ldst_pos_imm (contents, addend); break; @@ -301,6 +308,10 @@ case BFD_RELOC_AARCH64_MOVW_G0_S: case BFD_RELOC_AARCH64_MOVW_G1_S: case BFD_RELOC_AARCH64_MOVW_G2_S: + case BFD_RELOC_AARCH64_MOVW_PREL_G0: + case BFD_RELOC_AARCH64_MOVW_PREL_G1: + case BFD_RELOC_AARCH64_MOVW_PREL_G2: + case BFD_RELOC_AARCH64_MOVW_PREL_G3: case BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0: case BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1: case BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2: @@ -333,6 +344,9 @@ case BFD_RELOC_AARCH64_MOVW_G3: case BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC: case BFD_RELOC_AARCH64_MOVW_GOTOFF_G1: + case BFD_RELOC_AARCH64_MOVW_PREL_G0_NC: + case BFD_RELOC_AARCH64_MOVW_PREL_G1_NC: + case BFD_RELOC_AARCH64_MOVW_PREL_G2_NC: case BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC: case BFD_RELOC_AARCH64_TLSDESC_OFF_G1: case BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC: @@ -395,6 +409,13 @@ case BFD_RELOC_AARCH64_ADR_LO21_PCREL: case BFD_RELOC_AARCH64_BRANCH19: case BFD_RELOC_AARCH64_LD_LO19_PCREL: + case BFD_RELOC_AARCH64_MOVW_PREL_G0: + case BFD_RELOC_AARCH64_MOVW_PREL_G0_NC: + case BFD_RELOC_AARCH64_MOVW_PREL_G1: + case BFD_RELOC_AARCH64_MOVW_PREL_G1_NC: + case BFD_RELOC_AARCH64_MOVW_PREL_G2: + case BFD_RELOC_AARCH64_MOVW_PREL_G2_NC: + case BFD_RELOC_AARCH64_MOVW_PREL_G3: case BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21: case BFD_RELOC_AARCH64_TLSDESC_LD_PREL19: case BFD_RELOC_AARCH64_TLSGD_ADR_PREL21: @@ -431,18 +452,18 @@ case BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12: case BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC: case BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12: - case BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC: case BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12: - case BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC: case BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12: - case BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC: case BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12: - case BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC: case BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0: case BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC: case BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1: case BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC: case BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2: + case BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12: + case BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12: + case BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12: + case BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12: value = value + addend; break; @@ -492,7 +513,15 @@ case BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC: case BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC: case BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC: + case BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC: + case BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC: + case BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC: + case BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC: case BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC: + case BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12_NC: + case BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12_NC: + case BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12_NC: + case BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12_NC: value = PG_OFFSET (value + addend); break; @@ -529,25 +558,6 @@ return value; } -/* Hook called by the linker routine which adds symbols from an object - file. */ - -bfd_boolean -_bfd_aarch64_elf_add_symbol_hook (bfd *abfd, struct bfd_link_info *info, - Elf_Internal_Sym *sym, - const char **namep ATTRIBUTE_UNUSED, - flagword *flagsp ATTRIBUTE_UNUSED, - asection **secp ATTRIBUTE_UNUSED, - bfd_vma *valp ATTRIBUTE_UNUSED) -{ - if (ELF_ST_TYPE (sym->st_info) == STT_GNU_IFUNC - && (abfd->flags & DYNAMIC) == 0 - && bfd_get_flavour (info->output_bfd) == bfd_target_elf_flavour) - elf_tdata (info->output_bfd)->has_gnu_symbols |= elf_gnu_symbol_ifunc; - - return TRUE; -} - /* Support for core dump NOTE sections. */ bfd_boolean @@ -624,13 +634,22 @@ case NT_PRPSINFO: { - char data[136]; + char data[136] ATTRIBUTE_NONSTRING; va_list ap; va_start (ap, note_type); memset (data, 0, sizeof (data)); strncpy (data + 40, va_arg (ap, const char *), 16); + DIAGNOSTIC_PUSH; + /* GCC 8.1 warns about 80 equals destination size with + -Wstringop-truncation: + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85643 + */ +#if GCC_VERSION == 8001 + DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION; +#endif strncpy (data + 56, va_arg (ap, const char *), 80); + DIAGNOSTIC_POP; va_end (ap); return elfcore_write_note (abfd, buf, bufsiz, "CORE", diff -Nru gdb-8.1/bfd/elfxx-aarch64.h gdb-8.2/bfd/elfxx-aarch64.h --- gdb-8.1/bfd/elfxx-aarch64.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elfxx-aarch64.h 2018-09-05 07:27:13.000000000 +0000 @@ -48,11 +48,6 @@ bfd_vma, bfd_boolean); extern bfd_boolean -_bfd_aarch64_elf_add_symbol_hook (bfd *, struct bfd_link_info *, - Elf_Internal_Sym *, const char **, - flagword *, asection **, bfd_vma *); - -extern bfd_boolean _bfd_aarch64_elf_grok_prstatus (bfd *, Elf_Internal_Note *); extern bfd_boolean @@ -61,7 +56,6 @@ extern char * _bfd_aarch64_elf_write_core_note (bfd *, char *, int *, int, ...); -#define elf_backend_add_symbol_hook _bfd_aarch64_elf_add_symbol_hook #define elf_backend_grok_prstatus _bfd_aarch64_elf_grok_prstatus #define elf_backend_grok_psinfo _bfd_aarch64_elf_grok_psinfo #define elf_backend_write_core_note _bfd_aarch64_elf_write_core_note diff -Nru gdb-8.1/bfd/elfxx-ia64.c gdb-8.2/bfd/elfxx-ia64.c --- gdb-8.1/bfd/elfxx-ia64.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elfxx-ia64.c 2018-09-05 07:27:13.000000000 +0000 @@ -196,12 +196,12 @@ reloc_howto_type * ia64_elf_lookup_howto (unsigned int rtype) { - static int inited = 0; + static bfd_boolean inited = FALSE; int i; if (!inited) { - inited = 1; + inited = TRUE; memset (elf_code_to_howto_index, 0xff, sizeof (elf_code_to_howto_index)); for (i = 0; i < NELEMS (ia64_howto_table); ++i) @@ -209,15 +209,15 @@ } if (rtype > R_IA64_MAX_RELOC_CODE) - return 0; + return NULL; i = elf_code_to_howto_index[rtype]; if (i >= NELEMS (ia64_howto_table)) - return 0; + return NULL; return ia64_howto_table + i; } -reloc_howto_type* -ia64_elf_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, +reloc_howto_type * +ia64_elf_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type bfd_code) { unsigned int rtype; @@ -320,7 +320,12 @@ case BFD_RELOC_IA64_DTPREL64LSB: rtype = R_IA64_DTPREL64LSB; break; case BFD_RELOC_IA64_LTOFF_DTPREL22: rtype = R_IA64_LTOFF_DTPREL22; break; - default: return 0; + default: + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, (int) bfd_code); + bfd_set_error (bfd_error_bad_value); + return NULL; } return ia64_elf_lookup_howto (rtype); } diff -Nru gdb-8.1/bfd/elfxx-mips.c gdb-8.2/bfd/elfxx-mips.c --- gdb-8.1/bfd/elfxx-mips.c 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/bfd/elfxx-mips.c 2018-09-05 07:44:28.000000000 +0000 @@ -881,7 +881,7 @@ _bfd_elf_add_dynamic_entry (info, tag, val) #define MIPS_ELF_RTYPE_TO_HOWTO(abfd, rtype, rela) \ - (get_elf_backend_data (abfd)->elf_backend_mips_rtype_to_howto (rtype, rela)) + (get_elf_backend_data (abfd)->elf_backend_mips_rtype_to_howto (abfd, rtype, rela)) /* The name of the dynamic relocation section. */ #define MIPS_ELF_REL_DYN_NAME(INFO) \ @@ -2903,12 +2903,6 @@ h->esym.asym.value = mips_elf_hash_table (einfo->info)->procedure_count; } - else if (strcmp (name, "_gp_disp") == 0 && ! NEWABI_P (einfo->abfd)) - { - h->esym.asym.sc = scAbs; - h->esym.asym.st = stLabel; - h->esym.asym.value = elf_gp (einfo->abfd); - } else h->esym.asym.sc = scUndefined; } @@ -3819,6 +3813,7 @@ for (p = output_bfd->sections; p ; p = p->next) if ((p->flags & SEC_EXCLUDE) == 0 && (p->flags & SEC_ALLOC) != 0 + && elf_hash_table (info)->dynamic_relocs && !(*bed->elf_backend_omit_section_dynsym) (output_bfd, info, p)) ++count; } @@ -5478,12 +5473,18 @@ } else { + bfd_boolean reject_undefined + = (info->unresolved_syms_in_objects == RM_GENERATE_ERROR + || ELF_ST_VISIBILITY (h->root.other) != STV_DEFAULT); + (*info->callbacks->undefined_symbol) (info, h->root.root.root.string, input_bfd, - input_section, relocation->r_offset, - (info->unresolved_syms_in_objects == RM_GENERATE_ERROR) - || ELF_ST_VISIBILITY (h->root.other)); - return bfd_reloc_undefined; + input_section, relocation->r_offset, reject_undefined); + + if (reject_undefined) + return bfd_reloc_undefined; + + symbol = 0; } target_is_16_bit_code_p = ELF_ST_IS_MIPS16 (h->root.other); @@ -6373,7 +6374,7 @@ : opcode == 0x1d) { info->callbacks->einfo - (_("%X%H: Unsupported JALX to the same ISA mode\n"), + (_("%X%H: unsupported JALX to the same ISA mode\n"), input_bfd, input_section, relocation->r_offset); return TRUE; } @@ -6406,7 +6407,7 @@ if (!ok) { info->callbacks->einfo - (_("%X%H: Unsupported jump between ISA modes; " + (_("%X%H: unsupported jump between ISA modes; " "consider recompiling with interlinking enabled\n"), input_bfd, input_section, relocation->r_offset); return TRUE; @@ -6451,7 +6452,7 @@ if ((addr >> 28) << 28 != (dest >> 28) << 28) { info->callbacks->einfo - (_("%X%H: Cannot convert branch between ISA modes " + (_("%X%H: cannot convert branch between ISA modes " "to JALX: relocation out of range\n"), input_bfd, input_section, relocation->r_offset); return TRUE; @@ -6463,7 +6464,7 @@ else if (!mips_elf_hash_table (info)->ignore_branch_isa) { info->callbacks->einfo - (_("%X%H: Unsupported branch between ISA modes\n"), + (_("%X%H: unsupported branch between ISA modes\n"), input_bfd, input_section, relocation->r_offset); return TRUE; } @@ -7102,9 +7103,19 @@ { bfd_byte buf[4]; - BFD_ASSERT (hdr->sh_size == sizeof (Elf32_External_RegInfo)); BFD_ASSERT (hdr->contents == NULL); + if (hdr->sh_size != sizeof (Elf32_External_RegInfo)) + { + _bfd_error_handler + (_("%pB: incorrect `.reginfo' section size; " + "expected %" PRIu64 ", got %" PRIu64), + abfd, (uint64_t) sizeof (Elf32_External_RegInfo), + (uint64_t) hdr->sh_size); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + if (bfd_seek (abfd, hdr->sh_offset + sizeof (Elf32_External_RegInfo) - 4, SEEK_SET) != 0) @@ -7141,7 +7152,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: Warning: bad `%s' option size %u smaller than" + (_("%pB: warning: bad `%s' option size %u smaller than" " its header"), abfd, MIPS_ELF_OPTIONS_SECTION_NAME (abfd), intopt.size); break; @@ -7376,7 +7387,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: Warning: bad `%s' option size %u smaller than" + (_("%pB: warning: bad `%s' option size %u smaller than" " its header"), abfd, MIPS_ELF_OPTIONS_SECTION_NAME (abfd), intopt.size); break; @@ -7833,6 +7844,7 @@ return FALSE; h = (struct elf_link_hash_entry *) bh; + h->mark = 1; h->non_elf = 0; h->def_regular = 1; h->type = STT_SECTION; @@ -8132,7 +8144,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: Warning: cannot determine the target function for" + (_("%pB: warning: cannot determine the target function for" " stub section `%s'"), abfd, name); bfd_set_error (bfd_error_bad_value); @@ -8258,7 +8270,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: Warning: cannot determine the target function for" + (_("%pB: warning: cannot determine the target function for" " stub section `%s'"), abfd, name); bfd_set_error (bfd_error_bad_value); @@ -8390,7 +8402,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: Malformed reloc detected for section %s"), + (_("%pB: malformed reloc detected for section %s"), abfd, name); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -8462,8 +8474,8 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: GOT reloc at %#Lx not expected in executables"), - abfd, rel->r_offset); + (_("%pB: GOT reloc at %#" PRIx64 " not expected in executables"), + abfd, (uint64_t) rel->r_offset); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -8600,8 +8612,8 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: CALL16 reloc at %#Lx not against global symbol"), - abfd, rel->r_offset); + (_("%pB: CALL16 reloc at %#" PRIx64 " not against global symbol"), + abfd, (uint64_t) rel->r_offset); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -8886,7 +8898,7 @@ howto = MIPS_ELF_RTYPE_TO_HOWTO (abfd, r_type, FALSE); _bfd_error_handler /* xgettext:c-format */ - (_("%B: relocation %s against `%s' can not be used" + (_("%pB: relocation %s against `%s' can not be used" " when making a shared object; recompile with -fPIC"), abfd, howto->name, (h) ? h->root.root.string : "a local symbol"); @@ -8940,10 +8952,9 @@ if (h->root.type == bfd_link_hash_undefweak) { - /* Do not copy relocations for undefined weak symbols with - non-default visibility. */ - if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT - || UNDEFWEAK_NO_DYNAMIC_RELOC (info, h)) + /* Do not copy relocations for undefined weak symbols that + we are not going to export. */ + if (UNDEFWEAK_NO_DYNAMIC_RELOC (info, h)) do_copy = FALSE; /* Make sure undefined weak symbols are output as a dynamic @@ -9284,12 +9295,19 @@ /* The .reginfo section has a fixed size. */ sect = bfd_get_section_by_name (output_bfd, ".reginfo"); if (sect != NULL) - bfd_set_section_size (output_bfd, sect, sizeof (Elf32_External_RegInfo)); + { + bfd_set_section_size (output_bfd, sect, sizeof (Elf32_External_RegInfo)); + sect->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS; + } /* The .MIPS.abiflags section has a fixed size. */ sect = bfd_get_section_by_name (output_bfd, ".MIPS.abiflags"); if (sect != NULL) - bfd_set_section_size (output_bfd, sect, sizeof (Elf_External_ABIFlags_v0)); + { + bfd_set_section_size (output_bfd, sect, + sizeof (Elf_External_ABIFlags_v0)); + sect->flags |= SEC_FIXED_SIZE | SEC_HAS_CONTENTS; + } hti.info = info; hti.output_bfd = output_bfd; @@ -10143,10 +10161,10 @@ sec); _bfd_error_handler /* xgettext:c-format */ - (_("%B: Can't find matching LO16 reloc against `%s'" - " for %s at %#Lx in section `%A'"), + (_("%pB: can't find matching LO16 reloc against `%s'" + " for %s at %#" PRIx64 " in section `%pA'"), input_bfd, name, - howto->name, rel->r_offset, input_section); + howto->name, (uint64_t) rel->r_offset, input_section); } } else @@ -10302,16 +10320,16 @@ msg = NULL; if (jal_reloc_p (howto->type)) msg = (cross_mode_jump_p - ? _("Cannot convert a jump to JALX " + ? _("cannot convert a jump to JALX " "for a non-word-aligned address") : (howto->type == R_MIPS16_26 - ? _("Jump to a non-word-aligned address") - : _("Jump to a non-instruction-aligned address"))); + ? _("jump to a non-word-aligned address") + : _("jump to a non-instruction-aligned address"))); else if (b_reloc_p (howto->type)) msg = (cross_mode_jump_p - ? _("Cannot convert a branch to JALX " + ? _("cannot convert a branch to JALX " "for a non-word-aligned address") - : _("Branch to a non-instruction-aligned address")); + : _("branch to a non-instruction-aligned address")); else if (aligned_pcrel_reloc_p (howto->type)) msg = _("PC-relative load from unaligned address"); if (msg) @@ -10584,8 +10602,25 @@ got_address_high = ((got_address + 0x8000) >> 16) & 0xffff; got_address_low = got_address & 0xffff; + /* The PLT sequence is not safe for N64 if .got.plt entry's address + cannot be loaded in two instructions. */ + if (ABI_64_P (output_bfd) + && ((got_address + 0x80008000) & ~(bfd_vma) 0xffffffff) != 0) + { + _bfd_error_handler + /* xgettext:c-format */ + (_("%pB: `%pA' entry VMA of %#" PRIx64 " outside the 32-bit range " + "supported; consider using `-Ttext-segment=...'"), + output_bfd, + htab->root.sgotplt->output_section, + (int64_t) got_address); + bfd_set_error (bfd_error_no_error); + return FALSE; + } + /* Initially point the .got.plt entry at the PLT header. */ - loc = (htab->root.sgotplt->contents + got_index * MIPS_ELF_GOT_SIZE (dynobj)); + loc = (htab->root.sgotplt->contents + + got_index * MIPS_ELF_GOT_SIZE (dynobj)); if (ABI_64_P (output_bfd)) bfd_put_64 (output_bfd, header_address, loc); else @@ -10687,11 +10722,11 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: `%A' offset of %Ld from `%A' " + (_("%pB: `%pA' offset of %" PRId64 " from `%pA' " "beyond the range of ADDIUPC"), output_bfd, htab->root.sgotplt->output_section, - gotpc_offset, + (int64_t) gotpc_offset, htab->root.splt->output_section); bfd_set_error (bfd_error_no_error); return FALSE; @@ -10953,12 +10988,6 @@ sym->st_info = ELF_ST_INFO (STB_GLOBAL, STT_SECTION); sym->st_value = 1; } - else if (strcmp (name, "_gp_disp") == 0 && ! NEWABI_P (output_bfd)) - { - sym->st_shndx = SHN_ABS; - sym->st_info = ELF_ST_INFO (STB_GLOBAL, STT_SECTION); - sym->st_value = elf_gp (output_bfd); - } else if (SGI_COMPAT (output_bfd)) { if (strcmp (name, mips_elf_dynsym_rtproc_names[0]) == 0 @@ -11233,8 +11262,19 @@ /* The PLT sequence is not safe for N64 if .got.plt's address can not be loaded in two instructions. */ - BFD_ASSERT ((gotplt_value & ~(bfd_vma) 0x7fffffff) == 0 - || ~(gotplt_value | 0x7fffffff) == 0); + if (ABI_64_P (output_bfd) + && ((gotplt_value + 0x80008000) & ~(bfd_vma) 0xffffffff) != 0) + { + _bfd_error_handler + /* xgettext:c-format */ + (_("%pB: `%pA' start VMA of %#" PRIx64 " outside the 32-bit range " + "supported; consider using `-Ttext-segment=...'"), + output_bfd, + htab->root.sgotplt->output_section, + (int64_t) gotplt_value); + bfd_set_error (bfd_error_no_error); + return FALSE; + } /* Install the PLT header. */ loc = htab->root.splt->contents; @@ -11255,10 +11295,11 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: `%A' offset of %Ld from `%A' beyond the range of ADDIUPC"), + (_("%pB: `%pA' offset of %" PRId64 " from `%pA' " + "beyond the range of ADDIUPC"), output_bfd, htab->root.sgotplt->output_section, - gotpc_offset, + (int64_t) gotpc_offset, htab->root.splt->output_section); bfd_set_error (bfd_error_no_error); return FALSE; @@ -12657,13 +12698,29 @@ line_ptr, discriminator_ptr, dwarf_debug_sections, ABI_64_P (abfd) ? 8 : 0, - &elf_tdata (abfd)->dwarf2_find_line_info)) - return TRUE; + &elf_tdata (abfd)->dwarf2_find_line_info) + || _bfd_dwarf1_find_nearest_line (abfd, symbols, section, offset, + filename_ptr, functionname_ptr, + line_ptr)) + { + /* PR 22789: If the function name or filename was not found through + the debug information, then try an ordinary lookup instead. */ + if ((functionname_ptr != NULL && *functionname_ptr == NULL) + || (filename_ptr != NULL && *filename_ptr == NULL)) + { + /* Do not override already discovered names. */ + if (functionname_ptr != NULL && *functionname_ptr != NULL) + functionname_ptr = NULL; - if (_bfd_dwarf1_find_nearest_line (abfd, symbols, section, offset, - filename_ptr, functionname_ptr, - line_ptr)) - return TRUE; + if (filename_ptr != NULL && *filename_ptr != NULL) + filename_ptr = NULL; + + _bfd_elf_find_function (abfd, symbols, section, offset, + filename_ptr, functionname_ptr); + } + + return TRUE; + } msec = bfd_get_section_by_name (abfd, ".mdebug"); if (msec != NULL) @@ -14118,7 +14175,7 @@ default: _bfd_error_handler /* xgettext:c-format */ - (_("%B: Unknown architecture %s"), + (_("%pB: unknown architecture %s"), abfd, bfd_printable_name (abfd)); } @@ -14341,6 +14398,7 @@ bfd *input_bfd; Elf32_External_RegInfo ext; Elf32_RegInfo sub; + bfd_size_type sz; if (p->type != bfd_indirect_link_order) { @@ -14352,8 +14410,11 @@ input_section = p->u.indirect.section; input_bfd = input_section->owner; + sz = (input_section->size < sizeof (ext) + ? input_section->size : sizeof (ext)); + memset (&ext, 0, sizeof (ext)); if (! bfd_get_section_contents (input_bfd, input_section, - &ext, 0, sizeof ext)) + &ext, 0, sz)) return FALSE; bfd_mips_elf32_swap_reginfo_in (input_bfd, &ext, &sub); @@ -14365,7 +14426,7 @@ reginfo.ri_cprmask[3] |= sub.ri_cprmask[3]; /* ri_gp_value is set by the function - mips_elf32_section_processing when the section is + `_bfd_mips_elf_section_processing' when the section is finally written out. */ /* Hack: reset the SEC_HAS_CONTENTS flag so that @@ -14648,7 +14709,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: illegal section name `%A'"), abfd, o); + (_("%pB: illegal section name `%pA'"), abfd, o); bfd_set_error (bfd_error_nonrepresentable_section); return FALSE; } @@ -14925,7 +14986,7 @@ != ((old_flags & (EF_MIPS_PIC | EF_MIPS_CPIC)) != 0)) { _bfd_error_handler - (_("%B: warning: linking abicalls files with non-abicalls files"), + (_("%pB: warning: linking abicalls files with non-abicalls files"), ibfd); ok = TRUE; } @@ -14942,7 +15003,7 @@ if (mips_32bit_flags_p (old_flags) != mips_32bit_flags_p (new_flags)) { _bfd_error_handler - (_("%B: linking 32-bit code with 64-bit code"), + (_("%pB: linking 32-bit code with 64-bit code"), ibfd); ok = FALSE; } @@ -14974,7 +15035,7 @@ /* The ISAs aren't compatible. */ _bfd_error_handler /* xgettext:c-format */ - (_("%B: linking %s module with previous %s modules"), + (_("%pB: linking %s module with previous %s modules"), ibfd, bfd_printable_name (ibfd), bfd_printable_name (obfd)); @@ -14998,7 +15059,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: ABI mismatch: linking %s module with previous %s modules"), + (_("%pB: ABI mismatch: linking %s module with previous %s modules"), ibfd, elf_mips_abi_name (ibfd), elf_mips_abi_name (obfd)); @@ -15023,7 +15084,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: ASE mismatch: linking %s module with previous %s modules"), + (_("%pB: ASE mismatch: linking %s module with previous %s modules"), ibfd, m16_mis ? "MIPS16" : "microMIPS", m16_mis ? "microMIPS" : "MIPS16"); @@ -15040,7 +15101,7 @@ if ((new_flags & EF_MIPS_NAN2008) != (old_flags & EF_MIPS_NAN2008)) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: linking %s module with previous %s modules"), + _bfd_error_handler (_("%pB: linking %s module with previous %s modules"), ibfd, (new_flags & EF_MIPS_NAN2008 ? "-mnan=2008" : "-mnan=legacy"), @@ -15055,7 +15116,7 @@ if ((new_flags & EF_MIPS_FP64) != (old_flags & EF_MIPS_FP64)) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: linking %s module with previous %s modules"), + _bfd_error_handler (_("%pB: linking %s module with previous %s modules"), ibfd, (new_flags & EF_MIPS_FP64 ? "-mfp64" : "-mfp32"), @@ -15071,7 +15132,7 @@ { /* xgettext:c-format */ _bfd_error_handler - (_("%B: uses different e_flags (%#x) fields than previous modules " + (_("%pB: uses different e_flags (%#x) fields than previous modules " "(%#x)"), ibfd, new_flags, old_flags); ok = FALSE; @@ -15157,20 +15218,20 @@ if (!out_string && !in_string) /* xgettext:c-format */ _bfd_error_handler - (_("Warning: %B uses unknown floating point ABI %d " - "(set by %B), %B uses unknown floating point ABI %d"), + (_("warning: %pB uses unknown floating point ABI %d " + "(set by %pB), %pB uses unknown floating point ABI %d"), obfd, out_fp, abi_fp_bfd, ibfd, in_fp); else if (!out_string) _bfd_error_handler /* xgettext:c-format */ - (_("Warning: %B uses unknown floating point ABI %d " - "(set by %B), %B uses %s"), + (_("warning: %pB uses unknown floating point ABI %d " + "(set by %pB), %pB uses %s"), obfd, out_fp, abi_fp_bfd, ibfd, in_string); else if (!in_string) _bfd_error_handler /* xgettext:c-format */ - (_("Warning: %B uses %s (set by %B), " - "%B uses unknown floating point ABI %d"), + (_("warning: %pB uses %s (set by %pB), " + "%pB uses unknown floating point ABI %d"), obfd, out_string, abi_fp_bfd, ibfd, in_fp); else { @@ -15183,7 +15244,7 @@ in_string = "-mhard-float"; _bfd_error_handler /* xgettext:c-format */ - (_("Warning: %B uses %s (set by %B), %B uses %s"), + (_("warning: %pB uses %s (set by %pB), %pB uses %s"), obfd, out_string, abi_fp_bfd, ibfd, in_string); } } @@ -15202,8 +15263,8 @@ case Val_GNU_MIPS_ABI_MSA_128: _bfd_error_handler /* xgettext:c-format */ - (_("Warning: %B uses %s (set by %B), " - "%B uses unknown MSA ABI %d"), + (_("warning: %pB uses %s (set by %pB), " + "%pB uses unknown MSA ABI %d"), obfd, "-mmsa", abi_msa_bfd, ibfd, in_attr[Tag_GNU_MIPS_ABI_MSA].i); break; @@ -15214,8 +15275,8 @@ case Val_GNU_MIPS_ABI_MSA_128: _bfd_error_handler /* xgettext:c-format */ - (_("Warning: %B uses unknown MSA ABI %d " - "(set by %B), %B uses %s"), + (_("warning: %pB uses unknown MSA ABI %d " + "(set by %pB), %pB uses %s"), obfd, out_attr[Tag_GNU_MIPS_ABI_MSA].i, abi_msa_bfd, ibfd, "-mmsa"); break; @@ -15223,8 +15284,8 @@ default: _bfd_error_handler /* xgettext:c-format */ - (_("Warning: %B uses unknown MSA ABI %d " - "(set by %B), %B uses unknown MSA ABI %d"), + (_("warning: %pB uses unknown MSA ABI %d " + "(set by %pB), %pB uses unknown MSA ABI %d"), obfd, out_attr[Tag_GNU_MIPS_ABI_MSA].i, abi_msa_bfd, ibfd, in_attr[Tag_GNU_MIPS_ABI_MSA].i); break; @@ -15285,7 +15346,7 @@ if (! _bfd_generic_verify_endian_match (ibfd, info)) { _bfd_error_handler - (_("%B: endianness incompatible with that of the selected emulation"), + (_("%pB: endianness incompatible with that of the selected emulation"), ibfd); return FALSE; } @@ -15299,7 +15360,7 @@ if (strcmp (bfd_get_target (ibfd), bfd_get_target (obfd)) != 0) { _bfd_error_handler - (_("%B: ABI is incompatible with that of the selected emulation"), + (_("%pB: ABI is incompatible with that of the selected emulation"), ibfd); return FALSE; } @@ -15351,27 +15412,27 @@ if (LEVEL_REV (in_abiflags.isa_level, in_abiflags.isa_rev) < LEVEL_REV (abiflags.isa_level, abiflags.isa_rev)) _bfd_error_handler - (_("%B: warning: Inconsistent ISA between e_flags and " + (_("%pB: warning: inconsistent ISA between e_flags and " ".MIPS.abiflags"), ibfd); if (abiflags.fp_abi != Val_GNU_MIPS_ABI_FP_ANY && in_abiflags.fp_abi != abiflags.fp_abi) _bfd_error_handler - (_("%B: warning: Inconsistent FP ABI between .gnu.attributes and " + (_("%pB: warning: inconsistent FP ABI between .gnu.attributes and " ".MIPS.abiflags"), ibfd); if ((in_abiflags.ases & abiflags.ases) != abiflags.ases) _bfd_error_handler - (_("%B: warning: Inconsistent ASEs between e_flags and " + (_("%pB: warning: inconsistent ASEs between e_flags and " ".MIPS.abiflags"), ibfd); /* The isa_ext is allowed to be an extension of what can be inferred from e_flags. */ if (!mips_mach_extends_p (bfd_mips_isa_ext_mach (abiflags.isa_ext), bfd_mips_isa_ext_mach (in_abiflags.isa_ext))) _bfd_error_handler - (_("%B: warning: Inconsistent ISA extensions between e_flags and " + (_("%pB: warning: inconsistent ISA extensions between e_flags and " ".MIPS.abiflags"), ibfd); if (in_abiflags.flags2 != 0) _bfd_error_handler - (_("%B: warning: Unexpected flag in the flags2 field of " + (_("%pB: warning: unexpected flag in the flags2 field of " ".MIPS.abiflags (0x%lx)"), ibfd, in_abiflags.flags2); } @@ -15609,6 +15670,10 @@ fputs ("\n\tXPA ASE", file); if (mask & AFL_ASE_MIPS16E2) fputs ("\n\tMIPS16e2 ASE", file); + if (mask & AFL_ASE_CRC) + fputs ("\n\tCRC ASE", file); + if (mask & AFL_ASE_GINV) + fputs ("\n\tGINV ASE", file); if (mask == 0) fprintf (file, "\n\t%s", _("None")); else if ((mask & ~AFL_ASE_MASK) != 0) @@ -16165,6 +16230,18 @@ return tdata->abiflags_valid ? &tdata->abiflags : NULL; } +/* MIPS libc ABI versions, used with the EI_ABIVERSION ELF file header + field. Taken from `libc-abis.h' generated at GNU libc build time. + Using a MIPS_ prefix as other libc targets use different values. */ +enum +{ + MIPS_LIBC_ABI_DEFAULT = 0, + MIPS_LIBC_ABI_MIPS_PLT, + MIPS_LIBC_ABI_UNIQUE, + MIPS_LIBC_ABI_MIPS_O32_FP64, + MIPS_LIBC_ABI_MAX +}; + void _bfd_mips_post_process_headers (bfd *abfd, struct bfd_link_info *link_info) { @@ -16178,18 +16255,19 @@ BFD_ASSERT (htab != NULL); if (htab->use_plts_and_copy_relocs && !htab->is_vxworks) - i_ehdrp->e_ident[EI_ABIVERSION] = 1; + i_ehdrp->e_ident[EI_ABIVERSION] = MIPS_LIBC_ABI_MIPS_PLT; } - _bfd_elf_post_process_headers (abfd, link_info); - if (mips_elf_tdata (abfd)->abiflags.fp_abi == Val_GNU_MIPS_ABI_FP_64 || mips_elf_tdata (abfd)->abiflags.fp_abi == Val_GNU_MIPS_ABI_FP_64A) - i_ehdrp->e_ident[EI_ABIVERSION] = 3; + i_ehdrp->e_ident[EI_ABIVERSION] = MIPS_LIBC_ABI_MIPS_O32_FP64; + + _bfd_elf_post_process_headers (abfd, link_info); } int -_bfd_mips_elf_compact_eh_encoding (struct bfd_link_info *link_info ATTRIBUTE_UNUSED) +_bfd_mips_elf_compact_eh_encoding + (struct bfd_link_info *link_info ATTRIBUTE_UNUSED) { return DW_EH_PE_pcrel | DW_EH_PE_sdata4; } @@ -16197,7 +16275,8 @@ /* Return the opcode for can't unwind. */ int -_bfd_mips_elf_cant_unwind_opcode (struct bfd_link_info *link_info ATTRIBUTE_UNUSED) +_bfd_mips_elf_cant_unwind_opcode + (struct bfd_link_info *link_info ATTRIBUTE_UNUSED) { return COMPACT_EH_CANT_UNWIND_OPCODE; } diff -Nru gdb-8.1/bfd/elfxx-riscv.c gdb-8.2/bfd/elfxx-riscv.c --- gdb-8.1/bfd/elfxx-riscv.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elfxx-riscv.c 2018-09-05 07:27:13.000000000 +0000 @@ -948,11 +948,12 @@ } reloc_howto_type * -riscv_elf_rtype_to_howto (unsigned int r_type) +riscv_elf_rtype_to_howto (bfd *abfd, unsigned int r_type) { if (r_type >= ARRAY_SIZE (howto_table)) { - (*_bfd_error_handler) (_("unrecognized relocation (0x%x)"), r_type); + (*_bfd_error_handler) (_("%pB: unsupported relocation type %#x"), + abfd, r_type); bfd_set_error (bfd_error_bad_value); return NULL; } diff -Nru gdb-8.1/bfd/elfxx-riscv.h gdb-8.2/bfd/elfxx-riscv.h --- gdb-8.1/bfd/elfxx-riscv.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elfxx-riscv.h 2018-09-05 07:27:13.000000000 +0000 @@ -30,4 +30,4 @@ riscv_reloc_type_lookup (bfd *, bfd_reloc_code_real_type); extern reloc_howto_type * -riscv_elf_rtype_to_howto (unsigned int r_type); +riscv_elf_rtype_to_howto (bfd *, unsigned int r_type); diff -Nru gdb-8.1/bfd/elfxx-sparc.c gdb-8.2/bfd/elfxx-sparc.c --- gdb-8.1/bfd/elfxx-sparc.c 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/bfd/elfxx-sparc.c 2018-09-05 07:44:28.000000000 +0000 @@ -311,7 +311,7 @@ HOWTO(R_SPARC_REV32, 0,2,32,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_REV32", FALSE,0,0xffffffff,TRUE); reloc_howto_type * -_bfd_sparc_elf_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, +_bfd_sparc_elf_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code) { /* We explicitly handle each relocation type in the switch @@ -585,8 +585,10 @@ default: break; } - bfd_set_error (bfd_error_bad_value); - return NULL; + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), abfd, (int) code); + bfd_set_error (bfd_error_bad_value); + return NULL; } reloc_howto_type * @@ -595,10 +597,7 @@ { unsigned int i; - for (i = 0; - i < (sizeof (_bfd_sparc_elf_howto_table) - / sizeof (_bfd_sparc_elf_howto_table[0])); - i++) + for (i = 0; i < ARRAY_SIZE (_bfd_sparc_elf_howto_table); i++) if (_bfd_sparc_elf_howto_table[i].name != NULL && strcasecmp (_bfd_sparc_elf_howto_table[i].name, r_name) == 0) return &_bfd_sparc_elf_howto_table[i]; @@ -614,7 +613,8 @@ } reloc_howto_type * -_bfd_sparc_elf_info_to_howto_ptr (unsigned int r_type) +_bfd_sparc_elf_info_to_howto_ptr (bfd *abfd ATTRIBUTE_UNUSED, + unsigned int r_type) { switch (r_type) { @@ -636,8 +636,10 @@ default: if (r_type >= (unsigned int) R_SPARC_max_std) { - _bfd_error_handler (_("invalid relocation type %d"), (int) r_type); - r_type = R_SPARC_NONE; + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return NULL; } return &_bfd_sparc_elf_howto_table[r_type]; } @@ -648,13 +650,20 @@ #define SPARC_ELF_R_TYPE(r_info) \ ((r_info) & 0xff) -void -_bfd_sparc_elf_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr, +bfd_boolean +_bfd_sparc_elf_info_to_howto (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { unsigned int r_type = SPARC_ELF_R_TYPE (dst->r_info); - cache_ptr->howto = _bfd_sparc_elf_info_to_howto_ptr (r_type); + if ((cache_ptr->howto = _bfd_sparc_elf_info_to_howto_ptr (abfd, r_type)) == NULL) + { + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + return TRUE; } @@ -673,9 +682,9 @@ ((EH)->elf.root.type == bfd_link_hash_undefweak \ && bfd_link_executable (INFO) \ && (_bfd_sparc_elf_hash_table (INFO)->interp == NULL \ - || !(EH)->has_got_reloc \ + || !(INFO)->dynamic_undefined_weak \ || (EH)->has_non_got_reloc \ - || !(INFO)->dynamic_undefined_weak)) + || !(EH)->has_got_reloc)) /* SPARC ELF linker hash entry. */ @@ -692,9 +701,12 @@ #define GOT_TLS_IE 3 unsigned char tls_type; - /* Symbol has GOT or PLT relocations. */ + /* Symbol has GOT or PLT relocations. */ unsigned int has_got_reloc : 1; + /* Symbol has old-style, non-relaxable GOT relocations. */ + unsigned int has_old_style_got_reloc : 1; + /* Symbol has non-GOT/non-PLT relocations in text sections. */ unsigned int has_non_got_reloc : 1; @@ -750,6 +762,7 @@ bfd_byte *loc; bed = get_elf_backend_data (abfd); + BFD_ASSERT (s->reloc_count * bed->s->sizeof_rela < s->size); loc = s->contents + (s->reloc_count++ * bed->s->sizeof_rela); bed->s->swap_reloca_out (abfd, rel, loc); } @@ -1310,8 +1323,7 @@ eind->dyn_relocs = NULL; } - if (ind->root.type == bfd_link_hash_indirect - && dir->got.refcount <= 0) + if (ind->root.type == bfd_link_hash_indirect && dir->got.refcount <= 0) { edir->tls_type = eind->tls_type; eind->tls_type = GOT_UNKNOWN; @@ -1331,7 +1343,7 @@ if (! ABI_64_P (abfd) && r_type == R_SPARC_TLS_GD_HI22 && ! _bfd_sparc_elf_tdata (abfd)->has_tlsgd) - r_type = R_SPARC_REV32; + return R_SPARC_REV32; if (!bfd_link_executable (info)) return r_type; @@ -1339,25 +1351,17 @@ switch (r_type) { case R_SPARC_TLS_GD_HI22: - if (is_local) - return R_SPARC_TLS_LE_HIX22; - return R_SPARC_TLS_IE_HI22; + return is_local ? R_SPARC_TLS_LE_HIX22 : R_SPARC_TLS_IE_HI22; case R_SPARC_TLS_GD_LO10: - if (is_local) - return R_SPARC_TLS_LE_LOX10; - return R_SPARC_TLS_IE_LO10; - case R_SPARC_TLS_IE_HI22: - if (is_local) - return R_SPARC_TLS_LE_HIX22; - return r_type; - case R_SPARC_TLS_IE_LO10: - if (is_local) - return R_SPARC_TLS_LE_LOX10; - return r_type; + return is_local ? R_SPARC_TLS_LE_LOX10 : R_SPARC_TLS_IE_LO10; case R_SPARC_TLS_LDM_HI22: return R_SPARC_TLS_LE_HIX22; case R_SPARC_TLS_LDM_LO10: return R_SPARC_TLS_LE_LOX10; + case R_SPARC_TLS_IE_HI22: + return is_local ? R_SPARC_TLS_LE_HIX22 : r_type; + case R_SPARC_TLS_IE_LO10: + return is_local ? R_SPARC_TLS_LE_LOX10 : r_type; } return r_type; @@ -1417,7 +1421,7 @@ if (r_symndx >= NUM_SHDR_ENTRIES (symtab_hdr)) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: bad symbol index: %d"), abfd, r_symndx); + _bfd_error_handler (_("%pB: bad symbol index: %d"), abfd, r_symndx); return FALSE; } @@ -1425,16 +1429,14 @@ if (r_symndx < symtab_hdr->sh_info) { /* A local symbol. */ - isym = bfd_sym_from_r_symndx (&htab->sym_cache, - abfd, r_symndx); + isym = bfd_sym_from_r_symndx (&htab->sym_cache, abfd, r_symndx); if (isym == NULL) return FALSE; /* Check relocation against local STT_GNU_IFUNC symbol. */ if (ELF_ST_TYPE (isym->st_info) == STT_GNU_IFUNC) { - h = elf_sparc_get_local_sym_hash (htab, abfd, rel, - TRUE); + h = elf_sparc_get_local_sym_hash (htab, abfd, rel, TRUE); if (h == NULL) return FALSE; @@ -1456,13 +1458,10 @@ h = (struct elf_link_hash_entry *) h->root.u.i.link; } - if (h && h->type == STT_GNU_IFUNC) + if (h && h->type == STT_GNU_IFUNC && h->def_regular) { - if (h->def_regular) - { - h->ref_regular = 1; - h->plt.refcount += 1; - } + h->ref_regular = 1; + h->plt.refcount += 1; } /* Compatibility with old R_SPARC_REV32 reloc conflicting @@ -1530,14 +1529,6 @@ switch (r_type) { - default: - case R_SPARC_GOT10: - case R_SPARC_GOT13: - case R_SPARC_GOT22: - case R_SPARC_GOTDATA_OP_HIX22: - case R_SPARC_GOTDATA_OP_LOX10: - tls_type = GOT_NORMAL; - break; case R_SPARC_TLS_GD_HI22: case R_SPARC_TLS_GD_LO10: tls_type = GOT_TLS_GD; @@ -1546,6 +1537,9 @@ case R_SPARC_TLS_IE_LO10: tls_type = GOT_TLS_IE; break; + default: + tls_type = GOT_NORMAL; + break; } if (h != NULL) @@ -1573,39 +1567,34 @@ _bfd_sparc_elf_local_got_tls_type (abfd) = (char *) (local_got_refcounts + symtab_hdr->sh_info); } - switch (r_type) - { - case R_SPARC_GOTDATA_OP_HIX22: - case R_SPARC_GOTDATA_OP_LOX10: - break; - default: - local_got_refcounts[r_symndx] += 1; - break; - } - old_tls_type = _bfd_sparc_elf_local_got_tls_type (abfd) [r_symndx]; + if (r_type != R_SPARC_GOTDATA_OP_HIX22 + && r_type != R_SPARC_GOTDATA_OP_LOX10) + local_got_refcounts[r_symndx] += 1; + + old_tls_type + = _bfd_sparc_elf_local_got_tls_type (abfd) [r_symndx]; } - /* If a TLS symbol is accessed using IE at least once, - there is no point to use dynamic model for it. */ - if (old_tls_type != tls_type && old_tls_type != GOT_UNKNOWN - && (old_tls_type != GOT_TLS_GD - || tls_type != GOT_TLS_IE)) + /* If a TLS symbol is accessed using IE at least once, there is no + point in using the dynamic model for it. */ + if (old_tls_type != tls_type) { - if (old_tls_type == GOT_TLS_IE && tls_type == GOT_TLS_GD) + if (old_tls_type == GOT_UNKNOWN) + ; + else if (old_tls_type == GOT_TLS_GD && tls_type == GOT_TLS_IE) + ; + else if (old_tls_type == GOT_TLS_IE && tls_type == GOT_TLS_GD) tls_type = old_tls_type; else { _bfd_error_handler /* xgettext:c-format */ - (_("%B: `%s' accessed both as normal and thread local symbol"), + (_("%pB: `%s' accessed both as normal and thread local symbol"), abfd, h ? h->root.root.string : ""); return FALSE; } - } - if (old_tls_type != tls_type) - { if (h != NULL) _bfd_sparc_elf_hash_entry (h)->tls_type = tls_type; else @@ -1613,45 +1602,42 @@ } } - if (htab->elf.sgot == NULL) - { - if (!_bfd_elf_create_got_section (htab->elf.dynobj, info)) - return FALSE; - } + if (!htab->elf.sgot + && !_bfd_elf_create_got_section (htab->elf.dynobj, info)) + return FALSE; if (eh != NULL) - eh->has_got_reloc = 1; + { + eh->has_got_reloc = 1; + if (r_type == R_SPARC_GOT10 + || r_type == R_SPARC_GOT13 + || r_type == R_SPARC_GOT22) + eh->has_old_style_got_reloc = 1; + } break; case R_SPARC_TLS_GD_CALL: case R_SPARC_TLS_LDM_CALL: - if (!bfd_link_executable (info)) - { - /* These are basically R_SPARC_TLS_WPLT30 relocs against - __tls_get_addr. */ - struct bfd_link_hash_entry *bh = NULL; - if (! _bfd_generic_link_add_one_symbol (info, abfd, - "__tls_get_addr", 0, - bfd_und_section_ptr, 0, - NULL, FALSE, FALSE, - &bh)) - return FALSE; - h = (struct elf_link_hash_entry *) bh; - } - else + if (bfd_link_executable (info)) break; + + /* Essentially R_SPARC_WPLT30 relocs against __tls_get_addr. */ + h = (struct elf_link_hash_entry *) + bfd_link_hash_lookup (info->hash, "__tls_get_addr", FALSE, + FALSE, TRUE); + BFD_ASSERT (h != NULL); /* Fall through */ - case R_SPARC_PLT32: case R_SPARC_WPLT30: + case R_SPARC_PLT32: + case R_SPARC_PLT64: case R_SPARC_HIPLT22: case R_SPARC_LOPLT10: case R_SPARC_PCPLT32: case R_SPARC_PCPLT22: case R_SPARC_PCPLT10: - case R_SPARC_PLT64: - /* This symbol requires a procedure linkage table entry. We - actually build the entry in adjust_dynamic_symbol, + /* 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 without linking in any dynamic objects, in which case we don't need to generate a procedure linkage table after all. */ @@ -1664,7 +1650,7 @@ reloc for a local symbol if you assemble a call from one section to another when using -K pic. We treat it as WDISP30. */ - if (ELF32_R_TYPE (rel->r_info) == R_SPARC_PLT32) + if (r_type == R_SPARC_PLT32) goto r_sparc_plt32; break; } @@ -1680,14 +1666,9 @@ h->needs_plt = 1; - { - int this_r_type; + if (r_type == R_SPARC_PLT32 || r_type == R_SPARC_PLT64) + goto r_sparc_plt32; - this_r_type = SPARC_ELF_R_TYPE (rel->r_info); - if (this_r_type == R_SPARC_PLT32 - || this_r_type == R_SPARC_PLT64) - goto r_sparc_plt32; - } h->plt.refcount += 1; eh = (struct _bfd_sparc_elf_link_hash_entry *) h; @@ -1891,9 +1872,7 @@ return NULL; } - /* FIXME: The test here, in check_relocs and in relocate_section - dealing with TLS optimization, ought to be !bfd_link_executable (info). */ - if (bfd_link_pic (info)) + if (!bfd_link_executable (info)) { switch (SPARC_ELF_R_TYPE (rel->r_info)) { @@ -2009,8 +1988,8 @@ if (h->plt.refcount <= 0 || (h->type != STT_GNU_IFUNC && (SYMBOL_CALLS_LOCAL (info, h) - || (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT - && h->root.type == bfd_link_hash_undefweak)))) + || (h->root.type == bfd_link_hash_undefweak + && ELF_ST_VISIBILITY (h->other) != STV_DEFAULT)))) { /* This case can occur if we saw a WPLT30 reloc in an input file, but the symbol was never referred to by a dynamic @@ -2129,12 +2108,11 @@ && h->def_regular && h->ref_regular)) { - /* Make sure this symbol is output as a dynamic symbol. - Undefined weak syms won't yet be marked as dynamic. */ - if (h->dynindx == -1 - && !h->forced_local + /* Undefined weak syms won't yet be marked as dynamic. */ + if (h->root.type == bfd_link_hash_undefweak && !resolved_to_zero - && h->root.type == bfd_link_hash_undefweak) + && h->dynindx == -1 + && !h->forced_local) { if (! bfd_elf_link_record_dynamic_symbol (info, h)) return FALSE; @@ -2242,12 +2220,11 @@ bfd_boolean dyn; int tls_type = _bfd_sparc_elf_hash_entry(h)->tls_type; - /* Make sure this symbol is output as a dynamic symbol. - Undefined weak syms won't yet be marked as dynamic. */ - if (h->dynindx == -1 - && !h->forced_local + /* Undefined weak syms won't yet be marked as dynamic. */ + if (h->root.type == bfd_link_hash_undefweak && !resolved_to_zero - && h->root.type == bfd_link_hash_undefweak) + && h->dynindx == -1 + && !h->forced_local) { if (! bfd_elf_link_record_dynamic_symbol (info, h)) return FALSE; @@ -2261,21 +2238,25 @@ s->size += SPARC_ELF_WORD_BYTES (htab); dyn = htab->elf.dynamic_sections_created; /* R_SPARC_TLS_IE_{HI22,LO10} needs one dynamic relocation, - R_SPARC_TLS_GD_{HI22,LO10} needs one if local symbol and two if - global. No dynamic relocations are needed against resolved - undefined weak symbols in an executable. */ + R_SPARC_TLS_GD_{HI22,LO10} needs one if local and two if global. */ if ((tls_type == GOT_TLS_GD && h->dynindx == -1) || tls_type == GOT_TLS_IE || h->type == STT_GNU_IFUNC) htab->elf.srelgot->size += SPARC_ELF_RELA_BYTES (htab); else if (tls_type == GOT_TLS_GD) htab->elf.srelgot->size += 2 * SPARC_ELF_RELA_BYTES (htab); - else if (((ELF_ST_VISIBILITY (h->other) == STV_DEFAULT - && !resolved_to_zero) - || h->root.type != bfd_link_hash_undefweak) - && WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, - bfd_link_pic (info), - h)) + else if ((WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, bfd_link_pic (info), h) + /* Even if the symbol isn't dynamic, we may generate a + reloc for the dynamic linker in PIC mode. */ + || (h->dynindx == -1 + && !h->forced_local + && h->root.type != bfd_link_hash_undefweak + && bfd_link_pic (info))) + /* No dynamic relocations are needed against resolved + undefined weak symbols in an executable. */ + && !(h->root.type == bfd_link_hash_undefweak + && (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT + || resolved_to_zero))) htab->elf.srelgot->size += SPARC_ELF_RELA_BYTES (htab); } else @@ -2385,12 +2366,11 @@ && (h->root.type == bfd_link_hash_undefweak || h->root.type == bfd_link_hash_undefined)))) { - /* Make sure this symbol is output as a dynamic symbol. - Undefined weak syms won't yet be marked as dynamic. */ - if (h->dynindx == -1 - && !h->forced_local + /* Undefined weak syms won't yet be marked as dynamic. */ + if (h->root.type == bfd_link_hash_undefweak && !resolved_to_zero - && h->root.type == bfd_link_hash_undefweak) + && h->dynindx == -1 + && !h->forced_local) { if (! bfd_elf_link_record_dynamic_symbol (info, h)) return FALSE; @@ -2454,7 +2434,7 @@ info->flags |= DF_TEXTREL; info->callbacks->minfo - (_("%B: dynamic relocation against `%T' in read-only section `%A'\n"), + (_("%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"), sec->owner, h->root.root.string, sec); /* Not an error, just cut short the traversal. */ @@ -2477,7 +2457,7 @@ if (strcmp (p->name, ".got") == 0) return FALSE; - return _bfd_elf_link_omit_section_dynsym (output_bfd, info, p); + return _bfd_elf_omit_section_dynsym_default (output_bfd, info, p); } /* Set the sizes of the dynamic sections. */ @@ -2553,7 +2533,7 @@ if ((p->sec->output_section->flags & SEC_READONLY) != 0) { info->flags |= DF_TEXTREL; - info->callbacks->minfo (_("%B: dynamic relocation in read-only section `%A'\n"), + info->callbacks->minfo (_("%pB: dynamic relocation in read-only section `%pA'\n"), p->sec->owner, p->sec); } } @@ -2968,8 +2948,8 @@ bfd_set_error (bfd_error_bad_value); return FALSE; } - howto = _bfd_sparc_elf_howto_table + r_type; + howto = _bfd_sparc_elf_howto_table + r_type; r_symndx = SPARC_ELF_R_SYMNDX (htab, rel->r_info); h = NULL; sym = NULL; @@ -3031,7 +3011,13 @@ if ((input_section->flags & SEC_ALLOC) == 0 || h->plt.offset == (bfd_vma) -1) - abort (); + { + /* If this is a SHT_NOTE section without SHF_ALLOC, treat + STT_GNU_IFUNC symbol as STT_FUNC. */ + if (elf_section_type (input_section) == SHT_NOTE) + goto skip_ifunc; + abort (); + } plt_sec = htab->elf.splt; if (! plt_sec) @@ -3126,7 +3112,7 @@ NULL); _bfd_error_handler /* xgettext:c-format */ - (_("%B: relocation %s against STT_GNU_IFUNC " + (_("%pB: relocation %s against STT_GNU_IFUNC " "symbol `%s' isn't handled by %s"), input_bfd, _bfd_sparc_elf_howto_table[r_type].name, name, __FUNCTION__); @@ -3135,9 +3121,9 @@ } } + skip_ifunc: eh = (struct _bfd_sparc_elf_link_hash_entry *) h; - resolved_to_zero = (eh != NULL - && UNDEFINED_WEAK_RESOLVED_TO_ZERO (info, eh)); + resolved_to_zero = eh && UNDEFINED_WEAK_RESOLVED_TO_ZERO (info, eh); switch (r_type) { @@ -3160,6 +3146,28 @@ /* {ld,ldx} [%rs1 + %rs2], %rd --> add %rs1, %rs2, %rd */ relocation = 0x80000000 | (insn & 0x3e07c01f); bfd_put_32 (output_bfd, relocation, contents + rel->r_offset); + + /* If the symbol is global but not dynamic, an .rela.* slot has + been allocated for it in the GOT so output R_SPARC_NONE here, + if it isn't also subject to another, old-style GOT relocation. + See also the handling of these GOT relocations just below. */ + if (h != NULL + && h->dynindx == -1 + && !h->forced_local + && h->root.type != bfd_link_hash_undefweak + && !eh->has_old_style_got_reloc + && (h->got.offset & 1) == 0 + && bfd_link_pic (info)) + { + asection *s = htab->elf.srelgot; + Elf_Internal_Rela outrel; + + BFD_ASSERT (s != NULL); + + memset (&outrel, 0, sizeof outrel); + sparc_elf_append_rela (output_bfd, s, &outrel); + h->got.offset |= 1; + } } continue; } @@ -3212,15 +3220,13 @@ off &= ~1; else { + /* If this symbol isn't dynamic in PIC mode, treat it + like a local symbol in PIC mode below. */ if (h->dynindx == -1 && !h->forced_local && h->root.type != bfd_link_hash_undefweak && bfd_link_pic (info)) - { - /* If this symbol isn't dynamic in PIC - generate R_SPARC_RELATIVE here. */ - relative_reloc = TRUE; - } + relative_reloc = TRUE; else SPARC_ELF_PUT_WORD (htab, output_bfd, relocation, htab->elf.sgot->contents + off); @@ -3244,6 +3250,8 @@ off &= ~1; else { + /* For a local symbol in PIC mode, we need to generate a + R_SPARC_RELATIVE reloc for the dynamic linker. */ if (bfd_link_pic (info)) relative_reloc = TRUE; else @@ -3255,12 +3263,9 @@ if (relative_reloc) { - asection *s; + asection *s = htab->elf.srelgot; Elf_Internal_Rela outrel; - /* We need to generate a R_SPARC_RELATIVE reloc - for the dynamic linker. */ - s = htab->elf.srelgot; BFD_ASSERT (s != NULL); outrel.r_offset = (htab->elf.sgot->output_section->vma @@ -3383,8 +3388,7 @@ case R_SPARC_H34: case R_SPARC_UA64: r_sparc_plt32: - if ((input_section->flags & SEC_ALLOC) == 0 - || is_vxworks_tls) + if ((input_section->flags & SEC_ALLOC) == 0 || is_vxworks_tls) break; /* Copy dynamic function pointer relocations. Don't generate @@ -3392,9 +3396,9 @@ in PIE. */ if ((bfd_link_pic (info) && (h == NULL - || ((ELF_ST_VISIBILITY (h->other) == STV_DEFAULT - && !resolved_to_zero) - || h->root.type != bfd_link_hash_undefweak)) + || !(h->root.type == bfd_link_hash_undefweak + && (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT + || resolved_to_zero))) && (! howto->pc_relative || !SYMBOL_CALLS_LOCAL (info, h))) || (!bfd_link_pic (info) @@ -3481,7 +3485,6 @@ || !SYMBOLIC_BIND (info, h) || !h->def_regular)) { - BFD_ASSERT (h->dynindx != -1); outrel.r_info = SPARC_ELF_R_INFO (htab, rel, h->dynindx, r_type); outrel.r_addend = rel->r_addend; } @@ -3534,7 +3537,7 @@ { BFD_FAIL (); _bfd_error_handler - (_("%B: probably compiled without -fPIC?"), + (_("%pB: probably compiled without -fPIC?"), input_bfd); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -3556,40 +3559,19 @@ break; case R_SPARC_TLS_GD_HI22: - if (! ABI_64_P (input_bfd) - && ! _bfd_sparc_elf_tdata (input_bfd)->has_tlsgd) - { - /* R_SPARC_REV32 used the same reloc number as - R_SPARC_TLS_GD_HI22. */ - r_type = R_SPARC_REV32; - break; - } - /* Fall through */ - case R_SPARC_TLS_GD_LO10: case R_SPARC_TLS_IE_HI22: case R_SPARC_TLS_IE_LO10: - r_type = sparc_elf_tls_transition (info, input_bfd, r_type, h == NULL); - tls_type = GOT_UNKNOWN; - if (h == NULL && local_got_offsets) + r_type = sparc_elf_tls_transition (info, input_bfd, r_type, + h == NULL || h->dynindx == -1); + if (r_type == R_SPARC_REV32) + break; + if (h != NULL) + tls_type = _bfd_sparc_elf_hash_entry (h)->tls_type; + else if (local_got_offsets) tls_type = _bfd_sparc_elf_local_got_tls_type (input_bfd) [r_symndx]; - else if (h != NULL) - { - tls_type = _bfd_sparc_elf_hash_entry(h)->tls_type; - if (bfd_link_executable (info) - && h->dynindx == -1 - && tls_type == GOT_TLS_IE) - switch (SPARC_ELF_R_TYPE (rel->r_info)) - { - case R_SPARC_TLS_GD_HI22: - case R_SPARC_TLS_IE_HI22: - r_type = R_SPARC_TLS_LE_HIX22; - break; - default: - r_type = R_SPARC_TLS_LE_LOX10; - break; - } - } + else + tls_type = GOT_UNKNOWN; if (tls_type == GOT_TLS_IE) switch (r_type) { @@ -3700,7 +3682,8 @@ case R_SPARC_TLS_LDM_HI22: case R_SPARC_TLS_LDM_LO10: - if (! bfd_link_pic (info)) + /* LD -> LE */ + if (bfd_link_executable (info)) { bfd_put_32 (output_bfd, SPARC_NOP, contents + rel->r_offset); continue; @@ -3711,14 +3694,19 @@ case R_SPARC_TLS_LDO_HIX22: case R_SPARC_TLS_LDO_LOX10: - if (bfd_link_pic (info)) + /* LD -> LE */ + if (bfd_link_executable (info)) + { + if (r_type == R_SPARC_TLS_LDO_HIX22) + r_type = R_SPARC_TLS_LE_HIX22; + else + r_type = R_SPARC_TLS_LE_LOX10; + } + else { relocation -= dtpoff_base (info); break; } - - r_type = (r_type == R_SPARC_TLS_LDO_HIX22 - ? R_SPARC_TLS_LE_HIX22 : R_SPARC_TLS_LE_LOX10); /* Fall through. */ case R_SPARC_TLS_LE_HIX22: @@ -3726,28 +3714,22 @@ if (!bfd_link_executable (info)) { Elf_Internal_Rela outrel; - bfd_boolean skip; - - BFD_ASSERT (sreloc != NULL); - skip = FALSE; - outrel.r_offset = - _bfd_elf_section_offset (output_bfd, info, input_section, - rel->r_offset); - if (outrel.r_offset == (bfd_vma) -1) - skip = TRUE; - else if (outrel.r_offset == (bfd_vma) -2) - skip = TRUE; - outrel.r_offset += (input_section->output_section->vma - + input_section->output_offset); - if (skip) + bfd_vma offset + = _bfd_elf_section_offset (output_bfd, info, input_section, + rel->r_offset); + if (offset == (bfd_vma) -1 || offset == (bfd_vma) -2) memset (&outrel, 0, sizeof outrel); else { + outrel.r_offset = offset + + input_section->output_section->vma + + input_section->output_offset; outrel.r_info = SPARC_ELF_R_INFO (htab, NULL, 0, r_type); - outrel.r_addend = relocation - dtpoff_base (info) - + rel->r_addend; + outrel.r_addend + = relocation - dtpoff_base (info) + rel->r_addend; } + BFD_ASSERT (sreloc != NULL); sparc_elf_append_rela (output_bfd, sreloc, &outrel); continue; } @@ -3755,6 +3737,7 @@ break; case R_SPARC_TLS_LDM_CALL: + /* LD -> LE */ if (bfd_link_executable (info)) { /* mov %g0, %o0 */ @@ -3764,20 +3747,22 @@ /* Fall through */ case R_SPARC_TLS_GD_CALL: - tls_type = GOT_UNKNOWN; - if (h == NULL && local_got_offsets) + if (h != NULL) + tls_type = _bfd_sparc_elf_hash_entry (h)->tls_type; + else if (local_got_offsets) tls_type = _bfd_sparc_elf_local_got_tls_type (input_bfd) [r_symndx]; - else if (h != NULL) - tls_type = _bfd_sparc_elf_hash_entry(h)->tls_type; + else + tls_type = GOT_UNKNOWN; + /* GD -> IE or LE */ if (bfd_link_executable (info) || (r_type == R_SPARC_TLS_GD_CALL && tls_type == GOT_TLS_IE)) { Elf_Internal_Rela *rel2; bfd_vma insn; - if (!bfd_link_pic (info) && (h == NULL || h->dynindx == -1)) + /* GD -> LE */ + if (bfd_link_executable (info) && (h == NULL || h->dynindx == -1)) { - /* GD -> LE */ bfd_put_32 (output_bfd, SPARC_NOP, contents + rel->r_offset); continue; } @@ -3840,12 +3825,14 @@ goto r_sparc_wplt30; case R_SPARC_TLS_GD_ADD: - tls_type = GOT_UNKNOWN; - if (h == NULL && local_got_offsets) + if (h != NULL) + tls_type = _bfd_sparc_elf_hash_entry (h)->tls_type; + else if (local_got_offsets) tls_type = _bfd_sparc_elf_local_got_tls_type (input_bfd) [r_symndx]; - else if (h != NULL) - tls_type = _bfd_sparc_elf_hash_entry(h)->tls_type; - if (! bfd_link_pic (info) || tls_type == GOT_TLS_IE) + else + tls_type = GOT_UNKNOWN; + /* GD -> IE or LE */ + if (bfd_link_executable (info) || tls_type == GOT_TLS_IE) { /* add %reg1, %reg2, %reg3, %tgd_add(foo) changed into IE: @@ -3853,21 +3840,23 @@ or LE: add %g7, %reg2, %reg3. */ bfd_vma insn = bfd_get_32 (input_bfd, contents + rel->r_offset); - if ((h != NULL && h->dynindx != -1) || bfd_link_pic (info)) - relocation = insn | (ABI_64_P (output_bfd) ? 0xc0580000 : 0xc0000000); - else + if (bfd_link_executable (info) && (h == NULL || h->dynindx == -1)) relocation = (insn & ~0x7c000) | 0x1c000; + else + relocation = insn | (ABI_64_P (output_bfd) ? 0xc0580000 : 0xc0000000); bfd_put_32 (output_bfd, relocation, contents + rel->r_offset); } continue; case R_SPARC_TLS_LDM_ADD: - if (! bfd_link_pic (info)) + /* LD -> LE */ + if (bfd_link_executable (info)) bfd_put_32 (output_bfd, SPARC_NOP, contents + rel->r_offset); continue; case R_SPARC_TLS_LDO_ADD: - if (! bfd_link_pic (info)) + /* LD -> LE */ + if (bfd_link_executable (info)) { /* Change rs1 into %g7. */ bfd_vma insn = bfd_get_32 (input_bfd, contents + rel->r_offset); @@ -3878,6 +3867,7 @@ case R_SPARC_TLS_IE_LD: case R_SPARC_TLS_IE_LDX: + /* IE -> LE */ if (bfd_link_executable (info) && (h == NULL || h->dynindx == -1)) { bfd_vma insn = bfd_get_32 (input_bfd, contents + rel->r_offset); @@ -3915,10 +3905,11 @@ rel->r_offset) != (bfd_vma) -1) _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"), + (_("%pB(%pA+%#" PRIx64 "): " + "unresolvable %s relocation against symbol `%s'"), input_bfd, input_section, - rel->r_offset, + (uint64_t) rel->r_offset, howto->name, h->root.root.string); @@ -4326,7 +4317,7 @@ struct _bfd_sparc_elf_link_hash_table *htab; const struct elf_backend_data *bed; struct _bfd_sparc_elf_link_hash_entry *eh; - bfd_boolean local_undefweak; + bfd_boolean resolved_to_zero; htab = _bfd_sparc_elf_hash_table (info); BFD_ASSERT (htab != NULL); @@ -4337,7 +4328,7 @@ /* We keep PLT/GOT entries without dynamic PLT/GOT relocations for resolved undefined weak symbols in executable so that their references have value 0 at run-time. */ - local_undefweak = UNDEFINED_WEAK_RESOLVED_TO_ZERO (info, eh); + resolved_to_zero = UNDEFINED_WEAK_RESOLVED_TO_ZERO (info, eh); if (h->plt.offset != (bfd_vma) -1) { @@ -4462,8 +4453,7 @@ loc += rela_index * bed->s->sizeof_rela; bed->s->swap_reloca_out (output_bfd, &rela, loc); - if (!local_undefweak - && !h->def_regular) + if (!resolved_to_zero && !h->def_regular) { /* Mark the symbol as undefined, rather than as defined in the .plt section. Leave the value alone. */ @@ -4477,12 +4467,14 @@ } } - /* Don't generate dynamic GOT relocation against undefined weak - symbol in executable. */ + /* Don't generate dynamic GOT relocation against resolved undefined weak + symbols in an executable. */ if (h->got.offset != (bfd_vma) -1 && _bfd_sparc_elf_hash_entry(h)->tls_type != GOT_TLS_GD && _bfd_sparc_elf_hash_entry(h)->tls_type != GOT_TLS_IE - && !local_undefweak) + && !(h->root.type == bfd_link_hash_undefweak + && (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT + || resolved_to_zero))) { asection *sgot; asection *srela; @@ -4518,8 +4510,8 @@ + (h->got.offset & ~(bfd_vma) 1)); return TRUE; } - else if (bfd_link_pic (info) - && SYMBOL_REFERENCES_LOCAL (info, h)) + + if (bfd_link_pic (info) && SYMBOL_REFERENCES_LOCAL (info, h)) { asection *sec = h->root.u.def.section; if (h->type == STT_GNU_IFUNC) diff -Nru gdb-8.1/bfd/elfxx-sparc.h gdb-8.2/bfd/elfxx-sparc.h --- gdb-8.1/bfd/elfxx-sparc.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elfxx-sparc.h 2018-09-05 07:27:13.000000000 +0000 @@ -97,10 +97,10 @@ (bfd *, bfd_reloc_code_real_type); extern reloc_howto_type *_bfd_sparc_elf_reloc_name_lookup (bfd *, const char *); -extern void _bfd_sparc_elf_info_to_howto +extern bfd_boolean _bfd_sparc_elf_info_to_howto (bfd *, arelent *, Elf_Internal_Rela *); extern reloc_howto_type *_bfd_sparc_elf_info_to_howto_ptr - (unsigned int); + (bfd*, unsigned int); extern bfd_boolean _bfd_sparc_elf_mkobject (bfd *); extern struct bfd_link_hash_table *_bfd_sparc_elf_link_hash_table_create diff -Nru gdb-8.1/bfd/elfxx-target.h gdb-8.2/bfd/elfxx-target.h --- gdb-8.1/bfd/elfxx-target.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elfxx-target.h 2018-09-05 07:44:28.000000000 +0000 @@ -145,10 +145,9 @@ #define elf_backend_strtab_flags 0 #endif -#define bfd_elfNN_bfd_debug_info_start bfd_void -#define bfd_elfNN_bfd_debug_info_end bfd_void -#define bfd_elfNN_bfd_debug_info_accumulate \ - ((void (*) (bfd*, struct bfd_section *)) bfd_void) +#define bfd_elfNN_bfd_debug_info_start _bfd_void_bfd +#define bfd_elfNN_bfd_debug_info_end _bfd_void_bfd +#define bfd_elfNN_bfd_debug_info_accumulate _bfd_void_bfd_asection #ifndef bfd_elfNN_bfd_get_relocated_section_contents #define bfd_elfNN_bfd_get_relocated_section_contents \ @@ -206,13 +205,16 @@ #define bfd_elfNN_bfd_define_common_symbol bfd_generic_define_common_symbol #endif +#ifndef bfd_elfNN_bfd_link_hide_symbol +#define bfd_elfNN_bfd_link_hide_symbol _bfd_elf_link_hide_symbol +#endif + #ifndef bfd_elfNN_bfd_lookup_section_flags #define bfd_elfNN_bfd_lookup_section_flags bfd_elf_lookup_section_flags #endif #ifndef bfd_elfNN_bfd_make_debug_symbol -#define bfd_elfNN_bfd_make_debug_symbol \ - ((asymbol * (*) (bfd *, void *, unsigned long)) bfd_nullvoidptr) +#define bfd_elfNN_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol #endif #ifndef bfd_elfNN_bfd_copy_private_symbol_data @@ -237,19 +239,16 @@ _bfd_elf_print_private_bfd_data #endif #ifndef bfd_elfNN_bfd_merge_private_bfd_data -#define bfd_elfNN_bfd_merge_private_bfd_data \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) bfd_true) +#define bfd_elfNN_bfd_merge_private_bfd_data _bfd_bool_bfd_link_true #endif #ifndef bfd_elfNN_bfd_set_private_flags -#define bfd_elfNN_bfd_set_private_flags \ - ((bfd_boolean (*) (bfd *, flagword)) bfd_true) +#define bfd_elfNN_bfd_set_private_flags _bfd_bool_bfd_uint_true #endif #ifndef bfd_elfNN_bfd_is_local_label_name #define bfd_elfNN_bfd_is_local_label_name _bfd_elf_is_local_label_name #endif #ifndef bfd_elfNN_bfd_is_target_special_symbol -#define bfd_elfNN_bfd_is_target_special_symbol \ - ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) +#define bfd_elfNN_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false #endif #ifndef bfd_elfNN_get_dynamic_reloc_upper_bound @@ -344,11 +343,11 @@ #endif #ifndef elf_info_to_howto -#define elf_info_to_howto 0 +#define elf_info_to_howto NULL #endif #ifndef elf_info_to_howto_rel -#define elf_info_to_howto_rel 0 +#define elf_info_to_howto_rel NULL #endif #ifndef elf_backend_arch_data @@ -372,6 +371,10 @@ #define ELF_COMMONPAGESIZE ELF_MAXPAGESIZE #endif +#ifndef ELF_RELROPAGESIZE +#define ELF_RELROPAGESIZE ELF_COMMONPAGESIZE +#endif + #ifndef ELF_MINPAGESIZE #define ELF_MINPAGESIZE ELF_COMMONPAGESIZE #endif @@ -379,9 +382,15 @@ #if ELF_COMMONPAGESIZE > ELF_MAXPAGESIZE # error ELF_COMMONPAGESIZE > ELF_MAXPAGESIZE #endif +#if ELF_RELROPAGESIZE > ELF_MAXPAGESIZE +# error ELF_RELROPAGESIZE > ELF_MAXPAGESIZE +#endif #if ELF_MINPAGESIZE > ELF_COMMONPAGESIZE # error ELF_MINPAGESIZE > ELF_COMMONPAGESIZE #endif +#if ELF_MINPAGESIZE > ELF_RELROPAGESIZE +# error ELF_MINPAGESIZE > ELF_RELROPAGESIZE +#endif #ifndef ELF_DYNAMIC_SEC_FLAGS /* Note that we set the SEC_IN_MEMORY flag for these sections. */ @@ -449,7 +458,7 @@ #define elf_backend_create_dynamic_sections 0 #endif #ifndef elf_backend_omit_section_dynsym -#define elf_backend_omit_section_dynsym _bfd_elf_link_omit_section_dynsym +#define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_default #endif #ifndef elf_backend_relocs_compatible #define elf_backend_relocs_compatible _bfd_elf_default_relocs_compatible @@ -473,8 +482,7 @@ #define elf_backend_size_dynamic_sections 0 #endif #ifndef elf_backend_init_index_section -#define elf_backend_init_index_section \ - ((void (*) (bfd *, struct bfd_link_info *)) bfd_void) +#define elf_backend_init_index_section _bfd_void_bfd_link #endif #ifndef elf_backend_relocate_section #define elf_backend_relocate_section 0 @@ -501,8 +509,7 @@ #define elf_backend_modify_program_headers 0 #endif #ifndef elf_backend_allow_non_load_phdr -#define elf_backend_allow_non_load_phdr \ - ((bfd_boolean (*) (bfd *, const Elf_Internal_Phdr *, unsigned)) bfd_false) +#define elf_backend_allow_non_load_phdr 0 #endif #ifndef elf_backend_ecoff_debug_swap #define elf_backend_ecoff_debug_swap 0 @@ -764,6 +771,7 @@ ELF_MAXPAGESIZE, /* maxpagesize */ ELF_MINPAGESIZE, /* minpagesize */ ELF_COMMONPAGESIZE, /* commonpagesize */ + ELF_RELROPAGESIZE, /* commonpagesize to use with -z relro */ ELF_DYNAMIC_SEC_FLAGS, /* dynamic_sec_flags */ elf_backend_arch_data, elf_info_to_howto, @@ -967,14 +975,14 @@ }, /* bfd_set_format: set the format of a file being written */ - { bfd_false, + { _bfd_bool_bfd_false_error, bfd_elfNN_mkobject, bfd_elfNN_mkarchive, bfd_elfNN_mkcorefile }, /* bfd_write_contents: write cached information into a file being written */ - { bfd_false, + { _bfd_bool_bfd_false_error, bfd_elfNN_write_object_contents, bfd_elfNN_write_archive_contents, bfd_elfNN_write_corefile_contents, @@ -1068,14 +1076,14 @@ }, /* bfd_set_format: set the format of a file being written */ - { bfd_false, + { _bfd_bool_bfd_false_error, bfd_elfNN_mkobject, bfd_elfNN_mkarchive, bfd_elfNN_mkcorefile }, /* bfd_write_contents: write cached information into a file being written */ - { bfd_false, + { _bfd_bool_bfd_false_error, bfd_elfNN_write_object_contents, bfd_elfNN_write_archive_contents, bfd_elfNN_write_corefile_contents, diff -Nru gdb-8.1/bfd/elfxx-tilegx.c gdb-8.2/bfd/elfxx-tilegx.c --- gdb-8.1/bfd/elfxx-tilegx.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elfxx-tilegx.c 2018-09-05 07:27:13.000000000 +0000 @@ -892,7 +892,7 @@ } reloc_howto_type * -tilegx_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED, +tilegx_reloc_type_lookup (bfd * abfd, bfd_reloc_code_real_type code) { unsigned int i; @@ -908,6 +908,10 @@ - entry->table[0].type); } + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, (int) code); + bfd_set_error (bfd_error_bad_value); return NULL; } @@ -928,7 +932,7 @@ return NULL; } -void +bfd_boolean tilegx_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr, Elf_Internal_Rela *dst) @@ -938,11 +942,19 @@ if (r_type <= (unsigned int) R_TILEGX_IMM8_Y1_TLS_ADD) cache_ptr->howto = &tilegx_elf_howto_table [r_type]; else if (r_type - R_TILEGX_GNU_VTINHERIT - <= (unsigned int) R_TILEGX_GNU_VTENTRY) + <= ((unsigned int) R_TILEGX_GNU_VTENTRY + - (unsigned int) R_TILEGX_GNU_VTINHERIT)) cache_ptr->howto = &tilegx_elf_howto_table2 [r_type - R_TILEGX_GNU_VTINHERIT]; else - abort (); + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + return TRUE; } typedef tilegx_bundle_bits (*tilegx_create_func)(int); @@ -1685,7 +1697,7 @@ if (r_symndx >= NUM_SHDR_ENTRIES (symtab_hdr)) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: bad symbol index: %d"), + _bfd_error_handler (_("%pB: bad symbol index: %d"), abfd, r_symndx); return FALSE; } @@ -1790,7 +1802,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: `%s' accessed both as normal and thread local symbol"), + (_("%pB: `%s' accessed both as normal and thread local symbol"), abfd, h ? h->root.root.string : ""); return FALSE; } @@ -2476,7 +2488,7 @@ info->flags |= DF_TEXTREL; info->callbacks->minfo - (_("%B: dynamic relocation against `%T' in read-only section `%A'\n"), + (_("%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"), sec->owner, h->root.root.string, sec); /* Not an error, just cut short the traversal. */ @@ -2499,7 +2511,7 @@ if (strcmp (p->name, ".got") == 0) return FALSE; - return _bfd_elf_link_omit_section_dynsym (output_bfd, info, p); + return _bfd_elf_omit_section_dynsym_default (output_bfd, info, p); } bfd_boolean @@ -2564,7 +2576,7 @@ { info->flags |= DF_TEXTREL; - info->callbacks->minfo (_("%B: dynamic relocation in read-only section `%A'\n"), + info->callbacks->minfo (_("%pB: dynamic relocation in read-only section `%pA'\n"), p->sec->owner, p->sec); } } @@ -3528,7 +3540,7 @@ { BFD_FAIL (); _bfd_error_handler - (_("%B: probably compiled without -fPIC?"), + (_("%pB: probably compiled without -fPIC?"), input_bfd); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -3778,10 +3790,11 @@ rel->r_offset) != (bfd_vma) -1) _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"), + (_("%pB(%pA+%#" PRIx64 "): " + "unresolvable %s relocation against symbol `%s'"), input_bfd, input_section, - rel->r_offset, + (uint64_t) rel->r_offset, howto->name, h->root.root.string); @@ -4129,7 +4142,7 @@ if (bfd_is_abs_section (htab->elf.sgotplt->output_section)) { _bfd_error_handler - (_("discarded output section: `%A'"), htab->elf.sgotplt); + (_("discarded output section: `%pA'"), htab->elf.sgotplt); return FALSE; } @@ -4238,7 +4251,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: Cannot link together %s and %s objects."), + (_("%pB: cannot link together %s and %s objects"), ibfd, targ1, targ2); bfd_set_error (bfd_error_bad_value); return FALSE; diff -Nru gdb-8.1/bfd/elfxx-tilegx.h gdb-8.2/bfd/elfxx-tilegx.h --- gdb-8.1/bfd/elfxx-tilegx.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elfxx-tilegx.h 2018-09-05 07:27:13.000000000 +0000 @@ -76,7 +76,7 @@ extern bfd_vma tilegx_elf_plt_sym_val (bfd_vma, const asection *, const arelent *); -extern void +extern bfd_boolean tilegx_info_to_howto_rela (bfd *, arelent *, Elf_Internal_Rela *); extern int diff -Nru gdb-8.1/bfd/elfxx-x86.c gdb-8.2/bfd/elfxx-x86.c --- gdb-8.1/bfd/elfxx-x86.c 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/bfd/elfxx-x86.c 2018-09-05 07:44:28.000000000 +0000 @@ -179,6 +179,7 @@ asection *s = htab->elf.splt; asection *second_s = htab->plt_second; asection *got_s = htab->plt_got; + bfd_boolean use_plt; /* If this is the first .plt entry, make room for the special first entry. The .plt section is used by prelink to undo @@ -196,12 +197,19 @@ } /* 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 (! bfd_link_pic (info) - && !h->def_regular) + generating PDE, then set the symbol to this location in the + .plt. This is required to make function pointers compare + as equal between PDE and the shared library. + + NB: If PLT is PC-relative, we can use the .plt in PIE for + function address. */ + if (h->def_regular) + use_plt = FALSE; + else if (htab->pcrel_plt) + use_plt = ! bfd_link_dll (info); + else + use_plt = bfd_link_pde (info); + if (use_plt) { if (use_plt_got) { @@ -560,15 +568,15 @@ info->flags |= DF_TEXTREL; /* xgettext:c-format */ - info->callbacks->minfo (_("%B: dynamic relocation against `%T' " - "in read-only section `%A'\n"), + info->callbacks->minfo (_("%pB: dynamic relocation against `%pT' " + "in read-only section `%pA'\n"), sec->owner, h->root.root.string, sec); if ((info->warn_shared_textrel && bfd_link_pic (info)) || info->error_textrel) /* xgettext:c-format */ - info->callbacks->einfo (_("%P: %B: warning: relocation against `%s' " - "in read-only section `%A'\n"), + info->callbacks->einfo (_("%P: %pB: warning: relocation against `%s' " + "in read-only section `%pA'\n"), sec->owner, h->root.root.string, sec); /* Not an error, just cut short the traversal. */ @@ -771,6 +779,7 @@ ret->dt_reloc_sz = DT_RELASZ; ret->dt_reloc_ent = DT_RELAENT; ret->got_entry_size = 8; + ret->pcrel_plt = TRUE; ret->tls_get_addr = "__tls_get_addr"; } if (ABI_64_P (abfd)) @@ -798,6 +807,7 @@ ret->dt_reloc_ent = DT_RELENT; ret->sizeof_reloc = sizeof (Elf32_External_Rel); ret->got_entry_size = 4; + ret->pcrel_plt = FALSE; ret->pointer_r_type = R_386_32; ret->dynamic_interpreter = ELF32_DYNAMIC_INTERPRETER; ret->dynamic_interpreter_size @@ -839,6 +849,54 @@ return 0; } +/* Mark symbol, NAME, as locally defined by linker if it is referenced + and not defined in a relocatable object file. */ + +static void +elf_x86_linker_defined (struct bfd_link_info *info, const char *name) +{ + struct elf_link_hash_entry *h; + + h = elf_link_hash_lookup (elf_hash_table (info), name, + FALSE, FALSE, FALSE); + if (h == NULL) + return; + + while (h->root.type == bfd_link_hash_indirect) + h = (struct elf_link_hash_entry *) h->root.u.i.link; + + if (h->root.type == bfd_link_hash_new + || h->root.type == bfd_link_hash_undefined + || h->root.type == bfd_link_hash_undefweak + || h->root.type == bfd_link_hash_common + || (!h->def_regular && h->def_dynamic)) + { + elf_x86_hash_entry (h)->local_ref = 2; + elf_x86_hash_entry (h)->linker_def = 1; + } +} + +/* Hide a linker-defined symbol, NAME, with hidden visibility. */ + +static void +elf_x86_hide_linker_defined (struct bfd_link_info *info, + const char *name) +{ + struct elf_link_hash_entry *h; + + h = elf_link_hash_lookup (elf_hash_table (info), name, + FALSE, FALSE, FALSE); + if (h == NULL) + return; + + while (h->root.type == bfd_link_hash_indirect) + h = (struct elf_link_hash_entry *) h->root.u.i.link; + + if (ELF_ST_VISIBILITY (h->other) == STV_INTERNAL + || ELF_ST_VISIBILITY (h->other) == STV_HIDDEN) + _bfd_elf_link_hash_hide_symbol (info, h, TRUE); +} + bfd_boolean _bfd_x86_elf_link_check_relocs (bfd *abfd, struct bfd_link_info *info) { @@ -856,21 +914,36 @@ htab->tls_get_addr, FALSE, FALSE, FALSE); if (h != NULL) - elf_x86_hash_entry (h)->tls_get_addr = 1; + { + elf_x86_hash_entry (h)->tls_get_addr = 1; + + /* Check the versioned __tls_get_addr symbol. */ + while (h->root.type == bfd_link_hash_indirect) + { + h = (struct elf_link_hash_entry *) h->root.u.i.link; + elf_x86_hash_entry (h)->tls_get_addr = 1; + } + } /* "__ehdr_start" will be defined by linker as a hidden symbol later if it is referenced and not defined. */ - h = elf_link_hash_lookup (elf_hash_table (info), - "__ehdr_start", - FALSE, FALSE, FALSE); - if (h != NULL - && (h->root.type == bfd_link_hash_new - || h->root.type == bfd_link_hash_undefined - || h->root.type == bfd_link_hash_undefweak - || h->root.type == bfd_link_hash_common)) + elf_x86_linker_defined (info, "__ehdr_start"); + + if (bfd_link_executable (info)) + { + /* References to __bss_start, _end and _edata should be + locally resolved within executables. */ + elf_x86_linker_defined (info, "__bss_start"); + elf_x86_linker_defined (info, "_end"); + elf_x86_linker_defined (info, "_edata"); + } + else { - elf_x86_hash_entry (h)->local_ref = 2; - elf_x86_hash_entry (h)->linker_def = 1; + /* Hide hidden __bss_start, _end and _edata in shared + libraries. */ + elf_x86_hide_linker_defined (info, "__bss_start"); + elf_x86_hide_linker_defined (info, "_end"); + elf_x86_hide_linker_defined (info, "_edata"); } } } @@ -951,8 +1024,8 @@ || info->error_textrel) /* xgettext:c-format */ info->callbacks->einfo - (_("%P: %B: warning: relocation " - "in read-only section `%A'\n"), + (_("%P: %pB: warning: relocation " + "in read-only section `%pA'\n"), p->sec->owner, p->sec); } } @@ -1077,7 +1150,7 @@ /* Don't allocate .got.plt section if there are no GOT nor PLT entries and there is no reference to _GLOBAL_OFFSET_TABLE_. */ if ((htab->elf.hgot == NULL - || !htab->elf.hgot->ref_regular_nonweak) + || !htab->got_referenced) && (htab->elf.sgotplt->size == bed->got_header_size) && (htab->elf.splt == NULL || htab->elf.splt->size == 0) @@ -1087,7 +1160,22 @@ || htab->elf.iplt->size == 0) && (htab->elf.igotplt == NULL || htab->elf.igotplt->size == 0)) - htab->elf.sgotplt->size = 0; + { + htab->elf.sgotplt->size = 0; + /* Solaris requires to keep _GLOBAL_OFFSET_TABLE_ even if it + isn't used. */ + if (htab->elf.hgot != NULL && htab->target_os != is_solaris) + { + /* Remove the unused _GLOBAL_OFFSET_TABLE_ from symbol + table. */ + htab->elf.hgot->root.type = bfd_link_hash_undefined; + htab->elf.hgot->root.u.undef.abfd + = htab->elf.hgot->root.u.def.section->owner; + htab->elf.hgot->root.linker_def = 0; + htab->elf.hgot->ref_regular = 0; + htab->elf.hgot->def_regular = 0; + } + } } if (_bfd_elf_eh_frame_present (info)) @@ -1333,7 +1421,7 @@ if (bfd_is_abs_section (htab->elf.sgotplt->output_section)) { _bfd_error_handler - (_("discarded output section: `%A'"), htab->elf.sgotplt); + (_("discarded output section: `%pA'"), htab->elf.sgotplt); return NULL; } @@ -1671,6 +1759,52 @@ return TRUE; } +/* Change the STT_GNU_IFUNC symbol defined in position-dependent + executable into the normal function symbol and set its address + to its PLT entry, which should be resolved by R_*_IRELATIVE at + run-time. */ + +void +_bfd_x86_elf_link_fixup_ifunc_symbol (struct bfd_link_info *info, + struct elf_x86_link_hash_table *htab, + struct elf_link_hash_entry *h, + Elf_Internal_Sym *sym) +{ + if (bfd_link_pde (info) + && h->def_regular + && h->dynindx != -1 + && h->plt.offset != (bfd_vma) -1 + && h->type == STT_GNU_IFUNC + && h->pointer_equality_needed) + { + asection *plt_s; + bfd_vma plt_offset; + bfd *output_bfd = info->output_bfd; + + if (htab->plt_second) + { + struct elf_x86_link_hash_entry *eh + = (struct elf_x86_link_hash_entry *) h; + + plt_s = htab->plt_second; + plt_offset = eh->plt_second.offset; + } + else + { + plt_s = htab->elf.splt; + plt_offset = h->plt.offset; + } + + sym->st_size = 0; + sym->st_info = ELF_ST_INFO (ELF_ST_BIND (sym->st_info), STT_FUNC); + sym->st_shndx + = _bfd_elf_section_from_bfd_section (output_bfd, + plt_s->output_section); + sym->st_value = (plt_s->output_section->vma + + plt_s->output_offset + plt_offset); + } +} + /* Return TRUE if symbol should be hashed in the `.gnu.hash' section. */ bfd_boolean @@ -1933,10 +2067,8 @@ && htab->interp == NULL) || info->dynamic_undefined_weak == 0)) || ((h->def_regular || ELF_COMMON_DEF_P (h)) - && h->versioned == unversioned && info->version_info != NULL - && bfd_hide_sym_by_version (info->version_info, - h->root.root.string))) + && _bfd_elf_link_hide_sym_by_version (info, h))) { eh->local_ref = 2; return TRUE; @@ -2238,10 +2370,10 @@ { _bfd_error_handler ((type == GNU_PROPERTY_X86_ISA_1_USED - ? _("error: %B: ") + ? _("error: %pB: ") : (type == GNU_PROPERTY_X86_ISA_1_NEEDED - ? _("error: %B: ") - : _("error: %B: "))), + ? _("error: %pB: ") + : _("error: %pB: "))), abfd, datasz); return property_corrupt; } @@ -2418,7 +2550,7 @@ if (!bfd_set_section_alignment (ebfd, sec, class_align)) { error_alignment: - info->callbacks->einfo (_("%F%A: failed to align section\n"), + info->callbacks->einfo (_("%F%pA: failed to align section\n"), sec); } @@ -2484,7 +2616,9 @@ abfd = abfd->link.next) if (bfd_get_flavour (abfd) == bfd_target_elf_flavour && (abfd->flags - & (DYNAMIC | BFD_LINKER_CREATED | BFD_PLUGIN)) == 0) + & (DYNAMIC | BFD_LINKER_CREATED | BFD_PLUGIN)) == 0 + && bed->relocs_compatible (abfd->xvec, + info->output_bfd->xvec)) { htab->elf.dynobj = abfd; dynobj = abfd; diff -Nru gdb-8.1/bfd/elfxx-x86.h gdb-8.2/bfd/elfxx-x86.h --- gdb-8.1/bfd/elfxx-x86.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/elfxx-x86.h 2018-09-05 07:44:28.000000000 +0000 @@ -76,14 +76,11 @@ 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). In case of a weak definition, DEF_REGULAR may be - cleared later by a strong definition in a shared library. We account - for that possibility below by storing information in the relocs_copied - field of the hash table entry. A similar situation occurs when - creating shared libraries and symbol visibility changes render the - symbol local. + is set). + + If PCREL_PLT is true, don't generate dynamic relocation in PIE for + PC-relative relocation against a dynamic function definition in data + section when PLT address can be used. If on the other hand, we are creating an executable, we may need to keep relocations for symbols satisfied by a dynamic library if we @@ -91,23 +88,30 @@ We also need to generate dynamic pointer relocation against STT_GNU_IFUNC symbol in the non-code section. */ -#define NEED_DYNAMIC_RELOCATION_P(INFO, H, SEC, R_TYPE, POINTER_TYPE) \ +#define NEED_DYNAMIC_RELOCATION_P(INFO, PCREL_PLT, H, SEC, R_TYPE, \ + POINTER_TYPE) \ ((bfd_link_pic (INFO) \ && (! X86_PCREL_TYPE_P (R_TYPE) \ || ((H) != NULL \ && (! (bfd_link_pie (INFO) \ || SYMBOLIC_BIND ((INFO), (H))) \ || (H)->root.type == bfd_link_hash_defweak \ - || !(H)->def_regular)))) \ - || ((H) != NULL \ - && (H)->type == STT_GNU_IFUNC \ - && (R_TYPE) == POINTER_TYPE \ - && ((SEC)->flags & SEC_CODE) == 0) \ - || (ELIMINATE_COPY_RELOCS \ - && !bfd_link_pic (INFO) \ - && (H) != NULL \ - && ((H)->root.type == bfd_link_hash_defweak \ - || !(H)->def_regular))) + || (!(bfd_link_pie (INFO) \ + && (PCREL_PLT) \ + && (H)->plt.refcount > 0 \ + && ((SEC)->flags & SEC_CODE) == 0 \ + && (H)->type == STT_FUNC \ + && (H)->def_dynamic) \ + && !(H)->def_regular))))) \ + || ((H) != NULL \ + && (H)->type == STT_GNU_IFUNC \ + && (R_TYPE) == POINTER_TYPE \ + && ((SEC)->flags & SEC_CODE) == 0) \ + || (ELIMINATE_COPY_RELOCS \ + && !bfd_link_pic (INFO) \ + && (H) != NULL \ + && ((H)->root.type == bfd_link_hash_defweak \ + || !(H)->def_regular))) /* TRUE if dynamic relocation should be generated. Don't copy a pc-relative relocation into the output file if the symbol needs @@ -281,16 +285,30 @@ struct elf_x86_lazy_plt_layout { - /* The first entry in an absolute lazy procedure linkage table looks - like this. */ + /* The first entry in a lazy procedure linkage table looks like this. */ const bfd_byte *plt0_entry; unsigned int plt0_entry_size; /* Size of PLT0 entry. */ - /* Later entries in an absolute lazy procedure linkage table look - like this. */ + /* Later entries in a lazy procedure linkage table look like this. */ const bfd_byte *plt_entry; unsigned int plt_entry_size; /* Size of each PLT entry. */ + /* The TLSDESC entry in a lazy procedure linkage table looks like + this. This is for x86-64 only. */ + const bfd_byte *plt_tlsdesc_entry; + unsigned int plt_tlsdesc_entry_size; /* Size of TLSDESC entry. */ + + /* Offsets into the TLSDESC entry that are to be replaced with + GOT+8 and GOT+TDG. These are for x86-64 only. */ + unsigned int plt_tlsdesc_got1_offset; + unsigned int plt_tlsdesc_got2_offset; + + /* Offset of the end of the PC-relative instructions containing + plt_tlsdesc_got1_offset and plt_tlsdesc_got2_offset. These + are for x86-64 only. */ + unsigned int plt_tlsdesc_got1_insn_end; + unsigned int plt_tlsdesc_got2_insn_end; + /* Offsets into plt0_entry that are to be replaced with GOT[1] and GOT[2]. */ unsigned int plt0_got1_offset; @@ -332,10 +350,11 @@ struct elf_x86_non_lazy_plt_layout { - /* Entries in an absolute non-lazy procedure linkage table look like - this. */ + /* Entries in a non-lazy procedure linkage table look like this. */ const bfd_byte *plt_entry; - /* Entries in a PIC non-lazy procedure linkage table look like this. */ + /* Entries in a PIC non-lazy procedure linkage table look like this. + This is only used for i386 where absolute PLT and PIC PLT are + different. */ const bfd_byte *pic_plt_entry; unsigned int plt_entry_size; /* Size of each PLT entry. */ @@ -354,9 +373,7 @@ struct elf_x86_plt_layout { - /* The first entry in a lazy procedure linkage table looks like this. - This is only used for i386 where absolute PLT0 and PIC PLT0 are - different. */ + /* The first entry in a lazy procedure linkage table looks like this. */ const bfd_byte *plt0_entry; /* Entries in a procedure linkage table look like this. */ const bfd_byte *plt_entry; @@ -401,6 +418,7 @@ enum elf_x86_target_os { is_normal, + is_solaris, is_vxworks, is_nacl }; @@ -478,6 +496,17 @@ is only used for i386. */ bfd_byte plt0_pad_byte; + /* TRUE if GOT is referenced. */ + unsigned int got_referenced : 1; + + /* TRUE if PLT is PC-relative. PLT in PDE and PC-relative PLT in PIE + can be used as function address. + + NB: i386 has non-PIC PLT and PIC PLT. Only non-PIC PLT in PDE can + be used as function address. PIC PLT in PIE can't be used as + function address. */ + unsigned int pcrel_plt : 1; + bfd_vma (*r_info) (bfd_vma, bfd_vma); bfd_vma (*r_sym) (bfd_vma); bfd_boolean (*is_reloc_section) (const char *); @@ -658,6 +687,10 @@ extern bfd * _bfd_x86_elf_link_setup_gnu_properties (struct bfd_link_info *, struct elf_x86_init_table *); +extern void _bfd_x86_elf_link_fixup_ifunc_symbol + (struct bfd_link_info *, struct elf_x86_link_hash_table *, + struct elf_link_hash_entry *, Elf_Internal_Sym *sym); + #define bfd_elf64_mkobject \ _bfd_x86_elf_mkobject #define bfd_elf32_mkobject \ @@ -688,7 +721,7 @@ #define elf_backend_gc_mark_hook \ _bfd_x86_elf_gc_mark_hook #define elf_backend_omit_section_dynsym \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true) + _bfd_elf_omit_section_dynsym_all #define elf_backend_parse_gnu_properties \ _bfd_x86_elf_parse_gnu_properties #define elf_backend_merge_gnu_properties \ diff -Nru gdb-8.1/bfd/epoc-pe-arm.c gdb-8.2/bfd/epoc-pe-arm.c --- gdb-8.1/bfd/epoc-pe-arm.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/epoc-pe-arm.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ -/* BFD back-end for ARM EPOC PE files. - Copyright (C) 1999-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define TARGET_UNDERSCORE 0 -#define USER_LABEL_PREFIX "" - -#define TARGET_LITTLE_SYM arm_pe_epoc_le_vec -#define TARGET_LITTLE_NAME "epoc-pe-arm-little" -#define TARGET_BIG_SYM arm_pe_epoc_be_vec -#define TARGET_BIG_NAME "epoc-pe-arm-big" - -#define bfd_arm_allocate_interworking_sections \ - bfd_arm_epoc_pe_allocate_interworking_sections -#define bfd_arm_get_bfd_for_interworking \ - bfd_arm_epoc_pe_get_bfd_for_interworking -#define bfd_arm_process_before_allocation \ - bfd_arm_epoc_pe_process_before_allocation - -#define EXTRA_S_FLAGS (SEC_LINK_ONCE | SEC_LINK_DUPLICATES | SEC_CODE | SEC_READONLY | SEC_DATA) - -#include "pe-arm.c" diff -Nru gdb-8.1/bfd/epoc-pei-arm.c gdb-8.2/bfd/epoc-pei-arm.c --- gdb-8.1/bfd/epoc-pei-arm.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/epoc-pei-arm.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -/* BFD back-end for ARM EPOC PE IMAGE COFF files. - Copyright (C) 1999-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define TARGET_UNDERSCORE 0 -#define USER_LABEL_PREFIX "" - -#define TARGET_LITTLE_SYM arm_pei_epoc_le_vec -#define TARGET_LITTLE_NAME "epoc-pei-arm-little" -#define TARGET_BIG_SYM arm_pei_epoc_be_vec -#define TARGET_BIG_NAME "epoc-pei-arm-big" - -#define EXTRA_S_FLAGS (SEC_CODE | SEC_READONLY | SEC_DATA) - -#include "pei-arm.c" diff -Nru gdb-8.1/bfd/format.c gdb-8.2/bfd/format.c --- gdb-8.1/bfd/format.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/format.c 2018-09-05 07:27:13.000000000 +0000 @@ -103,6 +103,7 @@ struct bfd_section *sections; struct bfd_section *section_last; unsigned int section_count; + unsigned int section_id; struct bfd_hash_table section_htab; const struct bfd_build_id *build_id; }; @@ -125,6 +126,7 @@ preserve->sections = abfd->sections; preserve->section_last = abfd->section_last; preserve->section_count = abfd->section_count; + preserve->section_id = _bfd_section_id; preserve->section_htab = abfd->section_htab; preserve->marker = bfd_alloc (abfd, 1); preserve->build_id = abfd->build_id; @@ -138,12 +140,13 @@ /* Clear out a subset of BFD state. */ static void -bfd_reinit (bfd *abfd) +bfd_reinit (bfd *abfd, unsigned int section_id) { abfd->tdata.any = NULL; abfd->arch_info = &bfd_default_arch_struct; abfd->flags &= BFD_FLAGS_SAVED; bfd_section_list_clear (abfd); + _bfd_section_id = section_id; } /* Restores bfd state saved by bfd_preserve_save. */ @@ -160,6 +163,7 @@ abfd->sections = preserve->sections; abfd->section_last = preserve->section_last; abfd->section_count = preserve->section_count; + _bfd_section_id = preserve->section_id; abfd->build_id = preserve->build_id; /* bfd_release frees all memory more recently bfd_alloc'd than @@ -214,6 +218,7 @@ const bfd_target *save_targ, *right_targ, *ar_right_targ, *match_targ; int match_count, best_count, best_match; int ar_match_index; + unsigned int initial_section_id = _bfd_section_id; struct bfd_preserve preserve; if (matching != NULL) @@ -287,14 +292,13 @@ /* Don't check the default target twice. */ if (*target == &binary_vec - || (!abfd->target_defaulted && *target == save_targ) - || (*target)->match_priority > best_match) + || (!abfd->target_defaulted && *target == save_targ)) continue; /* If we already tried a match, the bfd is modified and may have sections attached, which will confuse the next _bfd_check_format call. */ - bfd_reinit (abfd); + bfd_reinit (abfd, initial_section_id); /* Change BFD's target temporarily. */ abfd->xvec = *target; @@ -329,9 +333,6 @@ || (bfd_has_map (abfd) && bfd_get_error () != bfd_error_wrong_object_format)) { - /* This format checks out as ok! */ - right_targ = temp; - /* If this is the default target, accept it, even if other targets might match. People who want those other targets have to set the GNUTARGET variable. */ @@ -347,7 +348,12 @@ best_match = match_priority; best_count = 0; } - best_count++; + if (match_priority <= best_match) + { + /* This format checks out as ok! */ + right_targ = temp; + best_count++; + } } else { @@ -446,7 +452,7 @@ state (except possibly for XVEC). */ if (match_targ != right_targ) { - bfd_reinit (abfd); + bfd_reinit (abfd, initial_section_id); if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) goto err_ret; match_targ = BFD_SEND_FMT (abfd, _bfd_check_format, (abfd)); diff -Nru gdb-8.1/bfd/freebsd.h gdb-8.2/bfd/freebsd.h --- gdb-8.1/bfd/freebsd.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/freebsd.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,106 +0,0 @@ -/* BFD back-end definitions used by all FreeBSD targets. - Copyright (C) 1990-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - - -/* FreeBSD ZMAGIC files never have the header in the text. */ -#define N_HEADER_IN_TEXT(x) 0 - -/* ZMAGIC files start at offset 0. Does not apply to QMAGIC files. */ -#define TEXT_START_ADDR 0 - -#define N_GETMAGIC_NET(execp) \ - ((execp)->a_info & 0xffff) -#define N_GETMID_NET(execp) \ - (((execp)->a_info >> 16) & 0x3ff) -#define N_GETFLAG_NET(exexp) \ - (((execp)->a_info >> 26) & 0x3f) - -#define N_MACHTYPE(execp) \ - ((enum machine_type) \ - ((N_GETMAGIC_NET (execp) == ZMAGIC) ? N_GETMID_NET (execp) : \ - ((execp)->a_info >> 16) & 0x3ff)) -#define N_FLAGS(execp) \ - ((N_GETMAGIC_NET (execp) == ZMAGIC) ? N_GETFLAG_NET (execp) : \ - ((execp)->a_info >> 26) & 0x3f) - -#define N_SET_INFO(execp, magic, type, flags) \ - ((execp)->a_info = ((magic) & 0xffff) \ - | (((int)(type) & 0x3ff) << 16) \ - | (((flags) & 0x3f) << 26)) -#define N_SET_MACHTYPE(execp, machtype) \ - ((execp)->a_info = \ - ((execp)->a_info & 0xfb00ffff) | ((((int) (machtype)) & 0x3ff) << 16)) -#define N_SET_FLAGS(execp, flags) \ - ((execp)->a_info = \ - ((execp)->a_info & 0x03ffffff) | ((flags & 0x03f) << 26)) - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "libaout.h" - -/* On FreeBSD, the magic number is always in i386 (little-endian) - format. I think. */ -#define SWAP_MAGIC(ext) bfd_getl32 (ext) - -#define MY_write_object_contents MY (write_object_contents) -static bfd_boolean MY (write_object_contents) (bfd *); - -#include "aout-target.h" - -/* Write an object file. - Section contents have already been written. We write the - file header, symbols, and relocation. */ - -static bfd_boolean -MY (write_object_contents) (bfd *abfd) -{ - struct external_exec exec_bytes; - struct internal_exec *execp = exec_hdr (abfd); - - obj_reloc_entry_size (abfd) = RELOC_STD_SIZE; - - /* Magic number, maestro, please! */ - switch (bfd_get_arch(abfd)) - { - case bfd_arch_m68k: - if (strcmp (abfd->xvec->name, "a.out-m68k4k-netbsd") == 0) - N_SET_MACHTYPE (execp, M_68K4K_NETBSD); - else - N_SET_MACHTYPE (execp, M_68K_NETBSD); - break; - case bfd_arch_sparc: - N_SET_MACHTYPE (execp, M_SPARC_NETBSD); - break; - case bfd_arch_i386: - N_SET_MACHTYPE (execp, M_386_NETBSD); - break; - case bfd_arch_ns32k: - N_SET_MACHTYPE (execp, M_532_NETBSD); - break; - default: - N_SET_MACHTYPE (execp, M_UNKNOWN); - break; - } - - WRITE_HEADERS (abfd, execp); - - return TRUE; -} diff -Nru gdb-8.1/bfd/gen-aout.c gdb-8.2/bfd/gen-aout.c --- gdb-8.1/bfd/gen-aout.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/gen-aout.c 2018-09-05 07:27:13.000000000 +0000 @@ -93,9 +93,6 @@ #ifdef vax arch = "vax"; #endif -#ifdef m68k - arch = "m68k"; -#endif if (arch[0] == '1') { fprintf (stderr, _("warning: preprocessor substituted architecture name inside string;")); diff -Nru gdb-8.1/bfd/hash.c gdb-8.2/bfd/hash.c --- gdb-8.1/bfd/hash.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/hash.c 2018-09-05 07:27:13.000000000 +0000 @@ -435,6 +435,7 @@ unsigned int len; unsigned int c; + BFD_ASSERT (string != NULL); hash = 0; len = 0; s = (const unsigned char *) string; diff -Nru gdb-8.1/bfd/hosts/delta68.h gdb-8.2/bfd/hosts/delta68.h --- gdb-8.1/bfd/hosts/delta68.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/hosts/delta68.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ -/* Copyright (C) 2005-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* Definitions for a Motorola Delta 3300 box running System V R3.0. - Contributed by manfred@lts.sel.alcatel.de. */ - -#include - -/* Definitions used by trad-core.c. */ -#define NBPG NBPC -#define HOST_DATA_START_ADDR u.u_exdata.ux_datorg -#define HOST_TEXT_START_ADDR u.u_exdata.ux_txtorg -/* User's stack, copied from sys/param.h */ -#define HOST_STACK_END_ADDR USRSTACK -#define UPAGES USIZE -#define TRAD_UNIX_CORE_FILE_FAILING_SIGNAL(abfd) \ - abfd->tdata.trad_core_data->u.u_abort diff -Nru gdb-8.1/bfd/hosts/hp300bsd.h gdb-8.2/bfd/hosts/hp300bsd.h --- gdb-8.1/bfd/hosts/hp300bsd.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/hosts/hp300bsd.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ -/* Copyright (C) 2007-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include -#ifdef BSD4_4 -#define NO_CORE_COMMAND -#endif - -#define HOST_PAGE_SIZE NBPG -#define HOST_SEGMENT_SIZE NBPG /* Data seg start addr rounds to NBPG */ -#define HOST_MACHINE_ARCH bfd_arch_m68k -/* #define HOST_MACHINE_MACHINE */ - -#define HOST_TEXT_START_ADDR 0 -#define HOST_STACK_END_ADDR 0xfff00000 -#define HOST_BIG_ENDIAN_P diff -Nru gdb-8.1/bfd/hosts/i860mach3.h gdb-8.2/bfd/hosts/i860mach3.h --- gdb-8.1/bfd/hosts/i860mach3.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/hosts/i860mach3.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ -/* Copyright (C) 2007-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* This file was hacked from i386mach3.h [dolan@ssd.intel.com] */ - -#include -#include - -/* This is an ugly way to hack around the incorrect - * definition of UPAGES in i386/machparam.h. - * - * The definition should specify the size reserved - * for "struct user" in core files in PAGES, - * but instead it gives it in 512-byte core-clicks - * for i386 and i860. UPAGES is used only in trad-core.c. - */ -#if UPAGES == 16 -#undef UPAGES -#define UPAGES 2 -#endif - -#if UPAGES != 2 -FIXME!! UPAGES is neither 2 nor 16 -#endif - -#define HOST_PAGE_SIZE 1 -#define HOST_SEGMENT_SIZE NBPG -#define HOST_MACHINE_ARCH bfd_arch_i860 -#define HOST_TEXT_START_ADDR USRTEXT -#define HOST_STACK_END_ADDR USRSTACK diff -Nru gdb-8.1/bfd/hosts/m68kaux.h gdb-8.2/bfd/hosts/m68kaux.h --- gdb-8.1/bfd/hosts/m68kaux.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/hosts/m68kaux.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ -/* Copyright (C) 2007-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* Definitions for an Apple Macintosh running A/UX 3.x. */ - -#include -#include - -/* Definitions used by trad-core.c. */ -#define NBPG NBPP - -#define HOST_DATA_START_ADDR u.u_exdata.ux_datorg -#define HOST_TEXT_START_ADDR u.u_exdata.ux_txtorg -#define HOST_STACK_END_ADDR 0x100000000 - -#define UPAGES USIZE - -#define TRAD_UNIX_CORE_FILE_FAILING_SIGNAL(abfd) \ - (abfd->tdata.trad_core_data->u.u_arg[0]) diff -Nru gdb-8.1/bfd/hosts/m88kmach3.h gdb-8.2/bfd/hosts/m88kmach3.h --- gdb-8.1/bfd/hosts/m88kmach3.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/hosts/m88kmach3.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ -/* Copyright (C) 2007-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include -#include - -#undef UPAGES -#define UPAGES 3 - -#define HOST_PAGE_SIZE NBPG -#define HOST_SEGMENT_SIZE NBPG -#define HOST_MACHINE_ARCH bfd_arch_m88k -#define HOST_TEXT_START_ADDR USRTEXT -#define HOST_STACK_END_ADDR USRSTACK diff -Nru gdb-8.1/bfd/hosts/news.h gdb-8.2/bfd/hosts/news.h --- gdb-8.1/bfd/hosts/news.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/hosts/news.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,28 +0,0 @@ -/* Copyright (C) 2007-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* Sony News running NewsOS 3.2. */ - -#include - -#define HOST_PAGE_SIZE NBPG -#define HOST_SEGMENT_SIZE NBPG -#define HOST_MACHINE_ARCH bfd_arch_m68k -#define HOST_TEXT_START_ADDR 0 -#define HOST_STACK_END_ADDR (KERNBASE - (UPAGES * NBPG)) diff -Nru gdb-8.1/bfd/hosts/tahoe.h gdb-8.2/bfd/hosts/tahoe.h --- gdb-8.1/bfd/hosts/tahoe.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/hosts/tahoe.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -/* Copyright (C) 2007-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define NO_CORE_COMMAND - -#undef ALIGN /* They use it, we use it too */ -#include -#undef ALIGN /* They use it, we use it too */ - -#define HOST_PAGE_SIZE NBPG -#define HOST_MACHINE_ARCH bfd_arch_tahoe - -#define HOST_TEXT_START_ADDR 0 -#define HOST_STACK_END_ADDR (KERNBASE - (UPAGES * NBPG)) -#define HOST_BIG_ENDIAN_P diff -Nru gdb-8.1/bfd/hp300bsd.c gdb-8.2/bfd/hp300bsd.c --- gdb-8.1/bfd/hp300bsd.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/hp300bsd.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,40 +0,0 @@ -/* BFD back-end for HP 9000/300 (68000-based) machines running BSD Unix. - Copyright (C) 1992-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define TARGET_IS_BIG_ENDIAN_P -#define N_HEADER_IN_TEXT(x) 0 -#define ENTRY_CAN_BE_ZERO -#define TEXT_START_ADDR 0 -#define TARGET_PAGE_SIZE 4096 -#define SEGMENT_SIZE TARGET_PAGE_SIZE -#define DEFAULT_ARCH bfd_arch_m68k - -/* Do not "beautify" the CONCAT* macro args. Traditional C will not - remove whitespace added here, and thus will fail to concatenate - the tokens. */ -#define MY(OP) CONCAT2 (m68k_aout_hp300bsd_,OP) -#define TARGETNAME "a.out-hp300bsd" - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "libaout.h" - -#include "aout-target.h" diff -Nru gdb-8.1/bfd/hp300hpux.c gdb-8.2/bfd/hp300hpux.c --- gdb-8.1/bfd/hp300hpux.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/hp300hpux.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,855 +0,0 @@ -/* BFD backend for hp-ux 9000/300 - Copyright (C) 1990-2018 Free Software Foundation, Inc. - Written by Glenn Engel. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - - -/* hpux native ------------> | | - | hp300hpux bfd | ----------> hpux w/gnu ext - hpux w/gnu extension ----> | | - - Support for the 9000/[34]00 has several limitations. - 1. Shared libraries are not supported. - 2. The output format from this bfd is not usable by native tools. - - The primary motivation for writing this bfd was to allow use of - gdb and gcc for host based debugging and not to mimic the hp-ux tools - in every detail. This leads to a significant simplification of the - code and a leap in performance. The decision to not output hp native - compatible objects was further strengthened by the fact that the richness - of the gcc compiled objects could not be represented without loss of - information. For example, while the hp format supports the concept of - secondary symbols, it does not support indirect symbols. Another - reason is to maintain backwards compatibility with older implementations - of gcc on hpux which used 'hpxt' to translate .a and .o files into a - format which could be readily understood by the gnu linker and gdb. - This allows reading hp secondary symbols and converting them into - indirect symbols but the reverse it not always possible. - - Another example of differences is that the hp format stores symbol offsets - in the object code while the gnu utilities use a field in the - relocation record for this. To support the hp native format, the object - code would need to be patched with the offsets when producing .o files. - - The basic technique taken in this implementation is to #include the code - from aoutx.h and aout-target.h with appropriate #defines to override - code where a unique implementation is needed: - - { - #define a bunch of stuff - #include - - implement a bunch of functions - - #include "aout-target.h" - } - - The hp symbol table is a bit different than other a.out targets. Instead - of having an array of nlist items and an array of strings, hp's format - has them mixed together in one structure. In addition, the strings are - not null terminated. It looks something like this: - - nlist element 1 - string1 - nlist element 2 - string2 - ... - - The whole symbol table is read as one chunk and then we march thru it - and convert it to canonical form. As we march thru the table, we copy - the nlist data into the internal form and we compact the strings and null - terminate them, using storage from the already allocated symbol table: - - string1 - null - string2 - null - */ - -/* @@ Is this really so different from normal a.out that it needs to include - aoutx.h? We should go through this file sometime and see what can be made - more dependent on aout32.o and what might need to be broken off and accessed - through the backend_data field. Or, maybe we really do need such a - completely separate implementation. I don't have time to investigate this - much further right now. [raeburn:19930428.2124EST] */ -/* @@ Also, note that there wind up being two versions of some routines, with - different names, only one of which actually gets used. For example: - slurp_symbol_table - swap_std_reloc_in - slurp_reloc_table - canonicalize_symtab - get_symtab_upper_bound - canonicalize_reloc - mkobject - This should also be fixed. */ - -#define TARGETNAME "a.out-hp300hpux" - -/* Do not "beautify" the CONCAT* macro args. Traditional C will not - remove whitespace added here, and thus will fail to concatenate - the tokens. */ -#define MY(OP) CONCAT2 (m68k_aout_hp300hpux_,OP) - -#define external_exec hp300hpux_exec_bytes -#define external_nlist hp300hpux_nlist_bytes - -#include "aout/hp300hpux.h" - -/* define these so we can compile unused routines in aoutx.h */ -#define e_strx e_shlib -#define e_other e_length -#define e_desc e_almod - -#define AR_PAD_CHAR '/' -#define TARGET_IS_BIG_ENDIAN_P -#define DEFAULT_ARCH bfd_arch_m68k - -#define MY_get_section_contents aout_32_get_section_contents -#define MY_slurp_armap bfd_slurp_bsd_armap_f2 - -/***********************************************/ -/* provide overrides for routines in this file */ -/***********************************************/ -/* these don't use MY because that causes problems within JUMP_TABLE - (CONCAT2 winds up being expanded recursively, which ANSI C compilers - will not do). */ -#define MY_canonicalize_symtab m68k_aout_hp300hpux_canonicalize_symtab -#define MY_get_symtab_upper_bound m68k_aout_hp300hpux_get_symtab_upper_bound -#define MY_canonicalize_reloc m68k_aout_hp300hpux_canonicalize_reloc -#define MY_write_object_contents m68k_aout_hp300hpux_write_object_contents - -#define MY_read_minisymbols _bfd_generic_read_minisymbols -#define MY_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol - -#define MY_bfd_link_hash_table_create _bfd_generic_link_hash_table_create -#define MY_bfd_link_add_symbols _bfd_generic_link_add_symbols -#define MY_final_link_callback unused -#define MY_bfd_final_link _bfd_generic_final_link - -/* Until and unless we convert the slurp_reloc and slurp_symtab - routines in this file, we can not use the default aout - free_cached_info routine which assumes that the relocs and symtabs - were allocated using malloc. */ -#define MY_bfd_free_cached_info bfd_true - -#define m68k_aout_hp300hpux_write_syms aout_32_write_syms - -#define MY_callback MY(callback) - -#define MY_exec_hdr_flags 0x2 - -#define NAME_swap_exec_header_in NAME(hp300hpux_32_,swap_exec_header_in) - -#define HP_SYMTYPE_UNDEFINED 0x00 -#define HP_SYMTYPE_ABSOLUTE 0x01 -#define HP_SYMTYPE_TEXT 0x02 -#define HP_SYMTYPE_DATA 0x03 -#define HP_SYMTYPE_BSS 0x04 -#define HP_SYMTYPE_COMMON 0x05 - -#define HP_SYMTYPE_TYPE 0x0F -#define HP_SYMTYPE_FILENAME 0x1F - -#define HP_SYMTYPE_ALIGN 0x10 -#define HP_SYMTYPE_EXTERNAL 0x20 -#define HP_SECONDARY_SYMBOL 0x40 - -/* RELOCATION DEFINITIONS */ -#define HP_RSEGMENT_TEXT 0x00 -#define HP_RSEGMENT_DATA 0x01 -#define HP_RSEGMENT_BSS 0x02 -#define HP_RSEGMENT_EXTERNAL 0x03 -#define HP_RSEGMENT_PCREL 0x04 -#define HP_RSEGMENT_RDLT 0x05 -#define HP_RSEGMENT_RPLT 0x06 -#define HP_RSEGMENT_NOOP 0x3F - -#define HP_RLENGTH_BYTE 0x00 -#define HP_RLENGTH_WORD 0x01 -#define HP_RLENGTH_LONG 0x02 -#define HP_RLENGTH_ALIGN 0x03 - -#define NAME(x,y) CONCAT3 (hp300hpux,_32_,y) -#define ARCH_SIZE 32 - -/* aoutx.h requires definitions for BMAGIC and QMAGIC. */ -#define BMAGIC HPUX_DOT_O_MAGIC -#define QMAGIC 0314 - -#include "aoutx.h" - -static const bfd_target * MY (callback) (bfd *); -static bfd_boolean MY (write_object_contents) (bfd *); -static void convert_sym_type - (struct external_nlist *, aout_symbol_type *, bfd *); - -bfd_boolean MY (slurp_symbol_table) (bfd *); -void MY (swap_std_reloc_in) - (bfd *, struct hp300hpux_reloc *, arelent *, asymbol **, bfd_size_type); -bfd_boolean MY (slurp_reloc_table) - (bfd *, sec_ptr, asymbol **); -long MY (canonicalize_symtab) (bfd *, asymbol **); -long MY (get_symtab_upper_bound) (bfd *); -long MY (canonicalize_reloc) (bfd *, sec_ptr, arelent **, asymbol **); - -/* Since the hpux symbol table has nlist elements interspersed with - strings and we need to insert som strings for secondary symbols, we - give ourselves a little extra padding up front to account for - this. Note that for each non-secondary symbol we process, we gain - 9 bytes of space for the discarded nlist element (one byte used for - null). SYM_EXTRA_BYTES is the extra space. */ -#define SYM_EXTRA_BYTES 1024 - -/* Set parameters about this a.out file that are machine-dependent. - This routine is called from some_aout_object_p just before it returns. */ -static const bfd_target * -MY (callback) (bfd *abfd) -{ - struct internal_exec *execp = exec_hdr (abfd); - - /* Calculate the file positions of the parts of a newly read aout header */ - obj_textsec (abfd)->size = N_TXTSIZE (execp); - - /* The virtual memory addresses of the sections */ - obj_textsec (abfd)->vma = N_TXTADDR (execp); - obj_datasec (abfd)->vma = N_DATADDR (execp); - obj_bsssec (abfd)->vma = N_BSSADDR (execp); - - obj_textsec (abfd)->lma = obj_textsec (abfd)->vma; - obj_datasec (abfd)->lma = obj_datasec (abfd)->vma; - obj_bsssec (abfd)->lma = obj_bsssec (abfd)->vma; - - /* The file offsets of the sections */ - obj_textsec (abfd)->filepos = N_TXTOFF (execp); - obj_datasec (abfd)->filepos = N_DATOFF (execp); - - /* The file offsets of the relocation info */ - obj_textsec (abfd)->rel_filepos = N_TRELOFF (execp); - obj_datasec (abfd)->rel_filepos = N_DRELOFF (execp); - - /* The file offsets of the string table and symbol table. */ - obj_sym_filepos (abfd) = N_SYMOFF (execp); - obj_str_filepos (abfd) = N_STROFF (execp); - - /* Determine the architecture and machine type of the object file. */ -#ifdef SET_ARCH_MACH - SET_ARCH_MACH (abfd, execp); -#else - bfd_default_set_arch_mach (abfd, DEFAULT_ARCH, 0); -#endif - - if (obj_aout_subformat (abfd) == gnu_encap_format) - { - /* The file offsets of the relocation info */ - obj_textsec (abfd)->rel_filepos = N_GNU_TRELOFF (execp); - obj_datasec (abfd)->rel_filepos = N_GNU_DRELOFF (execp); - - /* The file offsets of the string table and symbol table. */ - obj_sym_filepos (abfd) = N_GNU_SYMOFF (execp); - obj_str_filepos (abfd) = (obj_sym_filepos (abfd) + execp->a_syms); - - abfd->flags |= HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS; - bfd_get_symcount (abfd) = execp->a_syms / 12; - obj_symbol_entry_size (abfd) = 12; - obj_reloc_entry_size (abfd) = RELOC_STD_SIZE; - } - - return abfd->xvec; -} - -extern bfd_boolean aout_32_write_syms (bfd *); - -static bfd_boolean -MY (write_object_contents) (bfd * abfd) -{ - struct external_exec exec_bytes; - struct internal_exec *execp = exec_hdr (abfd); - - memset (&exec_bytes, 0, sizeof (exec_bytes)); - - obj_reloc_entry_size (abfd) = RELOC_STD_SIZE; - - if (adata (abfd).magic == undecided_magic) - NAME (aout,adjust_sizes_and_vmas) (abfd); - execp->a_syms = 0; - - execp->a_entry = bfd_get_start_address (abfd); - - execp->a_trsize = ((obj_textsec (abfd)->reloc_count) * - obj_reloc_entry_size (abfd)); - execp->a_drsize = ((obj_datasec (abfd)->reloc_count) * - obj_reloc_entry_size (abfd)); - - N_SET_MACHTYPE (execp, 0xc); - N_SET_FLAGS (execp, aout_backend_info (abfd)->exec_hdr_flags); - - NAME (aout,swap_exec_header_out) (abfd, execp, &exec_bytes); - - /* update fields not covered by default swap_exec_header_out */ - - /* this is really the sym table size but we store it in drelocs */ - H_PUT_32 (abfd, (bfd_get_symcount (abfd) * 12), exec_bytes.e_drelocs); - - if (bfd_seek (abfd, (file_ptr) 0, FALSE) != 0 - || (bfd_bwrite (&exec_bytes, (bfd_size_type) EXEC_BYTES_SIZE, abfd) - != EXEC_BYTES_SIZE)) - return FALSE; - - /* Write out the symbols, and then the relocs. We must write out - the symbols first so that we know the symbol indices. */ - - if (bfd_get_symcount (abfd) != 0) - { - /* Skip the relocs to where we want to put the symbols. */ - if (bfd_seek (abfd, (file_ptr) (N_DRELOFF (execp) + execp->a_drsize), - SEEK_SET) != 0) - return FALSE; - } - - if (!MY (write_syms) (abfd)) - return FALSE; - - if (bfd_get_symcount (abfd) != 0) - { - if (bfd_seek (abfd, (file_ptr) N_TRELOFF (execp), SEEK_CUR) != 0) - return FALSE; - if (!NAME (aout,squirt_out_relocs) (abfd, obj_textsec (abfd))) - return FALSE; - if (bfd_seek (abfd, (file_ptr) N_DRELOFF (execp), SEEK_CUR) != 0) - return FALSE; - if (!NAME (aout,squirt_out_relocs) (abfd, obj_datasec (abfd))) - return FALSE; - } - - return TRUE; -} - -/* Convert the hp symbol type to be the same as aout64.h usage so we - can piggyback routines in aoutx.h. */ - -static void -convert_sym_type (struct external_nlist *sym_pointer ATTRIBUTE_UNUSED, - aout_symbol_type *cache_ptr, - bfd *abfd ATTRIBUTE_UNUSED) -{ - int name_type; - int new_type; - - name_type = (cache_ptr->type); - new_type = 0; - - if ((name_type & HP_SYMTYPE_ALIGN) != 0) - { - /* iou_error ("aligned symbol encountered: %s", name);*/ - name_type = 0; - } - - if (name_type == HP_SYMTYPE_FILENAME) - new_type = N_FN; - else - { - switch (name_type & HP_SYMTYPE_TYPE) - { - case HP_SYMTYPE_UNDEFINED: - new_type = N_UNDF; - break; - - case HP_SYMTYPE_ABSOLUTE: - new_type = N_ABS; - break; - - case HP_SYMTYPE_TEXT: - new_type = N_TEXT; - break; - - case HP_SYMTYPE_DATA: - new_type = N_DATA; - break; - - case HP_SYMTYPE_BSS: - new_type = N_BSS; - break; - - case HP_SYMTYPE_COMMON: - new_type = N_COMM; - break; - - default: - abort (); - break; - } - if (name_type & HP_SYMTYPE_EXTERNAL) - new_type |= N_EXT; - - if (name_type & HP_SECONDARY_SYMBOL) - { - switch (new_type) - { - default: - abort (); - case N_UNDF | N_EXT: - /* If the value is nonzero, then just treat this as a - common symbol. I don't know if this is correct in - all cases, but it is more correct than treating it as - a weak undefined symbol. */ - if (cache_ptr->symbol.value == 0) - new_type = N_WEAKU; - break; - case N_ABS | N_EXT: - new_type = N_WEAKA; - break; - case N_TEXT | N_EXT: - new_type = N_WEAKT; - break; - case N_DATA | N_EXT: - new_type = N_WEAKD; - break; - case N_BSS | N_EXT: - new_type = N_WEAKB; - break; - } - } - } - cache_ptr->type = new_type; - -} - -/* -DESCRIPTION - Swaps the information in an executable header taken from a raw - byte stream memory image, into the internal exec_header - structure. -*/ - -void -NAME (aout,swap_exec_header_in) (bfd *abfd, - struct external_exec *raw_bytes, - struct internal_exec *execp) -{ - struct external_exec *bytes = (struct external_exec *) raw_bytes; - - /* The internal_exec structure has some fields that are unused in this - configuration (IE for i960), so ensure that all such uninitialized - fields are zero'd out. There are places where two of these structs - are memcmp'd, and thus the contents do matter. */ - memset (execp, 0, sizeof (struct internal_exec)); - /* Now fill in fields in the execp, from the bytes in the raw data. */ - execp->a_info = H_GET_32 (abfd, bytes->e_info); - execp->a_text = GET_WORD (abfd, bytes->e_text); - execp->a_data = GET_WORD (abfd, bytes->e_data); - execp->a_bss = GET_WORD (abfd, bytes->e_bss); - execp->a_syms = GET_WORD (abfd, bytes->e_syms); - execp->a_entry = GET_WORD (abfd, bytes->e_entry); - execp->a_trsize = GET_WORD (abfd, bytes->e_trsize); - execp->a_drsize = GET_WORD (abfd, bytes->e_drsize); - - /***************************************************************/ - /* check the header to see if it was generated by a bfd output */ - /* this is detected rather bizarrely by requiring a bunch of */ - /* header fields to be zero and an old unused field (now used) */ - /* to be set. */ - /***************************************************************/ - do - { - long syms; - struct aout_data_struct *rawptr; - bfd_size_type amt; - - if (H_GET_32 (abfd, bytes->e_passize) != 0) - break; - if (H_GET_32 (abfd, bytes->e_syms) != 0) - break; - if (H_GET_32 (abfd, bytes->e_supsize) != 0) - break; - - syms = H_GET_32 (abfd, bytes->e_drelocs); - if (syms == 0) - break; - - /* OK, we've passed the test as best as we can determine */ - execp->a_syms = syms; - - /* allocate storage for where we will store this result */ - amt = sizeof (*rawptr); - rawptr = (struct aout_data_struct *) bfd_zalloc (abfd, amt); - - if (rawptr == NULL) - return; - abfd->tdata.aout_data = rawptr; - obj_aout_subformat (abfd) = gnu_encap_format; - } - while (0); -} - -/* The hp symbol table is a bit different than other a.out targets. Instead - of having an array of nlist items and an array of strings, hp's format - has them mixed together in one structure. In addition, the strings are - not null terminated. It looks something like this: - - nlist element 1 - string1 - nlist element 2 - string2 - ... - - The whole symbol table is read as one chunk and then we march thru it - and convert it to canonical form. As we march thru the table, we copy - the nlist data into the internal form and we compact the strings and null - terminate them, using storage from the already allocated symbol table: - - string1 - null - string2 - null - ... -*/ - -bfd_boolean -MY (slurp_symbol_table) (bfd *abfd) -{ - bfd_size_type symbol_bytes; - struct external_nlist *syms; - struct external_nlist *sym_pointer; - struct external_nlist *sym_end; - char *strings; - aout_symbol_type *cached; - unsigned num_syms = 0; - bfd_size_type amt; - - /* If there's no work to be done, don't do any */ - if (obj_aout_symbols (abfd) != (aout_symbol_type *) NULL) - return TRUE; - symbol_bytes = exec_hdr (abfd)->a_syms; - - amt = symbol_bytes + SYM_EXTRA_BYTES; - strings = (char *) bfd_alloc (abfd, amt); - if (!strings) - return FALSE; - syms = (struct external_nlist *) (strings + SYM_EXTRA_BYTES); - if (bfd_seek (abfd, obj_sym_filepos (abfd), SEEK_SET) != 0 - || bfd_bread (syms, symbol_bytes, abfd) != symbol_bytes) - { - bfd_release (abfd, syms); - return FALSE; - } - - sym_end = (struct external_nlist *) (((char *) syms) + symbol_bytes); - - /* first, march thru the table and figure out how many symbols there are */ - for (sym_pointer = syms; sym_pointer < sym_end; sym_pointer++, num_syms++) - { - /* skip over the embedded symbol. */ - sym_pointer = (struct external_nlist *) (((char *) sym_pointer) + - sym_pointer->e_length[0]); - } - - /* now that we know the symbol count, update the bfd header */ - bfd_get_symcount (abfd) = num_syms; - - amt = num_syms; - amt *= sizeof (aout_symbol_type); - cached = (aout_symbol_type *) bfd_zalloc (abfd, amt); - if (cached == NULL && num_syms != 0) - return FALSE; - - /* as we march thru the hp symbol table, convert it into a list of - null terminated strings to hold the symbol names. Make sure any - assignment to the strings pointer is done after we're thru using - the nlist so we don't overwrite anything important. */ - - /* OK, now walk the new symtable, caching symbol properties */ - { - aout_symbol_type *cache_ptr = cached; - /* Run through table and copy values */ - for (sym_pointer = syms, cache_ptr = cached; - sym_pointer < sym_end; sym_pointer++, cache_ptr++) - { - unsigned int length; - cache_ptr->symbol.the_bfd = abfd; - cache_ptr->symbol.value = GET_SWORD (abfd, sym_pointer->e_value); - cache_ptr->desc = bfd_get_16 (abfd, sym_pointer->e_almod); - cache_ptr->type = bfd_get_8 (abfd, sym_pointer->e_type); - cache_ptr->symbol.udata.p = NULL; - length = bfd_get_8 (abfd, sym_pointer->e_length); - cache_ptr->other = length; /* other not used, save length here */ - - convert_sym_type (sym_pointer, cache_ptr, abfd); - if (!translate_from_native_sym_flags (abfd, cache_ptr)) - return FALSE; - - /********************************************************/ - /* for hpux, the 'length' value indicates the length of */ - /* the symbol name which follows the nlist entry. */ - /********************************************************/ - if (length) - { - /**************************************************************/ - /* the hp string is not null terminated so we create a new one*/ - /* by copying the string to overlap the just vacated nlist */ - /* structure before it in memory. */ - /**************************************************************/ - cache_ptr->symbol.name = strings; - memcpy (strings, sym_pointer + 1, length); - strings[length] = '\0'; - strings += length + 1; - } - else - cache_ptr->symbol.name = (char *) NULL; - - /* skip over the embedded symbol. */ - sym_pointer = (struct external_nlist *) (((char *) sym_pointer) + - length); - } - } - - obj_aout_symbols (abfd) = cached; - - return TRUE; -} - -void -MY (swap_std_reloc_in) (bfd *abfd, - struct hp300hpux_reloc *bytes, - arelent *cache_ptr, - asymbol **symbols, - bfd_size_type symcount ATTRIBUTE_UNUSED) -{ - int r_index; - int r_extern = 0; - unsigned int r_length; - int r_pcrel = 0; - struct aoutdata *su = &(abfd->tdata.aout_data->a); - - cache_ptr->address = H_GET_32 (abfd, bytes->r_address); - r_index = H_GET_16 (abfd, bytes->r_index); - - switch (bytes->r_type[0]) - { - case HP_RSEGMENT_TEXT: - r_index = N_TEXT; - break; - case HP_RSEGMENT_DATA: - r_index = N_DATA; - break; - case HP_RSEGMENT_BSS: - r_index = N_BSS; - break; - case HP_RSEGMENT_EXTERNAL: - r_extern = 1; - break; - case HP_RSEGMENT_PCREL: - r_extern = 1; - r_pcrel = 1; - break; - case HP_RSEGMENT_RDLT: - break; - case HP_RSEGMENT_RPLT: - break; - case HP_RSEGMENT_NOOP: - break; - default: - abort (); - break; - } - - switch (bytes->r_length[0]) - { - case HP_RLENGTH_BYTE: - r_length = 0; - break; - case HP_RLENGTH_WORD: - r_length = 1; - break; - case HP_RLENGTH_LONG: - r_length = 2; - break; - default: - abort (); - break; - } - - cache_ptr->howto = howto_table_std + r_length + 4 * r_pcrel; - /* FIXME-soon: Roll baserel, jmptable, relative bits into howto setting */ - - /* This macro uses the r_index value computed above */ - if (r_pcrel && r_extern) - { - /* The GNU linker assumes any offset from beginning of section */ - /* is already incorporated into the image while the HP linker */ - /* adds this in later. Add it in now... */ - MOVE_ADDRESS (-cache_ptr->address); - } - else - { - MOVE_ADDRESS (0); - } -} - -bfd_boolean -MY (slurp_reloc_table) (bfd *abfd, sec_ptr asect, asymbol **symbols) -{ - bfd_size_type count; - bfd_size_type reloc_size; - void * relocs; - arelent *reloc_cache; - size_t each_size; - struct hp300hpux_reloc *rptr; - unsigned int counter; - arelent *cache_ptr; - - if (asect->relocation) - return TRUE; - - if (asect->flags & SEC_CONSTRUCTOR) - return TRUE; - - if (asect == obj_datasec (abfd)) - { - reloc_size = exec_hdr (abfd)->a_drsize; - goto doit; - } - - if (asect == obj_textsec (abfd)) - { - reloc_size = exec_hdr (abfd)->a_trsize; - goto doit; - } - - bfd_set_error (bfd_error_invalid_operation); - return FALSE; - -doit: - if (bfd_seek (abfd, asect->rel_filepos, SEEK_SET) != 0) - return FALSE; - each_size = obj_reloc_entry_size (abfd); - - count = reloc_size / each_size; - - reloc_cache = (arelent *) bfd_zalloc (abfd, count * sizeof (arelent)); - if (!reloc_cache && count != 0) - return FALSE; - - relocs = bfd_alloc (abfd, reloc_size); - if (!relocs && reloc_size != 0) - { - bfd_release (abfd, reloc_cache); - return FALSE; - } - - if (bfd_bread (relocs, reloc_size, abfd) != reloc_size) - { - bfd_release (abfd, relocs); - bfd_release (abfd, reloc_cache); - return FALSE; - } - - rptr = (struct hp300hpux_reloc *) relocs; - counter = 0; - cache_ptr = reloc_cache; - - for (; counter < count; counter++, rptr++, cache_ptr++) - { - MY (swap_std_reloc_in) (abfd, rptr, cache_ptr, symbols, - (bfd_size_type) bfd_get_symcount (abfd)); - } - - bfd_release (abfd, relocs); - asect->relocation = reloc_cache; - asect->reloc_count = count; - return TRUE; -} - -/************************************************************************/ -/* The following functions are identical to functions in aoutx.h except */ -/* they refer to MY(func) rather than NAME(aout,func) and they also */ -/* call aout_32 versions if the input file was generated by gcc */ -/************************************************************************/ - -long aout_32_canonicalize_symtab (bfd *, asymbol **); -long aout_32_get_symtab_upper_bound (bfd *); -long aout_32_canonicalize_reloc (bfd *, sec_ptr, arelent **, asymbol **); - -long -MY (canonicalize_symtab) (bfd *abfd, asymbol **location) -{ - unsigned int counter = 0; - aout_symbol_type *symbase; - - if (obj_aout_subformat (abfd) == gnu_encap_format) - return aout_32_canonicalize_symtab (abfd, location); - - if (!MY (slurp_symbol_table) (abfd)) - return -1; - - for (symbase = obj_aout_symbols (abfd); counter++ < bfd_get_symcount (abfd);) - *(location++) = (asymbol *) (symbase++); - *location++ = 0; - return bfd_get_symcount (abfd); -} - -long -MY (get_symtab_upper_bound) (bfd *abfd) -{ - if (obj_aout_subformat (abfd) == gnu_encap_format) - return aout_32_get_symtab_upper_bound (abfd); - if (!MY (slurp_symbol_table) (abfd)) - return -1; - - return (bfd_get_symcount (abfd) + 1) * (sizeof (aout_symbol_type *)); -} - -long -MY (canonicalize_reloc) (bfd *abfd, - sec_ptr section, - arelent **relptr, - asymbol **symbols) -{ - arelent *tblptr = section->relocation; - unsigned int count; - - if (obj_aout_subformat (abfd) == gnu_encap_format) - return aout_32_canonicalize_reloc (abfd, section, relptr, symbols); - - if (!(tblptr || MY (slurp_reloc_table) (abfd, section, symbols))) - return -1; - - if (section->flags & SEC_CONSTRUCTOR) - { - arelent_chain *chain = section->constructor_chain; - for (count = 0; count < section->reloc_count; count++) - { - *relptr++ = &chain->relent; - chain = chain->next; - } - } - else - { - tblptr = section->relocation; - - for (count = 0; count++ < section->reloc_count;) - { - *relptr++ = tblptr++; - } - } - *relptr = 0; - - return section->reloc_count; -} - -#include "aout-target.h" diff -Nru gdb-8.1/bfd/hppabsd-core.c gdb-8.2/bfd/hppabsd-core.c --- gdb-8.1/bfd/hppabsd-core.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/hppabsd-core.c 2018-09-05 07:27:13.000000000 +0000 @@ -244,12 +244,16 @@ hppabsd_core_core_file_p /* a core file */ }, { /* bfd_set_format */ - bfd_false, bfd_false, - bfd_false, bfd_false + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error }, { /* bfd_write_contents */ - bfd_false, bfd_false, - bfd_false, bfd_false + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error }, BFD_JUMP_TABLE_GENERIC (_bfd_generic), diff -Nru gdb-8.1/bfd/hpux-core.c gdb-8.2/bfd/hpux-core.c --- gdb-8.1/bfd/hpux-core.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/hpux-core.c 2018-09-05 07:27:13.000000000 +0000 @@ -28,7 +28,7 @@ #include "bfd.h" #include "libbfd.h" -#if defined (HOST_HPPAHPUX) || defined (HOST_HP300HPUX) || defined (HOST_HPPAMPEIX) +#if defined (HOST_HPPAHPUX) || defined (HOST_HPPAMPEIX) /* FIXME: sys/core.h doesn't exist for HPUX version 7. HPUX version 5, 6, and 7 core files seem to be standard trad-core.c type core @@ -337,7 +337,7 @@ */ if ((unknown_sections > 0) && (good_sections > 0)) _bfd_error_handler - ("%B appears to be a core file,\nbut contains unknown sections." + ("%pB appears to be a core file,\nbut contains unknown sections." " It may have been created on an incompatible\nversion of HP-UX." " As a result, some information may be unavailable.\n", abfd); @@ -406,12 +406,16 @@ hpux_core_core_file_p /* a core file */ }, { /* bfd_set_format */ - bfd_false, bfd_false, - bfd_false, bfd_false + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error }, { /* bfd_write_contents */ - bfd_false, bfd_false, - bfd_false, bfd_false + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error }, BFD_JUMP_TABLE_GENERIC (_bfd_generic), diff -Nru gdb-8.1/bfd/i386dynix.c gdb-8.2/bfd/i386dynix.c --- gdb-8.1/bfd/i386dynix.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/i386dynix.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,82 +0,0 @@ -/* BFD back-end for i386 a.out binaries under dynix. - Copyright (C) 1994-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - - -/* This BFD is currently only tested with gdb, writing object files - may not work. */ - -#define TEXT_START_ADDR 4096 -#define TARGET_PAGE_SIZE 4096 -#define SEGMENT_SIZE TARGET_PAGE_SIZE - -#include "aout/dynix3.h" - -#define DEFAULT_ARCH bfd_arch_i386 -#define MACHTYPE_OK(mtype) ((mtype) == M_386 || (mtype) == M_UNKNOWN) - -/* Do not "beautify" the CONCAT* macro args. Traditional C will not - remove whitespace added here, and thus will fail to concatenate - the tokens. */ -#define MY(OP) CONCAT2 (i386_aout_dynix_,OP) -#define TARGETNAME "a.out-i386-dynix" -#define NAME(x,y) CONCAT3 (i386dynix,_32_,y) -#define ARCH_SIZE 32 -#define NAME_swap_exec_header_in NAME(i386dynix_32_,swap_exec_header_in) -#define MY_get_section_contents aout_32_get_section_contents - -/* aoutx.h requires definitions for NMAGIC, BMAGIC and QMAGIC. */ -#define NMAGIC 0 -#define BMAGIC OMAGIC -#define QMAGIC XMAGIC - -#include "aoutx.h" - -/* (Ab)use some fields in the internal exec header to be able to read - executables that contain shared data. */ - -#define a_shdata a_tload -#define a_shdrsize a_dload - -void -i386dynix_32_swap_exec_header_in (bfd *abfd, - struct external_exec *raw_bytes, - struct internal_exec *execp) -{ - struct external_exec *bytes = (struct external_exec *)raw_bytes; - - /* The internal_exec structure has some fields that are unused in this - configuration (IE for i960), so ensure that all such uninitialized - fields are zero'd out. There are places where two of these structs - are memcmp'd, and thus the contents do matter. */ - memset (execp, 0, sizeof (struct internal_exec)); - /* Now fill in fields in the execp, from the bytes in the raw data. */ - execp->a_info = H_GET_32 (abfd, bytes->e_info); - execp->a_text = GET_WORD (abfd, bytes->e_text); - execp->a_data = GET_WORD (abfd, bytes->e_data); - execp->a_bss = GET_WORD (abfd, bytes->e_bss); - execp->a_syms = GET_WORD (abfd, bytes->e_syms); - execp->a_entry = GET_WORD (abfd, bytes->e_entry); - execp->a_trsize = GET_WORD (abfd, bytes->e_trsize); - execp->a_drsize = GET_WORD (abfd, bytes->e_drsize); - execp->a_shdata = GET_WORD (abfd, bytes->e_shdata); - execp->a_shdrsize = GET_WORD (abfd, bytes->e_shdrsize); -} - -#include "aout-target.h" diff -Nru gdb-8.1/bfd/i386freebsd.c gdb-8.2/bfd/i386freebsd.c --- gdb-8.1/bfd/i386freebsd.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/i386freebsd.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ -/* BFD back-end for FreeBSD/386 a.out-ish binaries. - Copyright (C) 1990-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define BYTES_IN_WORD 4 -#undef TARGET_IS_BIG_ENDIAN_P - -#define TARGET_PAGE_SIZE 4096 -#define SEGMENT_SIZE TARGET_PAGE_SIZE - -#define DEFAULT_ARCH bfd_arch_i386 -#define MACHTYPE_OK(mtype) ((mtype) == M_386_NETBSD || (mtype) == M_UNKNOWN) - -/* Do not "beautify" the CONCAT* macro args. Traditional C will not - remove whitespace added here, and thus will fail to concatenate - the tokens. */ -#define MY(OP) CONCAT2 (i386_aout_fbsd_,OP) - -/* This needs to start with a.out so GDB knows it is an a.out variant. */ -#define TARGETNAME "a.out-i386-freebsd" - -#include "freebsd.h" diff -Nru gdb-8.1/bfd/i386linux.c gdb-8.2/bfd/i386linux.c --- gdb-8.1/bfd/i386linux.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/i386linux.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,733 +0,0 @@ -/* BFD back-end for linux flavored i386 a.out binaries. - Copyright (C) 1992-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define TARGET_PAGE_SIZE 4096 -#define ZMAGIC_DISK_BLOCK_SIZE 1024 -#define SEGMENT_SIZE TARGET_PAGE_SIZE -#define TEXT_START_ADDR 0x0 - -#define MACHTYPE_OK(mtype) ((mtype) == M_386 || (mtype) == M_UNKNOWN) - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "aout/aout64.h" -#include "aout/stab_gnu.h" -#include "aout/ar.h" -#include "libaout.h" /* BFD a.out internal data structures */ - -#define DEFAULT_ARCH bfd_arch_i386 - -/* Do not "beautify" the CONCAT* macro args. Traditional C will not - remove whitespace added here, and thus will fail to concatenate - the tokens. */ -#define MY(OP) CONCAT2 (i386_aout_linux_,OP) -#define TARGETNAME "a.out-i386-linux" - -extern const bfd_target MY(vec); - -/* We always generate QMAGIC files in preference to ZMAGIC files. It - would be possible to make this a linker option, if that ever - becomes important. */ - -static void MY_final_link_callback - (bfd *, file_ptr *, file_ptr *, file_ptr *); -static bfd_boolean i386linux_bfd_final_link - (bfd *, struct bfd_link_info *); -static bfd_boolean i386linux_write_object_contents (bfd *); - -static bfd_boolean -i386linux_bfd_final_link (bfd *abfd, struct bfd_link_info *info) -{ - obj_aout_subformat (abfd) = q_magic_format; - return NAME(aout,final_link) (abfd, info, MY_final_link_callback); -} - -#define MY_bfd_final_link i386linux_bfd_final_link - -/* Set the machine type correctly. */ - -static bfd_boolean -i386linux_write_object_contents (bfd *abfd) -{ - struct external_exec exec_bytes; - struct internal_exec *execp = exec_hdr (abfd); - - N_SET_MACHTYPE (execp, M_386); - - obj_reloc_entry_size (abfd) = RELOC_STD_SIZE; - - WRITE_HEADERS (abfd, execp); - - return TRUE; -} - -#define MY_write_object_contents i386linux_write_object_contents - -/* Code to link against Linux a.out shared libraries. */ - -/* See if a symbol name is a reference to the global offset table. */ - -#ifndef GOT_REF_PREFIX -#define GOT_REF_PREFIX "__GOT_" -#endif - -#define IS_GOT_SYM(name) (CONST_STRNEQ (name, GOT_REF_PREFIX)) - -/* See if a symbol name is a reference to the procedure linkage table. */ - -#ifndef PLT_REF_PREFIX -#define PLT_REF_PREFIX "__PLT_" -#endif - -#define IS_PLT_SYM(name) (CONST_STRNEQ (name, PLT_REF_PREFIX)) - -/* This string is used to generate specialized error messages. */ - -#ifndef NEEDS_SHRLIB -#define NEEDS_SHRLIB "__NEEDS_SHRLIB_" -#endif - -/* This special symbol is a set vector that contains a list of - pointers to fixup tables. It will be present in any dynamically - linked file. The linker generated fixup table should also be added - to the list, and it should always appear in the second slot (the - first one is a dummy with a magic number that is defined in - crt0.o). */ - -#ifndef SHARABLE_CONFLICTS -#define SHARABLE_CONFLICTS "__SHARABLE_CONFLICTS__" -#endif - -/* We keep a list of fixups. The terminology is a bit strange, but - each fixup contains two 32 bit numbers. A regular fixup contains - an address and a pointer, and at runtime we should store the - address at the location pointed to by the pointer. A builtin fixup - contains two pointers, and we should read the address using one - pointer and store it at the location pointed to by the other - pointer. Builtin fixups come into play when we have duplicate - __GOT__ symbols for the same variable. The builtin fixup will copy - the GOT pointer from one over into the other. */ - -struct fixup -{ - struct fixup *next; - struct linux_link_hash_entry *h; - bfd_vma value; - - /* Nonzero if this is a jump instruction that needs to be fixed, - zero if this is just a pointer */ - char jump; - - char builtin; -}; - -/* We don't need a special hash table entry structure, but we do need - to keep some information between linker passes, so we use a special - hash table. */ - -struct linux_link_hash_entry -{ - struct aout_link_hash_entry root; -}; - -struct linux_link_hash_table -{ - struct aout_link_hash_table root; - - /* First dynamic object found in link. */ - bfd *dynobj; - - /* Number of fixups. */ - size_t fixup_count; - - /* Number of builtin fixups. */ - size_t local_builtins; - - /* List of fixups. */ - struct fixup *fixup_list; -}; - -/* Routine to create an entry in an Linux link hash table. */ - -static struct bfd_hash_entry * -linux_link_hash_newfunc (struct bfd_hash_entry *entry, - struct bfd_hash_table *table, - const char *string) -{ - struct linux_link_hash_entry *ret = (struct linux_link_hash_entry *) entry; - - /* Allocate the structure if it has not already been allocated by a - subclass. */ - if (ret == (struct linux_link_hash_entry *) NULL) - ret = ((struct linux_link_hash_entry *) - bfd_hash_allocate (table, sizeof (struct linux_link_hash_entry))); - if (ret == NULL) - return (struct bfd_hash_entry *) ret; - - /* Call the allocation method of the superclass. */ - ret = ((struct linux_link_hash_entry *) - NAME(aout,link_hash_newfunc) ((struct bfd_hash_entry *) ret, - table, string)); - if (ret != NULL) - { - /* Set local fields; there aren't any. */ - } - - return (struct bfd_hash_entry *) ret; -} - -/* Create a Linux link hash table. */ - -static struct bfd_link_hash_table * -linux_link_hash_table_create (bfd *abfd) -{ - struct linux_link_hash_table *ret; - bfd_size_type amt = sizeof (struct linux_link_hash_table); - - ret = (struct linux_link_hash_table *) bfd_zmalloc (amt); - if (ret == (struct linux_link_hash_table *) NULL) - return (struct bfd_link_hash_table *) NULL; - if (!NAME(aout,link_hash_table_init) (&ret->root, abfd, - linux_link_hash_newfunc, - sizeof (struct linux_link_hash_entry))) - { - free (ret); - return (struct bfd_link_hash_table *) NULL; - } - - return &ret->root.root; -} - -/* Look up an entry in a Linux link hash table. */ - -#define linux_link_hash_lookup(table, string, create, copy, follow) \ - ((struct linux_link_hash_entry *) \ - aout_link_hash_lookup (&(table)->root, (string), (create), (copy),\ - (follow))) - -/* Traverse a Linux link hash table. */ - -#define linux_link_hash_traverse(table, func, info) \ - (aout_link_hash_traverse \ - (&(table)->root, \ - (bfd_boolean (*) (struct aout_link_hash_entry *, void *)) (func), \ - (info))) - -/* Get the Linux link hash table from the info structure. This is - just a cast. */ - -#define linux_hash_table(p) ((struct linux_link_hash_table *) ((p)->hash)) - -/* Store the information for a new fixup. */ - -static struct fixup * -new_fixup (struct bfd_link_info *info, - struct linux_link_hash_entry *h, - bfd_vma value, - int builtin) -{ - struct fixup *f; - - f = (struct fixup *) bfd_hash_allocate (&info->hash->table, - sizeof (struct fixup)); - if (f == NULL) - return f; - f->next = linux_hash_table (info)->fixup_list; - linux_hash_table (info)->fixup_list = f; - f->h = h; - f->value = value; - f->builtin = builtin; - f->jump = 0; - ++linux_hash_table (info)->fixup_count; - return f; -} - -/* We come here once we realize that we are going to link to a shared - library. We need to create a special section that contains the - fixup table, and we ultimately need to add a pointer to this into - the set vector for SHARABLE_CONFLICTS. At this point we do not - know the size of the section, but that's OK - we just need to - create it for now. */ - -static bfd_boolean -linux_link_create_dynamic_sections (bfd *abfd, - struct bfd_link_info *info ATTRIBUTE_UNUSED) -{ - flagword flags; - asection *s; - - /* Note that we set the SEC_IN_MEMORY flag. */ - flags = SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY; - - /* We choose to use the name ".linux-dynamic" for the fixup table. - Why not? */ - s = bfd_make_section_with_flags (abfd, ".linux-dynamic", flags); - if (s == NULL - || ! bfd_set_section_alignment (abfd, s, 2)) - return FALSE; - s->size = 0; - s->contents = 0; - - return TRUE; -} - -/* Function to add a single symbol to the linker hash table. This is - a wrapper around _bfd_generic_link_add_one_symbol which handles the - tweaking needed for dynamic linking support. */ - -static bfd_boolean -linux_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) -{ - struct linux_link_hash_entry *h; - bfd_boolean insert; - - /* Look up and see if we already have this symbol in the hash table. - If we do, and the defining entry is from a shared library, we - need to create the dynamic sections. - - FIXME: What if abfd->xvec != info->output_bfd->xvec? We may - want to be able to link Linux a.out and ELF objects together, - but serious confusion is possible. */ - - insert = FALSE; - - if (! bfd_link_relocatable (info) - && linux_hash_table (info)->dynobj == NULL - && strcmp (name, SHARABLE_CONFLICTS) == 0 - && (flags & BSF_CONSTRUCTOR) != 0 - && abfd->xvec == info->output_bfd->xvec) - { - if (! linux_link_create_dynamic_sections (abfd, info)) - return FALSE; - linux_hash_table (info)->dynobj = abfd; - insert = TRUE; - } - - if (bfd_is_abs_section (section) - && abfd->xvec == info->output_bfd->xvec) - { - h = linux_link_hash_lookup (linux_hash_table (info), name, FALSE, - FALSE, FALSE); - if (h != NULL - && (h->root.root.type == bfd_link_hash_defined - || h->root.root.type == bfd_link_hash_defweak)) - { - struct fixup *f; - - if (hashp != NULL) - *hashp = (struct bfd_link_hash_entry *) h; - - f = new_fixup (info, h, value, ! IS_PLT_SYM (name)); - if (f == NULL) - return FALSE; - f->jump = IS_PLT_SYM (name); - - return TRUE; - } - } - - /* Do the usual procedure for adding a symbol. */ - if (! _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, - value, string, copy, collect, - hashp)) - return FALSE; - - /* Insert a pointer to our table in the set vector. The dynamic - linker requires this information */ - if (insert) - { - asection *s; - - /* Here we do our special thing to add the pointer to the - dynamic section in the SHARABLE_CONFLICTS set vector. */ - s = bfd_get_section_by_name (linux_hash_table (info)->dynobj, - ".linux-dynamic"); - BFD_ASSERT (s != NULL); - - if (! (_bfd_generic_link_add_one_symbol - (info, linux_hash_table (info)->dynobj, SHARABLE_CONFLICTS, - BSF_GLOBAL | BSF_CONSTRUCTOR, s, (bfd_vma) 0, NULL, - FALSE, FALSE, NULL))) - return FALSE; - } - - return TRUE; -} - -/* We will crawl the hash table and come here for every global symbol. - We will examine each entry and see if there are indications that we - need to add a fixup. There are two possible cases - one is where - you have duplicate definitions of PLT or GOT symbols - these will - have already been caught and added as "builtin" fixups. If we find - that the corresponding non PLT/GOT symbol is also present, we - convert it to a regular fixup instead. - - This function is called via linux_link_hash_traverse. */ - -static bfd_boolean -linux_tally_symbols (struct linux_link_hash_entry *h, void * data) -{ - struct bfd_link_info *info = (struct bfd_link_info *) data; - struct fixup *f, *f1; - int is_plt; - struct linux_link_hash_entry *h1, *h2; - bfd_boolean exists; - - if (h->root.root.type == bfd_link_hash_undefined - && CONST_STRNEQ (h->root.root.root.string, NEEDS_SHRLIB)) - { - const char *name; - char *p; - char *alloc = NULL; - - name = h->root.root.root.string + sizeof NEEDS_SHRLIB - 1; - p = strrchr (name, '_'); - if (p != NULL) - alloc = (char *) bfd_malloc ((bfd_size_type) strlen (name) + 1); - - if (p == NULL || alloc == NULL) - _bfd_error_handler (_("Output file requires shared library `%s'\n"), - name); - else - { - strcpy (alloc, name); - p = strrchr (alloc, '_'); - *p++ = '\0'; - _bfd_error_handler - (_("Output file requires shared library `%s.so.%s'\n"), - alloc, p); - free (alloc); - } - - abort (); - } - - /* If this symbol is not a PLT/GOT, we do not even need to look at it */ - is_plt = IS_PLT_SYM (h->root.root.root.string); - - if (is_plt || IS_GOT_SYM (h->root.root.root.string)) - { - /* Look up this symbol twice. Once just as a regular lookup, - and then again following all of the indirect links until we - reach a real symbol. */ - h1 = linux_link_hash_lookup (linux_hash_table (info), - (h->root.root.root.string - + sizeof PLT_REF_PREFIX - 1), - FALSE, FALSE, TRUE); - /* h2 does not follow indirect symbols. */ - h2 = linux_link_hash_lookup (linux_hash_table (info), - (h->root.root.root.string - + sizeof PLT_REF_PREFIX - 1), - FALSE, FALSE, FALSE); - - /* The real symbol must exist but if it is also an ABS symbol, - there is no need to have a fixup. This is because they both - came from the same library. If on the other hand, we had to - use an indirect symbol to get to the real symbol, we add the - fixup anyway, since there are cases where these symbols come - from different shared libraries */ - if (h1 != NULL - && (((h1->root.root.type == bfd_link_hash_defined - || h1->root.root.type == bfd_link_hash_defweak) - && ! bfd_is_abs_section (h1->root.root.u.def.section)) - || h2->root.root.type == bfd_link_hash_indirect)) - { - /* See if there is a "builtin" fixup already present - involving this symbol. If so, convert it to a regular - fixup. In the end, this relaxes some of the requirements - about the order of performing fixups. */ - exists = FALSE; - for (f1 = linux_hash_table (info)->fixup_list; - f1 != NULL; - f1 = f1->next) - { - if ((f1->h != h && f1->h != h1) - || (! f1->builtin && ! f1->jump)) - continue; - if (f1->h == h1) - exists = TRUE; - if (! exists - && bfd_is_abs_section (h->root.root.u.def.section)) - { - f = new_fixup (info, h1, f1->h->root.root.u.def.value, 0); - f->jump = is_plt; - } - f1->h = h1; - f1->jump = is_plt; - f1->builtin = 0; - exists = TRUE; - } - if (! exists - && bfd_is_abs_section (h->root.root.u.def.section)) - { - f = new_fixup (info, h1, h->root.root.u.def.value, 0); - if (f == NULL) - { - /* FIXME: No way to return error. */ - abort (); - } - f->jump = is_plt; - } - } - - /* Quick and dirty way of stripping these symbols from the - symtab. */ - if (bfd_is_abs_section (h->root.root.u.def.section)) - h->root.written = TRUE; - } - - return TRUE; -} - -/* This is called to set the size of the .linux-dynamic section is. - It is called by the Linux linker emulation before_allocation - routine. We have finished reading all of the input files, and now - we just scan the hash tables to find out how many additional fixups - are required. */ - -bfd_boolean -bfd_i386linux_size_dynamic_sections (bfd *output_bfd, - struct bfd_link_info *info) -{ - struct fixup *f; - asection *s; - - if (output_bfd->xvec != &MY(vec)) - return TRUE; - - /* First find the fixups... */ - linux_link_hash_traverse (linux_hash_table (info), - linux_tally_symbols, - info); - - /* If there are builtin fixups, leave room for a marker. This is - used by the dynamic linker so that it knows that all that follow - are builtin fixups instead of regular fixups. */ - for (f = linux_hash_table (info)->fixup_list; f != NULL; f = f->next) - { - if (f->builtin) - { - ++linux_hash_table (info)->fixup_count; - ++linux_hash_table (info)->local_builtins; - break; - } - } - - if (linux_hash_table (info)->dynobj == NULL) - { - if (linux_hash_table (info)->fixup_count > 0) - abort (); - return TRUE; - } - - /* Allocate memory for our fixup table. We will fill it in later. */ - s = bfd_get_section_by_name (linux_hash_table (info)->dynobj, - ".linux-dynamic"); - if (s != NULL) - { - s->size = linux_hash_table (info)->fixup_count + 1; - s->size *= 8; - s->contents = (bfd_byte *) bfd_zalloc (output_bfd, s->size); - if (s->contents == NULL) - return FALSE; - } - - return TRUE; -} - -/* We come here once we are ready to actually write the fixup table to - the output file. Scan the fixup tables and so forth and generate - the stuff we need. */ - -static bfd_boolean -linux_finish_dynamic_link (bfd *output_bfd, - struct bfd_link_info *info) -{ - asection *s, *os, *is; - bfd_byte *fixup_table; - struct linux_link_hash_entry *h; - struct fixup *f; - unsigned int new_addr; - int section_offset; - unsigned int fixups_written; - - if (linux_hash_table (info)->dynobj == NULL) - return TRUE; - - s = bfd_get_section_by_name (linux_hash_table (info)->dynobj, - ".linux-dynamic"); - BFD_ASSERT (s != NULL); - os = s->output_section; - fixups_written = 0; - -#ifdef LINUX_LINK_DEBUG - printf ("Fixup table file offset: %x VMA: %x\n", - os->filepos + s->output_offset, - os->vma + s->output_offset); -#endif - - fixup_table = s->contents; - bfd_put_32 (output_bfd, - (bfd_vma) linux_hash_table (info)->fixup_count, fixup_table); - fixup_table += 4; - - /* Fill in fixup table. */ - for (f = linux_hash_table (info)->fixup_list; f != NULL; f = f->next) - { - if (f->builtin) - continue; - - if (f->h->root.root.type != bfd_link_hash_defined - && f->h->root.root.type != bfd_link_hash_defweak) - { - _bfd_error_handler - (_("Symbol %s not defined for fixups\n"), - f->h->root.root.root.string); - continue; - } - - is = f->h->root.root.u.def.section; - section_offset = is->output_section->vma + is->output_offset; - new_addr = f->h->root.root.u.def.value + section_offset; - -#ifdef LINUX_LINK_DEBUG - printf ("Fixup(%d) %s: %x %x\n",f->jump, f->h->root.root.string, - new_addr, f->value); -#endif - - if (f->jump) - { - /* Relative address */ - new_addr = new_addr - (f->value + 5); - bfd_put_32 (output_bfd, (bfd_vma) new_addr, fixup_table); - fixup_table += 4; - bfd_put_32 (output_bfd, f->value + 1, fixup_table); - fixup_table += 4; - } - else - { - bfd_put_32 (output_bfd, (bfd_vma) new_addr, fixup_table); - fixup_table += 4; - bfd_put_32 (output_bfd, f->value, fixup_table); - fixup_table += 4; - } - ++fixups_written; - } - - if (linux_hash_table (info)->local_builtins != 0) - { - /* Special marker so we know to switch to the other type of fixup */ - bfd_put_32 (output_bfd, (bfd_vma) 0, fixup_table); - fixup_table += 4; - bfd_put_32 (output_bfd, (bfd_vma) 0, fixup_table); - fixup_table += 4; - ++fixups_written; - for (f = linux_hash_table (info)->fixup_list; f != NULL; f = f->next) - { - if (! f->builtin) - continue; - - if (f->h->root.root.type != bfd_link_hash_defined - && f->h->root.root.type != bfd_link_hash_defweak) - { - _bfd_error_handler - (_("Symbol %s not defined for fixups\n"), - f->h->root.root.root.string); - continue; - } - - is = f->h->root.root.u.def.section; - section_offset = is->output_section->vma + is->output_offset; - new_addr = f->h->root.root.u.def.value + section_offset; - -#ifdef LINUX_LINK_DEBUG - printf ("Fixup(B) %s: %x %x\n", f->h->root.root.string, - new_addr, f->value); -#endif - - bfd_put_32 (output_bfd, (bfd_vma) new_addr, fixup_table); - fixup_table += 4; - bfd_put_32 (output_bfd, f->value, fixup_table); - fixup_table += 4; - ++fixups_written; - } - } - - if (linux_hash_table (info)->fixup_count != fixups_written) - { - _bfd_error_handler (_("Warning: fixup count mismatch\n")); - while (linux_hash_table (info)->fixup_count > fixups_written) - { - bfd_put_32 (output_bfd, (bfd_vma) 0, fixup_table); - fixup_table += 4; - bfd_put_32 (output_bfd, (bfd_vma) 0, fixup_table); - fixup_table += 4; - ++fixups_written; - } - } - - h = linux_link_hash_lookup (linux_hash_table (info), - "__BUILTIN_FIXUPS__", - FALSE, FALSE, FALSE); - - if (h != NULL - && (h->root.root.type == bfd_link_hash_defined - || h->root.root.type == bfd_link_hash_defweak)) - { - is = h->root.root.u.def.section; - section_offset = is->output_section->vma + is->output_offset; - new_addr = h->root.root.u.def.value + section_offset; - -#ifdef LINUX_LINK_DEBUG - printf ("Builtin fixup table at %x\n", new_addr); -#endif - - bfd_put_32 (output_bfd, (bfd_vma) new_addr, fixup_table); - } - else - bfd_put_32 (output_bfd, (bfd_vma) 0, fixup_table); - - if (bfd_seek (output_bfd, (file_ptr) (os->filepos + s->output_offset), - SEEK_SET) != 0) - return FALSE; - - if (bfd_bwrite (s->contents, s->size, output_bfd) != s->size) - return FALSE; - - return TRUE; -} - -#define MY_bfd_link_hash_table_create linux_link_hash_table_create -#define MY_add_one_symbol linux_add_one_symbol -#define MY_finish_dynamic_link linux_finish_dynamic_link - -#define MY_zmagic_contiguous 1 - -#include "aout-target.h" diff -Nru gdb-8.1/bfd/i386mach3.c gdb-8.2/bfd/i386mach3.c --- gdb-8.1/bfd/i386mach3.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/i386mach3.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,73 +0,0 @@ -/* BFD back-end for i386 a.out binaries. - Copyright (C) 1990-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - - -/* This is for Mach 3, which uses a.out, not Mach-O. */ - -/* There is no magic number or anything which lets us distinguish this target - from i386aout or i386bsd. So this target is only useful if it is the - default target. */ - -#define TARGET_PAGE_SIZE 1 -#define SEGMENT_SIZE 0x1000 -#define TEXT_START_ADDR 0x10000 -#define ARCH 32 -/* This macro is only relevant when N_MAGIC(x) == ZMAGIC. */ -#define N_HEADER_IN_TEXT(x) 1 - -#define N_TXTSIZE(x) ((x)->a_text) - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "aout/aout64.h" -#include "aout/stab_gnu.h" -#include "aout/ar.h" -#include "libaout.h" /* BFD a.out internal data structures */ - -#define DEFAULT_ARCH bfd_arch_i386 - -/* Do not "beautify" the CONCAT* macro args. Traditional C will not - remove whitespace added here, and thus will fail to concatenate - the tokens. */ -#define MY(OP) CONCAT2 (i386_aout_mach3_,OP) -#define TARGETNAME "a.out-mach3" - -static bfd_boolean MY (set_sizes) (bfd *); -#define MY_backend_data &MY(backend_data) - -static const struct aout_backend_data MY(backend_data) = -{ - 0, /* zmagic contiguous */ - 1, /* text incl header */ - 0, /* entry is text address */ - 0, /* exec_hdr_flags */ - 0, /* text vma? */ - MY(set_sizes), - 1, /* exec header not counted */ - 0, /* add_dynamic_symbols */ - 0, /* add_one_symbol */ - 0, /* link_dynamic_object */ - 0, /* write_dynamic_symbol */ - 0, /* check_dynamic_reloc */ - 0 /* finish_dynamic_link */ -}; - -#include "aout-target.h" diff -Nru gdb-8.1/bfd/i386msdos.c gdb-8.2/bfd/i386msdos.c --- gdb-8.1/bfd/i386msdos.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/i386msdos.c 2018-09-05 07:27:13.000000000 +0000 @@ -27,12 +27,94 @@ #include "bfd.h" #include "libbfd.h" #include "libaout.h" +#include "coff/msdos.h" -#define EXE_MAGIC 0x5a4d #define EXE_LOAD_HIGH 0x0000 #define EXE_LOAD_LOW 0xffff #define EXE_PAGE_SIZE 512 +static bfd_boolean +msdos_mkobject (bfd *abfd) +{ + bfd_default_set_arch_mach (abfd, bfd_arch_i386, bfd_mach_i386_i8086); + + return aout_32_mkobject (abfd); +} + +static const bfd_target * +msdos_object_p (bfd *abfd) +{ + struct external_DOS_hdr hdr; + bfd_byte buffer[2]; + asection *section; + unsigned int size; + + if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0 + || bfd_bread (&hdr, (bfd_size_type) sizeof (hdr), abfd) < DOS_HDR_SIZE) + { + if (bfd_get_error () != bfd_error_system_call) + bfd_set_error (bfd_error_wrong_format); + return NULL; + } + + if (H_GET_16 (abfd, hdr.e_magic) != IMAGE_DOS_SIGNATURE) + { + bfd_set_error (bfd_error_wrong_format); + return NULL; + } + + /* Check that this isn't actually a PE, NE, or LE file. If it is, the + e_lfanew field will be valid and point to a header beginning with one of + the relevant signatures. If not, e_lfanew might point to anything, so + don't bail if we can't read there. */ + if (H_GET_16 (abfd, hdr.e_cparhdr) < 4 + || bfd_seek (abfd, (file_ptr) H_GET_32 (abfd, hdr.e_lfanew), SEEK_SET) != 0 + || bfd_bread (buffer, (bfd_size_type) 2, abfd) != 2) + { + if (bfd_get_error () == bfd_error_system_call) + return NULL; + } + else + { + if (H_GET_16 (abfd, buffer) == IMAGE_NT_SIGNATURE + || H_GET_16 (abfd, buffer) == IMAGE_OS2_SIGNATURE + || H_GET_16 (abfd, buffer) == IMAGE_OS2_SIGNATURE_LE + || H_GET_16 (abfd, buffer) == IMAGE_OS2_SIGNATURE_LX) + { + bfd_set_error (bfd_error_wrong_format); + return NULL; + } + } + + if (!msdos_mkobject (abfd)) + return NULL; + + abfd->flags = EXEC_P; + abfd->start_address = H_GET_16 (abfd, hdr.e_ip); + + section = bfd_make_section (abfd, ".text"); + if (section == NULL) + return NULL; + + section->flags = (SEC_ALLOC | SEC_LOAD | SEC_CODE | SEC_HAS_CONTENTS); + section->filepos = H_GET_16 (abfd, hdr.e_cparhdr) * 16; + size = (H_GET_16 (abfd, hdr.e_cp) - 1) * EXE_PAGE_SIZE - section->filepos; + size += H_GET_16 (abfd, hdr.e_cblp); + + /* Check that the size is valid. */ + if (bfd_seek (abfd, (file_ptr) (section->filepos + size), SEEK_SET) != 0) + { + if (bfd_get_error () != bfd_error_system_call) + bfd_set_error (bfd_error_wrong_format); + return NULL; + } + + bfd_set_section_size (abfd, section, size); + section->alignment_power = 4; + + return abfd->xvec; +} + static int msdos_sizeof_headers (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_link_info *info ATTRIBUTE_UNUSED) @@ -77,7 +159,7 @@ } /* Constants. */ - H_PUT_16 (abfd, EXE_MAGIC, &hdr[0]); + H_PUT_16 (abfd, IMAGE_DOS_SIGNATURE, &hdr[0]); H_PUT_16 (abfd, EXE_PAGE_SIZE / 16, &hdr[8]); H_PUT_16 (abfd, EXE_LOAD_LOW, &hdr[12]); H_PUT_16 (abfd, 0x3e, &hdr[24]); @@ -127,7 +209,6 @@ -#define msdos_mkobject aout_32_mkobject #define msdos_make_empty_symbol aout_32_make_empty_symbol #define msdos_bfd_reloc_type_lookup aout_32_reloc_type_lookup #define msdos_bfd_reloc_name_lookup aout_32_reloc_name_lookup @@ -149,6 +230,7 @@ #define msdos_section_already_linked \ _bfd_generic_section_already_linked #define msdos_bfd_define_common_symbol bfd_generic_define_common_symbol +#define msdos_bfd_link_hide_symbol _bfd_generic_link_hide_symbol #define msdos_bfd_define_start_stop bfd_generic_define_start_stop #define msdos_bfd_link_hash_table_create _bfd_generic_link_hash_table_create #define msdos_bfd_link_add_symbols _bfd_generic_link_add_symbols @@ -170,7 +252,7 @@ #define msdos_find_line _bfd_nosymbols_find_line #define msdos_find_inliner_info _bfd_nosymbols_find_inliner_info #define msdos_get_lineno _bfd_nosymbols_get_lineno -#define msdos_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) +#define msdos_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false #define msdos_bfd_is_local_label_name _bfd_nosymbols_bfd_is_local_label_name #define msdos_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol #define msdos_read_minisymbols _bfd_nosymbols_read_minisymbols @@ -203,21 +285,21 @@ { _bfd_dummy_target, - _bfd_dummy_target, /* bfd_check_format */ + msdos_object_p, /* bfd_check_format */ _bfd_dummy_target, _bfd_dummy_target, }, { - bfd_false, + _bfd_bool_bfd_false_error, msdos_mkobject, _bfd_generic_mkarchive, - bfd_false, + _bfd_bool_bfd_false_error, }, { /* bfd_write_contents */ - bfd_false, + _bfd_bool_bfd_false_error, msdos_write_object_contents, _bfd_write_archive_contents, - bfd_false, + _bfd_bool_bfd_false_error, }, BFD_JUMP_TABLE_GENERIC (msdos), diff -Nru gdb-8.1/bfd/i386netbsd.c gdb-8.2/bfd/i386netbsd.c --- gdb-8.1/bfd/i386netbsd.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/i386netbsd.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ -/* BFD back-end for NetBSD/386 a.out-ish binaries. - Copyright (C) 1990-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define BYTES_IN_WORD 4 -#undef TARGET_IS_BIG_ENDIAN_P - -#define TARGET_PAGE_SIZE 4096 -#define SEGMENT_SIZE TARGET_PAGE_SIZE - -#define DEFAULT_ARCH bfd_arch_i386 -#define DEFAULT_MID M_386_NETBSD - -/* Do not "beautify" the CONCAT* macro args. Traditional C will not - remove whitespace added here, and thus will fail to concatenate - the tokens. */ -#define MY(OP) CONCAT2 (i386_aout_nbsd_,OP) - -/* This needs to start with a.out so GDB knows it is an a.out variant. */ -#define TARGETNAME "a.out-i386-netbsd" - -#include "netbsd.h" diff -Nru gdb-8.1/bfd/i386os9k.c gdb-8.2/bfd/i386os9k.c --- gdb-8.1/bfd/i386os9k.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/i386os9k.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,230 +0,0 @@ -/* BFD back-end for os9000 i386 binaries. - Copyright (C) 1990-2018 Free Software Foundation, Inc. - Written by Cygnus Support. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "bfdlink.h" -#include "libaout.h" /* BFD a.out internal data structures */ -#include "os9k.h" - -/* Swaps the information in an executable header taken from a raw byte - stream memory image, into the internal exec_header structure. */ -static bfd_boolean -os9k_swap_exec_header_in (bfd *abfd, - mh_com *raw_bytes, - struct internal_exec *execp) -{ - mh_com *bytes = (mh_com *) raw_bytes; - unsigned int dload, dmemsize, dmemstart; - - /* Now fill in fields in the execp, from the bytes in the raw data. */ - execp->a_info = H_GET_16 (abfd, bytes->m_sync); - execp->a_syms = 0; - execp->a_entry = H_GET_32 (abfd, bytes->m_exec); - execp->a_talign = 2; - execp->a_dalign = 2; - execp->a_balign = 2; - - dload = H_GET_32 (abfd, bytes->m_idata); - execp->a_data = dload + 8; - - if (bfd_seek (abfd, (file_ptr) dload, SEEK_SET) != 0 - || (bfd_bread (&dmemstart, (bfd_size_type) sizeof (dmemstart), abfd) - != sizeof (dmemstart)) - || (bfd_bread (&dmemsize, (bfd_size_type) sizeof (dmemsize), abfd) - != sizeof (dmemsize))) - return FALSE; - - execp->a_tload = 0; - execp->a_dload = H_GET_32 (abfd, (unsigned char *) &dmemstart); - execp->a_text = dload - execp->a_tload; - execp->a_data = H_GET_32 (abfd, (unsigned char *) &dmemsize); - execp->a_bss = H_GET_32 (abfd, bytes->m_data) - execp->a_data; - - execp->a_trsize = 0; - execp->a_drsize = 0; - - return TRUE; -} - - -/* Finish up the opening of a b.out file for reading. Fill in all the - fields that are not handled by common code. */ - -static const bfd_target * -os9k_callback (bfd *abfd) -{ - struct internal_exec *execp = exec_hdr (abfd); - unsigned long bss_start; - - /* Architecture and machine type. */ - bfd_set_arch_mach (abfd, bfd_arch_i386, 0); - - /* The positions of the string table and symbol table. */ - obj_str_filepos (abfd) = 0; - obj_sym_filepos (abfd) = 0; - - /* The alignments of the sections. */ - obj_textsec (abfd)->alignment_power = execp->a_talign; - obj_datasec (abfd)->alignment_power = execp->a_dalign; - obj_bsssec (abfd)->alignment_power = execp->a_balign; - - /* The starting addresses of the sections. */ - obj_textsec (abfd)->vma = execp->a_tload; - obj_datasec (abfd)->vma = execp->a_dload; - - /* And reload the sizes, since the aout module zaps them. */ - obj_textsec (abfd)->size = execp->a_text; - - bss_start = execp->a_dload + execp->a_data; /* BSS = end of data section. */ - obj_bsssec (abfd)->vma = align_power (bss_start, execp->a_balign); - - /* The file positions of the sections. */ - obj_textsec (abfd)->filepos = execp->a_entry; - obj_datasec (abfd)->filepos = execp->a_dload; - - /* The file positions of the relocation info *** - obj_textsec (abfd)->rel_filepos = N_TROFF (execp); - obj_datasec (abfd)->rel_filepos = N_DROFF (execp); */ - - adata (abfd).page_size = 1; /* Not applicable. */ - adata (abfd).segment_size = 1;/* Not applicable. */ - adata (abfd).exec_bytes_size = MHCOM_BYTES_SIZE; - - return abfd->xvec; -} - -static const bfd_target * -os9k_object_p (bfd *abfd) -{ - struct internal_exec anexec; - mh_com exec_bytes; - - if (bfd_bread (&exec_bytes, (bfd_size_type) MHCOM_BYTES_SIZE, abfd) - != MHCOM_BYTES_SIZE) - { - if (bfd_get_error () != bfd_error_system_call) - bfd_set_error (bfd_error_wrong_format); - return 0; - } - - anexec.a_info = H_GET_16 (abfd, exec_bytes.m_sync); - if (N_BADMAG (&anexec)) - { - bfd_set_error (bfd_error_wrong_format); - return 0; - } - - if (! os9k_swap_exec_header_in (abfd, &exec_bytes, &anexec)) - { - if (bfd_get_error () != bfd_error_system_call) - bfd_set_error (bfd_error_wrong_format); - return NULL; - } - return aout_32_some_aout_object_p (abfd, &anexec, os9k_callback); -} - -static int -os9k_sizeof_headers (bfd *abfd ATTRIBUTE_UNUSED, - struct bfd_link_info *info ATTRIBUTE_UNUSED) -{ - return sizeof (struct internal_exec); -} - - - -#define aout_32_close_and_cleanup aout_32_bfd_free_cached_info - -#define aout_32_find_line _bfd_nosymbols_find_line -#define aout_32_get_symbol_version_string \ - _bfd_nosymbols_get_symbol_version_string -#define aout_32_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol - -#define aout_32_bfd_reloc_type_lookup _bfd_norelocs_bfd_reloc_type_lookup -#define aout_32_bfd_reloc_name_lookup _bfd_norelocs_bfd_reloc_name_lookup - -#define aout_32_get_section_contents_in_window \ - _bfd_generic_get_section_contents_in_window - -#define aout_32_set_reloc _bfd_generic_set_reloc - -#define os9k_bfd_get_relocated_section_contents \ - bfd_generic_get_relocated_section_contents -#define os9k_bfd_relax_section bfd_generic_relax_section -#define os9k_bfd_gc_sections bfd_generic_gc_sections -#define os9k_bfd_lookup_section_flags bfd_generic_lookup_section_flags -#define os9k_bfd_merge_sections bfd_generic_merge_sections -#define os9k_bfd_is_group_section bfd_generic_is_group_section -#define os9k_bfd_discard_group bfd_generic_discard_group -#define os9k_section_already_linked \ - _bfd_generic_section_already_linked -#define os9k_bfd_define_common_symbol bfd_generic_define_common_symbol -#define os9k_bfd_define_start_stop bfd_generic_define_start_stop -#define os9k_bfd_link_hash_table_create _bfd_generic_link_hash_table_create -#define os9k_bfd_link_add_symbols _bfd_generic_link_add_symbols -#define os9k_bfd_link_just_syms _bfd_generic_link_just_syms -#define os9k_bfd_copy_link_hash_symbol_type \ - _bfd_generic_copy_link_hash_symbol_type -#define os9k_bfd_final_link _bfd_generic_final_link -#define os9k_bfd_link_split_section _bfd_generic_link_split_section -#define os9k_bfd_link_check_relocs _bfd_generic_link_check_relocs - -const bfd_target i386_aout_os9k_vec = - { - "i386os9k", /* name */ - bfd_target_os9k_flavour, - BFD_ENDIAN_LITTLE, /* data byte order is little */ - BFD_ENDIAN_LITTLE, /* hdr byte order is little */ - (HAS_RELOC | EXEC_P | WP_TEXT), /* object flags */ - (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD), /* section flags */ - 0, /* symbol leading char */ - ' ', /* ar_pad_char */ - 16, /* ar_max_namelen */ - 0, /* match priority. */ - - 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, os9k_object_p, /* bfd_check_format */ - bfd_generic_archive_p, _bfd_dummy_target}, - {bfd_false, bfd_false, /* bfd_set_format */ - _bfd_generic_mkarchive, bfd_false}, - {bfd_false, bfd_false, /* bfd_write_contents */ - _bfd_write_archive_contents, bfd_false}, - - BFD_JUMP_TABLE_GENERIC (aout_32), - BFD_JUMP_TABLE_COPY (_bfd_generic), - BFD_JUMP_TABLE_CORE (_bfd_nocore), - BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_bsd), - BFD_JUMP_TABLE_SYMBOLS (aout_32), - BFD_JUMP_TABLE_RELOCS (aout_32), - BFD_JUMP_TABLE_WRITE (aout_32), - BFD_JUMP_TABLE_LINK (os9k), - BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), - - NULL, - - NULL, - }; diff -Nru gdb-8.1/bfd/ieee.c gdb-8.2/bfd/ieee.c --- gdb-8.1/bfd/ieee.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/ieee.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,3991 +0,0 @@ -/* BFD back-end for ieee-695 objects. - Copyright (C) 1990-2018 Free Software Foundation, Inc. - - Written by Steve Chamberlain of Cygnus Support. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - - -#define KEEPMINUSPCININST 0 - -/* IEEE 695 format is a stream of records, which we parse using a simple one- - token (which is one byte in this lexicon) lookahead recursive decent - parser. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "ieee.h" -#include "libieee.h" -#include "safe-ctype.h" -#include "libiberty.h" - -struct output_buffer_struct -{ - unsigned char *ptrp; - int buffer; -}; - -static unsigned char *output_ptr_start; -static unsigned char *output_ptr; -static unsigned char *output_ptr_end; -static unsigned char *input_ptr_start; -static unsigned char *input_ptr; -static unsigned char *input_ptr_end; -static bfd *input_bfd; -static bfd *output_bfd; -static int output_buffer; - - -static void block (void); - -/* Functions for writing to ieee files in the strange way that the - standard requires. */ - -static bfd_boolean -ieee_write_byte (bfd *abfd, int barg) -{ - bfd_byte byte; - - byte = barg; - if (bfd_bwrite ((void *) &byte, (bfd_size_type) 1, abfd) != 1) - return FALSE; - return TRUE; -} - -static bfd_boolean -ieee_write_2bytes (bfd *abfd, int bytes) -{ - bfd_byte buffer[2]; - - buffer[0] = bytes >> 8; - buffer[1] = bytes & 0xff; - if (bfd_bwrite ((void *) buffer, (bfd_size_type) 2, abfd) != 2) - return FALSE; - return TRUE; -} - -static bfd_boolean -ieee_write_int (bfd *abfd, bfd_vma value) -{ - if (value <= 127) - { - if (! ieee_write_byte (abfd, (bfd_byte) value)) - return FALSE; - } - else - { - unsigned int length; - - /* How many significant bytes ? */ - /* FIXME FOR LONGER INTS. */ - if (value & 0xff000000) - length = 4; - else if (value & 0x00ff0000) - length = 3; - else if (value & 0x0000ff00) - length = 2; - else - length = 1; - - if (! ieee_write_byte (abfd, - (bfd_byte) ((int) ieee_number_repeat_start_enum - + length))) - return FALSE; - switch (length) - { - case 4: - if (! ieee_write_byte (abfd, (bfd_byte) (value >> 24))) - return FALSE; - /* Fall through. */ - case 3: - if (! ieee_write_byte (abfd, (bfd_byte) (value >> 16))) - return FALSE; - /* Fall through. */ - case 2: - if (! ieee_write_byte (abfd, (bfd_byte) (value >> 8))) - return FALSE; - /* Fall through. */ - case 1: - if (! ieee_write_byte (abfd, (bfd_byte) (value))) - return FALSE; - } - } - - return TRUE; -} - -static bfd_boolean -ieee_write_id (bfd *abfd, const char *id) -{ - size_t length = strlen (id); - - if (length <= 127) - { - if (! ieee_write_byte (abfd, (bfd_byte) length)) - return FALSE; - } - else if (length < 255) - { - if (! ieee_write_byte (abfd, ieee_extension_length_1_enum) - || ! ieee_write_byte (abfd, (bfd_byte) length)) - return FALSE; - } - else if (length < 65535) - { - if (! ieee_write_byte (abfd, ieee_extension_length_2_enum) - || ! ieee_write_2bytes (abfd, (int) length)) - return FALSE; - } - else - { - _bfd_error_handler - /* xgettext:c-format */ - (_("%B: string too long (%ld chars, max 65535)"), abfd, (long) length); - bfd_set_error (bfd_error_invalid_operation); - return FALSE; - } - - if (bfd_bwrite ((void *) id, (bfd_size_type) length, abfd) != length) - return FALSE; - return TRUE; -} - -/* Functions for reading from ieee files in the strange way that the - standard requires. */ - -#define this_byte(ieee) *((ieee)->input_p) -#define this_byte_and_next(ieee) ((ieee)->input_p < (ieee)->end_p ? *((ieee)->input_p++) : 0) - -static bfd_boolean -next_byte (common_header_type * ieee) -{ - ieee->input_p++; - - return ieee->input_p < ieee->last_byte; -} - -static unsigned short -read_2bytes (common_header_type *ieee) -{ - unsigned char c1 = this_byte_and_next (ieee); - unsigned char c2 = this_byte_and_next (ieee); - - return (c1 << 8) | c2; -} - -static void -bfd_get_string (common_header_type *ieee, char *string, size_t length) -{ - size_t i; - - for (i = 0; i < length; i++) - string[i] = this_byte_and_next (ieee); -} - -static char * -read_id (common_header_type *ieee) -{ - size_t length; - char *string; - - length = this_byte_and_next (ieee); - if (length <= 0x7f) - /* Simple string of length 0 to 127. */ - ; - - else if (length == 0xde) - /* Length is next byte, allowing 0..255. */ - length = this_byte_and_next (ieee); - - else if (length == 0xdf) - { - /* Length is next two bytes, allowing 0..65535. */ - length = this_byte_and_next (ieee); - length = (length * 256) + this_byte_and_next (ieee); - } - - /* PR 21612: Check for an invalid length. */ - if (ieee->input_p + length >= ieee->end_p) - { - _bfd_error_handler (_("IEEE parser: string length: %#lx longer than buffer: %#lx"), - (long) length, (long) (ieee->end_p - ieee->input_p)); - bfd_set_error (bfd_error_invalid_operation); - return NULL; - } - - /* Buy memory and read string. */ - string = bfd_alloc (ieee->abfd, (bfd_size_type) length + 1); - if (!string) - return NULL; - bfd_get_string (ieee, string, length); - string[length] = 0; - return string; -} - -static bfd_boolean -ieee_write_expression (bfd *abfd, - bfd_vma value, - asymbol *symbol, - bfd_boolean pcrel, - unsigned int sindex) -{ - unsigned int term_count = 0; - - if (value != 0) - { - if (! ieee_write_int (abfd, value)) - return FALSE; - term_count++; - } - - /* Badly formatted binaries can have a missing symbol, - so test here to prevent a seg fault. */ - if (symbol != NULL) - { - if (bfd_is_com_section (symbol->section) - || bfd_is_und_section (symbol->section)) - { - /* Def of a common symbol. */ - if (! ieee_write_byte (abfd, ieee_variable_X_enum) - || ! ieee_write_int (abfd, symbol->value)) - return FALSE; - term_count ++; - } - else if (! bfd_is_abs_section (symbol->section)) - { - /* Ref to defined symbol - */ - if (symbol->flags & BSF_GLOBAL) - { - if (! ieee_write_byte (abfd, ieee_variable_I_enum) - || ! ieee_write_int (abfd, symbol->value)) - return FALSE; - term_count++; - } - else if (symbol->flags & (BSF_LOCAL | BSF_SECTION_SYM)) - { - /* This is a reference to a defined local symbol. We can - easily do a local as a section+offset. */ - if (! ieee_write_byte (abfd, ieee_variable_R_enum) - || ! ieee_write_byte (abfd, - (bfd_byte) (symbol->section->index - + IEEE_SECTION_NUMBER_BASE))) - return FALSE; - - term_count++; - if (symbol->value != 0) - { - if (! ieee_write_int (abfd, symbol->value)) - return FALSE; - term_count++; - } - } - else - { - _bfd_error_handler - /* xgettext:c-format */ - (_("%B: unrecognized symbol `%s' flags 0x%x"), - abfd, bfd_asymbol_name (symbol), symbol->flags); - bfd_set_error (bfd_error_invalid_operation); - return FALSE; - } - } - } - - if (pcrel) - { - /* Subtract the pc from here by asking for PC of this section. */ - if (! ieee_write_byte (abfd, ieee_variable_P_enum) - || ! ieee_write_byte (abfd, - (bfd_byte) (sindex + IEEE_SECTION_NUMBER_BASE)) - || ! ieee_write_byte (abfd, ieee_function_minus_enum)) - return FALSE; - } - - /* Handle the degenerate case of a 0 address. */ - if (term_count == 0) - if (! ieee_write_int (abfd, (bfd_vma) 0)) - return FALSE; - - while (term_count > 1) - { - if (! ieee_write_byte (abfd, ieee_function_plus_enum)) - return FALSE; - term_count--; - } - - return TRUE; -} - -/* Writes any integer into the buffer supplied and always takes 5 bytes. */ - -static void -ieee_write_int5 (bfd_byte *buffer, bfd_vma value) -{ - buffer[0] = (bfd_byte) ieee_number_repeat_4_enum; - buffer[1] = (value >> 24) & 0xff; - buffer[2] = (value >> 16) & 0xff; - buffer[3] = (value >> 8) & 0xff; - buffer[4] = (value >> 0) & 0xff; -} - -static bfd_boolean -ieee_write_int5_out (bfd *abfd, bfd_vma value) -{ - bfd_byte b[5]; - - ieee_write_int5 (b, value); - if (bfd_bwrite ((void *) b, (bfd_size_type) 5, abfd) != 5) - return FALSE; - return TRUE; -} - -static bfd_boolean -parse_int (common_header_type *ieee, bfd_vma *value_ptr) -{ - int value = this_byte (ieee); - int result; - - if (value >= 0 && value <= 127) - { - *value_ptr = value; - return next_byte (ieee); - } - else if (value >= 0x80 && value <= 0x88) - { - unsigned int count = value & 0xf; - - result = 0; - if (! next_byte (ieee)) - return FALSE; - while (count) - { - result = (result << 8) | this_byte_and_next (ieee); - count--; - } - *value_ptr = result; - return TRUE; - } - return FALSE; -} - -static int -parse_i (common_header_type *ieee, bfd_boolean *ok) -{ - bfd_vma x = 0; - *ok = parse_int (ieee, &x); - return x; -} - -static bfd_vma -must_parse_int (common_header_type *ieee) -{ - bfd_vma result = 0; - BFD_ASSERT (parse_int (ieee, &result)); - return result; -} - -typedef struct -{ - bfd_vma value; - asection *section; - ieee_symbol_index_type symbol; -} ieee_value_type; - - -#if KEEPMINUSPCININST - -#define SRC_MASK(arg) arg -#define PCREL_OFFSET FALSE - -#else - -#define SRC_MASK(arg) 0 -#define PCREL_OFFSET TRUE - -#endif - -static reloc_howto_type abs32_howto = - HOWTO (1, - 0, - 2, - 32, - FALSE, - 0, - complain_overflow_bitfield, - 0, - "abs32", - TRUE, - 0xffffffff, - 0xffffffff, - FALSE); - -static reloc_howto_type abs16_howto = - HOWTO (1, - 0, - 1, - 16, - FALSE, - 0, - complain_overflow_bitfield, - 0, - "abs16", - TRUE, - 0x0000ffff, - 0x0000ffff, - FALSE); - -static reloc_howto_type abs8_howto = - HOWTO (1, - 0, - 0, - 8, - FALSE, - 0, - complain_overflow_bitfield, - 0, - "abs8", - TRUE, - 0x000000ff, - 0x000000ff, - FALSE); - -static reloc_howto_type rel32_howto = - HOWTO (1, - 0, - 2, - 32, - TRUE, - 0, - complain_overflow_signed, - 0, - "rel32", - TRUE, - SRC_MASK (0xffffffff), - 0xffffffff, - PCREL_OFFSET); - -static reloc_howto_type rel16_howto = - HOWTO (1, - 0, - 1, - 16, - TRUE, - 0, - complain_overflow_signed, - 0, - "rel16", - TRUE, - SRC_MASK (0x0000ffff), - 0x0000ffff, - PCREL_OFFSET); - -static reloc_howto_type rel8_howto = - HOWTO (1, - 0, - 0, - 8, - TRUE, - 0, - complain_overflow_signed, - 0, - "rel8", - TRUE, - SRC_MASK (0x000000ff), - 0x000000ff, - PCREL_OFFSET); - -static ieee_symbol_index_type NOSYMBOL = {0, 0}; - -static bfd_boolean -parse_expression (ieee_data_type *ieee, - bfd_vma *value, - ieee_symbol_index_type *symbol, - bfd_boolean *pcrel, - unsigned int *extra, - asection **section) - -{ - bfd_boolean loop = TRUE; - ieee_value_type stack[10]; - ieee_value_type *sp = stack; - asection *dummy; - -#define POS sp[1] -#define TOS sp[0] -#define NOS sp[-1] -#define INC sp++; -#define DEC sp--; - - /* The stack pointer always points to the next unused location. */ -#define PUSH(x,y,z) TOS.symbol = x; TOS.section = y; TOS.value = z; INC; -#define POP(x,y,z) DEC; x = TOS.symbol; y = TOS.section; z = TOS.value; - - while (loop && ieee->h.input_p < ieee->h.last_byte) - { - switch (this_byte (&(ieee->h))) - { - case ieee_variable_P_enum: - /* P variable, current program counter for section n. */ - { - int section_n; - - if (! next_byte (&(ieee->h))) - return FALSE; - *pcrel = TRUE; - section_n = must_parse_int (&(ieee->h)); - (void) section_n; - PUSH (NOSYMBOL, bfd_abs_section_ptr, 0); - break; - } - - case ieee_variable_L_enum: - /* L variable address of section N. */ - if (! next_byte (&(ieee->h))) - return FALSE; - PUSH (NOSYMBOL, ieee->section_table[must_parse_int (&(ieee->h))], 0); - break; - - case ieee_variable_R_enum: - /* R variable, logical address of section module. */ - /* FIXME, this should be different to L. */ - if (! next_byte (&(ieee->h))) - return FALSE; - PUSH (NOSYMBOL, ieee->section_table[must_parse_int (&(ieee->h))], 0); - break; - - case ieee_variable_S_enum: - /* S variable, size in MAUS of section module. */ - if (! next_byte (&(ieee->h))) - return FALSE; - PUSH (NOSYMBOL, - 0, - ieee->section_table[must_parse_int (&(ieee->h))]->size); - break; - - case ieee_variable_I_enum: - /* Push the address of variable n. */ - { - ieee_symbol_index_type sy; - - if (! next_byte (&(ieee->h))) - return FALSE; - sy.index = (int) must_parse_int (&(ieee->h)); - sy.letter = 'I'; - - PUSH (sy, bfd_abs_section_ptr, 0); - } - break; - - case ieee_variable_X_enum: - /* Push the address of external variable n. */ - { - ieee_symbol_index_type sy; - - if (! next_byte (&(ieee->h))) - return FALSE; - - sy.index = (int) (must_parse_int (&(ieee->h))); - sy.letter = 'X'; - - PUSH (sy, bfd_und_section_ptr, 0); - } - break; - - case ieee_function_minus_enum: - { - bfd_vma value1, value2; - asection *section1, *section_dummy; - ieee_symbol_index_type sy; - - if (! next_byte (&(ieee->h))) - return FALSE; - - POP (sy, section1, value1); - POP (sy, section_dummy, value2); - PUSH (sy, section1 ? section1 : section_dummy, value2 - value1); - } - break; - - case ieee_function_plus_enum: - { - bfd_vma value1, value2; - asection *section1; - asection *section2; - ieee_symbol_index_type sy1; - ieee_symbol_index_type sy2; - - if (! next_byte (&(ieee->h))) - return FALSE; - - POP (sy1, section1, value1); - POP (sy2, section2, value2); - PUSH (sy1.letter ? sy1 : sy2, - bfd_is_abs_section (section1) ? section2 : section1, - value1 + value2); - } - break; - - default: - { - bfd_vma va; - - BFD_ASSERT (this_byte (&(ieee->h)) < (int) ieee_variable_A_enum - || this_byte (&(ieee->h)) > (int) ieee_variable_Z_enum); - if (parse_int (&(ieee->h), &va)) - { - PUSH (NOSYMBOL, bfd_abs_section_ptr, va); - } - else - /* Thats all that we can understand. */ - loop = FALSE; - } - } - } - - /* As far as I can see there is a bug in the Microtec IEEE output - which I'm using to scan, whereby the comma operator is omitted - sometimes in an expression, giving expressions with too many - terms. We can tell if that's the case by ensuring that - sp == stack here. If not, then we've pushed something too far, - so we keep adding. */ - while (sp != stack + 1) - { - asection *section1; - ieee_symbol_index_type sy1; - - POP (sy1, section1, *extra); - (void) section1; - (void) sy1; - } - - POP (*symbol, dummy, *value); - if (section) - *section = dummy; - - return TRUE; -} - -#define ieee_pos(ieee) \ - (ieee->h.input_p - ieee->h.first_byte) - -/* Find the first part of the ieee file after HERE. */ - -static file_ptr -ieee_part_after (ieee_data_type *ieee, file_ptr here) -{ - int part; - file_ptr after = ieee->w.r.me_record; - - /* File parts can come in any order, except that module end is - guaranteed to be last (and the header first). */ - for (part = 0; part < N_W_VARIABLES; part++) - if (ieee->w.offset[part] > here && after > ieee->w.offset[part]) - after = ieee->w.offset[part]; - - return after; -} - -static bfd_boolean -ieee_seek (ieee_data_type * ieee, file_ptr offset) -{ - /* PR 17512: file: 017-1157-0.004. */ - if (offset < 0 || (bfd_size_type) offset >= ieee->h.total_amt) - { - ieee->h.input_p = ieee->h.first_byte + ieee->h.total_amt; - ieee->h.end_p = ieee->h.last_byte = ieee->h.input_p; - return FALSE; - } - - ieee->h.input_p = ieee->h.first_byte + offset; - ieee->h.end_p = ieee->h.last_byte = (ieee->h.first_byte + ieee_part_after (ieee, offset)); - return TRUE; -} - -static unsigned int last_index; -static char last_type; /* Is the index for an X or a D. */ - -static ieee_symbol_type * -get_symbol (bfd *abfd ATTRIBUTE_UNUSED, - ieee_data_type *ieee, - ieee_symbol_type *last_symbol, - unsigned int *symbol_count, - ieee_symbol_type ***pptr, - unsigned int *max_index, - int this_type) -{ - /* Need a new symbol. */ - unsigned int new_index = must_parse_int (&(ieee->h)); - - if (new_index != last_index || this_type != last_type) - { - ieee_symbol_type *new_symbol; - bfd_size_type amt = sizeof (ieee_symbol_type); - - new_symbol = bfd_alloc (ieee->h.abfd, amt); - if (!new_symbol) - return NULL; - - new_symbol->index = new_index; - last_index = new_index; - (*symbol_count)++; - **pptr = new_symbol; - *pptr = &new_symbol->next; - if (new_index > *max_index) - *max_index = new_index; - - last_type = this_type; - new_symbol->symbol.section = bfd_abs_section_ptr; - return new_symbol; - } - return last_symbol; -} - -static bfd_boolean -ieee_slurp_external_symbols (bfd *abfd) -{ - ieee_data_type *ieee = IEEE_DATA (abfd); - file_ptr offset = ieee->w.r.external_part; - - ieee_symbol_type **prev_symbols_ptr = &ieee->external_symbols; - ieee_symbol_type **prev_reference_ptr = &ieee->external_reference; - ieee_symbol_type *symbol = NULL; - unsigned int symbol_count = 0; - bfd_boolean loop = TRUE; - - last_index = 0xffffff; - ieee->symbol_table_full = TRUE; - - if (! ieee_seek (ieee, offset)) - return FALSE; - - while (loop) - { - switch (this_byte (&(ieee->h))) - { - case ieee_nn_record: - if (! next_byte (&(ieee->h))) - return FALSE; - - symbol = get_symbol (abfd, ieee, symbol, &symbol_count, - & prev_symbols_ptr, - & ieee->external_symbol_max_index, 'I'); - if (symbol == NULL) - return FALSE; - - symbol->symbol.the_bfd = abfd; - symbol->symbol.name = read_id (&(ieee->h)); - symbol->symbol.udata.p = NULL; - symbol->symbol.flags = BSF_NO_FLAGS; - break; - - case ieee_external_symbol_enum: - if (! next_byte (&(ieee->h))) - return FALSE; - - symbol = get_symbol (abfd, ieee, symbol, &symbol_count, - &prev_symbols_ptr, - &ieee->external_symbol_max_index, 'D'); - if (symbol == NULL) - return FALSE; - - BFD_ASSERT (symbol->index >= ieee->external_symbol_min_index); - - symbol->symbol.the_bfd = abfd; - symbol->symbol.name = read_id (&(ieee->h)); - symbol->symbol.udata.p = NULL; - symbol->symbol.flags = BSF_NO_FLAGS; - break; - case ieee_attribute_record_enum >> 8: - { - unsigned int symbol_name_index; - unsigned int symbol_type_index; - unsigned int symbol_attribute_def; - bfd_vma value = 0; - - switch (read_2bytes (&ieee->h)) - { - case ieee_attribute_record_enum: - symbol_name_index = must_parse_int (&(ieee->h)); - symbol_type_index = must_parse_int (&(ieee->h)); - (void) symbol_type_index; - symbol_attribute_def = must_parse_int (&(ieee->h)); - switch (symbol_attribute_def) - { - case 8: - case 19: - parse_int (&ieee->h, &value); - break; - default: - _bfd_error_handler - /* xgettext:c-format */ - (_("%B: unimplemented ATI record %u for symbol %u"), - abfd, symbol_attribute_def, symbol_name_index); - bfd_set_error (bfd_error_bad_value); - return FALSE; - break; - } - break; - case ieee_external_reference_info_record_enum: - /* Skip over ATX record. */ - parse_int (&(ieee->h), &value); - parse_int (&(ieee->h), &value); - parse_int (&(ieee->h), &value); - parse_int (&(ieee->h), &value); - break; - case ieee_atn_record_enum: - /* We may get call optimization information here, - which we just ignore. The format is - {$F1}${CE}{index}{$00}{$3F}{$3F}{#_of_ASNs}. */ - parse_int (&ieee->h, &value); - parse_int (&ieee->h, &value); - parse_int (&ieee->h, &value); - if (value != 0x3f) - { - _bfd_error_handler - /* xgettext:c-format */ - (_("%B: unexpected ATN type %Ld in external part"), - abfd, value); - bfd_set_error (bfd_error_bad_value); - return FALSE; - } - parse_int (&ieee->h, &value); - parse_int (&ieee->h, &value); - while (value > 0) - { - bfd_vma val1; - - --value; - - switch (read_2bytes (&ieee->h)) - { - case ieee_asn_record_enum: - parse_int (&ieee->h, &val1); - parse_int (&ieee->h, &val1); - break; - - default: - _bfd_error_handler - (_("%B: unexpected type after ATN"), abfd); - bfd_set_error (bfd_error_bad_value); - return FALSE; - } - } - } - } - break; - - case ieee_value_record_enum >> 8: - { - unsigned int symbol_name_index; - ieee_symbol_index_type symbol_ignore; - bfd_boolean pcrel_ignore; - unsigned int extra; - - if (! next_byte (&(ieee->h))) - return FALSE; - if (! next_byte (&(ieee->h))) - return FALSE; - - symbol_name_index = must_parse_int (&(ieee->h)); - (void) symbol_name_index; - if (! parse_expression (ieee, - &symbol->symbol.value, - &symbol_ignore, - &pcrel_ignore, - &extra, - &symbol->symbol.section)) - return FALSE; - - /* Fully linked IEEE-695 files tend to give every symbol - an absolute value. Try to convert that back into a - section relative value. FIXME: This won't always to - the right thing. */ - if (bfd_is_abs_section (symbol->symbol.section) - && (abfd->flags & HAS_RELOC) == 0) - { - bfd_vma val; - asection *s; - - val = symbol->symbol.value; - for (s = abfd->sections; s != NULL; s = s->next) - { - if (val >= s->vma && val < s->vma + s->size) - { - symbol->symbol.section = s; - symbol->symbol.value -= s->vma; - break; - } - } - } - - symbol->symbol.flags = BSF_GLOBAL | BSF_EXPORT; - - } - break; - case ieee_weak_external_reference_enum: - { - bfd_vma size; - bfd_vma value; - - if (! next_byte (&(ieee->h))) - return FALSE; - - /* Throw away the external reference index. */ - (void) must_parse_int (&(ieee->h)); - /* Fetch the default size if not resolved. */ - size = must_parse_int (&(ieee->h)); - /* Fetch the default value if available. */ - if (! parse_int (&(ieee->h), &value)) - value = 0; - /* This turns into a common. */ - symbol->symbol.section = bfd_com_section_ptr; - symbol->symbol.value = size; - } - break; - - case ieee_external_reference_enum: - if (! next_byte (&(ieee->h))) - return FALSE; - - symbol = get_symbol (abfd, ieee, symbol, &symbol_count, - &prev_reference_ptr, - &ieee->external_reference_max_index, 'X'); - if (symbol == NULL) - return FALSE; - - symbol->symbol.the_bfd = abfd; - symbol->symbol.name = read_id (&(ieee->h)); - symbol->symbol.udata.p = NULL; - symbol->symbol.section = bfd_und_section_ptr; - symbol->symbol.value = (bfd_vma) 0; - symbol->symbol.flags = 0; - - BFD_ASSERT (symbol->index >= ieee->external_reference_min_index); - break; - - default: - loop = FALSE; - } - } - - if (ieee->external_symbol_max_index != 0) - { - ieee->external_symbol_count = - ieee->external_symbol_max_index - - ieee->external_symbol_min_index + 1; - } - else - ieee->external_symbol_count = 0; - - if (ieee->external_reference_max_index != 0) - { - ieee->external_reference_count = - ieee->external_reference_max_index - - ieee->external_reference_min_index + 1; - } - else - ieee->external_reference_count = 0; - - abfd->symcount = - ieee->external_reference_count + ieee->external_symbol_count; - - if (symbol_count != abfd->symcount) - /* There are gaps in the table -- */ - ieee->symbol_table_full = FALSE; - - *prev_symbols_ptr = NULL; - *prev_reference_ptr = NULL; - - return TRUE; -} - -static bfd_boolean -ieee_slurp_symbol_table (bfd *abfd) -{ - if (! IEEE_DATA (abfd)->read_symbols) - { - if (! ieee_slurp_external_symbols (abfd)) - return FALSE; - IEEE_DATA (abfd)->read_symbols = TRUE; - } - return TRUE; -} - -static long -ieee_get_symtab_upper_bound (bfd *abfd) -{ - if (! ieee_slurp_symbol_table (abfd)) - return -1; - - return (abfd->symcount != 0) ? - (abfd->symcount + 1) * (sizeof (ieee_symbol_type *)) : 0; -} - -/* Move from our internal lists to the canon table, and insert in - symbol index order. */ - -extern const bfd_target ieee_vec; - -static long -ieee_canonicalize_symtab (bfd *abfd, asymbol **location) -{ - ieee_symbol_type *symp; - static bfd dummy_bfd; - static asymbol empty_symbol = - { - &dummy_bfd, - " ieee empty", - (symvalue) 0, - BSF_DEBUGGING, - bfd_abs_section_ptr -#ifdef __STDC__ - /* K&R compilers can't initialise unions. */ - , { 0 } -#endif - }; - - if (abfd->symcount) - { - ieee_data_type *ieee = IEEE_DATA (abfd); - - dummy_bfd.xvec = &ieee_vec; - if (! ieee_slurp_symbol_table (abfd)) - return -1; - - if (! ieee->symbol_table_full) - { - /* Arrgh - there are gaps in the table, run through and fill them - up with pointers to a null place. */ - unsigned int i; - - for (i = 0; i < abfd->symcount; i++) - location[i] = &empty_symbol; - } - - ieee->external_symbol_base_offset = -ieee->external_symbol_min_index; - for (symp = IEEE_DATA (abfd)->external_symbols; - symp != (ieee_symbol_type *) NULL; - symp = symp->next) - /* Place into table at correct index locations. */ - location[symp->index + ieee->external_symbol_base_offset] = &symp->symbol; - - /* The external refs are indexed in a bit. */ - ieee->external_reference_base_offset = - -ieee->external_reference_min_index + ieee->external_symbol_count; - - for (symp = IEEE_DATA (abfd)->external_reference; - symp != (ieee_symbol_type *) NULL; - symp = symp->next) - location[symp->index + ieee->external_reference_base_offset] = - &symp->symbol; - } - - if (abfd->symcount) - location[abfd->symcount] = (asymbol *) NULL; - - return abfd->symcount; -} - -static asection * -get_section_entry (bfd *abfd, ieee_data_type *ieee, unsigned int sindex) -{ - if (sindex >= ieee->section_table_size) - { - unsigned int c, i; - asection **n; - bfd_size_type amt; - - c = ieee->section_table_size; - if (c == 0) - c = 20; - while (c <= sindex) - c *= 2; - - amt = c; - amt *= sizeof (asection *); - n = bfd_realloc (ieee->section_table, amt); - if (n == NULL) - return NULL; - - for (i = ieee->section_table_size; i < c; i++) - n[i] = NULL; - - ieee->section_table = n; - ieee->section_table_size = c; - } - - if (ieee->section_table[sindex] == (asection *) NULL) - { - char *tmp = bfd_alloc (abfd, (bfd_size_type) 11); - asection *section; - - if (!tmp) - return NULL; - sprintf (tmp, " fsec%4d", sindex); - section = bfd_make_section (abfd, tmp); - ieee->section_table[sindex] = section; - section->target_index = sindex; - ieee->section_table[sindex] = section; - } - return ieee->section_table[sindex]; -} - -static bfd_boolean -ieee_slurp_sections (bfd *abfd) -{ - ieee_data_type *ieee = IEEE_DATA (abfd); - file_ptr offset = ieee->w.r.section_part; - char *name; - - if (offset != 0) - { - bfd_byte section_type[3]; - - if (! ieee_seek (ieee, offset)) - return FALSE; - - while (TRUE) - { - switch (this_byte (&(ieee->h))) - { - case ieee_section_type_enum: - { - asection *section; - unsigned int section_index; - - if (! next_byte (&(ieee->h))) - return FALSE; - section_index = must_parse_int (&(ieee->h)); - - section = get_section_entry (abfd, ieee, section_index); - - section_type[0] = this_byte_and_next (&(ieee->h)); - - /* Set minimal section attributes. Attributes are - extended later, based on section contents. */ - switch (section_type[0]) - { - case 0xC1: - /* Normal attributes for absolute sections. */ - section_type[1] = this_byte (&(ieee->h)); - section->flags = SEC_ALLOC; - switch (section_type[1]) - { - /* AS Absolute section attributes. */ - case 0xD3: - if (! next_byte (&(ieee->h))) - return FALSE; - section_type[2] = this_byte (&(ieee->h)); - switch (section_type[2]) - { - case 0xD0: - /* Normal code. */ - if (! next_byte (&(ieee->h))) - return FALSE; - section->flags |= SEC_CODE; - break; - case 0xC4: - /* Normal data. */ - if (! next_byte (&(ieee->h))) - return FALSE; - section->flags |= SEC_DATA; - break; - case 0xD2: - if (! next_byte (&(ieee->h))) - return FALSE; - /* Normal rom data. */ - section->flags |= SEC_ROM | SEC_DATA; - break; - default: - break; - } - } - break; - - /* Named relocatable sections (type C). */ - case 0xC3: - section_type[1] = this_byte (&(ieee->h)); - section->flags = SEC_ALLOC; - switch (section_type[1]) - { - case 0xD0: /* Normal code (CP). */ - if (! next_byte (&(ieee->h))) - return FALSE; - section->flags |= SEC_CODE; - break; - case 0xC4: /* Normal data (CD). */ - if (! next_byte (&(ieee->h))) - return FALSE; - section->flags |= SEC_DATA; - break; - case 0xD2: /* Normal rom data (CR). */ - if (! next_byte (&(ieee->h))) - return FALSE; - section->flags |= SEC_ROM | SEC_DATA; - break; - default: - break; - } - } - - /* Read section name, use it if non empty. */ - name = read_id (&ieee->h); - if (name == NULL) - return FALSE; - if (name[0]) - section->name = name; - - /* Skip these fields, which we don't care about. */ - { - bfd_vma parent, brother, context; - - parse_int (&(ieee->h), &parent); - parse_int (&(ieee->h), &brother); - parse_int (&(ieee->h), &context); - } - } - break; - case ieee_section_alignment_enum: - { - unsigned int section_index; - bfd_vma value; - asection *section; - - if (! next_byte (&(ieee->h))) - return FALSE; - section_index = must_parse_int (&ieee->h); - section = get_section_entry (abfd, ieee, section_index); - if (section_index > ieee->section_count) - ieee->section_count = section_index; - - section->alignment_power = - bfd_log2 (must_parse_int (&ieee->h)); - (void) parse_int (&(ieee->h), &value); - } - break; - case ieee_e2_first_byte_enum: - { - asection *section; - ieee_record_enum_type t; - - t = (ieee_record_enum_type) (read_2bytes (&(ieee->h))); - switch (t) - { - case ieee_section_size_enum: - section = ieee->section_table[must_parse_int (&(ieee->h))]; - section->size = must_parse_int (&(ieee->h)); - break; - case ieee_physical_region_size_enum: - section = ieee->section_table[must_parse_int (&(ieee->h))]; - section->size = must_parse_int (&(ieee->h)); - break; - case ieee_region_base_address_enum: - section = ieee->section_table[must_parse_int (&(ieee->h))]; - section->vma = must_parse_int (&(ieee->h)); - section->lma = section->vma; - break; - case ieee_mau_size_enum: - must_parse_int (&(ieee->h)); - must_parse_int (&(ieee->h)); - break; - case ieee_m_value_enum: - must_parse_int (&(ieee->h)); - must_parse_int (&(ieee->h)); - break; - case ieee_section_base_address_enum: - section = ieee->section_table[must_parse_int (&(ieee->h))]; - section->vma = must_parse_int (&(ieee->h)); - section->lma = section->vma; - break; - case ieee_section_offset_enum: - (void) must_parse_int (&(ieee->h)); - (void) must_parse_int (&(ieee->h)); - break; - default: - return TRUE; - } - } - break; - default: - return TRUE; - } - } - } - - return TRUE; -} - -/* Make a section for the debugging information, if any. We don't try - to interpret the debugging information; we just point the section - at the area in the file so that program which understand can dig it - out. */ - -static bfd_boolean -ieee_slurp_debug (bfd *abfd) -{ - ieee_data_type *ieee = IEEE_DATA (abfd); - asection *sec; - file_ptr debug_end; - flagword flags; - - if (ieee->w.r.debug_information_part == 0) - return TRUE; - - flags = SEC_DEBUGGING | SEC_HAS_CONTENTS; - sec = bfd_make_section_with_flags (abfd, ".debug", flags); - if (sec == NULL) - return FALSE; - sec->filepos = ieee->w.r.debug_information_part; - - debug_end = ieee_part_after (ieee, ieee->w.r.debug_information_part); - sec->size = debug_end - ieee->w.r.debug_information_part; - - return TRUE; -} - -/* Archive stuff. */ - -static const bfd_target * -ieee_archive_p (bfd *abfd) -{ - char *library; - unsigned int i; - static unsigned char buffer[512]; - file_ptr buffer_offset = 0; - ieee_ar_data_type *save = abfd->tdata.ieee_ar_data; - ieee_ar_data_type *ieee; - bfd_size_type alc_elts; - ieee_ar_obstack_type *elts = NULL; - bfd_size_type amt = sizeof (ieee_ar_data_type); - - abfd->tdata.ieee_ar_data = bfd_alloc (abfd, amt); - if (!abfd->tdata.ieee_ar_data) - goto error_ret_restore; - ieee = IEEE_AR_DATA (abfd); - - /* Ignore the return value here. It doesn't matter if we don't read - the entire buffer. We might have a very small ieee file. */ - if (bfd_bread ((void *) buffer, (bfd_size_type) sizeof (buffer), abfd) <= 0) - goto got_wrong_format_error; - - ieee->h.first_byte = buffer; - ieee->h.input_p = buffer; - ieee->h.total_amt = sizeof (buffer); - ieee->h.end_p = buffer + sizeof (buffer); - - ieee->h.abfd = abfd; - - if (this_byte (&(ieee->h)) != Module_Beginning) - goto got_wrong_format_error; - - (void) next_byte (&(ieee->h)); - - library = read_id (&(ieee->h)); - if (library == NULL) - goto got_wrong_format_error; - if (strcmp (library, "LIBRARY") != 0) - goto got_wrong_format_error; - - /* Throw away the filename. */ - read_id (&(ieee->h)); - - ieee->element_count = 0; - ieee->element_index = 0; - - (void) next_byte (&(ieee->h)); /* Drop the ad part. */ - must_parse_int (&(ieee->h)); /* And the two dummy numbers. */ - must_parse_int (&(ieee->h)); - - alc_elts = 10; - elts = bfd_malloc (alc_elts * sizeof *elts); - if (elts == NULL) - goto error_return; - - /* Read the index of the BB table. */ - while (1) - { - int rec; - ieee_ar_obstack_type *t; - - rec = read_2bytes (&(ieee->h)); - if (rec != (int) ieee_assign_value_to_variable_enum) - break; - - if (ieee->element_count >= alc_elts) - { - ieee_ar_obstack_type *n; - - alc_elts *= 2; - n = bfd_realloc (elts, alc_elts * sizeof (* elts)); - if (n == NULL) - goto error_return; - elts = n; - } - - t = &elts[ieee->element_count]; - ieee->element_count++; - - must_parse_int (&(ieee->h)); - t->file_offset = must_parse_int (&(ieee->h)); - t->abfd = (bfd *) NULL; - - /* Make sure that we don't go over the end of the buffer. */ - if ((size_t) ieee_pos (IEEE_DATA (abfd)) > sizeof (buffer) / 2) - { - /* Past half way, reseek and reprime. */ - buffer_offset += ieee_pos (IEEE_DATA (abfd)); - if (bfd_seek (abfd, buffer_offset, SEEK_SET) != 0) - goto error_return; - - /* Again ignore return value of bfd_bread. */ - bfd_bread ((void *) buffer, (bfd_size_type) sizeof (buffer), abfd); - ieee->h.first_byte = buffer; - ieee->h.input_p = buffer; - ieee->h.total_amt = sizeof (buffer); - ieee->h.end_p = buffer + sizeof (buffer); - } - } - - amt = ieee->element_count; - amt *= sizeof *ieee->elements; - ieee->elements = bfd_alloc (abfd, amt); - if (ieee->elements == NULL) - goto error_return; - - memcpy (ieee->elements, elts, (size_t) amt); - free (elts); - elts = NULL; - - /* Now scan the area again, and replace BB offsets with file offsets. */ - for (i = 2; i < ieee->element_count; i++) - { - if (bfd_seek (abfd, ieee->elements[i].file_offset, SEEK_SET) != 0) - goto error_return; - - /* Again ignore return value of bfd_bread. */ - bfd_bread ((void *) buffer, (bfd_size_type) sizeof (buffer), abfd); - ieee->h.first_byte = buffer; - ieee->h.input_p = buffer; - ieee->h.total_amt = sizeof (buffer); - ieee->h.end_p = buffer + sizeof (buffer); - - (void) next_byte (&(ieee->h)); /* Drop F8. */ - if (! next_byte (&(ieee->h))) /* Drop 14. */ - goto error_return; - must_parse_int (&(ieee->h)); /* Drop size of block. */ - - if (must_parse_int (&(ieee->h)) != 0) - /* This object has been deleted. */ - ieee->elements[i].file_offset = 0; - else - ieee->elements[i].file_offset = must_parse_int (&(ieee->h)); - } - - /* abfd->has_armap = ;*/ - - return abfd->xvec; - - got_wrong_format_error: - bfd_set_error (bfd_error_wrong_format); - error_return: - if (elts != NULL) - free (elts); - bfd_release (abfd, ieee); - error_ret_restore: - abfd->tdata.ieee_ar_data = save; - - return NULL; -} - -static bfd_boolean -ieee_mkobject (bfd *abfd) -{ - bfd_size_type amt; - - output_ptr_start = NULL; - output_ptr = NULL; - output_ptr_end = NULL; - input_ptr_start = NULL; - input_ptr = NULL; - input_ptr_end = NULL; - input_bfd = NULL; - output_bfd = NULL; - output_buffer = 0; - amt = sizeof (ieee_data_type); - abfd->tdata.ieee_data = bfd_zalloc (abfd, amt); - return abfd->tdata.ieee_data != NULL; -} - -static bfd_boolean -do_one (ieee_data_type *ieee, - ieee_per_section_type *current_map, - unsigned char *location_ptr, - asection *s, - int iterations) -{ - switch (this_byte (&(ieee->h))) - { - case ieee_load_constant_bytes_enum: - { - unsigned int number_of_maus; - unsigned int i; - - if (! next_byte (&(ieee->h))) - return FALSE; - number_of_maus = must_parse_int (&(ieee->h)); - - for (i = 0; i < number_of_maus; i++) - { - location_ptr[current_map->pc++] = this_byte (&(ieee->h)); - next_byte (&(ieee->h)); - } - } - break; - - case ieee_load_with_relocation_enum: - { - bfd_boolean loop = TRUE; - - if (! next_byte (&(ieee->h))) - return FALSE; - while (loop) - { - switch (this_byte (&(ieee->h))) - { - case ieee_variable_R_enum: - - case ieee_function_signed_open_b_enum: - case ieee_function_unsigned_open_b_enum: - case ieee_function_either_open_b_enum: - { - unsigned int extra = 4; - bfd_boolean pcrel = FALSE; - asection *section; - ieee_reloc_type *r; - - r = bfd_alloc (ieee->h.abfd, sizeof (* r)); - if (!r) - return FALSE; - - *(current_map->reloc_tail_ptr) = r; - current_map->reloc_tail_ptr = &r->next; - r->next = (ieee_reloc_type *) NULL; - if (! next_byte (&(ieee->h))) - return FALSE; - - r->relent.sym_ptr_ptr = 0; - if (! parse_expression (ieee, - &r->relent.addend, - &r->symbol, - &pcrel, &extra, §ion)) - return FALSE; - - r->relent.address = current_map->pc; - s->flags |= SEC_RELOC; - s->owner->flags |= HAS_RELOC; - s->reloc_count++; - if (r->relent.sym_ptr_ptr == NULL && section != NULL) - r->relent.sym_ptr_ptr = section->symbol_ptr_ptr; - - if (this_byte (&(ieee->h)) == (int) ieee_comma) - { - if (! next_byte (&(ieee->h))) - return FALSE; - /* Fetch number of bytes to pad. */ - extra = must_parse_int (&(ieee->h)); - }; - - switch (this_byte (&(ieee->h))) - { - case ieee_function_signed_close_b_enum: - if (! next_byte (&(ieee->h))) - return FALSE; - break; - case ieee_function_unsigned_close_b_enum: - if (! next_byte (&(ieee->h))) - return FALSE; - break; - case ieee_function_either_close_b_enum: - if (! next_byte (&(ieee->h))) - return FALSE; - break; - default: - break; - } - /* Build a relocation entry for this type. */ - /* If pc rel then stick -ve pc into instruction - and take out of reloc .. - - I've changed this. It's all too complicated. I - keep 0 in the instruction now. */ - - switch (extra) - { - case 0: - case 4: - - if (pcrel) - { -#if KEEPMINUSPCININST - bfd_put_32 (ieee->h.abfd, -current_map->pc, - location_ptr + current_map->pc); - r->relent.howto = &rel32_howto; - r->relent.addend -= current_map->pc; -#else - bfd_put_32 (ieee->h.abfd, (bfd_vma) 0, location_ptr + - current_map->pc); - r->relent.howto = &rel32_howto; -#endif - } - else - { - bfd_put_32 (ieee->h.abfd, (bfd_vma) 0, - location_ptr + current_map->pc); - r->relent.howto = &abs32_howto; - } - current_map->pc += 4; - break; - case 2: - if (pcrel) - { -#if KEEPMINUSPCININST - bfd_put_16 (ieee->h.abfd, (bfd_vma) -current_map->pc, - location_ptr + current_map->pc); - r->relent.addend -= current_map->pc; - r->relent.howto = &rel16_howto; -#else - - bfd_put_16 (ieee->h.abfd, (bfd_vma) 0, - location_ptr + current_map->pc); - r->relent.howto = &rel16_howto; -#endif - } - - else - { - bfd_put_16 (ieee->h.abfd, (bfd_vma) 0, - location_ptr + current_map->pc); - r->relent.howto = &abs16_howto; - } - current_map->pc += 2; - break; - case 1: - if (pcrel) - { -#if KEEPMINUSPCININST - bfd_put_8 (ieee->h.abfd, (int) (-current_map->pc), location_ptr + current_map->pc); - r->relent.addend -= current_map->pc; - r->relent.howto = &rel8_howto; -#else - bfd_put_8 (ieee->h.abfd, 0, location_ptr + current_map->pc); - r->relent.howto = &rel8_howto; -#endif - } - else - { - bfd_put_8 (ieee->h.abfd, 0, location_ptr + current_map->pc); - r->relent.howto = &abs8_howto; - } - current_map->pc += 1; - break; - - default: - BFD_FAIL (); - return FALSE; - } - } - break; - default: - { - bfd_vma this_size; - - if (parse_int (&(ieee->h), &this_size)) - { - unsigned int i; - - for (i = 0; i < this_size; i++) - { - location_ptr[current_map->pc++] = this_byte (&(ieee->h)); - if (! next_byte (&(ieee->h))) - return FALSE; - } - } - else - loop = FALSE; - } - } - - /* Prevent more than the first load-item of an LR record - from being repeated (MRI convention). */ - if (iterations != 1) - loop = FALSE; - } - } - } - return TRUE; -} - -/* Read in all the section data and relocation stuff too. */ - -static bfd_boolean -ieee_slurp_section_data (bfd *abfd) -{ - bfd_byte *location_ptr = (bfd_byte *) NULL; - ieee_data_type *ieee = IEEE_DATA (abfd); - unsigned int section_number; - ieee_per_section_type *current_map = NULL; - asection *s; - - /* Seek to the start of the data area. */ - if (ieee->read_data) - return TRUE; - ieee->read_data = TRUE; - - if (! ieee_seek (ieee, ieee->w.r.data_part)) - return FALSE; - - /* Allocate enough space for all the section contents. */ - for (s = abfd->sections; s != (asection *) NULL; s = s->next) - { - ieee_per_section_type *per = ieee_per_section (s); - arelent **relpp; - - if ((s->flags & SEC_DEBUGGING) != 0) - continue; - per->data = bfd_alloc (ieee->h.abfd, s->size); - if (!per->data) - return FALSE; - relpp = &s->relocation; - per->reloc_tail_ptr = (ieee_reloc_type **) relpp; - } - - while (TRUE) - { - switch (this_byte (&(ieee->h))) - { - /* IF we see anything strange then quit. */ - default: - return TRUE; - - case ieee_set_current_section_enum: - if (! next_byte (&(ieee->h))) - return FALSE; - section_number = must_parse_int (&(ieee->h)); - s = ieee->section_table[section_number]; - s->flags |= SEC_LOAD | SEC_HAS_CONTENTS; - current_map = ieee_per_section (s); - location_ptr = current_map->data - s->vma; - /* The document I have says that Microtec's compilers reset - this after a sec section, even though the standard says not - to, SO... */ - current_map->pc = s->vma; - break; - - case ieee_e2_first_byte_enum: - if (! next_byte (&(ieee->h))) - return FALSE; - switch (this_byte (&(ieee->h))) - { - case ieee_set_current_pc_enum & 0xff: - { - bfd_vma value; - ieee_symbol_index_type symbol; - unsigned int extra; - bfd_boolean pcrel; - - if (! next_byte (&(ieee->h))) - return FALSE; - must_parse_int (&(ieee->h)); /* Throw away section #. */ - if (! parse_expression (ieee, &value, - &symbol, - &pcrel, &extra, - 0)) - return FALSE; - - current_map->pc = value; - BFD_ASSERT ((unsigned) (value - s->vma) <= s->size); - } - break; - - case ieee_value_starting_address_enum & 0xff: - if (! next_byte (&(ieee->h))) - return FALSE; - if (this_byte (&(ieee->h)) == ieee_function_either_open_b_enum) - { - if (! next_byte (&(ieee->h))) - return FALSE; - } - abfd->start_address = must_parse_int (&(ieee->h)); - /* We've got to the end of the data now - */ - return TRUE; - default: - BFD_FAIL (); - return FALSE; - } - break; - case ieee_repeat_data_enum: - { - /* Repeat the following LD or LR n times - we do this by - remembering the stream pointer before running it and - resetting it and running it n times. We special case - the repetition of a repeat_data/load_constant. */ - unsigned int iterations; - unsigned char *start; - - if (! next_byte (&(ieee->h))) - return FALSE; - iterations = must_parse_int (&(ieee->h)); - start = ieee->h.input_p; - if (start[0] == (int) ieee_load_constant_bytes_enum - && start[1] == 1) - { - while (iterations != 0) - { - location_ptr[current_map->pc++] = start[2]; - iterations--; - } - (void) next_byte (&(ieee->h)); - (void) next_byte (&(ieee->h)); - if (! next_byte (&(ieee->h))) - return FALSE; - } - else - { - while (iterations != 0) - { - ieee->h.input_p = start; - if (!do_one (ieee, current_map, location_ptr, s, - (int) iterations)) - return FALSE; - iterations--; - } - } - } - break; - case ieee_load_constant_bytes_enum: - case ieee_load_with_relocation_enum: - if (!do_one (ieee, current_map, location_ptr, s, 1)) - return FALSE; - } - } -} - -static const bfd_target * -ieee_object_p (bfd *abfd) -{ - char *processor; - unsigned int part; - ieee_data_type *ieee; - static unsigned char buffer[300]; - ieee_data_type *save = IEEE_DATA (abfd); - bfd_size_type amt; - - abfd->tdata.ieee_data = 0; - ieee_mkobject (abfd); - - ieee = IEEE_DATA (abfd); - if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) - goto fail; - /* Read the first few bytes in to see if it makes sense. Ignore - bfd_bread return value; The file might be very small. */ - if (bfd_bread ((void *) buffer, (bfd_size_type) sizeof (buffer), abfd) <= 0) - goto got_wrong_format; - - ieee->h.input_p = buffer; - ieee->h.total_amt = sizeof (buffer); - ieee->h.end_p = buffer + sizeof (buffer); - - if (this_byte_and_next (&(ieee->h)) != Module_Beginning) - goto got_wrong_format; - - ieee->read_symbols = FALSE; - ieee->read_data = FALSE; - ieee->section_count = 0; - ieee->external_symbol_max_index = 0; - ieee->external_symbol_min_index = IEEE_PUBLIC_BASE; - ieee->external_reference_min_index = IEEE_REFERENCE_BASE; - ieee->external_reference_max_index = 0; - ieee->h.abfd = abfd; - ieee->section_table = NULL; - ieee->section_table_size = 0; - - processor = ieee->mb.processor = read_id (&(ieee->h)); - if (processor == NULL) - goto got_wrong_format; - if (strcmp (processor, "LIBRARY") == 0) - goto got_wrong_format; - ieee->mb.module_name = read_id (&(ieee->h)); - if (ieee->mb.module_name == NULL) - goto got_wrong_format; - if (abfd->filename == (const char *) NULL) - abfd->filename = xstrdup (ieee->mb.module_name); - - /* Determine the architecture and machine type of the object file. */ - { - const bfd_arch_info_type *arch; - char family[10]; - - /* IEEE does not specify the format of the processor identification - string, so the compiler is free to put in it whatever it wants. - We try here to recognize different processors belonging to the - m68k family. Code for other processors can be added here. */ - if ((processor[0] == '6') && (processor[1] == '8')) - { - if (processor[2] == '3') /* 683xx integrated processors. */ - { - switch (processor[3]) - { - case '0': /* 68302, 68306, 68307 */ - case '2': /* 68322, 68328 */ - case '5': /* 68356 */ - strcpy (family, "68000"); /* MC68000-based controllers. */ - break; - - case '3': /* 68330, 68331, 68332, 68333, - 68334, 68335, 68336, 68338 */ - case '6': /* 68360 */ - case '7': /* 68376 */ - strcpy (family, "68332"); /* CPU32 and CPU32+ */ - break; - - case '4': - if (processor[4] == '9') /* 68349 */ - strcpy (family, "68030"); /* CPU030 */ - else /* 68340, 68341 */ - strcpy (family, "68332"); /* CPU32 and CPU32+ */ - break; - - default: /* Does not exist yet. */ - strcpy (family, "68332"); /* Guess it will be CPU32 */ - } - } - else if (TOUPPER (processor[3]) == 'F') /* 68F333 */ - strcpy (family, "68332"); /* CPU32 */ - else if ((TOUPPER (processor[3]) == 'C') /* Embedded controllers. */ - && ((TOUPPER (processor[2]) == 'E') - || (TOUPPER (processor[2]) == 'H') - || (TOUPPER (processor[2]) == 'L'))) - { - strcpy (family, "68"); - strncat (family, processor + 4, 7); - family[9] = '\0'; - } - else /* "Regular" processors. */ - { - strncpy (family, processor, 9); - family[9] = '\0'; - } - } - else if ((CONST_STRNEQ (processor, "cpu32")) /* CPU32 and CPU32+ */ - || (CONST_STRNEQ (processor, "CPU32"))) - strcpy (family, "68332"); - else - { - strncpy (family, processor, 9); - family[9] = '\0'; - } - - arch = bfd_scan_arch (family); - if (arch == 0) - goto got_wrong_format; - abfd->arch_info = arch; - } - - if (this_byte (&(ieee->h)) != (int) ieee_address_descriptor_enum) - goto fail; - - if (! next_byte (&(ieee->h))) - goto fail; - - if (! parse_int (&(ieee->h), &ieee->ad.number_of_bits_mau)) - goto fail; - - if (! parse_int (&(ieee->h), &ieee->ad.number_of_maus_in_address)) - goto fail; - - /* If there is a byte order info, take it. */ - if (this_byte (&(ieee->h)) == (int) ieee_variable_L_enum - || this_byte (&(ieee->h)) == (int) ieee_variable_M_enum) - { - if (! next_byte (&(ieee->h))) - goto fail; - } - - for (part = 0; part < N_W_VARIABLES; part++) - { - bfd_boolean ok; - - if (read_2bytes (&(ieee->h)) != (int) ieee_assign_value_to_variable_enum) - goto fail; - - if (this_byte_and_next (&(ieee->h)) != part) - goto fail; - - ieee->w.offset[part] = parse_i (&(ieee->h), &ok); - if (! ok) - goto fail; - } - - if (ieee->w.r.external_part != 0) - abfd->flags = HAS_SYMS; - - /* By now we know that this is a real IEEE file, we're going to read - the whole thing into memory so that we can run up and down it - quickly. We can work out how big the file is from the trailer - record. */ - - amt = ieee->w.r.me_record + 1; - IEEE_DATA (abfd)->h.first_byte = bfd_alloc (ieee->h.abfd, amt); - if (!IEEE_DATA (abfd)->h.first_byte) - goto fail; - if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) - goto fail; - - /* FIXME: Check return value. I'm not sure whether it needs to read - the entire buffer or not. */ - amt = bfd_bread ((void *) (IEEE_DATA (abfd)->h.first_byte), - (bfd_size_type) ieee->w.r.me_record + 1, abfd); - if (amt <= 0) - goto fail; - - IEEE_DATA (abfd)->h.total_amt = amt; - if (ieee_slurp_sections (abfd)) - goto fail; - - if (! ieee_slurp_debug (abfd)) - goto fail; - - /* Parse section data to activate file and section flags implied by - section contents. */ - if (! ieee_slurp_section_data (abfd)) - goto fail; - - return abfd->xvec; -got_wrong_format: - bfd_set_error (bfd_error_wrong_format); -fail: - bfd_release (abfd, ieee); - abfd->tdata.ieee_data = save; - return (const bfd_target *) NULL; -} - -static void -ieee_get_symbol_info (bfd *ignore_abfd ATTRIBUTE_UNUSED, - asymbol *symbol, - symbol_info *ret) -{ - bfd_symbol_info (symbol, ret); - if (symbol->name[0] == ' ') - ret->name = "* empty table entry "; - if (!symbol->section) - ret->type = (symbol->flags & BSF_LOCAL) ? 'a' : 'A'; -} - -static void -ieee_print_symbol (bfd *abfd, - void * afile, - asymbol *symbol, - bfd_print_symbol_type how) -{ - FILE *file = (FILE *) afile; - - switch (how) - { - case bfd_print_symbol_name: - fprintf (file, "%s", symbol->name); - break; - case bfd_print_symbol_more: - BFD_FAIL (); - break; - case bfd_print_symbol_all: - { - const char *section_name = - (symbol->section == (asection *) NULL - ? "*abs" - : symbol->section->name); - - if (symbol->name[0] == ' ') - fprintf (file, "* empty table entry "); - else - { - bfd_print_symbol_vandf (abfd, (void *) file, symbol); - - fprintf (file, " %-5s %04x %02x %s", - section_name, - (unsigned) ieee_symbol (symbol)->index, - (unsigned) 0, - symbol->name); - } - } - break; - } -} - -static bfd_boolean -ieee_new_section_hook (bfd *abfd, asection *newsect) -{ - if (!newsect->used_by_bfd) - { - newsect->used_by_bfd = bfd_alloc (abfd, sizeof (ieee_per_section_type)); - if (!newsect->used_by_bfd) - return FALSE; - } - ieee_per_section (newsect)->data = NULL; - ieee_per_section (newsect)->section = newsect; - return _bfd_generic_new_section_hook (abfd, newsect); -} - -static long -ieee_get_reloc_upper_bound (bfd *abfd, sec_ptr asect) -{ - if ((asect->flags & SEC_DEBUGGING) != 0) - return 0; - if (! ieee_slurp_section_data (abfd)) - return -1; - return (asect->reloc_count + 1) * sizeof (arelent *); -} - -static bfd_boolean -ieee_get_section_contents (bfd *abfd, - sec_ptr section, - void * location, - file_ptr offset, - bfd_size_type count) -{ - ieee_per_section_type *p = ieee_per_section (section); - if ((section->flags & SEC_DEBUGGING) != 0) - return _bfd_generic_get_section_contents (abfd, section, location, - offset, count); - ieee_slurp_section_data (abfd); - (void) memcpy ((void *) location, (void *) (p->data + offset), (unsigned) count); - return TRUE; -} - -static long -ieee_canonicalize_reloc (bfd *abfd, - sec_ptr section, - arelent **relptr, - asymbol **symbols) -{ - ieee_reloc_type *src = (ieee_reloc_type *) (section->relocation); - ieee_data_type *ieee = IEEE_DATA (abfd); - - if ((section->flags & SEC_DEBUGGING) != 0) - return 0; - - while (src != (ieee_reloc_type *) NULL) - { - /* Work out which symbol to attach it this reloc to. */ - switch (src->symbol.letter) - { - case 'I': - src->relent.sym_ptr_ptr = - symbols + src->symbol.index + ieee->external_symbol_base_offset; - break; - case 'X': - src->relent.sym_ptr_ptr = - symbols + src->symbol.index + ieee->external_reference_base_offset; - break; - case 0: - if (src->relent.sym_ptr_ptr != NULL) - src->relent.sym_ptr_ptr = - src->relent.sym_ptr_ptr[0]->section->symbol_ptr_ptr; - break; - default: - - BFD_FAIL (); - } - *relptr++ = &src->relent; - src = src->next; - } - *relptr = NULL; - return section->reloc_count; -} - -static int -comp (const void * ap, const void * bp) -{ - arelent *a = *((arelent **) ap); - arelent *b = *((arelent **) bp); - return a->address - b->address; -} - -/* Write the section headers. */ - -static bfd_boolean -ieee_write_section_part (bfd *abfd) -{ - ieee_data_type *ieee = IEEE_DATA (abfd); - asection *s; - - ieee->w.r.section_part = bfd_tell (abfd); - for (s = abfd->sections; s != (asection *) NULL; s = s->next) - { - if (! bfd_is_abs_section (s) - && (s->flags & SEC_DEBUGGING) == 0) - { - if (! ieee_write_byte (abfd, ieee_section_type_enum) - || ! ieee_write_byte (abfd, - (bfd_byte) (s->index - + IEEE_SECTION_NUMBER_BASE))) - return FALSE; - - if (abfd->flags & EXEC_P) - { - /* This image is executable, so output absolute sections. */ - if (! ieee_write_byte (abfd, ieee_variable_A_enum) - || ! ieee_write_byte (abfd, ieee_variable_S_enum)) - return FALSE; - } - else - { - if (! ieee_write_byte (abfd, ieee_variable_C_enum)) - return FALSE; - } - - switch (s->flags & (SEC_CODE | SEC_DATA | SEC_ROM)) - { - case SEC_CODE | SEC_LOAD: - case SEC_CODE: - if (! ieee_write_byte (abfd, ieee_variable_P_enum)) - return FALSE; - break; - case SEC_DATA: - default: - if (! ieee_write_byte (abfd, ieee_variable_D_enum)) - return FALSE; - break; - case SEC_ROM: - case SEC_ROM | SEC_DATA: - case SEC_ROM | SEC_LOAD: - case SEC_ROM | SEC_DATA | SEC_LOAD: - if (! ieee_write_byte (abfd, ieee_variable_R_enum)) - return FALSE; - } - - - if (! ieee_write_id (abfd, s->name)) - return FALSE; - /* Alignment. */ - if (! ieee_write_byte (abfd, ieee_section_alignment_enum) - || ! ieee_write_byte (abfd, - (bfd_byte) (s->index - + IEEE_SECTION_NUMBER_BASE)) - || ! ieee_write_int (abfd, (bfd_vma) 1 << s->alignment_power)) - return FALSE; - - /* Size. */ - if (! ieee_write_2bytes (abfd, ieee_section_size_enum) - || ! ieee_write_byte (abfd, - (bfd_byte) (s->index - + IEEE_SECTION_NUMBER_BASE)) - || ! ieee_write_int (abfd, s->size)) - return FALSE; - if (abfd->flags & EXEC_P) - { - /* Relocateable sections don't have asl records. */ - /* Vma. */ - if (! ieee_write_2bytes (abfd, ieee_section_base_address_enum) - || ! ieee_write_byte (abfd, - ((bfd_byte) - (s->index - + IEEE_SECTION_NUMBER_BASE))) - || ! ieee_write_int (abfd, s->lma)) - return FALSE; - } - } - } - - return TRUE; -} - -static bfd_boolean -do_with_relocs (bfd *abfd, asection *s) -{ - unsigned int number_of_maus_in_address = - bfd_arch_bits_per_address (abfd) / bfd_arch_bits_per_byte (abfd); - unsigned int relocs_to_go = s->reloc_count; - bfd_byte *stream = ieee_per_section (s)->data; - arelent **p = s->orelocation; - bfd_size_type current_byte_index = 0; - - qsort (s->orelocation, - relocs_to_go, - sizeof (arelent **), - comp); - - /* Output the section preheader. */ - if (! ieee_write_byte (abfd, ieee_set_current_section_enum) - || ! ieee_write_byte (abfd, - (bfd_byte) (s->index + IEEE_SECTION_NUMBER_BASE)) - || ! ieee_write_2bytes (abfd, ieee_set_current_pc_enum) - || ! ieee_write_byte (abfd, - (bfd_byte) (s->index + IEEE_SECTION_NUMBER_BASE))) - return FALSE; - - if ((abfd->flags & EXEC_P) != 0 && relocs_to_go == 0) - { - if (! ieee_write_int (abfd, s->lma)) - return FALSE; - } - else - { - if (! ieee_write_expression (abfd, (bfd_vma) 0, s->symbol, 0, 0)) - return FALSE; - } - - if (relocs_to_go == 0) - { - /* If there aren't any relocations then output the load constant - byte opcode rather than the load with relocation opcode. */ - while (current_byte_index < s->size) - { - bfd_size_type run; - unsigned int MAXRUN = 127; - - run = MAXRUN; - if (run > s->size - current_byte_index) - run = s->size - current_byte_index; - - if (run != 0) - { - if (! ieee_write_byte (abfd, ieee_load_constant_bytes_enum)) - return FALSE; - /* Output a stream of bytes. */ - if (! ieee_write_int (abfd, run)) - return FALSE; - if (bfd_bwrite ((void *) (stream + current_byte_index), run, abfd) - != run) - return FALSE; - current_byte_index += run; - } - } - } - else - { - if (! ieee_write_byte (abfd, ieee_load_with_relocation_enum)) - return FALSE; - - /* Output the data stream as the longest sequence of bytes - possible, allowing for the a reasonable packet size and - relocation stuffs. */ - if (stream == NULL) - { - /* Outputting a section without data, fill it up. */ - stream = bfd_zalloc (abfd, s->size); - if (!stream) - return FALSE; - } - while (current_byte_index < s->size) - { - bfd_size_type run; - unsigned int MAXRUN = 127; - - if (relocs_to_go) - { - run = (*p)->address - current_byte_index; - if (run > MAXRUN) - run = MAXRUN; - } - else - run = MAXRUN; - - if (run > s->size - current_byte_index) - run = s->size - current_byte_index; - - if (run != 0) - { - /* Output a stream of bytes. */ - if (! ieee_write_int (abfd, run)) - return FALSE; - if (bfd_bwrite ((void *) (stream + current_byte_index), run, abfd) - != run) - return FALSE; - current_byte_index += run; - } - - /* Output any relocations here. */ - if (relocs_to_go && (*p) && (*p)->address == current_byte_index) - { - while (relocs_to_go - && (*p) && (*p)->address == current_byte_index) - { - arelent *r = *p; - bfd_signed_vma ov; - switch (r->howto->size) - { - case 2: - ov = bfd_get_signed_32 (abfd, - stream + current_byte_index); - current_byte_index += 4; - break; - case 1: - ov = bfd_get_signed_16 (abfd, - stream + current_byte_index); - current_byte_index += 2; - break; - case 0: - ov = bfd_get_signed_8 (abfd, - stream + current_byte_index); - current_byte_index++; - break; - default: - ov = 0; - BFD_FAIL (); - return FALSE; - } - - ov &= r->howto->src_mask; - - if (r->howto->pc_relative - && ! r->howto->pcrel_offset) - ov += r->address; - - if (! ieee_write_byte (abfd, - ieee_function_either_open_b_enum)) - return FALSE; - - if (r->sym_ptr_ptr != (asymbol **) NULL) - { - if (! ieee_write_expression (abfd, r->addend + ov, - *(r->sym_ptr_ptr), - r->howto->pc_relative, - (unsigned) s->index)) - return FALSE; - } - else - { - if (! ieee_write_expression (abfd, r->addend + ov, - (asymbol *) NULL, - r->howto->pc_relative, - (unsigned) s->index)) - return FALSE; - } - - if (number_of_maus_in_address - != bfd_get_reloc_size (r->howto)) - { - bfd_vma rsize = bfd_get_reloc_size (r->howto); - if (! ieee_write_int (abfd, rsize)) - return FALSE; - } - if (! ieee_write_byte (abfd, - ieee_function_either_close_b_enum)) - return FALSE; - - relocs_to_go--; - p++; - } - - } - } - } - - return TRUE; -} - -/* If there are no relocations in the output section then we can be - clever about how we write. We block items up into a max of 127 - bytes. */ - -static bfd_boolean -do_as_repeat (bfd *abfd, asection *s) -{ - if (s->size) - { - if (! ieee_write_byte (abfd, ieee_set_current_section_enum) - || ! ieee_write_byte (abfd, - (bfd_byte) (s->index - + IEEE_SECTION_NUMBER_BASE)) - || ! ieee_write_byte (abfd, ieee_set_current_pc_enum >> 8) - || ! ieee_write_byte (abfd, ieee_set_current_pc_enum & 0xff) - || ! ieee_write_byte (abfd, - (bfd_byte) (s->index - + IEEE_SECTION_NUMBER_BASE))) - return FALSE; - - if ((abfd->flags & EXEC_P) != 0) - { - if (! ieee_write_int (abfd, s->lma)) - return FALSE; - } - else - { - if (! ieee_write_expression (abfd, (bfd_vma) 0, s->symbol, 0, 0)) - return FALSE; - } - - if (! ieee_write_byte (abfd, ieee_repeat_data_enum) - || ! ieee_write_int (abfd, s->size) - || ! ieee_write_byte (abfd, ieee_load_constant_bytes_enum) - || ! ieee_write_byte (abfd, 1) - || ! ieee_write_byte (abfd, 0)) - return FALSE; - } - - return TRUE; -} - -static bfd_boolean -do_without_relocs (bfd *abfd, asection *s) -{ - bfd_byte *stream = ieee_per_section (s)->data; - - if (stream == 0 || ((s->flags & SEC_LOAD) == 0)) - { - if (! do_as_repeat (abfd, s)) - return FALSE; - } - else - { - unsigned int i; - - for (i = 0; i < s->size; i++) - { - if (stream[i] != 0) - { - if (! do_with_relocs (abfd, s)) - return FALSE; - return TRUE; - } - } - if (! do_as_repeat (abfd, s)) - return FALSE; - } - - return TRUE; -} - -static void -fill (void) -{ - bfd_size_type amt = input_ptr_end - input_ptr_start; - /* FIXME: Check return value. I'm not sure whether it needs to read - the entire buffer or not. */ - bfd_bread ((void *) input_ptr_start, amt, input_bfd); - input_ptr = input_ptr_start; -} - -static void -flush (void) -{ - bfd_size_type amt = output_ptr - output_ptr_start; - - if (bfd_bwrite ((void *) (output_ptr_start), amt, output_bfd) != amt) - abort (); - output_ptr = output_ptr_start; - output_buffer++; -} - -#define THIS() ( *input_ptr ) -#define NEXT() { input_ptr++; if (input_ptr == input_ptr_end) fill (); } -#define OUT(x) { *output_ptr++ = (x); if (output_ptr == output_ptr_end) flush (); } - -static void -write_int (int value) -{ - if (value >= 0 && value <= 127) - { - OUT (value); - } - else - { - unsigned int length; - - /* How many significant bytes ? */ - /* FIXME FOR LONGER INTS. */ - if (value & 0xff000000) - length = 4; - else if (value & 0x00ff0000) - length = 3; - else if (value & 0x0000ff00) - length = 2; - else - length = 1; - - OUT ((int) ieee_number_repeat_start_enum + length); - switch (length) - { - case 4: - OUT (value >> 24); - /* Fall through. */ - case 3: - OUT (value >> 16); - /* Fall through. */ - case 2: - OUT (value >> 8); - /* Fall through. */ - case 1: - OUT (value); - } - } -} - -static void -copy_id (void) -{ - int length = THIS (); - char ch; - - OUT (length); - NEXT (); - while (length--) - { - ch = THIS (); - OUT (ch); - NEXT (); - } -} - -#define VAR(x) ((x | 0x80)) -static void -copy_expression (void) -{ - int stack[10]; - int *tos = stack; - int value; - - while (1) - { - switch (THIS ()) - { - case 0x84: - NEXT (); - value = THIS (); - NEXT (); - value = (value << 8) | THIS (); - NEXT (); - value = (value << 8) | THIS (); - NEXT (); - value = (value << 8) | THIS (); - NEXT (); - *tos++ = value; - break; - case 0x83: - NEXT (); - value = THIS (); - NEXT (); - value = (value << 8) | THIS (); - NEXT (); - value = (value << 8) | THIS (); - NEXT (); - *tos++ = value; - break; - case 0x82: - NEXT (); - value = THIS (); - NEXT (); - value = (value << 8) | THIS (); - NEXT (); - *tos++ = value; - break; - case 0x81: - NEXT (); - value = THIS (); - NEXT (); - *tos++ = value; - break; - case 0x80: - NEXT (); - *tos++ = 0; - break; - default: - if (THIS () > 0x84) - { - /* Not a number, just bug out with the answer. */ - write_int (*(--tos)); - return; - } - *tos++ = THIS (); - NEXT (); - break; - case 0xa5: - /* PLUS anything. */ - value = *(--tos); - value += *(--tos); - *tos++ = value; - NEXT (); - break; - case VAR ('R'): - { - int section_number; - ieee_data_type *ieee; - asection *s; - - NEXT (); - section_number = THIS (); - - NEXT (); - ieee = IEEE_DATA (input_bfd); - s = ieee->section_table[section_number]; - value = 0; - if (s->output_section) - value = s->output_section->lma; - value += s->output_offset; - *tos++ = value; - } - break; - case 0x90: - { - NEXT (); - write_int (*(--tos)); - OUT (0x90); - return; - } - } - } -} - -/* Drop the int in the buffer, and copy a null into the gap, which we - will overwrite later. */ - -static void -fill_int (struct output_buffer_struct *buf) -{ - if (buf->buffer == output_buffer) - { - /* Still a chance to output the size. */ - int value = output_ptr - buf->ptrp + 3; - buf->ptrp[0] = value >> 24; - buf->ptrp[1] = value >> 16; - buf->ptrp[2] = value >> 8; - buf->ptrp[3] = value >> 0; - } -} - -static void -drop_int (struct output_buffer_struct *buf) -{ - int type = THIS (); - int ch; - - if (type <= 0x84) - { - NEXT (); - switch (type) - { - case 0x84: - ch = THIS (); - NEXT (); - /* Fall through. */ - case 0x83: - ch = THIS (); - NEXT (); - /* Fall through. */ - case 0x82: - ch = THIS (); - NEXT (); - /* Fall through. */ - case 0x81: - ch = THIS (); - NEXT (); - /* Fall through. */ - case 0x80: - break; - } - } - (void) ch; - OUT (0x84); - buf->ptrp = output_ptr; - buf->buffer = output_buffer; - OUT (0); - OUT (0); - OUT (0); - OUT (0); -} - -static void -copy_int (void) -{ - int type = THIS (); - int ch; - if (type <= 0x84) - { - OUT (type); - NEXT (); - switch (type) - { - case 0x84: - ch = THIS (); - NEXT (); - OUT (ch); - /* Fall through. */ - case 0x83: - ch = THIS (); - NEXT (); - OUT (ch); - /* Fall through. */ - case 0x82: - ch = THIS (); - NEXT (); - OUT (ch); - /* Fall through. */ - case 0x81: - ch = THIS (); - NEXT (); - OUT (ch); - /* Fall through. */ - case 0x80: - break; - } - } -} - -#define ID copy_id () -#define INT copy_int () -#define EXP copy_expression () -#define INTn(q) copy_int () -#define EXPn(q) copy_expression () - -static void -copy_till_end (void) -{ - int ch = THIS (); - - while (1) - { - while (ch <= 0x80) - { - OUT (ch); - NEXT (); - ch = THIS (); - } - switch (ch) - { - case 0x84: - OUT (THIS ()); - NEXT (); - /* Fall through. */ - case 0x83: - OUT (THIS ()); - NEXT (); - /* Fall through. */ - case 0x82: - OUT (THIS ()); - NEXT (); - /* Fall through. */ - case 0x81: - OUT (THIS ()); - NEXT (); - OUT (THIS ()); - NEXT (); - - ch = THIS (); - break; - default: - return; - } - } - -} - -static void -f1_record (void) -{ - int ch; - - /* ATN record. */ - NEXT (); - ch = THIS (); - switch (ch) - { - default: - OUT (0xf1); - OUT (ch); - break; - case 0xc9: - NEXT (); - OUT (0xf1); - OUT (0xc9); - INT; - INT; - ch = THIS (); - switch (ch) - { - case 0x16: - NEXT (); - break; - case 0x01: - NEXT (); - break; - case 0x00: - NEXT (); - INT; - break; - case 0x03: - NEXT (); - INT; - break; - case 0x13: - EXPn (instruction address); - break; - default: - break; - } - break; - case 0xd8: - /* EXternal ref. */ - NEXT (); - OUT (0xf1); - OUT (0xd8); - EXP; - EXP; - EXP; - EXP; - break; - case 0xce: - NEXT (); - OUT (0xf1); - OUT (0xce); - INT; - INT; - ch = THIS (); - INT; - switch (ch) - { - case 0x01: - INT; - INT; - break; - case 0x02: - INT; - break; - case 0x04: - EXPn (external function); - break; - case 0x05: - break; - case 0x07: - INTn (line number); - INT; - case 0x08: - break; - case 0x0a: - INTn (locked register); - INT; - break; - case 0x3f: - copy_till_end (); - break; - case 0x3e: - copy_till_end (); - break; - case 0x40: - copy_till_end (); - break; - case 0x41: - ID; - break; - } - } -} - -static void -f0_record (void) -{ - /* Attribute record. */ - NEXT (); - OUT (0xf0); - INTn (Symbol name); - ID; -} - -static void -f2_record (void) -{ - NEXT (); - OUT (0xf2); - INT; - NEXT (); - OUT (0xce); - INT; - copy_till_end (); -} - -static void -f8_record (void) -{ - int ch; - NEXT (); - ch = THIS (); - switch (ch) - { - case 0x01: - case 0x02: - case 0x03: - /* Unique typedefs for module. */ - /* GLobal typedefs. */ - /* High level module scope beginning. */ - { - struct output_buffer_struct ob; - - NEXT (); - OUT (0xf8); - OUT (ch); - drop_int (&ob); - ID; - - block (); - - NEXT (); - fill_int (&ob); - OUT (0xf9); - } - break; - case 0x04: - /* Global function. */ - { - struct output_buffer_struct ob; - - NEXT (); - OUT (0xf8); - OUT (0x04); - drop_int (&ob); - ID; - INTn (stack size); - INTn (ret val); - EXPn (offset); - - block (); - - NEXT (); - OUT (0xf9); - EXPn (size of block); - fill_int (&ob); - } - break; - - case 0x05: - /* File name for source line numbers. */ - { - struct output_buffer_struct ob; - - NEXT (); - OUT (0xf8); - OUT (0x05); - drop_int (&ob); - ID; - INTn (year); - INTn (month); - INTn (day); - INTn (hour); - INTn (monute); - INTn (second); - block (); - NEXT (); - OUT (0xf9); - fill_int (&ob); - } - break; - - case 0x06: - /* Local function. */ - { - struct output_buffer_struct ob; - - NEXT (); - OUT (0xf8); - OUT (0x06); - drop_int (&ob); - ID; - INTn (stack size); - INTn (type return); - EXPn (offset); - block (); - NEXT (); - OUT (0xf9); - EXPn (size); - fill_int (&ob); - } - break; - - case 0x0a: - /* Assembler module scope beginning - */ - { - struct output_buffer_struct ob; - - NEXT (); - OUT (0xf8); - OUT (0x0a); - drop_int (&ob); - ID; - ID; - INT; - ID; - INT; - INT; - INT; - INT; - INT; - INT; - - block (); - - NEXT (); - OUT (0xf9); - fill_int (&ob); - } - break; - case 0x0b: - { - struct output_buffer_struct ob; - - NEXT (); - OUT (0xf8); - OUT (0x0b); - drop_int (&ob); - ID; - INT; - INTn (section index); - EXPn (offset); - INTn (stuff); - - block (); - - OUT (0xf9); - NEXT (); - EXPn (Size in Maus); - fill_int (&ob); - } - break; - } -} - -static void -e2_record (void) -{ - OUT (0xe2); - NEXT (); - OUT (0xce); - NEXT (); - INT; - EXP; -} - -static void -block (void) -{ - int ch; - - while (1) - { - ch = THIS (); - switch (ch) - { - case 0xe1: - case 0xe5: - return; - case 0xf9: - return; - case 0xf0: - f0_record (); - break; - case 0xf1: - f1_record (); - break; - case 0xf2: - f2_record (); - break; - case 0xf8: - f8_record (); - break; - case 0xe2: - e2_record (); - break; - - } - } -} - -/* Moves all the debug information from the source bfd to the output - bfd, and relocates any expressions it finds. */ - -static void -relocate_debug (bfd *output ATTRIBUTE_UNUSED, - bfd *input) -{ -#define IBS 400 -#define OBS 400 - unsigned char input_buffer[IBS]; - - input_ptr_start = input_ptr = input_buffer; - input_ptr_end = input_buffer + IBS; - input_bfd = input; - /* FIXME: Check return value. I'm not sure whether it needs to read - the entire buffer or not. */ - bfd_bread ((void *) input_ptr_start, (bfd_size_type) IBS, input); - block (); -} - -/* Gather together all the debug information from each input BFD into - one place, relocating it and emitting it as we go. */ - -static bfd_boolean -ieee_write_debug_part (bfd *abfd) -{ - ieee_data_type *ieee = IEEE_DATA (abfd); - bfd_chain_type *chain = ieee->chain_root; - unsigned char obuff[OBS]; - bfd_boolean some_debug = FALSE; - file_ptr here = bfd_tell (abfd); - - output_ptr_start = output_ptr = obuff; - output_ptr_end = obuff + OBS; - output_ptr = obuff; - output_bfd = abfd; - - if (chain == (bfd_chain_type *) NULL) - { - asection *s; - - for (s = abfd->sections; s != NULL; s = s->next) - if ((s->flags & SEC_DEBUGGING) != 0) - break; - if (s == NULL) - { - ieee->w.r.debug_information_part = 0; - return TRUE; - } - - ieee->w.r.debug_information_part = here; - if (bfd_bwrite (s->contents, s->size, abfd) != s->size) - return FALSE; - } - else - { - while (chain != (bfd_chain_type *) NULL) - { - bfd *entry = chain->this; - ieee_data_type *entry_ieee = IEEE_DATA (entry); - - if (entry_ieee->w.r.debug_information_part) - { - if (bfd_seek (entry, entry_ieee->w.r.debug_information_part, - SEEK_SET) != 0) - return FALSE; - relocate_debug (abfd, entry); - } - - chain = chain->next; - } - - if (some_debug) - ieee->w.r.debug_information_part = here; - else - ieee->w.r.debug_information_part = 0; - - flush (); - } - - return TRUE; -} - -/* Write the data in an ieee way. */ - -static bfd_boolean -ieee_write_data_part (bfd *abfd) -{ - asection *s; - - ieee_data_type *ieee = IEEE_DATA (abfd); - ieee->w.r.data_part = bfd_tell (abfd); - - for (s = abfd->sections; s != (asection *) NULL; s = s->next) - { - /* Skip sections that have no loadable contents (.bss, - debugging, etc.) */ - if ((s->flags & SEC_LOAD) == 0) - continue; - - /* Sort the reloc records so we can insert them in the correct - places. */ - if (s->reloc_count != 0) - { - if (! do_with_relocs (abfd, s)) - return FALSE; - } - else - { - if (! do_without_relocs (abfd, s)) - return FALSE; - } - } - - return TRUE; -} - -static bfd_boolean -init_for_output (bfd *abfd) -{ - asection *s; - - for (s = abfd->sections; s != (asection *) NULL; s = s->next) - { - if ((s->flags & SEC_DEBUGGING) != 0) - continue; - if (s->size != 0) - { - bfd_size_type size = s->size; - ieee_per_section (s)->data = bfd_alloc (abfd, size); - if (!ieee_per_section (s)->data) - return FALSE; - } - } - return TRUE; -} - -/* Exec and core file sections. */ - -/* Set section contents is complicated with IEEE since the format is - not a byte image, but a record stream. */ - -static bfd_boolean -ieee_set_section_contents (bfd *abfd, - sec_ptr section, - const void * location, - file_ptr offset, - bfd_size_type count) -{ - if ((section->flags & SEC_DEBUGGING) != 0) - { - if (section->contents == NULL) - { - bfd_size_type size = section->size; - section->contents = bfd_alloc (abfd, size); - if (section->contents == NULL) - return FALSE; - } - /* bfd_set_section_contents has already checked that everything - is within range. */ - memcpy (section->contents + offset, location, (size_t) count); - return TRUE; - } - - if (ieee_per_section (section)->data == (bfd_byte *) NULL) - { - if (!init_for_output (abfd)) - return FALSE; - } - memcpy ((void *) (ieee_per_section (section)->data + offset), - (void *) location, - (unsigned int) count); - return TRUE; -} - -/* Write the external symbols of a file. IEEE considers two sorts of - external symbols, public, and referenced. It uses to internal - forms to index them as well. When we write them out we turn their - symbol values into indexes from the right base. */ - -static bfd_boolean -ieee_write_external_part (bfd *abfd) -{ - asymbol **q; - ieee_data_type *ieee = IEEE_DATA (abfd); - unsigned int reference_index = IEEE_REFERENCE_BASE; - unsigned int public_index = IEEE_PUBLIC_BASE + 2; - file_ptr here = bfd_tell (abfd); - bfd_boolean hadone = FALSE; - - if (abfd->outsymbols != (asymbol **) NULL) - { - - for (q = abfd->outsymbols; *q != (asymbol *) NULL; q++) - { - asymbol *p = *q; - - if (bfd_is_und_section (p->section)) - { - /* This must be a symbol reference. */ - if (! ieee_write_byte (abfd, ieee_external_reference_enum) - || ! ieee_write_int (abfd, (bfd_vma) reference_index) - || ! ieee_write_id (abfd, p->name)) - return FALSE; - p->value = reference_index; - reference_index++; - hadone = TRUE; - } - else if (bfd_is_com_section (p->section)) - { - /* This is a weak reference. */ - if (! ieee_write_byte (abfd, ieee_external_reference_enum) - || ! ieee_write_int (abfd, (bfd_vma) reference_index) - || ! ieee_write_id (abfd, p->name) - || ! ieee_write_byte (abfd, - ieee_weak_external_reference_enum) - || ! ieee_write_int (abfd, (bfd_vma) reference_index) - || ! ieee_write_int (abfd, p->value)) - return FALSE; - p->value = reference_index; - reference_index++; - hadone = TRUE; - } - else if (p->flags & BSF_GLOBAL) - { - /* This must be a symbol definition. */ - if (! ieee_write_byte (abfd, ieee_external_symbol_enum) - || ! ieee_write_int (abfd, (bfd_vma) public_index) - || ! ieee_write_id (abfd, p->name) - || ! ieee_write_2bytes (abfd, ieee_attribute_record_enum) - || ! ieee_write_int (abfd, (bfd_vma) public_index) - || ! ieee_write_byte (abfd, 15) /* Instruction address. */ - || ! ieee_write_byte (abfd, 19) /* Static symbol. */ - || ! ieee_write_byte (abfd, 1)) /* One of them. */ - return FALSE; - - /* Write out the value. */ - if (! ieee_write_2bytes (abfd, ieee_value_record_enum) - || ! ieee_write_int (abfd, (bfd_vma) public_index)) - return FALSE; - if (! bfd_is_abs_section (p->section)) - { - if (abfd->flags & EXEC_P) - { - /* If fully linked, then output all symbols - relocated. */ - if (! (ieee_write_int - (abfd, - (p->value - + p->section->output_offset - + p->section->output_section->vma)))) - return FALSE; - } - else - { - if (! (ieee_write_expression - (abfd, - p->value + p->section->output_offset, - p->section->output_section->symbol, - FALSE, 0))) - return FALSE; - } - } - else - { - if (! ieee_write_expression (abfd, - p->value, - bfd_abs_section_ptr->symbol, - FALSE, 0)) - return FALSE; - } - p->value = public_index; - public_index++; - hadone = TRUE; - } - else - { - /* This can happen - when there are gaps in the symbols read - from an input ieee file. */ - } - } - } - if (hadone) - ieee->w.r.external_part = here; - - return TRUE; -} - - -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 relocatable to x. */ -}; - -static const unsigned char envi[] = -{ - 0xf0, 0x21, 0x00, - -/* 0xf1, 0xce, 0x21, 00, 50, 0x82, 0x07, 0xc7, 0x09, 0x11, 0x11, - 0x19, 0x2c, -*/ - 0xf1, 0xce, 0x21, 00, 52, 0x00, /* exec ok. */ - - 0xf1, 0xce, 0x21, 0, 53, 0x03,/* host unix. */ -/* 0xf1, 0xce, 0x21, 0, 54, 2,1,1 tool & version # */ -}; - -static bfd_boolean -ieee_write_me_part (bfd *abfd) -{ - ieee_data_type *ieee = IEEE_DATA (abfd); - ieee->w.r.trailer_part = bfd_tell (abfd); - if (abfd->start_address) - { - if (! ieee_write_2bytes (abfd, ieee_value_starting_address_enum) - || ! ieee_write_byte (abfd, ieee_function_either_open_b_enum) - || ! ieee_write_int (abfd, abfd->start_address) - || ! ieee_write_byte (abfd, ieee_function_either_close_b_enum)) - return FALSE; - } - ieee->w.r.me_record = bfd_tell (abfd); - if (! ieee_write_byte (abfd, ieee_module_end_enum)) - return FALSE; - return TRUE; -} - -/* Write out the IEEE processor ID. */ - -static bfd_boolean -ieee_write_processor (bfd *abfd) -{ - const bfd_arch_info_type *arch; - - arch = bfd_get_arch_info (abfd); - switch (arch->arch) - { - default: - if (! ieee_write_id (abfd, bfd_printable_name (abfd))) - return FALSE; - break; - - case bfd_arch_h8300: - if (! ieee_write_id (abfd, "H8/300")) - return FALSE; - break; - - case bfd_arch_h8500: - if (! ieee_write_id (abfd, "H8/500")) - return FALSE; - break; - - case bfd_arch_i960: - switch (arch->mach) - { - default: - case bfd_mach_i960_core: - case bfd_mach_i960_ka_sa: - if (! ieee_write_id (abfd, "80960KA")) - return FALSE; - break; - - case bfd_mach_i960_kb_sb: - if (! ieee_write_id (abfd, "80960KB")) - return FALSE; - break; - - case bfd_mach_i960_ca: - if (! ieee_write_id (abfd, "80960CA")) - return FALSE; - break; - - case bfd_mach_i960_mc: - case bfd_mach_i960_xa: - if (! ieee_write_id (abfd, "80960MC")) - return FALSE; - break; - } - break; - - case bfd_arch_m68k: - { - const char *id; - - switch (arch->mach) - { - default: id = "68020"; break; - case bfd_mach_m68000: id = "68000"; break; - case bfd_mach_m68008: id = "68008"; break; - case bfd_mach_m68010: id = "68010"; break; - case bfd_mach_m68020: id = "68020"; break; - case bfd_mach_m68030: id = "68030"; break; - case bfd_mach_m68040: id = "68040"; break; - case bfd_mach_m68060: id = "68060"; break; - case bfd_mach_cpu32: id = "cpu32"; break; - case bfd_mach_mcf_isa_a_nodiv: id = "isa-a:nodiv"; break; - case bfd_mach_mcf_isa_a: id = "isa-a"; break; - case bfd_mach_mcf_isa_a_mac: id = "isa-a:mac"; break; - case bfd_mach_mcf_isa_a_emac: id = "isa-a:emac"; break; - case bfd_mach_mcf_isa_aplus: id = "isa-aplus"; break; - case bfd_mach_mcf_isa_aplus_mac: id = "isa-aplus:mac"; break; - case bfd_mach_mcf_isa_aplus_emac: id = "isa-aplus:mac"; break; - case bfd_mach_mcf_isa_b_nousp: id = "isa-b:nousp"; break; - case bfd_mach_mcf_isa_b_nousp_mac: id = "isa-b:nousp:mac"; break; - case bfd_mach_mcf_isa_b_nousp_emac: id = "isa-b:nousp:emac"; break; - case bfd_mach_mcf_isa_b: id = "isa-b"; break; - case bfd_mach_mcf_isa_b_mac: id = "isa-b:mac"; break; - case bfd_mach_mcf_isa_b_emac: id = "isa-b:emac"; break; - case bfd_mach_mcf_isa_b_float: id = "isa-b:float"; break; - case bfd_mach_mcf_isa_b_float_mac: id = "isa-b:float:mac"; break; - case bfd_mach_mcf_isa_b_float_emac: id = "isa-b:float:emac"; break; - case bfd_mach_mcf_isa_c: id = "isa-c"; break; - case bfd_mach_mcf_isa_c_mac: id = "isa-c:mac"; break; - case bfd_mach_mcf_isa_c_emac: id = "isa-c:emac"; break; - case bfd_mach_mcf_isa_c_nodiv: id = "isa-c:nodiv"; break; - case bfd_mach_mcf_isa_c_nodiv_mac: id = "isa-c:nodiv:mac"; break; - case bfd_mach_mcf_isa_c_nodiv_emac: id = "isa-c:nodiv:emac"; break; - } - - if (! ieee_write_id (abfd, id)) - return FALSE; - } - break; - } - - return TRUE; -} - -static bfd_boolean -ieee_write_object_contents (bfd *abfd) -{ - ieee_data_type *ieee = IEEE_DATA (abfd); - unsigned int i; - file_ptr old; - - /* Fast forward over the header area. */ - if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) - return FALSE; - - if (! ieee_write_byte (abfd, ieee_module_beginning_enum) - || ! ieee_write_processor (abfd) - || ! ieee_write_id (abfd, abfd->filename)) - return FALSE; - - /* Fast forward over the variable bits. */ - if (! ieee_write_byte (abfd, ieee_address_descriptor_enum)) - return FALSE; - - /* Bits per MAU. */ - if (! ieee_write_byte (abfd, (bfd_byte) (bfd_arch_bits_per_byte (abfd)))) - return FALSE; - /* MAU's per address. */ - if (! ieee_write_byte (abfd, - (bfd_byte) (bfd_arch_bits_per_address (abfd) - / bfd_arch_bits_per_byte (abfd)))) - return FALSE; - - old = bfd_tell (abfd); - if (bfd_seek (abfd, (file_ptr) (8 * N_W_VARIABLES), SEEK_CUR) != 0) - return FALSE; - - ieee->w.r.extension_record = bfd_tell (abfd); - if (bfd_bwrite ((char *) exten, (bfd_size_type) sizeof (exten), abfd) - != sizeof (exten)) - return FALSE; - if (abfd->flags & EXEC_P) - { - if (! ieee_write_byte (abfd, 0x1)) /* Absolute. */ - return FALSE; - } - else - { - if (! ieee_write_byte (abfd, 0x2)) /* Relocateable. */ - return FALSE; - } - - ieee->w.r.environmental_record = bfd_tell (abfd); - if (bfd_bwrite ((char *) envi, (bfd_size_type) sizeof (envi), abfd) - != sizeof (envi)) - return FALSE; - - /* The HP emulator database requires a timestamp in the file. */ - { - time_t now; - const struct tm *t; - - time (&now); - t = (struct tm *) localtime (&now); - if (! ieee_write_2bytes (abfd, (int) ieee_atn_record_enum) - || ! ieee_write_byte (abfd, 0x21) - || ! ieee_write_byte (abfd, 0) - || ! ieee_write_byte (abfd, 50) - || ! ieee_write_int (abfd, (bfd_vma) (t->tm_year + 1900)) - || ! ieee_write_int (abfd, (bfd_vma) (t->tm_mon + 1)) - || ! ieee_write_int (abfd, (bfd_vma) t->tm_mday) - || ! ieee_write_int (abfd, (bfd_vma) t->tm_hour) - || ! ieee_write_int (abfd, (bfd_vma) t->tm_min) - || ! ieee_write_int (abfd, (bfd_vma) t->tm_sec)) - return FALSE; - } - - output_bfd = abfd; - - flush (); - - if (! ieee_write_section_part (abfd)) - return FALSE; - /* First write the symbols. This changes their values into table - indeces so we cant use it after this point. */ - if (! ieee_write_external_part (abfd)) - return FALSE; - - /* Write any debugs we have been told about. */ - if (! ieee_write_debug_part (abfd)) - return FALSE; - - /* Can only write the data once the symbols have been written, since - the data contains relocation information which points to the - symbols. */ - if (! ieee_write_data_part (abfd)) - return FALSE; - - /* At the end we put the end! */ - if (! ieee_write_me_part (abfd)) - return FALSE; - - /* Generate the header. */ - if (bfd_seek (abfd, old, SEEK_SET) != 0) - return FALSE; - - for (i = 0; i < N_W_VARIABLES; i++) - { - if (! ieee_write_2bytes (abfd, ieee_assign_value_to_variable_enum) - || ! ieee_write_byte (abfd, (bfd_byte) i) - || ! ieee_write_int5_out (abfd, (bfd_vma) ieee->w.offset[i])) - return FALSE; - } - - return TRUE; -} - -/* Native-level interface to symbols. */ - -/* We read the symbols into a buffer, which is discarded when this - function exits. We read the strings into a buffer large enough to - hold them all plus all the cached symbol entries. */ - -static asymbol * -ieee_make_empty_symbol (bfd *abfd) -{ - bfd_size_type amt = sizeof (ieee_symbol_type); - ieee_symbol_type *new_symbol = (ieee_symbol_type *) bfd_zalloc (abfd, amt); - - if (!new_symbol) - return NULL; - new_symbol->symbol.the_bfd = abfd; - return &new_symbol->symbol; -} - -static bfd * -ieee_openr_next_archived_file (bfd *arch, bfd *prev) -{ - ieee_ar_data_type *ar = IEEE_AR_DATA (arch); - - /* Take the next one from the arch state, or reset. */ - if (prev == (bfd *) NULL) - /* Reset the index - the first two entries are bogus. */ - ar->element_index = 2; - - while (TRUE) - { - ieee_ar_obstack_type *p = ar->elements + ar->element_index; - - ar->element_index++; - if (ar->element_index <= ar->element_count) - { - if (p->file_offset != (file_ptr) 0) - { - if (p->abfd == (bfd *) NULL) - { - p->abfd = _bfd_create_empty_archive_element_shell (arch); - p->abfd->origin = p->file_offset; - } - return p->abfd; - } - } - else - { - bfd_set_error (bfd_error_no_more_archived_files); - return NULL; - } - } -} - -#define ieee_find_nearest_line _bfd_nosymbols_find_nearest_line -#define ieee_find_line _bfd_nosymbols_find_line -#define ieee_find_inliner_info _bfd_nosymbols_find_inliner_info - -static int -ieee_generic_stat_arch_elt (bfd *abfd, struct stat *buf) -{ - ieee_ar_data_type *ar = (ieee_ar_data_type *) NULL; - ieee_data_type *ieee; - - if (abfd->my_archive != NULL) - ar = abfd->my_archive->tdata.ieee_ar_data; - if (ar == (ieee_ar_data_type *) NULL) - { - bfd_set_error (bfd_error_invalid_operation); - return -1; - } - - if (IEEE_DATA (abfd) == NULL) - { - if (ieee_object_p (abfd) == NULL) - { - bfd_set_error (bfd_error_wrong_format); - return -1; - } - } - - ieee = IEEE_DATA (abfd); - - buf->st_size = ieee->w.r.me_record + 1; - buf->st_mode = 0644; - return 0; -} - -static int -ieee_sizeof_headers (bfd *abfd ATTRIBUTE_UNUSED, - struct bfd_link_info *info ATTRIBUTE_UNUSED) -{ - return 0; -} - -#define ieee_close_and_cleanup _bfd_generic_close_and_cleanup -#define ieee_bfd_free_cached_info _bfd_generic_bfd_free_cached_info - -#define ieee_slurp_armap bfd_true -#define ieee_slurp_extended_name_table bfd_true -#define ieee_construct_extended_name_table \ - ((bfd_boolean (*) \ - (bfd *, char **, bfd_size_type *, const char **)) \ - bfd_true) -#define ieee_truncate_arname bfd_dont_truncate_arname -#define ieee_write_armap \ - ((bfd_boolean (*) \ - (bfd *, unsigned int, struct orl *, unsigned int, int)) \ - bfd_true) -#define ieee_read_ar_hdr bfd_nullvoidptr -#define ieee_write_ar_hdr ((bfd_boolean (*) (bfd *, bfd *)) bfd_false) -#define ieee_update_armap_timestamp bfd_true -#define ieee_get_elt_at_index _bfd_generic_get_elt_at_index - -#define ieee_get_symbol_version_string \ - _bfd_nosymbols_get_symbol_version_string -#define ieee_bfd_is_target_special_symbol \ - ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) -#define ieee_bfd_is_local_label_name bfd_generic_is_local_label_name -#define ieee_get_lineno _bfd_nosymbols_get_lineno -#define ieee_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol -#define ieee_read_minisymbols _bfd_generic_read_minisymbols -#define ieee_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol - -#define ieee_bfd_reloc_type_lookup _bfd_norelocs_bfd_reloc_type_lookup -#define ieee_bfd_reloc_name_lookup _bfd_norelocs_bfd_reloc_name_lookup - -#define ieee_set_arch_mach _bfd_generic_set_arch_mach - -#define ieee_get_section_contents_in_window \ - _bfd_generic_get_section_contents_in_window -#define ieee_bfd_get_relocated_section_contents \ - bfd_generic_get_relocated_section_contents -#define ieee_bfd_relax_section bfd_generic_relax_section -#define ieee_bfd_gc_sections bfd_generic_gc_sections -#define ieee_bfd_lookup_section_flags bfd_generic_lookup_section_flags -#define ieee_bfd_merge_sections bfd_generic_merge_sections -#define ieee_bfd_is_group_section bfd_generic_is_group_section -#define ieee_bfd_discard_group bfd_generic_discard_group -#define ieee_section_already_linked \ - _bfd_generic_section_already_linked -#define ieee_bfd_define_common_symbol bfd_generic_define_common_symbol -#define ieee_bfd_define_start_stop bfd_generic_define_start_stop -#define ieee_bfd_link_hash_table_create _bfd_generic_link_hash_table_create -#define ieee_bfd_link_add_symbols _bfd_generic_link_add_symbols -#define ieee_bfd_link_just_syms _bfd_generic_link_just_syms -#define ieee_bfd_copy_link_hash_symbol_type \ - _bfd_generic_copy_link_hash_symbol_type -#define ieee_bfd_final_link _bfd_generic_final_link -#define ieee_bfd_link_split_section _bfd_generic_link_split_section -#define ieee_bfd_link_check_relocs _bfd_generic_link_check_relocs -#define ieee_set_reloc _bfd_generic_set_reloc - -const bfd_target ieee_vec = -{ - "ieee", /* Name. */ - bfd_target_ieee_flavour, - BFD_ENDIAN_UNKNOWN, /* Target byte order. */ - BFD_ENDIAN_UNKNOWN, /* Target headers byte order. */ - (HAS_RELOC | EXEC_P | /* Object flags. */ - HAS_LINENO | HAS_DEBUG | - HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED), - (SEC_CODE | SEC_DATA | SEC_ROM | SEC_HAS_CONTENTS - | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* Section flags. */ - '_', /* Leading underscore. */ - ' ', /* AR_pad_char. */ - 16, /* AR_max_namelen. */ - 0, /* match priority. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* Data. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* Headers. */ - - {_bfd_dummy_target, - ieee_object_p, /* bfd_check_format. */ - ieee_archive_p, - _bfd_dummy_target, - }, - { - bfd_false, - ieee_mkobject, - _bfd_generic_mkarchive, - bfd_false - }, - { - bfd_false, - ieee_write_object_contents, - _bfd_write_archive_contents, - bfd_false, - }, - - /* ieee_close_and_cleanup, ieee_bfd_free_cached_info, ieee_new_section_hook, - ieee_get_section_contents, ieee_get_section_contents_in_window. */ - BFD_JUMP_TABLE_GENERIC (ieee), - - BFD_JUMP_TABLE_COPY (_bfd_generic), - BFD_JUMP_TABLE_CORE (_bfd_nocore), - - /* ieee_slurp_armap, ieee_slurp_extended_name_table, - ieee_construct_extended_name_table, ieee_truncate_arname, - ieee_write_armap, ieee_read_ar_hdr, ieee_openr_next_archived_file, - ieee_get_elt_at_index, ieee_generic_stat_arch_elt, - ieee_update_armap_timestamp. */ - BFD_JUMP_TABLE_ARCHIVE (ieee), - - /* ieee_get_symtab_upper_bound, ieee_canonicalize_symtab, - ieee_make_empty_symbol, ieee_print_symbol, ieee_get_symbol_info, - ieee_bfd_is_local_label_name, ieee_get_lineno, - ieee_find_nearest_line, ieee_bfd_make_debug_symbol, - ieee_read_minisymbols, ieee_minisymbol_to_symbol. */ - BFD_JUMP_TABLE_SYMBOLS (ieee), - - /* ieee_get_reloc_upper_bound, ieee_canonicalize_reloc, - ieee_bfd_reloc_type_lookup. */ - BFD_JUMP_TABLE_RELOCS (ieee), - - /* ieee_set_arch_mach, ieee_set_section_contents. */ - BFD_JUMP_TABLE_WRITE (ieee), - - /* ieee_sizeof_headers, ieee_bfd_get_relocated_section_contents, - ieee_bfd_relax_section, ieee_bfd_link_hash_table_create, - ieee_bfd_link_add_symbols, ieee_bfd_final_link, - ieee_bfd_link_split_section, ieee_bfd_gc_sections, - ieee_bfd_merge_sections. */ - BFD_JUMP_TABLE_LINK (ieee), - - BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), - - NULL, - - NULL -}; diff -Nru gdb-8.1/bfd/ihex.c gdb-8.2/bfd/ihex.c --- gdb-8.1/bfd/ihex.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/ihex.c 2018-09-05 07:27:13.000000000 +0000 @@ -227,7 +227,7 @@ } _bfd_error_handler /* xgettext:c-format */ - (_("%B:%d: unexpected character `%s' in Intel Hex file"), + (_("%pB:%d: unexpected character `%s' in Intel Hex file"), abfd, lineno, buf); bfd_set_error (bfd_error_bad_value); } @@ -335,7 +335,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B:%u: bad checksum in Intel Hex file (expected %u, found %u)"), + (_("%pB:%u: bad checksum in Intel Hex file (expected %u, found %u)"), abfd, lineno, (- chksum) & 0xff, (unsigned int) HEX2 (buf + 2 * i)); bfd_set_error (bfd_error_bad_value); @@ -391,7 +391,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B:%u: bad extended address record length in Intel Hex file"), + (_("%pB:%u: bad extended address record length in Intel Hex file"), abfd, lineno); bfd_set_error (bfd_error_bad_value); goto error_return; @@ -409,7 +409,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B:%u: bad extended start address length in Intel Hex file"), + (_("%pB:%u: bad extended start address length in Intel Hex file"), abfd, lineno); bfd_set_error (bfd_error_bad_value); goto error_return; @@ -427,7 +427,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B:%u: bad extended linear address record length in Intel Hex file"), + (_("%pB:%u: bad extended linear address record length in Intel Hex file"), abfd, lineno); bfd_set_error (bfd_error_bad_value); goto error_return; @@ -445,7 +445,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B:%u: bad extended linear start address length in Intel Hex file"), + (_("%pB:%u: bad extended linear start address length in Intel Hex file"), abfd, lineno); bfd_set_error (bfd_error_bad_value); goto error_return; @@ -463,7 +463,7 @@ default: _bfd_error_handler /* xgettext:c-format */ - (_("%B:%u: unrecognized ihex type %u in Intel Hex file"), + (_("%pB:%u: unrecognized ihex type %u in Intel Hex file"), abfd, lineno, type); bfd_set_error (bfd_error_bad_value); goto error_return; @@ -582,7 +582,7 @@ if (type != 0) { _bfd_error_handler - (_("%B: internal error in ihex_read_section"), abfd); + (_("%pB: internal error in ihex_read_section"), abfd); bfd_set_error (bfd_error_bad_value); goto error_return; } @@ -616,7 +616,7 @@ if ((bfd_size_type) (p - contents) < section->size) { _bfd_error_handler - (_("%B: bad section length in ihex_read_section"), abfd); + (_("%pB: bad section length in ihex_read_section"), abfd); bfd_set_error (bfd_error_bad_value); goto error_return; } @@ -827,8 +827,9 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: address %#Lx out of range for Intel Hex file"), - abfd, where); + (_("%pB: address %#" PRIx64 + " out of range for Intel Hex file"), + abfd, (uint64_t) where); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -918,13 +919,13 @@ #define ihex_bfd_free_cached_info _bfd_generic_bfd_free_cached_info #define ihex_new_section_hook _bfd_generic_new_section_hook #define ihex_get_section_contents_in_window _bfd_generic_get_section_contents_in_window -#define ihex_get_symtab_upper_bound bfd_0l -#define ihex_canonicalize_symtab ((long (*) (bfd *, asymbol **)) bfd_0l) +#define ihex_get_symtab_upper_bound _bfd_long_bfd_0 +#define ihex_canonicalize_symtab _bfd_nosymbols_canonicalize_symtab #define ihex_make_empty_symbol _bfd_generic_make_empty_symbol #define ihex_print_symbol _bfd_nosymbols_print_symbol #define ihex_get_symbol_info _bfd_nosymbols_get_symbol_info #define ihex_get_symbol_version_string _bfd_nosymbols_get_symbol_version_string -#define ihex_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) +#define ihex_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false #define ihex_bfd_is_local_label_name _bfd_nosymbols_bfd_is_local_label_name #define ihex_get_lineno _bfd_nosymbols_get_lineno #define ihex_find_nearest_line _bfd_nosymbols_find_nearest_line @@ -942,6 +943,7 @@ #define ihex_bfd_discard_group bfd_generic_discard_group #define ihex_section_already_linked _bfd_generic_section_already_linked #define ihex_bfd_define_common_symbol bfd_generic_define_common_symbol +#define ihex_bfd_link_hide_symbol _bfd_generic_link_hide_symbol #define ihex_bfd_define_start_stop bfd_generic_define_start_stop #define ihex_bfd_link_hash_table_create _bfd_generic_link_hash_table_create #define ihex_bfd_link_add_symbols _bfd_generic_link_add_symbols @@ -979,16 +981,16 @@ _bfd_dummy_target, }, { - bfd_false, + _bfd_bool_bfd_false_error, ihex_mkobject, _bfd_generic_mkarchive, - bfd_false, + _bfd_bool_bfd_false_error, }, { /* bfd_write_contents. */ - bfd_false, + _bfd_bool_bfd_false_error, ihex_write_object_contents, _bfd_write_archive_contents, - bfd_false, + _bfd_bool_bfd_false_error, }, BFD_JUMP_TABLE_GENERIC (ihex), diff -Nru gdb-8.1/bfd/irix-core.c gdb-8.2/bfd/irix-core.c --- gdb-8.1/bfd/irix-core.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/irix-core.c 2018-09-05 07:27:13.000000000 +0000 @@ -307,12 +307,16 @@ irix_core_core_file_p /* a core file */ }, { /* bfd_set_format */ - bfd_false, bfd_false, - bfd_false, bfd_false + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error }, { /* bfd_write_contents */ - bfd_false, bfd_false, - bfd_false, bfd_false + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error }, BFD_JUMP_TABLE_GENERIC (_bfd_generic), diff -Nru gdb-8.1/bfd/libaout.h gdb-8.2/bfd/libaout.h --- gdb-8.1/bfd/libaout.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/libaout.h 2018-09-05 07:27:13.000000000 +0000 @@ -349,7 +349,7 @@ enum aout_subformat { default_format = 0, - /* Used on HP 9000/300 running HP/UX. See hp300hpux.c. */ + /* Used on HP 9000/300 running HP/UX. */ gnu_encap_format, /* Used on Linux, 386BSD, etc. See include/aout/aout64.h. */ q_magic_format @@ -617,8 +617,7 @@ #endif #ifndef aout_32_bfd_is_target_special_symbol -#define aout_32_bfd_is_target_special_symbol \ - ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) +#define aout_32_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false #endif #ifndef WRITE_HEADERS diff -Nru gdb-8.1/bfd/libbfd.c gdb-8.2/bfd/libbfd.c --- gdb-8.1/bfd/libbfd.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/libbfd.c 2018-09-05 07:44:28.000000000 +0000 @@ -40,21 +40,87 @@ completeness. */ +bfd_boolean +_bfd_bool_bfd_false (bfd *abfd ATTRIBUTE_UNUSED) +{ + return FALSE; +} + +bfd_boolean +_bfd_bool_bfd_asymbol_false (bfd *abfd ATTRIBUTE_UNUSED, + asymbol *sym ATTRIBUTE_UNUSED) +{ + return FALSE; +} + /* A routine which is used in target vectors for unsupported operations. */ bfd_boolean -bfd_false (bfd *ignore ATTRIBUTE_UNUSED) +_bfd_bool_bfd_false_error (bfd *ignore ATTRIBUTE_UNUSED) { bfd_set_error (bfd_error_invalid_operation); return FALSE; } +bfd_boolean +_bfd_bool_bfd_link_false_error (bfd *abfd, + struct bfd_link_info *info ATTRIBUTE_UNUSED) +{ + return _bfd_bool_bfd_false_error (abfd); +} + /* A routine which is used in target vectors for supported operations which do not actually do anything. */ bfd_boolean -bfd_true (bfd *ignore ATTRIBUTE_UNUSED) +_bfd_bool_bfd_true (bfd *ignore ATTRIBUTE_UNUSED) +{ + return TRUE; +} + +bfd_boolean +_bfd_bool_bfd_link_true (bfd *abfd ATTRIBUTE_UNUSED, + struct bfd_link_info *info ATTRIBUTE_UNUSED) +{ + return TRUE; +} + +bfd_boolean +_bfd_bool_bfd_bfd_true (bfd *ibfd ATTRIBUTE_UNUSED, + bfd *obfd ATTRIBUTE_UNUSED) +{ + return TRUE; +} + +bfd_boolean +_bfd_bool_bfd_uint_true (bfd *abfd ATTRIBUTE_UNUSED, + unsigned int flags ATTRIBUTE_UNUSED) +{ + return TRUE; +} + +bfd_boolean +_bfd_bool_bfd_asection_bfd_asection_true (bfd *ibfd ATTRIBUTE_UNUSED, + asection *isec ATTRIBUTE_UNUSED, + bfd *obfd ATTRIBUTE_UNUSED, + asection *osec ATTRIBUTE_UNUSED) +{ + return TRUE; +} + +bfd_boolean +_bfd_bool_bfd_asymbol_bfd_asymbol_true (bfd *ibfd ATTRIBUTE_UNUSED, + asymbol *isym ATTRIBUTE_UNUSED, + bfd *obfd ATTRIBUTE_UNUSED, + asymbol *osym ATTRIBUTE_UNUSED) +{ + return TRUE; +} + +bfd_boolean +_bfd_bool_bfd_ptr_true (bfd *abfd ATTRIBUTE_UNUSED, + void *ptr ATTRIBUTE_UNUSED) { return TRUE; } @@ -63,26 +129,26 @@ operations which return a pointer value. */ void * -bfd_nullvoidptr (bfd *ignore ATTRIBUTE_UNUSED) +_bfd_ptr_bfd_null_error (bfd *ignore ATTRIBUTE_UNUSED) { bfd_set_error (bfd_error_invalid_operation); return NULL; } int -bfd_0 (bfd *ignore ATTRIBUTE_UNUSED) +_bfd_int_bfd_0 (bfd *ignore ATTRIBUTE_UNUSED) { return 0; } unsigned int -bfd_0u (bfd *ignore ATTRIBUTE_UNUSED) +_bfd_uint_bfd_0 (bfd *ignore ATTRIBUTE_UNUSED) { return 0; } long -bfd_0l (bfd *ignore ATTRIBUTE_UNUSED) +_bfd_long_bfd_0 (bfd *ignore ATTRIBUTE_UNUSED) { return 0; } @@ -91,14 +157,26 @@ operations which return -1 on error. */ long -_bfd_n1 (bfd *ignore_abfd ATTRIBUTE_UNUSED) +_bfd_long_bfd_n1_error (bfd *ignore_abfd ATTRIBUTE_UNUSED) { bfd_set_error (bfd_error_invalid_operation); return -1; } void -bfd_void (bfd *ignore ATTRIBUTE_UNUSED) +_bfd_void_bfd (bfd *ignore ATTRIBUTE_UNUSED) +{ +} + +void +_bfd_void_bfd_link (bfd *abfd ATTRIBUTE_UNUSED, + struct bfd_link_info *info ATTRIBUTE_UNUSED) +{ +} + +void +_bfd_void_bfd_asection (bfd *abfd ATTRIBUTE_UNUSED, + asection *sec ATTRIBUTE_UNUSED) { } @@ -535,6 +613,27 @@ addr[1] = (data >> 8) & 0xff; } + +void +bfd_putb24 (bfd_vma data, void *p) +{ + bfd_byte *addr = (bfd_byte *) p; + addr[0] = (data >> 16) & 0xff; + addr[1] = (data >> 8) & 0xff; + addr[2] = data & 0xff; +} + + +void +bfd_putl24 (bfd_vma data, void *p) +{ + bfd_byte *addr = (bfd_byte *) p; + addr[0] = data & 0xff; + addr[1] = (data >> 8) & 0xff; + addr[2] = (data >> 16) & 0xff; +} + + bfd_vma bfd_getb32 (const void *p) { @@ -796,7 +895,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: unable to get decompressed section %A"), + (_("%pB: unable to get decompressed section %pA"), abfd, section); bfd_set_error (bfd_error_invalid_operation); return FALSE; diff -Nru gdb-8.1/bfd/libbfd.h gdb-8.2/bfd/libbfd.h --- gdb-8.1/bfd/libbfd.h 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/bfd/libbfd.h 2018-09-05 07:44:28.000000000 +0000 @@ -27,6 +27,17 @@ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ +#ifndef _LIBBFD_H +#define _LIBBFD_H 1 + +#ifndef ATTRIBUTE_HIDDEN +#if HAVE_HIDDEN +#define ATTRIBUTE_HIDDEN __attribute__ ((__visibility__ ("hidden"))) +#else +#define ATTRIBUTE_HIDDEN +#endif +#endif + #include "hashtab.h" #ifdef __cplusplus @@ -58,6 +69,9 @@ asection section; }; +/* Unique section id. */ +extern unsigned int _bfd_section_id ATTRIBUTE_HIDDEN; + /* tdata for an archive. For an input archive, cache needs to be free()'d. For an output archive, symdefs do. */ @@ -100,53 +114,49 @@ #define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size) extern void *bfd_malloc - (bfd_size_type); + (bfd_size_type) ATTRIBUTE_HIDDEN; extern void *bfd_realloc - (void *, bfd_size_type); + (void *, bfd_size_type) ATTRIBUTE_HIDDEN; extern void *bfd_realloc_or_free - (void *, bfd_size_type); + (void *, bfd_size_type) ATTRIBUTE_HIDDEN; extern void *bfd_zmalloc - (bfd_size_type); + (bfd_size_type) ATTRIBUTE_HIDDEN; extern void *bfd_malloc2 - (bfd_size_type, bfd_size_type); + (bfd_size_type, bfd_size_type) ATTRIBUTE_HIDDEN; extern void *bfd_realloc2 - (void *, bfd_size_type, bfd_size_type); + (void *, bfd_size_type, bfd_size_type) ATTRIBUTE_HIDDEN; extern void *bfd_zmalloc2 - (bfd_size_type, bfd_size_type); - -extern void _bfd_error_handler (const char *s, ...); + (bfd_size_type, bfd_size_type) ATTRIBUTE_HIDDEN; /* These routines allocate and free things on the BFD's objalloc. */ extern void *bfd_alloc2 - (bfd *, bfd_size_type, bfd_size_type); + (bfd *, bfd_size_type, bfd_size_type) ATTRIBUTE_HIDDEN; extern void *bfd_zalloc2 - (bfd *, bfd_size_type, bfd_size_type); + (bfd *, bfd_size_type, bfd_size_type) ATTRIBUTE_HIDDEN; extern void bfd_release - (bfd *, void *); + (bfd *, void *) ATTRIBUTE_HIDDEN; -bfd * _bfd_create_empty_archive_element_shell - (bfd *obfd); -bfd * _bfd_look_for_bfd_in_cache - (bfd *, file_ptr); -bfd_boolean _bfd_add_bfd_to_archive_cache - (bfd *, file_ptr, bfd *); -bfd_boolean _bfd_generic_mkarchive - (bfd *abfd); -char *_bfd_append_relative_path - (bfd *arch, char *elt_name); -const bfd_target *bfd_generic_archive_p - (bfd *abfd); -bfd_boolean bfd_slurp_armap - (bfd *abfd); -bfd_boolean bfd_slurp_bsd_armap_f2 - (bfd *abfd); +extern bfd * _bfd_create_empty_archive_element_shell + (bfd *) ATTRIBUTE_HIDDEN; +extern bfd * _bfd_look_for_bfd_in_cache + (bfd *, file_ptr) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_add_bfd_to_archive_cache + (bfd *, file_ptr, bfd *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_generic_mkarchive + (bfd *) ATTRIBUTE_HIDDEN; +extern char *_bfd_append_relative_path + (bfd *, char *) ATTRIBUTE_HIDDEN; +extern const bfd_target *bfd_generic_archive_p + (bfd *) ATTRIBUTE_HIDDEN; +extern bfd_boolean bfd_slurp_armap + (bfd *) ATTRIBUTE_HIDDEN; #define bfd_slurp_bsd_armap bfd_slurp_armap #define bfd_slurp_coff_armap bfd_slurp_armap -bfd_boolean _bfd_archive_64_bit_slurp_armap - (bfd *); -bfd_boolean _bfd_archive_64_bit_write_armap - (bfd *, unsigned int, struct orl *, unsigned int, int); +extern bfd_boolean _bfd_archive_64_bit_slurp_armap + (bfd *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_archive_64_bit_write_armap + (bfd *, unsigned int, struct orl *, unsigned int, int) ATTRIBUTE_HIDDEN; #define _bfd_archive_64_bit_slurp_extended_name_table \ _bfd_slurp_extended_name_table #define _bfd_archive_64_bit_construct_extended_name_table \ @@ -163,84 +173,103 @@ _bfd_generic_get_elt_at_index #define _bfd_archive_64_bit_generic_stat_arch_elt \ bfd_generic_stat_arch_elt -#define _bfd_archive_64_bit_update_armap_timestamp \ - bfd_true +#define _bfd_archive_64_bit_update_armap_timestamp _bfd_bool_bfd_true -bfd_boolean _bfd_slurp_extended_name_table - (bfd *abfd); +extern bfd_boolean _bfd_slurp_extended_name_table + (bfd *) ATTRIBUTE_HIDDEN; extern bfd_boolean _bfd_construct_extended_name_table - (bfd *, bfd_boolean, char **, bfd_size_type *); -bfd_boolean _bfd_write_archive_contents - (bfd *abfd); -bfd_boolean _bfd_compute_and_write_armap - (bfd *, unsigned int elength); -bfd *_bfd_get_elt_at_filepos - (bfd *archive, file_ptr filepos); + (bfd *, bfd_boolean, char **, bfd_size_type *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_write_archive_contents + (bfd *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_compute_and_write_armap + (bfd *, unsigned int) ATTRIBUTE_HIDDEN; +extern bfd *_bfd_get_elt_at_filepos + (bfd *, file_ptr) ATTRIBUTE_HIDDEN; extern bfd *_bfd_generic_get_elt_at_index - (bfd *, symindex); -bfd * _bfd_new_bfd - (void); -bfd_boolean _bfd_free_cached_info - (bfd *); - -bfd_boolean bfd_false - (bfd *ignore); -bfd_boolean bfd_true - (bfd *ignore); -void *bfd_nullvoidptr - (bfd *ignore); -int bfd_0 - (bfd *ignore); -unsigned int bfd_0u - (bfd *ignore); -long bfd_0l - (bfd *ignore); -long _bfd_n1 - (bfd *ignore); -void bfd_void - (bfd *ignore); - -bfd *_bfd_new_bfd_contained_in - (bfd *); -const bfd_target *_bfd_dummy_target - (bfd *abfd); - -void bfd_dont_truncate_arname - (bfd *abfd, const char *filename, char *hdr); -void bfd_bsd_truncate_arname - (bfd *abfd, const char *filename, char *hdr); -void bfd_gnu_truncate_arname - (bfd *abfd, const char *filename, char *hdr); - -bfd_boolean _bfd_bsd_write_armap - (bfd *arch, unsigned int elength, struct orl *map, unsigned int orl_count, - int stridx); - -bfd_boolean _bfd_coff_write_armap - (bfd *arch, unsigned int elength, struct orl *map, unsigned int orl_count, - int stridx); + (bfd *, symindex) ATTRIBUTE_HIDDEN; +extern bfd * _bfd_new_bfd + (void) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_free_cached_info + (bfd *) ATTRIBUTE_HIDDEN; + +extern bfd_boolean _bfd_bool_bfd_false + (bfd *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_bool_bfd_asymbol_false + (bfd *, asymbol *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_bool_bfd_false_error + (bfd *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_bool_bfd_link_false_error + (bfd *, struct bfd_link_info *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_bool_bfd_true + (bfd *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_bool_bfd_link_true + (bfd *, struct bfd_link_info *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_bool_bfd_bfd_true + (bfd *, bfd *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_bool_bfd_uint_true + (bfd *, unsigned int) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_bool_bfd_asection_bfd_asection_true + (bfd *, asection *, bfd *, asection *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_bool_bfd_asymbol_bfd_asymbol_true + (bfd *, asymbol *, bfd *, asymbol *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_bool_bfd_ptr_true + (bfd *, void *) ATTRIBUTE_HIDDEN; +extern void *_bfd_ptr_bfd_null_error + (bfd *) ATTRIBUTE_HIDDEN; +extern int _bfd_int_bfd_0 + (bfd *) ATTRIBUTE_HIDDEN; +extern unsigned int _bfd_uint_bfd_0 + (bfd *) ATTRIBUTE_HIDDEN; +extern long _bfd_long_bfd_0 + (bfd *) ATTRIBUTE_HIDDEN; +extern long _bfd_long_bfd_n1_error + (bfd *) ATTRIBUTE_HIDDEN; +extern void _bfd_void_bfd + (bfd *) ATTRIBUTE_HIDDEN; +extern void _bfd_void_bfd_link + (bfd *, struct bfd_link_info *) ATTRIBUTE_HIDDEN; +extern void _bfd_void_bfd_asection + (bfd *, asection *) ATTRIBUTE_HIDDEN; + +extern bfd *_bfd_new_bfd_contained_in + (bfd *) ATTRIBUTE_HIDDEN; +extern const bfd_target *_bfd_dummy_target + (bfd *) ATTRIBUTE_HIDDEN; + +extern void bfd_dont_truncate_arname + (bfd *, const char *, char *) ATTRIBUTE_HIDDEN; +extern void bfd_bsd_truncate_arname + (bfd *, const char *, char *) ATTRIBUTE_HIDDEN; +extern void bfd_gnu_truncate_arname + (bfd *, const char *, char *) ATTRIBUTE_HIDDEN; + +extern bfd_boolean _bfd_bsd_write_armap + (bfd *, unsigned int, struct orl *, unsigned int, int) ATTRIBUTE_HIDDEN; + +extern bfd_boolean _bfd_coff_write_armap + (bfd *, unsigned int, struct orl *, unsigned int, int) ATTRIBUTE_HIDDEN; extern void *_bfd_generic_read_ar_hdr - (bfd *); + (bfd *) ATTRIBUTE_HIDDEN; extern void _bfd_ar_spacepad - (char *, size_t, const char *, long); + (char *, size_t, const char *, long) ATTRIBUTE_HIDDEN; extern bfd_boolean _bfd_ar_sizepad - (char *, size_t, bfd_size_type); + (char *, size_t, bfd_size_type) ATTRIBUTE_HIDDEN; extern void *_bfd_generic_read_ar_hdr_mag - (bfd *, const char *); + (bfd *, const char *) ATTRIBUTE_HIDDEN; extern bfd_boolean _bfd_generic_write_ar_hdr - (bfd *, bfd *); + (bfd *, bfd *) ATTRIBUTE_HIDDEN; extern bfd_boolean _bfd_bsd44_write_ar_hdr - (bfd *, bfd *); + (bfd *, bfd *) ATTRIBUTE_HIDDEN; -bfd * bfd_generic_openr_next_archived_file - (bfd *archive, bfd *last_file); +extern bfd * bfd_generic_openr_next_archived_file + (bfd *, bfd *) ATTRIBUTE_HIDDEN; -int bfd_generic_stat_arch_elt - (bfd *, struct stat *); +extern int bfd_generic_stat_arch_elt + (bfd *, struct stat *) ATTRIBUTE_HIDDEN; #define _bfd_read_ar_hdr(abfd) \ BFD_SEND (abfd, _bfd_read_ar_hdr_fn, (abfd)) @@ -252,70 +281,67 @@ #define _bfd_generic_close_and_cleanup _bfd_archive_close_and_cleanup extern bfd_boolean _bfd_archive_close_and_cleanup - (bfd *); -#define _bfd_generic_bfd_free_cached_info bfd_true + (bfd *) ATTRIBUTE_HIDDEN; +extern void _bfd_unlink_from_archive_parent (bfd *) ATTRIBUTE_HIDDEN; +#define _bfd_generic_bfd_free_cached_info _bfd_bool_bfd_true extern bfd_boolean _bfd_generic_new_section_hook - (bfd *, asection *); + (bfd *, asection *) ATTRIBUTE_HIDDEN; extern bfd_boolean _bfd_generic_get_section_contents - (bfd *, asection *, void *, file_ptr, bfd_size_type); + (bfd *, asection *, void *, file_ptr, bfd_size_type) ATTRIBUTE_HIDDEN; extern bfd_boolean _bfd_generic_get_section_contents_in_window - (bfd *, asection *, bfd_window *, file_ptr, bfd_size_type); + (bfd *, asection *, bfd_window *, file_ptr, bfd_size_type) ATTRIBUTE_HIDDEN; /* 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 (*) (bfd *, bfd *)) bfd_true) +#define _bfd_generic_bfd_copy_private_bfd_data _bfd_bool_bfd_bfd_true #define _bfd_generic_bfd_merge_private_bfd_data \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) bfd_true) -#define _bfd_generic_bfd_set_private_flags \ - ((bfd_boolean (*) (bfd *, flagword)) bfd_true) + _bfd_bool_bfd_link_true +#define _bfd_generic_bfd_set_private_flags _bfd_bool_bfd_uint_true #define _bfd_generic_bfd_copy_private_section_data \ - ((bfd_boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true) + _bfd_bool_bfd_asection_bfd_asection_true #define _bfd_generic_bfd_copy_private_symbol_data \ - ((bfd_boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true) -#define _bfd_generic_bfd_copy_private_header_data \ - ((bfd_boolean (*) (bfd *, bfd *)) bfd_true) -#define _bfd_generic_bfd_print_private_bfd_data \ - ((bfd_boolean (*) (bfd *, void *)) bfd_true) + _bfd_bool_bfd_asymbol_bfd_asymbol_true +#define _bfd_generic_bfd_copy_private_header_data _bfd_bool_bfd_bfd_true +#define _bfd_generic_bfd_print_private_bfd_data _bfd_bool_bfd_ptr_true extern bfd_boolean _bfd_generic_init_private_section_data - (bfd *, asection *, bfd *, asection *, struct bfd_link_info *); + (bfd *, asection *, bfd *, asection *, struct bfd_link_info *) + ATTRIBUTE_HIDDEN; /* 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 - (bfd *); + (bfd *) ATTRIBUTE_HIDDEN; extern int _bfd_nocore_core_file_failing_signal - (bfd *); + (bfd *) ATTRIBUTE_HIDDEN; extern bfd_boolean _bfd_nocore_core_file_matches_executable_p - (bfd *, bfd *); + (bfd *, bfd *) ATTRIBUTE_HIDDEN; extern int _bfd_nocore_core_file_pid - (bfd *); + (bfd *) ATTRIBUTE_HIDDEN; /* Routines to use for BFD_JUMP_TABLE_ARCHIVE when there is no archive file support. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive). */ -#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 (*) (bfd *, char **, bfd_size_type *, const char **)) \ - bfd_false) -#define _bfd_noarchive_truncate_arname \ - ((void (*) (bfd *, const char *, char *)) bfd_void) -#define _bfd_noarchive_write_armap \ - ((bfd_boolean (*) (bfd *, unsigned int, struct orl *, unsigned int, int)) \ - bfd_false) -#define _bfd_noarchive_read_ar_hdr bfd_nullvoidptr -#define _bfd_noarchive_write_ar_hdr \ - ((bfd_boolean (*) (bfd *, bfd *)) bfd_false) -#define _bfd_noarchive_openr_next_archived_file \ - ((bfd *(*) (bfd *, bfd *)) bfd_nullvoidptr) -#define _bfd_noarchive_get_elt_at_index \ - ((bfd *(*) (bfd *, symindex)) bfd_nullvoidptr) +#define _bfd_noarchive_slurp_armap _bfd_bool_bfd_false_error +#define _bfd_noarchive_slurp_extended_name_table _bfd_bool_bfd_false_error +extern bfd_boolean _bfd_noarchive_construct_extended_name_table + (bfd *, char **, bfd_size_type *, const char **) ATTRIBUTE_HIDDEN; +extern void _bfd_noarchive_truncate_arname + (bfd *, const char *, char *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_noarchive_write_armap + (bfd *, unsigned int, struct orl *, unsigned int, int) ATTRIBUTE_HIDDEN; +#define _bfd_noarchive_read_ar_hdr _bfd_ptr_bfd_null_error +extern bfd_boolean _bfd_noarchive_write_ar_hdr + (bfd *, bfd *) ATTRIBUTE_HIDDEN; +extern bfd * +_bfd_noarchive_openr_next_archived_file + (bfd *, bfd *) ATTRIBUTE_HIDDEN; +extern bfd * _bfd_noarchive_get_elt_at_index + (bfd *, symindex) ATTRIBUTE_HIDDEN; #define _bfd_noarchive_generic_stat_arch_elt bfd_generic_stat_arch_elt -#define _bfd_noarchive_update_armap_timestamp bfd_false +#define _bfd_noarchive_update_armap_timestamp _bfd_bool_bfd_false_error /* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get BSD style archives. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_bsd). */ @@ -324,7 +350,7 @@ #define _bfd_archive_bsd_slurp_extended_name_table \ _bfd_slurp_extended_name_table extern bfd_boolean _bfd_archive_bsd_construct_extended_name_table - (bfd *, char **, bfd_size_type *, const char **); + (bfd *, char **, bfd_size_type *, const char **) ATTRIBUTE_HIDDEN; #define _bfd_archive_bsd_truncate_arname bfd_bsd_truncate_arname #define _bfd_archive_bsd_write_armap _bfd_bsd_write_armap #define _bfd_archive_bsd_read_ar_hdr _bfd_generic_read_ar_hdr @@ -335,7 +361,7 @@ #define _bfd_archive_bsd_generic_stat_arch_elt \ bfd_generic_stat_arch_elt extern bfd_boolean _bfd_archive_bsd_update_armap_timestamp - (bfd *); + (bfd *) ATTRIBUTE_HIDDEN; /* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get COFF style archives. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff). */ @@ -344,7 +370,7 @@ #define _bfd_archive_coff_slurp_extended_name_table \ _bfd_slurp_extended_name_table extern bfd_boolean _bfd_archive_coff_construct_extended_name_table - (bfd *, char **, bfd_size_type *, const char **); + (bfd *, char **, bfd_size_type *, const char **) ATTRIBUTE_HIDDEN; #define _bfd_archive_coff_truncate_arname bfd_dont_truncate_arname #define _bfd_archive_coff_write_armap _bfd_coff_write_armap #define _bfd_archive_coff_read_ar_hdr _bfd_generic_read_ar_hdr @@ -354,7 +380,7 @@ #define _bfd_archive_coff_get_elt_at_index _bfd_generic_get_elt_at_index #define _bfd_archive_coff_generic_stat_arch_elt \ bfd_generic_stat_arch_elt -#define _bfd_archive_coff_update_armap_timestamp bfd_true +#define _bfd_archive_coff_update_armap_timestamp _bfd_bool_bfd_true /* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get BSD4.4 style archives. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_bsd44). */ @@ -363,7 +389,7 @@ #define _bfd_archive_bsd44_slurp_extended_name_table \ _bfd_slurp_extended_name_table extern bfd_boolean _bfd_archive_bsd44_construct_extended_name_table - (bfd *, char **, bfd_size_type *, const char **); + (bfd *, char **, bfd_size_type *, const char **) ATTRIBUTE_HIDDEN; #define _bfd_archive_bsd44_truncate_arname bfd_bsd_truncate_arname #define _bfd_archive_bsd44_write_armap _bfd_bsd_write_armap #define _bfd_archive_bsd44_read_ar_hdr _bfd_generic_read_ar_hdr @@ -380,7 +406,8 @@ archives. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_vms_lib). Some of them are irrelevant. */ -extern bfd_boolean _bfd_vms_lib_write_archive_contents (bfd *arch); +extern bfd_boolean _bfd_vms_lib_write_archive_contents + (bfd *) ATTRIBUTE_HIDDEN; #define _bfd_vms_lib_slurp_armap _bfd_noarchive_slurp_armap #define _bfd_vms_lib_slurp_extended_name_table \ _bfd_noarchive_slurp_extended_name_table @@ -390,139 +417,130 @@ #define _bfd_vms_lib_write_armap _bfd_noarchive_write_armap #define _bfd_vms_lib_read_ar_hdr _bfd_noarchive_read_ar_hdr #define _bfd_vms_lib_write_ar_hdr _bfd_noarchive_write_ar_hdr -extern bfd *_bfd_vms_lib_openr_next_archived_file (bfd *, bfd *); -extern bfd *_bfd_vms_lib_get_elt_at_index (bfd *, symindex); -extern int _bfd_vms_lib_generic_stat_arch_elt (bfd *, struct stat *); -#define _bfd_vms_lib_update_armap_timestamp bfd_true +extern bfd *_bfd_vms_lib_openr_next_archived_file + (bfd *, bfd *) ATTRIBUTE_HIDDEN; +extern bfd *_bfd_vms_lib_get_elt_at_index + (bfd *, symindex) ATTRIBUTE_HIDDEN; +extern int _bfd_vms_lib_generic_stat_arch_elt + (bfd *, struct stat *) ATTRIBUTE_HIDDEN; +#define _bfd_vms_lib_update_armap_timestamp _bfd_bool_bfd_true /* Extra routines for VMS style archives. */ -extern symindex _bfd_vms_lib_find_symbol (bfd *, const char *); -extern bfd *_bfd_vms_lib_get_imagelib_file (bfd *); -extern const bfd_target *_bfd_vms_lib_alpha_archive_p (bfd *abfd); -extern const bfd_target *_bfd_vms_lib_ia64_archive_p (bfd *abfd); -extern bfd_boolean _bfd_vms_lib_alpha_mkarchive (bfd *abfd); -extern bfd_boolean _bfd_vms_lib_ia64_mkarchive (bfd *abfd); +extern symindex _bfd_vms_lib_find_symbol + (bfd *, const char *) ATTRIBUTE_HIDDEN; +extern bfd *_bfd_vms_lib_get_imagelib_file + (bfd *) ATTRIBUTE_HIDDEN; +extern const bfd_target *_bfd_vms_lib_alpha_archive_p + (bfd *) ATTRIBUTE_HIDDEN; +extern const bfd_target *_bfd_vms_lib_ia64_archive_p + (bfd *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_vms_lib_alpha_mkarchive + (bfd *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_vms_lib_ia64_mkarchive + (bfd *) ATTRIBUTE_HIDDEN; /* Routines to use for BFD_JUMP_TABLE_SYMBOLS where there is no symbol support. Use BFD_JUMP_TABLE_SYMBOLS (_bfd_nosymbols). */ -#define _bfd_nosymbols_get_symtab_upper_bound _bfd_n1 -#define _bfd_nosymbols_canonicalize_symtab \ - ((long (*) (bfd *, asymbol **)) _bfd_n1) +#define _bfd_nosymbols_get_symtab_upper_bound _bfd_long_bfd_n1_error +extern long _bfd_nosymbols_canonicalize_symtab + (bfd *, asymbol **) ATTRIBUTE_HIDDEN; #define _bfd_nosymbols_make_empty_symbol _bfd_generic_make_empty_symbol -#define _bfd_nosymbols_print_symbol \ - ((void (*) (bfd *, void *, asymbol *, bfd_print_symbol_type)) bfd_void) -#define _bfd_nosymbols_get_symbol_info \ - ((void (*) (bfd *, asymbol *, symbol_info *)) bfd_void) -#define _bfd_nosymbols_get_symbol_version_string \ - ((const char *(*) (bfd *, asymbol *, bfd_boolean *)) bfd_nullvoidptr) -#define _bfd_nosymbols_bfd_is_local_label_name \ - ((bfd_boolean (*) (bfd *, const char *)) bfd_false) -#define _bfd_nosymbols_bfd_is_target_special_symbol \ - ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) -#define _bfd_nosymbols_get_lineno \ - ((alent *(*) (bfd *, asymbol *)) bfd_nullvoidptr) -#define _bfd_nosymbols_find_nearest_line \ - ((bfd_boolean (*) (bfd *, asymbol **, asection *, bfd_vma, \ - const char **, const char **, unsigned int *, \ - unsigned int *)) \ - bfd_false) -#define _bfd_nosymbols_find_line \ - ((bfd_boolean (*) (bfd *, asymbol **, asymbol *, \ - const char **, unsigned int *)) \ - bfd_false) -#define _bfd_nosymbols_find_inliner_info \ - ((bfd_boolean (*) (bfd *, const char **, const char **, unsigned int *)) \ - bfd_false) -#define _bfd_nosymbols_bfd_make_debug_symbol \ - ((asymbol *(*) (bfd *, void *, unsigned long)) bfd_nullvoidptr) -#define _bfd_nosymbols_read_minisymbols \ - ((long (*) (bfd *, bfd_boolean, void **, unsigned int *)) _bfd_n1) -#define _bfd_nosymbols_minisymbol_to_symbol \ - ((asymbol *(*) (bfd *, bfd_boolean, const void *, asymbol *)) \ - bfd_nullvoidptr) +extern void _bfd_nosymbols_print_symbol + (bfd *, void *, asymbol *, bfd_print_symbol_type) ATTRIBUTE_HIDDEN; +extern void _bfd_nosymbols_get_symbol_info + (bfd *, asymbol *, symbol_info *) ATTRIBUTE_HIDDEN; +extern const char * _bfd_nosymbols_get_symbol_version_string + (bfd *, asymbol *, bfd_boolean *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_nosymbols_bfd_is_local_label_name + (bfd *, const char *) ATTRIBUTE_HIDDEN; +#define _bfd_nosymbols_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false +extern alent *_bfd_nosymbols_get_lineno + (bfd *, asymbol *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_nosymbols_find_nearest_line + (bfd *, asymbol **, asection *, bfd_vma, + const char **, const char **, unsigned int *, unsigned int *) + ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_nosymbols_find_line + (bfd *, asymbol **, asymbol *, const char **, unsigned int *) + ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_nosymbols_find_inliner_info + (bfd *, const char **, const char **, unsigned int *) ATTRIBUTE_HIDDEN; +extern asymbol *_bfd_nosymbols_bfd_make_debug_symbol + (bfd *, void *, unsigned long) ATTRIBUTE_HIDDEN; +extern long _bfd_nosymbols_read_minisymbols + (bfd *, bfd_boolean, void **, unsigned int *) ATTRIBUTE_HIDDEN; +extern asymbol *_bfd_nosymbols_minisymbol_to_symbol + (bfd *, bfd_boolean, const void *, asymbol *) ATTRIBUTE_HIDDEN; /* Routines to use for BFD_JUMP_TABLE_RELOCS when there is no reloc support. Use BFD_JUMP_TABLE_RELOCS (_bfd_norelocs). */ -extern long _bfd_norelocs_get_reloc_upper_bound (bfd *, asection *); -extern long _bfd_norelocs_canonicalize_reloc (bfd *, asection *, - arelent **, asymbol **); -extern void _bfd_norelocs_set_reloc (bfd *, asection *, - arelent **, unsigned int); -#define _bfd_norelocs_bfd_reloc_type_lookup \ - ((reloc_howto_type *(*) (bfd *, bfd_reloc_code_real_type)) bfd_nullvoidptr) -#define _bfd_norelocs_bfd_reloc_name_lookup \ - ((reloc_howto_type *(*) (bfd *, const char *)) bfd_nullvoidptr) +extern long _bfd_norelocs_get_reloc_upper_bound + (bfd *, asection *) ATTRIBUTE_HIDDEN; +extern long _bfd_norelocs_canonicalize_reloc + (bfd *, asection *, arelent **, asymbol **) ATTRIBUTE_HIDDEN; +extern void _bfd_norelocs_set_reloc + (bfd *, asection *, arelent **, unsigned int) ATTRIBUTE_HIDDEN; +extern reloc_howto_type *_bfd_norelocs_bfd_reloc_type_lookup + (bfd *, bfd_reloc_code_real_type) ATTRIBUTE_HIDDEN; +extern reloc_howto_type *_bfd_norelocs_bfd_reloc_name_lookup + (bfd *, const char *) ATTRIBUTE_HIDDEN; /* 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 (*) (bfd *, enum bfd_architecture, unsigned long)) \ - bfd_false) -#define _bfd_nowrite_set_section_contents \ - ((bfd_boolean (*) (bfd *, asection *, const void *, file_ptr, bfd_size_type)) \ - bfd_false) +extern bfd_boolean _bfd_nowrite_set_arch_mach + (bfd *, enum bfd_architecture, unsigned long) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_nowrite_set_section_contents + (bfd *, asection *, const void *, file_ptr, bfd_size_type) ATTRIBUTE_HIDDEN; /* Generic routines to use for BFD_JUMP_TABLE_WRITE. Use BFD_JUMP_TABLE_WRITE (_bfd_generic). */ #define _bfd_generic_set_arch_mach bfd_default_set_arch_mach extern bfd_boolean _bfd_generic_set_section_contents - (bfd *, asection *, const void *, file_ptr, bfd_size_type); + (bfd *, asection *, const void *, file_ptr, bfd_size_type) ATTRIBUTE_HIDDEN; /* 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 (*) (bfd *, struct bfd_link_info *)) bfd_0) -#define _bfd_nolink_bfd_get_relocated_section_contents \ - ((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 (*) \ - (bfd *, asection *, struct bfd_link_info *, bfd_boolean *)) \ - bfd_false) -#define _bfd_nolink_bfd_gc_sections \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) \ - bfd_false) -#define _bfd_nolink_bfd_lookup_section_flags \ - ((bfd_boolean (*) (struct bfd_link_info *, struct flag_info *, asection *)) \ - bfd_0) -#define _bfd_nolink_bfd_merge_sections \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) \ - bfd_false) -#define _bfd_nolink_bfd_is_group_section \ - ((bfd_boolean (*) (bfd *, const struct bfd_section *)) \ - bfd_false) -#define _bfd_nolink_bfd_discard_group \ - ((bfd_boolean (*) (bfd *, struct bfd_section *)) \ - bfd_false) -#define _bfd_nolink_bfd_link_hash_table_create \ - ((struct bfd_link_hash_table *(*) (bfd *)) bfd_nullvoidptr) -#define _bfd_nolink_bfd_link_add_symbols \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) bfd_false) -#define _bfd_nolink_bfd_link_just_syms \ - ((void (*) (asection *, struct bfd_link_info *)) bfd_void) -#define _bfd_nolink_bfd_copy_link_hash_symbol_type \ - ((void (*) (bfd *, struct bfd_link_hash_entry *, \ - struct bfd_link_hash_entry *)) bfd_void) -#define _bfd_nolink_bfd_final_link \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) bfd_false) -#define _bfd_nolink_bfd_link_split_section \ - ((bfd_boolean (*) (bfd *, struct bfd_section *)) bfd_false) -#define _bfd_nolink_section_already_linked \ - ((bfd_boolean (*) (bfd *, asection *, \ - struct bfd_link_info *)) bfd_false) -#define _bfd_nolink_bfd_define_common_symbol \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *, \ - struct bfd_link_hash_entry *)) bfd_false) -#define _bfd_nolink_bfd_define_start_stop \ - ((struct bfd_link_hash_entry * (*) (struct bfd_link_info *, \ - const char *, asection *)) bfd_nullvoidptr) +extern int _bfd_nolink_sizeof_headers + (bfd *, struct bfd_link_info *) ATTRIBUTE_HIDDEN; +extern bfd_byte *_bfd_nolink_bfd_get_relocated_section_contents + (bfd *, struct bfd_link_info *, struct bfd_link_order *, + bfd_byte *, bfd_boolean, asymbol **) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_nolink_bfd_relax_section + (bfd *, asection *, struct bfd_link_info *, bfd_boolean *) ATTRIBUTE_HIDDEN; +#define _bfd_nolink_bfd_gc_sections _bfd_bool_bfd_link_false_error +extern bfd_boolean _bfd_nolink_bfd_lookup_section_flags + (struct bfd_link_info *, struct flag_info *, asection *) ATTRIBUTE_HIDDEN; +#define _bfd_nolink_bfd_merge_sections _bfd_bool_bfd_link_false_error +extern bfd_boolean _bfd_nolink_bfd_is_group_section + (bfd *, const asection *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_nolink_bfd_discard_group + (bfd *, asection *) ATTRIBUTE_HIDDEN; +extern struct bfd_link_hash_table *_bfd_nolink_bfd_link_hash_table_create + (bfd *) ATTRIBUTE_HIDDEN; +#define _bfd_nolink_bfd_link_add_symbols _bfd_bool_bfd_link_false_error +extern void _bfd_nolink_bfd_link_just_syms + (asection *, struct bfd_link_info *) ATTRIBUTE_HIDDEN; +extern void _bfd_nolink_bfd_copy_link_hash_symbol_type + (bfd *, struct bfd_link_hash_entry *, struct bfd_link_hash_entry *) + ATTRIBUTE_HIDDEN; +#define _bfd_nolink_bfd_final_link _bfd_bool_bfd_link_false_error +extern bfd_boolean _bfd_nolink_bfd_link_split_section + (bfd *, struct bfd_section *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_nolink_section_already_linked + (bfd *, asection *, struct bfd_link_info *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_nolink_bfd_define_common_symbol + (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *) + ATTRIBUTE_HIDDEN; +#define _bfd_nolink_bfd_link_hide_symbol \ + _bfd_generic_link_hide_symbol +extern struct bfd_link_hash_entry *_bfd_nolink_bfd_define_start_stop + (struct bfd_link_info *, const char *, asection *) ATTRIBUTE_HIDDEN; #define _bfd_nolink_bfd_link_check_relocs \ _bfd_generic_link_check_relocs @@ -530,78 +548,80 @@ have dynamic symbols or relocs. Use BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic). */ -#define _bfd_nodynamic_get_dynamic_symtab_upper_bound _bfd_n1 +#define _bfd_nodynamic_get_dynamic_symtab_upper_bound _bfd_long_bfd_n1_error #define _bfd_nodynamic_canonicalize_dynamic_symtab \ - ((long (*) (bfd *, asymbol **)) _bfd_n1) -#define _bfd_nodynamic_get_synthetic_symtab \ - ((long (*) (bfd *, long, asymbol **, long, asymbol **, asymbol **)) _bfd_n1) -#define _bfd_nodynamic_get_dynamic_reloc_upper_bound _bfd_n1 -#define _bfd_nodynamic_canonicalize_dynamic_reloc \ - ((long (*) (bfd *, arelent **, asymbol **)) _bfd_n1) + _bfd_nosymbols_canonicalize_symtab +extern long _bfd_nodynamic_get_synthetic_symtab + (bfd *, long, asymbol **, long, asymbol **, asymbol **) ATTRIBUTE_HIDDEN; +#define _bfd_nodynamic_get_dynamic_reloc_upper_bound _bfd_long_bfd_n1_error +extern long _bfd_nodynamic_canonicalize_dynamic_reloc + (bfd *, arelent **, asymbol **) ATTRIBUTE_HIDDEN; /* Generic routine to determine of the given symbol is a local label. */ extern bfd_boolean bfd_generic_is_local_label_name - (bfd *, const char *); + (bfd *, const char *) ATTRIBUTE_HIDDEN; /* Generic minisymbol routines. */ extern long _bfd_generic_read_minisymbols - (bfd *, bfd_boolean, void **, unsigned int *); + (bfd *, bfd_boolean, void **, unsigned int *) ATTRIBUTE_HIDDEN; extern asymbol *_bfd_generic_minisymbol_to_symbol - (bfd *, bfd_boolean, const void *, asymbol *); + (bfd *, bfd_boolean, const void *, asymbol *) ATTRIBUTE_HIDDEN; /* Find the nearest line using .stab/.stabstr sections. */ extern bfd_boolean _bfd_stab_section_find_nearest_line (bfd *, asymbol **, asection *, bfd_vma, bfd_boolean *, - const char **, const char **, unsigned int *, void **); + const char **, const char **, unsigned int *, void **) ATTRIBUTE_HIDDEN; /* Find the nearest line using DWARF 1 debugging information. */ extern bfd_boolean _bfd_dwarf1_find_nearest_line (bfd *, asymbol **, asection *, bfd_vma, - const char **, const char **, unsigned int *); + const char **, const char **, unsigned int *) ATTRIBUTE_HIDDEN; struct dwarf_debug_section { - const char *uncompressed_name; - const char *compressed_name; + const char * uncompressed_name; + const char * compressed_name; }; /* Map of uncompressed DWARF debug section name to compressed one. It is terminated by NULL uncompressed_name. */ -extern const struct dwarf_debug_section dwarf_debug_sections[]; +extern const struct dwarf_debug_section dwarf_debug_sections[] ATTRIBUTE_HIDDEN; /* Find the nearest line using DWARF 2 debugging information. */ extern bfd_boolean _bfd_dwarf2_find_nearest_line (bfd *, asymbol **, asymbol *, asection *, bfd_vma, const char **, const char **, unsigned int *, unsigned int *, - const struct dwarf_debug_section *, unsigned int, void **); + const struct dwarf_debug_section *, unsigned int, void **) ATTRIBUTE_HIDDEN; /* Find the bias between DWARF addresses and real addresses. */ extern bfd_signed_vma _bfd_dwarf2_find_symbol_bias - (asymbol **, void **); + (asymbol **, void **) ATTRIBUTE_HIDDEN; /* Find inliner info after calling bfd_find_nearest_line. */ extern bfd_boolean _bfd_dwarf2_find_inliner_info - (bfd *, const char **, const char **, unsigned int *, void **); + (bfd *, const char **, const char **, unsigned int *, void **) + ATTRIBUTE_HIDDEN; /* Read DWARF 2 debugging information. */ extern bfd_boolean _bfd_dwarf2_slurp_debug_info (bfd *, bfd *, const struct dwarf_debug_section *, asymbol **, void **, - bfd_boolean); + bfd_boolean) ATTRIBUTE_HIDDEN; /* Clean up the data used to handle DWARF 2 debugging information. */ extern void _bfd_dwarf2_cleanup_debug_info - (bfd *, void **); + (bfd *, void **) ATTRIBUTE_HIDDEN; /* Create a new section entry. */ extern struct bfd_hash_entry *bfd_section_hash_newfunc - (struct bfd_hash_entry *, struct bfd_hash_table *, const char *); + (struct bfd_hash_entry *, struct bfd_hash_table *, const char *) + ATTRIBUTE_HIDDEN; /* A routine to create entries for a bfd_link_hash_table. */ extern struct bfd_hash_entry *_bfd_link_hash_newfunc (struct bfd_hash_entry *entry, struct bfd_hash_table *table, - const char *string); + const char *string) ATTRIBUTE_HIDDEN; /* Initialize a bfd_link_hash_table. */ extern bfd_boolean _bfd_link_hash_table_init @@ -609,26 +629,26 @@ struct bfd_hash_entry *(*) (struct bfd_hash_entry *, struct bfd_hash_table *, const char *), - unsigned int); + unsigned int) ATTRIBUTE_HIDDEN; /* Generic link hash table creation routine. */ extern struct bfd_link_hash_table *_bfd_generic_link_hash_table_create - (bfd *); + (bfd *) ATTRIBUTE_HIDDEN; /* Generic link hash table destruction routine. */ extern void _bfd_generic_link_hash_table_free - (bfd *); + (bfd *) ATTRIBUTE_HIDDEN; /* Generic add symbol routine. */ extern bfd_boolean _bfd_generic_link_add_symbols - (bfd *, struct bfd_link_info *); + (bfd *, struct bfd_link_info *) ATTRIBUTE_HIDDEN; /* Generic archive add symbol routine. */ extern bfd_boolean _bfd_generic_link_add_archive_symbols (bfd *, struct bfd_link_info *, bfd_boolean (*) (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, const char *, - bfd_boolean *)); + bfd_boolean *)) ATTRIBUTE_HIDDEN; /* Forward declaration to avoid prototype errors. */ typedef struct bfd_link_hash_entry _bfd_link_hash_entry; @@ -637,124 +657,131 @@ extern bfd_boolean _bfd_generic_link_add_one_symbol (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 **); + bfd_boolean constructor, struct bfd_link_hash_entry **) ATTRIBUTE_HIDDEN; /* Generic routine to mark section as supplying symbols only. */ extern void _bfd_generic_link_just_syms - (asection *, struct bfd_link_info *); + (asection *, struct bfd_link_info *) ATTRIBUTE_HIDDEN; /* Generic routine that does nothing. */ extern void _bfd_generic_copy_link_hash_symbol_type - (bfd *, struct bfd_link_hash_entry *, struct bfd_link_hash_entry *); + (bfd *, struct bfd_link_hash_entry *, struct bfd_link_hash_entry *) + ATTRIBUTE_HIDDEN; /* Generic link routine. */ extern bfd_boolean _bfd_generic_final_link - (bfd *, struct bfd_link_info *); + (bfd *, struct bfd_link_info *) ATTRIBUTE_HIDDEN; extern bfd_boolean _bfd_generic_link_split_section - (bfd *, struct bfd_section *); + (bfd *, struct bfd_section *) ATTRIBUTE_HIDDEN; extern bfd_boolean _bfd_generic_section_already_linked - (bfd *, asection *, struct bfd_link_info *); + (bfd *, asection *, struct bfd_link_info *) ATTRIBUTE_HIDDEN; /* Generic reloc_link_order processing routine. */ extern bfd_boolean _bfd_generic_reloc_link_order - (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *); + (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *) + ATTRIBUTE_HIDDEN; /* Default link order processing routine. */ extern bfd_boolean _bfd_default_link_order - (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *); + (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *) + ATTRIBUTE_HIDDEN; /* Count the number of reloc entries in a link order list. */ extern unsigned int _bfd_count_link_order_relocs - (struct bfd_link_order *); + (struct bfd_link_order *) ATTRIBUTE_HIDDEN; /* Final link relocation routine. */ extern bfd_reloc_status_type _bfd_final_link_relocate (reloc_howto_type *, bfd *, asection *, bfd_byte *, - bfd_vma, bfd_vma, bfd_vma); + bfd_vma, bfd_vma, bfd_vma) ATTRIBUTE_HIDDEN; /* Relocate a particular location by a howto and a value. */ extern bfd_reloc_status_type _bfd_relocate_contents - (reloc_howto_type *, bfd *, bfd_vma, bfd_byte *); + (reloc_howto_type *, bfd *, bfd_vma, bfd_byte *) ATTRIBUTE_HIDDEN; /* Clear a given location using a given howto. */ -extern void _bfd_clear_contents (reloc_howto_type *howto, bfd *input_bfd, - asection *input_section, bfd_byte *location); +extern void _bfd_clear_contents + (reloc_howto_type *, bfd *, asection *, bfd_byte *) ATTRIBUTE_HIDDEN; /* Link stabs in sections in the first pass. */ extern bfd_boolean _bfd_link_section_stabs (bfd *, struct stab_info *, asection *, asection *, void **, - bfd_size_type *); + bfd_size_type *) ATTRIBUTE_HIDDEN; /* Eliminate stabs for discarded functions and symbols. */ extern bfd_boolean _bfd_discard_section_stabs - (bfd *, asection *, void *, bfd_boolean (*) (bfd_vma, void *), void *); + (bfd *, asection *, void *, bfd_boolean (*) (bfd_vma, void *), void *) + ATTRIBUTE_HIDDEN; /* Write out the .stab section when linking stabs in sections. */ extern bfd_boolean _bfd_write_section_stabs - (bfd *, struct stab_info *, asection *, void **, bfd_byte *); + (bfd *, struct stab_info *, asection *, void **, bfd_byte *) + ATTRIBUTE_HIDDEN; /* Write out the .stabstr string table when linking stabs in sections. */ extern bfd_boolean _bfd_write_stab_strings - (bfd *, struct stab_info *); + (bfd *, struct stab_info *) ATTRIBUTE_HIDDEN; /* Find an offset within a .stab section when linking stabs in sections. */ extern bfd_vma _bfd_stab_section_offset - (asection *, void *, bfd_vma); + (asection *, void *, bfd_vma) ATTRIBUTE_HIDDEN; /* Register a SEC_MERGE section as a candidate for merging. */ extern bfd_boolean _bfd_add_merge_section - (bfd *, void **, asection *, void **); + (bfd *, void **, asection *, void **) ATTRIBUTE_HIDDEN; /* Attempt to merge SEC_MERGE sections. */ extern bfd_boolean _bfd_merge_sections - (bfd *, struct bfd_link_info *, void *, void (*) (bfd *, asection *)); + (bfd *, struct bfd_link_info *, void *, void (*) (bfd *, asection *)) + ATTRIBUTE_HIDDEN; /* Write out a merged section. */ extern bfd_boolean _bfd_write_merged_section - (bfd *, asection *, void *); + (bfd *, asection *, void *) ATTRIBUTE_HIDDEN; /* Find an offset within a modified SEC_MERGE section. */ extern bfd_vma _bfd_merged_section_offset - (bfd *, asection **, void *, bfd_vma); + (bfd *, asection **, void *, bfd_vma) ATTRIBUTE_HIDDEN; /* Tidy up when done. */ -extern void _bfd_merge_sections_free (void *); +extern void _bfd_merge_sections_free (void *) ATTRIBUTE_HIDDEN; /* Create a string table. */ extern struct bfd_strtab_hash *_bfd_stringtab_init - (void); + (void) ATTRIBUTE_HIDDEN; /* Create an XCOFF .debug section style string table. */ extern struct bfd_strtab_hash *_bfd_xcoff_stringtab_init - (void); + (void) ATTRIBUTE_HIDDEN; /* Free a string table. */ extern void _bfd_stringtab_free - (struct bfd_strtab_hash *); + (struct bfd_strtab_hash *) ATTRIBUTE_HIDDEN; /* Get the size of a string table. */ extern bfd_size_type _bfd_stringtab_size - (struct bfd_strtab_hash *); + (struct bfd_strtab_hash *) ATTRIBUTE_HIDDEN; /* Add a string to a string table. */ extern bfd_size_type _bfd_stringtab_add - (struct bfd_strtab_hash *, const char *, bfd_boolean hash, bfd_boolean copy); + (struct bfd_strtab_hash *, const char *, bfd_boolean hash, bfd_boolean copy) + ATTRIBUTE_HIDDEN; /* Write out a string table. */ extern bfd_boolean _bfd_stringtab_emit - (bfd *, struct bfd_strtab_hash *); + (bfd *, struct bfd_strtab_hash *) ATTRIBUTE_HIDDEN; /* Macros to tell if bfds are read or write enabled. @@ -770,8 +797,8 @@ #define bfd_write_p(abfd) \ ((abfd)->direction == write_direction || (abfd)->direction == both_direction) -void bfd_assert - (const char*,int); +extern void bfd_assert + (const char*,int) ATTRIBUTE_HIDDEN; #define BFD_ASSERT(x) \ do { if (!(x)) bfd_assert(__FILE__,__LINE__); } while (0) @@ -780,7 +807,7 @@ do { bfd_assert(__FILE__,__LINE__); } while (0) extern void _bfd_abort - (const char *, int, const char *) ATTRIBUTE_NORETURN; + (const char *, int, const char *) ATTRIBUTE_NORETURN ATTRIBUTE_HIDDEN; /* if gcc >= 2.6, we can give a function name, too */ #if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 6) @@ -792,17 +819,20 @@ /* Manipulate a system FILE but using BFD's "file_ptr", rather than the system "off_t" or "off64_t", as the offset. */ -extern file_ptr _bfd_real_ftell (FILE *file); -extern int _bfd_real_fseek (FILE *file, file_ptr offset, int whence); -extern FILE *_bfd_real_fopen (const char *filename, const char *modes); +extern file_ptr _bfd_real_ftell + (FILE *) ATTRIBUTE_HIDDEN; +extern int _bfd_real_fseek + (FILE *, file_ptr, int) ATTRIBUTE_HIDDEN; +extern FILE *_bfd_real_fopen + (const char *, const char *) ATTRIBUTE_HIDDEN; /* List of supported target vectors, and the default vector (if bfd_default_vector[0] is NULL, there is no default). */ -extern const bfd_target * const *bfd_target_vector; -extern const bfd_target *bfd_default_vector[]; +extern const bfd_target * const *bfd_target_vector ATTRIBUTE_HIDDEN; +extern const bfd_target *bfd_default_vector[] ATTRIBUTE_HIDDEN; /* List of associated target vectors. */ -extern const bfd_target * const *bfd_associated_vector; +extern const bfd_target * const *bfd_associated_vector ATTRIBUTE_HIDDEN; /* Functions shared by the ECOFF and MIPS ELF backends, which have no other common header files. */ @@ -814,18 +844,18 @@ extern bfd_boolean _bfd_ecoff_locate_line (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 *); + const char **, const char **, unsigned int *) ATTRIBUTE_HIDDEN; extern bfd_boolean _bfd_ecoff_get_accumulated_pdr - (void *, bfd_byte *); + (void *, bfd_byte *) ATTRIBUTE_HIDDEN; extern bfd_boolean _bfd_ecoff_get_accumulated_sym - (void *, bfd_byte *); + (void *, bfd_byte *) ATTRIBUTE_HIDDEN; extern bfd_boolean _bfd_ecoff_get_accumulated_ss - (void *, bfd_byte *); + (void *, bfd_byte *) ATTRIBUTE_HIDDEN; extern bfd_vma _bfd_get_gp_value - (bfd *); + (bfd *) ATTRIBUTE_HIDDEN; extern void _bfd_set_gp_value - (bfd *, bfd_vma); + (bfd *, bfd_vma) ATTRIBUTE_HIDDEN; /* Function shared by the COFF and ELF SH backends, which have no other common header files. */ @@ -834,7 +864,7 @@ extern bfd_boolean _bfd_sh_align_load_span (bfd *, asection *, bfd_byte *, bfd_boolean (*) (bfd *, asection *, void *, bfd_byte *, bfd_vma), - void *, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, bfd_boolean *); + void *, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, bfd_boolean *) ATTRIBUTE_HIDDEN; #endif /* This is the shape of the elements inside the already_linked hash @@ -854,17 +884,21 @@ }; extern struct bfd_section_already_linked_hash_entry * - bfd_section_already_linked_table_lookup (const char *); + bfd_section_already_linked_table_lookup (const char *) ATTRIBUTE_HIDDEN; extern bfd_boolean bfd_section_already_linked_table_insert - (struct bfd_section_already_linked_hash_entry *, asection *); + (struct bfd_section_already_linked_hash_entry *, asection *) + ATTRIBUTE_HIDDEN; extern void bfd_section_already_linked_table_traverse (bfd_boolean (*) (struct bfd_section_already_linked_hash_entry *, - void *), void *); + void *), void *) ATTRIBUTE_HIDDEN; -extern bfd_vma _bfd_read_unsigned_leb128 (bfd *, bfd_byte *, unsigned int *); -extern bfd_signed_vma _bfd_read_signed_leb128 (bfd *, bfd_byte *, unsigned int *); -extern bfd_vma _bfd_safe_read_leb128 (bfd *, bfd_byte *, unsigned int *, - bfd_boolean, const bfd_byte * const); +extern bfd_vma _bfd_read_unsigned_leb128 + (bfd *, bfd_byte *, unsigned int *) ATTRIBUTE_HIDDEN; +extern bfd_signed_vma _bfd_read_signed_leb128 + (bfd *, bfd_byte *, unsigned int *) ATTRIBUTE_HIDDEN; +extern bfd_vma _bfd_safe_read_leb128 + (bfd *, bfd_byte *, unsigned int *, bfd_boolean, const bfd_byte * const) + ATTRIBUTE_HIDDEN; /* Extracted from libbfd.c. */ bfd_boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int); @@ -992,7 +1026,6 @@ "BFD_RELOC_LO10", "BFD_RELOC_GPREL16", "BFD_RELOC_GPREL32", - "BFD_RELOC_I960_CALLJ", "BFD_RELOC_NONE", "BFD_RELOC_SPARC_WDISP22", "BFD_RELOC_SPARC22", @@ -1510,6 +1543,13 @@ "BFD_RELOC_ARM_THUMB_MOVT", "BFD_RELOC_ARM_THUMB_MOVW_PCREL", "BFD_RELOC_ARM_THUMB_MOVT_PCREL", + "BFD_RELOC_ARM_GOTFUNCDESC", + "BFD_RELOC_ARM_GOTOFFFUNCDESC", + "BFD_RELOC_ARM_FUNCDESC", + "BFD_RELOC_ARM_FUNCDESC_VALUE", + "BFD_RELOC_ARM_TLS_GD32_FDPIC", + "BFD_RELOC_ARM_TLS_LDM32_FDPIC", + "BFD_RELOC_ARM_TLS_IE32_FDPIC", "BFD_RELOC_ARM_JUMP_SLOT", "BFD_RELOC_ARM_GLOB_DAT", "BFD_RELOC_ARM_GOT32", @@ -2473,6 +2513,7 @@ "BFD_RELOC_M68HC12_10_PCREL", "BFD_RELOC_M68HC12_LO8XG", "BFD_RELOC_M68HC12_HI8XG", + "BFD_RELOC_S12Z_15_PCREL", "BFD_RELOC_16C_NUM08", "BFD_RELOC_16C_NUM08_C", "BFD_RELOC_16C_NUM16", @@ -2599,38 +2640,6 @@ "BFD_RELOC_CRIS_16_TPREL", "BFD_RELOC_CRIS_DTPMOD", "BFD_RELOC_CRIS_32_IE", - "BFD_RELOC_860_COPY", - "BFD_RELOC_860_GLOB_DAT", - "BFD_RELOC_860_JUMP_SLOT", - "BFD_RELOC_860_RELATIVE", - "BFD_RELOC_860_PC26", - "BFD_RELOC_860_PLT26", - "BFD_RELOC_860_PC16", - "BFD_RELOC_860_LOW0", - "BFD_RELOC_860_SPLIT0", - "BFD_RELOC_860_LOW1", - "BFD_RELOC_860_SPLIT1", - "BFD_RELOC_860_LOW2", - "BFD_RELOC_860_SPLIT2", - "BFD_RELOC_860_LOW3", - "BFD_RELOC_860_LOGOT0", - "BFD_RELOC_860_SPGOT0", - "BFD_RELOC_860_LOGOT1", - "BFD_RELOC_860_SPGOT1", - "BFD_RELOC_860_LOGOTOFF0", - "BFD_RELOC_860_SPGOTOFF0", - "BFD_RELOC_860_LOGOTOFF1", - "BFD_RELOC_860_SPGOTOFF1", - "BFD_RELOC_860_LOGOTOFF2", - "BFD_RELOC_860_LOGOTOFF3", - "BFD_RELOC_860_LOPC", - "BFD_RELOC_860_HIGHADJ", - "BFD_RELOC_860_HAGOT", - "BFD_RELOC_860_HAGOTOFF", - "BFD_RELOC_860_HAPC", - "BFD_RELOC_860_HIGH", - "BFD_RELOC_860_HIGOT", - "BFD_RELOC_860_HIGOTOFF", "BFD_RELOC_OR1K_REL_26", "BFD_RELOC_OR1K_GOTPC_HI16", "BFD_RELOC_OR1K_GOTPC_LO16", @@ -2844,6 +2853,7 @@ "BFD_RELOC_MACH_O_X86_64_PCREL32_1", "BFD_RELOC_MACH_O_X86_64_PCREL32_2", "BFD_RELOC_MACH_O_X86_64_PCREL32_4", + "BFD_RELOC_MACH_O_X86_64_TLV", "BFD_RELOC_MACH_O_ARM64_ADDEND", "BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21", "BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGEOFF12", @@ -2868,6 +2878,8 @@ "BFD_RELOC_MICROBLAZE_64_TLSDTPREL", "BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL", "BFD_RELOC_MICROBLAZE_64_TLSTPREL", + "BFD_RELOC_MICROBLAZE_64_TEXTPCREL", + "BFD_RELOC_MICROBLAZE_64_TEXTREL", "BFD_RELOC_AARCH64_RELOC_START", "BFD_RELOC_AARCH64_NULL", "BFD_RELOC_AARCH64_NONE", @@ -2887,6 +2899,13 @@ "BFD_RELOC_AARCH64_MOVW_G0_S", "BFD_RELOC_AARCH64_MOVW_G1_S", "BFD_RELOC_AARCH64_MOVW_G2_S", + "BFD_RELOC_AARCH64_MOVW_PREL_G0", + "BFD_RELOC_AARCH64_MOVW_PREL_G0_NC", + "BFD_RELOC_AARCH64_MOVW_PREL_G1", + "BFD_RELOC_AARCH64_MOVW_PREL_G1_NC", + "BFD_RELOC_AARCH64_MOVW_PREL_G2", + "BFD_RELOC_AARCH64_MOVW_PREL_G2_NC", + "BFD_RELOC_AARCH64_MOVW_PREL_G3", "BFD_RELOC_AARCH64_LD_LO19_PCREL", "BFD_RELOC_AARCH64_ADR_LO21_PCREL", "BFD_RELOC_AARCH64_ADR_HI21_PCREL", @@ -2948,6 +2967,14 @@ "BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12", "BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12", "BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC", + "BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12", + "BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12_NC", + "BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12", + "BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12_NC", + "BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12", + "BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12_NC", + "BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12", + "BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12_NC", "BFD_RELOC_AARCH64_TLSDESC_LD_PREL19", "BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21", "BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21", @@ -2973,6 +3000,8 @@ "BFD_RELOC_AARCH64_LDST_LO12", "BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12", "BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC", + "BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12", + "BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12_NC", "BFD_RELOC_AARCH64_LD_GOT_LO12_NC", "BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC", "BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC", @@ -3248,3 +3277,4 @@ #ifdef __cplusplus } #endif +#endif diff -Nru gdb-8.1/bfd/libbfd-in.h gdb-8.2/bfd/libbfd-in.h --- gdb-8.1/bfd/libbfd-in.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/libbfd-in.h 2018-09-05 07:27:13.000000000 +0000 @@ -22,6 +22,17 @@ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ +#ifndef _LIBBFD_H +#define _LIBBFD_H 1 + +#ifndef ATTRIBUTE_HIDDEN +#if HAVE_HIDDEN +#define ATTRIBUTE_HIDDEN __attribute__ ((__visibility__ ("hidden"))) +#else +#define ATTRIBUTE_HIDDEN +#endif +#endif + #include "hashtab.h" #ifdef __cplusplus @@ -53,6 +64,9 @@ asection section; }; +/* Unique section id. */ +extern unsigned int _bfd_section_id ATTRIBUTE_HIDDEN; + /* tdata for an archive. For an input archive, cache needs to be free()'d. For an output archive, symdefs do. */ @@ -95,53 +109,49 @@ #define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size) extern void *bfd_malloc - (bfd_size_type); + (bfd_size_type) ATTRIBUTE_HIDDEN; extern void *bfd_realloc - (void *, bfd_size_type); + (void *, bfd_size_type) ATTRIBUTE_HIDDEN; extern void *bfd_realloc_or_free - (void *, bfd_size_type); + (void *, bfd_size_type) ATTRIBUTE_HIDDEN; extern void *bfd_zmalloc - (bfd_size_type); + (bfd_size_type) ATTRIBUTE_HIDDEN; extern void *bfd_malloc2 - (bfd_size_type, bfd_size_type); + (bfd_size_type, bfd_size_type) ATTRIBUTE_HIDDEN; extern void *bfd_realloc2 - (void *, bfd_size_type, bfd_size_type); + (void *, bfd_size_type, bfd_size_type) ATTRIBUTE_HIDDEN; extern void *bfd_zmalloc2 - (bfd_size_type, bfd_size_type); - -extern void _bfd_error_handler (const char *s, ...); + (bfd_size_type, bfd_size_type) ATTRIBUTE_HIDDEN; /* These routines allocate and free things on the BFD's objalloc. */ extern void *bfd_alloc2 - (bfd *, bfd_size_type, bfd_size_type); + (bfd *, bfd_size_type, bfd_size_type) ATTRIBUTE_HIDDEN; extern void *bfd_zalloc2 - (bfd *, bfd_size_type, bfd_size_type); + (bfd *, bfd_size_type, bfd_size_type) ATTRIBUTE_HIDDEN; extern void bfd_release - (bfd *, void *); + (bfd *, void *) ATTRIBUTE_HIDDEN; -bfd * _bfd_create_empty_archive_element_shell - (bfd *obfd); -bfd * _bfd_look_for_bfd_in_cache - (bfd *, file_ptr); -bfd_boolean _bfd_add_bfd_to_archive_cache - (bfd *, file_ptr, bfd *); -bfd_boolean _bfd_generic_mkarchive - (bfd *abfd); -char *_bfd_append_relative_path - (bfd *arch, char *elt_name); -const bfd_target *bfd_generic_archive_p - (bfd *abfd); -bfd_boolean bfd_slurp_armap - (bfd *abfd); -bfd_boolean bfd_slurp_bsd_armap_f2 - (bfd *abfd); +extern bfd * _bfd_create_empty_archive_element_shell + (bfd *) ATTRIBUTE_HIDDEN; +extern bfd * _bfd_look_for_bfd_in_cache + (bfd *, file_ptr) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_add_bfd_to_archive_cache + (bfd *, file_ptr, bfd *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_generic_mkarchive + (bfd *) ATTRIBUTE_HIDDEN; +extern char *_bfd_append_relative_path + (bfd *, char *) ATTRIBUTE_HIDDEN; +extern const bfd_target *bfd_generic_archive_p + (bfd *) ATTRIBUTE_HIDDEN; +extern bfd_boolean bfd_slurp_armap + (bfd *) ATTRIBUTE_HIDDEN; #define bfd_slurp_bsd_armap bfd_slurp_armap #define bfd_slurp_coff_armap bfd_slurp_armap -bfd_boolean _bfd_archive_64_bit_slurp_armap - (bfd *); -bfd_boolean _bfd_archive_64_bit_write_armap - (bfd *, unsigned int, struct orl *, unsigned int, int); +extern bfd_boolean _bfd_archive_64_bit_slurp_armap + (bfd *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_archive_64_bit_write_armap + (bfd *, unsigned int, struct orl *, unsigned int, int) ATTRIBUTE_HIDDEN; #define _bfd_archive_64_bit_slurp_extended_name_table \ _bfd_slurp_extended_name_table #define _bfd_archive_64_bit_construct_extended_name_table \ @@ -158,84 +168,103 @@ _bfd_generic_get_elt_at_index #define _bfd_archive_64_bit_generic_stat_arch_elt \ bfd_generic_stat_arch_elt -#define _bfd_archive_64_bit_update_armap_timestamp \ - bfd_true +#define _bfd_archive_64_bit_update_armap_timestamp _bfd_bool_bfd_true -bfd_boolean _bfd_slurp_extended_name_table - (bfd *abfd); +extern bfd_boolean _bfd_slurp_extended_name_table + (bfd *) ATTRIBUTE_HIDDEN; extern bfd_boolean _bfd_construct_extended_name_table - (bfd *, bfd_boolean, char **, bfd_size_type *); -bfd_boolean _bfd_write_archive_contents - (bfd *abfd); -bfd_boolean _bfd_compute_and_write_armap - (bfd *, unsigned int elength); -bfd *_bfd_get_elt_at_filepos - (bfd *archive, file_ptr filepos); + (bfd *, bfd_boolean, char **, bfd_size_type *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_write_archive_contents + (bfd *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_compute_and_write_armap + (bfd *, unsigned int) ATTRIBUTE_HIDDEN; +extern bfd *_bfd_get_elt_at_filepos + (bfd *, file_ptr) ATTRIBUTE_HIDDEN; extern bfd *_bfd_generic_get_elt_at_index - (bfd *, symindex); -bfd * _bfd_new_bfd - (void); -bfd_boolean _bfd_free_cached_info - (bfd *); - -bfd_boolean bfd_false - (bfd *ignore); -bfd_boolean bfd_true - (bfd *ignore); -void *bfd_nullvoidptr - (bfd *ignore); -int bfd_0 - (bfd *ignore); -unsigned int bfd_0u - (bfd *ignore); -long bfd_0l - (bfd *ignore); -long _bfd_n1 - (bfd *ignore); -void bfd_void - (bfd *ignore); - -bfd *_bfd_new_bfd_contained_in - (bfd *); -const bfd_target *_bfd_dummy_target - (bfd *abfd); - -void bfd_dont_truncate_arname - (bfd *abfd, const char *filename, char *hdr); -void bfd_bsd_truncate_arname - (bfd *abfd, const char *filename, char *hdr); -void bfd_gnu_truncate_arname - (bfd *abfd, const char *filename, char *hdr); - -bfd_boolean _bfd_bsd_write_armap - (bfd *arch, unsigned int elength, struct orl *map, unsigned int orl_count, - int stridx); - -bfd_boolean _bfd_coff_write_armap - (bfd *arch, unsigned int elength, struct orl *map, unsigned int orl_count, - int stridx); + (bfd *, symindex) ATTRIBUTE_HIDDEN; +extern bfd * _bfd_new_bfd + (void) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_free_cached_info + (bfd *) ATTRIBUTE_HIDDEN; + +extern bfd_boolean _bfd_bool_bfd_false + (bfd *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_bool_bfd_asymbol_false + (bfd *, asymbol *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_bool_bfd_false_error + (bfd *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_bool_bfd_link_false_error + (bfd *, struct bfd_link_info *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_bool_bfd_true + (bfd *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_bool_bfd_link_true + (bfd *, struct bfd_link_info *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_bool_bfd_bfd_true + (bfd *, bfd *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_bool_bfd_uint_true + (bfd *, unsigned int) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_bool_bfd_asection_bfd_asection_true + (bfd *, asection *, bfd *, asection *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_bool_bfd_asymbol_bfd_asymbol_true + (bfd *, asymbol *, bfd *, asymbol *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_bool_bfd_ptr_true + (bfd *, void *) ATTRIBUTE_HIDDEN; +extern void *_bfd_ptr_bfd_null_error + (bfd *) ATTRIBUTE_HIDDEN; +extern int _bfd_int_bfd_0 + (bfd *) ATTRIBUTE_HIDDEN; +extern unsigned int _bfd_uint_bfd_0 + (bfd *) ATTRIBUTE_HIDDEN; +extern long _bfd_long_bfd_0 + (bfd *) ATTRIBUTE_HIDDEN; +extern long _bfd_long_bfd_n1_error + (bfd *) ATTRIBUTE_HIDDEN; +extern void _bfd_void_bfd + (bfd *) ATTRIBUTE_HIDDEN; +extern void _bfd_void_bfd_link + (bfd *, struct bfd_link_info *) ATTRIBUTE_HIDDEN; +extern void _bfd_void_bfd_asection + (bfd *, asection *) ATTRIBUTE_HIDDEN; + +extern bfd *_bfd_new_bfd_contained_in + (bfd *) ATTRIBUTE_HIDDEN; +extern const bfd_target *_bfd_dummy_target + (bfd *) ATTRIBUTE_HIDDEN; + +extern void bfd_dont_truncate_arname + (bfd *, const char *, char *) ATTRIBUTE_HIDDEN; +extern void bfd_bsd_truncate_arname + (bfd *, const char *, char *) ATTRIBUTE_HIDDEN; +extern void bfd_gnu_truncate_arname + (bfd *, const char *, char *) ATTRIBUTE_HIDDEN; + +extern bfd_boolean _bfd_bsd_write_armap + (bfd *, unsigned int, struct orl *, unsigned int, int) ATTRIBUTE_HIDDEN; + +extern bfd_boolean _bfd_coff_write_armap + (bfd *, unsigned int, struct orl *, unsigned int, int) ATTRIBUTE_HIDDEN; extern void *_bfd_generic_read_ar_hdr - (bfd *); + (bfd *) ATTRIBUTE_HIDDEN; extern void _bfd_ar_spacepad - (char *, size_t, const char *, long); + (char *, size_t, const char *, long) ATTRIBUTE_HIDDEN; extern bfd_boolean _bfd_ar_sizepad - (char *, size_t, bfd_size_type); + (char *, size_t, bfd_size_type) ATTRIBUTE_HIDDEN; extern void *_bfd_generic_read_ar_hdr_mag - (bfd *, const char *); + (bfd *, const char *) ATTRIBUTE_HIDDEN; extern bfd_boolean _bfd_generic_write_ar_hdr - (bfd *, bfd *); + (bfd *, bfd *) ATTRIBUTE_HIDDEN; extern bfd_boolean _bfd_bsd44_write_ar_hdr - (bfd *, bfd *); + (bfd *, bfd *) ATTRIBUTE_HIDDEN; -bfd * bfd_generic_openr_next_archived_file - (bfd *archive, bfd *last_file); +extern bfd * bfd_generic_openr_next_archived_file + (bfd *, bfd *) ATTRIBUTE_HIDDEN; -int bfd_generic_stat_arch_elt - (bfd *, struct stat *); +extern int bfd_generic_stat_arch_elt + (bfd *, struct stat *) ATTRIBUTE_HIDDEN; #define _bfd_read_ar_hdr(abfd) \ BFD_SEND (abfd, _bfd_read_ar_hdr_fn, (abfd)) @@ -247,70 +276,67 @@ #define _bfd_generic_close_and_cleanup _bfd_archive_close_and_cleanup extern bfd_boolean _bfd_archive_close_and_cleanup - (bfd *); -#define _bfd_generic_bfd_free_cached_info bfd_true + (bfd *) ATTRIBUTE_HIDDEN; +extern void _bfd_unlink_from_archive_parent (bfd *) ATTRIBUTE_HIDDEN; +#define _bfd_generic_bfd_free_cached_info _bfd_bool_bfd_true extern bfd_boolean _bfd_generic_new_section_hook - (bfd *, asection *); + (bfd *, asection *) ATTRIBUTE_HIDDEN; extern bfd_boolean _bfd_generic_get_section_contents - (bfd *, asection *, void *, file_ptr, bfd_size_type); + (bfd *, asection *, void *, file_ptr, bfd_size_type) ATTRIBUTE_HIDDEN; extern bfd_boolean _bfd_generic_get_section_contents_in_window - (bfd *, asection *, bfd_window *, file_ptr, bfd_size_type); + (bfd *, asection *, bfd_window *, file_ptr, bfd_size_type) ATTRIBUTE_HIDDEN; /* 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 (*) (bfd *, bfd *)) bfd_true) +#define _bfd_generic_bfd_copy_private_bfd_data _bfd_bool_bfd_bfd_true #define _bfd_generic_bfd_merge_private_bfd_data \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) bfd_true) -#define _bfd_generic_bfd_set_private_flags \ - ((bfd_boolean (*) (bfd *, flagword)) bfd_true) + _bfd_bool_bfd_link_true +#define _bfd_generic_bfd_set_private_flags _bfd_bool_bfd_uint_true #define _bfd_generic_bfd_copy_private_section_data \ - ((bfd_boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true) + _bfd_bool_bfd_asection_bfd_asection_true #define _bfd_generic_bfd_copy_private_symbol_data \ - ((bfd_boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true) -#define _bfd_generic_bfd_copy_private_header_data \ - ((bfd_boolean (*) (bfd *, bfd *)) bfd_true) -#define _bfd_generic_bfd_print_private_bfd_data \ - ((bfd_boolean (*) (bfd *, void *)) bfd_true) + _bfd_bool_bfd_asymbol_bfd_asymbol_true +#define _bfd_generic_bfd_copy_private_header_data _bfd_bool_bfd_bfd_true +#define _bfd_generic_bfd_print_private_bfd_data _bfd_bool_bfd_ptr_true extern bfd_boolean _bfd_generic_init_private_section_data - (bfd *, asection *, bfd *, asection *, struct bfd_link_info *); + (bfd *, asection *, bfd *, asection *, struct bfd_link_info *) + ATTRIBUTE_HIDDEN; /* 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 - (bfd *); + (bfd *) ATTRIBUTE_HIDDEN; extern int _bfd_nocore_core_file_failing_signal - (bfd *); + (bfd *) ATTRIBUTE_HIDDEN; extern bfd_boolean _bfd_nocore_core_file_matches_executable_p - (bfd *, bfd *); + (bfd *, bfd *) ATTRIBUTE_HIDDEN; extern int _bfd_nocore_core_file_pid - (bfd *); + (bfd *) ATTRIBUTE_HIDDEN; /* Routines to use for BFD_JUMP_TABLE_ARCHIVE when there is no archive file support. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive). */ -#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 (*) (bfd *, char **, bfd_size_type *, const char **)) \ - bfd_false) -#define _bfd_noarchive_truncate_arname \ - ((void (*) (bfd *, const char *, char *)) bfd_void) -#define _bfd_noarchive_write_armap \ - ((bfd_boolean (*) (bfd *, unsigned int, struct orl *, unsigned int, int)) \ - bfd_false) -#define _bfd_noarchive_read_ar_hdr bfd_nullvoidptr -#define _bfd_noarchive_write_ar_hdr \ - ((bfd_boolean (*) (bfd *, bfd *)) bfd_false) -#define _bfd_noarchive_openr_next_archived_file \ - ((bfd *(*) (bfd *, bfd *)) bfd_nullvoidptr) -#define _bfd_noarchive_get_elt_at_index \ - ((bfd *(*) (bfd *, symindex)) bfd_nullvoidptr) +#define _bfd_noarchive_slurp_armap _bfd_bool_bfd_false_error +#define _bfd_noarchive_slurp_extended_name_table _bfd_bool_bfd_false_error +extern bfd_boolean _bfd_noarchive_construct_extended_name_table + (bfd *, char **, bfd_size_type *, const char **) ATTRIBUTE_HIDDEN; +extern void _bfd_noarchive_truncate_arname + (bfd *, const char *, char *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_noarchive_write_armap + (bfd *, unsigned int, struct orl *, unsigned int, int) ATTRIBUTE_HIDDEN; +#define _bfd_noarchive_read_ar_hdr _bfd_ptr_bfd_null_error +extern bfd_boolean _bfd_noarchive_write_ar_hdr + (bfd *, bfd *) ATTRIBUTE_HIDDEN; +extern bfd * +_bfd_noarchive_openr_next_archived_file + (bfd *, bfd *) ATTRIBUTE_HIDDEN; +extern bfd * _bfd_noarchive_get_elt_at_index + (bfd *, symindex) ATTRIBUTE_HIDDEN; #define _bfd_noarchive_generic_stat_arch_elt bfd_generic_stat_arch_elt -#define _bfd_noarchive_update_armap_timestamp bfd_false +#define _bfd_noarchive_update_armap_timestamp _bfd_bool_bfd_false_error /* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get BSD style archives. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_bsd). */ @@ -319,7 +345,7 @@ #define _bfd_archive_bsd_slurp_extended_name_table \ _bfd_slurp_extended_name_table extern bfd_boolean _bfd_archive_bsd_construct_extended_name_table - (bfd *, char **, bfd_size_type *, const char **); + (bfd *, char **, bfd_size_type *, const char **) ATTRIBUTE_HIDDEN; #define _bfd_archive_bsd_truncate_arname bfd_bsd_truncate_arname #define _bfd_archive_bsd_write_armap _bfd_bsd_write_armap #define _bfd_archive_bsd_read_ar_hdr _bfd_generic_read_ar_hdr @@ -330,7 +356,7 @@ #define _bfd_archive_bsd_generic_stat_arch_elt \ bfd_generic_stat_arch_elt extern bfd_boolean _bfd_archive_bsd_update_armap_timestamp - (bfd *); + (bfd *) ATTRIBUTE_HIDDEN; /* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get COFF style archives. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff). */ @@ -339,7 +365,7 @@ #define _bfd_archive_coff_slurp_extended_name_table \ _bfd_slurp_extended_name_table extern bfd_boolean _bfd_archive_coff_construct_extended_name_table - (bfd *, char **, bfd_size_type *, const char **); + (bfd *, char **, bfd_size_type *, const char **) ATTRIBUTE_HIDDEN; #define _bfd_archive_coff_truncate_arname bfd_dont_truncate_arname #define _bfd_archive_coff_write_armap _bfd_coff_write_armap #define _bfd_archive_coff_read_ar_hdr _bfd_generic_read_ar_hdr @@ -349,7 +375,7 @@ #define _bfd_archive_coff_get_elt_at_index _bfd_generic_get_elt_at_index #define _bfd_archive_coff_generic_stat_arch_elt \ bfd_generic_stat_arch_elt -#define _bfd_archive_coff_update_armap_timestamp bfd_true +#define _bfd_archive_coff_update_armap_timestamp _bfd_bool_bfd_true /* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get BSD4.4 style archives. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_bsd44). */ @@ -358,7 +384,7 @@ #define _bfd_archive_bsd44_slurp_extended_name_table \ _bfd_slurp_extended_name_table extern bfd_boolean _bfd_archive_bsd44_construct_extended_name_table - (bfd *, char **, bfd_size_type *, const char **); + (bfd *, char **, bfd_size_type *, const char **) ATTRIBUTE_HIDDEN; #define _bfd_archive_bsd44_truncate_arname bfd_bsd_truncate_arname #define _bfd_archive_bsd44_write_armap _bfd_bsd_write_armap #define _bfd_archive_bsd44_read_ar_hdr _bfd_generic_read_ar_hdr @@ -375,7 +401,8 @@ archives. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_vms_lib). Some of them are irrelevant. */ -extern bfd_boolean _bfd_vms_lib_write_archive_contents (bfd *arch); +extern bfd_boolean _bfd_vms_lib_write_archive_contents + (bfd *) ATTRIBUTE_HIDDEN; #define _bfd_vms_lib_slurp_armap _bfd_noarchive_slurp_armap #define _bfd_vms_lib_slurp_extended_name_table \ _bfd_noarchive_slurp_extended_name_table @@ -385,139 +412,130 @@ #define _bfd_vms_lib_write_armap _bfd_noarchive_write_armap #define _bfd_vms_lib_read_ar_hdr _bfd_noarchive_read_ar_hdr #define _bfd_vms_lib_write_ar_hdr _bfd_noarchive_write_ar_hdr -extern bfd *_bfd_vms_lib_openr_next_archived_file (bfd *, bfd *); -extern bfd *_bfd_vms_lib_get_elt_at_index (bfd *, symindex); -extern int _bfd_vms_lib_generic_stat_arch_elt (bfd *, struct stat *); -#define _bfd_vms_lib_update_armap_timestamp bfd_true +extern bfd *_bfd_vms_lib_openr_next_archived_file + (bfd *, bfd *) ATTRIBUTE_HIDDEN; +extern bfd *_bfd_vms_lib_get_elt_at_index + (bfd *, symindex) ATTRIBUTE_HIDDEN; +extern int _bfd_vms_lib_generic_stat_arch_elt + (bfd *, struct stat *) ATTRIBUTE_HIDDEN; +#define _bfd_vms_lib_update_armap_timestamp _bfd_bool_bfd_true /* Extra routines for VMS style archives. */ -extern symindex _bfd_vms_lib_find_symbol (bfd *, const char *); -extern bfd *_bfd_vms_lib_get_imagelib_file (bfd *); -extern const bfd_target *_bfd_vms_lib_alpha_archive_p (bfd *abfd); -extern const bfd_target *_bfd_vms_lib_ia64_archive_p (bfd *abfd); -extern bfd_boolean _bfd_vms_lib_alpha_mkarchive (bfd *abfd); -extern bfd_boolean _bfd_vms_lib_ia64_mkarchive (bfd *abfd); +extern symindex _bfd_vms_lib_find_symbol + (bfd *, const char *) ATTRIBUTE_HIDDEN; +extern bfd *_bfd_vms_lib_get_imagelib_file + (bfd *) ATTRIBUTE_HIDDEN; +extern const bfd_target *_bfd_vms_lib_alpha_archive_p + (bfd *) ATTRIBUTE_HIDDEN; +extern const bfd_target *_bfd_vms_lib_ia64_archive_p + (bfd *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_vms_lib_alpha_mkarchive + (bfd *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_vms_lib_ia64_mkarchive + (bfd *) ATTRIBUTE_HIDDEN; /* Routines to use for BFD_JUMP_TABLE_SYMBOLS where there is no symbol support. Use BFD_JUMP_TABLE_SYMBOLS (_bfd_nosymbols). */ -#define _bfd_nosymbols_get_symtab_upper_bound _bfd_n1 -#define _bfd_nosymbols_canonicalize_symtab \ - ((long (*) (bfd *, asymbol **)) _bfd_n1) +#define _bfd_nosymbols_get_symtab_upper_bound _bfd_long_bfd_n1_error +extern long _bfd_nosymbols_canonicalize_symtab + (bfd *, asymbol **) ATTRIBUTE_HIDDEN; #define _bfd_nosymbols_make_empty_symbol _bfd_generic_make_empty_symbol -#define _bfd_nosymbols_print_symbol \ - ((void (*) (bfd *, void *, asymbol *, bfd_print_symbol_type)) bfd_void) -#define _bfd_nosymbols_get_symbol_info \ - ((void (*) (bfd *, asymbol *, symbol_info *)) bfd_void) -#define _bfd_nosymbols_get_symbol_version_string \ - ((const char *(*) (bfd *, asymbol *, bfd_boolean *)) bfd_nullvoidptr) -#define _bfd_nosymbols_bfd_is_local_label_name \ - ((bfd_boolean (*) (bfd *, const char *)) bfd_false) -#define _bfd_nosymbols_bfd_is_target_special_symbol \ - ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) -#define _bfd_nosymbols_get_lineno \ - ((alent *(*) (bfd *, asymbol *)) bfd_nullvoidptr) -#define _bfd_nosymbols_find_nearest_line \ - ((bfd_boolean (*) (bfd *, asymbol **, asection *, bfd_vma, \ - const char **, const char **, unsigned int *, \ - unsigned int *)) \ - bfd_false) -#define _bfd_nosymbols_find_line \ - ((bfd_boolean (*) (bfd *, asymbol **, asymbol *, \ - const char **, unsigned int *)) \ - bfd_false) -#define _bfd_nosymbols_find_inliner_info \ - ((bfd_boolean (*) (bfd *, const char **, const char **, unsigned int *)) \ - bfd_false) -#define _bfd_nosymbols_bfd_make_debug_symbol \ - ((asymbol *(*) (bfd *, void *, unsigned long)) bfd_nullvoidptr) -#define _bfd_nosymbols_read_minisymbols \ - ((long (*) (bfd *, bfd_boolean, void **, unsigned int *)) _bfd_n1) -#define _bfd_nosymbols_minisymbol_to_symbol \ - ((asymbol *(*) (bfd *, bfd_boolean, const void *, asymbol *)) \ - bfd_nullvoidptr) +extern void _bfd_nosymbols_print_symbol + (bfd *, void *, asymbol *, bfd_print_symbol_type) ATTRIBUTE_HIDDEN; +extern void _bfd_nosymbols_get_symbol_info + (bfd *, asymbol *, symbol_info *) ATTRIBUTE_HIDDEN; +extern const char * _bfd_nosymbols_get_symbol_version_string + (bfd *, asymbol *, bfd_boolean *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_nosymbols_bfd_is_local_label_name + (bfd *, const char *) ATTRIBUTE_HIDDEN; +#define _bfd_nosymbols_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false +extern alent *_bfd_nosymbols_get_lineno + (bfd *, asymbol *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_nosymbols_find_nearest_line + (bfd *, asymbol **, asection *, bfd_vma, + const char **, const char **, unsigned int *, unsigned int *) + ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_nosymbols_find_line + (bfd *, asymbol **, asymbol *, const char **, unsigned int *) + ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_nosymbols_find_inliner_info + (bfd *, const char **, const char **, unsigned int *) ATTRIBUTE_HIDDEN; +extern asymbol *_bfd_nosymbols_bfd_make_debug_symbol + (bfd *, void *, unsigned long) ATTRIBUTE_HIDDEN; +extern long _bfd_nosymbols_read_minisymbols + (bfd *, bfd_boolean, void **, unsigned int *) ATTRIBUTE_HIDDEN; +extern asymbol *_bfd_nosymbols_minisymbol_to_symbol + (bfd *, bfd_boolean, const void *, asymbol *) ATTRIBUTE_HIDDEN; /* Routines to use for BFD_JUMP_TABLE_RELOCS when there is no reloc support. Use BFD_JUMP_TABLE_RELOCS (_bfd_norelocs). */ -extern long _bfd_norelocs_get_reloc_upper_bound (bfd *, asection *); -extern long _bfd_norelocs_canonicalize_reloc (bfd *, asection *, - arelent **, asymbol **); -extern void _bfd_norelocs_set_reloc (bfd *, asection *, - arelent **, unsigned int); -#define _bfd_norelocs_bfd_reloc_type_lookup \ - ((reloc_howto_type *(*) (bfd *, bfd_reloc_code_real_type)) bfd_nullvoidptr) -#define _bfd_norelocs_bfd_reloc_name_lookup \ - ((reloc_howto_type *(*) (bfd *, const char *)) bfd_nullvoidptr) +extern long _bfd_norelocs_get_reloc_upper_bound + (bfd *, asection *) ATTRIBUTE_HIDDEN; +extern long _bfd_norelocs_canonicalize_reloc + (bfd *, asection *, arelent **, asymbol **) ATTRIBUTE_HIDDEN; +extern void _bfd_norelocs_set_reloc + (bfd *, asection *, arelent **, unsigned int) ATTRIBUTE_HIDDEN; +extern reloc_howto_type *_bfd_norelocs_bfd_reloc_type_lookup + (bfd *, bfd_reloc_code_real_type) ATTRIBUTE_HIDDEN; +extern reloc_howto_type *_bfd_norelocs_bfd_reloc_name_lookup + (bfd *, const char *) ATTRIBUTE_HIDDEN; /* 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 (*) (bfd *, enum bfd_architecture, unsigned long)) \ - bfd_false) -#define _bfd_nowrite_set_section_contents \ - ((bfd_boolean (*) (bfd *, asection *, const void *, file_ptr, bfd_size_type)) \ - bfd_false) +extern bfd_boolean _bfd_nowrite_set_arch_mach + (bfd *, enum bfd_architecture, unsigned long) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_nowrite_set_section_contents + (bfd *, asection *, const void *, file_ptr, bfd_size_type) ATTRIBUTE_HIDDEN; /* Generic routines to use for BFD_JUMP_TABLE_WRITE. Use BFD_JUMP_TABLE_WRITE (_bfd_generic). */ #define _bfd_generic_set_arch_mach bfd_default_set_arch_mach extern bfd_boolean _bfd_generic_set_section_contents - (bfd *, asection *, const void *, file_ptr, bfd_size_type); + (bfd *, asection *, const void *, file_ptr, bfd_size_type) ATTRIBUTE_HIDDEN; /* 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 (*) (bfd *, struct bfd_link_info *)) bfd_0) -#define _bfd_nolink_bfd_get_relocated_section_contents \ - ((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 (*) \ - (bfd *, asection *, struct bfd_link_info *, bfd_boolean *)) \ - bfd_false) -#define _bfd_nolink_bfd_gc_sections \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) \ - bfd_false) -#define _bfd_nolink_bfd_lookup_section_flags \ - ((bfd_boolean (*) (struct bfd_link_info *, struct flag_info *, asection *)) \ - bfd_0) -#define _bfd_nolink_bfd_merge_sections \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) \ - bfd_false) -#define _bfd_nolink_bfd_is_group_section \ - ((bfd_boolean (*) (bfd *, const struct bfd_section *)) \ - bfd_false) -#define _bfd_nolink_bfd_discard_group \ - ((bfd_boolean (*) (bfd *, struct bfd_section *)) \ - bfd_false) -#define _bfd_nolink_bfd_link_hash_table_create \ - ((struct bfd_link_hash_table *(*) (bfd *)) bfd_nullvoidptr) -#define _bfd_nolink_bfd_link_add_symbols \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) bfd_false) -#define _bfd_nolink_bfd_link_just_syms \ - ((void (*) (asection *, struct bfd_link_info *)) bfd_void) -#define _bfd_nolink_bfd_copy_link_hash_symbol_type \ - ((void (*) (bfd *, struct bfd_link_hash_entry *, \ - struct bfd_link_hash_entry *)) bfd_void) -#define _bfd_nolink_bfd_final_link \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) bfd_false) -#define _bfd_nolink_bfd_link_split_section \ - ((bfd_boolean (*) (bfd *, struct bfd_section *)) bfd_false) -#define _bfd_nolink_section_already_linked \ - ((bfd_boolean (*) (bfd *, asection *, \ - struct bfd_link_info *)) bfd_false) -#define _bfd_nolink_bfd_define_common_symbol \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *, \ - struct bfd_link_hash_entry *)) bfd_false) -#define _bfd_nolink_bfd_define_start_stop \ - ((struct bfd_link_hash_entry * (*) (struct bfd_link_info *, \ - const char *, asection *)) bfd_nullvoidptr) +extern int _bfd_nolink_sizeof_headers + (bfd *, struct bfd_link_info *) ATTRIBUTE_HIDDEN; +extern bfd_byte *_bfd_nolink_bfd_get_relocated_section_contents + (bfd *, struct bfd_link_info *, struct bfd_link_order *, + bfd_byte *, bfd_boolean, asymbol **) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_nolink_bfd_relax_section + (bfd *, asection *, struct bfd_link_info *, bfd_boolean *) ATTRIBUTE_HIDDEN; +#define _bfd_nolink_bfd_gc_sections _bfd_bool_bfd_link_false_error +extern bfd_boolean _bfd_nolink_bfd_lookup_section_flags + (struct bfd_link_info *, struct flag_info *, asection *) ATTRIBUTE_HIDDEN; +#define _bfd_nolink_bfd_merge_sections _bfd_bool_bfd_link_false_error +extern bfd_boolean _bfd_nolink_bfd_is_group_section + (bfd *, const asection *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_nolink_bfd_discard_group + (bfd *, asection *) ATTRIBUTE_HIDDEN; +extern struct bfd_link_hash_table *_bfd_nolink_bfd_link_hash_table_create + (bfd *) ATTRIBUTE_HIDDEN; +#define _bfd_nolink_bfd_link_add_symbols _bfd_bool_bfd_link_false_error +extern void _bfd_nolink_bfd_link_just_syms + (asection *, struct bfd_link_info *) ATTRIBUTE_HIDDEN; +extern void _bfd_nolink_bfd_copy_link_hash_symbol_type + (bfd *, struct bfd_link_hash_entry *, struct bfd_link_hash_entry *) + ATTRIBUTE_HIDDEN; +#define _bfd_nolink_bfd_final_link _bfd_bool_bfd_link_false_error +extern bfd_boolean _bfd_nolink_bfd_link_split_section + (bfd *, struct bfd_section *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_nolink_section_already_linked + (bfd *, asection *, struct bfd_link_info *) ATTRIBUTE_HIDDEN; +extern bfd_boolean _bfd_nolink_bfd_define_common_symbol + (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *) + ATTRIBUTE_HIDDEN; +#define _bfd_nolink_bfd_link_hide_symbol \ + _bfd_generic_link_hide_symbol +extern struct bfd_link_hash_entry *_bfd_nolink_bfd_define_start_stop + (struct bfd_link_info *, const char *, asection *) ATTRIBUTE_HIDDEN; #define _bfd_nolink_bfd_link_check_relocs \ _bfd_generic_link_check_relocs @@ -525,78 +543,80 @@ have dynamic symbols or relocs. Use BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic). */ -#define _bfd_nodynamic_get_dynamic_symtab_upper_bound _bfd_n1 +#define _bfd_nodynamic_get_dynamic_symtab_upper_bound _bfd_long_bfd_n1_error #define _bfd_nodynamic_canonicalize_dynamic_symtab \ - ((long (*) (bfd *, asymbol **)) _bfd_n1) -#define _bfd_nodynamic_get_synthetic_symtab \ - ((long (*) (bfd *, long, asymbol **, long, asymbol **, asymbol **)) _bfd_n1) -#define _bfd_nodynamic_get_dynamic_reloc_upper_bound _bfd_n1 -#define _bfd_nodynamic_canonicalize_dynamic_reloc \ - ((long (*) (bfd *, arelent **, asymbol **)) _bfd_n1) + _bfd_nosymbols_canonicalize_symtab +extern long _bfd_nodynamic_get_synthetic_symtab + (bfd *, long, asymbol **, long, asymbol **, asymbol **) ATTRIBUTE_HIDDEN; +#define _bfd_nodynamic_get_dynamic_reloc_upper_bound _bfd_long_bfd_n1_error +extern long _bfd_nodynamic_canonicalize_dynamic_reloc + (bfd *, arelent **, asymbol **) ATTRIBUTE_HIDDEN; /* Generic routine to determine of the given symbol is a local label. */ extern bfd_boolean bfd_generic_is_local_label_name - (bfd *, const char *); + (bfd *, const char *) ATTRIBUTE_HIDDEN; /* Generic minisymbol routines. */ extern long _bfd_generic_read_minisymbols - (bfd *, bfd_boolean, void **, unsigned int *); + (bfd *, bfd_boolean, void **, unsigned int *) ATTRIBUTE_HIDDEN; extern asymbol *_bfd_generic_minisymbol_to_symbol - (bfd *, bfd_boolean, const void *, asymbol *); + (bfd *, bfd_boolean, const void *, asymbol *) ATTRIBUTE_HIDDEN; /* Find the nearest line using .stab/.stabstr sections. */ extern bfd_boolean _bfd_stab_section_find_nearest_line (bfd *, asymbol **, asection *, bfd_vma, bfd_boolean *, - const char **, const char **, unsigned int *, void **); + const char **, const char **, unsigned int *, void **) ATTRIBUTE_HIDDEN; /* Find the nearest line using DWARF 1 debugging information. */ extern bfd_boolean _bfd_dwarf1_find_nearest_line (bfd *, asymbol **, asection *, bfd_vma, - const char **, const char **, unsigned int *); + const char **, const char **, unsigned int *) ATTRIBUTE_HIDDEN; struct dwarf_debug_section { - const char *uncompressed_name; - const char *compressed_name; + const char * uncompressed_name; + const char * compressed_name; }; /* Map of uncompressed DWARF debug section name to compressed one. It is terminated by NULL uncompressed_name. */ -extern const struct dwarf_debug_section dwarf_debug_sections[]; +extern const struct dwarf_debug_section dwarf_debug_sections[] ATTRIBUTE_HIDDEN; /* Find the nearest line using DWARF 2 debugging information. */ extern bfd_boolean _bfd_dwarf2_find_nearest_line (bfd *, asymbol **, asymbol *, asection *, bfd_vma, const char **, const char **, unsigned int *, unsigned int *, - const struct dwarf_debug_section *, unsigned int, void **); + const struct dwarf_debug_section *, unsigned int, void **) ATTRIBUTE_HIDDEN; /* Find the bias between DWARF addresses and real addresses. */ extern bfd_signed_vma _bfd_dwarf2_find_symbol_bias - (asymbol **, void **); + (asymbol **, void **) ATTRIBUTE_HIDDEN; /* Find inliner info after calling bfd_find_nearest_line. */ extern bfd_boolean _bfd_dwarf2_find_inliner_info - (bfd *, const char **, const char **, unsigned int *, void **); + (bfd *, const char **, const char **, unsigned int *, void **) + ATTRIBUTE_HIDDEN; /* Read DWARF 2 debugging information. */ extern bfd_boolean _bfd_dwarf2_slurp_debug_info (bfd *, bfd *, const struct dwarf_debug_section *, asymbol **, void **, - bfd_boolean); + bfd_boolean) ATTRIBUTE_HIDDEN; /* Clean up the data used to handle DWARF 2 debugging information. */ extern void _bfd_dwarf2_cleanup_debug_info - (bfd *, void **); + (bfd *, void **) ATTRIBUTE_HIDDEN; /* Create a new section entry. */ extern struct bfd_hash_entry *bfd_section_hash_newfunc - (struct bfd_hash_entry *, struct bfd_hash_table *, const char *); + (struct bfd_hash_entry *, struct bfd_hash_table *, const char *) + ATTRIBUTE_HIDDEN; /* A routine to create entries for a bfd_link_hash_table. */ extern struct bfd_hash_entry *_bfd_link_hash_newfunc (struct bfd_hash_entry *entry, struct bfd_hash_table *table, - const char *string); + const char *string) ATTRIBUTE_HIDDEN; /* Initialize a bfd_link_hash_table. */ extern bfd_boolean _bfd_link_hash_table_init @@ -604,26 +624,26 @@ struct bfd_hash_entry *(*) (struct bfd_hash_entry *, struct bfd_hash_table *, const char *), - unsigned int); + unsigned int) ATTRIBUTE_HIDDEN; /* Generic link hash table creation routine. */ extern struct bfd_link_hash_table *_bfd_generic_link_hash_table_create - (bfd *); + (bfd *) ATTRIBUTE_HIDDEN; /* Generic link hash table destruction routine. */ extern void _bfd_generic_link_hash_table_free - (bfd *); + (bfd *) ATTRIBUTE_HIDDEN; /* Generic add symbol routine. */ extern bfd_boolean _bfd_generic_link_add_symbols - (bfd *, struct bfd_link_info *); + (bfd *, struct bfd_link_info *) ATTRIBUTE_HIDDEN; /* Generic archive add symbol routine. */ extern bfd_boolean _bfd_generic_link_add_archive_symbols (bfd *, struct bfd_link_info *, bfd_boolean (*) (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, const char *, - bfd_boolean *)); + bfd_boolean *)) ATTRIBUTE_HIDDEN; /* Forward declaration to avoid prototype errors. */ typedef struct bfd_link_hash_entry _bfd_link_hash_entry; @@ -632,124 +652,131 @@ extern bfd_boolean _bfd_generic_link_add_one_symbol (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 **); + bfd_boolean constructor, struct bfd_link_hash_entry **) ATTRIBUTE_HIDDEN; /* Generic routine to mark section as supplying symbols only. */ extern void _bfd_generic_link_just_syms - (asection *, struct bfd_link_info *); + (asection *, struct bfd_link_info *) ATTRIBUTE_HIDDEN; /* Generic routine that does nothing. */ extern void _bfd_generic_copy_link_hash_symbol_type - (bfd *, struct bfd_link_hash_entry *, struct bfd_link_hash_entry *); + (bfd *, struct bfd_link_hash_entry *, struct bfd_link_hash_entry *) + ATTRIBUTE_HIDDEN; /* Generic link routine. */ extern bfd_boolean _bfd_generic_final_link - (bfd *, struct bfd_link_info *); + (bfd *, struct bfd_link_info *) ATTRIBUTE_HIDDEN; extern bfd_boolean _bfd_generic_link_split_section - (bfd *, struct bfd_section *); + (bfd *, struct bfd_section *) ATTRIBUTE_HIDDEN; extern bfd_boolean _bfd_generic_section_already_linked - (bfd *, asection *, struct bfd_link_info *); + (bfd *, asection *, struct bfd_link_info *) ATTRIBUTE_HIDDEN; /* Generic reloc_link_order processing routine. */ extern bfd_boolean _bfd_generic_reloc_link_order - (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *); + (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *) + ATTRIBUTE_HIDDEN; /* Default link order processing routine. */ extern bfd_boolean _bfd_default_link_order - (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *); + (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *) + ATTRIBUTE_HIDDEN; /* Count the number of reloc entries in a link order list. */ extern unsigned int _bfd_count_link_order_relocs - (struct bfd_link_order *); + (struct bfd_link_order *) ATTRIBUTE_HIDDEN; /* Final link relocation routine. */ extern bfd_reloc_status_type _bfd_final_link_relocate (reloc_howto_type *, bfd *, asection *, bfd_byte *, - bfd_vma, bfd_vma, bfd_vma); + bfd_vma, bfd_vma, bfd_vma) ATTRIBUTE_HIDDEN; /* Relocate a particular location by a howto and a value. */ extern bfd_reloc_status_type _bfd_relocate_contents - (reloc_howto_type *, bfd *, bfd_vma, bfd_byte *); + (reloc_howto_type *, bfd *, bfd_vma, bfd_byte *) ATTRIBUTE_HIDDEN; /* Clear a given location using a given howto. */ -extern void _bfd_clear_contents (reloc_howto_type *howto, bfd *input_bfd, - asection *input_section, bfd_byte *location); +extern void _bfd_clear_contents + (reloc_howto_type *, bfd *, asection *, bfd_byte *) ATTRIBUTE_HIDDEN; /* Link stabs in sections in the first pass. */ extern bfd_boolean _bfd_link_section_stabs (bfd *, struct stab_info *, asection *, asection *, void **, - bfd_size_type *); + bfd_size_type *) ATTRIBUTE_HIDDEN; /* Eliminate stabs for discarded functions and symbols. */ extern bfd_boolean _bfd_discard_section_stabs - (bfd *, asection *, void *, bfd_boolean (*) (bfd_vma, void *), void *); + (bfd *, asection *, void *, bfd_boolean (*) (bfd_vma, void *), void *) + ATTRIBUTE_HIDDEN; /* Write out the .stab section when linking stabs in sections. */ extern bfd_boolean _bfd_write_section_stabs - (bfd *, struct stab_info *, asection *, void **, bfd_byte *); + (bfd *, struct stab_info *, asection *, void **, bfd_byte *) + ATTRIBUTE_HIDDEN; /* Write out the .stabstr string table when linking stabs in sections. */ extern bfd_boolean _bfd_write_stab_strings - (bfd *, struct stab_info *); + (bfd *, struct stab_info *) ATTRIBUTE_HIDDEN; /* Find an offset within a .stab section when linking stabs in sections. */ extern bfd_vma _bfd_stab_section_offset - (asection *, void *, bfd_vma); + (asection *, void *, bfd_vma) ATTRIBUTE_HIDDEN; /* Register a SEC_MERGE section as a candidate for merging. */ extern bfd_boolean _bfd_add_merge_section - (bfd *, void **, asection *, void **); + (bfd *, void **, asection *, void **) ATTRIBUTE_HIDDEN; /* Attempt to merge SEC_MERGE sections. */ extern bfd_boolean _bfd_merge_sections - (bfd *, struct bfd_link_info *, void *, void (*) (bfd *, asection *)); + (bfd *, struct bfd_link_info *, void *, void (*) (bfd *, asection *)) + ATTRIBUTE_HIDDEN; /* Write out a merged section. */ extern bfd_boolean _bfd_write_merged_section - (bfd *, asection *, void *); + (bfd *, asection *, void *) ATTRIBUTE_HIDDEN; /* Find an offset within a modified SEC_MERGE section. */ extern bfd_vma _bfd_merged_section_offset - (bfd *, asection **, void *, bfd_vma); + (bfd *, asection **, void *, bfd_vma) ATTRIBUTE_HIDDEN; /* Tidy up when done. */ -extern void _bfd_merge_sections_free (void *); +extern void _bfd_merge_sections_free (void *) ATTRIBUTE_HIDDEN; /* Create a string table. */ extern struct bfd_strtab_hash *_bfd_stringtab_init - (void); + (void) ATTRIBUTE_HIDDEN; /* Create an XCOFF .debug section style string table. */ extern struct bfd_strtab_hash *_bfd_xcoff_stringtab_init - (void); + (void) ATTRIBUTE_HIDDEN; /* Free a string table. */ extern void _bfd_stringtab_free - (struct bfd_strtab_hash *); + (struct bfd_strtab_hash *) ATTRIBUTE_HIDDEN; /* Get the size of a string table. */ extern bfd_size_type _bfd_stringtab_size - (struct bfd_strtab_hash *); + (struct bfd_strtab_hash *) ATTRIBUTE_HIDDEN; /* Add a string to a string table. */ extern bfd_size_type _bfd_stringtab_add - (struct bfd_strtab_hash *, const char *, bfd_boolean hash, bfd_boolean copy); + (struct bfd_strtab_hash *, const char *, bfd_boolean hash, bfd_boolean copy) + ATTRIBUTE_HIDDEN; /* Write out a string table. */ extern bfd_boolean _bfd_stringtab_emit - (bfd *, struct bfd_strtab_hash *); + (bfd *, struct bfd_strtab_hash *) ATTRIBUTE_HIDDEN; /* Macros to tell if bfds are read or write enabled. @@ -765,8 +792,8 @@ #define bfd_write_p(abfd) \ ((abfd)->direction == write_direction || (abfd)->direction == both_direction) -void bfd_assert - (const char*,int); +extern void bfd_assert + (const char*,int) ATTRIBUTE_HIDDEN; #define BFD_ASSERT(x) \ do { if (!(x)) bfd_assert(__FILE__,__LINE__); } while (0) @@ -775,7 +802,7 @@ do { bfd_assert(__FILE__,__LINE__); } while (0) extern void _bfd_abort - (const char *, int, const char *) ATTRIBUTE_NORETURN; + (const char *, int, const char *) ATTRIBUTE_NORETURN ATTRIBUTE_HIDDEN; /* if gcc >= 2.6, we can give a function name, too */ #if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 6) @@ -787,17 +814,20 @@ /* Manipulate a system FILE but using BFD's "file_ptr", rather than the system "off_t" or "off64_t", as the offset. */ -extern file_ptr _bfd_real_ftell (FILE *file); -extern int _bfd_real_fseek (FILE *file, file_ptr offset, int whence); -extern FILE *_bfd_real_fopen (const char *filename, const char *modes); +extern file_ptr _bfd_real_ftell + (FILE *) ATTRIBUTE_HIDDEN; +extern int _bfd_real_fseek + (FILE *, file_ptr, int) ATTRIBUTE_HIDDEN; +extern FILE *_bfd_real_fopen + (const char *, const char *) ATTRIBUTE_HIDDEN; /* List of supported target vectors, and the default vector (if bfd_default_vector[0] is NULL, there is no default). */ -extern const bfd_target * const *bfd_target_vector; -extern const bfd_target *bfd_default_vector[]; +extern const bfd_target * const *bfd_target_vector ATTRIBUTE_HIDDEN; +extern const bfd_target *bfd_default_vector[] ATTRIBUTE_HIDDEN; /* List of associated target vectors. */ -extern const bfd_target * const *bfd_associated_vector; +extern const bfd_target * const *bfd_associated_vector ATTRIBUTE_HIDDEN; /* Functions shared by the ECOFF and MIPS ELF backends, which have no other common header files. */ @@ -809,18 +839,18 @@ extern bfd_boolean _bfd_ecoff_locate_line (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 *); + const char **, const char **, unsigned int *) ATTRIBUTE_HIDDEN; extern bfd_boolean _bfd_ecoff_get_accumulated_pdr - (void *, bfd_byte *); + (void *, bfd_byte *) ATTRIBUTE_HIDDEN; extern bfd_boolean _bfd_ecoff_get_accumulated_sym - (void *, bfd_byte *); + (void *, bfd_byte *) ATTRIBUTE_HIDDEN; extern bfd_boolean _bfd_ecoff_get_accumulated_ss - (void *, bfd_byte *); + (void *, bfd_byte *) ATTRIBUTE_HIDDEN; extern bfd_vma _bfd_get_gp_value - (bfd *); + (bfd *) ATTRIBUTE_HIDDEN; extern void _bfd_set_gp_value - (bfd *, bfd_vma); + (bfd *, bfd_vma) ATTRIBUTE_HIDDEN; /* Function shared by the COFF and ELF SH backends, which have no other common header files. */ @@ -829,7 +859,7 @@ extern bfd_boolean _bfd_sh_align_load_span (bfd *, asection *, bfd_byte *, bfd_boolean (*) (bfd *, asection *, void *, bfd_byte *, bfd_vma), - void *, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, bfd_boolean *); + void *, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, bfd_boolean *) ATTRIBUTE_HIDDEN; #endif /* This is the shape of the elements inside the already_linked hash @@ -849,14 +879,18 @@ }; extern struct bfd_section_already_linked_hash_entry * - bfd_section_already_linked_table_lookup (const char *); + bfd_section_already_linked_table_lookup (const char *) ATTRIBUTE_HIDDEN; extern bfd_boolean bfd_section_already_linked_table_insert - (struct bfd_section_already_linked_hash_entry *, asection *); + (struct bfd_section_already_linked_hash_entry *, asection *) + ATTRIBUTE_HIDDEN; extern void bfd_section_already_linked_table_traverse (bfd_boolean (*) (struct bfd_section_already_linked_hash_entry *, - void *), void *); + void *), void *) ATTRIBUTE_HIDDEN; -extern bfd_vma _bfd_read_unsigned_leb128 (bfd *, bfd_byte *, unsigned int *); -extern bfd_signed_vma _bfd_read_signed_leb128 (bfd *, bfd_byte *, unsigned int *); -extern bfd_vma _bfd_safe_read_leb128 (bfd *, bfd_byte *, unsigned int *, - bfd_boolean, const bfd_byte * const); +extern bfd_vma _bfd_read_unsigned_leb128 + (bfd *, bfd_byte *, unsigned int *) ATTRIBUTE_HIDDEN; +extern bfd_signed_vma _bfd_read_signed_leb128 + (bfd *, bfd_byte *, unsigned int *) ATTRIBUTE_HIDDEN; +extern bfd_vma _bfd_safe_read_leb128 + (bfd *, bfd_byte *, unsigned int *, bfd_boolean, const bfd_byte * const) + ATTRIBUTE_HIDDEN; diff -Nru gdb-8.1/bfd/libcoff.h gdb-8.2/bfd/libcoff.h --- gdb-8.1/bfd/libcoff.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/libcoff.h 2018-09-05 07:27:13.000000000 +0000 @@ -23,6 +23,9 @@ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ +#ifndef _LIBCOFF_H +#define _LIBCOFF_H 1 + #include "bfdlink.h" #include "coff-bfd.h" @@ -973,3 +976,4 @@ #ifdef __cplusplus } #endif +#endif diff -Nru gdb-8.1/bfd/libcoff-in.h gdb-8.2/bfd/libcoff-in.h --- gdb-8.1/bfd/libcoff-in.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/libcoff-in.h 2018-09-05 07:27:13.000000000 +0000 @@ -19,6 +19,9 @@ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ +#ifndef _LIBCOFF_H +#define _LIBCOFF_H 1 + #include "bfdlink.h" #include "coff-bfd.h" diff -Nru gdb-8.1/bfd/libecoff.h gdb-8.2/bfd/libecoff.h --- gdb-8.1/bfd/libecoff.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/libecoff.h 2018-09-05 07:27:13.000000000 +0000 @@ -275,9 +275,8 @@ bfd_generic_openr_next_archived_file #define _bfd_ecoff_get_elt_at_index _bfd_generic_get_elt_at_index #define _bfd_ecoff_generic_stat_arch_elt bfd_generic_stat_arch_elt -#define _bfd_ecoff_update_armap_timestamp bfd_true -#define _bfd_ecoff_bfd_is_target_special_symbol \ - ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) +#define _bfd_ecoff_update_armap_timestamp _bfd_bool_bfd_true +#define _bfd_ecoff_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false extern long _bfd_ecoff_get_symtab_upper_bound (bfd *); extern long _bfd_ecoff_canonicalize_symtab (bfd *, asymbol **); @@ -302,7 +301,7 @@ #define _bfd_ecoff_get_reloc_upper_bound coff_get_reloc_upper_bound extern long _bfd_ecoff_canonicalize_reloc - (bfd *, asection *, arelent **, asymbol **symbols); + (bfd *, asection *, arelent **, asymbol **); /* ecoff_bfd_reloc_type_lookup defined by backend. */ extern bfd_boolean _bfd_ecoff_set_arch_mach @@ -326,8 +325,8 @@ /* Hook functions for the generic COFF section reading code. */ extern void * _bfd_ecoff_mkobject_hook (bfd *, void *, void *); -#define _bfd_ecoff_set_alignment_hook \ - ((void (*) (bfd *, asection *, void *)) bfd_void) +extern void _bfd_ecoff_set_alignment_hook + (bfd *, asection *, void *); extern bfd_boolean _bfd_ecoff_set_arch_mach_hook (bfd *, void *); extern bfd_boolean _bfd_ecoff_no_long_sections diff -Nru gdb-8.1/bfd/libieee.h gdb-8.2/bfd/libieee.h --- gdb-8.1/bfd/libieee.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/libieee.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,137 +0,0 @@ -/* IEEE-695 object file formats: definitions internal to BFD. - Copyright (C) 1990-2018 Free Software Foundation, Inc. - Written by Cygnus Support. Mostly Steve Chamberlain's fault. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -typedef struct { - unsigned int index:24; - char letter; -} ieee_symbol_index_type; - -typedef struct ct { - bfd *this; - struct ct *next; -} bfd_chain_type; - -typedef struct ieee_symbol -{ - asymbol symbol; - struct ieee_symbol *next; - - unsigned int index; -} ieee_symbol_type; - - -typedef struct ieee_reloc { - arelent relent; - struct ieee_reloc *next; - ieee_symbol_index_type symbol; - -} ieee_reloc_type; - -#define ieee_symbol(x) ((ieee_symbol_type *)(x)) - -typedef struct ieee_per_section -{ - asection *section; - bfd_byte *data; - bfd_vma offset; - bfd_vma pc; - /* For output */ - file_ptr current_pos; - unsigned int current_byte; - bfd_boolean initialized; - ieee_reloc_type **reloc_tail_ptr; -} ieee_per_section_type; - -#define ieee_per_section(x) ((ieee_per_section_type *)((x)->used_by_bfd)) - -typedef struct { - unsigned char *input_p; - unsigned char *end_p; - unsigned char *first_byte; - unsigned char *last_byte; - bfd_size_type total_amt; - bfd *abfd; -} common_header_type ; - -typedef struct ieee_data_struct -{ - common_header_type h; - bfd_boolean read_symbols; - bfd_boolean read_data; - file_ptr output_cursor; - /* Map of section indexes to section ptrs */ - asection **section_table; - unsigned int section_table_size; - ieee_address_descriptor_type ad; - ieee_module_begin_type mb; - ieee_w_variable_type w; - - unsigned int section_count; - - unsigned int map_idx; - /* List of GLOBAL EXPORT symbols */ - ieee_symbol_type *external_symbols; - /* List of UNDEFINED symbols */ - ieee_symbol_type *external_reference; - - /* When the symbols have been canonicalized, they are in a - * special order, we remember various bases here.. */ - unsigned int external_symbol_max_index; - unsigned int external_symbol_min_index; - unsigned int external_symbol_count; - int external_symbol_base_offset; - - unsigned int external_reference_max_index; - unsigned int external_reference_min_index; - unsigned int external_reference_count; - int external_reference_base_offset; - - - bfd_boolean symbol_table_full; - - -bfd_boolean done_debug; - - -bfd_chain_type *chain_head; -bfd_chain_type *chain_root; - -} ieee_data_type; - -typedef struct { - file_ptr file_offset; - bfd *abfd; -} ieee_ar_obstack_type; - -typedef struct ieee_ar_data_struct -{ - common_header_type h; - ieee_ar_obstack_type *elements; - - unsigned int element_index ; - unsigned int element_count; - -} ieee_ar_data_type; - -#define IEEE_DATA(abfd) ((abfd)->tdata.ieee_data) -#define IEEE_AR_DATA(abfd) ((abfd)->tdata.ieee_ar_data) - -#define ptr(abfd) (ieee_data(abfd)->input_p) diff -Nru gdb-8.1/bfd/libnlm.h gdb-8.2/bfd/libnlm.h --- gdb-8.1/bfd/libnlm.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/libnlm.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,222 +0,0 @@ -/* BFD back-end data structures for NLM (NetWare Loadable Modules) files. - Copyright (C) 1993-2018 Free Software Foundation, Inc. - Written by Cygnus Support. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef _LIBNLM_H_ -#define _LIBNLM_H_ 1 - -#ifdef ARCH_SIZE -# define NLM_ARCH_SIZE ARCH_SIZE -#endif -#include "nlm/common.h" -#include "nlm/internal.h" -#include "nlm/external.h" - -/* A reloc for an imported NLM symbol. Normal relocs are associated - with sections, and include a symbol. These relocs are associated - with (undefined) symbols, and include a section. */ - -struct nlm_relent -{ - /* Section of reloc. */ - asection *section; - /* Reloc info (sym_ptr_ptr field set only when canonicalized). */ - arelent reloc; -}; - -/* Information we keep for an NLM symbol. */ - -typedef struct -{ - /* BFD symbol. */ - asymbol symbol; - /* Number of reloc entries for imported symbol. */ - bfd_size_type rcnt; - /* Array of reloc information for imported symbol. */ - struct nlm_relent *relocs; -} nlmNAME(symbol_type); - -extern bfd_boolean nlm_mkobject (bfd *); -extern bfd_boolean nlm_set_arch_mach (bfd *, enum bfd_architecture, unsigned long); -extern void nlmNAME (get_symbol_info) (bfd *, asymbol *, symbol_info *); -extern long nlmNAME (get_symtab_upper_bound)(bfd *); -extern long nlmNAME (canonicalize_symtab) (bfd *, asymbol **); -extern asymbol * nlmNAME (make_empty_symbol) (bfd *); -extern void nlmNAME (print_symbol) (bfd *, void *, asymbol *, bfd_print_symbol_type); -extern long nlmNAME (get_reloc_upper_bound) (bfd *, asection *); -extern long nlmNAME (canonicalize_reloc) (bfd *, asection *, arelent **, asymbol **); -extern const bfd_target * nlmNAME (object_p) (bfd *); -extern bfd_boolean nlmNAME (set_arch_mach) (bfd *, enum bfd_architecture, unsigned long); -extern bfd_boolean nlmNAME (set_section_contents) (bfd *, asection *, const void *, file_ptr, bfd_size_type); -extern bfd_boolean nlmNAME (write_object_contents) (bfd *); - -/* Some private data is stashed away for future use using the tdata pointer - in the bfd structure. */ - -struct nlm_obj_tdata -{ - /* Actual data, but ref like ptr */ - Nlm_Internal_Fixed_Header nlm_fixed_hdr[1]; - Nlm_Internal_Variable_Header nlm_variable_hdr[1]; - Nlm_Internal_Version_Header nlm_version_hdr[1]; - Nlm_Internal_Copyright_Header nlm_copyright_hdr[1]; - Nlm_Internal_Extended_Header nlm_extended_hdr[1]; - Nlm_Internal_Custom_Header nlm_custom_hdr[1]; - Nlm_Internal_Cygnus_Ext_Header nlm_cygnus_ext_hdr[1]; - /* BFD NLM symbols. */ - nlmNAME (symbol_type) * nlm_symbols; - /* Lowest text and data VMA values. */ - bfd_vma nlm_text_low; - bfd_vma nlm_data_low; - /* Caches for data read from object file. */ - arelent * nlm_reloc_fixups; - asection ** nlm_reloc_fixup_secs; - /* Backend specific information. This should probably be a pointer, - but that would require yet another entry point to initialize the - structure. */ - union - { - struct /* Alpha backend information. */ - { - bfd_vma gp; /* GP value. */ - bfd_vma lita_address; /* .lita section address. */ - bfd_size_type lita_size; /* .lita section size. */ - } - alpha_backend_data; - } - backend_data; -}; - -#define nlm_tdata(bfd) ((bfd) -> tdata.nlm_obj_data) -#define nlm_fixed_header(bfd) (nlm_tdata (bfd) -> nlm_fixed_hdr) -#define nlm_variable_header(bfd) (nlm_tdata (bfd) -> nlm_variable_hdr) -#define nlm_version_header(bfd) (nlm_tdata (bfd) -> nlm_version_hdr) -#define nlm_copyright_header(bfd) (nlm_tdata (bfd) -> nlm_copyright_hdr) -#define nlm_extended_header(bfd) (nlm_tdata (bfd) -> nlm_extended_hdr) -#define nlm_custom_header(bfd) (nlm_tdata (bfd) -> nlm_custom_hdr) -#define nlm_cygnus_ext_header(bfd) (nlm_tdata (bfd) -> nlm_cygnus_ext_hdr) -#define nlm_get_symbols(bfd) (nlm_tdata (bfd) -> nlm_symbols) -#define nlm_set_symbols(bfd, p) (nlm_tdata (bfd) -> nlm_symbols = (p)) -#define nlm_set_text_low(bfd, i) (nlm_tdata (bfd) -> nlm_text_low = (i)) -#define nlm_get_text_low(bfd) (nlm_tdata (bfd) -> nlm_text_low) -#define nlm_set_data_low(bfd, i) (nlm_tdata (bfd) -> nlm_data_low = (i)) -#define nlm_get_data_low(bfd) (nlm_tdata (bfd) -> nlm_data_low) -#define nlm_relocation_fixups(bfd) (nlm_tdata (bfd) -> nlm_reloc_fixups) -#define nlm_relocation_fixup_secs(bfd) (nlm_tdata (bfd) -> nlm_reloc_fixup_secs) -#define nlm_alpha_backend_data(bfd) (&nlm_tdata (bfd) -> backend_data.alpha_backend_data) - -/* This is used when writing out the external relocs. */ - -struct reloc_and_sec -{ - arelent *rel; - asection *sec; -}; - -/* We store some function pointer in the backend structure. This lets - different NLM targets share most of the same code, while providing - slightly different code where necessary. */ - -struct nlm_backend_data -{ - /* Signature for this backend. */ - char signature[NLM_SIGNATURE_SIZE]; - /* Size of the fixed header. */ - bfd_size_type fixed_header_size; - /* Size of optional prefix for this backend. Some backend may - require this to be a function, but so far a constant is OK. This - is for a prefix which precedes the standard NLM fixed header. */ - bfd_size_type optional_prefix_size; - /* Architecture. */ - enum bfd_architecture arch; - /* Machine. */ - unsigned int mach; - /* Some NLM formats do not use the uninitialized data section, so - all uninitialized data must be put into the regular data section - instead. */ - bfd_boolean no_uninitialized_data; - /* Some NLM formats have a prefix on the file. If this function is - not NULL, it will be called by nlm_object_p. It should return - TRUE if this file could match this format, and it should leave - the BFD such that a bfd_bread will pick up the fixed header. */ - bfd_boolean (*nlm_backend_object_p) (bfd *); - /* Write out the prefix. This function may be NULL. This must - write out the same number of bytes as is in the field - optional_prefix_size. */ - bfd_boolean (*nlm_write_prefix) (bfd *); - /* Read a relocation fixup from abfd. The reloc information is - machine specific. The second argument is the symbol if this is - an import, or NULL if this is a reloc fixup. This function - should set the third argument to the section which the reloc - belongs in, and the fourth argument to the reloc itself; it does - not need to fill in the sym_ptr_ptr field for a reloc against an - import symbol. */ - bfd_boolean (*nlm_read_reloc) (bfd *, nlmNAME (symbol_type) *, asection **, arelent *); - /* To make objcopy to an i386 NLM work, the i386 backend needs a - chance to work over the relocs. This is a bit icky. */ - bfd_boolean (*nlm_mangle_relocs) (bfd *, asection *, const void *, bfd_vma, bfd_size_type); - /* Read an import record from abfd. It would be nice if this - were in a machine-dependent format, but it doesn't seem to be. */ - bfd_boolean (*nlm_read_import) (bfd *, nlmNAME (symbol_type) *); - /* Write an import record to abfd. */ - bfd_boolean (*nlm_write_import) (bfd *, asection *, arelent *); - /* Set the section for a public symbol. This may be NULL, in which - case a default method will be used. */ - bfd_boolean (*nlm_set_public_section) (bfd *, nlmNAME (symbol_type) *); - /* Get the offset to write out for a public symbol. This may be - NULL, in which case a default method will be used. */ - bfd_vma (*nlm_get_public_offset) (bfd *, asymbol *); - /* Swap the fixed header in and out */ - void (*nlm_swap_fhdr_in) (bfd *, void *, Nlm_Internal_Fixed_Header *); - void (*nlm_swap_fhdr_out) (bfd *, struct nlm_internal_fixed_header *, void *); - /* Write out an external reference. */ - bfd_boolean (*nlm_write_external) (bfd *, bfd_size_type, asymbol *, struct reloc_and_sec *); - bfd_boolean (*nlm_write_export) (bfd *, asymbol *, bfd_vma); -}; - -#define nlm_backend(bfd) ((struct nlm_backend_data *)((bfd) -> xvec -> backend_data)) -#define nlm_signature(bfd) (nlm_backend (bfd) -> signature) -#define nlm_fixed_header_size(bfd) (nlm_backend (bfd) -> fixed_header_size) -#define nlm_optional_prefix_size(bfd) (nlm_backend (bfd) -> optional_prefix_size) -#define nlm_architecture(bfd) (nlm_backend (bfd) -> arch) -#define nlm_machine(bfd) (nlm_backend (bfd) -> mach) -#define nlm_no_uninitialized_data(bfd) (nlm_backend (bfd) -> no_uninitialized_data) -#define nlm_backend_object_p_func(bfd) (nlm_backend (bfd) -> nlm_backend_object_p) -#define nlm_write_prefix_func(bfd) (nlm_backend (bfd) -> nlm_write_prefix) -#define nlm_read_reloc_func(bfd) (nlm_backend (bfd) -> nlm_read_reloc) -#define nlm_mangle_relocs_func(bfd) (nlm_backend (bfd) -> nlm_mangle_relocs) -#define nlm_read_import_func(bfd) (nlm_backend (bfd) -> nlm_read_import) -#define nlm_write_import_func(bfd) (nlm_backend (bfd) -> nlm_write_import) -#define nlm_set_public_section_func(bfd) (nlm_backend (bfd) -> nlm_set_public_section) -#define nlm_get_public_offset_func(bfd) (nlm_backend (bfd) -> nlm_get_public_offset) -#define nlm_swap_fixed_header_in_func(bfd) (nlm_backend (bfd) -> nlm_swap_fhdr_in) -#define nlm_swap_fixed_header_out_func(bfd)(nlm_backend (bfd) -> nlm_swap_fhdr_out) -#define nlm_write_external_func(bfd) (nlm_backend (bfd) -> nlm_write_external) -#define nlm_write_export_func(bfd) (nlm_backend (bfd) -> nlm_write_export) - -/* The NLM code, data, and uninitialized sections have no names defined - in the NLM, but bfd wants to give them names, so use the traditional - UNIX names. */ - -#define NLM_CODE_NAME ".text" -#define NLM_INITIALIZED_DATA_NAME ".data" -#define NLM_UNINITIALIZED_DATA_NAME ".bss" - -#endif /* _LIBNLM_H_ */ diff -Nru gdb-8.1/bfd/liboasys.h gdb-8.2/bfd/liboasys.h --- gdb-8.1/bfd/liboasys.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/liboasys.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ -/* BFD internal declarations for Oasys file format handling. - Copyright (C) 1990-2018 Free Software Foundation, Inc. - Scrawled by Steve Chamberlain of Cygnus Support. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -typedef struct _oasys_symbol -{ - asymbol symbol; -} oasys_symbol_type; - -typedef struct _oasys_reloc { - arelent relent; - struct _oasys_reloc *next; - unsigned int symbol; -} oasys_reloc_type; - - -#define oasys_symbol(x) ((oasys_symbol_type *)(x)) -#define oasys_per_section(x) ((oasys_per_section_type *)(x->used_by_bfd)) - -typedef struct _oasys_per_section -{ - asection *section; - bfd_byte *data; - bfd_vma offset; - bfd_boolean had_vma; - oasys_reloc_type **reloc_tail_ptr; - bfd_vma pc; - - - file_ptr current_pos; - unsigned int current_byte; - bfd_boolean initialized; -} oasys_per_section_type; - -#define NSECTIONS 10 - -typedef struct _oasys_ar_obstack { - file_ptr file_offset; - bfd *abfd; -} oasys_ar_obstack_type; - - -typedef struct _oasys_module_info { - file_ptr pos; - unsigned int size; - bfd *abfd; - char *name; -} oasys_module_info_type; - -typedef struct _oasys_ar_data { - oasys_module_info_type *module; - unsigned int module_count; - unsigned int module_index; -} oasys_ar_data_type; - -typedef struct _oasys_data { - char *strings; - asymbol *symbols; - unsigned int symbol_string_length; - asection *sections[OASYS_MAX_SEC_COUNT]; - file_ptr first_data_record; -} oasys_data_type; - -#define OASYS_DATA(abfd) ((abfd)->tdata.oasys_obj_data) -#define OASYS_AR_DATA(abfd) ((abfd)->tdata.oasys_ar_data) - diff -Nru gdb-8.1/bfd/linker.c gdb-8.2/bfd/linker.c --- gdb-8.1/bfd/linker.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/linker.c 2018-09-05 07:44:28.000000000 +0000 @@ -495,6 +495,9 @@ { struct bfd_link_hash_entry *ret; + if (table == NULL || string == NULL) + return NULL; + ret = ((struct bfd_link_hash_entry *) bfd_hash_lookup (&table->table, string, create, copy)); @@ -941,6 +944,9 @@ continue; } + if (arsym->name == NULL) + goto error_return; + h = bfd_link_hash_lookup (info->hash, arsym->name, FALSE, FALSE, TRUE); @@ -1407,7 +1413,7 @@ && name[1] == '_' && strcmp (name + (name[2] == '_'), "__gnu_lto_slim") == 0) _bfd_error_handler - (_("%B: plugin needed to handle lto object"), abfd); + (_("%pB: plugin needed to handle lto object"), abfd); } else row = DEF_ROW; @@ -1675,7 +1681,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: indirect symbol `%s' to `%s' is a loop"), + (_("%pB: indirect symbol `%s' to `%s' is a loop"), abfd, name, string); bfd_set_error (bfd_error_invalid_operation); return FALSE; @@ -2545,7 +2551,7 @@ difficult, and sometimes impossible. */ _bfd_error_handler /* xgettext:c-format */ - (_("Attempt to do relocatable 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; @@ -2831,7 +2837,7 @@ case SEC_LINK_DUPLICATES_ONE_ONLY: info->callbacks->einfo /* xgettext:c-format */ - (_("%B: ignoring duplicate section `%A'\n"), + (_("%pB: ignoring duplicate section `%pA'\n"), sec->owner, sec); break; @@ -2841,7 +2847,7 @@ else if (sec->size != l->sec->size) info->callbacks->einfo /* xgettext:c-format */ - (_("%B: duplicate section `%A' has different size\n"), + (_("%pB: duplicate section `%pA' has different size\n"), sec->owner, sec); break; @@ -2851,7 +2857,7 @@ else if (sec->size != l->sec->size) info->callbacks->einfo /* xgettext:c-format */ - (_("%B: duplicate section `%A' has different size\n"), + (_("%pB: duplicate section `%pA' has different size\n"), sec->owner, sec); else if (sec->size != 0) { @@ -2860,18 +2866,18 @@ if (!bfd_malloc_and_get_section (sec->owner, sec, &sec_contents)) info->callbacks->einfo /* xgettext:c-format */ - (_("%B: could not read contents of section `%A'\n"), + (_("%pB: could not read contents of section `%pA'\n"), sec->owner, sec); else if (!bfd_malloc_and_get_section (l->sec->owner, l->sec, &l_sec_contents)) info->callbacks->einfo /* xgettext:c-format */ - (_("%B: could not read contents of section `%A'\n"), + (_("%pB: could not read contents of section `%pA'\n"), l->sec->owner, l->sec); else if (memcmp (sec_contents, l_sec_contents, sec->size) != 0) info->callbacks->einfo /* xgettext:c-format */ - (_("%B: duplicate section `%A' has different contents\n"), + (_("%pB: duplicate section `%pA' has different contents\n"), sec->owner, sec); if (sec_contents) @@ -3106,6 +3112,32 @@ /* FUNCTION + _bfd_generic_link_hide_symbol + +SYNOPSIS + void _bfd_generic_link_hide_symbol + (bfd *output_bfd, struct bfd_link_info *info, + struct bfd_link_hash_entry *h); + +DESCRIPTION + Hide symbol @var{h}. + This is an internal function. It should not be called from + outside the BFD library. + +.#define bfd_link_hide_symbol(output_bfd, info, h) \ +. BFD_SEND (output_bfd, _bfd_link_hide_symbol, (output_bfd, info, h)) +. +*/ + +void +_bfd_generic_link_hide_symbol (bfd *output_bfd ATTRIBUTE_UNUSED, + struct bfd_link_info *info ATTRIBUTE_UNUSED, + struct bfd_link_hash_entry *h ATTRIBUTE_UNUSED) +{ +} + +/* +FUNCTION bfd_generic_define_start_stop SYNOPSIS @@ -3359,10 +3391,10 @@ && obfd->xvec->byteorder != BFD_ENDIAN_UNKNOWN) { if (bfd_big_endian (ibfd)) - _bfd_error_handler (_("%B: compiled for a big endian system " + _bfd_error_handler (_("%pB: compiled for a big endian system " "and target is little endian"), ibfd); else - _bfd_error_handler (_("%B: compiled for a little endian system " + _bfd_error_handler (_("%pB: compiled for a little endian system " "and target is big endian"), ibfd); bfd_set_error (bfd_error_wrong_format); return FALSE; @@ -3370,3 +3402,104 @@ return TRUE; } + +int +_bfd_nolink_sizeof_headers (bfd *abfd ATTRIBUTE_UNUSED, + struct bfd_link_info *info ATTRIBUTE_UNUSED) +{ + return 0; +} + +bfd_boolean +_bfd_nolink_bfd_relax_section (bfd *abfd, + asection *section ATTRIBUTE_UNUSED, + struct bfd_link_info *link_info ATTRIBUTE_UNUSED, + bfd_boolean *again ATTRIBUTE_UNUSED) +{ + return _bfd_bool_bfd_false_error (abfd); +} + +bfd_byte * +_bfd_nolink_bfd_get_relocated_section_contents + (bfd *abfd, + struct bfd_link_info *link_info ATTRIBUTE_UNUSED, + struct bfd_link_order *link_order ATTRIBUTE_UNUSED, + bfd_byte *data ATTRIBUTE_UNUSED, + bfd_boolean relocatable ATTRIBUTE_UNUSED, + asymbol **symbols ATTRIBUTE_UNUSED) +{ + return (bfd_byte *) _bfd_ptr_bfd_null_error (abfd); +} + +bfd_boolean +_bfd_nolink_bfd_lookup_section_flags + (struct bfd_link_info *info ATTRIBUTE_UNUSED, + struct flag_info *flaginfo ATTRIBUTE_UNUSED, + asection *section) +{ + return _bfd_bool_bfd_false_error (section->owner); +} + +bfd_boolean +_bfd_nolink_bfd_is_group_section (bfd *abfd, + const asection *sec ATTRIBUTE_UNUSED) +{ + return _bfd_bool_bfd_false_error (abfd); +} + +bfd_boolean +_bfd_nolink_bfd_discard_group (bfd *abfd, asection *sec ATTRIBUTE_UNUSED) +{ + return _bfd_bool_bfd_false_error (abfd); +} + +struct bfd_link_hash_table * +_bfd_nolink_bfd_link_hash_table_create (bfd *abfd) +{ + return (struct bfd_link_hash_table *) _bfd_ptr_bfd_null_error (abfd); +} + +void +_bfd_nolink_bfd_link_just_syms (asection *sec ATTRIBUTE_UNUSED, + struct bfd_link_info *info ATTRIBUTE_UNUSED) +{ +} + +void +_bfd_nolink_bfd_copy_link_hash_symbol_type + (bfd *abfd ATTRIBUTE_UNUSED, + struct bfd_link_hash_entry *from ATTRIBUTE_UNUSED, + struct bfd_link_hash_entry *to ATTRIBUTE_UNUSED) +{ +} + +bfd_boolean +_bfd_nolink_bfd_link_split_section (bfd *abfd, asection *sec ATTRIBUTE_UNUSED) +{ + return _bfd_bool_bfd_false_error (abfd); +} + +bfd_boolean +_bfd_nolink_section_already_linked (bfd *abfd, + asection *sec ATTRIBUTE_UNUSED, + struct bfd_link_info *info ATTRIBUTE_UNUSED) +{ + return _bfd_bool_bfd_false_error (abfd); +} + +bfd_boolean +_bfd_nolink_bfd_define_common_symbol + (bfd *abfd, + struct bfd_link_info *info ATTRIBUTE_UNUSED, + struct bfd_link_hash_entry *h ATTRIBUTE_UNUSED) +{ + return _bfd_bool_bfd_false_error (abfd); +} + +struct bfd_link_hash_entry * +_bfd_nolink_bfd_define_start_stop (struct bfd_link_info *info ATTRIBUTE_UNUSED, + const char *name ATTRIBUTE_UNUSED, + asection *sec) +{ + return (struct bfd_link_hash_entry *) _bfd_ptr_bfd_null_error (sec->owner); +} diff -Nru gdb-8.1/bfd/m68k4knetbsd.c gdb-8.2/bfd/m68k4knetbsd.c --- gdb-8.1/bfd/m68k4knetbsd.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/m68k4knetbsd.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,0 @@ -/* BFD back-end for NetBSD/m68k a.out-ish binaries. - Copyright (C) 1990-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define TARGET_IS_BIG_ENDIAN_P - -#define TARGET_PAGE_SIZE 0x1000 - -#define DEFAULT_ARCH bfd_arch_m68k -#define DEFAULT_MID M_68K4K_NETBSD - -/* Do not "beautify" the CONCAT* macro args. Traditional C will not - remove whitespace added here, and thus will fail to concatenate - the tokens. */ -#define MY(OP) CONCAT2 (m68k_aout_4knbsd_,OP) - -/* This needs to start with a.out so GDB knows it is an a.out variant. */ -#define TARGETNAME "a.out-m68k4k-netbsd" - -#include "netbsd.h" diff -Nru gdb-8.1/bfd/m68klinux.c gdb-8.2/bfd/m68klinux.c --- gdb-8.1/bfd/m68klinux.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/m68klinux.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,737 +0,0 @@ -/* BFD back-end for linux flavored m68k a.out binaries. - Copyright (C) 1992-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define TARGET_PAGE_SIZE 4096 -#define ZMAGIC_DISK_BLOCK_SIZE 1024 -#define SEGMENT_SIZE TARGET_PAGE_SIZE -#define TEXT_START_ADDR 0x0 - -#define MACHTYPE_OK(mtype) ((mtype) == M_68020 || (mtype) == M_UNKNOWN) - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "aout/aout64.h" -#include "aout/stab_gnu.h" -#include "aout/ar.h" -#include "libaout.h" /* BFD a.out internal data structures */ - -#define TARGET_IS_BIG_ENDIAN_P -#define DEFAULT_ARCH bfd_arch_m68k - -/* Do not "beautify" the CONCAT* macro args. Traditional C will not - remove whitespace added here, and thus will fail to concatenate - the tokens. */ -#define MY(OP) CONCAT2 (m68k_aout_linux_,OP) -#define TARGETNAME "a.out-m68k-linux" - -extern const bfd_target MY(vec); - -/* We always generate QMAGIC files in preference to ZMAGIC files. It - would be possible to make this a linker option, if that ever - becomes important. */ - -static void MY_final_link_callback - (bfd *, file_ptr *, file_ptr *, file_ptr *); - -static bfd_boolean -m68klinux_bfd_final_link (bfd *abfd, - struct bfd_link_info *info) -{ - obj_aout_subformat (abfd) = q_magic_format; - return NAME(aout,final_link) (abfd, info, MY_final_link_callback); -} - -#define MY_bfd_final_link m68klinux_bfd_final_link - -/* Set the machine type correctly. */ - -static bfd_boolean -m68klinux_write_object_contents (bfd *abfd) -{ - struct external_exec exec_bytes; - struct internal_exec *execp = exec_hdr (abfd); - - N_SET_MACHTYPE (execp, M_68020); - - obj_reloc_entry_size (abfd) = RELOC_STD_SIZE; - - WRITE_HEADERS (abfd, execp); - - return TRUE; -} - -#define MY_write_object_contents m68klinux_write_object_contents - -/* Code to link against Linux a.out shared libraries. */ - -/* See if a symbol name is a reference to the global offset table. */ - -#ifndef GOT_REF_PREFIX -#define GOT_REF_PREFIX "__GOT_" -#endif - -#define IS_GOT_SYM(name) (CONST_STRNEQ (name, GOT_REF_PREFIX)) - -/* See if a symbol name is a reference to the procedure linkage table. */ - -#ifndef PLT_REF_PREFIX -#define PLT_REF_PREFIX "__PLT_" -#endif - -#define IS_PLT_SYM(name) (CONST_STRNEQ (name, PLT_REF_PREFIX)) - -/* This string is used to generate specialized error messages. */ - -#ifndef NEEDS_SHRLIB -#define NEEDS_SHRLIB "__NEEDS_SHRLIB_" -#endif - -/* This special symbol is a set vector that contains a list of - pointers to fixup tables. It will be present in any dynamically - linked file. The linker generated fixup table should also be added - to the list, and it should always appear in the second slot (the - first one is a dummy with a magic number that is defined in - crt0.o). */ - -#ifndef SHARABLE_CONFLICTS -#define SHARABLE_CONFLICTS "__SHARABLE_CONFLICTS__" -#endif - -/* We keep a list of fixups. The terminology is a bit strange, but - each fixup contains two 32 bit numbers. A regular fixup contains - an address and a pointer, and at runtime we should store the - address at the location pointed to by the pointer. A builtin fixup - contains two pointers, and we should read the address using one - pointer and store it at the location pointed to by the other - pointer. Builtin fixups come into play when we have duplicate - __GOT__ symbols for the same variable. The builtin fixup will copy - the GOT pointer from one over into the other. */ - -struct fixup -{ - struct fixup *next; - struct linux_link_hash_entry *h; - bfd_vma value; - - /* Nonzero if this is a jump instruction that needs to be fixed, - zero if this is just a pointer */ - char jump; - - char builtin; -}; - -/* We don't need a special hash table entry structure, but we do need - to keep some information between linker passes, so we use a special - hash table. */ - -struct linux_link_hash_entry -{ - struct aout_link_hash_entry root; -}; - -struct linux_link_hash_table -{ - struct aout_link_hash_table root; - - /* First dynamic object found in link. */ - bfd *dynobj; - - /* Number of fixups. */ - size_t fixup_count; - - /* Number of builtin fixups. */ - size_t local_builtins; - - /* List of fixups. */ - struct fixup *fixup_list; -}; - -/* Routine to create an entry in an Linux link hash table. */ - -static struct bfd_hash_entry * -linux_link_hash_newfunc (struct bfd_hash_entry *entry, - struct bfd_hash_table *table, - const char *string) -{ - struct linux_link_hash_entry *ret = (struct linux_link_hash_entry *) entry; - - /* Allocate the structure if it has not already been allocated by a - subclass. */ - if (ret == (struct linux_link_hash_entry *) NULL) - ret = ((struct linux_link_hash_entry *) - bfd_hash_allocate (table, sizeof (struct linux_link_hash_entry))); - if (ret == NULL) - return (struct bfd_hash_entry *) ret; - - /* Call the allocation method of the superclass. */ - ret = ((struct linux_link_hash_entry *) - NAME(aout,link_hash_newfunc) ((struct bfd_hash_entry *) ret, - table, string)); - if (ret != NULL) - { - /* Set local fields; there aren't any. */ - } - - return (struct bfd_hash_entry *) ret; -} - -/* Create a Linux link hash table. */ - -static struct bfd_link_hash_table * -linux_link_hash_table_create (bfd *abfd) -{ - struct linux_link_hash_table *ret; - bfd_size_type amt = sizeof (struct linux_link_hash_table); - - ret = (struct linux_link_hash_table *) bfd_zmalloc (amt); - if (ret == (struct linux_link_hash_table *) NULL) - { - bfd_set_error (bfd_error_no_memory); - return (struct bfd_link_hash_table *) NULL; - } - if (!NAME(aout,link_hash_table_init) (&ret->root, abfd, - linux_link_hash_newfunc, - sizeof (struct linux_link_hash_entry))) - { - free (ret); - return (struct bfd_link_hash_table *) NULL; - } - - return &ret->root.root; -} - -/* Look up an entry in a Linux link hash table. */ - -#define linux_link_hash_lookup(table, string, create, copy, follow) \ - ((struct linux_link_hash_entry *) \ - aout_link_hash_lookup (&(table)->root, (string), (create), (copy),\ - (follow))) - -/* Traverse a Linux link hash table. */ - -#define linux_link_hash_traverse(table, func, info) \ - (aout_link_hash_traverse \ - (&(table)->root, \ - (bfd_boolean (*) (struct aout_link_hash_entry *, void *)) (func), \ - (info))) - -/* Get the Linux link hash table from the info structure. This is - just a cast. */ - -#define linux_hash_table(p) ((struct linux_link_hash_table *) ((p)->hash)) - -/* Store the information for a new fixup. */ - -static struct fixup * -new_fixup (struct bfd_link_info *info, - struct linux_link_hash_entry *h, - bfd_vma value, - int builtin) -{ - struct fixup *f; - - f = (struct fixup *) bfd_hash_allocate (&info->hash->table, - sizeof (struct fixup)); - if (f == NULL) - return f; - f->next = linux_hash_table (info)->fixup_list; - linux_hash_table (info)->fixup_list = f; - f->h = h; - f->value = value; - f->builtin = builtin; - f->jump = 0; - ++linux_hash_table (info)->fixup_count; - return f; -} - -/* We come here once we realize that we are going to link to a shared - library. We need to create a special section that contains the - fixup table, and we ultimately need to add a pointer to this into - the set vector for SHARABLE_CONFLICTS. At this point we do not - know the size of the section, but that's OK - we just need to - create it for now. */ - -static bfd_boolean -linux_link_create_dynamic_sections (bfd *abfd, - struct bfd_link_info *info ATTRIBUTE_UNUSED) -{ - flagword flags; - asection *s; - - /* Note that we set the SEC_IN_MEMORY flag. */ - flags = SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY; - - /* We choose to use the name ".linux-dynamic" for the fixup table. - Why not? */ - s = bfd_make_section_with_flags (abfd, ".linux-dynamic", flags); - if (s == NULL - || ! bfd_set_section_alignment (abfd, s, 2)) - return FALSE; - s->size = 0; - s->contents = 0; - - return TRUE; -} - -/* Function to add a single symbol to the linker hash table. This is - a wrapper around _bfd_generic_link_add_one_symbol which handles the - tweaking needed for dynamic linking support. */ - -static bfd_boolean -linux_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) -{ - struct linux_link_hash_entry *h; - bfd_boolean insert; - - /* Look up and see if we already have this symbol in the hash table. - If we do, and the defining entry is from a shared library, we - need to create the dynamic sections. - - FIXME: What if abfd->xvec != info->output_bfd->xvec? We may - want to be able to link Linux a.out and ELF objects together, - but serious confusion is possible. */ - - insert = FALSE; - - if (! bfd_link_relocatable (info) - && linux_hash_table (info)->dynobj == NULL - && strcmp (name, SHARABLE_CONFLICTS) == 0 - && (flags & BSF_CONSTRUCTOR) != 0 - && abfd->xvec == info->output_bfd->xvec) - { - if (! linux_link_create_dynamic_sections (abfd, info)) - return FALSE; - linux_hash_table (info)->dynobj = abfd; - insert = TRUE; - } - - if (bfd_is_abs_section (section) - && abfd->xvec == info->output_bfd->xvec) - { - h = linux_link_hash_lookup (linux_hash_table (info), name, FALSE, - FALSE, FALSE); - if (h != NULL - && (h->root.root.type == bfd_link_hash_defined - || h->root.root.type == bfd_link_hash_defweak)) - { - struct fixup *f; - - if (hashp != NULL) - *hashp = (struct bfd_link_hash_entry *) h; - - f = new_fixup (info, h, value, ! IS_PLT_SYM (name)); - if (f == NULL) - return FALSE; - f->jump = IS_PLT_SYM (name); - - return TRUE; - } - } - - /* Do the usual procedure for adding a symbol. */ - if (! _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, - value, string, copy, collect, - hashp)) - return FALSE; - - /* Insert a pointer to our table in the set vector. The dynamic - linker requires this information */ - if (insert) - { - asection *s; - - /* Here we do our special thing to add the pointer to the - dynamic section in the SHARABLE_CONFLICTS set vector. */ - s = bfd_get_section_by_name (linux_hash_table (info)->dynobj, - ".linux-dynamic"); - BFD_ASSERT (s != NULL); - - if (! (_bfd_generic_link_add_one_symbol - (info, linux_hash_table (info)->dynobj, SHARABLE_CONFLICTS, - BSF_GLOBAL | BSF_CONSTRUCTOR, s, (bfd_vma) 0, NULL, - FALSE, FALSE, NULL))) - return FALSE; - } - - return TRUE; -} - -/* We will crawl the hash table and come here for every global symbol. - We will examine each entry and see if there are indications that we - need to add a fixup. There are two possible cases - one is where - you have duplicate definitions of PLT or GOT symbols - these will - have already been caught and added as "builtin" fixups. If we find - that the corresponding non PLT/GOT symbol is also present, we - convert it to a regular fixup instead. - - This function is called via linux_link_hash_traverse. */ - -static bfd_boolean -linux_tally_symbols (struct linux_link_hash_entry *h, - void * data) -{ - struct bfd_link_info *info = (struct bfd_link_info *) data; - struct fixup *f, *f1; - int is_plt; - struct linux_link_hash_entry *h1, *h2; - bfd_boolean exists; - - if (h->root.root.type == bfd_link_hash_undefined - && CONST_STRNEQ (h->root.root.root.string, NEEDS_SHRLIB)) - { - const char *name; - char *p; - char *alloc = NULL; - - name = h->root.root.root.string + sizeof NEEDS_SHRLIB - 1; - p = strrchr (name, '_'); - if (p != NULL) - alloc = (char *) bfd_malloc ((bfd_size_type) strlen (name) + 1); - - if (p == NULL || alloc == NULL) - _bfd_error_handler (_("Output file requires shared library `%s'\n"), - name); - else - { - strcpy (alloc, name); - p = strrchr (alloc, '_'); - *p++ = '\0'; - _bfd_error_handler - /* xgettext:c-format */ - (_("Output file requires shared library `%s.so.%s'\n"), - alloc, p); - free (alloc); - } - - abort (); - } - - /* If this symbol is not a PLT/GOT, we do not even need to look at it */ - is_plt = IS_PLT_SYM (h->root.root.root.string); - - if (is_plt || IS_GOT_SYM (h->root.root.root.string)) - { - /* Look up this symbol twice. Once just as a regular lookup, - and then again following all of the indirect links until we - reach a real symbol. */ - h1 = linux_link_hash_lookup (linux_hash_table (info), - (h->root.root.root.string - + sizeof PLT_REF_PREFIX - 1), - FALSE, FALSE, TRUE); - /* h2 does not follow indirect symbols. */ - h2 = linux_link_hash_lookup (linux_hash_table (info), - (h->root.root.root.string - + sizeof PLT_REF_PREFIX - 1), - FALSE, FALSE, FALSE); - - /* The real symbol must exist but if it is also an ABS symbol, - there is no need to have a fixup. This is because they both - came from the same library. If on the other hand, we had to - use an indirect symbol to get to the real symbol, we add the - fixup anyway, since there are cases where these symbols come - from different shared libraries */ - if (h1 != NULL - && (((h1->root.root.type == bfd_link_hash_defined - || h1->root.root.type == bfd_link_hash_defweak) - && ! bfd_is_abs_section (h1->root.root.u.def.section)) - || h2->root.root.type == bfd_link_hash_indirect)) - { - /* See if there is a "builtin" fixup already present - involving this symbol. If so, convert it to a regular - fixup. In the end, this relaxes some of the requirements - about the order of performing fixups. */ - exists = FALSE; - for (f1 = linux_hash_table (info)->fixup_list; - f1 != NULL; - f1 = f1->next) - { - if ((f1->h != h && f1->h != h1) - || (! f1->builtin && ! f1->jump)) - continue; - if (f1->h == h1) - exists = TRUE; - if (! exists - && bfd_is_abs_section (h->root.root.u.def.section)) - { - f = new_fixup (info, h1, f1->h->root.root.u.def.value, 0); - f->jump = is_plt; - } - f1->h = h1; - f1->jump = is_plt; - f1->builtin = 0; - exists = TRUE; - } - if (! exists - && bfd_is_abs_section (h->root.root.u.def.section)) - { - f = new_fixup (info, h1, h->root.root.u.def.value, 0); - if (f == NULL) - { - /* FIXME: No way to return error. */ - abort (); - } - f->jump = is_plt; - } - } - - /* Quick and dirty way of stripping these symbols from the - symtab. */ - if (bfd_is_abs_section (h->root.root.u.def.section)) - h->root.written = TRUE; - } - - return TRUE; -} - -/* This is called to set the size of the .linux-dynamic section is. - It is called by the Linux linker emulation before_allocation - routine. We have finished reading all of the input files, and now - we just scan the hash tables to find out how many additional fixups - are required. */ - -bfd_boolean -bfd_m68klinux_size_dynamic_sections (bfd *output_bfd, - struct bfd_link_info *info) -{ - struct fixup *f; - asection *s; - - if (output_bfd->xvec != &MY(vec)) - return TRUE; - - /* First find the fixups... */ - linux_link_hash_traverse (linux_hash_table (info), - linux_tally_symbols, - info); - - /* If there are builtin fixups, leave room for a marker. This is - used by the dynamic linker so that it knows that all that follow - are builtin fixups instead of regular fixups. */ - for (f = linux_hash_table (info)->fixup_list; f != NULL; f = f->next) - { - if (f->builtin) - { - ++linux_hash_table (info)->fixup_count; - ++linux_hash_table (info)->local_builtins; - break; - } - } - - if (linux_hash_table (info)->dynobj == NULL) - { - if (linux_hash_table (info)->fixup_count > 0) - abort (); - return TRUE; - } - - /* Allocate memory for our fixup table. We will fill it in later. */ - s = bfd_get_section_by_name (linux_hash_table (info)->dynobj, - ".linux-dynamic"); - if (s != NULL) - { - s->size = linux_hash_table (info)->fixup_count + 1; - s->size *= 8; - s->contents = (bfd_byte *) bfd_zalloc (output_bfd, s->size); - if (s->contents == NULL) - { - bfd_set_error (bfd_error_no_memory); - return FALSE; - } - } - - return TRUE; -} - -/* We come here once we are ready to actually write the fixup table to - the output file. Scan the fixup tables and so forth and generate - the stuff we need. */ - -static bfd_boolean -linux_finish_dynamic_link (bfd *output_bfd, struct bfd_link_info *info) -{ - asection *s, *os, *is; - bfd_byte *fixup_table; - struct linux_link_hash_entry *h; - struct fixup *f; - unsigned int new_addr; - int section_offset; - unsigned int fixups_written; - - if (linux_hash_table (info)->dynobj == NULL) - return TRUE; - - s = bfd_get_section_by_name (linux_hash_table (info)->dynobj, - ".linux-dynamic"); - BFD_ASSERT (s != NULL); - os = s->output_section; - fixups_written = 0; - -#ifdef LINUX_LINK_DEBUG - printf ("Fixup table file offset: %x VMA: %x\n", - os->filepos + s->output_offset, - os->vma + s->output_offset); -#endif - - fixup_table = s->contents; - bfd_put_32 (output_bfd, (bfd_vma) linux_hash_table (info)->fixup_count, - fixup_table); - fixup_table += 4; - - /* Fill in fixup table. */ - for (f = linux_hash_table (info)->fixup_list; f != NULL; f = f->next) - { - if (f->builtin) - continue; - - if (f->h->root.root.type != bfd_link_hash_defined - && f->h->root.root.type != bfd_link_hash_defweak) - { - _bfd_error_handler - (_("Symbol %s not defined for fixups\n"), - f->h->root.root.root.string); - continue; - } - - is = f->h->root.root.u.def.section; - section_offset = is->output_section->vma + is->output_offset; - new_addr = f->h->root.root.u.def.value + section_offset; - -#ifdef LINUX_LINK_DEBUG - printf ("Fixup(%d) %s: %x %x\n",f->jump, f->h->root.root.string, - new_addr, f->value); -#endif - - if (f->jump) - { - bfd_put_32 (output_bfd, (bfd_vma) new_addr, fixup_table); - fixup_table += 4; - bfd_put_32 (output_bfd, f->value + 2, fixup_table); - fixup_table += 4; - } - else - { - bfd_put_32 (output_bfd, (bfd_vma) new_addr, fixup_table); - fixup_table += 4; - bfd_put_32 (output_bfd, f->value, fixup_table); - fixup_table += 4; - } - ++fixups_written; - } - - if (linux_hash_table (info)->local_builtins != 0) - { - /* Special marker so we know to switch to the other type of fixup */ - bfd_put_32 (output_bfd, (bfd_vma) 0, fixup_table); - fixup_table += 4; - bfd_put_32 (output_bfd, (bfd_vma) 0, fixup_table); - fixup_table += 4; - ++fixups_written; - for (f = linux_hash_table (info)->fixup_list; f != NULL; f = f->next) - { - if (! f->builtin) - continue; - - if (f->h->root.root.type != bfd_link_hash_defined - && f->h->root.root.type != bfd_link_hash_defweak) - { - _bfd_error_handler - (_("Symbol %s not defined for fixups\n"), - f->h->root.root.root.string); - continue; - } - - is = f->h->root.root.u.def.section; - section_offset = is->output_section->vma + is->output_offset; - new_addr = f->h->root.root.u.def.value + section_offset; - -#ifdef LINUX_LINK_DEBUG - printf ("Fixup(B) %s: %x %x\n", f->h->root.root.string, - new_addr, f->value); -#endif - - bfd_put_32 (output_bfd, (bfd_vma) new_addr, fixup_table); - fixup_table += 4; - bfd_put_32 (output_bfd, f->value, fixup_table); - fixup_table += 4; - ++fixups_written; - } - } - - if (linux_hash_table (info)->fixup_count != fixups_written) - { - _bfd_error_handler (_("Warning: fixup count mismatch\n")); - while (linux_hash_table (info)->fixup_count > fixups_written) - { - bfd_put_32 (output_bfd, (bfd_vma) 0, fixup_table); - fixup_table += 4; - bfd_put_32 (output_bfd, (bfd_vma) 0, fixup_table); - fixup_table += 4; - ++fixups_written; - } - } - - h = linux_link_hash_lookup (linux_hash_table (info), - "__BUILTIN_FIXUPS__", - FALSE, FALSE, FALSE); - - if (h != NULL - && (h->root.root.type == bfd_link_hash_defined - || h->root.root.type == bfd_link_hash_defweak)) - { - is = h->root.root.u.def.section; - section_offset = is->output_section->vma + is->output_offset; - new_addr = h->root.root.u.def.value + section_offset; - -#ifdef LINUX_LINK_DEBUG - printf ("Builtin fixup table at %x\n", new_addr); -#endif - - bfd_put_32 (output_bfd, (bfd_vma) new_addr, fixup_table); - } - else - bfd_put_32 (output_bfd, (bfd_vma) 0, fixup_table); - - if (bfd_seek (output_bfd, (file_ptr) (os->filepos + s->output_offset), - SEEK_SET) != 0) - return FALSE; - - if (bfd_bwrite (s->contents, s->size, output_bfd) != s->size) - return FALSE; - - return TRUE; -} - -#define MY_bfd_link_hash_table_create linux_link_hash_table_create -#define MY_add_one_symbol linux_add_one_symbol -#define MY_finish_dynamic_link linux_finish_dynamic_link - -#define MY_zmagic_contiguous 1 - -#include "aout-target.h" diff -Nru gdb-8.1/bfd/m68knetbsd.c gdb-8.2/bfd/m68knetbsd.c --- gdb-8.1/bfd/m68knetbsd.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/m68knetbsd.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ -/* BFD back-end for NetBSD/m68k a.out-ish binaries. - Copyright (C) 1990-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define TARGET_IS_BIG_ENDIAN_P - -/* Our m68k ports use either 4K or 8K pages, but object files always - assume 8K page alignment so they will work on all m68k machines. */ -#define TARGET_PAGE_SIZE 0x2000 - -#define DEFAULT_ARCH bfd_arch_m68k -#define DEFAULT_MID M_68K_NETBSD - -/* Do not "beautify" the CONCAT* macro args. Traditional C will not - remove whitespace added here, and thus will fail to concatenate - the tokens. */ -#define MY(OP) CONCAT2 (m68k_aout_nbsd_,OP) - -/* This needs to start with a.out so GDB knows it is an a.out variant. */ -#define TARGETNAME "a.out-m68k-netbsd" - -#include "netbsd.h" diff -Nru gdb-8.1/bfd/m88kmach3.c gdb-8.2/bfd/m88kmach3.c --- gdb-8.1/bfd/m88kmach3.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/m88kmach3.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -/* BFD back-end for Motorola m88k a.out (Mach 3) binaries. - Copyright (C) 1990-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define TARGET_PAGE_SIZE (4096*2) -#define SEGMENT_SIZE 0x20000 -#define TEXT_START_ADDR 0 -#define N_HEADER_IN_TEXT(x) 1 /* (N_MAGIG(x) == ZMAGIC) */ - -#define N_TXTSIZE(x) ((x)->a_text) - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "libaout.h" - -#define DEFAULT_ARCH bfd_arch_m88k - -/* Do not "beautify" the CONCAT* macro args. Traditional C will not - remove whitespace added here, and thus will fail to concatenate - the tokens. */ -#define MY(OP) CONCAT2 (m88k_aout_mach3_,OP) -#define TARGETNAME "a.out-m88k-mach3" - -#include "aout-target.h" diff -Nru gdb-8.1/bfd/m88kopenbsd.c gdb-8.2/bfd/m88kopenbsd.c --- gdb-8.1/bfd/m88kopenbsd.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/m88kopenbsd.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,34 +0,0 @@ -/* BFD back-end for OpenBSD/m88k a.out binaries. - Copyright (C) 2004-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define TARGET_IS_BIG_ENDIAN_P - -#define TARGET_PAGE_SIZE 4096 - -#define DEFAULT_ARCH bfd_arch_m88k -#define DEFAULT_MID M_88K_OPENBSD - -/* Do not "beautify" the CONCAT* macro args. Traditional C will not - remove whitespace added here, and thus will fail to concatenate - the tokens. */ -#define MY(OP) CONCAT2 (m88k_aout_obsd_,OP) -#define TARGETNAME "a.out-m88k-openbsd" - -#include "netbsd.h" diff -Nru gdb-8.1/bfd/mach-o.c gdb-8.2/bfd/mach-o.c --- gdb-8.1/bfd/mach-o.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/mach-o.c 2018-09-05 07:44:28.000000000 +0000 @@ -592,6 +592,124 @@ return TRUE; } +static const char * +cputype (unsigned long value) +{ + switch (value) + { + case BFD_MACH_O_CPU_TYPE_VAX: return "VAX"; + case BFD_MACH_O_CPU_TYPE_MC680x0: return "MC68k"; + case BFD_MACH_O_CPU_TYPE_I386: return "I386"; + case BFD_MACH_O_CPU_TYPE_MIPS: return "MIPS"; + case BFD_MACH_O_CPU_TYPE_MC98000: return "MC98k"; + case BFD_MACH_O_CPU_TYPE_HPPA: return "HPPA"; + case BFD_MACH_O_CPU_TYPE_ARM: return "ARM"; + case BFD_MACH_O_CPU_TYPE_MC88000: return "MC88K"; + case BFD_MACH_O_CPU_TYPE_SPARC: return "SPARC"; + case BFD_MACH_O_CPU_TYPE_I860: return "I860"; + case BFD_MACH_O_CPU_TYPE_ALPHA: return "ALPHA"; + case BFD_MACH_O_CPU_TYPE_POWERPC: return "PPC"; + case BFD_MACH_O_CPU_TYPE_POWERPC_64: return "PPC64"; + case BFD_MACH_O_CPU_TYPE_X86_64: return "X86_64"; + case BFD_MACH_O_CPU_TYPE_ARM64: return "ARM64"; + default: return _(""); + } +} + +static const char * +cpusubtype (unsigned long cputype, unsigned long cpusubtype) +{ + static char buffer[128]; + + buffer[0] = 0; + switch (cpusubtype & BFD_MACH_O_CPU_SUBTYPE_MASK) + { + case 0: + break; + case BFD_MACH_O_CPU_SUBTYPE_LIB64: + sprintf (buffer, " (LIB64)"); break; + default: + sprintf (buffer, _("")); break; + } + + cpusubtype &= ~ BFD_MACH_O_CPU_SUBTYPE_MASK; + + switch (cputype) + { + case BFD_MACH_O_CPU_TYPE_X86_64: + case BFD_MACH_O_CPU_TYPE_I386: + switch (cpusubtype) + { + case BFD_MACH_O_CPU_SUBTYPE_X86_ALL: + return strcat (buffer, " (X86_ALL)"); + default: + break; + } + break; + + case BFD_MACH_O_CPU_TYPE_ARM: + switch (cpusubtype) + { + case BFD_MACH_O_CPU_SUBTYPE_ARM_ALL: + return strcat (buffer, " (ARM_ALL)"); + case BFD_MACH_O_CPU_SUBTYPE_ARM_V4T: + return strcat (buffer, " (ARM_V4T)"); + case BFD_MACH_O_CPU_SUBTYPE_ARM_V6: + return strcat (buffer, " (ARM_V6)"); + case BFD_MACH_O_CPU_SUBTYPE_ARM_V5TEJ: + return strcat (buffer, " (ARM_V5TEJ)"); + case BFD_MACH_O_CPU_SUBTYPE_ARM_XSCALE: + return strcat (buffer, " (ARM_XSCALE)"); + case BFD_MACH_O_CPU_SUBTYPE_ARM_V7: + return strcat (buffer, " (ARM_V7)"); + default: + break; + } + break; + + case BFD_MACH_O_CPU_TYPE_ARM64: + switch (cpusubtype) + { + case BFD_MACH_O_CPU_SUBTYPE_ARM64_ALL: + return strcat (buffer, " (ARM64_ALL)"); + case BFD_MACH_O_CPU_SUBTYPE_ARM64_V8: + return strcat (buffer, " (ARM64_V8)"); + default: + break; + } + break; + + default: + break; + } + + if (cpusubtype != 0) + return strcat (buffer, _(" ()")); + + return buffer; +} + +bfd_boolean +bfd_mach_o_bfd_print_private_bfd_data (bfd *abfd, void *ptr) +{ + FILE * file = (FILE *) ptr; + bfd_mach_o_data_struct *mdata = bfd_mach_o_get_data (abfd); + + fprintf (file, _(" MACH-O header:\n")); + fprintf (file, _(" magic: %#lx\n"), (long) mdata->header.magic); + fprintf (file, _(" cputype: %#lx (%s)\n"), (long) mdata->header.cputype, + cputype (mdata->header.cputype)); + fprintf (file, _(" cpusubtype: %#lx%s\n"), (long) mdata->header.cpusubtype, + cpusubtype (mdata->header.cputype, mdata->header.cpusubtype)); + fprintf (file, _(" filetype: %#lx\n"), (long) mdata->header.filetype); + fprintf (file, _(" ncmds: %#lx\n"), (long) mdata->header.ncmds); + fprintf (file, _(" sizeocmds: %#lx\n"), (long) mdata->header.sizeofcmds); + fprintf (file, _(" flags: %#lx\n"), (long) mdata->header.flags); + fprintf (file, _(" version: %x\n"), mdata->header.version); + + return TRUE; +} + /* Copy any private info we understand from the input bfd to the output bfd. */ @@ -615,6 +733,21 @@ /* Copy header flags. */ omdata->header.flags = imdata->header.flags; + /* PR 23299. Copy the cputype. */ + if (imdata->header.cputype != omdata->header.cputype) + { + if (omdata->header.cputype == 0) + omdata->header.cputype = imdata->header.cputype; + else if (imdata->header.cputype != 0) + /* Urg - what has happened ? */ + _bfd_error_handler (_("incompatible cputypes in mach-o files: %ld vs %ld"), + (long) imdata->header.cputype, + (long) omdata->header.cputype); + } + + /* Copy the cpusubtype. */ + omdata->header.cpusubtype = imdata->header.cpusubtype; + /* Copy commands. */ for (icmd = imdata->first_command; icmd != NULL; icmd = icmd->next) { @@ -1040,16 +1173,10 @@ break; } break; - case BFD_MACH_O_CPU_TYPE_MC88000: - *type = bfd_arch_m88k; - break; case BFD_MACH_O_CPU_TYPE_SPARC: *type = bfd_arch_sparc; *subtype = bfd_mach_sparc; break; - case BFD_MACH_O_CPU_TYPE_I860: - *type = bfd_arch_i860; - break; case BFD_MACH_O_CPU_TYPE_ALPHA: *type = bfd_arch_alpha; break; @@ -1301,7 +1428,7 @@ void bfd_mach_o_swap_in_non_scattered_reloc (bfd *abfd, bfd_mach_o_reloc_info *rel, - unsigned char *fields) + unsigned char *fields) { unsigned char info = fields[3]; @@ -1617,7 +1744,7 @@ static void bfd_mach_o_swap_out_non_scattered_reloc (bfd *abfd, unsigned char *fields, - bfd_mach_o_reloc_info *rel) + bfd_mach_o_reloc_info *rel) { unsigned char info = 0; @@ -2817,8 +2944,9 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("section address (%#Lx) below start of segment (%#Lx)"), - s->addr, vma); + (_("section address (%#" PRIx64 ") " + "below start of segment (%#" PRIx64 ")"), + (uint64_t) s->addr, (uint64_t) vma); return FALSE; } @@ -4759,7 +4887,7 @@ break; default: command->len = 0; - _bfd_error_handler (_("%B: unknown load command %#x"), + _bfd_error_handler (_("%pB: unknown load command %#x"), abfd, command->type); return FALSE; } @@ -5404,6 +5532,13 @@ return NULL; } +static bfd_boolean +bfd_mach_o_fat_close_and_cleanup (bfd *abfd) +{ + _bfd_unlink_from_archive_parent (abfd); + return TRUE; +} + int bfd_mach_o_lookup_command (bfd *abfd, bfd_mach_o_load_command_type type, @@ -5437,16 +5572,12 @@ { case BFD_MACH_O_CPU_TYPE_MC680x0: return 0x04000000; - case BFD_MACH_O_CPU_TYPE_MC88000: - return 0xffffe000; case BFD_MACH_O_CPU_TYPE_POWERPC: return 0xc0000000; case BFD_MACH_O_CPU_TYPE_I386: return 0xc0000000; case BFD_MACH_O_CPU_TYPE_SPARC: return 0xf0000000; - case BFD_MACH_O_CPU_TYPE_I860: - return 0; case BFD_MACH_O_CPU_TYPE_HPPA: return 0xc0000000 - 0x04000000; default: @@ -5839,7 +5970,8 @@ return _bfd_generic_close_and_cleanup (abfd); } -bfd_boolean bfd_mach_o_free_cached_info (bfd *abfd) +bfd_boolean +bfd_mach_o_free_cached_info (bfd *abfd) { bfd_mach_o_data_struct *mdata = bfd_mach_o_get_data (abfd); asection *asect; @@ -5901,7 +6033,7 @@ /* Not yet handled: creating an archive. */ #define bfd_mach_o_mkarchive _bfd_noarchive_mkarchive -#define bfd_mach_o_close_and_cleanup bfd_true +#define bfd_mach_o_close_and_cleanup bfd_mach_o_fat_close_and_cleanup /* Not used. */ #define bfd_mach_o_generic_stat_arch_elt bfd_mach_o_fat_stat_arch_elt diff -Nru gdb-8.1/bfd/mach-o.h gdb-8.2/bfd/mach-o.h --- gdb-8.1/bfd/mach-o.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/mach-o.h 2018-09-05 07:27:13.000000000 +0000 @@ -659,6 +659,7 @@ bfd *, asection *); bfd_boolean bfd_mach_o_bfd_copy_private_header_data (bfd *, bfd *); bfd_boolean bfd_mach_o_bfd_set_private_flags (bfd *, flagword); +bfd_boolean bfd_mach_o_bfd_print_private_bfd_data (bfd *, void *); long bfd_mach_o_get_symtab_upper_bound (bfd *); long bfd_mach_o_canonicalize_symtab (bfd *, asymbol **); long bfd_mach_o_get_synthetic_symtab (bfd *, long, asymbol **, long, diff -Nru gdb-8.1/bfd/mach-o-target.c gdb-8.2/bfd/mach-o-target.c --- gdb-8.1/bfd/mach-o-target.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/mach-o-target.c 2018-09-05 07:27:13.000000000 +0000 @@ -26,8 +26,8 @@ #define bfd_mach_o_bfd_free_cached_info _bfd_generic_bfd_free_cached_info #define bfd_mach_o_get_section_contents_in_window _bfd_generic_get_section_contents_in_window -#define bfd_mach_o_bfd_print_private_bfd_data _bfd_generic_bfd_print_private_bfd_data -#define bfd_mach_o_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) +#define bfd_mach_o_bfd_print_private_bfd_data bfd_mach_o_bfd_print_private_bfd_data +#define bfd_mach_o_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false #define bfd_mach_o_bfd_is_local_label_name bfd_generic_is_local_label_name #define bfd_mach_o_get_lineno _bfd_nosymbols_get_lineno #define bfd_mach_o_find_inliner_info _bfd_nosymbols_find_inliner_info @@ -55,6 +55,7 @@ #define bfd_mach_o_bfd_discard_group bfd_generic_discard_group #define bfd_mach_o_section_already_linked _bfd_generic_section_already_linked #define bfd_mach_o_bfd_define_common_symbol bfd_generic_define_common_symbol +#define bfd_mach_o_bfd_link_hide_symbol _bfd_generic_link_hide_symbol #define bfd_mach_o_bfd_define_start_stop bfd_generic_define_start_stop #define bfd_mach_o_bfd_copy_private_bfd_data _bfd_generic_bfd_copy_private_bfd_data #define bfd_mach_o_core_file_matches_executable_p generic_core_file_matches_executable_p @@ -165,13 +166,13 @@ #endif }, { /* bfd_set_format. */ - bfd_false, + _bfd_bool_bfd_false_error, bfd_mach_o_mkobject, _bfd_generic_mkarchive, bfd_mach_o_mkobject, }, { /* bfd_write_contents. */ - bfd_false, + _bfd_bool_bfd_false_error, bfd_mach_o_write_contents, _bfd_write_archive_contents, bfd_mach_o_write_contents, diff -Nru gdb-8.1/bfd/mach-o-x86-64.c gdb-8.2/bfd/mach-o-x86-64.c --- gdb-8.1/bfd/mach-o-x86-64.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/mach-o-x86-64.c 2018-09-05 07:27:13.000000000 +0000 @@ -117,6 +117,11 @@ complain_overflow_bitfield, NULL, "BRANCH8", FALSE, 0xff, 0xff, TRUE), + /* 12 */ + HOWTO(BFD_RELOC_MACH_O_X86_64_TLV, 0, 2, 32, TRUE, 0, + complain_overflow_bitfield, + NULL, "TLV", + FALSE, 0xffffffff, 0xffffffff, TRUE), }; static bfd_boolean @@ -220,6 +225,13 @@ return TRUE; } break; + case BFD_MACH_O_X86_64_RELOC_TLV: + if (reloc.r_length == 2 && reloc.r_pcrel && reloc.r_extern) + { + res->howto = &x86_64_howto_table[12]; + return TRUE; + } + break; default: return FALSE; } @@ -288,6 +300,11 @@ rinfo->r_pcrel = 1; rinfo->r_length = 2; break; + case BFD_RELOC_MACH_O_X86_64_TLV: + rinfo->r_type = BFD_MACH_O_X86_64_RELOC_TLV; + rinfo->r_pcrel = 1; + rinfo->r_length = 2; + break; default: return FALSE; } diff -Nru gdb-8.1/bfd/Makefile.am gdb-8.2/bfd/Makefile.am --- gdb-8.1/bfd/Makefile.am 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/Makefile.am 2018-09-05 07:44:28.000000000 +0000 @@ -17,7 +17,7 @@ # . # -AUTOMAKE_OPTIONS = 1.11 no-dist foreign +AUTOMAKE_OPTIONS = no-dist foreign ACLOCAL_AMFLAGS = -I . -I .. -I ../config INCDIR = $(srcdir)/../include @@ -32,7 +32,8 @@ bfdlibdir = @bfdlibdir@ bfdincludedir = @bfdincludedir@ bfdlib_LTLIBRARIES = libbfd.la -bfdinclude_HEADERS = $(BFD_H) $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h $(INCDIR)/bfdlink.h +bfdinclude_HEADERS = $(BFD_H) $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \ + $(INCDIR)/bfdlink.h $(INCDIR)/diagnostics.h else !INSTALL_LIBBFD # Empty these so that the respective installation directories will not be created. bfdlibdir = @@ -107,15 +108,11 @@ cpu-frv.lo \ cpu-ft32.lo \ cpu-h8300.lo \ - cpu-h8500.lo \ cpu-hppa.lo \ - cpu-i370.lo \ cpu-i386.lo \ cpu-iamcu.lo \ cpu-l1om.lo \ cpu-k1om.lo \ - cpu-i860.lo \ - cpu-i960.lo \ cpu-ia64.lo \ cpu-ip2k.lo \ cpu-iq2000.lo \ @@ -127,9 +124,9 @@ cpu-m68hc11.lo \ cpu-m68hc12.lo \ cpu-m9s12x.lo \ + cpu-s12z.lo \ cpu-m9s12xg.lo \ cpu-m68k.lo \ - cpu-m88k.lo \ cpu-mcore.lo \ cpu-mep.lo \ cpu-metag.lo \ @@ -140,6 +137,7 @@ cpu-msp430.lo \ cpu-mt.lo \ cpu-nds32.lo \ + cpu-nfp.lo \ cpu-nios2.lo \ cpu-ns32k.lo \ cpu-or1k.lo \ @@ -168,9 +166,7 @@ cpu-v850_rh850.lo \ cpu-vax.lo \ cpu-visium.lo \ - cpu-w65.lo \ cpu-wasm32.lo \ - cpu-we32k.lo \ cpu-xc16x.lo \ cpu-xgate.lo \ cpu-xstormy16.lo \ @@ -197,15 +193,11 @@ cpu-frv.c \ cpu-ft32.c \ cpu-h8300.c \ - cpu-h8500.c \ cpu-hppa.c \ - cpu-i370.c \ cpu-i386.c \ cpu-iamcu.c \ cpu-l1om.c \ cpu-k1om.c \ - cpu-i860.c \ - cpu-i960.c \ cpu-ia64.c \ cpu-ip2k.c \ cpu-iq2000.c \ @@ -217,9 +209,9 @@ cpu-m68hc11.c \ cpu-m68hc12.c \ cpu-m9s12x.c \ + cpu-s12z.c \ cpu-m9s12xg.c \ cpu-m68k.c \ - cpu-m88k.c \ cpu-mcore.c \ cpu-mep.c \ cpu-metag.c \ @@ -230,6 +222,7 @@ cpu-msp430.c \ cpu-mt.c \ cpu-nds32.c \ + cpu-nfp.c \ cpu-ns32k.c \ cpu-nios2.c \ cpu-or1k.c \ @@ -259,8 +252,6 @@ cpu-vax.c \ cpu-visium.c \ cpu-wasm32.c \ - cpu-w65.c \ - cpu-we32k.c \ cpu-xc16x.c \ cpu-xgate.c \ cpu-xstormy16.c \ @@ -271,42 +262,21 @@ # The .o files needed by all of the 32 bit vectors that are configured into # target_vector in targets.c if configured with --enable-targets=all. BFD32_BACKENDS = \ - aout-adobe.lo \ - aout-arm.lo \ aout-cris.lo \ aout-ns32k.lo \ - aout-sparcle.lo \ aout-tic30.lo \ - aout0.lo \ aout32.lo \ - armnetbsd.lo \ - bout.lo \ cf-i386lynx.lo \ - cf-sparclynx.lo \ - coff-apollo.lo \ - coff-arm.lo \ - coff-aux.lo \ coff-go32.lo \ - coff-h8300.lo \ - coff-h8500.lo \ coff-i386.lo \ - coff-i860.lo \ - coff-i960.lo \ - coff-m68k.lo \ - coff-m88k.lo \ coff-mips.lo \ coff-rs6000.lo \ coff-sh.lo \ - coff-sparc.lo \ coff-stgo32.lo \ - coff-svm68k.lo \ coff-tic30.lo \ coff-tic4x.lo \ coff-tic54x.lo \ coff-tic80.lo \ - coff-u68k.lo \ - coff-w65.lo \ - coff-we32k.lo \ coff-z80.lo \ coff-z8k.lo \ coffgen.lo \ @@ -344,11 +314,8 @@ elf32-gen.lo \ elf32-h8300.lo \ elf32-hppa.lo \ - elf32-i370.lo \ elf32-i386.lo \ elfxx-x86.lo \ - elf32-i860.lo \ - elf32-i960.lo \ elf32-ip2k.lo \ elf32-iq2000.lo \ elf32-lm32.lo \ @@ -358,7 +325,7 @@ elf32-m68hc12.lo \ elf32-m68hc1x.lo \ elf32-m68k.lo \ - elf32-m88k.lo \ + elf32-s12z.lo \ elf32-mcore.lo \ elf32-mep.lo \ elf32-metag.lo \ @@ -375,10 +342,7 @@ elf32-rl78.lo \ elf32-rx.lo \ elf32-s390.lo \ - elf32-sh-symbian.lo \ elf32-sh.lo \ - elf32-sh64-com.lo \ - elf32-sh64.lo \ elf32-sparc.lo \ elf32-spu.lo \ elf32-tic6x.lo \ @@ -396,45 +360,20 @@ elflink.lo \ elfxx-sparc.lo \ elfxx-tilegx.lo \ - epoc-pe-arm.lo \ - epoc-pei-arm.lo \ - hp300bsd.lo \ - hp300hpux.lo \ i386aout.lo \ i386bsd.lo \ - i386dynix.lo \ - i386freebsd.lo \ - i386linux.lo \ i386lynx.lo \ - i386mach3.lo \ i386msdos.lo \ - i386netbsd.lo \ - i386os9k.lo \ - ieee.lo \ - m68k4knetbsd.lo \ - m68klinux.lo \ - m68knetbsd.lo \ - m88kmach3.lo \ - m88kopenbsd.lo \ mach-o.lo \ mach-o-i386.lo \ mach-o-arm.lo \ - mipsbsd.lo \ - newsos3.lo \ - nlm.lo \ - nlm32-i386.lo \ - nlm32-ppc.lo \ - nlm32-sparc.lo \ - nlm32.lo \ ns32knetbsd.lo \ - oasys.lo \ pc532-mach.lo \ pdp11.lo \ pe-arm-wince.lo \ pe-arm.lo \ pe-i386.lo \ pe-mcore.lo \ - pe-mips.lo \ pe-ppc.lo \ pe-sh.lo \ pef.lo \ @@ -442,23 +381,15 @@ pei-arm.lo \ pei-i386.lo \ pei-mcore.lo \ - pei-mips.lo \ pei-ppc.lo \ pei-sh.lo \ peigen.lo \ plugin.lo \ ppcboot.lo \ reloc16.lo \ - riscix.lo \ som.lo \ - sparclinux.lo \ - sparclynx.lo \ - sparcnetbsd.lo \ - sunos.lo \ vax1knetbsd.lo \ - vaxbsd.lo \ vaxnetbsd.lo \ - versados.lo \ vms-lib.lo \ vms-misc.lo \ wasm-module.lo \ @@ -468,42 +399,21 @@ xtensa-modules.lo BFD32_BACKENDS_CFILES = \ - aout-adobe.c \ - aout-arm.c \ aout-cris.c \ aout-ns32k.c \ - aout-sparcle.c \ aout-tic30.c \ - aout0.c \ aout32.c \ - armnetbsd.c \ - bout.c \ cf-i386lynx.c \ - cf-sparclynx.c \ - coff-apollo.c \ - coff-arm.c \ - coff-aux.c \ coff-go32.c \ - coff-h8300.c \ - coff-h8500.c \ coff-i386.c \ - coff-i860.c \ - coff-i960.c \ - coff-m68k.c \ - coff-m88k.c \ coff-mips.c \ coff-rs6000.c \ coff-sh.c \ - coff-sparc.c \ coff-stgo32.c \ - coff-svm68k.c \ coff-tic30.c \ coff-tic4x.c \ coff-tic54x.c \ coff-tic80.c \ - coff-u68k.c \ - coff-w65.c \ - coff-we32k.c \ coff-z80.c \ coff-z8k.c \ coffgen.c \ @@ -541,11 +451,8 @@ elf32-gen.c \ elf32-h8300.c \ elf32-hppa.c \ - elf32-i370.c \ elf32-i386.c \ elfxx-x86.c \ - elf32-i860.c \ - elf32-i960.c \ elf32-ip2k.c \ elf32-iq2000.c \ elf32-lm32.c \ @@ -555,7 +462,7 @@ elf32-m68hc12.c \ elf32-m68hc1x.c \ elf32-m68k.c \ - elf32-m88k.c \ + elf32-s12z.c \ elf32-mcore.c \ elf32-mep.c \ elf32-metag.c \ @@ -572,10 +479,7 @@ elf32-rl78.c \ elf32-rx.c \ elf32-s390.c \ - elf32-sh-symbian.c \ elf32-sh.c \ - elf32-sh64-com.c \ - elf32-sh64.c \ elf32-sparc.c \ elf32-spu.c \ elf32-tic6x.c \ @@ -593,45 +497,20 @@ elflink.c \ elfxx-sparc.c \ elfxx-tilegx.c \ - epoc-pe-arm.c \ - epoc-pei-arm.c \ - hp300bsd.c \ - hp300hpux.c \ i386aout.c \ i386bsd.c \ - i386dynix.c \ - i386freebsd.c \ - i386linux.c \ i386lynx.c \ - i386mach3.c \ i386msdos.c \ - i386netbsd.c \ - i386os9k.c \ - ieee.c \ - m68k4knetbsd.c \ - m68klinux.c \ - m68knetbsd.c \ - m88kmach3.c \ - m88kopenbsd.c \ mach-o.c \ mach-o-i386.c \ mach-o-arm.c \ - mipsbsd.c \ - newsos3.c \ - nlm.c \ - nlm32-i386.c \ - nlm32-ppc.c \ - nlm32-sparc.c \ - nlm32.c \ ns32knetbsd.c \ - oasys.c \ pc532-mach.c \ pdp11.c \ pe-arm-wince.c \ pe-arm.c \ pe-i386.c \ pe-mcore.c \ - pe-mips.c \ pe-ppc.c \ pe-sh.c \ pef.c \ @@ -639,22 +518,14 @@ pei-arm.c \ pei-i386.c \ pei-mcore.c \ - pei-mips.c \ pei-ppc.c \ pei-sh.c \ plugin.c \ ppcboot.c \ reloc16.c \ - riscix.c \ som.c \ - sparclinux.c \ - sparclynx.c \ - sparcnetbsd.c \ - sunos.c \ vax1knetbsd.c \ - vaxbsd.c \ vaxnetbsd.c \ - versados.c \ vms-lib.c \ vms-misc.c \ wasm-module.c \ @@ -677,7 +548,6 @@ coff-alpha.lo \ coff-x86_64.lo \ coff64-rs6000.lo \ - demo64.lo \ elf32-ia64.lo \ elf32-mips.lo \ elf32-score.lo \ @@ -692,12 +562,12 @@ elf64-mips.lo \ elfxx-mips.lo \ elf64-mmix.lo \ + elf64-nfp.lo \ elf64-ppc.lo \ elf32-riscv.lo \ elf64-riscv.lo \ elfxx-riscv.lo \ elf64-s390.lo \ - elf64-sh64.lo \ elf64-sparc.lo \ elf64-tilegx.lo \ elf64-x86-64.lo \ @@ -706,8 +576,6 @@ mach-o-aarch64.lo \ mach-o-x86-64.lo \ mmo.lo \ - nlm32-alpha.lo \ - nlm64.lo \ pe-x86_64.lo \ pei-ia64.lo \ pei-x86_64.lo \ @@ -721,7 +589,6 @@ coff-alpha.c \ coff-x86_64.c \ coff64-rs6000.c \ - demo64.c \ elf32-mips.c \ elf32-score.c \ elf32-score7.c \ @@ -731,9 +598,9 @@ elf64-ia64-vms.c \ elf64-mips.c \ elf64-mmix.c \ + elf64-nfp.c \ elf64-ppc.c \ elf64-s390.c \ - elf64-sh64.c \ elf64-sparc.c \ elf64-tilegx.c \ elf64-x86-64.c \ @@ -747,8 +614,6 @@ mach-o-aarch64.c \ mach-o-x86-64.c \ mmo.c \ - nlm32-alpha.c \ - nlm64.c \ pe-x86_64.c \ pei-ia64.c \ pei-x86_64.c \ @@ -793,7 +658,7 @@ TDEFAULTS = @tdefaults@ HAVEVECS = @havevecs@ -INCLUDES = @HDEFINES@ @COREFLAG@ @TDEFINES@ $(CSEARCH) $(CSWITCHES) \ +AM_CPPFLAGS += @HDEFINES@ @COREFLAG@ @TDEFINES@ $(CSEARCH) $(CSWITCHES) \ $(HAVEVECS) @INCINTL@ # C source files that correspond to .o's. @@ -815,13 +680,13 @@ ## This is a list of all .h files which are in the source tree. SOURCE_HFILES = \ - aout-target.h aoutf1.h aoutx.h coffcode.h coffswap.h ecoffswap.h \ + aout-target.h aoutx.h coffcode.h coffswap.h ecoffswap.h \ elf-bfd.h elf-hppa.h elf-linux-core.h elf32-hppa.h \ elf64-hppa.h elfcode.h elfcore.h \ - freebsd.h genlink.h go32stub.h \ - libaout.h libbfd.h libcoff.h libecoff.h libhppa.h libieee.h \ - libnlm.h liboasys.h libpei.h libxcoff.h mach-o.h \ - netbsd.h nlm-target.h nlmcode.h nlmswap.h ns32k.h \ + genlink.h go32stub.h \ + libaout.h libbfd.h libcoff.h libecoff.h libhppa.h \ + libpei.h libxcoff.h mach-o.h \ + netbsd.h ns32k.h \ pef.h pef-traceback.h peicode.h som.h version.h \ vms.h xsym.h diff -Nru gdb-8.1/bfd/Makefile.in gdb-8.2/bfd/Makefile.in --- gdb-8.1/bfd/Makefile.in 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/Makefile.in 2018-09-05 07:44:28.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1994-2017 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. @@ -36,23 +35,61 @@ VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ - test $$am__dry = yes; \ - } + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -75,12 +112,6 @@ @INSTALL_LIBBFD_FALSE@am__append_1 = -rpath $(rpath_bfdlibdir) @PLUGINS_TRUE@am__append_2 = $(INCDIR)/plugin-api.h subdir = . -DIST_COMMON = README ChangeLog $(srcdir)/Makefile.in \ - $(srcdir)/Makefile.am $(top_srcdir)/configure \ - $(am__configure_deps) $(srcdir)/config.in \ - $(srcdir)/../mkinstalldirs $(srcdir)/bfd-in2.h \ - $(top_srcdir)/po/Make-in $(srcdir)/../depcomp \ - $(am__bfdinclude_HEADERS_DIST) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/depstand.m4 \ @@ -101,6 +132,8 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ + $(am__configure_deps) $(am__bfdinclude_HEADERS_DIST) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs @@ -109,6 +142,10 @@ CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) ARFLAGS = cru +AM_V_AR = $(am__v_AR_@AM_V@) +am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) +am__v_AR_0 = @echo " AR " $@; +am__v_AR_1 = libbfd_a_AR = $(AR) $(ARFLAGS) libbfd_a_LIBADD = am_libbfd_a_OBJECTS = @@ -151,50 +188,101 @@ binary.lo ihex.lo srec.lo tekhex.lo verilog.lo am_libbfd_la_OBJECTS = $(am__objects_1) libbfd_la_OBJECTS = $(am_libbfd_la_OBJECTS) -libbfd_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libbfd_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libbfd_la_LDFLAGS) $(LDFLAGS) -o $@ @INSTALL_LIBBFD_FALSE@am_libbfd_la_rpath = @INSTALL_LIBBFD_TRUE@am_libbfd_la_rpath = -rpath $(bfdlibdir) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/../depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libbfd_a_SOURCES) $(libbfd_la_SOURCES) \ $(EXTRA_libbfd_la_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__bfdinclude_HEADERS_DIST = $(INCDIR)/plugin-api.h bfd.h \ - $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h $(INCDIR)/bfdlink.h + $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h $(INCDIR)/bfdlink.h \ + $(INCDIR)/diagnostics.h HEADERS = $(bfdinclude_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + cscope +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ + $(LISP)config.in +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +CSCOPE = cscope DIST_SUBDIRS = $(SUBDIRS) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -367,7 +455,7 @@ wordsize = @wordsize@ zlibdir = @zlibdir@ zlibinc = @zlibinc@ -AUTOMAKE_OPTIONS = 1.11 no-dist foreign +AUTOMAKE_OPTIONS = no-dist foreign ACLOCAL_AMFLAGS = -I . -I .. -I ../config INCDIR = $(srcdir)/../include CSEARCH = -I. -I$(srcdir) -I$(INCDIR) @@ -379,7 +467,8 @@ @INSTALL_LIBBFD_FALSE@bfdinclude_HEADERS = $(am__append_2) @INSTALL_LIBBFD_TRUE@bfdinclude_HEADERS = $(BFD_H) \ @INSTALL_LIBBFD_TRUE@ $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \ -@INSTALL_LIBBFD_TRUE@ $(INCDIR)/bfdlink.h $(am__append_2) +@INSTALL_LIBBFD_TRUE@ $(INCDIR)/bfdlink.h \ +@INSTALL_LIBBFD_TRUE@ $(INCDIR)/diagnostics.h $(am__append_2) @INSTALL_LIBBFD_FALSE@rpath_bfdlibdir = @bfdlibdir@ @INSTALL_LIBBFD_FALSE@noinst_LTLIBRARIES = libbfd.la @@ -389,7 +478,8 @@ ZLIB = @zlibdir@ -lz ZLIBINC = @zlibinc@ AM_CFLAGS = $(WARN_CFLAGS) $(ZLIBINC) -AM_CPPFLAGS = -DBINDIR='"$(bindir)"' +AM_CPPFLAGS = -DBINDIR='"$(bindir)"' @HDEFINES@ @COREFLAG@ @TDEFINES@ \ + $(CSEARCH) $(CSWITCHES) $(HAVEVECS) @INCINTL@ @PLUGINS_TRUE@LIBDL = @lt_cv_dlopen_libs@ # bfd.h goes here, for now @@ -440,15 +530,11 @@ cpu-frv.lo \ cpu-ft32.lo \ cpu-h8300.lo \ - cpu-h8500.lo \ cpu-hppa.lo \ - cpu-i370.lo \ cpu-i386.lo \ cpu-iamcu.lo \ cpu-l1om.lo \ cpu-k1om.lo \ - cpu-i860.lo \ - cpu-i960.lo \ cpu-ia64.lo \ cpu-ip2k.lo \ cpu-iq2000.lo \ @@ -460,9 +546,9 @@ cpu-m68hc11.lo \ cpu-m68hc12.lo \ cpu-m9s12x.lo \ + cpu-s12z.lo \ cpu-m9s12xg.lo \ cpu-m68k.lo \ - cpu-m88k.lo \ cpu-mcore.lo \ cpu-mep.lo \ cpu-metag.lo \ @@ -473,6 +559,7 @@ cpu-msp430.lo \ cpu-mt.lo \ cpu-nds32.lo \ + cpu-nfp.lo \ cpu-nios2.lo \ cpu-ns32k.lo \ cpu-or1k.lo \ @@ -501,9 +588,7 @@ cpu-v850_rh850.lo \ cpu-vax.lo \ cpu-visium.lo \ - cpu-w65.lo \ cpu-wasm32.lo \ - cpu-we32k.lo \ cpu-xc16x.lo \ cpu-xgate.lo \ cpu-xstormy16.lo \ @@ -530,15 +615,11 @@ cpu-frv.c \ cpu-ft32.c \ cpu-h8300.c \ - cpu-h8500.c \ cpu-hppa.c \ - cpu-i370.c \ cpu-i386.c \ cpu-iamcu.c \ cpu-l1om.c \ cpu-k1om.c \ - cpu-i860.c \ - cpu-i960.c \ cpu-ia64.c \ cpu-ip2k.c \ cpu-iq2000.c \ @@ -550,9 +631,9 @@ cpu-m68hc11.c \ cpu-m68hc12.c \ cpu-m9s12x.c \ + cpu-s12z.c \ cpu-m9s12xg.c \ cpu-m68k.c \ - cpu-m88k.c \ cpu-mcore.c \ cpu-mep.c \ cpu-metag.c \ @@ -563,6 +644,7 @@ cpu-msp430.c \ cpu-mt.c \ cpu-nds32.c \ + cpu-nfp.c \ cpu-ns32k.c \ cpu-nios2.c \ cpu-or1k.c \ @@ -592,8 +674,6 @@ cpu-vax.c \ cpu-visium.c \ cpu-wasm32.c \ - cpu-w65.c \ - cpu-we32k.c \ cpu-xc16x.c \ cpu-xgate.c \ cpu-xstormy16.c \ @@ -605,42 +685,21 @@ # The .o files needed by all of the 32 bit vectors that are configured into # target_vector in targets.c if configured with --enable-targets=all. BFD32_BACKENDS = \ - aout-adobe.lo \ - aout-arm.lo \ aout-cris.lo \ aout-ns32k.lo \ - aout-sparcle.lo \ aout-tic30.lo \ - aout0.lo \ aout32.lo \ - armnetbsd.lo \ - bout.lo \ cf-i386lynx.lo \ - cf-sparclynx.lo \ - coff-apollo.lo \ - coff-arm.lo \ - coff-aux.lo \ coff-go32.lo \ - coff-h8300.lo \ - coff-h8500.lo \ coff-i386.lo \ - coff-i860.lo \ - coff-i960.lo \ - coff-m68k.lo \ - coff-m88k.lo \ coff-mips.lo \ coff-rs6000.lo \ coff-sh.lo \ - coff-sparc.lo \ coff-stgo32.lo \ - coff-svm68k.lo \ coff-tic30.lo \ coff-tic4x.lo \ coff-tic54x.lo \ coff-tic80.lo \ - coff-u68k.lo \ - coff-w65.lo \ - coff-we32k.lo \ coff-z80.lo \ coff-z8k.lo \ coffgen.lo \ @@ -678,11 +737,8 @@ elf32-gen.lo \ elf32-h8300.lo \ elf32-hppa.lo \ - elf32-i370.lo \ elf32-i386.lo \ elfxx-x86.lo \ - elf32-i860.lo \ - elf32-i960.lo \ elf32-ip2k.lo \ elf32-iq2000.lo \ elf32-lm32.lo \ @@ -692,7 +748,7 @@ elf32-m68hc12.lo \ elf32-m68hc1x.lo \ elf32-m68k.lo \ - elf32-m88k.lo \ + elf32-s12z.lo \ elf32-mcore.lo \ elf32-mep.lo \ elf32-metag.lo \ @@ -709,10 +765,7 @@ elf32-rl78.lo \ elf32-rx.lo \ elf32-s390.lo \ - elf32-sh-symbian.lo \ elf32-sh.lo \ - elf32-sh64-com.lo \ - elf32-sh64.lo \ elf32-sparc.lo \ elf32-spu.lo \ elf32-tic6x.lo \ @@ -730,45 +783,20 @@ elflink.lo \ elfxx-sparc.lo \ elfxx-tilegx.lo \ - epoc-pe-arm.lo \ - epoc-pei-arm.lo \ - hp300bsd.lo \ - hp300hpux.lo \ i386aout.lo \ i386bsd.lo \ - i386dynix.lo \ - i386freebsd.lo \ - i386linux.lo \ i386lynx.lo \ - i386mach3.lo \ i386msdos.lo \ - i386netbsd.lo \ - i386os9k.lo \ - ieee.lo \ - m68k4knetbsd.lo \ - m68klinux.lo \ - m68knetbsd.lo \ - m88kmach3.lo \ - m88kopenbsd.lo \ mach-o.lo \ mach-o-i386.lo \ mach-o-arm.lo \ - mipsbsd.lo \ - newsos3.lo \ - nlm.lo \ - nlm32-i386.lo \ - nlm32-ppc.lo \ - nlm32-sparc.lo \ - nlm32.lo \ ns32knetbsd.lo \ - oasys.lo \ pc532-mach.lo \ pdp11.lo \ pe-arm-wince.lo \ pe-arm.lo \ pe-i386.lo \ pe-mcore.lo \ - pe-mips.lo \ pe-ppc.lo \ pe-sh.lo \ pef.lo \ @@ -776,23 +804,15 @@ pei-arm.lo \ pei-i386.lo \ pei-mcore.lo \ - pei-mips.lo \ pei-ppc.lo \ pei-sh.lo \ peigen.lo \ plugin.lo \ ppcboot.lo \ reloc16.lo \ - riscix.lo \ som.lo \ - sparclinux.lo \ - sparclynx.lo \ - sparcnetbsd.lo \ - sunos.lo \ vax1knetbsd.lo \ - vaxbsd.lo \ vaxnetbsd.lo \ - versados.lo \ vms-lib.lo \ vms-misc.lo \ wasm-module.lo \ @@ -802,42 +822,21 @@ xtensa-modules.lo BFD32_BACKENDS_CFILES = \ - aout-adobe.c \ - aout-arm.c \ aout-cris.c \ aout-ns32k.c \ - aout-sparcle.c \ aout-tic30.c \ - aout0.c \ aout32.c \ - armnetbsd.c \ - bout.c \ cf-i386lynx.c \ - cf-sparclynx.c \ - coff-apollo.c \ - coff-arm.c \ - coff-aux.c \ coff-go32.c \ - coff-h8300.c \ - coff-h8500.c \ coff-i386.c \ - coff-i860.c \ - coff-i960.c \ - coff-m68k.c \ - coff-m88k.c \ coff-mips.c \ coff-rs6000.c \ coff-sh.c \ - coff-sparc.c \ coff-stgo32.c \ - coff-svm68k.c \ coff-tic30.c \ coff-tic4x.c \ coff-tic54x.c \ coff-tic80.c \ - coff-u68k.c \ - coff-w65.c \ - coff-we32k.c \ coff-z80.c \ coff-z8k.c \ coffgen.c \ @@ -875,11 +874,8 @@ elf32-gen.c \ elf32-h8300.c \ elf32-hppa.c \ - elf32-i370.c \ elf32-i386.c \ elfxx-x86.c \ - elf32-i860.c \ - elf32-i960.c \ elf32-ip2k.c \ elf32-iq2000.c \ elf32-lm32.c \ @@ -889,7 +885,7 @@ elf32-m68hc12.c \ elf32-m68hc1x.c \ elf32-m68k.c \ - elf32-m88k.c \ + elf32-s12z.c \ elf32-mcore.c \ elf32-mep.c \ elf32-metag.c \ @@ -906,10 +902,7 @@ elf32-rl78.c \ elf32-rx.c \ elf32-s390.c \ - elf32-sh-symbian.c \ elf32-sh.c \ - elf32-sh64-com.c \ - elf32-sh64.c \ elf32-sparc.c \ elf32-spu.c \ elf32-tic6x.c \ @@ -927,45 +920,20 @@ elflink.c \ elfxx-sparc.c \ elfxx-tilegx.c \ - epoc-pe-arm.c \ - epoc-pei-arm.c \ - hp300bsd.c \ - hp300hpux.c \ i386aout.c \ i386bsd.c \ - i386dynix.c \ - i386freebsd.c \ - i386linux.c \ i386lynx.c \ - i386mach3.c \ i386msdos.c \ - i386netbsd.c \ - i386os9k.c \ - ieee.c \ - m68k4knetbsd.c \ - m68klinux.c \ - m68knetbsd.c \ - m88kmach3.c \ - m88kopenbsd.c \ mach-o.c \ mach-o-i386.c \ mach-o-arm.c \ - mipsbsd.c \ - newsos3.c \ - nlm.c \ - nlm32-i386.c \ - nlm32-ppc.c \ - nlm32-sparc.c \ - nlm32.c \ ns32knetbsd.c \ - oasys.c \ pc532-mach.c \ pdp11.c \ pe-arm-wince.c \ pe-arm.c \ pe-i386.c \ pe-mcore.c \ - pe-mips.c \ pe-ppc.c \ pe-sh.c \ pef.c \ @@ -973,22 +941,14 @@ pei-arm.c \ pei-i386.c \ pei-mcore.c \ - pei-mips.c \ pei-ppc.c \ pei-sh.c \ plugin.c \ ppcboot.c \ reloc16.c \ - riscix.c \ som.c \ - sparclinux.c \ - sparclynx.c \ - sparcnetbsd.c \ - sunos.c \ vax1knetbsd.c \ - vaxbsd.c \ vaxnetbsd.c \ - versados.c \ vms-lib.c \ vms-misc.c \ wasm-module.c \ @@ -1012,7 +972,6 @@ coff-alpha.lo \ coff-x86_64.lo \ coff64-rs6000.lo \ - demo64.lo \ elf32-ia64.lo \ elf32-mips.lo \ elf32-score.lo \ @@ -1027,12 +986,12 @@ elf64-mips.lo \ elfxx-mips.lo \ elf64-mmix.lo \ + elf64-nfp.lo \ elf64-ppc.lo \ elf32-riscv.lo \ elf64-riscv.lo \ elfxx-riscv.lo \ elf64-s390.lo \ - elf64-sh64.lo \ elf64-sparc.lo \ elf64-tilegx.lo \ elf64-x86-64.lo \ @@ -1041,8 +1000,6 @@ mach-o-aarch64.lo \ mach-o-x86-64.lo \ mmo.lo \ - nlm32-alpha.lo \ - nlm64.lo \ pe-x86_64.lo \ pei-ia64.lo \ pei-x86_64.lo \ @@ -1056,7 +1013,6 @@ coff-alpha.c \ coff-x86_64.c \ coff64-rs6000.c \ - demo64.c \ elf32-mips.c \ elf32-score.c \ elf32-score7.c \ @@ -1066,9 +1022,9 @@ elf64-ia64-vms.c \ elf64-mips.c \ elf64-mmix.c \ + elf64-nfp.c \ elf64-ppc.c \ elf64-s390.c \ - elf64-sh64.c \ elf64-sparc.c \ elf64-tilegx.c \ elf64-x86-64.c \ @@ -1082,8 +1038,6 @@ mach-o-aarch64.c \ mach-o-x86-64.c \ mmo.c \ - nlm32-alpha.c \ - nlm64.c \ pe-x86_64.c \ pei-ia64.c \ pei-x86_64.c \ @@ -1129,9 +1083,6 @@ BFD_MACHINES = @bfd_machines@ TDEFAULTS = @tdefaults@ HAVEVECS = @havevecs@ -INCLUDES = @HDEFINES@ @COREFLAG@ @TDEFINES@ $(CSEARCH) $(CSWITCHES) \ - $(HAVEVECS) @INCINTL@ - # C source files that correspond to .o's. SOURCE_CFILES = \ @@ -1150,13 +1101,13 @@ CFILES = $(SOURCE_CFILES) $(BUILD_CFILES) SOURCE_HFILES = \ - aout-target.h aoutf1.h aoutx.h coffcode.h coffswap.h ecoffswap.h \ + aout-target.h aoutx.h coffcode.h coffswap.h ecoffswap.h \ elf-bfd.h elf-hppa.h elf-linux-core.h elf32-hppa.h \ elf64-hppa.h elfcode.h elfcore.h \ - freebsd.h genlink.h go32stub.h \ - libaout.h libbfd.h libcoff.h libecoff.h libhppa.h libieee.h \ - libnlm.h liboasys.h libpei.h libxcoff.h mach-o.h \ - netbsd.h nlm-target.h nlmcode.h nlmswap.h ns32k.h \ + genlink.h go32stub.h \ + libaout.h libbfd.h libcoff.h libecoff.h libhppa.h \ + libpei.h libxcoff.h mach-o.h \ + netbsd.h ns32k.h \ pef.h pef-traceback.h peicode.h som.h version.h \ vms.h xsym.h @@ -1229,7 +1180,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -1250,8 +1200,8 @@ $(am__aclocal_m4_deps): config.h: stamp-h1 - @if test ! -f $@; then rm -f stamp-h1; else :; fi - @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi + @test -f $@ || rm -f stamp-h1 + @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 stamp-h1: $(srcdir)/config.in $(top_builddir)/config.status @rm -f stamp-h1 @@ -1270,6 +1220,7 @@ clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + install-bfdlibLTLIBRARIES: $(bfdlib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(bfdlib_LTLIBRARIES)'; test -n "$(bfdlibdir)" || list=; \ @@ -1296,23 +1247,28 @@ clean-bfdlibLTLIBRARIES: -test -z "$(bfdlib_LTLIBRARIES)" || rm -f $(bfdlib_LTLIBRARIES) - @list='$(bfdlib_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(bfdlib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + libbfd.la: $(libbfd_la_OBJECTS) $(libbfd_la_DEPENDENCIES) $(EXTRA_libbfd_la_DEPENDENCIES) - $(libbfd_la_LINK) $(am_libbfd_la_rpath) $(libbfd_la_OBJECTS) $(libbfd_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(libbfd_la_LINK) $(am_libbfd_la_rpath) $(libbfd_la_OBJECTS) $(libbfd_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -1322,54 +1278,33 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aix386-core.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aix5ppc-core.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aout-adobe.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aout-arm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aout-cris.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aout-ns32k.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aout-sparcle.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aout-tic30.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aout0.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aout32.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aout64.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/archive.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/archive64.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/archures.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/armnetbsd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bfd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bfdio.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bfdwin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/binary.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bout.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cache.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cf-i386lynx.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cf-sparclynx.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cisco-core.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-alpha.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-apollo.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-arm.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-aux.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-bfd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-go32.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-h8300.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-h8500.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-i386.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-i860.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-i960.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-m68k.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-m88k.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-mips.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-rs6000.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-sh.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-sparc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-stgo32.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-svm68k.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-tic30.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-tic4x.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-tic54x.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-tic80.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-u68k.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-w65.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-we32k.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-x86_64.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-z80.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-z8k.Plo@am__quote@ @@ -1396,12 +1331,8 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-frv.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-ft32.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-h8300.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-h8500.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-hppa.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-i370.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-i386.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-i860.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-i960.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-ia64.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-iamcu.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-ip2k.Plo@am__quote@ @@ -1416,7 +1347,6 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-m68hc11.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-m68hc12.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-m68k.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-m88k.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-m9s12x.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-m9s12xg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-mcore.Plo@am__quote@ @@ -1429,6 +1359,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-msp430.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-mt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-nds32.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-nfp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-nios2.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-ns32k.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-or1k.Plo@am__quote@ @@ -1441,6 +1372,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-rl78.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-rs6000.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-rx.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-s12z.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-s390.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-score.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-sh.Plo@am__quote@ @@ -1457,16 +1389,13 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-v850_rh850.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-vax.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-visium.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-w65.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-wasm32.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-we32k.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-xc16x.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-xgate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-xstormy16.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-xtensa.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-z80.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-z8k.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/demo64.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf1.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf2.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecoff.Plo@am__quote@ @@ -1501,10 +1430,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-gen.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-h8300.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-hppa.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-i370.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-i386.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-i860.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-i960.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-ia64.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-ip2k.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-iq2000.Plo@am__quote@ @@ -1515,7 +1441,6 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-m68hc12.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-m68hc1x.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-m68k.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-m88k.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-mcore.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-mep.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-metag.Plo@am__quote@ @@ -1533,13 +1458,11 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-riscv.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-rl78.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-rx.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-s12z.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-s390.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-score.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-score7.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-sh-symbian.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-sh.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-sh64-com.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-sh64.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-sparc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-spu.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-tic6x.Plo@am__quote@ @@ -1562,10 +1485,10 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-ia64.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-mips.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-mmix.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-nfp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-ppc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-riscv.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-s390.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-sh64.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-sparc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-tilegx.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-x86-64.Plo@am__quote@ @@ -1579,54 +1502,28 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elfxx-sparc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elfxx-tilegx.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elfxx-x86.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/epoc-pe-arm.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/epoc-pei-arm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/format.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hp300bsd.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hp300hpux.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hpux-core.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i386aout.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i386bsd.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i386dynix.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i386freebsd.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i386linux.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i386lynx.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i386mach3.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i386msdos.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i386netbsd.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i386os9k.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ieee.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ihex.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/init.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/irix-core.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbfd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linker.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lynx-core.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m68k4knetbsd.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m68klinux.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m68knetbsd.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m88kmach3.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m88kopenbsd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mach-o-aarch64.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mach-o-arm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mach-o-i386.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mach-o-x86-64.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mach-o.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/merge.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mipsbsd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmo.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netbsd-core.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/newsos3.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlm.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlm32-alpha.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlm32-i386.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlm32-ppc.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlm32-sparc.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlm32.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlm64.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ns32knetbsd.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oasys.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opncls.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/osf-core.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pc532-mach.Plo@am__quote@ @@ -1635,7 +1532,6 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pe-arm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pe-i386.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pe-mcore.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pe-mips.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pe-ppc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pe-sh.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pe-x86_64.Plo@am__quote@ @@ -1645,7 +1541,6 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pei-i386.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pei-ia64.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pei-mcore.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pei-mips.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pei-ppc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pei-sh.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pei-x86_64.Plo@am__quote@ @@ -1656,28 +1551,21 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppcboot.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reloc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reloc16.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/riscix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rs6000-core.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sco5-core.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/section.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/som.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sparclinux.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sparclynx.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sparcnetbsd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srec.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stab-syms.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stabs.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sunos.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syms.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/targets.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tekhex.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trad-core.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vax1knetbsd.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vaxbsd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vaxnetbsd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/verilog.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/versados.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vms-alpha.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vms-lib.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vms-misc.Plo@am__quote@ @@ -1688,25 +1576,25 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xtensa-modules.Plo@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -1739,22 +1627,25 @@ dir='$(DESTDIR)$(bfdincludedir)'; $(am__uninstall_files_from_dir) # 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. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# 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. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -1769,57 +1660,12 @@ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - 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; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -TAGS: tags-recursive $(HEADERS) $(SOURCES) config.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -1835,12 +1681,7 @@ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) config.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -1852,15 +1693,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) config.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -1869,9 +1706,31 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscope: cscope.files + test ! -s cscope.files \ + || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) +clean-cscope: + -rm -f cscope.files +cscope.files: clean-cscope cscopelist +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f cscope.out cscope.in.out cscope.po.out cscope.files check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive @@ -1990,28 +1849,29 @@ uninstall-am: uninstall-bfdincludeHEADERS uninstall-bfdlibLTLIBRARIES -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \ - ctags-recursive install install-am install-strip \ - tags-recursive - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am am--refresh check check-am clean \ - clean-bfdlibLTLIBRARIES clean-generic clean-libtool \ - clean-noinstLIBRARIES clean-noinstLTLIBRARIES ctags \ - ctags-recursive distclean distclean-compile distclean-generic \ - distclean-hdr distclean-libtool distclean-tags dvi dvi-am html \ - html-am info info-am install install-am \ - install-bfdincludeHEADERS install-bfdlibLTLIBRARIES \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs installdirs-am \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ +.MAKE: $(am__recursive_targets) all check install install-am \ + install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--refresh check check-am clean clean-bfdlibLTLIBRARIES \ + clean-cscope clean-generic clean-libtool clean-noinstLIBRARIES \ + clean-noinstLTLIBRARIES cscope cscopelist-am ctags ctags-am \ + distclean distclean-compile distclean-generic distclean-hdr \ + distclean-libtool distclean-tags dvi dvi-am html html-am info \ + info-am install install-am install-bfdincludeHEADERS \ + install-bfdlibLTLIBRARIES install-data install-data-am \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am \ uninstall-bfdincludeHEADERS uninstall-bfdlibLTLIBRARIES +.PRECIOUS: Makefile + po/SRC-POTFILES.in: @MAINT@ Makefile $(SRC_POTFILES) for file in $(SRC_POTFILES); do echo $$file; done \ diff -Nru gdb-8.1/bfd/merge.c gdb-8.2/bfd/merge.c --- gdb-8.1/bfd/merge.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/merge.c 2018-09-05 07:27:13.000000000 +0000 @@ -865,8 +865,8 @@ if (offset > sec->rawsize) _bfd_error_handler /* xgettext:c-format */ - (_("%B: access beyond end of merged section (%Ld)"), - sec->owner, offset); + (_("%pB: access beyond end of merged section (%" PRId64 ")"), + sec->owner, (int64_t) offset); return secinfo->first_str ? sec->size : 0; } diff -Nru gdb-8.1/bfd/mipsbsd.c gdb-8.2/bfd/mipsbsd.c --- gdb-8.1/bfd/mipsbsd.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/mipsbsd.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,485 +0,0 @@ -/* BFD backend for MIPS BSD (a.out) binaries. - Copyright (C) 1993-2018 Free Software Foundation, Inc. - Written by Ralph Campbell. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - - -/* #define ENTRY_CAN_BE_ZERO */ -#define N_HEADER_IN_TEXT(x) 1 -#define N_TXTADDR(x) \ - (N_MAGIC(x) != ZMAGIC ? (x)->a_entry : /* object file or NMAGIC */\ - TEXT_START_ADDR + EXEC_BYTES_SIZE /* no padding */\ - ) -#define N_DATADDR(x) (N_TXTADDR(x)+N_TXTSIZE(x)) -#define TEXT_START_ADDR 4096 -#define TARGET_PAGE_SIZE 4096 -#define SEGMENT_SIZE TARGET_PAGE_SIZE -#define DEFAULT_ARCH bfd_arch_mips -#define MACHTYPE_OK(mtype) ((mtype) == M_UNKNOWN \ - || (mtype) == M_MIPS1 || (mtype) == M_MIPS2) -#define MY_symbol_leading_char '\0' - -/* Do not "beautify" the CONCAT* macro args. Traditional C will not - remove whitespace added here, and thus will fail to concatenate - the tokens. */ -#define MY(OP) CONCAT2 (mipsbsd_,OP) - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "libaout.h" - -#define SET_ARCH_MACH(ABFD, EXECP) \ - MY(set_arch_mach) (ABFD, N_MACHTYPE (EXECP)); \ - MY(choose_reloc_size) (ABFD); -static void MY(set_arch_mach) (bfd *, unsigned long); -static void MY(choose_reloc_size) (bfd *); - -#define MY_write_object_contents MY(write_object_contents) -static bfd_boolean MY(write_object_contents) (bfd *); - -/* We can't use MY(x) here because it leads to a recursive call to CONCAT2 - when expanded inside JUMP_TABLE. */ -#define MY_bfd_reloc_type_lookup mipsbsd_reloc_type_lookup -#define MY_bfd_reloc_name_lookup mipsbsd_reloc_name_lookup -#define MY_canonicalize_reloc mipsbsd_canonicalize_reloc - -#define MY_bfd_link_hash_table_create _bfd_generic_link_hash_table_create -#define MY_bfd_link_add_symbols _bfd_generic_link_add_symbols -#define MY_final_link_callback unused -#define MY_bfd_final_link _bfd_generic_final_link - -#define MY_backend_data &MY(backend_data) -#define MY_BFD_TARGET - -#include "aout-target.h" - -static bfd_reloc_status_type mips_fix_jmp_addr - (bfd *, arelent *, struct bfd_symbol *, void *, asection *, - bfd *, char **); - -long MY(canonicalize_reloc) (bfd *, sec_ptr, arelent **, asymbol **); - -static void -MY(set_arch_mach) (bfd *abfd, unsigned long machtype) -{ - enum bfd_architecture arch; - unsigned int machine; - - /* Determine the architecture and machine type of the object file. */ - switch (machtype) - { - case M_MIPS1: - arch = bfd_arch_mips; - machine = bfd_mach_mips3000; - break; - - case M_MIPS2: - arch = bfd_arch_mips; - machine = bfd_mach_mips4000; - break; - - default: - arch = bfd_arch_obscure; - machine = 0; - break; - } - - bfd_set_arch_mach (abfd, arch, machine); -} - -/* Determine the size of a relocation entry, based on the architecture */ -static void -MY (choose_reloc_size) (bfd *abfd) -{ - switch (bfd_get_arch (abfd)) - { - case bfd_arch_sparc: - case bfd_arch_mips: - obj_reloc_entry_size (abfd) = RELOC_EXT_SIZE; - break; - default: - obj_reloc_entry_size (abfd) = RELOC_STD_SIZE; - break; - } -} - -/* Write an object file in BSD a.out format. - Section contents have already been written. We write the - file header, symbols, and relocation. */ - -static bfd_boolean -MY (write_object_contents) (bfd *abfd) -{ - struct external_exec exec_bytes; - struct internal_exec *execp = exec_hdr (abfd); - - /* Magic number, maestro, please! */ - switch (bfd_get_arch (abfd)) - { - case bfd_arch_m68k: - switch (bfd_get_mach (abfd)) - { - case bfd_mach_m68010: - N_SET_MACHTYPE (execp, M_68010); - break; - default: - case bfd_mach_m68020: - N_SET_MACHTYPE (execp, M_68020); - break; - } - break; - case bfd_arch_sparc: - N_SET_MACHTYPE (execp, M_SPARC); - break; - case bfd_arch_i386: - N_SET_MACHTYPE (execp, M_386); - break; - case bfd_arch_mips: - switch (bfd_get_mach (abfd)) - { - case bfd_mach_mips4000: - case bfd_mach_mips6000: - N_SET_MACHTYPE (execp, M_MIPS2); - break; - default: - N_SET_MACHTYPE (execp, M_MIPS1); - break; - } - break; - default: - N_SET_MACHTYPE (execp, M_UNKNOWN); - } - - MY (choose_reloc_size) (abfd); - - WRITE_HEADERS (abfd, execp); - - return TRUE; -} - -/* MIPS relocation types. */ -#define MIPS_RELOC_32 0 -#define MIPS_RELOC_JMP 1 -#define MIPS_RELOC_WDISP16 2 -#define MIPS_RELOC_HI16 3 -#define MIPS_RELOC_HI16_S 4 -#define MIPS_RELOC_LO16 5 - -/* This is only called when performing a BFD_RELOC_MIPS_JMP relocation. - The jump destination address is formed from the upper 4 bits of the - "current" program counter concatenated with the jump instruction's - 26 bit field and two trailing zeros. - If the destination address is not in the same segment as the "current" - program counter, then we need to signal an error. */ - -static bfd_reloc_status_type -mips_fix_jmp_addr (bfd *abfd ATTRIBUTE_UNUSED, - arelent *reloc_entry, - struct bfd_symbol *symbol, - void * data ATTRIBUTE_UNUSED, - asection *input_section, - bfd *output_bfd, - char **error_message ATTRIBUTE_UNUSED) -{ - bfd_vma relocation, pc; - - /* If this is a partial relocation, just continue. */ - if (output_bfd != (bfd *) NULL) - return bfd_reloc_continue; - - /* If this is an undefined symbol, return error */ - if (bfd_is_und_section (symbol->section) - && (symbol->flags & BSF_WEAK) == 0) - return bfd_reloc_undefined; - - /* Work out which section the relocation is targeted at and the - initial relocation command value. */ - if (bfd_is_com_section (symbol->section)) - relocation = 0; - else - relocation = symbol->value; - - relocation += symbol->section->output_section->vma; - relocation += symbol->section->output_offset; - relocation += reloc_entry->addend; - - pc = input_section->output_section->vma + input_section->output_offset + - reloc_entry->address + 4; - - if ((relocation & 0xF0000000) != (pc & 0xF0000000)) - return bfd_reloc_overflow; - - return bfd_reloc_continue; -} - -/* This is only called when performing a BFD_RELOC_HI16_S relocation. - We need to see if bit 15 is set in the result. If it is, we add - 0x10000 and continue normally. This will compensate for the sign extension - when the low bits are added at run time. */ - -static bfd_reloc_status_type -mips_fix_hi16_s (bfd *abfd ATTRIBUTE_UNUSED, - arelent *reloc_entry, - asymbol *symbol, - void * data ATTRIBUTE_UNUSED, - asection *input_section ATTRIBUTE_UNUSED, - bfd *output_bfd, - char **error_message ATTRIBUTE_UNUSED) -{ - bfd_vma relocation; - - /* If this is a partial relocation, just continue. */ - if (output_bfd != (bfd *)NULL) - return bfd_reloc_continue; - - /* If this is an undefined symbol, return error. */ - if (bfd_is_und_section (symbol->section) - && (symbol->flags & BSF_WEAK) == 0) - return bfd_reloc_undefined; - - /* Work out which section the relocation is targeted at and the - initial relocation command value. */ - if (bfd_is_com_section (symbol->section)) - relocation = 0; - else - relocation = symbol->value; - - relocation += symbol->section->output_section->vma; - relocation += symbol->section->output_offset; - relocation += reloc_entry->addend; - - if (relocation & 0x8000) - reloc_entry->addend += 0x10000; - - return bfd_reloc_continue; -} - -static reloc_howto_type mips_howto_table_ext[] = -{ - {MIPS_RELOC_32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, 0, - "32", FALSE, 0, 0xffffffff, FALSE}, - {MIPS_RELOC_JMP, 2, 2, 26, FALSE, 0, complain_overflow_dont, - mips_fix_jmp_addr, - "MIPS_JMP", FALSE, 0, 0x03ffffff, FALSE}, - {MIPS_RELOC_WDISP16, 2, 2, 16, TRUE, 0, complain_overflow_signed, 0, - "WDISP16", FALSE, 0, 0x0000ffff, FALSE}, - {MIPS_RELOC_HI16, 16, 2, 16, FALSE, 0, complain_overflow_bitfield, 0, - "HI16", FALSE, 0, 0x0000ffff, FALSE}, - {MIPS_RELOC_HI16_S, 16, 2, 16, FALSE, 0, complain_overflow_bitfield, - mips_fix_hi16_s, - "HI16_S", FALSE, 0, 0x0000ffff, FALSE}, - {MIPS_RELOC_LO16, 0, 2, 16, FALSE, 0, complain_overflow_dont, 0, - "LO16", FALSE, 0, 0x0000ffff, FALSE}, -}; - -static reloc_howto_type * -MY(reloc_type_lookup) (bfd *abfd, bfd_reloc_code_real_type code) -{ - if (bfd_get_arch (abfd) != bfd_arch_mips) - return NULL; - - switch (code) - { - case BFD_RELOC_CTOR: - case BFD_RELOC_32: - return (&mips_howto_table_ext[MIPS_RELOC_32]); - case BFD_RELOC_MIPS_JMP: - return (&mips_howto_table_ext[MIPS_RELOC_JMP]); - case BFD_RELOC_16_PCREL_S2: - return (&mips_howto_table_ext[MIPS_RELOC_WDISP16]); - case BFD_RELOC_HI16: - return (&mips_howto_table_ext[MIPS_RELOC_HI16]); - case BFD_RELOC_HI16_S: - return (&mips_howto_table_ext[MIPS_RELOC_HI16_S]); - case BFD_RELOC_LO16: - return (&mips_howto_table_ext[MIPS_RELOC_LO16]); - default: - return NULL; - } -} - -static reloc_howto_type * -MY(reloc_name_lookup) (bfd *abfd ATTRIBUTE_UNUSED, - const char *r_name) -{ - unsigned int i; - - for (i = 0; - i < sizeof (mips_howto_table_ext) / sizeof (mips_howto_table_ext[0]); - i++) - if (mips_howto_table_ext[i].name != NULL - && strcasecmp (mips_howto_table_ext[i].name, r_name) == 0) - return &mips_howto_table_ext[i]; - - return NULL; -} - -/* This is just like the standard aoutx.h version but we need to do our - own mapping of external reloc type values to howto entries. */ -long -MY(canonicalize_reloc) (bfd *abfd, - sec_ptr section, - arelent **relptr, - asymbol **symbols) -{ - arelent *tblptr = section->relocation; - unsigned int count, c; - extern reloc_howto_type NAME(aout,ext_howto_table)[]; - - /* If we have already read in the relocation table, return the values. */ - if (section->flags & SEC_CONSTRUCTOR) - { - arelent_chain *chain = section->constructor_chain; - - for (count = 0; count < section->reloc_count; count++) - { - *relptr++ = &chain->relent; - chain = chain->next; - } - *relptr = 0; - return section->reloc_count; - } - - if (tblptr && section->reloc_count) - { - for (count = 0; count++ < section->reloc_count;) - *relptr++ = tblptr++; - *relptr = 0; - return section->reloc_count; - } - - if (!NAME(aout,slurp_reloc_table) (abfd, section, symbols)) - return -1; - tblptr = section->relocation; - - /* fix up howto entries. */ - for (count = 0; count++ < section->reloc_count;) - { - c = tblptr->howto - NAME(aout,ext_howto_table); - tblptr->howto = &mips_howto_table_ext[c]; - - *relptr++ = tblptr++; - } - *relptr = 0; - return section->reloc_count; -} - -static const struct aout_backend_data MY(backend_data) = -{ - 0, /* zmagic contiguous */ - 1, /* text incl header */ - 0, /* entry is text address */ - 0, /* exec_hdr_flags */ - TARGET_PAGE_SIZE, /* text vma */ - MY_set_sizes, - 0, /* text size includes exec header */ - 0, /* add_dynamic_symbols */ - 0, /* add_one_symbol */ - 0, /* link_dynamic_object */ - 0, /* write_dynamic_symbol */ - 0, /* check_dynamic_reloc */ - 0 /* finish_dynamic_link */ -}; - -extern const bfd_target mips_aout_be_vec; - -const bfd_target mips_aout_le_vec = -{ - "a.out-mips-little", /* name */ - bfd_target_aout_flavour, - BFD_ENDIAN_LITTLE, /* target byte order (little) */ - BFD_ENDIAN_LITTLE, /* target headers byte order (little) */ - (HAS_RELOC | EXEC_P | /* object flags */ - HAS_LINENO | HAS_DEBUG | - HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED), - (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_CODE | SEC_DATA), - MY_symbol_leading_char, - ' ', /* ar_pad_char */ - 15, /* ar_max_namelen */ - 0, /* match priority. */ - 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, MY_object_p, /* bfd_check_format */ - bfd_generic_archive_p, MY_core_file_p}, - {bfd_false, MY_mkobject, /* bfd_set_format */ - _bfd_generic_mkarchive, bfd_false}, - {bfd_false, MY_write_object_contents, /* bfd_write_contents */ - _bfd_write_archive_contents, bfd_false}, - - BFD_JUMP_TABLE_GENERIC (MY), - BFD_JUMP_TABLE_COPY (MY), - BFD_JUMP_TABLE_CORE (MY), - BFD_JUMP_TABLE_ARCHIVE (MY), - BFD_JUMP_TABLE_SYMBOLS (MY), - BFD_JUMP_TABLE_RELOCS (MY), - BFD_JUMP_TABLE_WRITE (MY), - BFD_JUMP_TABLE_LINK (MY), - BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), - - & mips_aout_be_vec, - - MY_backend_data - }; - -const bfd_target mips_aout_be_vec = - { - "a.out-mips-big", /* name */ - bfd_target_aout_flavour, - BFD_ENDIAN_BIG, /* target byte order (big) */ - BFD_ENDIAN_BIG, /* target headers byte order (big) */ - (HAS_RELOC | EXEC_P | /* object flags */ - HAS_LINENO | HAS_DEBUG | - HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED), - (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_CODE | SEC_DATA), - MY_symbol_leading_char, - ' ', /* ar_pad_char */ - 15, /* ar_max_namelen */ - 0, /* match priority. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* 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, MY_object_p, /* bfd_check_format */ - bfd_generic_archive_p, MY_core_file_p}, - {bfd_false, MY_mkobject, /* bfd_set_format */ - _bfd_generic_mkarchive, bfd_false}, - {bfd_false, MY_write_object_contents, /* bfd_write_contents */ - _bfd_write_archive_contents, bfd_false}, - - BFD_JUMP_TABLE_GENERIC (MY), - BFD_JUMP_TABLE_COPY (MY), - BFD_JUMP_TABLE_CORE (MY), - BFD_JUMP_TABLE_ARCHIVE (MY), - BFD_JUMP_TABLE_SYMBOLS (MY), - BFD_JUMP_TABLE_RELOCS (MY), - BFD_JUMP_TABLE_WRITE (MY), - BFD_JUMP_TABLE_LINK (MY), - BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), - - & mips_aout_le_vec, - - MY_backend_data - }; diff -Nru gdb-8.1/bfd/mmo.c gdb-8.2/bfd/mmo.c --- gdb-8.1/bfd/mmo.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/mmo.c 2018-09-05 07:44:28.000000000 +0000 @@ -465,7 +465,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: No core to allocate section name %s\n"), + (_("%pB: no core to allocate section name %s"), abfd, secname); bfd_set_error (bfd_error_system_call); return NULL; @@ -541,7 +541,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: No core to allocate a symbol %d bytes long\n"), + (_("%pB: no core to allocate a symbol %d bytes long"), abfd, abfd->tdata.mmo_data->max_symbol_length); goto bad_final; } @@ -955,9 +955,9 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: attempt to emit contents at non-multiple-of-4" - " address %#Lx"), - abfd, vma); + (_("%pB: attempt to emit contents at non-multiple-of-4" + " address %#" PRIx64 ""), + abfd, (uint64_t) vma); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -1252,7 +1252,7 @@ && !mmo_ignore_symbol_consistency (abfd)) { _bfd_error_handler - (_("%B: invalid mmo file: initialization value for $255" + (_("%pB: invalid mmo file: initialization value for $255" " is not `Main'\n"), abfd); bfd_set_error (bfd_error_bad_value); @@ -1399,7 +1399,7 @@ _bfd_error_handler /* xgettext:c-format */ - (_("%B: unsupported wide character sequence" + (_("%pB: unsupported wide character sequence" " 0x%02X 0x%02X after symbol name starting with `%s'\n"), abfd, c, c2, abfd->tdata.mmo_data->lop_stab_symbol); bfd_set_error (bfd_error_bad_value); @@ -1633,7 +1633,7 @@ default: _bfd_error_handler /* xgettext:c-format */ - (_("%B: invalid mmo file: unsupported lopcode `%d'\n"), + (_("%pB: invalid mmo file: unsupported lopcode `%d'\n"), abfd, buf[1]); bfd_set_error (bfd_error_bad_value); goto error_return; @@ -1644,7 +1644,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: invalid mmo file: expected YZ = 1" + (_("%pB: invalid mmo file: expected YZ = 1" " got YZ = %d for lop_quote\n"), abfd, y*256+z); bfd_set_error (bfd_error_bad_value); @@ -1682,7 +1682,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: invalid mmo file: expected z = 1 or z = 2," + (_("%pB: invalid mmo file: expected z = 1 or z = 2," " got z = %d for lop_loc\n"), abfd, z); bfd_set_error (bfd_error_bad_value); @@ -1733,7 +1733,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: invalid mmo file: expected z = 1 or z = 2," + (_("%pB: invalid mmo file: expected z = 1 or z = 2," " got z = %d for lop_fixo\n"), abfd, z); bfd_set_error (bfd_error_bad_value); @@ -1774,7 +1774,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: invalid mmo file: expected y = 0," + (_("%pB: invalid mmo file: expected y = 0," " got y = %d for lop_fixrx\n"), abfd, y); bfd_set_error (bfd_error_bad_value); @@ -1785,7 +1785,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: invalid mmo file: expected z = 16 or z = 24," + (_("%pB: invalid mmo file: expected z = 16 or z = 24," " got z = %d for lop_fixrx\n"), abfd, z); bfd_set_error (bfd_error_bad_value); @@ -1810,7 +1810,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: invalid mmo file: leading byte of operand word" + (_("%pB: invalid mmo file: leading byte of operand word" " must be 0 or 1, got %d for lop_fixrx\n"), abfd, buf[0]); bfd_set_error (bfd_error_bad_value); @@ -1835,7 +1835,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: cannot allocate file name for file number %d," + (_("%pB: cannot allocate file name for file number %d," " %d bytes\n"), abfd, y, z * 4 + 1); bfd_set_error (bfd_error_system_call); @@ -1857,7 +1857,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: invalid mmo file: file number %d `%s'," + (_("%pB: invalid mmo file: file number %d `%s'," " was already entered as `%s'\n"), abfd, y, fname, file_names[y]); bfd_set_error (bfd_error_bad_value); @@ -1871,7 +1871,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: invalid mmo file: file name for number %d" + (_("%pB: invalid mmo file: file name for number %d" " was not specified before use\n"), abfd, y); bfd_set_error (bfd_error_bad_value); @@ -1978,7 +1978,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: invalid mmo file: fields y and z of lop_stab" + (_("%pB: invalid mmo file: fields y and z of lop_stab" " non-zero, y: %d, z: %d\n"), abfd, y, z); bfd_set_error (bfd_error_bad_value); @@ -2015,7 +2015,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: invalid mmo file: lop_end not last item in" + (_("%pB: invalid mmo file: lop_end not last item in" " file\n"), abfd); bfd_set_error (bfd_error_bad_value); @@ -2029,7 +2029,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: invalid mmo file: YZ of lop_end (%ld)" + (_("%pB: invalid mmo file: YZ of lop_end (%ld)" " not equal to the number of tetras to the preceding" " lop_stab (%ld)\n"), abfd, (long) (y * 256 + z), @@ -2740,7 +2740,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: invalid symbol table: duplicate symbol `%s'\n"), + (_("%pB: invalid symbol table: duplicate symbol `%s'\n"), abfd, trie->sym.name); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -2983,7 +2983,7 @@ _bfd_error_handler /* xgettext:c-format */ - (_("%B: Bad symbol definition: `Main' set to %s rather" + (_("%pB: bad symbol definition: `Main' set to %s rather" " than the start address %s\n"), abfd, vmas_main, vmas_start); bfd_set_error (bfd_error_bad_value); @@ -3082,7 +3082,7 @@ _bfd_error_handler /* xgettext:c-format */ - (_("%B: warning: symbol table too large for mmo, larger than 65535" + (_("%pB: warning: symbol table too large for mmo, larger than 65535" " 32-bit words: %d. Only `Main' will be emitted.\n"), abfd, trie_len); @@ -3128,7 +3128,7 @@ diagnostic and fail "normally". */ _bfd_error_handler /* xgettext:c-format */ - (_("%B: internal error, symbol table changed size from %d to %d" + (_("%pB: internal error, symbol table changed size from %d to %d" " words\n"), abfd, trie_len, (abfd->tdata.mmo_data->byte_no + 3)/4); @@ -3181,7 +3181,7 @@ this. */ _bfd_error_handler /* xgettext:c-format */ - (_("%B: internal error, internal register section %A had" + (_("%pB: internal error, internal register section %pA had" " contents\n"), abfd, sec); bfd_set_error (bfd_error_bad_value); @@ -3232,21 +3232,21 @@ if (sec->size == 0) /* There must always be at least one such register. */ _bfd_error_handler - (_("%B: no initialized registers; section length 0\n"), + (_("%pB: no initialized registers; section length 0\n"), abfd); else if (sec->vma > (256 - 32) * 8) /* Provide better error message for the case of too many global registers. */ _bfd_error_handler /* xgettext:c-format */ - (_("%B: too many initialized registers; section length %Ld"), - abfd, sec->size); + (_("%pB: too many initialized registers; section length %" PRId64), + abfd, (int64_t) sec->size); else _bfd_error_handler /* xgettext:c-format */ - (_("%B: invalid start address for initialized registers of" - " length %Ld: %#Lx"), - abfd, sec->size, sec->vma); + (_("%pB: invalid start address for initialized registers of" + " length %" PRId64 ": %#" PRIx64), + abfd, (int64_t) sec->size, (uint64_t) sec->vma); return FALSE; } @@ -3275,8 +3275,7 @@ /* Perhaps we need to adjust this one; mmo labels (originally) without a leading ':' might more appropriately be called local. */ #define mmo_bfd_is_local_label_name bfd_generic_is_local_label_name -#define mmo_bfd_is_target_special_symbol \ - ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) +#define mmo_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false #define mmo_get_symbol_version_string \ _bfd_nosymbols_get_symbol_version_string @@ -3319,6 +3318,7 @@ #define mmo_section_already_linked \ _bfd_generic_section_already_linked #define mmo_bfd_define_common_symbol bfd_generic_define_common_symbol +#define mmo_bfd_link_hide_symbol _bfd_generic_link_hide_symbol #define mmo_bfd_define_start_stop bfd_generic_define_start_stop /* We want to copy time of creation, otherwise we'd use @@ -3364,16 +3364,16 @@ _bfd_dummy_target, }, { - bfd_false, + _bfd_bool_bfd_false_error, mmo_mkobject, - bfd_false, - bfd_false, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, }, { /* bfd_write_contents */ - bfd_false, + _bfd_bool_bfd_false_error, mmo_write_object_contents, - bfd_false, - bfd_false, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, }, BFD_JUMP_TABLE_GENERIC (mmo), diff -Nru gdb-8.1/bfd/netbsd-core.c gdb-8.2/bfd/netbsd-core.c --- gdb-8.1/bfd/netbsd-core.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/netbsd-core.c 2018-09-05 07:27:13.000000000 +0000 @@ -198,10 +198,6 @@ bfd_default_set_arch_mach (abfd, bfd_arch_m68k, 0); break; - case M_88K_OPENBSD: - bfd_default_set_arch_mach (abfd, bfd_arch_m88k, 0); - break; - case M_HPPA_OPENBSD: bfd_default_set_arch_mach (abfd, bfd_arch_hppa, bfd_mach_hppa11); break; @@ -294,12 +290,16 @@ netbsd_core_file_p /* A core file. */ }, { /* bfd_set_format. */ - bfd_false, bfd_false, - bfd_false, bfd_false + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error }, { /* bfd_write_contents. */ - bfd_false, bfd_false, - bfd_false, bfd_false + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error }, BFD_JUMP_TABLE_GENERIC (_bfd_generic), diff -Nru gdb-8.1/bfd/newsos3.c gdb-8.2/bfd/newsos3.c --- gdb-8.1/bfd/newsos3.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/newsos3.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,43 +0,0 @@ -/* BFD back-end for NewsOS3 (Sony, 68k) binaries. - Copyright (C) 1990-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define TARGET_PAGE_SIZE 4096 -#define SEGMENT_SIZE TARGET_PAGE_SIZE -#define TEXT_START_ADDR 0 - -/* Do not "beautify" the CONCAT* macro args. Traditional C will not - remove whitespace added here, and thus will fail to concatenate - the tokens. */ -#define MY(OP) CONCAT2 (m68k_aout_newsos3_,OP) -#define TARGETNAME "a.out-newsos3" -#define ENTRY_CAN_BE_ZERO -#define DEFAULT_ARCH bfd_arch_m68k -#define TARGET_IS_BIG_ENDIAN_P -#define N_HEADER_IN_TEXT(x) 0 - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "aout/aout64.h" -#include "aout/stab_gnu.h" -#include "aout/ar.h" -#include "libaout.h" /* BFD a.out internal data structures */ - -#include "aout-target.h" diff -Nru gdb-8.1/bfd/nlm32-alpha.c gdb-8.2/bfd/nlm32-alpha.c --- gdb-8.1/bfd/nlm32-alpha.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/nlm32-alpha.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,859 +0,0 @@ -/* Support for 32-bit Alpha NLM (NetWare Loadable Module) - Copyright (C) 1993-2018 Free Software Foundation, Inc. - Written by Ian Lance Taylor, Cygnus Support. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - - -/* This file describes the 32 bit Alpha NLM format. You might think - that an Alpha chip would use a 64 bit format, but, for some reason, - it doesn't. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" - -#define ARCH_SIZE 32 - -#include "nlm/alpha-ext.h" -#define Nlm_External_Fixed_Header Nlm32_alpha_External_Fixed_Header - -#include "libnlm.h" - -/* Alpha NLM's have a prefix header before the standard NLM. This - function reads it in, verifies the version, and seeks the bfd to - the location before the regular NLM header. */ - -static bfd_boolean -nlm_alpha_backend_object_p (bfd *abfd) -{ - struct nlm32_alpha_external_prefix_header s; - file_ptr size; - - if (bfd_bread (&s, (bfd_size_type) sizeof s, abfd) != sizeof s) - return FALSE; - - if (H_GET_32 (abfd, s.magic) != NLM32_ALPHA_MAGIC) - return FALSE; - - /* FIXME: Should we check the format number? */ - - /* Skip to the end of the header. */ - size = H_GET_32 (abfd, s.size); - if (bfd_seek (abfd, size, SEEK_SET) != 0) - return FALSE; - - return TRUE; -} - -/* Write out the prefix. */ - -static bfd_boolean -nlm_alpha_write_prefix (bfd *abfd) -{ - struct nlm32_alpha_external_prefix_header s; - - memset (&s, 0, sizeof s); - H_PUT_32 (abfd, NLM32_ALPHA_MAGIC, s.magic); - H_PUT_32 (abfd, 2, s.format); - H_PUT_32 (abfd, sizeof s, s.size); - if (bfd_bwrite (&s, (bfd_size_type) sizeof s, abfd) != sizeof s) - return FALSE; - return TRUE; -} - -#define ONES(n) (((bfd_vma) 1 << ((n) - 1) << 1) - 1) - -/* How to process the various reloc types. */ - -static reloc_howto_type nlm32_alpha_howto_table[] = -{ - /* Reloc type 0 is ignored by itself. However, it appears after a - GPDISP reloc to identify the location where the low order 16 bits - of the gp register are loaded. */ - HOWTO (ALPHA_R_IGNORE, /* Type. */ - 0, /* Rightshift. */ - 0, /* Size (0 = byte, 1 = short, 2 = long). */ - 8, /* Bitsize. */ - FALSE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_dont, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "IGNORE", /* Name. */ - FALSE, /* Partial_inplace. */ - 0, /* Source mask. */ - 0, /* Dest mask. */ - FALSE), /* PCrel_offset. */ - - /* A 32 bit reference to a symbol. */ - HOWTO (ALPHA_R_REFLONG, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 32, /* Bitsize. */ - FALSE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "REFLONG", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffffffff, /* Source mask. */ - 0xffffffff, /* Dest mask. */ - FALSE), /* PCrel_offset. */ - - /* A 64 bit reference to a symbol. */ - HOWTO (ALPHA_R_REFQUAD, /* Type. */ - 0, /* Rightshift. */ - 4, /* Size (0 = byte, 1 = short, 2 = long). */ - 64, /* Bitsize. */ - FALSE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "REFQUAD", /* Name. */ - TRUE, /* Partial_inplace. */ - ONES (64), /* Source mask. */ - ONES (64), /* Dest mask. */ - FALSE), /* PCrel_offset. */ - - /* A 32 bit GP relative offset. This is just like REFLONG except - that when the value is used the value of the gp register will be - added in. */ - HOWTO (ALPHA_R_GPREL32, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 32, /* Bitsize. */ - FALSE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "GPREL32", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffffffff, /* Source mask. */ - 0xffffffff, /* Dest mask. */ - FALSE), /* PCrel_offset. */ - - /* Used for an instruction that refers to memory off the GP - register. The offset is 16 bits of the 32 bit instruction. This - reloc always seems to be against the .lita section. */ - HOWTO (ALPHA_R_LITERAL, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 16, /* Bitsize. */ - FALSE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_signed, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "LITERAL", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffff, /* Source mask. */ - 0xffff, /* Dest mask. */ - FALSE), /* PCrel_offset. */ - - /* This reloc only appears immediately following a LITERAL reloc. - It identifies a use of the literal. It seems that the linker can - use this to eliminate a portion of the .lita section. The symbol - index is special: 1 means the literal address is in the base - register of a memory format instruction; 2 means the literal - address is in the byte offset register of a byte-manipulation - instruction; 3 means the literal address is in the target - register of a jsr instruction. This does not actually do any - relocation. */ - HOWTO (ALPHA_R_LITUSE, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 32, /* Bitsize. */ - FALSE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_dont, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "LITUSE", /* Name. */ - FALSE, /* Partial_inplace. */ - 0, /* Source mask. */ - 0, /* Dest mask. */ - FALSE), /* PCrel_offset. */ - - /* Load the gp register. This is always used for a ldah instruction - which loads the upper 16 bits of the gp register. The next reloc - will be an IGNORE reloc which identifies the location of the lda - instruction which loads the lower 16 bits. The symbol index of - the GPDISP instruction appears to actually be the number of bytes - between the ldah and lda instructions. This gives two different - ways to determine where the lda instruction is; I don't know why - both are used. The value to use for the relocation is the - difference between the GP value and the current location; the - load will always be done against a register holding the current - address. */ - HOWTO (ALPHA_R_GPDISP, /* Type. */ - 16, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 16, /* Bitsize. */ - TRUE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_dont, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "GPDISP", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffff, /* Source mask. */ - 0xffff, /* Dest mask. */ - TRUE), /* PCrel_offset. */ - - /* A 21 bit branch. The native assembler generates these for - branches within the text segment, and also fills in the PC - relative offset in the instruction. It seems to me that this - reloc, unlike the others, is not partial_inplace. */ - HOWTO (ALPHA_R_BRADDR, /* Type. */ - 2, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 21, /* Bitsize. */ - TRUE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_signed, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "BRADDR", /* Name. */ - FALSE, /* Partial_inplace. */ - 0, /* Source mask. */ - 0x1fffff, /* Dest mask. */ - FALSE), /* PCrel_offset. */ - - /* A hint for a jump to a register. */ - HOWTO (ALPHA_R_HINT, /* Type. */ - 2, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 14, /* Bitsize. */ - FALSE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_dont, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "HINT", /* Name. */ - TRUE, /* Partial_inplace. */ - 0x3fff, /* Source mask. */ - 0x3fff, /* Dest mask. */ - FALSE), /* PCrel_offset. */ - - /* 16 bit PC relative offset. */ - HOWTO (ALPHA_R_SREL16, /* Type. */ - 0, /* Rightshift. */ - 1, /* Size (0 = byte, 1 = short, 2 = long). */ - 16, /* Bitsize. */ - TRUE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_signed, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "SREL16", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffff, /* Source mask. */ - 0xffff, /* Dest mask. */ - FALSE), /* PCrel_offset. */ - - /* 32 bit PC relative offset. */ - HOWTO (ALPHA_R_SREL32, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 32, /* Bitsize. */ - TRUE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_signed, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "SREL32", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffffffff, /* Source mask. */ - 0xffffffff, /* Dest mask. */ - FALSE), /* PCrel_offset. */ - - /* A 64 bit PC relative offset. */ - HOWTO (ALPHA_R_SREL64, /* Type. */ - 0, /* Rightshift. */ - 4, /* Size (0 = byte, 1 = short, 2 = long). */ - 64, /* Bitsize. */ - TRUE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_signed, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "SREL64", /* Name. */ - TRUE, /* Partial_inplace. */ - ONES (64), /* Source mask. */ - ONES (64), /* Dest mask. */ - FALSE), /* PCrel_offset. */ - - /* Push a value on the reloc evaluation stack. */ - HOWTO (ALPHA_R_OP_PUSH, /* Type. */ - 0, /* Rightshift. */ - 0, /* Size (0 = byte, 1 = short, 2 = long). */ - 0, /* Bitsize. */ - FALSE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_dont, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "OP_PUSH", /* Name. */ - FALSE, /* Partial_inplace. */ - 0, /* Source mask. */ - 0, /* Dest mask. */ - FALSE), /* PCrel_offset. */ - - /* Store the value from the stack at the given address. Store it in - a bitfield of size r_size starting at bit position r_offset. */ - HOWTO (ALPHA_R_OP_STORE, /* Type. */ - 0, /* Rightshift. */ - 4, /* Size (0 = byte, 1 = short, 2 = long). */ - 64, /* Bitsize. */ - FALSE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_dont, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "OP_STORE", /* Name. */ - FALSE, /* Partial_inplace. */ - 0, /* Source mask. */ - ONES (64), /* Dest mask. */ - FALSE), /* PCrel_offset. */ - - /* Subtract the reloc address from the value on the top of the - relocation stack. */ - HOWTO (ALPHA_R_OP_PSUB, /* Type. */ - 0, /* Rightshift. */ - 0, /* Size (0 = byte, 1 = short, 2 = long). */ - 0, /* Bitsize. */ - FALSE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_dont, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "OP_PSUB", /* Name. */ - FALSE, /* Partial_inplace. */ - 0, /* Source mask. */ - 0, /* Dest mask. */ - FALSE), /* PCrel_offset. */ - - /* Shift the value on the top of the relocation stack right by the - given value. */ - HOWTO (ALPHA_R_OP_PRSHIFT, /* Type. */ - 0, /* Rightshift. */ - 0, /* Size (0 = byte, 1 = short, 2 = long). */ - 0, /* Bitsize. */ - FALSE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_dont, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "OP_PRSHIFT", /* Name. */ - FALSE, /* Partial_inplace. */ - 0, /* Source mask. */ - 0, /* Dest mask. */ - FALSE), /* PCrel_offset. */ - - /* Adjust the GP value for a new range in the object file. */ - HOWTO (ALPHA_R_GPVALUE, /* Type. */ - 0, /* Rightshift. */ - 0, /* Size (0 = byte, 1 = short, 2 = long). */ - 0, /* Bitsize. */ - FALSE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_dont, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "GPVALUE", /* Name. */ - FALSE, /* Partial_inplace. */ - 0, /* Source mask. */ - 0, /* Dest mask. */ - FALSE) /* PCrel_offset. */ -}; - -static reloc_howto_type nlm32_alpha_nw_howto = - HOWTO (ALPHA_R_NW_RELOC, /* Type. */ - 0, /* Rightshift. */ - 0, /* Size (0 = byte, 1 = short, 2 = long). */ - 0, /* Bitsize. */ - FALSE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_dont, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "NW_RELOC", /* Name. */ - FALSE, /* Partial_inplace. */ - 0, /* Source mask. */ - 0, /* Dest mask. */ - FALSE); /* PCrel_offset. */ - -/* Read an Alpha NLM reloc. This routine keeps some static data which - it uses when handling local relocs. This only works correctly - because all the local relocs are read at once. */ - -static bfd_boolean -nlm_alpha_read_reloc (bfd *abfd, - nlmNAME (symbol_type) *sym, - asection **secp, - arelent *rel) -{ - static bfd_vma gp_value; - static bfd_vma lita_address; - struct nlm32_alpha_external_reloc ext; - bfd_vma r_vaddr; - long r_symndx; - int r_type, r_extern, r_offset, r_size; - asection *code_sec, *data_sec; - - /* Read the reloc from the file. */ - if (bfd_bread (&ext, (bfd_size_type) sizeof ext, abfd) != sizeof ext) - return FALSE; - - /* Swap in the reloc information. */ - r_vaddr = H_GET_64 (abfd, ext.r_vaddr); - r_symndx = H_GET_32 (abfd, ext.r_symndx); - - BFD_ASSERT (bfd_little_endian (abfd)); - - r_type = ((ext.r_bits[0] & RELOC_BITS0_TYPE_LITTLE) - >> RELOC_BITS0_TYPE_SH_LITTLE); - r_extern = (ext.r_bits[1] & RELOC_BITS1_EXTERN_LITTLE) != 0; - r_offset = ((ext.r_bits[1] & RELOC_BITS1_OFFSET_LITTLE) - >> RELOC_BITS1_OFFSET_SH_LITTLE); - /* Ignore the reserved bits. */ - r_size = ((ext.r_bits[3] & RELOC_BITS3_SIZE_LITTLE) - >> RELOC_BITS3_SIZE_SH_LITTLE); - - /* Fill in the BFD arelent structure. */ - code_sec = bfd_get_section_by_name (abfd, NLM_CODE_NAME); - data_sec = bfd_get_section_by_name (abfd, NLM_INITIALIZED_DATA_NAME); - if (r_extern) - { - /* External relocations are only used for imports. */ - BFD_ASSERT (sym != NULL); - /* We don't need to set sym_ptr_ptr for this case. It is set in - nlm_canonicalize_reloc. */ - rel->sym_ptr_ptr = NULL; - rel->addend = 0; - } - else - { - /* Internal relocations are only used for local relocation - fixups. If they are not NW_RELOC or GPDISP or IGNORE, they - must be against .text or .data. */ - BFD_ASSERT (r_type == ALPHA_R_NW_RELOC || sym == NULL); - if (r_type == ALPHA_R_NW_RELOC - || r_type == ALPHA_R_GPDISP - || r_type == ALPHA_R_IGNORE) - { - rel->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; - rel->addend = 0; - } - else if (r_symndx == ALPHA_RELOC_SECTION_TEXT) - { - rel->sym_ptr_ptr = code_sec->symbol_ptr_ptr; - BFD_ASSERT (bfd_get_section_vma (abfd, code_sec) == 0); - rel->addend = 0; - } - else if (r_symndx == ALPHA_RELOC_SECTION_DATA) - { - rel->sym_ptr_ptr = data_sec->symbol_ptr_ptr; - rel->addend = - bfd_get_section_vma (abfd, data_sec); - } - else - { - BFD_ASSERT (0); - rel->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; - rel->addend = 0; - } - } - - /* We use the address to determine whether the reloc is in the .text - or .data section. R_NW_RELOC relocs don't really have a section, - so we put them in .text. */ - if (r_type == ALPHA_R_NW_RELOC - || r_vaddr < code_sec->size) - { - *secp = code_sec; - rel->address = r_vaddr; - } - else - { - *secp = data_sec; - rel->address = r_vaddr - code_sec->size; - } - - /* We must adjust the addend based on the type. */ - BFD_ASSERT ((r_type >= 0 && r_type <= ALPHA_R_GPVALUE) - || r_type == ALPHA_R_NW_RELOC); - - switch (r_type) - { - case ALPHA_R_BRADDR: - case ALPHA_R_SREL16: - case ALPHA_R_SREL32: - case ALPHA_R_SREL64: - /* The PC relative relocs do not seem to use the section VMA as - a negative addend. */ - rel->addend = 0; - break; - - case ALPHA_R_GPREL32: - /* Copy the gp value for this object file into the addend, to - ensure that we are not confused by the linker. */ - if (! r_extern) - rel->addend += gp_value; - break; - - case ALPHA_R_LITERAL: - BFD_ASSERT (! r_extern); - rel->addend += lita_address; - break; - - case ALPHA_R_LITUSE: - case ALPHA_R_GPDISP: - /* The LITUSE and GPDISP relocs do not use a symbol, or an - addend, but they do use a special code. Put this code in the - addend field. */ - rel->addend = r_symndx; - rel->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; - break; - - case ALPHA_R_OP_STORE: - /* The STORE reloc needs the size and offset fields. We store - them in the addend. */ - BFD_ASSERT (r_offset < 256 && r_size < 256); - rel->addend = (r_offset << 8) + r_size; - break; - - case ALPHA_R_OP_PUSH: - case ALPHA_R_OP_PSUB: - case ALPHA_R_OP_PRSHIFT: - /* The PUSH, PSUB and PRSHIFT relocs do not actually use an - address. I believe that the address supplied is really an - addend. */ - rel->addend = r_vaddr; - break; - - case ALPHA_R_GPVALUE: - /* Record the new gp value. */ - gp_value += r_symndx; - rel->addend = gp_value; - break; - - case ALPHA_R_IGNORE: - /* If the type is ALPHA_R_IGNORE, make sure this is a reference - to the absolute section so that the reloc is ignored. For - some reason the address of this reloc type is not adjusted by - the section vma. We record the gp value for this object file - here, for convenience when doing the GPDISP relocation. */ - rel->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; - rel->address = r_vaddr; - rel->addend = gp_value; - break; - - case ALPHA_R_NW_RELOC: - /* If this is SETGP, we set the addend to 0. Otherwise we set - the addend to the size of the .lita section (this is - r_symndx) plus 1. We have already set the address of the - reloc to r_vaddr. */ - if (r_size == ALPHA_R_NW_RELOC_SETGP) - { - gp_value = r_vaddr; - rel->addend = 0; - } - else if (r_size == ALPHA_R_NW_RELOC_LITA) - { - lita_address = r_vaddr; - rel->addend = r_symndx + 1; - } - else - BFD_ASSERT (0); - rel->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; - break; - - default: - break; - } - - if (r_type == ALPHA_R_NW_RELOC) - rel->howto = &nlm32_alpha_nw_howto; - else - rel->howto = &nlm32_alpha_howto_table[r_type]; - - return TRUE; -} - -/* Mangle Alpha NLM relocs for output. */ - -static bfd_boolean -nlm_alpha_mangle_relocs (bfd *abfd ATTRIBUTE_UNUSED, - asection *sec ATTRIBUTE_UNUSED, - const void * data ATTRIBUTE_UNUSED, - bfd_vma offset ATTRIBUTE_UNUSED, - bfd_size_type count ATTRIBUTE_UNUSED) -{ - return TRUE; -} - -/* Read an ALPHA NLM import record. */ - -static bfd_boolean -nlm_alpha_read_import (bfd *abfd, nlmNAME (symbol_type) * sym) -{ - struct nlm_relent *nlm_relocs; /* Relocation records for symbol. */ - bfd_size_type rcount; /* Number of relocs. */ - bfd_byte temp[NLM_TARGET_LONG_SIZE]; /* Temporary 32-bit value. */ - unsigned char symlength; /* Length of symbol name. */ - char *name; - bfd_size_type amt; - - if (bfd_bread (& symlength, (bfd_size_type) sizeof (symlength), abfd) - != sizeof (symlength)) - return FALSE; - sym -> symbol.the_bfd = abfd; - name = bfd_alloc (abfd, (bfd_size_type) symlength + 1); - if (name == NULL) - return FALSE; - if (bfd_bread (name, (bfd_size_type) symlength, abfd) != symlength) - return FALSE; - name[symlength] = '\0'; - sym -> symbol.name = name; - sym -> symbol.flags = 0; - sym -> symbol.value = 0; - sym -> symbol.section = bfd_und_section_ptr; - if (bfd_bread (temp, (bfd_size_type) sizeof (temp), abfd) - != sizeof (temp)) - return FALSE; - rcount = H_GET_32 (abfd, temp); - amt = rcount * sizeof (struct nlm_relent); - nlm_relocs = bfd_alloc (abfd, amt); - if (!nlm_relocs) - return FALSE; - sym -> relocs = nlm_relocs; - sym -> rcnt = 0; - while (sym -> rcnt < rcount) - { - asection *section; - - if (! nlm_alpha_read_reloc (abfd, sym, §ion, &nlm_relocs -> reloc)) - return FALSE; - nlm_relocs -> section = section; - nlm_relocs++; - sym -> rcnt++; - } - - return TRUE; -} - -/* Write an Alpha NLM reloc. */ - -static bfd_boolean -nlm_alpha_write_import (bfd * abfd, asection * sec, arelent * rel) -{ - asymbol *sym; - bfd_vma r_vaddr; - long r_symndx; - int r_type, r_extern, r_offset, r_size; - struct nlm32_alpha_external_reloc ext; - - sym = *rel->sym_ptr_ptr; - - /* Get values for the relocation fields. */ - r_type = rel->howto->type; - if (r_type != ALPHA_R_NW_RELOC) - { - r_vaddr = bfd_get_section_vma (abfd, sec) + rel->address; - if ((sec->flags & SEC_CODE) == 0) - r_vaddr += bfd_get_section_by_name (abfd, NLM_CODE_NAME) -> size; - if (bfd_is_und_section (bfd_get_section (sym))) - { - r_extern = 1; - r_symndx = 0; - } - else - { - r_extern = 0; - if (bfd_get_section_flags (abfd, bfd_get_section (sym)) & SEC_CODE) - r_symndx = ALPHA_RELOC_SECTION_TEXT; - else - r_symndx = ALPHA_RELOC_SECTION_DATA; - } - r_offset = 0; - r_size = 0; - - switch (r_type) - { - case ALPHA_R_LITUSE: - case ALPHA_R_GPDISP: - r_symndx = rel->addend; - break; - - case ALPHA_R_OP_STORE: - r_size = rel->addend & 0xff; - r_offset = (rel->addend >> 8) & 0xff; - break; - - case ALPHA_R_OP_PUSH: - case ALPHA_R_OP_PSUB: - case ALPHA_R_OP_PRSHIFT: - r_vaddr = rel->addend; - break; - - case ALPHA_R_IGNORE: - r_vaddr = rel->address; - break; - - default: - break; - } - } - else - { - /* r_type == ALPHA_R_NW_RELOC. */ - r_vaddr = rel->address; - if (rel->addend == 0) - { - r_symndx = 0; - r_size = ALPHA_R_NW_RELOC_SETGP; - } - else - { - r_symndx = rel->addend - 1; - r_size = ALPHA_R_NW_RELOC_LITA; - } - r_extern = 0; - r_offset = 0; - } - - /* Swap out the relocation fields. */ - H_PUT_64 (abfd, r_vaddr, ext.r_vaddr); - H_PUT_32 (abfd, r_symndx, ext.r_symndx); - - BFD_ASSERT (bfd_little_endian (abfd)); - - ext.r_bits[0] = ((r_type << RELOC_BITS0_TYPE_SH_LITTLE) - & RELOC_BITS0_TYPE_LITTLE); - ext.r_bits[1] = ((r_extern ? RELOC_BITS1_EXTERN_LITTLE : 0) - | ((r_offset << RELOC_BITS1_OFFSET_SH_LITTLE) - & RELOC_BITS1_OFFSET_LITTLE)); - ext.r_bits[2] = 0; - ext.r_bits[3] = ((r_size << RELOC_BITS3_SIZE_SH_LITTLE) - & RELOC_BITS3_SIZE_LITTLE); - - /* Write out the relocation. */ - if (bfd_bwrite (&ext, (bfd_size_type) sizeof ext, abfd) != sizeof ext) - return FALSE; - - return TRUE; -} - -/* Alpha NetWare does not use the high bit to determine whether a - public symbol is in the code segment or the data segment. Instead, - it just uses the address. The set_public_section and - get_public_offset routines override the default code which uses the - high bit. */ - -/* Set the section for a public symbol. */ - -static bfd_boolean -nlm_alpha_set_public_section (bfd * abfd, nlmNAME (symbol_type) * sym) -{ - asection *code_sec, *data_sec; - - code_sec = bfd_get_section_by_name (abfd, NLM_CODE_NAME); - data_sec = bfd_get_section_by_name (abfd, NLM_INITIALIZED_DATA_NAME); - if (sym->symbol.value < code_sec->size) - { - sym->symbol.section = code_sec; - sym->symbol.flags |= BSF_FUNCTION; - } - else - { - sym->symbol.section = data_sec; - sym->symbol.value -= code_sec->size; - /* The data segment had better be aligned. */ - BFD_ASSERT ((code_sec->size & 0xf) == 0); - } - return TRUE; -} - -/* Get the offset to write out for a public symbol. */ - -static bfd_vma -nlm_alpha_get_public_offset (bfd * abfd ATTRIBUTE_UNUSED, asymbol * sym) -{ - return bfd_asymbol_value (sym); -} - -/* Write an Alpha NLM external symbol. */ - -static bfd_boolean -nlm_alpha_write_external (bfd *abfd, - bfd_size_type count, - asymbol *sym, - struct reloc_and_sec *relocs) -{ - bfd_size_type i; - bfd_byte len; - unsigned char temp[NLM_TARGET_LONG_SIZE]; - arelent r; - - len = strlen (sym->name); - if ((bfd_bwrite (&len, (bfd_size_type) sizeof (bfd_byte), abfd) - != sizeof (bfd_byte)) - || bfd_bwrite (sym->name, (bfd_size_type) len, abfd) != len) - return FALSE; - - bfd_put_32 (abfd, count + 2, temp); - if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp)) - return FALSE; - - /* The first two relocs for each external symbol are the .lita - address and the GP value. */ - r.sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; - r.howto = &nlm32_alpha_nw_howto; - - r.address = nlm_alpha_backend_data (abfd)->lita_address; - r.addend = nlm_alpha_backend_data (abfd)->lita_size + 1; - if (! nlm_alpha_write_import (abfd, NULL, &r)) - return FALSE; - - r.address = nlm_alpha_backend_data (abfd)->gp; - r.addend = 0; - if (! nlm_alpha_write_import (abfd, NULL, &r)) - return FALSE; - - for (i = 0; i < count; i++) - if (! nlm_alpha_write_import (abfd, relocs[i].sec, relocs[i].rel)) - return FALSE; - - return TRUE; -} - -#include "nlmswap.h" - -static const struct nlm_backend_data nlm32_alpha_backend = -{ - "NetWare Alpha Module \032", - sizeof (Nlm32_alpha_External_Fixed_Header), - sizeof (struct nlm32_alpha_external_prefix_header), - bfd_arch_alpha, - 0, - TRUE, /* No uninitialized data permitted by Alpha NetWare. */ - nlm_alpha_backend_object_p, - nlm_alpha_write_prefix, - nlm_alpha_read_reloc, - nlm_alpha_mangle_relocs, - nlm_alpha_read_import, - nlm_alpha_write_import, - nlm_alpha_set_public_section, - nlm_alpha_get_public_offset, - nlm_swap_fixed_header_in, - nlm_swap_fixed_header_out, - nlm_alpha_write_external, - 0, /* Write_export. */ -}; - -#define TARGET_LITTLE_NAME "nlm32-alpha" -#define TARGET_LITTLE_SYM alpha_nlm32_vec -#define TARGET_BACKEND_DATA & nlm32_alpha_backend - -#include "nlm-target.h" diff -Nru gdb-8.1/bfd/nlm32.c gdb-8.2/bfd/nlm32.c --- gdb-8.1/bfd/nlm32.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/nlm32.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,22 +0,0 @@ -/* NLM (NetWare Loadable Module) 32-bit executable support for BFD. - Copyright (C) 1993-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define ARCH_SIZE 32 -#include "nlmcode.h" diff -Nru gdb-8.1/bfd/nlm32-i386.c gdb-8.2/bfd/nlm32-i386.c --- gdb-8.1/bfd/nlm32-i386.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/nlm32-i386.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,429 +0,0 @@ -/* Support for 32-bit i386 NLM (NetWare Loadable Module) - Copyright (C) 1993-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" - -#define ARCH_SIZE 32 - -#include "nlm/i386-ext.h" -#define Nlm_External_Fixed_Header Nlm32_i386_External_Fixed_Header - -#include "libnlm.h" - -/* Adjust the reloc location by an absolute value. */ - -static reloc_howto_type nlm_i386_abs_howto = - HOWTO (0, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 32, /* Bitsize. */ - FALSE, /* PC relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "32", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffffffff, /* Source mask. */ - 0xffffffff, /* Dest mask. */ - FALSE); /* PR rel_offset. */ - -/* Adjust the reloc location by a PC relative displacement. */ - -static reloc_howto_type nlm_i386_pcrel_howto = - HOWTO (1, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 32, /* Bitsize. */ - TRUE, /* PC relative. */ - 0, /* Bitpos. */ - complain_overflow_signed, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "DISP32", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffffffff, /* Source mask. */ - 0xffffffff, /* Dest mask. */ - TRUE); /* PR rel_offset. */ - -/* Read a NetWare i386 reloc. */ - -static bfd_boolean -nlm_i386_read_reloc (bfd *abfd, - nlmNAME (symbol_type) *sym, - asection **secp, - arelent *rel) -{ - bfd_byte temp[4]; - bfd_vma val; - const char *name; - - if (bfd_bread (temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp)) - return FALSE; - - val = bfd_get_32 (abfd, temp); - - /* The value is an offset into either the code or data segment. - This is the location which needs to be adjusted. - - If this is a relocation fixup rather than an imported symbol (the - sym argument is NULL) then the high bit is 0 if the location - needs to be adjusted by the address of the data segment, or 1 if - the location needs to be adjusted by the address of the code - segment. If this is an imported symbol, then the high bit is 0 - if the location is 0 if the location should be adjusted by the - offset to the symbol, or 1 if the location should adjusted by the - absolute value of the symbol. - - The second most significant bit is 0 if the value is an offset - into the data segment, or 1 if the value is an offset into the - code segment. - - All this translates fairly easily into a BFD reloc. */ - - if (sym == NULL) - { - if ((val & NLM_HIBIT) == 0) - name = NLM_INITIALIZED_DATA_NAME; - else - { - name = NLM_CODE_NAME; - val &=~ NLM_HIBIT; - } - rel->sym_ptr_ptr = bfd_get_section_by_name (abfd, name)->symbol_ptr_ptr; - rel->howto = &nlm_i386_abs_howto; - } - else - { - /* In this case we do not need to set the sym_ptr_ptr field. */ - rel->sym_ptr_ptr = NULL; - if ((val & NLM_HIBIT) == 0) - rel->howto = &nlm_i386_pcrel_howto; - else - { - rel->howto = &nlm_i386_abs_howto; - val &=~ NLM_HIBIT; - } - } - - if ((val & (NLM_HIBIT >> 1)) == 0) - *secp = bfd_get_section_by_name (abfd, NLM_INITIALIZED_DATA_NAME); - else - { - *secp = bfd_get_section_by_name (abfd, NLM_CODE_NAME); - val &=~ (NLM_HIBIT >> 1); - } - - rel->address = val; - rel->addend = 0; - - return TRUE; -} - -/* Write a NetWare i386 reloc. */ - -static bfd_boolean -nlm_i386_write_import (bfd * abfd, asection * sec, arelent * rel) -{ - asymbol *sym; - bfd_vma val; - bfd_byte temp[4]; - - /* NetWare only supports two kinds of relocs. We should check - special_function here, as well, but at the moment coff-i386 - relocs uses a special_function which does not affect what we do - here. */ - if (rel->addend != 0 - || rel->howto == NULL - || rel->howto->rightshift != 0 - || rel->howto->size != 2 - || rel->howto->bitsize != 32 - || rel->howto->bitpos != 0 - || rel->howto->src_mask != 0xffffffff - || rel->howto->dst_mask != 0xffffffff) - { - bfd_set_error (bfd_error_invalid_operation); - return FALSE; - } - - sym = *rel->sym_ptr_ptr; - - /* The value we write out is the offset into the appropriate - segment. This offset is the section vma, adjusted by the vma of - the lowest section in that segment, plus the address of the - relocation. */ - val = bfd_get_section_vma (abfd, sec) + rel->address; - - /* The second most significant bit is 0 if the value is an offset - into the data segment, or 1 if the value is an offset into the - code segment. */ - if (bfd_get_section_flags (abfd, sec) & SEC_CODE) - { - val -= nlm_get_text_low (abfd); - val |= NLM_HIBIT >> 1; - } - else - val -= nlm_get_data_low (abfd); - - if (! bfd_is_und_section (bfd_get_section (sym))) - { - /* NetWare only supports absolute internal relocs. */ - if (rel->howto->pc_relative) - { - bfd_set_error (bfd_error_invalid_operation); - return FALSE; - } - - /* The high bit is 1 if the reloc is against the code section, 0 - if against the data section. */ - if (bfd_get_section_flags (abfd, bfd_get_section (sym)) & SEC_CODE) - val |= NLM_HIBIT; - } - else - { - /* The high bit is 1 if this is an absolute reloc, 0 if it is PC - relative. */ - if (! rel->howto->pc_relative) - val |= NLM_HIBIT; - else - { - /* PC relative relocs on NetWare must be pcrel_offset. */ - if (! rel->howto->pcrel_offset) - { - bfd_set_error (bfd_error_invalid_operation); - return FALSE; - } - } - } - - bfd_put_32 (abfd, val, temp); - if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp)) - return FALSE; - - return TRUE; -} - -/* I want to be able to use objcopy to turn an i386 a.out or COFF file - into a NetWare i386 module. That means that the relocs from the - source file have to be mapped into relocs that apply to the target - file. This function is called by nlm_set_section_contents to give - it a chance to rework the relocs. - - This is actually a fairly general concept. However, this is not a - general implementation. */ - -static bfd_boolean -nlm_i386_mangle_relocs (bfd *abfd, - asection *sec, - const void * data, - bfd_vma offset, - bfd_size_type count) -{ - arelent **rel_ptr_ptr, **rel_end; - - rel_ptr_ptr = sec->orelocation; - rel_end = rel_ptr_ptr + sec->reloc_count; - for (; rel_ptr_ptr < rel_end; rel_ptr_ptr++) - { - arelent *rel; - asymbol *sym; - bfd_vma addend; - - rel = *rel_ptr_ptr; - sym = *rel->sym_ptr_ptr; - - /* Note that no serious harm will ensue if we fail to change a - reloc. We will wind up failing in nlm_i386_write_import. */ - - /* Make sure this reloc is within the data we have. We only 4 - byte relocs here, so we insist on having 4 bytes. */ - if (rel->address < offset - || rel->address + 4 > offset + count) - continue; - - /* NetWare doesn't support reloc addends, so we get rid of them - here by simply adding them into the object data. We handle - the symbol value, if any, the same way. */ - addend = rel->addend + sym->value; - - /* The value of a symbol is the offset into the section. If the - symbol is in the .bss segment, we need to include the size of - the data segment in the offset as well. Fortunately, we know - that at this point the size of the data section is in the NLM - header. */ - if (((bfd_get_section_flags (abfd, bfd_get_section (sym)) - & SEC_LOAD) == 0) - && ((bfd_get_section_flags (abfd, bfd_get_section (sym)) - & SEC_ALLOC) != 0)) - addend += nlm_fixed_header (abfd)->dataImageSize; - - if (addend != 0 - && rel->howto != NULL - && rel->howto->rightshift == 0 - && rel->howto->size == 2 - && rel->howto->bitsize == 32 - && rel->howto->bitpos == 0 - && rel->howto->src_mask == 0xffffffff - && rel->howto->dst_mask == 0xffffffff) - { - bfd_vma val; - - val = bfd_get_32 (abfd, (bfd_byte *) data + rel->address - offset); - val += addend; - bfd_put_32 (abfd, val, (bfd_byte *) data + rel->address - offset); - rel->addend = 0; - } - - /* NetWare uses a reloc with pcrel_offset set. We adjust - pc_relative relocs accordingly. We are going to change the - howto field, so we can only do this if the current one is - compatible. We should check special_function here, but at - the moment coff-i386 uses a special_function which does not - affect what we are doing here. */ - if (rel->howto != NULL - && rel->howto->pc_relative - && ! rel->howto->pcrel_offset - && rel->howto->rightshift == 0 - && rel->howto->size == 2 - && rel->howto->bitsize == 32 - && rel->howto->bitpos == 0 - && rel->howto->src_mask == 0xffffffff - && rel->howto->dst_mask == 0xffffffff) - { - bfd_vma val; - - /* When pcrel_offset is not set, it means that the negative - of the address of the memory location is stored in the - memory location. We must add it back in. */ - val = bfd_get_32 (abfd, (bfd_byte *) data + rel->address - offset); - val += rel->address; - bfd_put_32 (abfd, val, (bfd_byte *) data + rel->address - offset); - - rel->howto = &nlm_i386_pcrel_howto; - } - } - - return TRUE; -} - -/* Read a NetWare i386 import record. */ - -static bfd_boolean -nlm_i386_read_import (bfd * abfd, nlmNAME (symbol_type) * sym) -{ - struct nlm_relent *nlm_relocs; /* Relocation records for symbol. */ - bfd_size_type rcount; /* Number of relocs. */ - bfd_byte temp[NLM_TARGET_LONG_SIZE]; /* Temporary 32-bit value. */ - unsigned char symlength; /* Length of symbol name. */ - char *name; - - if (bfd_bread (& symlength, (bfd_size_type) sizeof (symlength), abfd) - != sizeof (symlength)) - return FALSE; - sym -> symbol.the_bfd = abfd; - name = bfd_alloc (abfd, (bfd_size_type) symlength + 1); - if (name == NULL) - return FALSE; - if (bfd_bread (name, (bfd_size_type) symlength, abfd) != symlength) - return FALSE; - name[symlength] = '\0'; - sym -> symbol.name = name; - sym -> symbol.flags = 0; - sym -> symbol.value = 0; - sym -> symbol.section = bfd_und_section_ptr; - if (bfd_bread (temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp)) - return FALSE; - rcount = H_GET_32 (abfd, temp); - nlm_relocs = bfd_alloc (abfd, rcount * sizeof (struct nlm_relent)); - if (!nlm_relocs) - return FALSE; - sym -> relocs = nlm_relocs; - sym -> rcnt = 0; - while (sym -> rcnt < rcount) - { - asection *section; - - if (! nlm_i386_read_reloc (abfd, sym, §ion, &nlm_relocs -> reloc)) - return FALSE; - nlm_relocs -> section = section; - nlm_relocs++; - sym -> rcnt++; - } - return TRUE; -} - -/* Write out an external reference. */ - -static bfd_boolean -nlm_i386_write_external (bfd *abfd, - bfd_size_type count, - asymbol *sym, - struct reloc_and_sec *relocs) -{ - unsigned int i; - bfd_byte len; - unsigned char temp[NLM_TARGET_LONG_SIZE]; - - len = strlen (sym->name); - if ((bfd_bwrite (&len, (bfd_size_type) sizeof (bfd_byte), abfd) - != sizeof (bfd_byte)) - || bfd_bwrite (sym->name, (bfd_size_type) len, abfd) != len) - return FALSE; - - bfd_put_32 (abfd, count, temp); - if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp)) - return FALSE; - - for (i = 0; i < count; i++) - if (! nlm_i386_write_import (abfd, relocs[i].sec, relocs[i].rel)) - return FALSE; - - return TRUE; -} - -#include "nlmswap.h" - -static const struct nlm_backend_data nlm32_i386_backend = -{ - "NetWare Loadable Module\032", - sizeof (Nlm32_i386_External_Fixed_Header), - 0, /* Optional_prefix_size. */ - bfd_arch_i386, - 0, - FALSE, - 0, /* Backend_object_p. */ - 0, /* Write_prefix_func. */ - nlm_i386_read_reloc, - nlm_i386_mangle_relocs, - nlm_i386_read_import, - nlm_i386_write_import, - 0, /* Set_public_section. */ - 0, /* Set_public_offset. */ - nlm_swap_fixed_header_in, - nlm_swap_fixed_header_out, - nlm_i386_write_external, - 0, /* Write_export. */ -}; - -#define TARGET_LITTLE_NAME "nlm32-i386" -#define TARGET_LITTLE_SYM i386_nlm32_vec -#define TARGET_BACKEND_DATA & nlm32_i386_backend - -#include "nlm-target.h" diff -Nru gdb-8.1/bfd/nlm32-ppc.c gdb-8.2/bfd/nlm32-ppc.c --- gdb-8.1/bfd/nlm32-ppc.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/nlm32-ppc.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,986 +0,0 @@ -/* Support for 32-bit PowerPC NLM (NetWare Loadable Module) - Copyright (C) 1994-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" - -/* The format of a PowerPC NLM changed. Define OLDFORMAT to get the - old format. */ - -#define ARCH_SIZE 32 - -#include "nlm/ppc-ext.h" -#define Nlm_External_Fixed_Header Nlm32_powerpc_External_Fixed_Header - -#include "libnlm.h" - -#ifdef OLDFORMAT - -/* The prefix header is only used in the old format. */ - -/* PowerPC NLM's have a prefix header before the standard NLM. This - function reads it in, verifies the version, and seeks the bfd to - the location before the regular NLM header. */ - -static bfd_boolean -nlm_powerpc_backend_object_p (bfd *abfd) -{ - struct nlm32_powerpc_external_prefix_header s; - - if (bfd_bread (& s, (bfd_size_type) sizeof s, abfd) != sizeof s) - return FALSE; - - if (memcmp (s.signature, NLM32_POWERPC_SIGNATURE, sizeof s.signature) != 0 - || H_GET_32 (abfd, s.headerVersion) != NLM32_POWERPC_HEADER_VERSION) - return FALSE; - - return TRUE; -} - -/* Write out the prefix. */ - -static bfd_boolean -nlm_powerpc_write_prefix (bfd *abfd) -{ - struct nlm32_powerpc_external_prefix_header s; - - memset (&s, 0, sizeof s); - memcpy (s.signature, NLM32_POWERPC_SIGNATURE, sizeof s.signature); - H_PUT_32 (abfd, NLM32_POWERPC_HEADER_VERSION, s.headerVersion); - H_PUT_32 (abfd, 0, s.origins); - - /* FIXME: What should we do about the date? */ - - if (bfd_bwrite (& s, (bfd_size_type) sizeof s, abfd) != sizeof s) - return FALSE; - - return TRUE; -} - -/* This reloc handling is only applicable to the old format. */ - -/* How to process the various reloc types. PowerPC NLMs use XCOFF - reloc types, and I have just copied the XCOFF reloc table here. */ - -static reloc_howto_type nlm_powerpc_howto_table[] = -{ - /* Standard 32 bit relocation. */ - HOWTO (0, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 32, /* Bitsize. */ - FALSE, /* PC relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "R_POS", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffffffff, /* Source mask. */ - 0xffffffff, /* Dest mask. */ - FALSE), /* PC rel offset. */ - - /* 32 bit relocation, but store negative value. */ - HOWTO (1, /* Type. */ - 0, /* Rightshift. */ - -2, /* Size (0 = byte, 1 = short, 2 = long). */ - 32, /* Bitsize. */ - FALSE, /* PC relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "R_NEG", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffffffff, /* Source mask. */ - 0xffffffff, /* Dest mask. */ - FALSE), /* PC rel offset. */ - - /* 32 bit PC relative relocation. */ - HOWTO (2, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 32, /* Bitsize. */ - TRUE, /* PC relative. */ - 0, /* Bitpos. */ - complain_overflow_signed, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "R_REL", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffffffff, /* Source mask. */ - 0xffffffff, /* Dest mask. */ - FALSE), /* PC rel offset. */ - - /* 16 bit TOC relative relocation. */ - HOWTO (3, /* Type. */ - 0, /* Rightshift. */ - 1, /* Size (0 = byte, 1 = short, 2 = long). */ - 16, /* Bitsize. */ - FALSE, /* PC relative. */ - 0, /* Bitpos. */ - complain_overflow_signed, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "R_TOC", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffff, /* Source mask. */ - 0xffff, /* Dest mask. */ - FALSE), /* PC rel offset. */ - - /* I don't really know what this is. */ - HOWTO (4, /* Type. */ - 1, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 32, /* Bitsize. */ - FALSE, /* PC relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "R_RTB", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffffffff, /* Source mask. */ - 0xffffffff, /* Dest mask. */ - FALSE), /* PC rel offset. */ - - /* External TOC relative symbol. */ - HOWTO (5, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 16, /* Bitsize. */ - FALSE, /* PC relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "R_GL", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffff, /* Source mask. */ - 0xffff, /* Dest mask. */ - FALSE), /* PC rel offset. */ - - /* Local TOC relative symbol. */ - HOWTO (6, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 16, /* Bitsize. */ - FALSE, /* PC relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "R_TCL", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffff, /* Source mask. */ - 0xffff, /* Dest mask. */ - FALSE), /* PC rel offset. */ - - { 7 }, - - /* Non modifiable absolute branch. */ - HOWTO (8, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 26, /* Bitsize. */ - FALSE, /* PC relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "R_BA", /* Name. */ - TRUE, /* Partial_inplace. */ - 0x3fffffc, /* Source mask. */ - 0x3fffffc, /* Dest mask. */ - FALSE), /* PC rel offset. */ - - { 9 }, - - /* Non modifiable relative branch. */ - HOWTO (0xa, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 26, /* Bitsize. */ - TRUE, /* PC relative. */ - 0, /* Bitpos. */ - complain_overflow_signed, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "R_BR", /* Name. */ - TRUE, /* Partial_inplace. */ - 0x3fffffc, /* Source mask. */ - 0x3fffffc, /* Dest mask. */ - FALSE), /* PC rel offset. */ - - { 0xb }, - - /* Indirect load. */ - HOWTO (0xc, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 16, /* Bitsize. */ - FALSE, /* PC relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "R_RL", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffff, /* Source mask. */ - 0xffff, /* Dest mask. */ - FALSE), /* PC rel offset. */ - - /* Load address. */ - HOWTO (0xd, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 16, /* Bitsize. */ - FALSE, /* PC relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "R_RLA", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffff, /* Source mask. */ - 0xffff, /* Dest mask. */ - FALSE), /* PC rel offset. */ - - { 0xe }, - - /* Non-relocating reference. */ - HOWTO (0xf, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 32, /* Bitsize. */ - FALSE, /* PC relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "R_REF", /* Name. */ - FALSE, /* Partial_inplace. */ - 0, /* Source mask. */ - 0, /* Dest mask. */ - FALSE), /* PC rel offset. */ - - { 0x10 }, - { 0x11 }, - - /* TOC relative indirect load. */ - HOWTO (0x12, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 16, /* Bitsize. */ - FALSE, /* PC relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "R_TRL", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffff, /* Source mask. */ - 0xffff, /* Dest mask. */ - FALSE), /* PC rel offset. */ - - /* TOC relative load address. */ - HOWTO (0x13, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 16, /* Bitsize. */ - FALSE, /* PC relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "R_TRLA", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffff, /* Source mask. */ - 0xffff, /* Dest mask. */ - FALSE), /* PC rel offset. */ - - /* Modifiable relative branch. */ - HOWTO (0x14, /* Type. */ - 1, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 32, /* Bitsize. */ - FALSE, /* PC relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "R_RRTBI", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffffffff, /* Source mask. */ - 0xffffffff, /* Dest mask. */ - FALSE), /* PC rel offset. */ - - /* Modifiable absolute branch. */ - HOWTO (0x15, /* Type. */ - 1, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 32, /* Bitsize. */ - FALSE, /* PC relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "R_RRTBA", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffffffff, /* Source mask. */ - 0xffffffff, /* Dest mask. */ - FALSE), /* PC rel offset. */ - - /* Modifiable call absolute indirect. */ - HOWTO (0x16, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 16, /* Bitsize. */ - FALSE, /* PC relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "R_CAI", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffff, /* Source mask. */ - 0xffff, /* Dest mask. */ - FALSE), /* PC rel offset. */ - - /* Modifiable call relative. */ - HOWTO (0x17, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 16, /* Bitsize. */ - FALSE, /* PC relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "R_REL", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffff, /* Source mask. */ - 0xffff, /* Dest mask. */ - FALSE), /* PC rel offset. */ - - /* Modifiable branch absolute. */ - HOWTO (0x18, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 16, /* Bitsize. */ - FALSE, /* PC relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "R_RBA", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffff, /* Source mask. */ - 0xffff, /* Dest mask. */ - FALSE), /* PC rel offset. */ - - /* Modifiable branch absolute. */ - HOWTO (0x19, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 16, /* Bitsize. */ - FALSE, /* PC relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "R_RBAC", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffff, /* Source mask. */ - 0xffff, /* Dest mask. */ - FALSE), /* PC rel offset. */ - - /* Modifiable branch relative. */ - HOWTO (0x1a, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 26, /* Bitsize. */ - FALSE, /* PC relative. */ - 0, /* Bitpos. */ - complain_overflow_signed, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "R_REL", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffff, /* Source mask. */ - 0xffff, /* Dest mask. */ - FALSE), /* PC rel offset. */ - - /* Modifiable branch absolute. */ - HOWTO (0x1b, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 16, /* Bitsize. */ - FALSE, /* PC relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "R_REL", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffff, /* Source mask. */ - 0xffff, /* Dest mask. */ - FALSE) /* PC rel offset. */ -}; - -#define HOWTO_COUNT (sizeof nlm_powerpc_howto_table \ - / sizeof nlm_powerpc_howto_table[0]) - -/* Read a PowerPC NLM reloc. */ - -static bfd_boolean -nlm_powerpc_read_reloc (bfd *abfd, - nlmNAME (symbol_type) *sym, - asection **secp, - arelent *rel) -{ - struct nlm32_powerpc_external_reloc ext; - bfd_vma l_vaddr; - unsigned long l_symndx; - int l_rtype; - int l_rsecnm; - asection *code_sec, *data_sec, *bss_sec; - - /* Read the reloc from the file. */ - if (bfd_bread (&ext, (bfd_size_type) sizeof ext, abfd) != sizeof ext) - return FALSE; - - /* Swap in the fields. */ - l_vaddr = H_GET_32 (abfd, ext.l_vaddr); - l_symndx = H_GET_32 (abfd, ext.l_symndx); - l_rtype = H_GET_16 (abfd, ext.l_rtype); - l_rsecnm = H_GET_16 (abfd, ext.l_rsecnm); - - /* Get the sections now, for convenience. */ - code_sec = bfd_get_section_by_name (abfd, NLM_CODE_NAME); - data_sec = bfd_get_section_by_name (abfd, NLM_INITIALIZED_DATA_NAME); - bss_sec = bfd_get_section_by_name (abfd, NLM_UNINITIALIZED_DATA_NAME); - - /* Work out the arelent fields. */ - if (sym != NULL) - /* This is an import. sym_ptr_ptr is filled in by - nlm_canonicalize_reloc. */ - rel->sym_ptr_ptr = NULL; - else - { - asection *sec; - - if (l_symndx == 0) - sec = code_sec; - else if (l_symndx == 1) - sec = data_sec; - else if (l_symndx == 2) - sec = bss_sec; - else - { - bfd_set_error (bfd_error_bad_value); - return FALSE; - } - - rel->sym_ptr_ptr = sec->symbol_ptr_ptr; - } - - rel->addend = 0; - - BFD_ASSERT ((l_rtype & 0xff) < HOWTO_COUNT); - - rel->howto = nlm_powerpc_howto_table + (l_rtype & 0xff); - - BFD_ASSERT (rel->howto->name != NULL - && ((l_rtype & 0x8000) != 0 - ? (rel->howto->complain_on_overflow - == complain_overflow_signed) - : (rel->howto->complain_on_overflow - == complain_overflow_bitfield)) - && ((l_rtype >> 8) & 0x1f) == rel->howto->bitsize - 1); - - if (l_rsecnm == 0) - *secp = code_sec; - else if (l_rsecnm == 1) - { - *secp = data_sec; - l_vaddr -= code_sec->size; - } - else - { - bfd_set_error (bfd_error_bad_value); - return FALSE; - } - - rel->address = l_vaddr; - - return TRUE; -} - -#else /* not OLDFORMAT */ - -/* There is only one type of reloc in a PowerPC NLM. */ - -static reloc_howto_type nlm_powerpc_howto = - HOWTO (0, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 32, /* Bitsize. */ - FALSE, /* PC relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "32", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffffffff, /* Source mask. */ - 0xffffffff, /* Dest mask. */ - FALSE); /* PC rel_offset. */ - -/* Read a PowerPC NLM reloc. */ - -static bfd_boolean -nlm_powerpc_read_reloc (bfd *abfd, - nlmNAME (symbol_type) *sym, - asection **secp, - arelent *rel) -{ - bfd_byte temp[4]; - bfd_vma val; - const char *name; - - if (bfd_bread (temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp)) - return FALSE; - - val = bfd_get_32 (abfd, temp); - - /* The value is a word offset into either the code or data segment. - This is the location which needs to be adjusted. - - The high bit is 0 if the value is an offset into the data - segment, or 1 if the value is an offset into the text segment. - - If this is a relocation fixup rather than an imported symbol (the - sym argument is NULL), then the second most significant bit is 0 - if the address of the data segment should be added to the - location addressed by the value, or 1 if the address of the text - segment should be added. - - If this is an imported symbol, the second most significant bit is - not used and must be 0. */ - - if ((val & NLM_HIBIT) == 0) - name = NLM_INITIALIZED_DATA_NAME; - else - { - name = NLM_CODE_NAME; - val &=~ NLM_HIBIT; - } - *secp = bfd_get_section_by_name (abfd, name); - - if (sym == NULL) - { - if ((val & (NLM_HIBIT >> 1)) == 0) - name = NLM_INITIALIZED_DATA_NAME; - else - { - name = NLM_CODE_NAME; - val &=~ (NLM_HIBIT >> 1); - } - rel->sym_ptr_ptr = bfd_get_section_by_name (abfd, name)->symbol_ptr_ptr; - } - - rel->howto = & nlm_powerpc_howto; - rel->address = val << 2; - rel->addend = 0; - - return TRUE; -} - -#endif /* not OLDFORMAT */ - -/* Mangle PowerPC NLM relocs for output. */ - -static bfd_boolean -nlm_powerpc_mangle_relocs (bfd *abfd ATTRIBUTE_UNUSED, - asection *sec ATTRIBUTE_UNUSED, - const void * data ATTRIBUTE_UNUSED, - bfd_vma offset ATTRIBUTE_UNUSED, - bfd_size_type count ATTRIBUTE_UNUSED) -{ - return TRUE; -} - -/* Read a PowerPC NLM import record */ - -static bfd_boolean -nlm_powerpc_read_import (bfd * abfd, nlmNAME (symbol_type) * sym) -{ - struct nlm_relent *nlm_relocs; /* Relocation records for symbol. */ - bfd_size_type rcount; /* Number of relocs. */ - bfd_byte temp[NLM_TARGET_LONG_SIZE]; /* Temporary 32-bit value. */ - unsigned char symlength; /* Length of symbol name. */ - char *name; - - if (bfd_bread (& symlength, (bfd_size_type) sizeof (symlength), abfd) - != sizeof (symlength)) - return FALSE; - sym -> symbol.the_bfd = abfd; - name = bfd_alloc (abfd, (bfd_size_type) symlength + 1); - if (name == NULL) - return FALSE; - if (bfd_bread (name, (bfd_size_type) symlength, abfd) != symlength) - return FALSE; - name[symlength] = '\0'; - sym -> symbol.name = name; - sym -> symbol.flags = 0; - sym -> symbol.value = 0; - sym -> symbol.section = bfd_und_section_ptr; - if (bfd_bread (temp, (bfd_size_type) sizeof (temp), abfd) - != sizeof (temp)) - return FALSE; - rcount = H_GET_32 (abfd, temp); - nlm_relocs = bfd_alloc (abfd, rcount * sizeof (struct nlm_relent)); - if (nlm_relocs == NULL) - return FALSE; - sym -> relocs = nlm_relocs; - sym -> rcnt = 0; - while (sym -> rcnt < rcount) - { - asection *section; - - if (! nlm_powerpc_read_reloc (abfd, sym, §ion, &nlm_relocs -> reloc)) - return FALSE; - nlm_relocs -> section = section; - nlm_relocs++; - sym -> rcnt++; - } - return TRUE; -} - -#ifndef OLDFORMAT - -/* Write a PowerPC NLM reloc. */ - -static bfd_boolean -nlm_powerpc_write_import (bfd * abfd, asection * sec, arelent * rel) -{ - asymbol *sym; - bfd_vma val; - bfd_byte temp[4]; - - /* PowerPC NetWare only supports one kind of reloc. */ - if (rel->addend != 0 - || rel->howto == NULL - || rel->howto->rightshift != 0 - || rel->howto->size != 2 - || rel->howto->bitsize != 32 - || rel->howto->bitpos != 0 - || rel->howto->pc_relative - || (rel->howto->src_mask != 0xffffffff && rel->addend != 0) - || rel->howto->dst_mask != 0xffffffff) - { - bfd_set_error (bfd_error_invalid_operation); - return FALSE; - } - - sym = *rel->sym_ptr_ptr; - - /* The value we write out is the offset into the appropriate - segment, rightshifted by two. This offset is the section vma, - adjusted by the vma of the lowest section in that segment, plus - the address of the relocation. */ - val = bfd_get_section_vma (abfd, sec) + rel->address; - if ((val & 3) != 0) - { - bfd_set_error (bfd_error_bad_value); - return FALSE; - } - val >>= 2; - - /* The high bit is 0 if the reloc is in the data section, or 1 if - the reloc is in the code section. */ - if (bfd_get_section_flags (abfd, sec) & SEC_DATA) - val -= nlm_get_data_low (abfd); - else - { - val -= nlm_get_text_low (abfd); - val |= NLM_HIBIT; - } - - if (! bfd_is_und_section (bfd_get_section (sym))) - { - /* This is an internal relocation fixup. The second most - significant bit is 0 if this is a reloc against the data - segment, or 1 if it is a reloc against the text segment. */ - if (bfd_get_section_flags (abfd, bfd_get_section (sym)) & SEC_CODE) - val |= NLM_HIBIT >> 1; - } - - bfd_put_32 (abfd, val, temp); - if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp)) - return FALSE; - - return TRUE; -} - -#else /* OLDFORMAT */ - -/* This is used for the reloc handling in the old format. */ - -/* Write a PowerPC NLM reloc. */ - -static bfd_boolean -nlm_powerpc_write_reloc (bfd *abfd, - asection *sec, - arelent *rel, - int indx) -{ - struct nlm32_powerpc_external_reloc ext; - asection *code_sec, *data_sec, *bss_sec; - asymbol *sym; - asection *symsec; - unsigned long l_symndx; - int l_rtype; - int l_rsecnm; - reloc_howto_type *howto; - bfd_size_type address; - - /* Get the sections now, for convenience. */ - code_sec = bfd_get_section_by_name (abfd, NLM_CODE_NAME); - data_sec = bfd_get_section_by_name (abfd, NLM_INITIALIZED_DATA_NAME); - bss_sec = bfd_get_section_by_name (abfd, NLM_UNINITIALIZED_DATA_NAME); - - sym = *rel->sym_ptr_ptr; - symsec = bfd_get_section (sym); - if (indx != -1) - { - BFD_ASSERT (bfd_is_und_section (symsec)); - l_symndx = indx + 3; - } - else - { - if (symsec == code_sec) - l_symndx = 0; - else if (symsec == data_sec) - l_symndx = 1; - else if (symsec == bss_sec) - l_symndx = 2; - else - { - bfd_set_error (bfd_error_bad_value); - return FALSE; - } - } - - H_PUT_32 (abfd, l_symndx, ext.l_symndx); - - for (howto = nlm_powerpc_howto_table; - howto < nlm_powerpc_howto_table + HOWTO_COUNT; - howto++) - { - if (howto->rightshift == rel->howto->rightshift - && howto->size == rel->howto->size - && howto->bitsize == rel->howto->bitsize - && howto->pc_relative == rel->howto->pc_relative - && howto->bitpos == rel->howto->bitpos - && (howto->partial_inplace == rel->howto->partial_inplace - || (! rel->howto->partial_inplace - && rel->addend == 0)) - && (howto->src_mask == rel->howto->src_mask - || (rel->howto->src_mask == 0 - && rel->addend == 0)) - && howto->dst_mask == rel->howto->dst_mask - && howto->pcrel_offset == rel->howto->pcrel_offset) - break; - } - if (howto >= nlm_powerpc_howto_table + HOWTO_COUNT) - { - bfd_set_error (bfd_error_bad_value); - return FALSE; - } - - l_rtype = howto->type; - if (howto->complain_on_overflow == complain_overflow_signed) - l_rtype |= 0x8000; - l_rtype |= (howto->bitsize - 1) << 8; - H_PUT_16 (abfd, l_rtype, ext.l_rtype); - - address = rel->address; - - if (sec == code_sec) - l_rsecnm = 0; - else if (sec == data_sec) - { - l_rsecnm = 1; - address += code_sec->size; - } - else - { - bfd_set_error (bfd_error_bad_value); - return FALSE; - } - - H_PUT_16 (abfd, l_rsecnm, ext.l_rsecnm); - H_PUT_32 (abfd, address, ext.l_vaddr); - - if (bfd_bwrite (&ext, (bfd_size_type) sizeof ext, abfd) != sizeof ext) - return FALSE; - - return TRUE; -} - -/* Write a PowerPC NLM import. */ - -static bfd_boolean -nlm_powerpc_write_import (bfd * abfd, asection * sec, arelent * rel) -{ - return nlm_powerpc_write_reloc (abfd, sec, rel, -1); -} - -#endif /* OLDFORMAT */ - -/* Write a PowerPC NLM external symbol. This routine keeps a static - count of the symbol index. FIXME: I don't know if this is - necessary, and the index never gets reset. */ - -static bfd_boolean -nlm_powerpc_write_external (bfd *abfd, - bfd_size_type count, - asymbol *sym, - struct reloc_and_sec *relocs) -{ - unsigned int i; - bfd_byte len; - unsigned char temp[NLM_TARGET_LONG_SIZE]; -#ifdef OLDFORMAT - static int indx; -#endif - - len = strlen (sym->name); - if ((bfd_bwrite (&len, (bfd_size_type) sizeof (bfd_byte), abfd) - != sizeof (bfd_byte)) - || bfd_bwrite (sym->name, (bfd_size_type) len, abfd) != len) - return FALSE; - - bfd_put_32 (abfd, count, temp); - if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp)) - return FALSE; - - for (i = 0; i < count; i++) - { -#ifndef OLDFORMAT - if (! nlm_powerpc_write_import (abfd, relocs[i].sec, relocs[i].rel)) - return FALSE; -#else - if (! nlm_powerpc_write_reloc (abfd, relocs[i].sec, - relocs[i].rel, indx)) - return FALSE; -#endif - } - -#ifdef OLDFORMAT - ++indx; -#endif - - return TRUE; -} - -#ifndef OLDFORMAT - -/* PowerPC Netware uses a word offset, not a byte offset, for public - symbols. */ - -/* Set the section for a public symbol. */ - -static bfd_boolean -nlm_powerpc_set_public_section (bfd *abfd, nlmNAME (symbol_type) *sym) -{ - if (sym->symbol.value & NLM_HIBIT) - { - sym->symbol.value &= ~NLM_HIBIT; - sym->symbol.flags |= BSF_FUNCTION; - sym->symbol.section = - bfd_get_section_by_name (abfd, NLM_CODE_NAME); - } - else - sym->symbol.section = - bfd_get_section_by_name (abfd, NLM_INITIALIZED_DATA_NAME); - - sym->symbol.value <<= 2; - - return TRUE; -} - -/* Get the offset to write out for a public symbol. */ - -static bfd_vma -nlm_powerpc_get_public_offset (bfd *abfd, asymbol *sym) -{ - bfd_vma offset; - asection *sec; - - offset = bfd_asymbol_value (sym); - sec = bfd_get_section (sym); - if (sec->flags & SEC_CODE) - { - offset -= nlm_get_text_low (abfd); - offset |= NLM_HIBIT; - } - else if (sec->flags & (SEC_DATA | SEC_ALLOC)) - { - /* SEC_ALLOC is for the .bss section. */ - offset -= nlm_get_data_low (abfd); - } - else - { - /* We can't handle an exported symbol that is not in the code or - data segment. */ - bfd_set_error (bfd_error_invalid_operation); - /* FIXME: No way to return error. */ - abort (); - } - - return offset; -} - -#endif /* ! defined (OLDFORMAT) */ - -#include "nlmswap.h" - -static const struct nlm_backend_data nlm32_powerpc_backend = -{ - "NetWare PowerPC Module \032", - sizeof (Nlm32_powerpc_External_Fixed_Header), -#ifndef OLDFORMAT - 0, /* Optional_prefix_size. */ -#else - sizeof (struct nlm32_powerpc_external_prefix_header), -#endif - bfd_arch_powerpc, - 0, - FALSE, -#ifndef OLDFORMAT - 0, /* Backend_object_p. */ - 0, /* Write_prefix. */ -#else - nlm_powerpc_backend_object_p, - nlm_powerpc_write_prefix, -#endif - nlm_powerpc_read_reloc, - nlm_powerpc_mangle_relocs, - nlm_powerpc_read_import, - nlm_powerpc_write_import, -#ifndef OLDFORMAT - nlm_powerpc_set_public_section, - nlm_powerpc_get_public_offset, -#else - 0, /* Set_public_section. */ - 0, /* Get_public_offset. */ -#endif - nlm_swap_fixed_header_in, - nlm_swap_fixed_header_out, - nlm_powerpc_write_external, - 0, /* Write_export. */ -}; - -#define TARGET_BIG_NAME "nlm32-powerpc" -#define TARGET_BIG_SYM powerpc_nlm32_vec -#define TARGET_BACKEND_DATA & nlm32_powerpc_backend - -#include "nlm-target.h" diff -Nru gdb-8.1/bfd/nlm32-sparc.c gdb-8.2/bfd/nlm32-sparc.c --- gdb-8.1/bfd/nlm32-sparc.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/nlm32-sparc.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,378 +0,0 @@ -/* Support for 32-bit SPARC NLM (NetWare Loadable Module) - Copyright (C) 1993-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" - -#define ARCH_SIZE 32 - -#include "nlm/sparc32-ext.h" -#define Nlm_External_Fixed_Header Nlm32_sparc_External_Fixed_Header - -#include "libnlm.h" - -enum reloc_type -{ - R_SPARC_NONE = 0, - R_SPARC_8, R_SPARC_16, R_SPARC_32, - R_SPARC_DISP8, R_SPARC_DISP16, R_SPARC_DISP32, - R_SPARC_WDISP30, R_SPARC_WDISP22, - R_SPARC_HI22, R_SPARC_22, - R_SPARC_13, R_SPARC_LO10, - R_SPARC_GOT10, R_SPARC_GOT13, R_SPARC_GOT22, - R_SPARC_PC10, R_SPARC_PC22, - R_SPARC_WPLT30, - R_SPARC_COPY, - R_SPARC_GLOB_DAT, R_SPARC_JMP_SLOT, - R_SPARC_RELATIVE, - R_SPARC_UA32, - R_SPARC_max -}; - -static reloc_howto_type nlm32_sparc_howto_table[] = -{ - HOWTO (R_SPARC_NONE, 0,3, 0,FALSE,0,complain_overflow_dont, 0,"R_SPARC_NONE", FALSE,0,0x00000000,TRUE), - HOWTO (R_SPARC_8, 0,0, 8,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_8", FALSE,0,0x000000ff,TRUE), - HOWTO (R_SPARC_16, 0,1,16,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_16", FALSE,0,0x0000ffff,TRUE), - HOWTO (R_SPARC_32, 0,2,32,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_32", FALSE,0,0xffffffff,TRUE), - HOWTO (R_SPARC_DISP8, 0,0, 8,TRUE, 0,complain_overflow_signed, 0,"R_SPARC_DISP8", FALSE,0,0x000000ff,TRUE), - HOWTO (R_SPARC_DISP16, 0,1,16,TRUE, 0,complain_overflow_signed, 0,"R_SPARC_DISP16", FALSE,0,0x0000ffff,TRUE), - HOWTO (R_SPARC_DISP32, 0,2,32,TRUE, 0,complain_overflow_signed, 0,"R_SPARC_DISP32", FALSE,0,0x00ffffff,TRUE), - HOWTO (R_SPARC_WDISP30, 2,2,30,TRUE, 0,complain_overflow_signed, 0,"R_SPARC_WDISP30", FALSE,0,0x3fffffff,TRUE), - HOWTO (R_SPARC_WDISP22, 2,2,22,TRUE, 0,complain_overflow_signed, 0,"R_SPARC_WDISP22", FALSE,0,0x003fffff,TRUE), - HOWTO (R_SPARC_HI22, 10,2,22,FALSE,0,complain_overflow_dont, 0,"R_SPARC_HI22", FALSE,0,0x003fffff,TRUE), - HOWTO (R_SPARC_22, 0,2,22,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_22", FALSE,0,0x003fffff,TRUE), - HOWTO (R_SPARC_13, 0,2,13,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_13", FALSE,0,0x00001fff,TRUE), - HOWTO (R_SPARC_LO10, 0,2,10,FALSE,0,complain_overflow_dont, 0,"R_SPARC_LO10", FALSE,0,0x000003ff,TRUE), - HOWTO (R_SPARC_GOT10, 0,2,10,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_GOT10", FALSE,0,0x000003ff,TRUE), - HOWTO (R_SPARC_GOT13, 0,2,13,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_GOT13", FALSE,0,0x00001fff,TRUE), - HOWTO (R_SPARC_GOT22, 10,2,22,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_GOT22", FALSE,0,0x003fffff,TRUE), - HOWTO (R_SPARC_PC10, 0,2,10,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_PC10", FALSE,0,0x000003ff,TRUE), - HOWTO (R_SPARC_PC22, 0,2,22,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_PC22", FALSE,0,0x003fffff,TRUE), - HOWTO (R_SPARC_WPLT30, 0,0,00,FALSE,0,complain_overflow_dont, 0,"R_SPARC_WPLT30", FALSE,0,0x00000000,TRUE), - HOWTO (R_SPARC_COPY, 0,0,00,FALSE,0,complain_overflow_dont, 0,"R_SPARC_COPY", FALSE,0,0x00000000,TRUE), - HOWTO (R_SPARC_GLOB_DAT,0,0,00,FALSE,0,complain_overflow_dont, 0,"R_SPARC_GLOB_DAT",FALSE,0,0x00000000,TRUE), - HOWTO (R_SPARC_JMP_SLOT,0,0,00,FALSE,0,complain_overflow_dont, 0,"R_SPARC_JMP_SLOT",FALSE,0,0x00000000,TRUE), - HOWTO (R_SPARC_RELATIVE,0,0,00,FALSE,0,complain_overflow_dont, 0,"R_SPARC_RELATIVE",FALSE,0,0x00000000,TRUE), - HOWTO (R_SPARC_UA32, 0,0,00,FALSE,0,complain_overflow_dont, 0,"R_SPARC_UA32", FALSE,0,0x00000000,TRUE), -}; - -/* Read a NetWare sparc reloc. */ - -struct nlm32_sparc_reloc_ext -{ - unsigned char offset[4]; - unsigned char addend[4]; - unsigned char type[1]; - unsigned char pad1[3]; -}; - -static bfd_boolean -nlm_sparc_read_reloc (bfd *abfd, - nlmNAME (symbol_type) *sym ATTRIBUTE_UNUSED, - asection **secp, - arelent *rel) -{ - bfd_vma val, addend; - unsigned int howto_index; - unsigned int type; - struct nlm32_sparc_reloc_ext tmp_reloc; - asection *code_sec; - - if (bfd_bread (&tmp_reloc, (bfd_size_type) 12, abfd) != 12) - return FALSE; - - code_sec = bfd_get_section_by_name (abfd, NLM_CODE_NAME); - *secp = code_sec; - - val = bfd_get_32 (abfd, tmp_reloc.offset); - addend = bfd_get_32 (abfd, tmp_reloc.addend); - type = bfd_get_8 (abfd, tmp_reloc.type); - - rel->address = val; - rel->addend = addend; - rel->howto = NULL; - - for (howto_index = 0; - howto_index < sizeof (nlm32_sparc_howto_table) / sizeof (reloc_howto_type); - howto_index++) - if (nlm32_sparc_howto_table[howto_index].type == type) - { - rel->howto = &nlm32_sparc_howto_table[howto_index]; - break; - } - -#ifdef DEBUG - fprintf (stderr, "%s: address = %08lx, addend = %08lx, type = %u, howto = %p\n", - __FUNCTION__, (unsigned long) rel->address, - (unsigned long) rel->addend, type, rel->howto); -#endif - return TRUE; - -} - -/* Write a NetWare sparc reloc. */ - -static bfd_boolean -nlm_sparc_write_reloc (bfd * abfd, asection * sec, arelent * rel) -{ - bfd_vma val; - struct nlm32_sparc_reloc_ext tmp_reloc; - unsigned int howto_index; - int type = -1; - reloc_howto_type *tmp; - - for (howto_index = 0; - howto_index < sizeof (nlm32_sparc_howto_table) / sizeof (reloc_howto_type); - howto_index++) - { - tmp = &nlm32_sparc_howto_table[howto_index]; - - if (tmp->rightshift == rel->howto->rightshift - && tmp->size == rel->howto->size - && tmp->bitsize == rel->howto->bitsize - && tmp->pc_relative == rel->howto->pc_relative - && tmp->bitpos == rel->howto->bitpos - && tmp->src_mask == rel->howto->src_mask - && tmp->dst_mask == rel->howto->dst_mask) - { - type = tmp->type; - break; - } - } - if (type == -1) - abort (); - - /* Netware wants a list of relocs for each address. - Format is: - long offset - long addend - char type - That should be it. */ - - /* The value we write out is the offset into the appropriate - segment. This offset is the section vma, adjusted by the vma of - the lowest section in that segment, plus the address of the - relocation. */ - val = bfd_get_section_vma (abfd, sec) + rel->address; - -#ifdef DEBUG - fprintf (stderr, "%s: val = %08lx, addend = %08lx, type = %u\n", - __FUNCTION__, (unsigned long) val, (unsigned long) rel->addend, - rel->howto->type); -#endif - bfd_put_32 (abfd, val, tmp_reloc.offset); - bfd_put_32 (abfd, rel->addend, tmp_reloc.addend); - bfd_put_8 (abfd, (short) (rel->howto->type), tmp_reloc.type); - - if (bfd_bwrite (&tmp_reloc, (bfd_size_type) 12, abfd) != 12) - return FALSE; - - return TRUE; -} - -/* Mangle relocs for SPARC NetWare. We can just use the standard - SPARC relocs. */ - -static bfd_boolean -nlm_sparc_mangle_relocs (bfd *abfd ATTRIBUTE_UNUSED, - asection *sec ATTRIBUTE_UNUSED, - const void * data ATTRIBUTE_UNUSED, - bfd_vma offset ATTRIBUTE_UNUSED, - bfd_size_type count ATTRIBUTE_UNUSED) -{ - return TRUE; -} - -/* Read a NetWare sparc import record. */ - -static bfd_boolean -nlm_sparc_read_import (bfd *abfd, nlmNAME (symbol_type) *sym) -{ - struct nlm_relent *nlm_relocs; /* Relocation records for symbol. */ - bfd_size_type rcount; /* Number of relocs. */ - bfd_byte temp[NLM_TARGET_LONG_SIZE]; /* Temporary 32-bit value. */ - unsigned char symlength; /* Length of symbol name. */ - char *name; - - /* First, read in the number of relocation - entries for this symbol. */ - if (bfd_bread (temp, (bfd_size_type) 4, abfd) != 4) - return FALSE; - - rcount = bfd_get_32 (abfd, temp); - - /* Next, read in the length of the symbol. */ - if (bfd_bread (& symlength, (bfd_size_type) sizeof (symlength), abfd) - != sizeof (symlength)) - return FALSE; - sym -> symbol.the_bfd = abfd; - name = bfd_alloc (abfd, (bfd_size_type) symlength + 1); - if (name == NULL) - return FALSE; - - /* Then read in the symbol. */ - if (bfd_bread (name, (bfd_size_type) symlength, abfd) != symlength) - return FALSE; - name[symlength] = '\0'; - sym -> symbol.name = name; - sym -> symbol.flags = 0; - sym -> symbol.value = 0; - sym -> symbol.section = bfd_und_section_ptr; - - /* Next, start reading in the relocs. */ - nlm_relocs = bfd_alloc (abfd, rcount * sizeof (struct nlm_relent)); - if (!nlm_relocs) - return FALSE; - sym -> relocs = nlm_relocs; - sym -> rcnt = 0; - while (sym -> rcnt < rcount) - { - asection *section; - - if (! nlm_sparc_read_reloc (abfd, sym, §ion, &nlm_relocs -> reloc)) - return FALSE; - nlm_relocs -> section = section; - nlm_relocs++; - sym -> rcnt++; - } - - return TRUE; -} - -static bfd_boolean -nlm_sparc_write_import (bfd * abfd, asection * sec, arelent * rel) -{ - char temp[4]; - asection *code, *data, *bss, *symsec; - bfd_vma base; - - code = bfd_get_section_by_name (abfd, NLM_CODE_NAME); - data = bfd_get_section_by_name (abfd, NLM_INITIALIZED_DATA_NAME); - bss = bfd_get_section_by_name (abfd, NLM_UNINITIALIZED_DATA_NAME); - symsec = (*rel->sym_ptr_ptr)->section; - - if (symsec == code) - base = 0; - else if (symsec == data) - base = code->size; - else if (symsec == bss) - base = code->size + data->size; - else - base = 0; - -#ifdef DEBUG - fprintf (stderr, "%s: <%lx, 1>\n\t", - __FUNCTION__, (unsigned long) (base + (*rel->sym_ptr_ptr)->value)); -#endif - bfd_put_32 (abfd, base + (*rel->sym_ptr_ptr)->value, temp); - if (bfd_bwrite (temp, (bfd_size_type) 4, abfd) != 4) - return FALSE; - bfd_put_32 (abfd, (bfd_vma) 1, temp); - if (bfd_bwrite (temp, (bfd_size_type) 4, abfd) != 4) - return FALSE; - if (! nlm_sparc_write_reloc (abfd, sec, rel)) - return FALSE; - return TRUE; -} - -/* Write out an external reference. */ - -static bfd_boolean -nlm_sparc_write_external (bfd *abfd, - bfd_size_type count, - asymbol *sym, - struct reloc_and_sec *relocs) -{ - unsigned int i; - bfd_byte len; - unsigned char temp[NLM_TARGET_LONG_SIZE]; - - bfd_put_32 (abfd, count, temp); - if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp)) - return FALSE; - - len = strlen (sym->name); - if ((bfd_bwrite (&len, (bfd_size_type) sizeof (bfd_byte), abfd) - != sizeof (bfd_byte)) - || bfd_bwrite (sym->name, (bfd_size_type) len, abfd) != len) - return FALSE; - - for (i = 0; i < count; i++) - if (! nlm_sparc_write_reloc (abfd, relocs[i].sec, relocs[i].rel)) - return FALSE; - - return TRUE; -} - -static bfd_boolean -nlm_sparc_write_export (bfd * abfd, asymbol * sym, bfd_vma value) -{ - bfd_byte len; - bfd_byte temp[4]; - -#ifdef DEBUG - fprintf (stderr, "%s: <%lx, %u, %s>\n", - __FUNCTION__, (unsigned long) value, strlen (sym->name), sym->name); -#endif - bfd_put_32 (abfd, value, temp); - len = strlen (sym->name); - - if (bfd_bwrite (temp, (bfd_size_type) 4, abfd) != 4 - || bfd_bwrite (&len, (bfd_size_type) 1, abfd) != 1 - || bfd_bwrite (sym->name, (bfd_size_type) len, abfd) != len) - return FALSE; - - return TRUE; -} - -#undef nlm_swap_fixed_header_in -#undef nlm_swap_fixed_header_out - -#include "nlmswap.h" - -static const struct nlm_backend_data nlm32_sparc_backend = -{ - "NetWare SPARC Module \032", - sizeof (Nlm32_sparc_External_Fixed_Header), - 0, /* Optional_prefix_size. */ - bfd_arch_sparc, - 0, - FALSE, - 0, /* Backend_object_p. */ - 0, /* Write_prefix_func. */ - nlm_sparc_read_reloc, - nlm_sparc_mangle_relocs, - nlm_sparc_read_import, - nlm_sparc_write_import, - 0, /* Set_public_section. */ - 0, /* Get_public_offset. */ - nlm_swap_fixed_header_in, - nlm_swap_fixed_header_out, - nlm_sparc_write_external, - nlm_sparc_write_export -}; - -#define TARGET_BIG_NAME "nlm32-sparc" -#define TARGET_BIG_SYM sparc_nlm32_vec -#define TARGET_BACKEND_DATA & nlm32_sparc_backend - -#include "nlm-target.h" diff -Nru gdb-8.1/bfd/nlm64.c gdb-8.2/bfd/nlm64.c --- gdb-8.1/bfd/nlm64.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/nlm64.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,22 +0,0 @@ -/* NLM (NetWare Loadable Module) 64-bit executable support for BFD. - Copyright (C) 1993-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define ARCH_SIZE 64 -#include "nlmcode.h" diff -Nru gdb-8.1/bfd/nlm.c gdb-8.2/bfd/nlm.c --- gdb-8.1/bfd/nlm.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/nlm.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,55 +0,0 @@ -/* NLM (NetWare Loadable Module) executable support for BFD. - Copyright (C) 1993-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "libnlm.h" - -/* Make an NLM object. We just need to allocate the backend - information. */ - -bfd_boolean -nlm_mkobject (bfd * abfd) -{ - bfd_size_type amt = sizeof (struct nlm_obj_tdata); - - nlm_tdata (abfd) = bfd_zalloc (abfd, amt); - if (nlm_tdata (abfd) == NULL) - return FALSE; - - if (nlm_architecture (abfd) != bfd_arch_unknown) - bfd_default_set_arch_mach (abfd, nlm_architecture (abfd), - nlm_machine (abfd)); - - /* Since everything is done at close time, do we need any initialization ? */ - return TRUE; -} - -/* Set the architecture and machine for an NLM object. */ - -bfd_boolean -nlm_set_arch_mach (bfd * abfd, - enum bfd_architecture arch, - unsigned long machine) -{ - bfd_default_set_arch_mach (abfd, arch, machine); - return arch == nlm_architecture (abfd); -} diff -Nru gdb-8.1/bfd/nlmcode.h gdb-8.2/bfd/nlmcode.h --- gdb-8.1/bfd/nlmcode.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/nlmcode.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,1982 +0,0 @@ -/* NLM (NetWare Loadable Module) executable support for BFD. - Copyright (C) 1993-2018 Free Software Foundation, Inc. - - Written by Fred Fish @ Cygnus Support, using ELF support as the - template. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "libnlm.h" - -/* The functions in this file do not use the names they appear to use. - This file is actually compiled multiple times, once for each size - of NLM target we are using. At each size we use a different name, - constructed by the macro nlmNAME. For example, the function which - is named nlm_symbol_type below is actually named nlm32_symbol_type - in the final executable. */ - -#define Nlm_External_Fixed_Header NlmNAME (External_Fixed_Header) -#define Nlm_External_Version_Header NlmNAME (External_Version_Header) -#define Nlm_External_Copyright_Header NlmNAME (External_Copyright_Header) -#define Nlm_External_Extended_Header NlmNAME (External_Extended_Header) -#define Nlm_External_Custom_Header NlmNAME (External_Custom_Header) -#define Nlm_External_Cygnus_Ext_Header NlmNAME (External_Cygnus_Ext_Header) - -#define nlm_symbol_type nlmNAME (symbol_type) -#define nlm_get_symtab_upper_bound nlmNAME (get_symtab_upper_bound) -#define nlm_canonicalize_symtab nlmNAME (canonicalize_symtab) -#define nlm_make_empty_symbol nlmNAME (make_empty_symbol) -#define nlm_print_symbol nlmNAME (print_symbol) -#define nlm_get_symbol_info nlmNAME (get_symbol_info) -#define nlm_get_reloc_upper_bound nlmNAME (get_reloc_upper_bound) -#define nlm_canonicalize_reloc nlmNAME (canonicalize_reloc) -#define nlm_object_p nlmNAME (object_p) -#define nlm_set_section_contents nlmNAME (set_section_contents) -#define nlm_write_object_contents nlmNAME (write_object_contents) - -#define nlm_swap_fixed_header_in(abfd,src,dst) \ - (nlm_swap_fixed_header_in_func (abfd)) (abfd, src, dst) -#define nlm_swap_fixed_header_out(abfd,src,dst) \ - (nlm_swap_fixed_header_out_func (abfd)) (abfd, src, dst) - -/* Should perhaps use put_offset, put_word, etc. For now, the two versions - can be handled by explicitly specifying 32 bits or "the long type". */ -#if ARCH_SIZE == 64 -#define put_word H_PUT_64 -#define get_word H_GET_64 -#endif -#if ARCH_SIZE == 32 -#define put_word H_PUT_32 -#define get_word H_GET_32 -#endif - -/* Read and swap in the variable length header. All the fields must - exist in the NLM, and must exist in the order they are read here. */ - -static bfd_boolean -nlm_swap_variable_header_in (bfd *abfd) -{ - unsigned char temp[NLM_TARGET_LONG_SIZE]; - bfd_size_type amt; - - /* Read the description length and text members. */ - amt = sizeof (nlm_variable_header (abfd)->descriptionLength); - if (bfd_bread ((void *) &nlm_variable_header (abfd)->descriptionLength, - amt, abfd) != amt) - return FALSE; - amt = nlm_variable_header (abfd)->descriptionLength + 1; - if (bfd_bread ((void *) nlm_variable_header (abfd)->descriptionText, - amt, abfd) != amt) - return FALSE; - - /* Read and convert the stackSize field. */ - amt = sizeof (temp); - if (bfd_bread ((void *) temp, amt, abfd) != amt) - return FALSE; - nlm_variable_header (abfd)->stackSize = get_word (abfd, (bfd_byte *) temp); - - /* Read and convert the reserved field. */ - amt = sizeof (temp); - if (bfd_bread ((void *) temp, amt, abfd) != amt) - return FALSE; - nlm_variable_header (abfd)->reserved = get_word (abfd, (bfd_byte *) temp); - - /* Read the oldThreadName field. This field is a fixed length string. */ - amt = sizeof (nlm_variable_header (abfd)->oldThreadName); - if (bfd_bread ((void *) nlm_variable_header (abfd)->oldThreadName, - amt, abfd) != amt) - return FALSE; - - /* Read the screen name length and text members. */ - amt = sizeof (nlm_variable_header (abfd)->screenNameLength); - if (bfd_bread ((void *) & nlm_variable_header (abfd)->screenNameLength, - amt, abfd) != amt) - return FALSE; - amt = nlm_variable_header (abfd)->screenNameLength + 1; - if (bfd_bread ((void *) nlm_variable_header (abfd)->screenName, - amt, abfd) != amt) - return FALSE; - - /* Read the thread name length and text members. */ - amt = sizeof (nlm_variable_header (abfd)->threadNameLength); - if (bfd_bread ((void *) & nlm_variable_header (abfd)->threadNameLength, - amt, abfd) != amt) - return FALSE; - amt = nlm_variable_header (abfd)->threadNameLength + 1; - if (bfd_bread ((void *) nlm_variable_header (abfd)->threadName, - amt, abfd) != amt) - return FALSE; - return TRUE; -} - -/* Add a section to the bfd. */ - -static bfd_boolean -add_bfd_section (bfd *abfd, - char *name, - file_ptr offset, - bfd_size_type size, - flagword flags) -{ - asection *newsect; - - newsect = bfd_make_section_with_flags (abfd, name, flags); - if (newsect == NULL) - return FALSE; - - newsect->vma = 0; /* NLM's are relocatable. */ - newsect->size = size; - newsect->filepos = offset; - newsect->alignment_power = bfd_log2 ((bfd_vma) 0); /* FIXME */ - - return TRUE; -} - -/* Read and swap in the contents of all the auxiliary headers. Because of - the braindead design, we have to do strcmps on strings of indeterminate - length to figure out what each auxiliary header is. Even worse, we have - no way of knowing how many auxiliary headers there are or where the end - of the auxiliary headers are, except by finding something that doesn't - look like a known auxiliary header. This means that the first new type - of auxiliary header added will break all existing tools that don't - recognize it. */ - -static bfd_boolean -nlm_swap_auxiliary_headers_in (bfd *abfd) -{ - char tempstr[16]; - file_ptr position; - bfd_size_type amt; - - for (;;) - { - position = bfd_tell (abfd); - amt = sizeof (tempstr); - if (bfd_bread ((void *) tempstr, amt, abfd) != amt) - return FALSE; - if (bfd_seek (abfd, position, SEEK_SET) != 0) - return FALSE; - if (CONST_STRNEQ (tempstr, "VeRsIoN#")) - { - Nlm_External_Version_Header thdr; - - amt = sizeof (thdr); - if (bfd_bread ((void *) &thdr, amt, abfd) != amt) - return FALSE; - memcpy (nlm_version_header (abfd)->stamp, thdr.stamp, - sizeof (thdr.stamp)); - nlm_version_header (abfd)->majorVersion = - get_word (abfd, (bfd_byte *) thdr.majorVersion); - nlm_version_header (abfd)->minorVersion = - get_word (abfd, (bfd_byte *) thdr.minorVersion); - nlm_version_header (abfd)->revision = - get_word (abfd, (bfd_byte *) thdr.revision); - nlm_version_header (abfd)->year = - get_word (abfd, (bfd_byte *) thdr.year); - nlm_version_header (abfd)->month = - get_word (abfd, (bfd_byte *) thdr.month); - nlm_version_header (abfd)->day = - get_word (abfd, (bfd_byte *) thdr.day); - } - else if (CONST_STRNEQ (tempstr, "MeSsAgEs")) - { - Nlm_External_Extended_Header thdr; - - amt = sizeof (thdr); - if (bfd_bread ((void *) &thdr, amt, abfd) != amt) - return FALSE; - memcpy (nlm_extended_header (abfd)->stamp, thdr.stamp, - sizeof (thdr.stamp)); - nlm_extended_header (abfd)->languageID = - get_word (abfd, (bfd_byte *) thdr.languageID); - nlm_extended_header (abfd)->messageFileOffset = - get_word (abfd, (bfd_byte *) thdr.messageFileOffset); - nlm_extended_header (abfd)->messageFileLength = - get_word (abfd, (bfd_byte *) thdr.messageFileLength); - nlm_extended_header (abfd)->messageCount = - get_word (abfd, (bfd_byte *) thdr.messageCount); - nlm_extended_header (abfd)->helpFileOffset = - get_word (abfd, (bfd_byte *) thdr.helpFileOffset); - nlm_extended_header (abfd)->helpFileLength = - get_word (abfd, (bfd_byte *) thdr.helpFileLength); - nlm_extended_header (abfd)->RPCDataOffset = - get_word (abfd, (bfd_byte *) thdr.RPCDataOffset); - nlm_extended_header (abfd)->RPCDataLength = - get_word (abfd, (bfd_byte *) thdr.RPCDataLength); - nlm_extended_header (abfd)->sharedCodeOffset = - get_word (abfd, (bfd_byte *) thdr.sharedCodeOffset); - nlm_extended_header (abfd)->sharedCodeLength = - get_word (abfd, (bfd_byte *) thdr.sharedCodeLength); - nlm_extended_header (abfd)->sharedDataOffset = - get_word (abfd, (bfd_byte *) thdr.sharedDataOffset); - nlm_extended_header (abfd)->sharedDataLength = - get_word (abfd, (bfd_byte *) thdr.sharedDataLength); - nlm_extended_header (abfd)->sharedRelocationFixupOffset = - get_word (abfd, (bfd_byte *) thdr.sharedRelocationFixupOffset); - nlm_extended_header (abfd)->sharedRelocationFixupCount = - get_word (abfd, (bfd_byte *) thdr.sharedRelocationFixupCount); - nlm_extended_header (abfd)->sharedExternalReferenceOffset = - get_word (abfd, (bfd_byte *) thdr.sharedExternalReferenceOffset); - nlm_extended_header (abfd)->sharedExternalReferenceCount = - get_word (abfd, (bfd_byte *) thdr.sharedExternalReferenceCount); - nlm_extended_header (abfd)->sharedPublicsOffset = - get_word (abfd, (bfd_byte *) thdr.sharedPublicsOffset); - nlm_extended_header (abfd)->sharedPublicsCount = - get_word (abfd, (bfd_byte *) thdr.sharedPublicsCount); - nlm_extended_header (abfd)->sharedDebugRecordOffset = - get_word (abfd, (bfd_byte *) thdr.sharedDebugRecordOffset); - nlm_extended_header (abfd)->sharedDebugRecordCount = - get_word (abfd, (bfd_byte *) thdr.sharedDebugRecordCount); - nlm_extended_header (abfd)->SharedInitializationOffset = - get_word (abfd, (bfd_byte *) thdr.sharedInitializationOffset); - nlm_extended_header (abfd)->SharedExitProcedureOffset = - get_word (abfd, (bfd_byte *) thdr.SharedExitProcedureOffset); - nlm_extended_header (abfd)->productID = - get_word (abfd, (bfd_byte *) thdr.productID); - nlm_extended_header (abfd)->reserved0 = - get_word (abfd, (bfd_byte *) thdr.reserved0); - nlm_extended_header (abfd)->reserved1 = - get_word (abfd, (bfd_byte *) thdr.reserved1); - nlm_extended_header (abfd)->reserved2 = - get_word (abfd, (bfd_byte *) thdr.reserved2); - nlm_extended_header (abfd)->reserved3 = - get_word (abfd, (bfd_byte *) thdr.reserved3); - nlm_extended_header (abfd)->reserved4 = - get_word (abfd, (bfd_byte *) thdr.reserved4); - nlm_extended_header (abfd)->reserved5 = - get_word (abfd, (bfd_byte *) thdr.reserved5); - } - else if (CONST_STRNEQ (tempstr, "CoPyRiGhT=")) - { - amt = sizeof (nlm_copyright_header (abfd)->stamp); - if (bfd_bread ((void *) nlm_copyright_header (abfd)->stamp, - amt, abfd) != amt) - return FALSE; - if (bfd_bread ((void *) &(nlm_copyright_header (abfd) - ->copyrightMessageLength), - (bfd_size_type) 1, abfd) != 1) - return FALSE; - /* The copyright message is a variable length string. */ - amt = nlm_copyright_header (abfd)->copyrightMessageLength + 1; - if (bfd_bread ((void *) nlm_copyright_header (abfd)->copyrightMessage, - amt, abfd) != amt) - return FALSE; - } - else if (CONST_STRNEQ (tempstr, "CuStHeAd")) - { - Nlm_External_Custom_Header thdr; - bfd_size_type hdrLength; - file_ptr dataOffset; - bfd_size_type dataLength; - char dataStamp[8]; - void * hdr; - - /* Read the stamp ("CuStHeAd"). */ - amt = sizeof (thdr.stamp); - if (bfd_bread ((void *) thdr.stamp, amt, abfd) != amt) - return FALSE; - /* Read the length of this custom header. */ - amt = sizeof (thdr.length); - if (bfd_bread ((void *) thdr.length, amt, abfd) != amt) - return FALSE; - hdrLength = get_word (abfd, (bfd_byte *) thdr.length); - /* Read further fields if we have them. */ - if (hdrLength < NLM_TARGET_LONG_SIZE) - dataOffset = 0; - else - { - amt = sizeof (thdr.dataOffset); - if (bfd_bread ((void *) thdr.dataOffset, amt, abfd) != amt) - return FALSE; - dataOffset = get_word (abfd, (bfd_byte *) thdr.dataOffset); - } - if (hdrLength < 2 * NLM_TARGET_LONG_SIZE) - dataLength = 0; - else - { - amt = sizeof (thdr.dataLength); - if (bfd_bread ((void *) thdr.dataLength, amt, abfd) != amt) - return FALSE; - dataLength = get_word (abfd, (bfd_byte *) thdr.dataLength); - } - if (hdrLength < 2 * NLM_TARGET_LONG_SIZE + 8) - memset (dataStamp, 0, sizeof (dataStamp)); - else - { - amt = sizeof (dataStamp); - if (bfd_bread ((void *) dataStamp, amt, abfd) != amt) - return FALSE; - } - - /* Read the rest of the header, if any. */ - if (hdrLength <= 2 * NLM_TARGET_LONG_SIZE + 8) - { - hdr = NULL; - hdrLength = 0; - } - else - { - hdrLength -= 2 * NLM_TARGET_LONG_SIZE + 8; - hdr = bfd_alloc (abfd, hdrLength); - if (hdr == NULL) - return FALSE; - if (bfd_bread (hdr, hdrLength, abfd) != hdrLength) - return FALSE; - } - - /* If we have found a Cygnus header, process it. Otherwise, - just save the associated data without trying to interpret - it. */ - if (CONST_STRNEQ (dataStamp, "CyGnUsEx")) - { - file_ptr pos; - bfd_byte *contents; - bfd_byte *p, *pend; - - /* See PR 21840 for a reproducer. */ - if (hdrLength != 0 || hdr != NULL) - return FALSE; - - pos = bfd_tell (abfd); - if (bfd_seek (abfd, dataOffset, SEEK_SET) != 0) - return FALSE; - contents = bfd_alloc (abfd, dataLength); - if (contents == NULL) - return FALSE; - if (bfd_bread (contents, dataLength, abfd) != dataLength) - return FALSE; - if (bfd_seek (abfd, pos, SEEK_SET) != 0) - return FALSE; - - LITMEMCPY (nlm_cygnus_ext_header (abfd), "CyGnUsEx"); - nlm_cygnus_ext_header (abfd)->offset = dataOffset; - nlm_cygnus_ext_header (abfd)->length = dataLength; - - /* This data this header points to provides a list of - the sections which were in the original object file - which was converted to become an NLM. We locate - those sections and add them to the BFD. Note that - this is likely to create a second .text, .data and - .bss section; retrieving the sections by name will - get the actual NLM sections, which is what we want to - happen. The sections from the original file, which - may be subsets of the NLM section, can only be found - using bfd_map_over_sections. */ - p = contents; - pend = p + dataLength; - while (p < pend) - { - char *name; - size_t l; - file_ptr filepos; - bfd_size_type size; - asection *newsec; - - /* The format of this information is - null terminated section name - zeroes to adjust to 4 byte boundary - 4 byte section data file pointer - 4 byte section size. */ - - name = (char *) p; - l = strlen (name) + 1; - l = (l + 3) &~ (size_t) 3; - p += l; - filepos = H_GET_32 (abfd, p); - p += 4; - size = H_GET_32 (abfd, p); - p += 4; - - newsec = bfd_make_section_anyway (abfd, name); - if (newsec == NULL) - return FALSE; - newsec->size = size; - if (filepos != 0) - { - newsec->filepos = filepos; - newsec->flags |= SEC_HAS_CONTENTS; - } - } - } - else - { - memcpy (nlm_custom_header (abfd)->stamp, thdr.stamp, - sizeof (thdr.stamp)); - nlm_custom_header (abfd)->hdrLength = hdrLength; - nlm_custom_header (abfd)->dataOffset = dataOffset; - nlm_custom_header (abfd)->dataLength = dataLength; - memcpy (nlm_custom_header (abfd)->dataStamp, dataStamp, - sizeof (dataStamp)); - nlm_custom_header (abfd)->hdr = hdr; - } - } - else - break; - } - return TRUE; -} - -const bfd_target * -nlm_object_p (bfd *abfd) -{ - struct nlm_obj_tdata *preserved_tdata = nlm_tdata (abfd); - bfd_boolean (*backend_object_p) (bfd *); - void * x_fxdhdr = NULL; - Nlm_Internal_Fixed_Header *i_fxdhdrp; - struct nlm_obj_tdata *new_tdata = NULL; - const char *signature; - enum bfd_architecture arch; - bfd_size_type amt; - - /* Some NLM formats have a prefix before the standard NLM fixed - header. */ - backend_object_p = nlm_backend_object_p_func (abfd); - if (backend_object_p) - { - if (!(*backend_object_p) (abfd)) - goto got_wrong_format_error; - } - - /* Read in the fixed length portion of the NLM header in external format. */ - amt = nlm_fixed_header_size (abfd); - x_fxdhdr = bfd_malloc (amt); - if (x_fxdhdr == NULL) - goto got_no_match; - - if (bfd_bread ((void *) x_fxdhdr, amt, abfd) != amt) - { - if (bfd_get_error () != bfd_error_system_call) - goto got_wrong_format_error; - else - goto got_no_match; - } - - /* Allocate an instance of the nlm_obj_tdata structure and hook it up to - the tdata pointer in the bfd. */ - amt = sizeof (struct nlm_obj_tdata); - new_tdata = bfd_zalloc (abfd, amt); - if (new_tdata == NULL) - goto got_no_match; - - nlm_tdata (abfd) = new_tdata; - - i_fxdhdrp = nlm_fixed_header (abfd); - nlm_swap_fixed_header_in (abfd, x_fxdhdr, i_fxdhdrp); - free (x_fxdhdr); - x_fxdhdr = NULL; - - /* Check to see if we have an NLM file for this backend by matching - the NLM signature. */ - signature = nlm_signature (abfd); - if (signature != NULL - && *signature != '\0' - && strncmp ((char *) i_fxdhdrp->signature, signature, - NLM_SIGNATURE_SIZE) != 0) - goto got_wrong_format_error; - - /* There's no supported way to discover the endianness of an NLM, so test for - a sane version number after doing byte swapping appropriate for this - XVEC. (Hack alert!) */ - if (i_fxdhdrp->version > 0xFFFF) - goto got_wrong_format_error; - - /* There's no supported way to check for 32 bit versus 64 bit addresses, - so ignore this distinction for now. (FIXME) */ - /* Swap in the rest of the required header. */ - if (!nlm_swap_variable_header_in (abfd)) - { - if (bfd_get_error () != bfd_error_system_call) - goto got_wrong_format_error; - else - goto got_no_match; - } - - /* Add the sections supplied by all NLM's, and then read in the - auxiliary headers. Reading the auxiliary headers may create - additional sections described in the cygnus_ext header. - From this point on we assume that we have an NLM, and do not - treat errors as indicating the wrong format. */ - if (!add_bfd_section (abfd, NLM_CODE_NAME, - i_fxdhdrp->codeImageOffset, - i_fxdhdrp->codeImageSize, - (SEC_CODE | SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS - | SEC_RELOC)) - || !add_bfd_section (abfd, NLM_INITIALIZED_DATA_NAME, - i_fxdhdrp->dataImageOffset, - i_fxdhdrp->dataImageSize, - (SEC_DATA | SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS - | SEC_RELOC)) - || !add_bfd_section (abfd, NLM_UNINITIALIZED_DATA_NAME, - (file_ptr) 0, - i_fxdhdrp->uninitializedDataSize, - SEC_ALLOC)) - goto got_no_match; - - if (!nlm_swap_auxiliary_headers_in (abfd)) - goto got_no_match; - - if (nlm_fixed_header (abfd)->numberOfRelocationFixups != 0 - || nlm_fixed_header (abfd)->numberOfExternalReferences != 0) - abfd->flags |= HAS_RELOC; - if (nlm_fixed_header (abfd)->numberOfPublics != 0 - || nlm_fixed_header (abfd)->numberOfDebugRecords != 0 - || nlm_fixed_header (abfd)->numberOfExternalReferences != 0) - abfd->flags |= HAS_SYMS; - - arch = nlm_architecture (abfd); - if (arch != bfd_arch_unknown) - bfd_default_set_arch_mach (abfd, arch, (unsigned long) 0); - - abfd->flags |= EXEC_P; - bfd_get_start_address (abfd) = nlm_fixed_header (abfd)->codeStartOffset; - - return abfd->xvec; - -got_wrong_format_error: - bfd_set_error (bfd_error_wrong_format); -got_no_match: - nlm_tdata (abfd) = preserved_tdata; - if (new_tdata != NULL) - bfd_release (abfd, new_tdata); - if (x_fxdhdr != NULL) - free (x_fxdhdr); - - return NULL; -} - -/* Swap and write out the variable length header. All the fields must - exist in the NLM, and must exist in this order. */ - -static bfd_boolean -nlm_swap_variable_header_out (bfd *abfd) -{ - bfd_byte temp[NLM_TARGET_LONG_SIZE]; - bfd_size_type amt; - - /* Write the description length and text members. */ - amt = sizeof (nlm_variable_header (abfd)->descriptionLength); - if (bfd_bwrite (& nlm_variable_header (abfd)->descriptionLength, amt, - abfd) != amt) - return FALSE; - amt = nlm_variable_header (abfd)->descriptionLength + 1; - if (bfd_bwrite ((void *) nlm_variable_header (abfd)->descriptionText, amt, - abfd) != amt) - return FALSE; - - /* Convert and write the stackSize field. */ - put_word (abfd, (bfd_vma) nlm_variable_header (abfd)->stackSize, temp); - amt = sizeof (temp); - if (bfd_bwrite (temp, amt, abfd) != amt) - return FALSE; - - /* Convert and write the reserved field. */ - put_word (abfd, (bfd_vma) nlm_variable_header (abfd)->reserved, temp); - amt = sizeof (temp); - if (bfd_bwrite (temp, amt, abfd) != amt) - return FALSE; - - /* Write the oldThreadName field. This field is a fixed length string. */ - amt = sizeof (nlm_variable_header (abfd)->oldThreadName); - if (bfd_bwrite (nlm_variable_header (abfd)->oldThreadName, amt, - abfd) != amt) - return FALSE; - - /* Write the screen name length and text members. */ - amt = sizeof (nlm_variable_header (abfd)->screenNameLength); - if (bfd_bwrite (& nlm_variable_header (abfd)->screenNameLength, amt, - abfd) != amt) - return FALSE; - amt = nlm_variable_header (abfd)->screenNameLength + 1; - if (bfd_bwrite (nlm_variable_header (abfd)->screenName, amt, abfd) != amt) - return FALSE; - - /* Write the thread name length and text members. */ - amt = sizeof (nlm_variable_header (abfd)->threadNameLength); - if (bfd_bwrite (& nlm_variable_header (abfd)->threadNameLength, amt, - abfd) != amt) - return FALSE; - amt = nlm_variable_header (abfd)->threadNameLength + 1; - if (bfd_bwrite (nlm_variable_header (abfd)->threadName, amt, abfd) != amt) - return FALSE; - return TRUE; -} - -/* Return whether there is a non-zero byte in a memory block. */ - -static bfd_boolean -find_nonzero (void * buf, size_t size) -{ - char *p = (char *) buf; - - while (size-- != 0) - if (*p++ != 0) - return TRUE; - return FALSE; -} - -/* Swap out the contents of the auxiliary headers. We create those - auxiliary headers which have been set non-zero. We do not require - the caller to set up the stamp fields. */ - -static bfd_boolean -nlm_swap_auxiliary_headers_out (bfd *abfd) -{ - bfd_size_type amt; - - /* Write out the version header if there is one. */ - if (find_nonzero (nlm_version_header (abfd), - sizeof (Nlm_Internal_Version_Header))) - { - Nlm_External_Version_Header thdr; - - LITMEMCPY (thdr.stamp, "VeRsIoN#"); - put_word (abfd, (bfd_vma) nlm_version_header (abfd)->majorVersion, - (bfd_byte *) thdr.majorVersion); - put_word (abfd, (bfd_vma) nlm_version_header (abfd)->minorVersion, - (bfd_byte *) thdr.minorVersion); - put_word (abfd, (bfd_vma) nlm_version_header (abfd)->revision, - (bfd_byte *) thdr.revision); - put_word (abfd, (bfd_vma) nlm_version_header (abfd)->year, - (bfd_byte *) thdr.year); - put_word (abfd, (bfd_vma) nlm_version_header (abfd)->month, - (bfd_byte *) thdr.month); - put_word (abfd, (bfd_vma) nlm_version_header (abfd)->day, - (bfd_byte *) thdr.day); - if (bfd_bwrite ((void *) &thdr, (bfd_size_type) sizeof (thdr), abfd) - != sizeof (thdr)) - return FALSE; - } - - /* Note - the CoPyRiGhT tag is emitted before the MeSsAgEs - tag in order to make the NW4.x and NW5.x loaders happy. */ - - /* Write out the copyright header if there is one. */ - if (find_nonzero (nlm_copyright_header (abfd), - sizeof (Nlm_Internal_Copyright_Header))) - { - Nlm_External_Copyright_Header thdr; - - LITMEMCPY (thdr.stamp, "CoPyRiGhT="); - amt = sizeof (thdr.stamp); - if (bfd_bwrite ((void *) thdr.stamp, amt, abfd) != amt) - return FALSE; - thdr.copyrightMessageLength[0] = - nlm_copyright_header (abfd)->copyrightMessageLength; - amt = 1; - if (bfd_bwrite ((void *) thdr.copyrightMessageLength, amt, abfd) != amt) - return FALSE; - /* The copyright message is a variable length string. */ - amt = nlm_copyright_header (abfd)->copyrightMessageLength + 1; - if (bfd_bwrite ((void *) nlm_copyright_header (abfd)->copyrightMessage, - amt, abfd) != amt) - return FALSE; - } - - /* Write out the extended header if there is one. */ - if (find_nonzero (nlm_extended_header (abfd), - sizeof (Nlm_Internal_Extended_Header))) - { - Nlm_External_Extended_Header thdr; - - LITMEMCPY (thdr.stamp, "MeSsAgEs"); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->languageID, - (bfd_byte *) thdr.languageID); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->messageFileOffset, - (bfd_byte *) thdr.messageFileOffset); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->messageFileLength, - (bfd_byte *) thdr.messageFileLength); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->messageCount, - (bfd_byte *) thdr.messageCount); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->helpFileOffset, - (bfd_byte *) thdr.helpFileOffset); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->helpFileLength, - (bfd_byte *) thdr.helpFileLength); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->RPCDataOffset, - (bfd_byte *) thdr.RPCDataOffset); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->RPCDataLength, - (bfd_byte *) thdr.RPCDataLength); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->sharedCodeOffset, - (bfd_byte *) thdr.sharedCodeOffset); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->sharedCodeLength, - (bfd_byte *) thdr.sharedCodeLength); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->sharedDataOffset, - (bfd_byte *) thdr.sharedDataOffset); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->sharedDataLength, - (bfd_byte *) thdr.sharedDataLength); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->sharedRelocationFixupOffset, - (bfd_byte *) thdr.sharedRelocationFixupOffset); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->sharedRelocationFixupCount, - (bfd_byte *) thdr.sharedRelocationFixupCount); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->sharedExternalReferenceOffset, - (bfd_byte *) thdr.sharedExternalReferenceOffset); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->sharedExternalReferenceCount, - (bfd_byte *) thdr.sharedExternalReferenceCount); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->sharedPublicsOffset, - (bfd_byte *) thdr.sharedPublicsOffset); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->sharedPublicsCount, - (bfd_byte *) thdr.sharedPublicsCount); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->sharedDebugRecordOffset, - (bfd_byte *) thdr.sharedDebugRecordOffset); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->sharedDebugRecordCount, - (bfd_byte *) thdr.sharedDebugRecordCount); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->SharedInitializationOffset, - (bfd_byte *) thdr.sharedInitializationOffset); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->SharedExitProcedureOffset, - (bfd_byte *) thdr.SharedExitProcedureOffset); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->productID, - (bfd_byte *) thdr.productID); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->reserved0, - (bfd_byte *) thdr.reserved0); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->reserved1, - (bfd_byte *) thdr.reserved1); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->reserved2, - (bfd_byte *) thdr.reserved2); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->reserved3, - (bfd_byte *) thdr.reserved3); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->reserved4, - (bfd_byte *) thdr.reserved4); - put_word (abfd, - (bfd_vma) nlm_extended_header (abfd)->reserved5, - (bfd_byte *) thdr.reserved5); - if (bfd_bwrite ((void *) &thdr, (bfd_size_type) sizeof (thdr), abfd) - != sizeof (thdr)) - return FALSE; - } - - /* Write out the custom header if there is one. */ - if (find_nonzero (nlm_custom_header (abfd), - sizeof (Nlm_Internal_Custom_Header))) - { - Nlm_External_Custom_Header thdr; - bfd_boolean ds; - bfd_size_type hdrLength; - - ds = find_nonzero (nlm_custom_header (abfd)->dataStamp, - sizeof (nlm_custom_header (abfd)->dataStamp)); - LITMEMCPY (thdr.stamp, "CuStHeAd"); - hdrLength = (2 * NLM_TARGET_LONG_SIZE + (ds ? 8 : 0) - + nlm_custom_header (abfd)->hdrLength); - put_word (abfd, hdrLength, thdr.length); - put_word (abfd, (bfd_vma) nlm_custom_header (abfd)->dataOffset, - thdr.dataOffset); - put_word (abfd, (bfd_vma) nlm_custom_header (abfd)->dataLength, - thdr.dataLength); - if (! ds) - { - BFD_ASSERT (nlm_custom_header (abfd)->hdrLength == 0); - amt = sizeof (thdr) - sizeof (thdr.dataStamp); - if (bfd_bwrite ((void *) &thdr, amt, abfd) != amt) - return FALSE; - } - else - { - memcpy (thdr.dataStamp, nlm_custom_header (abfd)->dataStamp, - sizeof (thdr.dataStamp)); - amt = sizeof (thdr); - if (bfd_bwrite ((void *) &thdr, amt, abfd) != amt) - return FALSE; - amt = nlm_custom_header (abfd)->hdrLength; - if (bfd_bwrite (nlm_custom_header (abfd)->hdr, amt, abfd) != amt) - return FALSE; - } - } - - /* Write out the Cygnus debugging header if there is one. */ - if (find_nonzero (nlm_cygnus_ext_header (abfd), - sizeof (Nlm_Internal_Cygnus_Ext_Header))) - { - Nlm_External_Custom_Header thdr; - - LITMEMCPY (thdr.stamp, "CuStHeAd"); - put_word (abfd, (bfd_vma) 2 * NLM_TARGET_LONG_SIZE + 8, - (bfd_byte *) thdr.length); - put_word (abfd, (bfd_vma) nlm_cygnus_ext_header (abfd)->offset, - (bfd_byte *) thdr.dataOffset); - put_word (abfd, (bfd_vma) nlm_cygnus_ext_header (abfd)->length, - (bfd_byte *) thdr.dataLength); - LITMEMCPY (thdr.dataStamp, "CyGnUsEx"); - amt = sizeof (thdr); - if (bfd_bwrite ((void *) &thdr, amt, abfd) != amt) - return FALSE; - } - - return TRUE; -} - -/* We read the NLM's public symbols and use it to generate a bfd symbol - table (hey, it's better than nothing) on a one-for-one basis. Thus - use the number of public symbols as the number of bfd symbols we will - have once we actually get around to reading them in. - - Return the number of bytes required to hold the symtab vector, based on - the count plus 1, since we will NULL terminate the vector allocated based - on this size. */ - -long -nlm_get_symtab_upper_bound (bfd *abfd) -{ - Nlm_Internal_Fixed_Header *i_fxdhdrp; /* Nlm file header, internal form. */ - long symcount; - long symtab_size = 0; - - i_fxdhdrp = nlm_fixed_header (abfd); - symcount = (i_fxdhdrp->numberOfPublics - + i_fxdhdrp->numberOfDebugRecords - + i_fxdhdrp->numberOfExternalReferences); - symtab_size = (symcount + 1) * (sizeof (asymbol)); - return symtab_size; -} - -/* Slurp in nlm symbol table. - - In the external (in-file) form, NLM export records are variable length, - with the following form: - - 1 byte length of the symbol name (N) - N bytes the symbol name - 4 bytes the symbol offset from start of it's section - - We also read in the debugging symbols and import records. Import - records are treated as undefined symbols. As we read the import - records we also read in the associated reloc information, which is - attached to the symbol. - - The bfd symbols are copied to SYMvoid *S. - - When we return, the bfd symcount is either zero or contains the correct - number of symbols. */ - -static bfd_boolean -nlm_slurp_symbol_table (bfd *abfd) -{ - Nlm_Internal_Fixed_Header *i_fxdhdrp; /* Nlm file header, internal form. */ - bfd_size_type totsymcount; /* Number of NLM symbols. */ - bfd_size_type symcount; /* Counter of NLM symbols. */ - nlm_symbol_type *sym; /* Pointer to current bfd symbol. */ - unsigned char symlength; /* Symbol length read into here. */ - unsigned char symtype; /* Type of debugging symbol. */ - bfd_byte temp[NLM_TARGET_LONG_SIZE]; /* Symbol offsets read into here. */ - bfd_boolean (*read_import_func) (bfd *, nlm_symbol_type *); - bfd_boolean (*set_public_section_func) (bfd *, nlm_symbol_type *); - bfd_size_type amt; - - if (nlm_get_symbols (abfd) != NULL) - return TRUE; - - /* Read each raw NLM symbol, using the information to create a canonical bfd - symbol table entry. - - Note that we allocate the initial bfd canonical symbol buffer based on a - one-to-one mapping of the NLM symbols to canonical symbols. We actually - use all the NLM symbols, so there will be no space left over at the end. - When we have all the symbols, we build the caller's pointer vector. */ - - abfd->symcount = 0; - i_fxdhdrp = nlm_fixed_header (abfd); - totsymcount = (i_fxdhdrp->numberOfPublics - + i_fxdhdrp->numberOfDebugRecords - + i_fxdhdrp->numberOfExternalReferences); - if (totsymcount == 0) - return TRUE; - - if (bfd_seek (abfd, i_fxdhdrp->publicsOffset, SEEK_SET) != 0) - return FALSE; - - amt = totsymcount * sizeof (nlm_symbol_type); - sym = bfd_zalloc (abfd, amt); - if (!sym) - return FALSE; - nlm_set_symbols (abfd, sym); - - /* We use the bfd's symcount directly as the control count, so that early - termination of the loop leaves the symcount correct for the symbols that - were read. */ - - set_public_section_func = nlm_set_public_section_func (abfd); - symcount = i_fxdhdrp->numberOfPublics; - while (abfd->symcount < symcount) - { - amt = sizeof (symlength); - if (bfd_bread ((void *) &symlength, amt, abfd) != amt) - return FALSE; - amt = symlength; - sym->symbol.the_bfd = abfd; - sym->symbol.name = bfd_alloc (abfd, amt + 1); - if (!sym->symbol.name) - return FALSE; - if (bfd_bread ((void *) sym->symbol.name, amt, abfd) != amt) - return FALSE; - /* Cast away const. */ - ((char *) (sym->symbol.name))[symlength] = '\0'; - amt = sizeof (temp); - if (bfd_bread ((void *) temp, amt, abfd) != amt) - return FALSE; - sym->symbol.flags = BSF_GLOBAL | BSF_EXPORT; - sym->symbol.value = get_word (abfd, temp); - if (set_public_section_func) - { - /* Most backends can use the code below, but unfortunately - some use a different scheme. */ - if (! (*set_public_section_func) (abfd, sym)) - return FALSE; - } - else - { - if (sym->symbol.value & NLM_HIBIT) - { - sym->symbol.value &= ~NLM_HIBIT; - sym->symbol.flags |= BSF_FUNCTION; - sym->symbol.section = - bfd_get_section_by_name (abfd, NLM_CODE_NAME); - } - else - sym->symbol.section = - bfd_get_section_by_name (abfd, NLM_INITIALIZED_DATA_NAME); - } - sym->rcnt = 0; - abfd->symcount++; - sym++; - } - - /* Read the debugging records. */ - - if (i_fxdhdrp->numberOfDebugRecords > 0) - { - if (bfd_seek (abfd, i_fxdhdrp->debugInfoOffset, SEEK_SET) != 0) - return FALSE; - - symcount += i_fxdhdrp->numberOfDebugRecords; - while (abfd->symcount < symcount) - { - amt = sizeof (symtype); - if (bfd_bread ((void *) &symtype, amt, abfd) != amt) - return FALSE; - amt = sizeof (temp); - if (bfd_bread ((void *) temp, amt, abfd) != amt) - return FALSE; - amt = sizeof (symlength); - if (bfd_bread ((void *) &symlength, amt, abfd) != amt) - return FALSE; - amt = symlength; - sym->symbol.the_bfd = abfd; - sym->symbol.name = bfd_alloc (abfd, amt + 1); - if (!sym->symbol.name) - return FALSE; - if (bfd_bread ((void *) sym->symbol.name, amt, abfd) != amt) - return FALSE; - /* Cast away const. */ - ((char *) (sym->symbol.name))[symlength] = '\0'; - sym->symbol.flags = BSF_LOCAL; - sym->symbol.value = get_word (abfd, temp); - - if (symtype == 0) - sym->symbol.section = - bfd_get_section_by_name (abfd, NLM_INITIALIZED_DATA_NAME); - else if (symtype == 1) - { - sym->symbol.flags |= BSF_FUNCTION; - sym->symbol.section = - bfd_get_section_by_name (abfd, NLM_CODE_NAME); - } - else - sym->symbol.section = bfd_abs_section_ptr; - - sym->rcnt = 0; - abfd->symcount++; - sym++; - } - } - - /* Read in the import records. We can only do this if we know how - to read relocs for this target. */ - read_import_func = nlm_read_import_func (abfd); - if (read_import_func != NULL) - { - if (bfd_seek (abfd, i_fxdhdrp->externalReferencesOffset, SEEK_SET) != 0) - return FALSE; - - symcount += i_fxdhdrp->numberOfExternalReferences; - while (abfd->symcount < symcount) - { - if (! (*read_import_func) (abfd, sym)) - return FALSE; - sym++; - abfd->symcount++; - } - } - - return TRUE; -} - -/* Note that bfd_get_symcount is guaranteed to be zero if slurping the - symbol table fails. */ - -long -nlm_canonicalize_symtab (bfd *abfd, asymbol **alocation) -{ - nlm_symbol_type *symbase; - bfd_size_type counter = 0; - - if (! nlm_slurp_symbol_table (abfd)) - return -1; - symbase = nlm_get_symbols (abfd); - while (counter < bfd_get_symcount (abfd)) - { - *alocation++ = &symbase->symbol; - symbase++; - counter++; - } - *alocation = NULL; - return bfd_get_symcount (abfd); -} - -/* Make an NLM symbol. There is nothing special to do here. */ - -asymbol * -nlm_make_empty_symbol (bfd *abfd) -{ - bfd_size_type amt = sizeof (nlm_symbol_type); - nlm_symbol_type *new = bfd_zalloc (abfd, amt); - - if (new == NULL) - return NULL; - new->symbol.the_bfd = abfd; - return & new->symbol; -} - -/* Get symbol information. */ - -void -nlm_get_symbol_info (bfd *ignore_abfd ATTRIBUTE_UNUSED, - asymbol *symbol, - symbol_info *ret) -{ - bfd_symbol_info (symbol, ret); -} - -/* Print symbol information. */ - -void -nlm_print_symbol (bfd *abfd, - void * afile, - asymbol *symbol, - bfd_print_symbol_type how) -{ - FILE *file = (FILE *) afile; - - switch (how) - { - case bfd_print_symbol_name: - case bfd_print_symbol_more: - if (symbol->name) - fprintf (file, "%s", symbol->name); - break; - case bfd_print_symbol_all: - bfd_print_symbol_vandf (abfd, (void *) file, symbol); - fprintf (file, " %-5s", symbol->section->name); - if (symbol->name) - fprintf (file, " %s", symbol->name); - break; - } -} - -/* Get the relocs for an NLM file. There are two types of relocs. - Imports are relocs against symbols defined in other NLM files. We - treat these as relocs against global symbols. Relocation fixups - are internal relocs. - - The actual format used to store the relocs is machine specific. */ - -/* Read in the relocation fixup information. This is stored in - nlm_relocation_fixups, an array of arelent structures, and - nlm_relocation_fixup_secs, an array of section pointers. The - section pointers are needed because the relocs are not sorted by - section. */ - -static bfd_boolean -nlm_slurp_reloc_fixups (bfd *abfd) -{ - bfd_boolean (*read_func) (bfd *, nlm_symbol_type *, asection **, arelent *); - bfd_size_type count, amt; - arelent *rels; - asection **secs; - - if (nlm_relocation_fixups (abfd) != NULL) - return TRUE; - read_func = nlm_read_reloc_func (abfd); - if (read_func == NULL) - return TRUE; - - if (bfd_seek (abfd, nlm_fixed_header (abfd)->relocationFixupOffset, - SEEK_SET) != 0) - return FALSE; - - count = nlm_fixed_header (abfd)->numberOfRelocationFixups; - amt = count * sizeof (arelent); - rels = bfd_alloc (abfd, amt); - amt = count * sizeof (asection *); - secs = bfd_alloc (abfd, amt); - if ((rels == NULL || secs == NULL) && count != 0) - return FALSE; - nlm_relocation_fixups (abfd) = rels; - nlm_relocation_fixup_secs (abfd) = secs; - - /* We have to read piece by piece, because we don't know how large - the machine specific reloc information is. */ - while (count-- != 0) - { - if (! (*read_func) (abfd, NULL, secs, rels)) - { - nlm_relocation_fixups (abfd) = NULL; - nlm_relocation_fixup_secs (abfd) = NULL; - return FALSE; - } - ++secs; - ++rels; - } - - return TRUE; -} - -/* Get the number of relocs. This really just returns an upper bound, - since it does not attempt to distinguish them based on the section. - That will be handled when they are actually read. */ - -long -nlm_get_reloc_upper_bound (bfd *abfd, asection *sec) -{ - nlm_symbol_type *syms; - bfd_size_type count; - unsigned int ret; - - /* If we don't know how to read relocs, just return 0. */ - if (nlm_read_reloc_func (abfd) == NULL) - return -1; - /* Make sure we have either the code or the data section. */ - if ((bfd_get_section_flags (abfd, sec) & (SEC_CODE | SEC_DATA)) == 0) - return 0; - - syms = nlm_get_symbols (abfd); - if (syms == NULL) - { - if (! nlm_slurp_symbol_table (abfd)) - return -1; - syms = nlm_get_symbols (abfd); - } - - ret = nlm_fixed_header (abfd)->numberOfRelocationFixups; - - count = bfd_get_symcount (abfd); - while (count-- != 0) - { - ret += syms->rcnt; - ++syms; - } - - return (ret + 1) * sizeof (arelent *); -} - -/* Get the relocs themselves. */ - -long -nlm_canonicalize_reloc (bfd *abfd, - asection *sec, - arelent **relptr, - asymbol **symbols) -{ - arelent *rels; - asection **secs; - bfd_size_type count, i; - long ret; - - /* Get the relocation fixups. */ - rels = nlm_relocation_fixups (abfd); - if (rels == NULL) - { - if (! nlm_slurp_reloc_fixups (abfd)) - return -1; - rels = nlm_relocation_fixups (abfd); - } - secs = nlm_relocation_fixup_secs (abfd); - - ret = 0; - count = nlm_fixed_header (abfd)->numberOfRelocationFixups; - for (i = 0; i < count; i++, rels++, secs++) - { - if (*secs == sec) - { - *relptr++ = rels; - ++ret; - } - } - - /* Get the import symbols. */ - count = bfd_get_symcount (abfd); - for (i = 0; i < count; i++, symbols++) - { - asymbol *sym; - - sym = *symbols; - if (bfd_asymbol_flavour (sym) == bfd_target_nlm_flavour) - { - nlm_symbol_type *nlm_sym; - bfd_size_type j; - - nlm_sym = (nlm_symbol_type *) sym; - for (j = 0; j < nlm_sym->rcnt; j++) - { - if (nlm_sym->relocs[j].section == sec) - { - *relptr = &nlm_sym->relocs[j].reloc; - (*relptr)->sym_ptr_ptr = symbols; - ++relptr; - ++ret; - } - } - } - } - - *relptr = NULL; - - return ret; -} - -/* Compute the section file positions for an NLM file. All variable - length data in the file headers must be set before this function is - called. If the variable length data is changed later, the - resulting object file will be incorrect. Unfortunately, there is - no way to check this. - - This routine also sets the Size and Offset fields in the fixed - header. - - It also looks over the symbols and moves any common symbols into - the .bss section; NLM has no way to represent a common symbol. - This approach means that either the symbols must already have been - set at this point, or there must be no common symbols. We need to - move the symbols at this point so that mangle_relocs can see the - final values. */ - -static bfd_boolean -nlm_compute_section_file_positions (bfd *abfd) -{ - file_ptr sofar; - asection *sec; - bfd_vma text, data, bss; - bfd_vma text_low, data_low; - unsigned int text_align, data_align, other_align; - file_ptr text_ptr, data_ptr, other_ptr; - asection *bss_sec; - asymbol **sym_ptr_ptr; - - if (abfd->output_has_begun) - return TRUE; - - /* Make sure we have a section to hold uninitialized data. */ - bss_sec = bfd_get_section_by_name (abfd, NLM_UNINITIALIZED_DATA_NAME); - if (bss_sec == NULL) - { - if (!add_bfd_section (abfd, NLM_UNINITIALIZED_DATA_NAME, - (file_ptr) 0, (bfd_size_type) 0, - SEC_ALLOC)) - return FALSE; - bss_sec = bfd_get_section_by_name (abfd, NLM_UNINITIALIZED_DATA_NAME); - } - - abfd->output_has_begun = TRUE; - - /* The fixed header. */ - sofar = nlm_optional_prefix_size (abfd) + nlm_fixed_header_size (abfd); - - /* The variable header. */ - sofar += (sizeof (nlm_variable_header (abfd)->descriptionLength) - + nlm_variable_header (abfd)->descriptionLength + 1 - + NLM_TARGET_LONG_SIZE /* stackSize */ - + NLM_TARGET_LONG_SIZE /* reserved */ - + sizeof (nlm_variable_header (abfd)->oldThreadName) - + sizeof (nlm_variable_header (abfd)->screenNameLength) - + nlm_variable_header (abfd)->screenNameLength + 1 - + sizeof (nlm_variable_header (abfd)->threadNameLength) - + nlm_variable_header (abfd)->threadNameLength + 1); - - /* The auxiliary headers. */ - if (find_nonzero (nlm_version_header (abfd), - sizeof (Nlm_Internal_Version_Header))) - sofar += sizeof (Nlm_External_Version_Header); - if (find_nonzero (nlm_extended_header (abfd), - sizeof (Nlm_Internal_Extended_Header))) - sofar += sizeof (Nlm_External_Extended_Header); - if (find_nonzero (nlm_copyright_header (abfd), - sizeof (Nlm_Internal_Copyright_Header))) - sofar += (sizeof (Nlm_External_Copyright_Header) - + nlm_copyright_header (abfd)->copyrightMessageLength + 1); - if (find_nonzero (nlm_custom_header (abfd), - sizeof (Nlm_Internal_Custom_Header))) - sofar += (sizeof (Nlm_External_Custom_Header) - + nlm_custom_header (abfd)->hdrLength); - if (find_nonzero (nlm_cygnus_ext_header (abfd), - sizeof (Nlm_Internal_Cygnus_Ext_Header))) - sofar += sizeof (Nlm_External_Custom_Header); - - /* Compute the section file positions in two passes. First get the - sizes of the text and data sections, and then set the file - positions. This code aligns the sections in the file using the - same alignment restrictions that apply to the sections in memory; - this may not be necessary. */ - text = 0; - text_low = (bfd_vma) - 1; - text_align = 0; - data = 0; - data_low = (bfd_vma) - 1; - data_align = 0; - bss = 0; - other_align = 0; - for (sec = abfd->sections; sec != NULL; sec = sec->next) - { - flagword f; - - sec->size = BFD_ALIGN (sec->size, 1 << sec->alignment_power); - - f = bfd_get_section_flags (abfd, sec); - if (f & SEC_CODE) - { - text += sec->size; - if (bfd_get_section_vma (abfd, sec) < text_low) - text_low = bfd_get_section_vma (abfd, sec); - if (sec->alignment_power > text_align) - text_align = sec->alignment_power; - } - else if (f & SEC_DATA) - { - data += sec->size; - if (bfd_get_section_vma (abfd, sec) < data_low) - data_low = bfd_get_section_vma (abfd, sec); - if (sec->alignment_power > data_align) - data_align = sec->alignment_power; - } - else if (f & SEC_HAS_CONTENTS) - { - if (sec->alignment_power > other_align) - other_align = sec->alignment_power; - } - else if (f & SEC_ALLOC) - bss += sec->size; - } - - nlm_set_text_low (abfd, text_low); - nlm_set_data_low (abfd, data_low); - - if (nlm_no_uninitialized_data (abfd)) - { - /* This NetWare format does not use uninitialized data. We must - increase the size of the data section. We will never wind up - writing those file locations, so they will remain zero. */ - data += bss; - bss = 0; - } - - text_ptr = BFD_ALIGN (sofar, 1 << text_align); - data_ptr = BFD_ALIGN (text_ptr + text, 1 << data_align); - other_ptr = BFD_ALIGN (data_ptr + data, 1 << other_align); - - /* Fill in some fields in the header for which we now have the - information. */ - nlm_fixed_header (abfd)->codeImageOffset = text_ptr; - nlm_fixed_header (abfd)->codeImageSize = text; - nlm_fixed_header (abfd)->dataImageOffset = data_ptr; - nlm_fixed_header (abfd)->dataImageSize = data; - nlm_fixed_header (abfd)->uninitializedDataSize = bss; - - for (sec = abfd->sections; sec != NULL; sec = sec->next) - { - flagword f; - - f = bfd_get_section_flags (abfd, sec); - - if (f & SEC_CODE) - { - sec->filepos = text_ptr; - text_ptr += sec->size; - } - else if (f & SEC_DATA) - { - sec->filepos = data_ptr; - data_ptr += sec->size; - } - else if (f & SEC_HAS_CONTENTS) - { - sec->filepos = other_ptr; - other_ptr += sec->size; - } - } - - nlm_fixed_header (abfd)->relocationFixupOffset = other_ptr; - - /* Move all common symbols into the .bss section. */ - - sym_ptr_ptr = bfd_get_outsymbols (abfd); - if (sym_ptr_ptr != NULL) - { - asymbol **sym_end; - bfd_vma add; - - sym_end = sym_ptr_ptr + bfd_get_symcount (abfd); - add = 0; - for (; sym_ptr_ptr < sym_end; sym_ptr_ptr++) - { - asymbol *sym; - bfd_vma size; - - sym = *sym_ptr_ptr; - - if (!bfd_is_com_section (bfd_get_section (sym))) - continue; - - /* Put the common symbol in the .bss section, and increase - the size of the .bss section by the size of the common - symbol (which is the old value of the symbol). */ - sym->section = bss_sec; - size = sym->value; - sym->value = bss_sec->size + add; - add += size; - add = BFD_ALIGN (add, 1 << bss_sec->alignment_power); - } - if (add != 0) - { - if (nlm_no_uninitialized_data (abfd)) - { - /* We could handle this case, but so far it hasn't been - necessary. */ - abort (); - } - nlm_fixed_header (abfd)->uninitializedDataSize += add; - bss_sec->size += add; - } - } - - return TRUE; -} - -/* Set the contents of a section. To do this we need to know where - the section is going to be located in the output file. That means - that the sizes of all the sections must be set, and all the - variable size header information must be known. */ - -bfd_boolean -nlm_set_section_contents (bfd *abfd, - asection *section, - const void * location, - file_ptr offset, - bfd_size_type count) -{ - if (! abfd->output_has_begun - && ! nlm_compute_section_file_positions (abfd)) - return FALSE; - - if (count == 0) - return TRUE; - - /* i386 NetWare has a very restricted set of relocs. In order for - objcopy to work, the NLM i386 backend needs a chance to rework - the section contents so that its set of relocs will work. If all - the relocs are already acceptable, this will not do anything. */ - if (section->reloc_count != 0) - { - bfd_boolean (*mangle_relocs_func) - (bfd *, asection *, const void *, bfd_vma, bfd_size_type); - - mangle_relocs_func = nlm_mangle_relocs_func (abfd); - if (mangle_relocs_func != NULL) - { - if (!(*mangle_relocs_func) (abfd, section, location, - (bfd_vma) offset, count)) - return FALSE; - } - } - - if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0 - || bfd_bwrite (location, count, abfd) != count) - return FALSE; - - return TRUE; -} - -/* We need to sort a list of relocs associated with sections when we - write out the external relocs. */ - -static int -nlm_external_reloc_compare (const void *p1, const void *p2) -{ - const struct reloc_and_sec *r1 = (const struct reloc_and_sec *) p1; - const struct reloc_and_sec *r2 = (const struct reloc_and_sec *) p2; - int cmp; - - cmp = strcmp ((*r1->rel->sym_ptr_ptr)->name, - (*r2->rel->sym_ptr_ptr)->name); - if (cmp != 0) - return cmp; - - /* We sort by address within symbol to make the sort more stable and - increase the chances that different hosts will generate bit for - bit equivalent results. */ - return (int) (r1->rel->address - r2->rel->address); -} - -/* Write out an NLM file. We write out the information in this order: - fixed header - variable header - auxiliary headers - code sections - data sections - other sections (custom data, messages, help, shared NLM, RPC, - module dependencies) - relocation fixups - external references (imports) - public symbols (exports) - debugging records - This is similar to the order used by the NetWare tools; the - difference is that NetWare puts the sections other than code, data - and custom data at the end of the NLM. It is convenient for us to - know where the sections are going to be before worrying about the - size of the other information. - - By the time this function is called, all the section data should - have been output using set_section_contents. Note that custom - data, the message file, the help file, the shared NLM file, the RPC - data, and the module dependencies are all considered to be - sections; the caller is responsible for filling in the offset and - length fields in the NLM headers. The relocation fixups and - imports are both obtained from the list of relocs attached to each - section. The exports and debugging records are obtained from the - list of outsymbols. */ - -bfd_boolean -nlm_write_object_contents (bfd *abfd) -{ - asection *sec; - bfd_boolean (*write_import_func) (bfd *, asection *, arelent *); - bfd_size_type external_reloc_count, internal_reloc_count, i, c; - struct reloc_and_sec *external_relocs; - asymbol **sym_ptr_ptr; - file_ptr last; - bfd_boolean (*write_prefix_func) (bfd *); - unsigned char *fixed_header = NULL; - file_ptr pos; - bfd_size_type amt; - - fixed_header = bfd_malloc (nlm_fixed_header_size (abfd)); - if (fixed_header == NULL) - goto error_return; - - if (! abfd->output_has_begun - && ! nlm_compute_section_file_positions (abfd)) - goto error_return; - - /* Write out the variable length headers. */ - pos = nlm_optional_prefix_size (abfd) + nlm_fixed_header_size (abfd); - if (bfd_seek (abfd, pos, SEEK_SET) != 0) - goto error_return; - if (! nlm_swap_variable_header_out (abfd) - || ! nlm_swap_auxiliary_headers_out (abfd)) - { - bfd_set_error (bfd_error_system_call); - goto error_return; - } - - /* A weak check on whether the section file positions were - reasonable. */ - if (bfd_tell (abfd) > nlm_fixed_header (abfd)->codeImageOffset) - { - bfd_set_error (bfd_error_invalid_operation); - goto error_return; - } - - /* Advance to the relocs. */ - if (bfd_seek (abfd, nlm_fixed_header (abfd)->relocationFixupOffset, - SEEK_SET) != 0) - goto error_return; - - /* The format of the relocation entries is dependent upon the - particular target. We use an external routine to write the reloc - out. */ - write_import_func = nlm_write_import_func (abfd); - - /* Write out the internal relocation fixups. While we're looping - over the relocs, we also count the external relocs, which is - needed when they are written out below. */ - internal_reloc_count = 0; - external_reloc_count = 0; - for (sec = abfd->sections; sec != NULL; sec = sec->next) - { - arelent **rel_ptr_ptr, **rel_end; - - if (sec->reloc_count == 0) - continue; - - /* We can only represent relocs within a code or data - section. We ignore them for a debugging section. */ - if ((bfd_get_section_flags (abfd, sec) & (SEC_CODE | SEC_DATA)) == 0) - continue; - - /* We need to know how to write out imports */ - if (write_import_func == NULL) - { - bfd_set_error (bfd_error_invalid_operation); - goto error_return; - } - - rel_ptr_ptr = sec->orelocation; - rel_end = rel_ptr_ptr + sec->reloc_count; - for (; rel_ptr_ptr < rel_end; rel_ptr_ptr++) - { - arelent *rel; - asymbol *sym; - - rel = *rel_ptr_ptr; - sym = *rel->sym_ptr_ptr; - - if (! bfd_is_und_section (bfd_get_section (sym))) - { - ++internal_reloc_count; - if (! (*write_import_func) (abfd, sec, rel)) - goto error_return; - } - else - ++external_reloc_count; - } - } - nlm_fixed_header (abfd)->numberOfRelocationFixups = internal_reloc_count; - - /* Write out the imports (relocs against external symbols). These - are output as a symbol name followed by all the relocs for that - symbol, so we must first gather together all the relocs against - external symbols and sort them. */ - amt = external_reloc_count * sizeof (struct reloc_and_sec); - external_relocs = bfd_alloc (abfd, amt); - if (external_relocs == NULL) - goto error_return; - i = 0; - for (sec = abfd->sections; sec != NULL; sec = sec->next) - { - arelent **rel_ptr_ptr, **rel_end; - - if (sec->reloc_count == 0) - continue; - - rel_ptr_ptr = sec->orelocation; - rel_end = rel_ptr_ptr + sec->reloc_count; - for (; rel_ptr_ptr < rel_end; rel_ptr_ptr++) - { - arelent *rel; - asymbol *sym; - - rel = *rel_ptr_ptr; - sym = *rel->sym_ptr_ptr; - - if (! bfd_is_und_section (bfd_get_section (sym))) - continue; - - external_relocs[i].rel = rel; - external_relocs[i].sec = sec; - ++i; - } - } - - BFD_ASSERT (i == external_reloc_count); - - /* Sort the external relocs by name. */ - qsort (external_relocs, (size_t) external_reloc_count, - sizeof (struct reloc_and_sec), nlm_external_reloc_compare); - - /* Write out the external relocs. */ - nlm_fixed_header (abfd)->externalReferencesOffset = bfd_tell (abfd); - c = 0; - i = 0; - while (i < external_reloc_count) - { - arelent *rel; - asymbol *sym; - bfd_size_type j, cnt; - - ++c; - - rel = external_relocs[i].rel; - sym = *rel->sym_ptr_ptr; - - cnt = 0; - for (j = i; - (j < external_reloc_count - && *external_relocs[j].rel->sym_ptr_ptr == sym); - j++) - ++cnt; - - if (! (*nlm_write_external_func (abfd)) (abfd, cnt, sym, - &external_relocs[i])) - goto error_return; - - i += cnt; - } - - nlm_fixed_header (abfd)->numberOfExternalReferences = c; - - /* Write out the public symbols (exports). */ - sym_ptr_ptr = bfd_get_outsymbols (abfd); - if (sym_ptr_ptr != NULL) - { - bfd_vma (*get_public_offset_func) (bfd *, asymbol *); - bfd_boolean (*write_export_func) (bfd *, asymbol *, bfd_vma); - - asymbol **sym_end; - - nlm_fixed_header (abfd)->publicsOffset = bfd_tell (abfd); - get_public_offset_func = nlm_get_public_offset_func (abfd); - write_export_func = nlm_write_export_func (abfd); - c = 0; - sym_end = sym_ptr_ptr + bfd_get_symcount (abfd); - for (; sym_ptr_ptr < sym_end; sym_ptr_ptr++) - { - asymbol *sym; - bfd_byte len; - bfd_vma offset; - bfd_byte temp[NLM_TARGET_LONG_SIZE]; - - sym = *sym_ptr_ptr; - - if ((sym->flags & (BSF_EXPORT | BSF_GLOBAL)) == 0 - || bfd_is_und_section (bfd_get_section (sym))) - continue; - - ++c; - - if (get_public_offset_func) - { - /* Most backends can use the code below, but - unfortunately some use a different scheme. */ - offset = (*get_public_offset_func) (abfd, sym); - } - else - { - offset = bfd_asymbol_value (sym); - sec = sym->section; - if (sec->flags & SEC_CODE) - { - offset -= nlm_get_text_low (abfd); - offset |= NLM_HIBIT; - } - else if (sec->flags & (SEC_DATA | SEC_ALLOC)) - { - /* SEC_ALLOC is for the .bss section. */ - offset -= nlm_get_data_low (abfd); - } - else - { - /* We can't handle an exported symbol that is not in - the code or data segment. */ - bfd_set_error (bfd_error_invalid_operation); - goto error_return; - } - } - - if (write_export_func) - { - if (! (*write_export_func) (abfd, sym, offset)) - goto error_return; - } - else - { - len = strlen (sym->name); - if ((bfd_bwrite (&len, (bfd_size_type) sizeof (bfd_byte), abfd) - != sizeof (bfd_byte)) - || bfd_bwrite (sym->name, (bfd_size_type) len, abfd) != len) - goto error_return; - - put_word (abfd, offset, temp); - if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), abfd) - != sizeof (temp)) - goto error_return; - } - } - nlm_fixed_header (abfd)->numberOfPublics = c; - - /* Write out the debugging records. The NLM conversion program - wants to be able to inhibit this, so as a special hack if - debugInfoOffset is set to -1 we don't write any debugging - information. This can not be handled by fiddling with the - symbol table, because exported symbols appear in both the - exported symbol list and the debugging information. */ - if (nlm_fixed_header (abfd)->debugInfoOffset == (file_ptr) - 1) - { - nlm_fixed_header (abfd)->debugInfoOffset = 0; - nlm_fixed_header (abfd)->numberOfDebugRecords = 0; - } - else - { - nlm_fixed_header (abfd)->debugInfoOffset = bfd_tell (abfd); - c = 0; - sym_ptr_ptr = bfd_get_outsymbols (abfd); - sym_end = sym_ptr_ptr + bfd_get_symcount (abfd); - for (; sym_ptr_ptr < sym_end; sym_ptr_ptr++) - { - asymbol *sym; - bfd_byte type, len; - bfd_vma offset; - bfd_byte temp[NLM_TARGET_LONG_SIZE]; - - sym = *sym_ptr_ptr; - - /* The NLM notion of a debugging symbol is actually what - BFD calls a local or global symbol. What BFD calls a - debugging symbol NLM does not understand at all. */ - if ((sym->flags & (BSF_LOCAL | BSF_GLOBAL | BSF_EXPORT)) == 0 - || (sym->flags & BSF_DEBUGGING) != 0 - || bfd_is_und_section (bfd_get_section (sym))) - continue; - - ++c; - - offset = bfd_asymbol_value (sym); - sec = sym->section; - if (sec->flags & SEC_CODE) - { - offset -= nlm_get_text_low (abfd); - type = 1; - } - else if (sec->flags & (SEC_DATA | SEC_ALLOC)) - { - /* SEC_ALLOC is for the .bss section. */ - offset -= nlm_get_data_low (abfd); - type = 0; - } - else - type = 2; - - /* The type is 0 for data, 1 for code, 2 for absolute. */ - if (bfd_bwrite (&type, (bfd_size_type) sizeof (bfd_byte), abfd) - != sizeof (bfd_byte)) - goto error_return; - - put_word (abfd, offset, temp); - if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), abfd) - != sizeof (temp)) - goto error_return; - - len = strlen (sym->name); - if ((bfd_bwrite (&len, (bfd_size_type) sizeof (bfd_byte), abfd) - != sizeof (bfd_byte)) - || bfd_bwrite (sym->name, (bfd_size_type) len, abfd) != len) - goto error_return; - } - nlm_fixed_header (abfd)->numberOfDebugRecords = c; - } - } - - /* NLMLINK fills in offset values even if there is no data, so we do - the same. */ - last = bfd_tell (abfd); - if (nlm_fixed_header (abfd)->codeImageOffset == 0) - nlm_fixed_header (abfd)->codeImageOffset = last; - if (nlm_fixed_header (abfd)->dataImageOffset == 0) - nlm_fixed_header (abfd)->dataImageOffset = last; - if (nlm_fixed_header (abfd)->customDataOffset == 0) - nlm_fixed_header (abfd)->customDataOffset = last; - if (nlm_fixed_header (abfd)->moduleDependencyOffset == 0) - nlm_fixed_header (abfd)->moduleDependencyOffset = last; - if (nlm_fixed_header (abfd)->relocationFixupOffset == 0) - nlm_fixed_header (abfd)->relocationFixupOffset = last; - if (nlm_fixed_header (abfd)->externalReferencesOffset == 0) - nlm_fixed_header (abfd)->externalReferencesOffset = last; - if (nlm_fixed_header (abfd)->publicsOffset == 0) - nlm_fixed_header (abfd)->publicsOffset = last; - if (nlm_fixed_header (abfd)->debugInfoOffset == 0) - nlm_fixed_header (abfd)->debugInfoOffset = last; - - /* At this point everything has been written out except the fixed - header. */ - memcpy (nlm_fixed_header (abfd)->signature, nlm_signature (abfd), - NLM_SIGNATURE_SIZE); - nlm_fixed_header (abfd)->version = NLM_HEADER_VERSION; - nlm_fixed_header (abfd)->codeStartOffset = - (bfd_get_start_address (abfd) - - nlm_get_text_low (abfd)); - - /* We have no convenient way for the caller to pass in the exit - procedure or the check unload procedure, so the caller must set - the values in the header to the values of the symbols. */ - nlm_fixed_header (abfd)->exitProcedureOffset -= nlm_get_text_low (abfd); - if (nlm_fixed_header (abfd)->checkUnloadProcedureOffset != 0) - nlm_fixed_header (abfd)->checkUnloadProcedureOffset -= - nlm_get_text_low (abfd); - - if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) - goto error_return; - - write_prefix_func = nlm_write_prefix_func (abfd); - if (write_prefix_func) - { - if (! (*write_prefix_func) (abfd)) - goto error_return; - } - - BFD_ASSERT ((bfd_size_type) bfd_tell (abfd) - == nlm_optional_prefix_size (abfd)); - - nlm_swap_fixed_header_out (abfd, nlm_fixed_header (abfd), fixed_header); - if (bfd_bwrite (fixed_header, nlm_fixed_header_size (abfd), abfd) - != nlm_fixed_header_size (abfd)) - goto error_return; - - if (fixed_header != NULL) - free (fixed_header); - return TRUE; - -error_return: - if (fixed_header != NULL) - free (fixed_header); - return FALSE; -} diff -Nru gdb-8.1/bfd/nlmswap.h gdb-8.2/bfd/nlmswap.h --- gdb-8.1/bfd/nlmswap.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/nlmswap.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,153 +0,0 @@ -/* NLM (NetWare Loadable Module) swapping routines for BFD. - Copyright (C) 1993-2018 Free Software Foundation, Inc. - - Written by Fred Fish @ Cygnus Support, using ELF support as the - template. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - - -/* Although this is a header file, it defines functions. It is - included by NLM backends to define swapping functions that vary - from one NLM to another. The backend code must arrange for - Nlm_External_xxxx to be defined appropriately, and can then include - this file to get the swapping routines. - - At the moment this is only needed for one structure, the fixed NLM - file header. */ - -/* Translate an NLM fixed length file header in external format into an NLM - file header in internal format. */ - -static void -nlm_swap_fixed_header_in (bfd *abfd, - void * realsrc, - Nlm_Internal_Fixed_Header *dst) -{ - Nlm_External_Fixed_Header *src = (Nlm_External_Fixed_Header *) realsrc; - - memcpy (dst->signature, src->signature, NLM_SIGNATURE_SIZE); - memcpy (dst->moduleName, src->moduleName, NLM_MODULE_NAME_SIZE); - dst->version = - H_GET_32 (abfd, src->version); - dst->codeImageOffset = - H_GET_32 (abfd, src->codeImageOffset); - dst->codeImageSize = - H_GET_32 (abfd, src->codeImageSize); - dst->dataImageOffset = - H_GET_32 (abfd, src->dataImageOffset); - dst->dataImageSize = - H_GET_32 (abfd, src->dataImageSize); - dst->uninitializedDataSize = - H_GET_32 (abfd, src->uninitializedDataSize); - dst->customDataOffset = - H_GET_32 (abfd, src->customDataOffset); - dst->customDataSize = - H_GET_32 (abfd, src->customDataSize); - dst->moduleDependencyOffset = - H_GET_32 (abfd, src->moduleDependencyOffset); - dst->numberOfModuleDependencies = - H_GET_32 (abfd, src->numberOfModuleDependencies); - dst->relocationFixupOffset = - H_GET_32 (abfd, src->relocationFixupOffset); - dst->numberOfRelocationFixups = - H_GET_32 (abfd, src->numberOfRelocationFixups); - dst->externalReferencesOffset = - H_GET_32 (abfd, src->externalReferencesOffset); - dst->numberOfExternalReferences = - H_GET_32 (abfd, src->numberOfExternalReferences); - dst->publicsOffset = - H_GET_32 (abfd, src->publicsOffset); - dst->numberOfPublics = - H_GET_32 (abfd, src->numberOfPublics); - dst->debugInfoOffset = - H_GET_32 (abfd, src->debugInfoOffset); - dst->numberOfDebugRecords = - H_GET_32 (abfd, src->numberOfDebugRecords); - dst->codeStartOffset = - H_GET_32 (abfd, src->codeStartOffset); - dst->exitProcedureOffset = - H_GET_32 (abfd, src->exitProcedureOffset); - dst->checkUnloadProcedureOffset = - H_GET_32 (abfd, src->checkUnloadProcedureOffset); - dst->moduleType = - H_GET_32 (abfd, src->moduleType); - dst->flags = - H_GET_32 (abfd, src->flags); -} - -/* Translate an NLM fixed length file header in internal format into - an NLM file header in external format. */ - -static void -nlm_swap_fixed_header_out (bfd *abfd, - Nlm_Internal_Fixed_Header *src, - void * realdst) -{ - Nlm_External_Fixed_Header *dst = (Nlm_External_Fixed_Header *) realdst; - - memset (dst, 0, sizeof *dst); - memcpy (dst->signature, src->signature, NLM_SIGNATURE_SIZE); - memcpy (dst->moduleName, src->moduleName, NLM_MODULE_NAME_SIZE); - H_PUT_32 (abfd, src->version, - dst->version); - H_PUT_32 (abfd, src->codeImageOffset, - dst->codeImageOffset); - H_PUT_32 (abfd, src->codeImageSize, - dst->codeImageSize); - H_PUT_32 (abfd, src->dataImageOffset, - dst->dataImageOffset); - H_PUT_32 (abfd, src->dataImageSize, - dst->dataImageSize); - H_PUT_32 (abfd, src->uninitializedDataSize, - dst->uninitializedDataSize); - H_PUT_32 (abfd, src->customDataOffset, - dst->customDataOffset); - H_PUT_32 (abfd, src->customDataSize, - dst->customDataSize); - H_PUT_32 (abfd, src->moduleDependencyOffset, - dst->moduleDependencyOffset); - H_PUT_32 (abfd, src->numberOfModuleDependencies, - dst->numberOfModuleDependencies); - H_PUT_32 (abfd, src->relocationFixupOffset, - dst->relocationFixupOffset); - H_PUT_32 (abfd, src->numberOfRelocationFixups, - dst->numberOfRelocationFixups); - H_PUT_32 (abfd, src->externalReferencesOffset, - dst->externalReferencesOffset); - H_PUT_32 (abfd, src->numberOfExternalReferences, - dst->numberOfExternalReferences); - H_PUT_32 (abfd, src->publicsOffset, - dst->publicsOffset); - H_PUT_32 (abfd, src->numberOfPublics, - dst->numberOfPublics); - H_PUT_32 (abfd, src->debugInfoOffset, - dst->debugInfoOffset); - H_PUT_32 (abfd, src->numberOfDebugRecords, - dst->numberOfDebugRecords); - H_PUT_32 (abfd, src->codeStartOffset, - dst->codeStartOffset); - H_PUT_32 (abfd, src->exitProcedureOffset, - dst->exitProcedureOffset); - H_PUT_32 (abfd, src->checkUnloadProcedureOffset, - dst->checkUnloadProcedureOffset); - H_PUT_32 (abfd, src->moduleType, - dst->moduleType); - H_PUT_32 (abfd, src->flags, - dst->flags); -} diff -Nru gdb-8.1/bfd/nlm-target.h gdb-8.2/bfd/nlm-target.h --- gdb-8.1/bfd/nlm-target.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/nlm-target.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,265 +0,0 @@ -/* Target definitions for 32/64-bit NLM (NetWare Loadable Module) - Copyright (C) 1993-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define nlm_core_file_p _bfd_dummy_target - -#define nlm_get_symtab_upper_bound nlmNAME (get_symtab_upper_bound) -#define nlm_canonicalize_symtab nlmNAME (canonicalize_symtab) -#define nlm_make_empty_symbol nlmNAME (make_empty_symbol) -#define nlm_print_symbol nlmNAME (print_symbol) -#define nlm_get_symbol_info nlmNAME (get_symbol_info) -#define nlm_get_symbol_version_string _bfd_nosymbols_get_symbol_version_string -#define nlm_bfd_is_local_label_name bfd_generic_is_local_label_name -#define nlm_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) -#define nlm_get_lineno _bfd_nosymbols_get_lineno -#define nlm_find_nearest_line _bfd_nosymbols_find_nearest_line -#define nlm_find_line _bfd_nosymbols_find_line -#define nlm_find_inliner_info _bfd_nosymbols_find_inliner_info -#define nlm_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol -#define nlm_read_minisymbols _bfd_generic_read_minisymbols -#define nlm_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol - -#define nlm_get_reloc_upper_bound nlmNAME (get_reloc_upper_bound) -#define nlm_canonicalize_reloc nlmNAME (canonicalize_reloc) -#define nlm_set_reloc _bfd_generic_set_reloc -#define nlm_bfd_reloc_type_lookup bfd_default_reloc_type_lookup -#define nlm_bfd_reloc_name_lookup _bfd_norelocs_bfd_reloc_name_lookup -#define nlm_set_section_contents nlmNAME (set_section_contents) - -#define nlm_sizeof_headers _bfd_nolink_sizeof_headers -#define nlm_bfd_get_relocated_section_contents bfd_generic_get_relocated_section_contents -#define nlm_bfd_relax_section bfd_generic_relax_section -#define nlm_bfd_gc_sections bfd_generic_gc_sections -#define nlm_bfd_lookup_section_flags bfd_generic_lookup_section_flags -#define nlm_bfd_merge_sections bfd_generic_merge_sections -#define nlm_bfd_is_group_section bfd_generic_is_group_section -#define nlm_bfd_discard_group bfd_generic_discard_group -#define nlm_section_already_linked _bfd_generic_section_already_linked -#define nlm_bfd_define_common_symbol bfd_generic_define_common_symbol -#define nlm_bfd_define_start_stop bfd_generic_define_start_stop -#define nlm_bfd_link_hash_table_create _bfd_generic_link_hash_table_create -#define nlm_bfd_link_add_symbols _bfd_generic_link_add_symbols -#define nlm_bfd_link_just_syms _bfd_generic_link_just_syms -#define nlm_bfd_copy_link_hash_symbol_type \ - _bfd_generic_copy_link_hash_symbol_type -#define nlm_bfd_final_link _bfd_generic_final_link -#define nlm_bfd_link_split_section _bfd_generic_link_split_section -#define nlm_bfd_link_check_relocs _bfd_generic_link_check_relocs - -/* This structure contains everything that BFD knows about a target. - It includes things like its byte order, name, what routines to call - to do various operations, etc. Every BFD points to a target structure - with its "xvec" member. - - There are two such structures here: one for big-endian machines and - one for little-endian machines. */ - -/* Forward declaration for use when initialising alternative_target field. */ -#ifdef TARGET_LITTLE_SYM -extern const bfd_target TARGET_LITTLE_SYM; -#endif - -#ifdef TARGET_BIG_SYM -const bfd_target TARGET_BIG_SYM = -{ - /* Name: identify kind of target. */ - TARGET_BIG_NAME, - - /* Flavour: general indication about file. */ - bfd_target_nlm_flavour, - - /* Byteorder: data is big endian. */ - BFD_ENDIAN_BIG, - - /* Header_byteorder: header is also big endian. */ - BFD_ENDIAN_BIG, - - /* Object_flags: mask of all file flags. */ - (HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS - | WP_TEXT), - - /* Section_flags: mask of all section flags. */ - (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY - | SEC_CODE | SEC_DATA), - - /* Leading_symbol_char: is the first char of a user symbol - predictable, and if so what is it. */ - 0, - - /* AR_pad_char: pad character for filenames within an archive header - FIXME: this really has nothing to do with NLM, this is a characteristic - of the archiver and/or os and should be independently tunable. */ - '/', - - /* AR_max_namelen: maximum number of characters in an archive header - FIXME: this really has nothing to do with NLM, this is a characteristic - of the archiver and should be independently tunable. This value is - a WAG (wild a** guess). */ - 15, - 0, /* match priority. */ - - /* Routines to byte-swap various sized integers from the data sections. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, - - /* Routines to byte-swap various sized integers from the file headers. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, - - /* bfd_check_format: check the format of a file being read. */ - { _bfd_dummy_target, /* Unknown format. */ - nlmNAME (object_p), /* Assembler/linker output (object file). */ - bfd_generic_archive_p, /* An archive. */ - nlm_core_file_p /* A core file. */ - }, - - /* bfd_set_format: set the format of a file being written. */ - { bfd_false, - nlm_mkobject, - _bfd_generic_mkarchive, - bfd_false - }, - - /* bfd_write_contents: write cached information into a file being written. */ - { bfd_false, - nlmNAME (write_object_contents), - _bfd_write_archive_contents, - bfd_false - }, - - /* Initialize a jump table with the standard macro. - All names start with "nlm". */ - BFD_JUMP_TABLE_GENERIC (_bfd_generic), - BFD_JUMP_TABLE_COPY (_bfd_generic), - BFD_JUMP_TABLE_CORE (_bfd_nocore), - BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive), - BFD_JUMP_TABLE_SYMBOLS (nlm), - BFD_JUMP_TABLE_RELOCS (nlm), - BFD_JUMP_TABLE_WRITE (nlm), - BFD_JUMP_TABLE_LINK (nlm), - BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), - - /* Alternative endian target. */ -#ifdef TARGET_LITTLE_SYM - & TARGET_LITTLE_SYM, -#else - NULL, -#endif - - /* Backend_data. */ - (void *) TARGET_BACKEND_DATA -}; -#endif - -#ifdef TARGET_LITTLE_SYM -const bfd_target TARGET_LITTLE_SYM = -{ - /* Name: identify kind of target. */ - TARGET_LITTLE_NAME, - - /* Flavour: general indication about file. */ - bfd_target_nlm_flavour, - - /* Byteorder: data is little endian. */ - BFD_ENDIAN_LITTLE, - - /* Header_byteorder: header is also little endian. */ - BFD_ENDIAN_LITTLE, - - /* Object_flags: mask of all file flags. */ - (HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS - | WP_TEXT), - - /* Section_flags: mask of all section flags. */ - (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY - | SEC_DATA), - - /* Leading_symbol_char: is the first char of a user symbol - predictable, and if so what is it. */ - 0, - - /* AR_pad_char: pad character for filenames within an archive header - FIXME: this really has nothing to do with NLM, this is a characteristic - of the archiver and/or os and should be independently tunable. */ - '/', - - /* AR_max_namelen: maximum number of characters in an archive header - FIXME: this really has nothing to do with NLM, this is a characteristic - of the archiver and should be independently tunable. This value is - a WAG (wild a** guess). */ - 15, - 0, /* match priority. */ - - /* Routines to byte-swap various sized integers from the data sections. */ - bfd_getl64, bfd_getl_signed_64, bfd_putl64, - bfd_getl32, bfd_getl_signed_32, bfd_putl32, - bfd_getl16, bfd_getl_signed_16, bfd_putl16, - - /* Routines to byte-swap various sized integers from the file headers. */ - bfd_getl64, bfd_getl_signed_64, bfd_putl64, - bfd_getl32, bfd_getl_signed_32, bfd_putl32, - bfd_getl16, bfd_getl_signed_16, bfd_putl16, - - /* bfd_check_format: check the format of a file being read. */ - { _bfd_dummy_target, /* Unknown format. */ - nlmNAME(object_p), /* Assembler/linker output (object file). */ - bfd_generic_archive_p, /* An archive. */ - nlm_core_file_p /* A core file. */ - }, - - /* bfd_set_format: set the format of a file being written. */ - { bfd_false, - nlm_mkobject, - _bfd_generic_mkarchive, - bfd_false - }, - - /* bfd_write_contents: write cached information into a file being written. */ - { bfd_false, - nlmNAME(write_object_contents), - _bfd_write_archive_contents, - bfd_false - }, - - /* Initialize a jump table with the standard macro. - All names start with "nlm". */ - BFD_JUMP_TABLE_GENERIC (_bfd_generic), - BFD_JUMP_TABLE_COPY (_bfd_generic), - BFD_JUMP_TABLE_CORE (_bfd_nocore), - BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive), - BFD_JUMP_TABLE_SYMBOLS (nlm), - BFD_JUMP_TABLE_RELOCS (nlm), - BFD_JUMP_TABLE_WRITE (nlm), - BFD_JUMP_TABLE_LINK (nlm), - BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), - - /* Alternative endian target. */ -#ifdef TARGET_BIG_SYM - & TARGET_BIG_SYM, -#else - NULL, -#endif - - /* Backend_data. */ - (void *) TARGET_BACKEND_DATA -}; -#endif diff -Nru gdb-8.1/bfd/oasys.c gdb-8.2/bfd/oasys.c --- gdb-8.1/bfd/oasys.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/oasys.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,1253 +0,0 @@ -/* BFD back-end for oasys objects. - Copyright (C) 1990-2018 Free Software Foundation, Inc. - Written by Steve Chamberlain of Cygnus Support, . - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define UNDERSCORE_HACK 1 -#include "sysdep.h" -#include "bfd.h" -#include "safe-ctype.h" -#include "libbfd.h" -#include "oasys.h" -#include "liboasys.h" -#include "libiberty.h" - -/* Read in all the section data and relocation stuff too. */ - -static bfd_boolean -oasys_read_record (bfd *abfd, oasys_record_union_type *record) -{ - bfd_size_type amt = sizeof (record->header); - - if (bfd_bread ((void *) record, amt, abfd) != amt) - return FALSE; - - amt = record->header.length - sizeof (record->header); - if ((long) amt <= 0) - return TRUE; - if (bfd_bread ((void *) ((char *) record + sizeof (record->header)), amt, abfd) - != amt) - return FALSE; - return TRUE; -} - -static size_t -oasys_string_length (oasys_record_union_type *record) -{ - return record->header.length - - ((char *) record->symbol.name - (char *) record); -} - -/* Slurp the symbol table by reading in all the records at the start file - till we get to the first section record. - - We'll sort the symbolss into two lists, defined and undefined. The - undefined symbols will be placed into the table according to their - refno. - - We do this by placing all undefined symbols at the front of the table - moving in, and the defined symbols at the end of the table moving back. */ - -static bfd_boolean -oasys_slurp_symbol_table (bfd *const abfd) -{ - oasys_record_union_type record; - oasys_data_type *data = OASYS_DATA (abfd); - bfd_boolean loop = TRUE; - asymbol *dest_defined; - asymbol *dest; - char *string_ptr; - bfd_size_type amt; - - if (data->symbols != NULL) - return TRUE; - - /* Buy enough memory for all the symbols and all the names. */ - amt = abfd->symcount; - amt *= sizeof (asymbol); - data->symbols = bfd_alloc (abfd, amt); - - amt = data->symbol_string_length; -#ifdef UNDERSCORE_HACK - /* Buy 1 more char for each symbol to keep the underscore in. */ - amt += abfd->symcount; -#endif - data->strings = bfd_alloc (abfd, amt); - - if (!data->symbols || !data->strings) - return FALSE; - - dest_defined = data->symbols + abfd->symcount - 1; - - string_ptr = data->strings; - if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) - return FALSE; - while (loop) - { - if (! oasys_read_record (abfd, &record)) - return FALSE; - - switch (record.header.type) - { - case oasys_record_is_header_enum: - break; - case oasys_record_is_local_enum: - case oasys_record_is_symbol_enum: - { - int flag = record.header.type == (int) oasys_record_is_local_enum ? - (BSF_LOCAL) : (BSF_GLOBAL | BSF_EXPORT); - - size_t length = oasys_string_length (&record); - switch (record.symbol.relb & RELOCATION_TYPE_BITS) - { - case RELOCATION_TYPE_ABS: - dest = dest_defined--; - dest->section = bfd_abs_section_ptr; - dest->flags = 0; - - break; - case RELOCATION_TYPE_REL: - dest = dest_defined--; - dest->section = - OASYS_DATA (abfd)->sections[record.symbol.relb & - RELOCATION_SECT_BITS]; - if (record.header.type == (int) oasys_record_is_local_enum) - { - dest->flags = BSF_LOCAL; - if (dest->section == (asection *) (~0)) - { - /* It seems that sometimes internal symbols are tied up, but - still get output, even though there is no - section */ - dest->section = 0; - } - } - else - dest->flags = flag; - break; - case RELOCATION_TYPE_UND: - dest = data->symbols + H_GET_16 (abfd, record.symbol.refno); - dest->section = bfd_und_section_ptr; - break; - case RELOCATION_TYPE_COM: - dest = dest_defined--; - dest->name = string_ptr; - dest->the_bfd = abfd; - dest->section = bfd_com_section_ptr; - break; - default: - dest = dest_defined--; - BFD_ASSERT (FALSE); - break; - } - dest->name = string_ptr; - dest->the_bfd = abfd; - dest->udata.p = NULL; - dest->value = H_GET_32 (abfd, record.symbol.value); - -#ifdef UNDERSCORE_HACK - if (record.symbol.name[0] != '_') - { - string_ptr[0] = '_'; - string_ptr++; - } -#endif - memcpy (string_ptr, record.symbol.name, length); - - string_ptr[length] = 0; - string_ptr += length + 1; - } - break; - default: - loop = FALSE; - } - } - return TRUE; -} - -static long -oasys_get_symtab_upper_bound (bfd *const abfd) -{ - if (! oasys_slurp_symbol_table (abfd)) - return -1; - - return (abfd->symcount + 1) * (sizeof (oasys_symbol_type *)); -} - -extern const bfd_target oasys_vec; - -static long -oasys_canonicalize_symtab (bfd *abfd, asymbol **location) -{ - asymbol *symbase; - unsigned int counter; - - if (! oasys_slurp_symbol_table (abfd)) - return -1; - - symbase = OASYS_DATA (abfd)->symbols; - for (counter = 0; counter < abfd->symcount; counter++) - *(location++) = symbase++; - - *location = 0; - return abfd->symcount; -} - -/* Archive stuff. */ - -static const bfd_target * -oasys_archive_p (bfd *abfd) -{ - oasys_archive_header_type header; - oasys_extarchive_header_type header_ext; - unsigned int i; - file_ptr filepos; - bfd_size_type amt; - - amt = sizeof (header_ext); - if (bfd_seek (abfd, (file_ptr) 0, 0) != 0 - || bfd_bread ((void *) &header_ext, amt, abfd) != amt) - { - if (bfd_get_error () != bfd_error_system_call) - bfd_set_error (bfd_error_wrong_format); - return NULL; - } - - header.version = H_GET_32 (abfd, header_ext.version); - header.mod_count = H_GET_32 (abfd, header_ext.mod_count); - header.mod_tbl_offset = H_GET_32 (abfd, header_ext.mod_tbl_offset); - header.sym_tbl_size = H_GET_32 (abfd, header_ext.sym_tbl_size); - header.sym_count = H_GET_32 (abfd, header_ext.sym_count); - header.sym_tbl_offset = H_GET_32 (abfd, header_ext.sym_tbl_offset); - header.xref_count = H_GET_32 (abfd, header_ext.xref_count); - header.xref_lst_offset = H_GET_32 (abfd, header_ext.xref_lst_offset); - - /* There isn't a magic number in an Oasys archive, so the best we - can do to verify reasonableness is to make sure that the values in - the header are too weird. */ - - if (header.version > 10000 - || header.mod_count > 10000 - || header.sym_count > 100000 - || header.xref_count > 100000) - return NULL; - - /* That all worked, let's buy the space for the header and read in - the headers. */ - { - oasys_ar_data_type *ar; - oasys_module_info_type *module; - oasys_module_table_type record; - - amt = sizeof (oasys_ar_data_type); - ar = bfd_alloc (abfd, amt); - - amt = header.mod_count; - amt *= sizeof (oasys_module_info_type); - module = bfd_alloc (abfd, amt); - - if (!ar || !module) - return NULL; - - abfd->tdata.oasys_ar_data = ar; - ar->module = module; - ar->module_count = header.mod_count; - - filepos = header.mod_tbl_offset; - for (i = 0; i < header.mod_count; i++) - { - oasys_extmodule_table_type_b_type record_ext; - - if (bfd_seek (abfd, filepos, SEEK_SET) != 0) - return NULL; - - /* There are two ways of specifying the archive header. */ - amt = sizeof (record_ext); - if (bfd_bread ((void *) &record_ext, amt, abfd) != amt) - return NULL; - - record.mod_size = H_GET_32 (abfd, record_ext.mod_size); - record.file_offset = H_GET_32 (abfd, record_ext.file_offset); - - record.dep_count = H_GET_32 (abfd, record_ext.dep_count); - record.depee_count = H_GET_32 (abfd, record_ext.depee_count); - record.sect_count = H_GET_32 (abfd, record_ext.sect_count); - record.module_name_size = H_GET_32 (abfd, - record_ext.mod_name_length); - - amt = record.module_name_size; - module[i].name = bfd_alloc (abfd, amt + 1); - if (!module[i].name) - return NULL; - if (bfd_bread ((void *) module[i].name, amt, abfd) != amt) - return NULL; - module[i].name[record.module_name_size] = 0; - filepos += (sizeof (record_ext) - + record.dep_count * 4 - + record.module_name_size + 1); - - module[i].size = record.mod_size; - module[i].pos = record.file_offset; - module[i].abfd = 0; - } - } - return abfd->xvec; -} - -static bfd_boolean -oasys_mkobject (bfd *abfd) -{ - bfd_size_type amt = sizeof (oasys_data_type); - - abfd->tdata.oasys_obj_data = bfd_alloc (abfd, amt); - - return abfd->tdata.oasys_obj_data != NULL; -} - -/* The howto table is build using the top two bits of a reloc byte to - index into it. The bits are PCREL,WORD/LONG. */ - -static reloc_howto_type howto_table[] = -{ - - HOWTO (0, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, 0, "abs16", TRUE, 0x0000ffff, 0x0000ffff, FALSE), - HOWTO (0, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, 0, "abs32", TRUE, 0xffffffff, 0xffffffff, FALSE), - HOWTO (0, 0, 1, 16, TRUE, 0, complain_overflow_signed, 0, "pcrel16", TRUE, 0x0000ffff, 0x0000ffff, FALSE), - HOWTO (0, 0, 2, 32, TRUE, 0, complain_overflow_signed, 0, "pcrel32", TRUE, 0xffffffff, 0xffffffff, FALSE) -}; - -/* Read in all the section data and relocation stuff too. */ - -static bfd_boolean -oasys_slurp_section_data (bfd *const abfd) -{ - oasys_record_union_type record; - oasys_data_type *data = OASYS_DATA (abfd); - bfd_boolean loop = TRUE; - oasys_per_section_type *per; - asection *s; - bfd_size_type amt; - - /* See if the data has been slurped already. */ - for (s = abfd->sections; s != NULL; s = s->next) - { - per = oasys_per_section (s); - if (per->initialized) - return TRUE; - } - - if (data->first_data_record == 0) - return TRUE; - - if (bfd_seek (abfd, data->first_data_record, SEEK_SET) != 0) - return FALSE; - - while (loop) - { - if (! oasys_read_record (abfd, &record)) - return FALSE; - - switch (record.header.type) - { - case oasys_record_is_header_enum: - break; - case oasys_record_is_data_enum: - { - bfd_byte *src = record.data.data; - bfd_byte *end_src = ((bfd_byte *) & record) + record.header.length; - bfd_byte *dst_ptr; - bfd_byte *dst_base_ptr; - unsigned int relbit; - unsigned int count; - asection *section = - data->sections[record.data.relb & RELOCATION_SECT_BITS]; - bfd_vma dst_offset; - - per = oasys_per_section (section); - - if (! per->initialized) - { - arelent **relpp; - - per->data = bfd_zalloc (abfd, section->size); - if (!per->data) - return FALSE; - relpp = §ion->relocation; - per->reloc_tail_ptr = (oasys_reloc_type **) relpp; - per->had_vma = FALSE; - per->initialized = TRUE; - section->reloc_count = 0; - section->flags = SEC_ALLOC; - } - - dst_offset = H_GET_32 (abfd, record.data.addr); - if (! per->had_vma) - { - /* Take the first vma we see as the base. */ - section->vma = dst_offset; - per->had_vma = TRUE; - } - - dst_offset -= section->vma; - - dst_base_ptr = oasys_per_section (section)->data; - dst_ptr = oasys_per_section (section)->data + - dst_offset; - - if (src < end_src) - section->flags |= SEC_LOAD | SEC_HAS_CONTENTS; - - while (src < end_src) - { - unsigned char mod_byte = *src++; - size_t gap = end_src - src; - - count = 8; - if (mod_byte == 0 && gap >= 8) - { - dst_ptr[0] = src[0]; - dst_ptr[1] = src[1]; - dst_ptr[2] = src[2]; - dst_ptr[3] = src[3]; - dst_ptr[4] = src[4]; - dst_ptr[5] = src[5]; - dst_ptr[6] = src[6]; - dst_ptr[7] = src[7]; - dst_ptr += 8; - src += 8; - } - else - { - for (relbit = 1; count-- != 0 && src < end_src; relbit <<= 1) - { - if (relbit & mod_byte) - { - unsigned char reloc = *src; - /* This item needs to be relocated. */ - switch (reloc & RELOCATION_TYPE_BITS) - { - case RELOCATION_TYPE_ABS: - break; - - case RELOCATION_TYPE_REL: - { - /* Relocate the item relative to the section. */ - oasys_reloc_type *r; - - amt = sizeof (oasys_reloc_type); - r = bfd_alloc (abfd, amt); - if (!r) - return FALSE; - *(per->reloc_tail_ptr) = r; - per->reloc_tail_ptr = &r->next; - r->next = NULL; - /* Reference to undefined symbol. */ - src++; - /* There is no symbol. */ - r->symbol = 0; - /* Work out the howto. */ - abort (); - r->relent.address = dst_ptr - dst_base_ptr; - r->relent.howto = &howto_table[reloc >> 6]; - r->relent.sym_ptr_ptr = NULL; - section->reloc_count++; - - /* Fake up the data to look like - it's got the -ve pc in it, this - makes it much easier to convert - into other formats. This is done - by hitting the addend. */ - if (r->relent.howto->pc_relative) - r->relent.addend -= dst_ptr - dst_base_ptr; - } - break; - - case RELOCATION_TYPE_UND: - { - oasys_reloc_type *r; - - amt = sizeof (oasys_reloc_type); - r = bfd_alloc (abfd, amt); - if (!r) - return FALSE; - *(per->reloc_tail_ptr) = r; - per->reloc_tail_ptr = &r->next; - r->next = NULL; - /* Reference to undefined symbol. */ - src++; - /* Get symbol number. */ - r->symbol = (src[0] << 8) | src[1]; - /* Work out the howto. */ - abort (); - - r->relent.addend = 0; - r->relent.address = dst_ptr - dst_base_ptr; - r->relent.howto = &howto_table[reloc >> 6]; - r->relent.sym_ptr_ptr = NULL; - section->reloc_count++; - - src += 2; - /* Fake up the data to look like - it's got the -ve pc in it, this - makes it much easier to convert - into other formats. This is done - by hitting the addend. */ - if (r->relent.howto->pc_relative) - r->relent.addend -= dst_ptr - dst_base_ptr; - } - break; - case RELOCATION_TYPE_COM: - BFD_FAIL (); - } - } - *dst_ptr++ = *src++; - } - } - } - } - break; - case oasys_record_is_local_enum: - case oasys_record_is_symbol_enum: - case oasys_record_is_section_enum: - break; - default: - loop = FALSE; - } - } - - return TRUE; - -} - -#define MAX_SECS 16 - -static const bfd_target * -oasys_object_p (bfd *abfd) -{ - oasys_data_type *oasys; - oasys_data_type *save = OASYS_DATA (abfd); - bfd_boolean loop = TRUE; - bfd_boolean had_usefull = FALSE; - - abfd->tdata.oasys_obj_data = 0; - oasys_mkobject (abfd); - oasys = OASYS_DATA (abfd); - memset ((void *) oasys->sections, 0xff, sizeof (oasys->sections)); - - /* Point to the start of the file. */ - if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) - goto fail; - oasys->symbol_string_length = 0; - - /* Inspect the records, but only keep the section info - - remember the size of the symbols. */ - oasys->first_data_record = 0; - while (loop) - { - oasys_record_union_type record; - if (! oasys_read_record (abfd, &record)) - goto fail; - if ((size_t) record.header.length < (size_t) sizeof (record.header)) - goto fail; - - switch ((oasys_record_enum_type) (record.header.type)) - { - case oasys_record_is_header_enum: - had_usefull = TRUE; - break; - case oasys_record_is_symbol_enum: - case oasys_record_is_local_enum: - /* Count symbols and remember their size for a future malloc. */ - abfd->symcount++; - oasys->symbol_string_length += 1 + oasys_string_length (&record); - had_usefull = TRUE; - break; - case oasys_record_is_section_enum: - { - asection *s; - char *buffer; - unsigned int section_number; - - if (record.section.header.length != sizeof (record.section)) - goto fail; - - buffer = bfd_alloc (abfd, (bfd_size_type) 3); - if (!buffer) - goto fail; - section_number = record.section.relb & RELOCATION_SECT_BITS; - sprintf (buffer, "%u", section_number); - s = bfd_make_section (abfd, buffer); - oasys->sections[section_number] = s; - switch (record.section.relb & RELOCATION_TYPE_BITS) - { - case RELOCATION_TYPE_ABS: - case RELOCATION_TYPE_REL: - break; - case RELOCATION_TYPE_UND: - case RELOCATION_TYPE_COM: - BFD_FAIL (); - } - - s->size = H_GET_32 (abfd, record.section.value); - s->vma = H_GET_32 (abfd, record.section.vma); - s->flags = 0; - had_usefull = TRUE; - } - break; - case oasys_record_is_data_enum: - oasys->first_data_record = bfd_tell (abfd) - record.header.length; - /* Fall through. */ - case oasys_record_is_debug_enum: - case oasys_record_is_module_enum: - case oasys_record_is_named_section_enum: - case oasys_record_is_end_enum: - if (! had_usefull) - goto fail; - loop = FALSE; - break; - default: - goto fail; - } - } - oasys->symbols = NULL; - - /* Oasys support several architectures, but I can't see a simple way - to discover which one is in a particular file - we'll guess. */ - bfd_default_set_arch_mach (abfd, bfd_arch_m68k, 0); - if (abfd->symcount != 0) - abfd->flags |= HAS_SYMS; - - /* We don't know if a section has data until we've read it. */ - oasys_slurp_section_data (abfd); - - return abfd->xvec; - -fail: - (void) bfd_release (abfd, oasys); - abfd->tdata.oasys_obj_data = save; - return NULL; -} - - -static void -oasys_get_symbol_info (bfd *ignore_abfd ATTRIBUTE_UNUSED, - asymbol *symbol, - symbol_info *ret) -{ - bfd_symbol_info (symbol, ret); - - if (!symbol->section) - ret->type = (symbol->flags & BSF_LOCAL) ? 'a' : 'A'; -} - -static void -oasys_print_symbol (bfd *abfd, void * afile, asymbol *symbol, bfd_print_symbol_type how) -{ - FILE *file = (FILE *) afile; - - switch (how) - { - case bfd_print_symbol_name: - case bfd_print_symbol_more: - fprintf (file, "%s", symbol->name); - break; - case bfd_print_symbol_all: - { - const char *section_name = symbol->section == NULL ? - (const char *) "*abs" : symbol->section->name; - - bfd_print_symbol_vandf (abfd, (void *) file, symbol); - - fprintf (file, " %-5s %s", - section_name, - symbol->name); - } - break; - } -} - -static bfd_boolean -oasys_new_section_hook (bfd *abfd, asection *newsect) -{ - if (!newsect->used_by_bfd) - { - newsect->used_by_bfd - = bfd_alloc (abfd, (bfd_size_type) sizeof (oasys_per_section_type)); - if (!newsect->used_by_bfd) - return FALSE; - } - oasys_per_section (newsect)->data = NULL; - oasys_per_section (newsect)->section = newsect; - oasys_per_section (newsect)->offset = 0; - oasys_per_section (newsect)->initialized = FALSE; - newsect->alignment_power = 1; - - /* Turn the section string into an index. */ - sscanf (newsect->name, "%u", &newsect->target_index); - - return _bfd_generic_new_section_hook (abfd, newsect); -} - - -static long -oasys_get_reloc_upper_bound (bfd *abfd, sec_ptr asect) -{ - if (! oasys_slurp_section_data (abfd)) - return -1; - return (asect->reloc_count + 1) * sizeof (arelent *); -} - -static bfd_boolean -oasys_get_section_contents (bfd *abfd, - sec_ptr section, - void * location, - file_ptr offset, - bfd_size_type count) -{ - oasys_per_section_type *p = oasys_per_section (section); - - oasys_slurp_section_data (abfd); - - if (! p->initialized) - (void) memset (location, 0, (size_t) count); - else - (void) memcpy (location, (void *) (p->data + offset), (size_t) count); - - return TRUE; -} - -static long -oasys_canonicalize_reloc (bfd *ignore_abfd ATTRIBUTE_UNUSED, - sec_ptr section, - arelent **relptr, - asymbol **symbols ATTRIBUTE_UNUSED) -{ - unsigned int reloc_count = 0; - oasys_reloc_type *src = (oasys_reloc_type *) (section->relocation); - - if (src != NULL) - abort (); - - *relptr = NULL; - return section->reloc_count = reloc_count; -} - - -/* Writing. */ - -/* Calculate the checksum and write one record. */ - -static bfd_boolean -oasys_write_record (bfd *abfd, - oasys_record_enum_type type, - oasys_record_union_type *record, - size_t size) -{ - int checksum; - size_t i; - unsigned char *ptr; - - record->header.length = size; - record->header.type = (int) type; - record->header.check_sum = 0; - record->header.fill = 0; - ptr = (unsigned char *) &record->pad[0]; - checksum = 0; - for (i = 0; i < size; i++) - checksum += *ptr++; - record->header.check_sum = 0xff & (-checksum); - if (bfd_bwrite ((void *) record, (bfd_size_type) size, abfd) != size) - return FALSE; - return TRUE; -} - - -/* Write out all the symbols. */ - -static bfd_boolean -oasys_write_syms (bfd *abfd) -{ - unsigned int count; - asymbol **generic = bfd_get_outsymbols (abfd); - unsigned int sym_index = 0; - - for (count = 0; count < bfd_get_symcount (abfd); count++) - { - oasys_symbol_record_type symbol; - asymbol *const g = generic[count]; - const char *src = g->name; - char *dst = symbol.name; - unsigned int l = 0; - - if (bfd_is_com_section (g->section)) - { - symbol.relb = RELOCATION_TYPE_COM; - H_PUT_16 (abfd, sym_index, symbol.refno); - sym_index++; - } - else if (bfd_is_abs_section (g->section)) - { - symbol.relb = RELOCATION_TYPE_ABS; - H_PUT_16 (abfd, 0, symbol.refno); - } - else if (bfd_is_und_section (g->section)) - { - symbol.relb = RELOCATION_TYPE_UND; - H_PUT_16 (abfd, sym_index, symbol.refno); - /* Overload the value field with the output sym_index number */ - sym_index++; - } - else if (g->flags & BSF_DEBUGGING) - /* Throw it away. */ - continue; - else - { - if (g->section == NULL) - /* Sometime, the oasys tools give out a symbol with illegal - bits in it, we'll output it in the same broken way. */ - symbol.relb = RELOCATION_TYPE_REL | 0; - else - symbol.relb = RELOCATION_TYPE_REL | g->section->output_section->target_index; - - H_PUT_16 (abfd, 0, symbol.refno); - } - -#ifdef UNDERSCORE_HACK - if (src[l] == '_') - dst[l++] = '.'; -#endif - while (src[l]) - { - dst[l] = src[l]; - l++; - } - - H_PUT_32 (abfd, g->value, symbol.value); - - if (g->flags & BSF_LOCAL) - { - if (! oasys_write_record (abfd, - oasys_record_is_local_enum, - (oasys_record_union_type *) & symbol, - offsetof (oasys_symbol_record_type, - name[0]) + l)) - return FALSE; - } - else - { - if (! oasys_write_record (abfd, - oasys_record_is_symbol_enum, - (oasys_record_union_type *) & symbol, - offsetof (oasys_symbol_record_type, - name[0]) + l)) - return FALSE; - } - g->value = sym_index - 1; - } - - return TRUE; -} - -/* Write a section header for each section. */ - -static bfd_boolean -oasys_write_sections (bfd *abfd) -{ - asection *s; - static oasys_section_record_type out; - - for (s = abfd->sections; s != NULL; s = s->next) - { - if (!ISDIGIT (s->name[0])) - { - _bfd_error_handler - /* xgettext:c-format */ - (_("%B: can not represent section `%A' in oasys"), abfd, s); - bfd_set_error (bfd_error_nonrepresentable_section); - return FALSE; - } - out.relb = RELOCATION_TYPE_REL | s->target_index; - H_PUT_32 (abfd, s->size, out.value); - H_PUT_32 (abfd, s->vma, out.vma); - - if (! oasys_write_record (abfd, - oasys_record_is_section_enum, - (oasys_record_union_type *) & out, - sizeof (out))) - return FALSE; - } - return TRUE; -} - -static bfd_boolean -oasys_write_header (bfd *abfd) -{ - /* Create and write the header. */ - oasys_header_record_type r; - size_t length = strlen (abfd->filename); - - if (length > (size_t) sizeof (r.module_name)) - length = sizeof (r.module_name); - else if (length < (size_t) sizeof (r.module_name)) - (void) memset (r.module_name + length, ' ', - sizeof (r.module_name) - length); - - (void) memcpy (r.module_name, abfd->filename, length); - - r.version_number = OASYS_VERSION_NUMBER; - r.rev_number = OASYS_REV_NUMBER; - - return oasys_write_record (abfd, oasys_record_is_header_enum, - (oasys_record_union_type *) & r, - offsetof (oasys_header_record_type, - description[0])); -} - -static bfd_boolean -oasys_write_end (bfd *abfd) -{ - oasys_end_record_type end; - unsigned char null = 0; - - end.relb = RELOCATION_TYPE_ABS; - H_PUT_32 (abfd, abfd->start_address, end.entry); - H_PUT_16 (abfd, 0, end.fill); - end.zero = 0; - if (! oasys_write_record (abfd, - oasys_record_is_end_enum, - (oasys_record_union_type *) & end, - sizeof (end))) - return FALSE; - - return bfd_bwrite ((void *) &null, (bfd_size_type) 1, abfd) == 1; -} - -static int -comp (const void * ap, const void * bp) -{ - arelent *a = *((arelent **) ap); - arelent *b = *((arelent **) bp); - - return a->address - b->address; -} - -static bfd_boolean -oasys_write_data (bfd *abfd) -{ - asection *s; - - for (s = abfd->sections; s != NULL; s = s->next) - { - if (s->flags & SEC_LOAD) - { - bfd_byte *raw_data = oasys_per_section (s)->data; - oasys_data_record_type processed_data; - bfd_size_type current_byte_index = 0; - unsigned int relocs_to_go = s->reloc_count; - arelent **p = s->orelocation; - - if (s->reloc_count != 0) - /* Sort the reloc records so it's easy to insert the relocs into the - data. */ - qsort (s->orelocation, s->reloc_count, sizeof (arelent **), comp); - - current_byte_index = 0; - processed_data.relb = s->target_index | RELOCATION_TYPE_REL; - - while (current_byte_index < s->size) - { - /* Scan forwards by eight bytes or however much is left and see if - there are any relocations going on. */ - bfd_byte *mod = &processed_data.data[0]; - bfd_byte *dst = &processed_data.data[1]; - - unsigned int i = 0; - *mod = 0; - - H_PUT_32 (abfd, s->vma + current_byte_index, - processed_data.addr); - - /* Don't start a relocation unless you're sure you can finish it - within the same data record. The worst case relocation is a - 4-byte relocatable value which is split across two modification - bytes (1 relocation byte + 2 symbol reference bytes + 2 data + - 1 modification byte + 2 data = 8 bytes total). That's where - the magic number 8 comes from. */ - while (current_byte_index < s->size && dst <= - & processed_data.data[sizeof (processed_data.data) - 8]) - { - if (relocs_to_go != 0) - { - arelent *r = *p; - - /* There is a relocation, is it for this byte ? */ - if (r->address == current_byte_index) - abort (); - } - - /* If this is coming from an unloadable section then copy - zeros. */ - if (raw_data == NULL) - *dst++ = 0; - else - *dst++ = *raw_data++; - - if (++i >= 8) - { - i = 0; - mod = dst++; - *mod = 0; - } - current_byte_index++; - } - - /* Don't write a useless null modification byte. */ - if (dst == mod + 1) - --dst; - - if (! (oasys_write_record - (abfd, oasys_record_is_data_enum, - ((oasys_record_union_type *) &processed_data), - (size_t) (dst - (bfd_byte *) &processed_data)))) - return FALSE; - } - } - } - - return TRUE; -} - -static bfd_boolean -oasys_write_object_contents (bfd *abfd) -{ - if (! oasys_write_header (abfd)) - return FALSE; - if (! oasys_write_syms (abfd)) - return FALSE; - if (! oasys_write_sections (abfd)) - return FALSE; - if (! oasys_write_data (abfd)) - return FALSE; - if (! oasys_write_end (abfd)) - return FALSE; - return TRUE; -} - -/* Set section contents is complicated with OASYS since the format is - not a byte image, but a record stream. */ - -static bfd_boolean -oasys_set_section_contents (bfd *abfd, - sec_ptr section, - const void * location, - file_ptr offset, - bfd_size_type count) -{ - if (count != 0) - { - if (oasys_per_section (section)->data == NULL) - { - oasys_per_section (section)->data = bfd_alloc (abfd, section->size); - if (!oasys_per_section (section)->data) - return FALSE; - } - (void) memcpy ((void *) (oasys_per_section (section)->data + offset), - location, (size_t) count); - } - return TRUE; -} - - - -/* Native-level interface to symbols. */ - -/* We read the symbols into a buffer, which is discarded when this - function exits. We read the strings into a buffer large enough to - hold them all plus all the cached symbol entries. */ - -static asymbol * -oasys_make_empty_symbol (bfd *abfd) -{ - bfd_size_type amt = sizeof (oasys_symbol_type); - oasys_symbol_type *new_symbol_type = bfd_zalloc (abfd, amt); - - if (!new_symbol_type) - return NULL; - new_symbol_type->symbol.the_bfd = abfd; - return &new_symbol_type->symbol; -} - -/* User should have checked the file flags; perhaps we should return - BFD_NO_MORE_SYMBOLS if there are none? */ - -static bfd * -oasys_openr_next_archived_file (bfd *arch, bfd *prev) -{ - oasys_ar_data_type *ar = OASYS_AR_DATA (arch); - oasys_module_info_type *p; - - /* Take the next one from the arch state, or reset. */ - if (prev == NULL) - /* Reset the index - the first two entries are bogus. */ - ar->module_index = 0; - - p = ar->module + ar->module_index; - ar->module_index++; - - if (ar->module_index <= ar->module_count) - { - if (p->abfd == NULL) - { - p->abfd = _bfd_create_empty_archive_element_shell (arch); - p->abfd->origin = p->pos; - p->abfd->filename = xstrdup (p->name); - - /* Fixup a pointer to this element for the member. */ - p->abfd->arelt_data = (void *) p; - } - return p->abfd; - } - - bfd_set_error (bfd_error_no_more_archived_files); - return NULL; -} - -#define oasys_find_nearest_line _bfd_nosymbols_find_nearest_line -#define oasys_find_line _bfd_nosymbols_find_line -#define oasys_find_inliner_info _bfd_nosymbols_find_inliner_info - -static int -oasys_generic_stat_arch_elt (bfd *abfd, struct stat *buf) -{ - oasys_module_info_type *mod = (oasys_module_info_type *) abfd->arelt_data; - - if (mod == NULL) - { - bfd_set_error (bfd_error_invalid_operation); - return -1; - } - - buf->st_size = mod->size; - buf->st_mode = 0666; - return 0; -} - -static int -oasys_sizeof_headers (bfd *abfd ATTRIBUTE_UNUSED, - struct bfd_link_info *info ATTRIBUTE_UNUSED) -{ - return 0; -} - -#define oasys_close_and_cleanup _bfd_generic_close_and_cleanup -#define oasys_bfd_free_cached_info _bfd_generic_bfd_free_cached_info -#define oasys_slurp_armap bfd_true -#define oasys_slurp_extended_name_table bfd_true -#define oasys_construct_extended_name_table ((bfd_boolean (*) (bfd *, char **, bfd_size_type *, const char **)) bfd_true) -#define oasys_truncate_arname bfd_dont_truncate_arname -#define oasys_write_armap ((bfd_boolean (*) (bfd *, unsigned int, struct orl *, unsigned int, int)) bfd_true) -#define oasys_read_ar_hdr bfd_nullvoidptr -#define oasys_write_ar_hdr ((bfd_boolean (*) (bfd *, bfd *)) bfd_false) -#define oasys_get_elt_at_index _bfd_generic_get_elt_at_index -#define oasys_update_armap_timestamp bfd_true -#define oasys_bfd_is_local_label_name bfd_generic_is_local_label_name -#define oasys_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) -#define oasys_get_lineno _bfd_nosymbols_get_lineno -#define oasys_get_symbol_version_string _bfd_nosymbols_get_symbol_version_string -#define oasys_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol -#define oasys_read_minisymbols _bfd_generic_read_minisymbols -#define oasys_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol -#define oasys_bfd_reloc_type_lookup _bfd_norelocs_bfd_reloc_type_lookup -#define oasys_bfd_reloc_name_lookup _bfd_norelocs_bfd_reloc_name_lookup -#define oasys_set_arch_mach bfd_default_set_arch_mach -#define oasys_get_section_contents_in_window _bfd_generic_get_section_contents_in_window -#define oasys_bfd_get_relocated_section_contents bfd_generic_get_relocated_section_contents -#define oasys_bfd_relax_section bfd_generic_relax_section -#define oasys_bfd_gc_sections bfd_generic_gc_sections -#define oasys_bfd_lookup_section_flags bfd_generic_lookup_section_flags -#define oasys_bfd_merge_sections bfd_generic_merge_sections -#define oasys_bfd_is_group_section bfd_generic_is_group_section -#define oasys_bfd_discard_group bfd_generic_discard_group -#define oasys_section_already_linked _bfd_generic_section_already_linked -#define oasys_bfd_define_common_symbol bfd_generic_define_common_symbol -#define oasys_bfd_define_start_stop bfd_generic_define_start_stop -#define oasys_bfd_link_hash_table_create _bfd_generic_link_hash_table_create -#define oasys_bfd_link_add_symbols _bfd_generic_link_add_symbols -#define oasys_bfd_link_just_syms _bfd_generic_link_just_syms -#define oasys_bfd_copy_link_hash_symbol_type \ - _bfd_generic_copy_link_hash_symbol_type -#define oasys_bfd_final_link _bfd_generic_final_link -#define oasys_bfd_link_split_section _bfd_generic_link_split_section -#define oasys_bfd_link_check_relocs _bfd_generic_link_check_relocs -#define oasys_set_reloc _bfd_generic_set_reloc - -const bfd_target oasys_vec = -{ - "oasys", /* Name. */ - bfd_target_oasys_flavour, - BFD_ENDIAN_BIG, /* Target byte order. */ - BFD_ENDIAN_BIG, /* Target headers byte order. */ - (HAS_RELOC | EXEC_P | /* Object flags. */ - HAS_LINENO | HAS_DEBUG | - HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED), - (SEC_CODE | SEC_DATA | SEC_ROM | SEC_HAS_CONTENTS - | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* Section flags. */ - 0, /* Leading underscore. */ - ' ', /* AR_pad_char. */ - 16, /* AR_max_namelen. */ - 0, /* match priority. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* Data. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* Headers. */ - - {_bfd_dummy_target, - oasys_object_p, /* bfd_check_format. */ - oasys_archive_p, - _bfd_dummy_target, - }, - { /* bfd_set_format. */ - bfd_false, - oasys_mkobject, - _bfd_generic_mkarchive, - bfd_false - }, - { /* bfd_write_contents. */ - bfd_false, - oasys_write_object_contents, - _bfd_write_archive_contents, - bfd_false, - }, - - BFD_JUMP_TABLE_GENERIC (oasys), - BFD_JUMP_TABLE_COPY (_bfd_generic), - BFD_JUMP_TABLE_CORE (_bfd_nocore), - BFD_JUMP_TABLE_ARCHIVE (oasys), - BFD_JUMP_TABLE_SYMBOLS (oasys), - BFD_JUMP_TABLE_RELOCS (oasys), - BFD_JUMP_TABLE_WRITE (oasys), - BFD_JUMP_TABLE_LINK (oasys), - BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), - - NULL, - - NULL -}; diff -Nru gdb-8.1/bfd/opncls.c gdb-8.2/bfd/opncls.c --- gdb-8.1/bfd/opncls.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/opncls.c 2018-09-05 07:27:13.000000000 +0000 @@ -1179,6 +1179,7 @@ bfd_byte *contents; unsigned int crc_offset; char *name; + bfd_size_type size; BFD_ASSERT (abfd); BFD_ASSERT (crc32_out); @@ -1188,6 +1189,12 @@ if (sect == NULL) return NULL; + size = bfd_get_section_size (sect); + + /* PR 22794: Make sure that the section has a reasonable size. */ + if (size < 8 || size >= bfd_get_size (abfd)) + return NULL; + if (!bfd_malloc_and_get_section (abfd, sect, &contents)) { if (contents != NULL) @@ -1197,10 +1204,10 @@ /* CRC value is stored after the filename, aligned up to 4 bytes. */ name = (char *) contents; - /* PR 17597: avoid reading off the end of the buffer. */ - crc_offset = strnlen (name, bfd_get_section_size (sect)) + 1; + /* PR 17597: Avoid reading off the end of the buffer. */ + crc_offset = strnlen (name, size) + 1; crc_offset = (crc_offset + 3) & ~3; - if (crc_offset + 4 > bfd_get_section_size (sect)) + if (crc_offset + 4 > size) return NULL; *crc32 = bfd_get_32 (abfd, contents + crc_offset); @@ -1261,6 +1268,7 @@ bfd_byte *contents; unsigned int buildid_offset; char *name; + bfd_size_type size; BFD_ASSERT (abfd); BFD_ASSERT (buildid_len); @@ -1271,6 +1279,10 @@ if (sect == NULL) return NULL; + size = bfd_get_section_size (sect); + if (size < 8 || size >= bfd_get_size (abfd)) + return NULL; + if (!bfd_malloc_and_get_section (abfd, sect, & contents)) { if (contents != NULL) @@ -1280,11 +1292,11 @@ /* BuildID value is stored after the filename. */ name = (char *) contents; - buildid_offset = strnlen (name, bfd_get_section_size (sect)) + 1; + buildid_offset = strnlen (name, size) + 1; if (buildid_offset >= bfd_get_section_size (sect)) return NULL; - *buildid_len = bfd_get_section_size (sect) - buildid_offset; + *buildid_len = size - buildid_offset; *buildid_out = bfd_malloc (*buildid_len); memcpy (*buildid_out, contents + buildid_offset, *buildid_len); @@ -1865,10 +1877,11 @@ inote.descdata = inote.namedata + BFD_ALIGN (inote.namesz, 4); /* FIXME: Should we check for extra notes in this section ? */ - if (inote.descsz == 0 + if (inote.descsz <= 0 || inote.type != NT_GNU_BUILD_ID || inote.namesz != 4 /* sizeof "GNU" */ || strncmp (inote.namedata, "GNU", 4) != 0 + || inote.descsz > 0x7ffffffe || size < (12 + BFD_ALIGN (inote.namesz, 4) + inote.descsz)) { free (contents); diff -Nru gdb-8.1/bfd/osf-core.c gdb-8.2/bfd/osf-core.c --- gdb-8.1/bfd/osf-core.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/osf-core.c 2018-09-05 07:27:13.000000000 +0000 @@ -124,7 +124,7 @@ flags = SEC_HAS_CONTENTS; break; default: - _bfd_error_handler (_("Unhandled OSF/1 core file section type %d\n"), + _bfd_error_handler (_("unhandled OSF/1 core file section type %d"), core_scnhdr.scntype); continue; } @@ -201,12 +201,16 @@ osf_core_core_file_p /* a core file */ }, { /* bfd_set_format */ - bfd_false, bfd_false, - bfd_false, bfd_false + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error }, { /* bfd_write_contents */ - bfd_false, bfd_false, - bfd_false, bfd_false + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error }, BFD_JUMP_TABLE_GENERIC (_bfd_generic), diff -Nru gdb-8.1/bfd/pdp11.c gdb-8.2/bfd/pdp11.c --- gdb-8.1/bfd/pdp11.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/pdp11.c 2018-09-05 07:27:13.000000000 +0000 @@ -467,10 +467,7 @@ oldrawptr = abfd->tdata.aout_data; abfd->tdata.aout_data = rawptr; - /* Copy the contents of the old tdata struct. - In particular, we want the subformat, since for hpux it was set in - hp300hpux.c:swap_exec_header_in and will be used in - hp300hpux.c:callback. */ + /* Copy the contents of the old tdata struct. */ if (oldrawptr != NULL) *abfd->tdata.aout_data = *oldrawptr; @@ -699,17 +696,6 @@ arch_flags = M_SPARCLET; break; - case bfd_arch_m68k: - switch (machine) - { - case 0: arch_flags = M_68010; break; - case bfd_mach_m68000: arch_flags = M_UNKNOWN; *unknown = FALSE; break; - case bfd_mach_m68010: arch_flags = M_68010; break; - case bfd_mach_m68020: arch_flags = M_68020; break; - default: arch_flags = M_UNKNOWN; break; - } - break; - case bfd_arch_i386: if (machine == 0 || machine == bfd_mach_i386_i386 @@ -1149,7 +1135,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: can not represent section `%A' in a.out object file format"), + (_("%pB: can not represent section `%pA' in a.out object file format"), abfd, section); bfd_set_error (bfd_error_nonrepresentable_section); return FALSE; @@ -1382,7 +1368,7 @@ file. */ _bfd_error_handler /* xgettext:c-format */ - (_("%B: can not represent section for symbol `%s' in a.out object file format"), + (_("%pB: can not represent section for symbol `%s' in a.out object file format"), abfd, cache_ptr->name != NULL ? cache_ptr->name : "*unknown*"); bfd_set_error (bfd_error_nonrepresentable_section); return FALSE; @@ -1410,7 +1396,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: can not represent section `%A' in a.out object file format"), + (_("%pB: can not represent section `%pA' in a.out object file format"), abfd, sec); bfd_set_error (bfd_error_nonrepresentable_section); return FALSE; @@ -3705,7 +3691,7 @@ by the reloc size. */ _bfd_error_handler /* xgettext:c-format */ - (_("%B: relocatable link from %s to %s not supported"), + (_("%pB: relocatable link from %s to %s not supported"), abfd, sub->xvec->name, abfd->xvec->name); bfd_set_error (bfd_error_invalid_operation); goto error_return; @@ -3762,8 +3748,7 @@ FIXME: At this point we do not know how much space the symbol table will require. This will not work for any (nonstandard) a.out target that needs to know the symbol table size before it - can compute the relocation file positions. This may or may not - be the case for the hp300hpux target, for example. */ + can compute the relocation file positions. */ (*callback) (abfd, &aout_info.treloff, &aout_info.dreloff, &aout_info.symoff); obj_textsec (abfd)->rel_filepos = aout_info.treloff; @@ -4519,22 +4504,34 @@ bfd_getl64, bfd_getl_signed_64, bfd_putl64, bfd_getp32, bfd_getp_signed_32, bfd_putp32, bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* Headers. */ - {_bfd_dummy_target, MY_object_p, /* bfd_check_format. */ - bfd_generic_archive_p, MY_core_file_p}, - {bfd_false, MY_mkobject, /* bfd_set_format. */ - _bfd_generic_mkarchive, bfd_false}, - {bfd_false, MY_write_object_contents, /* bfd_write_contents. */ - _bfd_write_archive_contents, bfd_false}, - - BFD_JUMP_TABLE_GENERIC (MY), - BFD_JUMP_TABLE_COPY (MY), - BFD_JUMP_TABLE_CORE (MY), - BFD_JUMP_TABLE_ARCHIVE (MY), - BFD_JUMP_TABLE_SYMBOLS (MY), - BFD_JUMP_TABLE_RELOCS (MY), - BFD_JUMP_TABLE_WRITE (MY), - BFD_JUMP_TABLE_LINK (MY), - BFD_JUMP_TABLE_DYNAMIC (MY), + { /* bfd_check_format. */ + _bfd_dummy_target, + MY_object_p, + bfd_generic_archive_p, + MY_core_file_p + }, + { /* bfd_set_format. */ + _bfd_bool_bfd_false_error, + MY_mkobject, + _bfd_generic_mkarchive, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents. */ + _bfd_bool_bfd_false_error, + MY_write_object_contents, + _bfd_write_archive_contents, + _bfd_bool_bfd_false_error + }, + + BFD_JUMP_TABLE_GENERIC (MY), + BFD_JUMP_TABLE_COPY (MY), + BFD_JUMP_TABLE_CORE (MY), + BFD_JUMP_TABLE_ARCHIVE (MY), + BFD_JUMP_TABLE_SYMBOLS (MY), + BFD_JUMP_TABLE_RELOCS (MY), + BFD_JUMP_TABLE_WRITE (MY), + BFD_JUMP_TABLE_LINK (MY), + BFD_JUMP_TABLE_DYNAMIC (MY), /* Alternative_target. */ NULL, diff -Nru gdb-8.1/bfd/pef.c gdb-8.2/bfd/pef.c --- gdb-8.1/bfd/pef.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/pef.c 2018-09-05 07:27:13.000000000 +0000 @@ -38,7 +38,7 @@ #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_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) +#define bfd_pef_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false #define bfd_pef_get_lineno _bfd_nosymbols_get_lineno #define bfd_pef_find_nearest_line _bfd_nosymbols_find_nearest_line #define bfd_pef_find_line _bfd_nosymbols_find_line @@ -59,6 +59,7 @@ #define bfd_pef_bfd_discard_group bfd_generic_discard_group #define bfd_pef_section_already_linked _bfd_generic_section_already_linked #define bfd_pef_bfd_define_common_symbol bfd_generic_define_common_symbol +#define bfd_pef_bfd_link_hide_symbol _bfd_generic_link_hide_symbol #define bfd_pef_bfd_define_start_stop bfd_generic_define_start_stop #define bfd_pef_bfd_link_hash_table_create _bfd_generic_link_hash_table_create #define bfd_pef_bfd_link_add_symbols _bfd_generic_link_add_symbols @@ -1030,16 +1031,16 @@ _bfd_dummy_target, }, { /* bfd_set_format. */ - bfd_false, + _bfd_bool_bfd_false_error, bfd_pef_mkobject, - bfd_false, - bfd_false, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, }, { /* bfd_write_contents. */ - bfd_false, - bfd_true, - bfd_false, - bfd_false, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_true, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, }, BFD_JUMP_TABLE_GENERIC (bfd_pef), @@ -1174,16 +1175,16 @@ _bfd_dummy_target, }, { /* bfd_set_format. */ - bfd_false, + _bfd_bool_bfd_false_error, bfd_pef_mkobject, - bfd_false, - bfd_false, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, }, { /* bfd_write_contents. */ - bfd_false, - bfd_true, - bfd_false, - bfd_false, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_true, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, }, BFD_JUMP_TABLE_GENERIC (bfd_pef_xlib), diff -Nru gdb-8.1/bfd/peicode.h gdb-8.2/bfd/peicode.h --- gdb-8.1/bfd/peicode.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/peicode.h 2018-09-05 07:27:13.000000000 +0000 @@ -772,13 +772,13 @@ case IMPORT_CONST: /* XXX code yet to be written. */ /* xgettext:c-format */ - _bfd_error_handler (_("%B: Unhandled import type; %x"), + _bfd_error_handler (_("%pB: unhandled import type; %x"), abfd, import_type); return FALSE; default: /* xgettext:c-format */ - _bfd_error_handler (_("%B: Unrecognised import type; %x"), + _bfd_error_handler (_("%pB: unrecognized import type; %x"), abfd, import_type); return FALSE; } @@ -793,7 +793,7 @@ default: /* xgettext:c-format */ - _bfd_error_handler (_("%B: Unrecognised import name type; %x"), + _bfd_error_handler (_("%pB: unrecognized import name type; %x"), abfd, import_name_type); return FALSE; } @@ -1167,12 +1167,6 @@ #endif break; - case IMAGE_FILE_MACHINE_M68K: -#ifdef MC68AGIC - magic = MC68MAGIC; -#endif - break; - case IMAGE_FILE_MACHINE_R3000: case IMAGE_FILE_MACHINE_R4000: case IMAGE_FILE_MACHINE_R10000: @@ -1214,7 +1208,7 @@ default: _bfd_error_handler /* xgettext:c-format */ - (_("%B: Unrecognised machine type (0x%x)" + (_("%pB: unrecognised machine type (0x%x)" " in Import Library Format archive"), abfd, machine); bfd_set_error (bfd_error_malformed_archive); @@ -1227,7 +1221,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: Recognised but unhandled machine type (0x%x)" + (_("%pB: recognised but unhandled machine type (0x%x)" " in Import Library Format archive"), abfd, machine); bfd_set_error (bfd_error_wrong_format); @@ -1245,7 +1239,7 @@ if (size == 0) { _bfd_error_handler - (_("%B: size field is zero in Import Library Format header"), abfd); + (_("%pB: size field is zero in Import Library Format header"), abfd); bfd_set_error (bfd_error_malformed_archive); return NULL; @@ -1277,7 +1271,7 @@ || (bfd_size_type) ((bfd_byte *) source_dll - ptr) >= size) { _bfd_error_handler - (_("%B: string not null terminated in ILF object file."), abfd); + (_("%pB: string not null terminated in ILF object file"), abfd); bfd_set_error (bfd_error_malformed_archive); bfd_release (abfd, ptr); return NULL; @@ -1332,8 +1326,9 @@ if (dataoff >= section->size || size > section->size - dataoff) { - _bfd_error_handler (_("%B: Error: Debug Data ends beyond end of debug directory."), - abfd); + _bfd_error_handler + (_("%pB: error: debug data ends beyond end of debug directory"), + abfd); return; } @@ -1386,7 +1381,7 @@ pe_bfd_object_p (bfd * abfd) { bfd_byte buffer[6]; - struct external_PEI_DOS_hdr dos_hdr; + struct external_DOS_hdr dos_hdr; struct external_PEI_IMAGE_hdr image_hdr; struct internal_filehdr internal_f; struct internal_aouthdr internal_a; @@ -1420,7 +1415,7 @@ /* There are really two magic numbers involved; the magic number that says this is a NT executable (PEI) and the magic number that - determines the architecture. The former is DOSMAGIC, stored in + determines the architecture. The former is IMAGE_DOS_SIGNATURE, stored in the e_magic field. The latter is stored in the f_magic field. If the NT magic number isn't valid, the architecture magic number could be mimicked by some other field (specifically, the number @@ -1428,7 +1423,7 @@ correctly for a PEI file, check the e_magic number here, and, if it doesn't match, clobber the f_magic number so that we don't get a false match. */ - if (H_GET_16 (abfd, dos_hdr.e_magic) != DOSMAGIC) + if (H_GET_16 (abfd, dos_hdr.e_magic) != IMAGE_DOS_SIGNATURE) { bfd_set_error (bfd_error_wrong_format); return NULL; diff -Nru gdb-8.1/bfd/pei-mips.c gdb-8.2/bfd/pei-mips.c --- gdb-8.1/bfd/pei-mips.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/pei-mips.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ -/* BFD back-end for MIPS PE IMAGE COFF files. - Copyright (C) 1995-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" - -#define TARGET_SYM mips_pei_le_vec -#define TARGET_NAME "pei-mips" -#define COFF_IMAGE_WITH_PE -#define PCRELOFFSET TRUE -/* Long section names not allowed in executable images, only object files. */ -#define COFF_LONG_SECTION_NAMES 0 - -#include "pe-mips.c" - diff -Nru gdb-8.1/bfd/pei-x86_64.c gdb-8.2/bfd/pei-x86_64.c --- gdb-8.1/bfd/pei-x86_64.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/pei-x86_64.c 2018-09-05 07:27:13.000000000 +0000 @@ -98,14 +98,20 @@ /* Swap in unwind info header. */ -static void -pex64_get_unwind_info (bfd *abfd, struct pex64_unwind_info *ui, void *data) +static bfd_boolean +pex64_get_unwind_info (bfd *abfd, struct pex64_unwind_info *ui, + void *data, void *data_end) { struct external_pex64_unwind_info *ex_ui = (struct external_pex64_unwind_info *) data; bfd_byte *ex_dta = (bfd_byte *) data; + bfd_byte *ex_dta_end = (bfd_byte *) data_end; memset (ui, 0, sizeof (struct pex64_unwind_info)); + + if (ex_dta >= ex_dta_end || ex_dta + 4 >= ex_dta_end) + return FALSE; + ui->Version = PEX64_UWI_VERSION (ex_ui->Version_Flags); ui->Flags = PEX64_UWI_FLAGS (ex_ui->Version_Flags); ui->SizeOfPrologue = (bfd_vma) ex_ui->SizeOfPrologue; @@ -114,25 +120,33 @@ ui->FrameOffset = PEX64_UWI_FRAMEOFF (ex_ui->FrameRegisterOffset); ui->sizeofUnwindCodes = PEX64_UWI_SIZEOF_UWCODE_ARRAY (ui->CountOfCodes); ui->SizeOfBlock = ui->sizeofUnwindCodes + 4; - ui->rawUnwindCodes = &ex_dta[4]; + ui->rawUnwindCodes = ex_dta + 4; + ui->rawUnwindCodesEnd = ex_dta_end; ex_dta += ui->SizeOfBlock; + if (ex_dta >= ex_dta_end) + return FALSE; + switch (ui->Flags) { case UNW_FLAG_CHAININFO: + if (ex_dta + 12 >= ex_dta_end) + return FALSE; ui->rva_BeginAddress = bfd_get_32 (abfd, ex_dta + 0); ui->rva_EndAddress = bfd_get_32 (abfd, ex_dta + 4); ui->rva_UnwindData = bfd_get_32 (abfd, ex_dta + 8); ui->SizeOfBlock += 12; - return; + return TRUE; case UNW_FLAG_EHANDLER: case UNW_FLAG_UHANDLER: case UNW_FLAG_FHANDLER: + if (ex_dta + 4 >= ex_dta_end) + return FALSE; ui->rva_ExceptionHandler = bfd_get_32 (abfd, ex_dta); ui->SizeOfBlock += 4; - return; + return TRUE; default: - return; + return TRUE; } } @@ -158,6 +172,12 @@ i = 0; + if (ui->rawUnwindCodes + 1 >= ui->rawUnwindCodesEnd) + { + fprintf (file, _("warning: corrupt unwind data\n")); + return; + } + if (ui->Version == 2 && PEX64_UNWCODE_CODE (ui->rawUnwindCodes[1]) == UWOP_EPILOG) { @@ -166,10 +186,18 @@ to decode instruction flow if outside an epilog. */ unsigned int func_size = rf->rva_EndAddress - rf->rva_BeginAddress; + if (ui->rawUnwindCodes + 1 + (ui->CountOfCodes * 2) >= ui->rawUnwindCodesEnd) + { + fprintf (file, _("warning: corrupt unwind data\n")); + return; + } + fprintf (file, "\tv2 epilog (length: %02x) at pc+:", ui->rawUnwindCodes[0]); + if (PEX64_UNWCODE_INFO (ui->rawUnwindCodes[1])) fprintf (file, " 0x%x", func_size - ui->rawUnwindCodes[0]); + i++; for (; i < ui->CountOfCodes; i++) { @@ -187,6 +215,12 @@ fputc ('\n', file); } + if (ui->rawUnwindCodes + 2 + (ui->CountOfCodes * 2) >= ui->rawUnwindCodesEnd) + { + fprintf (file, _("warning: corrupt unwind data\n")); + return; + } + for (; i < ui->CountOfCodes; i++) { const bfd_byte *dta = ui->rawUnwindCodes + 2 * i; @@ -338,14 +372,18 @@ /* PR 17512: file: 2245-7442-0.004. */ if (end_addr > sec_size) { - fprintf (file, _("warning: xdata section corrupt")); + fprintf (file, _("warning: xdata section corrupt\n")); end_addr = sec_size; } } else end_addr = sec_size; - pex64_get_unwind_info (abfd, &ui, &xdata[addr]); + if (! pex64_get_unwind_info (abfd, &ui, xdata + addr, xdata + end_addr)) + { + fprintf (file, _("warning: xdata section corrupt\n")); + return; + } if (ui.Version != 1 && ui.Version != 2) { diff -Nru gdb-8.1/bfd/pe-mips.c gdb-8.2/bfd/pe-mips.c --- gdb-8.1/bfd/pe-mips.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/pe-mips.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,924 +0,0 @@ -/* BFD back-end for MIPS PE COFF files. - Copyright (C) 1990-2018 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. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define COFF_WITH_PE -/* pei-mips.c may have defined this to default off (0) before - including this file, so don't redefine if that's the case. - Otherwise we're generating objects, not executable images, - so we want to define it to default on. */ -#ifndef COFF_LONG_SECTION_NAMES -#define COFF_LONG_SECTION_NAMES -#endif /* COFF_LONG_SECTION_NAMES */ -#define PCRELOFFSET TRUE - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "coff/mipspe.h" -#include "coff/internal.h" -#include "coff/pe.h" -#include "libcoff.h" - -#define COFF_DEFAULT_SECTION_ALIGNMENT_POWER 2 -/* The page size is a guess based on ELF. */ - -#define COFF_PAGE_SIZE 0x1000 - -/* For some reason when using mips COFF the value stored in the .text - section for a reference to a common symbol is the value itself plus - any desired offset. Ian Taylor, Cygnus Support. */ - -/* 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. */ - -static bfd_reloc_status_type -coff_mips_reloc (bfd *abfd, - arelent *reloc_entry, - asymbol *symbol, - void * data, - asection *input_section ATTRIBUTE_UNUSED, - bfd *output_bfd, - char **error_message ATTRIBUTE_UNUSED) -{ - symvalue diff; - - if (output_bfd == NULL) - return bfd_reloc_continue; - - if (bfd_is_com_section (symbol->section)) - { -#ifndef COFF_WITH_PE - /* We are relocating a common symbol. The current value in the - object file is ORIG + OFFSET, where ORIG is the value of the - common symbol as seen by the object file when it was compiled - (this may be zero if the symbol was undefined) and OFFSET is - the offset into the common symbol (normally zero, but may be - non-zero when referring to a field in a common structure). - ORIG is the negative of reloc_entry->addend, which is set by - the CALC_ADDEND macro below. We want to replace the value in - the object file with NEW + OFFSET, where NEW is the value of - the common symbol which we are going to put in the final - object file. NEW is symbol->value. */ - diff = symbol->value + reloc_entry->addend; -#else - /* In PE mode, we do not offset the common symbol. */ - diff = reloc_entry->addend; -#endif - } - else - /* For some reason bfd_perform_relocation always effectively - ignores the addend for a COFF target when producing - relocatable output. This seems to be always wrong for 386 - COFF, so we handle the addend here instead. */ - diff = reloc_entry->addend; - -#define DOIT(x) \ - x = ((x & ~howto->dst_mask) | (((x & howto->src_mask) + (diff >> howto->rightshift)) & howto->dst_mask)) - - if (diff != 0) - { - reloc_howto_type *howto = reloc_entry->howto; - unsigned char *addr = (unsigned char *) data + reloc_entry->address; - - switch (howto->size) - { - case 0: - { - char x = bfd_get_8 (abfd, addr); - - DOIT (x); - bfd_put_8 (abfd, x, addr); - } - break; - - case 1: - { - short x = bfd_get_16 (abfd, addr); - - DOIT (x); - bfd_put_16 (abfd, (bfd_vma) x, addr); - } - break; - - case 2: - { - long x = bfd_get_32 (abfd, addr); - - DOIT (x); - bfd_put_32 (abfd, (bfd_vma) x, addr); - } - break; - - default: - abort (); - } - } - - /* Now let bfd_perform_relocation finish everything up. */ - return bfd_reloc_continue; -} - -#ifdef COFF_WITH_PE -/* Return TRUE if this relocation should - appear in the output .reloc section. */ - -static bfd_boolean -in_reloc_p (bfd * abfd ATTRIBUTE_UNUSED, reloc_howto_type *howto) -{ - return ! howto->pc_relative && howto->type != MIPS_R_RVA; -} -#endif - -#ifndef PCRELOFFSET -#define PCRELOFFSET FALSE -#endif - -static reloc_howto_type howto_table[] = -{ - /* Reloc type 0 is ignored. The reloc reading code ensures that - this is a reference to the .abs section, which will cause - bfd_perform_relocation to do nothing. */ - HOWTO (MIPS_R_ABSOLUTE, /* Type. */ - 0, /* Rightshift. */ - 0, /* Size (0 = byte, 1 = short, 2 = long). */ - 8, /* Bitsize. */ - FALSE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_dont, /* Complain_on_overflow. */ - 0, /* Special_function. */ - "IGNORE", /* Name. */ - FALSE, /* Partial_inplace. */ - 0, /* Src_mask. */ - 0, /* Dst_mask. */ - FALSE), /* Pcrel_offset. */ - - /* A 16 bit reference to a symbol, normally from a data section. */ - HOWTO (MIPS_R_REFHALF, /* Type. */ - 0, /* Rightshift. */ - 1, /* Size (0 = byte, 1 = short, 2 = long). */ - 16, /* Bitsize. */ - FALSE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - coff_mips_reloc, /* Special_function. */ - "REFHALF", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffff, /* Src_mask. */ - 0xffff, /* Dst_mask. */ - FALSE), /* Pcrel_offset. */ - - /* A 32 bit reference to a symbol, normally from a data section. */ - HOWTO (MIPS_R_REFWORD, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 32, /* Bitsize. */ - FALSE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - coff_mips_reloc, /* Special_function. */ - "REFWORD", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffffffff, /* Src_mask. */ - 0xffffffff, /* Dst_mask. */ - FALSE), /* Pcrel_offset. */ - - /* A 26 bit absolute jump address. */ - HOWTO (MIPS_R_JMPADDR, /* Type. */ - 2, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 26, /* Bitsize. */ - FALSE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_dont, /* Complain_on_overflow. */ - /* This needs complex overflow - detection, because the upper four - bits must match the PC. */ - coff_mips_reloc, /* Special_function. */ - "JMPADDR", /* Name. */ - TRUE, /* Partial_inplace. */ - 0x3ffffff, /* Src_mask. */ - 0x3ffffff, /* Dst_mask. */ - FALSE), /* Pcrel_offset. */ - - /* The high 16 bits of a symbol value. Handled by the function - mips_refhi_reloc. */ - HOWTO (MIPS_R_REFHI, /* Type. */ - 16, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 16, /* Bitsize. */ - FALSE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - coff_mips_reloc, /* Special_function. */ - "REFHI", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffff, /* Src_mask. */ - 0xffff, /* Dst_mask. */ - FALSE), /* Pcrel_offset. */ - - /* The low 16 bits of a symbol value. */ - HOWTO (MIPS_R_REFLO, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 16, /* Bitsize. */ - FALSE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_dont, /* Complain_on_overflow. */ - coff_mips_reloc, /* Special_function. */ - "REFLO", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffff, /* Src_mask. */ - 0xffff, /* Dst_mask. */ - FALSE), /* Pcrel_offset. */ - - /* A reference to an offset from the gp register. Handled by the - function mips_gprel_reloc. */ - HOWTO (MIPS_R_GPREL, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 16, /* Bitsize. */ - FALSE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_signed, /* Complain_on_overflow. */ - coff_mips_reloc, /* Special_function. */ - "GPREL", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffff, /* Src_mask. */ - 0xffff, /* Dst_mask. */ - FALSE), /* Pcrel_offset. */ - - /* A reference to a literal using an offset from the gp register. - Handled by the function mips_gprel_reloc. */ - HOWTO (MIPS_R_LITERAL, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 16, /* Bitsize. */ - FALSE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_signed, /* Complain_on_overflow. */ - coff_mips_reloc, /* Special_function. */ - "LITERAL", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffff, /* Src_mask. */ - 0xffff, /* Dst_mask. */ - FALSE), /* Pcrel_offset. */ - - EMPTY_HOWTO (8), - EMPTY_HOWTO (9), - EMPTY_HOWTO (10), - EMPTY_HOWTO (11), - EMPTY_HOWTO (12), - EMPTY_HOWTO (13), - EMPTY_HOWTO (14), - EMPTY_HOWTO (15), - EMPTY_HOWTO (16), - EMPTY_HOWTO (17), - EMPTY_HOWTO (18), - EMPTY_HOWTO (19), - EMPTY_HOWTO (20), - EMPTY_HOWTO (21), - EMPTY_HOWTO (22), - EMPTY_HOWTO (23), - EMPTY_HOWTO (24), - EMPTY_HOWTO (25), - EMPTY_HOWTO (26), - EMPTY_HOWTO (27), - EMPTY_HOWTO (28), - EMPTY_HOWTO (29), - EMPTY_HOWTO (30), - EMPTY_HOWTO (31), - EMPTY_HOWTO (32), - EMPTY_HOWTO (33), - HOWTO (MIPS_R_RVA, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 32, /* Bitsize. */ - FALSE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - coff_mips_reloc, /* Special_function. */ - "rva32", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffffffff, /* Src_mask. */ - 0xffffffff, /* Dst_mask. */ - FALSE), /* Pcrel_offset. */ - EMPTY_HOWTO (35), - EMPTY_HOWTO (36), - HOWTO (MIPS_R_PAIR, /* Type. */ - 0, /* Rightshift. */ - 2, /* Size (0 = byte, 1 = short, 2 = long). */ - 32, /* Bitsize. */ - FALSE, /* PC_relative. */ - 0, /* Bitpos. */ - complain_overflow_bitfield, /* Complain_on_overflow. */ - coff_mips_reloc, /* Special_function. */ - "PAIR", /* Name. */ - TRUE, /* Partial_inplace. */ - 0xffffffff, /* Src_mask. */ - 0xffffffff, /* Dst_mask. */ - FALSE), /* Pcrel_offset. */ -}; - -#define NUM_HOWTOS (sizeof (howto_table) / sizeof (howto_table[0])) - -/* Turn a howto into a reloc nunmber. */ - -#define SELECT_RELOC(x, howto) { x.r_type = howto->type; } -#define BADMAG(x) MIPSBADMAG (x) - -/* Customize coffcode.h. */ -#define MIPS 1 - -#define RTYPE2HOWTO(cache_ptr, dst) \ - ((cache_ptr)->howto = \ - ((dst)->r_type < NUM_HOWTOS \ - ? howto_table + (dst)->r_type \ - : NULL)) - -/* Compute the addend of a reloc. If the reloc is to a common symbol, - the object file contains the value of the common symbol. By the - time this is called, the linker may be using a different symbol - from a different object file with a different value. Therefore, we - hack wildly to locate the original symbol from this file so that we - can make the correct adjustment. This macro sets coffsym to the - symbol from the original file, and uses it to set the addend value - correctly. If this is not a common symbol, the usual addend - calculation is done, except that an additional tweak is needed for - PC relative relocs. - FIXME: This macro refers to symbols and asect; these are from the - calling function, not the macro arguments. */ - -#define CALC_ADDEND(abfd, ptr, reloc, cache_ptr) \ - { \ - coff_symbol_type *coffsym = NULL; \ - if (ptr && bfd_asymbol_bfd (ptr) != abfd) \ - coffsym = (obj_symbols (abfd) \ - + (cache_ptr->sym_ptr_ptr - symbols)); \ - else if (ptr) \ - coffsym = coff_symbol_from (ptr); \ - if (coffsym != NULL \ - && coffsym->native->u.syment.n_scnum == 0) \ - cache_ptr->addend = - coffsym->native->u.syment.n_value; \ - else if (ptr && bfd_asymbol_bfd (ptr) == abfd \ - && ptr->section != NULL) \ - cache_ptr->addend = - (ptr->section->vma + ptr->value); \ - else \ - cache_ptr->addend = 0; \ - if (ptr && reloc.r_type < NUM_HOWTOS \ - && howto_table[reloc.r_type].pc_relative) \ - cache_ptr->addend += asect->vma; \ - } - -/* Convert an rtype to howto for the COFF backend linker. */ - -static reloc_howto_type * -coff_mips_rtype_to_howto (bfd *abfd ATTRIBUTE_UNUSED, - asection *sec, - struct internal_reloc *rel, - struct coff_link_hash_entry *h, - struct internal_syment *sym, - bfd_vma *addendp) -{ - - reloc_howto_type *howto; - - howto = howto_table + rel->r_type; - -#ifdef COFF_WITH_PE - *addendp = 0; -#endif - - if (howto->pc_relative) - *addendp += sec->vma; - - if (sym != NULL && sym->n_scnum == 0 && sym->n_value != 0) - { - /* This is a common symbol. The section contents include the - size (sym->n_value) as an addend. The relocate_section - function will be adding in the final value of the symbol. We - need to subtract out the current size in order to get the - correct result. */ - - BFD_ASSERT (h != NULL); - -#ifndef COFF_WITH_PE - /* I think we *do* want to bypass this. If we don't, I have - seen some data parameters get the wrong relocation address. - If I link two versions with and without this section bypassed - and then do a binary comparison, the addresses which are - different can be looked up in the map. The case in which - this section has been bypassed has addresses which correspond - to values I can find in the map. */ - *addendp -= sym->n_value; -#endif - } - -#ifndef COFF_WITH_PE - /* If the output symbol is common (in which case this must be a - 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; -#endif - -#ifdef COFF_WITH_PE - if (howto->pc_relative) - { - *addendp -= 4; - - /* If the symbol is defined, then the generic code is going to - add back the symbol value in order to cancel out an - adjustment it made to the addend. However, we set the addend - to 0 at the start of this function. We need to adjust here, - to avoid the adjustment the generic code will make. FIXME: - This is getting a bit hackish. */ - if (sym != NULL && sym->n_scnum != 0) - *addendp -= sym->n_value; - } - - if (rel->r_type == MIPS_R_RVA) - *addendp -= pe_data (sec->output_section->owner)->pe_opthdr.ImageBase; -#endif - - return howto; -} - -#define coff_rtype_to_howto coff_mips_rtype_to_howto -#define coff_bfd_reloc_type_lookup coff_mips_reloc_type_lookup -#define coff_bfd_reloc_name_lookup coff_mips_reloc_name_lookup - -/* Get the howto structure for a generic reloc type. */ - -static reloc_howto_type * -coff_mips_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, - bfd_reloc_code_real_type code) -{ - int mips_type; - - switch (code) - { - case BFD_RELOC_16: - mips_type = MIPS_R_REFHALF; - break; - case BFD_RELOC_32: - case BFD_RELOC_CTOR: - mips_type = MIPS_R_REFWORD; - break; - case BFD_RELOC_MIPS_JMP: - mips_type = MIPS_R_JMPADDR; - break; - case BFD_RELOC_HI16_S: - mips_type = MIPS_R_REFHI; - break; - case BFD_RELOC_LO16: - mips_type = MIPS_R_REFLO; - break; - case BFD_RELOC_GPREL16: - mips_type = MIPS_R_GPREL; - break; - case BFD_RELOC_MIPS_LITERAL: - mips_type = MIPS_R_LITERAL; - break; - case BFD_RELOC_RVA: - mips_type = MIPS_R_RVA; - break; - default: - return NULL; - } - - return & howto_table [mips_type]; -} - -static reloc_howto_type * -coff_mips_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, - const char *r_name) -{ - unsigned int i; - - for (i = 0; i < NUM_HOWTOS; i++) - if (howto_table[i].name != NULL - && strcasecmp (howto_table[i].name, r_name) == 0) - return &howto_table[i]; - - return NULL; -} - -static void -mips_swap_reloc_in (bfd * abfd, void * src, void * dst) -{ - static struct internal_reloc pair_prev; - RELOC *reloc_src = (RELOC *) src; - struct internal_reloc *reloc_dst = (struct internal_reloc *) dst; - - reloc_dst->r_vaddr = H_GET_32 (abfd, reloc_src->r_vaddr); - reloc_dst->r_symndx = H_GET_S32 (abfd, reloc_src->r_symndx); - reloc_dst->r_type = H_GET_16 (abfd, reloc_src->r_type); - reloc_dst->r_size = 0; - reloc_dst->r_extern = 0; - reloc_dst->r_offset = 0; - - switch (reloc_dst->r_type) - { - case MIPS_R_REFHI: - pair_prev = *reloc_dst; - break; - case MIPS_R_PAIR: - reloc_dst->r_offset = reloc_dst->r_symndx; - if (reloc_dst->r_offset & 0x8000) - reloc_dst->r_offset -= 0x10000; - reloc_dst->r_symndx = pair_prev.r_symndx; - break; - } -} - -static unsigned int -mips_swap_reloc_out (bfd * abfd, void * src, void * dst) -{ - static bfd_vma prev_addr = 0; - struct internal_reloc *reloc_src = (struct internal_reloc *)src; - struct external_reloc *reloc_dst = (struct external_reloc *)dst; - - switch (reloc_src->r_type) - { - case MIPS_R_REFHI: - prev_addr = reloc_src->r_vaddr; - break; - case MIPS_R_REFLO: - if (reloc_src->r_vaddr == prev_addr) - { - /* FIXME: only slightly hackish. If we see a REFLO pointing to - the same address as a REFHI, we assume this is the matching - PAIR reloc and output it accordingly. The symndx is really - the low 16 bits of the addend */ - H_PUT_32 (abfd, reloc_src->r_vaddr, reloc_dst->r_vaddr); - H_PUT_32 (abfd, reloc_src->r_symndx, reloc_dst->r_symndx); - H_PUT_16 (abfd, MIPS_R_PAIR, reloc_dst->r_type); - return RELSZ; - } - break; - } - - H_PUT_32 (abfd, reloc_src->r_vaddr, reloc_dst->r_vaddr); - H_PUT_32 (abfd, reloc_src->r_symndx, reloc_dst->r_symndx); - - H_PUT_16 (abfd, reloc_src->r_type, reloc_dst->r_type); - return RELSZ; -} - -#define coff_swap_reloc_in mips_swap_reloc_in -#define coff_swap_reloc_out mips_swap_reloc_out -#define NO_COFF_RELOCS - -static bfd_boolean -coff_pe_mips_relocate_section (bfd *output_bfd, - struct bfd_link_info *info, - bfd *input_bfd, - asection *input_section, - bfd_byte *contents, - struct internal_reloc *relocs, - struct internal_syment *syms, - asection **sections) -{ - struct internal_reloc *rel; - struct internal_reloc *rel_end; - unsigned int i; - - if (bfd_link_relocatable (info)) - { - _bfd_error_handler - (_("%B: `ld -r' not supported with PE MIPS objects\n"), input_bfd); - bfd_set_error (bfd_error_bad_value); - return FALSE; - } - - BFD_ASSERT (input_bfd->xvec->byteorder - == output_bfd->xvec->byteorder); - - rel = relocs; - rel_end = rel + input_section->reloc_count; - - for (i = 0; rel < rel_end; rel++, i++) - { - long symndx; - struct coff_link_hash_entry *h; - struct internal_syment *sym; - bfd_vma addend = 0; - bfd_vma val, tmp, targ, src, low; - reloc_howto_type *howto; - unsigned char *mem = contents + rel->r_vaddr; - - symndx = rel->r_symndx; - - if (symndx == -1) - { - h = NULL; - sym = NULL; - } - else - { - h = obj_coff_sym_hashes (input_bfd)[symndx]; - sym = syms + symndx; - } - - /* COFF treats common symbols in one of two ways. Either the - size of the symbol is included in the section contents, or it - is not. We assume that the size is not included, and force - the rtype_to_howto function to adjust the addend as needed. */ - - if (sym != NULL && sym->n_scnum != 0) - addend = - sym->n_value; - else - addend = 0; - - howto = bfd_coff_rtype_to_howto (input_bfd, input_section, rel, h, - sym, &addend); - if (howto == NULL) - return FALSE; - - /* 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 relocatable link, - then we should ignore the symbol value. */ - if (howto->pc_relative && howto->pcrel_offset) - { - if (bfd_link_relocatable (info)) - continue; - if (sym != NULL && sym->n_scnum != 0) - addend += sym->n_value; - } - - val = 0; - - if (h == NULL) - { - asection *sec; - - if (symndx == -1) - { - sec = bfd_abs_section_ptr; - val = 0; - } - else - { - sec = sections[symndx]; - val = (sec->output_section->vma - + sec->output_offset - + sym->n_value); - if (! obj_pe (input_bfd)) - val -= sec->vma; - } - } - else - { - if (h->root.type == bfd_link_hash_defined - || h->root.type == bfd_link_hash_defweak) - { - asection *sec; - - sec = h->root.u.def.section; - val = (h->root.u.def.value - + sec->output_section->vma - + sec->output_offset); - } - - else if (! bfd_link_relocatable (info)) - (*info->callbacks->undefined_symbol) - (info, h->root.root.string, input_bfd, input_section, - rel->r_vaddr - input_section->vma, TRUE); - } - - src = rel->r_vaddr + input_section->output_section->vma - + input_section->output_offset; - - /* 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. */ - -#define UI(x) \ - /* xgettext:c-format */ \ - _bfd_error_handler (_("%B: unimplemented %s\n"), \ - input_bfd, x); \ - bfd_set_error (bfd_error_bad_value); - - switch (rel->r_type) - { - case MIPS_R_ABSOLUTE: - /* Ignore these. */ - break; - - case MIPS_R_REFHALF: - UI ("refhalf"); - break; - - case MIPS_R_REFWORD: - tmp = bfd_get_32 (input_bfd, mem); - /* printf ("refword: src=%08x targ=%08x+%08x\n", src, tmp, val); */ - tmp += val; - bfd_put_32 (input_bfd, tmp, mem); - break; - - case MIPS_R_JMPADDR: - tmp = bfd_get_32 (input_bfd, mem); - targ = val + (tmp & 0x03ffffff) * 4; - if ((src & 0xf0000000) != (targ & 0xf0000000)) - { - _bfd_error_handler (_("%B: jump too far away\n"), input_bfd); - bfd_set_error (bfd_error_bad_value); - return FALSE; - } - tmp &= 0xfc000000; - tmp |= (targ / 4) & 0x3ffffff; - bfd_put_32 (input_bfd, tmp, mem); - break; - - case MIPS_R_REFHI: - tmp = bfd_get_32 (input_bfd, mem); - switch (rel[1].r_type) - { - case MIPS_R_PAIR: - /* MS PE object */ - targ = val + rel[1].r_offset + ((tmp & 0xffff) << 16); - break; - case MIPS_R_REFLO: - /* GNU COFF object */ - low = bfd_get_32 (input_bfd, contents + rel[1].r_vaddr); - low &= 0xffff; - if (low & 0x8000) - low -= 0x10000; - targ = val + low + ((tmp & 0xffff) << 16); - break; - default: - _bfd_error_handler (_("%B: bad pair/reflo after refhi\n"), - input_bfd); - bfd_set_error (bfd_error_bad_value); - return FALSE; - } - tmp &= 0xffff0000; - tmp |= (targ >> 16) & 0xffff; - bfd_put_32 (input_bfd, tmp, mem); - break; - - case MIPS_R_REFLO: - tmp = bfd_get_32 (input_bfd, mem); - targ = val + (tmp & 0xffff); - /* printf ("refword: src=%08x targ=%08x\n", src, targ); */ - tmp &= 0xffff0000; - tmp |= targ & 0xffff; - bfd_put_32 (input_bfd, tmp, mem); - break; - - case MIPS_R_GPREL: - case MIPS_R_LITERAL: - UI ("gprel"); - break; - - case MIPS_R_SECTION: - UI ("section"); - break; - - case MIPS_R_SECREL: - UI ("secrel"); - break; - - case MIPS_R_SECRELLO: - UI ("secrello"); - break; - - case MIPS_R_SECRELHI: - UI ("secrelhi"); - break; - - case MIPS_R_RVA: - tmp = bfd_get_32 (input_bfd, mem); - /* printf ("rva: src=%08x targ=%08x+%08x\n", src, tmp, val); */ - tmp += val - - pe_data (input_section->output_section->owner)->pe_opthdr.ImageBase; - bfd_put_32 (input_bfd, tmp, mem); - break; - - case MIPS_R_PAIR: - /* ignore these */ - break; - } - } - - return TRUE; -} - -#define coff_relocate_section coff_pe_mips_relocate_section - -#ifdef TARGET_UNDERSCORE - -/* If mips gcc uses underscores for symbol names, then it does not use - a leading dot for local labels, so if TARGET_UNDERSCORE is defined - we treat all symbols starting with L as local. */ - -static bfd_boolean -coff_mips_is_local_label_name (bfd *abfd, const char *name) -{ - if (name[0] == 'L') - return TRUE; - - return _bfd_coff_is_local_label_name (abfd, name); -} - -#define coff_bfd_is_local_label_name coff_mips_is_local_label_name - -#endif /* TARGET_UNDERSCORE */ - -#define COFF_NO_HACK_SCNHDR_SIZE - -#ifndef bfd_pe_print_pdata -#define bfd_pe_print_pdata NULL -#endif - -#include "coffcode.h" - -const bfd_target -#ifdef TARGET_SYM - TARGET_SYM = -#else - mips_pe_le_vec = -#endif -{ -#ifdef TARGET_NAME - TARGET_NAME, -#else - "pe-mips", /* Name. */ -#endif - bfd_target_coff_flavour, - BFD_ENDIAN_LITTLE, /* Data byte order is little. */ - BFD_ENDIAN_LITTLE, /* Header byte order is little. */ - - (HAS_RELOC | EXEC_P | /* Object flags. */ - HAS_LINENO | HAS_DEBUG | - HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED), - -#ifndef COFF_WITH_PE - (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC /* Section flags. */ - | SEC_CODE | SEC_DATA), -#else - (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC /* Section flags. */ - | SEC_CODE | SEC_DATA - | SEC_LINK_ONCE | SEC_LINK_DUPLICATES), -#endif - -#ifdef TARGET_UNDERSCORE - TARGET_UNDERSCORE, /* Leading underscore. */ -#else - 0, /* leading underscore */ -#endif - '/', /* AR_pad_char. */ - 15, /* AR_max_namelen. */ - 0, /* match priority. */ - - 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, /* Headers. */ - - /* Note that we allow an object file to be treated as a core file as well. */ - {_bfd_dummy_target, coff_object_p, /* bfd_check_format. */ - bfd_generic_archive_p, coff_object_p}, - {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, - - COFF_SWAP_TABLE -}; diff -Nru gdb-8.1/bfd/pe-x86_64.c gdb-8.2/bfd/pe-x86_64.c --- gdb-8.1/bfd/pe-x86_64.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/pe-x86_64.c 2018-09-05 07:27:13.000000000 +0000 @@ -76,9 +76,9 @@ BFD_ENDIAN_LITTLE, /* Data byte order is little. */ BFD_ENDIAN_LITTLE, /* Header byte order is little. */ - (HAS_RELOC | EXEC_P | /* Object flags. */ - HAS_LINENO | HAS_DEBUG | - HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED | BFD_COMPRESS | BFD_DECOMPRESS), + (HAS_RELOC | EXEC_P /* Object flags. */ + | HAS_LINENO | HAS_DEBUG + | HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED | BFD_COMPRESS | BFD_DECOMPRESS), (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC /* Section flags. */ | SEC_LINK_ONCE | SEC_LINK_DUPLICATES | SEC_READONLY | SEC_DEBUGGING @@ -97,12 +97,24 @@ bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* Hdrs. */ /* Note that we allow an object file to be treated as a core file as well. */ - { _bfd_dummy_target, amd64coff_object_p, /* BFD_check_format. */ - bfd_generic_archive_p, amd64coff_object_p }, - { 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_check_format. */ + _bfd_dummy_target, + amd64coff_object_p, + bfd_generic_archive_p, + amd64coff_object_p + }, + { /* bfd_set_format. */ + _bfd_bool_bfd_false_error, + coff_mkobject, + _bfd_generic_mkarchive, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents. */ + _bfd_bool_bfd_false_error, + coff_write_object_contents, + _bfd_write_archive_contents, + _bfd_bool_bfd_false_error + }, BFD_JUMP_TABLE_GENERIC (coff), BFD_JUMP_TABLE_COPY (coff), diff -Nru gdb-8.1/bfd/peXXigen.c gdb-8.2/bfd/peXXigen.c --- gdb-8.1/bfd/peXXigen.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/peXXigen.c 2018-09-05 07:27:13.000000000 +0000 @@ -154,7 +154,7 @@ name = _bfd_coff_internal_syment_name (abfd, in, namebuf); if (name == NULL) { - _bfd_error_handler (_("%B: unable to find name for empty section"), + _bfd_error_handler (_("%pB: unable to find name for empty section"), abfd); bfd_set_error (bfd_error_invalid_target); return; @@ -180,7 +180,7 @@ name = (const char *) bfd_alloc (abfd, strlen (namebuf) + 1); if (name == NULL) { - _bfd_error_handler (_("%B: out of memory creating name for empty section"), + _bfd_error_handler (_("%pB: out of memory creating name for empty section"), abfd); return; } @@ -191,7 +191,7 @@ sec = bfd_make_section_anyway_with_flags (abfd, name, flags); if (sec == NULL) { - _bfd_error_handler (_("%B: unable to create fake empty section"), + _bfd_error_handler (_("%pB: unable to create fake empty section"), abfd); return; } @@ -529,7 +529,7 @@ { /* xgettext:c-format */ _bfd_error_handler - (_("%B: aout header specifies an invalid number of data-directory entries: %ld"), + (_("%pB: aout header specifies an invalid number of data-directory entries: %ld"), abfd, a->NumberOfRvaAndSizes); bfd_set_error (bfd_error_bad_value); @@ -828,7 +828,7 @@ if (pe_data (abfd)->dll) filehdr_in->f_flags |= F_DLL; - filehdr_in->pe.e_magic = DOSMAGIC; + filehdr_in->pe.e_magic = IMAGE_DOS_SIGNATURE; filehdr_in->pe.e_cblp = 0x90; filehdr_in->pe.e_cp = 0x3; filehdr_in->pe.e_crlc = 0x0; @@ -872,7 +872,7 @@ filehdr_in->pe.dos_message[13] = 0x0a0d0d2e; filehdr_in->pe.dos_message[14] = 0x24; filehdr_in->pe.dos_message[15] = 0x0; - filehdr_in->pe.nt_signature = NT_SIGNATURE; + filehdr_in->pe.nt_signature = IMAGE_NT_SIGNATURE; H_PUT_16 (abfd, filehdr_in->f_magic, filehdr_out->f_magic); H_PUT_16 (abfd, filehdr_in->f_nscns, filehdr_out->f_nscns); @@ -1018,7 +1018,7 @@ typedef struct { - const char * section_name; + char section_name[SCNNMLEN]; unsigned long must_have; } pe_required_section_flags; @@ -1037,7 +1037,6 @@ { ".text" , IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_CODE | IMAGE_SCN_MEM_EXECUTE }, { ".tls", IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_WRITE }, { ".xdata", IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_INITIALIZED_DATA }, - { NULL, 0} }; pe_required_section_flags * p; @@ -1050,10 +1049,12 @@ by ld --enable-auto-import (if auto-import is actually needed), by ld --omagic, or by obcopy --writable-text. */ - for (p = known_sections; p->section_name; p++) - if (strcmp (scnhdr_int->s_name, p->section_name) == 0) + for (p = known_sections; + p < known_sections + ARRAY_SIZE (known_sections); + p++) + if (memcmp (scnhdr_int->s_name, p->section_name, SCNNMLEN) == 0) { - if (strcmp (scnhdr_int->s_name, ".text") + if (memcmp (scnhdr_int->s_name, ".text", sizeof ".text") || (bfd_get_file_flags (abfd) & WP_TEXT)) scnhdr_int->s_flags &= ~IMAGE_SCN_MEM_WRITE; scnhdr_int->s_flags |= p->must_have; @@ -1066,7 +1067,7 @@ if (coff_data (abfd)->link_info && ! bfd_link_relocatable (coff_data (abfd)->link_info) && ! bfd_link_pic (coff_data (abfd)->link_info) - && strcmp (scnhdr_int->s_name, ".text") == 0) + && memcmp (scnhdr_int->s_name, ".text", sizeof ".text") == 0) { /* By inference from looking at MS output, the 32 bit field which is the combination of the number_of_relocs and @@ -1086,7 +1087,7 @@ else { /* xgettext:c-format */ - _bfd_error_handler (_("%B: line number overflow: 0x%lx > 0xffff"), + _bfd_error_handler (_("%pB: line number overflow: 0x%lx > 0xffff"), abfd, scnhdr_int->s_nlnno); bfd_set_error (bfd_error_file_truncated); H_PUT_16 (abfd, 0xffff, scnhdr_ext->s_nlnno); @@ -1437,7 +1438,7 @@ if (hint_addr == 0) hint_addr = first_thunk; - if (hint_addr != 0) + if (hint_addr != 0 && hint_addr - adj < datasize) { bfd_byte *ft_data; asection *ft_section; @@ -1670,7 +1671,7 @@ } /* PR 17512: Handle corrupt PE binaries. */ - if (datasize < 36) + if (datasize < 40) { fprintf (file, /* xgettext:c-format */ @@ -1903,7 +1904,7 @@ if ((stop % onaline) != 0) fprintf (file, /* xgettext:c-format */ - _("Warning, .pdata section size (%ld) is not a multiple of %d\n"), + _("warning, .pdata section size (%ld) is not a multiple of %d\n"), (long) stop, onaline); fprintf (file, @@ -2100,7 +2101,7 @@ if ((stop % onaline) != 0) fprintf (file, /* xgettext:c-format */ - _("Warning, .pdata section size (%ld) is not a multiple of %d\n"), + _("warning, .pdata section size (%ld) is not a multiple of %d\n"), (long) stop, onaline); fprintf (file, @@ -2986,9 +2987,20 @@ > bfd_get_section_size (section)) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: Data Directory size (%lx) exceeds space left in section (%Lx)"), - obfd, ope->pe_opthdr.DataDirectory[PE_DEBUG_DATA].Size, - bfd_get_section_size (section) - (addr - section->vma)); + _bfd_error_handler + (_("%pB: Data Directory size (%lx) " + "exceeds space left in section (%" PRIx64 ")"), + obfd, ope->pe_opthdr.DataDirectory[PE_DEBUG_DATA].Size, + (uint64_t) (section->size - (addr - section->vma))); + return FALSE; + } + /* PR 23110. */ + else if (ope->pe_opthdr.DataDirectory[PE_DEBUG_DATA].Size < 0) + { + /* xgettext:c-format */ + _bfd_error_handler + (_("%pB: Data Directory size (%#lx) is negative"), + obfd, ope->pe_opthdr.DataDirectory[PE_DEBUG_DATA].Size); return FALSE; } @@ -3016,13 +3028,13 @@ if (!bfd_set_section_contents (obfd, section, data, 0, section->size)) { - _bfd_error_handler (_("Failed to update file offsets in debug directory")); + _bfd_error_handler (_("failed to update file offsets in debug directory")); return FALSE; } } else if (section) { - _bfd_error_handler (_("%B: Failed to read debug data section"), obfd); + _bfd_error_handler (_("%pB: failed to read debug data section"), obfd); return FALSE; } } @@ -4101,14 +4113,14 @@ if (adir->characteristics != bdir->characteristics) { - _bfd_error_handler (_(".rsrc merge failure: dirs with differing characteristics\n")); + _bfd_error_handler (_(".rsrc merge failure: dirs with differing characteristics")); bfd_set_error (bfd_error_file_truncated); return; } if (adir->major != bdir->major || adir->minor != bdir->minor) { - _bfd_error_handler (_(".rsrc merge failure: differing directory versions\n")); + _bfd_error_handler (_(".rsrc merge failure: differing directory versions")); bfd_set_error (bfd_error_file_truncated); return; } @@ -4225,7 +4237,7 @@ if (data > dataend) { /* Corrupted .rsrc section - cannot merge. */ - _bfd_error_handler (_("%B: .rsrc merge failure: corrupt .rsrc section"), + _bfd_error_handler (_("%pB: .rsrc merge failure: corrupt .rsrc section"), abfd); bfd_set_error (bfd_error_file_truncated); goto end; @@ -4233,7 +4245,7 @@ if ((data - p) > rsrc_sizes [num_resource_sets]) { - _bfd_error_handler (_("%B: .rsrc merge failure: unexpected .rsrc size"), + _bfd_error_handler (_("%pB: .rsrc merge failure: unexpected .rsrc size"), abfd); bfd_set_error (bfd_error_file_truncated); goto end; @@ -4372,7 +4384,7 @@ else { _bfd_error_handler - (_("%B: unable to fill in DataDictionary[1] because .idata$2 is missing"), + (_("%pB: unable to fill in DataDictionary[1] because .idata$2 is missing"), abfd); result = FALSE; } @@ -4392,7 +4404,7 @@ else { _bfd_error_handler - (_("%B: unable to fill in DataDictionary[1] because .idata$4 is missing"), + (_("%pB: unable to fill in DataDictionary[1] because .idata$4 is missing"), abfd); result = FALSE; } @@ -4413,7 +4425,7 @@ else { _bfd_error_handler - (_("%B: unable to fill in DataDictionary[12] because .idata$5 is missing"), + (_("%pB: unable to fill in DataDictionary[12] because .idata$5 is missing"), abfd); result = FALSE; } @@ -4433,7 +4445,7 @@ else { _bfd_error_handler - (_("%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing"), + (_("%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing"), abfd); result = FALSE; } @@ -4475,7 +4487,7 @@ else { _bfd_error_handler - (_("%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)]" + (_("%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)]" " because .idata$6 is missing"), abfd); result = FALSE; } @@ -4500,7 +4512,7 @@ else { _bfd_error_handler - (_("%B: unable to fill in DataDictionary[9] because __tls_used is missing"), + (_("%pB: unable to fill in DataDictionary[9] because __tls_used is missing"), abfd); result = FALSE; } diff -Nru gdb-8.1/bfd/plugin.c gdb-8.2/bfd/plugin.c --- gdb-8.1/bfd/plugin.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/plugin.c 2018-09-05 07:44:28.000000000 +0000 @@ -80,7 +80,7 @@ #define bfd_plugin_bfd_set_private_flags _bfd_generic_bfd_set_private_flags #define bfd_plugin_core_file_matches_executable_p generic_core_file_matches_executable_p #define bfd_plugin_bfd_is_local_label_name _bfd_nosymbols_bfd_is_local_label_name -#define bfd_plugin_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) +#define bfd_plugin_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false #define bfd_plugin_get_lineno _bfd_nosymbols_get_lineno #define bfd_plugin_find_nearest_line _bfd_nosymbols_find_nearest_line #define bfd_plugin_find_line _bfd_nosymbols_find_line @@ -105,6 +105,7 @@ #define bfd_plugin_bfd_discard_group bfd_generic_discard_group #define bfd_plugin_section_already_linked _bfd_generic_section_already_linked #define bfd_plugin_bfd_define_common_symbol bfd_generic_define_common_symbol +#define bfd_plugin_bfd_link_hide_symbol _bfd_generic_link_hide_symbol #define bfd_plugin_bfd_define_start_stop bfd_generic_define_start_stop #define bfd_plugin_bfd_copy_link_hash_symbol_type _bfd_generic_copy_link_hash_symbol_type #define bfd_plugin_bfd_link_check_relocs _bfd_generic_link_check_relocs @@ -165,14 +166,22 @@ bfd *iobfd; iobfd = ibfd; - if (ibfd->my_archive && !bfd_is_thin_archive (ibfd->my_archive)) - iobfd = ibfd->my_archive; + while (iobfd->my_archive + && !bfd_is_thin_archive (iobfd->my_archive)) + iobfd = iobfd->my_archive; file->name = iobfd->filename; if (!iobfd->iostream && !bfd_open_file (iobfd)) return 0; - file->fd = fileno ((FILE *) iobfd->iostream); + /* The plugin API expects that the file descriptor won't be closed + and reused as done by the bfd file cache. So open it again. + dup isn't good enough. plugin IO uses lseek/read while BFD uses + fseek/fread. It isn't wise to mix the unistd and stdio calls on + the same underlying file descriptor. */ + file->fd = open (file->name, O_RDONLY | O_BINARY); + if (file->fd < 0) + return 0; if (iobfd == ibfd) { @@ -196,12 +205,12 @@ int claimed = 0; struct ld_plugin_input_file file; + file.handle = abfd; if (!bfd_plugin_open_input (abfd, &file)) return 0; - file.handle = abfd; - off_t cur_offset = lseek (file.fd, 0, SEEK_CUR); claim_file (&file, &claimed); - lseek (file.fd, cur_offset, SEEK_SET); + if (!claimed) + close (file.fd); return claimed; } @@ -594,16 +603,16 @@ _bfd_dummy_target }, { /* bfd_set_format. */ - bfd_false, - bfd_false, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, _bfd_generic_mkarchive, - bfd_false, + _bfd_bool_bfd_false_error, }, { /* bfd_write_contents. */ - bfd_false, - bfd_false, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, _bfd_write_archive_contents, - bfd_false, + _bfd_bool_bfd_false_error, }, BFD_JUMP_TABLE_GENERIC (bfd_plugin), diff -Nru gdb-8.1/bfd/po/bfd.pot gdb-8.2/bfd/po/bfd.pot --- gdb-8.1/bfd/po/bfd.pot 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/bfd/po/bfd.pot 2018-09-05 07:27:13.000000000 +0000 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n" -"POT-Creation-Date: 2017-08-14 10:55+0100\n" +"POT-Creation-Date: 2018-06-24 19:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,176 +16,216 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" - -#: aout-adobe.c:126 -#, c-format -msgid "%B: Unknown section type in a.out.adobe file: %x\n" -msgstr "" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: aout-cris.c:200 #, c-format -msgid "%B: Invalid relocation type exported: %d" +msgid "%pB: unsupported relocation type exported: %#x" msgstr "" #: aout-cris.c:244 #, c-format -msgid "%B: Invalid relocation type imported: %d" +msgid "%pB: unsupported relocation type imported: %#x" msgstr "" #: aout-cris.c:256 #, c-format -msgid "%B: Bad relocation record imported: %d" +msgid "%pB: bad relocation record imported: %d" msgstr "" -#: aoutx.h:1284 aoutx.h:1621 pdp11.c:1152 pdp11.c:1413 +#: aoutx.h:1264 aoutx.h:1617 pdp11.c:1138 pdp11.c:1399 #, c-format -msgid "%B: can not represent section `%A' in a.out object file format" +msgid "%pB: can not represent section `%pA' in a.out object file format" msgstr "" -#: aoutx.h:1585 pdp11.c:1385 +#: aoutx.h:1581 pdp11.c:1371 #, c-format msgid "" -"%B: can not represent section for symbol `%s' in a.out object file format" +"%pB: can not represent section for symbol `%s' in a.out object file format" msgstr "" -#: aoutx.h:1588 vms-alpha.c:7853 +#: aoutx.h:1584 vms-alpha.c:7854 msgid "*unknown*" msgstr "" -#: aoutx.h:2407 aoutx.h:2425 -msgid "%B: attempt to write out unknown reloc type" +#: aoutx.h:1720 +#, c-format +msgid "%pB: invalid string offset % >= %" msgstr "" -#: aoutx.h:4077 aoutx.h:4398 -msgid "%P: %B: unexpected relocation type\n" +#: aoutx.h:2411 aoutx.h:2429 +#, c-format +msgid "%pB: attempt to write out unknown reloc type" msgstr "" -#: aoutx.h:5424 pdp11.c:3708 +#: aoutx.h:4084 #, c-format -msgid "%B: relocatable link from %s to %s not supported" +msgid "%pB: unsupported relocation type" msgstr "" -#: archive.c:2298 -msgid "Warning: writing archive was slow: rewriting timestamp\n" +#. Unknown relocation. +#: aoutx.h:4405 coff-alpha.c:601 coff-alpha.c:1514 coff-rs6000.c:2773 +#: coff-sh.c:504 coff-tic4x.c:184 coff-tic54x.c:279 elf-hppa.h:1040 +#: elf-hppa.h:1068 elf-m10200.c:226 elf-m10300.c:812 elf32-arc.c:519 +#: elf32-arm.c:1944 elf32-avr.c:959 elf32-bfin.c:1061 elf32-bfin.c:4698 +#: elf32-cr16.c:653 elf32-cr16.c:683 elf32-cr16c.c:186 elf32-cris.c:467 +#: elf32-crx.c:429 elf32-d10v.c:234 elf32-d30v.c:522 elf32-d30v.c:544 +#: elf32-dlx.c:548 elf32-epiphany.c:376 elf32-fr30.c:381 elf32-frv.c:2558 +#: elf32-frv.c:6262 elf32-ft32.c:306 elf32-h8300.c:302 elf32-i386.c:401 +#: elf32-ip2k.c:1245 elf32-iq2000.c:442 elf32-lm32.c:539 elf32-m32c.c:305 +#: elf32-m32r.c:1286 elf32-m32r.c:1311 elf32-m32r.c:2417 elf32-m68hc11.c:390 +#: elf32-m68hc12.c:510 elf32-m68k.c:352 elf32-mcore.c:354 elf32-mcore.c:440 +#: elf32-mep.c:389 elf32-metag.c:878 elf32-microblaze.c:692 +#: elf32-microblaze.c:969 elf32-mips.c:2229 elf32-moxie.c:137 +#: elf32-msp430.c:648 elf32-msp430.c:658 elf32-mt.c:241 elf32-nds32.c:2880 +#: elf32-nds32.c:2904 elf32-nds32.c:4423 elf32-nios2.c:3015 elf32-or1k.c:715 +#: elf32-pj.c:325 elf32-ppc.c:2061 elf32-ppc.c:2074 elf32-pru.c:420 +#: elf32-rl78.c:292 elf32-rx.c:314 elf32-rx.c:323 elf32-s12z.c:238 +#: elf32-s390.c:347 elf32-sh.c:438 elf32-spu.c:160 elf32-tic6x.c:1508 +#: elf32-tic6x.c:1518 elf32-tic6x.c:1537 elf32-tic6x.c:1547 elf32-tic6x.c:2642 +#: elf32-tilepro.c:803 elf32-v850.c:1899 elf32-v850.c:1921 elf32-v850.c:4270 +#: elf32-vax.c:290 elf32-visium.c:482 elf32-wasm32.c:106 elf32-xc16x.c:241 +#: elf32-xgate.c:428 elf32-xstormy16.c:395 elf32-xtensa.c:459 +#: elf32-xtensa.c:493 elf64-alpha.c:1112 elf64-alpha.c:4101 elf64-alpha.c:4249 +#: elf64-ia64-vms.c:254 elf64-ia64-vms.c:3440 elf64-mips.c:3623 +#: elf64-mips.c:3639 elf64-mmix.c:1264 elf64-nfp.c:239 elf64-ppc.c:2281 +#: elf64-ppc.c:2555 elf64-ppc.c:2564 elf64-s390.c:328 elf64-s390.c:378 +#: elf64-x86-64.c:285 elfn32-mips.c:3451 elfxx-ia64.c:325 elfxx-riscv.c:955 +#: elfxx-sparc.c:589 elfxx-sparc.c:639 elfxx-sparc.c:661 elfxx-tilegx.c:912 +#: elfxx-tilegx.c:952 /work/sources/binutils/current/bfd/elfnn-aarch64.c:2126 +#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:2224 elf32-ia64.c:211 +#: elf32-ia64.c:3863 elf64-ia64.c:211 elf64-ia64.c:3863 +#, c-format +msgid "%pB: unsupported relocation type %#x" +msgstr "" + +#: aoutx.h:5432 pdp11.c:3694 +#, c-format +msgid "%pB: relocatable link from %s to %s not supported" +msgstr "" + +#: archive.c:2216 +msgid "warning: writing archive was slow: rewriting timestamp" msgstr "" -#: archive.c:2410 linker.c:1408 -msgid "%B: plugin needed to handle lto object" +#: archive.c:2332 linker.c:1416 +#, c-format +msgid "%pB: plugin needed to handle lto object" msgstr "" -#: archive.c:2639 +#: archive.c:2561 msgid "Reading archive file mod timestamp" msgstr "" -#: archive.c:2663 +#: archive.c:2585 msgid "Writing updated armap timestamp" msgstr "" +#: bfd.c:449 +msgid "no error" +msgstr "" + +#: bfd.c:450 +msgid "system call error" +msgstr "" + +#: bfd.c:451 +msgid "invalid bfd target" +msgstr "" + +#: bfd.c:452 +msgid "file in wrong format" +msgstr "" + +#: bfd.c:453 +msgid "archive object file in wrong format" +msgstr "" + #: bfd.c:454 -msgid "No error" +msgid "invalid operation" msgstr "" #: bfd.c:455 -msgid "System call error" +msgid "memory exhausted" msgstr "" #: bfd.c:456 -msgid "Invalid bfd target" +msgid "no symbols" msgstr "" #: bfd.c:457 -msgid "File in wrong format" +msgid "archive has no index; run ranlib to add one" msgstr "" #: bfd.c:458 -msgid "Archive object file in wrong format" +msgid "no more archived files" msgstr "" #: bfd.c:459 -msgid "Invalid operation" +msgid "malformed archive" msgstr "" #: bfd.c:460 -msgid "Memory exhausted" +msgid "DSO missing from command line" msgstr "" #: bfd.c:461 -msgid "No symbols" +msgid "file format not recognized" msgstr "" #: bfd.c:462 -msgid "Archive has no index; run ranlib to add one" +msgid "file format is ambiguous" msgstr "" #: bfd.c:463 -msgid "No more archived files" +msgid "section has no contents" msgstr "" #: bfd.c:464 -msgid "Malformed archive" +msgid "nonrepresentable section on output" msgstr "" #: bfd.c:465 -msgid "DSO missing from command line" +msgid "symbol needs debug section which does not exist" msgstr "" #: bfd.c:466 -msgid "File format not recognized" +msgid "bad value" msgstr "" #: bfd.c:467 -msgid "File format is ambiguous" +msgid "file truncated" msgstr "" #: bfd.c:468 -msgid "Section has no contents" +msgid "file too big" msgstr "" #: bfd.c:469 -msgid "Nonrepresentable section on output" -msgstr "" - -#: bfd.c:470 -msgid "Symbol needs debug section which does not exist" -msgstr "" - -#: bfd.c:471 -msgid "Bad value" -msgstr "" - -#: bfd.c:472 -msgid "File truncated" -msgstr "" - -#: bfd.c:473 -msgid "File too big" -msgstr "" - -#: bfd.c:474 #, c-format -msgid "Error reading %s: %s" +msgid "error reading %s: %s" msgstr "" -#: bfd.c:475 -msgid "#" +#: bfd.c:470 +msgid "#" msgstr "" -#: bfd.c:1144 +#: bfd.c:1429 #, c-format msgid "BFD %s assertion fail %s:%d" msgstr "" -#: bfd.c:1157 +#: bfd.c:1442 #, c-format msgid "BFD %s internal error, aborting at %s:%d in %s\n" msgstr "" -#: bfd.c:1162 +#: bfd.c:1447 #, c-format msgid "BFD %s internal error, aborting at %s:%d\n" msgstr "" -#: bfd.c:1164 +#: bfd.c:1449 msgid "Please report this bug.\n" msgstr "" @@ -201,1550 +241,1460 @@ #: binary.c:276 #, c-format -msgid "warning: writing section `%A' at huge (ie negative) file offset" +msgid "warning: writing section `%pA' at huge (ie negative) file offset" msgstr "" -#: bout.c:1142 elf-m10300.c:2651 elf32-avr.c:2484 elf32-frv.c:5633 -#: elf64-ia64-vms.c:353 elfxx-sparc.c:2989 reloc.c:8020 reloc16.c:156 -#: elf32-ia64.c:351 elf64-ia64.c:351 -msgid "%P%F: --relax and -r may not be used together\n" -msgstr "" - -#: cache.c:273 +#: cache.c:272 #, c-format -msgid "reopening %B: %s\n" +msgid "reopening %pB: %s\n" msgstr "" #: coff-alpha.c:450 +#, c-format msgid "" -"%B: Cannot handle compressed Alpha binaries.\n" -" Use compiler flags, or objZ, to generate uncompressed binaries." -msgstr "" - -#: coff-alpha.c:602 -msgid "%B: unknown/unsupported relocation type %d" +"%pB: cannot handle compressed Alpha binaries; use compiler flags, or objZ, " +"to generate uncompressed binaries" msgstr "" -#: coff-alpha.c:851 coff-alpha.c:888 coff-alpha.c:1961 coff-mips.c:944 +#: coff-alpha.c:850 coff-alpha.c:887 coff-alpha.c:1957 coff-mips.c:950 msgid "GP relative relocation used when GP not defined" msgstr "" -#: coff-alpha.c:1444 +#: coff-alpha.c:1443 msgid "using multiple gp values" msgstr "" -#: coff-alpha.c:1503 -msgid "%B: unsupported relocation: ALPHA_R_GPRELHIGH" -msgstr "" - -#: coff-alpha.c:1510 -msgid "%B: unsupported relocation: ALPHA_R_GPRELLOW" -msgstr "" - -#: coff-alpha.c:1518 elf32-i370.c:1085 elf32-m32r.c:2418 elf32-microblaze.c:952 -#: elf64-alpha.c:4165 elf64-alpha.c:4313 elf64-ia64-vms.c:3431 -#: elf32-ia64.c:3839 elf64-ia64.c:3839 +#: coff-alpha.c:1501 coff-alpha.c:1507 elf.c:8983 elf32-mcore.c:100 +#: elf32-mcore.c:455 elf32-ppc.c:8755 elf32-ppc.c:9887 elf64-ppc.c:14936 #, c-format -msgid "%B: unknown relocation type %d" +msgid "%pB: %s unsupported" msgstr "" -#: coff-arm.c:1032 -#, c-format -msgid "%B: unable to find THUMB glue '%s' for `%s'" -msgstr "" - -#: coff-arm.c:1061 -#, c-format -msgid "%B: unable to find ARM glue '%s' for `%s'" -msgstr "" - -#: coff-arm.c:1363 elf32-arm.c:8896 -#, c-format -msgid "" -"%B(%s): warning: interworking not enabled.\n" -" first occurrence: %B: arm call to thumb" +#: coff-mips.c:640 elf32-mips.c:1742 elf32-score.c:430 elf32-score7.c:330 +#: elf64-mips.c:3131 elfn32-mips.c:2956 +msgid "GP relative relocation when _gp not defined" msgstr "" -#: coff-arm.c:1453 +#: coff-rs6000.c:2859 #, c-format -msgid "" -"%B(%s): warning: interworking not enabled.\n" -" first occurrence: %B: thumb call to arm\n" -" consider relinking with --support-old-code enabled" +msgid "%pB: TOC reloc at %# to symbol `%s' with no TOC entry" msgstr "" -#: coff-arm.c:1746 coff-tic80.c:670 cofflink.c:3123 +#: coff-rs6000.c:3605 coff64-rs6000.c:2150 #, c-format -msgid "%B: bad reloc address %#Lx in section `%A'" +msgid "%pB: symbol `%s' has unrecognized smclas %d" msgstr "" -#: coff-arm.c:2071 +#: coff-sh.c:780 elf32-sh.c:521 #, c-format -msgid "%B: illegal symbol index in reloc: %ld" +msgid "%pB: %#: warning: bad R_SH_USES offset" msgstr "" -#: coff-arm.c:2203 +#: coff-sh.c:791 #, c-format -msgid "error: %B is compiled for APCS-%d, whereas %B is compiled for APCS-%d" +msgid "%pB: %#: warning: R_SH_USES points to unrecognized insn %#x" msgstr "" -#: coff-arm.c:2216 elf32-arm.c:19754 +#: coff-sh.c:809 elf32-sh.c:552 #, c-format -msgid "" -"error: %B passes floats in float registers, whereas %B passes them in " -"integer registers" +msgid "%pB: %#: warning: bad R_SH_USES load offset" msgstr "" -#: coff-arm.c:2221 elf32-arm.c:19758 +#: coff-sh.c:834 elf32-sh.c:568 #, c-format -msgid "" -"error: %B passes floats in integer registers, whereas %B passes them in " -"float registers" +msgid "%pB: %#: warning: could not find expected reloc" msgstr "" -#: coff-arm.c:2233 +#: coff-sh.c:851 elf32-sh.c:597 #, c-format -msgid "" -"error: %B is compiled as position independent code, whereas target %B is " -"absolute position" +msgid "%pB: %#: warning: symbol in unexpected section" msgstr "" -#: coff-arm.c:2238 +#: coff-sh.c:977 elf32-sh.c:727 #, c-format -msgid "" -"error: %B is compiled as absolute position code, whereas target %B is " -"position independent" +msgid "%pB: %#: warning: could not find expected COUNT reloc" msgstr "" -#: coff-arm.c:2265 elf32-arm.c:19823 +#: coff-sh.c:987 elf32-sh.c:738 #, c-format -msgid "Warning: %B supports interworking, whereas %B does not" +msgid "%pB: %#: warning: bad count" msgstr "" -#: coff-arm.c:2270 elf32-arm.c:19829 +#: coff-sh.c:1359 coff-sh.c:2647 elf32-sh.c:1142 elf32-sh.c:1512 #, c-format -msgid "Warning: %B does not support interworking, whereas %B does" +msgid "%pB: %#: fatal: reloc overflow while relaxing" msgstr "" -#: coff-arm.c:2293 +#: coff-sh.c:1454 #, c-format -msgid "private flags = %x:" +msgid "%pB: fatal: generic symbols retrieved before relaxing" msgstr "" -#: coff-arm.c:2301 elf32-arm.c:14154 +#: coff-sh.c:2785 cofflink.c:2965 #, c-format -msgid " [floats passed in float registers]" +msgid "%pB: illegal symbol index %ld in relocs" msgstr "" -#: coff-arm.c:2303 +#: coff-tic4x.c:228 coff-tic54x.c:366 coffcode.h:5010 #, c-format -msgid " [floats passed in integer registers]" +msgid "%pB: warning: illegal symbol index %ld in relocs" msgstr "" -#: coff-arm.c:2306 elf32-arm.c:14157 +#: coff-tic80.c:441 #, c-format -msgid " [position independent]" +msgid "unsupported relocation type %#x" msgstr "" -#: coff-arm.c:2308 +#: coff-tic80.c:672 cofflink.c:3127 #, c-format -msgid " [absolute position]" +msgid "%pB: bad reloc address %# in section `%pA'" msgstr "" -#: coff-arm.c:2312 +#: coffcode.h:954 #, c-format -msgid " [interworking flag not initialised]" +msgid "%pB: unable to load COMDAT section name" msgstr "" -#: coff-arm.c:2314 +#. Malformed input files can trigger this test. +#. cf PR 21781. +#: coffcode.h:989 #, c-format -msgid " [interworking supported]" +msgid "%pB: error: unexpected symbol '%s' in COMDAT section" msgstr "" -#: coff-arm.c:2316 +#: coffcode.h:1001 #, c-format -msgid " [interworking not supported]" -msgstr "" - -#: coff-arm.c:2361 elf32-arm.c:13015 -msgid "" -"Warning: Not setting interworking flag of %B since it has already been " -"specified as non-interworking" -msgstr "" - -#: coff-arm.c:2364 elf32-arm.c:13019 -msgid "Warning: Clearing the interworking flag of %B due to outside request" +msgid "%pB: warning: COMDAT symbol '%s' does not match section name '%s'" msgstr "" -#: coff-arm.c:2421 elf32-arm.c:13064 +#: coffcode.h:1011 #, c-format -msgid "" -"Warning: Clearing the interworking flag of %B because non-interworking code " -"in %B has been linked with it" +msgid "%pB: warning: no symbol for section '%s' found" msgstr "" -#: coff-h8300.c:1068 +#. Generate a warning message rather using the 'unhandled' +#. variable as this will allow some .sys files generate by +#. other toolchains to be processed. See bugzilla issue 196. +#: coffcode.h:1237 #, c-format -msgid "cannot handle R_MEM_INDIRECT reloc when using %s output" +msgid "%pB: warning: ignoring section flag %s in section %s" msgstr "" -#: coff-i860.c:146 +#: coffcode.h:1306 #, c-format -msgid "relocation `%s' not yet implemented" +msgid "%pB (%s): section flag %s (%#lx) ignored" msgstr "" -#: coff-i860.c:608 coff-tic4x.c:227 coff-tic54x.c:365 coffcode.h:5327 +#: coffcode.h:1917 #, c-format -msgid "%B: warning: illegal symbol index %ld in relocs" -msgstr "" - -#: coff-i960.c:122 coff-i960.c:475 -msgid "uncertain calling convention for non-COFF symbol" +msgid "%pB: warning: claims to have 0xffff relocs, without overflow" msgstr "" -#: coff-m68k.c:483 elf32-bfin.c:5529 elf32-cr16.c:2817 elf32-m68k.c:4573 -msgid "unsupported reloc type" -msgstr "" - -#: coff-mips.c:634 elf32-mips.c:1744 elf32-score.c:430 elf32-score7.c:330 -#: elf64-mips.c:3135 elfn32-mips.c:2954 -msgid "GP relative relocation when _gp not defined" -msgstr "" - -#: coff-rs6000.c:2773 +#: coffcode.h:2315 #, c-format -msgid "%B: unsupported relocation type 0x%02x" +msgid "unrecognized TI COFF target id '0x%x'" msgstr "" -#: coff-rs6000.c:2859 +#: coffcode.h:2599 #, c-format -msgid "%B: TOC reloc at %#Lx to symbol `%s' with no TOC entry" +msgid "%pB: reloc against a non-existent symbol index: %ld" msgstr "" -#: coff-rs6000.c:3605 coff64-rs6000.c:2150 +#: coffcode.h:2910 #, c-format -msgid "%B: symbol `%s' has unrecognized smclas %d" +msgid "%pB: page size is too large (0x%x)" msgstr "" -#: coff-sh.c:504 +#: coffcode.h:3070 #, c-format -msgid "SH Error: unknown reloc type %d" +msgid "%pB: too many sections (%d)" msgstr "" -#: coff-sh.c:778 elf32-sh.c:580 +#: coffcode.h:3489 #, c-format -msgid "%B: %#Lx: warning: bad R_SH_USES offset" +msgid "%pB: section %pA: string table overflow at offset %ld" msgstr "" -#: coff-sh.c:789 +#: coffcode.h:3589 #, c-format -msgid "%B: %#Lx: warning: R_SH_USES points to unrecognized insn %#x" +msgid "%pB:%s section %s: alignment 2**%u not representable" msgstr "" -#: coff-sh.c:807 elf32-sh.c:610 +#: coffcode.h:4276 #, c-format -msgid "%B: %#Lx: warning: bad R_SH_USES load offset" +msgid "%pB: warning: line number count (%#lx) exceeds section size (%#lx)" msgstr "" -#: coff-sh.c:832 elf32-sh.c:626 +#: coffcode.h:4291 #, c-format -msgid "%B: %#Lx: warning: could not find expected reloc" +msgid "%pB: warning: line number table read failed" msgstr "" -#: coff-sh.c:849 elf32-sh.c:655 +#: coffcode.h:4325 coffcode.h:4339 #, c-format -msgid "%B: %#Lx: warning: symbol in unexpected section" +msgid "%pB: warning: illegal symbol index 0x%lx in line number entry %d" msgstr "" -#: coff-sh.c:975 elf32-sh.c:785 +#: coffcode.h:4353 #, c-format -msgid "%B: %#Lx: warning: could not find expected COUNT reloc" +msgid "%pB: warning: illegal symbol in line number entry %d" msgstr "" -#: coff-sh.c:985 elf32-sh.c:795 +#: coffcode.h:4366 #, c-format -msgid "%B: %#Lx: warning: bad count" +msgid "%pB: warning: duplicate line number information for `%s'" msgstr "" -#: coff-sh.c:1357 coff-sh.c:2645 elf32-sh.c:1199 elf32-sh.c:1570 +#: coffcode.h:4774 #, c-format -msgid "%B: %#Lx: fatal: reloc overflow while relaxing" +msgid "%pB: unrecognized storage class %d for %s symbol `%s'" msgstr "" -#: coff-sh.c:1452 -msgid "%B: fatal: generic symbols retrieved before relaxing" -msgstr "" - -#: coff-sh.c:2783 cofflink.c:2961 +#: coffcode.h:4904 #, c-format -msgid "%B: illegal symbol index %ld in relocs" +msgid "warning: %pB: local symbol `%s' has no section" msgstr "" -#: coff-tic4x.c:183 coff-tic54x.c:278 coff-tic80.c:439 +#: coffcode.h:5050 #, c-format -msgid "Unrecognized reloc type 0x%x" +msgid "%pB: illegal relocation type %d at address %#" msgstr "" -#: coff-w65.c:352 +#: coffgen.c:178 elf.c:1214 #, c-format -msgid "ignoring reloc %s\n" +msgid "%pB: unable to initialize compress status for section %s" msgstr "" -#: coffcode.h:968 -msgid "%B: unable to load COMDAT section name" -msgstr "" - -#. Malformed input files can trigger this test. -#. cf PR 21781. -#: coffcode.h:1003 -msgid "%B: error: unexpected symbol '%s' in COMDAT section" -msgstr "" - -#: coffcode.h:1015 +#: coffgen.c:202 elf.c:1225 #, c-format -msgid "%B: warning: COMDAT symbol '%s' does not match section name '%s'" +msgid "%pB: unable to initialize decompress status for section %s" msgstr "" -#: coffcode.h:1025 +#: coffgen.c:1652 #, c-format -msgid "%B: warning: No symbol for section '%s' found" +msgid "%pB: corrupt symbol count: %#" msgstr "" -#. Generate a warning message rather using the 'unhandled' -#. variable as this will allow some .sys files generate by -#. other toolchains to be processed. See bugzilla issue 196. -#: coffcode.h:1251 +#. PR 21013: Provide an error message when the alloc fails. +#: coffgen.c:1661 #, c-format msgid "" -"%B: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section %s" -msgstr "" - -#: coffcode.h:1320 -#, c-format -msgid "%B (%s): Section flag %s (%#lx) ignored" +"%pB: not enough memory to allocate space for %# symbols of size " +"%#" msgstr "" -#: coffcode.h:1955 -msgid "%B: warning: claims to have 0xffff relocs, without overflow" -msgstr "" - -#: coffcode.h:2471 -#, c-format -msgid "Unrecognized TI COFF target id '0x%x'" -msgstr "" - -#: coffcode.h:2789 +#: coffgen.c:1730 #, c-format -msgid "%B: reloc against a non-existent symbol index: %ld" +msgid "%pB: bad string table size %" msgstr "" -#: coffcode.h:3192 -#, c-format -msgid "%B: page size is too large (0x%x)" -msgstr "" - -#: coffcode.h:3352 -#, c-format -msgid "%B: too many sections (%d)" +#: coffgen.c:1907 coffgen.c:1967 coffgen.c:1985 cofflink.c:2045 +#: xcofflink.c:4508 +msgid "" msgstr "" -#: coffcode.h:3773 +#: coffgen.c:2109 #, c-format -msgid "%B: section %A: string table overflow at offset %ld" +msgid " %s" msgstr "" -#: coffcode.h:4591 -msgid "%B: warning: line number table read failed" +#: coffgen.c:2688 elflink.c:14290 linker.c:2946 +msgid "%F%P: already_linked_table: %E\n" msgstr "" -#: coffcode.h:4625 coffcode.h:4639 +#: coffgen.c:3029 elflink.c:13292 #, c-format -msgid "%B: warning: illegal symbol index 0x%lx in line number entry %d" +msgid "removing unused section '%pA' in file '%pB'" msgstr "" -#: coffcode.h:4653 -#, c-format -msgid "%B: warning: illegal symbol in line number entry %d" +#: coffgen.c:3106 elflink.c:13510 +msgid "warning: gc-sections option ignored" msgstr "" -#: coffcode.h:4666 +#: cofflink.c:352 #, c-format -msgid "%B: warning: duplicate line number information for `%s'" +msgid "warning: symbol `%s' is both section and non-section" msgstr "" -#: coffcode.h:5087 +#: cofflink.c:454 elf64-ia64-vms.c:5203 elflink.c:4934 #, c-format -msgid "%B: Unrecognized storage class %d for %s symbol `%s'" +msgid "warning: type of symbol `%s' changed from %d to %d in %pB" msgstr "" -#: coffcode.h:5220 +#: cofflink.c:2373 #, c-format -msgid "warning: %B: local symbol `%s' has no section" +msgid "%pB: relocs in section `%pA', but it has no contents" msgstr "" -#: coffcode.h:5367 +#: cofflink.c:2436 elflink.c:10787 #, c-format -msgid "%B: illegal relocation type %d at address %#Lx" +msgid "" +"%X`%s' referenced in section `%pA' of %pB: defined in discarded section `" +"%pA' of %pB\n" msgstr "" -#: coffgen.c:178 elf.c:1198 +#: cofflink.c:2734 #, c-format -msgid "%B: unable to initialize compress status for section %s" +msgid "%pB: %pA: reloc overflow: %#x > 0xffff" msgstr "" -#: coffgen.c:202 elf.c:1209 +#: cofflink.c:2742 #, c-format -msgid "%B: unable to initialize decompress status for section %s" -msgstr "" - -#. PR 21013: Provide an error message when the alloc fails. -#: coffgen.c:1648 -msgid "%B: Not enough memory to allocate space for %Lu symbols" +msgid "%pB: warning: %pA: line number overflow: %#x > 0xffff" msgstr "" -#: coffgen.c:1716 +#: coffswap.h:789 #, c-format -msgid "%B: bad string table size %Lu" -msgstr "" - -#: coffgen.c:1885 coffgen.c:1945 coffgen.c:1963 cofflink.c:2041 -#: xcofflink.c:4507 -msgid "" +msgid "%pB: warning: %s: line number overflow: 0x%lx > 0xffff" msgstr "" -#: coffgen.c:2087 +#: coffswap.h:803 #, c-format -msgid " %s" +msgid "%pB: %s: reloc overflow: 0x%lx > 0xffff" msgstr "" -#: coffgen.c:2666 elflink.c:14078 linker.c:2931 -msgid "%F%P: already_linked_table: %E\n" -msgstr "" - -#: coffgen.c:3007 elflink.c:13064 +#: compress.c:255 #, c-format -msgid "Removing unused section '%A' in file '%B'" +msgid "error: %pB(%pA) is too large (%# bytes)" msgstr "" -#: coffgen.c:3084 elflink.c:13309 -msgid "Warning: gc-sections option ignored" -msgstr "" - -#: cofflink.c:348 +#: cpu-arm.c:192 cpu-arm.c:204 #, c-format -msgid "Warning: symbol `%s' is both section and non-section" +msgid "" +"error: %pB is compiled for the EP9312, whereas %pB is compiled for XScale" msgstr "" -#: cofflink.c:450 elf64-ia64-vms.c:5187 elflink.c:4794 +#: cpu-arm.c:338 #, c-format -msgid "Warning: type of symbol `%s' changed from %d to %d in %B" +msgid "warning: unable to update contents of %s section in %pB" msgstr "" -#: cofflink.c:2369 +#: dwarf2.c:543 #, c-format -msgid "%B: relocs in section `%A', but it has no contents" +msgid "DWARF error: can't find %s section." msgstr "" -#: cofflink.c:2432 elflink.c:10572 +#: dwarf2.c:572 #, c-format msgid "" -"%X`%s' referenced in section `%A' of %B: defined in discarded section `%A' " -"of %B\n" +"DWARF error: offset (%) greater than or equal to %s size (%)" msgstr "" -#: cofflink.c:2730 -#, c-format -msgid "%B: %A: reloc overflow: %#x > 0xffff" +#: dwarf2.c:1100 +msgid "DWARF error: info pointer extends beyond end of attributes" msgstr "" -#: cofflink.c:2738 +#: dwarf2.c:1268 #, c-format -msgid "%B: warning: %A: line number overflow: %#x > 0xffff" +msgid "DWARF error: invalid or unhandled FORM value: %#x" msgstr "" -#: coffswap.h:811 -#, c-format -msgid "%B: warning: %s: line number overflow: 0x%lx > 0xffff" +#: dwarf2.c:1574 +msgid "DWARF error: mangled line number section (bad file number)" msgstr "" -#: coffswap.h:825 -#, c-format -msgid "%B: %s: reloc overflow: 0x%lx > 0xffff" +#: dwarf2.c:1919 +msgid "DWARF error: zero format count" msgstr "" -#: compress.c:255 +#: dwarf2.c:1929 #, c-format -msgid "error: %B(%A) is too large (%#Lx bytes)" +msgid "DWARF error: data count (%) larger than buffer size" msgstr "" -#: cpu-arm.c:192 cpu-arm.c:204 +#: dwarf2.c:1970 #, c-format -msgid "error: %B is compiled for the EP9312, whereas %B is compiled for XScale" +msgid "DWARF error: unknown format content type %" msgstr "" -#: cpu-arm.c:338 +#: dwarf2.c:2050 #, c-format -msgid "warning: unable to update contents of %s section in %B" +msgid "DWARF error: line info section is too small (%)" msgstr "" -#: dwarf2.c:546 +#: dwarf2.c:2080 #, c-format -msgid "Dwarf Error: Can't find %s section." +msgid "" +"DWARF error: line info data is bigger (%#) than the space remaining " +"in the section (%#lx)" msgstr "" -#: dwarf2.c:576 +#: dwarf2.c:2093 #, c-format -msgid "Dwarf Error: Offset (%llu) greater than or equal to %s size (%Lu)." +msgid "DWARF error: unhandled .debug_line version %d" msgstr "" -#: dwarf2.c:1093 -msgid "Dwarf Error: Info pointer extends beyond end of attributes" +#: dwarf2.c:2103 +msgid "DWARF error: ran out of room reading prologue" msgstr "" -#: dwarf2.c:1265 +#: dwarf2.c:2121 #, c-format -msgid "Dwarf Error: Invalid or unhandled FORM value: %#x." +msgid "DWARF error: line info unsupported segment selector size %u" msgstr "" -#: dwarf2.c:1572 -msgid "Dwarf Error: mangled line number section (bad file number)." +#: dwarf2.c:2148 +msgid "DWARF error: invalid maximum operations per instruction" msgstr "" -#: dwarf2.c:1946 -#, c-format -msgid "Dwarf Error: Unknown format content type %Lu." +#: dwarf2.c:2167 +msgid "DWARF error: ran out of room reading opcodes" msgstr "" -#: dwarf2.c:2050 -#, c-format -msgid "Dwarf Error: Line info section is too small (%Ld)" +#: dwarf2.c:2340 +msgid "DWARF error: mangled line number section" msgstr "" -#: dwarf2.c:2080 -#, c-format -msgid "Dwarf Error: Line info data is bigger (%#Lx) than the section (%#Lx)" +#: dwarf2.c:2843 dwarf2.c:2904 +msgid "DWARF error: invalid abstract instance DIE ref" msgstr "" -#: dwarf2.c:2092 +#: dwarf2.c:2880 #, c-format -msgid "Dwarf Error: Unhandled .debug_line version %d." +msgid "DWARF error: unable to read alt ref %" msgstr "" -#: dwarf2.c:2102 -msgid "Dwarf Error: Ran out of room reading prologue" -msgstr "" - -#: dwarf2.c:2120 -#, c-format -msgid "Dwarf Error: Line info unsupported segment selector size %u." -msgstr "" - -#: dwarf2.c:2147 -msgid "Dwarf Error: Invalid maximum operations per instruction." -msgstr "" - -#: dwarf2.c:2166 -msgid "Dwarf Error: Ran out of room reading opcodes" -msgstr "" - -#: dwarf2.c:2351 -msgid "Dwarf Error: mangled line number section." -msgstr "" - -#: dwarf2.c:2857 +#: dwarf2.c:2921 dwarf2.c:3094 dwarf2.c:3448 #, c-format -msgid "Dwarf Error: Unable to read alt ref %llu." +msgid "DWARF error: could not find abbrev number %u" msgstr "" -#: dwarf2.c:2883 dwarf2.c:3033 dwarf2.c:3380 -#, c-format -msgid "Dwarf Error: Could not find abbrev number %u." +#: dwarf2.c:2938 +msgid "DWARF error: abstract instance recursion detected" msgstr "" -#: dwarf2.c:3299 +#: dwarf2.c:3367 #, c-format msgid "" -"Dwarf Error: found dwarf version '%u', this reader only handles version 2, " -"3, 4 and 5 information." +"DWARF error: found dwarf version '%u', this reader only handles version 2, " +"3, 4 and 5 information" msgstr "" -#: dwarf2.c:3343 +#: dwarf2.c:3411 #, c-format msgid "" -"Dwarf Error: found address size '%u', this reader can not handle sizes " -"greater than '%u'." +"DWARF error: found address size '%u', this reader can not handle sizes " +"greater than '%u'" msgstr "" -#: dwarf2.c:3446 +#: dwarf2.c:3514 msgid "" -"Dwarf Error: DW_AT_comp_dir attribute encountered with a non-string form." +"DWARF error: DW_AT_comp_dir attribute encountered with a non-string form" msgstr "" -#: ecoff.c:964 +#: ecoff.c:971 #, c-format -msgid "%B: warning: isymMax (%ld) is greater than ifdMax (%ld)" +msgid "%pB: warning: isymMax (%ld) is greater than ifdMax (%ld)" msgstr "" -#: ecoff.c:1261 +#: ecoff.c:1268 #, c-format -msgid "Unknown basic type %d" +msgid "unknown basic type %d" msgstr "" -#: ecoff.c:1518 +#: ecoff.c:1525 #, c-format msgid "" "\n" " End+1 symbol: %ld" msgstr "" -#: ecoff.c:1525 ecoff.c:1528 +#: ecoff.c:1532 ecoff.c:1535 #, c-format msgid "" "\n" " First symbol: %ld" msgstr "" -#: ecoff.c:1541 +#: ecoff.c:1548 #, c-format msgid "" "\n" " End+1 symbol: %-7ld Type: %s" msgstr "" -#: ecoff.c:1548 +#: ecoff.c:1555 #, c-format msgid "" "\n" " Local symbol: %ld" msgstr "" -#: ecoff.c:1556 +#: ecoff.c:1563 #, c-format msgid "" "\n" " struct; End+1 symbol: %ld" msgstr "" -#: ecoff.c:1561 +#: ecoff.c:1568 #, c-format msgid "" "\n" " union; End+1 symbol: %ld" msgstr "" -#: ecoff.c:1566 +#: ecoff.c:1573 #, c-format msgid "" "\n" " enum; End+1 symbol: %ld" msgstr "" -#: ecoff.c:1572 +#: ecoff.c:1579 #, c-format msgid "" "\n" " Type: %s" msgstr "" -#: elf-attrs.c:473 -msgid "%B: error: attribute section length too small: %ld" +#: elf-attrs.c:444 +#, c-format +msgid "%pB: error: attribute section '%pA' too big: %#llx" msgstr "" -#: elf-attrs.c:601 +#: elf-attrs.c:485 +#, c-format +msgid "%pB: error: attribute section length too small: %" +msgstr "" + +#: elf-attrs.c:613 #, c-format msgid "" -"error: %B: Object has vendor-specific contents that must be processed by the " -"'%s' toolchain" +"error: %pB: object has vendor-specific contents that must be processed by " +"the '%s' toolchain" msgstr "" -#: elf-attrs.c:611 +#: elf-attrs.c:623 #, c-format -msgid "error: %B: Object tag '%d, %s' is incompatible with tag '%d, %s'" +msgid "error: %pB: object tag '%d, %s' is incompatible with tag '%d, %s'" msgstr "" -#: elf-eh-frame.c:946 +#: elf-eh-frame.c:942 #, c-format -msgid "discarding zero address range FDE in %B(%A).\n" +msgid "discarding zero address range FDE in %pB(%pA).\n" msgstr "" -#: elf-eh-frame.c:1051 +#: elf-eh-frame.c:1047 #, c-format -msgid "%P: error in %B(%A); no .eh_frame_hdr table will be created.\n" +msgid "error in %pB(%pA); no .eh_frame_hdr table will be created" msgstr "" -#: elf-eh-frame.c:1541 +#: elf-eh-frame.c:1537 #, c-format -msgid "" -"%P: FDE encoding in %B(%A) prevents .eh_frame_hdr table being created.\n" +msgid "FDE encoding in %pB(%pA) prevents .eh_frame_hdr table being created" msgstr "" -#: elf-eh-frame.c:1548 +#: elf-eh-frame.c:1544 msgid "" -"%P: Further warnings about FDE encoding preventing .eh_frame_hdr generation " -"dropped.\n" +"further warnings about FDE encoding preventing .eh_frame_hdr generation " +"dropped" msgstr "" -#: elf-eh-frame.c:1870 +#: elf-eh-frame.c:1866 #, c-format -msgid "%B: %A not in order" +msgid "%pB: %pA not in order" msgstr "" -#: elf-eh-frame.c:1884 +#: elf-eh-frame.c:1880 #, c-format -msgid "%B: %A invalid input section size" +msgid "%pB: %pA invalid input section size" msgstr "" -#: elf-eh-frame.c:1892 +#: elf-eh-frame.c:1888 #, c-format -msgid "%B: %A points past end of text section" +msgid "%pB: %pA points past end of text section" msgstr "" -#: elf-eh-frame.c:2141 -msgid "%P: DW_EH_PE_datarel unspecified for this architecture.\n" +#: elf-eh-frame.c:2137 +msgid "DW_EH_PE_datarel unspecified for this architecture" msgstr "" -#: elf-eh-frame.c:2311 +#: elf-eh-frame.c:2307 #, c-format -msgid "Invalid output section for .eh_frame_entry: %A" +msgid "invalid output section for .eh_frame_entry: %pA" msgstr "" -#: elf-eh-frame.c:2334 +#: elf-eh-frame.c:2330 #, c-format -msgid "Invalid contents in %A section" +msgid "invalid contents in %pA section" msgstr "" -#: elf-eh-frame.c:2490 -msgid "%P: .eh_frame_hdr entry overflow.\n" +#: elf-eh-frame.c:2486 +msgid ".eh_frame_hdr entry overflow" msgstr "" -#: elf-eh-frame.c:2493 -msgid "%P: .eh_frame_hdr refers to overlapping FDEs.\n" +#: elf-eh-frame.c:2488 +msgid ".eh_frame_hdr refers to overlapping FDEs" msgstr "" -#: elf-ifunc.c:142 +#: elf-ifunc.c:149 #, c-format msgid "" -"%F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%B' can " +"%F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%pB' can " "not be used when making an executable; recompile with -fPIE and relink with -" "pie\n" msgstr "" -#: elf-m10200.c:425 elf-m10300.c:2149 elf32-avr.c:1502 elf32-bfin.c:3193 -#: elf32-cr16.c:1466 elf32-cr16c.c:780 elf32-cris.c:2025 elf32-crx.c:924 -#: elf32-d10v.c:513 elf32-epiphany.c:563 elf32-fr30.c:591 elf32-frv.c:4041 -#: elf32-ft32.c:334 elf32-h8300.c:522 elf32-i860.c:1210 elf32-ip2k.c:1475 -#: elf32-iq2000.c:693 elf32-lm32.c:1126 elf32-m32c.c:621 elf32-m32r.c:3045 -#: elf32-m68hc1x.c:1269 elf32-mep.c:524 elf32-metag.c:2000 -#: elf32-microblaze.c:1570 elf32-moxie.c:285 elf32-mt.c:400 elf32-nds32.c:5402 -#: elf32-or1k.c:1258 elf32-score.c:2731 elf32-score7.c:2540 elf32-spu.c:5076 -#: elf32-tilepro.c:3657 elf32-v850.c:2287 elf32-visium.c:677 -#: elf32-xstormy16.c:927 elf64-mmix.c:1538 elfxx-tilegx.c:4044 -#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2267 +#: elf-m10200.c:434 elf-m10300.c:2147 elf32-avr.c:1505 elf32-bfin.c:3127 +#: elf32-cr16.c:1464 elf32-cr16c.c:783 elf32-cris.c:2033 elf32-crx.c:925 +#: elf32-d10v.c:512 elf32-epiphany.c:566 elf32-fr30.c:594 elf32-frv.c:4049 +#: elf32-ft32.c:494 elf32-h8300.c:523 elf32-ip2k.c:1482 elf32-iq2000.c:693 +#: elf32-lm32.c:1112 elf32-m32c.c:624 elf32-m32r.c:3045 elf32-m68hc1x.c:1266 +#: elf32-mep.c:526 elf32-metag.c:1990 elf32-microblaze.c:1631 elf32-moxie.c:288 +#: elf32-mt.c:402 elf32-nds32.c:5300 elf32-or1k.c:1242 elf32-score.c:2733 +#: elf32-score7.c:2542 elf32-spu.c:5078 elf32-tilepro.c:3506 elf32-v850.c:2291 +#: elf32-visium.c:681 elf32-xstormy16.c:931 elf64-mmix.c:1541 +#: elfxx-tilegx.c:3870 msgid "internal error: out of range error" msgstr "" -#: elf-m10200.c:429 elf-m10300.c:2153 elf32-avr.c:1506 elf32-bfin.c:3197 -#: elf32-cr16.c:1470 elf32-cr16c.c:784 elf32-cris.c:2029 elf32-crx.c:928 -#: elf32-d10v.c:517 elf32-fr30.c:595 elf32-frv.c:4045 elf32-ft32.c:338 -#: elf32-h8300.c:526 elf32-i860.c:1214 elf32-iq2000.c:697 elf32-lm32.c:1130 -#: elf32-m32c.c:625 elf32-m32r.c:3049 elf32-m68hc1x.c:1273 elf32-mep.c:528 -#: elf32-metag.c:2004 elf32-microblaze.c:1574 elf32-moxie.c:289 -#: elf32-msp430.c:1361 elf32-nds32.c:5406 elf32-or1k.c:1262 elf32-score.c:2735 -#: elf32-score7.c:2544 elf32-spu.c:5080 elf32-tilepro.c:3661 elf32-v850.c:2291 -#: elf32-visium.c:681 elf32-xstormy16.c:931 elf64-mmix.c:1542 -#: elfxx-mips.c:10258 elfxx-tilegx.c:4048 -#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2271 +#: elf-m10200.c:438 elf-m10300.c:2151 elf32-avr.c:1509 elf32-bfin.c:3131 +#: elf32-cr16.c:1468 elf32-cr16c.c:787 elf32-cris.c:2037 elf32-crx.c:929 +#: elf32-d10v.c:516 elf32-fr30.c:598 elf32-frv.c:4053 elf32-ft32.c:498 +#: elf32-h8300.c:527 elf32-iq2000.c:697 elf32-lm32.c:1116 elf32-m32c.c:628 +#: elf32-m32r.c:3049 elf32-m68hc1x.c:1270 elf32-mep.c:530 elf32-metag.c:1994 +#: elf32-microblaze.c:1635 elf32-moxie.c:292 elf32-msp430.c:1362 +#: elf32-nds32.c:5304 elf32-or1k.c:1246 elf32-score.c:2737 elf32-score7.c:2546 +#: elf32-spu.c:5082 elf32-tilepro.c:3510 elf32-v850.c:2295 elf32-visium.c:685 +#: elf32-xstormy16.c:935 elf64-mmix.c:1545 elfxx-mips.c:10283 +#: elfxx-tilegx.c:3874 msgid "internal error: unsupported relocation error" msgstr "" -#: elf-m10200.c:433 elf32-cr16.c:1474 elf32-cr16c.c:788 elf32-crx.c:932 -#: elf32-d10v.c:521 elf32-h8300.c:530 elf32-lm32.c:1134 elf32-m32r.c:3053 -#: elf32-m68hc1x.c:1277 elf32-microblaze.c:1578 elf32-nds32.c:5410 -#: elf32-score.c:2739 elf32-score7.c:2548 elf32-spu.c:5084 +#: elf-m10200.c:442 elf32-cr16.c:1472 elf32-cr16c.c:791 elf32-crx.c:933 +#: elf32-d10v.c:520 elf32-h8300.c:531 elf32-lm32.c:1120 elf32-m32r.c:3053 +#: elf32-m68hc1x.c:1274 elf32-microblaze.c:1639 elf32-nds32.c:5308 +#: elf32-score.c:2741 elf32-score7.c:2550 elf32-spu.c:5086 msgid "internal error: dangerous error" msgstr "" -#: elf-m10200.c:437 elf-m10300.c:2170 elf32-avr.c:1514 elf32-bfin.c:3205 -#: elf32-cr16.c:1478 elf32-cr16c.c:792 elf32-cris.c:2037 elf32-crx.c:936 -#: elf32-d10v.c:525 elf32-epiphany.c:578 elf32-fr30.c:603 elf32-frv.c:4053 -#: elf32-ft32.c:346 elf32-h8300.c:534 elf32-i860.c:1222 elf32-ip2k.c:1490 -#: elf32-iq2000.c:705 elf32-lm32.c:1138 elf32-m32c.c:633 elf32-m32r.c:3057 -#: elf32-m68hc1x.c:1281 elf32-mep.c:536 elf32-metag.c:2012 -#: elf32-microblaze.c:1582 elf32-moxie.c:297 elf32-msp430.c:1369 elf32-mt.c:408 -#: elf32-nds32.c:5414 elf32-or1k.c:1270 elf32-score.c:2748 elf32-score7.c:2552 -#: elf32-spu.c:5088 elf32-tilepro.c:3669 elf32-v850.c:2311 elf32-visium.c:689 -#: elf32-xstormy16.c:939 elf64-mmix.c:1550 elfxx-tilegx.c:4056 -#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2279 +#: elf-m10200.c:446 elf-m10300.c:2168 elf32-avr.c:1517 elf32-bfin.c:3139 +#: elf32-cr16.c:1476 elf32-cr16c.c:795 elf32-cris.c:2045 elf32-crx.c:937 +#: elf32-d10v.c:524 elf32-epiphany.c:581 elf32-fr30.c:606 elf32-frv.c:4061 +#: elf32-ft32.c:506 elf32-h8300.c:535 elf32-ip2k.c:1497 elf32-iq2000.c:705 +#: elf32-lm32.c:1124 elf32-m32c.c:636 elf32-m32r.c:3057 elf32-m68hc1x.c:1278 +#: elf32-mep.c:538 elf32-metag.c:2002 elf32-microblaze.c:1643 elf32-moxie.c:300 +#: elf32-msp430.c:1370 elf32-mt.c:410 elf32-nds32.c:5312 elf32-or1k.c:1254 +#: elf32-score.c:2750 elf32-score7.c:2554 elf32-spu.c:5090 elf32-tilepro.c:3518 +#: elf32-v850.c:2315 elf32-visium.c:693 elf32-xstormy16.c:943 elf64-mmix.c:1553 +#: elfxx-tilegx.c:3882 msgid "internal error: unknown error" msgstr "" -#: elf-m10300.c:812 +#: elf-m10300.c:1029 #, c-format -msgid "%B: unrecognised MN10300 reloc number: %d" +msgid "%pB: unsupported transition from %s to %s" msgstr "" -#: elf-m10300.c:1028 +#: elf-m10300.c:1198 #, c-format -msgid "%B: Unsupported transition from %s to %s" +msgid "%pB: %s' accessed both as normal and thread local symbol" msgstr "" -#: elf-m10300.c:1201 +#: elf-m10300.c:2094 elf32-arm.c:13234 elf32-i386.c:3410 elf32-m32r.c:2539 +#: elf32-m68k.c:3899 elf32-s390.c:3208 elf32-sh.c:3796 elf32-tilepro.c:3409 +#: elf32-xtensa.c:2952 elf64-s390.c:3125 elf64-x86-64.c:3843 elfxx-sparc.c:3908 +#: elfxx-tilegx.c:3793 /work/sources/binutils/current/bfd/elfnn-aarch64.c:5258 +#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6738 +#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2249 #, c-format -msgid "%B: %s' accessed both as normal and thread local symbol" +msgid "%pB(%pA+%#): unresolvable %s relocation against symbol `%s'" msgstr "" -#: elf-m10300.c:2097 elf32-arm.c:12530 elf32-i386.c:5344 elf32-m32r.c:2540 -#: elf32-m68k.c:4083 elf32-s390.c:3372 elf32-sh.c:4127 elf32-tilepro.c:3561 -#: elf32-xtensa.c:3074 elf64-s390.c:3296 elf64-sh64.c:1636 elf64-x86-64.c:5712 -#: elfxx-sparc.c:4086 elfxx-tilegx.c:3968 -#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6431 -#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2236 -#, c-format -msgid "%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'" -msgstr "" - -#: elf-m10300.c:2158 +#: elf-m10300.c:2156 msgid "" "error: inappropriate relocation type for shared library (did you forget -" "fpic?)" msgstr "" -#: elf-m10300.c:2162 +#: elf-m10300.c:2160 #, c-format msgid "" -"%B: taking the address of protected function '%s' cannot be done when making " -"a shared library" +"%pB: taking the address of protected function '%s' cannot be done when " +"making a shared library" msgstr "" -#: elf-m10300.c:2165 +#: elf-m10300.c:2163 msgid "internal error: suspicious relocation type used in shared library" msgstr "" +#: elf-m10300.c:2649 elf32-avr.c:2487 elf32-frv.c:5641 elf64-ia64-vms.c:364 +#: elfxx-sparc.c:2797 reloc.c:8116 reloc16.c:155 elf32-ia64.c:362 +#: elf64-ia64.c:362 +msgid "%P%F: --relax and -r may not be used together\n" +msgstr "" + #: elf-properties.c:65 -msgid "%B: out of memory in _bfd_elf_get_property" +#, c-format +msgid "%pB: out of memory in _bfd_elf_get_property" msgstr "" #: elf-properties.c:91 -msgid "warning: %B: corrupt GNU_PROPERTY_TYPE (%ld) size: %#lx" +#, c-format +msgid "warning: %pB: corrupt GNU_PROPERTY_TYPE (%ld) size: %#lx" msgstr "" -#: elf-properties.c:107 -msgid "warning: %B: corrupt GNU_PROPERTY_TYPE (%ld) type (0x%x) datasz: 0x%x" +#: elf-properties.c:112 +#, c-format +msgid "warning: %pB: corrupt GNU_PROPERTY_TYPE (%ld) type (0x%x) datasz: 0x%x" msgstr "" -#: elf-properties.c:146 -msgid "warning: %B: corrupt stack size: 0x%x" +#: elf-properties.c:151 +#, c-format +msgid "warning: %pB: corrupt stack size: 0x%x" msgstr "" -#: elf-properties.c:164 -msgid "warning: %B: corrupt no copy on protected size: 0x%x" +#: elf-properties.c:169 +#, c-format +msgid "warning: %pB: corrupt no copy on protected size: 0x%x" msgstr "" -#: elf-properties.c:180 -msgid "warning: %B: unsupported GNU_PROPERTY_TYPE (%ld) type: 0x%x" +#: elf-properties.c:186 +#, c-format +msgid "warning: %pB: unsupported GNU_PROPERTY_TYPE (%ld) type: 0x%x" msgstr "" #. PR 17512: file: f057ec89. -#: elf.c:342 +#: elf.c:344 #, c-format -msgid "%B: attempt to load strings from a non-string section (number %d)" +msgid "%pB: attempt to load strings from a non-string section (number %d)" msgstr "" -#: elf.c:357 +#: elf.c:359 #, c-format -msgid "%B: invalid string offset %u >= %Lu for section `%s'" +msgid "%pB: invalid string offset %u >= % for section `%s'" msgstr "" -#: elf.c:496 /work/sources/binutils/current/bfd/elfnn-aarch64.c:7650 +#: elf.c:498 /work/sources/binutils/current/bfd/elfnn-aarch64.c:7826 #, c-format -msgid "%B symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section" +msgid "%pB symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section" msgstr "" -#: elf.c:660 +#: elf.c:663 #, c-format -msgid "%B: corrupt size field in group section header: %#Lx" +msgid "%pB: corrupt size field in group section header: %#" msgstr "" -#: elf.c:675 +#: elf.c:679 #, c-format -msgid "%B: invalid size field in group section header: %#Lx" +msgid "%pB: invalid size field in group section header: %#" msgstr "" -#: elf.c:711 -msgid "%B: invalid SHT_GROUP entry" +#: elf.c:727 +#, c-format +msgid "%pB: invalid entry in SHT_GROUP section [%u]" msgstr "" -#: elf.c:730 -msgid "%B: no valid group sections found" +#: elf.c:746 +#, c-format +msgid "%pB: no valid group sections found" msgstr "" #. See PR 21957 for a reproducer. -#: elf.c:755 +#: elf.c:775 #, c-format -msgid "%B: group section '%A' has no contents" +msgid "%pB: group section '%pA' has no contents" msgstr "" -#: elf.c:814 +#: elf.c:836 #, c-format -msgid "%B: no group info for section '%A'" +msgid "%pB: no group info for section '%pA'" msgstr "" -#: elf.c:845 elf.c:3836 elflink.c:11160 +#: elf.c:867 elf.c:3881 elflink.c:11375 #, c-format -msgid "%B: warning: sh_link not set for section `%A'" +msgid "%pB: warning: sh_link not set for section `%pA'" msgstr "" -#: elf.c:865 +#: elf.c:887 #, c-format -msgid "%B: sh_link [%d] in section `%A' is incorrect" +msgid "%pB: sh_link [%d] in section `%pA' is incorrect" msgstr "" -#: elf.c:878 +#: elf.c:900 #, c-format -msgid "%B: SHT_GROUP section [index %d] has no SHF_GROUP sections" +msgid "%pB: SHT_GROUP section [index %d] has no SHF_GROUP sections" msgstr "" -#: elf.c:899 +#: elf.c:921 #, c-format -msgid "%B: section group entry number %u is corrupt" +msgid "%pB: section group entry number %u is corrupt" msgstr "" -#: elf.c:929 +#: elf.c:944 #, c-format -msgid "%B: unknown type [%#x] section `%s' in group [%A]" +msgid "%pB: unknown type [%#x] section `%s' in group [%pA]" msgstr "" -#: elf.c:1390 +#: elf.c:1406 #, c-format -msgid "%B: Invalid sh_link field (%d) in section number %d" +msgid "%pB: invalid sh_link field (%d) in section number %d" msgstr "" -#: elf.c:1406 +#: elf.c:1422 #, c-format -msgid "%B: Failed to find link section for section %d" +msgid "%pB: failed to find link section for section %d" msgstr "" -#: elf.c:1433 +#: elf.c:1449 #, c-format -msgid "%B: Failed to find info section for section %d" +msgid "%pB: failed to find info section for section %d" msgstr "" -#: elf.c:1605 +#: elf.c:1621 #, c-format msgid "" "\n" "Program Header:\n" msgstr "" -#: elf.c:1647 +#: elf.c:1663 #, c-format msgid "" "\n" "Dynamic Section:\n" msgstr "" -#: elf.c:1788 +#: elf.c:1804 #, c-format msgid "" "\n" "Version definitions:\n" msgstr "" -#: elf.c:1813 +#: elf.c:1829 #, c-format msgid "" "\n" "Version References:\n" msgstr "" -#: elf.c:1818 +#: elf.c:1834 #, c-format msgid " required from %s:\n" msgstr "" -#: elf.c:2016 -msgid "%B: warning: loop in section dependencies detected" +#: elf.c:2035 +#, c-format +msgid "%pB: warning: loop in section dependencies detected" msgstr "" -#: elf.c:2124 +#: elf.c:2143 #, c-format msgid "" -"%B: warning: multiple symbol tables detected - ignoring the table in section " -"%u" +"%pB: warning: multiple symbol tables detected - ignoring the table in " +"section %u" msgstr "" -#: elf.c:2208 +#: elf.c:2227 #, c-format msgid "" -"%B: warning: multiple dynamic symbol tables detected - ignoring the table in " -"section %u" +"%pB: warning: multiple dynamic symbol tables detected - ignoring the table " +"in section %u" msgstr "" -#: elf.c:2321 +#: elf.c:2340 #, c-format -msgid "%B: invalid link %u for reloc section %s (index %u)" +msgid "%pB: invalid link %u for reloc section %s (index %u)" msgstr "" -#: elf.c:2480 elf.c:2495 elf.c:2506 elf.c:2519 +#: elf.c:2499 elf.c:2514 elf.c:2525 elf.c:2538 #, c-format -msgid "%B: unknown type [%#x] section `%s'" +msgid "%pB: unknown type [%#x] section `%s'" msgstr "" -#: elf.c:3223 +#: elf.c:3243 #, c-format -msgid "%B: error: Alignment power %d of section `%A' is too big" +msgid "%pB: error: alignment power %d of section `%pA' is too big" msgstr "" -#: elf.c:3253 +#: elf.c:3273 #, c-format -msgid "warning: section `%A' type changed to PROGBITS" +msgid "warning: section `%pA' type changed to PROGBITS" msgstr "" -#: elf.c:3704 +#: elf.c:3749 #, c-format -msgid "%B: too many sections: %u" +msgid "%pB: too many sections: %u" msgstr "" -#: elf.c:3789 +#: elf.c:3834 #, c-format -msgid "%B: sh_link of section `%A' points to discarded section `%A' of `%B'" +msgid "" +"%pB: sh_link of section `%pA' points to discarded section `%pA' of `%pB'" msgstr "" -#: elf.c:3814 +#: elf.c:3859 #, c-format -msgid "%B: sh_link of section `%A' points to removed section `%A' of `%B'" +msgid "%pB: sh_link of section `%pA' points to removed section `%pA' of `%pB'" msgstr "" -#: elf.c:4366 +#: elf.c:4418 #, c-format -msgid "%B: GNU_MBIN section `%A' has invalid sh_info field: %d" +msgid "%pB: GNU_MBIN section `%pA' has invalid sh_info field: %d" msgstr "" -#: elf.c:4908 -msgid "%B: TLS sections are not adjacent:" +#: elf.c:4964 +#, c-format +msgid "%pB: TLS sections are not adjacent:" msgstr "" -#: elf.c:4915 +#: elf.c:4971 #, c-format -msgid "\t TLS: %A" +msgid "\t TLS: %pA" msgstr "" -#: elf.c:4919 +#: elf.c:4975 #, c-format -msgid "\tnon-TLS: %A" +msgid "\tnon-TLS: %pA" msgstr "" -#: elf.c:5415 +#: elf.c:5471 +#, c-format msgid "" -"%B: The first section in the PT_DYNAMIC segment is not the .dynamic section" +"%pB: The first section in the PT_DYNAMIC segment is not the .dynamic section" msgstr "" -#: elf.c:5443 -msgid "%B: Not enough room for program headers, try linking with -N" +#: elf.c:5499 +#, c-format +msgid "%pB: not enough room for program headers, try linking with -N" msgstr "" -#: elf.c:5531 +#: elf.c:5587 #, c-format -msgid "%B: section %A lma %#Lx adjusted to %#Lx" +msgid "%pB: section %pA lma %# adjusted to %#" msgstr "" -#: elf.c:5668 +#: elf.c:5724 #, c-format -msgid "%B: section `%A' can't be allocated in segment %d" +msgid "%pB: section `%pA' can't be allocated in segment %d" msgstr "" -#: elf.c:5716 +#: elf.c:5772 #, c-format -msgid "%B: warning: allocated section `%s' not in segment" +msgid "%pB: warning: allocated section `%s' not in segment" msgstr "" -#: elf.c:5914 +#: elf.c:6005 +#, c-format msgid "" -"%B: error: non-load segment %d includes file header and/or program header" +"%pB: error: non-load segment %d includes file header and/or program header" msgstr "" #. The fix for this error is usually to edit the linker script being #. used and set up the program headers manually. Either that or #. leave room for the headers at the start of the SECTIONS. -#: elf.c:6091 -msgid "%B: error: PHDR segment not covered by LOAD segment" +#: elf.c:6182 +#, c-format +msgid "%pB: error: PHDR segment not covered by LOAD segment" msgstr "" -#: elf.c:6435 +#: elf.c:6527 #, c-format -msgid "%B: symbol `%s' required but not present" +msgid "%pB: symbol `%s' required but not present" msgstr "" -#: elf.c:6778 +#: elf.c:6869 #, c-format msgid "" -"%B: warning: Empty loadable segment detected at vaddr=%#Lx, is this " +"%pB: warning: empty loadable segment detected at vaddr=%#, is this " "intentional?" msgstr "" -#: elf.c:7392 +#: elf.c:7472 #, c-format -msgid "%B: warning: segment alignment of %#Lx is too large" +msgid "%pB: warning: segment alignment of %# is too large" msgstr "" -#: elf.c:7873 +#: elf.c:7971 #, c-format msgid "" -"Unable to find equivalent output section for symbol '%s' from section '%s'" -msgstr "" - -#: elf.c:8205 -msgid "%B: .gnu.version_r invalid entry" +"unable to find equivalent output section for symbol '%s' from section '%s'" msgstr "" -#: elf.c:8332 -msgid "%B: .gnu.version_d invalid entry" +#: elf.c:8304 +#, c-format +msgid "%pB: .gnu.version_r invalid entry" msgstr "" -#: elf.c:8884 +#: elf.c:8431 #, c-format -msgid "%B: unsupported relocation type %s" +msgid "%pB: .gnu.version_d invalid entry" msgstr "" -#: elf32-arc.c:433 elf32-frv.c:6626 elf32-iq2000.c:870 elf32-m32c.c:915 -#: elf32-mt.c:564 elf32-rl78.c:1256 elf32-rx.c:3177 elf32-visium.c:837 -#: elf64-ppc.c:6087 +#: elf32-arc.c:442 elf32-frv.c:6630 elf32-iq2000.c:870 elf32-m32c.c:914 +#: elf32-mt.c:562 elf32-rl78.c:1261 elf32-rx.c:3200 elf32-visium.c:841 +#: elf64-ppc.c:6198 #, c-format msgid "private flags = 0x%lx:" msgstr "" -#: elf32-arc.c:611 -msgid "Warning: %B: Conflicting platform configuration %s with %s.\n" +#: elf32-arc.c:629 +#, c-format +msgid "warning: %pB: conflicting platform configuration %s with %s" msgstr "" -#: elf32-arc.c:630 -msgid "error: %B: unable to merge CPU base attributes %s with %s.\n" +#: elf32-arc.c:648 +#, c-format +msgid "error: %pB: unable to merge CPU base attributes %s with %s" msgstr "" -#: elf32-arc.c:667 -msgid "error: %B: unable to merge ISA extension attributes %s.\n" +#: elf32-arc.c:685 +#, c-format +msgid "error: %pB: unable to merge ISA extension attributes %s" msgstr "" -#: elf32-arc.c:691 -msgid "error: %B: conflicting ISA extension attributes %s with %s.\n" +#: elf32-arc.c:709 +#, c-format +msgid "error: %pB: conflicting ISA extension attributes %s with %s" msgstr "" -#: elf32-arc.c:726 -msgid "error: %B: cannot mix rf16 with full register set %B.\n" +#: elf32-arc.c:744 +#, c-format +msgid "error: %pB: cannot mix rf16 with full register set %pB" msgstr "" -#: elf32-arc.c:752 -msgid "error: %B: conflicting attributes %s: %s with %s.\n" +#: elf32-arc.c:770 +#, c-format +msgid "error: %pB: conflicting attributes %s: %s with %s" msgstr "" -#: elf32-arc.c:777 -msgid "error: %B: conflicting attributes %s.\n" +#: elf32-arc.c:795 +#, c-format +msgid "error: %pB: conflicting attributes %s" msgstr "" -#: elf32-arc.c:877 +#: elf32-arc.c:895 #, c-format -msgid "ERROR: Attempting to link %B with a binary %B of different architecture" +msgid "" +"error: attempting to link %pB with a binary %pB of different architecture" msgstr "" -#: elf32-arc.c:891 elf32-i370.c:359 elf32-iq2000.c:846 elf32-m32c.c:890 -#: elf32-m68hc1x.c:1388 elf32-ppc.c:4909 elf64-sparc.c:727 elfxx-mips.c:15127 +#: elf32-arc.c:909 elf32-iq2000.c:846 elf32-m32c.c:889 elf32-m68hc1x.c:1385 +#: elf32-ppc.c:4962 elf64-sparc.c:726 elfxx-mips.c:15135 #, c-format -msgid "%B: uses different e_flags (%#x) fields than previous modules (%#x)" +msgid "%pB: uses different e_flags (%#x) fields than previous modules (%#x)" msgstr "" -#: elf32-arc.c:980 -msgid "Error: The ARC4 architecture is no longer supported.\n" +#: elf32-arc.c:998 +msgid "error: the ARC4 architecture is no longer supported" msgstr "" -#: elf32-arc.c:986 -msgid "" -"Warning: unset or old architecture flags. \n" -"\t Use default machine.\n" +#: elf32-arc.c:1004 +msgid "warning: unset or old architecture flags; use default machine" msgstr "" -#: elf32-arc.c:1119 +#: elf32-arc.c:1137 #, c-format msgid "" -"%B(%A+%#Lx): CMEM relocation to `%s' is invalid, 16 MSB should be %#x (value " -"is %#Lx)" +"%pB(%pA+%#): CMEM relocation to `%s' is invalid, 16 MSB should be " +"%#x (value is %#)" msgstr "" -#: elf32-arc.c:1130 +#: elf32-arc.c:1148 #, c-format msgid "" -"%B(%A+%#Lx): CMEM relocation to `%s+%#Lx' is invalid, 16 MSB should be %#x " -"(value is %#Lx)" +"%pB(%pA+%#): CMEM relocation to `%s+%#' is invalid, 16 MSB " +"should be %#x (value is %#)" msgstr "" -#: elf32-arc.c:1836 -msgid "GOT and PLT relocations cannot be fixed with a non dynamic linker." +#: elf32-arc.c:1853 +msgid "GOT and PLT relocations cannot be fixed with a non dynamic linker" msgstr "" -#: elf32-arc.c:1860 elf32-rl78.c:1094 elf32-rx.c:1448 +#: elf32-arc.c:1877 elf32-rl78.c:1099 elf32-rx.c:1471 #, c-format -msgid "%B(%A): warning: unaligned access to symbol '%s' in the small data area" +msgid "" +"%pB(%pA): warning: unaligned access to symbol '%s' in the small data area" msgstr "" -#: elf32-arc.c:1865 elf32-rl78.c:1099 elf32-rx.c:1453 +#: elf32-arc.c:1882 elf32-rl78.c:1104 elf32-rx.c:1476 #, c-format -msgid "%B(%A): internal error: out of range error" +msgid "%pB(%pA): internal error: out of range error" msgstr "" -#: elf32-arc.c:1870 elf32-rl78.c:1104 elf32-rx.c:1458 +#: elf32-arc.c:1887 elf32-rl78.c:1109 elf32-rx.c:1481 #, c-format -msgid "%B(%A): internal error: unsupported relocation error" +msgid "%pB(%pA): internal error: unsupported relocation error" msgstr "" -#: elf32-arc.c:1875 elf32-rl78.c:1109 elf32-rx.c:1463 +#: elf32-arc.c:1892 elf32-rl78.c:1114 elf32-rx.c:1486 #, c-format -msgid "%B(%A): internal error: dangerous relocation" +msgid "%pB(%pA): internal error: dangerous relocation" msgstr "" -#: elf32-arc.c:1880 elf32-rl78.c:1114 elf32-rx.c:1468 +#: elf32-arc.c:1897 elf32-rl78.c:1119 elf32-rx.c:1491 #, c-format -msgid "%B(%A): internal error: unknown error" +msgid "%pB(%pA): internal error: unknown error" msgstr "" -#: elf32-arc.c:1968 elf32-arm.c:14712 elf32-metag.c:2271 elfxx-mips.c:8883 -#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:7218 -#: /work/sources/binutils/current/bfd/elfnn-riscv.c:484 +#: elf32-arc.c:1985 elf32-arm.c:15279 elf32-metag.c:2257 elfxx-mips.c:8900 +#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:7394 +#: /work/sources/binutils/current/bfd/elfnn-riscv.c:474 #, c-format msgid "" -"%B: relocation %s against `%s' can not be used when making a shared object; " +"%pB: relocation %s against `%s' can not be used when making a shared object; " "recompile with -fPIC" msgstr "" -#: elf32-arc.c:2860 -msgid "%B: Unknown mandatory ARC object attribute %d." +#: elf32-arc.c:2857 +#, c-format +msgid "%pB: unknown mandatory ARC object attribute %d" msgstr "" -#: elf32-arc.c:2868 -msgid "Warning: %B: Unknown ARC object attribute %d." +#: elf32-arc.c:2865 +#, c-format +msgid "warning: %pB: unknown ARC object attribute %d" msgstr "" -#: elf32-arm.c:4022 elf32-arm.c:4056 elf32-arm.c:4075 elf32-arm.c:4127 +#: elf32-arm.c:4303 elf32-arm.c:4337 elf32-arm.c:4356 elf32-arm.c:4408 +#, c-format msgid "" -"%B(%A): warning: long branch veneers used in section with SHF_ARM_PURECODE " +"%pB(%pA): warning: long branch veneers used in section with SHF_ARM_PURECODE " "section attribute is only supported for M-profile targets that implement the " -"movw instruction." -msgstr "" - -#: elf32-arm.c:4087 elf32-arm.c:8806 -msgid "" -"%B(%s): warning: interworking not enabled.\n" -" first occurrence: %B: Thumb call to ARM" +"movw instruction" msgstr "" -#: elf32-arm.c:4141 +#: elf32-arm.c:4368 elf32-arm.c:4422 elf32-arm.c:9091 elf32-arm.c:9181 +#, c-format msgid "" -"%B(%s): warning: interworking not enabled.\n" -" first occurrence: %B: ARM call to Thumb" +"%pB(%s): warning: interworking not enabled; first occurrence: %pB: %s call " +"to %s" msgstr "" -#: elf32-arm.c:4415 +#: elf32-arm.c:4696 #, c-format -msgid "No address assigned to the veneers output section %s" +msgid "no address assigned to the veneers output section %s" msgstr "" -#: elf32-arm.c:4490 elf32-arm.c:6627 elf32-hppa.c:587 elf32-m68hc1x.c:165 -#: elf32-metag.c:1198 elf32-nios2.c:2227 -#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:2852 +#: elf32-arm.c:4771 elf32-arm.c:6907 elf32-hppa.c:579 elf32-m68hc1x.c:165 +#: elf32-metag.c:1186 elf32-nios2.c:2208 elf64-ppc.c:4756 +#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:3099 #, c-format -msgid "%B: cannot create stub entry %s" +msgid "%pB: cannot create stub entry %s" msgstr "" -#: elf32-arm.c:5675 -msgid "%B: Special symbol `%s' only allowed for ARMv8-M architecture or later." -msgstr "" - -#: elf32-arm.c:5684 -msgid "%B: invalid special symbol `%s'." -msgstr "" - -#: elf32-arm.c:5686 elf32-arm.c:5726 -msgid "It must be a global or weak function symbol." +#: elf32-arm.c:5956 +#, c-format +msgid "%pB: special symbol `%s' only allowed for ARMv8-M architecture or later" msgstr "" -#: elf32-arm.c:5724 -msgid "%B: invalid standard symbol `%s'." +#: elf32-arm.c:5965 +#, c-format +msgid "" +"%pB: invalid special symbol `%s'; it must be a global or weak function symbol" msgstr "" -#: elf32-arm.c:5730 -msgid "%B: absent standard symbol `%s'." +#: elf32-arm.c:6004 +#, c-format +msgid "" +"%pB: invalid standard symbol `%s'; it must be a global or weak function " +"symbol" msgstr "" -#: elf32-arm.c:5742 -msgid "%B: `%s' and its special symbol are in different sections." +#: elf32-arm.c:6010 +#, c-format +msgid "%pB: absent standard symbol `%s'" msgstr "" -#: elf32-arm.c:5754 -msgid "%B: entry function `%s' not output." +#: elf32-arm.c:6022 +#, c-format +msgid "%pB: `%s' and its special symbol are in different sections" msgstr "" -#: elf32-arm.c:5761 -msgid "%B: entry function `%s' is empty." +#: elf32-arm.c:6034 +#, c-format +msgid "%pB: entry function `%s' not output" msgstr "" -#: elf32-arm.c:5890 -msgid "%B: --in-implib only supported for Secure Gateway import libraries." +#: elf32-arm.c:6041 +#, c-format +msgid "%pB: entry function `%s' is empty" msgstr "" -#: elf32-arm.c:5936 -msgid "%B: invalid import library entry: `%s'." +#: elf32-arm.c:6170 +#, c-format +msgid "%pB: --in-implib only supported for Secure Gateway import libraries" msgstr "" -#: elf32-arm.c:5938 -msgid "Symbol should be absolute, global and refer to Thumb functions." +#: elf32-arm.c:6216 +#, c-format +msgid "" +"%pB: invalid import library entry: `%s'; symbol should be absolute, global " +"and refer to Thumb functions" msgstr "" -#: elf32-arm.c:5958 +#: elf32-arm.c:6238 #, c-format -msgid "Entry function `%s' disappeared from secure code." +msgid "entry function `%s' disappeared from secure code" msgstr "" -#: elf32-arm.c:5982 +#: elf32-arm.c:6262 #, c-format -msgid "`%s' refers to a non entry function." +msgid "`%s' refers to a non entry function" msgstr "" -#: elf32-arm.c:5997 -msgid "%B: visibility of symbol `%s' has changed." +#: elf32-arm.c:6277 +#, c-format +msgid "%pB: visibility of symbol `%s' has changed" msgstr "" -#: elf32-arm.c:6006 -msgid "%B: incorrect size for symbol `%s'." +#: elf32-arm.c:6286 +#, c-format +msgid "%pB: incorrect size for symbol `%s'" msgstr "" -#: elf32-arm.c:6025 +#: elf32-arm.c:6305 #, c-format -msgid "Offset of veneer for entry function `%s' not a multiple of its size." +msgid "offset of veneer for entry function `%s' not a multiple of its size" msgstr "" -#: elf32-arm.c:6045 +#: elf32-arm.c:6325 msgid "" "new entry function(s) introduced but no output import library specified:" msgstr "" -#: elf32-arm.c:6053 +#: elf32-arm.c:6333 #, c-format -msgid "Start address of `%s' is different from previous link." +msgid "start address of `%s' is different from previous link" msgstr "" -#: elf32-arm.c:6760 +#: elf32-arm.c:7040 elf32-arm.c:7076 #, c-format -msgid "unable to find THUMB glue '%s' for '%s'" +msgid "unable to find %s glue '%s' for '%s'" msgstr "" -#: elf32-arm.c:6796 +#: elf32-arm.c:7791 #, c-format -msgid "unable to find ARM glue '%s' for '%s'" -msgstr "" - -#: elf32-arm.c:7511 -msgid "%B: BE8 images only valid in big-endian mode." +msgid "%pB: BE8 images only valid in big-endian mode" msgstr "" #. Give a warning, but do as the user requests anyway. -#: elf32-arm.c:7742 +#: elf32-arm.c:8022 +#, c-format msgid "" -"%B: warning: selected VFP11 erratum workaround is not necessary for target " +"%pB: warning: selected VFP11 erratum workaround is not necessary for target " "architecture" msgstr "" -#: elf32-arm.c:7769 +#: elf32-arm.c:8049 +#, c-format msgid "" -"%B: warning: selected STM32L4XX erratum workaround is not necessary for " +"%pB: warning: selected STM32L4XX erratum workaround is not necessary for " "target architecture" msgstr "" -#: elf32-arm.c:8306 elf32-arm.c:8326 -msgid "%B: unable to find VFP11 veneer `%s'" -msgstr "" - -#: elf32-arm.c:8392 elf32-arm.c:8411 -msgid "%B: unable to find STM32L4XX veneer `%s'" +#: elf32-arm.c:8586 elf32-arm.c:8606 elf32-arm.c:8672 elf32-arm.c:8691 +#, c-format +msgid "%pB: unable to find %s veneer `%s'" msgstr "" -#: elf32-arm.c:8618 +#: elf32-arm.c:8898 #, c-format msgid "" -"%B(%A+%#x): error: multiple load detected in non-last IT block instruction : " -"STM32L4XX veneer cannot be generated.\n" -"Use gcc option -mrestrict-it to generate only one instruction per IT block.\n" +"%pB(%pA+%#x): error: multiple load detected in non-last IT block " +"instruction: STM32L4XX veneer cannot be generated; use gcc option -mrestrict-" +"it to generate only one instruction per IT block" msgstr "" -#: elf32-arm.c:8716 +#: elf32-arm.c:8998 #, c-format -msgid "Invalid TARGET2 relocation type '%s'." +msgid "invalid TARGET2 relocation type '%s'" msgstr "" #. FIXME: We ought to be able to generate thumb-1 PLT #. instructions... -#: elf32-arm.c:9458 -msgid "%B: Warning: thumb-1 mode PLT generation not currently supported" -msgstr "" - -#: elf32-arm.c:9723 +#: elf32-arm.c:9800 #, c-format -msgid "%B(%A+%#Lx): unexpected Thumb instruction '%#lx' in TLS trampoline" +msgid "%pB: warning: thumb-1 mode PLT generation not currently supported" msgstr "" -#: elf32-arm.c:9763 +#: elf32-arm.c:10104 elf32-arm.c:10146 #, c-format -msgid "%B(%A+%#Lx): unexpected ARM instruction '%#lx' in TLS trampoline" +msgid "%pB(%pA+%#): unexpected %s instruction '%#lx' in TLS trampoline" msgstr "" -#: elf32-arm.c:10098 +#: elf32-arm.c:10490 msgid "shared object" msgstr "" -#: elf32-arm.c:10101 +#: elf32-arm.c:10493 msgid "PIE executable" msgstr "" -#: elf32-arm.c:10104 +#: elf32-arm.c:10496 +#, c-format msgid "" -"%B: relocation %s against external or undefined symbol `%s' can not be used " +"%pB: relocation %s against external or undefined symbol `%s' can not be used " "when making a %s; recompile with -fPIC" msgstr "" -#: elf32-arm.c:10235 -msgid "%B: Warning: Arm BLX instruction targets Arm function '%s'." -msgstr "" - -#: elf32-arm.c:10661 -msgid "%B: Warning: Thumb BLX instruction targets thumb function '%s'." -msgstr "" - -#: elf32-arm.c:11528 +#: elf32-arm.c:10633 elf32-arm.c:11060 #, c-format -msgid "" -"%B(%A+%#Lx): unexpected Thumb instruction '%#lx' referenced by TLS_GOTDESC" +msgid "%pB: warning: %s BLX instruction targets %s function '%s'" msgstr "" -#: elf32-arm.c:11551 +#: elf32-arm.c:11963 elf32-arm.c:11989 #, c-format msgid "" -"%B(%A+%#Lx): unexpected ARM instruction '%#lx' referenced by TLS_GOTDESC" +"%pB(%pA+%#): unexpected %s instruction '%#lx' referenced by " +"TLS_GOTDESC" msgstr "" -#: elf32-arm.c:11580 elf32-m68k.c:3890 elf32-metag.c:1931 elf32-nios2.c:4372 +#: elf32-arm.c:12035 elf32-m68k.c:3703 elf32-metag.c:1919 elf32-nios2.c:4366 #, c-format -msgid "%B(%A+%#Lx): %s relocation not permitted in shared object" +msgid "%pB(%pA+%#): %s relocation not permitted in shared object" msgstr "" -#: elf32-arm.c:11793 +#: elf32-arm.c:12249 #, c-format msgid "" -"%B(%A+%#Lx): Only ADD or SUB instructions are allowed for ALU group " +"%pB(%pA+%#): only ADD or SUB instructions are allowed for ALU group " "relocations" msgstr "" -#: elf32-arm.c:11833 elf32-arm.c:11923 elf32-arm.c:12009 elf32-arm.c:12097 +#: elf32-arm.c:12290 elf32-arm.c:12382 elf32-arm.c:12470 elf32-arm.c:12560 #, c-format -msgid "%B(%A+%#Lx): Overflow whilst splitting %#Lx for group relocation %s" +msgid "" +"%pB(%pA+%#): overflow whilst splitting %# for group " +"relocation %s" msgstr "" -#: elf32-arm.c:12363 elf32-sh.c:4009 elf64-sh64.c:1539 +#: elf32-arm.c:13066 elf32-sh.c:3685 #, c-format -msgid "%B(%A+%#Lx): %s relocation against SEC_MERGE section" +msgid "%pB(%pA+%#): %s relocation against SEC_MERGE section" msgstr "" -#: elf32-arm.c:12475 elf32-m68k.c:4119 elf32-xtensa.c:2816 -#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6159 +#: elf32-arm.c:13179 elf32-m68k.c:3936 elf32-xtensa.c:2694 +#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6466 #, c-format -msgid "%B(%A+%#Lx): %s used with TLS symbol %s" +msgid "%pB(%pA+%#): %s used with TLS symbol %s" msgstr "" -#: elf32-arm.c:12477 elf32-m68k.c:4121 elf32-xtensa.c:2818 -#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6161 +#: elf32-arm.c:13181 elf32-m68k.c:3938 elf32-xtensa.c:2696 +#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6468 #, c-format -msgid "%B(%A+%#Lx): %s used with non-TLS symbol %s" +msgid "%pB(%pA+%#): %s used with non-TLS symbol %s" msgstr "" -#: elf32-arm.c:12559 elf32-tic6x.c:2739 -#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6494 +#: elf32-arm.c:13264 elf32-tic6x.c:2708 +#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6802 msgid "out of range" msgstr "" -#: elf32-arm.c:12563 elf32-nios2.c:4505 elf32-pru.c:821 elf32-tic6x.c:2743 -#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6498 +#: elf32-arm.c:13268 elf32-nios2.c:4500 elf32-pru.c:933 elf32-tic6x.c:2712 +#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6806 msgid "unsupported relocation" msgstr "" -#: elf32-arm.c:12571 elf32-nios2.c:4515 elf32-pru.c:831 elf32-tic6x.c:2751 -#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6506 +#: elf32-arm.c:13276 elf32-nios2.c:4510 elf32-pru.c:943 elf32-tic6x.c:2720 +#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6814 msgid "unknown error" msgstr "" -#: elf32-arm.c:13151 -msgid "%B: Unknown mandatory EABI object attribute %d" +#: elf32-arm.c:13720 +#, c-format +msgid "" +"warning: not setting interworking flag of %pB since it has already been " +"specified as non-interworking" +msgstr "" + +#: elf32-arm.c:13724 +#, c-format +msgid "warning: clearing the interworking flag of %pB due to outside request" msgstr "" -#: elf32-arm.c:13159 -msgid "Warning: %B: Unknown EABI object attribute %d" +#: elf32-arm.c:13769 +#, c-format +msgid "" +"warning: clearing the interworking flag of %pB because non-interworking code " +"in %pB has been linked with it" msgstr "" -#: elf32-arm.c:13426 -msgid "error: %B: Unknown CPU architecture" +#: elf32-arm.c:13856 +#, c-format +msgid "%pB: unknown mandatory EABI object attribute %d" +msgstr "" + +#: elf32-arm.c:13864 +#, c-format +msgid "warning: %pB: unknown EABI object attribute %d" msgstr "" -#: elf32-arm.c:13464 elf32-nios2.c:2965 +#: elf32-arm.c:14131 #, c-format -msgid "error: %B: Conflicting CPU architectures %d/%d" +msgid "error: %pB: unknown CPU architecture" msgstr "" -#: elf32-arm.c:13561 +#: elf32-arm.c:14169 elf32-nios2.c:2946 +#, c-format +msgid "error: %pB: conflicting CPU architectures %d/%d" +msgstr "" + +#: elf32-arm.c:14266 +#, c-format msgid "" -"Error: %B has both the current and legacy Tag_MPextension_use attributes" +"Error: %pB has both the current and legacy Tag_MPextension_use attributes" msgstr "" -#: elf32-arm.c:13590 -msgid "error: %B uses VFP register arguments, %B does not" +#: elf32-arm.c:14295 +#, c-format +msgid "error: %pB uses VFP register arguments, %pB does not" msgstr "" -#: elf32-arm.c:13748 -msgid "error: %B: unable to merge virtualization attributes with %B" +#: elf32-arm.c:14453 +#, c-format +msgid "error: %pB: unable to merge virtualization attributes with %pB" msgstr "" -#: elf32-arm.c:13774 -msgid "error: %B: Conflicting architecture profiles %c/%c" +#: elf32-arm.c:14479 +#, c-format +msgid "error: %pB: conflicting architecture profiles %c/%c" msgstr "" -#: elf32-arm.c:13913 -msgid "Warning: %B: Conflicting platform configuration" +#: elf32-arm.c:14618 +#, c-format +msgid "warning: %pB: conflicting platform configuration" msgstr "" -#: elf32-arm.c:13922 -msgid "error: %B: Conflicting use of R9" +#: elf32-arm.c:14627 +#, c-format +msgid "error: %pB: conflicting use of R9" msgstr "" -#: elf32-arm.c:13934 -msgid "error: %B: SB relative addressing conflicts with use of R9" +#: elf32-arm.c:14639 +#, c-format +msgid "error: %pB: SB relative addressing conflicts with use of R9" msgstr "" -#: elf32-arm.c:13947 +#: elf32-arm.c:14652 +#, c-format msgid "" -"warning: %B uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; " +"warning: %pB uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; " "use of wchar_t values across objects may fail" msgstr "" -#: elf32-arm.c:13978 +#: elf32-arm.c:14683 +#, c-format msgid "" -"warning: %B uses %s enums yet the output is to use %s enums; use of enum " +"warning: %pB uses %s enums yet the output is to use %s enums; use of enum " "values across objects may fail" msgstr "" -#: elf32-arm.c:13990 -msgid "error: %B uses iWMMXt register arguments, %B does not" +#: elf32-arm.c:14695 +#, c-format +msgid "error: %pB uses iWMMXt register arguments, %pB does not" msgstr "" -#: elf32-arm.c:14007 -msgid "error: fp16 format mismatch between %B and %B" +#: elf32-arm.c:14712 +#, c-format +msgid "error: fp16 format mismatch between %pB and %pB" msgstr "" -#: elf32-arm.c:14043 -msgid "%B has both the current and legacy Tag_MPextension_use attributes" +#: elf32-arm.c:14748 +#, c-format +msgid "%pB has both the current and legacy Tag_MPextension_use attributes" msgstr "" #. Ignore init flag - it may not be set, despite the flags field @@ -1752,225 +1702,279 @@ #. Ignore init flag - it may not be set, despite the flags field containing valid data. #. Ignore init flag - it may not be set, despite the flags field #. containing valid data. -#: elf32-arm.c:14130 elf32-bfin.c:4918 elf32-cris.c:4089 elf32-m68hc1x.c:1413 -#: elf32-m68k.c:1200 elf32-score.c:4002 elf32-score7.c:3807 elf32-vax.c:536 -#: elf32-xgate.c:669 elfxx-mips.c:15801 -#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6660 +#: elf32-arm.c:14835 elf32-bfin.c:4740 elf32-cris.c:3908 elf32-m68hc1x.c:1410 +#: elf32-m68k.c:1201 elf32-score.c:4000 elf32-score7.c:3805 elf32-vax.c:537 +#: elf32-xgate.c:672 elfxx-mips.c:15813 +#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6968 #, c-format msgid "private flags = %lx:" msgstr "" -#: elf32-arm.c:14139 +#: elf32-arm.c:14844 #, c-format msgid " [interworking enabled]" msgstr "" -#: elf32-arm.c:14147 +#: elf32-arm.c:14852 #, c-format msgid " [VFP float format]" msgstr "" -#: elf32-arm.c:14149 +#: elf32-arm.c:14854 #, c-format msgid " [Maverick float format]" msgstr "" -#: elf32-arm.c:14151 +#: elf32-arm.c:14856 #, c-format msgid " [FPA float format]" msgstr "" -#: elf32-arm.c:14160 +#: elf32-arm.c:14859 +#, c-format +msgid " [floats passed in float registers]" +msgstr "" + +#: elf32-arm.c:14862 elf32-arm.c:14948 +#, c-format +msgid " [position independent]" +msgstr "" + +#: elf32-arm.c:14865 #, c-format msgid " [new ABI]" msgstr "" -#: elf32-arm.c:14163 +#: elf32-arm.c:14868 #, c-format msgid " [old ABI]" msgstr "" -#: elf32-arm.c:14166 +#: elf32-arm.c:14871 #, c-format msgid " [software FP]" msgstr "" -#: elf32-arm.c:14175 +#: elf32-arm.c:14880 #, c-format msgid " [Version1 EABI]" msgstr "" -#: elf32-arm.c:14178 elf32-arm.c:14189 +#: elf32-arm.c:14883 elf32-arm.c:14894 #, c-format msgid " [sorted symbol table]" msgstr "" -#: elf32-arm.c:14180 elf32-arm.c:14191 +#: elf32-arm.c:14885 elf32-arm.c:14896 #, c-format msgid " [unsorted symbol table]" msgstr "" -#: elf32-arm.c:14186 +#: elf32-arm.c:14891 #, c-format msgid " [Version2 EABI]" msgstr "" -#: elf32-arm.c:14194 +#: elf32-arm.c:14899 #, c-format msgid " [dynamic symbols use segment index]" msgstr "" -#: elf32-arm.c:14197 +#: elf32-arm.c:14902 #, c-format msgid " [mapping symbols precede others]" msgstr "" -#: elf32-arm.c:14204 +#: elf32-arm.c:14909 #, c-format msgid " [Version3 EABI]" msgstr "" -#: elf32-arm.c:14208 +#: elf32-arm.c:14913 #, c-format msgid " [Version4 EABI]" msgstr "" -#: elf32-arm.c:14212 +#: elf32-arm.c:14917 #, c-format msgid " [Version5 EABI]" msgstr "" -#: elf32-arm.c:14215 +#: elf32-arm.c:14920 #, c-format msgid " [soft-float ABI]" msgstr "" -#: elf32-arm.c:14218 +#: elf32-arm.c:14923 #, c-format msgid " [hard-float ABI]" msgstr "" -#: elf32-arm.c:14224 +#: elf32-arm.c:14929 #, c-format msgid " [BE8]" msgstr "" -#: elf32-arm.c:14227 +#: elf32-arm.c:14932 #, c-format msgid " [LE8]" msgstr "" -#: elf32-arm.c:14233 +#: elf32-arm.c:14938 #, c-format msgid " " msgstr "" -#: elf32-arm.c:14240 +#: elf32-arm.c:14945 #, c-format msgid " [relocatable executable]" msgstr "" -#: elf32-arm.c:14245 /work/sources/binutils/current/bfd/elfnn-aarch64.c:6663 +#: elf32-arm.c:14951 +#, c-format +msgid " [FDPIC ABI supplement]" +msgstr "" + +#: elf32-arm.c:14956 /work/sources/binutils/current/bfd/elfnn-aarch64.c:6971 #, c-format msgid "" msgstr "" -#: elf32-arm.c:14555 elf32-i386.c:2031 elf32-s390.c:956 elf32-tic6x.c:2814 -#: elf32-tilepro.c:1491 elf32-xtensa.c:1018 elf64-s390.c:875 -#: elf64-x86-64.c:2421 elfxx-sparc.c:1440 elfxx-tilegx.c:1708 -#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:7109 -#: /work/sources/binutils/current/bfd/elfnn-riscv.c:526 +#: elf32-arm.c:15073 elf32-i386.c:1529 elf32-s390.c:960 elf32-tic6x.c:2783 +#: elf32-tilepro.c:1479 elf32-xtensa.c:1029 elf64-s390.c:882 +#: elf64-x86-64.c:1865 elfxx-sparc.c:1424 elfxx-tilegx.c:1700 +#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:7260 +#: /work/sources/binutils/current/bfd/elfnn-riscv.c:516 #, c-format -msgid "%B: bad symbol index: %d" +msgid "%pB: bad symbol index: %d" msgstr "" -#: elf32-arm.c:16053 -msgid "Errors encountered processing file %B" +#: elf32-arm.c:15464 +#, c-format +msgid "" +"FDPIC does not yet support %s relocation to become dynamic for executable" +msgstr "" + +#: elf32-arm.c:16514 elf32-hppa.c:2090 elf32-lm32.c:1998 elf32-m32r.c:2110 +#: elf32-metag.c:2797 elf32-nds32.c:3840 elf32-or1k.c:2285 elf32-ppc.c:6554 +#: elf32-s390.c:1855 elf32-sh.c:2975 elf32-tic6x.c:3252 elf32-tilepro.c:2245 +#: elf64-ppc.c:10263 elf64-s390.c:1792 elfxx-sparc.c:2437 elfxx-tilegx.c:2491 +#: elfxx-x86.c:571 /work/sources/binutils/current/bfd/elfnn-aarch64.c:8610 +#: /work/sources/binutils/current/bfd/elfnn-riscv.c:1119 +#, c-format +msgid "%pB: dynamic relocation against `%pT' in read-only section `%pA'\n" msgstr "" -#: elf32-arm.c:16491 elflink.c:12302 elflink.c:12349 +#: elf32-arm.c:16810 +#, c-format +msgid "errors encountered processing file %pB" +msgstr "" + +#: elf32-arm.c:17257 elflink.c:12524 elflink.c:12571 #, c-format msgid "could not find section %s" msgstr "" -#: elf32-arm.c:17667 -msgid "%B: error: Cortex-A8 erratum stub is allocated in unsafe location" +#: elf32-arm.c:18468 +#, c-format +msgid "%pB: error: Cortex-A8 erratum stub is allocated in unsafe location" msgstr "" #. There's not much we can do apart from complain if this #. happens. -#: elf32-arm.c:17694 -msgid "%B: error: Cortex-A8 erratum stub out of range (input file too large)" +#: elf32-arm.c:18495 +#, c-format +msgid "%pB: error: Cortex-A8 erratum stub out of range (input file too large)" msgstr "" -#: elf32-arm.c:18521 elf32-arm.c:18543 -msgid "%B: error: VFP11 veneer out of range" +#: elf32-arm.c:19322 elf32-arm.c:19344 +#, c-format +msgid "%pB: error: VFP11 veneer out of range" msgstr "" -#: elf32-arm.c:18594 +#: elf32-arm.c:19395 +#, c-format msgid "" -"%B(%#Lx): error: Cannot create STM32L4XX veneer. Jump out of range by %Ld " -"bytes. Cannot encode branch instruction. " +"%pB(%#): error: cannot create STM32L4XX veneer; jump out of range by " +"% bytes; cannot encode branch instruction" msgstr "" -#: elf32-arm.c:18632 -msgid "%B: error: Cannot create STM32L4XX veneer." +#: elf32-arm.c:19434 +#, c-format +msgid "%pB: error: cannot create STM32L4XX veneer" msgstr "" -#: elf32-arm.c:19653 -msgid "error: %B is already in final BE8 format" +#: elf32-arm.c:20523 +#, c-format +msgid "error: %pB is already in final BE8 format" msgstr "" -#: elf32-arm.c:19729 +#: elf32-arm.c:20599 +#, c-format msgid "" -"error: Source object %B has EABI version %d, but target %B has EABI version " -"%d" +"error: source object %pB has EABI version %d, but target %pB has EABI " +"version %d" msgstr "" -#: elf32-arm.c:19744 -msgid "error: %B is compiled for APCS-%d, whereas target %B uses APCS-%d" +#: elf32-arm.c:20614 +#, c-format +msgid "error: %pB is compiled for APCS-%d, whereas target %pB uses APCS-%d" msgstr "" -#: elf32-arm.c:19768 -msgid "error: %B uses VFP instructions, whereas %B does not" +#: elf32-arm.c:20624 +#, c-format +msgid "" +"error: %pB passes floats in float registers, whereas %pB passes them in " +"integer registers" +msgstr "" + +#: elf32-arm.c:20628 +#, c-format +msgid "" +"error: %pB passes floats in integer registers, whereas %pB passes them in " +"float registers" msgstr "" -#: elf32-arm.c:19772 -msgid "error: %B uses FPA instructions, whereas %B does not" +#: elf32-arm.c:20638 elf32-arm.c:20642 elf32-arm.c:20652 +#, c-format +msgid "error: %pB uses %s instructions, whereas %pB does not" msgstr "" -#: elf32-arm.c:19782 -msgid "error: %B uses Maverick instructions, whereas %B does not" +#: elf32-arm.c:20656 +#, c-format +msgid "error: %pB does not use %s instructions, whereas %pB does" msgstr "" -#: elf32-arm.c:19786 -msgid "error: %B does not use Maverick instructions, whereas %B does" +#: elf32-arm.c:20675 +#, c-format +msgid "error: %pB uses software FP, whereas %pB uses hardware FP" msgstr "" -#: elf32-arm.c:19805 -msgid "error: %B uses software FP, whereas %B uses hardware FP" +#: elf32-arm.c:20679 +#, c-format +msgid "error: %pB uses hardware FP, whereas %pB uses software FP" msgstr "" -#: elf32-arm.c:19809 -msgid "error: %B uses hardware FP, whereas %B uses software FP" +#: elf32-arm.c:20693 +#, c-format +msgid "warning: %pB supports interworking, whereas %pB does not" msgstr "" -#: elf32-avr.c:959 +#: elf32-arm.c:20699 #, c-format -msgid "%B: invalid AVR reloc number: %d" +msgid "warning: %pB does not support interworking, whereas %pB does" msgstr "" -#: elf32-avr.c:1510 elf32-bfin.c:3201 elf32-cris.c:2033 elf32-epiphany.c:574 -#: elf32-fr30.c:599 elf32-frv.c:4049 elf32-ft32.c:342 elf32-i860.c:1218 -#: elf32-ip2k.c:1486 elf32-iq2000.c:701 elf32-m32c.c:629 elf32-mep.c:532 -#: elf32-metag.c:2008 elf32-moxie.c:293 elf32-msp430.c:1365 elf32-mt.c:404 -#: elf32-or1k.c:1266 elf32-tilepro.c:3665 elf32-v850.c:2295 elf32-visium.c:685 -#: elf32-xstormy16.c:935 elf64-mmix.c:1546 elfxx-tilegx.c:4052 -#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2275 +#: elf32-avr.c:1513 elf32-bfin.c:3135 elf32-cris.c:2041 elf32-epiphany.c:577 +#: elf32-fr30.c:602 elf32-frv.c:4057 elf32-ft32.c:502 elf32-ip2k.c:1493 +#: elf32-iq2000.c:701 elf32-m32c.c:632 elf32-mep.c:534 elf32-metag.c:1998 +#: elf32-moxie.c:296 elf32-msp430.c:1366 elf32-mt.c:406 elf32-or1k.c:1250 +#: elf32-tilepro.c:3514 elf32-v850.c:2299 elf32-visium.c:689 +#: elf32-xstormy16.c:939 elf64-mmix.c:1549 elfxx-tilegx.c:3878 msgid "internal error: dangerous relocation" msgstr "" -#: elf32-avr.c:3319 /work/sources/binutils/current/bfd/elfnn-aarch64.c:2880 +#: elf32-avr.c:3322 /work/sources/binutils/current/bfd/elfnn-aarch64.c:3127 #, c-format msgid "cannot create stub entry %s" msgstr "" @@ -1979,604 +1983,462 @@ msgid "relocation should be even number" msgstr "" -#: elf32-bfin.c:1581 +#: elf32-bfin.c:1585 #, c-format -msgid "%B(%A+%#Lx): unresolvable relocation against symbol `%s'" +msgid "%pB(%pA+%#): unresolvable relocation against symbol `%s'" msgstr "" -#: elf32-bfin.c:1612 elf32-i386.c:5384 elf32-m68k.c:4159 elf32-s390.c:3429 -#: elf64-s390.c:3353 elf64-x86-64.c:5752 +#: elf32-bfin.c:1617 elf32-i386.c:3450 elf32-m68k.c:3976 elf32-s390.c:3266 +#: elf64-s390.c:3183 elf64-x86-64.c:3893 #, c-format -msgid "%B(%A+%#Lx): reloc against `%s': error %d" +msgid "%pB(%pA+%#): reloc against `%s': error %d" msgstr "" -#: elf32-bfin.c:2705 +#: elf32-bfin.c:2638 #, c-format -msgid "%B: relocation at `%A+%#Lx' references symbol `%s' with nonzero addend" +msgid "" +"%pB: relocation at `%pA+%#' references symbol `%s' with nonzero " +"addend" msgstr "" -#: elf32-bfin.c:2721 +#: elf32-bfin.c:2655 msgid "relocation references symbol not defined in the module" msgstr "" -#: elf32-bfin.c:2818 +#: elf32-bfin.c:2752 msgid "R_BFIN_FUNCDESC references dynamic symbol with nonzero addend" msgstr "" -#: elf32-bfin.c:2859 elf32-bfin.c:2982 +#: elf32-bfin.c:2793 elf32-bfin.c:2916 msgid "cannot emit fixups in read-only section" msgstr "" -#: elf32-bfin.c:2890 elf32-bfin.c:3020 elf32-lm32.c:1064 elf32-sh.c:4930 +#: elf32-bfin.c:2824 elf32-bfin.c:2954 elf32-lm32.c:1049 elf32-sh.c:4507 msgid "cannot emit dynamic relocations in read-only section" msgstr "" -#: elf32-bfin.c:2940 +#: elf32-bfin.c:2874 msgid "R_BFIN_FUNCDESC_VALUE references dynamic symbol with nonzero addend" msgstr "" -#: elf32-bfin.c:3105 +#: elf32-bfin.c:3039 msgid "relocations between different segments are not supported" msgstr "" -#: elf32-bfin.c:3106 +#: elf32-bfin.c:3040 msgid "warning: relocation references a different segment" msgstr "" -#: elf32-bfin.c:4876 +#: elf32-bfin.c:4787 elf32-frv.c:6603 #, c-format -msgid "%B: unsupported relocation type %d" +msgid "%pB: cannot link non-fdpic object file into fdpic executable" msgstr "" -#: elf32-bfin.c:4965 elf32-frv.c:6599 -msgid "%B: cannot link non-fdpic object file into fdpic executable" -msgstr "" - -#: elf32-bfin.c:4969 elf32-frv.c:6603 -msgid "%B: cannot link fdpic object file into non-fdpic executable" +#: elf32-bfin.c:4791 elf32-frv.c:6607 +#, c-format +msgid "%pB: cannot link fdpic object file into non-fdpic executable" msgstr "" -#: elf32-bfin.c:5119 +#: elf32-bfin.c:4941 #, c-format msgid "*** check this relocation %s" msgstr "" -#: elf32-bfin.c:5235 +#: elf32-bfin.c:5057 msgid "" "the bfin target does not currently support the generation of copy relocations" msgstr "" -#: elf32-cr16.c:653 -#, c-format -msgid "Unsupported CR16 relocation type: 0x%x\n" -msgstr "" - -#: elf32-cr16.c:682 -#, c-format -msgid "%B: unrecognised CR16 reloc number: %d" -msgstr "" - -#: elf32-cr16c.c:186 -#, c-format -msgid "%B: invalid CR16C reloc number: %d" -msgstr "" - -#: elf32-cris.c:467 -#, c-format -msgid "%B: invalid CRIS reloc number: %d" +#: elf32-bfin.c:5351 elf32-cr16.c:2803 elf32-m68k.c:4390 +msgid "unsupported relocation type" msgstr "" -#: elf32-cris.c:1115 +#: elf32-cris.c:1119 #, c-format -msgid "%B, section %A: unresolvable relocation %s against symbol `%s'" +msgid "%pB, section %pA: unresolvable relocation %s against symbol `%s'" msgstr "" -#: elf32-cris.c:1177 +#: elf32-cris.c:1184 #, c-format -msgid "%B, section %A: No PLT nor GOT for relocation %s against symbol `%s'" +msgid "%pB, section %pA: no PLT nor GOT for relocation %s against symbol `%s'" msgstr "" -#: elf32-cris.c:1180 +#: elf32-cris.c:1187 #, c-format -msgid "%B, section %A: No PLT for relocation %s against symbol `%s'" +msgid "%pB, section %pA: no PLT for relocation %s against symbol `%s'" msgstr "" -#: elf32-cris.c:1186 elf32-cris.c:1319 elf32-cris.c:1583 elf32-cris.c:1666 -#: elf32-cris.c:1819 elf32-tic6x.c:2651 +#: elf32-cris.c:1193 elf32-cris.c:1326 elf32-cris.c:1591 elf32-cris.c:1674 +#: elf32-cris.c:1827 elf32-tic6x.c:2619 msgid "[whose name is lost]" msgstr "" -#: elf32-cris.c:1304 elf32-tic6x.c:2635 +#: elf32-cris.c:1311 elf32-tic6x.c:2603 #, c-format msgid "" -"%B, section %A: relocation %s with non-zero addend %Ld against local symbol" +"%pB, section %pA: relocation %s with non-zero addend % against local " +"symbol" msgstr "" -#: elf32-cris.c:1313 elf32-cris.c:1660 elf32-cris.c:1813 elf32-tic6x.c:2644 +#: elf32-cris.c:1320 elf32-cris.c:1668 elf32-cris.c:1821 elf32-tic6x.c:2612 #, c-format msgid "" -"%B, section %A: relocation %s with non-zero addend %Ld against symbol `%s'" +"%pB, section %pA: relocation %s with non-zero addend % against " +"symbol `%s'" msgstr "" -#: elf32-cris.c:1340 +#: elf32-cris.c:1347 #, c-format -msgid "%B, section %A: relocation %s is not allowed for global symbol: `%s'" +msgid "%pB, section %pA: relocation %s is not allowed for global symbol: `%s'" msgstr "" -#: elf32-cris.c:1357 +#: elf32-cris.c:1364 #, c-format -msgid "%B, section %A: relocation %s with no GOT created" +msgid "%pB, section %pA: relocation %s with no GOT created" msgstr "" #. We shouldn't get here for GCC-emitted code. -#: elf32-cris.c:1573 +#: elf32-cris.c:1581 #, c-format msgid "" -"%B, section %A: relocation %s has an undefined reference to `%s', perhaps a " -"declaration mixup?" +"%pB, section %pA: relocation %s has an undefined reference to `%s', perhaps " +"a declaration mixup?" msgstr "" -#: elf32-cris.c:1576 +#: elf32-cris.c:1584 #, c-format msgid "" -"%B, section %A: relocation %s is not allowed for `%s', a global symbol with " -"default visibility, perhaps a declaration mixup?" +"%pB, section %pA: relocation %s is not allowed for `%s', a global symbol " +"with default visibility, perhaps a declaration mixup?" msgstr "" -#: elf32-cris.c:1947 +#: elf32-cris.c:1955 #, c-format msgid "" -"%B, section %A: relocation %s is not allowed for symbol: `%s' which is " +"%pB, section %pA: relocation %s is not allowed for symbol: `%s' which is " "defined outside the program, perhaps a declaration mixup?" msgstr "" -#: elf32-cris.c:2000 +#: elf32-cris.c:2008 msgid "(too many global variables for -fpic: recompile with -fPIC)" msgstr "" -#: elf32-cris.c:2007 +#: elf32-cris.c:2015 msgid "" "(thread-local data too big for -fpic or -msmall-tls: recompile with -fPIC or " "-mno-small-tls)" msgstr "" -#: elf32-cris.c:3233 +#: elf32-cris.c:3050 #, c-format msgid "" -"%B, section %A:\n" -" v10/v32 compatible object must not contain a PIC relocation" +"%pB, section %pA: v10/v32 compatible object must not contain a PIC relocation" msgstr "" -#: elf32-cris.c:3287 +#: elf32-cris.c:3104 #, c-format msgid "" -"%B, section %A:\n" +"%pB, section %pA:\n" " relocation %s not valid in a shared object; typically an option mixup, " "recompile with -fPIC" msgstr "" -#: elf32-cris.c:3505 +#: elf32-cris.c:3322 #, c-format msgid "" -"%B, section %A:\n" -" relocation %s should not be used in a shared object; recompile with -fPIC" +"%pB, section %pA: relocation %s should not be used in a shared object; " +"recompile with -fPIC" msgstr "" -#: elf32-cris.c:3929 +#: elf32-cris.c:3747 #, c-format msgid "" -"%B, section `%A', to symbol `%s':\n" -" relocation %s should not be used in a shared object; recompile with -fPIC" +"%pB, section `%pA', to symbol `%s': relocation %s should not be used in a " +"shared object; recompile with -fPIC" msgstr "" -#: elf32-cris.c:4041 -msgid "Unexpected machine number" +#: elf32-cris.c:3860 +msgid "unexpected machine number" msgstr "" -#: elf32-cris.c:4092 +#: elf32-cris.c:3911 #, c-format msgid " [symbols have a _ prefix]" msgstr "" -#: elf32-cris.c:4095 +#: elf32-cris.c:3914 #, c-format msgid " [v10 and v32]" msgstr "" -#: elf32-cris.c:4098 +#: elf32-cris.c:3917 #, c-format msgid " [v32]" msgstr "" -#: elf32-cris.c:4142 -msgid "%B: uses _-prefixed symbols, but writing file with non-prefixed symbols" -msgstr "" - -#: elf32-cris.c:4143 -msgid "%B: uses non-prefixed symbols, but writing file with _-prefixed symbols" -msgstr "" - -#: elf32-cris.c:4162 -msgid "%B contains CRIS v32 code, incompatible with previous objects" -msgstr "" - -#: elf32-cris.c:4164 -msgid "%B contains non-CRIS-v32 code, incompatible with previous objects" +#: elf32-cris.c:3961 +#, c-format +msgid "" +"%pB: uses _-prefixed symbols, but writing file with non-prefixed symbols" msgstr "" -#: elf32-crx.c:429 +#: elf32-cris.c:3962 #, c-format -msgid "%B: unrecognised CRX reloc number: %d" +msgid "" +"%pB: uses non-prefixed symbols, but writing file with _-prefixed symbols" msgstr "" -#: elf32-d10v.c:234 +#: elf32-cris.c:3981 #, c-format -msgid "%B: invalid D10V reloc number: %d" +msgid "%pB contains CRIS v32 code, incompatible with previous objects" msgstr "" -#: elf32-d30v.c:522 elf32-d30v.c:541 +#: elf32-cris.c:3983 #, c-format -msgid "%B: invalid D30V reloc number: %d" +msgid "%pB contains non-CRIS-v32 code, incompatible with previous objects" msgstr "" #: elf32-dlx.c:141 #, c-format -msgid "BFD Link Error: branch (PC rel16) to section (%s) not supported" +msgid "branch (PC rel16) to section (%s) not supported" msgstr "" #: elf32-dlx.c:204 #, c-format -msgid "BFD Link Error: jump (PC rel26) to section (%s) not supported" -msgstr "" - -#: elf32-dlx.c:552 -#, c-format -msgid "Invalid DLX reloc number: %d" -msgstr "" - -#: elf32-epiphany.c:376 -#, c-format -msgid "%B: invalid Epiphany reloc number: %d" +msgid "jump (PC rel26) to section (%s) not supported" msgstr "" #. Only if it's not an unresolved symbol. -#: elf32-epiphany.c:570 elf32-ip2k.c:1482 +#: elf32-epiphany.c:573 elf32-ip2k.c:1489 msgid "unsupported relocation between data/insn address spaces" msgstr "" -#: elf32-fr30.c:381 -#, c-format -msgid "%B: invalid FR30 reloc number: %d" -msgstr "" - -#: elf32-frv.c:1451 elf32-frv.c:1602 +#: elf32-frv.c:1452 elf32-frv.c:1603 msgid "relocation requires zero addend" msgstr "" -#: elf32-frv.c:2557 -#, c-format -msgid "%B: invalid FRV reloc number: %d" -msgstr "" - -#: elf32-frv.c:2823 +#: elf32-frv.c:2829 #, c-format msgid "%H: relocation to `%s+%v' may have caused the error above\n" msgstr "" -#: elf32-frv.c:2840 +#: elf32-frv.c:2846 msgid "%H: relocation references symbol not defined in the module\n" msgstr "" -#: elf32-frv.c:2916 +#: elf32-frv.c:2922 msgid "%H: R_FRV_GETTLSOFF not applied to a call instruction\n" msgstr "" -#: elf32-frv.c:2957 +#: elf32-frv.c:2963 msgid "%H: R_FRV_GOTTLSDESC12 not applied to an lddi instruction\n" msgstr "" -#: elf32-frv.c:3028 +#: elf32-frv.c:3034 msgid "%H: R_FRV_GOTTLSDESCHI not applied to a sethi instruction\n" msgstr "" -#: elf32-frv.c:3065 +#: elf32-frv.c:3071 msgid "%H: R_FRV_GOTTLSDESCLO not applied to a setlo or setlos instruction\n" msgstr "" -#: elf32-frv.c:3112 +#: elf32-frv.c:3118 msgid "%H: R_FRV_TLSDESC_RELAX not applied to an ldd instruction\n" msgstr "" -#: elf32-frv.c:3196 +#: elf32-frv.c:3202 msgid "%H: R_FRV_GETTLSOFF_RELAX not applied to a calll instruction\n" msgstr "" -#: elf32-frv.c:3250 +#: elf32-frv.c:3256 msgid "%H: R_FRV_GOTTLSOFF12 not applied to an ldi instruction\n" msgstr "" -#: elf32-frv.c:3280 +#: elf32-frv.c:3286 msgid "%H: R_FRV_GOTTLSOFFHI not applied to a sethi instruction\n" msgstr "" -#: elf32-frv.c:3309 +#: elf32-frv.c:3315 msgid "%H: R_FRV_GOTTLSOFFLO not applied to a setlo or setlos instruction\n" msgstr "" -#: elf32-frv.c:3339 +#: elf32-frv.c:3345 msgid "%H: R_FRV_TLSOFF_RELAX not applied to an ld instruction\n" msgstr "" -#: elf32-frv.c:3384 +#: elf32-frv.c:3390 msgid "%H: R_FRV_TLSMOFFHI not applied to a sethi instruction\n" msgstr "" -#: elf32-frv.c:3411 +#: elf32-frv.c:3417 msgid "R_FRV_TLSMOFFLO not applied to a setlo or setlos instruction\n" msgstr "" -#: elf32-frv.c:3532 -msgid "%H: R_FRV_FUNCDESC references dynamic symbol with nonzero addend\n" +#: elf32-frv.c:3538 elf32-frv.c:3660 +msgid "%H: %s references dynamic symbol with nonzero addend\n" msgstr "" -#: elf32-frv.c:3573 elf32-frv.c:3695 +#: elf32-frv.c:3580 elf32-frv.c:3703 msgid "%H: cannot emit fixups in read-only section\n" msgstr "" -#: elf32-frv.c:3604 elf32-frv.c:3738 +#: elf32-frv.c:3611 elf32-frv.c:3746 msgid "%H: cannot emit dynamic relocations in read-only section\n" msgstr "" -#: elf32-frv.c:3653 -msgid "" -"%H: R_FRV_FUNCDESC_VALUE references dynamic symbol with nonzero addend\n" -msgstr "" - -#: elf32-frv.c:3910 +#: elf32-frv.c:3918 #, c-format msgid "%H: reloc against `%s' references a different segment\n" msgstr "" -#: elf32-frv.c:4061 +#: elf32-frv.c:4069 #, c-format msgid "%H: reloc against `%s': %s\n" msgstr "" -#: elf32-frv.c:6258 -#, c-format -msgid "%B: unsupported relocation type %i\n" -msgstr "" - -#: elf32-frv.c:6510 +#: elf32-frv.c:6514 #, c-format msgid "" -"%B: compiled with %s and linked with modules that use non-pic relocations" +"%pB: compiled with %s and linked with modules that use non-pic relocations" msgstr "" -#: elf32-frv.c:6564 elf32-iq2000.c:832 elf32-m32c.c:877 +#: elf32-frv.c:6568 elf32-iq2000.c:832 elf32-m32c.c:876 #, c-format -msgid "%B: compiled with %s and linked with modules compiled with %s" +msgid "%pB: compiled with %s and linked with modules compiled with %s" msgstr "" -#: elf32-frv.c:6577 +#: elf32-frv.c:6581 #, c-format msgid "" -"%B: uses different unknown e_flags (%#x) fields than previous modules (%#x)" +"%pB: uses different unknown e_flags (%#x) fields than previous modules (%#x)" msgstr "" -#: elf32-gen.c:69 elf64-gen.c:69 +#: elf32-gen.c:71 #, c-format -msgid "%B: Relocations in generic ELF (EM: %d)" +msgid "%pB: relocations in generic ELF (EM: %d)" msgstr "" -#: elf32-hppa.c:839 elf32-hppa.c:3597 +#: elf32-hppa.c:834 elf32-hppa.c:3511 #, c-format -msgid "%B(%A+%#Lx): cannot reach %s, recompile with -ffunction-sections" +msgid "" +"%pB(%pA+%#): cannot reach %s, recompile with -ffunction-sections" msgstr "" -#: elf32-hppa.c:1270 +#: elf32-hppa.c:1248 #, c-format msgid "" -"%B: relocation %s can not be used when making a shared object; recompile " +"%pB: relocation %s can not be used when making a shared object; recompile " "with -fPIC" msgstr "" -#: elf32-hppa.c:2778 +#: elf32-hppa.c:2688 #, c-format -msgid "%B: duplicate export stub %s" +msgid "%pB: duplicate export stub %s" msgstr "" -#: elf32-hppa.c:3431 +#: elf32-hppa.c:3344 #, c-format msgid "" -"%B(%A+%#Lx): %s fixup for insn %#x is not supported in a non-shared link" +"%pB(%pA+%#): %s fixup for insn %#x is not supported in a non-shared " +"link" msgstr "" -#: elf32-hppa.c:4288 +#: elf32-hppa.c:4140 #, c-format -msgid "%B(%A+%#Lx): cannot handle %s for %s" -msgstr "" - -#: elf32-hppa.c:4586 -msgid ".got section not immediately after .plt section" +msgid "%s has both normal and TLS relocs" msgstr "" -#: elf32-i370.c:307 +#: elf32-hppa.c:4158 #, c-format -msgid "%B: unrecognised I370 reloc number: %d" +msgid "%pB:%s has both normal and TLS relocs" msgstr "" -#: elf32-i370.c:1168 -msgid "%B: unknown relocation type %d for symbol %s" +#: elf32-hppa.c:4217 +#, c-format +msgid "%pB(%pA+%#): cannot handle %s for %s" msgstr "" -#: elf32-i370.c:1310 -#, c-format -msgid "%B: Relocation %s is not yet supported for symbol %s." +#: elf32-hppa.c:4521 +msgid ".got section not immediately after .plt section" msgstr "" -#. Unknown relocation. -#: elf32-i386.c:387 elf32-m68k.c:352 elf32-ppc.c:2074 elf32-s390.c:346 -#: elf32-tic6x.c:2674 elf32-wasm32.c:106 elf64-ppc.c:2516 elf64-s390.c:373 -#: elf64-x86-64.c:289 +#: elf32-i386.c:351 #, c-format -msgid "%B: invalid relocation type %d" +msgid "%pB: unsupported relocation type: %#x" msgstr "" -#: elf32-i386.c:1689 elf64-x86-64.c:1866 +#: elf32-i386.c:1178 elf64-x86-64.c:1377 #, c-format msgid "" -"%B: TLS transition from %s to %s against `%s' at %#Lx in section `%A' failed" +"%pB: TLS transition from %s to %s against `%s' at %# in section `" +"%pA' failed" msgstr "" -#: elf32-i386.c:1777 +#: elf32-i386.c:1269 #, c-format msgid "" -"%B: direct GOT relocation R_386_GOT32X against `%s' without base register " +"%pB: direct GOT relocation R_386_GOT32X against `%s' without base register " "can not be used when making a shared object" msgstr "" -#: elf32-i386.c:2215 elf32-s390.c:1188 elf32-sh.c:6056 elf32-tilepro.c:1608 -#: elf32-xtensa.c:1196 elf64-s390.c:1117 elfxx-sparc.c:1625 elfxx-tilegx.c:1817 -#: /work/sources/binutils/current/bfd/elfnn-riscv.c:440 -#, c-format -msgid "%B: `%s' accessed both as normal and thread local symbol" -msgstr "" - -#: elf32-i386.c:2292 +#: elf32-i386.c:1726 elf32-s390.c:1188 elf32-sh.c:5570 elf32-tilepro.c:1592 +#: elf32-xtensa.c:1203 elf64-s390.c:1120 elfxx-sparc.c:1593 elfxx-tilegx.c:1805 +#: /work/sources/binutils/current/bfd/elfnn-riscv.c:428 #, c-format -msgid "%B: unsupported non-PIC call to IFUNC `%s'" +msgid "%pB: `%s' accessed both as normal and thread local symbol" msgstr "" -#: elf32-i386.c:3167 elf64-x86-64.c:3566 +#: elf32-i386.c:1798 #, c-format -msgid "%P: %B: warning: relocation against `%s' in readonly section `%A'\n" +msgid "%pB: unsupported non-PIC call to IFUNC `%s'" msgstr "" -#: elf32-i386.c:3380 elf64-x86-64.c:3775 +#: elf32-i386.c:2380 elf64-x86-64.c:2667 #, c-format -msgid "%P: %B: warning: relocation in readonly section `%A'\n" +msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' isn't supported" msgstr "" -#: elf32-i386.c:3683 elf64-x86-64.c:4091 -msgid "" -"%P%X: read-only segment has dynamic IFUNC relocations; recompile with -fPIC\n" -msgstr "" - -#: elf32-i386.c:4212 elf64-x86-64.c:4520 +#: elf32-i386.c:2413 elf32-i386.c:3661 elf32-i386.c:3802 elf64-x86-64.c:2724 +#: elf64-x86-64.c:4066 elf64-x86-64.c:4222 #, c-format -msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't supported" -msgstr "" - -#: elf32-i386.c:4247 elf32-i386.c:5614 elf32-i386.c:5753 elf64-x86-64.c:4579 -#: elf64-x86-64.c:5941 elf64-x86-64.c:6095 -msgid "Local IFUNC function `%s' in %B\n" +msgid "Local IFUNC function `%s' in %pB\n" msgstr "" -#: elf32-i386.c:4480 +#: elf32-i386.c:2570 #, c-format msgid "" -"%B: direct GOT relocation %s against `%s' without base register can not be " +"%pB: direct GOT relocation %s against `%s' without base register can not be " "used when making a shared object" msgstr "" -#: elf32-i386.c:4515 elf64-x86-64.c:4786 -msgid "hidden symbol" -msgstr "" - -#: elf32-i386.c:4518 elf64-x86-64.c:4789 -msgid "internal symbol" -msgstr "" - -#: elf32-i386.c:4521 elf64-x86-64.c:4792 -msgid "protected symbol" -msgstr "" - -#: elf32-i386.c:4524 elf64-x86-64.c:4795 -msgid "symbol" -msgstr "" - -#: elf32-i386.c:4530 -#, c-format -msgid "" -"%B: relocation R_386_GOTOFF against undefined %s `%s' can not be used when " -"making a shared object" -msgstr "" - -#: elf32-i386.c:4543 -#, c-format -msgid "" -"%B: relocation R_386_GOTOFF against protected %s `%s' can not be used when " -"making a shared object" -msgstr "" - -#: elf32-i386.c:6088 elf32-tilepro.c:3912 elf64-x86-64.c:6442 -#: elfxx-tilegx.c:4319 /work/sources/binutils/current/bfd/elfnn-aarch64.c:9279 -#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2522 -#, c-format -msgid "discarded output section: `%A'" -msgstr "" - -#: elf32-i386.c:6656 elf64-x86-64.c:7178 -msgid "error: %B: " -msgstr "" - -#: elf32-i386.c:6658 elf64-x86-64.c:7180 -msgid "error: %B: " -msgstr "" - -#: elf32-i386.c:6659 elf64-x86-64.c:7181 -msgid "error: %B: " -msgstr "" - -#: elf32-i386.c:6836 elf64-x86-64.c:7358 -#, c-format -msgid "%F: failed to create GNU property section\n" -msgstr "" - -#: elf32-i386.c:6931 -#, c-format -msgid "%F: failed to create VxWorks dynamic sections\n" -msgstr "" - -#: elf32-i386.c:6998 elf64-x86-64.c:7519 -#, c-format -msgid "%F: failed to create GOT sections\n" -msgstr "" - -#: elf32-i386.c:7003 elf64-x86-64.c:7535 -#, c-format -msgid "%F: failed to create ifunc sections\n" -msgstr "" - -#: elf32-i386.c:7046 elf64-x86-64.c:7578 -#, c-format -msgid "%F: failed to create GOT PLT section\n" +#: elf32-i386.c:2605 elf64-x86-64.c:2916 +msgid "hidden symbol" msgstr "" -#: elf32-i386.c:7067 elf64-x86-64.c:7599 -#, c-format -msgid "%F: failed to create IBT-enabled PLT section\n" +#: elf32-i386.c:2608 elf64-x86-64.c:2919 +msgid "internal symbol" msgstr "" -#: elf32-i386.c:7088 elf64-x86-64.c:7635 -#, c-format -msgid "%F: failed to create PLT .eh_frame section\n" +#: elf32-i386.c:2611 elf64-x86-64.c:2922 +msgid "protected symbol" msgstr "" -#: elf32-i386.c:7101 elf64-x86-64.c:7649 -#, c-format -msgid "%F: failed to create GOT PLT .eh_frame section\n" +#: elf32-i386.c:2614 elf64-x86-64.c:2925 +msgid "symbol" msgstr "" -#: elf32-i386.c:7121 elf64-x86-64.c:7364 +#: elf32-i386.c:2620 #, c-format -msgid "%F%A: failed to align section\n" +msgid "" +"%pB: relocation R_386_GOTOFF against undefined %s `%s' can not be used when " +"making a shared object" msgstr "" -#: elf32-i960.c:140 +#: elf32-i386.c:2633 #, c-format -msgid "%B: invalid i960 reloc number: %d" +msgid "" +"%pB: relocation R_386_GOTOFF against protected %s `%s' can not be used when " +"making a shared object" msgstr "" #: elf32-ip2k.c:856 elf32-ip2k.c:862 elf32-ip2k.c:929 elf32-ip2k.c:935 @@ -2588,67 +2450,45 @@ msgid "ip2k relaxer: switch table header corrupt." msgstr "" -#: elf32-ip2k.c:1245 -#, c-format -msgid "%B: invalid IP2K reloc number: %d" -msgstr "" - -#: elf32-ip2k.c:1298 -#, c-format -msgid "ip2k linker: missing page instruction at %#Lx (dest = %#Lx)" -msgstr "" - -#: elf32-ip2k.c:1315 -#, c-format -msgid "ip2k linker: redundant page instruction at %#Lx (dest = %#Lx)" -msgstr "" - -#: elf32-iq2000.c:441 +#: elf32-ip2k.c:1302 #, c-format -msgid "%B: invalid IQ2000 reloc number: %d" +msgid "ip2k linker: missing page instruction at %# (dest = %#)" msgstr "" -#: elf32-lm32.c:559 +#: elf32-ip2k.c:1321 #, c-format -msgid "%B: invalid LM32 reloc number: %d" +msgid "" +"ip2k linker: redundant page instruction at %# (dest = %#)" msgstr "" -#: elf32-lm32.c:668 elf32-nios2.c:3153 +#: elf32-lm32.c:651 elf32-nios2.c:3141 msgid "global pointer relative relocation when _gp not defined" msgstr "" -#: elf32-lm32.c:723 elf32-nios2.c:3590 +#: elf32-lm32.c:706 elf32-nios2.c:3578 msgid "global pointer relative address out of range" msgstr "" -#: elf32-lm32.c:1018 -msgid "internal error: addend should be zero for R_LM32_16_GOT" -msgstr "" - -#: elf32-m32c.c:305 -#, c-format -msgid "%B: invalid M32C reloc number: %d" -msgstr "" - -#: elf32-m32r.c:1286 +#: elf32-lm32.c:1002 elf32-or1k.c:968 #, c-format -msgid "%B: invalid M32R reloc number: %d" +msgid "internal error: addend should be zero for %s" msgstr "" -#: elf32-m32r.c:1458 +#: elf32-m32r.c:1471 msgid "SDA relocation when _SDA_BASE_ not defined" msgstr "" -#: elf32-m32r.c:2985 elf32-microblaze.c:1080 elf32-microblaze.c:1128 +#: elf32-m32r.c:2984 elf32-microblaze.c:1101 elf32-microblaze.c:1149 #, c-format -msgid "%B: The target (%s) of an %s relocation is in the wrong section (%A)" +msgid "%pB: the target (%s) of an %s relocation is in the wrong section (%pA)" msgstr "" #: elf32-m32r.c:3487 -msgid "%B: Instruction set mismatch with previous modules" +#, c-format +msgid "%pB: instruction set mismatch with previous modules" msgstr "" -#: elf32-m32r.c:3508 elf32-nds32.c:6111 +#: elf32-m32r.c:3508 elf32-nds32.c:6010 #, c-format msgid "private flags = %lx" msgstr "" @@ -2668,144 +2508,122 @@ msgid ": m32r2 instructions" msgstr "" -#: elf32-m68hc11.c:390 -#, c-format -msgid "%B: invalid M68HC11 reloc number: %d" -msgstr "" - -#: elf32-m68hc12.c:510 -#, c-format -msgid "%B: invalid M68HC12 reloc number: %d" -msgstr "" - -#: elf32-m68hc1x.c:1119 +#: elf32-m68hc1x.c:1116 #, c-format msgid "" -"Reference to the far symbol `%s' using a wrong relocation may result in " +"reference to the far symbol `%s' using a wrong relocation may result in " "incorrect execution" msgstr "" -#: elf32-m68hc1x.c:1153 +#: elf32-m68hc1x.c:1150 #, c-format msgid "" "XGATE address (%lx) is not within shared RAM(0xE000-0xFFFF), therefore you " "must manually offset the address, and possibly manage the page, in your code." msgstr "" -#: elf32-m68hc1x.c:1171 +#: elf32-m68hc1x.c:1168 #, c-format msgid "" "banked address [%lx:%04lx] (%lx) is not in the same bank as current banked " "address [%lx:%04lx] (%lx)" msgstr "" -#: elf32-m68hc1x.c:1187 +#: elf32-m68hc1x.c:1184 #, c-format msgid "" "reference to a banked address [%lx:%04lx] in the normal address space at " "%04lx" msgstr "" -#: elf32-m68hc1x.c:1228 +#: elf32-m68hc1x.c:1225 #, c-format msgid "" "S12 address (%lx) is not within shared RAM(0x2000-0x4000), therefore you " "must manually offset the address in your code" msgstr "" -#: elf32-m68hc1x.c:1355 +#: elf32-m68hc1x.c:1352 +#, c-format msgid "" -"%B: linking files compiled for 16-bit integers (-mshort) and others for 32-" +"%pB: linking files compiled for 16-bit integers (-mshort) and others for 32-" "bit integers" msgstr "" -#: elf32-m68hc1x.c:1362 +#: elf32-m68hc1x.c:1359 +#, c-format msgid "" -"%B: linking files compiled for 32-bit double (-fshort-double) and others for " -"64-bit double" +"%pB: linking files compiled for 32-bit double (-fshort-double) and others " +"for 64-bit double" msgstr "" -#: elf32-m68hc1x.c:1371 -msgid "%B: linking files compiled for HCS12 with others compiled for HC12" +#: elf32-m68hc1x.c:1368 +#, c-format +msgid "%pB: linking files compiled for HCS12 with others compiled for HC12" msgstr "" -#: elf32-m68hc1x.c:1416 elf32-xgate.c:672 +#: elf32-m68hc1x.c:1413 elf32-xgate.c:675 #, c-format msgid "[abi=32-bit int, " msgstr "" -#: elf32-m68hc1x.c:1418 elf32-xgate.c:674 +#: elf32-m68hc1x.c:1415 elf32-xgate.c:677 #, c-format msgid "[abi=16-bit int, " msgstr "" -#: elf32-m68hc1x.c:1421 elf32-xgate.c:677 +#: elf32-m68hc1x.c:1418 elf32-xgate.c:680 #, c-format msgid "64-bit double, " msgstr "" -#: elf32-m68hc1x.c:1423 elf32-xgate.c:679 +#: elf32-m68hc1x.c:1420 elf32-xgate.c:682 #, c-format msgid "32-bit double, " msgstr "" -#: elf32-m68hc1x.c:1426 +#: elf32-m68hc1x.c:1423 #, c-format msgid "cpu=HC11]" msgstr "" -#: elf32-m68hc1x.c:1428 +#: elf32-m68hc1x.c:1425 #, c-format msgid "cpu=HCS12]" msgstr "" -#: elf32-m68hc1x.c:1430 +#: elf32-m68hc1x.c:1427 #, c-format msgid "cpu=HC12]" msgstr "" -#: elf32-m68hc1x.c:1433 +#: elf32-m68hc1x.c:1430 #, c-format msgid " [memory=bank-model]" msgstr "" -#: elf32-m68hc1x.c:1435 +#: elf32-m68hc1x.c:1432 #, c-format msgid " [memory=flat]" msgstr "" -#: elf32-m68hc1x.c:1438 +#: elf32-m68hc1x.c:1435 #, c-format msgid " [XGATE RAM offsetting]" msgstr "" -#: elf32-m68k.c:1215 elf32-m68k.c:1216 vms-alpha.c:7477 vms-alpha.c:7493 +#: elf32-m68k.c:1216 elf32-m68k.c:1217 vms-alpha.c:7478 vms-alpha.c:7494 msgid "unknown" msgstr "" -#: elf32-m68k.c:1680 -#, c-format -msgid "%B: GOT overflow: Number of relocations with 8-bit offset > %d" -msgstr "" - -#: elf32-m68k.c:1687 -#, c-format -msgid "%B: GOT overflow: Number of relocations with 8- or 16-bit offset > %d" -msgstr "" - -#: elf32-mcore.c:100 elf32-mcore.c:455 -#, c-format -msgid "%B: Relocation %s (%d) is not currently supported.\n" -msgstr "" - -#: elf32-mcore.c:355 +#: elf32-m68k.c:1660 #, c-format -msgid "%B: unrecognised MCore reloc number: %d" +msgid "%pB: GOT overflow: number of relocations with 8-bit offset > %d" msgstr "" -#: elf32-mcore.c:440 +#: elf32-m68k.c:1667 #, c-format -msgid "%B: Unknown relocation type %d\n" +msgid "%pB: GOT overflow: number of relocations with 8- or 16-bit offset > %d" msgstr "" #. Pacify gcc -Wall. @@ -2819,451 +2637,374 @@ msgid "MeP: howto %d has type %d" msgstr "" -#: elf32-mep.c:390 -#, c-format -msgid "%B: invalid MEP reloc number: %d" -msgstr "" - -#: elf32-mep.c:620 +#: elf32-mep.c:622 #, c-format -msgid "%B and %B are for different cores" +msgid "%pB and %pB are for different cores" msgstr "" -#: elf32-mep.c:639 +#: elf32-mep.c:641 #, c-format -msgid "%B and %B are for different configurations" +msgid "%pB and %pB are for different configurations" msgstr "" -#: elf32-mep.c:677 +#: elf32-mep.c:679 #, c-format msgid "private flags = 0x%lx" msgstr "" -#: elf32-metag.c:893 +#: elf32-metag.c:1863 #, c-format -msgid "%B: invalid METAG reloc number: %d" +msgid "%pB(%pA): multiple TLS models are not supported" msgstr "" -#: elf32-metag.c:1875 -msgid "%B(%A): multiple TLS models are not supported" -msgstr "" - -#: elf32-metag.c:1878 +#: elf32-metag.c:1866 +#, c-format msgid "" -"%B(%A): shared library symbol %s encountered whilst performing a static link" +"%pB(%pA): shared library symbol %s encountered whilst performing a static " +"link" msgstr "" -#: elf32-microblaze.c:656 +#: elf32-microblaze.c:1544 elf32-or1k.c:1056 elf32-tilepro.c:3155 +#: elfxx-sparc.c:3540 elfxx-tilegx.c:3543 #, c-format -msgid "%B: unrecognised MicroBlaze reloc number: %d" -msgstr "" - -#: elf32-microblaze.c:1496 elf32-or1k.c:1072 elf32-tilepro.c:3309 -#: elfxx-sparc.c:3705 elfxx-tilegx.c:3718 -msgid "%B: probably compiled without -fPIC?" +msgid "%pB: probably compiled without -fPIC?" msgstr "" -#: elf32-mips.c:1777 elf64-mips.c:3200 elfn32-mips.c:3010 +#: elf32-mips.c:1775 elf64-mips.c:3196 elfn32-mips.c:3012 msgid "literal relocation occurs for an external symbol" msgstr "" -#: elf32-mips.c:1824 elf32-score.c:569 elf32-score7.c:469 elf64-mips.c:3243 -#: elfn32-mips.c:3051 +#: elf32-mips.c:1822 elf32-score.c:569 elf32-score7.c:469 elf64-mips.c:3239 +#: elfn32-mips.c:3053 msgid "32bits gp relative relocation occurs for an external symbol" msgstr "" -#: elf32-mips.c:2225 -#, c-format -msgid "Unrecognised MIPS reloc number: %d" -msgstr "" - -#: elf32-moxie.c:137 -#, c-format -msgid "%B: invalid Moxie reloc number: %d" -msgstr "" - -#: elf32-msp430.c:648 -#, c-format -msgid "%B: invalid MSP430X reloc number: %d" -msgstr "" - -#: elf32-msp430.c:658 -#, c-format -msgid "%B: invalid MSP430 reloc number: %d" -msgstr "" - -#: elf32-msp430.c:836 elf32-msp430.c:1150 -msgid "Try enabling relaxation to avoid relocation truncations" +#: elf32-msp430.c:837 elf32-msp430.c:1151 +msgid "try enabling relaxation to avoid relocation truncations" msgstr "" -#: elf32-msp430.c:1357 +#: elf32-msp430.c:1358 msgid "internal error: branch/jump to an odd address detected" msgstr "" -#: elf32-msp430.c:2356 +#: elf32-msp430.c:2357 #, c-format -msgid "Warning: %B: Unknown MSPABI object attribute %d" +msgid "warning: %pB: unknown MSPABI object attribute %d" msgstr "" -#: elf32-msp430.c:2449 +#: elf32-msp430.c:2450 #, c-format -msgid "error: %B uses %s instructions but %B uses %s" +msgid "error: %pB uses %s instructions but %pB uses %s" msgstr "" -#: elf32-msp430.c:2461 +#: elf32-msp430.c:2462 #, c-format -msgid "error: %B uses the %s code model whereas %B uses the %s code model" +msgid "error: %pB uses the %s code model whereas %pB uses the %s code model" msgstr "" -#: elf32-msp430.c:2473 +#: elf32-msp430.c:2474 #, c-format -msgid "error: %B uses the large code model but %B uses MSP430 instructions" +msgid "error: %pB uses the large code model but %pB uses MSP430 instructions" msgstr "" -#: elf32-msp430.c:2484 +#: elf32-msp430.c:2485 #, c-format -msgid "error: %B uses the %s data model whereas %B uses the %s data model" +msgid "error: %pB uses the %s data model whereas %pB uses the %s data model" msgstr "" -#: elf32-msp430.c:2496 +#: elf32-msp430.c:2497 #, c-format -msgid "error: %B uses the small code model but %B uses the %s data model" +msgid "error: %pB uses the small code model but %pB uses the %s data model" msgstr "" -#: elf32-msp430.c:2508 +#: elf32-msp430.c:2509 #, c-format -msgid "error: %B uses the %s data model but %B only uses MSP430 instructions" +msgid "error: %pB uses the %s data model but %pB only uses MSP430 instructions" msgstr "" -#: elf32-mt.c:242 +#: elf32-nds32.c:3228 #, c-format -msgid "%B: invalid MT reloc number: %d" +msgid "error: can't find symbol: %s" msgstr "" -#: elf32-nds32.c:2974 +#: elf32-nds32.c:4869 #, c-format -msgid "%B: invalid NDS32 reloc number: %d" -msgstr "" - -#: elf32-nds32.c:3309 -msgid "error: Can't find symbol: _SDA_BASE_." -msgstr "" - -#: elf32-nds32.c:4484 elf32-nds32.c:11978 -msgid "%B: error: Cannot set _ITB_BASE_" -msgstr "" - -#: elf32-nds32.c:4492 -msgid "error: IFC relocation error." +msgid "%pB: warning: %s unsupported in shared mode" msgstr "" -#: elf32-nds32.c:4526 +#: elf32-nds32.c:5003 #, c-format -msgid "%B: error: unknown relocation type %d." -msgstr "" - -#: elf32-nds32.c:4972 -msgid "%B: warning: cannot deal R_NDS32_25_ABS_RELA in shared mode." -msgstr "" - -#: elf32-nds32.c:5106 -msgid "%B: warning: unaligned access to GOT entry." +msgid "%pB: warning: unaligned access to GOT entry" msgstr "" -#: elf32-nds32.c:5148 -msgid "%B: warning: relocate SDA_BASE failed." +#: elf32-nds32.c:5045 +#, c-format +msgid "%pB: warning: relocate SDA_BASE failed" msgstr "" -#: elf32-nds32.c:5170 +#: elf32-nds32.c:5067 #, c-format -msgid "%B(%A): warning: unaligned small data access of type %d." +msgid "%pB(%pA): warning: unaligned small data access of type %d" msgstr "" -#: elf32-nds32.c:5918 +#: elf32-nds32.c:5816 #, c-format msgid "" -"%B: ISR vector size mismatch with previous modules, previous %u-byte, " +"%pB: ISR vector size mismatch with previous modules, previous %u-byte, " "current %u-byte" msgstr "" -#: elf32-nds32.c:5962 -msgid "%B: warning: Endian mismatch with previous modules." +#: elf32-nds32.c:5860 +#, c-format +msgid "%pB: warning: endian mismatch with previous modules" msgstr "" -#: elf32-nds32.c:5972 +#: elf32-nds32.c:5870 +#, c-format msgid "" -"%B: warning: Older version of object file encountered, Please recompile with " -"current tool chain." +"%pB: warning: older version of object file encountered, please recompile " +"with current tool chain" msgstr "" -#: elf32-nds32.c:6050 -msgid "%B: error: ABI mismatch with previous modules." +#: elf32-nds32.c:5948 +#, c-format +msgid "%pB: error: ABI mismatch with previous modules" msgstr "" -#: elf32-nds32.c:6061 -msgid "%B: error: Instruction set mismatch with previous modules." +#: elf32-nds32.c:5959 +#, c-format +msgid "%pB: error: instruction set mismatch with previous modules" msgstr "" -#: elf32-nds32.c:6087 +#: elf32-nds32.c:5986 #, c-format -msgid "%B: warning: Incompatible elf-versions %s and %s." +msgid "%pB: warning: incompatible elf-versions %s and %s" msgstr "" -#: elf32-nds32.c:6117 +#: elf32-nds32.c:6016 #, c-format msgid ": n1 instructions" msgstr "" -#: elf32-nds32.c:6120 +#: elf32-nds32.c:6019 #, c-format msgid ": n1h instructions" msgstr "" -#: elf32-nds32.c:8730 -msgid "%B: Error: search_nds32_elf_blank reports wrong node\n" -msgstr "" - -#: elf32-nds32.c:8989 +#: elf32-nds32.c:8508 #, c-format -msgid "%B: warning: %s points to unrecognized reloc at %#Lx" -msgstr "" - -#: elf32-nds32.c:11850 elf32-nds32.c:11867 -msgid "error: Jump IFC Fail." +msgid "%pB: error: search_nds32_elf_blank reports wrong node" msgstr "" -#: elf32-nds32.c:12724 +#: elf32-nds32.c:8768 #, c-format -msgid "%B: Nested OMIT_FP in %A." +msgid "%pB: warning: %s points to unrecognized reloc at %#" msgstr "" -#: elf32-nds32.c:12743 +#: elf32-nds32.c:12339 #, c-format -msgid "%B: Unmatched OMIT_FP in %A." +msgid "%pB: nested OMIT_FP in %pA" msgstr "" -#: elf32-nds32.c:13026 reloc.c:8234 +#: elf32-nds32.c:12358 #, c-format -msgid "%X%P: %B(%A): relocation \"%R\" goes out of range\n" +msgid "%pB: unmatched OMIT_FP in %pA" msgstr "" -#: elf32-nds32.c:14802 -msgid "Linker: cannot init ex9 hash table error \n" -msgstr "" - -#: elf32-nds32.c:15211 elf32-nds32.c:15225 -msgid "Linker: error cannot fixed ex9 relocation \n" -msgstr "" - -#: elf32-nds32.c:15436 +#: elf32-nds32.c:12642 reloc.c:8330 #, c-format -msgid "" -"%B: warning: unaligned small data access for entry: {%Ld, %Ld, %Ld}, addr = " -"%#Lx, align = %#x" +msgid "%X%P: %pB(%pA): relocation \"%pR\" goes out of range\n" msgstr "" -#: elf32-nds32.c:15469 +#: elf32-nios2.c:2930 #, c-format -msgid "failed creating ex9.it %s hash table entry" -msgstr "" - -#: elf32-nios2.c:2949 -msgid "error: %B: Big-endian R2 is not supported." +msgid "error: %pB: big-endian R2 is not supported" msgstr "" -#: elf32-nios2.c:3830 +#: elf32-nios2.c:3822 #, c-format msgid "" "global pointer relative relocation at address 0x%08x when _gp not defined\n" msgstr "" -#: elf32-nios2.c:3850 +#: elf32-nios2.c:3842 #, c-format msgid "" -"Unable to reach %s (at 0x%08x) from the global pointer (at 0x%08x) because " -"the offset (%d) is out of the allowed range, -32678 to 32767.\n" +"unable to reach %s (at 0x%08x) from the global pointer (at 0x%08x) because " +"the offset (%d) is out of the allowed range, -32678 to 32767\n" msgstr "" -#: elf32-nios2.c:4500 elf32-pru.c:816 +#: elf32-nios2.c:4495 elf32-pru.c:928 msgid "relocation out of range" msgstr "" -#: elf32-nios2.c:4510 elf32-pru.c:826 elf32-tic6x.c:2747 +#: elf32-nios2.c:4505 elf32-pru.c:938 elf32-tic6x.c:2716 msgid "dangerous relocation" msgstr "" -#: elf32-nios2.c:5491 +#: elf32-nios2.c:5378 #, c-format msgid "dynamic variable `%s' is zero size" msgstr "" -#: elf32-or1k.c:735 +#: elf32-or1k.c:1078 #, c-format -msgid "%B: invalid OR1K reloc number: %d" -msgstr "" - -#: elf32-or1k.c:985 -msgid "internal error: addend should be zero for R_OR1K_GOT16" -msgstr "" - -#: elf32-or1k.c:1094 -msgid "%B: support for local dynamic not implemented" -msgstr "" - -#: elf32-or1k.c:1229 -msgid "%B: will not resolve runtime TLS relocation" +msgid "%pB: support for local dynamic not implemented" msgstr "" -#: elf32-or1k.c:1599 +#: elf32-or1k.c:1213 #, c-format -msgid "%B: bad relocation section name `%s'" -msgstr "" - -#: elf32-or1k.c:2704 -msgid "%B: EF_OR1K_NODELAY flag mismatch with previous modules" +msgid "%pB: will not resolve runtime TLS relocation" msgstr "" -#: elf32-pj.c:325 +#: elf32-or1k.c:1533 #, c-format -msgid "%B: unrecognised PicoJava reloc number: %d" +msgid "%pB: bad relocation section name `%s'" msgstr "" -#: elf32-ppc.c:2062 +#: elf32-or1k.c:2645 #, c-format -msgid "%B: unrecognised PPC reloc number: %d" +msgid "%pB: %s flag mismatch with previous modules" msgstr "" -#: elf32-ppc.c:2147 +#: elf32-ppc.c:2149 #, c-format msgid "generic linker can't handle %s" msgstr "" -#: elf32-ppc.c:2781 +#: elf32-ppc.c:2778 #, c-format -msgid "corrupt %s section in %B" +msgid "corrupt %s section in %pB" msgstr "" -#: elf32-ppc.c:2801 +#: elf32-ppc.c:2798 #, c-format -msgid "unable to read in %s section from %B" +msgid "unable to read in %s section from %pB" msgstr "" -#: elf32-ppc.c:2843 +#: elf32-ppc.c:2840 #, c-format -msgid "warning: unable to set size of %s section in %B" -msgstr "" - -#: elf32-ppc.c:2893 -msgid "failed to allocate space for new APUinfo section." +msgid "warning: unable to set size of %s section in %pB" msgstr "" -#: elf32-ppc.c:2912 -msgid "failed to compute new APUinfo section." +#: elf32-ppc.c:2890 +msgid "failed to allocate space for new APUinfo section" msgstr "" -#: elf32-ppc.c:2915 -msgid "failed to install new APUinfo section." +#: elf32-ppc.c:2909 +msgid "failed to compute new APUinfo section" msgstr "" -#: elf32-ppc.c:3975 -#, c-format -msgid "%B: relocation %s cannot be used when making a shared object" +#: elf32-ppc.c:2912 +msgid "failed to install new APUinfo section" msgstr "" -#: elf32-ppc.c:4329 elf64-ppc.c:5600 +#: elf32-ppc.c:4014 #, c-format -msgid "%H: %s reloc against local symbol\n" +msgid "%pB: relocation %s cannot be used when making a shared object" msgstr "" -#: elf32-ppc.c:4691 elf32-ppc.c:4695 +#: elf32-ppc.c:4744 elf32-ppc.c:4748 #, c-format -msgid "Warning: %B uses hard float, %B uses soft float" +msgid "warning: %pB uses hard float, %pB uses soft float" msgstr "" -#: elf32-ppc.c:4699 elf32-ppc.c:4704 +#: elf32-ppc.c:4752 elf32-ppc.c:4757 #, c-format msgid "" -"Warning: %B uses double-precision hard float, %B uses single-precision hard " -"float" +"warning: %pB uses double-precision hard float, %pB uses single-precision " +"hard float" msgstr "" -#: elf32-ppc.c:4719 elf32-ppc.c:4724 +#: elf32-ppc.c:4772 elf32-ppc.c:4777 #, c-format -msgid "Warning: %B uses 64-bit long double, %B uses 128-bit long double" +msgid "warning: %pB uses 64-bit long double, %pB uses 128-bit long double" msgstr "" -#: elf32-ppc.c:4729 elf32-ppc.c:4734 +#: elf32-ppc.c:4782 elf32-ppc.c:4787 #, c-format -msgid "Warning: %B uses IBM long double, %B uses IEEE long double" +msgid "warning: %pB uses IBM long double, %pB uses IEEE long double" msgstr "" -#: elf32-ppc.c:4785 elf32-ppc.c:4790 +#: elf32-ppc.c:4838 elf32-ppc.c:4843 #, c-format -msgid "Warning: %B uses AltiVec vector ABI, %B uses SPE vector ABI" +msgid "warning: %pB uses AltiVec vector ABI, %pB uses SPE vector ABI" msgstr "" -#: elf32-ppc.c:4813 elf32-ppc.c:4818 +#: elf32-ppc.c:4866 elf32-ppc.c:4871 #, c-format -msgid "Warning: %B uses r3/r4 for small structure returns, %B uses memory" +msgid "warning: %pB uses r3/r4 for small structure returns, %pB uses memory" msgstr "" -#: elf32-ppc.c:4873 +#: elf32-ppc.c:4926 +#, c-format msgid "" -"%B: compiled with -mrelocatable and linked with modules compiled normally" +"%pB: compiled with -mrelocatable and linked with modules compiled normally" msgstr "" -#: elf32-ppc.c:4881 +#: elf32-ppc.c:4934 +#, c-format msgid "" -"%B: compiled normally and linked with modules compiled with -mrelocatable" +"%pB: compiled normally and linked with modules compiled with -mrelocatable" msgstr "" -#: elf32-ppc.c:4950 +#: elf32-ppc.c:5003 #, c-format -msgid "%B(%A+0x%lx): expected 16A style relocation on 0x%08x insn" +msgid "%pB(%pA+0x%lx): expected 16A style relocation on 0x%08x insn" msgstr "" -#: elf32-ppc.c:4969 +#: elf32-ppc.c:5022 #, c-format -msgid "%B(%A+0x%lx): expected 16D style relocation on 0x%08x insn" +msgid "%pB(%pA+0x%lx): expected 16D style relocation on 0x%08x insn" msgstr "" -#: elf32-ppc.c:5043 -msgid "%P: bss-plt forced due to %B\n" +#: elf32-ppc.c:5113 +#, c-format +msgid "bss-plt forced due to %pB" msgstr "" -#: elf32-ppc.c:5046 -msgid "%P: bss-plt forced by profiling\n" +#: elf32-ppc.c:5115 +msgid "bss-plt forced by profiling" msgstr "" #. Uh oh, we didn't find the expected call. We #. could just mark this symbol to exclude it #. from tls optimization but it's safer to skip #. the entire optimization. -#: elf32-ppc.c:5544 elf64-ppc.c:8826 +#: elf32-ppc.c:5691 elf64-ppc.c:8963 #, c-format msgid "%H arg lost __tls_get_addr, TLS optimization disabled\n" msgstr "" -#: elf32-ppc.c:8249 +#: elf32-ppc.c:6662 elf32-sh.c:3078 elf32-tilepro.c:2339 elfxx-sparc.c:2536 +#: elfxx-tilegx.c:2579 +#, c-format +msgid "%pB: dynamic relocation in read-only section `%pA'\n" +msgstr "" + +#: elf32-ppc.c:8515 +msgid "%P: %H: error: %s with unexpected instruction %x\n" +msgstr "" + +#: elf32-ppc.c:8552 msgid "%H: fixup branch overflow\n" msgstr "" -#: elf32-ppc.c:8289 elf32-ppc.c:8324 +#: elf32-ppc.c:8592 elf32-ppc.c:8628 #, c-format -msgid "%B(%A+%#Lx): error: %s with unexpected instruction %#x" +msgid "%pB(%pA+%#): error: %s with unexpected instruction %#x" msgstr "" -#: elf32-ppc.c:8380 +#: elf32-ppc.c:8692 #, c-format msgid "%X%H: unsupported bss-plt -fPIC ifunc %s\n" msgstr "" -#: elf32-ppc.c:8434 -#, c-format -msgid "%P: %B: unknown relocation type %d for symbol %s\n" +#: elf32-ppc.c:8731 elf64-ppc.c:15738 +msgid "%H: warning: %s unexpected insn %#x.\n" msgstr "" -#: elf32-ppc.c:8718 +#: elf32-ppc.c:9043 #, c-format msgid "%H: non-zero addend on %s reloc against `%s'\n" msgstr "" @@ -3276,1318 +3017,1227 @@ #. local won't have the +32k reloc addend trick marking #. -fPIC code, so the linker won't know whether r30 is #. _GLOBAL_OFFSET_TABLE_ or pointing into a .got2 section. -#: elf32-ppc.c:8750 +#: elf32-ppc.c:9075 #, c-format msgid "%X%H: @local call to ifunc %s\n" msgstr "" -#: elf32-ppc.c:8930 +#: elf32-ppc.c:9245 #, c-format msgid "%H: relocation %s for indirect function %s unsupported\n" msgstr "" -#: elf32-ppc.c:9199 elf32-ppc.c:9230 elf32-ppc.c:9321 -#, c-format -msgid "" -"%P: %B: the target (%s) of a %s relocation is in the wrong output section " -"(%s)\n" -msgstr "" - -#: elf32-ppc.c:9409 +#: elf32-ppc.c:9573 elf32-ppc.c:9604 elf32-ppc.c:9695 elf32-ppc.c:9783 #, c-format msgid "" -"%B: the target (%s) of a %s relocation is in the wrong output section (%s)" +"%pB: the target (%s) of a %s relocation is in the wrong output section (%s)" msgstr "" -#: elf32-ppc.c:9513 -#, c-format -msgid "%P: %B: relocation %s is not yet supported for symbol %s\n" +#: elf32-ppc.c:9913 elf32-ppc.c:9931 +msgid "%P: %H: %s relocation unsupported for bss-plt\n" msgstr "" -#: elf32-ppc.c:9598 +#: elf32-ppc.c:10012 #, c-format msgid "%H: error: %s against `%s' not a multiple of %u\n" msgstr "" -#: elf32-ppc.c:9627 +#: elf32-ppc.c:10041 #, c-format msgid "%H: unresolvable %s relocation against symbol `%s'\n" msgstr "" -#: elf32-ppc.c:9708 +#: elf32-ppc.c:10122 #, c-format msgid "%H: %s reloc against `%s': error %d\n" msgstr "" -#: elf32-ppc.c:10472 elf64-ppc.c:15763 +#: elf32-ppc.c:11017 elf64-ppc.c:16230 msgid "" "%X%P: text relocations and GNU indirect functions will result in a segfault " "at runtime\n" msgstr "" -#: elf32-ppc.c:10476 elf64-ppc.c:15767 +#: elf32-ppc.c:11021 elf64-ppc.c:16234 msgid "" "%P: warning: text relocations and GNU indirect functions may result in a " "segfault at runtime\n" msgstr "" -#: elf32-ppc.c:10521 +#: elf32-ppc.c:11066 #, c-format -msgid "%P: %s not defined in linker created %s\n" +msgid "%s not defined in linker created %pA" msgstr "" -#: elf32-rl78.c:291 +#: elf32-pru.c:579 elf32-pru.c:1472 #, c-format -msgid "%B: invalid RL78 reloc number: %d" +msgid "error: %pB: old incompatible object file detected" msgstr "" -#: elf32-rl78.c:369 -msgid "Internal Error: RL78 reloc stack overflow" +#: elf32-rl78.c:373 +msgid "internal error: RL78 reloc stack overflow" msgstr "" -#: elf32-rl78.c:380 -msgid "Internal Error: RL78 reloc stack underflow" +#: elf32-rl78.c:384 +msgid "internal error: RL78 reloc stack underflow" msgstr "" -#: elf32-rl78.c:1049 -msgid "Warning: RL78_SYM reloc with an unknown symbol" +#: elf32-rl78.c:1054 +msgid "warning: RL78_SYM reloc with an unknown symbol" msgstr "" -#: elf32-rl78.c:1080 elf32-rx.c:1434 +#: elf32-rl78.c:1085 elf32-rx.c:1457 #, c-format -msgid "%B(%A): error: call to undefined function '%s'" +msgid "%pB(%pA): error: call to undefined function '%s'" msgstr "" -#: elf32-rl78.c:1201 +#: elf32-rl78.c:1206 #, c-format -msgid "RL78 ABI conflict: G10 file %B cannot be linked with %s file %B" +msgid "RL78 ABI conflict: G10 file %pB cannot be linked with %s file %pB" msgstr "" -#: elf32-rl78.c:1218 +#: elf32-rl78.c:1223 #, c-format -msgid "RL78 ABI conflict: cannot link %s file %B with %s file %B" +msgid "RL78 ABI conflict: cannot link %s file %pB with %s file %pB" msgstr "" -#: elf32-rl78.c:1227 +#: elf32-rl78.c:1232 msgid "RL78 merge conflict: cannot link 32-bit and 64-bit objects together" msgstr "" -#: elf32-rl78.c:1231 elf32-rl78.c:1235 +#: elf32-rl78.c:1236 elf32-rl78.c:1240 #, c-format -msgid "- %B is 64-bit, %B is not" +msgid "- %pB is 64-bit, %pB is not" msgstr "" -#: elf32-rl78.c:1262 +#: elf32-rl78.c:1267 #, c-format msgid " [64-bit doubles]" msgstr "" -#: elf32-rx.c:313 -#, c-format -msgid "%B: invalid RX reloc number: %d" -msgstr "" - -#: elf32-rx.c:594 +#: elf32-rx.c:606 #, c-format -msgid "%B:%A: table entry %s outside table" +msgid "%pB:%pA: table entry %s outside table" msgstr "" -#: elf32-rx.c:601 +#: elf32-rx.c:613 #, c-format -msgid "%B:%A: table entry %s not word-aligned within table" +msgid "%pB:%pA: table entry %s not word-aligned within table" msgstr "" -#: elf32-rx.c:667 +#: elf32-rx.c:685 #, c-format -msgid "%B:%A: Warning: deprecated Red Hat reloc " +msgid "%pB:%pA: warning: deprecated Red Hat reloc %s detected against: %s" msgstr "" #. Check for unsafe relocs in PID mode. These are any relocs where #. an absolute address is being computed. There are special cases #. for relocs against symbols that are known to be referenced in #. crt0.o before the PID base address register has been initialised. -#: elf32-rx.c:686 +#: elf32-rx.c:705 #, c-format -msgid "%B(%A): unsafe PID relocation %s at %#Lx (against %s in %s)" +msgid "%pB(%pA): unsafe PID relocation %s at %# (against %s in %s)" msgstr "" -#: elf32-rx.c:1266 -msgid "Warning: RX_SYM reloc with an unknown symbol" +#: elf32-rx.c:1289 +msgid "warning: RX_SYM reloc with an unknown symbol" msgstr "" -#: elf32-rx.c:3145 -msgid "There is a conflict merging the ELF header flags from %B" +#: elf32-rx.c:3168 +#, c-format +msgid "there is a conflict merging the ELF header flags from %pB" msgstr "" -#: elf32-rx.c:3148 +#: elf32-rx.c:3171 #, c-format msgid " the input file's flags: %s" msgstr "" -#: elf32-rx.c:3150 +#: elf32-rx.c:3173 #, c-format msgid " the output file's flags: %s" msgstr "" -#: elf32-rx.c:3757 +#: elf32-rx.c:3780 #, c-format -msgid "%B:%A: table %s missing corresponding %s" +msgid "%pB:%pA: table %s missing corresponding %s" msgstr "" -#: elf32-rx.c:3765 +#: elf32-rx.c:3788 #, c-format -msgid "%B:%A: %s and %s must be in the same input section" +msgid "%pB:%pA: %s and %s must be in the same input section" msgstr "" -#: elf32-s390.c:2310 elf64-s390.c:2257 +#: elf32-s390.c:2141 elf64-s390.c:2082 #, c-format -msgid "%B(%A+%#Lx): invalid instruction for TLS relocation %s" +msgid "%pB(%pA+%#): invalid instruction for TLS relocation %s" msgstr "" -#: elf32-score.c:1521 elf32-score7.c:1382 elfxx-mips.c:3756 +#: elf32-score.c:1521 elf32-score7.c:1382 elfxx-mips.c:3750 msgid "not enough GOT space for local GOT entries" msgstr "" -#: elf32-score.c:2744 -msgid "address not word align" +#: elf32-score.c:2746 +msgid "address not word aligned" msgstr "" -#: elf32-score.c:2825 elf32-score7.c:2630 +#: elf32-score.c:2827 elf32-score7.c:2632 #, c-format -msgid "%B: Malformed reloc detected for section %A" +msgid "%pB: malformed reloc detected for section %pA" msgstr "" -#: elf32-score.c:2883 elf32-score7.c:2688 +#: elf32-score.c:2881 elf32-score7.c:2686 #, c-format -msgid "%B: CALL15 reloc at %#Lx not against global symbol" +msgid "%pB: CALL15 reloc at %# not against global symbol" msgstr "" -#: elf32-score.c:4005 elf32-score7.c:3810 +#: elf32-score.c:4003 elf32-score7.c:3808 #, c-format msgid " [pic]" msgstr "" -#: elf32-score.c:4009 elf32-score7.c:3814 +#: elf32-score.c:4007 elf32-score7.c:3812 #, c-format msgid " [fix dep]" msgstr "" -#: elf32-score.c:4052 elf32-score7.c:3857 -msgid "%B: warning: linking PIC files with non-PIC files" -msgstr "" - -#: elf32-sh-symbian.c:130 +#: elf32-score.c:4050 elf32-score7.c:3855 #, c-format -msgid "%B: IMPORT AS directive for %s conceals previous IMPORT AS" +msgid "%pB: warning: linking PIC files with non-PIC files" msgstr "" -#: elf32-sh-symbian.c:384 +#: elf32-sh.c:533 #, c-format -msgid "%B: Unrecognised .directive command: %s" +msgid "%pB: %#: warning: R_SH_USES points to unrecognized insn 0x%x" msgstr "" -#: elf32-sh-symbian.c:502 -#, c-format -msgid "%B: Failed to add renamed symbol %s" -msgstr "" - -#: elf32-sh.c:491 -#, c-format -msgid "%B: unrecognised SH reloc number: %d" -msgstr "" - -#: elf32-sh.c:592 -#, c-format -msgid "%B: %#Lx: warning: R_SH_USES points to unrecognized insn 0x%x" -msgstr "" - -#: elf32-sh.c:3953 elf64-sh64.c:1508 -msgid "Unexpected STO_SH5_ISA32 on local symbol is not handled" +#: elf32-sh.c:3629 +msgid "unexpected STO_SH5_ISA32 on local symbol is not handled" msgstr "" -#: elf32-sh.c:4206 +#: elf32-sh.c:3876 #, c-format -msgid "%B: %#Lx: fatal: unaligned branch target for relax-support relocation" +msgid "" +"%pB: %#: fatal: unaligned branch target for relax-support relocation" msgstr "" -#: elf32-sh.c:4240 elf32-sh.c:4256 +#: elf32-sh.c:3906 elf32-sh.c:3922 #, c-format -msgid "%B: %#Lx: fatal: unaligned %s relocation %#Lx" +msgid "%pB: %#: fatal: unaligned %s relocation %#" msgstr "" -#: elf32-sh.c:4271 +#: elf32-sh.c:3938 #, c-format -msgid "%B: %#Lx: fatal: R_SH_PSHA relocation %Ld not in range -32..32" +msgid "" +"%pB: %#: fatal: R_SH_PSHA relocation % not in range -32..32" msgstr "" -#: elf32-sh.c:4286 +#: elf32-sh.c:3954 #, c-format -msgid "%B: %#Lx: fatal: R_SH_PSHL relocation %Ld not in range -32..32" +msgid "" +"%pB: %#: fatal: R_SH_PSHL relocation % not in range -32..32" msgstr "" -#: elf32-sh.c:4431 elf32-sh.c:4903 +#: elf32-sh.c:4084 elf32-sh.c:4479 #, c-format -msgid "%B(%A+%#Lx): cannot emit fixup to `%s' in read-only section" +msgid "%pB(%pA+%#): cannot emit fixup to `%s' in read-only section" msgstr "" -#: elf32-sh.c:5005 +#: elf32-sh.c:4582 #, c-format -msgid "%B(%A+%#Lx): %s relocation against external symbol \"%s\"" +msgid "%pB(%pA+%#): %s relocation against external symbol \"%s\"" msgstr "" -#: elf32-sh.c:5469 +#: elf32-sh.c:5047 #, c-format msgid "%X%C: relocation to \"%s\" references a different segment\n" msgstr "" -#: elf32-sh.c:5476 +#: elf32-sh.c:5054 #, c-format msgid "%C: warning: relocation to \"%s\" references a different segment\n" msgstr "" -#: elf32-sh.c:6045 elf32-sh.c:6131 +#: elf32-sh.c:5559 elf32-sh.c:5641 #, c-format -msgid "%B: `%s' accessed both as normal and FDPIC symbol" +msgid "%pB: `%s' accessed both as normal and FDPIC symbol" msgstr "" -#: elf32-sh.c:6051 elf32-sh.c:6136 +#: elf32-sh.c:5565 elf32-sh.c:5646 #, c-format -msgid "%B: `%s' accessed both as FDPIC and thread local symbol" +msgid "%pB: `%s' accessed both as FDPIC and thread local symbol" msgstr "" -#: elf32-sh.c:6082 -msgid "%B: Function descriptor relocation with non-zero addend" +#: elf32-sh.c:5596 +#, c-format +msgid "%pB: Function descriptor relocation with non-zero addend" msgstr "" -#: elf32-sh.c:6320 elf64-alpha.c:4755 +#: elf32-sh.c:5803 elf64-alpha.c:4691 #, c-format -msgid "%B: TLS local exec code cannot be linked into shared objects" +msgid "%pB: TLS local exec code cannot be linked into shared objects" msgstr "" -#: elf32-sh.c:6435 +#: elf32-sh.c:5918 #, c-format -msgid "%B: uses %s instructions while previous modules use %s instructions" +msgid "%pB: uses %s instructions while previous modules use %s instructions" msgstr "" -#: elf32-sh.c:6447 +#: elf32-sh.c:5930 #, c-format msgid "" "internal error: merge of architecture '%s' with architecture '%s' produced " "unknown architecture" msgstr "" -#: elf32-sh.c:6484 +#: elf32-sh.c:5967 +#, c-format msgid "" -"%B: uses instructions which are incompatible with instructions used in " +"%pB: uses instructions which are incompatible with instructions used in " "previous modules" msgstr "" -#: elf32-sh.c:6497 -msgid "%B: attempt to mix FDPIC and non-FDPIC objects" -msgstr "" - -#: elf32-sh64.c:225 elf64-sh64.c:2277 -#, c-format -msgid "%B: compiled as 32-bit object and %B is 64-bit" -msgstr "" - -#: elf32-sh64.c:229 elf64-sh64.c:2281 -#, c-format -msgid "%B: compiled as 64-bit object and %B is 32-bit" -msgstr "" - -#: elf32-sh64.c:232 elf64-sh64.c:2284 -#, c-format -msgid "%B: object size does not match that of target %B" -msgstr "" - -#: elf32-sh64.c:455 elf64-sh64.c:2776 -msgid "%B: encountered datalabel symbol in input" -msgstr "" - -#: elf32-sh64.c:531 -msgid "PTB mismatch: a SHmedia address (bit 0 == 1)" -msgstr "" - -#: elf32-sh64.c:534 -msgid "PTA mismatch: a SHcompact address (bit 0 == 0)" -msgstr "" - -#: elf32-sh64.c:550 -msgid "%B: GAS error: unexpected PTB insn with R_SH_PT_16" -msgstr "" - -#: elf32-sh64.c:600 +#: elf32-sh.c:5980 #, c-format -msgid "%B: error: unaligned relocation type %d at %#Lx reloc %#Lx" -msgstr "" - -#: elf32-sh64.c:676 -msgid "%B: could not write out added .cranges entries" -msgstr "" - -#: elf32-sh64.c:735 -msgid "%B: could not write out sorted .cranges entries" +msgid "%pB: attempt to mix FDPIC and non-FDPIC objects" msgstr "" #: elf32-sparc.c:89 -msgid "%B: compiled for a 64 bit system and target is 32 bit" +#, c-format +msgid "%pB: compiled for a 64 bit system and target is 32 bit" msgstr "" #: elf32-sparc.c:102 -msgid "%B: linking little endian files with big endian files" -msgstr "" - -#: elf32-spu.c:160 #, c-format -msgid "%B: unrecognised SPU reloc number: %d" +msgid "%pB: linking little endian files with big endian files" msgstr "" -#: elf32-spu.c:726 -msgid "%X%P: overlay section %A does not start on a cache line.\n" +#: elf32-spu.c:727 +msgid "%X%P: overlay section %pA does not start on a cache line\n" msgstr "" -#: elf32-spu.c:734 -msgid "%X%P: overlay section %A is larger than a cache line.\n" +#: elf32-spu.c:735 +msgid "%X%P: overlay section %pA is larger than a cache line\n" msgstr "" -#: elf32-spu.c:754 -msgid "%X%P: overlay section %A is not in cache area.\n" +#: elf32-spu.c:755 +msgid "%X%P: overlay section %pA is not in cache area\n" msgstr "" -#: elf32-spu.c:795 +#: elf32-spu.c:796 #, c-format -msgid "%X%P: overlay sections %A and %A do not start at the same address.\n" +msgid "%X%P: overlay sections %pA and %pA do not start at the same address\n" msgstr "" -#: elf32-spu.c:1021 +#: elf32-spu.c:1022 #, c-format -msgid "warning: call to non-function symbol %s defined in %B" +msgid "warning: call to non-function symbol %s defined in %pB" msgstr "" -#: elf32-spu.c:1371 +#: elf32-spu.c:1372 #, c-format -msgid "%A:0x%v lrlive .brinfo (%u) differs from analysis (%u)\n" +msgid "%pA:0x%v lrlive .brinfo (%u) differs from analysis (%u)\n" msgstr "" -#: elf32-spu.c:1903 +#: elf32-spu.c:1904 #, c-format -msgid "%B is not allowed to define %s" +msgid "%pB is not allowed to define %s" msgstr "" -#: elf32-spu.c:1911 +#: elf32-spu.c:1912 #, c-format msgid "you are not allowed to define %s in a script" msgstr "" -#: elf32-spu.c:1945 +#: elf32-spu.c:1946 #, c-format msgid "%s in overlay section" msgstr "" -#: elf32-spu.c:1974 +#: elf32-spu.c:1975 msgid "overlay stub relocation overflow" msgstr "" -#: elf32-spu.c:1983 +#: elf32-spu.c:1984 elf64-ppc.c:13819 msgid "stubs don't match calculated size" msgstr "" -#: elf32-spu.c:2566 +#: elf32-spu.c:2567 #, c-format msgid "warning: %s overlaps %s\n" msgstr "" -#: elf32-spu.c:2582 +#: elf32-spu.c:2583 #, c-format msgid "warning: %s exceeds section size\n" msgstr "" -#: elf32-spu.c:2614 +#: elf32-spu.c:2615 #, c-format -msgid "%A:0x%v not found in function table\n" +msgid "%pA:0x%v not found in function table\n" msgstr "" -#: elf32-spu.c:2755 +#: elf32-spu.c:2756 #, c-format -msgid "%B(%A+0x%v): call to non-code section %B(%A), analysis incomplete\n" +msgid "%pB(%pA+0x%v): call to non-code section %pB(%pA), analysis incomplete\n" msgstr "" -#: elf32-spu.c:3324 +#: elf32-spu.c:3325 #, c-format -msgid "Stack analysis will ignore the call from %s to %s\n" +msgid "stack analysis will ignore the call from %s to %s\n" msgstr "" -#: elf32-spu.c:4021 +#: elf32-spu.c:4022 msgid " calls:\n" msgstr "" -#: elf32-spu.c:4335 +#: elf32-spu.c:4336 #, c-format msgid "%s duplicated in %s\n" msgstr "" -#: elf32-spu.c:4339 +#: elf32-spu.c:4340 #, c-format msgid "%s duplicated\n" msgstr "" -#: elf32-spu.c:4346 +#: elf32-spu.c:4347 msgid "sorry, no support for duplicate object files in auto-overlay script\n" msgstr "" -#: elf32-spu.c:4388 +#: elf32-spu.c:4389 #, c-format msgid "" "non-overlay size of 0x%v plus maximum overlay size of 0x%v exceeds local " "store\n" msgstr "" -#: elf32-spu.c:4544 +#: elf32-spu.c:4545 #, c-format -msgid "%B:%A%s exceeds overlay size\n" +msgid "%pB:%pA%s exceeds overlay size\n" msgstr "" -#: elf32-spu.c:4685 +#: elf32-spu.c:4686 msgid "%F%P: auto overlay error: %E\n" msgstr "" -#: elf32-spu.c:4706 +#: elf32-spu.c:4707 msgid "Stack size for call graph root nodes.\n" msgstr "" -#: elf32-spu.c:4707 +#: elf32-spu.c:4708 msgid "" "\n" "Stack size for functions. Annotations: '*' max stack, 't' tail call\n" msgstr "" -#: elf32-spu.c:4717 +#: elf32-spu.c:4718 msgid "Maximum stack required is 0x%v\n" msgstr "" -#: elf32-spu.c:4736 +#: elf32-spu.c:4737 msgid "%X%P: stack/lrlive analysis error: %E\n" msgstr "" -#: elf32-spu.c:4739 +#: elf32-spu.c:4740 msgid "%F%P: can not build overlay stubs: %E\n" msgstr "" -#: elf32-spu.c:4808 +#: elf32-spu.c:4809 msgid "fatal error while creating .fixup" msgstr "" -#: elf32-spu.c:5043 +#: elf32-spu.c:5044 #, c-format -msgid "%B(%s+%#Lx): unresolvable %s relocation against symbol `%s'" +msgid "%pB(%s+%#): unresolvable %s relocation against symbol `%s'" msgstr "" -#: elf32-tic6x.c:1596 +#: elf32-tic6x.c:1628 msgid "warning: generating a shared library containing non-PIC code" msgstr "" -#: elf32-tic6x.c:1601 +#: elf32-tic6x.c:1633 msgid "warning: generating a shared library containing non-PID code" msgstr "" -#: elf32-tic6x.c:2525 -msgid "%B: SB-relative relocation but __c6xabi_DSBT_BASE not defined" +#: elf32-tic6x.c:2493 +#, c-format +msgid "%pB: SB-relative relocation but __c6xabi_DSBT_BASE not defined" msgstr "" -#: elf32-tic6x.c:3651 +#: elf32-tic6x.c:3629 #, c-format -msgid "%B: error: unknown mandatory EABI object attribute %d" +msgid "%pB: error: unknown mandatory EABI object attribute %d" msgstr "" -#: elf32-tic6x.c:3660 +#: elf32-tic6x.c:3638 #, c-format -msgid "%B: warning: unknown EABI object attribute %d" +msgid "%pB: warning: unknown EABI object attribute %d" msgstr "" -#: elf32-tic6x.c:3774 elf32-tic6x.c:3783 +#: elf32-tic6x.c:3752 elf32-tic6x.c:3761 #, c-format -msgid "error: %B requires more stack alignment than %B preserves" +msgid "error: %pB requires more stack alignment than %pB preserves" msgstr "" -#: elf32-tic6x.c:3793 elf32-tic6x.c:3802 -msgid "error: unknown Tag_ABI_array_object_alignment value in %B" +#: elf32-tic6x.c:3771 elf32-tic6x.c:3780 +#, c-format +msgid "error: unknown Tag_ABI_array_object_alignment value in %pB" msgstr "" -#: elf32-tic6x.c:3811 elf32-tic6x.c:3820 -msgid "error: unknown Tag_ABI_array_object_align_expected value in %B" +#: elf32-tic6x.c:3789 elf32-tic6x.c:3798 +#, c-format +msgid "error: unknown Tag_ABI_array_object_align_expected value in %pB" msgstr "" -#: elf32-tic6x.c:3829 elf32-tic6x.c:3837 +#: elf32-tic6x.c:3807 elf32-tic6x.c:3815 #, c-format -msgid "error: %B requires more array alignment than %B preserves" +msgid "error: %pB requires more array alignment than %pB preserves" msgstr "" -#: elf32-tic6x.c:3860 +#: elf32-tic6x.c:3838 #, c-format -msgid "warning: %B and %B differ in wchar_t size" +msgid "warning: %pB and %pB differ in wchar_t size" msgstr "" -#: elf32-tic6x.c:3879 +#: elf32-tic6x.c:3857 #, c-format -msgid "warning: %B and %B differ in whether code is compiled for DSBT" +msgid "warning: %pB and %pB differ in whether code is compiled for DSBT" msgstr "" -#: elf32-v850.c:157 +#: elf32-tilepro.c:3761 elfxx-tilegx.c:4145 elfxx-x86.c:1424 +#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:9463 +#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2543 #, c-format -msgid "Variable `%s' cannot occupy in multiple small data regions" +msgid "discarded output section: `%pA'" msgstr "" -#: elf32-v850.c:160 +#: elf32-v850.c:153 #, c-format -msgid "" -"Variable `%s' can only be in one of the small, zero, and tiny data regions" +msgid "variable `%s' cannot occupy in multiple small data regions" msgstr "" -#: elf32-v850.c:163 +#: elf32-v850.c:156 #, c-format msgid "" -"Variable `%s' cannot be in both small and zero data regions simultaneously" +"variable `%s' can only be in one of the small, zero, and tiny data regions" msgstr "" -#: elf32-v850.c:166 +#: elf32-v850.c:159 #, c-format msgid "" -"Variable `%s' cannot be in both small and tiny data regions simultaneously" +"variable `%s' cannot be in both small and zero data regions simultaneously" msgstr "" -#: elf32-v850.c:169 +#: elf32-v850.c:162 #, c-format msgid "" -"Variable `%s' cannot be in both zero and tiny data regions simultaneously" +"variable `%s' cannot be in both small and tiny data regions simultaneously" msgstr "" -#: elf32-v850.c:467 -msgid "FAILED to find previous HI16 reloc" +#: elf32-v850.c:165 +#, c-format +msgid "" +"variable `%s' cannot be in both zero and tiny data regions simultaneously" msgstr "" -#: elf32-v850.c:1902 elf32-v850.c:1921 -#, c-format -msgid "%B: invalid V850 reloc number: %d" +#: elf32-v850.c:463 +msgid "failed to find previous HI16 reloc" msgstr "" -#: elf32-v850.c:2299 +#: elf32-v850.c:2303 msgid "could not locate special linker symbol __gp" msgstr "" -#: elf32-v850.c:2303 +#: elf32-v850.c:2307 msgid "could not locate special linker symbol __ep" msgstr "" -#: elf32-v850.c:2307 +#: elf32-v850.c:2311 msgid "could not locate special linker symbol __ctbp" msgstr "" -#: elf32-v850.c:2528 +#: elf32-v850.c:2532 #, c-format -msgid "error: %B needs 8-byte alignment but %B is set for 4-byte alignment" +msgid "error: %pB needs 8-byte alignment but %pB is set for 4-byte alignment" msgstr "" -#: elf32-v850.c:2544 +#: elf32-v850.c:2548 #, c-format -msgid "error: %B uses 64-bit doubles but %B uses 32-bit doubles" +msgid "error: %pB uses 64-bit doubles but %pB uses 32-bit doubles" msgstr "" -#: elf32-v850.c:2559 +#: elf32-v850.c:2563 #, c-format -msgid "error: %B uses FPU-3.0 but %B only supports FPU-2.0" +msgid "error: %pB uses FPU-3.0 but %pB only supports FPU-2.0" msgstr "" -#: elf32-v850.c:2591 +#: elf32-v850.c:2595 #, c-format msgid " alignment of 8-byte entities: " msgstr "" -#: elf32-v850.c:2594 +#: elf32-v850.c:2598 #, c-format msgid "4-byte" msgstr "" -#: elf32-v850.c:2595 +#: elf32-v850.c:2599 #, c-format msgid "8-byte" msgstr "" -#: elf32-v850.c:2596 elf32-v850.c:2608 +#: elf32-v850.c:2600 elf32-v850.c:2612 #, c-format msgid "not set" msgstr "" -#: elf32-v850.c:2597 elf32-v850.c:2609 elf32-v850.c:2621 elf32-v850.c:2632 -#: elf32-v850.c:2643 elf32-v850.c:2654 +#: elf32-v850.c:2601 elf32-v850.c:2613 elf32-v850.c:2625 elf32-v850.c:2636 +#: elf32-v850.c:2647 elf32-v850.c:2658 #, c-format msgid "unknown: %x" msgstr "" -#: elf32-v850.c:2603 +#: elf32-v850.c:2607 #, c-format msgid " size of doubles: " msgstr "" -#: elf32-v850.c:2606 +#: elf32-v850.c:2610 #, c-format msgid "4-bytes" msgstr "" -#: elf32-v850.c:2607 +#: elf32-v850.c:2611 #, c-format msgid "8-bytes" msgstr "" -#: elf32-v850.c:2615 +#: elf32-v850.c:2619 #, c-format msgid " FPU support required: " msgstr "" -#: elf32-v850.c:2618 +#: elf32-v850.c:2622 #, c-format msgid "FPU-2.0" msgstr "" -#: elf32-v850.c:2619 +#: elf32-v850.c:2623 #, c-format msgid "FPU-3.0" msgstr "" -#: elf32-v850.c:2620 +#: elf32-v850.c:2624 #, c-format msgid "none" msgstr "" -#: elf32-v850.c:2627 +#: elf32-v850.c:2631 #, c-format msgid "SIMD use: " msgstr "" -#: elf32-v850.c:2630 elf32-v850.c:2641 elf32-v850.c:2652 +#: elf32-v850.c:2634 elf32-v850.c:2645 elf32-v850.c:2656 #, c-format msgid "yes" msgstr "" -#: elf32-v850.c:2631 elf32-v850.c:2642 elf32-v850.c:2653 +#: elf32-v850.c:2635 elf32-v850.c:2646 elf32-v850.c:2657 #, c-format msgid "no" msgstr "" -#: elf32-v850.c:2638 +#: elf32-v850.c:2642 #, c-format msgid "CACHE use: " msgstr "" -#: elf32-v850.c:2649 +#: elf32-v850.c:2653 #, c-format msgid "MMU use: " msgstr "" -#: elf32-v850.c:2816 elf32-v850.c:2872 -msgid "%B: Architecture mismatch with previous modules" +#: elf32-v850.c:2820 elf32-v850.c:2876 +#, c-format +msgid "%pB: architecture mismatch with previous modules" msgstr "" #. xgettext:c-format. -#: elf32-v850.c:2890 +#: elf32-v850.c:2894 #, c-format msgid "private flags = %lx: " msgstr "" -#: elf32-v850.c:2895 +#: elf32-v850.c:2899 #, c-format msgid "unknown v850 architecture" msgstr "" -#: elf32-v850.c:2897 +#: elf32-v850.c:2901 #, c-format msgid "v850 E3 architecture" msgstr "" -#: elf32-v850.c:2899 elf32-v850.c:2906 +#: elf32-v850.c:2903 elf32-v850.c:2910 #, c-format msgid "v850 architecture" msgstr "" -#: elf32-v850.c:2907 +#: elf32-v850.c:2911 #, c-format msgid "v850e architecture" msgstr "" -#: elf32-v850.c:2908 +#: elf32-v850.c:2912 #, c-format msgid "v850e1 architecture" msgstr "" -#: elf32-v850.c:2909 +#: elf32-v850.c:2913 #, c-format msgid "v850e2 architecture" msgstr "" -#: elf32-v850.c:2910 +#: elf32-v850.c:2914 #, c-format msgid "v850e2v3 architecture" msgstr "" -#: elf32-v850.c:2911 +#: elf32-v850.c:2915 #, c-format msgid "v850e3v5 architecture" msgstr "" -#: elf32-v850.c:3605 -#, c-format -msgid "%B: %#Lx: warning: R_V850_LONGCALL points to unrecognized insns" -msgstr "" - -#: elf32-v850.c:3615 -#, c-format -msgid "%B: %#Lx: warning: R_V850_LONGCALL points to unrecognized insn %#x" -msgstr "" - -#: elf32-v850.c:3660 -#, c-format -msgid "%B: %#Lx: warning: R_V850_LONGCALL points to unrecognized reloc" -msgstr "" - -#: elf32-v850.c:3700 -#, c-format -msgid "%B: %#Lx: warning: R_V850_LONGCALL points to unrecognized reloc %#Lx" -msgstr "" - -#: elf32-v850.c:3843 +#: elf32-v850.c:3609 elf32-v850.c:3848 #, c-format -msgid "%B: %#Lx: warning: R_V850_LONGJUMP points to unrecognized insns" +msgid "%pB: %#: warning: %s points to unrecognized insns" msgstr "" -#: elf32-v850.c:3853 +#: elf32-v850.c:3619 elf32-v850.c:3858 #, c-format -msgid "%B: %#Lx: warning: R_V850_LONGJUMP points to unrecognized insn %#x" +msgid "%pB: %#: warning: %s points to unrecognized insn %#x" msgstr "" -#: elf32-v850.c:3887 +#: elf32-v850.c:3665 elf32-v850.c:3893 #, c-format -msgid "%B: %#Lx: warning: R_V850_LONGJUMP points to unrecognized reloc" +msgid "%pB: %#: warning: %s points to unrecognized reloc" msgstr "" -#: elf32-vax.c:290 +#: elf32-v850.c:3705 #, c-format -msgid "%B: unrecognised VAX reloc number: %d" +msgid "%pB: %#: warning: %s points to unrecognized reloc %#" msgstr "" -#: elf32-vax.c:539 +#: elf32-vax.c:540 #, c-format msgid " [nonpic]" msgstr "" -#: elf32-vax.c:542 +#: elf32-vax.c:543 #, c-format msgid " [d-float]" msgstr "" -#: elf32-vax.c:545 +#: elf32-vax.c:546 #, c-format msgid " [g-float]" msgstr "" -#: elf32-vax.c:635 +#: elf32-vax.c:632 #, c-format msgid "" -"%B: warning: GOT addend of %Ld to `%s' does not match previous GOT addend of " -"%Ld" -msgstr "" - -#: elf32-vax.c:1511 -#, c-format -msgid "%B: warning: PLT addend of %Ld to `%s' from %A section ignored" -msgstr "" - -#: elf32-vax.c:1636 -#, c-format -msgid "%B: warning: %s relocation against symbol `%s' from %A section" +"%pB: warning: GOT addend of % to `%s' does not match previous GOT " +"addend of %" msgstr "" -#: elf32-vax.c:1643 +#: elf32-vax.c:1446 #, c-format -msgid "%B: warning: %s relocation to %#Lx from %A section" +msgid "%pB: warning: PLT addend of % to `%s' from %pA section ignored" msgstr "" -#: elf32-visium.c:481 +#: elf32-vax.c:1572 #, c-format -msgid "%B: invalid Visium reloc number: %d" +msgid "%pB: warning: %s relocation against symbol `%s' from %pA section" msgstr "" -#: elf32-visium.c:817 +#: elf32-vax.c:1579 #, c-format -msgid "%B: compiled %s -mtune=%s and linked with modules compiled %s -mtune=%s" +msgid "%pB: warning: %s relocation to %# from %pA section" msgstr "" -#: elf32-xgate.c:428 +#: elf32-visium.c:821 #, c-format -msgid "%B: invalid XGate reloc number: %d" +msgid "" +"%pB: compiled %s -mtune=%s and linked with modules compiled %s -mtune=%s" msgstr "" -#: elf32-xgate.c:681 +#: elf32-xgate.c:684 #, c-format msgid "cpu=XGATE]" msgstr "" -#: elf32-xgate.c:683 +#: elf32-xgate.c:686 #, c-format msgid "error reading cpu type from elf private data" msgstr "" -#: elf32-xstormy16.c:453 elf64-ia64-vms.c:2074 elf32-ia64.c:2334 -#: elf64-ia64.c:2334 +#: elf32-xstormy16.c:457 elf64-ia64-vms.c:2085 elf32-ia64.c:2354 +#: elf64-ia64.c:2354 msgid "non-zero addend in @fptr reloc" msgstr "" -#: elf32-xtensa.c:485 -#, c-format -msgid "%B: invalid XTENSA reloc number: %d" -msgstr "" - -#: elf32-xtensa.c:926 +#: elf32-xtensa.c:937 #, c-format -msgid "%B(%A): invalid property table" +msgid "%pB(%pA): invalid property table" msgstr "" -#: elf32-xtensa.c:2790 +#: elf32-xtensa.c:2666 #, c-format -msgid "%B(%A+%#Lx): relocation offset out of range (size=%#Lx)" +msgid "%pB(%pA+%#): relocation offset out of range (size=%#)" msgstr "" -#: elf32-xtensa.c:2871 elf32-xtensa.c:2990 +#: elf32-xtensa.c:2749 elf32-xtensa.c:2868 msgid "dynamic relocation in read-only section" msgstr "" -#: elf32-xtensa.c:2967 +#: elf32-xtensa.c:2845 msgid "TLS relocation invalid without dynamic sections" msgstr "" -#: elf32-xtensa.c:3178 +#: elf32-xtensa.c:3057 msgid "internal inconsistency in size of .got.loc section" msgstr "" -#: elf32-xtensa.c:3485 +#: elf32-xtensa.c:3364 #, c-format -msgid "%B: incompatible machine type. Output is 0x%x. Input is 0x%x" +msgid "%pB: incompatible machine type; output is 0x%x; input is 0x%x" msgstr "" -#: elf32-xtensa.c:4716 elf32-xtensa.c:4724 -msgid "Attempt to convert L32R/CALLX to CALL failed" +#: elf32-xtensa.c:4595 elf32-xtensa.c:4603 +msgid "attempt to convert L32R/CALLX to CALL failed" msgstr "" -#: elf32-xtensa.c:6552 elf32-xtensa.c:6630 elf32-xtensa.c:8006 +#: elf32-xtensa.c:6431 elf32-xtensa.c:6510 elf32-xtensa.c:7886 #, c-format msgid "" -"%B(%A+%#Lx): could not decode instruction; possible configuration mismatch" +"%pB(%pA+%#): could not decode instruction; possible configuration " +"mismatch" msgstr "" -#: elf32-xtensa.c:7745 +#: elf32-xtensa.c:7625 #, c-format msgid "" -"%B(%A+%#Lx): could not decode instruction for XTENSA_ASM_SIMPLIFY " +"%pB(%pA+%#): could not decode instruction for XTENSA_ASM_SIMPLIFY " "relocation; possible configuration mismatch" msgstr "" -#: elf32-xtensa.c:9590 +#: elf32-xtensa.c:9480 msgid "invalid relocation address" msgstr "" -#: elf32-xtensa.c:9640 +#: elf32-xtensa.c:9530 msgid "overflow after relaxation" msgstr "" -#: elf32-xtensa.c:10784 +#: elf32-xtensa.c:10674 #, c-format -msgid "%B(%A+%#Lx): unexpected fix for %s relocation" +msgid "%pB(%pA+%#): unexpected fix for %s relocation" msgstr "" #: elf64-alpha.c:472 msgid "GPDISP relocation did not find ldah and lda instructions" msgstr "" -#: elf64-alpha.c:1112 +#: elf64-alpha.c:2463 #, c-format -msgid "%B: unrecognised Alpha reloc number: %d" +msgid "%pB: .got subsegment exceeds 64K (size %d)" msgstr "" -#: elf64-alpha.c:2529 +#: elf64-alpha.c:3018 elf64-alpha.c:3214 #, c-format -msgid "%B: .got subsegment exceeds 64K (size %d)" +msgid "%pB: %pA+%#: warning: %s relocation against unexpected insn" msgstr "" -#: elf64-alpha.c:3084 +#: elf64-alpha.c:4415 elf64-alpha.c:4428 #, c-format -msgid "%B: %A+%#Lx: warning: %s relocation against unexpected insn" +msgid "%pB: gp-relative relocation against dynamic symbol %s" msgstr "" -#: elf64-alpha.c:3279 +#: elf64-alpha.c:4455 elf64-alpha.c:4599 #, c-format -msgid "%B: %A+%#Lx: warning: LITERAL relocation against unexpected insn" +msgid "%pB: pc-relative relocation against dynamic symbol %s" msgstr "" -#: elf64-alpha.c:4479 elf64-alpha.c:4492 +#: elf64-alpha.c:4484 #, c-format -msgid "%B: gp-relative relocation against dynamic symbol %s" +msgid "%pB: change in gp: BRSGP %s" msgstr "" -#: elf64-alpha.c:4519 elf64-alpha.c:4663 -#, c-format -msgid "%B: pc-relative relocation against dynamic symbol %s" +#: elf64-alpha.c:4509 mach-o.c:615 +#: /work/sources/binutils/current/bfd/elfnn-riscv.c:476 +msgid "" msgstr "" -#: elf64-alpha.c:4548 +#: elf64-alpha.c:4515 #, c-format -msgid "%B: change in gp: BRSGP %s" +msgid "%pB: !samegp reloc against symbol without .prologue: %s" msgstr "" #: elf64-alpha.c:4573 -msgid "" -msgstr "" - -#: elf64-alpha.c:4579 #, c-format -msgid "%B: !samegp reloc against symbol without .prologue: %s" +msgid "%pB: unhandled dynamic relocation against %s" msgstr "" -#: elf64-alpha.c:4637 +#: elf64-alpha.c:4608 #, c-format -msgid "%B: unhandled dynamic relocation against %s" +msgid "%pB: pc-relative relocation against undefined weak symbol %s" msgstr "" -#: elf64-alpha.c:4672 +#: elf64-alpha.c:4674 #, c-format -msgid "%B: pc-relative relocation against undefined weak symbol %s" +msgid "%pB: dtp-relative relocation against dynamic symbol %s" msgstr "" -#: elf64-alpha.c:4738 +#: elf64-alpha.c:4699 #, c-format -msgid "%B: dtp-relative relocation against dynamic symbol %s" +msgid "%pB: tp-relative relocation against dynamic symbol %s" msgstr "" -#: elf64-alpha.c:4763 +#: elf64-gen.c:71 #, c-format -msgid "%B: tp-relative relocation against dynamic symbol %s" +msgid "%pB: Relocations in generic ELF (EM: %d)" msgstr "" -#: elf64-hppa.c:2082 +#: elf64-hppa.c:2081 #, c-format -msgid "stub entry for %s cannot load .plt, dp offset = %Ld" +msgid "stub entry for %s cannot load .plt, dp offset = %" msgstr "" -#: elf64-hppa.c:3287 +#: elf64-hppa.c:3286 #, c-format -msgid "%B(%A+%#Lx): cannot reach %s" +msgid "%pB(%pA+%#): cannot reach %s" msgstr "" -#: elf64-ia64-vms.c:587 elf32-ia64.c:620 elf64-ia64.c:620 +#: elf64-ia64-vms.c:598 elf32-ia64.c:637 elf64-ia64.c:637 #, c-format msgid "" -"%B: Can't relax br at %#Lx in section `%A'. Please use brl or indirect " -"branch." +"%pB: can't relax br at %# in section `%pA'; please use brl or " +"indirect branch" msgstr "" -#: elf64-ia64-vms.c:2029 elf32-ia64.c:2282 elf64-ia64.c:2282 +#: elf64-ia64-vms.c:2040 elf32-ia64.c:2302 elf64-ia64.c:2302 msgid "@pltoff reloc against local symbol" msgstr "" -#: elf64-ia64-vms.c:3282 elf32-ia64.c:3688 elf64-ia64.c:3688 +#: elf64-ia64-vms.c:3292 elf32-ia64.c:3713 elf64-ia64.c:3713 #, c-format -msgid "%B: short data segment overflowed (%#Lx >= 0x400000)" +msgid "%pB: short data segment overflowed (%# >= 0x400000)" msgstr "" -#: elf64-ia64-vms.c:3292 elf32-ia64.c:3698 elf64-ia64.c:3698 -msgid "%B: __gp does not cover short data segment" +#: elf64-ia64-vms.c:3302 elf32-ia64.c:3723 elf64-ia64.c:3723 +#, c-format +msgid "%pB: __gp does not cover short data segment" msgstr "" -#: elf64-ia64-vms.c:3558 elf32-ia64.c:3965 elf64-ia64.c:3965 +#: elf64-ia64-vms.c:3572 elf32-ia64.c:3997 elf64-ia64.c:3997 #, c-format -msgid "%B: non-pic code with imm relocation against dynamic symbol `%s'" +msgid "%pB: non-pic code with imm relocation against dynamic symbol `%s'" msgstr "" -#: elf64-ia64-vms.c:3622 elf32-ia64.c:4033 elf64-ia64.c:4033 +#: elf64-ia64-vms.c:3636 elf32-ia64.c:4065 elf64-ia64.c:4065 #, c-format -msgid "%B: @gprel relocation against dynamic symbol %s" +msgid "%pB: @gprel relocation against dynamic symbol %s" msgstr "" -#: elf64-ia64-vms.c:3681 elf32-ia64.c:4096 elf64-ia64.c:4096 -msgid "%B: linking non-pic code in a position independent executable" +#: elf64-ia64-vms.c:3695 elf32-ia64.c:4128 elf64-ia64.c:4128 +#, c-format +msgid "%pB: linking non-pic code in a position independent executable" msgstr "" -#: elf64-ia64-vms.c:3783 elf32-ia64.c:4234 elf64-ia64.c:4234 +#: elf64-ia64-vms.c:3797 elf32-ia64.c:4266 elf64-ia64.c:4266 #, c-format -msgid "%B: @internal branch to dynamic symbol %s" +msgid "%pB: @internal branch to dynamic symbol %s" msgstr "" -#: elf64-ia64-vms.c:3786 elf32-ia64.c:4237 elf64-ia64.c:4237 +#: elf64-ia64-vms.c:3800 elf32-ia64.c:4269 elf64-ia64.c:4269 #, c-format -msgid "%B: speculation fixup to dynamic symbol %s" +msgid "%pB: speculation fixup to dynamic symbol %s" msgstr "" -#: elf64-ia64-vms.c:3789 elf32-ia64.c:4240 elf64-ia64.c:4240 +#: elf64-ia64-vms.c:3803 elf32-ia64.c:4272 elf64-ia64.c:4272 #, c-format -msgid "%B: @pcrel relocation against dynamic symbol %s" +msgid "%pB: @pcrel relocation against dynamic symbol %s" msgstr "" -#: elf64-ia64-vms.c:3913 elf32-ia64.c:4437 elf64-ia64.c:4437 +#: elf64-ia64-vms.c:3927 elf32-ia64.c:4469 elf64-ia64.c:4469 msgid "unsupported reloc" msgstr "" -#: elf64-ia64-vms.c:3950 elf32-ia64.c:4475 elf64-ia64.c:4475 +#: elf64-ia64-vms.c:3964 elf32-ia64.c:4507 elf64-ia64.c:4507 #, c-format msgid "" -"%B: missing TLS section for relocation %s against `%s' at %#Lx in section `" -"%A'." +"%pB: missing TLS section for relocation %s against `%s' at %# in " +"section `%pA'." msgstr "" -#: elf64-ia64-vms.c:3967 elf32-ia64.c:4492 elf64-ia64.c:4492 +#: elf64-ia64-vms.c:3981 elf32-ia64.c:4524 elf64-ia64.c:4524 #, c-format msgid "" -"%B: Can't relax br (%s) to `%s' at %#Lx in section `%A' with size %#Lx (> " -"0x1000000)." +"%pB: Can't relax br (%s) to `%s' at %# in section `%pA' with size " +"%# (> 0x1000000)." msgstr "" -#: elf64-ia64-vms.c:4258 elf32-ia64.c:4749 elf64-ia64.c:4749 -msgid "%B: linking trap-on-NULL-dereference with non-trapping files" +#: elf64-ia64-vms.c:4273 elf32-ia64.c:4782 elf64-ia64.c:4782 +#, c-format +msgid "%pB: linking trap-on-NULL-dereference with non-trapping files" msgstr "" -#: elf64-ia64-vms.c:4267 elf32-ia64.c:4758 elf64-ia64.c:4758 -msgid "%B: linking big-endian files with little-endian files" +#: elf64-ia64-vms.c:4282 elf32-ia64.c:4791 elf64-ia64.c:4791 +#, c-format +msgid "%pB: linking big-endian files with little-endian files" msgstr "" -#: elf64-ia64-vms.c:4276 elf32-ia64.c:4767 elf64-ia64.c:4767 -msgid "%B: linking 64-bit files with 32-bit files" +#: elf64-ia64-vms.c:4291 elf32-ia64.c:4800 elf64-ia64.c:4800 +#, c-format +msgid "%pB: linking 64-bit files with 32-bit files" msgstr "" -#: elf64-ia64-vms.c:4285 elf32-ia64.c:4776 elf64-ia64.c:4776 -msgid "%B: linking constant-gp files with non-constant-gp files" +#: elf64-ia64-vms.c:4300 elf32-ia64.c:4809 elf64-ia64.c:4809 +#, c-format +msgid "%pB: linking constant-gp files with non-constant-gp files" msgstr "" -#: elf64-ia64-vms.c:4295 elf32-ia64.c:4786 elf64-ia64.c:4786 -msgid "%B: linking auto-pic files with non-auto-pic files" +#: elf64-ia64-vms.c:4310 elf32-ia64.c:4819 elf64-ia64.c:4819 +#, c-format +msgid "%pB: linking auto-pic files with non-auto-pic files" msgstr "" -#: elf64-ia64-vms.c:5138 elflink.c:4736 +#: elf64-ia64-vms.c:5153 elflink.c:4875 #, c-format msgid "" -"Warning: alignment %u of common symbol `%s' in %B is greater than the " -"alignment (%u) of its section %A" +"warning: alignment %u of common symbol `%s' in %pB is greater than the " +"alignment (%u) of its section %pA" msgstr "" -#: elf64-ia64-vms.c:5145 elflink.c:4743 +#: elf64-ia64-vms.c:5160 elflink.c:4882 #, c-format -msgid "Warning: alignment %u of symbol `%s' in %B is smaller than %u in %B" +msgid "warning: alignment %u of symbol `%s' in %pB is smaller than %u in %pB" msgstr "" -#: elf64-ia64-vms.c:5161 elflink.c:4760 +#: elf64-ia64-vms.c:5176 elflink.c:4899 #, c-format -msgid "Warning: size of symbol `%s' changed from %Lu in %B to %Lu in %B" +msgid "" +"warning: size of symbol `%s' changed from % in %pB to % in " +"%pB" msgstr "" -#: elf64-mips.c:3615 elfn32-mips.c:3439 +#: elf64-mips.c:3763 #, c-format -msgid "unrecognised MIPS reloc number: %d" +msgid "%pB(%pA): relocation % has invalid symbol index %ld" msgstr "" #: elf64-mmix.c:984 msgid "" -"invalid input relocation when producing non-ELF, non-mmo format output.\n" -" Please use the objcopy program to convert from ELF or mmo,\n" -" or assemble using \"-no-expand\" (for gcc, \"-Wa,-no-expand\"" +"invalid input relocation when producing non-ELF, non-mmo format output; " +"please use the objcopy program to convert from ELF or mmo, or assemble using " +"\"-no-expand\" (for gcc, \"-Wa,-no-expand\"" msgstr "" #: elf64-mmix.c:1168 msgid "" -"invalid input relocation when producing non-ELF, non-mmo format output.\n" -" Please use the objcopy program to convert from ELF or mmo,\n" -" or compile using the gcc-option \"-mno-base-addresses\"." +"invalid input relocation when producing non-ELF, non-mmo format output; " +"please use the objcopy program to convert from ELF or mmo, or compile using " +"the gcc-option \"-mno-base-addresses\"." msgstr "" #: elf64-mmix.c:1195 #, c-format msgid "" -"%B: Internal inconsistency error for value for\n" -" linker-allocated global register: linked: %#Lx != relaxed: %#Lx" -msgstr "" - -#: elf64-mmix.c:1264 -#, c-format -msgid "%B: invalid MMIX reloc number: %d" +"%pB: Internal inconsistency error for value for\n" +" linker-allocated global register: linked: %# != relaxed: %#" msgstr "" -#: elf64-mmix.c:1616 +#: elf64-mmix.c:1619 #, c-format msgid "" -"%B: base-plus-offset relocation against register symbol: (unknown) in %A" +"%pB: base-plus-offset relocation against register symbol: (unknown) in %pA" msgstr "" -#: elf64-mmix.c:1622 +#: elf64-mmix.c:1625 #, c-format -msgid "%B: base-plus-offset relocation against register symbol: %s in %A" +msgid "%pB: base-plus-offset relocation against register symbol: %s in %pA" msgstr "" -#: elf64-mmix.c:1667 +#: elf64-mmix.c:1670 #, c-format -msgid "%B: register relocation against non-register symbol: (unknown) in %A" +msgid "%pB: register relocation against non-register symbol: (unknown) in %pA" msgstr "" -#: elf64-mmix.c:1673 +#: elf64-mmix.c:1676 #, c-format -msgid "%B: register relocation against non-register symbol: %s in %A" +msgid "%pB: register relocation against non-register symbol: %s in %pA" msgstr "" -#: elf64-mmix.c:1710 -msgid "%B: directive LOCAL valid only with a register or absolute value" +#: elf64-mmix.c:1713 +#, c-format +msgid "%pB: directive LOCAL valid only with a register or absolute value" msgstr "" -#: elf64-mmix.c:1741 +#: elf64-mmix.c:1744 #, c-format msgid "" -"%B: LOCAL directive: Register $%Ld is not a local register. First global " -"register is $%Ld." +"%pB: LOCAL directive: register $% is not a local register; first " +"global register is $%" msgstr "" -#: elf64-mmix.c:2200 +#: elf64-mmix.c:2173 #, c-format msgid "" -"%B: Error: multiple definition of `%s'; start of %s is set in a earlier " -"linked file\n" +"%pB: error: multiple definition of `%s'; start of %s is set in a earlier " +"linked file" msgstr "" -#: elf64-mmix.c:2255 -msgid "Register section has contents\n" +#: elf64-mmix.c:2228 +msgid "register section has contents\n" msgstr "" -#: elf64-mmix.c:2445 +#: elf64-mmix.c:2418 #, c-format msgid "" -"Internal inconsistency: remaining %lu != max %lu.\n" -" Please report this bug." +"internal inconsistency: remaining %lu != max %lu; please report this bug" msgstr "" -#: elf64-ppc.c:4632 +#: elf64-ppc.c:5082 #, c-format -msgid "%P: %B: cannot create stub entry %s\n" -msgstr "" - -#: elf64-ppc.c:5000 -msgid "%P: symbol '%s' has invalid st_other for ABI version 1\n" +msgid "symbol '%s' has invalid st_other for ABI version 1" msgstr "" -#: elf64-ppc.c:5172 +#: elf64-ppc.c:5257 #, c-format -msgid "%P: %B .opd not allowed in ABI version %d\n" +msgid "%pB .opd not allowed in ABI version %d" msgstr "" -#: elf64-ppc.c:5648 +#: elf64-ppc.c:5771 #, c-format -msgid "%H: %s reloc unsupported in shared libraries and PIEs.\n" +msgid "%H: %s reloc unsupported in shared libraries and PIEs\n" msgstr "" -#: elf64-ppc.c:6055 +#: elf64-ppc.c:6166 #, c-format -msgid "%B uses unknown e_flags 0x%lx" +msgid "%pB uses unknown e_flags 0x%lx" msgstr "" -#: elf64-ppc.c:6063 +#: elf64-ppc.c:6174 #, c-format -msgid "%B: ABI version %ld is not compatible with ABI version %ld output" +msgid "%pB: ABI version %ld is not compatible with ABI version %ld output" msgstr "" -#: elf64-ppc.c:6091 +#: elf64-ppc.c:6202 #, c-format msgid " [abiv%ld]" msgstr "" -#: elf64-ppc.c:7423 +#: elf64-ppc.c:7390 msgid "" -"%P: copy reloc against `%T' requires lazy plt linking; avoid setting " +"%P: copy reloc against `%pT' requires lazy plt linking; avoid setting " "LD_BIND_NOW=1 or upgrade gcc\n" msgstr "" -#: elf64-ppc.c:7690 -msgid "%B: undefined symbol on R_PPC64_TOCSAVE relocation" +#: elf64-ppc.c:7659 +#, c-format +msgid "%pB: undefined symbol on R_PPC64_TOCSAVE relocation" msgstr "" -#: elf64-ppc.c:7920 +#: elf64-ppc.c:7886 #, c-format -msgid "%P: dynreloc miscount for %B, section %A\n" +msgid "dynreloc miscount for %pB, section %pA" msgstr "" -#: elf64-ppc.c:8009 -msgid "%B: .opd is not a regular array of opd entries" +#: elf64-ppc.c:7975 +#, c-format +msgid "%pB: .opd is not a regular array of opd entries" msgstr "" -#: elf64-ppc.c:8019 +#: elf64-ppc.c:7985 #, c-format -msgid "%B: unexpected reloc type %u in .opd section" +msgid "%pB: unexpected reloc type %u in .opd section" msgstr "" -#: elf64-ppc.c:8041 +#: elf64-ppc.c:8007 #, c-format -msgid "%B: undefined sym `%s' in .opd section" +msgid "%pB: undefined sym `%s' in .opd section" msgstr "" -#: elf64-ppc.c:8379 +#: elf64-ppc.c:8491 msgid "" -"%P: warning: --plt-localentry is especially dangerous without ld.so support " -"to detect ABI violations.\n" +"warning: --plt-localentry is especially dangerous without ld.so support to " +"detect ABI violations" msgstr "" -#: elf64-ppc.c:8628 +#: elf64-ppc.c:8740 msgid "%H __tls_get_addr lost arg, TLS optimization disabled\n" msgstr "" -#: elf64-ppc.c:8971 elf64-ppc.c:9608 +#: elf64-ppc.c:9115 elf64-ppc.c:9752 #, c-format msgid "%s defined on removed toc entry" msgstr "" -#: elf64-ppc.c:9336 +#: elf64-ppc.c:9480 #, c-format -msgid "%H: toc optimization is not supported for %s instruction.\n" +msgid "%H: toc optimization is not supported for %s instruction\n" msgstr "" -#: elf64-ppc.c:9565 +#: elf64-ppc.c:9709 #, c-format msgid "%H: %s references optimized away TOC entry\n" msgstr "" -#: elf64-ppc.c:10906 -msgid "%P: cannot find opd entry toc for `%T'\n" +#: elf64-ppc.c:10540 +#, c-format +msgid "warning: discarding dynamic section %s" msgstr "" -#: elf64-ppc.c:10997 -msgid "%P: long branch stub `%s' offset overflow\n" +#: elf64-ppc.c:11127 +msgid "%P: cannot find opd entry toc for `%pT'\n" msgstr "" -#: elf64-ppc.c:11056 -msgid "%P: can't find branch stub `%s'\n" +#: elf64-ppc.c:11215 +#, c-format +msgid "long branch stub `%s' offset overflow" msgstr "" -#: elf64-ppc.c:11120 elf64-ppc.c:11272 elf64-ppc.c:13134 +#: elf64-ppc.c:11274 #, c-format -msgid "%P: linkage table error against `%T'\n" +msgid "can't find branch stub `%s'" msgstr "" -#: elf64-ppc.c:11491 -msgid "%P: can't build branch stub `%s'\n" +#: elf64-ppc.c:11338 elf64-ppc.c:11466 elf64-ppc.c:13435 +#, c-format +msgid "%P: linkage table error against `%pT'\n" msgstr "" -#: elf64-ppc.c:12264 +#: elf64-ppc.c:11689 #, c-format -msgid "%B section %A exceeds stub group size" +msgid "can't build branch stub `%s'" msgstr "" -#: elf64-ppc.c:13407 -msgid "%P: stubs don't match calculated size\n" +#: elf64-ppc.c:12465 +#, c-format +msgid "%pB section %pA exceeds stub group size" msgstr "" -#: elf64-ppc.c:13419 +#: elf64-ppc.c:13833 +#, c-format +msgid "linker stubs in %u group\n" +msgid_plural "linker stubs in %u groups\n" +msgstr[0] "" +msgstr[1] "" + +#: elf64-ppc.c:13837 #, c-format msgid "" -"linker stubs in %u group%s\n" " branch %lu\n" " toc adjust %lu\n" " long branch %lu\n" @@ -4597,1251 +4247,1358 @@ " global entry %lu" msgstr "" -#: elf64-ppc.c:13741 +#: elf64-ppc.c:14156 #, c-format -msgid "%H: %s used with TLS symbol `%T'\n" +msgid "%H: %s used with TLS symbol `%pT'\n" msgstr "" -#: elf64-ppc.c:13743 +#: elf64-ppc.c:14158 #, c-format -msgid "%H: %s used with non-TLS symbol `%T'\n" +msgid "%H: %s used with non-TLS symbol `%pT'\n" msgstr "" -#: elf64-ppc.c:14382 +#: elf64-ppc.c:14802 #, c-format -msgid "%H: call to `%T' lacks nop, can't restore toc; recompile with -fPIC\n" +msgid "%H: call to `%pT' lacks nop, can't restore toc; recompile with -fPIC\n" msgstr "" -#: elf64-ppc.c:14388 +#: elf64-ppc.c:14808 #, c-format msgid "" -"%H: call to `%T' lacks nop, can't restore toc; (-mcmodel=small toc adjust " +"%H: call to `%pT' lacks nop, can't restore toc; (-mcmodel=small toc adjust " "stub)\n" msgstr "" -#: elf64-ppc.c:14516 -#, c-format -msgid "%P: %B: unknown relocation type %d for `%T'\n" -msgstr "" - -#: elf64-ppc.c:15064 +#: elf64-ppc.c:15503 #, c-format -msgid "%H: %s for indirect function `%T' unsupported\n" +msgid "%H: %s for indirect function `%pT' unsupported\n" msgstr "" -#: elf64-ppc.c:15176 +#: elf64-ppc.c:15615 #, c-format -msgid "%P: %B: %s is not supported for `%T'\n" +msgid "%P: %pB: %s is not supported for `%pT'\n" msgstr "" -#: elf64-ppc.c:15331 +#: elf64-ppc.c:15841 #, c-format msgid "%H: error: %s not a multiple of %u\n" msgstr "" -#: elf64-ppc.c:15353 +#: elf64-ppc.c:15864 #, c-format -msgid "%H: unresolvable %s against `%T'\n" +msgid "%H: unresolvable %s against `%pT'\n" msgstr "" -#: elf64-ppc.c:15450 +#: elf64-ppc.c:15961 #, c-format -msgid "%H: %s against `%T': error %d\n" +msgid "%H: %s against `%pT': error %d\n" msgstr "" -#: elf64-ppc.c:15840 elf64-ppc.c:15859 -msgid "%P: %s offset too large for .eh_frame sdata4 encoding" +#: elf64-ppc.c:16307 elf64-ppc.c:16326 +#, c-format +msgid "%s offset too large for .eh_frame sdata4 encoding" msgstr "" -#: elf64-s390.c:2712 +#: elf64-s390.c:2540 +#, c-format msgid "" -"%B: `%s' non-PLT reloc for symbol defined in shared library and accessed " +"%pB: `%s' non-PLT reloc for symbol defined in shared library and accessed " "from executable (rebuild file with -fPIC ?)" msgstr "" -#: elf64-sh64.c:1680 +#: elf64-sparc.c:459 #, c-format -msgid "%B: error: unaligned relocation type %d at %08Lx reloc %08Lx" +msgid "%pB: only registers %%g[2367] can be declared using STT_REGISTER" msgstr "" -#: elf64-sparc.c:460 -msgid "%B: Only registers %%g[2367] can be declared using STT_REGISTER" -msgstr "" - -#: elf64-sparc.c:481 +#: elf64-sparc.c:480 #, c-format -msgid "Register %%g%d used incompatibly: %s in %B, previously %s in %B" +msgid "register %%g%d used incompatibly: %s in %pB, previously %s in %pB" msgstr "" -#: elf64-sparc.c:505 +#: elf64-sparc.c:504 #, c-format -msgid "Symbol `%s' has differing types: REGISTER in %B, previously %s in %B" +msgid "symbol `%s' has differing types: REGISTER in %pB, previously %s in %pB" msgstr "" -#: elf64-sparc.c:552 +#: elf64-sparc.c:551 #, c-format -msgid "Symbol `%s' has differing types: %s in %B, previously REGISTER in %B" +msgid "Symbol `%s' has differing types: %s in %pB, previously REGISTER in %pB" msgstr "" -#: elf64-sparc.c:707 -msgid "%B: linking UltraSPARC specific with HAL specific code" +#: elf64-sparc.c:706 +#, c-format +msgid "%pB: linking UltraSPARC specific with HAL specific code" msgstr "" -#: elf64-x86-64.c:1900 +#: elf64-x86-64.c:1412 msgid "hidden symbol " msgstr "" -#: elf64-x86-64.c:1903 +#: elf64-x86-64.c:1415 msgid "internal symbol " msgstr "" -#: elf64-x86-64.c:1906 +#: elf64-x86-64.c:1418 elf64-x86-64.c:1422 msgid "protected symbol " msgstr "" -#: elf64-x86-64.c:1909 -msgid "symbol " +#: elf64-x86-64.c:1424 +msgid "symbol " +msgstr "" + +#: elf64-x86-64.c:1425 elf64-x86-64.c:1435 +msgid "; recompile with -fPIC" +msgstr "" + +#: elf64-x86-64.c:1430 +msgid "undefined " +msgstr "" + +#: elf64-x86-64.c:1439 +msgid "a shared object" msgstr "" -#: elf64-x86-64.c:1910 elf64-x86-64.c:1920 -msgid "; recompile with -fPIC" +#: elf64-x86-64.c:1441 +msgid "a PIE object" msgstr "" -#: elf64-x86-64.c:1915 -msgid "undefined " +#: elf64-x86-64.c:1443 +msgid "a PDE object" msgstr "" -#: elf64-x86-64.c:1924 +#: elf64-x86-64.c:1446 #, c-format -msgid "" -"%B: relocation %s against %s%s`%s' can not be used when making a shared " -"object%s" +msgid "%pB: relocation %s against %s%s`%s' can not be used when making %s%s" msgstr "" -#: elf64-x86-64.c:2487 +#: elf64-x86-64.c:1931 #, c-format -msgid "%B: relocation %s against symbol `%s' isn't supported in x32 mode" +msgid "%pB: relocation %s against symbol `%s' isn't supported in x32 mode" msgstr "" -#: elf64-x86-64.c:2610 +#: elf64-x86-64.c:2073 #, c-format -msgid "%B: '%s' accessed both as normal and thread local symbol" +msgid "%pB: '%s' accessed both as normal and thread local symbol" msgstr "" -#: elf64-x86-64.c:4546 /work/sources/binutils/current/bfd/elfnn-aarch64.c:5018 +#: elf64-x86-64.c:2693 /work/sources/binutils/current/bfd/elfnn-aarch64.c:5299 #, c-format msgid "" -"%B: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %Ld" +"%pB: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: " +"%" msgstr "" -#: elf64-x86-64.c:4801 +#: elf64-x86-64.c:2931 #, c-format msgid "" -"%B: relocation R_X86_64_GOTOFF64 against undefined %s `%s' can not be used " +"%pB: relocation R_X86_64_GOTOFF64 against undefined %s `%s' can not be used " "when making a shared object" msgstr "" -#: elf64-x86-64.c:4815 +#: elf64-x86-64.c:2945 #, c-format msgid "" -"%B: relocation R_X86_64_GOTOFF64 against protected %s `%s' can not be used " +"%pB: relocation R_X86_64_GOTOFF64 against protected %s `%s' can not be used " "when making a shared object" msgstr "" -#: elf64-x86-64.c:5089 +#: elf64-x86-64.c:3205 #, c-format msgid "" -"%B: addend %s%#x in relocation %s against symbol `%s' at %#Lx in section `" -"%A' is out of range" +"%pB: addend %s%#x in relocation %s against symbol `%s' at %# in " +"section `%pA' is out of range" msgstr "" -#: elf64-x86-64.c:5911 -#, c-format -msgid "%F%B: PC-relative offset overflow in PLT entry for `%s'\n" -msgstr "" - -#: elf64-x86-64.c:5978 -#, c-format -msgid "%F%B: branch displacement overflow in PLT entry for `%s'\n" +#: elf64-x86-64.c:3882 +msgid "%F%P: failed to convert GOTPCREL relocation; relink with --no-relax\n" msgstr "" -#: elf64-x86-64.c:6031 +#: elf64-x86-64.c:4040 #, c-format -msgid "%F%B: PC-relative offset overflow in GOT PLT entry for `%s'\n" +msgid "%F%pB: PC-relative offset overflow in PLT entry for `%s'\n" msgstr "" -#: elf64-x86-64.c:7614 +#: elf64-x86-64.c:4103 #, c-format -msgid "%F: failed to create BND PLT section\n" +msgid "%F%pB: branch displacement overflow in PLT entry for `%s'\n" msgstr "" -#: elf64-x86-64.c:7664 +#: elf64-x86-64.c:4156 #, c-format -msgid "%F: failed to create BND PLT .eh_frame section\n" +msgid "%F%pB: PC-relative offset overflow in GOT PLT entry for `%s'\n" msgstr "" #: elfcode.h:760 -msgid "warning: %B has a corrupt string table index - ignoring" +#, c-format +msgid "warning: %pB has a corrupt string table index - ignoring" msgstr "" -#: elfcode.h:1193 +#: elfcode.h:1199 #, c-format -msgid "%B: version count (%Ld) does not match symbol count (%ld)" +msgid "%pB: version count (%) does not match symbol count (%ld)" msgstr "" -#: elfcode.h:1448 +#: elfcode.h:1458 #, c-format -msgid "%B(%A): relocation %d has invalid symbol index %ld" +msgid "%pB(%pA): relocation %d has invalid symbol index %ld" msgstr "" #: elfcore.h:300 #, c-format -msgid "warning: %B is truncated: expected core file size >= %Lu, found: %llu" +msgid "" +"warning: %pB is truncated: expected core file size >= %, found: " +"%" msgstr "" -#: elflink.c:1336 +#: elflink.c:1369 #, c-format msgid "" -"%s: TLS definition in %B section %A mismatches non-TLS definition in %B " -"section %A" +"%s: TLS definition in %pB section %pA mismatches non-TLS definition in %pB " +"section %pA" msgstr "" -#: elflink.c:1342 +#: elflink.c:1375 #, c-format -msgid "%s: TLS reference in %B mismatches non-TLS reference in %B" +msgid "%s: TLS reference in %pB mismatches non-TLS reference in %pB" msgstr "" -#: elflink.c:1348 +#: elflink.c:1381 #, c-format -msgid "%s: TLS definition in %B section %A mismatches non-TLS reference in %B" +msgid "" +"%s: TLS definition in %pB section %pA mismatches non-TLS reference in %pB" msgstr "" -#: elflink.c:1354 +#: elflink.c:1387 #, c-format -msgid "%s: TLS reference in %B mismatches non-TLS definition in %B section %A" +msgid "" +"%s: TLS reference in %pB mismatches non-TLS definition in %pB section %pA" msgstr "" -#: elflink.c:2015 +#: elflink.c:2068 #, c-format -msgid "%B: unexpected redefinition of indirect versioned symbol `%s'" +msgid "%pB: unexpected redefinition of indirect versioned symbol `%s'" msgstr "" -#: elflink.c:2308 +#: elflink.c:2437 #, c-format -msgid "%B: version node not found for symbol %s" +msgid "%pB: version node not found for symbol %s" msgstr "" -#: elflink.c:2397 +#: elflink.c:2526 #, c-format msgid "" -"%B: bad reloc symbol index (%#Lx >= %#lx) for offset %#Lx in section `%A'" +"%pB: bad reloc symbol index (%# >= %#lx) for offset %# in " +"section `%pA'" msgstr "" -#: elflink.c:2409 +#: elflink.c:2538 #, c-format msgid "" -"%B: non-zero symbol index (%#Lx) for offset %#Lx in section `%A' when the " -"object file has no symbol table" +"%pB: non-zero symbol index (%#) for offset %# in section `" +"%pA' when the object file has no symbol table" msgstr "" -#: elflink.c:2600 +#: elflink.c:2729 #, c-format -msgid "%B: relocation size mismatch in %B section %A" +msgid "%pB: relocation size mismatch in %pB section %pA" msgstr "" -#: elflink.c:2911 +#: elflink.c:3047 #, c-format msgid "warning: type and size of dynamic symbol `%s' are not defined" msgstr "" -#: elflink.c:2976 -msgid "%P: copy reloc against protected `%T' is dangerous\n" +#: elflink.c:3109 +msgid "%P: copy reloc against protected `%pT' is dangerous\n" msgstr "" -#: elflink.c:3777 +#: elflink.c:3913 #, c-format -msgid "%P: alternate ELF machine code found (%d) in %B, expecting %d\n" +msgid "alternate ELF machine code found (%d) in %pB, expecting %d" msgstr "" -#: elflink.c:4444 +#: elflink.c:4579 #, c-format -msgid "%B: %s: invalid version %u (max %d)" +msgid "%pB: %s: invalid version %u (max %d)" msgstr "" -#: elflink.c:4481 +#: elflink.c:4616 #, c-format -msgid "%B: %s: invalid needed version %d" +msgid "%pB: %s: invalid needed version %d" msgstr "" -#: elflink.c:4896 +#: elflink.c:5035 #, c-format -msgid "%B: undefined reference to symbol '%s'" +msgid "%pB: undefined reference to symbol '%s'" msgstr "" -#: elflink.c:5909 +#: elflink.c:6111 #, c-format -msgid "%B: stack size specified and %s set" +msgid "%pB: stack size specified and %s set" msgstr "" -#: elflink.c:5913 +#: elflink.c:6115 #, c-format -msgid "%B: %s not absolute" +msgid "%pB: %s not absolute" msgstr "" -#: elflink.c:6111 +#: elflink.c:6312 #, c-format msgid "%s: undefined version: %s" msgstr "" -#: elflink.c:6688 -msgid "%B: .preinit_array section is not allowed in DSO" +#: elflink.c:6883 +#, c-format +msgid "%pB: .preinit_array section is not allowed in DSO" msgstr "" -#: elflink.c:8128 +#: elflink.c:8340 #, c-format msgid "undefined %s reference in complex symbol: %s" msgstr "" -#: elflink.c:8283 +#: elflink.c:8495 #, c-format msgid "unknown operator '%c' in complex symbol" msgstr "" #. PR 21524: Let the user know if a symbol was removed by garbage collection. -#: elflink.c:8621 +#: elflink.c:8833 +#, c-format msgid "" -"%B:%A: error: relocation references symbol %s which was removed by garbage " -"collection." +"%pB:%pA: error: relocation references symbol %s which was removed by garbage " +"collection" msgstr "" -#: elflink.c:8624 -msgid "%B:%A: error: try relinking with --gc-keep-exported enabled." +#: elflink.c:8836 +#, c-format +msgid "%pB:%pA: error: try relinking with --gc-keep-exported enabled" msgstr "" -#: elflink.c:8860 elflink.c:8878 elflink.c:8917 elflink.c:8935 -msgid "%B: Unable to sort relocs - they are in more than one size" +#: elflink.c:9072 elflink.c:9090 elflink.c:9129 elflink.c:9147 +#, c-format +msgid "%pB: unable to sort relocs - they are in more than one size" msgstr "" #. The section size is not divisible by either - #. something is wrong. -#: elflink.c:8894 elflink.c:8951 -msgid "%B: Unable to sort relocs - they are of an unknown size" +#: elflink.c:9106 elflink.c:9163 +#, c-format +msgid "%pB: unable to sort relocs - they are of an unknown size" msgstr "" -#: elflink.c:9003 -msgid "Not enough memory to sort relocations" +#: elflink.c:9215 +msgid "not enough memory to sort relocations" msgstr "" -#: elflink.c:9271 +#: elflink.c:9483 #, c-format -msgid "%B: Too many sections: %d (>= %d)" +msgid "%pB: too many sections: %d (>= %d)" msgstr "" -#: elflink.c:9551 +#: elflink.c:9763 #, c-format -msgid "%B: internal symbol `%s' in %B is referenced by DSO" +msgid "%pB: internal symbol `%s' in %pB is referenced by DSO" msgstr "" -#: elflink.c:9554 +#: elflink.c:9766 #, c-format -msgid "%B: hidden symbol `%s' in %B is referenced by DSO" +msgid "%pB: hidden symbol `%s' in %pB is referenced by DSO" msgstr "" -#: elflink.c:9557 +#: elflink.c:9769 #, c-format -msgid "%B: local symbol `%s' in %B is referenced by DSO" +msgid "%pB: local symbol `%s' in %pB is referenced by DSO" msgstr "" -#: elflink.c:9643 +#: elflink.c:9855 #, c-format -msgid "%B: could not find output section %A for input section %A" +msgid "%pB: could not find output section %pA for input section %pA" msgstr "" -#: elflink.c:9797 +#: elflink.c:10009 #, c-format -msgid "%B: protected symbol `%s' isn't defined" +msgid "%pB: protected symbol `%s' isn't defined" msgstr "" -#: elflink.c:9800 +#: elflink.c:10012 #, c-format -msgid "%B: internal symbol `%s' isn't defined" +msgid "%pB: internal symbol `%s' isn't defined" msgstr "" -#: elflink.c:9803 +#: elflink.c:10015 #, c-format -msgid "%B: hidden symbol `%s' isn't defined" +msgid "%pB: hidden symbol `%s' isn't defined" msgstr "" -#: elflink.c:9834 +#: elflink.c:10046 #, c-format -msgid "%B: No symbol version section for versioned symbol `%s'" +msgid "%pB: no symbol version section for versioned symbol `%s'" msgstr "" -#: elflink.c:10441 +#: elflink.c:10656 #, c-format -msgid "error: %B: size of section %A is not multiple of address size" +msgid "error: %pB: size of section %pA is not multiple of address size" msgstr "" -#: elflink.c:10486 +#: elflink.c:10701 #, c-format msgid "" -"error: %B contains a reloc (%#Lx) for section %A that references a non-" -"existent global symbol" +"error: %pB contains a reloc (%#) for section %pA that references a " +"non-existent global symbol" msgstr "" -#: elflink.c:11241 +#: elflink.c:11456 #, c-format -msgid "%A has both ordered [`%A' in %B] and unordered [`%A' in %B] sections" +msgid "" +"%pA has both ordered [`%pA' in %pB] and unordered [`%pA' in %pB] sections" msgstr "" -#: elflink.c:11247 +#: elflink.c:11462 #, c-format -msgid "%A has both ordered and unordered sections" +msgid "%pA has both ordered and unordered sections" msgstr "" -#: elflink.c:11349 -msgid "%B: no symbol found for import library" +#: elflink.c:11564 +#, c-format +msgid "%pB: no symbol found for import library" msgstr "" -#: elflink.c:11971 +#: elflink.c:12193 #, c-format -msgid "%B: file class %s incompatible with %s" +msgid "%pB: file class %s incompatible with %s" msgstr "" -#: elflink.c:12188 -msgid "%B: failed to generate import library" +#: elflink.c:12410 +#, c-format +msgid "%pB: failed to generate import library" msgstr "" -#: elflink.c:12307 +#: elflink.c:12529 #, c-format msgid "warning: %s section has zero size" msgstr "" -#: elflink.c:12355 +#: elflink.c:12577 #, c-format msgid "warning: section '%s' is being made into a note" msgstr "" -#: elflink.c:12447 -msgid "%P%X: read-only segment has dynamic relocations.\n" +#: elflink.c:12669 +msgid "%P%X: read-only segment has dynamic relocations\n" msgstr "" -#: elflink.c:12450 -msgid "%P: warning: creating a DT_TEXTREL in a shared object.\n" +#: elflink.c:12672 +msgid "%P: warning: creating a DT_TEXTREL in a shared object\n" msgstr "" -#: elflink.c:12575 +#: elflink.c:12797 msgid "%P%X: can not read symbols: %E\n" msgstr "" -#: elflink.c:12737 -msgid "%F%P: corrupt input: %B\n" +#: elflink.c:12970 +msgid "%F%P: corrupt input: %pB\n" msgstr "" -#: elflink.c:13426 +#: elflink.c:13636 #, c-format -msgid "%B: %A+%#Lx: No symbol found for INHERIT" +msgid "%pB: %pA+%#: no symbol found for INHERIT" msgstr "" -#: elflink.c:13602 +#: elflink.c:13812 #, c-format -msgid "Unrecognized INPUT_SECTION_FLAG %s\n" +msgid "unrecognized INPUT_SECTION_FLAG %s\n" msgstr "" #: elfxx-mips.c:1444 msgid "static procedure (no name)" msgstr "" -#: elfxx-mips.c:5627 +#: elfxx-mips.c:5629 msgid "MIPS16 and microMIPS functions cannot call each other" msgstr "" -#: elfxx-mips.c:6370 -msgid "%X%H: Unsupported JALX to the same ISA mode\n" +#: elfxx-mips.c:6377 +msgid "%X%H: unsupported JALX to the same ISA mode\n" msgstr "" -#: elfxx-mips.c:6403 +#: elfxx-mips.c:6410 msgid "" -"%X%H: Unsupported jump between ISA modes; consider recompiling with " +"%X%H: unsupported jump between ISA modes; consider recompiling with " "interlinking enabled\n" msgstr "" -#: elfxx-mips.c:6444 +#: elfxx-mips.c:6455 msgid "" -"%X%H: Cannot convert branch between ISA modes to JALX: relocation out of " +"%X%H: cannot convert branch between ISA modes to JALX: relocation out of " "range\n" msgstr "" -#: elfxx-mips.c:6456 -msgid "%X%H: Unsupported branch between ISA modes\n" +#: elfxx-mips.c:6467 +msgid "%X%H: unsupported branch between ISA modes\n" +msgstr "" + +#: elfxx-mips.c:7111 +#, c-format +msgid "" +"%pB: incorrect `.reginfo' section size; expected %, got %" msgstr "" -#: elfxx-mips.c:7134 elfxx-mips.c:7369 +#: elfxx-mips.c:7155 elfxx-mips.c:7390 #, c-format -msgid "%B: Warning: bad `%s' option size %u smaller than its header" +msgid "%pB: warning: bad `%s' option size %u smaller than its header" msgstr "" -#: elfxx-mips.c:8125 elfxx-mips.c:8251 +#: elfxx-mips.c:8146 elfxx-mips.c:8272 #, c-format -msgid "%B: Warning: cannot determine the target function for stub section `%s'" +msgid "" +"%pB: warning: cannot determine the target function for stub section `%s'" msgstr "" -#: elfxx-mips.c:8383 +#: elfxx-mips.c:8404 #, c-format -msgid "%B: Malformed reloc detected for section %s" +msgid "%pB: malformed reloc detected for section %s" msgstr "" -#: elfxx-mips.c:8459 +#: elfxx-mips.c:8476 #, c-format -msgid "%B: GOT reloc at %#Lx not expected in executables" +msgid "%pB: GOT reloc at %# not expected in executables" msgstr "" -#: elfxx-mips.c:8597 +#: elfxx-mips.c:8614 #, c-format -msgid "%B: CALL16 reloc at %#Lx not against global symbol" +msgid "%pB: CALL16 reloc at %# not against global symbol" msgstr "" -#: elfxx-mips.c:9219 +#: elfxx-mips.c:9237 #, c-format msgid "non-dynamic relocations refer to dynamic symbol %s" msgstr "" -#: elfxx-mips.c:10139 +#: elfxx-mips.c:10164 #, c-format msgid "" -"%B: Can't find matching LO16 reloc against `%s' for %s at %#Lx in section `" -"%A'" +"%pB: can't find matching LO16 reloc against `%s' for %s at %# in " +"section `%pA'" msgstr "" -#: elfxx-mips.c:10279 +#: elfxx-mips.c:10304 msgid "" "small-data section exceeds 64KB; lower small-data size limit (see option -G)" msgstr "" -#: elfxx-mips.c:10298 -msgid "Cannot convert a jump to JALX for a non-word-aligned address" +#: elfxx-mips.c:10323 +msgid "cannot convert a jump to JALX for a non-word-aligned address" msgstr "" -#: elfxx-mips.c:10301 -msgid "Jump to a non-word-aligned address" +#: elfxx-mips.c:10326 +msgid "jump to a non-word-aligned address" msgstr "" -#: elfxx-mips.c:10302 -msgid "Jump to a non-instruction-aligned address" +#: elfxx-mips.c:10327 +msgid "jump to a non-instruction-aligned address" msgstr "" -#: elfxx-mips.c:10305 -msgid "Cannot convert a branch to JALX for a non-word-aligned address" +#: elfxx-mips.c:10330 +msgid "cannot convert a branch to JALX for a non-word-aligned address" msgstr "" -#: elfxx-mips.c:10307 -msgid "Branch to a non-instruction-aligned address" +#: elfxx-mips.c:10332 +msgid "branch to a non-instruction-aligned address" msgstr "" -#: elfxx-mips.c:10309 +#: elfxx-mips.c:10334 msgid "PC-relative load from unaligned address" msgstr "" -#: elfxx-mips.c:10683 elfxx-mips.c:11251 +#: elfxx-mips.c:10612 +#, c-format +msgid "" +"%pB: `%pA' entry VMA of %# outside the 32-bit range supported; " +"consider using `-Ttext-segment=...'" +msgstr "" + +#: elfxx-mips.c:10725 elfxx-mips.c:11298 +#, c-format +msgid "%pB: `%pA' offset of % from `%pA' beyond the range of ADDIUPC" +msgstr "" + +#: elfxx-mips.c:11270 #, c-format -msgid "%B: `%A' offset of %Ld from `%A' beyond the range of ADDIUPC" +msgid "" +"%pB: `%pA' start VMA of %# outside the 32-bit range supported; " +"consider using `-Ttext-segment=...'" msgstr "" -#: elfxx-mips.c:14174 +#: elfxx-mips.c:14178 #, c-format -msgid "%B: Unknown architecture %s" +msgid "%pB: unknown architecture %s" msgstr "" -#: elfxx-mips.c:14704 +#: elfxx-mips.c:14712 #, c-format -msgid "%B: illegal section name `%A'" +msgid "%pB: illegal section name `%pA'" msgstr "" -#: elfxx-mips.c:14981 -msgid "%B: warning: linking abicalls files with non-abicalls files" +#: elfxx-mips.c:14989 +#, c-format +msgid "%pB: warning: linking abicalls files with non-abicalls files" msgstr "" -#: elfxx-mips.c:14998 -msgid "%B: linking 32-bit code with 64-bit code" +#: elfxx-mips.c:15006 +#, c-format +msgid "%pB: linking 32-bit code with 64-bit code" msgstr "" -#: elfxx-mips.c:15030 elfxx-mips.c:15096 elfxx-mips.c:15111 +#: elfxx-mips.c:15038 elfxx-mips.c:15104 elfxx-mips.c:15119 #, c-format -msgid "%B: linking %s module with previous %s modules" +msgid "%pB: linking %s module with previous %s modules" msgstr "" -#: elfxx-mips.c:15054 +#: elfxx-mips.c:15062 #, c-format -msgid "%B: ABI mismatch: linking %s module with previous %s modules" +msgid "%pB: ABI mismatch: linking %s module with previous %s modules" msgstr "" -#: elfxx-mips.c:15079 +#: elfxx-mips.c:15087 #, c-format -msgid "%B: ASE mismatch: linking %s module with previous %s modules" +msgid "%pB: ASE mismatch: linking %s module with previous %s modules" msgstr "" -#: elfxx-mips.c:15213 +#: elfxx-mips.c:15221 +#, c-format msgid "" -"Warning: %B uses unknown floating point ABI %d (set by %B), %B uses unknown " -"floating point ABI %d" +"warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses " +"unknown floating point ABI %d" msgstr "" -#: elfxx-mips.c:15219 +#: elfxx-mips.c:15227 #, c-format -msgid "Warning: %B uses unknown floating point ABI %d (set by %B), %B uses %s" +msgid "" +"warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses %s" msgstr "" -#: elfxx-mips.c:15225 +#: elfxx-mips.c:15233 #, c-format -msgid "Warning: %B uses %s (set by %B), %B uses unknown floating point ABI %d" +msgid "" +"warning: %pB uses %s (set by %pB), %pB uses unknown floating point ABI %d" msgstr "" -#: elfxx-mips.c:15239 +#: elfxx-mips.c:15247 #, c-format -msgid "Warning: %B uses %s (set by %B), %B uses %s" +msgid "warning: %pB uses %s (set by %pB), %pB uses %s" msgstr "" -#: elfxx-mips.c:15258 +#: elfxx-mips.c:15266 #, c-format -msgid "Warning: %B uses %s (set by %B), %B uses unknown MSA ABI %d" +msgid "warning: %pB uses %s (set by %pB), %pB uses unknown MSA ABI %d" msgstr "" -#: elfxx-mips.c:15270 +#: elfxx-mips.c:15278 #, c-format -msgid "Warning: %B uses unknown MSA ABI %d (set by %B), %B uses %s" +msgid "warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses %s" msgstr "" -#: elfxx-mips.c:15279 +#: elfxx-mips.c:15287 #, c-format msgid "" -"Warning: %B uses unknown MSA ABI %d (set by %B), %B uses unknown MSA ABI %d" +"warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses unknown MSA ABI " +"%d" msgstr "" -#: elfxx-mips.c:15341 -msgid "%B: endianness incompatible with that of the selected emulation" +#: elfxx-mips.c:15349 +#, c-format +msgid "%pB: endianness incompatible with that of the selected emulation" msgstr "" -#: elfxx-mips.c:15355 -msgid "%B: ABI is incompatible with that of the selected emulation" +#: elfxx-mips.c:15363 +#, c-format +msgid "%pB: ABI is incompatible with that of the selected emulation" msgstr "" -#: elfxx-mips.c:15407 -msgid "%B: warning: Inconsistent ISA between e_flags and .MIPS.abiflags" +#: elfxx-mips.c:15415 +#, c-format +msgid "%pB: warning: inconsistent ISA between e_flags and .MIPS.abiflags" msgstr "" -#: elfxx-mips.c:15412 +#: elfxx-mips.c:15420 +#, c-format msgid "" -"%B: warning: Inconsistent FP ABI between .gnu.attributes and .MIPS.abiflags" +"%pB: warning: inconsistent FP ABI between .gnu.attributes and .MIPS.abiflags" msgstr "" -#: elfxx-mips.c:15416 -msgid "%B: warning: Inconsistent ASEs between e_flags and .MIPS.abiflags" +#: elfxx-mips.c:15424 +#, c-format +msgid "%pB: warning: inconsistent ASEs between e_flags and .MIPS.abiflags" msgstr "" -#: elfxx-mips.c:15423 +#: elfxx-mips.c:15431 +#, c-format msgid "" -"%B: warning: Inconsistent ISA extensions between e_flags and .MIPS.abiflags" +"%pB: warning: inconsistent ISA extensions between e_flags and .MIPS.abiflags" msgstr "" -#: elfxx-mips.c:15427 +#: elfxx-mips.c:15435 +#, c-format msgid "" -"%B: warning: Unexpected flag in the flags2 field of .MIPS.abiflags (0x%lx)" +"%pB: warning: unexpected flag in the flags2 field of .MIPS.abiflags (0x%lx)" msgstr "" -#: elfxx-mips.c:15616 +#: elfxx-mips.c:15624 msgid "-mips32r2 -mfp64 (12 callee-saved)" msgstr "" -#: elfxx-mips.c:15666 elfxx-mips.c:15677 +#: elfxx-mips.c:15678 elfxx-mips.c:15689 msgid "None" msgstr "" -#: elfxx-mips.c:15668 elfxx-mips.c:15740 +#: elfxx-mips.c:15680 elfxx-mips.c:15752 msgid "Unknown" msgstr "" -#: elfxx-mips.c:15751 +#: elfxx-mips.c:15763 #, c-format msgid "Hard or soft float\n" msgstr "" -#: elfxx-mips.c:15754 +#: elfxx-mips.c:15766 #, c-format msgid "Hard float (double precision)\n" msgstr "" -#: elfxx-mips.c:15757 +#: elfxx-mips.c:15769 #, c-format msgid "Hard float (single precision)\n" msgstr "" -#: elfxx-mips.c:15760 +#: elfxx-mips.c:15772 #, c-format msgid "Soft float\n" msgstr "" -#: elfxx-mips.c:15763 +#: elfxx-mips.c:15775 #, c-format msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n" msgstr "" -#: elfxx-mips.c:15766 +#: elfxx-mips.c:15778 #, c-format msgid "Hard float (32-bit CPU, Any FPU)\n" msgstr "" -#: elfxx-mips.c:15769 +#: elfxx-mips.c:15781 #, c-format msgid "Hard float (32-bit CPU, 64-bit FPU)\n" msgstr "" -#: elfxx-mips.c:15772 +#: elfxx-mips.c:15784 #, c-format msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n" msgstr "" -#: elfxx-mips.c:15804 +#: elfxx-mips.c:15816 #, c-format msgid " [abi=O32]" msgstr "" -#: elfxx-mips.c:15806 +#: elfxx-mips.c:15818 #, c-format msgid " [abi=O64]" msgstr "" -#: elfxx-mips.c:15808 +#: elfxx-mips.c:15820 #, c-format msgid " [abi=EABI32]" msgstr "" -#: elfxx-mips.c:15810 +#: elfxx-mips.c:15822 #, c-format msgid " [abi=EABI64]" msgstr "" -#: elfxx-mips.c:15812 +#: elfxx-mips.c:15824 #, c-format msgid " [abi unknown]" msgstr "" -#: elfxx-mips.c:15814 +#: elfxx-mips.c:15826 #, c-format msgid " [abi=N32]" msgstr "" -#: elfxx-mips.c:15816 +#: elfxx-mips.c:15828 #, c-format msgid " [abi=64]" msgstr "" -#: elfxx-mips.c:15818 +#: elfxx-mips.c:15830 #, c-format msgid " [no abi set]" msgstr "" -#: elfxx-mips.c:15843 +#: elfxx-mips.c:15855 #, c-format msgid " [unknown ISA]" msgstr "" -#: elfxx-mips.c:15863 +#: elfxx-mips.c:15875 #, c-format msgid " [not 32bitmode]" msgstr "" -#: elfxx-riscv.c:955 +#: elfxx-sparc.c:3115 /work/sources/binutils/current/bfd/elfnn-aarch64.c:5283 #, c-format -msgid "unrecognized relocation (0x%x)" +msgid "" +"%pB: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s" msgstr "" -#: elfxx-sparc.c:639 +#: elfxx-tilegx.c:4254 #, c-format -msgid "invalid relocation type %d" +msgid "%pB: cannot link together %s and %s objects" msgstr "" -#: elfxx-sparc.c:3301 /work/sources/binutils/current/bfd/elfnn-aarch64.c:5002 +#: elfxx-x86.c:578 #, c-format -msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s" +msgid "%P: %pB: warning: relocation against `%s' in read-only section `%pA'\n" msgstr "" -#: elfxx-tilegx.c:4428 -#, c-format -msgid "%B: Cannot link together %s and %s objects." +#: elfxx-x86.c:1027 +msgid "%P: %pB: warning: relocation in read-only section `%pA'\n" +msgstr "" + +#: elfxx-x86.c:1375 +msgid "" +"%P%X: read-only segment has dynamic IFUNC relocations; recompile with -fPIC\n" msgstr "" -#: i386linux.c:416 m68klinux.c:419 sparclinux.c:412 +#: elfxx-x86.c:2373 #, c-format -msgid "Output file requires shared library `%s'\n" +msgid "error: %pB: " msgstr "" -#: i386linux.c:424 m68klinux.c:428 sparclinux.c:421 +#: elfxx-x86.c:2375 #, c-format -msgid "Output file requires shared library `%s.so.%s'\n" +msgid "error: %pB: " msgstr "" -#: i386linux.c:611 i386linux.c:661 m68klinux.c:617 m68klinux.c:665 -#: sparclinux.c:608 sparclinux.c:658 +#: elfxx-x86.c:2376 #, c-format -msgid "Symbol %s not defined for fixups\n" +msgid "error: %pB: " msgstr "" -#: i386linux.c:685 m68klinux.c:689 sparclinux.c:682 -msgid "Warning: fixup count mismatch\n" +#: elfxx-x86.c:2548 +msgid "%F%P: failed to create GNU property section\n" msgstr "" -#: ieee.c:159 +#: elfxx-x86.c:2553 #, c-format -msgid "%B: string too long (%ld chars, max 65535)" +msgid "%F%pA: failed to align section\n" msgstr "" -#: ieee.c:226 -#, c-format -msgid "IEEE parser: string length: %#lx longer than buffer: %#lx" +#: elfxx-x86.c:2705 +msgid "%F%P: failed to create VxWorks dynamic sections\n" msgstr "" -#: ieee.c:302 -#, c-format -msgid "%B: unrecognized symbol `%s' flags 0x%x" +#: elfxx-x86.c:2714 +msgid "%F%P: failed to create GOT sections\n" msgstr "" -#: ieee.c:837 -#, c-format -msgid "%B: unimplemented ATI record %u for symbol %u" +#: elfxx-x86.c:2732 +msgid "%F%P: failed to create ifunc sections\n" msgstr "" -#: ieee.c:862 -#, c-format -msgid "%B: unexpected ATN type %Ld in external part" +#: elfxx-x86.c:2773 +msgid "%F%P: failed to create GOT PLT section\n" +msgstr "" + +#: elfxx-x86.c:2794 +msgid "%F%P: failed to create IBT-enabled PLT section\n" msgstr "" -#: ieee.c:884 -msgid "%B: unexpected type after ATN" +#: elfxx-x86.c:2809 +msgid "%F%P: failed to create BND PLT section\n" +msgstr "" + +#: elfxx-x86.c:2830 +msgid "%F%P: failed to create PLT .eh_frame section\n" +msgstr "" + +#: elfxx-x86.c:2843 +msgid "%F%P: failed to create GOT PLT .eh_frame section\n" +msgstr "" + +#: elfxx-x86.c:2857 +msgid "%F%P: failed to create the second PLT .eh_frame section\n" msgstr "" #: ihex.c:230 #, c-format -msgid "%B:%d: unexpected character `%s' in Intel Hex file" +msgid "%pB:%d: unexpected character `%s' in Intel Hex file" msgstr "" #: ihex.c:338 #, c-format -msgid "%B:%u: bad checksum in Intel Hex file (expected %u, found %u)" +msgid "%pB:%u: bad checksum in Intel Hex file (expected %u, found %u)" msgstr "" #: ihex.c:394 #, c-format -msgid "%B:%u: bad extended address record length in Intel Hex file" +msgid "%pB:%u: bad extended address record length in Intel Hex file" msgstr "" #: ihex.c:412 #, c-format -msgid "%B:%u: bad extended start address length in Intel Hex file" +msgid "%pB:%u: bad extended start address length in Intel Hex file" msgstr "" #: ihex.c:430 #, c-format -msgid "%B:%u: bad extended linear address record length in Intel Hex file" +msgid "%pB:%u: bad extended linear address record length in Intel Hex file" msgstr "" #: ihex.c:448 #, c-format -msgid "%B:%u: bad extended linear start address length in Intel Hex file" +msgid "%pB:%u: bad extended linear start address length in Intel Hex file" msgstr "" #: ihex.c:466 #, c-format -msgid "%B:%u: unrecognized ihex type %u in Intel Hex file" +msgid "%pB:%u: unrecognized ihex type %u in Intel Hex file" msgstr "" #: ihex.c:585 -msgid "%B: internal error in ihex_read_section" +#, c-format +msgid "%pB: internal error in ihex_read_section" msgstr "" #: ihex.c:619 -msgid "%B: bad section length in ihex_read_section" +#, c-format +msgid "%pB: bad section length in ihex_read_section" msgstr "" #: ihex.c:830 #, c-format -msgid "%B: address %#Lx out of range for Intel Hex file" +msgid "%pB: address %# out of range for Intel Hex file" msgstr "" -#: libbfd.c:799 +#: libbfd.c:898 #, c-format -msgid "%B: unable to get decompressed section %A" +msgid "%pB: unable to get decompressed section %pA" msgstr "" -#: libbfd.c:963 +#: libbfd.c:1062 #, c-format msgid "Deprecated %s called at %s line %d in %s\n" msgstr "" -#: libbfd.c:966 +#: libbfd.c:1065 #, c-format msgid "Deprecated %s called\n" msgstr "" -#: linker.c:1669 +#: linker.c:1684 +#, c-format +msgid "%pB: indirect symbol `%s' to `%s' is a loop" +msgstr "" + +#: linker.c:2554 +#, c-format +msgid "attempt to do relocatable link with %s input and %s output" +msgstr "" + +#: linker.c:2840 +#, c-format +msgid "%pB: ignoring duplicate section `%pA'\n" +msgstr "" + +#: linker.c:2850 linker.c:2860 +#, c-format +msgid "%pB: duplicate section `%pA' has different size\n" +msgstr "" + +#: linker.c:2869 linker.c:2875 +#, c-format +msgid "%pB: could not read contents of section `%pA'\n" +msgstr "" + +#: linker.c:2880 +#, c-format +msgid "%pB: duplicate section `%pA' has different contents\n" +msgstr "" + +#: linker.c:3394 +#, c-format +msgid "%pB: compiled for a big endian system and target is little endian" +msgstr "" + +#: linker.c:3397 +#, c-format +msgid "%pB: compiled for a little endian system and target is big endian" +msgstr "" + +#: mach-o.c:632 +#, c-format +msgid "" +msgstr "" + +#: mach-o.c:687 +msgid " ()" +msgstr "" + +#: mach-o.c:698 +#, c-format +msgid " MACH-O header:\n" +msgstr "" + +#: mach-o.c:699 #, c-format -msgid "%B: indirect symbol `%s' to `%s' is a loop" +msgid " magic: %#lx\n" msgstr "" -#: linker.c:2539 +#: mach-o.c:700 #, c-format -msgid "Attempt to do relocatable link with %s input and %s output" +msgid " cputype: %#lx (%s)\n" msgstr "" -#: linker.c:2825 +#: mach-o.c:702 #, c-format -msgid "%B: ignoring duplicate section `%A'\n" +msgid " cpusubtype: %#lx%s\n" msgstr "" -#: linker.c:2835 linker.c:2845 +#: mach-o.c:704 #, c-format -msgid "%B: duplicate section `%A' has different size\n" +msgid " filetype: %#lx\n" msgstr "" -#: linker.c:2854 linker.c:2860 +#: mach-o.c:705 #, c-format -msgid "%B: could not read contents of section `%A'\n" +msgid " ncmds: %#lx\n" msgstr "" -#: linker.c:2865 +#: mach-o.c:706 #, c-format -msgid "%B: duplicate section `%A' has different contents\n" +msgid " sizeocmds: %#lx\n" msgstr "" -#: linker.c:3353 -msgid "%B: compiled for a big endian system and target is little endian" +#: mach-o.c:707 +#, c-format +msgid " flags: %#lx\n" +msgstr "" + +#: mach-o.c:708 +#, c-format +msgid " version: %x\n" msgstr "" -#: linker.c:3356 -msgid "%B: compiled for a little endian system and target is big endian" +#. Urg - what has happened ? +#: mach-o.c:743 +#, c-format +msgid "incompatible cputypes in mach-o files: %ld vs %ld" msgstr "" -#: mach-o.c:779 +#: mach-o.c:912 msgid "bfd_mach_o_canonicalize_symtab: unable to load symbols" msgstr "" -#: mach-o.c:1981 +#: mach-o.c:2108 msgid "" "sorry: modtab, toc and extrefsyms are not yet implemented for dysymtab " "commands." msgstr "" -#: mach-o.c:2424 +#: mach-o.c:2551 #, c-format msgid "mach-o: there are too many sections (%u) maximum is 255,\n" msgstr "" -#: mach-o.c:2531 +#: mach-o.c:2658 #, c-format msgid "unable to allocate data for load command %#x" msgstr "" -#: mach-o.c:2636 +#: mach-o.c:2763 #, c-format msgid "unable to write unknown load command %#x" msgstr "" -#: mach-o.c:2820 +#: mach-o.c:2947 #, c-format -msgid "section address (%#Lx) below start of segment (%#Lx)" +msgid "section address (%#) below start of segment (%#)" msgstr "" -#: mach-o.c:2961 +#: mach-o.c:3089 #, c-format msgid "unable to layout unknown load command %#x" msgstr "" -#: mach-o.c:3497 +#: mach-o.c:3625 #, c-format msgid "" "bfd_mach_o_read_section_32: overlarge alignment value: %#lx, using 32 instead" msgstr "" -#: mach-o.c:3540 +#: mach-o.c:3668 #, c-format msgid "" "bfd_mach_o_read_section_64: overlarge alignment value: %#lx, using 32 instead" msgstr "" -#: mach-o.c:3591 +#: mach-o.c:3719 #, c-format msgid "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %u" msgstr "" -#: mach-o.c:3610 +#: mach-o.c:3738 #, c-format msgid "bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %u)" msgstr "" -#: mach-o.c:3693 +#: mach-o.c:3821 #, c-format msgid "" "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid section %d " "(max %lu): setting to undefined" msgstr "" -#: mach-o.c:3712 +#: mach-o.c:3840 #, c-format msgid "" "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid type field 0x" "%x: setting to undefined" msgstr "" -#: mach-o.c:3789 +#: mach-o.c:3917 msgid "bfd_mach_o_read_symtab_symbols: unable to allocate memory for symbols" msgstr "" -#: mach-o.c:4762 -msgid "%B: unknown load command %#x" +#: mach-o.c:4890 +#, c-format +msgid "%pB: unknown load command %#x" msgstr "" -#: mach-o.c:4953 +#: mach-o.c:5081 #, c-format msgid "bfd_mach_o_scan: unknown architecture 0x%lx/0x%lx" msgstr "" -#: mach-o.c:5058 +#: mach-o.c:5186 #, c-format msgid "unknown header byte-order value %#x" msgstr "" -#: merge.c:864 +#: merge.c:868 #, c-format -msgid "%B: access beyond end of merged section (%Ld)" +msgid "%pB: access beyond end of merged section (%)" msgstr "" #: mmo.c:468 #, c-format -msgid "%B: No core to allocate section name %s\n" +msgid "%pB: no core to allocate section name %s" msgstr "" #: mmo.c:544 #, c-format -msgid "%B: No core to allocate a symbol %d bytes long\n" +msgid "%pB: no core to allocate a symbol %d bytes long" msgstr "" #: mmo.c:958 #, c-format -msgid "%B: attempt to emit contents at non-multiple-of-4 address %#Lx" +msgid "%pB: attempt to emit contents at non-multiple-of-4 address %#" msgstr "" #: mmo.c:1255 -msgid "%B: invalid mmo file: initialization value for $255 is not `Main'\n" +#, c-format +msgid "%pB: invalid mmo file: initialization value for $255 is not `Main'\n" msgstr "" #: mmo.c:1402 #, c-format msgid "" -"%B: unsupported wide character sequence 0x%02X 0x%02X after symbol name " +"%pB: unsupported wide character sequence 0x%02X 0x%02X after symbol name " "starting with `%s'\n" msgstr "" #: mmo.c:1636 #, c-format -msgid "%B: invalid mmo file: unsupported lopcode `%d'\n" +msgid "%pB: invalid mmo file: unsupported lopcode `%d'\n" msgstr "" #: mmo.c:1647 #, c-format -msgid "%B: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n" +msgid "%pB: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n" msgstr "" #: mmo.c:1685 #, c-format -msgid "%B: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n" +msgid "" +"%pB: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n" msgstr "" #: mmo.c:1736 #, c-format msgid "" -"%B: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n" +"%pB: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n" msgstr "" #: mmo.c:1777 #, c-format -msgid "%B: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n" +msgid "%pB: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n" msgstr "" #: mmo.c:1788 #, c-format msgid "" -"%B: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n" +"%pB: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n" msgstr "" #: mmo.c:1813 #, c-format msgid "" -"%B: invalid mmo file: leading byte of operand word must be 0 or 1, got %d " +"%pB: invalid mmo file: leading byte of operand word must be 0 or 1, got %d " "for lop_fixrx\n" msgstr "" #: mmo.c:1838 #, c-format -msgid "%B: cannot allocate file name for file number %d, %d bytes\n" +msgid "%pB: cannot allocate file name for file number %d, %d bytes\n" msgstr "" #: mmo.c:1860 #, c-format msgid "" -"%B: invalid mmo file: file number %d `%s', was already entered as `%s'\n" +"%pB: invalid mmo file: file number %d `%s', was already entered as `%s'\n" msgstr "" #: mmo.c:1874 #, c-format msgid "" -"%B: invalid mmo file: file name for number %d was not specified before use\n" +"%pB: invalid mmo file: file name for number %d was not specified before use\n" msgstr "" #: mmo.c:1981 #, c-format msgid "" -"%B: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n" +"%pB: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n" msgstr "" #: mmo.c:2018 #, c-format -msgid "%B: invalid mmo file: lop_end not last item in file\n" +msgid "%pB: invalid mmo file: lop_end not last item in file\n" msgstr "" #: mmo.c:2032 #, c-format msgid "" -"%B: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras " +"%pB: 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:2743 #, c-format -msgid "%B: invalid symbol table: duplicate symbol `%s'\n" +msgid "%pB: invalid symbol table: duplicate symbol `%s'\n" msgstr "" #: mmo.c:2986 #, c-format msgid "" -"%B: Bad symbol definition: `Main' set to %s rather than the start address " +"%pB: bad symbol definition: `Main' set to %s rather than the start address " "%s\n" msgstr "" #: mmo.c:3085 #, c-format msgid "" -"%B: warning: symbol table too large for mmo, larger than 65535 32-bit words: " -"%d. Only `Main' will be emitted.\n" +"%pB: warning: symbol table too large for mmo, larger than 65535 32-bit " +"words: %d. Only `Main' will be emitted.\n" msgstr "" #: mmo.c:3131 #, c-format -msgid "%B: internal error, symbol table changed size from %d to %d words\n" +msgid "%pB: internal error, symbol table changed size from %d to %d words\n" msgstr "" #: mmo.c:3184 #, c-format -msgid "%B: internal error, internal register section %A had contents\n" +msgid "%pB: internal error, internal register section %pA had contents\n" msgstr "" #: mmo.c:3235 -msgid "%B: no initialized registers; section length 0\n" +#, c-format +msgid "%pB: no initialized registers; section length 0\n" msgstr "" #: mmo.c:3242 #, c-format -msgid "%B: too many initialized registers; section length %Ld" +msgid "%pB: too many initialized registers; section length %" msgstr "" #: mmo.c:3247 #, c-format -msgid "%B: invalid start address for initialized registers of length %Ld: %#Lx" -msgstr "" - -#: oasys.c:881 -#, c-format -msgid "%B: can not represent section `%A' in oasys" +msgid "" +"%pB: invalid start address for initialized registers of length %: " +"%#" msgstr "" #: osf-core.c:127 #, c-format -msgid "Unhandled OSF/1 core file section type %d\n" -msgstr "" - -#: pe-mips.c:609 -msgid "%B: `ld -r' not supported with PE MIPS objects\n" +msgid "unhandled OSF/1 core file section type %d" 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:720 +#: pef.c:527 #, c-format -msgid "%B: unimplemented %s\n" -msgstr "" - -#: pe-mips.c:746 -msgid "%B: jump too far away\n" -msgstr "" - -#: pe-mips.c:772 -msgid "%B: bad pair/reflo after refhi\n" +msgid "bfd_pef_scan: unknown architecture 0x%lx" msgstr "" -#: pef.c:526 +#: pei-x86_64.c:177 pei-x86_64.c:191 pei-x86_64.c:220 #, c-format -msgid "bfd_pef_scan: unknown architecture 0x%lx" +msgid "warning: corrupt unwind data\n" msgstr "" #. PR 17512: file: 2245-7442-0.004. -#: pei-x86_64.c:281 +#: pei-x86_64.c:315 #, c-format msgid "Unknown: %x" msgstr "" -#: pei-x86_64.c:331 +#: pei-x86_64.c:365 pei-x86_64.c:375 pei-x86_64.c:384 #, c-format msgid "warning: xdata section corrupt\n" msgstr "" -#: pei-x86_64.c:341 -#, c-format -msgid "warning: xdata section corrupt" -msgstr "" - -#: pei-x86_64.c:401 +#: pei-x86_64.c:439 #, c-format msgid "Too many unwind codes (%ld)\n" msgstr "" -#: pei-x86_64.c:491 +#: pei-x86_64.c:529 #, c-format msgid "Warning: %s section size (%ld) is not a multiple of %d\n" msgstr "" -#: pei-x86_64.c:498 +#: pei-x86_64.c:536 #, c-format msgid "Warning: %s section size is zero\n" msgstr "" -#: pei-x86_64.c:513 +#: pei-x86_64.c:551 #, c-format msgid "Warning: %s section size (%ld) is smaller than virtual size (%ld)\n" msgstr "" -#: pei-x86_64.c:522 +#: pei-x86_64.c:560 #, c-format msgid "" "\n" "The Function Table (interpreted %s section contents)\n" msgstr "" -#: pei-x86_64.c:525 +#: pei-x86_64.c:563 #, c-format msgid "vma:\t\t\tBeginAddress\t EndAddress\t UnwindData\n" msgstr "" -#: pei-x86_64.c:654 +#: pei-x86_64.c:692 #, c-format msgid "" "\n" @@ -5851,124 +5608,128 @@ #. XXX code yet to be written. #: peicode.h:775 #, c-format -msgid "%B: Unhandled import type; %x" +msgid "%pB: unhandled import type; %x" msgstr "" #: peicode.h:781 #, c-format -msgid "%B: Unrecognised import type; %x" +msgid "%pB: unrecognized import type; %x" msgstr "" #: peicode.h:796 #, c-format -msgid "%B: Unrecognised import name type; %x" +msgid "%pB: unrecognized import name type; %x" msgstr "" -#: peicode.h:1217 +#: peicode.h:1211 #, c-format -msgid "%B: Unrecognised machine type (0x%x) in Import Library Format archive" +msgid "%pB: unrecognised machine type (0x%x) in Import Library Format archive" msgstr "" -#: peicode.h:1230 +#: peicode.h:1224 #, c-format msgid "" -"%B: Recognised but unhandled machine type (0x%x) in Import Library Format " +"%pB: recognised but unhandled machine type (0x%x) in Import Library Format " "archive" msgstr "" -#: peicode.h:1248 -msgid "%B: size field is zero in Import Library Format header" +#: peicode.h:1242 +#, c-format +msgid "%pB: size field is zero in Import Library Format header" msgstr "" -#: peicode.h:1280 -msgid "%B: string not null terminated in ILF object file." +#: peicode.h:1274 +#, c-format +msgid "%pB: string not null terminated in ILF object file" msgstr "" -#: peicode.h:1333 -msgid "%B: Error: Debug Data ends beyond end of debug directory." +#: peicode.h:1330 +#, c-format +msgid "%pB: error: debug data ends beyond end of debug directory" msgstr "" -#: ppcboot.c:393 +#: ppcboot.c:392 #, c-format msgid "" "\n" "ppcboot header:\n" msgstr "" -#: ppcboot.c:394 +#: ppcboot.c:393 #, c-format msgid "Entry offset = 0x%.8lx (%ld)\n" msgstr "" -#: ppcboot.c:396 +#: ppcboot.c:395 #, c-format msgid "Length = 0x%.8lx (%ld)\n" msgstr "" -#: ppcboot.c:400 +#: ppcboot.c:399 #, c-format msgid "Flag field = 0x%.2x\n" msgstr "" -#: ppcboot.c:406 +#: ppcboot.c:405 #, c-format msgid "Partition name = \"%s\"\n" msgstr "" -#: ppcboot.c:426 +#: ppcboot.c:425 #, c-format msgid "" "\n" "Partition[%d] start = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" msgstr "" -#: ppcboot.c:433 +#: ppcboot.c:432 #, c-format msgid "Partition[%d] end = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" msgstr "" -#: ppcboot.c:440 +#: ppcboot.c:439 #, c-format msgid "Partition[%d] sector = 0x%.8lx (%ld)\n" msgstr "" -#: ppcboot.c:444 +#: ppcboot.c:443 #, c-format msgid "Partition[%d] length = 0x%.8lx (%ld)\n" msgstr "" -#: reloc.c:8067 -msgid "INPUT_SECTION_FLAGS are not supported.\n" +#: reloc.c:8163 +msgid "INPUT_SECTION_FLAGS are not supported" msgstr "" -#: reloc.c:8168 +#: reloc.c:8264 #, c-format -msgid "%X%P: %B(%A): error: relocation for offset %V has no value\n" +msgid "%X%P: %pB(%pA): error: relocation for offset %V has no value\n" msgstr "" -#: reloc.c:8244 +#: reloc.c:8340 #, c-format -msgid "%X%P: %B(%A): relocation \"%R\" is not supported\n" +msgid "%X%P: %pB(%pA): relocation \"%pR\" is not supported\n" msgstr "" -#: reloc.c:8253 +#: reloc.c:8349 #, c-format -msgid "%X%P: %B(%A): relocation \"%R\" returns an unrecognized value %x\n" +msgid "%X%P: %pB(%pA): relocation \"%pR\" returns an unrecognized value %x\n" msgstr "" -#: reloc.c:8315 +#: reloc.c:8411 #, c-format -msgid "%B: unrecognized relocation (%#x) in section `%A'" +msgid "%pB: unrecognized relocation type %#x in section `%pA'" msgstr "" #. PR 21803: Suggest the most likely cause of this error. -#: reloc.c:8319 +#: reloc.c:8415 #, c-format -msgid "Is this version of the linker - %s - out of date ?" +msgid "is this version of the linker - %s - out of date ?" msgstr "" #: rs6000-core.c:471 -msgid "%B: warning core file truncated" +#, c-format +msgid "%pB: warning core file truncated" msgstr "" #: som.c:5478 @@ -5984,91 +5745,91 @@ #: srec.c:260 #, c-format -msgid "%B:%d: Unexpected character `%s' in S-record file\n" +msgid "%pB:%d: unexpected character `%s' in S-record file" msgstr "" #: srec.c:488 #, c-format -msgid "%B:%d: byte count %d too small\n" +msgid "%pB:%d: byte count %d too small" msgstr "" #: srec.c:581 srec.c:615 #, c-format -msgid "%B:%d: Bad checksum in S-record file\n" +msgid "%pB:%d: bad checksum in S-record file" msgstr "" #: stabs.c:279 #, c-format -msgid "%B(%A+%#lx): Stabs entry has invalid string index." +msgid "%pB(%pA+%#lx): stabs entry has invalid string index" msgstr "" #: syms.c:1079 -msgid "Unsupported .stab relocation" +msgid "unsupported .stab relocation" msgstr "" #: vms-alpha.c:479 -msgid "Corrupt EIHD record - size is too small" +msgid "corrupt EIHD record - size is too small" msgstr "" #: vms-alpha.c:660 #, c-format -msgid "Unable to read EIHS record at offset %#x" +msgid "unable to read EIHS record at offset %#x" msgstr "" -#: vms-alpha.c:1172 +#: vms-alpha.c:1173 #, c-format -msgid "Corrupt EGSD record: its size (%#x) is too small" +msgid "corrupt EGSD record: its size (%#x) is too small" msgstr "" -#: vms-alpha.c:1196 +#: vms-alpha.c:1197 #, c-format -msgid "Corrupt EGSD record: size (%#x) is larger than remaining space (%#x)" +msgid "corrupt EGSD record: size (%#x) is larger than remaining space (%#x)" msgstr "" -#: vms-alpha.c:1204 +#: vms-alpha.c:1205 #, c-format -msgid "Corrupt EGSD record: size (%#x) is too small" +msgid "corrupt EGSD record: size (%#x) is too small" msgstr "" -#: vms-alpha.c:1333 vms-alpha.c:1349 vms-alpha.c:1389 +#: vms-alpha.c:1334 vms-alpha.c:1350 vms-alpha.c:1390 #, c-format -msgid "Corrupt EGSD record: its psindx field is too big (%#lx)" +msgid "corrupt EGSD record: its psindx field is too big (%#lx)" msgstr "" -#: vms-alpha.c:1418 +#: vms-alpha.c:1419 #, c-format -msgid "Unknown EGSD subtype %d" +msgid "unknown EGSD subtype %d" msgstr "" -#: vms-alpha.c:1451 +#: vms-alpha.c:1452 #, c-format -msgid "Stack overflow (%d) in _bfd_vms_push" +msgid "stack overflow (%d) in _bfd_vms_push" msgstr "" -#: vms-alpha.c:1464 -msgid "Stack underflow in _bfd_vms_pop" +#: vms-alpha.c:1465 +msgid "stack underflow in _bfd_vms_pop" msgstr "" #. These names have not yet been added to this switch statement. -#: vms-alpha.c:1706 +#: vms-alpha.c:1707 #, c-format msgid "unknown ETIR command %d" msgstr "" -#: vms-alpha.c:1737 -msgid "Corrupt vms value" +#: vms-alpha.c:1738 +msgid "corrupt vms value" msgstr "" -#: vms-alpha.c:1865 -msgid "Corrupt ETIR record encountered" +#: vms-alpha.c:1866 +msgid "corrupt ETIR record encountered" msgstr "" -#: vms-alpha.c:1922 +#: vms-alpha.c:1923 #, c-format msgid "bad section index in %s" msgstr "" -#: vms-alpha.c:1935 +#: vms-alpha.c:1936 #, c-format msgid "unsupported STA cmd %s" msgstr "" @@ -6078,1961 +5839,1932 @@ #. Rotate. #. Redefine symbol to current location. #. Define a literal. -#: vms-alpha.c:2115 vms-alpha.c:2146 vms-alpha.c:2237 vms-alpha.c:2395 +#: vms-alpha.c:2116 vms-alpha.c:2147 vms-alpha.c:2238 vms-alpha.c:2396 #, c-format msgid "%s: not supported" msgstr "" -#: vms-alpha.c:2121 +#: vms-alpha.c:2122 #, c-format msgid "%s: not implemented" msgstr "" -#: vms-alpha.c:2379 +#: vms-alpha.c:2380 #, c-format msgid "invalid use of %s with contexts" msgstr "" -#: vms-alpha.c:2413 +#: vms-alpha.c:2414 #, c-format msgid "reserved cmd %d" msgstr "" -#: vms-alpha.c:2497 -msgid "Corrupt EEOM record - size is too small" +#: vms-alpha.c:2498 +msgid "corrupt EEOM record - size is too small" msgstr "" -#: vms-alpha.c:2506 -msgid "Object module NOT error-free !\n" +#: vms-alpha.c:2507 +msgid "object module not error-free !" msgstr "" -#: vms-alpha.c:3830 +#: vms-alpha.c:3831 #, c-format -msgid "SEC_RELOC with no relocs in section %A" +msgid "SEC_RELOC with no relocs in section %pA" msgstr "" -#: vms-alpha.c:3882 vms-alpha.c:4095 +#: vms-alpha.c:3883 vms-alpha.c:4096 #, c-format -msgid "Size error in section %A" +msgid "size error in section %pA" msgstr "" -#: vms-alpha.c:4041 -msgid "Spurious ALPHA_R_BSR reloc" +#: vms-alpha.c:4042 +msgid "spurious ALPHA_R_BSR reloc" msgstr "" -#: vms-alpha.c:4082 +#: vms-alpha.c:4083 #, c-format -msgid "Unhandled relocation %s" +msgid "unhandled relocation %s" msgstr "" -#: vms-alpha.c:4375 +#: vms-alpha.c:4376 #, c-format msgid "unknown source command %d" msgstr "" -#: vms-alpha.c:4436 -msgid "DST__K_SET_LINUM_INCR not implemented" -msgstr "" - -#: vms-alpha.c:4442 -msgid "DST__K_SET_LINUM_INCR_W not implemented" -msgstr "" - -#: vms-alpha.c:4448 -msgid "DST__K_RESET_LINUM_INCR not implemented" -msgstr "" - -#: vms-alpha.c:4454 -msgid "DST__K_BEG_STMT_MODE not implemented" -msgstr "" - -#: vms-alpha.c:4460 -msgid "DST__K_END_STMT_MODE not implemented" -msgstr "" - -#: vms-alpha.c:4487 -msgid "DST__K_SET_PC not implemented" -msgstr "" - -#: vms-alpha.c:4493 -msgid "DST__K_SET_PC_W not implemented" -msgstr "" - -#: vms-alpha.c:4499 -msgid "DST__K_SET_PC_L not implemented" -msgstr "" - -#: vms-alpha.c:4505 -msgid "DST__K_SET_STMTNUM not implemented" +#: vms-alpha.c:4437 vms-alpha.c:4443 vms-alpha.c:4449 vms-alpha.c:4455 +#: vms-alpha.c:4461 vms-alpha.c:4488 vms-alpha.c:4494 vms-alpha.c:4500 +#: vms-alpha.c:4506 +#, c-format +msgid "%s not implemented" msgstr "" -#: vms-alpha.c:4548 +#: vms-alpha.c:4549 #, c-format msgid "unknown line command %d" msgstr "" -#: vms-alpha.c:5008 vms-alpha.c:5026 vms-alpha.c:5041 vms-alpha.c:5057 -#: vms-alpha.c:5070 vms-alpha.c:5082 vms-alpha.c:5095 +#: vms-alpha.c:5009 vms-alpha.c:5027 vms-alpha.c:5042 vms-alpha.c:5058 +#: vms-alpha.c:5071 vms-alpha.c:5083 vms-alpha.c:5096 #, c-format -msgid "Unknown reloc %s + %s" +msgid "unknown reloc %s + %s" msgstr "" -#: vms-alpha.c:5150 +#: vms-alpha.c:5151 #, c-format -msgid "Unknown reloc %s" +msgid "unknown reloc %s" msgstr "" -#: vms-alpha.c:5163 -msgid "Invalid section index in ETIR" +#: vms-alpha.c:5164 +msgid "invalid section index in ETIR" msgstr "" -#: vms-alpha.c:5172 -msgid "Relocation for non-REL psect" +#: vms-alpha.c:5173 +msgid "relocation for non-REL psect" msgstr "" -#: vms-alpha.c:5219 +#: vms-alpha.c:5220 #, c-format -msgid "Unknown symbol in command %s" +msgid "unknown symbol in command %s" msgstr "" -#: vms-alpha.c:5629 +#: vms-alpha.c:5630 #, c-format msgid "reloc (%d) is *UNKNOWN*" msgstr "" -#: vms-alpha.c:5745 +#: vms-alpha.c:5746 #, c-format msgid " EMH %u (len=%u): " msgstr "" -#: vms-alpha.c:5750 +#: vms-alpha.c:5751 #, c-format msgid " Error: The length is less than the length of an EMH record\n" msgstr "" -#: vms-alpha.c:5767 +#: vms-alpha.c:5768 #, c-format msgid "" " Error: The record length is less than the size of an EMH_MHD record\n" msgstr "" -#: vms-alpha.c:5770 +#: vms-alpha.c:5771 #, c-format msgid "Module header\n" msgstr "" -#: vms-alpha.c:5771 +#: vms-alpha.c:5772 #, c-format msgid " structure level: %u\n" msgstr "" -#: vms-alpha.c:5772 +#: vms-alpha.c:5773 #, c-format msgid " max record size: %u\n" msgstr "" -#: vms-alpha.c:5778 +#: vms-alpha.c:5779 #, c-format msgid " Error: The module name is missing\n" msgstr "" -#: vms-alpha.c:5784 +#: vms-alpha.c:5785 #, c-format msgid " Error: The module name is too long\n" msgstr "" -#: vms-alpha.c:5787 +#: vms-alpha.c:5788 #, c-format msgid " module name : %.*s\n" msgstr "" -#: vms-alpha.c:5791 +#: vms-alpha.c:5792 #, c-format msgid " Error: The module version is missing\n" msgstr "" -#: vms-alpha.c:5797 +#: vms-alpha.c:5798 #, c-format msgid " Error: The module version is too long\n" msgstr "" -#: vms-alpha.c:5800 +#: vms-alpha.c:5801 #, c-format msgid " module version : %.*s\n" msgstr "" -#: vms-alpha.c:5803 +#: vms-alpha.c:5804 #, c-format msgid " Error: The compile date is truncated\n" msgstr "" -#: vms-alpha.c:5805 +#: vms-alpha.c:5806 #, c-format msgid " compile date : %.17s\n" msgstr "" -#: vms-alpha.c:5810 +#: vms-alpha.c:5811 #, c-format msgid "Language Processor Name\n" msgstr "" -#: vms-alpha.c:5811 +#: vms-alpha.c:5812 #, c-format msgid " language name: %.*s\n" msgstr "" -#: vms-alpha.c:5815 +#: vms-alpha.c:5816 #, c-format msgid "Source Files Header\n" msgstr "" -#: vms-alpha.c:5816 +#: vms-alpha.c:5817 #, c-format msgid " file: %.*s\n" msgstr "" -#: vms-alpha.c:5820 +#: vms-alpha.c:5821 #, c-format msgid "Title Text Header\n" msgstr "" -#: vms-alpha.c:5821 +#: vms-alpha.c:5822 #, c-format msgid " title: %.*s\n" msgstr "" -#: vms-alpha.c:5825 +#: vms-alpha.c:5826 #, c-format msgid "Copyright Header\n" msgstr "" -#: vms-alpha.c:5826 +#: vms-alpha.c:5827 #, c-format msgid " copyright: %.*s\n" msgstr "" -#: vms-alpha.c:5830 +#: vms-alpha.c:5831 #, c-format msgid "unhandled emh subtype %u\n" msgstr "" -#: vms-alpha.c:5840 +#: vms-alpha.c:5841 #, c-format msgid " EEOM (len=%u):\n" msgstr "" -#: vms-alpha.c:5845 +#: vms-alpha.c:5846 #, c-format msgid " Error: The length is less than the length of an EEOM record\n" msgstr "" -#: vms-alpha.c:5849 +#: vms-alpha.c:5850 #, c-format msgid " number of cond linkage pairs: %u\n" msgstr "" -#: vms-alpha.c:5851 +#: vms-alpha.c:5852 #, c-format msgid " completion code: %u\n" msgstr "" -#: vms-alpha.c:5855 +#: vms-alpha.c:5856 #, c-format msgid " transfer addr flags: 0x%02x\n" msgstr "" -#: vms-alpha.c:5856 +#: vms-alpha.c:5857 #, c-format msgid " transfer addr psect: %u\n" msgstr "" -#: vms-alpha.c:5858 +#: vms-alpha.c:5859 #, c-format msgid " transfer address : 0x%08x\n" msgstr "" -#: vms-alpha.c:5867 +#: vms-alpha.c:5868 msgid " WEAK" msgstr "" -#: vms-alpha.c:5869 +#: vms-alpha.c:5870 msgid " DEF" msgstr "" -#: vms-alpha.c:5871 +#: vms-alpha.c:5872 msgid " UNI" msgstr "" -#: vms-alpha.c:5873 vms-alpha.c:5894 +#: vms-alpha.c:5874 vms-alpha.c:5895 msgid " REL" msgstr "" -#: vms-alpha.c:5875 +#: vms-alpha.c:5876 msgid " COMM" msgstr "" -#: vms-alpha.c:5877 +#: vms-alpha.c:5878 msgid " VECEP" msgstr "" -#: vms-alpha.c:5879 +#: vms-alpha.c:5880 msgid " NORM" msgstr "" -#: vms-alpha.c:5881 +#: vms-alpha.c:5882 msgid " QVAL" msgstr "" -#: vms-alpha.c:5888 +#: vms-alpha.c:5889 msgid " PIC" msgstr "" -#: vms-alpha.c:5890 +#: vms-alpha.c:5891 msgid " LIB" msgstr "" -#: vms-alpha.c:5892 +#: vms-alpha.c:5893 msgid " OVR" msgstr "" -#: vms-alpha.c:5896 +#: vms-alpha.c:5897 msgid " GBL" msgstr "" -#: vms-alpha.c:5898 +#: vms-alpha.c:5899 msgid " SHR" msgstr "" -#: vms-alpha.c:5900 +#: vms-alpha.c:5901 msgid " EXE" msgstr "" -#: vms-alpha.c:5902 +#: vms-alpha.c:5903 msgid " RD" msgstr "" -#: vms-alpha.c:5904 +#: vms-alpha.c:5905 msgid " WRT" msgstr "" -#: vms-alpha.c:5906 +#: vms-alpha.c:5907 msgid " VEC" msgstr "" -#: vms-alpha.c:5908 +#: vms-alpha.c:5909 msgid " NOMOD" msgstr "" -#: vms-alpha.c:5910 +#: vms-alpha.c:5911 msgid " COM" msgstr "" -#: vms-alpha.c:5912 +#: vms-alpha.c:5913 msgid " 64B" msgstr "" -#: vms-alpha.c:5921 +#: vms-alpha.c:5922 #, c-format msgid " EGSD (len=%u):\n" msgstr "" -#: vms-alpha.c:5934 +#: vms-alpha.c:5935 #, c-format msgid " EGSD entry %2u (type: %u, len: %u): " msgstr "" -#: vms-alpha.c:5940 vms-alpha.c:6191 +#: vms-alpha.c:5941 vms-alpha.c:6192 #, c-format msgid " Error: length larger than remaining space in record\n" msgstr "" -#: vms-alpha.c:5952 +#: vms-alpha.c:5953 #, c-format msgid "PSC - Program section definition\n" msgstr "" -#: vms-alpha.c:5953 vms-alpha.c:5970 +#: vms-alpha.c:5954 vms-alpha.c:5971 #, c-format msgid " alignment : 2**%u\n" msgstr "" -#: vms-alpha.c:5954 vms-alpha.c:5971 +#: vms-alpha.c:5955 vms-alpha.c:5972 #, c-format msgid " flags : 0x%04x" msgstr "" -#: vms-alpha.c:5958 +#: vms-alpha.c:5959 #, c-format msgid " alloc (len): %u (0x%08x)\n" msgstr "" -#: vms-alpha.c:5959 vms-alpha.c:6016 vms-alpha.c:6065 +#: vms-alpha.c:5960 vms-alpha.c:6017 vms-alpha.c:6066 #, c-format msgid " name : %.*s\n" msgstr "" -#: vms-alpha.c:5969 +#: vms-alpha.c:5970 #, c-format msgid "SPSC - Shared Image Program section def\n" msgstr "" -#: vms-alpha.c:5975 +#: vms-alpha.c:5976 #, c-format msgid " alloc (len) : %u (0x%08x)\n" msgstr "" -#: vms-alpha.c:5976 +#: vms-alpha.c:5977 #, c-format msgid " image offset : 0x%08x\n" msgstr "" -#: vms-alpha.c:5978 +#: vms-alpha.c:5979 #, c-format msgid " symvec offset : 0x%08x\n" msgstr "" -#: vms-alpha.c:5980 +#: vms-alpha.c:5981 #, c-format msgid " name : %.*s\n" msgstr "" -#: vms-alpha.c:5993 +#: vms-alpha.c:5994 #, c-format msgid "SYM - Global symbol definition\n" msgstr "" -#: vms-alpha.c:5994 vms-alpha.c:6054 vms-alpha.c:6075 vms-alpha.c:6094 +#: vms-alpha.c:5995 vms-alpha.c:6055 vms-alpha.c:6076 vms-alpha.c:6095 #, c-format msgid " flags: 0x%04x" msgstr "" -#: vms-alpha.c:5997 +#: vms-alpha.c:5998 #, c-format msgid " psect offset: 0x%08x\n" msgstr "" -#: vms-alpha.c:6001 +#: vms-alpha.c:6002 #, c-format msgid " code address: 0x%08x\n" msgstr "" -#: vms-alpha.c:6003 +#: vms-alpha.c:6004 #, c-format msgid " psect index for entry point : %u\n" msgstr "" -#: vms-alpha.c:6006 vms-alpha.c:6082 vms-alpha.c:6101 +#: vms-alpha.c:6007 vms-alpha.c:6083 vms-alpha.c:6102 #, c-format msgid " psect index : %u\n" msgstr "" -#: vms-alpha.c:6008 vms-alpha.c:6084 vms-alpha.c:6103 +#: vms-alpha.c:6009 vms-alpha.c:6085 vms-alpha.c:6104 #, c-format msgid " name : %.*s\n" msgstr "" -#: vms-alpha.c:6015 +#: vms-alpha.c:6016 #, c-format msgid "SYM - Global symbol reference\n" msgstr "" -#: vms-alpha.c:6027 +#: vms-alpha.c:6028 #, c-format msgid "IDC - Ident Consistency check\n" msgstr "" -#: vms-alpha.c:6028 +#: vms-alpha.c:6029 #, c-format msgid " flags : 0x%08x" msgstr "" -#: vms-alpha.c:6032 +#: vms-alpha.c:6033 #, c-format msgid " id match : %x\n" msgstr "" -#: vms-alpha.c:6034 +#: vms-alpha.c:6035 #, c-format msgid " error severity: %x\n" msgstr "" -#: vms-alpha.c:6037 +#: vms-alpha.c:6038 #, c-format msgid " entity name : %.*s\n" msgstr "" -#: vms-alpha.c:6039 +#: vms-alpha.c:6040 #, c-format msgid " object name : %.*s\n" msgstr "" -#: vms-alpha.c:6042 +#: vms-alpha.c:6043 #, c-format msgid " binary ident : 0x%08x\n" msgstr "" -#: vms-alpha.c:6045 +#: vms-alpha.c:6046 #, c-format msgid " ascii ident : %.*s\n" msgstr "" -#: vms-alpha.c:6053 +#: vms-alpha.c:6054 #, c-format msgid "SYMG - Universal symbol definition\n" msgstr "" -#: vms-alpha.c:6057 +#: vms-alpha.c:6058 #, c-format msgid " symbol vector offset: 0x%08x\n" msgstr "" -#: vms-alpha.c:6059 +#: vms-alpha.c:6060 #, c-format msgid " entry point: 0x%08x\n" msgstr "" -#: vms-alpha.c:6061 +#: vms-alpha.c:6062 #, c-format msgid " proc descr : 0x%08x\n" msgstr "" -#: vms-alpha.c:6063 +#: vms-alpha.c:6064 #, c-format msgid " psect index: %u\n" msgstr "" -#: vms-alpha.c:6074 +#: vms-alpha.c:6075 #, c-format msgid "SYMV - Vectored symbol definition\n" msgstr "" -#: vms-alpha.c:6078 +#: vms-alpha.c:6079 #, c-format msgid " vector : 0x%08x\n" msgstr "" -#: vms-alpha.c:6080 vms-alpha.c:6099 +#: vms-alpha.c:6081 vms-alpha.c:6100 #, c-format msgid " psect offset: %u\n" msgstr "" -#: vms-alpha.c:6093 +#: vms-alpha.c:6094 #, c-format msgid "SYMM - Global symbol definition with version\n" msgstr "" -#: vms-alpha.c:6097 +#: vms-alpha.c:6098 #, c-format msgid " version mask: 0x%08x\n" msgstr "" -#: vms-alpha.c:6108 +#: vms-alpha.c:6109 #, c-format msgid "unhandled egsd entry type %u\n" msgstr "" -#: vms-alpha.c:6143 +#: vms-alpha.c:6144 #, c-format msgid " linkage index: %u, replacement insn: 0x%08x\n" msgstr "" -#: vms-alpha.c:6147 +#: vms-alpha.c:6148 #, c-format msgid " psect idx 1: %u, offset 1: 0x%08x %08x\n" msgstr "" -#: vms-alpha.c:6152 +#: vms-alpha.c:6153 #, c-format msgid " psect idx 2: %u, offset 2: 0x%08x %08x\n" msgstr "" -#: vms-alpha.c:6158 +#: vms-alpha.c:6159 #, c-format msgid " psect idx 3: %u, offset 3: 0x%08x %08x\n" msgstr "" -#: vms-alpha.c:6163 +#: vms-alpha.c:6164 #, c-format msgid " global name: %.*s\n" msgstr "" -#: vms-alpha.c:6174 +#: vms-alpha.c:6175 #, c-format msgid " %s (len=%u+%u):\n" msgstr "" -#: vms-alpha.c:6196 +#: vms-alpha.c:6197 #, c-format msgid " (type: %3u, size: 4+%3u): " msgstr "" -#: vms-alpha.c:6200 +#: vms-alpha.c:6201 #, c-format msgid "STA_GBL (stack global) %.*s\n" msgstr "" -#: vms-alpha.c:6204 +#: vms-alpha.c:6205 #, c-format msgid "STA_LW (stack longword) 0x%08x\n" msgstr "" -#: vms-alpha.c:6208 +#: vms-alpha.c:6209 #, c-format msgid "STA_QW (stack quadword) 0x%08x %08x\n" msgstr "" -#: vms-alpha.c:6213 +#: vms-alpha.c:6214 #, c-format msgid "STA_PQ (stack psect base + offset)\n" msgstr "" -#: vms-alpha.c:6215 +#: vms-alpha.c:6216 #, c-format msgid " psect: %u, offset: 0x%08x %08x\n" msgstr "" -#: vms-alpha.c:6221 +#: vms-alpha.c:6222 #, c-format msgid "STA_LI (stack literal)\n" msgstr "" -#: vms-alpha.c:6224 +#: vms-alpha.c:6225 #, c-format msgid "STA_MOD (stack module)\n" msgstr "" -#: vms-alpha.c:6227 +#: vms-alpha.c:6228 #, c-format msgid "STA_CKARG (compare procedure argument)\n" msgstr "" -#: vms-alpha.c:6231 +#: vms-alpha.c:6232 #, c-format msgid "STO_B (store byte)\n" msgstr "" -#: vms-alpha.c:6234 +#: vms-alpha.c:6235 #, c-format msgid "STO_W (store word)\n" msgstr "" -#: vms-alpha.c:6237 +#: vms-alpha.c:6238 #, c-format msgid "STO_LW (store longword)\n" msgstr "" -#: vms-alpha.c:6240 +#: vms-alpha.c:6241 #, c-format msgid "STO_QW (store quadword)\n" msgstr "" -#: vms-alpha.c:6246 +#: vms-alpha.c:6247 #, c-format msgid "STO_IMMR (store immediate repeat) %u bytes\n" msgstr "" -#: vms-alpha.c:6253 +#: vms-alpha.c:6254 #, c-format msgid "STO_GBL (store global) %.*s\n" msgstr "" -#: vms-alpha.c:6257 +#: vms-alpha.c:6258 #, c-format msgid "STO_CA (store code address) %.*s\n" msgstr "" -#: vms-alpha.c:6261 +#: vms-alpha.c:6262 #, c-format msgid "STO_RB (store relative branch)\n" msgstr "" -#: vms-alpha.c:6264 +#: vms-alpha.c:6265 #, c-format msgid "STO_AB (store absolute branch)\n" msgstr "" -#: vms-alpha.c:6267 +#: vms-alpha.c:6268 #, c-format msgid "STO_OFF (store offset to psect)\n" msgstr "" -#: vms-alpha.c:6273 +#: vms-alpha.c:6274 #, c-format msgid "STO_IMM (store immediate) %u bytes\n" msgstr "" -#: vms-alpha.c:6280 +#: vms-alpha.c:6281 #, c-format msgid "STO_GBL_LW (store global longword) %.*s\n" msgstr "" -#: vms-alpha.c:6284 +#: vms-alpha.c:6285 #, c-format msgid "STO_OFF (store LP with procedure signature)\n" msgstr "" -#: vms-alpha.c:6287 +#: vms-alpha.c:6288 #, c-format msgid "STO_BR_GBL (store branch global) *todo*\n" msgstr "" -#: vms-alpha.c:6290 +#: vms-alpha.c:6291 #, c-format msgid "STO_BR_PS (store branch psect + offset) *todo*\n" msgstr "" -#: vms-alpha.c:6294 +#: vms-alpha.c:6295 #, c-format msgid "OPR_NOP (no-operation)\n" msgstr "" -#: vms-alpha.c:6297 +#: vms-alpha.c:6298 #, c-format msgid "OPR_ADD (add)\n" msgstr "" -#: vms-alpha.c:6300 +#: vms-alpha.c:6301 #, c-format msgid "OPR_SUB (subtract)\n" msgstr "" -#: vms-alpha.c:6303 +#: vms-alpha.c:6304 #, c-format msgid "OPR_MUL (multiply)\n" msgstr "" -#: vms-alpha.c:6306 +#: vms-alpha.c:6307 #, c-format msgid "OPR_DIV (divide)\n" msgstr "" -#: vms-alpha.c:6309 +#: vms-alpha.c:6310 #, c-format msgid "OPR_AND (logical and)\n" msgstr "" -#: vms-alpha.c:6312 +#: vms-alpha.c:6313 #, c-format msgid "OPR_IOR (logical inclusive or)\n" msgstr "" -#: vms-alpha.c:6315 +#: vms-alpha.c:6316 #, c-format msgid "OPR_EOR (logical exclusive or)\n" msgstr "" -#: vms-alpha.c:6318 +#: vms-alpha.c:6319 #, c-format msgid "OPR_NEG (negate)\n" msgstr "" -#: vms-alpha.c:6321 +#: vms-alpha.c:6322 #, c-format msgid "OPR_COM (complement)\n" msgstr "" -#: vms-alpha.c:6324 +#: vms-alpha.c:6325 #, c-format msgid "OPR_INSV (insert field)\n" msgstr "" -#: vms-alpha.c:6327 +#: vms-alpha.c:6328 #, c-format msgid "OPR_ASH (arithmetic shift)\n" msgstr "" -#: vms-alpha.c:6330 +#: vms-alpha.c:6331 #, c-format msgid "OPR_USH (unsigned shift)\n" msgstr "" -#: vms-alpha.c:6333 +#: vms-alpha.c:6334 #, c-format msgid "OPR_ROT (rotate)\n" msgstr "" -#: vms-alpha.c:6336 +#: vms-alpha.c:6337 #, c-format msgid "OPR_SEL (select)\n" msgstr "" -#: vms-alpha.c:6339 +#: vms-alpha.c:6340 #, c-format msgid "OPR_REDEF (redefine symbol to curr location)\n" msgstr "" -#: vms-alpha.c:6342 +#: vms-alpha.c:6343 #, c-format msgid "OPR_REDEF (define a literal)\n" msgstr "" -#: vms-alpha.c:6346 +#: vms-alpha.c:6347 #, c-format msgid "STC_LP (store cond linkage pair)\n" msgstr "" -#: vms-alpha.c:6350 +#: vms-alpha.c:6351 #, c-format msgid "STC_LP_PSB (store cond linkage pair + signature)\n" msgstr "" -#: vms-alpha.c:6352 +#: vms-alpha.c:6353 #, c-format msgid " linkage index: %u, procedure: %.*s\n" msgstr "" -#: vms-alpha.c:6355 +#: vms-alpha.c:6356 #, c-format msgid " signature: %.*s\n" msgstr "" -#: vms-alpha.c:6358 +#: vms-alpha.c:6359 #, c-format msgid "STC_GBL (store cond global)\n" msgstr "" -#: vms-alpha.c:6360 +#: vms-alpha.c:6361 #, c-format msgid " linkage index: %u, global: %.*s\n" msgstr "" -#: vms-alpha.c:6364 +#: vms-alpha.c:6365 #, c-format msgid "STC_GCA (store cond code address)\n" msgstr "" -#: vms-alpha.c:6366 +#: vms-alpha.c:6367 #, c-format msgid " linkage index: %u, procedure name: %.*s\n" msgstr "" -#: vms-alpha.c:6370 +#: vms-alpha.c:6371 #, c-format msgid "STC_PS (store cond psect + offset)\n" msgstr "" -#: vms-alpha.c:6373 +#: vms-alpha.c:6374 #, c-format msgid " linkage index: %u, psect: %u, offset: 0x%08x %08x\n" msgstr "" -#: vms-alpha.c:6380 +#: vms-alpha.c:6381 #, c-format msgid "STC_NOP_GBL (store cond NOP at global addr)\n" msgstr "" -#: vms-alpha.c:6384 +#: vms-alpha.c:6385 #, c-format msgid "STC_NOP_PS (store cond NOP at psect + offset)\n" msgstr "" -#: vms-alpha.c:6388 +#: vms-alpha.c:6389 #, c-format msgid "STC_BSR_GBL (store cond BSR at global addr)\n" msgstr "" -#: vms-alpha.c:6392 +#: vms-alpha.c:6393 #, c-format msgid "STC_BSR_PS (store cond BSR at psect + offset)\n" msgstr "" -#: vms-alpha.c:6396 +#: vms-alpha.c:6397 #, c-format msgid "STC_LDA_GBL (store cond LDA at global addr)\n" msgstr "" -#: vms-alpha.c:6400 +#: vms-alpha.c:6401 #, c-format msgid "STC_LDA_PS (store cond LDA at psect + offset)\n" msgstr "" -#: vms-alpha.c:6404 +#: vms-alpha.c:6405 #, c-format msgid "STC_BOH_GBL (store cond BOH at global addr)\n" msgstr "" -#: vms-alpha.c:6408 +#: vms-alpha.c:6409 #, c-format msgid "STC_BOH_PS (store cond BOH at psect + offset)\n" msgstr "" -#: vms-alpha.c:6413 +#: vms-alpha.c:6414 #, c-format msgid "STC_NBH_GBL (store cond or hint at global addr)\n" msgstr "" -#: vms-alpha.c:6417 +#: vms-alpha.c:6418 #, c-format msgid "STC_NBH_PS (store cond or hint at psect + offset)\n" msgstr "" -#: vms-alpha.c:6421 +#: vms-alpha.c:6422 #, c-format msgid "CTL_SETRB (set relocation base)\n" msgstr "" -#: vms-alpha.c:6427 +#: vms-alpha.c:6428 #, c-format msgid "CTL_AUGRB (augment relocation base) %u\n" msgstr "" -#: vms-alpha.c:6431 +#: vms-alpha.c:6432 #, c-format msgid "CTL_DFLOC (define location)\n" msgstr "" -#: vms-alpha.c:6434 +#: vms-alpha.c:6435 #, c-format msgid "CTL_STLOC (set location)\n" msgstr "" -#: vms-alpha.c:6437 +#: vms-alpha.c:6438 #, c-format msgid "CTL_STKDL (stack defined location)\n" msgstr "" -#: vms-alpha.c:6440 vms-alpha.c:6864 vms-alpha.c:6990 +#: vms-alpha.c:6441 vms-alpha.c:6865 vms-alpha.c:6991 #, c-format msgid "*unhandled*\n" msgstr "" -#: vms-alpha.c:6470 vms-alpha.c:6509 +#: vms-alpha.c:6471 vms-alpha.c:6510 #, c-format msgid "cannot read GST record length\n" msgstr "" #. Ill-formed. -#: vms-alpha.c:6491 +#: vms-alpha.c:6492 #, c-format msgid "cannot find EMH in first GST record\n" msgstr "" -#: vms-alpha.c:6517 +#: vms-alpha.c:6518 #, c-format msgid "cannot read GST record header\n" msgstr "" -#: vms-alpha.c:6530 +#: vms-alpha.c:6531 #, c-format msgid " corrupted GST\n" msgstr "" -#: vms-alpha.c:6538 +#: vms-alpha.c:6539 #, c-format msgid "cannot read GST record\n" msgstr "" -#: vms-alpha.c:6567 +#: vms-alpha.c:6568 #, c-format msgid " unhandled EOBJ record type %u\n" msgstr "" -#: vms-alpha.c:6591 +#: vms-alpha.c:6592 #, c-format msgid " bitcount: %u, base addr: 0x%08x\n" msgstr "" -#: vms-alpha.c:6605 +#: vms-alpha.c:6606 #, c-format msgid " bitmap: 0x%08x (count: %u):\n" msgstr "" -#: vms-alpha.c:6612 +#: vms-alpha.c:6613 #, c-format msgid " %08x" msgstr "" -#: vms-alpha.c:6638 +#: vms-alpha.c:6639 #, c-format msgid " image %u (%u entries)\n" msgstr "" -#: vms-alpha.c:6644 +#: vms-alpha.c:6645 #, c-format msgid " offset: 0x%08x, val: 0x%08x\n" msgstr "" -#: vms-alpha.c:6666 +#: vms-alpha.c:6667 #, c-format msgid " image %u (%u entries), offsets:\n" msgstr "" -#: vms-alpha.c:6673 +#: vms-alpha.c:6674 #, c-format msgid " 0x%08x" msgstr "" #. 64 bits. -#: vms-alpha.c:6795 +#: vms-alpha.c:6796 #, c-format msgid "64 bits *unhandled*\n" msgstr "" -#: vms-alpha.c:6800 +#: vms-alpha.c:6801 #, c-format msgid "class: %u, dtype: %u, length: %u, pointer: 0x%08x\n" msgstr "" -#: vms-alpha.c:6811 +#: vms-alpha.c:6812 #, c-format msgid "non-contiguous array of %s\n" msgstr "" -#: vms-alpha.c:6816 +#: vms-alpha.c:6817 #, c-format msgid "dimct: %u, aflags: 0x%02x, digits: %u, scale: %u\n" msgstr "" -#: vms-alpha.c:6821 +#: vms-alpha.c:6822 #, c-format msgid "arsize: %u, a0: 0x%08x\n" msgstr "" -#: vms-alpha.c:6825 +#: vms-alpha.c:6826 #, c-format msgid "Strides:\n" msgstr "" -#: vms-alpha.c:6835 +#: vms-alpha.c:6836 #, c-format msgid "Bounds:\n" msgstr "" -#: vms-alpha.c:6841 +#: vms-alpha.c:6842 #, c-format msgid "[%u]: Lower: %u, upper: %u\n" msgstr "" -#: vms-alpha.c:6853 +#: vms-alpha.c:6854 #, c-format msgid "unaligned bit-string of %s\n" msgstr "" -#: vms-alpha.c:6858 +#: vms-alpha.c:6859 #, c-format msgid "base: %u, pos: %u\n" msgstr "" -#: vms-alpha.c:6879 +#: vms-alpha.c:6880 #, c-format msgid "vflags: 0x%02x, value: 0x%08x " msgstr "" -#: vms-alpha.c:6885 +#: vms-alpha.c:6886 #, c-format msgid "(no value)\n" msgstr "" -#: vms-alpha.c:6888 +#: vms-alpha.c:6889 #, c-format msgid "(not active)\n" msgstr "" -#: vms-alpha.c:6891 +#: vms-alpha.c:6892 #, c-format msgid "(not allocated)\n" msgstr "" -#: vms-alpha.c:6894 +#: vms-alpha.c:6895 #, c-format msgid "(descriptor)\n" msgstr "" -#: vms-alpha.c:6898 +#: vms-alpha.c:6899 #, c-format msgid "(trailing value)\n" msgstr "" -#: vms-alpha.c:6901 +#: vms-alpha.c:6902 #, c-format msgid "(value spec follows)\n" msgstr "" -#: vms-alpha.c:6904 +#: vms-alpha.c:6905 #, c-format msgid "(at bit offset %u)\n" msgstr "" -#: vms-alpha.c:6908 +#: vms-alpha.c:6909 #, c-format msgid "(reg: %u, disp: %u, indir: %u, kind: " msgstr "" -#: vms-alpha.c:6915 +#: vms-alpha.c:6916 msgid "literal" msgstr "" -#: vms-alpha.c:6918 +#: vms-alpha.c:6919 msgid "address" msgstr "" -#: vms-alpha.c:6921 +#: vms-alpha.c:6922 msgid "desc" msgstr "" -#: vms-alpha.c:6924 +#: vms-alpha.c:6925 msgid "reg" msgstr "" -#: vms-alpha.c:6941 +#: vms-alpha.c:6942 #, c-format msgid "len: %2u, kind: %2u " msgstr "" -#: vms-alpha.c:6947 +#: vms-alpha.c:6948 #, c-format msgid "atomic, type=0x%02x %s\n" msgstr "" -#: vms-alpha.c:6951 +#: vms-alpha.c:6952 #, c-format msgid "indirect, defined at 0x%08x\n" msgstr "" -#: vms-alpha.c:6955 +#: vms-alpha.c:6956 #, c-format msgid "typed pointer\n" msgstr "" -#: vms-alpha.c:6959 +#: vms-alpha.c:6960 #, c-format msgid "pointer\n" msgstr "" -#: vms-alpha.c:6967 +#: vms-alpha.c:6968 #, c-format msgid "array, dim: %u, bitmap: " msgstr "" -#: vms-alpha.c:6974 +#: vms-alpha.c:6975 #, c-format msgid "array descriptor:\n" msgstr "" -#: vms-alpha.c:6981 +#: vms-alpha.c:6982 #, c-format msgid "type spec for element:\n" msgstr "" -#: vms-alpha.c:6983 +#: vms-alpha.c:6984 #, c-format msgid "type spec for subscript %u:\n" msgstr "" -#: vms-alpha.c:7001 +#: vms-alpha.c:7002 #, c-format msgid "Debug symbol table:\n" msgstr "" -#: vms-alpha.c:7012 +#: vms-alpha.c:7013 #, c-format msgid "cannot read DST header\n" msgstr "" -#: vms-alpha.c:7018 +#: vms-alpha.c:7019 #, c-format msgid " type: %3u, len: %3u (at 0x%08x): " msgstr "" -#: vms-alpha.c:7032 +#: vms-alpha.c:7033 #, c-format msgid "cannot read DST symbol\n" msgstr "" -#: vms-alpha.c:7075 +#: vms-alpha.c:7076 #, c-format msgid "standard data: %s\n" msgstr "" -#: vms-alpha.c:7078 vms-alpha.c:7166 +#: vms-alpha.c:7079 vms-alpha.c:7167 #, c-format msgid " name: %.*s\n" msgstr "" -#: vms-alpha.c:7085 +#: vms-alpha.c:7086 #, c-format msgid "modbeg\n" msgstr "" -#: vms-alpha.c:7087 +#: vms-alpha.c:7088 #, c-format msgid " flags: %d, language: %u, major: %u, minor: %u\n" msgstr "" -#: vms-alpha.c:7093 vms-alpha.c:7367 +#: vms-alpha.c:7094 vms-alpha.c:7368 #, c-format msgid " module name: %.*s\n" msgstr "" -#: vms-alpha.c:7096 +#: vms-alpha.c:7097 #, c-format msgid " compiler : %.*s\n" msgstr "" -#: vms-alpha.c:7101 +#: vms-alpha.c:7102 #, c-format msgid "modend\n" msgstr "" -#: vms-alpha.c:7108 +#: vms-alpha.c:7109 msgid "rtnbeg\n" msgstr "" -#: vms-alpha.c:7110 +#: vms-alpha.c:7111 #, c-format msgid " flags: %u, address: 0x%08x, pd-address: 0x%08x\n" msgstr "" -#: vms-alpha.c:7115 +#: vms-alpha.c:7116 #, c-format msgid " routine name: %.*s\n" msgstr "" -#: vms-alpha.c:7123 +#: vms-alpha.c:7124 #, c-format msgid "rtnend: size 0x%08x\n" msgstr "" -#: vms-alpha.c:7131 +#: vms-alpha.c:7132 #, c-format msgid "prolog: bkpt address 0x%08x\n" msgstr "" -#: vms-alpha.c:7140 +#: vms-alpha.c:7141 #, c-format msgid "epilog: flags: %u, count: %u\n" msgstr "" -#: vms-alpha.c:7150 +#: vms-alpha.c:7151 #, c-format msgid "blkbeg: address: 0x%08x, name: %.*s\n" msgstr "" -#: vms-alpha.c:7159 +#: vms-alpha.c:7160 #, c-format msgid "blkend: size: 0x%08x\n" msgstr "" -#: vms-alpha.c:7165 +#: vms-alpha.c:7166 #, c-format msgid "typspec (len: %u)\n" msgstr "" -#: vms-alpha.c:7172 +#: vms-alpha.c:7173 #, c-format msgid "septyp, name: %.*s\n" msgstr "" -#: vms-alpha.c:7181 +#: vms-alpha.c:7182 #, c-format msgid "recbeg: name: %.*s\n" msgstr "" -#: vms-alpha.c:7183 +#: vms-alpha.c:7184 #, c-format msgid " len: %u bits\n" msgstr "" -#: vms-alpha.c:7188 +#: vms-alpha.c:7189 #, c-format msgid "recend\n" msgstr "" -#: vms-alpha.c:7192 +#: vms-alpha.c:7193 #, c-format msgid "enumbeg, len: %u, name: %.*s\n" msgstr "" -#: vms-alpha.c:7196 +#: vms-alpha.c:7197 #, c-format msgid "enumelt, name: %.*s\n" msgstr "" -#: vms-alpha.c:7200 +#: vms-alpha.c:7201 #, c-format msgid "enumend\n" msgstr "" -#: vms-alpha.c:7205 +#: vms-alpha.c:7206 #, c-format msgid "label, name: %.*s\n" msgstr "" -#: vms-alpha.c:7207 +#: vms-alpha.c:7208 #, c-format msgid " address: 0x%08x\n" msgstr "" -#: vms-alpha.c:7217 +#: vms-alpha.c:7218 #, c-format msgid "discontiguous range (nbr: %u)\n" msgstr "" -#: vms-alpha.c:7220 +#: vms-alpha.c:7221 #, c-format msgid " address: 0x%08x, size: %u\n" msgstr "" -#: vms-alpha.c:7230 +#: vms-alpha.c:7231 #, c-format msgid "line num (len: %u)\n" msgstr "" -#: vms-alpha.c:7247 +#: vms-alpha.c:7248 #, c-format msgid "delta_pc_w %u\n" msgstr "" -#: vms-alpha.c:7254 +#: vms-alpha.c:7255 #, c-format msgid "incr_linum(b): +%u\n" msgstr "" -#: vms-alpha.c:7260 +#: vms-alpha.c:7261 #, c-format msgid "incr_linum_w: +%u\n" msgstr "" -#: vms-alpha.c:7266 +#: vms-alpha.c:7267 #, c-format msgid "incr_linum_l: +%u\n" msgstr "" -#: vms-alpha.c:7272 +#: vms-alpha.c:7273 #, c-format msgid "set_line_num(w) %u\n" msgstr "" -#: vms-alpha.c:7277 +#: vms-alpha.c:7278 #, c-format msgid "set_line_num_b %u\n" msgstr "" -#: vms-alpha.c:7282 +#: vms-alpha.c:7283 #, c-format msgid "set_line_num_l %u\n" msgstr "" -#: vms-alpha.c:7287 +#: vms-alpha.c:7288 #, c-format msgid "set_abs_pc: 0x%08x\n" msgstr "" -#: vms-alpha.c:7291 +#: vms-alpha.c:7292 #, c-format msgid "delta_pc_l: +0x%08x\n" msgstr "" -#: vms-alpha.c:7296 +#: vms-alpha.c:7297 #, c-format msgid "term(b): 0x%02x" msgstr "" -#: vms-alpha.c:7298 +#: vms-alpha.c:7299 #, c-format msgid " pc: 0x%08x\n" msgstr "" -#: vms-alpha.c:7303 +#: vms-alpha.c:7304 #, c-format msgid "term_w: 0x%04x" msgstr "" -#: vms-alpha.c:7305 +#: vms-alpha.c:7306 #, c-format msgid " pc: 0x%08x\n" msgstr "" -#: vms-alpha.c:7311 +#: vms-alpha.c:7312 #, c-format msgid "delta pc +%-4d" msgstr "" -#: vms-alpha.c:7315 +#: vms-alpha.c:7316 #, c-format msgid " pc: 0x%08x line: %5u\n" msgstr "" -#: vms-alpha.c:7320 +#: vms-alpha.c:7321 #, c-format msgid " *unhandled* cmd %u\n" msgstr "" -#: vms-alpha.c:7335 +#: vms-alpha.c:7336 #, c-format msgid "source (len: %u)\n" msgstr "" -#: vms-alpha.c:7350 +#: vms-alpha.c:7351 #, c-format msgid " declfile: len: %u, flags: %u, fileid: %u\n" msgstr "" -#: vms-alpha.c:7355 +#: vms-alpha.c:7356 #, c-format msgid " rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n" msgstr "" -#: vms-alpha.c:7364 +#: vms-alpha.c:7365 #, c-format msgid " filename : %.*s\n" msgstr "" -#: vms-alpha.c:7373 +#: vms-alpha.c:7374 #, c-format msgid " setfile %u\n" msgstr "" -#: vms-alpha.c:7378 vms-alpha.c:7383 +#: vms-alpha.c:7379 vms-alpha.c:7384 #, c-format msgid " setrec %u\n" msgstr "" -#: vms-alpha.c:7388 vms-alpha.c:7393 +#: vms-alpha.c:7389 vms-alpha.c:7394 #, c-format msgid " setlnum %u\n" msgstr "" -#: vms-alpha.c:7398 vms-alpha.c:7403 +#: vms-alpha.c:7399 vms-alpha.c:7404 #, c-format msgid " deflines %u\n" msgstr "" -#: vms-alpha.c:7407 +#: vms-alpha.c:7408 #, c-format msgid " formfeed\n" msgstr "" -#: vms-alpha.c:7411 +#: vms-alpha.c:7412 #, c-format msgid " *unhandled* cmd %u\n" msgstr "" -#: vms-alpha.c:7423 +#: vms-alpha.c:7424 #, c-format msgid "*unhandled* dst type %u\n" msgstr "" -#: vms-alpha.c:7455 +#: vms-alpha.c:7456 #, c-format msgid "cannot read EIHD\n" msgstr "" -#: vms-alpha.c:7459 +#: vms-alpha.c:7460 #, c-format msgid "EIHD: (size: %u, nbr blocks: %u)\n" msgstr "" -#: vms-alpha.c:7463 +#: vms-alpha.c:7464 #, c-format msgid " majorid: %u, minorid: %u\n" msgstr "" -#: vms-alpha.c:7471 +#: vms-alpha.c:7472 msgid "executable" msgstr "" -#: vms-alpha.c:7474 +#: vms-alpha.c:7475 msgid "linkable image" msgstr "" -#: vms-alpha.c:7481 +#: vms-alpha.c:7482 #, c-format msgid " image type: %u (%s)" msgstr "" -#: vms-alpha.c:7487 +#: vms-alpha.c:7488 msgid "native" msgstr "" -#: vms-alpha.c:7490 +#: vms-alpha.c:7491 msgid "CLI" msgstr "" -#: vms-alpha.c:7497 +#: vms-alpha.c:7498 #, c-format msgid ", subtype: %u (%s)\n" msgstr "" -#: vms-alpha.c:7504 +#: vms-alpha.c:7505 #, c-format msgid " offsets: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n" msgstr "" -#: vms-alpha.c:7508 +#: vms-alpha.c:7509 #, c-format msgid " fixup info rva: " msgstr "" -#: vms-alpha.c:7510 +#: vms-alpha.c:7511 #, c-format msgid ", symbol vector rva: " msgstr "" -#: vms-alpha.c:7513 +#: vms-alpha.c:7514 #, c-format msgid "" "\n" " version array off: %u\n" msgstr "" -#: vms-alpha.c:7518 +#: vms-alpha.c:7519 #, c-format msgid " img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n" msgstr "" -#: vms-alpha.c:7524 +#: vms-alpha.c:7525 #, c-format msgid " linker flags: %08x:" msgstr "" -#: vms-alpha.c:7555 +#: vms-alpha.c:7556 #, c-format msgid " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n" msgstr "" -#: vms-alpha.c:7561 +#: vms-alpha.c:7562 #, c-format msgid " BPAGE: %u" msgstr "" -#: vms-alpha.c:7568 +#: vms-alpha.c:7569 #, c-format msgid ", ext fixup offset: %u, no_opt psect off: %u" msgstr "" -#: vms-alpha.c:7571 +#: vms-alpha.c:7572 #, c-format msgid ", alias: %u\n" msgstr "" -#: vms-alpha.c:7579 +#: vms-alpha.c:7580 #, c-format msgid "system version array information:\n" msgstr "" -#: vms-alpha.c:7583 +#: vms-alpha.c:7584 #, c-format msgid "cannot read EIHVN header\n" msgstr "" -#: vms-alpha.c:7593 +#: vms-alpha.c:7594 #, c-format msgid "cannot read EIHVN version\n" msgstr "" -#: vms-alpha.c:7596 +#: vms-alpha.c:7597 #, c-format msgid " %02u " msgstr "" -#: vms-alpha.c:7600 +#: vms-alpha.c:7601 msgid "BASE_IMAGE " msgstr "" -#: vms-alpha.c:7603 +#: vms-alpha.c:7604 msgid "MEMORY_MANAGEMENT" msgstr "" -#: vms-alpha.c:7606 +#: vms-alpha.c:7607 msgid "IO " msgstr "" -#: vms-alpha.c:7609 +#: vms-alpha.c:7610 msgid "FILES_VOLUMES " msgstr "" -#: vms-alpha.c:7612 +#: vms-alpha.c:7613 msgid "PROCESS_SCHED " msgstr "" -#: vms-alpha.c:7615 +#: vms-alpha.c:7616 msgid "SYSGEN " msgstr "" -#: vms-alpha.c:7618 +#: vms-alpha.c:7619 msgid "CLUSTERS_LOCKMGR " msgstr "" -#: vms-alpha.c:7621 +#: vms-alpha.c:7622 msgid "LOGICAL_NAMES " msgstr "" -#: vms-alpha.c:7624 +#: vms-alpha.c:7625 msgid "SECURITY " msgstr "" -#: vms-alpha.c:7627 +#: vms-alpha.c:7628 msgid "IMAGE_ACTIVATOR " msgstr "" -#: vms-alpha.c:7630 +#: vms-alpha.c:7631 msgid "NETWORKS " msgstr "" -#: vms-alpha.c:7633 +#: vms-alpha.c:7634 msgid "COUNTERS " msgstr "" -#: vms-alpha.c:7636 +#: vms-alpha.c:7637 msgid "STABLE " msgstr "" -#: vms-alpha.c:7639 +#: vms-alpha.c:7640 msgid "MISC " msgstr "" -#: vms-alpha.c:7642 +#: vms-alpha.c:7643 msgid "CPU " msgstr "" -#: vms-alpha.c:7645 +#: vms-alpha.c:7646 msgid "VOLATILE " msgstr "" -#: vms-alpha.c:7648 +#: vms-alpha.c:7649 msgid "SHELL " msgstr "" -#: vms-alpha.c:7651 +#: vms-alpha.c:7652 msgid "POSIX " msgstr "" -#: vms-alpha.c:7654 +#: vms-alpha.c:7655 msgid "MULTI_PROCESSING " msgstr "" -#: vms-alpha.c:7657 +#: vms-alpha.c:7658 msgid "GALAXY " msgstr "" -#: vms-alpha.c:7660 +#: vms-alpha.c:7661 msgid "*unknown* " msgstr "" -#: vms-alpha.c:7676 vms-alpha.c:7951 +#: vms-alpha.c:7677 vms-alpha.c:7952 #, c-format msgid "cannot read EIHA\n" msgstr "" -#: vms-alpha.c:7679 +#: vms-alpha.c:7680 #, c-format msgid "Image activation: (size=%u)\n" msgstr "" -#: vms-alpha.c:7682 +#: vms-alpha.c:7683 #, c-format msgid " First address : 0x%08x 0x%08x\n" msgstr "" -#: vms-alpha.c:7686 +#: vms-alpha.c:7687 #, c-format msgid " Second address: 0x%08x 0x%08x\n" msgstr "" -#: vms-alpha.c:7690 +#: vms-alpha.c:7691 #, c-format msgid " Third address : 0x%08x 0x%08x\n" msgstr "" -#: vms-alpha.c:7694 +#: vms-alpha.c:7695 #, c-format msgid " Fourth address: 0x%08x 0x%08x\n" msgstr "" -#: vms-alpha.c:7698 +#: vms-alpha.c:7699 #, c-format msgid " Shared image : 0x%08x 0x%08x\n" msgstr "" -#: vms-alpha.c:7709 +#: vms-alpha.c:7710 #, c-format msgid "cannot read EIHI\n" msgstr "" -#: vms-alpha.c:7713 +#: vms-alpha.c:7714 #, c-format msgid "Image identification: (major: %u, minor: %u)\n" msgstr "" -#: vms-alpha.c:7716 +#: vms-alpha.c:7717 #, c-format msgid " image name : %.*s\n" msgstr "" -#: vms-alpha.c:7718 +#: vms-alpha.c:7719 #, c-format msgid " link time : %s\n" msgstr "" -#: vms-alpha.c:7720 +#: vms-alpha.c:7721 #, c-format msgid " image ident : %.*s\n" msgstr "" -#: vms-alpha.c:7722 +#: vms-alpha.c:7723 #, c-format msgid " linker ident : %.*s\n" msgstr "" -#: vms-alpha.c:7724 +#: vms-alpha.c:7725 #, c-format msgid " image build ident: %.*s\n" msgstr "" -#: vms-alpha.c:7734 +#: vms-alpha.c:7735 #, c-format msgid "cannot read EIHS\n" msgstr "" -#: vms-alpha.c:7738 +#: vms-alpha.c:7739 #, c-format msgid "Image symbol & debug table: (major: %u, minor: %u)\n" msgstr "" -#: vms-alpha.c:7744 +#: vms-alpha.c:7745 #, c-format msgid " debug symbol table : vbn: %u, size: %u (0x%x)\n" msgstr "" -#: vms-alpha.c:7749 +#: vms-alpha.c:7750 #, c-format msgid " global symbol table: vbn: %u, records: %u\n" msgstr "" -#: vms-alpha.c:7754 +#: vms-alpha.c:7755 #, c-format msgid " debug module table : vbn: %u, size: %u\n" msgstr "" -#: vms-alpha.c:7767 +#: vms-alpha.c:7768 #, c-format msgid "cannot read EISD\n" msgstr "" -#: vms-alpha.c:7778 +#: vms-alpha.c:7779 #, c-format msgid "" "Image section descriptor: (major: %u, minor: %u, size: %u, offset: %u)\n" msgstr "" -#: vms-alpha.c:7786 +#: vms-alpha.c:7787 #, c-format msgid " section: base: 0x%08x%08x size: 0x%08x\n" msgstr "" -#: vms-alpha.c:7791 +#: vms-alpha.c:7792 #, c-format msgid " flags: 0x%04x" msgstr "" -#: vms-alpha.c:7829 +#: vms-alpha.c:7830 #, c-format msgid " vbn: %u, pfc: %u, matchctl: %u type: %u (" msgstr "" -#: vms-alpha.c:7835 +#: vms-alpha.c:7836 msgid "NORMAL" msgstr "" -#: vms-alpha.c:7838 +#: vms-alpha.c:7839 msgid "SHRFXD" msgstr "" -#: vms-alpha.c:7841 +#: vms-alpha.c:7842 msgid "PRVFXD" msgstr "" -#: vms-alpha.c:7844 +#: vms-alpha.c:7845 msgid "SHRPIC" msgstr "" -#: vms-alpha.c:7847 +#: vms-alpha.c:7848 msgid "PRVPIC" msgstr "" -#: vms-alpha.c:7850 +#: vms-alpha.c:7851 msgid "USRSTACK" msgstr "" -#: vms-alpha.c:7856 +#: vms-alpha.c:7857 msgid ")\n" msgstr "" -#: vms-alpha.c:7859 +#: vms-alpha.c:7860 #, c-format msgid " ident: 0x%08x, name: %.*s\n" msgstr "" -#: vms-alpha.c:7869 +#: vms-alpha.c:7870 #, c-format msgid "cannot read DMT\n" msgstr "" -#: vms-alpha.c:7873 +#: vms-alpha.c:7874 #, c-format msgid "Debug module table:\n" msgstr "" -#: vms-alpha.c:7882 +#: vms-alpha.c:7883 #, c-format msgid "cannot read DMT header\n" msgstr "" -#: vms-alpha.c:7888 +#: vms-alpha.c:7889 #, c-format msgid " module offset: 0x%08x, size: 0x%08x, (%u psects)\n" msgstr "" -#: vms-alpha.c:7898 +#: vms-alpha.c:7899 #, c-format msgid "cannot read DMT psect\n" msgstr "" -#: vms-alpha.c:7902 +#: vms-alpha.c:7903 #, c-format msgid " psect start: 0x%08x, length: %u\n" msgstr "" -#: vms-alpha.c:7915 +#: vms-alpha.c:7916 #, c-format msgid "cannot read DST\n" msgstr "" -#: vms-alpha.c:7925 +#: vms-alpha.c:7926 #, c-format msgid "cannot read GST\n" msgstr "" -#: vms-alpha.c:7929 +#: vms-alpha.c:7930 #, c-format msgid "Global symbol table:\n" msgstr "" -#: vms-alpha.c:7958 +#: vms-alpha.c:7959 #, c-format msgid "Image activator fixup: (major: %u, minor: %u)\n" msgstr "" -#: vms-alpha.c:7962 +#: vms-alpha.c:7963 #, c-format msgid " iaflink : 0x%08x %08x\n" msgstr "" -#: vms-alpha.c:7966 +#: vms-alpha.c:7967 #, c-format msgid " fixuplnk: 0x%08x %08x\n" msgstr "" -#: vms-alpha.c:7969 +#: vms-alpha.c:7970 #, c-format msgid " size : %u\n" msgstr "" -#: vms-alpha.c:7971 +#: vms-alpha.c:7972 #, c-format msgid " flags: 0x%08x\n" msgstr "" -#: vms-alpha.c:7976 +#: vms-alpha.c:7977 #, c-format msgid " qrelfixoff: %5u, lrelfixoff: %5u\n" msgstr "" -#: vms-alpha.c:7981 +#: vms-alpha.c:7982 #, c-format msgid " qdotadroff: %5u, ldotadroff: %5u\n" msgstr "" -#: vms-alpha.c:7986 +#: vms-alpha.c:7987 #, c-format msgid " codeadroff: %5u, lpfixoff : %5u\n" msgstr "" -#: vms-alpha.c:7989 +#: vms-alpha.c:7990 #, c-format msgid " chgprtoff : %5u\n" msgstr "" -#: vms-alpha.c:7993 +#: vms-alpha.c:7994 #, c-format msgid " shlstoff : %5u, shrimgcnt : %5u\n" msgstr "" -#: vms-alpha.c:7996 +#: vms-alpha.c:7997 #, c-format msgid " shlextra : %5u, permctx : %5u\n" msgstr "" -#: vms-alpha.c:7999 +#: vms-alpha.c:8000 #, c-format msgid " base_va : 0x%08x\n" msgstr "" -#: vms-alpha.c:8001 +#: vms-alpha.c:8002 #, c-format msgid " lppsbfixoff: %5u\n" msgstr "" -#: vms-alpha.c:8009 +#: vms-alpha.c:8010 #, c-format msgid " Shareable images:\n" msgstr "" -#: vms-alpha.c:8014 +#: vms-alpha.c:8015 #, c-format msgid " %u: size: %u, flags: 0x%02x, name: %.*s\n" msgstr "" -#: vms-alpha.c:8021 +#: vms-alpha.c:8022 #, c-format msgid " quad-word relocation fixups:\n" msgstr "" -#: vms-alpha.c:8026 +#: vms-alpha.c:8027 #, c-format msgid " long-word relocation fixups:\n" msgstr "" -#: vms-alpha.c:8031 +#: vms-alpha.c:8032 #, c-format msgid " quad-word .address reference fixups:\n" msgstr "" -#: vms-alpha.c:8036 +#: vms-alpha.c:8037 #, c-format msgid " long-word .address reference fixups:\n" msgstr "" -#: vms-alpha.c:8041 +#: vms-alpha.c:8042 #, c-format msgid " Code Address Reference Fixups:\n" msgstr "" -#: vms-alpha.c:8046 +#: vms-alpha.c:8047 #, c-format msgid " Linkage Pairs Reference Fixups:\n" msgstr "" -#: vms-alpha.c:8055 +#: vms-alpha.c:8056 #, c-format msgid " Change Protection (%u entries):\n" msgstr "" -#: vms-alpha.c:8061 +#: vms-alpha.c:8062 #, c-format msgid " base: 0x%08x %08x, size: 0x%08x, prot: 0x%08x " msgstr "" #. FIXME: we do not yet support relocatable link. It is not obvious #. how to do it for debug infos. -#: vms-alpha.c:8901 +#: vms-alpha.c:8902 msgid "%P: relocatable link is not supported\n" msgstr "" -#: vms-alpha.c:8972 +#: vms-alpha.c:8973 #, c-format -msgid "%P: multiple entry points: in modules %B and %B\n" +msgid "%P: multiple entry points: in modules %pB and %pB\n" msgstr "" #: vms-lib.c:1445 @@ -8049,336 +7781,378 @@ msgstr "" #: xcofflink.c:832 -msgid "%B: XCOFF shared object when not producing XCOFF output" +#, c-format +msgid "%pB: XCOFF shared object when not producing XCOFF output" msgstr "" #: xcofflink.c:853 -msgid "%B: dynamic object with no .loader section" +#, c-format +msgid "%pB: dynamic object with no .loader section" msgstr "" #: xcofflink.c:1413 #, c-format -msgid "%B: `%s' has line numbers but no enclosing section" +msgid "%pB: `%s' has line numbers but no enclosing section" msgstr "" #: xcofflink.c:1466 #, c-format -msgid "%B: class %d symbol `%s' has no aux entries" +msgid "%pB: class %d symbol `%s' has no aux entries" msgstr "" #: xcofflink.c:1489 #, c-format -msgid "%B: symbol `%s' has unrecognized csect type %d" +msgid "%pB: symbol `%s' has unrecognized csect type %d" msgstr "" #: xcofflink.c:1502 #, c-format -msgid "%B: bad XTY_ER symbol `%s': class %d scnum %d scnlen %Ld" +msgid "%pB: bad XTY_ER symbol `%s': class %d scnum %d scnlen %" msgstr "" -#: xcofflink.c:1532 +#: xcofflink.c:1533 #, c-format -msgid "%B: XMC_TC0 symbol `%s' is class %d scnlen %Ld" +msgid "%pB: XMC_TC0 symbol `%s' is class %d scnlen %" msgstr "" -#: xcofflink.c:1679 +#: xcofflink.c:1680 #, c-format -msgid "%B: csect `%s' not in enclosing section" +msgid "%pB: csect `%s' not in enclosing section" msgstr "" -#: xcofflink.c:1787 +#: xcofflink.c:1788 #, c-format -msgid "%B: misplaced XTY_LD `%s'" +msgid "%pB: misplaced XTY_LD `%s'" msgstr "" -#: xcofflink.c:2108 +#: xcofflink.c:2109 #, c-format -msgid "%B: reloc %s:%Ld not in csect" +msgid "%pB: reloc %s:% not in csect" msgstr "" -#: xcofflink.c:3198 +#: xcofflink.c:3199 #, c-format msgid "%s: no such symbol" msgstr "" -#: xcofflink.c:3303 +#: xcofflink.c:3304 #, c-format msgid "warning: attempt to export undefined symbol `%s'" msgstr "" -#: xcofflink.c:3682 +#: xcofflink.c:3683 msgid "error: undefined symbol __rtinit" msgstr "" -#: xcofflink.c:4062 +#: xcofflink.c:4063 #, c-format -msgid "%B: loader reloc in unrecognized section `%s'" +msgid "%pB: loader reloc in unrecognized section `%s'" msgstr "" -#: xcofflink.c:4074 +#: xcofflink.c:4075 #, c-format -msgid "%B: `%s' in loader reloc but not loader sym" +msgid "%pB: `%s' in loader reloc but not loader sym" msgstr "" -#: xcofflink.c:4091 +#: xcofflink.c:4092 #, c-format -msgid "%B: loader reloc in read-only section %A" +msgid "%pB: loader reloc in read-only section %pA" msgstr "" -#: xcofflink.c:5115 +#: xcofflink.c:5116 #, c-format -msgid "TOC overflow: %#Lx > 0x10000; try -mminimal-toc when compiling" +msgid "TOC overflow: %# > 0x10000; try -mminimal-toc when compiling" msgstr "" -#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:1890 +#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:5027 #, c-format -msgid "Invalid AArch64 reloc number: %d" -msgstr "" - -#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:4777 -msgid "%B: error: Erratum 835769 stub out of range (input file too large)" +msgid "%pB: error: erratum 835769 stub out of range (input file too large)" msgstr "" -#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:4858 -msgid "%B: error: Erratum 843419 stub out of range (input file too large)" +#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:5108 +#, c-format +msgid "%pB: error: erratum 843419 stub out of range (input file too large)" msgstr "" -#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:5340 +#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:5638 #, c-format msgid "" -"%B: relocation %s against symbol `%s' which may bind externally can not be " +"%pB: relocation %s against symbol `%s' which may bind externally can not be " "used when making a shared object; recompile with -fPIC" msgstr "" -#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:5431 +#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:5729 #, c-format msgid "" -"%B: Local symbol descriptor table be NULL when applying relocation %s " +"%pB: local symbol descriptor table be NULL when applying relocation %s " "against local symbol" msgstr "" -#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6453 -msgid "Too many GOT entries for -fpic, please recompile with -fPIC" +#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6761 +msgid "too many GOT entries for -fpic, please recompile with -fPIC" msgstr "" -#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6481 +#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6789 msgid "" -"One possible cause of this error is that the symbol is being referenced in " +"one possible cause of this error is that the symbol is being referenced in " "the indicated code as if it had a larger alignment than was declared where " -"it was defined." +"it was defined" +msgstr "" + +#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:7375 +#, c-format +msgid "" +"%pB: relocation %s against `%s' can not be used when making a shared object" +msgstr "" + +#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2281 +msgid "%X%P: internal error: out of range error\n" +msgstr "" + +#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2285 +msgid "%X%P: internal error: unsupported relocation error\n" msgstr "" -#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2600 +#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2295 +msgid "%X%P: internal error: unknown error\n" +msgstr "" + +#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2621 +#, c-format msgid "" -"%B: ABI is incompatible with that of the selected emulation:\n" +"%pB: ABI is incompatible with that of the selected emulation:\n" " target emulation `%s' does not match `%s'" msgstr "" -#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2620 -msgid "%B: can't link hard-float modules with soft-float modules" +#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2641 +#, c-format +msgid "%pB: can't link hard-float modules with soft-float modules" +msgstr "" + +#: /work/sources/binutils/current/bfd/elfnn-riscv.c:2649 +#, c-format +msgid "%pB: can't link RVE with other target" +msgstr "" + +#: /work/sources/binutils/current/bfd/elfnn-riscv.c:3167 +#, c-format +msgid "" +"%pB(%pA+%#): % bytes required for alignment to %-" +"byte boundary, but only % present" +msgstr "" + +#: /work/sources/binutils/current/bfd/elfnn-riscv.c:3235 +#, c-format +msgid "" +"%pB(%pA+%#): Unable to clear RISCV_PCREL_HI20 reloc for " +"corresponding RISCV_PCREL_LO12 reloc" msgstr "" #: peigen.c:157 pepigen.c:157 pex64igen.c:157 -msgid "%B: unable to find name for empty section" +#, c-format +msgid "%pB: unable to find name for empty section" msgstr "" #: peigen.c:183 pepigen.c:183 pex64igen.c:183 -msgid "%B: out of memory creating name for empty section" +#, c-format +msgid "%pB: out of memory creating name for empty section" msgstr "" #: peigen.c:194 pepigen.c:194 pex64igen.c:194 -msgid "%B: unable to create fake empty section" +#, c-format +msgid "%pB: unable to create fake empty section" msgstr "" #: peigen.c:532 pepigen.c:532 pex64igen.c:532 +#, c-format msgid "" -"%B: aout header specifies an invalid number of data-directory entries: %ld" +"%pB: aout header specifies an invalid number of data-directory entries: %ld" msgstr "" -#: peigen.c:1089 pepigen.c:1089 pex64igen.c:1089 +#: peigen.c:1090 pepigen.c:1090 pex64igen.c:1090 #, c-format -msgid "%B: line number overflow: 0x%lx > 0xffff" +msgid "%pB: line number overflow: 0x%lx > 0xffff" msgstr "" -#: peigen.c:1233 pepigen.c:1233 pex64igen.c:1233 +#: peigen.c:1234 pepigen.c:1234 pex64igen.c:1234 msgid "Export Directory [.edata (or where ever we found it)]" msgstr "" -#: peigen.c:1234 pepigen.c:1234 pex64igen.c:1234 +#: peigen.c:1235 pepigen.c:1235 pex64igen.c:1235 msgid "Import Directory [parts of .idata]" msgstr "" -#: peigen.c:1235 pepigen.c:1235 pex64igen.c:1235 +#: peigen.c:1236 pepigen.c:1236 pex64igen.c:1236 msgid "Resource Directory [.rsrc]" msgstr "" -#: peigen.c:1236 pepigen.c:1236 pex64igen.c:1236 +#: peigen.c:1237 pepigen.c:1237 pex64igen.c:1237 msgid "Exception Directory [.pdata]" msgstr "" -#: peigen.c:1237 pepigen.c:1237 pex64igen.c:1237 +#: peigen.c:1238 pepigen.c:1238 pex64igen.c:1238 msgid "Security Directory" msgstr "" -#: peigen.c:1238 pepigen.c:1238 pex64igen.c:1238 +#: peigen.c:1239 pepigen.c:1239 pex64igen.c:1239 msgid "Base Relocation Directory [.reloc]" msgstr "" -#: peigen.c:1239 pepigen.c:1239 pex64igen.c:1239 +#: peigen.c:1240 pepigen.c:1240 pex64igen.c:1240 msgid "Debug Directory" msgstr "" -#: peigen.c:1240 pepigen.c:1240 pex64igen.c:1240 +#: peigen.c:1241 pepigen.c:1241 pex64igen.c:1241 msgid "Description Directory" msgstr "" -#: peigen.c:1241 pepigen.c:1241 pex64igen.c:1241 +#: peigen.c:1242 pepigen.c:1242 pex64igen.c:1242 msgid "Special Directory" msgstr "" -#: peigen.c:1242 pepigen.c:1242 pex64igen.c:1242 +#: peigen.c:1243 pepigen.c:1243 pex64igen.c:1243 msgid "Thread Storage Directory [.tls]" msgstr "" -#: peigen.c:1243 pepigen.c:1243 pex64igen.c:1243 +#: peigen.c:1244 pepigen.c:1244 pex64igen.c:1244 msgid "Load Configuration Directory" msgstr "" -#: peigen.c:1244 pepigen.c:1244 pex64igen.c:1244 +#: peigen.c:1245 pepigen.c:1245 pex64igen.c:1245 msgid "Bound Import Directory" msgstr "" -#: peigen.c:1245 pepigen.c:1245 pex64igen.c:1245 +#: peigen.c:1246 pepigen.c:1246 pex64igen.c:1246 msgid "Import Address Table Directory" msgstr "" -#: peigen.c:1246 pepigen.c:1246 pex64igen.c:1246 +#: peigen.c:1247 pepigen.c:1247 pex64igen.c:1247 msgid "Delay Import Directory" msgstr "" -#: peigen.c:1247 pepigen.c:1247 pex64igen.c:1247 +#: peigen.c:1248 pepigen.c:1248 pex64igen.c:1248 msgid "CLR Runtime Header" msgstr "" -#: peigen.c:1248 pepigen.c:1248 pex64igen.c:1248 +#: peigen.c:1249 pepigen.c:1249 pex64igen.c:1249 msgid "Reserved" msgstr "" -#: peigen.c:1308 pepigen.c:1308 pex64igen.c:1308 +#: peigen.c:1309 pepigen.c:1309 pex64igen.c:1309 #, c-format msgid "" "\n" "There is an import table, but the section containing it could not be found\n" msgstr "" -#: peigen.c:1314 pepigen.c:1314 pex64igen.c:1314 +#: peigen.c:1315 pepigen.c:1315 pex64igen.c:1315 #, c-format msgid "" "\n" "There is an import table in %s, but that section has no contents\n" msgstr "" -#: peigen.c:1321 pepigen.c:1321 pex64igen.c:1321 +#: peigen.c:1322 pepigen.c:1322 pex64igen.c:1322 #, c-format msgid "" "\n" "There is an import table in %s at 0x%lx\n" msgstr "" -#: peigen.c:1363 pepigen.c:1363 pex64igen.c:1363 +#: peigen.c:1364 pepigen.c:1364 pex64igen.c:1364 #, c-format msgid "" "\n" "Function descriptor located at the start address: %04lx\n" msgstr "" -#: peigen.c:1367 pepigen.c:1367 pex64igen.c:1367 +#: peigen.c:1368 pepigen.c:1368 pex64igen.c:1368 #, c-format msgid "\tcode-base %08lx toc (loadable/actual) %08lx/%08lx\n" msgstr "" -#: peigen.c:1375 pepigen.c:1375 pex64igen.c:1375 +#: peigen.c:1376 pepigen.c:1376 pex64igen.c:1376 #, c-format msgid "" "\n" "No reldata section! Function descriptor not decoded.\n" msgstr "" -#: peigen.c:1380 pepigen.c:1380 pex64igen.c:1380 +#: peigen.c:1381 pepigen.c:1381 pex64igen.c:1381 #, c-format msgid "" "\n" "The Import Tables (interpreted %s section contents)\n" msgstr "" -#: peigen.c:1383 pepigen.c:1383 pex64igen.c:1383 +#: peigen.c:1384 pepigen.c:1384 pex64igen.c:1384 #, c-format msgid "" " vma: Hint Time Forward DLL First\n" " Table Stamp Chain Name Thunk\n" msgstr "" -#: peigen.c:1433 pepigen.c:1433 pex64igen.c:1433 +#: peigen.c:1434 pepigen.c:1434 pex64igen.c:1434 #, c-format msgid "" "\n" "\tDLL Name: %.*s\n" msgstr "" -#: peigen.c:1449 pepigen.c:1449 pex64igen.c:1449 +#: peigen.c:1450 pepigen.c:1450 pex64igen.c:1450 #, c-format msgid "\tvma: Hint/Ord Member-Name Bound-To\n" msgstr "" -#: peigen.c:1474 pepigen.c:1474 pex64igen.c:1474 +#: peigen.c:1475 pepigen.c:1475 pex64igen.c:1475 #, c-format msgid "" "\n" "There is a first thunk, but the section containing it could not be found\n" msgstr "" -#: peigen.c:1518 peigen.c:1556 pepigen.c:1518 pepigen.c:1556 pex64igen.c:1518 -#: pex64igen.c:1556 +#: peigen.c:1519 peigen.c:1558 pepigen.c:1519 pepigen.c:1558 pex64igen.c:1519 +#: pex64igen.c:1558 #, c-format msgid "\t" msgstr "" -#: peigen.c:1649 pepigen.c:1649 pex64igen.c:1649 +#: peigen.c:1651 pepigen.c:1651 pex64igen.c:1651 #, c-format msgid "" "\n" "There is an export table, but the section containing it could not be found\n" msgstr "" -#: peigen.c:1655 pepigen.c:1655 pex64igen.c:1655 +#: peigen.c:1657 pepigen.c:1657 pex64igen.c:1657 #, c-format msgid "" "\n" "There is an export table in %s, but that section has no contents\n" msgstr "" -#: peigen.c:1665 pepigen.c:1665 pex64igen.c:1665 +#: peigen.c:1667 pepigen.c:1667 pex64igen.c:1667 #, c-format msgid "" "\n" "There is an export table in %s, but it does not fit into that section\n" msgstr "" -#: peigen.c:1676 pepigen.c:1676 pex64igen.c:1676 +#: peigen.c:1678 pepigen.c:1678 pex64igen.c:1678 #, c-format msgid "" "\n" "There is an export table in %s, but it is too small (%d)\n" msgstr "" -#: peigen.c:1682 pepigen.c:1682 pex64igen.c:1682 +#: peigen.c:1684 pepigen.c:1684 pex64igen.c:1684 #, c-format msgid "" "\n" "There is an export table in %s at 0x%lx\n" msgstr "" -#: peigen.c:1710 pepigen.c:1710 pex64igen.c:1710 +#: peigen.c:1712 pepigen.c:1712 pex64igen.c:1712 #, c-format msgid "" "\n" @@ -8386,162 +8160,162 @@ "\n" msgstr "" -#: peigen.c:1714 pepigen.c:1714 pex64igen.c:1714 +#: peigen.c:1716 pepigen.c:1716 pex64igen.c:1716 #, c-format msgid "Export Flags \t\t\t%lx\n" msgstr "" -#: peigen.c:1717 pepigen.c:1717 pex64igen.c:1717 +#: peigen.c:1719 pepigen.c:1719 pex64igen.c:1719 #, c-format msgid "Time/Date stamp \t\t%lx\n" msgstr "" -#: peigen.c:1721 pepigen.c:1721 pex64igen.c:1721 +#: peigen.c:1723 pepigen.c:1723 pex64igen.c:1723 #, c-format msgid "Major/Minor \t\t\t%d/%d\n" msgstr "" -#: peigen.c:1724 pepigen.c:1724 pex64igen.c:1724 +#: peigen.c:1726 pepigen.c:1726 pex64igen.c:1726 #, c-format msgid "Name \t\t\t\t" msgstr "" -#: peigen.c:1735 pepigen.c:1735 pex64igen.c:1735 +#: peigen.c:1737 pepigen.c:1737 pex64igen.c:1737 #, c-format msgid "Ordinal Base \t\t\t%ld\n" msgstr "" -#: peigen.c:1738 pepigen.c:1738 pex64igen.c:1738 +#: peigen.c:1740 pepigen.c:1740 pex64igen.c:1740 #, c-format msgid "Number in:\n" msgstr "" -#: peigen.c:1741 pepigen.c:1741 pex64igen.c:1741 +#: peigen.c:1743 pepigen.c:1743 pex64igen.c:1743 #, c-format msgid "\tExport Address Table \t\t%08lx\n" msgstr "" -#: peigen.c:1745 pepigen.c:1745 pex64igen.c:1745 +#: peigen.c:1747 pepigen.c:1747 pex64igen.c:1747 #, c-format msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n" msgstr "" -#: peigen.c:1748 pepigen.c:1748 pex64igen.c:1748 +#: peigen.c:1750 pepigen.c:1750 pex64igen.c:1750 #, c-format msgid "Table Addresses\n" msgstr "" -#: peigen.c:1751 pepigen.c:1751 pex64igen.c:1751 +#: peigen.c:1753 pepigen.c:1753 pex64igen.c:1753 #, c-format msgid "\tExport Address Table \t\t" msgstr "" -#: peigen.c:1756 pepigen.c:1756 pex64igen.c:1756 +#: peigen.c:1758 pepigen.c:1758 pex64igen.c:1758 #, c-format msgid "\tName Pointer Table \t\t" msgstr "" -#: peigen.c:1761 pepigen.c:1761 pex64igen.c:1761 +#: peigen.c:1763 pepigen.c:1763 pex64igen.c:1763 #, c-format msgid "\tOrdinal Table \t\t\t" msgstr "" -#: peigen.c:1775 pepigen.c:1775 pex64igen.c:1775 +#: peigen.c:1777 pepigen.c:1777 pex64igen.c:1777 #, c-format msgid "" "\n" "Export Address Table -- Ordinal Base %ld\n" msgstr "" -#: peigen.c:1784 pepigen.c:1784 pex64igen.c:1784 +#: peigen.c:1786 pepigen.c:1786 pex64igen.c:1786 #, c-format msgid "\tInvalid Export Address Table rva (0x%lx) or entry count (0x%lx)\n" msgstr "" -#: peigen.c:1803 pepigen.c:1803 pex64igen.c:1803 +#: peigen.c:1805 pepigen.c:1805 pex64igen.c:1805 msgid "Forwarder RVA" msgstr "" -#: peigen.c:1815 pepigen.c:1815 pex64igen.c:1815 +#: peigen.c:1817 pepigen.c:1817 pex64igen.c:1817 msgid "Export RVA" msgstr "" -#: peigen.c:1822 pepigen.c:1822 pex64igen.c:1822 +#: peigen.c:1824 pepigen.c:1824 pex64igen.c:1824 #, c-format msgid "" "\n" "[Ordinal/Name Pointer] Table\n" msgstr "" -#: peigen.c:1830 pepigen.c:1830 pex64igen.c:1830 +#: peigen.c:1832 pepigen.c:1832 pex64igen.c:1832 #, c-format msgid "\tInvalid Name Pointer Table rva (0x%lx) or entry count (0x%lx)\n" msgstr "" -#: peigen.c:1837 pepigen.c:1837 pex64igen.c:1837 +#: peigen.c:1839 pepigen.c:1839 pex64igen.c:1839 #, c-format msgid "\tInvalid Ordinal Table rva (0x%lx) or entry count (0x%lx)\n" msgstr "" -#: peigen.c:1851 pepigen.c:1851 pex64igen.c:1851 +#: peigen.c:1853 pepigen.c:1853 pex64igen.c:1853 #, c-format msgid "\t[%4ld] \n" msgstr "" -#: peigen.c:1905 peigen.c:2102 pepigen.c:1905 pepigen.c:2102 pex64igen.c:1905 -#: pex64igen.c:2102 +#: peigen.c:1907 peigen.c:2104 pepigen.c:1907 pepigen.c:2104 pex64igen.c:1907 +#: pex64igen.c:2104 #, c-format -msgid "Warning, .pdata section size (%ld) is not a multiple of %d\n" +msgid "warning, .pdata section size (%ld) is not a multiple of %d\n" msgstr "" -#: peigen.c:1909 peigen.c:2106 pepigen.c:1909 pepigen.c:2106 pex64igen.c:1909 -#: pex64igen.c:2106 +#: peigen.c:1911 peigen.c:2108 pepigen.c:1911 pepigen.c:2108 pex64igen.c:1911 +#: pex64igen.c:2108 #, c-format msgid "" "\n" "The Function Table (interpreted .pdata section contents)\n" msgstr "" -#: peigen.c:1912 pepigen.c:1912 pex64igen.c:1912 +#: peigen.c:1914 pepigen.c:1914 pex64igen.c:1914 #, c-format msgid " vma:\t\t\tBegin Address End Address Unwind Info\n" msgstr "" -#: peigen.c:1914 pepigen.c:1914 pex64igen.c:1914 +#: peigen.c:1916 pepigen.c:1916 pex64igen.c:1916 #, c-format msgid "" " vma:\t\tBegin End EH EH PrologEnd Exception\n" " \t\tAddress Address Handler Data Address Mask\n" msgstr "" -#: peigen.c:1927 pepigen.c:1927 pex64igen.c:1927 +#: peigen.c:1929 pepigen.c:1929 pex64igen.c:1929 #, c-format msgid "Virtual size of .pdata section (%ld) larger than real size (%ld)\n" msgstr "" -#: peigen.c:1997 pepigen.c:1997 pex64igen.c:1997 +#: peigen.c:1999 pepigen.c:1999 pex64igen.c:1999 #, c-format msgid " Register save millicode" msgstr "" -#: peigen.c:2000 pepigen.c:2000 pex64igen.c:2000 +#: peigen.c:2002 pepigen.c:2002 pex64igen.c:2002 #, c-format msgid " Register restore millicode" msgstr "" -#: peigen.c:2003 pepigen.c:2003 pex64igen.c:2003 +#: peigen.c:2005 pepigen.c:2005 pex64igen.c:2005 #, c-format msgid " Glue code sequence" msgstr "" -#: peigen.c:2108 pepigen.c:2108 pex64igen.c:2108 +#: peigen.c:2110 pepigen.c:2110 pex64igen.c:2110 #, c-format msgid "" " vma:\t\tBegin Prolog Function Flags Exception EH\n" " \t\tAddress Length Length 32b exc Handler Data\n" msgstr "" -#: peigen.c:2230 pepigen.c:2230 pex64igen.c:2230 +#: peigen.c:2232 pepigen.c:2232 pex64igen.c:2232 #, c-format msgid "" "\n" @@ -8549,86 +8323,86 @@ "PE File Base Relocations (interpreted .reloc section contents)\n" msgstr "" -#: peigen.c:2260 pepigen.c:2260 pex64igen.c:2260 +#: peigen.c:2262 pepigen.c:2262 pex64igen.c:2262 #, c-format msgid "" "\n" "Virtual Address: %08lx Chunk size %ld (0x%lx) Number of fixups %ld\n" msgstr "" -#: peigen.c:2278 pepigen.c:2278 pex64igen.c:2278 +#: peigen.c:2280 pepigen.c:2280 pex64igen.c:2280 #, c-format msgid "\treloc %4d offset %4x [%4lx] %s" msgstr "" -#: peigen.c:2339 pepigen.c:2339 pex64igen.c:2339 +#: peigen.c:2341 pepigen.c:2341 pex64igen.c:2341 #, c-format msgid "%03x %*.s Entry: " msgstr "" -#: peigen.c:2363 pepigen.c:2363 pex64igen.c:2363 +#: peigen.c:2365 pepigen.c:2365 pex64igen.c:2365 #, c-format msgid "name: [val: %08lx len %d]: " msgstr "" -#: peigen.c:2383 pepigen.c:2383 pex64igen.c:2383 +#: peigen.c:2385 pepigen.c:2385 pex64igen.c:2385 #, c-format msgid "\n" msgstr "" -#: peigen.c:2393 pepigen.c:2393 pex64igen.c:2393 +#: peigen.c:2395 pepigen.c:2395 pex64igen.c:2395 #, c-format msgid "\n" msgstr "" -#: peigen.c:2398 pepigen.c:2398 pex64igen.c:2398 +#: peigen.c:2400 pepigen.c:2400 pex64igen.c:2400 #, c-format msgid "ID: %#08lx" msgstr "" -#: peigen.c:2401 pepigen.c:2401 pex64igen.c:2401 +#: peigen.c:2403 pepigen.c:2403 pex64igen.c:2403 #, c-format msgid ", Value: %#08lx\n" msgstr "" -#: peigen.c:2423 pepigen.c:2423 pex64igen.c:2423 +#: peigen.c:2425 pepigen.c:2425 pex64igen.c:2425 #, c-format msgid "%03x %*.s Leaf: Addr: %#08lx, Size: %#08lx, Codepage: %d\n" msgstr "" -#: peigen.c:2465 pepigen.c:2465 pex64igen.c:2465 +#: peigen.c:2467 pepigen.c:2467 pex64igen.c:2467 #, c-format msgid "\n" msgstr "" -#: peigen.c:2473 pepigen.c:2473 pex64igen.c:2473 +#: peigen.c:2475 pepigen.c:2475 pex64igen.c:2475 #, c-format msgid " Table: Char: %d, Time: %08lx, Ver: %d/%d, Num Names: %d, IDs: %d\n" msgstr "" -#: peigen.c:2562 pepigen.c:2562 pex64igen.c:2562 +#: peigen.c:2564 pepigen.c:2564 pex64igen.c:2564 #, c-format msgid "Corrupt .rsrc section detected!\n" msgstr "" -#: peigen.c:2586 pepigen.c:2586 pex64igen.c:2586 +#: peigen.c:2588 pepigen.c:2588 pex64igen.c:2588 #, c-format msgid "" "\n" "WARNING: Extra data in .rsrc section - it will be ignored by Windows:\n" msgstr "" -#: peigen.c:2592 pepigen.c:2592 pex64igen.c:2592 +#: peigen.c:2594 pepigen.c:2594 pex64igen.c:2594 #, c-format msgid " String table starts at offset: %#03x\n" msgstr "" -#: peigen.c:2595 pepigen.c:2595 pex64igen.c:2595 +#: peigen.c:2597 pepigen.c:2597 pex64igen.c:2597 #, c-format msgid " Resources start at offset: %#03x\n" msgstr "" -#: peigen.c:2647 pepigen.c:2647 pex64igen.c:2647 +#: peigen.c:2649 pepigen.c:2649 pex64igen.c:2649 #, c-format msgid "" "\n" @@ -8636,14 +8410,14 @@ "found\n" msgstr "" -#: peigen.c:2653 pepigen.c:2653 pex64igen.c:2653 +#: peigen.c:2655 pepigen.c:2655 pex64igen.c:2655 #, c-format msgid "" "\n" "There is a debug directory in %s, but that section has no contents\n" msgstr "" -#: peigen.c:2660 pepigen.c:2660 pex64igen.c:2660 +#: peigen.c:2662 pepigen.c:2662 pex64igen.c:2662 #, c-format msgid "" "\n" @@ -8651,7 +8425,7 @@ "small\n" msgstr "" -#: peigen.c:2665 pepigen.c:2665 pex64igen.c:2665 +#: peigen.c:2667 pepigen.c:2667 pex64igen.c:2667 #, c-format msgid "" "\n" @@ -8659,23 +8433,23 @@ "\n" msgstr "" -#: peigen.c:2672 pepigen.c:2672 pex64igen.c:2672 +#: peigen.c:2674 pepigen.c:2674 pex64igen.c:2674 #, c-format msgid "" "The debug data size field in the data directory is too big for the section" msgstr "" -#: peigen.c:2677 pepigen.c:2677 pex64igen.c:2677 +#: peigen.c:2679 pepigen.c:2679 pex64igen.c:2679 #, c-format msgid "Type Size Rva Offset\n" msgstr "" -#: peigen.c:2725 pepigen.c:2725 pex64igen.c:2725 +#: peigen.c:2727 pepigen.c:2727 pex64igen.c:2727 #, c-format msgid "(format %c%c%c%c signature %s age %ld)\n" msgstr "" -#: peigen.c:2733 pepigen.c:2733 pex64igen.c:2733 +#: peigen.c:2735 pepigen.c:2735 pex64igen.c:2735 #, c-format msgid "" "The debug directory size is not a multiple of the debug directory entry " @@ -8685,89 +8459,104 @@ #. The MS dumpbin program reportedly ands with 0xff0f before #. printing the characteristics field. Not sure why. No reason to #. emulate it here. -#: peigen.c:2753 pepigen.c:2753 pex64igen.c:2753 +#: peigen.c:2755 pepigen.c:2755 pex64igen.c:2755 #, c-format msgid "" "\n" "Characteristics 0x%x\n" msgstr "" -#: peigen.c:2988 pepigen.c:2988 pex64igen.c:2988 +#: peigen.c:2991 pepigen.c:2991 pex64igen.c:2991 +#, c-format +msgid "" +"%pB: Data Directory size (%lx) exceeds space left in section (%)" +msgstr "" + +#: peigen.c:3002 pepigen.c:3002 pex64igen.c:3002 #, c-format -msgid "%B: Data Directory size (%lx) exceeds space left in section (%Lx)" +msgid "%pB: Data Directory size (%#lx) is negative" msgstr "" -#: peigen.c:3018 pepigen.c:3018 pex64igen.c:3018 -msgid "Failed to update file offsets in debug directory" +#: peigen.c:3031 pepigen.c:3031 pex64igen.c:3031 +msgid "failed to update file offsets in debug directory" msgstr "" -#: peigen.c:3024 pepigen.c:3024 pex64igen.c:3024 -msgid "%B: Failed to read debug data section" +#: peigen.c:3037 pepigen.c:3037 pex64igen.c:3037 +#, c-format +msgid "%pB: failed to read debug data section" msgstr "" -#: peigen.c:3840 pepigen.c:3840 pex64igen.c:3840 +#: peigen.c:3853 pepigen.c:3853 pex64igen.c:3853 #, c-format msgid ".rsrc merge failure: duplicate string resource: %d" msgstr "" -#: peigen.c:3975 pepigen.c:3975 pex64igen.c:3975 +#: peigen.c:3988 pepigen.c:3988 pex64igen.c:3988 msgid ".rsrc merge failure: multiple non-default manifests" msgstr "" -#: peigen.c:3993 pepigen.c:3993 pex64igen.c:3993 +#: peigen.c:4006 pepigen.c:4006 pex64igen.c:4006 msgid ".rsrc merge failure: a directory matches a leaf" msgstr "" -#: peigen.c:4035 pepigen.c:4035 pex64igen.c:4035 +#: peigen.c:4048 pepigen.c:4048 pex64igen.c:4048 msgid ".rsrc merge failure: duplicate leaf" msgstr "" -#: peigen.c:4037 pepigen.c:4037 pex64igen.c:4037 +#: peigen.c:4050 pepigen.c:4050 pex64igen.c:4050 #, c-format msgid ".rsrc merge failure: duplicate leaf: %s" msgstr "" -#: peigen.c:4103 pepigen.c:4103 pex64igen.c:4103 -msgid ".rsrc merge failure: dirs with differing characteristics\n" +#: peigen.c:4116 pepigen.c:4116 pex64igen.c:4116 +msgid ".rsrc merge failure: dirs with differing characteristics" msgstr "" -#: peigen.c:4110 pepigen.c:4110 pex64igen.c:4110 -msgid ".rsrc merge failure: differing directory versions\n" +#: peigen.c:4123 pepigen.c:4123 pex64igen.c:4123 +msgid ".rsrc merge failure: differing directory versions" msgstr "" #. Corrupted .rsrc section - cannot merge. -#: peigen.c:4227 pepigen.c:4227 pex64igen.c:4227 -msgid "%B: .rsrc merge failure: corrupt .rsrc section" +#: peigen.c:4240 pepigen.c:4240 pex64igen.c:4240 +#, c-format +msgid "%pB: .rsrc merge failure: corrupt .rsrc section" msgstr "" -#: peigen.c:4235 pepigen.c:4235 pex64igen.c:4235 -msgid "%B: .rsrc merge failure: unexpected .rsrc size" +#: peigen.c:4248 pepigen.c:4248 pex64igen.c:4248 +#, c-format +msgid "%pB: .rsrc merge failure: unexpected .rsrc size" msgstr "" -#: peigen.c:4374 pepigen.c:4374 pex64igen.c:4374 -msgid "%B: unable to fill in DataDictionary[1] because .idata$2 is missing" +#: peigen.c:4387 pepigen.c:4387 pex64igen.c:4387 +#, c-format +msgid "%pB: unable to fill in DataDictionary[1] because .idata$2 is missing" msgstr "" -#: peigen.c:4394 pepigen.c:4394 pex64igen.c:4394 -msgid "%B: unable to fill in DataDictionary[1] because .idata$4 is missing" +#: peigen.c:4407 pepigen.c:4407 pex64igen.c:4407 +#, c-format +msgid "%pB: unable to fill in DataDictionary[1] because .idata$4 is missing" msgstr "" -#: peigen.c:4415 pepigen.c:4415 pex64igen.c:4415 -msgid "%B: unable to fill in DataDictionary[12] because .idata$5 is missing" +#: peigen.c:4428 pepigen.c:4428 pex64igen.c:4428 +#, c-format +msgid "%pB: unable to fill in DataDictionary[12] because .idata$5 is missing" msgstr "" -#: peigen.c:4435 pepigen.c:4435 pex64igen.c:4435 +#: peigen.c:4448 pepigen.c:4448 pex64igen.c:4448 +#, c-format msgid "" -"%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because ." +"%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because ." "idata$6 is missing" msgstr "" -#: peigen.c:4477 pepigen.c:4477 pex64igen.c:4477 +#: peigen.c:4490 pepigen.c:4490 pex64igen.c:4490 +#, c-format msgid "" -"%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because ." +"%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because ." "idata$6 is missing" msgstr "" -#: peigen.c:4502 pepigen.c:4502 pex64igen.c:4502 -msgid "%B: unable to fill in DataDictionary[9] because __tls_used is missing" +#: peigen.c:4515 pepigen.c:4515 pex64igen.c:4515 +#, c-format +msgid "%pB: unable to fill in DataDictionary[9] because __tls_used is missing" msgstr "" Binary files /tmp/tmp2enahulf/tIHkpyh4Fz/gdb-8.1/bfd/po/da.gmo and /tmp/tmp2enahulf/I6n3Ljszco/gdb-8.2/bfd/po/da.gmo differ Binary files /tmp/tmp2enahulf/tIHkpyh4Fz/gdb-8.1/bfd/po/es.gmo and /tmp/tmp2enahulf/I6n3Ljszco/gdb-8.2/bfd/po/es.gmo differ diff -Nru gdb-8.1/bfd/po/es.po gdb-8.2/bfd/po/es.po --- gdb-8.1/bfd/po/es.po 2017-09-07 14:55:33.000000000 +0000 +++ gdb-8.2/bfd/po/es.po 2018-09-05 07:27:13.000000000 +0000 @@ -1,176 +1,195 @@ -# Mensajes en español para bfd 2.22.90. -# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. +# Spanish transaltion for bfd 2.30.0 +# Copyright (C) 2002 - 2018 Free Software Foundation, Inc. # This file is distributed under the same license as the binutils package. -# Cristian Othón Martínez Vera , 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 -# +# Cristian Othón Martínez Vera , 2002 - 2012 +# Francisco Javier Serrador , 2018 msgid "" msgstr "" -"Project-Id-Version: bfd 2.22.90\n" +"Project-Id-Version: bfd 2.30.0\n" "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n" -"POT-Creation-Date: 2011-10-25 11:58+0100\n" -"PO-Revision-Date: 2012-07-27 12:29-0500\n" -"Last-Translator: Cristian Othón Martínez Vera \n" -"Language-Team: Spanish \n" +"POT-Creation-Date: 2018-01-13 13:44+0000\n" +"PO-Revision-Date: 2018-03-18 12:38+0200\n" +"Last-Translator: Javier \n" +"Language-Team: Spanish \n" "Language: es\n" -"X-Bugs: Report translation errors to the Language-Team address.\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Virtaal 0.7.1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" -#: aout-adobe.c:127 +#: aout-adobe.c:126 +#, c-format msgid "%B: Unknown section type in a.out.adobe file: %x\n" -msgstr "%B: Tipo de sección desconocido en el fichero a.out.adobe: %x\n" +msgstr "%B: Tipo seccional desconocido en el fichero a.out.adobe: %x\n" -#: aout-cris.c:199 +#: aout-cris.c:200 #, c-format -msgid "%s: Invalid relocation type exported: %d" -msgstr "%s: Se exportó un tipo de reubicación inválido: %d" +msgid "%B: Invalid relocation type exported: %d" +msgstr "%B: tipo reubicante inválido exportado: %d" -#: aout-cris.c:242 +#: aout-cris.c:244 +#, c-format msgid "%B: Invalid relocation type imported: %d" msgstr "%B: Se importó un tipo de reubicación inválido: %d" -#: aout-cris.c:253 +#: aout-cris.c:256 +#, c-format msgid "%B: Bad relocation record imported: %d" -msgstr "%B: Se importó un registro de reubicación erróneo: %d" +msgstr "%B: equivocación de registro reubicable importado: %d" -#: aoutx.h:1273 aoutx.h:1611 +#: aoutx.h:1284 aoutx.h:1636 pdp11.c:1152 pdp11.c:1413 #, 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 formato de fichero objeto a.out" +msgid "%B: can not represent section `%A' in a.out object file format" +msgstr "%B: no se puede representar la sección `%A' dentro del formato de fichero objeto a.out" -#: aoutx.h:1577 +#: aoutx.h:1600 pdp11.c:1385 #, 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 formato de fichero objeto a.out" +msgid "%B: can not represent section for symbol `%s' in a.out object file format" +msgstr "%B: no se puede representar la sección para el símbolo «%s» en el formato de fichero objeto a.out" -#: aoutx.h:1579 vms-alpha.c:7671 +#: aoutx.h:1603 vms-alpha.c:7853 msgid "*unknown*" msgstr "*desconocido*" -#: aoutx.h:4018 aoutx.h:4344 +#: aoutx.h:2422 aoutx.h:2440 +msgid "%B: attempt to write out unknown reloc type" +msgstr "%B: intenta escribir fuera de tipo de reubicación desconocida" + +#: aoutx.h:4093 aoutx.h:4414 msgid "%P: %B: unexpected relocation type\n" msgstr "%P: %B: tipo de reubicación inesperado\n" -#: aoutx.h:5375 +#: aoutx.h:5440 pdp11.c:3708 #, c-format -msgid "%s: relocatable link from %s to %s not supported" -msgstr "%s: no se admite el enlace reubicable de %s a %s" +msgid "%B: relocatable link from %s to %s not supported" +msgstr "%B: enlace reubicable desde %s hasta %s sin apoyo" -#: archive.c:2203 +#: archive.c:2305 msgid "Warning: writing archive was slow: rewriting timestamp\n" msgstr "Aviso: la escritura del fichero fue lenta: se reescribe la marca de tiempo\n" +#: archive.c:2421 linker.c:1410 +msgid "%B: plugin needed to handle lto object" +msgstr "%B: complementos requeridos para manipular objeto lto" + # ¡Uff! Si utilizáramos file=archivo, esta traducción sería imposible. cfuga -#: archive.c:2491 +#: archive.c:2650 msgid "Reading archive file mod timestamp" msgstr "Se lee la marca de tiempo modificada del fichero en el archivo" -#: archive.c:2515 +#: archive.c:2674 msgid "Writing updated armap timestamp" -msgstr "Se escribe la marca de tiempo actualizada de armap" +msgstr "Se escribe la marca temporal actualizada de ‘armap’" -#: bfd.c:398 +#: bfd.c:454 msgid "No error" msgstr "No hay error" -#: bfd.c:399 +#: bfd.c:455 msgid "System call error" -msgstr "Error en la llamada al sistema" +msgstr "Error en llamada al sistema" -#: bfd.c:400 +#: bfd.c:456 msgid "Invalid bfd target" msgstr "Objetivo bfd inválido" -#: bfd.c:401 +#: bfd.c:457 msgid "File in wrong format" -msgstr "Fichero en formato erróneo" +msgstr "Fichero en formato equivocado" -#: bfd.c:402 +#: bfd.c:458 msgid "Archive object file in wrong format" -msgstr "Archivo de ficheros objeto en formato erróneo" +msgstr "Archivo de ficheros objeto en formato equivocado" -#: bfd.c:403 +#: bfd.c:459 msgid "Invalid operation" msgstr "Operación inválida" -#: bfd.c:404 +#: bfd.c:460 msgid "Memory exhausted" msgstr "Memoria agotada" -#: bfd.c:405 +#: bfd.c:461 msgid "No symbols" msgstr "No hay símbolos" -#: bfd.c:406 +#: bfd.c:462 msgid "Archive has no index; run ranlib to add one" -msgstr "El archivo no tiene índice; ejecute ranlib para agregar uno" +msgstr "Archivo no tiene índice; ejecute ranlib para añadir uno" -#: bfd.c:407 +#: bfd.c:463 msgid "No more archived files" msgstr "No hay más ficheros archivados" -#: bfd.c:408 +#: bfd.c:464 msgid "Malformed archive" msgstr "Archivo malformado" -#: bfd.c:409 +#: bfd.c:465 +msgid "DSO missing from command line" +msgstr "DSO faltante desde línea de orden" + +#: bfd.c:466 msgid "File format not recognized" msgstr "No se reconoce el formato del fichero" -#: bfd.c:410 +#: bfd.c:467 msgid "File format is ambiguous" -msgstr "El formato del fichero es ambiguo" +msgstr "Formato del fichero es ambiguo" -#: bfd.c:411 +#: bfd.c:468 msgid "Section has no contents" msgstr "La sección no tiene contenido" -#: bfd.c:412 +#: bfd.c:469 msgid "Nonrepresentable section on output" msgstr "Sección no representable en la salida" -#: bfd.c:413 +#: bfd.c:470 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:414 +#: bfd.c:471 msgid "Bad value" -msgstr "Valor erróneo" +msgstr "Valor equivocado" -#: bfd.c:415 +#: bfd.c:472 msgid "File truncated" msgstr "Fichero truncado" -#: bfd.c:416 +#: bfd.c:473 msgid "File too big" -msgstr "El fichero es demasiado grande" +msgstr "Fichero demasiado grande" -#: bfd.c:417 +#: bfd.c:474 #, c-format msgid "Error reading %s: %s" msgstr "Error al leer %s: %s" -#: bfd.c:418 +#: bfd.c:475 msgid "#" msgstr "#" -#: bfd.c:945 +#: bfd.c:1442 #, c-format msgid "BFD %s assertion fail %s:%d" -msgstr "falló la aseveración BFD %s %s:%d" +msgstr "Falló la aseveración BFD %s %s:%d" -#: bfd.c:957 +#: bfd.c:1455 #, c-format -msgid "BFD %s internal error, aborting at %s line %d in %s\n" -msgstr "error interno de BFD %s, se aborta en %s línea %d en %s\n" +msgid "BFD %s internal error, aborting at %s:%d in %s\n" +msgstr "" +"Error interno %s BFD: se aborta en %s:%d en %s\n" +"\n" -#: bfd.c:961 +#: bfd.c:1460 #, c-format -msgid "BFD %s internal error, aborting at %s line %d\n" -msgstr "error interno de BFD %s, se aborta en %s línea %d\n" +msgid "BFD %s internal error, aborting at %s:%d\n" +msgstr "Error interno %s BFD: se aborta en %s:%d\n" -#: bfd.c:963 +#: bfd.c:1462 msgid "Please report this bug.\n" msgstr "Por favor reporte este bicho.\n" @@ -184,65 +203,68 @@ msgid "not mapping: env var not set\n" msgstr "no se mapea: no se estableció la variable de ambiente\n" -#: binary.c:271 +#: binary.c:276 #, c-format -msgid "Warning: Writing section `%s' to huge (ie negative) file offset 0x%lx." -msgstr "Aviso: Se escribe la sección `%s' a un desplazamiento de fichero grande (pe negativo) 0x%lx." +msgid "warning: writing section `%A' at huge (ie negative) file offset" +msgstr "aviso: escribiendo sección `%A' en desplazamiento de fichero enorme (pe negativo)" -#: bout.c:1146 elf-m10300.c:2063 elf32-avr.c:1654 elf32-frv.c:5734 -#: elfxx-sparc.c:2802 reloc.c:6115 reloc16.c:162 elf32-ia64.c:360 -#: elf64-ia64.c:360 +#: bout.c:1142 elf-m10300.c:2647 elf32-avr.c:2484 elf32-frv.c:5633 +#: elf64-ia64-vms.c:353 elfxx-sparc.c:2817 reloc.c:8059 reloc16.c:156 +#: elf32-ia64.c:351 elf64-ia64.c:351 msgid "%P%F: --relax and -r may not be used together\n" msgstr "%P%F: --relax y -r no se pueden usar juntos\n" -#: cache.c:227 +#: cache.c:273 +#, c-format msgid "reopening %B: %s\n" msgstr "se reabre %B: %s\n" -#: coff-alpha.c:491 +#: coff-alpha.c:450 msgid "" "%B: Cannot handle compressed Alpha binaries.\n" " Use compiler flags, or objZ, to generate uncompressed binaries." msgstr "" "%B: No se pueden manejar binarios Alpha comprimidos.\n" -" Use las opciones del compilador, o objZ, para generar binarios sin comprimir." +" Emplee opciones del compilador, o objZ, para generar binarios sin comprimir." -#: coff-alpha.c:648 +#: coff-alpha.c:602 msgid "%B: unknown/unsupported relocation type %d" msgstr "%B: tipo de reubicación %d desconocida/no admitida" -#: coff-alpha.c:900 coff-alpha.c:937 coff-alpha.c:2025 coff-mips.c:1003 +#: coff-alpha.c:851 coff-alpha.c:888 coff-alpha.c:1961 coff-mips.c:950 msgid "GP relative relocation used when GP not defined" -msgstr "se usó una reubicación relativa a GP cuando GP no estaba definido" +msgstr "Reubicación relativa GP empleada cuando GP no estaba definido" -#: coff-alpha.c:1502 +#: coff-alpha.c:1444 msgid "using multiple gp values" msgstr "se usan valores múltiples de gp" -#: coff-alpha.c:1561 +#: coff-alpha.c:1503 msgid "%B: unsupported relocation: ALPHA_R_GPRELHIGH" msgstr "%B: tipo de reubicación no admitida: ALPHA_R_GPRELHIGH" -#: coff-alpha.c:1568 +#: coff-alpha.c:1510 msgid "%B: unsupported relocation: ALPHA_R_GPRELLOW" msgstr "%B: tipo de reubicación no admitida: ALPHA_R_GPRELLOW" -#: coff-alpha.c:1575 elf32-m32r.c:2484 elf64-alpha.c:4074 elf64-alpha.c:4224 -#: elf32-ia64.c:3839 elf64-ia64.c:3839 +#: coff-alpha.c:1518 elf32-i370.c:1081 elf32-m32r.c:2404 +#: elf32-microblaze.c:932 elf64-alpha.c:4098 elf64-alpha.c:4246 +#: elf64-ia64-vms.c:3430 elf32-ia64.c:3847 elf64-ia64.c:3847 +#, c-format msgid "%B: unknown relocation type %d" msgstr "%B: tipo de reubicación %d desconocido" -#: coff-arm.c:1038 +#: coff-arm.c:1037 #, c-format msgid "%B: unable to find THUMB glue '%s' for `%s'" -msgstr "%B: no se puede encontrar el pegamento THUMB '%s' para `%s'" +msgstr "%B: no se puede encontrar el pegamento THUMB «%s» para «%s»" -#: coff-arm.c:1067 +#: coff-arm.c:1066 #, c-format msgid "%B: unable to find ARM glue '%s' for `%s'" -msgstr "%B: no se puede encontrar el pegamento ARM '%s' para `%s'" +msgstr "%B: no se puede encontrar el pegamento ARM «%s» para «%s»" -#: coff-arm.c:1369 elf32-arm.c:7023 +#: coff-arm.c:1368 elf32-arm.c:8896 #, c-format msgid "" "%B(%s): warning: interworking not enabled.\n" @@ -251,7 +273,7 @@ "%B(%s): aviso: no se activó la interoperabilidad.\n" " primer suceso: %B: llamada arm a thumb" -#: coff-arm.c:1459 +#: coff-arm.c:1458 #, c-format msgid "" "%B(%s): warning: interworking not enabled.\n" @@ -262,317 +284,534 @@ " primer suceso: %B: llamada thumb a arm\n" " considere reenlazar con --support-old-code activado" -#: coff-arm.c:1754 coff-tic80.c:695 cofflink.c:3081 -msgid "%B: bad reloc address 0x%lx in section `%A'" -msgstr "%B: dirección de reubicación 0x%lx errónea en la sección `%A'" - -#: coff-arm.c:2079 -msgid "%B: illegal symbol index in reloc: %d" -msgstr "%B: índice de símbolos ilegal en la reubicación: %d" +#: coff-arm.c:1751 coff-tic80.c:672 cofflink.c:3127 +#, c-format +msgid "%B: bad reloc address %#Lx in section `%A'" +msgstr "%B: dirección de reubicación %#Lx equivocada en la sección `%A'" + +#: coff-arm.c:2076 +#, c-format +msgid "%B: illegal symbol index in reloc: %ld" +msgstr "%B: índice simbólico ilegal en reubicación: %ld" -#: coff-arm.c:2210 +#: coff-arm.c:2208 #, c-format msgid "error: %B is compiled for APCS-%d, whereas %B is compiled for APCS-%d" msgstr "error: %B está compilado para APCS-%d, mientras que %B está compilado para APCS-%d" -#: coff-arm.c:2226 elf32-arm.c:15621 +#: coff-arm.c:2221 elf32-arm.c:19582 #, c-format msgid "error: %B passes floats in float registers, whereas %B passes them in integer registers" msgstr "error: %B pasa números de coma flotante en registros de coma flotante, mientras que %B los pasa en registros enteros" -#: coff-arm.c:2229 elf32-arm.c:15625 +#: coff-arm.c:2226 elf32-arm.c:19586 #, c-format msgid "error: %B passes floats in integer registers, whereas %B passes them in float registers" msgstr "error: %B pasa números de coma flotante en registros enteros, mientras que %B los pasa en registros de coma flotante" -#: coff-arm.c:2243 +#: coff-arm.c:2238 #, c-format msgid "error: %B is compiled as position independent code, whereas target %B is absolute position" msgstr "error: %B está compilado como código independiente de posición, mientras que el objetivo %B es de posición absoluta" -#: coff-arm.c:2246 +#: coff-arm.c:2243 #, c-format msgid "error: %B is compiled as absolute position code, whereas target %B is position independent" msgstr "error: %B está compilado como código de posición absoluta, mientras que el objetivo %B es independiente de posición" -#: coff-arm.c:2274 elf32-arm.c:15690 +#: coff-arm.c:2270 elf32-arm.c:19651 #, c-format msgid "Warning: %B supports interworking, whereas %B does not" msgstr "Aviso: %B admite interoperabilidad, mientras que %B no" -#: coff-arm.c:2277 elf32-arm.c:15696 +#: coff-arm.c:2275 elf32-arm.c:19657 #, c-format msgid "Warning: %B does not support interworking, whereas %B does" msgstr "Aviso: %B no admite interoperabilidad, mientras que %B sí" -#: coff-arm.c:2301 +#: coff-arm.c:2298 #, c-format msgid "private flags = %x:" msgstr "opciones privadas = %x:" -#: coff-arm.c:2309 elf32-arm.c:11806 +#: coff-arm.c:2306 elf32-arm.c:14160 #, c-format msgid " [floats passed in float registers]" -msgstr "[números de coma flotante pasados en registros de coma flotante]" +msgstr " [flotante pasados en registros de coma flotante]" -#: coff-arm.c:2311 +#: coff-arm.c:2308 #, c-format msgid " [floats passed in integer registers]" -msgstr "[números de coma flotante pasados en registros enteros]" +msgstr " [flotante pasados en registros enteros]" -#: coff-arm.c:2314 elf32-arm.c:11809 +#: coff-arm.c:2311 elf32-arm.c:14163 #, c-format msgid " [position independent]" -msgstr "[independiente de posición]" +msgstr " [independiente posicional]" -#: coff-arm.c:2316 +#: coff-arm.c:2313 #, c-format msgid " [absolute position]" -msgstr "[posición absoluta]" +msgstr " [posición absoluta]" -#: coff-arm.c:2320 +#: coff-arm.c:2317 #, c-format msgid " [interworking flag not initialised]" -msgstr "[no se inicializó la opción de interoperabilidad]" +msgstr " [opción de interoperabilidad no iniciada]" -#: coff-arm.c:2322 +#: coff-arm.c:2319 #, c-format msgid " [interworking supported]" -msgstr "[admite interoperabilidad]" +msgstr " [admite interoperabilidad]" -#: coff-arm.c:2324 +#: coff-arm.c:2321 #, c-format msgid " [interworking not supported]" -msgstr "[no admite interoperabilidad]" +msgstr " [no admite interoperabilidad]" -#: coff-arm.c:2370 elf32-arm.c:10841 -#, c-format +#: coff-arm.c:2366 elf32-arm.c:13021 msgid "Warning: Not setting interworking flag of %B since it has already been specified as non-interworking" msgstr "Aviso: No se establece la opción de interoperabilidad de %B ya que se había especificado con anterioridad como no interoperable" -#: coff-arm.c:2374 elf32-arm.c:10845 -#, c-format +#: coff-arm.c:2369 elf32-arm.c:13025 msgid "Warning: Clearing the interworking flag of %B due to outside request" msgstr "Aviso: Se limpia la opción de interoperabilidad de %B debido a una petición externa" -#: coff-h8300.c:1122 +#: coff-arm.c:2426 elf32-arm.c:13070 +#, c-format +msgid "Warning: Clearing the interworking flag of %B because non-interworking code in %B has been linked with it" +msgstr "Aviso: Se limpia la opción de interoperación en %B porque se ha enlazado con él código no interoperable en %B" + +#: coff-h8300.c:1068 #, 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" +msgstr "no se puede manipular la reubicación R_MEM_INDIRECT cuando se utiliza la salida %s" -#: coff-i860.c:147 +#: coff-i860.c:151 #, c-format msgid "relocation `%s' not yet implemented" -msgstr "la reubicación `%s' aún no se implementa" +msgstr "reubicación «%s» aún no implementada" -#: coff-i860.c:605 coff-tic54x.c:398 coffcode.h:5198 +#: coff-i860.c:613 coff-tic4x.c:227 coff-tic54x.c:365 coffcode.h:5343 +#, c-format msgid "%B: warning: illegal symbol index %ld in relocs" msgstr "%B: aviso: índice de símbolos %ld ilegal en reubicaciones" -#: coff-i960.c:144 coff-i960.c:507 +#: coff-i960.c:122 coff-i960.c:475 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:506 elf32-bfin.c:5690 elf32-cr16.c:2897 elf32-m68k.c:4677 +#: coff-m68k.c:488 elf32-bfin.c:5340 elf32-cr16.c:2801 elf32-m68k.c:4385 msgid "unsupported reloc type" msgstr "no se admite el tipo de reubicación" -#: coff-mips.c:688 elf32-mips.c:1516 elf32-score.c:431 elf32-score7.c:330 -#: elf64-mips.c:2618 elfn32-mips.c:2431 +#: coff-mips.c:640 elf32-mips.c:1744 elf32-score.c:430 elf32-score7.c:330 +#: elf64-mips.c:3135 elfn32-mips.c:2958 msgid "GP relative relocation when _gp not defined" -msgstr "reubicación relativa a GP cuando _gp no está definido" +msgstr "Reubicación relativa GP cuando _gp no está definido" -#: coff-or32.c:229 -msgid "Unrecognized reloc" -msgstr "No se reconoce la reubicación" - -#: coff-rs6000.c:2720 +#: coff-rs6000.c:2773 #, c-format -msgid "%s: unsupported relocation type 0x%02x" -msgstr "%s: no se admite el tipo de reubicación 0x%02x" +msgid "%B: unsupported relocation type 0x%02x" +msgstr "%B: tipo de reubicación 0x%02x no admitido" -#: coff-rs6000.c:2805 +#: coff-rs6000.c:2859 #, 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" +msgid "%B: TOC reloc at %#Lx to symbol `%s' with no TOC entry" +msgstr "%B: reubicación de TOC en %#Lx al símbolo «%s» sin ninguna entrada TOC" -#: coff-rs6000.c:3556 coff64-rs6000.c:2111 +#: coff-rs6000.c:3605 coff64-rs6000.c:2150 +#, c-format msgid "%B: symbol `%s' has unrecognized smclas %d" -msgstr "%B: el símbolo `%s' tiene smclas %d que no se reconoce" +msgstr "%B: el símbolo «%s» tiene smclas %d que no se reconoce" -#: coff-sh.c:521 +#: coff-sh.c:504 #, c-format msgid "SH Error: unknown reloc type %d" msgstr "Error SH: tipo de reubicación %d desconocido" -#: coff-tic4x.c:195 coff-tic54x.c:299 coff-tic80.c:458 +#: coff-sh.c:778 elf32-sh.c:580 #, c-format -msgid "Unrecognized reloc type 0x%x" -msgstr "No se reconoce el tipo de reubicación 0x%x" +msgid "%B: %#Lx: warning: bad R_SH_USES offset" +msgstr "%B: %#Lx: aviso: desplazamiento R_SH_USES equivocado" + +#: coff-sh.c:789 +#, c-format +msgid "%B: %#Lx: warning: R_SH_USES points to unrecognized insn %#x" +msgstr "%B: %#Lx: aviso: R_SH_USES apunta al insn %#x no reconocido" + +#: coff-sh.c:807 elf32-sh.c:610 +#, c-format +msgid "%B: %#Lx: warning: bad R_SH_USES load offset" +msgstr "%B: %#Lx: aviso: desplazamiento de carga R_SH_USES equivocado" -#: coff-tic4x.c:240 +#: coff-sh.c:832 elf32-sh.c:626 #, c-format -msgid "%s: warning: illegal symbol index %ld in relocs" -msgstr "%s: aviso: índice de símbolos %ld ilegal en reubicaciones" +msgid "%B: %#Lx: warning: could not find expected reloc" +msgstr "%B: %#Lx: aviso: no se pudo encontrar la reubicación esperada" -#: coff-w65.c:367 +#: coff-sh.c:849 elf32-sh.c:655 +#, c-format +msgid "%B: %#Lx: warning: symbol in unexpected section" +msgstr "%B: %#Lx: aviso: símbolo dentro de sección inesperada" + +#: coff-sh.c:975 elf32-sh.c:785 +#, c-format +msgid "%B: %#Lx: warning: could not find expected COUNT reloc" +msgstr "%B: %#Lx: aviso: no pudo encontrar la reubicación COUNT esperada" + +#: coff-sh.c:985 elf32-sh.c:795 +#, c-format +msgid "%B: %#Lx: warning: bad count" +msgstr "%B: %#Lx: aviso: contador equivocado" + +#: coff-sh.c:1357 coff-sh.c:2645 elf32-sh.c:1199 elf32-sh.c:1570 +#, c-format +msgid "%B: %#Lx: fatal: reloc overflow while relaxing" +msgstr "%B: %#Lx: fatal: desbordamiento de reubicación durante la relajación" + +#: coff-sh.c:1452 +msgid "%B: fatal: generic symbols retrieved before relaxing" +msgstr "%B: fatal: símbolos genéricos obtenidos antes de relajar" + +#: coff-sh.c:2783 cofflink.c:2965 +#, c-format +msgid "%B: illegal symbol index %ld in relocs" +msgstr "%B: índice simbólico %ld ilegal en reubicaciones" + +#: coff-tic4x.c:183 coff-tic54x.c:278 coff-tic80.c:441 +#, c-format +msgid "Unrecognized reloc type 0x%x" +msgstr "No se reconoce el tipo de reubicación 0x%x" + +#: coff-w65.c:352 #, c-format msgid "ignoring reloc %s\n" msgstr "se descarta la reubicación %s\n" -#: coffcode.h:997 +#: coffcode.h:968 +msgid "%B: unable to load COMDAT section name" +msgstr "%B: incapaz de cargar nombre de sección COMDAT" + +#. Malformed input files can trigger this test. +#. cf PR 21781. +#: coffcode.h:1003 +msgid "%B: error: unexpected symbol '%s' in COMDAT section" +msgstr "%B: error: símbolo «%s» sin esperado en la sección COMDAT" + +#: coffcode.h:1015 +#, c-format msgid "%B: warning: COMDAT symbol '%s' does not match section name '%s'" -msgstr "%B: aviso: el símbolo COMDAT '%s' no coincide con el nombre de sección '%s'" +msgstr "%B: aviso: el símbolo COMDAT «%s» no coincide con el nombre seccional «%s»" + +#: coffcode.h:1025 +#, c-format +msgid "%B: warning: No symbol for section '%s' found" +msgstr "%B: aviso: ningún símbolo para sección «%s» encontrado" #. Generate a warning message rather using the 'unhandled' #. variable as this will allow some .sys files generate by #. other toolchains to be processed. See bugzilla issue 196. -#: coffcode.h:1221 +#: coffcode.h:1251 +#, c-format msgid "%B: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section %s" -msgstr "%B: Aviso: Se descarta la opción de sección IMAGE_SCN_MEM_NOT_PAGED en la sección %s" +msgstr "%B: Aviso: Se descarta la opción seccional IMAGE_SCN_MEM_NOT_PAGED en la sección %s" -#: coffcode.h:1288 -msgid "%B (%s): Section flag %s (0x%x) ignored" -msgstr "%B (%s): Se descarta la opción de sección %s (0x%x)" +#: coffcode.h:1320 +#, c-format +msgid "%B (%s): Section flag %s (%#lx) ignored" +msgstr "%B (%s): marca de sección %s (%#lx) ignorado" + +#: coffcode.h:1950 +msgid "%B: warning: claims to have 0xffff relocs, without overflow" +msgstr "%B: aviso: reclama tener reubicados 0xffff, sin desbordamiento superior" -#: coffcode.h:2430 +#: coffcode.h:2466 #, c-format msgid "Unrecognized TI COFF target id '0x%x'" msgstr "No se reconoce el id de objetivo COFF TI '0x%x'" -#: coffcode.h:2744 -msgid "%B: reloc against a non-existant symbol index: %ld" -msgstr "%B: reubicación contra un índice de símbolo que no existe: %ld" +#: coffcode.h:2784 +#, c-format +msgid "%B: reloc against a non-existent symbol index: %ld" +msgstr "%B: reubicación contra un índice de símbolo inexistente: %ld" + +#: coffcode.h:3187 +#, c-format +msgid "%B: page size is too large (0x%x)" +msgstr "%B: tamaño de página es demasiado grande (0x%x)" -#: coffcode.h:3302 +#: coffcode.h:3347 +#, c-format msgid "%B: too many sections (%d)" msgstr "%B: Demasiadas secciones (%d)" -#: coffcode.h:3718 -msgid "%B: section %s: string table overflow at offset %ld" -msgstr "%B: sección %s: desbordamiento de tabla de cadenas en el desplazamiento %ld" +#: coffcode.h:3768 +#, c-format +msgid "%B: section %A: string table overflow at offset %ld" +msgstr "%B: sección %A: desbordamiento superior de segmento de cadenas en el desplazamiento %ld" + +#: coffcode.h:3873 +#, c-format +msgid "%B:%s section %s: alignment 2**%u not representable" +msgstr "%B:%s sección %s: alineamiento 2**%u no representable" + +#: coffcode.h:4592 +msgid "%B: warning: line number count (%#lx) exceeds section size (%#lx)" +msgstr "%B: aviso: contador de número de línea (%#lx) excede el tamaño (%#lx) de la sección" -#: coffcode.h:4523 +#: coffcode.h:4607 msgid "%B: warning: line number table read failed" -msgstr "%B: aviso: falló la lectura de tabla de números de línea" +msgstr "%B: aviso: lectura de segmento de números de línea fallada" + +#: coffcode.h:4641 coffcode.h:4655 +#, c-format +msgid "%B: warning: illegal symbol index 0x%lx in line number entry %d" +msgstr "%B: aviso: índice simbólico 0x%ld ilegal en las entradas del número de línea %d" -#: coffcode.h:4553 -msgid "%B: warning: illegal symbol index %ld in line numbers" -msgstr "%B: aviso: índice de símbolos %ld ilegal en los números de línea" +#: coffcode.h:4669 +#, c-format +msgid "%B: warning: illegal symbol in line number entry %d" +msgstr "%B: aviso: símbolos ilegal en la entrada del número de línea %d" -#: coffcode.h:4567 +#: coffcode.h:4682 +#, c-format msgid "%B: warning: duplicate line number information for `%s'" -msgstr "%B: aviso: información de números de línea duplicada para `%s'" +msgstr "%B: aviso: información de números de línea duplicada para «%s»" -#: coffcode.h:4967 +#: coffcode.h:5103 +#, c-format msgid "%B: Unrecognized storage class %d for %s symbol `%s'" -msgstr "%B: No se reconoce la clase de almacenamiento %d para %s símbolo `%s'" +msgstr "%B: Clase de almacenamiento %d no reconocida para %s símbolo «%s»" -#: coffcode.h:5093 +#: coffcode.h:5236 +#, c-format msgid "warning: %B: local symbol `%s' has no section" -msgstr "aviso: %B: el símbolo local `%s' no tiene sección" +msgstr "aviso: %B: el símbolo local «%s» no tiene sección" + +#: coffcode.h:5383 +#, c-format +msgid "%B: illegal relocation type %d at address %#Lx" +msgstr "%B: tipo de reubicación %d ilegal en dirección %#Lx" + +#: coffgen.c:178 elf.c:1198 +#, c-format +msgid "%B: unable to initialize compress status for section %s" +msgstr "%B: incapaz de inicializar estado compresivo para sección %s" -#: coffcode.h:5237 -msgid "%B: illegal relocation type %d at address 0x%lx" -msgstr "%B: tipo de reubicación %d ilegal en la dirección 0x%lx" +#: coffgen.c:202 elf.c:1209 +#, c-format +msgid "%B: unable to initialize decompress status for section %s" +msgstr "%B: incapaz de inicializar estado descompresivo para sección %s" + +#: coffgen.c:1649 +msgid "%B: corrupt symbol count: %#Lx" +msgstr "%B: contador simbólico corrupto: %#Lx" + +#. PR 21013: Provide an error message when the alloc fails. +#: coffgen.c:1658 +msgid "%B: not enough memory to allocate space for %#Lx symbols of size %#Lx" +msgstr "%B: sin suficiente memoria para reservar espacio para símbolos %#Lx de tamaño %#Lx" + +#: coffgen.c:1725 +#, c-format +msgid "%B: bad string table size %Lu" +msgstr "%B: tamaño equivocado de segmento de cadenas %Lu" + +#: coffgen.c:1902 coffgen.c:1962 coffgen.c:1980 cofflink.c:2045 +#: xcofflink.c:4507 +msgid "" +msgstr "" -#: coffgen.c:1595 -msgid "%B: bad string table size %lu" -msgstr "%B: tamaño de tabla de cadenas %lu erróneo" +#: coffgen.c:2104 +#, c-format +msgid " %s" +msgstr " %s" -#: coffgen.c:2500 elflink.c:12689 linker.c:3122 +#: coffgen.c:2683 elflink.c:14149 linker.c:2940 msgid "%F%P: already_linked_table: %E\n" msgstr "%F%P: already_linked_table: %E\n" -#: cofflink.c:533 elflink.c:4323 +#: coffgen.c:3024 elflink.c:13151 +#, c-format +msgid "Removing unused section '%A' in file '%B'" +msgstr "Quitando sección «%A» no utilizada en el fichero «%B»" + +#: coffgen.c:3101 elflink.c:13369 +msgid "Warning: gc-sections option ignored" +msgstr "Aviso: se descarta la opción gc-sections" + +#: cofflink.c:352 +#, c-format +msgid "Warning: symbol `%s' is both section and non-section" +msgstr "Aviso: símbolo «%s» es ambas sección y no sección" + +#: cofflink.c:454 elf64-ia64-vms.c:5186 elflink.c:4831 +#, c-format msgid "Warning: type of symbol `%s' changed from %d to %d in %B" -msgstr "Aviso: el tipo del símbolo `%s' cambió de %d a %d en %B" +msgstr "Aviso: el tipo del símbolo «%s» cambió de %d a %d en %B" -#: cofflink.c:2329 +#: cofflink.c:2373 +#, c-format msgid "%B: relocs in section `%A', but it has no contents" -msgstr "%B: reubicaciones en la sección `%A', pero no tiene contenido" +msgstr "%B: reubicaciones en la sección `%A', pero no tiene contenidos" -#: cofflink.c:2391 elflink.c:9545 +#: cofflink.c:2436 elflink.c:10664 +#, c-format msgid "%X`%s' referenced in section `%A' of %B: defined in discarded section `%A' of %B\n" msgstr "%X`%s' referido en la sección `%A' de %B: se definió en la sección descartada `%A' de %B\n" -#: cofflink.c:2690 coffswap.h:826 +#: cofflink.c:2734 +#, c-format +msgid "%B: %A: reloc overflow: %#x > 0xffff" +msgstr "%B: %A: desbordamiento de reubicación: %#x > 0xffff" + +#: cofflink.c:2742 +#, c-format +msgid "%B: warning: %A: line number overflow: %#x > 0xffff" +msgstr "%B: aviso: %A: desbordamiento de número de línea: %#x > 0xffff" + +#: coffswap.h:811 +#, c-format +msgid "%B: warning: %s: line number overflow: 0x%lx > 0xffff" +msgstr "%B: aviso: %s: desbordamiento de número de línea: 0x%lx > 0xffff" + +#: coffswap.h:825 #, c-format -msgid "%s: %s: reloc overflow: 0x%lx > 0xffff" -msgstr "%s: %s: desbordamiento de reubicación: 0x%lx > 0xffff" +msgid "%B: %s: reloc overflow: 0x%lx > 0xffff" +msgstr "%B: %s: desbordamiento superior de reubicación: 0x%lx > 0xffff" -#: cofflink.c:2699 coffswap.h:812 +#: compress.c:255 #, 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" +msgid "error: %B(%A) is too large (%#Lx bytes)" +msgstr "error: %B(%A) es demasiado grande (%#Lx bytes)" -#: cpu-arm.c:189 cpu-arm.c:200 +#: cpu-arm.c:192 cpu-arm.c:204 +#, c-format msgid "error: %B is compiled for the EP9312, whereas %B is compiled for XScale" msgstr "error: %B está compilado para el EP9312, mientras que %B está compilado para XScale" -#: cpu-arm.c:333 +#: cpu-arm.c:338 #, 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" +msgid "warning: unable to update contents of %s section in %B" +msgstr "aviso: no se puede actualizar el contenido de la sección %s en %B" -#: dwarf2.c:496 +#: dwarf2.c:543 #, c-format msgid "Dwarf Error: Can't find %s section." -msgstr "Error de Dwarf: No se puede encontrar la sección %s." +msgstr "Error enano: no se puede encontrar la sección %s." -#: dwarf2.c:525 +#: dwarf2.c:572 #, c-format -msgid "Dwarf Error: Offset (%lu) greater than or equal to %s size (%lu)." -msgstr "Error de Dwarf: El desplazamiento (%lu) es mayor que o igual que el tamaño de %s (%lu)." +msgid "Dwarf Error: Offset (%llu) greater than or equal to %s size (%Lu)." +msgstr "Error enano: desplazamiento (%llu) es mayor que o igual que el tamaño de %s (%Lu)." -#: dwarf2.c:949 +#: dwarf2.c:1089 +msgid "Dwarf Error: Info pointer extends beyond end of attributes" +msgstr "Error enano: puntero info extiende más allá del final de atributos" + +#: dwarf2.c:1261 #, c-format -msgid "Dwarf Error: Invalid or unhandled FORM value: %u." -msgstr "Error de Dwarf: Valor de FORM sin manejar o inválido: %u." +msgid "Dwarf Error: Invalid or unhandled FORM value: %#x." +msgstr "Error enano: valor de FORM no manipulado o inválido: %#x." -#: dwarf2.c:1200 +#: dwarf2.c:1567 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 de fichero erróneo)." +msgstr "Error enano: sección de números de línea revuelta (número de fichero equivocado)." + +#: dwarf2.c:1912 +msgid "Dwarf Error: Zero format count." +msgstr "Error enano: formato contador cero." + +#: dwarf2.c:1921 +#, c-format +msgid "Dwarf Error: data count (%Lx) larger than buffer size." +msgstr "Error enano: contador de datos (%Lx) más grande que tamaño de búfer." + +#: dwarf2.c:1962 +#, c-format +msgid "Dwarf Error: Unknown format content type %Lu." +msgstr "Error enano: formato de tipo continente %Lu desconocido." + +#: dwarf2.c:2042 +#, c-format +msgid "Dwarf Error: Line info section is too small (%Ld)" +msgstr "Error enano: Línea informativa de sección es demasiado corta (%Ld)" -#: dwarf2.c:1453 +#: dwarf2.c:2072 +#, c-format +msgid "Dwarf Error: Line info data is bigger (%#Lx) than the space remaining in the section (%#lx)" +msgstr "Error enano: información lineal de datos es más grande (%#Lx) que el espacio restante en la sección (%#lx)" + +#: dwarf2.c:2085 #, c-format msgid "Dwarf Error: Unhandled .debug_line version %d." -msgstr "Error de Dwarf: .debug_line versión %d sin manejar." +msgstr "Error enano: .debug_line versión %d sin manipular." + +#: dwarf2.c:2095 +msgid "Dwarf Error: Ran out of room reading prologue" +msgstr "Error enano: Agotado espacio leyendo prólogo" + +#: dwarf2.c:2113 +#, c-format +msgid "Dwarf Error: Line info unsupported segment selector size %u." +msgstr "Error enano: línea informativa incompatible con segmento seleccionador de tamaño %u." -#: dwarf2.c:1475 +#: dwarf2.c:2140 msgid "Dwarf Error: Invalid maximum operations per instruction." -msgstr "Error de Dwarf: Máximo de operaciones por instrucción inválido." +msgstr "Error enano: máximo de operaciones por instrucción inválido." + +#: dwarf2.c:2159 +msgid "Dwarf Error: Ran out of room reading opcodes" +msgstr "Error enano: Agotado de espacio leyendo opcodes" -#: dwarf2.c:1662 +#: dwarf2.c:2332 msgid "Dwarf Error: mangled line number section." -msgstr "Error de Dwarf: sección de números de línea revuelta." +msgstr "Error enano: sección de números de línea revuelta." + +#: dwarf2.c:2833 dwarf2.c:2894 +msgid "Dwarf Error: Invalid abstract instance DIE ref." +msgstr "Error enano: instancia DIE abstracta inválida referenciada." + +#: dwarf2.c:2870 +#, c-format +msgid "Dwarf Error: Unable to read alt ref %llu." +msgstr "Error enano: incapaz de leer referencia alt %llu." -#: dwarf2.c:1989 dwarf2.c:2109 dwarf2.c:2394 +#: dwarf2.c:2911 dwarf2.c:3076 dwarf2.c:3428 #, 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." +msgstr "Error enano: no se pudo encontrar el número de abreviatura %u." + +#: dwarf2.c:2928 +msgid "Dwarf Error: Abstract instance recursion detected." +msgstr "Error enano: Recursión de instancia abstracta detectada." -#: dwarf2.c:2355 +#: dwarf2.c:3347 #, c-format -msgid "Dwarf Error: found dwarf version '%u', this reader only handles version 2, 3 and 4 information." -msgstr "Error de Dwarf: se encontró la versión de dwarf '%u', este lector solamente maneja información de las versiones 2, 3 y 4." +msgid "Dwarf Error: found dwarf version '%u', this reader only handles version 2, 3, 4 and 5 information." +msgstr "Error enano: encontrada versión dwarf «%u», este lector solamente manipula información de las versiones 2, 3, 4 y 5." -#: dwarf2.c:2362 +#: dwarf2.c:3391 #, 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'." +msgstr "Error enano: se encontró el tamaño de dirección «%u», este lector no puede manipular tamaños más grandes que '%u'." -#: dwarf2.c:2385 +#: dwarf2.c:3494 +msgid "Dwarf Error: DW_AT_comp_dir attribute encountered with a non-string form." +msgstr "Error enano: atributo DW_AT_comp_dir encontrado con un formato no encadenado." + +#: ecoff.c:964 #, c-format -msgid "Dwarf Error: Bad abbrev number: %u." -msgstr "Error de Dwarf: Número de abreviación erróneo: %u." +msgid "%B: warning: isymMax (%ld) is greater than ifdMax (%ld)" +msgstr "%B: aviso: isymMax (%ld) es mayor que ifdMax (%ld)" -#: ecoff.c:1239 +#: ecoff.c:1261 #, c-format msgid "Unknown basic type %d" msgstr "Tipo básico %d desconocido" -#: ecoff.c:1496 +#: ecoff.c:1518 #, c-format msgid "" "\n" @@ -581,7 +820,7 @@ "\n" " Símbolo final+1: %ld" -#: ecoff.c:1503 ecoff.c:1506 +#: ecoff.c:1525 ecoff.c:1528 #, c-format msgid "" "\n" @@ -590,7 +829,7 @@ "\n" " Primer símbolo: %ld" -#: ecoff.c:1518 +#: ecoff.c:1541 #, c-format msgid "" "\n" @@ -599,7 +838,7 @@ "\n" " Símbolo final+1: %-7ld Tipo: %s" -#: ecoff.c:1525 +#: ecoff.c:1548 #, c-format msgid "" "\n" @@ -608,7 +847,7 @@ "\n" " Símbolo local: %ld" -#: ecoff.c:1533 +#: ecoff.c:1556 #, c-format msgid "" "\n" @@ -617,7 +856,7 @@ "\n" " struct; símbolo final+1: %ld" -#: ecoff.c:1538 +#: ecoff.c:1561 #, c-format msgid "" "\n" @@ -626,7 +865,7 @@ "\n" " union; símbolo final+1: %ld" -#: ecoff.c:1543 +#: ecoff.c:1566 #, c-format msgid "" "\n" @@ -635,7 +874,7 @@ "\n" " enum; símbolo final+1: %ld" -#: ecoff.c:1549 +#: ecoff.c:1572 #, c-format msgid "" "\n" @@ -644,140 +883,280 @@ "\n" " Tipo: %s" -#: elf-attrs.c:569 +#: elf-attrs.c:475 +msgid "%B: error: attribute section length too small: %ld" +msgstr "%B: error: longitud de sección atributiva demasiado pequeña: %ld" + +#: elf-attrs.c:603 +#, c-format msgid "error: %B: Object has vendor-specific contents that must be processed by the '%s' toolchain" -msgstr "error: %B: El objeto tiene contenido específico del vendedor que se debe procesar con la cadena de compilación '%s'" +msgstr "error: %B: El objeto tiene contenidos específicos del proveedor que debe ser procesado por la cadena «%s» de compilación" -#: elf-attrs.c:578 +#: elf-attrs.c:613 +#, c-format msgid "error: %B: Object tag '%d, %s' is incompatible with tag '%d, %s'" msgstr "error: %B: La etiqueta de objeto '%d, %s' es incompatible con la etiqueta '%d, %s'" -#: elf-eh-frame.c:917 +#: elf-eh-frame.c:942 +#, c-format +msgid "discarding zero address range FDE in %B(%A).\n" +msgstr "descartando límite direccional cero FDE en %B(%A).\n" + +#: elf-eh-frame.c:1047 +#, c-format msgid "%P: error in %B(%A); no .eh_frame_hdr table will be created.\n" -msgstr "%P: error en %B(%A); no se creará la tabla .eh_frame_hdr.\n" +msgstr "%P: error en %B(%A); no se creará el segmento .eh_frame_hdr.\n" + +#: elf-eh-frame.c:1537 +#, c-format +msgid "%P: FDE encoding in %B(%A) prevents .eh_frame_hdr table being created.\n" +msgstr "%P: codificación FDE en %B(%A) previene creación de distribución .eh_frame_hdr.\n" + +#: elf-eh-frame.c:1544 +msgid "%P: Further warnings about FDE encoding preventing .eh_frame_hdr generation dropped.\n" +msgstr "%P: la codificación FDE en %B(%A) previene la creación del segmento .eh_frame_hdr.\n" + +#: elf-eh-frame.c:1866 +#, c-format +msgid "%B: %A not in order" +msgstr "%B: %A no en operación" -#: elf-eh-frame.c:1189 -msgid "%P: fde encoding in %B(%A) prevents .eh_frame_hdr table being created.\n" -msgstr "%P: la codificación fde en %B(%A) previene la creación de la tabla .eh_frame_hdr.\n" +#: elf-eh-frame.c:1880 +#, c-format +msgid "%B: %A invalid input section size" +msgstr "%B: %A tamaño seccional entrante inválido" + +#: elf-eh-frame.c:1888 +#, c-format +msgid "%B: %A points past end of text section" +msgstr "%B: %A puntos pasados finales de selección textual" -#: elf-eh-frame.c:1605 +#: elf-eh-frame.c:2137 msgid "%P: DW_EH_PE_datarel unspecified for this architecture.\n" msgstr "%P: DW_EH_PE_datarel sin especificar para esta arquitectura.\n" -#: elf-ifunc.c:179 +#: elf-eh-frame.c:2307 +#, c-format +msgid "Invalid output section for .eh_frame_entry: %A" +msgstr "Salida de sección inválida para .eh_frame_entry: %A" + +#: elf-eh-frame.c:2330 +#, c-format +msgid "Invalid contents in %A section" +msgstr "Contenidos inválidos en sección %A" + +#: elf-eh-frame.c:2486 +msgid "%P: .eh_frame_hdr entry overflow.\n" +msgstr "%P: desbordamiento superior de asiento .eh_frame_hdr.\n" + +#: elf-eh-frame.c:2489 +msgid "%P: .eh_frame_hdr refers to overlapping FDEs.\n" +msgstr "%P: .eh_frame_hdr refiere a superponiendo varios FDE.\n" + +#: elf-ifunc.c:142 +#, c-format msgid "%F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%B' can not be used when making an executable; recompile with -fPIE and relink with -pie\n" -msgstr "%F%P: el símbolo STT_GNU_IFUNC dinámico `%s' con igualdad de puntero en `%B' no se puede usar al hacer un ejecutable; recompile con -fPIE y reenlace con -pie\n" +msgstr "%F%P: el símbolo STT_GNU_IFUNC dinámico «%s» con igualdad de puntero en `%B' no se puede usar al hacer un ejecutable; recompile con -fPIE y reenlace con -pie\n" -#: elf-m10200.c:450 elf-m10300.c:1563 elf32-avr.c:1221 elf32-bfin.c:3213 -#: elf32-cr16.c:1482 elf32-cr16c.c:780 elf32-cris.c:2081 elf32-crx.c:922 -#: elf32-d10v.c:509 elf32-epiphany.c:556 elf32-fr30.c:609 elf32-frv.c:4105 -#: elf32-h8300.c:509 elf32-i860.c:1211 elf32-ip2k.c:1468 elf32-iq2000.c:684 -#: elf32-lm32.c:1168 elf32-m32c.c:553 elf32-m32r.c:3106 elf32-m68hc1x.c:1138 -#: elf32-mep.c:535 elf32-microblaze.c:1231 elf32-moxie.c:282 -#: elf32-msp430.c:486 elf32-mt.c:395 elf32-openrisc.c:404 elf32-score.c:2729 -#: elf32-score7.c:2537 elf32-spu.c:5044 elf32-tilepro.c:3214 elf32-v850.c:2143 -#: elf32-xstormy16.c:935 elf64-mmix.c:1590 elfxx-tilegx.c:3577 +#: elf-m10200.c:425 elf-m10300.c:2145 elf32-avr.c:1502 elf32-bfin.c:3116 +#: elf32-cr16.c:1462 elf32-cr16c.c:780 elf32-cris.c:2030 elf32-crx.c:924 +#: elf32-d10v.c:509 elf32-epiphany.c:563 elf32-fr30.c:591 elf32-frv.c:4041 +#: elf32-ft32.c:485 elf32-h8300.c:522 elf32-i860.c:1210 elf32-ip2k.c:1475 +#: elf32-iq2000.c:689 elf32-lm32.c:1106 elf32-m32c.c:622 elf32-m32r.c:3031 +#: elf32-m68hc1x.c:1265 elf32-mep.c:524 elf32-metag.c:1985 +#: elf32-microblaze.c:1556 elf32-moxie.c:285 elf32-mt.c:400 elf32-nds32.c:5328 +#: elf32-or1k.c:1238 elf32-score.c:2731 elf32-score7.c:2540 elf32-spu.c:5076 +#: elf32-tilepro.c:3497 elf32-v850.c:2283 elf32-visium.c:677 +#: elf32-xstormy16.c:923 elf64-mmix.c:1538 elfxx-tilegx.c:3857 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2237 msgid "internal error: out of range error" msgstr "error interno: error fuera de rango" -#: elf-m10200.c:454 elf-m10300.c:1567 elf32-avr.c:1225 elf32-bfin.c:3217 -#: elf32-cr16.c:1486 elf32-cr16c.c:784 elf32-cris.c:2085 elf32-crx.c:926 -#: elf32-d10v.c:513 elf32-fr30.c:613 elf32-frv.c:4109 elf32-h8300.c:513 -#: elf32-i860.c:1215 elf32-iq2000.c:688 elf32-lm32.c:1172 elf32-m32c.c:557 -#: elf32-m32r.c:3110 elf32-m68hc1x.c:1142 elf32-mep.c:539 -#: elf32-microblaze.c:1235 elf32-moxie.c:286 elf32-msp430.c:490 -#: elf32-openrisc.c:408 elf32-score.c:2733 elf32-score7.c:2541 -#: elf32-spu.c:5048 elf32-tilepro.c:3218 elf32-v850.c:2147 -#: elf32-xstormy16.c:939 elf64-mmix.c:1594 elfxx-mips.c:9465 -#: elfxx-tilegx.c:3581 +#: elf-m10200.c:429 elf-m10300.c:2149 elf32-avr.c:1506 elf32-bfin.c:3120 +#: elf32-cr16.c:1466 elf32-cr16c.c:784 elf32-cris.c:2034 elf32-crx.c:928 +#: elf32-d10v.c:513 elf32-fr30.c:595 elf32-frv.c:4045 elf32-ft32.c:489 +#: elf32-h8300.c:526 elf32-i860.c:1214 elf32-iq2000.c:693 elf32-lm32.c:1110 +#: elf32-m32c.c:626 elf32-m32r.c:3035 elf32-m68hc1x.c:1269 elf32-mep.c:528 +#: elf32-metag.c:1989 elf32-microblaze.c:1560 elf32-moxie.c:289 +#: elf32-msp430.c:1357 elf32-nds32.c:5332 elf32-or1k.c:1242 elf32-score.c:2735 +#: elf32-score7.c:2544 elf32-spu.c:5080 elf32-tilepro.c:3501 elf32-v850.c:2287 +#: elf32-visium.c:681 elf32-xstormy16.c:927 elf64-mmix.c:1542 +#: elfxx-mips.c:10265 elfxx-tilegx.c:3861 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2241 msgid "internal error: unsupported relocation error" msgstr "error interno: no se admite el error de reubicación" -#: elf-m10200.c:458 elf32-cr16.c:1490 elf32-cr16c.c:788 elf32-crx.c:930 -#: elf32-d10v.c:517 elf32-h8300.c:517 elf32-lm32.c:1176 elf32-m32r.c:3114 -#: elf32-m68hc1x.c:1146 elf32-microblaze.c:1239 elf32-score.c:2737 -#: elf32-score7.c:2545 elf32-spu.c:5052 +#: elf-m10200.c:433 elf32-cr16.c:1470 elf32-cr16c.c:788 elf32-crx.c:932 +#: elf32-d10v.c:517 elf32-h8300.c:530 elf32-lm32.c:1114 elf32-m32r.c:3039 +#: elf32-m68hc1x.c:1273 elf32-microblaze.c:1564 elf32-nds32.c:5336 +#: elf32-score.c:2739 elf32-score7.c:2548 elf32-spu.c:5084 msgid "internal error: dangerous error" msgstr "error interno: error peligroso" -#: elf-m10200.c:462 elf-m10300.c:1580 elf32-avr.c:1233 elf32-bfin.c:3225 -#: elf32-cr16.c:1494 elf32-cr16c.c:792 elf32-cris.c:2093 elf32-crx.c:934 -#: elf32-d10v.c:521 elf32-epiphany.c:571 elf32-fr30.c:621 elf32-frv.c:4117 -#: elf32-h8300.c:521 elf32-i860.c:1223 elf32-ip2k.c:1483 elf32-iq2000.c:696 -#: elf32-lm32.c:1180 elf32-m32c.c:565 elf32-m32r.c:3118 elf32-m68hc1x.c:1150 -#: elf32-mep.c:547 elf32-microblaze.c:1243 elf32-moxie.c:294 -#: elf32-msp430.c:498 elf32-mt.c:403 elf32-openrisc.c:416 elf32-score.c:2746 -#: elf32-score7.c:2549 elf32-spu.c:5056 elf32-tilepro.c:3226 elf32-v850.c:2167 -#: elf32-xstormy16.c:947 elf64-mmix.c:1602 elfxx-tilegx.c:3589 +#: elf-m10200.c:437 elf-m10300.c:2166 elf32-avr.c:1514 elf32-bfin.c:3128 +#: elf32-cr16.c:1474 elf32-cr16c.c:792 elf32-cris.c:2042 elf32-crx.c:936 +#: elf32-d10v.c:521 elf32-epiphany.c:578 elf32-fr30.c:603 elf32-frv.c:4053 +#: elf32-ft32.c:497 elf32-h8300.c:534 elf32-i860.c:1222 elf32-ip2k.c:1490 +#: elf32-iq2000.c:701 elf32-lm32.c:1118 elf32-m32c.c:634 elf32-m32r.c:3043 +#: elf32-m68hc1x.c:1277 elf32-mep.c:536 elf32-metag.c:1997 +#: elf32-microblaze.c:1568 elf32-moxie.c:297 elf32-msp430.c:1365 +#: elf32-mt.c:408 elf32-nds32.c:5340 elf32-or1k.c:1250 elf32-score.c:2748 +#: elf32-score7.c:2552 elf32-spu.c:5088 elf32-tilepro.c:3509 elf32-v850.c:2307 +#: elf32-visium.c:689 elf32-xstormy16.c:935 elf64-mmix.c:1550 +#: elfxx-tilegx.c:3869 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2249 msgid "internal error: unknown error" msgstr "error interno: error desconocido" -#: elf-m10300.c:1507 elf32-arm.c:10419 elf32-i386.c:4264 elf32-m32r.c:2599 -#: elf32-m68k.c:4156 elf32-s390.c:3003 elf32-sh.c:4218 elf32-tilepro.c:3117 -#: elf32-xtensa.c:3066 elf64-s390.c:2978 elf64-sh64.c:1640 elf64-x86-64.c:4110 -#: elfxx-sparc.c:3835 elfxx-tilegx.c:3500 -msgid "%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'" -msgstr "%B(%A+0x%lx): reubicación %s sin resolución contra el símbolo `%s'" +#: elf-m10300.c:812 +#, c-format +msgid "%B: unrecognised MN10300 reloc number: %d" +msgstr "%B: número reubicante MN10300 no reconocido: %d" + +#: elf-m10300.c:1028 +#, c-format +msgid "%B: Unsupported transition from %s to %s" +msgstr "%B: transición desde %s hasta %s no está admitido" + +#: elf-m10300.c:1197 +#, c-format +msgid "%B: %s' accessed both as normal and thread local symbol" +msgstr "%B: %s accedidos ambos como común e hilo simbólico local" + +#: elf-m10300.c:2093 elf32-arm.c:12536 elf32-i386.c:3433 elf32-m32r.c:2526 +#: elf32-m68k.c:3895 elf32-s390.c:3204 elf32-sh.c:4121 elf32-tilepro.c:3401 +#: elf32-xtensa.c:2939 elf64-s390.c:3118 elf64-sh64.c:1636 elf64-x86-64.c:3790 +#: elfxx-sparc.c:3918 elfxx-tilegx.c:3781 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:5001 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6457 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2206 +#, c-format +msgid "%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'" +msgstr "%B(%A+%#Lx): reubicación %s irresoluble frente a símbolo `%s'" -#: elf-m10300.c:1572 +#: elf-m10300.c:2154 msgid "error: inappropriate relocation type for shared library (did you forget -fpic?)" msgstr "error: tipo de reubicación inapropiada para la biblioteca compartida (¿olvidó -fpic?)" -#: elf-m10300.c:1575 +#: elf-m10300.c:2158 +#, c-format +msgid "%B: taking the address of protected function '%s' cannot be done when making a shared library" +msgstr "%B: tomando la dirección de función protegida «%s» no puede ser hecha cuando crea una biblioteca compartida" + +#: elf-m10300.c:2161 msgid "internal error: suspicious relocation type used in shared library" msgstr "error interno: se usó un tipo de reubicación sospechosa en la biblioteca compartida" -#: elf-m10300.c:4372 elf32-arm.c:12800 elf32-cr16.c:2451 elf32-cris.c:3057 -#: elf32-hppa.c:1894 elf32-i370.c:503 elf32-i386.c:2182 elf32-lm32.c:1868 -#: elf32-m32r.c:1927 elf32-m68k.c:3253 elf32-s390.c:1652 elf32-sh.c:2931 -#: elf32-tic6x.c:2162 elf32-tilepro.c:1940 elf32-vax.c:1041 elf64-s390.c:1635 -#: elf64-sh64.c:3381 elf64-x86-64.c:2176 elfxx-sparc.c:2119 -#: elfxx-tilegx.c:2261 +#: elf-properties.c:65 +msgid "%B: out of memory in _bfd_elf_get_property" +msgstr "%B: memoria agotada en propiedad _bfd_elf_get_property" + +#: elf-properties.c:91 +msgid "warning: %B: corrupt GNU_PROPERTY_TYPE (%ld) size: %#lx" +msgstr "aviso: %B: tamaño GNU_PROPERTY_TYPE (%ld) corrupto: %#lx" + +#: elf-properties.c:112 +msgid "warning: %B: corrupt GNU_PROPERTY_TYPE (%ld) type (0x%x) datasz: 0x%x" +msgstr "advertencia: %B: GNU_PROPERTY_TYPE corrupto (%ld) tipo (0x%x) datosz: 0x%x" + +#: elf-properties.c:151 +msgid "warning: %B: corrupt stack size: 0x%x" +msgstr "aviso: %B; tamaño de pila corrupta: 0x%x" + +#: elf-properties.c:169 +msgid "warning: %B: corrupt no copy on protected size: 0x%x" +msgstr "aviso: %B: corrupto no copia en tamaño protegido: 0x%x" + +#: elf-properties.c:186 +msgid "warning: %B: unsupported GNU_PROPERTY_TYPE (%ld) type: 0x%x" +msgstr "cuidado: %B: tipo GNU_PROPERTY_TYPE (%ld) no soportado: 0x%x" + +#. PR 17512: file: f057ec89. +#: elf.c:343 #, c-format -msgid "dynamic variable `%s' is zero size" -msgstr "la variable dinámica `%s' es de tamaño cero" +msgid "%B: attempt to load strings from a non-string section (number %d)" +msgstr "%B: intenta cargar cadenas desde una sección no-cadena (número %d)" -#: elf.c:334 -msgid "%B: invalid string offset %u >= %lu for section `%s'" -msgstr "%B: desplazamiento de cadena inválido %u >= %lu para la sección `%s'" +#: elf.c:358 +#, c-format +msgid "%B: invalid string offset %u >= %Lu for section `%s'" +msgstr "%B: desplazamiento de cadena inválido %u >= %Lu para la sección «%s»" -#: elf.c:446 +#: elf.c:497 /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:7535 +#, c-format msgid "%B symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section" -msgstr "%B el número de símbolo %lu hace referencia a la sección inexistente SHT_SYMTAB_SHNDX" +msgstr "%B número simbólico %lu hace referencia a la sección inexistente SHT_SYMTAB_SHNDX" -#: elf.c:602 -msgid "%B: Corrupt size field in group section header: 0x%lx" -msgstr "%B: Campo de tamaño corrupto en el encabezado de la sección de grupo: 0x%lx" +#: elf.c:661 +#, c-format +msgid "%B: corrupt size field in group section header: %#Lx" +msgstr "%B: campo de tamaño corrupto en el encabezado de la sección de grupo: %#Lx" + +#: elf.c:676 +#, c-format +msgid "%B: invalid size field in group section header: %#Lx" +msgstr "%B: campo de tamaño inválido en el encabezado de la sección de grupo: %#Lx" -#: elf.c:638 +#: elf.c:712 msgid "%B: invalid SHT_GROUP entry" msgstr "%B: entrada SHT_GROUP inválida" -#: elf.c:708 -msgid "%B: no group info for section %A" -msgstr "%B: no hay información de grupo para la sección %A" +#: elf.c:731 +msgid "%B: no valid group sections found" +msgstr "%B: encontradas secciones agrupadas no válidas" + +#. See PR 21957 for a reproducer. +#: elf.c:760 +#, c-format +msgid "%B: group section '%A' has no contents" +msgstr "%B: sección agrupada '%A' no tiene contenidos" + +#: elf.c:820 +#, c-format +msgid "%B: no group info for section '%A'" +msgstr "%B: ningún grupo informado para sección «%A»" -#: elf.c:737 elf.c:3121 elflink.c:10135 +#: elf.c:851 elf.c:3862 elflink.c:11252 +#, c-format msgid "%B: warning: sh_link not set for section `%A'" msgstr "%B: aviso: no se estableció sh_link para la sección `%A'" -#: elf.c:756 +#: elf.c:871 +#, c-format msgid "%B: sh_link [%d] in section `%A' is incorrect" msgstr "%B: sh_link [%d] en la sección `%A', es incorrecto" -#: elf.c:791 -msgid "%B: unknown [%d] section `%s' in group [%s]" -msgstr "%B: sección [%d] desconocida `%s' en el grupo [%s]" - -#: elf.c:1041 -msgid "%B: unable to initialize commpress status for section %s" -msgstr "%B: no se puede inicializar el estado comprimido de la sección %s" - -#: elf.c:1061 -msgid "%B: unable to initialize decommpress status for section %s" -msgstr "%B: no se puede inicializar el estado descomprimido de la sección %s" +#: elf.c:884 +#, c-format +msgid "%B: SHT_GROUP section [index %d] has no SHF_GROUP sections" +msgstr "%B: sección SHT_GROUP [índice %d] no tiene ninguna sección SHF_GROUP" + +#: elf.c:905 +#, c-format +msgid "%B: section group entry number %u is corrupt" +msgstr "%B: número de entrada de grupo seccional %u está corrupto" + +#: elf.c:928 +#, c-format +msgid "%B: unknown type [%#x] section `%s' in group [%A]" +msgstr "%B: tipo desconocido [%#x] sección «%s» en grupo [%A]" + +#: elf.c:1390 +#, c-format +msgid "%B: Invalid sh_link field (%d) in section number %d" +msgstr "%B: campo sh_link inválido (%d) en número de sección %d" + +#: elf.c:1406 +#, c-format +msgid "%B: Failed to find link section for section %d" +msgstr "%B: fallado para encontrar sección de enlace para sección %d" + +#: elf.c:1433 +#, c-format +msgid "%B: Failed to find info section for section %d" +msgstr "%B: fallaba al encontrar sección de información para la sección %d" -#: elf.c:1181 +#: elf.c:1605 #, c-format msgid "" "\n" @@ -786,16 +1165,16 @@ "\n" "Encabezado del Programa:\n" -#: elf.c:1223 +#: elf.c:1647 #, c-format msgid "" "\n" "Dynamic Section:\n" msgstr "" "\n" -"Sección Dinámica:\n" +"Sección dinámica:\n" -#: elf.c:1359 +#: elf.c:1788 #, c-format msgid "" "\n" @@ -804,7 +1183,7 @@ "\n" "Definiciones de versión:\n" -#: elf.c:1384 +#: elf.c:1813 #, c-format msgid "" "\n" @@ -813,650 +1192,1047 @@ "\n" "Referencias de versión:\n" -#: elf.c:1389 +#: elf.c:1818 #, c-format msgid " required from %s:\n" -msgstr " se requere desde %s:\n" +msgstr " requer. desde %s:\n" -#: elf.c:1796 -msgid "%B: invalid link %lu for reloc section %s (index %u)" -msgstr "%B: enlace %lu inválido para la sección de reubicación %s (índice %u)" +#: elf.c:2016 +msgid "%B: warning: loop in section dependencies detected" +msgstr "%B: aviso: bucle dentro de dependencias de sección detectadas" -#: elf.c:1966 -msgid "%B: don't know how to handle allocated, application specific section `%s' [0x%8x]" -msgstr "%B: no se sabe cómo manejar la sección específica alojada de la aplicación `%s' [0x%8x]" +#: elf.c:2124 +#, c-format +msgid "%B: warning: multiple symbol tables detected - ignoring the table in section %u" +msgstr "%B: aviso: múltiples segmento simbólicos detectados - ignorando el segmento en sección %u" + +#: elf.c:2208 +#, c-format +msgid "%B: warning: multiple dynamic symbol tables detected - ignoring the table in section %u" +msgstr "%B: aviso: múltiples tablas símbólicas dinámicas detectadas - ignorando el segmento en sección %u" -#: elf.c:1978 -msgid "%B: don't know how to handle processor specific section `%s' [0x%8x]" -msgstr "%B: no se sabe cómo manejar la sección específica de procesador `%s' [0x%8x]" +#: elf.c:2321 +#, c-format +msgid "%B: invalid link %u for reloc section %s (index %u)" +msgstr "%B: enlace %u inválido para la sección de reubicación %s (índice %u)" -#: elf.c:1989 -msgid "%B: don't know how to handle OS specific section `%s' [0x%8x]" -msgstr "%B: no se sabe cómo manejar la sección específica de SO `%s' [0x%8x]" +#: elf.c:2480 elf.c:2495 elf.c:2506 elf.c:2519 +#, c-format +msgid "%B: unknown type [%#x] section `%s'" +msgstr "%B: tipo desconocido [%#x] sección «%s»" -#: elf.c:1999 -msgid "%B: don't know how to handle section `%s' [0x%8x]" -msgstr "%B: no se sabe cómo manejar la sección `%s' [0x%8x]" +#: elf.c:3224 +#, c-format +msgid "%B: error: Alignment power %d of section `%A' is too big" +msgstr "%B: error: alineamiento potencial %s de sección «%A» es demasiado grande" -#: elf.c:2634 +#: elf.c:3254 #, c-format msgid "warning: section `%A' type changed to PROGBITS" msgstr "aviso: el tipo de la sección `%A' cambió a PROGBITS" -#: elf.c:3078 +#: elf.c:3730 +#, c-format +msgid "%B: too many sections: %u" +msgstr "%B: demasiadas secciones: %u" + +#: elf.c:3815 +#, c-format msgid "%B: sh_link of section `%A' points to discarded section `%A' of `%B'" msgstr "%B: sh_link de la sección `%A' apunta a la sección descartada `%A' de `%B'" -#: elf.c:3101 +#: elf.c:3840 +#, c-format msgid "%B: sh_link of section `%A' points to removed section `%A' of `%B'" -msgstr "%B: sh_link de la sección `%A' apunta a la sección eliminada `%A' de `%B'" +msgstr "%B: sh_link de la sección `%A' apunta a la sección quitada `%A' de `%B'" + +#: elf.c:4392 +#, c-format +msgid "%B: GNU_MBIN section `%A' has invalid sh_info field: %d" +msgstr "%B: sección GNU_MBIN «%A» tiene campo sh_info inválido: %d" + +#: elf.c:4951 +msgid "%B: TLS sections are not adjacent:" +msgstr "%B: secciones TLS no son adyacentes:" + +#: elf.c:4958 +#, c-format +msgid "\t TLS: %A" +msgstr "\t TLS: %A" + +#: elf.c:4962 +#, c-format +msgid "\tnon-TLS: %A" +msgstr "\tno-TLS: %A" -#: elf.c:4527 +#: elf.c:5458 msgid "%B: The first section in the PT_DYNAMIC segment is not the .dynamic section" msgstr "%B: La primera sección en el segmento PT_DYNAMIC no es la sección .dynamic" -#: elf.c:4554 +#: elf.c:5486 msgid "%B: Not enough room for program headers, try linking with -N" msgstr "%B: No hay suficiente espacio para los encabezados del programa, pruebe enlazar con -N" -#: elf.c:4641 -msgid "%B: section %A lma %#lx adjusted to %#lx" -msgstr "%B: la sección %A lma %#lx se ajusta a %#lx" +#: elf.c:5574 +#, c-format +msgid "%B: section %A lma %#Lx adjusted to %#Lx" +msgstr "%B: sección %A lma %#lx ajustado a %#Lx" -#: elf.c:4776 +#: elf.c:5711 +#, c-format msgid "%B: section `%A' can't be allocated in segment %d" msgstr "%B: la sección `%A' no se puede asignar en el segmento %d" -#: elf.c:4824 +#: elf.c:5759 +#, c-format msgid "%B: warning: allocated section `%s' not in segment" -msgstr "%B: aviso: la sección asignada `%s' no está en el segmento" +msgstr "%B: aviso: sección asignada «%s» no dentro del segmento" -#: elf.c:5324 +#: elf.c:5957 +msgid "%B: error: non-load segment %d includes file header and/or program header" +msgstr "%B: error: segmento no-cargado %d incluye cabecera de fichero y/o cabecera de programa" + +#. The fix for this error is usually to edit the linker script being +#. used and set up the program headers manually. Either that or +#. leave room for the headers at the start of the SECTIONS. +#: elf.c:6134 +msgid "%B: error: PHDR segment not covered by LOAD segment" +msgstr "%B: error: segmento PHDR no cubierto por segmento LOAD" + +#: elf.c:6478 +#, c-format msgid "%B: symbol `%s' required but not present" -msgstr "%B: se requiere el símbolo `%s' pero no está presente" +msgstr "%B: el símbolo «%s» se requiere pero no está presente" + +#: elf.c:6821 +#, c-format +msgid "%B: warning: Empty loadable segment detected at vaddr=%#Lx, is this intentional?" +msgstr "%B: aviso: Se detectó un segmento cargable vacío en vaddr=%#Lx, ¿esto es intencional?" -#: elf.c:5662 -msgid "%B: warning: Empty loadable segment detected, is this intentional ?\n" -msgstr "%B: aviso: Se detectó un segmento cargable vacío, ¿ esto es intencional ?\n" +#: elf.c:7435 +#, c-format +msgid "%B: warning: segment alignment of %#Lx is too large" +msgstr "%B: aviso: alineamiento de segmento de %#Lx es demasiado grande" -#: elf.c:6692 +#: elf.c:7916 #, 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'" +msgstr "No se puede encontrar la sección de salida equivalente para el símbolo «%s» de la sección «%s»" + +#: elf.c:8249 +msgid "%B: .gnu.version_r invalid entry" +msgstr "%B: entrada .gnu.version_r inválida" -#: elf.c:7692 +#: elf.c:8376 +msgid "%B: .gnu.version_d invalid entry" +msgstr "%B: entrada .gnu.version_d inválida" + +#: elf.c:8928 +#, c-format msgid "%B: unsupported relocation type %s" msgstr "%B: no se admite el tipo de reubicación %s" -#: elf32-arm.c:3617 -msgid "" -"%B(%s): warning: interworking not enabled.\n" -" first occurrence: %B: Thumb call to ARM" -msgstr "" -"%B(%s): aviso: no se activó la interoperabilidad.\n" -" primer suceso: %B: llamada Thumb a ARM" +#: elf32-arc.c:433 elf32-frv.c:6623 elf32-iq2000.c:866 elf32-m32c.c:912 +#: elf32-mt.c:560 elf32-rl78.c:1257 elf32-rx.c:3178 elf32-visium.c:837 +#: elf64-ppc.c:6067 +#, c-format +msgid "private flags = 0x%lx:" +msgstr "marcas privadas = 0x%lx:" -#: elf32-arm.c:3664 -msgid "" -"%B(%s): warning: interworking not enabled.\n" -" first occurrence: %B: ARM call to Thumb" -msgstr "" -"%B(%s): aviso: no se activó la interoperabilidad.\n" -" primer suceso: %B: llamada ARM a Thumb" +#: elf32-arc.c:611 +msgid "Warning: %B: Conflicting platform configuration %s with %s.\n" +msgstr "Aviso: %B: Configuración de plataformas en conflicto %s con %s.\n" -#: elf32-arm.c:3878 elf32-arm.c:5315 -#, c-format -msgid "%s: cannot create stub entry %s" -msgstr "%s: no se puede crear la entrada de cabo %s" +#: elf32-arc.c:630 +msgid "error: %B: unable to merge CPU base attributes %s with %s.\n" +msgstr "error: %B: no se pueden combinar atributos base de CPU %s con %s.\n" -#: elf32-arm.c:5431 -#, c-format -msgid "unable to find THUMB glue '%s' for '%s'" -msgstr "no se puede encontrar el pegamento THUMB '%s' para `%s'" +#: elf32-arc.c:667 +msgid "error: %B: unable to merge ISA extension attributes %s.\n" +msgstr "error: %B: no se pueden combinar los atributos de extensión ISA %s.\n" -#: elf32-arm.c:5467 -#, c-format -msgid "unable to find ARM glue '%s' for '%s'" -msgstr "no se puede encontrar el pegamento ARM '%s' para `%s'" +#: elf32-arc.c:691 +msgid "error: %B: conflicting ISA extension attributes %s with %s.\n" +msgstr "error: %B: conflicto de atributos de extensión ISA %s con %s.\n" -#: elf32-arm.c:6005 -msgid "%B: BE8 images only valid in big-endian mode." -msgstr "%B: las imágenes BE8 sólo son válidas en modo big-endian." +#: elf32-arc.c:726 +msgid "error: %B: cannot mix rf16 with full register set %B.\n" +msgstr "error: %B: no puede mezclar rf16 con conjunto de registro completo %B.\n" -#. Give a warning, but do as the user requests anyway. -#: elf32-arm.c:6235 -msgid "%B: warning: selected VFP11 erratum workaround is not necessary for target architecture" -msgstr "%B: aviso: no se necesita la alternativa para evitar la errata del VFP11 seleccionado para la arquitectura objetivo" +#: elf32-arc.c:752 +msgid "error: %B: conflicting attributes %s: %s with %s.\n" +msgstr "error: %B: atributos conflictivos %s: %s con %s.\n" -#: elf32-arm.c:6779 elf32-arm.c:6799 -msgid "%B: unable to find VFP11 veneer `%s'" -msgstr "%B: no se puede encontrar la chapa de VFP11 `%s'" +#: elf32-arc.c:777 +msgid "error: %B: conflicting attributes %s.\n" +msgstr "error: %B: conflicto de atributos %s.\n" -#: elf32-arm.c:6848 +#: elf32-arc.c:877 #, c-format -msgid "Invalid TARGET2 relocation type '%s'." -msgstr "Tipo de reubicación TARGET2 '%s' inválido." +msgid "ERROR: Attempting to link %B with a binary %B of different architecture" +msgstr "ERROR: intentando enlazar %B con un binario %B de arquitectura distinta" + +#: elf32-arc.c:891 elf32-i370.c:359 elf32-iq2000.c:842 elf32-m32c.c:887 +#: elf32-m68hc1x.c:1384 elf32-ppc.c:4846 elf64-sparc.c:727 elfxx-mips.c:15082 +#, c-format +msgid "%B: uses different e_flags (%#x) fields than previous modules (%#x)" +msgstr "%B: emplea diferentes campos e_flags (%#x) que módulos (%#x) anteriores" -#: elf32-arm.c:6933 +#: elf32-arc.c:980 +msgid "Error: The ARC4 architecture is no longer supported.\n" +msgstr "Error: arquitectura ARC4 sin más soporte.\n" + +#: elf32-arc.c:986 msgid "" -"%B(%s): warning: interworking not enabled.\n" -" first occurrence: %B: thumb call to arm" +"Warning: unset or old architecture flags. \n" +"\t Use default machine.\n" msgstr "" -"%s(%s): aviso: no se activó la interoperabilidad.\n" -" primer suceso: %B: llamada thumb a arm" +"Aviso: destablece o marcas arquitecturales antiguas. \n" +"\t Emplee máquina predeterminada.\n" -#: elf32-arm.c:7717 -msgid "%B(%A+0x%lx):unexpected Thumb instruction '0x%x' in TLS trampoline" -msgstr "%B(%A+0x%lx):instrucción Thumb '0x%x' inesperada en el trampolín TLS" - -#: elf32-arm.c:7756 -msgid "%B(%A+0x%lx):unexpected ARM instruction '0x%x' in TLS trampoline" -msgstr "%B(%A+0x%lx):instrucción ARM '0x%x' inesperada en el trampolín TLS" +#: elf32-arc.c:1119 +#, c-format +msgid "%B(%A+%#Lx): CMEM relocation to `%s' is invalid, 16 MSB should be %#x (value is %#Lx)" +msgstr "%B(%A+%#Lx): reubicación CMEM a «%s» es inválido, 16 MSB debería ser %#x (valor es %#Lx)" -#: elf32-arm.c:8209 -msgid "\\%B: Warning: Arm BLX instruction targets Arm function '%s'." -msgstr "\\%B: Aviso: La instrucción Arm BLX apunta a la función Arm '%s'." +#: elf32-arc.c:1130 +#, c-format +msgid "%B(%A+%#Lx): CMEM relocation to `%s+%#Lx' is invalid, 16 MSB should be %#x (value is %#Lx)" +msgstr "%B(%A+%#Lx): CMEM reubicando a `%s+%#Lx' es inválido, 16 MSB debería ser %#x (valor es %#Lx)" -#: elf32-arm.c:8622 -msgid "%B: Warning: Thumb BLX instruction targets thumb function '%s'." -msgstr "%B: Aviso: La instrucción Thumb BLX apunta a la función thumb '%s'." +#: elf32-arc.c:1836 +msgid "GOT and PLT relocations cannot be fixed with a non dynamic linker." +msgstr "GOT y PLT reubicados no pueden ser fijados con enlazador no dinámico." -#: elf32-arm.c:9460 -msgid "%B(%A+0x%lx):unexpected Thumb instruction '0x%x' referenced by TLS_GOTDESC" -msgstr "%B(%A+0x%lx):instrucción Thumb '0x%x' inesperada referenciada por TLS_GOTDESC" +#: elf32-arc.c:1860 elf32-rl78.c:1095 elf32-rx.c:1449 +#, c-format +msgid "%B(%A): warning: unaligned access to symbol '%s' in the small data area" +msgstr "%B(%A): aviso: acceso sin alinear al símbolo «%s» en el área de datos small" -#: elf32-arm.c:9483 -msgid "%B(%A+0x%lx):unexpected ARM instruction '0x%x' referenced by TLS_GOTDESC" -msgstr "%B(%A+0x%lx):instrucción ARM '0x%x' inesperada referenciada por TLS_GOTDESC" +#: elf32-arc.c:1865 elf32-rl78.c:1100 elf32-rx.c:1454 +#, c-format +msgid "%B(%A): internal error: out of range error" +msgstr "%B(%A): error interno: error fuera de rango" -#: elf32-arm.c:9512 -msgid "%B(%A+0x%lx): R_ARM_TLS_LE32 relocation not permitted in shared object" -msgstr "%B(%A+0x%lx): la reubicación R_ARM_TLS_LE32 no se permite en objetos compartidos" +#: elf32-arc.c:1870 elf32-rl78.c:1105 elf32-rx.c:1459 +#, c-format +msgid "%B(%A): internal error: unsupported relocation error" +msgstr "%B(%A): error interno: no se admite el error de reubicación" -#: elf32-arm.c:9727 -msgid "%B(%A+0x%lx): Only ADD or SUB instructions are allowed for ALU group relocations" -msgstr "%B(%A+0x%lx): Sólo se permiten las instrucciones ADD o SUB en las reubicaciones de grupo ALU" +#: elf32-arc.c:1875 elf32-rl78.c:1110 elf32-rx.c:1464 +#, c-format +msgid "%B(%A): internal error: dangerous relocation" +msgstr "%B(%A): error interno: reubicación peligrosa" -#: elf32-arm.c:9767 elf32-arm.c:9854 elf32-arm.c:9937 elf32-arm.c:10022 -msgid "%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s" -msgstr "%B(%A+0x%lx): Desborde al dividirse 0x%lx para la reubicación de grupo %s" +#: elf32-arc.c:1880 elf32-rl78.c:1115 elf32-rx.c:1469 +#, c-format +msgid "%B(%A): internal error: unknown error" +msgstr "%B(%A): error interno: error desconocido" -#: elf32-arm.c:10261 elf32-sh.c:4103 elf64-sh64.c:1544 -msgid "%B(%A+0x%lx): %s relocation against SEC_MERGE section" -msgstr "%B(%A+0x%lx): reubicación %s contra la sección SEC_MERGE" +#: elf32-arc.c:1968 elf32-arm.c:14521 elf32-metag.c:2252 elfxx-mips.c:8889 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:7103 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:471 +#, c-format +msgid "%B: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC" +msgstr "%B: reubicación %s frente a «%s» no puede emplearse cuando se crea un objeto compartido; recompile con -fPIC" -#: elf32-arm.c:10372 elf32-m68k.c:4191 elf32-xtensa.c:2802 -msgid "%B(%A+0x%lx): %s used with TLS symbol %s" -msgstr "%B(%A+0x%lx): se usó %s con el símbolo TLS %s" +#: elf32-arc.c:2860 +msgid "%B: Unknown mandatory ARC object attribute %d." +msgstr "%B: Atributo de objeto ARC obligatorio %d desconocido." -#: elf32-arm.c:10373 elf32-m68k.c:4192 elf32-xtensa.c:2803 -msgid "%B(%A+0x%lx): %s used with non-TLS symbol %s" -msgstr "%B(%A+0x%lx): se usó %s con el símbolo %s que no es TLS" +#: elf32-arc.c:2868 +msgid "Warning: %B: Unknown ARC object attribute %d." +msgstr "Aviso: %B: Atributo de objeto ARC %d desconocido." -#: elf32-arm.c:10453 elf32-tic6x.c:2753 -msgid "out of range" -msgstr "fuera de rango" +#: elf32-arm.c:4022 elf32-arm.c:4056 elf32-arm.c:4075 elf32-arm.c:4127 +msgid "%B(%A): warning: long branch veneers used in section with SHF_ARM_PURECODE section attribute is only supported for M-profile targets that implement the movw instruction." +msgstr "%B(%A): aviso: rama larga recubierta utilizada en sección con atributo seccional SHF_ARM_PURECODE solo está soportado para objetivos M-profile que implementa la instrucción “movwâ€." -#: elf32-arm.c:10457 elf32-tic6x.c:2757 +#: elf32-arm.c:4087 elf32-arm.c:8806 +msgid "" +"%B(%s): warning: interworking not enabled.\n" +" first occurrence: %B: Thumb call to ARM" +msgstr "" +"%B(%s): aviso: no se activó la interoperabilidad.\n" +" primer suceso: %B: llamada Thumb a ARM" + +#: elf32-arm.c:4141 +msgid "" +"%B(%s): warning: interworking not enabled.\n" +" first occurrence: %B: ARM call to Thumb" +msgstr "" +"%B(%s): aviso: no se activó la interoperabilidad.\n" +" primer suceso: %B: llamada ARM a Thumb" + +#: elf32-arm.c:4415 +#, c-format +msgid "No address assigned to the veneers output section %s" +msgstr "Ninguna dirección asignada a la sección de salida recubierta %s" + +#: elf32-arm.c:4490 elf32-arm.c:6627 elf32-hppa.c:577 elf32-m68hc1x.c:165 +#: elf32-metag.c:1183 elf32-nios2.c:2207 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:2854 +#, c-format +msgid "%B: cannot create stub entry %s" +msgstr "%B: no se puede crear la entrada de cabo %s" + +#: elf32-arm.c:5675 +msgid "%B: Special symbol `%s' only allowed for ARMv8-M architecture or later." +msgstr "%B: símbolo especial «%s» solo permitido para arquitectura ARMv8-M o posterior." + +#: elf32-arm.c:5684 +msgid "%B: invalid special symbol `%s'." +msgstr "%B: símbolo especial no válido «%s»." + +#: elf32-arm.c:5686 elf32-arm.c:5726 +msgid "It must be a global or weak function symbol." +msgstr "Debe ser un símbolo funcional global o débil." + +#: elf32-arm.c:5724 +msgid "%B: invalid standard symbol `%s'." +msgstr "%B: símbolo común no válido «%s»." + +#: elf32-arm.c:5730 +msgid "%B: absent standard symbol `%s'." +msgstr "%B: símbolo estandarizado ausente «%s»." + +#: elf32-arm.c:5742 +msgid "%B: `%s' and its special symbol are in different sections." +msgstr "%B: `%s' y su símbolo especial están en secciones diferentes." + +#: elf32-arm.c:5754 +msgid "%B: entry function `%s' not output." +msgstr "%B: función entrante «%s» no de salida." + +#: elf32-arm.c:5761 +msgid "%B: entry function `%s' is empty." +msgstr "%B: función entrante «%s» está vacía." + +#: elf32-arm.c:5890 +msgid "%B: --in-implib only supported for Secure Gateway import libraries." +msgstr "%B: --in-implib solo compatible para importar bibliotecas Secure Gateway." + +#: elf32-arm.c:5936 +msgid "%B: invalid import library entry: `%s'." +msgstr "%B: importación de entrada de biblioteca inválida: «%s»." + +#: elf32-arm.c:5938 +msgid "Symbol should be absolute, global and refer to Thumb functions." +msgstr "Símbolo debería ser absoluto, global y refiere a función Thumb." + +#: elf32-arm.c:5958 +#, c-format +msgid "Entry function `%s' disappeared from secure code." +msgstr "Función entrante «%s» desaparecida desde código seguro." + +#: elf32-arm.c:5982 +#, c-format +msgid "`%s' refers to a non entry function." +msgstr "`%s' refiere a una función distinta de entrada." + +#: elf32-arm.c:5997 +msgid "%B: visibility of symbol `%s' has changed." +msgstr "%B: visibilidad de símbolo «%s» ha modificado." + +#: elf32-arm.c:6006 +msgid "%B: incorrect size for symbol `%s'." +msgstr "%B: tamaño incorrecto para símbolo «%s»." + +#: elf32-arm.c:6025 +#, c-format +msgid "Offset of veneer for entry function `%s' not a multiple of its size." +msgstr "Desplazamiento de recubrimiento para función de entrante «%s» no un múltiplo de su tamaño." + +#: elf32-arm.c:6045 +msgid "new entry function(s) introduced but no output import library specified:" +msgstr "entrada funcional nueva introducida pero ninguna salida importa biblioteca especificada:" + +#: elf32-arm.c:6053 +#, c-format +msgid "Start address of `%s' is different from previous link." +msgstr "Dirección inicial de «%s» es diferente desde enlace anterior." + +#: elf32-arm.c:6760 +#, c-format +msgid "unable to find THUMB glue '%s' for '%s'" +msgstr "no se puede encontrar el pegamento THUMB «%s» para «%s»" + +#: elf32-arm.c:6796 +#, c-format +msgid "unable to find ARM glue '%s' for '%s'" +msgstr "no se puede encontrar el pegamento ARM «%s» para «%s»" + +#: elf32-arm.c:7511 +msgid "%B: BE8 images only valid in big-endian mode." +msgstr "%B: las imágenes BE8 sólo son válidas en modo big-endian." + +#. Give a warning, but do as the user requests anyway. +#: elf32-arm.c:7742 +msgid "%B: warning: selected VFP11 erratum workaround is not necessary for target architecture" +msgstr "%B: aviso: no se necesita la alternativa para evitar la errata del VFP11 seleccionado para la arquitectura objetivo" + +#: elf32-arm.c:7769 +msgid "%B: warning: selected STM32L4XX erratum workaround is not necessary for target architecture" +msgstr "%B: aviso: no se necesita la alternativa para evitar la errata del STM32L4XX seleccionado para arquitectura objetivo" + +#: elf32-arm.c:8306 elf32-arm.c:8326 +msgid "%B: unable to find VFP11 veneer `%s'" +msgstr "%B: no se puede encontrar la chapa de VFP11 «%s»" + +#: elf32-arm.c:8392 elf32-arm.c:8411 +msgid "%B: unable to find STM32L4XX veneer `%s'" +msgstr "%B: incapaz de encontrar chapa STM32L4XX «%s»" + +#: elf32-arm.c:8618 +#, c-format +msgid "" +"%B(%A+%#x): error: multiple load detected in non-last IT block instruction : STM32L4XX veneer cannot be generated.\n" +"Use gcc option -mrestrict-it to generate only one instruction per IT block.\n" +msgstr "" +"%B(%A+%#x): error: carga múltiple detectada en bloque IT no última instrucción : STM32L4XX no puede ser generada.\n" +"Emplee opción gcc -mrestrict-it para generar solo una instrucción por bloque IT.\n" + +#: elf32-arm.c:8716 +#, c-format +msgid "Invalid TARGET2 relocation type '%s'." +msgstr "Tipo de reubicación TARGET2 «%s» inválido." + +#. FIXME: We ought to be able to generate thumb-1 PLT +#. instructions... +#: elf32-arm.c:9458 +msgid "%B: Warning: thumb-1 mode PLT generation not currently supported" +msgstr "%B: Aviso: mode PLT actualmente no se admite la reubicación" + +#: elf32-arm.c:9723 +#, c-format +msgid "%B(%A+%#Lx): unexpected Thumb instruction '%#lx' in TLS trampoline" +msgstr "%B(%A+%#Lx): instrucción Thumb '%#lx' inesperada en el trampolín TLS" + +#: elf32-arm.c:9763 +#, c-format +msgid "%B(%A+%#Lx): unexpected ARM instruction '%#lx' in TLS trampoline" +msgstr "%B(%A+%#Lx): instrucción ARM '%#lx' inesperada en el trampolín TLS" + +#: elf32-arm.c:10103 +msgid "shared object" +msgstr "objeto compartido" + +#: elf32-arm.c:10106 +msgid "PIE executable" +msgstr "PIE ejecutable" + +#: elf32-arm.c:10109 +msgid "%B: relocation %s against external or undefined symbol `%s' can not be used when making a %s; recompile with -fPIC" +msgstr "%B: reubicación %s frente símbolos externos o indefinidos «%s» pueden no ser empleados cuando hacen un %s; recompile con -fPIC" + +#: elf32-arm.c:10240 +msgid "%B: Warning: Arm BLX instruction targets Arm function '%s'." +msgstr "%B: Aviso: La instrucción Arm BLX apunta a la función Arm «%s»." + +#: elf32-arm.c:10666 +msgid "%B: Warning: Thumb BLX instruction targets thumb function '%s'." +msgstr "%B: Aviso: La instrucción Thumb BLX apunta a la función thumb «%s»." + +#: elf32-arm.c:11534 +#, c-format +msgid "%B(%A+%#Lx): unexpected Thumb instruction '%#lx' referenced by TLS_GOTDESC" +msgstr "%B(%A+%#Lx):instrucción Thumb '%#lx' inesperada referenciada por TLS_GOTDESC" + +#: elf32-arm.c:11557 +#, c-format +msgid "%B(%A+%#Lx): unexpected ARM instruction '%#lx' referenced by TLS_GOTDESC" +msgstr "%B(%A+%#Lx): instrucción ARM '%#lx' inesperada referenciada por TLS_GOTDESC" + +#: elf32-arm.c:11586 elf32-m68k.c:3701 elf32-metag.c:1916 elf32-nios2.c:4358 +#, c-format +msgid "%B(%A+%#Lx): %s relocation not permitted in shared object" +msgstr "%B(%A+%#Lx): reubicación %s no permitida dentro de objeto compartido" + +#: elf32-arm.c:11799 +#, c-format +msgid "%B(%A+%#Lx): Only ADD or SUB instructions are allowed for ALU group relocations" +msgstr "%B(%A+%#Lx): Sólo se permiten las instrucciones ADD o SUB en las reubicaciones de grupo ALU" + +#: elf32-arm.c:11839 elf32-arm.c:11929 elf32-arm.c:12015 elf32-arm.c:12103 +#, c-format +msgid "%B(%A+%#Lx): Overflow whilst splitting %#Lx for group relocation %s" +msgstr "%B(%A+%#Lx): Desborde superior al dividirse %#Lx para la reubicación de grupo %s" + +#: elf32-arm.c:12369 elf32-sh.c:4003 elf64-sh64.c:1539 +#, c-format +msgid "%B(%A+%#Lx): %s relocation against SEC_MERGE section" +msgstr "%B(%A+%#Lx): reubicación %s contra sección SEC_MERGE" + +#: elf32-arm.c:12481 elf32-m68k.c:3931 elf32-xtensa.c:2681 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6185 +#, c-format +msgid "%B(%A+%#Lx): %s used with TLS symbol %s" +msgstr "%B(%A+%#Lx): %s empleado con símbolo TLS %s" + +#: elf32-arm.c:12483 elf32-m68k.c:3933 elf32-xtensa.c:2683 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6187 +#, c-format +msgid "%B(%A+%#Lx): %s used with non-TLS symbol %s" +msgstr "%B(%A+%#Lx): %s utilizado con símbolo no-TLS %s" + +#: elf32-arm.c:12565 elf32-tic6x.c:2674 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6520 +msgid "out of range" +msgstr "fuera de rango" + +#: elf32-arm.c:12569 elf32-nios2.c:4492 elf32-pru.c:821 elf32-tic6x.c:2678 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6524 msgid "unsupported relocation" msgstr "no se admite la reubicación" -#: elf32-arm.c:10465 elf32-tic6x.c:2765 +#: elf32-arm.c:12577 elf32-nios2.c:4502 elf32-pru.c:831 elf32-tic6x.c:2686 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6532 msgid "unknown error" msgstr "error desconocido" -#: elf32-arm.c:10890 -msgid "Warning: Clearing the interworking flag of %B because non-interworking code in %B has been linked with it" -msgstr "Aviso: Se limpia la opción de interoperación en %B porque se ha enlazado con él código no interoperable en %B" - -#: elf32-arm.c:10984 +#: elf32-arm.c:13157 msgid "%B: Unknown mandatory EABI object attribute %d" msgstr "%B: Atributo de objeto EABI obligatorio %d desconocido" -#: elf32-arm.c:10992 +#: elf32-arm.c:13165 msgid "Warning: %B: Unknown EABI object attribute %d" msgstr "Aviso: %B: Atributo de objeto EABI %d desconocido" -#: elf32-arm.c:11173 +#: elf32-arm.c:13432 msgid "error: %B: Unknown CPU architecture" msgstr "error: %B: Arquitectura de CPU desconocida" -#: elf32-arm.c:11211 +#: elf32-arm.c:13470 elf32-nios2.c:2945 +#, c-format msgid "error: %B: Conflicting CPU architectures %d/%d" msgstr "error: %B: Arquitecturas de CPU en conflicto %d/%d" -#: elf32-arm.c:11260 +#: elf32-arm.c:13567 msgid "Error: %B has both the current and legacy Tag_MPextension_use attributes" msgstr "Error: %B tiene al mismo tiempo los atributos Tag_MPextension_use actuales y antiguos" -#: elf32-arm.c:11285 +#: elf32-arm.c:13596 msgid "error: %B uses VFP register arguments, %B does not" msgstr "error: %B utiliza argumentos de registro VFP, mientras que %B no" -#: elf32-arm.c:11430 +#: elf32-arm.c:13754 msgid "error: %B: unable to merge virtualization attributes with %B" msgstr "error: %B: no se pueden mezclar los atributos de virtualización con %B" -#: elf32-arm.c:11456 +#: elf32-arm.c:13780 msgid "error: %B: Conflicting architecture profiles %c/%c" msgstr "error: %B: Perfiles de arquitecturas en conflicto %c/%c" -#: elf32-arm.c:11557 +#: elf32-arm.c:13919 msgid "Warning: %B: Conflicting platform configuration" msgstr "Aviso: %B: Configuración de plataformas en conflicto" -#: elf32-arm.c:11566 +#: elf32-arm.c:13928 msgid "error: %B: Conflicting use of R9" -msgstr "error: %B: Uso en conflicto de R9" +msgstr "error: %B: Empleo en conflicto de R9" -#: elf32-arm.c:11578 +#: elf32-arm.c:13940 msgid "error: %B: SB relative addressing conflicts with use of R9" msgstr "error: %B: El direccionamiento relativo a SB tiene conflictos con el uso de R9" -#: elf32-arm.c:11591 +#: elf32-arm.c:13953 msgid "warning: %B uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may fail" -msgstr "aviso: %B usa wchar_t de %u bytes aunque la salida usa wchar_t de %u bytes; el uso de valores wchar_t entre objetos puede fallar" +msgstr "aviso: %B emplea wchar_t de %u bytes aunque la salida usa wchar_t de %u bytes; el uso de valores wchar_t entre objetos puede fallar" -#: elf32-arm.c:11622 +#: elf32-arm.c:13984 msgid "warning: %B uses %s enums yet the output is to use %s enums; use of enum values across objects may fail" -msgstr "aviso: %B usa enums %s aunque la salida usa enums %s; el uso de valores enum entre objetos puede fallar" +msgstr "aviso: %B emplea ‘enums’ %s aunque la salida emplea ‘enums’ %s; emplea valores ‘enum’ entre objetos quizá falla" -#: elf32-arm.c:11634 +#: elf32-arm.c:13996 msgid "error: %B uses iWMMXt register arguments, %B does not" msgstr "error: %B utiliza argumentos de registro iWMMXt, mientras que %B no" -#: elf32-arm.c:11651 +#: elf32-arm.c:14013 msgid "error: fp16 format mismatch between %B and %B" msgstr "error: no coincide el formato fp16 entre %B y %B" -#: elf32-arm.c:11675 -msgid "DIV usage mismatch between %B and %B" -msgstr "no coincide el uso de DIV entre %B y %B" - -#: elf32-arm.c:11694 -msgid "%B has has both the current and legacy Tag_MPextension_use attributes" -msgstr "%B tiene al mismo tiempo los atributos actuales y antiguos de Tag_MPextension" +#: elf32-arm.c:14049 +msgid "%B has both the current and legacy Tag_MPextension_use attributes" +msgstr "%B tiene al mismo tiempo los atributos actuales y antiguos de Tag_MPextension_use" #. Ignore init flag - it may not be set, despite the flags field #. containing valid data. #. Ignore init flag - it may not be set, despite the flags field containing valid data. -#: elf32-arm.c:11782 elf32-bfin.c:5079 elf32-cris.c:4169 elf32-m68hc1x.c:1282 -#: elf32-m68k.c:1236 elf32-score.c:3994 elf32-score7.c:3800 elf32-vax.c:529 -#: elfxx-mips.c:14103 +#. Ignore init flag - it may not be set, despite the flags field +#. containing valid data. +#: elf32-arm.c:14136 elf32-bfin.c:4729 elf32-cris.c:3905 elf32-m68hc1x.c:1409 +#: elf32-m68k.c:1199 elf32-score.c:3998 elf32-score7.c:3803 elf32-vax.c:536 +#: elf32-xgate.c:669 elfxx-mips.c:15756 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6686 #, c-format msgid "private flags = %lx:" msgstr "opciones privadas = %lx:" -#: elf32-arm.c:11791 +#: elf32-arm.c:14145 #, c-format msgid " [interworking enabled]" msgstr " [interoperabilidad activada]" -#: elf32-arm.c:11799 +#: elf32-arm.c:14153 #, c-format msgid " [VFP float format]" -msgstr " [formato de coma flotante VFP]" +msgstr " [formato flotante VFP]" -#: elf32-arm.c:11801 +#: elf32-arm.c:14155 #, c-format msgid " [Maverick float format]" msgstr " [formato de coma flotante Maverick]" -#: elf32-arm.c:11803 +#: elf32-arm.c:14157 #, c-format msgid " [FPA float format]" msgstr " [formato de coma flotante FPA]" -#: elf32-arm.c:11812 +#: elf32-arm.c:14166 #, c-format msgid " [new ABI]" msgstr " [ABI nuevo]" -#: elf32-arm.c:11815 +#: elf32-arm.c:14169 #, c-format msgid " [old ABI]" msgstr " [ABI antiguo]" -#: elf32-arm.c:11818 +#: elf32-arm.c:14172 #, c-format msgid " [software FP]" msgstr " [FP por software]" -#: elf32-arm.c:11827 +#: elf32-arm.c:14181 #, c-format msgid " [Version1 EABI]" msgstr " [EABI Version1]" -#: elf32-arm.c:11830 elf32-arm.c:11841 +#: elf32-arm.c:14184 elf32-arm.c:14195 #, c-format msgid " [sorted symbol table]" -msgstr " [tabla de símbolos ordenados]" +msgstr " [segmento de símbolos ordenados]" -#: elf32-arm.c:11832 elf32-arm.c:11843 +#: elf32-arm.c:14186 elf32-arm.c:14197 #, c-format msgid " [unsorted symbol table]" -msgstr " [tabla de símbolos sin ordenar]" +msgstr " [segmento de símbolos sin ordenar]" -#: elf32-arm.c:11838 +#: elf32-arm.c:14192 #, c-format msgid " [Version2 EABI]" msgstr " [EABI Version2]" -#: elf32-arm.c:11846 +#: elf32-arm.c:14200 #, c-format msgid " [dynamic symbols use segment index]" msgstr " [los símbolos dinámicos utilizan índices de segmento]" -#: elf32-arm.c:11849 +#: elf32-arm.c:14203 #, c-format msgid " [mapping symbols precede others]" -msgstr " [el mapeo de símbolos precede a otros]" +msgstr " [distribuyendo símbolos precede a otros]" -#: elf32-arm.c:11856 +#: elf32-arm.c:14210 #, c-format msgid " [Version3 EABI]" msgstr " [EABI Version3]" -#: elf32-arm.c:11860 +#: elf32-arm.c:14214 #, c-format msgid " [Version4 EABI]" msgstr " [EABI Version4]" -#: elf32-arm.c:11864 +#: elf32-arm.c:14218 #, c-format msgid " [Version5 EABI]" msgstr " [EABI Version5]" -#: elf32-arm.c:11867 +#: elf32-arm.c:14221 +#, c-format +msgid " [soft-float ABI]" +msgstr " [soft-float ABI]" + +#: elf32-arm.c:14224 +#, c-format +msgid " [hard-float ABI]" +msgstr " [hard-float ABI]" + +#: elf32-arm.c:14230 #, c-format msgid " [BE8]" msgstr " [BE8]" -#: elf32-arm.c:11870 +#: elf32-arm.c:14233 #, c-format msgid " [LE8]" msgstr " [LE8]" -#: elf32-arm.c:11876 +#: elf32-arm.c:14239 #, c-format msgid " " -msgstr " " +msgstr " " -#: elf32-arm.c:11883 +#: elf32-arm.c:14246 #, c-format msgid " [relocatable executable]" msgstr " [ejecutable reubicable]" -#: elf32-arm.c:11886 -#, c-format -msgid " [has entry point]" -msgstr " [tiene punto de entrada]" - -#: elf32-arm.c:11891 +#: elf32-arm.c:14251 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6689 #, c-format msgid "" msgstr "" -#: elf32-arm.c:12189 elf32-i386.c:1461 elf32-s390.c:1000 elf32-tic6x.c:2829 -#: elf32-tilepro.c:1336 elf32-xtensa.c:1009 elf64-s390.c:960 -#: elf64-x86-64.c:1364 elfxx-sparc.c:1371 elfxx-tilegx.c:1586 +#: elf32-arm.c:14368 elf32-i386.c:1510 elf32-s390.c:956 elf32-tic6x.c:2749 +#: elf32-tilepro.c:1471 elf32-xtensa.c:1018 elf64-s390.c:875 +#: elf64-x86-64.c:1823 elfxx-sparc.c:1420 elfxx-tilegx.c:1688 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6978 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:513 +#, c-format msgid "%B: bad symbol index: %d" -msgstr "%B: índice de símbolos erróneo: %d" +msgstr "%B: índice de símbolos equivocado: %d" -#: elf32-arm.c:12337 elf64-x86-64.c:1561 elf64-x86-64.c:1732 elfxx-mips.c:8223 -msgid "%B: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC" -msgstr "%B: no se puede usar la reubicación %s contra `%s' cuando se hace un objeto compartido; recompile con -fPIC" +#: elf32-arm.c:15636 elf32-hppa.c:2082 elf32-lm32.c:1989 elf32-m32r.c:2097 +#: elf32-metag.c:2792 elf32-nds32.c:3844 elf32-or1k.c:2281 elf32-ppc.c:6156 +#: elf32-s390.c:1851 elf32-sh.c:3289 elf32-tic6x.c:3205 elf32-tilepro.c:2237 +#: elf64-ppc.c:9893 elf64-s390.c:1785 elfxx-sparc.c:2457 elfxx-tilegx.c:2479 +#: elfxx-x86.c:563 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:8319 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:1112 +#, c-format +msgid "%B: dynamic relocation against `%T' in read-only section `%A'\n" +msgstr "%B: reubicación dinámica frente a «%T» en sección de sólo lectura «%A»\n" + +#: elf32-arm.c:15881 +msgid "Errors encountered processing file %B" +msgstr "Errores encontrados procesando el fichero %B" -#: elf32-arm.c:13460 +#: elf32-arm.c:16318 elflink.c:12394 elflink.c:12441 #, c-format -msgid "Errors encountered processing file %s" -msgstr "Se encontraron errores al procesar el fichero %s" +msgid "could not find section %s" +msgstr "no pudo encontrar la sección %s" -#: elf32-arm.c:14837 +#: elf32-arm.c:17494 msgid "%B: error: Cortex-A8 erratum stub is allocated in unsafe location" msgstr "%B: error: el cabo de errores Cortex-A8 se aloja en una ubicación insegura" #. There's not much we can do apart from complain if this #. happens. -#: elf32-arm.c:14864 +#: elf32-arm.c:17521 msgid "%B: error: Cortex-A8 erratum stub out of range (input file too large)" msgstr "%B: error: el cabo de errores Cortex-A8 está fuera de rango (el fichero de entrada es demasiado grande)" -#: elf32-arm.c:14958 elf32-arm.c:14980 +#: elf32-arm.c:18348 elf32-arm.c:18370 msgid "%B: error: VFP11 veneer out of range" msgstr "%B: error: la chapa VFP11 está fuera de rango" -#: elf32-arm.c:15518 +#: elf32-arm.c:18421 +msgid "%B(%#Lx): error: Cannot create STM32L4XX veneer. Jump out of range by %Ld bytes. Cannot encode branch instruction. " +msgstr "%B(%#Lx): error: no puede crear veneer STM32L4XX. Omisión de límite por %Ld bytes. No puede codificar intrucción de rama. " + +#: elf32-arm.c:18459 +msgid "%B: error: Cannot create STM32L4XX veneer." +msgstr "%B: error: no puede crear recubrimiento STM32L4XX." + +#: elf32-arm.c:19481 msgid "error: %B is already in final BE8 format" msgstr "error: %B ya está en el formato BE8 final" -#: elf32-arm.c:15594 +#: elf32-arm.c:19557 msgid "error: Source object %B has EABI version %d, but target %B has EABI version %d" msgstr "error: El objeto fuente %B tiene EABI versión %d, pero el objetivo %B tiene EABI versión %d" -#: elf32-arm.c:15610 +#: elf32-arm.c:19572 msgid "error: %B is compiled for APCS-%d, whereas target %B uses APCS-%d" -msgstr "error: %B está compilado para APCS-%d mientras que el objetivo %B usa APCS-%d" +msgstr "error: %B está compilado para APCS-%d mientras que el objetivo %B emplea APCS-%d" -#: elf32-arm.c:15635 +#: elf32-arm.c:19596 msgid "error: %B uses VFP instructions, whereas %B does not" msgstr "error: %B utiliza instrucciones VFP, mientras que %B no" -#: elf32-arm.c:15639 +#: elf32-arm.c:19600 msgid "error: %B uses FPA instructions, whereas %B does not" msgstr "error: %B utiliza instrucciones FPA, mientras que %B no" -#: elf32-arm.c:15649 +#: elf32-arm.c:19610 msgid "error: %B uses Maverick instructions, whereas %B does not" msgstr "error: %B utiliza instrucciones Maverick, mientras que %B no" -#: elf32-arm.c:15653 +#: elf32-arm.c:19614 msgid "error: %B does not use Maverick instructions, whereas %B does" msgstr "error: %B no utiliza instrucciones Maverick, mientras que %B sí" -#: elf32-arm.c:15672 +#: elf32-arm.c:19633 msgid "error: %B uses software FP, whereas %B uses hardware FP" msgstr "error: %B utiliza FP de software, mientras que %B utiliza FP de hardware" -#: elf32-arm.c:15676 +#: elf32-arm.c:19637 msgid "error: %B uses hardware FP, whereas %B uses software FP" msgstr "error: %B utiliza FP de hardware, mientras que %B utiliza FP de software" -#: elf32-avr.c:1229 elf32-bfin.c:3221 elf32-cris.c:2089 elf32-epiphany.c:567 -#: elf32-fr30.c:617 elf32-frv.c:4113 elf32-i860.c:1219 elf32-ip2k.c:1479 -#: elf32-iq2000.c:692 elf32-m32c.c:561 elf32-mep.c:543 elf32-moxie.c:290 -#: elf32-msp430.c:494 elf32-mt.c:399 elf32-openrisc.c:412 elf32-tilepro.c:3222 -#: elf32-v850.c:2151 elf32-xstormy16.c:943 elf64-mmix.c:1598 -#: elfxx-tilegx.c:3585 +#: elf32-avr.c:959 +#, c-format +msgid "%B: invalid AVR reloc number: %d" +msgstr "%B: número reubicante AArch64 no válido: %d" + +#: elf32-avr.c:1510 elf32-bfin.c:3124 elf32-cris.c:2038 elf32-epiphany.c:574 +#: elf32-fr30.c:599 elf32-frv.c:4049 elf32-ft32.c:493 elf32-i860.c:1218 +#: elf32-ip2k.c:1486 elf32-iq2000.c:697 elf32-m32c.c:630 elf32-mep.c:532 +#: elf32-metag.c:1993 elf32-moxie.c:293 elf32-msp430.c:1361 elf32-mt.c:404 +#: elf32-or1k.c:1246 elf32-tilepro.c:3505 elf32-v850.c:2291 elf32-visium.c:685 +#: elf32-xstormy16.c:931 elf64-mmix.c:1546 elfxx-tilegx.c:3865 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2245 msgid "internal error: dangerous relocation" msgstr "error interno: reubicación peligrosa" -#: elf32-avr.c:2415 elf32-hppa.c:598 elf32-m68hc1x.c:166 -msgid "%B: cannot create stub entry %s" -msgstr "%B: no se puede crear la entrada de cabo %s" +#: elf32-avr.c:3319 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:2882 +#, c-format +msgid "cannot create stub entry %s" +msgstr "no puede crear la entrada de cabo %s" -#: elf32-bfin.c:107 elf32-bfin.c:363 +#: elf32-bfin.c:106 elf32-bfin.c:362 msgid "relocation should be even number" -msgstr "la reubicación debe ser un número non" +msgstr "la reubicación debe ser un número par" -#: elf32-bfin.c:1593 -msgid "%B(%A+0x%lx): unresolvable relocation against symbol `%s'" -msgstr "%B(%A+0x%lx): reubicación sin resolución contra el símbolo `%s'" - -#: elf32-bfin.c:1626 elf32-i386.c:4307 elf32-m68k.c:4233 elf32-s390.c:3055 -#: elf64-s390.c:3030 elf64-x86-64.c:4151 -msgid "%B(%A+0x%lx): reloc against `%s': error %d" -msgstr "%B(%A+0x%lx): reubicación contra `%s': error %d" - -#: elf32-bfin.c:2725 -msgid "%B: relocation at `%A+0x%x' references symbol `%s' with nonzero addend" -msgstr "%B: la reubicación en `%A+0x%x' referencía al símbolo `%s' con adición que no es cero" +#: elf32-bfin.c:1577 +#, c-format +msgid "%B(%A+%#Lx): unresolvable relocation against symbol `%s'" +msgstr "%B(%A+%#Lx): reubicación %s irresoluble frente a símbolo `%s'" -#: elf32-bfin.c:2741 +#: elf32-bfin.c:1608 elf32-i386.c:3473 elf32-m68k.c:3971 elf32-s390.c:3261 +#: elf64-s390.c:3175 elf64-x86-64.c:3839 +#, c-format +msgid "%B(%A+%#Lx): reloc against `%s': error %d" +msgstr "%B(%A+%#Lx): reubicar frente «%s»: error %d" + +#: elf32-bfin.c:2628 +#, c-format +msgid "%B: relocation at `%A+%#Lx' references symbol `%s' with nonzero addend" +msgstr "%B: la reubicación en `%A+%#Lx' referencia al símbolo «%s» con adición sin cero" + +#: elf32-bfin.c:2644 msgid "relocation references symbol not defined in the module" -msgstr "la reubicación referencía un símbolo que no está definido en el módulo" +msgstr "la referencia reubicante simbólica no definida dentro del módulo" -#: elf32-bfin.c:2838 +#: elf32-bfin.c:2741 msgid "R_BFIN_FUNCDESC references dynamic symbol with nonzero addend" msgstr "R_BFIN_FUNCDESC referencía un símbolo dinámico con adición que no es cero" -#: elf32-bfin.c:2879 elf32-bfin.c:3002 +#: elf32-bfin.c:2782 elf32-bfin.c:2905 msgid "cannot emit fixups in read-only section" msgstr "no se pueden emitir composturas en la sección de sólo lectura" -#: elf32-bfin.c:2910 elf32-bfin.c:3040 elf32-lm32.c:1103 elf32-sh.c:5016 +#: elf32-bfin.c:2813 elf32-bfin.c:2943 elf32-lm32.c:1044 elf32-sh.c:4926 msgid "cannot emit dynamic relocations in read-only section" msgstr "no se pueden emitir reubicaciones dinámicas en la sección de sólo lectura" -#: elf32-bfin.c:2960 +#: elf32-bfin.c:2863 msgid "R_BFIN_FUNCDESC_VALUE references dynamic symbol with nonzero addend" msgstr "R_BFIN_FUNCDESC_VALUE referencía un símbolo dinámico con adición que no es cero" -#: elf32-bfin.c:3125 +#: elf32-bfin.c:3028 msgid "relocations between different segments are not supported" msgstr "no se admiten las reubicaciones entre segmentos diferentes" -#: elf32-bfin.c:3126 +#: elf32-bfin.c:3029 msgid "warning: relocation references a different segment" msgstr "aviso: la reubicación referencía un segmento diferente" -#: elf32-bfin.c:4971 -msgid "%B: unsupported relocation type %i" -msgstr "%B: no se admite el tipo de reubicación %i" - -#: elf32-bfin.c:5125 elf32-frv.c:6808 +#: elf32-bfin.c:4687 #, c-format -msgid "%s: cannot link non-fdpic object file into fdpic executable" -msgstr "%s: no se puede enlazar el fichero objeto que no es fdpic en un ejecutable fdpic" +msgid "%B: unsupported relocation type %d" +msgstr "%B: tipo de reubicación %d no admitido" -#: elf32-bfin.c:5129 elf32-frv.c:6812 -#, c-format -msgid "%s: cannot link fdpic object file into non-fdpic executable" -msgstr "%s: no se puede enlazar el fichero objeto fdpic en un ejecutable que no es fdpic" +#: elf32-bfin.c:4776 elf32-frv.c:6596 +msgid "%B: cannot link non-fdpic object file into fdpic executable" +msgstr "%B: no se puede enlazar el fichero objeto que no es fdpic en un ejecutable fdpic" + +#: elf32-bfin.c:4780 elf32-frv.c:6600 +msgid "%B: cannot link fdpic object file into non-fdpic executable" +msgstr "%B: no se puede enlazar el fichero objeto ‘fdpic’ en un ejecutable que no es fdpic" -#: elf32-bfin.c:5283 +#: elf32-bfin.c:4930 #, c-format msgid "*** check this relocation %s" msgstr "*** revisar esta reubicación %s" -#: elf32-cris.c:1176 +#: elf32-bfin.c:5046 +msgid "the bfin target does not currently support the generation of copy relocations" +msgstr "el destino bfin no soporta actualmente la generación de copia reubicable" + +#: elf32-cr16.c:653 +#, c-format +msgid "Unsupported CR16 relocation type: 0x%x\n" +msgstr "Reubicación de tipo CR16 no soportado: 0x%x\n" + +#: elf32-cr16.c:682 +#, c-format +msgid "%B: unrecognised CR16 reloc number: %d" +msgstr "%B: número reubicante CR16 no reconocido: %d" + +#: elf32-cr16c.c:186 +#, c-format +msgid "%B: invalid CR16C reloc number: %d" +msgstr "%B: número reubicante CR16C no válido: %d" + +#: elf32-cris.c:467 +#, c-format +msgid "%B: invalid CRIS reloc number: %d" +msgstr "%B: número reubicante CRIS no válido: %d" + +#: elf32-cris.c:1116 +#, c-format msgid "%B, section %A: unresolvable relocation %s against symbol `%s'" -msgstr "%B, sección %A: reubicación %s sin resolución contra el símbolo `%s'" +msgstr "%B, sección %A: reubicación %s sin resolución contra el símbolo «%s»" -#: elf32-cris.c:1238 +#: elf32-cris.c:1181 +#, c-format msgid "%B, section %A: No PLT nor GOT for relocation %s against symbol `%s'" -msgstr "%B, sección %A: No hay PLT ni GOT para la reubicación %s contra el símbolo `%s'" +msgstr "%B, sección %A: No hay PLT ni GOT para la reubicación %s contra el símbolo «%s»" -#: elf32-cris.c:1240 +#: elf32-cris.c:1184 +#, c-format msgid "%B, section %A: No PLT for relocation %s against symbol `%s'" -msgstr "%B, sección %A: No hay PLT para la reubicación %s contra el símbolo `%s'" +msgstr "%B, sección %A: No hay PLT para la reubicación %s contra el símbolo «%s»" -#: elf32-cris.c:1246 elf32-cris.c:1379 elf32-cris.c:1639 elf32-cris.c:1722 -#: elf32-cris.c:1875 elf32-tic6x.c:2662 +#: elf32-cris.c:1190 elf32-cris.c:1323 elf32-cris.c:1588 elf32-cris.c:1671 +#: elf32-cris.c:1824 elf32-tic6x.c:2586 msgid "[whose name is lost]" msgstr "[cuyo nombre está perdido]" -#: elf32-cris.c:1365 elf32-tic6x.c:2647 -msgid "%B, section %A: relocation %s with non-zero addend %d against local symbol" -msgstr "%B, sección %A: reubicación %s con adición %d que no es cero contra el símbolo local" - -#: elf32-cris.c:1373 elf32-cris.c:1716 elf32-cris.c:1869 elf32-tic6x.c:2655 -msgid "%B, section %A: relocation %s with non-zero addend %d against symbol `%s'" -msgstr "%B, sección %A: reubicación %s con adición %d que no es cero contra el símbolo `%s'" +#: elf32-cris.c:1308 elf32-tic6x.c:2570 +#, c-format +msgid "%B, section %A: relocation %s with non-zero addend %Ld against local symbol" +msgstr "%B, sección %A: reubicación %s con adición de dirección sin cero %Ld contra el símbolo local" + +#: elf32-cris.c:1317 elf32-cris.c:1665 elf32-cris.c:1818 elf32-tic6x.c:2579 +#, c-format +msgid "%B, section %A: relocation %s with non-zero addend %Ld against symbol `%s'" +msgstr "%B, sección %A: reubicación %s con adición %Ld sin ceros contra el símbolo «%s»" -#: elf32-cris.c:1399 +#: elf32-cris.c:1344 +#, c-format msgid "%B, section %A: relocation %s is not allowed for global symbol: `%s'" -msgstr "%B, sección %A: no se permite la reubicación %s para el símbolo global: `%s'" +msgstr "%B, sección %A: reubicación %s no permitida para símbolo global: «%s»" -#: elf32-cris.c:1415 +#: elf32-cris.c:1361 +#, c-format msgid "%B, section %A: relocation %s with no GOT created" -msgstr "%B, sección %A: la reubicación %s sin GOT creado" +msgstr "%B, sección %A: reubicación %s sin GOT creado" #. We shouldn't get here for GCC-emitted code. -#: elf32-cris.c:1630 +#: elf32-cris.c:1578 +#, c-format msgid "%B, section %A: relocation %s has an undefined reference to `%s', perhaps a declaration mixup?" -msgstr "%B, sección %A: la reubicación %s tiene una referencia sin definir a `%s', ¿tal vez una confusión en la declaración?" +msgstr "%B, sección %A: reubicación %s tiene una referencia sin definir a «%s», ¿tal vez una confusión en la declaración?" + +#: elf32-cris.c:1581 +#, c-format +msgid "%B, section %A: relocation %s is not allowed for `%s', a global symbol with default visibility, perhaps a declaration mixup?" +msgstr "%B, sección %A: la reubicación %s no está permitida para «%s», un símbolo global con visibilidad predeterminada, ¿quizá una confusión en la declaración?" -#: elf32-cris.c:2002 +#: elf32-cris.c:1952 +#, c-format msgid "%B, section %A: relocation %s is not allowed for symbol: `%s' which is defined outside the program, perhaps a declaration mixup?" -msgstr "%B, sección %A: no se permite la reubicación %s para el símbolo: `%s' el cual se define fuera del programa, ¿tal vez una confusión en la declaración?" +msgstr "%B, sección %A: reubicación %s no permitida para símbolo: «%s» el cual se define fuera del programa, ¿tal vez una confusión en la declaración?" -#: elf32-cris.c:2055 +#: elf32-cris.c:2005 msgid "(too many global variables for -fpic: recompile with -fPIC)" msgstr "(demasiadas variables globales para -fpic: recompile con -fPIC)" -#: elf32-cris.c:2062 +#: elf32-cris.c:2012 msgid "(thread-local data too big for -fpic or -msmall-tls: recompile with -fPIC or -mno-small-tls)" msgstr "(datos thread-local demasiado grandes para -fpic o -msmall-tls: recompile con -fPIC o -mno-small-tls)" -#: elf32-cris.c:3261 +#: elf32-cris.c:3047 +#, c-format msgid "" "%B, section %A:\n" -" v10/v32 compatible object %s must not contain a PIC relocation" +" v10/v32 compatible object must not contain a PIC relocation" msgstr "" "%B, sección %A:\n" -" el objeto %s compatible con v10/v32 no debe contener una reubicación PIC" +" el objeto compatible v10/v32 no debe contener una reubicación PIC" -#: elf32-cris.c:3366 +#: elf32-cris.c:3101 +#, c-format msgid "" "%B, section %A:\n" " relocation %s not valid in a shared object; typically an option mixup, recompile with -fPIC" msgstr "" "%B, sección %A:\n" -" la reubicación %s no es válida en un objeto compartido; es una confusión de opción típica, recompile con -fPIC" +" reubicación %s no es válida en un objeto compartido; es una confusión de opción típica, recompile con -fPIC" -#: elf32-cris.c:3580 +#: elf32-cris.c:3319 +#, c-format msgid "" "%B, section %A:\n" " relocation %s should not be used in a shared object; recompile with -fPIC" msgstr "" "%B, sección %A:\n" -" la reubicación %s no se debe usar en un objeto compartido; recompile con -fPIC" +" reubicación %s no se debería emplearse en un objeto compartido; recompile con -fPIC" -#: elf32-cris.c:4002 +#: elf32-cris.c:3744 +#, c-format msgid "" "%B, section `%A', to symbol `%s':\n" " relocation %s should not be used in a shared object; recompile with -fPIC" msgstr "" -"%B, sección `%A', para el símbolo `%s':\n" +"%B, sección `%A', para el símbolo «%s»:\n" " la reubicación %s no se debe usar en un objeto compartido; recompile con -fPIC" -#: elf32-cris.c:4118 +#: elf32-cris.c:3857 msgid "Unexpected machine number" msgstr "Número de máquina inesperado" -#: elf32-cris.c:4172 +#: elf32-cris.c:3908 #, c-format msgid " [symbols have a _ prefix]" msgstr " [los símbolos tiene un prefijo _]" -#: elf32-cris.c:4175 +#: elf32-cris.c:3911 #, c-format msgid " [v10 and v32]" msgstr " [v10 y v32]" -#: elf32-cris.c:4178 +#: elf32-cris.c:3914 #, c-format msgid " [v32]" msgstr " [v32]" -#: elf32-cris.c:4223 +#: elf32-cris.c:3958 msgid "%B: uses _-prefixed symbols, but writing file with non-prefixed symbols" -msgstr "%B: se usan símbolos con prefijo _, pero se escribe el fichero con símbolos sin prefijo" +msgstr "%B: se usan símbolos _-prefijo, pero escribiéndo el fichero con símbolos sin prefijo" -#: elf32-cris.c:4224 +#: elf32-cris.c:3959 msgid "%B: uses non-prefixed symbols, but writing file with _-prefixed symbols" -msgstr "%B: se usan símbolos sin prefijo, pero se escribe el fichero con símbolos con prefijo _" +msgstr "%B: se usan símbolos sin prefijo, pero se escribe el fichero con símbolos con _-prefijo" -#: elf32-cris.c:4243 +#: elf32-cris.c:3978 msgid "%B contains CRIS v32 code, incompatible with previous objects" msgstr "%B contiene código CRIS v32, incompatible con objetos previos" -#: elf32-cris.c:4245 +#: elf32-cris.c:3980 msgid "%B contains non-CRIS-v32 code, incompatible with previous objects" msgstr "%B contiene código que no es CRIS v32, incompatible con objetos previos" -#: elf32-dlx.c:142 +#: elf32-crx.c:429 +#, c-format +msgid "%B: unrecognised CRX reloc number: %d" +msgstr "%B: número reubicante CRX no reconocido: %d" + +#: elf32-d10v.c:234 +#, c-format +msgid "%B: invalid D10V reloc number: %d" +msgstr "%B: número reubicante D10V no válido: %d" + +#: elf32-d30v.c:522 elf32-d30v.c:541 +#, c-format +msgid "%B: invalid D30V reloc number: %d" +msgstr "%B: número reubicante D30V no válido: %d" + +#: elf32-dlx.c:141 #, c-format msgid "BFD Link Error: branch (PC rel16) to section (%s) not supported" msgstr "Error de Enlazado BFD: no se admite la ramificación (PC rel16) a la sección (%s)" @@ -1466,515 +2242,896 @@ msgid "BFD Link Error: jump (PC rel26) to section (%s) not supported" msgstr "Error de Enlazado BFD: no se admite el salto (PC rel26) a la sección (%s)" +#: elf32-dlx.c:548 +#, c-format +msgid "Invalid DLX reloc number: %d" +msgstr "Número reubicante DLX no válido: %d" + +#: elf32-epiphany.c:376 +#, c-format +msgid "%B: invalid Epiphany reloc number: %d" +msgstr "%B: número reubicante Epiphany no válido: %d" + #. Only if it's not an unresolved symbol. -#: elf32-epiphany.c:563 elf32-ip2k.c:1475 +#: elf32-epiphany.c:570 elf32-ip2k.c:1482 msgid "unsupported relocation between data/insn address spaces" msgstr "no se admite la reubicación entre espacios de direcciones datos/insn" -#: elf32-frv.c:1509 elf32-frv.c:1658 +#: elf32-fr30.c:381 +#, c-format +msgid "%B: invalid FR30 reloc number: %d" +msgstr "%B: número reubicante FR30 no válido: %d" + +#: elf32-frv.c:1451 elf32-frv.c:1602 msgid "relocation requires zero addend" msgstr "la reubicación requiere una adición cero" -#: elf32-frv.c:2888 +#: elf32-frv.c:2557 +#, c-format +msgid "%B: invalid FRV reloc number: %d" +msgstr "%B: número reubicante FRV no válido: %d" + +#: elf32-frv.c:2823 +#, c-format msgid "%H: relocation to `%s+%v' may have caused the error above\n" msgstr "%H: la reubicación a `%s+%v' tal vez causó el error anterior\n" -#: elf32-frv.c:2905 +#: elf32-frv.c:2840 msgid "%H: relocation references symbol not defined in the module\n" -msgstr "%H: la reubicación referencía un símbolo que no está definido en el módulo\n" +msgstr "%H: la reubicación referencia un símbolo que no está definido en el módulo\n" -#: elf32-frv.c:2981 +#: elf32-frv.c:2916 msgid "%H: R_FRV_GETTLSOFF not applied to a call instruction\n" -msgstr "%H: no se aplicó R_FRV_GETTLSOFF a una instrucción call\n" +msgstr "%H: no aplicado R_FRV_GETTLSOFF a una instrucción call\n" -#: elf32-frv.c:3022 +#: elf32-frv.c:2957 msgid "%H: R_FRV_GOTTLSDESC12 not applied to an lddi instruction\n" -msgstr "%H: no se aplicó R_FRV_GOTTLSDESC12 a una instrucción lddi\n" +msgstr "%H: no aplicado R_FRV_GOTTLSDESC12 a una instrucción lddi\n" -#: elf32-frv.c:3093 +#: elf32-frv.c:3028 msgid "%H: R_FRV_GOTTLSDESCHI not applied to a sethi instruction\n" -msgstr "%H: no se aplicó R_FRV_GOTTLSDESCHI a una instrucción sethi\n" +msgstr "%H: no aplicado R_FRV_GOTTLSDESCHI a una instrucción sethi\n" -#: elf32-frv.c:3130 +#: elf32-frv.c:3065 msgid "%H: R_FRV_GOTTLSDESCLO not applied to a setlo or setlos instruction\n" -msgstr "%H: no se aplicó R_FRV_GOTTLSDESCLO a una instrucción setlo o setlos\n" +msgstr "%H: no aplicado R_FRV_GOTTLSDESCLO a una instrucción setlo o setlos\n" -#: elf32-frv.c:3177 +#: elf32-frv.c:3112 msgid "%H: R_FRV_TLSDESC_RELAX not applied to an ldd instruction\n" -msgstr "%H: no se aplicó R_FRV_GOTTLSDESC_RELAX a una instrucción ldd\n" +msgstr "%H: no aplicado R_FRV_GOTTLSDESC_RELAX a una instrucción ldd\n" -#: elf32-frv.c:3261 +#: elf32-frv.c:3196 msgid "%H: R_FRV_GETTLSOFF_RELAX not applied to a calll instruction\n" -msgstr "%H: no se aplicó R_FRV_GETTLSOFF_RELAX a una instrucción calll\n" +msgstr "%H: no aplicado R_FRV_GETTLSOFF_RELAX a una instrucción calll\n" -#: elf32-frv.c:3315 +#: elf32-frv.c:3250 msgid "%H: R_FRV_GOTTLSOFF12 not applied to an ldi instruction\n" -msgstr "%H: no se aplicó R_FRV_GOTTLSOFF12 a una instrucción ldi\n" +msgstr "%H: no aplicado R_FRV_GOTTLSOFF12 a una instrucción ldi\n" -#: elf32-frv.c:3345 +#: elf32-frv.c:3280 msgid "%H: R_FRV_GOTTLSOFFHI not applied to a sethi instruction\n" -msgstr "%H: no se aplicó R_FRV_GOTTLSOFFHI a una instrucción sethi\n" +msgstr "%H: no aplicado R_FRV_GOTTLSOFFHI a una instrucción sethi\n" -#: elf32-frv.c:3374 +#: elf32-frv.c:3309 msgid "%H: R_FRV_GOTTLSOFFLO not applied to a setlo or setlos instruction\n" -msgstr "%H: no se aplicó R_FRV_GOTTLSOFFLO a una instrucción setlo o setlos\n" +msgstr "%H: no aplicado R_FRV_GOTTLSOFFLO a una instrucción setlo o setlos\n" -#: elf32-frv.c:3404 +#: elf32-frv.c:3339 msgid "%H: R_FRV_TLSOFF_RELAX not applied to an ld instruction\n" -msgstr "%H: no se aplicó R_FRV_TLSOFF_RELAX a una instrucción ld\n" +msgstr "%H: no aplicado R_FRV_TLSOFF_RELAX a una instrucción ld\n" -#: elf32-frv.c:3449 +#: elf32-frv.c:3384 msgid "%H: R_FRV_TLSMOFFHI not applied to a sethi instruction\n" -msgstr "%H: no se aplicó R_FRV_TLSMOFFHI a una instrucción sethi\n" +msgstr "%H: no aplicado R_FRV_TLSMOFFHI a una instrucción sethi\n" -#: elf32-frv.c:3476 +#: elf32-frv.c:3411 msgid "R_FRV_TLSMOFFLO not applied to a setlo or setlos instruction\n" -msgstr "no se aplicó R_FRV_TLSMOFFLO a una instrucción setlo o setlos\n" +msgstr "R_FRV_TLSMOFFLO no aplicado a una instrucción setlo o setlos\n" -#: elf32-frv.c:3597 +#: elf32-frv.c:3532 msgid "%H: R_FRV_FUNCDESC references dynamic symbol with nonzero addend\n" msgstr "%H: R_FRV_FUNCDESC referencía un símbolo dinámico con adición que no es cero\n" -#: elf32-frv.c:3638 elf32-frv.c:3760 +#: elf32-frv.c:3573 elf32-frv.c:3695 msgid "%H: cannot emit fixups in read-only section\n" msgstr "%H: no se pueden emitir composturas en la sección de sólo lectura\n" -#: elf32-frv.c:3669 elf32-frv.c:3803 +#: elf32-frv.c:3604 elf32-frv.c:3738 msgid "%H: cannot emit dynamic relocations in read-only section\n" msgstr "%H: no se pueden emitir reubicaciones dinámicas en la sección de sólo lectura\n" -#: elf32-frv.c:3718 +#: elf32-frv.c:3653 msgid "%H: R_FRV_FUNCDESC_VALUE references dynamic symbol with nonzero addend\n" msgstr "%H: R_FRV_FUNCDESC_VALUE referencía un símbolo dinámico con adición que no es cero\n" -#: elf32-frv.c:3974 +#: elf32-frv.c:3910 +#, c-format msgid "%H: reloc against `%s' references a different segment\n" -msgstr "%H: la reubicación contra `%s' referencía un segmento diferente\n" +msgstr "%H: la reubicación contra «%s» referencía un segmento diferente\n" -#: elf32-frv.c:4124 +#: elf32-frv.c:4061 +#, c-format msgid "%H: reloc against `%s': %s\n" -msgstr "%H: reubicación contra `%s': %s\n" +msgstr "%H: reubicación contra «%s»: %s\n" -#: elf32-frv.c:6400 +#: elf32-frv.c:6255 +#, c-format msgid "%B: unsupported relocation type %i\n" msgstr "%B: no se admite el tipo de reubicación %i\n" -#: elf32-frv.c:6722 +#: elf32-frv.c:6507 #, 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" +msgid "%B: compiled with %s and linked with modules that use non-pic relocations" +msgstr "%B: compilado con %s y enlazado con módulos que usan reubicaciones que no son pic" -#: elf32-frv.c:6775 elf32-iq2000.c:845 elf32-m32c.c:807 +#: elf32-frv.c:6561 elf32-iq2000.c:828 elf32-m32c.c:874 #, 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" +msgid "%B: compiled with %s and linked with modules compiled with %s" +msgstr "%B: compilado con %s y enlazado con módulos compilados con %s" -#: elf32-frv.c:6787 +#: elf32-frv.c:6574 #, 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:6837 elf32-iq2000.c:882 elf32-m32c.c:843 elf32-mt.c:576 -#: elf32-rx.c:3001 -#, c-format -msgid "private flags = 0x%lx:" -msgstr "opciones privadas = 0x%lx:" +msgid "%B: uses different unknown e_flags (%#x) fields than previous modules (%#x)" +msgstr "%B: emplea campos e_flags (%#x) desconocidos diferentes a aquellos de los módulos previos (%#x)" #: elf32-gen.c:69 elf64-gen.c:69 +#, c-format msgid "%B: Relocations in generic ELF (EM: %d)" msgstr "%B: Reubicaciones en ELF genérico (EM: %d)" -#: elf32-hppa.c:850 elf32-hppa.c:3598 -msgid "%B(%A+0x%lx): cannot reach %s, recompile with -ffunction-sections" -msgstr "%B(%A+0x%lx): no se puede alcanzar %s, recompile con -ffuntion-sections" +#: elf32-hppa.c:829 elf32-hppa.c:3499 +#, c-format +msgid "%B(%A+%#Lx): cannot reach %s, recompile with -ffunction-sections" +msgstr "%B(%A+%#Lx): no puede alcanzar %s, recompile con -ffuntion-sections" -#: elf32-hppa.c:1284 +#: elf32-hppa.c:1242 +#, c-format msgid "%B: relocation %s can not be used when making a shared object; recompile with -fPIC" -msgstr "%B: no se puede usar la reubicación %s cuando se hace un objeto compartido; recompile con -fPIC" +msgstr "%B: reubicación %s no puede utilizarse cuando se crea un objeto compartido; recompile con -fPIC" -#: elf32-hppa.c:2791 +#: elf32-hppa.c:2680 +#, c-format msgid "%B: duplicate export stub %s" msgstr "%B: cabo de exportación %s duplicado" -#: elf32-hppa.c:3437 -msgid "%B(%A+0x%lx): %s fixup for insn 0x%x is not supported in a non-shared link" -msgstr "%B(%A+0x%lx): la compostura %s para la insn 0x%x no se admite en un enlazado que no es compartido" - -#: elf32-hppa.c:4284 -msgid "%B(%A+0x%lx): cannot handle %s for %s" -msgstr "%B(%A+0x%lx): no se puede manejar %s para %s" +#: elf32-hppa.c:3333 +#, c-format +msgid "%B(%A+%#Lx): %s fixup for insn %#x is not supported in a non-shared link" +msgstr "%B(%A+%#Lx): compostura %s para insn %#x no se admite en un enlace no compartido" + +#: elf32-hppa.c:4124 +#, c-format +msgid "%s has both normal and TLS relocs" +msgstr "%s tiene ambas reubicaciones normal y TLS" + +#: elf32-hppa.c:4142 +msgid "%B:%s has both normal and TLS relocs" +msgstr "%B:%s tiene ambas reubicaciones normal y TLS" + +#: elf32-hppa.c:4201 +#, c-format +msgid "%B(%A+%#Lx): cannot handle %s for %s" +msgstr "%B(%A+%#Lx): no puede manipular %s para %s" -#: elf32-hppa.c:4603 +#: elf32-hppa.c:4505 msgid ".got section not immediately after .plt section" msgstr "la sección .got no está inmediatamente después de la sección .plt" +#: elf32-i370.c:307 +#, c-format +msgid "%B: unrecognised I370 reloc number: %d" +msgstr "%B: número reubicante I370 no reconocido: %d" + +#: elf32-i370.c:1164 +msgid "%B: unknown relocation type %d for symbol %s" +msgstr "%B: tipo de reubicación %d desconocida para el símbolo %s" + +#: elf32-i370.c:1306 +#, c-format +msgid "%B: Relocation %s is not yet supported for symbol %s." +msgstr "%B: reubicación %s aún no se admite para el símbolo %s." + #. Unknown relocation. -#: elf32-i386.c:373 elf32-m68k.c:384 elf32-ppc.c:1676 elf32-s390.c:379 -#: elf32-tic6x.c:2684 elf64-ppc.c:2300 elf64-s390.c:403 elf64-x86-64.c:265 +#: elf32-i386.c:384 elf32-m68k.c:352 elf32-ppc.c:2039 elf32-s390.c:346 +#: elf32-tic6x.c:2609 elf32-wasm32.c:106 elf64-ppc.c:2516 elf64-s390.c:373 +#: elf64-x86-64.c:285 +#, c-format msgid "%B: invalid relocation type %d" msgstr "%B: tipo de reubicación %d inválido" -#: elf32-i386.c:1404 elf64-x86-64.c:1308 -msgid "%B: TLS transition from %s to %s against `%s' at 0x%lx in section `%A' failed" -msgstr "%B: falló la transición TLS de %s para %s contra `%s' en 0x%lx en la sección `%A'" +#: elf32-i386.c:1159 elf64-x86-64.c:1335 +#, c-format +msgid "%B: TLS transition from %s to %s against `%s' at %#Lx in section `%A' failed" +msgstr "%B: transición TLS desde %s hasta %s contra «%s» en %#Lx en la sección `%A' fallada" -#: elf32-i386.c:1549 elf32-i386.c:3244 elf64-x86-64.c:1487 elf64-x86-64.c:3125 -#: elfxx-sparc.c:3083 -msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s" -msgstr "%B: la reubicación %s contra el símbolo STT_GNU_IFUNC `%s' no es manejada por %s" +#: elf32-i386.c:1250 +#, c-format +msgid "%B: direct GOT relocation R_386_GOT32X against `%s' without base register can not be used when making a shared object" +msgstr "%B: reubicación GOT directa R_386_GOT32X contra «%s» sin registrador base no puede ser empleado cuando cree un objeto compartido" -#: elf32-i386.c:1711 elf32-s390.c:1182 elf32-sh.c:6362 elf32-tilepro.c:1434 -#: elf32-xtensa.c:1182 elf64-s390.c:1151 elfxx-sparc.c:1548 -#: elfxx-tilegx.c:1701 +#: elf32-i386.c:1703 elf32-s390.c:1184 elf32-sh.c:6057 elf32-tilepro.c:1584 +#: elf32-xtensa.c:1192 elf64-s390.c:1113 elfxx-sparc.c:1601 +#: elfxx-tilegx.c:1793 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:427 +#, c-format msgid "%B: `%s' accessed both as normal and thread local symbol" -msgstr "%B: se accedió `%s' como un símbolo normal y un símbolo local de hilo" +msgstr "%B: se accedió «%s» como un símbolo normal y un símbolo local de hilo" + +#: elf32-i386.c:1767 +#, c-format +msgid "%B: unsupported non-PIC call to IFUNC `%s'" +msgstr "%B: llamada no-PIC a IFUNC «%s» sin apoyo" -#: elf32-i386.c:2539 elf64-x86-64.c:2506 -msgid "%P: %B: warning: relocation against `%s' in readonly section `%A'.\n" -msgstr "%P: %B: aviso: reubicación contra `%s' en la sección de sólo lectura `%A'.\n" +#: elf32-i386.c:2345 elf64-x86-64.c:2625 +#, c-format +msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't supported" +msgstr "%B: reubicación %s frente al símbolo STT_GNU_IFUNC «%s» no está apoyado" -#: elf32-i386.c:2629 elf64-x86-64.c:2593 -msgid "%P: %B: warning: relocation in readonly section `%A'.\n" -msgstr "%P: %B: aviso: reubicación en la sección de sólo lectura `%A'.\n" +#: elf32-i386.c:2378 elf32-i386.c:3684 elf32-i386.c:3823 elf64-x86-64.c:2682 +#: elf64-x86-64.c:4012 elf64-x86-64.c:4166 +msgid "Local IFUNC function `%s' in %B\n" +msgstr "Función local IFUNC «%s» dentro de %B\n" -#: elf32-i386.c:3086 elf32-tilepro.c:2557 elfxx-tilegx.c:2871 -msgid "%B: unrecognized relocation (0x%x) in section `%A'" -msgstr "%B: no se reconoce la dirección de reubicación (0x%lx) en la sección `%A'" +#: elf32-i386.c:2593 +#, c-format +msgid "%B: direct GOT relocation %s against `%s' without base register can not be used when making a shared object" +msgstr "%B: reubicación GOT directa %s frente a «%s» sin registro base no puede ser empleado cuando se crea un objeto compartido" -#: elf32-i386.c:3494 elf64-x86-64.c:3513 +#: elf32-i386.c:2628 elf64-x86-64.c:2873 msgid "hidden symbol" msgstr "símbolo oculto" -#: elf32-i386.c:3497 elf64-x86-64.c:3516 +#: elf32-i386.c:2631 elf64-x86-64.c:2876 msgid "internal symbol" msgstr "símbolo interno" -#: elf32-i386.c:3500 elf64-x86-64.c:3519 +#: elf32-i386.c:2634 elf64-x86-64.c:2879 msgid "protected symbol" msgstr "símbolo protegido" -#: elf32-i386.c:3503 elf64-x86-64.c:3522 +#: elf32-i386.c:2637 elf64-x86-64.c:2882 msgid "symbol" msgstr "símbolo" -#: elf32-i386.c:3508 +#: elf32-i386.c:2643 +#, c-format msgid "%B: relocation R_386_GOTOFF against undefined %s `%s' can not be used when making a shared object" -msgstr "%B: no se puede usar la reubicación R_386_GOTOFF contra %s indefinida `%s' cuando se hace un objeto compartido" +msgstr "%B: no se puede usar la reubicación R_386_GOTOFF contra %s indefinida «%s» cuando se hace un objeto compartido" -#: elf32-i386.c:3518 -msgid "%B: relocation R_386_GOTOFF against protected function `%s' can not be used when making a shared object" -msgstr "%B: no se puede usar la reubicación R_386_GOTOFF contra la función protegida `%s' cuando se hace un objeto compartido" +#: elf32-i386.c:2656 +#, c-format +msgid "%B: relocation R_386_GOTOFF against protected %s `%s' can not be used when making a shared object" +msgstr "%B: reubicación R_386_GOTOFF contra %s protegida «%s» no puede ser utilizada cuando crea un objeto compartido" -#: elf32-i386.c:4839 elf32-tilepro.c:3467 elf64-x86-64.c:4609 -#: elfxx-tilegx.c:3847 +#: elf32-i960.c:140 #, c-format -msgid "discarded output section: `%A'" -msgstr "se descarta la sección de salida: `%A'" +msgid "%B: invalid i960 reloc number: %d" +msgstr "%B: número reubicante i960 no válido: %d" -#: elf32-ip2k.c:857 elf32-ip2k.c:863 elf32-ip2k.c:930 elf32-ip2k.c:936 +#: elf32-ip2k.c:856 elf32-ip2k.c:862 elf32-ip2k.c:929 elf32-ip2k.c:935 msgid "ip2k relaxer: switch table without complete matching relocation information." -msgstr "relajador ip2k: tabla switch sin información completa de reubicación de coincidencias." +msgstr "ip2k relajante: intercambio de segmento sin información completa de reubicación de coincidencias." -#: elf32-ip2k.c:880 elf32-ip2k.c:963 +#: elf32-ip2k.c:879 elf32-ip2k.c:962 msgid "ip2k relaxer: switch table header corrupt." -msgstr "relajador ip2k: encabezado de tabla switch corrupto." +msgstr "ip2k relajante: encabezado de segmento switch corrupto." + +#: elf32-ip2k.c:1245 +#, c-format +msgid "%B: invalid IP2K reloc number: %d" +msgstr "%B: número reubicante IP2K no válido: %d" + +#: elf32-ip2k.c:1298 +#, c-format +msgid "ip2k linker: missing page instruction at %#Lx (dest = %#Lx)" +msgstr "ip2k enlazante: instrucción de página ausente en %#Lx (dest = %#Lx)" -#: elf32-ip2k.c:1292 +#: elf32-ip2k.c:1315 #, c-format -msgid "ip2k linker: missing page instruction at 0x%08lx (dest = 0x%08lx)." -msgstr "enlazador ip2k: falta la instrucción de página en 0x%08lx (dest = 0x%08lx)." +msgid "ip2k linker: redundant page instruction at %#Lx (dest = %#Lx)" +msgstr "ip2k enlazante: instrucción de página redundante en %#Lx (dest = %#Lx)" -#: elf32-ip2k.c:1308 +#: elf32-iq2000.c:441 #, 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)." +msgid "%B: invalid IQ2000 reloc number: %d" +msgstr "%B: número reubicante IQ2000 no válido: %d" -#: elf32-iq2000.c:858 elf32-m32c.c:819 +#: elf32-lm32.c:539 #, 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)" +msgid "%B: invalid LM32 reloc number: %d" +msgstr "%B: número reubicante LM32 no válido: %d" -#: elf32-lm32.c:706 +#: elf32-lm32.c:648 elf32-nios2.c:3133 msgid "global pointer relative relocation when _gp not defined" msgstr "reubicación relativa al puntero global cuando _gp no está definido" -#: elf32-lm32.c:761 +#: elf32-lm32.c:703 elf32-nios2.c:3570 msgid "global pointer relative address out of range" msgstr "dirección relativa al puntero global fuera de rango" -#: elf32-lm32.c:1057 +#: elf32-lm32.c:998 msgid "internal error: addend should be zero for R_LM32_16_GOT" -msgstr "error interno: addend debe ser cero para R_LM32_16_GOT" +msgstr "error interno: addend debería ser cero para R_LM32_16_GOT" + +#: elf32-m32c.c:306 +#, c-format +msgid "%B: invalid M32C reloc number: %d" +msgstr "%B: número reubicante M32C no válido: %d" + +#: elf32-m32r.c:1286 +#, c-format +msgid "%B: invalid M32R reloc number: %d" +msgstr "%B: número reubicante M32R no válido: %d" -#: elf32-m32r.c:1453 +#: elf32-m32r.c:1458 msgid "SDA relocation when _SDA_BASE_ not defined" -msgstr "reubicación SDA cuando _SDA_BASE_ no está definido" +msgstr "SDA reubicable cuando _SDA_BASE_ no está definido" -#: elf32-m32r.c:3043 +#: elf32-m32r.c:2971 elf32-microblaze.c:1064 elf32-microblaze.c:1112 +#, c-format msgid "%B: The target (%s) of an %s relocation is in the wrong section (%A)" -msgstr "%B: El objetivo (%s) de una reubicación %s está en la sección errónea (%A)" +msgstr "%B: El objetivo (%s) de una reubicación %s está en la sección equivocada (%A)" -#: elf32-m32r.c:3571 +#: elf32-m32r.c:3473 msgid "%B: Instruction set mismatch with previous modules" -msgstr "%B: El conjunto de instrucciones no coincide con módulos previos" +msgstr "%B: Conjunto de instrucciones no coincide con módulos previos" -#: elf32-m32r.c:3592 +#: elf32-m32r.c:3494 elf32-nds32.c:6037 #, c-format msgid "private flags = %lx" msgstr "opciones privadas = %lx" -#: elf32-m32r.c:3597 +#: elf32-m32r.c:3499 #, c-format msgid ": m32r instructions" msgstr ": instrucciones m32r" -#: elf32-m32r.c:3598 +#: elf32-m32r.c:3500 #, c-format msgid ": m32rx instructions" msgstr ": instrucciones m32rx" -#: elf32-m32r.c:3599 +#: elf32-m32r.c:3501 #, c-format msgid ": m32r2 instructions" msgstr ": instrucciones m32r2" -#: elf32-m68hc1x.c:1050 +#: elf32-m68hc11.c:390 +#, c-format +msgid "%B: invalid M68HC11 reloc number: %d" +msgstr "%B: número reubicante M68HC11 no válido: %d" + +#: elf32-m68hc12.c:510 +#, c-format +msgid "%B: invalid M68HC12 reloc number: %d" +msgstr "%B: número reubicante M68HC12 no válido: %d" + +#: elf32-m68hc1x.c:1115 #, c-format msgid "Reference to the far symbol `%s' using a wrong relocation may result in incorrect execution" -msgstr "El referenciar al símbolo far `%s' usando una reubicación incorrecta puede resultar en una ejecución incorrecta" +msgstr "El referenciar al símbolo far «%s» usando una reubicación incorrecta puede resultar en una ejecución incorrecta" -#: elf32-m68hc1x.c:1073 +#: elf32-m68hc1x.c:1149 +#, c-format +msgid "XGATE address (%lx) is not within shared RAM(0xE000-0xFFFF), therefore you must manually offset the address, and possibly manage the page, in your code." +msgstr "Dirección XGATE (%lx) no está dentro de RAM(0xE000-0xFFFF) compartida, por lo que debe desplazar manualmente la dirección, y posiblemente la página, en su código." + +#: elf32-m68hc1x.c:1167 #, 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:1092 +#: elf32-m68hc1x.c:1183 #, 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:1225 +#: elf32-m68hc1x.c:1224 +#, c-format +msgid "S12 address (%lx) is not within shared RAM(0x2000-0x4000), therefore you must manually offset the address in your code" +msgstr "Dirección S12 (%lx) no está dentro de RAM(0x2000-0x4000) compartida, por lo tanto debe desplazar manualmente la dirección dentro de su código" + +#: elf32-m68hc1x.c:1351 msgid "%B: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers" msgstr "%B: se enlazan ficheros compilados con enteros de 16-bit (-mshort) y otros con enteros de 32-bit" -#: elf32-m68hc1x.c:1232 +#: elf32-m68hc1x.c:1358 msgid "%B: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double" msgstr "%B: se enlazan ficheros compilados con dobles de 32-bit (-fshort-double) y otros con dobles de 64-bit" -#: elf32-m68hc1x.c:1241 +#: elf32-m68hc1x.c:1367 msgid "%B: linking files compiled for HCS12 with others compiled for HC12" msgstr "%B: se enlazan ficheros compilados para HCS12, con otros compilados para HC12" -#: elf32-m68hc1x.c:1257 elf32-ppc.c:4227 elf64-sparc.c:706 elfxx-mips.c:13965 -msgid "%B: uses different e_flags (0x%lx) fields than previous modules (0x%lx)" -msgstr "%B: usa campos de e_flags diferentes (0x%lx) que los módulos previos (0x%lx)" - -#: elf32-m68hc1x.c:1285 +#: elf32-m68hc1x.c:1412 elf32-xgate.c:672 #, c-format msgid "[abi=32-bit int, " -msgstr "[abi=int de 32-bit, " +msgstr "[abi=32-bit ent, " -#: elf32-m68hc1x.c:1287 +#: elf32-m68hc1x.c:1414 elf32-xgate.c:674 #, c-format msgid "[abi=16-bit int, " -msgstr "[abi=int de 16-bit, " +msgstr "[abi=16-bit ent, " -#: elf32-m68hc1x.c:1290 +#: elf32-m68hc1x.c:1417 elf32-xgate.c:677 #, c-format msgid "64-bit double, " msgstr "doble de 64-bit, " -#: elf32-m68hc1x.c:1292 +#: elf32-m68hc1x.c:1419 elf32-xgate.c:679 #, c-format msgid "32-bit double, " msgstr "doble de 32-bit, " -#: elf32-m68hc1x.c:1295 +#: elf32-m68hc1x.c:1422 #, c-format msgid "cpu=HC11]" msgstr "cpu=HC11]" -#: elf32-m68hc1x.c:1297 +#: elf32-m68hc1x.c:1424 #, c-format msgid "cpu=HCS12]" msgstr "cpu=HCS12]" -#: elf32-m68hc1x.c:1299 +#: elf32-m68hc1x.c:1426 #, c-format msgid "cpu=HC12]" msgstr "cpu=HC12]" -#: elf32-m68hc1x.c:1302 +#: elf32-m68hc1x.c:1429 #, c-format msgid " [memory=bank-model]" msgstr " [memoria=modelo de bancos]" -#: elf32-m68hc1x.c:1304 +#: elf32-m68hc1x.c:1431 #, c-format msgid " [memory=flat]" msgstr " [memoria=plana]" -#: elf32-m68k.c:1251 elf32-m68k.c:1252 vms-alpha.c:7314 vms-alpha.c:7329 +#: elf32-m68hc1x.c:1434 +#, c-format +msgid " [XGATE RAM offsetting]" +msgstr " [XGATE retirando RAM]" + +#: elf32-m68k.c:1214 elf32-m68k.c:1215 vms-alpha.c:7477 vms-alpha.c:7493 msgid "unknown" msgstr "desconocido" -#: elf32-m68k.c:1715 +#: elf32-m68k.c:1658 +#, c-format msgid "%B: GOT overflow: Number of relocations with 8-bit offset > %d" msgstr "%B: desbordamiento de GOT: Número de reubicaciones con desplazamiento de 8-bit > %d" -#: elf32-m68k.c:1721 +#: elf32-m68k.c:1665 +#, c-format msgid "%B: GOT overflow: Number of relocations with 8- or 16-bit offset > %d" msgstr "%B: desbordamiento de GOT: Número de reubicaciones con desplazamiento de 8 o 16-bit > %d" -#: elf32-m68k.c:3957 -msgid "%B(%A+0x%lx): R_68K_TLS_LE32 relocation not permitted in shared object" -msgstr "%B(%A+0x%lx): la reubicación R_68K_TLS_LE32 no se permite en objetos compartidos" - -#: elf32-mcore.c:99 elf32-mcore.c:442 +#: elf32-mcore.c:100 elf32-mcore.c:455 +#, c-format msgid "%B: Relocation %s (%d) is not currently supported.\n" msgstr "%B: Actualmente no se admite la reubicación %s (%d).\n" -#: elf32-mcore.c:428 +#: elf32-mcore.c:355 +#, c-format +msgid "%B: unrecognised MCore reloc number: %d" +msgstr "%B: número reubicante MCore no reconocido: %d" + +#: elf32-mcore.c:440 +#, c-format msgid "%B: Unknown relocation type %d\n" msgstr "%B: Tipo de reubicación %d desconocido\n" #. Pacify gcc -Wall. -#: elf32-mep.c:157 +#: elf32-mep.c:139 #, c-format msgid "mep: no reloc for code %d" msgstr "mep: no hay reubicación para el código %d" -#: elf32-mep.c:163 +#: elf32-mep.c:146 #, c-format msgid "MeP: howto %d has type %d" -msgstr "MeP: howto %d tiene el tipo %d" +msgstr "MeP: para que %d tenga tipo %d" + +#: elf32-mep.c:390 +#, c-format +msgid "%B: invalid MEP reloc number: %d" +msgstr "%B: número reubicante MEP no válido: %d" -#: elf32-mep.c:648 +#: elf32-mep.c:620 +#, c-format msgid "%B and %B are for different cores" msgstr "%B y %B son para núcleos diferentes" -#: elf32-mep.c:665 +#: elf32-mep.c:639 +#, c-format msgid "%B and %B are for different configurations" msgstr "%B y %B son para configuraciones diferentes" -#: elf32-mep.c:702 +#: elf32-mep.c:677 #, c-format msgid "private flags = 0x%lx" -msgstr "opciones privadas = 0x%lx" +msgstr "marcas privadas = 0x%lx" -#: elf32-microblaze.c:742 +#: elf32-metag.c:878 #, c-format -msgid "%s: unknown relocation type %d" -msgstr "%s: tipo de reubicación %d desconocido" +msgid "%B: invalid METAG reloc number: %d" +msgstr "%B: número reubicante METAG no válido: %d" + +#: elf32-metag.c:1860 +msgid "%B(%A): multiple TLS models are not supported" +msgstr "%B(%A): múltiples modelos TLS no están apoyados" + +#: elf32-metag.c:1863 +msgid "%B(%A): shared library symbol %s encountered whilst performing a static link" +msgstr "%B(%A): símbolo de biblioteca compartido %s encontrado mientras efectuaba un enlace estático" -#: elf32-microblaze.c:867 elf32-microblaze.c:912 +#: elf32-microblaze.c:656 #, 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)" +msgid "%B: unrecognised MicroBlaze reloc number: %d" +msgstr "%B: número reubicante MicroBlaze no reconocido: %d" -#: elf32-microblaze.c:1155 elf32-tilepro.c:2891 elfxx-sparc.c:3457 -#: elfxx-tilegx.c:3230 +#: elf32-microblaze.c:1482 elf32-or1k.c:1052 elf32-tilepro.c:3147 +#: elfxx-sparc.c:3537 elfxx-tilegx.c:3531 msgid "%B: probably compiled without -fPIC?" msgstr "%B: ¿Compilado probablemente sin -fPIC?" -#: elf32-microblaze.c:2074 -msgid "%B: bad relocation section name `%s'" -msgstr "%B: nombre de sección de reubicación `%s' erróneo" - -#: elf32-mips.c:1549 elf64-mips.c:2683 elfn32-mips.c:2487 +#: elf32-mips.c:1777 elf64-mips.c:3200 elfn32-mips.c:3014 msgid "literal relocation occurs for an external symbol" msgstr "la reubicación literal sucede para un símbolo externo" -#: elf32-mips.c:1596 elf32-score.c:570 elf32-score7.c:469 elf64-mips.c:2726 -#: elfn32-mips.c:2528 +#: elf32-mips.c:1824 elf32-score.c:569 elf32-score7.c:469 elf64-mips.c:3243 +#: elfn32-mips.c:3055 msgid "32bits gp relative relocation occurs for an external symbol" msgstr "la reubicación relativa a gp de 32bits sucede para un símbolo externo" -#: elf32-ppc.c:1741 +#: elf32-mips.c:2225 #, c-format -msgid "generic linker can't handle %s" -msgstr "el enlazador genérico no puede manejar %s" +msgid "Unrecognised MIPS reloc number: %d" +msgstr "Número reubicante MIPS no reconocido: %d" -#: elf32-ppc.c:2184 -msgid "corrupt %s section in %B" -msgstr "sección %s corrupta en %B" +#: elf32-moxie.c:137 +#, c-format +msgid "%B: invalid Moxie reloc number: %d" +msgstr "%B: número reubicante Moxie no válido: %d" -#: elf32-ppc.c:2203 -msgid "unable to read in %s section from %B" -msgstr "no se puede leer en la sección %s desde %B" +#: elf32-msp430.c:648 +#, c-format +msgid "%B: invalid MSP430X reloc number: %d" +msgstr "%B: número reubicante MSP430X no válido: %d" -#: elf32-ppc.c:2244 -msgid "warning: unable to set size of %s section in %B" -msgstr "aviso: no se puede establecer el tamaño de la sección %s en %B" +#: elf32-msp430.c:658 +#, c-format +msgid "%B: invalid MSP430 reloc number: %d" +msgstr "%B: número reubicante MSP430 no válido: %d" -#: elf32-ppc.c:2294 -msgid "failed to allocate space for new APUinfo section." -msgstr "no se puede reservar espacio para la nueva sección APUinfo." +#: elf32-msp430.c:832 elf32-msp430.c:1146 +msgid "Try enabling relaxation to avoid relocation truncations" +msgstr "Intente activando relajación para evitar truncaciones reubicantes" -#: elf32-ppc.c:2313 -msgid "failed to compute new APUinfo section." -msgstr "no se puede calcular la nueva sección APUinfo." +#: elf32-msp430.c:1353 +msgid "internal error: branch/jump to an odd address detected" +msgstr "error interno: rama/omisión a una dirección par detectada" -#: elf32-ppc.c:2316 -msgid "failed to install new APUinfo section." -msgstr "no se puede instalar la nueva sección APUinfo." +#: elf32-msp430.c:2352 +#, c-format +msgid "Warning: %B: Unknown MSPABI object attribute %d" +msgstr "Aviso: %B: Atributo desconocido de objeto MSPABI %d" + +#: elf32-msp430.c:2445 +#, c-format +msgid "error: %B uses %s instructions but %B uses %s" +msgstr "error: %B utiliza %s instrucciones pero %B emplea %s" + +#: elf32-msp430.c:2457 +#, c-format +msgid "error: %B uses the %s code model whereas %B uses the %s code model" +msgstr "error: %B utiliza el modelo de código %s mientras que %B utiliza el modelo de código %s" + +#: elf32-msp430.c:2469 +#, c-format +msgid "error: %B uses the large code model but %B uses MSP430 instructions" +msgstr "error: %B utiliza el modelo de código grande pero %B solo emplea instrucciones MSP430" + +#: elf32-msp430.c:2480 +#, c-format +msgid "error: %B uses the %s data model whereas %B uses the %s data model" +msgstr "error: %B utiliza el modelo de datos %s mientras que %B utiliza el modelo de datos %s" + +#: elf32-msp430.c:2492 +#, c-format +msgid "error: %B uses the small code model but %B uses the %s data model" +msgstr "error: %B utiliza el modelo de código pequeño pero %B emplea el modelo de datos %s" + +#: elf32-msp430.c:2504 +#, c-format +msgid "error: %B uses the %s data model but %B only uses MSP430 instructions" +msgstr "error: %B utiliza el modelo de datos %s pero %B solo emplea instrucciones MSP430" + +#: elf32-mt.c:242 +#, c-format +msgid "%B: invalid MT reloc number: %d" +msgstr "%B: número reubicante MT no válido: %d" + +#: elf32-nds32.c:2897 +#, c-format +msgid "%B: invalid NDS32 reloc number: %d" +msgstr "%B: número reubicante NDS32 no válido: %d" + +#: elf32-nds32.c:3232 +msgid "error: Can't find symbol: _SDA_BASE_." +msgstr "error: no puede encontrar símbolo: __SDA_BASE_." + +#: elf32-nds32.c:4410 elf32-nds32.c:11783 +msgid "%B: error: Cannot set _ITB_BASE_" +msgstr "%B: error: no puede establecer _ITB_BASE_" + +#: elf32-nds32.c:4418 +msgid "error: IFC relocation error." +msgstr "error: reubicación IFC errónea." + +#: elf32-nds32.c:4452 +#, c-format +msgid "%B: error: unknown relocation type %d." +msgstr "%B: error: tipo reubicante %d desconocido." + +#: elf32-nds32.c:4898 +msgid "%B: warning: cannot deal R_NDS32_25_ABS_RELA in shared mode." +msgstr "%B: aviso: se crea un R_NDS32_25_ABS_RELA en un objeto compartido." + +#: elf32-nds32.c:5032 +msgid "%B: warning: unaligned access to GOT entry." +msgstr "%B: aviso: acceso no alineado a la entrada GOT." + +#: elf32-nds32.c:5074 +msgid "%B: warning: relocate SDA_BASE failed." +msgstr "%B: aviso: reubicación SDA_BASE fallada." + +#: elf32-nds32.c:5096 +#, c-format +msgid "%B(%A): warning: unaligned small data access of type %d." +msgstr "%B(%A): aviso: acceso sin alinear al símbolo «%s» en el área de datos small." + +#: elf32-nds32.c:5844 +#, c-format +msgid "%B: ISR vector size mismatch with previous modules, previous %u-byte, current %u-byte" +msgstr "%B: tamaño de vector ISR no coincide con módulos previos, previos %u-byte, actual %u-byte" + +#: elf32-nds32.c:5888 +msgid "%B: warning: Endian mismatch with previous modules." +msgstr "%B: aviso: Coincidencia endian con módulos previos." + +#: elf32-nds32.c:5898 +msgid "%B: warning: Older version of object file encountered, Please recompile with current tool chain." +msgstr "%B: aviso: versión de fichero objeto anterior encontrado, por favor recompile con la cadena de herramientas actuales." + +#: elf32-nds32.c:5976 +msgid "%B: error: ABI mismatch with previous modules." +msgstr "%B: error: ABI no coincide con módulos previos." + +#: elf32-nds32.c:5987 +msgid "%B: error: Instruction set mismatch with previous modules." +msgstr "%B: error: conjunto de instrucciones no coincide con módulos previos." + +#: elf32-nds32.c:6013 +#, c-format +msgid "%B: warning: Incompatible elf-versions %s and %s." +msgstr "%B: aviso: versiones elf incompatibles %s y %s." + +#: elf32-nds32.c:6043 +#, c-format +msgid ": n1 instructions" +msgstr ": instrucciones ni" + +#: elf32-nds32.c:6046 +#, c-format +msgid ": n1h instructions" +msgstr ": instrucciones n1h" + +#: elf32-nds32.c:8535 +msgid "%B: Error: search_nds32_elf_blank reports wrong node\n" +msgstr "%B: Error: search_nds32_elf_blank devuelve nodo equivocado\n" + +#: elf32-nds32.c:8794 +#, c-format +msgid "%B: warning: %s points to unrecognized reloc at %#Lx" +msgstr "%B: aviso: %s apunta a reloc no reconocido en %#Lx" -#: elf32-ppc.c:3356 +#: elf32-nds32.c:11655 elf32-nds32.c:11672 +msgid "error: Jump IFC Fail." +msgstr "error: reubicación IFC fallada." + +#: elf32-nds32.c:12529 +#, c-format +msgid "%B: Nested OMIT_FP in %A." +msgstr "%B: OMIT_FP anidado en %A." + +#: elf32-nds32.c:12548 +#, c-format +msgid "%B: Unmatched OMIT_FP in %A." +msgstr "%B: OMIT_FP desemparejado en %A." + +#: elf32-nds32.c:12831 reloc.c:8273 +#, c-format +msgid "%X%P: %B(%A): relocation \"%R\" goes out of range\n" +msgstr "%X%P: %B(%A): reubicación «%R» sale del rango\n" + +#: elf32-nds32.c:14607 +msgid "Linker: cannot init ex9 hash table error \n" +msgstr "Enlazador: error de tabla hash no puede iniciar ex9\n" + +#: elf32-nds32.c:15016 elf32-nds32.c:15030 +msgid "Linker: error cannot fixed ex9 relocation \n" +msgstr "Enlazador: error no solucionado ex9 reubicado \n" + +#: elf32-nds32.c:15241 +#, c-format +msgid "%B: warning: unaligned small data access for entry: {%Ld, %Ld, %Ld}, addr = %#Lx, align = %#x" +msgstr "%B: aviso: acceso de datos pequeño desalineados para entradas: {%Ld, %Ld, %Ld}, direc = %#Lx, alineam = %#x" + +#: elf32-nds32.c:15274 +#, c-format +msgid "failed creating ex9.it %s hash table entry" +msgstr "fallaba al crear ex9.it %s asiento de tabla hash" + +#: elf32-nios2.c:2929 +msgid "error: %B: Big-endian R2 is not supported." +msgstr "error: %B: Big-endian R2 no está apoyado." + +#: elf32-nios2.c:3814 +#, c-format +msgid "global pointer relative relocation at address 0x%08x when _gp not defined\n" +msgstr "reubicación relativa al puntero global en dirección 0x%08x cuando _gp no está definido\n" + +#: elf32-nios2.c:3834 +#, c-format +msgid "Unable to reach %s (at 0x%08x) from the global pointer (at 0x%08x) because the offset (%d) is out of the allowed range, -32678 to 32767.\n" +msgstr "Incapaz de alcanzar %s (en 0x%08x) desde el puntero global (en 0x%08x) porque el desplazamiento (%d) está fuera del rango permitido, -32678 a 32767.\n" + +#: elf32-nios2.c:4487 elf32-pru.c:816 +msgid "relocation out of range" +msgstr "reubicación fuera de rango" + +#: elf32-nios2.c:4497 elf32-pru.c:826 elf32-tic6x.c:2682 +msgid "dangerous relocation" +msgstr "reubicación peligrosa" + +#: elf32-nios2.c:5370 +#, c-format +msgid "dynamic variable `%s' is zero size" +msgstr "la variable dinámica «%s» es de tamaño cero" + +#: elf32-or1k.c:715 +#, c-format +msgid "%B: invalid OR1K reloc number: %d" +msgstr "%B: número reubicante OR1K no válido: %d" + +#: elf32-or1k.c:965 +msgid "internal error: addend should be zero for R_OR1K_GOT16" +msgstr "error interno: addend debería ser cero para R_OR1K_GOT16" + +#: elf32-or1k.c:1074 +msgid "%B: support for local dynamic not implemented" +msgstr "%B: apoyo para dinámico local no implementado" + +#: elf32-or1k.c:1209 +msgid "%B: will not resolve runtime TLS relocation" +msgstr "%B: no resolverá reubicación TLS en tiempo de ejecución" + +#: elf32-or1k.c:1529 +#, c-format +msgid "%B: bad relocation section name `%s'" +msgstr "%B: equivocado nombre seccional de reubicación «%s»" + +#: elf32-or1k.c:2641 +msgid "%B: EF_OR1K_NODELAY flag mismatch with previous modules" +msgstr "%B: marca EF_OR1K_NODELAY no coincide con los módulos previos" + +#: elf32-pj.c:325 +#, c-format +msgid "%B: unrecognised PicoJava reloc number: %d" +msgstr "%B: número reubicante PicoJava no reconocido: %d" + +#: elf32-ppc.c:2027 +#, c-format +msgid "%B: unrecognised PPC reloc number: %d" +msgstr "%B: número reubicante PPC no reconocido: %d" + +#: elf32-ppc.c:2112 +#, c-format +msgid "generic linker can't handle %s" +msgstr "el enlazador genérico no puede manipular %s" + +#: elf32-ppc.c:2732 +#, c-format +msgid "corrupt %s section in %B" +msgstr "sección %s corrupta en %B" + +#: elf32-ppc.c:2752 +#, c-format +msgid "unable to read in %s section from %B" +msgstr "no se puede leer en la sección %s desde %B" + +#: elf32-ppc.c:2794 +#, c-format +msgid "warning: unable to set size of %s section in %B" +msgstr "aviso: no se puede establecer el tamaño de la sección %s en %B" + +#: elf32-ppc.c:2844 +msgid "failed to allocate space for new APUinfo section." +msgstr "fallaba al reservar espacio para la nueva sección APUinfo." + +#: elf32-ppc.c:2863 +msgid "failed to compute new APUinfo section." +msgstr "fallaba al calcular la nueva sección APUinfo." + +#: elf32-ppc.c:2866 +msgid "failed to install new APUinfo section." +msgstr "no se puede instalar la nueva sección APUinfo." + +#: elf32-ppc.c:3915 +#, c-format msgid "%B: relocation %s cannot be used when making a shared object" -msgstr "%B: no se puede usar la reubicación %s cuando se hace un objeto compartido" +msgstr "%B: reubicación %s no puede utilizarse cuando se crea un objeto compartido" -#. It does not make sense to have a procedure linkage -#. table entry for a local symbol. -#: elf32-ppc.c:3700 -msgid "%P: %H: %s reloc against local symbol\n" -msgstr "%P: %H: reubicación %s contra un símbolo local\n" +#: elf32-ppc.c:4266 elf64-ppc.c:5597 +#, c-format +msgid "%H: %s reloc against local symbol\n" +msgstr "%H: %s reubica frente al símbolo local\n" -#: elf32-ppc.c:4039 elf32-ppc.c:4054 elfxx-mips.c:13651 elfxx-mips.c:13677 -#: elfxx-mips.c:13699 elfxx-mips.c:13725 +#: elf32-ppc.c:4628 elf32-ppc.c:4632 +#, c-format msgid "Warning: %B uses hard float, %B uses soft float" -msgstr "Aviso: %B usa coma flotante hard, %B usa coma flotante soft" +msgstr "Aviso: %B emplea coma flotante hard, %B emplea coma flotante soft" -#: elf32-ppc.c:4042 elf32-ppc.c:4046 +#: elf32-ppc.c:4636 elf32-ppc.c:4641 +#, c-format msgid "Warning: %B uses double-precision hard float, %B uses single-precision hard float" -msgstr "Aviso: %B usa coma flotante hard de doble precisión, %B usa coma flotante hard de precisión simple" - -#: elf32-ppc.c:4050 -msgid "Warning: %B uses soft float, %B uses single-precision hard float" -msgstr "Aviso: %B usa coma flotante soft, %B usa coma flotante hard de precisión simple" +msgstr "Aviso: %B emplea coma flotante hard de doble precisión, %B emplea coma flotante hard de precisión simple" -#: elf32-ppc.c:4057 elf32-ppc.c:4061 elfxx-mips.c:13631 elfxx-mips.c:13635 -msgid "Warning: %B uses unknown floating point ABI %d" -msgstr "Aviso: %B usa la ABI de coma flotante desconocida %d" +#: elf32-ppc.c:4656 elf32-ppc.c:4661 +#, c-format +msgid "Warning: %B uses 64-bit long double, %B uses 128-bit long double" +msgstr "Aviso: %B utiliza 64 bit doble largo, %B utiliza 128 bit doble largo" -#: elf32-ppc.c:4103 elf32-ppc.c:4107 -msgid "Warning: %B uses unknown vector ABI %d" -msgstr "Aviso: %B usa la ABI de vector desconocida %d" +#: elf32-ppc.c:4666 elf32-ppc.c:4671 +#, c-format +msgid "Warning: %B uses IBM long double, %B uses IEEE long double" +msgstr "Aviso: %B utiliza doble largo IBM, %B utiliza doble largo IEEE" -#: elf32-ppc.c:4111 -msgid "Warning: %B uses vector ABI \"%s\", %B uses \"%s\"" -msgstr "Aviso: %B usa la ABI de vector \"%s\", %B usa \"%s\"" +#: elf32-ppc.c:4722 elf32-ppc.c:4727 +#, c-format +msgid "Warning: %B uses AltiVec vector ABI, %B uses SPE vector ABI" +msgstr "Aviso: %B emplea la ABI de vectorAltiVec, %B emplea vector SPE ABI" -#: elf32-ppc.c:4128 elf32-ppc.c:4131 +#: elf32-ppc.c:4750 elf32-ppc.c:4755 +#, c-format msgid "Warning: %B uses r3/r4 for small structure returns, %B uses memory" -msgstr "Aviso: %B usa r3/r4 para devoluciones de estructura small, %B usa memoria" +msgstr "Aviso: %B emplea r3/r4 para devoluciones de estructura small, %B emplea memoria" -#: elf32-ppc.c:4134 elf32-ppc.c:4138 -msgid "Warning: %B uses unknown small structure return convention %d" -msgstr "Aviso: %B usa la convención de devolución de estructura small %d" - -#: elf32-ppc.c:4192 +#: elf32-ppc.c:4810 msgid "%B: compiled with -mrelocatable and linked with modules compiled normally" msgstr "%B: compilado con -mrelocatable y enlazado con módulos compilados de forma normal" -#: elf32-ppc.c:4200 +#: elf32-ppc.c:4818 msgid "%B: compiled normally and linked with modules compiled with -mrelocatable" msgstr "%B: compilado de forma normal y enlazado con módulos compilados con -mrelocatable" -#: elf32-ppc.c:4309 +#: elf32-ppc.c:4887 +#, c-format +msgid "%B(%A+0x%lx): expected 16A style relocation on 0x%08x insn" +msgstr "%B(%A+0x%lx): esperada reubicación de estilo 16A en 0x%08x insn" + +#: elf32-ppc.c:4906 +#, c-format +msgid "%B(%A+0x%lx): expected 16D style relocation on 0x%08x insn" +msgstr "%B(%A+0x%lx): esperada reubicación de estilo 16D en 0x%08x insn" + +#: elf32-ppc.c:4997 msgid "%P: bss-plt forced due to %B\n" msgstr "%P: se fuerza bss-plt debido a %B\n" -#: elf32-ppc.c:4312 +#: elf32-ppc.c:5000 msgid "%P: bss-plt forced by profiling\n" msgstr "%P: se fuerza bss-plt por análisis de perfil\n" @@ -1982,681 +3139,1148 @@ #. could just mark this symbol to exclude it #. from tls optimization but it's safer to skip #. the entire optimization. -#: elf32-ppc.c:4809 elf64-ppc.c:7858 +#: elf32-ppc.c:5322 elf64-ppc.c:8654 +#, c-format msgid "%H arg lost __tls_get_addr, TLS optimization disabled\n" msgstr "%H el argumento perdió __tls_get_addr, se desactiva la optimización TLS\n" -#: elf32-ppc.c:5044 elf64-ppc.c:6528 -msgid "%P: dynamic variable `%s' is zero size\n" -msgstr "%P: la variable dinámica `%s' es de tamaño cero\n" +#: elf32-ppc.c:6264 elf32-sh.c:3392 elf32-tilepro.c:2331 elfxx-sparc.c:2556 +#: elfxx-tilegx.c:2567 +msgid "%B: dynamic relocation in read-only section `%A'\n" +msgstr "%B: ubicación dinámica en sección de sólo lectura `%A'\n" + +#: elf32-ppc.c:8100 +msgid "%H: fixup branch overflow\n" +msgstr "%H: reparar desbordamiento superior de rama \n" + +#: elf32-ppc.c:8140 elf32-ppc.c:8175 +#, c-format +msgid "%B(%A+%#Lx): error: %s with unexpected instruction %#x" +msgstr "%B(%A+%#Lx): error: %s con instrucción no esperada %#x" + +#: elf32-ppc.c:8231 +#, c-format +msgid "%X%H: unsupported bss-plt -fPIC ifunc %s\n" +msgstr "%X%H: bss-plt no soportado -fPIC ifunc %s\n" + +#: elf32-ppc.c:8294 elf64-ppc.c:15070 +msgid "%H: warning: %s unexpected insn %#x.\n" +msgstr "%H: aviso: %s inesperado ins %#x.\n" -#: elf32-ppc.c:7263 elf64-ppc.c:12675 +#: elf32-ppc.c:8319 +#, c-format msgid "%P: %B: unknown relocation type %d for symbol %s\n" msgstr "%P: %B: tipo de reubicación %d desconocida para el símbolo %s\n" -#: elf32-ppc.c:7524 -msgid "%P: %H: non-zero addend on %s reloc against `%s'\n" -msgstr "%P: %H: adición que no es cero en la reubicación %s contra `%s'\n" - -#: elf32-ppc.c:7720 elf64-ppc.c:13181 -msgid "%P: %H: relocation %s for indirect function %s unsupported\n" -msgstr "%P: %H: no se admite la reubicación %s para la función indirecta %s\n" +#: elf32-ppc.c:8606 +#, c-format +msgid "%H: non-zero addend on %s reloc against `%s'\n" +msgstr "%H: adición distinta de cero en reubicación %s contra «%s»\n" + +#. @local on an ifunc does not really make sense since +#. the ifunc resolver can take you anywhere. More +#. seriously, calls to ifuncs must go through a plt call +#. stub, and for pic the plt call stubs uses r30 to +#. access the PLT. The problem is that a call that is +#. local won't have the +32k reloc addend trick marking +#. -fPIC code, so the linker won't know whether r30 is +#. _GLOBAL_OFFSET_TABLE_ or pointing into a .got2 section. +#: elf32-ppc.c:8638 +#, c-format +msgid "%X%H: @local call to ifunc %s\n" +msgstr "%X%H: llamada @local a ifunc %s\n" -#: elf32-ppc.c:7948 elf32-ppc.c:7978 elf32-ppc.c:8025 +#: elf32-ppc.c:8808 +#, c-format +msgid "%H: relocation %s for indirect function %s unsupported\n" +msgstr "%H: reubicación %s para función indirecta %s no admitida\n" + +#: elf32-ppc.c:9077 elf32-ppc.c:9108 elf32-ppc.c:9199 +#, c-format msgid "%P: %B: the target (%s) of a %s relocation is in the wrong output section (%s)\n" msgstr "%P: %B: el objetivo (%s) de una reubicación %s está en la sección de salida errónea (%s)\n" -#: elf32-ppc.c:8097 +#: elf32-ppc.c:9287 +#, c-format +msgid "%B: the target (%s) of a %s relocation is in the wrong output section (%s)" +msgstr "%B: el objetivo (%s) de una reubicación %s está en la sección de salida equivocada (%s)" + +#: elf32-ppc.c:9395 +#, c-format msgid "%P: %B: relocation %s is not yet supported for symbol %s\n" msgstr "%P: %B: la reubicación %s aún no se admite para el símbolo %s\n" -#: elf32-ppc.c:8158 elf64-ppc.c:13467 -msgid "%P: %H: unresolvable %s relocation against symbol `%s'\n" -msgstr "%P: %H: reubicación %s sin resolución contra el símbolo `%s'\n" - -#: elf32-ppc.c:8205 elf64-ppc.c:13512 -msgid "%P: %H: %s reloc against `%s': error %d\n" -msgstr "%P: %H: reubicación %s contra `%s': error %d\n" +#: elf32-ppc.c:9480 +#, c-format +msgid "%H: error: %s against `%s' not a multiple of %u\n" +msgstr "%H: error: %s frente a «%s» no un múltiplo de %u\n" + +#: elf32-ppc.c:9509 +#, c-format +msgid "%H: unresolvable %s relocation against symbol `%s'\n" +msgstr "%H: reubicación %s irresoluble frente a símbolo `%s'\n" + +#: elf32-ppc.c:9590 +#, c-format +msgid "%H: %s reloc against `%s': error %d\n" +msgstr "%H: reubicación contra «%s»: error %d\n" -#: elf32-ppc.c:8696 +#: elf32-ppc.c:10354 elf64-ppc.c:15601 +msgid "%X%P: text relocations and GNU indirect functions will result in a segfault at runtime\n" +msgstr "%X%P: reubicaciones textuales y funciones indirectas GNU resultarán dentro de un fallo de segmento en tiempo de ejecución\n" + +#: elf32-ppc.c:10358 elf64-ppc.c:15605 +msgid "%P: warning: text relocations and GNU indirect functions may result in a segfault at runtime\n" +msgstr "%P: aviso:reubicaciones textuales y funciones indirectas GNU quizá resulten dentro de un fallo segmental en tiempo de ejecución\n" + +#: elf32-ppc.c:10403 +#, c-format msgid "%P: %s not defined in linker created %s\n" msgstr "%P: no se definió %s en el %s creado por el enlazador\n" -#: elf32-rx.c:563 +#: elf32-rl78.c:292 +#, c-format +msgid "%B: invalid RL78 reloc number: %d" +msgstr "%B: número reubicante RL78 no válido: %d" + +#: elf32-rl78.c:370 +msgid "Internal Error: RL78 reloc stack overflow" +msgstr "Error Interno: RL78 reubica desbordamiento superior de pila" + +#: elf32-rl78.c:381 +msgid "Internal Error: RL78 reloc stack underflow" +msgstr "Error Interno: RL78 reubica desbordamiento inferior de pila" + +#: elf32-rl78.c:1050 +msgid "Warning: RL78_SYM reloc with an unknown symbol" +msgstr "Aviso: reubicación RL78_SYM con un símbolo desconocido" + +#: elf32-rl78.c:1081 elf32-rx.c:1435 +#, c-format +msgid "%B(%A): error: call to undefined function '%s'" +msgstr "%B(%A): error: llamada a la función sin definir «%s»" + +#: elf32-rl78.c:1202 +#, c-format +msgid "RL78 ABI conflict: G10 file %B cannot be linked with %s file %B" +msgstr "Conflicto ABI RL78: fichero G10 %B no puede ser enlazado con fichero %s %B" + +#: elf32-rl78.c:1219 +#, c-format +msgid "RL78 ABI conflict: cannot link %s file %B with %s file %B" +msgstr "Conflicto ABI RL78: no puede enlazar fichero %s %B con fichero %s %B" + +#: elf32-rl78.c:1228 +msgid "RL78 merge conflict: cannot link 32-bit and 64-bit objects together" +msgstr "Conflicto de reenlace RL78: no puede enlazar objetos 32-bit y 64-bit juntos" + +#: elf32-rl78.c:1232 elf32-rl78.c:1236 +#, c-format +msgid "- %B is 64-bit, %B is not" +msgstr "- %B es 64-bit, %B no lo es" + +#: elf32-rl78.c:1263 +#, c-format +msgid " [64-bit doubles]" +msgstr " [dobles de 64-bit]" + +#: elf32-rx.c:314 +#, c-format +msgid "%B: invalid RX reloc number: %d" +msgstr "%B: número reubicante RX no válido: %d" + +#: elf32-rx.c:595 +#, c-format +msgid "%B:%A: table entry %s outside table" +msgstr "%B:%A: entrada de mesa %s fuera de mesa" + +#: elf32-rx.c:602 +#, c-format +msgid "%B:%A: table entry %s not word-aligned within table" +msgstr "%B:%A: entrada de tabla %s no alineada por palabra dentro de tabla" + +#: elf32-rx.c:668 +#, c-format msgid "%B:%A: Warning: deprecated Red Hat reloc " -msgstr "%B:%A: Aviso: reubicación Red Hat obsoleta" +msgstr "%B:%A: Aviso: reubicación Red Hat obsoleta " #. Check for unsafe relocs in PID mode. These are any relocs where #. an absolute address is being computed. There are special cases #. for relocs against symbols that are known to be referenced in #. crt0.o before the PID base address register has been initialised. -#: elf32-rx.c:581 -msgid "%B(%A): unsafe PID relocation %s at 0x%08lx (against %s in %s)" -msgstr "%B(%A): aviso: reubicación PID %s insegura en 0x%08lx (contra %s en %s)" +#: elf32-rx.c:687 +#, c-format +msgid "%B(%A): unsafe PID relocation %s at %#Lx (against %s in %s)" +msgstr "%B(%A): PID de reubicación %s no segura en %#Lx (frente a %s en %s)" -#: elf32-rx.c:1157 +#: elf32-rx.c:1267 msgid "Warning: RX_SYM reloc with an unknown symbol" msgstr "Aviso: reubicación RX_SYM con un símbolo desconocido" -#: elf32-rx.c:1324 -msgid "%B(%A): error: call to undefined function '%s'" -msgstr "%B(%A): error: llamada a la función sin definir '%s'" - -#: elf32-rx.c:1338 -msgid "%B(%A): warning: unaligned access to symbol '%s' in the small data area" -msgstr "%B(%A): aviso: acceso sin alinear al símbolo '%s' en el área de datos small" - -#: elf32-rx.c:1342 -msgid "%B(%A): internal error: out of range error" -msgstr "%B(%A): error interno: error fuera de rango" +#: elf32-rx.c:3146 +msgid "There is a conflict merging the ELF header flags from %B" +msgstr "Hay un conflicto uniendo las marcas de cabecera ELF desde %B" -#: elf32-rx.c:1346 -msgid "%B(%A): internal error: unsupported relocation error" -msgstr "%B(%A): error interno: no se admite el error de reubicación" - -#: elf32-rx.c:1350 -msgid "%B(%A): internal error: dangerous relocation" -msgstr "%B(%A): error interno: reubicación peligrosa" +#: elf32-rx.c:3149 +#, c-format +msgid " the input file's flags: %s" +msgstr " las marcas de entrada de fichero: %s" -#: elf32-rx.c:1354 -msgid "%B(%A): internal error: unknown error" -msgstr "%B(%A): error interno: error desconocido" +#: elf32-rx.c:3151 +#, c-format +msgid " the output file's flags: %s" +msgstr " las marcas de salida de fichero: %s" -#: elf32-rx.c:3004 +#: elf32-rx.c:3758 #, c-format -msgid " [64-bit doubles]" -msgstr " [dobles de 64-bit]" +msgid "%B:%A: table %s missing corresponding %s" +msgstr "%B:%A: segmento %s requiere correspondiente ausente %d" -#: elf32-rx.c:3006 +#: elf32-rx.c:3766 #, c-format -msgid " [dsp]" -msgstr " [dsp]" +msgid "%B:%A: %s and %s must be in the same input section" +msgstr "%B:%A: %s y %s debe estar en la misma sección de entrada" -#: elf32-s390.c:2200 elf64-s390.c:2187 -msgid "%B(%A+0x%lx): invalid instruction for TLS relocation %s" -msgstr "%B(%A+0x%lx): instrucción inválida para la reubicación TLS %s" +#: elf32-s390.c:2137 elf64-s390.c:2075 +#, c-format +msgid "%B(%A+%#Lx): invalid instruction for TLS relocation %s" +msgstr "%B(%A+%#Lx): instrucción inválida para reubicación TLS %s" -#: elf32-score.c:1520 elf32-score7.c:1379 elfxx-mips.c:3435 +#: elf32-score.c:1521 elf32-score7.c:1382 elfxx-mips.c:3756 msgid "not enough GOT space for local GOT entries" msgstr "no hay suficiente espacio GOT para entradas GOT locales" -#: elf32-score.c:2742 +#: elf32-score.c:2744 msgid "address not word align" msgstr "la dirección no está alineada a word" -#: elf32-score.c:2827 elf32-score7.c:2631 +#: elf32-score.c:2825 elf32-score7.c:2630 #, c-format -msgid "%s: Malformed reloc detected for section %s" -msgstr "%s: Se detectó una reubicación malformada para la sección %s" +msgid "%B: Malformed reloc detected for section %A" +msgstr "%B: detectada reubicación malformada para sección %A" -#: elf32-score.c:2878 elf32-score7.c:2682 -msgid "%B: CALL15 reloc at 0x%lx not against global symbol" -msgstr "%B: la reubicación CALL15 en 0x%lx no es contra un símbolo global" +#: elf32-score.c:2879 elf32-score7.c:2684 +#, c-format +msgid "%B: CALL15 reloc at %#Lx not against global symbol" +msgstr "%B: reubicación CALL15 en %Lx no contra símbolo global" -#: elf32-score.c:3997 elf32-score7.c:3803 +#: elf32-score.c:4001 elf32-score7.c:3806 #, c-format msgid " [pic]" msgstr " [pic]" -#: elf32-score.c:4001 elf32-score7.c:3807 +#: elf32-score.c:4005 elf32-score7.c:3810 #, c-format msgid " [fix dep]" msgstr " [fix dep]" -#: elf32-score.c:4043 elf32-score7.c:3849 +#: elf32-score.c:4048 elf32-score7.c:3853 msgid "%B: warning: linking PIC files with non-PIC files" msgstr "%B: aviso: se enlazan ficheros PIC con ficheros que no son PIC" #: elf32-sh-symbian.c:130 +#, c-format msgid "%B: IMPORT AS directive for %s conceals previous IMPORT AS" -msgstr "%B: la directiva IMPORT AS para %s oculta un IMPORT AS previo" +msgstr "%B: directiva IMPORT AS para %s concilia un IMPORT AS previo" -#: elf32-sh-symbian.c:383 +#: elf32-sh-symbian.c:384 +#, c-format msgid "%B: Unrecognised .directive command: %s" msgstr "%B: No se reconoce la orden .directive: %s" -#: elf32-sh-symbian.c:504 +#: elf32-sh-symbian.c:502 +#, c-format msgid "%B: Failed to add renamed symbol %s" -msgstr "%B: Falló al agregar el símbolo renombrado %s" - -#: elf32-sh.c:568 -msgid "%B: 0x%lx: warning: bad R_SH_USES offset" -msgstr "%B: 0x%lx: aviso: desplazamiento R_SH_USES erróneo" - -#: elf32-sh.c:580 -msgid "%B: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x" -msgstr "%B: 0x%lx: aviso: R_SH_USES señala al insn 0x%x que no se reconoce" - -#: elf32-sh.c:597 -msgid "%B: 0x%lx: warning: bad R_SH_USES load offset" -msgstr "%B: 0x%lx: aviso: desplazamiento de carga R_SH_USES erróneo" - -#: elf32-sh.c:612 -msgid "%B: 0x%lx: warning: could not find expected reloc" -msgstr "%B: 0x%lx: aviso: no se puede encontrar la reubicación esperada" - -#: elf32-sh.c:640 -msgid "%B: 0x%lx: warning: symbol in unexpected section" -msgstr "%B: 0x%lx: aviso: símbolo en una sección inesperada" +msgstr "%B: fallaba al añadir el símbolo renombrado %s" -#: elf32-sh.c:766 -msgid "%B: 0x%lx: warning: could not find expected COUNT reloc" -msgstr "%B: 0x%lx: aviso: no se puede encontrar la reubicación COUNT esperada" - -#: elf32-sh.c:775 -msgid "%B: 0x%lx: warning: bad count" -msgstr "%B: 0x%lx: aviso: cuenta errónea" +#: elf32-sh.c:491 +#, c-format +msgid "%B: unrecognised SH reloc number: %d" +msgstr "%B: número reubicante SH no reconocido: %d" -#: elf32-sh.c:1179 elf32-sh.c:1549 -msgid "%B: 0x%lx: fatal: reloc overflow while relaxing" -msgstr "%B: 0x%lx: fatal: desbordamiento de reubicación durante la relajación" +#: elf32-sh.c:592 +#, c-format +msgid "%B: %#Lx: warning: R_SH_USES points to unrecognized insn 0x%x" +msgstr "%B: %#Lx: aviso: R_SH_USES apunta al insn 0x%x no reconocido" -#: elf32-sh.c:4048 elf64-sh64.c:1514 +#: elf32-sh.c:3947 elf64-sh64.c:1508 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" +msgstr "No se manipula un STO_SH5_ISA32 inesperado en un símbolo local" -#: elf32-sh.c:4299 -msgid "%B: 0x%lx: fatal: unaligned branch target for relax-support relocation" -msgstr "%B: 0x%lx: fatal: objetivo de ramificación sin alineación para la reubicación de soporte de relajamiento" +#: elf32-sh.c:4200 +#, c-format +msgid "%B: %#Lx: fatal: unaligned branch target for relax-support relocation" +msgstr "%B: %#Lx: fatal: objetivo de ramificación sin alineación para la reubicación de soporte relajado" -#: elf32-sh.c:4332 elf32-sh.c:4347 -msgid "%B: 0x%lx: fatal: unaligned %s relocation 0x%lx" -msgstr "%B: 0x%lx: fatal: reubicación %s sin alineación 0x%lx" +#: elf32-sh.c:4234 elf32-sh.c:4250 +#, c-format +msgid "%B: %#Lx: fatal: unaligned %s relocation %#Lx" +msgstr "%B: %#Lx: fatal: reubicación %s no alineada %#Lx" -#: elf32-sh.c:4361 -msgid "%B: 0x%lx: fatal: R_SH_PSHA relocation %d not in range -32..32" -msgstr "%B: 0x%lx: fatal: la reubicación R_SH_PSHA %d no está en el rango -32..32" +#: elf32-sh.c:4265 +#, c-format +msgid "%B: %#Lx: fatal: R_SH_PSHA relocation %Ld not in range -32..32" +msgstr "%B: %#Lx: fatal: la reubicación R_SH_PSHA %Ld no está en el rango -32..32" -#: elf32-sh.c:4375 -msgid "%B: 0x%lx: fatal: R_SH_PSHL relocation %d not in range -32..32" -msgstr "%B: 0x%lx: fatal: la reubicación R_SH_PSHL %d no está en el rango -32..32" +#: elf32-sh.c:4280 +#, c-format +msgid "%B: %#Lx: fatal: R_SH_PSHL relocation %Ld not in range -32..32" +msgstr "%B: %#Lx: fatal: la reubicación R_SH_PSHL %Ld no está en el rango -32..32" -#: elf32-sh.c:4519 elf32-sh.c:4989 -msgid "%B(%A+0x%lx): cannot emit fixup to `%s' in read-only section" -msgstr "%B(%A+0x%lx): no se pueden emitir composturas para `%s' en la sección de sólo lectura" +#: elf32-sh.c:4426 elf32-sh.c:4899 +#, c-format +msgid "%B(%A+%#Lx): cannot emit fixup to `%s' in read-only section" +msgstr "%B(%A+%#Lx): no se pueden emitir composturas para «%s» en la sección de sólo lectura" -#: elf32-sh.c:5096 -msgid "%B(%A+0x%lx): %s relocation against external symbol \"%s\"" -msgstr "%B(%A+0x%lx): reubicación %s contra el símbolo externo \"%s\"" +#: elf32-sh.c:5001 +#, c-format +msgid "%B(%A+%#Lx): %s relocation against external symbol \"%s\"" +msgstr "%B(%A+%#Lx): %s reubicación frente a símbolo externo «%s»" -#: elf32-sh.c:5569 +#: elf32-sh.c:5465 #, c-format msgid "%X%C: relocation to \"%s\" references a different segment\n" -msgstr "%X%C: la reubicación de \"%s\" referencía un segmento diferente\n" +msgstr "%X%C: la reubicación de «%s» referencía un segmento diferente\n" -#: elf32-sh.c:5575 +#: elf32-sh.c:5472 #, c-format msgid "%C: warning: relocation to \"%s\" references a different segment\n" -msgstr "%C: aviso: la reubicación de \"%s\" referencía un segmento diferente\n" +msgstr "%C: aviso: la reubicación de «%s» referencía un segmento diferente\n" -#: elf32-sh.c:6353 elf32-sh.c:6436 +#: elf32-sh.c:6046 elf32-sh.c:6132 +#, c-format msgid "%B: `%s' accessed both as normal and FDPIC symbol" -msgstr "%B: se accedió `%s' como un símbolo normal y un símbolo FDPIC" +msgstr "%B: se accedió «%s» como un símbolo normal y un símbolo FDPIC" -#: elf32-sh.c:6358 elf32-sh.c:6440 +#: elf32-sh.c:6052 elf32-sh.c:6137 +#, c-format msgid "%B: `%s' accessed both as FDPIC and thread local symbol" -msgstr "%B: se accedió `%s' como un símbolo FDPIC y un símbolo local de hilo" +msgstr "%B: se accedió «%s» como un símbolo FDPIC y un símbolo local de hilo" -#: elf32-sh.c:6388 +#: elf32-sh.c:6083 msgid "%B: Function descriptor relocation with non-zero addend" -msgstr "%B: Reubicación de descriptor de función con adición que no es cero" +msgstr "%B: reubicación de descriptor de función con adición que no es cero" -#: elf32-sh.c:6624 elf64-alpha.c:4652 +#: elf32-sh.c:6321 elf64-alpha.c:4688 +#, c-format msgid "%B: TLS local exec code cannot be linked into shared objects" -msgstr "%B: el código de ejecución local TLS no se puede enlazar en objetos compartidos" +msgstr "%B: código local ejecutable TLS no se puede ser enlazado dentro de objetos compartidos" -#: elf32-sh64.c:223 elf64-sh64.c:2318 +#: elf32-sh.c:6436 #, 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" +msgid "%B: uses %s instructions while previous modules use %s instructions" +msgstr "%B: emplea %s instrucciones mientras que módulos anteriores emplean %s instrucciones" -#: elf32-sh64.c:226 elf64-sh64.c:2321 +#: elf32-sh.c:6448 #, 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" +msgid "internal error: merge of architecture '%s' with architecture '%s' produced unknown architecture" +msgstr "error interno: combinación de arquitectura «%s» con arquitectura «%s» produjo una arquitectura desconocida" + +#: elf32-sh.c:6485 +msgid "%B: uses instructions which are incompatible with instructions used in previous modules" +msgstr "%B: utiliza instrucciones las cuales son incompatibles con instrucciones utilizadas en módulos previos" -#: elf32-sh64.c:228 elf64-sh64.c:2323 +#: elf32-sh.c:6498 +msgid "%B: attempt to mix FDPIC and non-FDPIC objects" +msgstr "%B: intenta mezclar objetos FDPIC y no-FDPIC" + +#: elf32-sh64.c:225 elf64-sh64.c:2277 #, 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" +msgid "%B: compiled as 32-bit object and %B is 64-bit" +msgstr "%B: compilado como objeto de 32-bit y %B es de 64-bit" -#: elf32-sh64.c:451 elf64-sh64.c:2837 +#: elf32-sh64.c:229 elf64-sh64.c:2281 #, c-format -msgid "%s: encountered datalabel symbol in input" -msgstr "%s: se encontró un símbolo datalabel en la entrada" +msgid "%B: compiled as 64-bit object and %B is 32-bit" +msgstr "%B: compilado como objeto de 64-bit y %B es de 32-bit" -#: elf32-sh64.c:528 +#: elf32-sh64.c:232 elf64-sh64.c:2284 +#, c-format +msgid "%B: object size does not match that of target %B" +msgstr "%B: tamaño del objeto no coincide con el tamaño objetivo %B" + +#: elf32-sh64.c:455 elf64-sh64.c:2772 +msgid "%B: encountered datalabel symbol in input" +msgstr "%B: se encontró un símbolo etiqueta de datos dentro de la entrada" + +#: elf32-sh64.c:531 msgid "PTB mismatch: a SHmedia address (bit 0 == 1)" msgstr "No coincide PTB: una dirección SHmedia (bit 0 == 1)" -#: elf32-sh64.c:531 +#: elf32-sh64.c:534 msgid "PTA mismatch: a SHcompact address (bit 0 == 0)" msgstr "No coincide PTA: una dirección SHcompact (bit 0 == 0)" -#: elf32-sh64.c:549 -#, c-format -msgid "%s: GAS error: unexpected PTB insn with R_SH_PT_16" -msgstr "%s: error de GAS: insn PTB inesperada con R_SH_PT_16" - -#: elf32-sh64.c:598 -msgid "%B: error: unaligned relocation type %d at %08x reloc %p\n" -msgstr "%B: error: tipo de reubicación %d sin alinear en %08x reubicación %p\n" +#: elf32-sh64.c:550 +msgid "%B: GAS error: unexpected PTB insn with R_SH_PT_16" +msgstr "%B: error de GAS: insn PTB inesperada con R_SH_PT_16" -#: elf32-sh64.c:674 +#: elf32-sh64.c:600 #, c-format -msgid "%s: could not write out added .cranges entries" -msgstr "%s: no se pueden escribir las entradas .cranges agregadas" +msgid "%B: error: unaligned relocation type %d at %#Lx reloc %#Lx" +msgstr "%B: error: tipo de reubicación %d sin alinear en %#Lx reubicación %#Lx" -#: elf32-sh64.c:734 -#, c-format -msgid "%s: could not write out sorted .cranges entries" -msgstr "%s: no se pueden escribir las entradas .cranges ordenadas" +#: elf32-sh64.c:676 +msgid "%B: could not write out added .cranges entries" +msgstr "%B: no pudo escribir fuera entradas .cranges añadidas" + +#: elf32-sh64.c:735 +msgid "%B: could not write out sorted .cranges entries" +msgstr "%B: no pudo escribir fuera entradas .cranges ordenadas" -#: elf32-sparc.c:90 +#: elf32-sparc.c:89 msgid "%B: compiled for a 64 bit system and target is 32 bit" msgstr "%B: compilado para un sistema de 64 bit y el objetivo es de 32 bit" -#: elf32-sparc.c:103 +#: elf32-sparc.c:102 msgid "%B: linking little endian files with big endian files" msgstr "%B: se enlazan ficheros little endian con ficheros big endian" -#: elf32-spu.c:719 +#: elf32-spu.c:160 +#, c-format +msgid "%B: unrecognised SPU reloc number: %d" +msgstr "%B: número reubicante SPU no reconocido: %d" + +#: elf32-spu.c:726 msgid "%X%P: overlay section %A does not start on a cache line.\n" -msgstr "%X%P: la sección de sobreescritura %A no inicia en una línea de caché.\n" +msgstr "%X%P: la sección de sobrescritura %A no inicia en una línea de caché.\n" -#: elf32-spu.c:727 +#: elf32-spu.c:734 msgid "%X%P: overlay section %A is larger than a cache line.\n" msgstr "%X%P: la sección de sobreescritura %A es más grande que una línea de caché.\n" -#: elf32-spu.c:747 +#: elf32-spu.c:754 msgid "%X%P: overlay section %A is not in cache area.\n" msgstr "%X%P: la sección de sobreescritura %A no está en el área de caché.\n" -#: elf32-spu.c:787 +#: elf32-spu.c:795 +#, c-format msgid "%X%P: overlay sections %A and %A do not start at the same address.\n" msgstr "%X%P: las secciones de sobreescritura %A y %A no inician en la misma dirección.\n" -#: elf32-spu.c:1011 +#: elf32-spu.c:1021 +#, c-format msgid "warning: call to non-function symbol %s defined in %B" msgstr "aviso: se llama al símbolo %s que no es función, definido en %B" -#: elf32-spu.c:1361 +#: elf32-spu.c:1371 +#, c-format msgid "%A:0x%v lrlive .brinfo (%u) differs from analysis (%u)\n" msgstr "%A:0x%v lrlive .brinfo (%u) difiere del análisis (%u)\n" -#: elf32-spu.c:1880 +#: elf32-spu.c:1903 +#, c-format msgid "%B is not allowed to define %s" -msgstr "%B no tiene permitido definir %s" +msgstr "%B no está permitido definir %s" -#: elf32-spu.c:1888 +#: elf32-spu.c:1911 #, c-format msgid "you are not allowed to define %s in a script" msgstr "no se le permite definir %s en un guión" -#: elf32-spu.c:1922 +#: elf32-spu.c:1945 #, c-format msgid "%s in overlay section" msgstr "%s en la sección de sobreescritura" -#: elf32-spu.c:1951 +#: elf32-spu.c:1974 msgid "overlay stub relocation overflow" msgstr "desbordamiento de la reubicación de cabo de sobreescritura" -#: elf32-spu.c:1960 +#: elf32-spu.c:1983 msgid "stubs don't match calculated size" msgstr "los cabos no coinciden con el tamaño calculado" -#: elf32-spu.c:2542 +#: elf32-spu.c:2566 #, c-format msgid "warning: %s overlaps %s\n" -msgstr "aviso: %s sobreescribe %s\n" +msgstr "aviso: %s cubre %s\n" -#: elf32-spu.c:2558 +#: elf32-spu.c:2582 #, c-format msgid "warning: %s exceeds section size\n" msgstr "aviso: %s excede el tamaño de la sección\n" -#: elf32-spu.c:2589 +#: elf32-spu.c:2614 +#, c-format msgid "%A:0x%v not found in function table\n" -msgstr "%A:0x%v no se encuentra en la tabla de función\n" +msgstr "%A:0x%v no se encuentra en el segmento de función\n" -#: elf32-spu.c:2729 +#: elf32-spu.c:2755 +#, c-format msgid "%B(%A+0x%v): call to non-code section %B(%A), analysis incomplete\n" msgstr "%B(%A+0x%v): se llama a la sección %B(%A) que no es de código, análisis incompleto\n" -#: elf32-spu.c:3297 +#: elf32-spu.c:3324 #, c-format msgid "Stack analysis will ignore the call from %s to %s\n" -msgstr "El análisis de pila descartará la llamada de %s a %s\n" +msgstr "Pila analizada descartará la llamada de %s a %s\n" -#: elf32-spu.c:3988 -msgid " %s: 0x%v\n" -msgstr " %s: 0x%v\n" - -#: elf32-spu.c:3989 -msgid "%s: 0x%v 0x%v\n" -msgstr "%s: 0x%v 0x%v\n" - -#: elf32-spu.c:3994 +#: elf32-spu.c:4021 msgid " calls:\n" -msgstr " llama:\n" +msgstr " llamadas:\n" -#: elf32-spu.c:4002 -#, c-format -msgid " %s%s %s\n" -msgstr " %s%s %s\n" - -#: elf32-spu.c:4307 +#: elf32-spu.c:4335 #, c-format msgid "%s duplicated in %s\n" msgstr "%s duplicado en %s\n" -#: elf32-spu.c:4311 +#: elf32-spu.c:4339 #, c-format msgid "%s duplicated\n" msgstr "%s duplicado\n" -#: elf32-spu.c:4318 +#: elf32-spu.c:4346 msgid "sorry, no support for duplicate object files in auto-overlay script\n" msgstr "perdón, no se admiten ficheros objeto duplicados en el guión de sobreescritura automática\n" -#: elf32-spu.c:4359 +#: elf32-spu.c:4388 +#, c-format msgid "non-overlay size of 0x%v plus maximum overlay size of 0x%v exceeds local store\n" msgstr "eltamaño 0x%v que no es de sobreescritura mas el tamaño de sobreescritura máximo de 0x%v excede el almacenamiento local\n" -#: elf32-spu.c:4514 +#: elf32-spu.c:4544 +#, c-format msgid "%B:%A%s exceeds overlay size\n" msgstr "%B:%A%s excede el tamaño de sobreescritura\n" -#: elf32-spu.c:4676 +#: elf32-spu.c:4685 +msgid "%F%P: auto overlay error: %E\n" +msgstr "%F%P: error de sobrecarga automática: %E\n" + +#: elf32-spu.c:4706 msgid "Stack size for call graph root nodes.\n" -msgstr "Tamaño de la pila para los nodos raíz del grafo de llamadas.\n" +msgstr "Pila de tamaño para los nodos raíz del grafo de llamadas.\n" -#: elf32-spu.c:4677 +#: elf32-spu.c:4707 msgid "" "\n" "Stack size for functions. Annotations: '*' max stack, 't' tail call\n" msgstr "" "\n" -"Tamaño de la pila para funciones. Anotaciones: '*' max de pila, 't' llamada cola\n" +"Tamaño de la pila para funciones. Anotaciones: '*' pila máx, 't' llamada cola\n" -#: elf32-spu.c:4687 +#: elf32-spu.c:4717 msgid "Maximum stack required is 0x%v\n" msgstr "La pila máxima requerida es 0x%v\n" -#: elf32-spu.c:4778 +#: elf32-spu.c:4736 +msgid "%X%P: stack/lrlive analysis error: %E\n" +msgstr "%X%P: pila/lrlive error de análisis: %E\n" + +#: elf32-spu.c:4739 +msgid "%F%P: can not build overlay stubs: %E\n" +msgstr "" +"%F%P: no se puede construir sobrecarga de cabos %E\n" +"\n" + +#: elf32-spu.c:4808 msgid "fatal error while creating .fixup" msgstr "error fatal al crear .fixup" -#: elf32-spu.c:5008 -msgid "%B(%s+0x%lx): unresolvable %s relocation against symbol `%s'" -msgstr "%B(%s+0x%lx): reubicación %s sin resolución contra el símbolo `%s'" +#: elf32-spu.c:5043 +#, c-format +msgid "%B(%s+%#Lx): unresolvable %s relocation against symbol `%s'" +msgstr "%B(%s+%#Lx): reubicación %s irresoluble frente al símbolo `%s'" -#: elf32-tic6x.c:1602 +#: elf32-tic6x.c:1596 msgid "warning: generating a shared library containing non-PIC code" msgstr "aviso: se genera una biblioteca compartida que contiene código que no esPIC" -#: elf32-tic6x.c:1607 +#: elf32-tic6x.c:1601 msgid "warning: generating a shared library containing non-PID code" msgstr "aviso: se genera una biblioteca compartida que contiene código que no es PID" -#: elf32-tic6x.c:2541 +#: elf32-tic6x.c:2460 msgid "%B: SB-relative relocation but __c6xabi_DSBT_BASE not defined" -msgstr "%B: reubicación relativa a SB pero _c6xabi_DSBT_BASE no está definido" - -#: elf32-tic6x.c:2761 -msgid "dangerous relocation" -msgstr "reubicación peligrosa" +msgstr "%B: reubicación relativa a SB pero __c6xabi_DSBT_BASE no está definido" -#: elf32-tic6x.c:3733 +#: elf32-tic6x.c:3582 +#, c-format msgid "%B: error: unknown mandatory EABI object attribute %d" msgstr "%B: error: atributo de objeto EABI obligatorio %d desconocido" -#: elf32-tic6x.c:3741 +#: elf32-tic6x.c:3591 +#, c-format msgid "%B: warning: unknown EABI object attribute %d" msgstr "%B: aviso: atributo de objeto EABI %d desconocido" -#: elf32-tic6x.c:3853 elf32-tic6x.c:3861 +#: elf32-tic6x.c:3705 elf32-tic6x.c:3714 +#, c-format msgid "error: %B requires more stack alignment than %B preserves" msgstr "error: %B requiere más alineación de pila que la que %B preserva" -#: elf32-tic6x.c:3871 elf32-tic6x.c:3880 +#: elf32-tic6x.c:3724 elf32-tic6x.c:3733 msgid "error: unknown Tag_ABI_array_object_alignment value in %B" msgstr "error: valor de Tag_ABI_array_object_alignment desconocido en %B" -#: elf32-tic6x.c:3889 elf32-tic6x.c:3898 +#: elf32-tic6x.c:3742 elf32-tic6x.c:3751 msgid "error: unknown Tag_ABI_array_object_align_expected value in %B" msgstr "error: valor de Tag_ABI_array_object_align_expected desconocido en %B" -#: elf32-tic6x.c:3906 elf32-tic6x.c:3913 +#: elf32-tic6x.c:3760 elf32-tic6x.c:3768 +#, c-format msgid "error: %B requires more array alignment than %B preserves" msgstr "error: %B requiere más alineación de matriz que la que %B preserva" -#: elf32-tic6x.c:3935 +#: elf32-tic6x.c:3791 +#, c-format msgid "warning: %B and %B differ in wchar_t size" msgstr "aviso: %B y %B difieren en tamaño wchar_t" -#: elf32-tic6x.c:3953 +#: elf32-tic6x.c:3810 +#, c-format msgid "warning: %B and %B differ in whether code is compiled for DSBT" msgstr "aviso: %B y %B difieren en si el código está compilado para DSBT" -#: elf32-v850.c:173 +#: elf32-tilepro.c:3752 elfxx-tilegx.c:4132 elfxx-x86.c:1336 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:9172 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2492 +#, c-format +msgid "discarded output section: `%A'" +msgstr "se descarta la sección de salida: `%A'" + +#: elf32-v850.c:153 #, 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" +msgstr "La variable «%s» no puede ocupar múltiples regiones de datos small" -#: elf32-v850.c:176 +#: elf32-v850.c:156 #, 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, zero, y tiny" +msgstr "La variable «%s» solamente puede estar en una de las regiones de datos small, zero, y tiny" -#: elf32-v850.c:179 +#: elf32-v850.c:159 #, 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 zero" +msgstr "La variable «%s» no puede estar simultáneamente en las regiones de datos small y zero" -#: elf32-v850.c:182 +#: elf32-v850.c:162 #, 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" +msgstr "La variable «%s» no puede estar simultáneamente en las regiones de datos small y tiny" -#: elf32-v850.c:185 +#: elf32-v850.c:165 #, 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 zero y tiny" +msgstr "La variable «%s» no puede estar simultáneamente en las regiones de datos zero y tiny" -#: elf32-v850.c:483 +#: elf32-v850.c:463 msgid "FAILED to find previous HI16 reloc" -msgstr "FALLO para encontrar la reubicación HI16 previa" +msgstr "FALLADO al encontrar reubicación HI16 previa" -#: elf32-v850.c:2155 +#: elf32-v850.c:1898 elf32-v850.c:1917 +#, c-format +msgid "%B: invalid V850 reloc number: %d" +msgstr "%B: número reubicante V850 no válido: %d" + +#: elf32-v850.c:2295 msgid "could not locate special linker symbol __gp" msgstr "no se puede localizar el símbolo especial del enlazador __gp" -#: elf32-v850.c:2159 +#: elf32-v850.c:2299 msgid "could not locate special linker symbol __ep" msgstr "no se puede localizar el símbolo especial del enlazador __ep" -#: elf32-v850.c:2163 +#: elf32-v850.c:2303 msgid "could not locate special linker symbol __ctbp" msgstr "no se puede localizar el símbolo especial del enlazador __ctbp" -#: elf32-v850.c:2341 +#: elf32-v850.c:2524 +#, c-format +msgid "error: %B needs 8-byte alignment but %B is set for 4-byte alignment" +msgstr "error: %B necesita alineación de 8-byte pero %B está establecido para alineamiento de 4-byte" + +#: elf32-v850.c:2540 +#, c-format +msgid "error: %B uses 64-bit doubles but %B uses 32-bit doubles" +msgstr "error: %B utiliza dobles de 64-bit pero %B utiliza dobles de 32-bit" + +#: elf32-v850.c:2555 +#, c-format +msgid "error: %B uses FPU-3.0 but %B only supports FPU-2.0" +msgstr "error: %B utiliza FPU-3.0 pero %B solo es compatible con FPU-2.0" + +#: elf32-v850.c:2587 +#, c-format +msgid " alignment of 8-byte entities: " +msgstr " alineación de entidades de 8-byte: " + +#: elf32-v850.c:2590 +#, c-format +msgid "4-byte" +msgstr "4-byte" + +#: elf32-v850.c:2591 +#, c-format +msgid "8-byte" +msgstr "8-byte" + +#: elf32-v850.c:2592 elf32-v850.c:2604 +#, c-format +msgid "not set" +msgstr "sin def" + +#: elf32-v850.c:2593 elf32-v850.c:2605 elf32-v850.c:2617 elf32-v850.c:2628 +#: elf32-v850.c:2639 elf32-v850.c:2650 +#, c-format +msgid "unknown: %x" +msgstr "desconocido: %x" + +#: elf32-v850.c:2599 +#, c-format +msgid " size of doubles: " +msgstr " tamaño de dobles: " + +#: elf32-v850.c:2602 +#, c-format +msgid "4-bytes" +msgstr "4-bytes" + +#: elf32-v850.c:2603 +#, c-format +msgid "8-bytes" +msgstr "8-bytes" + +#: elf32-v850.c:2611 +#, c-format +msgid " FPU support required: " +msgstr " FPU soportado requerido: " + +#: elf32-v850.c:2614 +#, c-format +msgid "FPU-2.0" +msgstr "FPU-2.0" + +#: elf32-v850.c:2615 +#, c-format +msgid "FPU-3.0" +msgstr "FPU-3.0" + +#: elf32-v850.c:2616 +#, c-format +msgid "none" +msgstr "ninguno" + +#: elf32-v850.c:2623 +#, c-format +msgid "SIMD use: " +msgstr "Empleo SIMD: " + +#: elf32-v850.c:2626 elf32-v850.c:2637 elf32-v850.c:2648 +#, c-format +msgid "yes" +msgstr "sí" + +#: elf32-v850.c:2627 elf32-v850.c:2638 elf32-v850.c:2649 +#, c-format +msgid "no" +msgstr "no" + +#: elf32-v850.c:2634 +#, c-format +msgid "CACHE use: " +msgstr "Empleo de caché: " + +#: elf32-v850.c:2645 +#, c-format +msgid "MMU use: " +msgstr "Utilización de MMU: " + +#: elf32-v850.c:2812 elf32-v850.c:2868 msgid "%B: Architecture mismatch with previous modules" msgstr "%B: No coincide la arquitectura con los módulos previos" #. xgettext:c-format. -#: elf32-v850.c:2360 +#: elf32-v850.c:2886 #, c-format msgid "private flags = %lx: " msgstr "opciones privadas = %lx: " -#: elf32-v850.c:2365 +#: elf32-v850.c:2891 +#, c-format +msgid "unknown v850 architecture" +msgstr "arquitectura v850 desconocida" + +#: elf32-v850.c:2893 +#, c-format +msgid "v850 E3 architecture" +msgstr "arquitectura v850 E3" + +#: elf32-v850.c:2895 elf32-v850.c:2902 #, c-format msgid "v850 architecture" msgstr "arquitectura v850" -#: elf32-v850.c:2366 +#: elf32-v850.c:2903 #, c-format msgid "v850e architecture" msgstr "arquitectura v850e" -#: elf32-v850.c:2367 +#: elf32-v850.c:2904 #, c-format msgid "v850e1 architecture" msgstr "arquitectura v850e1" -#: elf32-v850.c:2368 +#: elf32-v850.c:2905 #, c-format msgid "v850e2 architecture" msgstr "arquitectura v850e2" -#: elf32-v850.c:2369 +#: elf32-v850.c:2906 #, c-format msgid "v850e2v3 architecture" msgstr "arquitectura v850e2v3" -#: elf32-vax.c:532 +#: elf32-v850.c:2907 +#, c-format +msgid "v850e3v5 architecture" +msgstr "v850e3v5 como arquitectura" + +#: elf32-v850.c:3601 +#, c-format +msgid "%B: %#Lx: warning: R_V850_LONGCALL points to unrecognized insns" +msgstr "%B: %#Lx: aviso: R_V850_LONGCALL apunta al insns no reconocido" + +#: elf32-v850.c:3611 +#, c-format +msgid "%B: %#Lx: warning: R_V850_LONGCALL points to unrecognized insn %#x" +msgstr "%B: %#Lx: aviso: R_V850_LONGCALL apunta al insn %#x no reconocido" + +#: elf32-v850.c:3656 +#, c-format +msgid "%B: %#Lx: warning: R_V850_LONGCALL points to unrecognized reloc" +msgstr "%B: %#Lx: aviso: R_V850_LONGCALL apunta al reloc no reconocido" + +#: elf32-v850.c:3696 +#, c-format +msgid "%B: %#Lx: warning: R_V850_LONGCALL points to unrecognized reloc %#Lx" +msgstr "%B: %#Lx: aviso: R_V850_LONGCALL apunta a reubicación %#Lx no reconocido" + +#: elf32-v850.c:3839 +#, c-format +msgid "%B: %#Lx: warning: R_V850_LONGJUMP points to unrecognized insns" +msgstr "%B: %#Lx: aviso: R_V850_LONGJUMP apunta al insns no reconocido" + +#: elf32-v850.c:3849 +#, c-format +msgid "%B: %#Lx: warning: R_V850_LONGJUMP points to unrecognized insn %#x" +msgstr "%B: %#Lx: aviso: R_V850_LONGJUMP apunta al insn %#x no reconocido" + +#: elf32-v850.c:3883 +#, c-format +msgid "%B: %#Lx: warning: R_V850_LONGJUMP points to unrecognized reloc" +msgstr "%B: %#Lx: aviso: R_V850_LONGJUMP apunta al reloc no reconocido" + +#: elf32-vax.c:290 +#, c-format +msgid "%B: unrecognised VAX reloc number: %d" +msgstr "%B: número reubicante VAX no reconocido: %d" + +#: elf32-vax.c:539 #, c-format msgid " [nonpic]" msgstr " [no pic]" -#: elf32-vax.c:535 +#: elf32-vax.c:542 #, c-format msgid " [d-float]" msgstr " [flotante-d]" -#: elf32-vax.c:538 +#: elf32-vax.c:545 #, c-format msgid " [g-float]" msgstr " [flotante-g]" -#: elf32-vax.c:655 +#: elf32-vax.c:631 +#, c-format +msgid "%B: warning: GOT addend of %Ld to `%s' does not match previous GOT addend of %Ld" +msgstr "%B: aviso: la adición GOT de %Ld a «%s» no coincide con la adición previa GOT de %Ld" + +#: elf32-vax.c:1445 +#, c-format +msgid "%B: warning: PLT addend of %Ld to `%s' from %A section ignored" +msgstr "%B: aviso: adición PLT de %Ld a «%s» desde sección %A ignorada" + +#: elf32-vax.c:1570 +#, c-format +msgid "%B: warning: %s relocation against symbol `%s' from %A section" +msgstr "%B: aviso: reubicación %s frente a símbolo «%s» desde sección %A" + +#: elf32-vax.c:1577 +#, c-format +msgid "%B: warning: %s relocation to %#Lx from %A section" +msgstr "%B: aviso: reubicación %s a %#Lx desde sección %A" + +#: elf32-visium.c:481 +#, c-format +msgid "%B: invalid Visium reloc number: %d" +msgstr "%B: número reubicante Visium no válido: %d" + +#: elf32-visium.c:817 #, 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" +msgid "%B: compiled %s -mtune=%s and linked with modules compiled %s -mtune=%s" +msgstr "%B: %s compilado -mtune=%s y enlazado con módulos compilados con %s -mtune=%s" -#: elf32-vax.c:1585 +#: elf32-xgate.c:428 #, c-format -msgid "%s: warning: PLT addend of %d to `%s' from %s section ignored" -msgstr "%s: aviso: se descarta la adición PLT de %d a `%s' de la sección %s" +msgid "%B: invalid XGate reloc number: %d" +msgstr "%B: número reubicante XGate no válido: %d" -#: elf32-vax.c:1712 +#: elf32-xgate.c:681 #, 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" +msgid "cpu=XGATE]" +msgstr "cpu=XGATE]" -#: elf32-vax.c:1718 +#: elf32-xgate.c:683 #, 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" +msgid "error reading cpu type from elf private data" +msgstr "error leyendo tipo de cpu desde datos privados elf" -#: elf32-xstormy16.c:451 elf32-ia64.c:2336 elf64-ia64.c:2336 +#: elf32-xstormy16.c:449 elf64-ia64-vms.c:2074 elf32-ia64.c:2337 +#: elf64-ia64.c:2337 msgid "non-zero addend in @fptr reloc" msgstr "adición que no es cero en la reubicación @fptr" -#: elf32-xtensa.c:918 +#: elf32-xtensa.c:485 +#, c-format +msgid "%B: invalid XTENSA reloc number: %d" +msgstr "%B: número reubicante XTENSA no válido: %d" + +#: elf32-xtensa.c:926 +#, c-format msgid "%B(%A): invalid property table" -msgstr "%B(%A): tabla de propiedades inválida" +msgstr "%B(%A): segmento de propiedades inválida" -#: elf32-xtensa.c:2777 -msgid "%B(%A+0x%lx): relocation offset out of range (size=0x%x)" -msgstr "%B(%A+0x%lx): desplazamiento de reubicación fuera de rango (tamaño=0x%x)" +#: elf32-xtensa.c:2655 +#, c-format +msgid "%B(%A+%#Lx): relocation offset out of range (size=%#Lx)" +msgstr "%B(%A+%#Lx): desplazamiento de reubicación fuera de rango (tamaño=%#Lx)" -#: elf32-xtensa.c:2856 elf32-xtensa.c:2977 +#: elf32-xtensa.c:2736 elf32-xtensa.c:2855 msgid "dynamic relocation in read-only section" msgstr "reubicación dinámica en la sección de sólo lectura" -#: elf32-xtensa.c:2953 +#: elf32-xtensa.c:2832 msgid "TLS relocation invalid without dynamic sections" -msgstr "reubicación TLS inválida sin secciones dinámicas" +msgstr "TLS reubicado inválidamente sin secciones dinámicas" -#: elf32-xtensa.c:3172 +#: elf32-xtensa.c:3043 msgid "internal inconsistency in size of .got.loc section" msgstr "inconsistencia interna en el tamaño de la sección .got.loc" -#: elf32-xtensa.c:3485 +#: elf32-xtensa.c:3350 +#, c-format msgid "%B: incompatible machine type. Output is 0x%x. Input is 0x%x" msgstr "%B: tipo de máquina incompatible. La salida es 0x%x. La entrada es 0x%x" -#: elf32-xtensa.c:4714 elf32-xtensa.c:4722 +#: elf32-xtensa.c:4581 elf32-xtensa.c:4589 msgid "Attempt to convert L32R/CALLX to CALL failed" msgstr "Falló el intento de convertir L32R/CALLX a CALL" -#: elf32-xtensa.c:6332 elf32-xtensa.c:6408 elf32-xtensa.c:7524 -msgid "%B(%A+0x%lx): could not decode instruction; possible configuration mismatch" -msgstr "%B(%A+0x%lx): no se puede decodificar la instrucción; posible falta de coincidencia de la configuración" - -#: elf32-xtensa.c:7264 -msgid "%B(%A+0x%lx): could not decode instruction for XTENSA_ASM_SIMPLIFY relocation; possible configuration mismatch" -msgstr "%B(%A+0x%lx): no se puede decodificar la instrucción para la reubicación XTENSA_ASM_SIMPLIFY; posible falta de coincidencia de la configuración" +#: elf32-xtensa.c:6417 elf32-xtensa.c:6495 elf32-xtensa.c:7871 +#, c-format +msgid "%B(%A+%#Lx): could not decode instruction; possible configuration mismatch" +msgstr "%B(%A+%#Lx): no se pudo decodificar la instrucción; posible falta de coincidencia de la configuración" -#: elf32-xtensa.c:9023 +#: elf32-xtensa.c:7610 +#, c-format +msgid "%B(%A+%#Lx): could not decode instruction for XTENSA_ASM_SIMPLIFY relocation; possible configuration mismatch" +msgstr "%B(%A+%#Lx): no pudo decodificar instrucción para reubicación XTENSA_ASM_SIMPLIFY; posible incoincidencia de configuración" + +#: elf32-xtensa.c:9455 msgid "invalid relocation address" msgstr "dirección de reubicación inválida" -#: elf32-xtensa.c:9072 +#: elf32-xtensa.c:9505 msgid "overflow after relaxation" msgstr "desbordamiento después de la relajación" -#: elf32-xtensa.c:10204 -msgid "%B(%A+0x%lx): unexpected fix for %s relocation" -msgstr "%B(%A+0x%lx): compostura inesperada para la reubicación %s" +#: elf32-xtensa.c:10649 +#, c-format +msgid "%B(%A+%#Lx): unexpected fix for %s relocation" +msgstr "%B(%A+%#Lx): reparación inesperado para %s reubicación" -#: elf64-alpha.c:460 +#: elf64-alpha.c:472 msgid "GPDISP relocation did not find ldah and lda instructions" -msgstr "la reubicación GPDISP no encontró las instrucciones ldah y lda" +msgstr "Reubicación GPDISP no encontró las instrucciones ldah y lda" -#: elf64-alpha.c:2497 +#: elf64-alpha.c:1112 +#, c-format +msgid "%B: unrecognised Alpha reloc number: %d" +msgstr "%B: número reubicante Alpha no reconocido: %d" + +#: elf64-alpha.c:2462 +#, c-format msgid "%B: .got subsegment exceeds 64K (size %d)" msgstr "%B: el subsegmento .got excede los 64K (tamaño %d)" -#: elf64-alpha.c:4387 elf64-alpha.c:4399 +#: elf64-alpha.c:3017 +#, c-format +msgid "%B: %A+%#Lx: warning: %s relocation against unexpected insn" +msgstr "%B: %A+%#Lx: aviso: reubicación %s contra insn inesperado" + +#: elf64-alpha.c:3212 +#, c-format +msgid "%B: %A+%#Lx: warning: LITERAL relocation against unexpected insn" +msgstr "%B: %A+%#Lx: aviso: reubicación LITERAL contra insn inesperado" + +#: elf64-alpha.c:4412 elf64-alpha.c:4425 +#, c-format msgid "%B: gp-relative relocation against dynamic symbol %s" msgstr "%B: reubicación relativa a gp contra el símbolo dinámico %s" -#: elf64-alpha.c:4425 elf64-alpha.c:4565 +#: elf64-alpha.c:4452 elf64-alpha.c:4596 +#, c-format msgid "%B: pc-relative relocation against dynamic symbol %s" msgstr "%B: reubicación relativa a pc contra el símbolo dinámico %s" -#: elf64-alpha.c:4453 +#: elf64-alpha.c:4481 +#, c-format msgid "%B: change in gp: BRSGP %s" -msgstr "%B: cambio en gp: BRSGP %s" +msgstr "%B: modifica en gp: BRSGP %s" -#: elf64-alpha.c:4478 +#: elf64-alpha.c:4506 msgid "" msgstr "" -#: elf64-alpha.c:4483 +#: elf64-alpha.c:4512 +#, c-format msgid "%B: !samegp reloc against symbol without .prologue: %s" msgstr "%B: reubicación !samegp contra un símbolo sin .prologue: %s" -#: elf64-alpha.c:4540 +#: elf64-alpha.c:4570 +#, c-format msgid "%B: unhandled dynamic relocation against %s" -msgstr "%B: reubicación dinámica sin manejar contra %s" +msgstr "%B: reubicación dinámica sin manipular contra %s" -#: elf64-alpha.c:4572 +#: elf64-alpha.c:4605 +#, c-format msgid "%B: pc-relative relocation against undefined weak symbol %s" msgstr "%B: reubicación relativa a pc contra el símbolo débil sin definir %s" -#: elf64-alpha.c:4636 +#: elf64-alpha.c:4671 +#, c-format msgid "%B: dtp-relative relocation against dynamic symbol %s" msgstr "%B: reubicación relativa a dtp contra el símbolo dinámico %s" -#: elf64-alpha.c:4659 +#: elf64-alpha.c:4696 +#, c-format msgid "%B: tp-relative relocation against dynamic symbol %s" -msgstr "%B: reubicación relativa a tp contra el símbolo dinámico %s" +msgstr "%B: reubicación tp-relativa contra el símbolo dinámico %s" + +#: elf64-hppa.c:2081 +#, 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-hppa.c:3286 +#, c-format +msgid "%B(%A+%#Lx): cannot reach %s" +msgstr "%B(%A+%#Lx): no se pueden alcanzar %s" + +#: elf64-ia64-vms.c:587 elf32-ia64.c:620 elf64-ia64.c:620 +#, c-format +msgid "%B: Can't relax br at %#Lx in section `%A'. Please use brl or indirect branch." +msgstr "%B: no se puede relajar br en %#Lx en la sección `%A'. Utilice brl o ramificación indirecta." + +#: elf64-ia64-vms.c:2029 elf32-ia64.c:2285 elf64-ia64.c:2285 +msgid "@pltoff reloc against local symbol" +msgstr "reubica @pltoff contra símb. local" + +#: elf64-ia64-vms.c:3281 elf32-ia64.c:3696 elf64-ia64.c:3696 +#, c-format +msgid "%B: short data segment overflowed (%#Lx >= 0x400000)" +msgstr "%B: segmento de datos short sobredesbordado (%#Lx >= 0x400000)" + +#: elf64-ia64-vms.c:3291 elf32-ia64.c:3706 elf64-ia64.c:3706 +msgid "%B: __gp does not cover short data segment" +msgstr "%B: __gp no cubre el segmento corto de datos" + +#: elf64-ia64-vms.c:3557 elf32-ia64.c:3974 elf64-ia64.c:3974 +#, c-format +msgid "%B: non-pic code with imm relocation against dynamic symbol `%s'" +msgstr "%B: código que no es pic con reubicación imm contra el símbolo dinámico «%s»" + +#: elf64-ia64-vms.c:3621 elf32-ia64.c:4042 elf64-ia64.c:4042 +#, c-format +msgid "%B: @gprel relocation against dynamic symbol %s" +msgstr "%B: @gprel reubicado contra el símbolo dinámico %s" + +#: elf64-ia64-vms.c:3680 elf32-ia64.c:4105 elf64-ia64.c:4105 +msgid "%B: linking non-pic code in a position independent executable" +msgstr "%B: se enlaza código que no es pic en un ejecutable independiente de posición" + +#: elf64-ia64-vms.c:3782 elf32-ia64.c:4243 elf64-ia64.c:4243 +#, c-format +msgid "%B: @internal branch to dynamic symbol %s" +msgstr "%B: @internal ramificado al símbolo dinámico %s" + +#: elf64-ia64-vms.c:3785 elf32-ia64.c:4246 elf64-ia64.c:4246 +#, c-format +msgid "%B: speculation fixup to dynamic symbol %s" +msgstr "%B: compostura de especulación al símbolo dinámico %s" + +#: elf64-ia64-vms.c:3788 elf32-ia64.c:4249 elf64-ia64.c:4249 +#, c-format +msgid "%B: @pcrel relocation against dynamic symbol %s" +msgstr "%B: @pcrel reubicado contra el símbolo dinámico %s" + +#: elf64-ia64-vms.c:3912 elf32-ia64.c:4446 elf64-ia64.c:4446 +msgid "unsupported reloc" +msgstr "no se admite la reubicación" + +#: elf64-ia64-vms.c:3949 elf32-ia64.c:4484 elf64-ia64.c:4484 +#, c-format +msgid "%B: missing TLS section for relocation %s against `%s' at %#Lx in section `%A'." +msgstr "%B: falta la sección TLS para la reubicación %s contra «%s» en %#Lx en la sección `%A'." + +#: elf64-ia64-vms.c:3966 elf32-ia64.c:4501 elf64-ia64.c:4501 +#, c-format +msgid "%B: Can't relax br (%s) to `%s' at %#Lx in section `%A' with size %#Lx (> 0x1000000)." +msgstr "%B: no se puede relajar br (%s) a «%s» en %#Lx en la sección `%A' con tamaño %#Lx (> 0x1000000)." + +#: elf64-ia64-vms.c:4257 elf32-ia64.c:4758 elf64-ia64.c:4758 +msgid "%B: linking trap-on-NULL-dereference with non-trapping files" +msgstr "%B: se enlaza deferencias-captura-en-NULL con ficheros que no son de captura" + +#: elf64-ia64-vms.c:4266 elf32-ia64.c:4767 elf64-ia64.c:4767 +msgid "%B: linking big-endian files with little-endian files" +msgstr "%B: se enlazan ficheros big-endian con ficheros little-endian" + +#: elf64-ia64-vms.c:4275 elf32-ia64.c:4776 elf64-ia64.c:4776 +msgid "%B: linking 64-bit files with 32-bit files" +msgstr "%B: se enlazan ficheros de 64-bit con ficheros de 32-bit" + +#: elf64-ia64-vms.c:4284 elf32-ia64.c:4785 elf64-ia64.c:4785 +msgid "%B: linking constant-gp files with non-constant-gp files" +msgstr "%B: se enlazan ficheros de gp constante con ficheros con gp no constante" -#: elf64-hppa.c:2083 +#: elf64-ia64-vms.c:4294 elf32-ia64.c:4795 elf64-ia64.c:4795 +msgid "%B: linking auto-pic files with non-auto-pic files" +msgstr "%B: se enlazan ficheros de pic automático con ficheros sin pic automático" + +#: elf64-ia64-vms.c:5137 elflink.c:4773 +#, c-format +msgid "Warning: alignment %u of common symbol `%s' in %B is greater than the alignment (%u) of its section %A" +msgstr "Aviso: la alineación %u del símbolo común «%s» en %B es más grande que la alineación (%u) de su sección %A" + +#: elf64-ia64-vms.c:5144 elflink.c:4780 +#, c-format +msgid "Warning: alignment %u of symbol `%s' in %B is smaller than %u in %B" +msgstr "Aviso: la alineación %u del símbolo «%s» en %B es más pequeña que %u en %B" + +#: elf64-ia64-vms.c:5160 elflink.c:4797 #, 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" +msgid "Warning: size of symbol `%s' changed from %Lu in %B to %Lu in %B" +msgstr "Aviso: el tamaño del símbolo «%s» modificado de %Lu en %B a %Lu en %B" -#: elf64-hppa.c:3275 -msgid "%B(%A+0x" -msgstr "%B(%A+0x" +#: elf64-mips.c:3615 elfn32-mips.c:3443 +#, c-format +msgid "unrecognised MIPS reloc number: %d" +msgstr "número reubicante MIPS no reconocido: %d" -#: elf64-mmix.c:1034 +#: elf64-mmix.c:984 msgid "" "invalid input relocation when producing non-ELF, non-mmo format output.\n" " Please use the objcopy program to convert from ELF or mmo,\n" @@ -2666,7 +4290,7 @@ " es mmo ni ELF. Por favor utilice el programa objcopy para convertir de\n" " ELF o mmo, o ensamble utilizando \"-no-expand\" (para gcc, \"-Wa, -no-expand\"" -#: elf64-mmix.c:1218 +#: elf64-mmix.c:1168 msgid "" "invalid input relocation when producing non-ELF, non-mmo format output.\n" " Please use the objcopy program to convert from ELF or mmo,\n" @@ -2676,983 +4300,1411 @@ " es mmo ni ELF. Por favor utilice el programa objcopy para converitr de\n" " ELF o mmo, o compile utilizando la opción de gcc \"-mno-base-addresses\"." -#: elf64-mmix.c:1244 +#: elf64-mmix.c:1195 #, c-format msgid "" -"%s: Internal inconsistency error for value for\n" -" linker-allocated global register: linked: 0x%lx%08lx != relaxed: 0x%lx%08lx\n" +"%B: Internal inconsistency error for value for\n" +" linker-allocated global register: linked: %#Lx != relaxed: %#Lx" 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" +"%B: error de inconsistencia interna para el valor para\n" +" un registro global colocado por el enlazador: enlazado: %#Lx != relajado: %#Lx" -#: elf64-mmix.c:1670 +#: elf64-mmix.c:1264 #, 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" +msgid "%B: invalid MMIX reloc number: %d" +msgstr "%B: número reubicante MMIX no válido: %d" -#: elf64-mmix.c:1675 +#: elf64-mmix.c:1616 #, 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" +msgid "%B: base-plus-offset relocation against register symbol: (unknown) in %A" +msgstr "%B: reubicación base-suma-desplazamiento contra símbolo registrador: (desconocido) en %A" -#: elf64-mmix.c:1719 +#: elf64-mmix.c:1622 #, 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" +msgid "%B: base-plus-offset relocation against register symbol: %s in %A" +msgstr "%B: reubicación base-suma-desplazamiento contra símbolo registrador: %s en %A" -#: elf64-mmix.c:1724 +#: elf64-mmix.c:1667 #, 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" +msgid "%B: register relocation against non-register symbol: (unknown) in %A" +msgstr "%B: reubicación registrada frente símbolo no registrado: (desconocido) en %A" -#: elf64-mmix.c:1761 +#: elf64-mmix.c:1673 #, 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" +msgid "%B: register relocation against non-register symbol: %s in %A" +msgstr "%B: reubicación registrada frente símbolo no registrado: %s en %A" -#: elf64-mmix.c:1789 +#: elf64-mmix.c:1710 +msgid "%B: directive LOCAL valid only with a register or absolute value" +msgstr "%B: directiva LOCAL válida sólo con un registro o un valor absoluto" + +#: elf64-mmix.c:1741 #, 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." +msgid "%B: LOCAL directive: Register $%Ld is not a local register. First global register is $%Ld." +msgstr "%B: directiva LOCAL: El registro $%Ld no es un registro local. El primer registro global es $%Ld." -#: elf64-mmix.c:2253 +#: elf64-mmix.c:2169 #, 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" +msgid "%B: Error: multiple definition of `%s'; start of %s is set in a earlier linked file\n" +msgstr "%B: error: definición múltiple de «%s»; el inicio de %s está definido dentro de un fichero enlazado con anterioridad\n" -#: elf64-mmix.c:2311 +#: elf64-mmix.c:2224 msgid "Register section has contents\n" msgstr "La sección de registros no tiene contenido\n" -#: elf64-mmix.c:2503 +#: elf64-mmix.c:2414 #, c-format msgid "" -"Internal inconsistency: remaining %u != max %u.\n" +"Internal inconsistency: remaining %lu != max %lu.\n" " Please report this bug." msgstr "" -"Inconsistencia interna: %u restante != %u máximo.\n" -" Por favor reporte este bicho." +"Inconsistencia interna: %lu restante != %lu máximo.\n" +" Por favor boletine este defecto." -#: elf64-ppc.c:4185 +#: elf64-ppc.c:4640 +#, c-format msgid "%P: %B: cannot create stub entry %s\n" msgstr "%P: %B: no se puede crear la entrada de cabo %s\n" -#: elf64-ppc.c:6518 -msgid "%P: copy reloc against `%s' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc\n" -msgstr "%P: la reubicación de copia contra `%s' requiere de enlazado plt flojo; evite establecer LD_BIND_NOW=1 o actualice gcc\n" +#: elf64-ppc.c:4971 +msgid "%P: symbol '%s' has invalid st_other for ABI version 1\n" +msgstr "%P: símbolo «%s» tiene st_other inválido para versión ABI 1\n" + +#: elf64-ppc.c:5146 +#, c-format +msgid "%P: %B .opd not allowed in ABI version %d\n" +msgstr "%P: %B .opd no permitido dentro de versión ABI %d\n" + +#: elf64-ppc.c:5645 +#, c-format +msgid "%H: %s reloc unsupported in shared libraries and PIEs.\n" +msgstr "%H: %s reubicación no soportada en bibliotecas compartidas y varios PIE.\n" + +#: elf64-ppc.c:6035 +#, c-format +msgid "%B uses unknown e_flags 0x%lx" +msgstr "%B emplea indicadores e_flags 0x%lx desconocidos" + +#: elf64-ppc.c:6043 +#, c-format +msgid "%B: ABI version %ld is not compatible with ABI version %ld output" +msgstr "%B: Versión ABI %ld no es compatible con versión ABI %ld salida" + +#: elf64-ppc.c:6071 +#, c-format +msgid " [abiv%ld]" +msgstr " [abiv%ld]" + +#: elf64-ppc.c:7255 +msgid "%P: copy reloc against `%T' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc\n" +msgstr "%P: reubicación copiada contra «%T» requiere de enlazado plt flojo; evite establecer LD_BIND_NOW=1 o modernice gcc\n" -#: elf64-ppc.c:6788 +#: elf64-ppc.c:7522 msgid "%B: undefined symbol on R_PPC64_TOCSAVE relocation" msgstr "%B: símbolo sin definir en la reubicación R_PPC64_TOCSAVE" -#: elf64-ppc.c:6992 +#: elf64-ppc.c:7749 +#, c-format msgid "%P: dynreloc miscount for %B, section %A\n" msgstr "%P: cuenta errónea de la reubicación dinámica de %B, sección %A\n" -#: elf64-ppc.c:7076 +#: elf64-ppc.c:7838 msgid "%B: .opd is not a regular array of opd entries" msgstr "%B: .opd no es una matriz regular de entradas opd" -#: elf64-ppc.c:7085 +#: elf64-ppc.c:7848 +#, c-format msgid "%B: unexpected reloc type %u in .opd section" msgstr "%B: tipo de reubicación %u inesperado en la sección .opd" -#: elf64-ppc.c:7106 +#: elf64-ppc.c:7870 +#, c-format msgid "%B: undefined sym `%s' in .opd section" -msgstr "%B: símbolo `%s' sin definir en la sección .opd" +msgstr "%B: símbolo «%s» sin definir en la sección .opd" + +#: elf64-ppc.c:8207 +msgid "%P: warning: --plt-localentry is especially dangerous without ld.so support to detect ABI violations.\n" +msgstr "" +"%P: aviso: --plt-localentry es especialmente peligroso sin compatibilidad ld.so para detectar violaciones ABI.\n" +" \n" -#: elf64-ppc.c:7664 +#: elf64-ppc.c:8456 msgid "%H __tls_get_addr lost arg, TLS optimization disabled\n" msgstr "%H se perdió el argumento __tls_get_addr, se desactiva la optimización TLS\n" -#: elf64-ppc.c:8003 elf64-ppc.c:8564 +#: elf64-ppc.c:8800 elf64-ppc.c:9437 #, c-format msgid "%s defined on removed toc entry" msgstr "se definió %s en la entrada toc eliminada" -#: elf64-ppc.c:8521 -msgid "%P: %H: %s relocation references optimized away TOC entry\n" -msgstr "%P: %H: la reubicación %s referencía una entrada TOC optimizada por fuera\n" - -#: elf64-ppc.c:9598 -msgid "%P: cannot find opd entry toc for %s\n" -msgstr "%P: no se puede encontrar la tabla de contenidos de la entrada opd para %s\n" +#: elf64-ppc.c:9165 +#, c-format +msgid "%H: toc optimization is not supported for %s instruction.\n" +msgstr "%H: optimización toc no está admitida para instrucción %s.\n" + +#: elf64-ppc.c:9394 +#, c-format +msgid "%H: %s references optimized away TOC entry\n" +msgstr "%H: reubicaciones %s optimizada externa a entrada TOC\n" + +#: elf64-ppc.c:10157 +#, c-format +msgid "warning: discarding dynamic section %s" +msgstr "aviso: descartando sección dinámica %s" + +#: elf64-ppc.c:10746 +msgid "%P: cannot find opd entry toc for `%T'\n" +msgstr "%P: no se puede encontrar la entrada opd toc para `%T'\n" -#: elf64-ppc.c:9680 +#: elf64-ppc.c:10837 msgid "%P: long branch stub `%s' offset overflow\n" -msgstr "%P: desbordamiento del desplazamiento de stub de ramificación long `%s'\n" +msgstr "%P: desbordamiento del desplazamiento de stub de ramificación long «%s»\n" -#: elf64-ppc.c:9739 +#: elf64-ppc.c:10896 msgid "%P: can't find branch stub `%s'\n" -msgstr "%P: no se puede encontrar la ramificación de cabo `%s'\n" +msgstr "%P: no se puede encontrar la ramificación de cabo «%s»\n" -#: elf64-ppc.c:9801 elf64-ppc.c:9943 -msgid "%P: linkage table error against `%s'\n" -msgstr "%P: error de la tabla de enlazado contra `%s'\n" +#: elf64-ppc.c:10960 elf64-ppc.c:11112 elf64-ppc.c:12974 +#, c-format +msgid "%P: linkage table error against `%T'\n" +msgstr "%P: error del segmento enlazada frente a `%T'\n" -#: elf64-ppc.c:10126 +#: elf64-ppc.c:11331 msgid "%P: can't build branch stub `%s'\n" -msgstr "%P: no se puede construir la ramificación de cabos `%s'\n" +msgstr "%P: no se puede construir la ramificación de cabos «%s»\n" -#: elf64-ppc.c:10941 +#: elf64-ppc.c:12104 +#, c-format msgid "%B section %A exceeds stub group size" msgstr "%B sección %A excede el tamaño de grupo de cabos" -#: elf64-ppc.c:11666 elf64-ppc.c:11699 -msgid "%P: %s offset too large for .eh_frame sdata4 encoding" -msgstr "%P: el desplazamiento %s es demasiado grande para la codificación sdata4 .eh_frame" - -#: elf64-ppc.c:11744 +#: elf64-ppc.c:13242 msgid "%P: stubs don't match calculated size\n" msgstr "%P: los cabos no coinciden con el tamaño calculado\n" -#: elf64-ppc.c:11756 +#: elf64-ppc.c:13256 +#, c-format +msgid "linker stubs in %u group\n" +msgid_plural "linker stubs in %u groups\n" +msgstr[0] "enlazador stubs en grupo %u\n" +msgstr[1] "enlazador stubs en grupos %u\n" + +#: elf64-ppc.c:13260 #, c-format msgid "" -"linker stubs in %u group%s\n" " branch %lu\n" " toc adjust %lu\n" " long branch %lu\n" " long toc adj %lu\n" -" plt call %lu" +" plt call %lu\n" +" plt call toc %lu\n" +" global entry %lu" msgstr "" -"cabos de enlazador en %u grupo%s\n" " rama %lu\n" " ajuste toc %lu\n" " rama long %lu\n" " ajuste toc long %lu\n" -" llamada plt %lu" +" llamada plt %lu\n" +" llamada plt toc %lu\n" +" entrada global %lu" + +#: elf64-ppc.c:13579 +#, c-format +msgid "%H: %s used with TLS symbol `%T'\n" +msgstr "%H: %s empleado con símbolo TLS `%T'\n" + +#: elf64-ppc.c:13581 +#, c-format +msgid "%H: %s used with non-TLS symbol `%T'\n" +msgstr "%H: %s empleado con símbolo no-TLS `%T'\n" + +#: elf64-ppc.c:14191 +#, c-format +msgid "%H: call to `%T' lacks nop, can't restore toc; recompile with -fPIC\n" +msgstr "%H: llamar a`%T' falta nop, no puede restaurar toc; recompile con -fPIC\n" + +#: elf64-ppc.c:14197 +#, c-format +msgid "%H: call to `%T' lacks nop, can't restore toc; (-mcmodel=small toc adjust stub)\n" +msgstr "%H: llama a «%T» le falta nop, no puede restaurar toc; (-mcmodel=small toc ajusta cabo)\n" + +#: elf64-ppc.c:14325 +#, c-format +msgid "%P: %B: unknown relocation type %d for `%T'\n" +msgstr "%P: %B: tipo de reubicación %d desconocido para `%T'\n" + +#: elf64-ppc.c:14874 +#, c-format +msgid "%H: %s for indirect function `%T' unsupported\n" +msgstr "" +"%H: %s para función `%T' indirecta no admitida\n" +"\n" -#: elf64-ppc.c:12042 -msgid "%P: %H: %s used with TLS symbol %s\n" -msgstr "%P: %H: se usó %s con el símbolo TLS %s\n" +#: elf64-ppc.c:14986 +#, c-format +msgid "%P: %B: %s is not supported for `%T'\n" +msgstr "%P: %B: %s no está apoyado para `%T'\n" -#: elf64-ppc.c:12043 -msgid "%P: %H: %s used with non-TLS symbol %s\n" -msgstr "%P: %H: se usó %s con el símbolo %s que no es TLS\n" +#: elf64-ppc.c:15169 +#, c-format +msgid "%H: error: %s not a multiple of %u\n" +msgstr "%H: error: %s no un múltiplo de %u\n" -#: elf64-ppc.c:12556 -msgid "%P: %H: automatic multiple TOCs not supported using your crt files; recompile with -mminimal-toc or upgrade gcc\n" -msgstr "%P: %H: no se admiten los TOCs múltiples automáticos, utilizando sus ficheros crt; recompile con -mminimal-toc o actualice gcc\n" +#: elf64-ppc.c:15191 +#, c-format +msgid "%H: unresolvable %s against `%T'\n" +msgstr "%H: irresoluble %s frente a `%T'\n" -#: elf64-ppc.c:12562 -msgid "%P: %H: sibling call optimization to `%s' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `%s' extern\n" -msgstr "%P: %H: 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\n" +#: elf64-ppc.c:15288 +#, c-format +msgid "%H: %s against `%T': error %d\n" +msgstr "%H: %s frente a `%T': error %d\n" -#: elf64-ppc.c:13286 -msgid "%P: %B: relocation %s is not supported for symbol %s\n" -msgstr "%P: %B: no se admite la reubicación %s para el símbolo %s\n" +#: elf64-ppc.c:15678 elf64-ppc.c:15697 +msgid "%P: %s offset too large for .eh_frame sdata4 encoding" +msgstr "%P: el desplazamiento %s es demasiado grande para la codificación sdata4 .eh_frame" -#: elf64-ppc.c:13446 -msgid "%P: %H: error: %s not a multiple of %u\n" -msgstr "%P: %H: error: %s no es un múltiplo de %u\n" +#: elf64-s390.c:2533 +msgid "%B: `%s' non-PLT reloc for symbol defined in shared library and accessed from executable (rebuild file with -fPIC ?)" +msgstr "%B: `%s' no-PLT reubica para símbolo definido dentro de biblioteca compartida y accedido desde ejecutable (recompilar fichero con -fPIC ?)" -#: elf64-sh64.c:1686 +#: elf64-sh64.c:1680 #, 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" +msgid "%B: error: unaligned relocation type %d at %08Lx reloc %08Lx" +msgstr "%B: error: tipo de reubicación %d sin alinear en %08Lx reubicación %08Lx" -#: elf64-sparc.c:446 +#: elf64-sparc.c:460 msgid "%B: Only registers %%g[2367] can be declared using STT_REGISTER" msgstr "%B: Solamente los registros %%g[2367] se pueden declarar utilizando STT_REGISTER" -#: elf64-sparc.c:466 +#: elf64-sparc.c:481 +#, c-format msgid "Register %%g%d used incompatibly: %s in %B, previously %s in %B" msgstr "El registro %%g%d se usó de forma incompatible: %s en %B, previamente %s en %B" -#: elf64-sparc.c:489 +#: elf64-sparc.c:505 +#, c-format msgid "Symbol `%s' has differing types: REGISTER in %B, previously %s in %B" -msgstr "El símbolo `%s' tiene tipos divergentes: REGISTER en %B, previamente %s en %B" +msgstr "El símbolo «%s» tiene tipos divergentes: REGISTER en %B, previamente %s en %B" -#: elf64-sparc.c:534 +#: elf64-sparc.c:552 +#, c-format msgid "Symbol `%s' has differing types: %s in %B, previously REGISTER in %B" -msgstr "El símbolo `%s' tiene tipos divergentes: %s en %B, previamente REGISTER en %B" +msgstr "El símbolo «%s» tiene tipos divergentes: %s en %B, previamente REGISTER en %B" -#: elf64-sparc.c:687 +#: elf64-sparc.c:707 msgid "%B: linking UltraSPARC specific with HAL specific code" msgstr "%B: se enlaza código específico de UltraSPARC con código específico de HAL" -#: elf64-x86-64.c:1427 +#: elf64-x86-64.c:1370 +msgid "hidden symbol " +msgstr "símbolo oculto " + +#: elf64-x86-64.c:1373 +msgid "internal symbol " +msgstr "símbolo interno " + +#: elf64-x86-64.c:1376 elf64-x86-64.c:1380 +msgid "protected symbol " +msgstr "símbolo protegido " + +#: elf64-x86-64.c:1382 +msgid "symbol " +msgstr "símbolo " + +#: elf64-x86-64.c:1383 elf64-x86-64.c:1393 +msgid "; recompile with -fPIC" +msgstr "; recompile con -fPIC" + +#: elf64-x86-64.c:1388 +msgid "undefined " +msgstr "indefinido " + +#: elf64-x86-64.c:1397 +msgid "a shared object" +msgstr "un objeto compartido" + +#: elf64-x86-64.c:1399 +msgid "a PIE object" +msgstr "un objeto PIE" + +#: elf64-x86-64.c:1401 +msgid "a PDE object" +msgstr "un objeto PDE" + +#: elf64-x86-64.c:1404 +#, c-format +msgid "%B: relocation %s against %s%s`%s' can not be used when making %s%s" +msgstr "%B: reubicación %s frente a %s%s «%s» no puede emplearse cuando se crea %s%s" + +#: elf64-x86-64.c:1889 +#, c-format msgid "%B: relocation %s against symbol `%s' isn't supported in x32 mode" -msgstr "%B: la reubicación %s contra el símbolo `%s' no se admite en modo x32" +msgstr "%B: reubicación %s frente al símbolo «%s» no se admite en modo x32" -#: elf64-x86-64.c:1656 +#: elf64-x86-64.c:2027 +#, c-format msgid "%B: '%s' accessed both as normal and thread local symbol" -msgstr "%B: se accedió a '%s' como un símbolo normal y como un símbolo local de hilo" +msgstr "%B: «%s» accedido ambos como un símbolo común e hilo local" -#: elf64-x86-64.c:3150 -msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %d" -msgstr "%B: la reubicación %s contra el símbolo STT_GNU_IFUNC `%s' con adición que no es cero: %d" +#: elf64-x86-64.c:2651 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:5040 +#, c-format +msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %Ld" +msgstr "%B: reubicación %s frente al símbolo STT_GNU_IFUNC «%s» tiene añadido algo distinto de cero: %Ld" -#: elf64-x86-64.c:3411 -msgid "%B: relocation R_X86_64_GOTOFF64 against protected function `%s' can not be used when making a shared object" -msgstr "%B: no se puede usar la reubicación R_X86_64_GOTOFF contra la función protegida `%s' cuando se hace un objeto compartido" +#: elf64-x86-64.c:2888 +#, c-format +msgid "%B: relocation R_X86_64_GOTOFF64 against undefined %s `%s' can not be used when making a shared object" +msgstr "%B: no se puede usar la reubicación R_X86_64_GOTOFF64 contra %s indefinida «%s» cuando se hace un objeto compartido" -#: elf64-x86-64.c:3523 -msgid "; recompile with -fPIC" -msgstr "; recompile con -fPIC" +#: elf64-x86-64.c:2902 +#, c-format +msgid "%B: relocation R_X86_64_GOTOFF64 against protected %s `%s' can not be used when making a shared object" +msgstr "%B: reubicación R_X86_64_GOTOFF64 contra %s protegida «%s» puede no ser empleada cuando crea un objeto compartido" + +#: elf64-x86-64.c:3153 +#, c-format +msgid "%B: addend %s%#x in relocation %s against symbol `%s' at %#Lx in section `%A' is out of range" +msgstr "%B: añadir final %s%#x en reubicación %s frente símbolo «%s» en %#Lx en sección `%A' está fuera de rango" + +#: elf64-x86-64.c:3828 +msgid "%F%P: failed to convert GOTPCREL relocation; relink with --no-relax\n" +msgstr "%F%P: fallado al convertir reubicación GOTPCREL; renlaza con --no-relax\n" -#: elf64-x86-64.c:3528 -msgid "%B: relocation %s against %s `%s' can not be used when making a shared object%s" -msgstr "%B: no se puede usar la reubicación %s contra %s `%s' cuando se hace un objeto compartido%s" +#: elf64-x86-64.c:3986 +#, c-format +msgid "%F%B: PC-relative offset overflow in PLT entry for `%s'\n" +msgstr "%F%B: desbordamiento superior de desplazamiento relativo Pc dentro e asiento PLT para «%s»\n" -#: elf64-x86-64.c:3530 -msgid "%B: relocation %s against undefined %s `%s' can not be used when making a shared object%s" -msgstr "%B: no se puede usar la reubicación %s contra %s sin definir `%s' cuando se hace un objeto compartido%s" +#: elf64-x86-64.c:4049 +#, c-format +msgid "%F%B: branch displacement overflow in PLT entry for `%s'\n" +msgstr "%F%B: desbordamiento superior de rama desplazada en entrada PLT para «%s»\n" -#: elfcode.h:767 +#: elf64-x86-64.c:4102 #, c-format -msgid "warning: %s has a corrupt string table index - ignoring" -msgstr "aviso: %s tiene un índice de tablas de cadenas corrupto - se descarta" +msgid "%F%B: PC-relative offset overflow in GOT PLT entry for `%s'\n" +msgstr "%F%B: desplazamiento PC-relativo desborda por encima el asiento GOT PLT para `%s'\n" -#: elfcode.h:1177 +#: elfcode.h:760 +msgid "warning: %B has a corrupt string table index - ignoring" +msgstr "aviso: %B tiene un índice de tablas de cadenas corrupto - se descarta" + +#: elfcode.h:1199 #, 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)" +msgid "%B: version count (%Ld) does not match symbol count (%ld)" +msgstr "%B: contador de versión (%Ld) no coincide con la cuenta simbólica (%ld)" -#: elfcode.h:1431 +#: elfcode.h:1456 #, 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" +msgid "%B(%A): relocation %d has invalid symbol index %ld" +msgstr "%B(%A): reubicación %d tiene un índice simbólico %ld inválido" -#: elfcore.h:312 -msgid "Warning: %B is truncated: expected core file size >= %lu, found: %lu." -msgstr "Aviso: se truncó %B: se esperaba el tamaño de fichero core >= %lu, se encontró: %lu." +#: elfcore.h:300 +#, c-format +msgid "warning: %B is truncated: expected core file size >= %Lu, found: %llu" +msgstr "aviso: %B está truncado: esperaba el tamaño de fichero core >= %Lu, se encontró: %llu" -#: elflink.c:1117 +#: elflink.c:1353 +#, c-format msgid "%s: TLS definition in %B section %A mismatches non-TLS definition in %B section %A" msgstr "%s: la definición TLS en %B sección %A no coincide con la definición que no es TLS en %B sección %A" -#: elflink.c:1121 +#: elflink.c:1359 +#, c-format msgid "%s: TLS reference in %B mismatches non-TLS reference in %B" msgstr "%s: la referencia TLS en %B no coincide con la referencia que no es TLS en %B" -#: elflink.c:1125 +#: elflink.c:1365 +#, c-format msgid "%s: TLS definition in %B section %A mismatches non-TLS reference in %B" msgstr "%s: la definición TLS en %B sección %A no coincide con la referencia que no es TLS en %B" -#: elflink.c:1129 +#: elflink.c:1371 +#, c-format msgid "%s: TLS reference in %B mismatches non-TLS definition in %B section %A" msgstr "%s: la referencia TLS en %B no coincide con la definición que no es TLS en %B sección %A" -#: elflink.c:1762 +#: elflink.c:2052 +#, c-format msgid "%B: unexpected redefinition of indirect versioned symbol `%s'" -msgstr "%B: redefinición inesperada del símbolo con versión indirecta `%s'" +msgstr "%B: redefinición inesperada del símbolo con versión indirecta «%s»" -#: elflink.c:2063 +#: elflink.c:2345 +#, c-format msgid "%B: version node not found for symbol %s" msgstr "%B: no se encuentra la versión del nodo para el símbolo %s" -#: elflink.c:2154 -msgid "%B: bad reloc symbol index (0x%lx >= 0x%lx) for offset 0x%lx in section `%A'" -msgstr "%B: índice de símbolos de reubicación inválido (0x%lx >= 0x%lx) erróneo para el desplazamiento 0x%lx en la sección `%A'" - -#: elflink.c:2165 -msgid "%B: non-zero symbol index (0x%lx) for offset 0x%lx in section `%A' when the object file has no symbol table" -msgstr "%B: índice de símbolos que no es cero (0x%lx) para el desplazamiento 0x%lx) en la sección `%A' cuando el fichero objeto no tiene tabla de símbolos" +#: elflink.c:2434 +#, c-format +msgid "%B: bad reloc symbol index (%#Lx >= %#lx) for offset %#Lx in section `%A'" +msgstr "%B: indexado simbólico de reubicación equivocado (%#Lx >= %#lx) para desplazar %#Lx dentro de sección `%A'" + +#: elflink.c:2446 +#, c-format +msgid "%B: non-zero symbol index (%#Lx) for offset %#Lx in section `%A' when the object file has no symbol table" +msgstr "%B: índice simbólicos distinto de cero (%#Lx) para desplazamiento %#Lx en la sección `%A' cuando el fichero objeto no tiene ningún segmento simbólico" -#: elflink.c:2355 +#: elflink.c:2637 +#, c-format msgid "%B: relocation size mismatch in %B section %A" msgstr "%B: el tamaño de reubicación no coincide en %B sección %A" -#: elflink.c:2639 +#: elflink.c:2955 #, 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" +msgstr "aviso: el tipo y tamaño del símbolo dinámico «%s» no están definidos" -#: elflink.c:3391 +#: elflink.c:3017 +msgid "%P: copy reloc against protected `%T' is dangerous\n" +msgstr "%P: copiar reubicación frente a «%T» protegido es peligroso\n" + +#: elflink.c:3818 +#, c-format msgid "%P: alternate ELF machine code found (%d) in %B, expecting %d\n" msgstr "%P: se encontró código máquina ELF alternativo (%d) en %B, se espera %d\n" -#: elflink.c:4037 +#: elflink.c:4484 +#, c-format msgid "%B: %s: invalid version %u (max %d)" msgstr "%B: %s: versión %u inválida (máximo %d)" -#: elflink.c:4073 +#: elflink.c:4521 +#, c-format msgid "%B: %s: invalid needed version %d" msgstr "%B: %s: versión requerida %d inválida" -#: elflink.c:4269 -msgid "Warning: alignment %u of common symbol `%s' in %B is greater than the alignment (%u) of its section %A" -msgstr "Aviso: la alineación %u del símbolo común `%s' en %B es más grande que la alineación (%u) de su sección %A" - -#: elflink.c:4275 -msgid "Warning: alignment %u of symbol `%s' in %B is smaller than %u in %B" -msgstr "Aviso: la alineación %u del símbolo `%s' en %B es más pequeña que %u en %B" - -#: elflink.c:4290 -msgid "Warning: size of symbol `%s' changed from %lu in %B to %lu in %B" -msgstr "Aviso: el tamaño del símbolo `%s' cambió de %lu en %B a %lu en %B" - -#: elflink.c:4463 +#: elflink.c:4932 +#, c-format msgid "%B: undefined reference to symbol '%s'" -msgstr "%B: referencia sin definir al símbolo '%s'" +msgstr "%B: referencia sin definir al símbolo «%s»" -#: elflink.c:4466 -msgid "note: '%s' is defined in DSO %B so try adding it to the linker command line" -msgstr "nota: se define '%s' en DSO %B así que se tratará de agregarlo a la línea de órdenes del enlazador" +#: elflink.c:6008 +#, c-format +msgid "%B: stack size specified and %s set" +msgstr "%B: tamaño de pila especificado y %s establecido" + +#: elflink.c:6012 +#, c-format +msgid "%B: %s not absolute" +msgstr "%B: %s no absoluto" -#: elflink.c:5781 +#: elflink.c:6209 #, c-format msgid "%s: undefined version: %s" msgstr "%s: versión sin definir: %s" -#: elflink.c:5849 +#: elflink.c:6780 msgid "%B: .preinit_array section is not allowed in DSO" msgstr "%B: no se permite la sección .preinit_array en DSO" -#: elflink.c:7604 +#: elflink.c:8217 #, c-format msgid "undefined %s reference in complex symbol: %s" msgstr "referencia %s sin definir en el símbolo complejo: %s" -#: elflink.c:7758 +#: elflink.c:8372 #, c-format msgid "unknown operator '%c' in complex symbol" msgstr "operador desconocido '%c' en el símbolo complejo" -#: elflink.c:8097 elflink.c:8114 elflink.c:8151 elflink.c:8168 +#. PR 21524: Let the user know if a symbol was removed by garbage collection. +#: elflink.c:8710 +msgid "%B:%A: error: relocation references symbol %s which was removed by garbage collection." +msgstr "%B:%A: error: referencias simbólicas %s reubicadas las cuales fueron quitadas para colección de basura." + +#: elflink.c:8713 +msgid "%B:%A: error: try relinking with --gc-keep-exported enabled." +msgstr "%B:%A: error: intente reenlazar con --gc-keep-exported activado." + +#: elflink.c:8949 elflink.c:8967 elflink.c:9006 elflink.c:9024 msgid "%B: Unable to sort relocs - they are in more than one size" -msgstr "%B: No se pueden ordenar las reubicaciones - son de tamaños diferentes" +msgstr "%B: no se pueden ordenar las reubicaciones - son de tamaños diferentes" -#: elflink.c:8128 elflink.c:8182 +#. The section size is not divisible by either - +#. something is wrong. +#: elflink.c:8983 elflink.c:9040 msgid "%B: Unable to sort relocs - they are of an unknown size" -msgstr "%B: No se pueden ordenar las reubicaciones - son de tamaño desconocido" +msgstr "%B: no se pueden ordenar las reubicaciones - son de tamaño desconocido" -#: elflink.c:8233 +#: elflink.c:9092 msgid "Not enough memory to sort relocations" msgstr "No hay suficiente memoria para ordenar las reubicaciones" -#: elflink.c:8426 +#: elflink.c:9360 +#, c-format msgid "%B: Too many sections: %d (>= %d)" msgstr "%B: Demasiadas secciones: %d (>= %d)" -#: elflink.c:8675 +#: elflink.c:9640 +#, c-format msgid "%B: internal symbol `%s' in %B is referenced by DSO" -msgstr "%B: el símbolo interno `%s' en %B está referenciado por DSO" +msgstr "%B: el símbolo interno «%s» en %B está referenciado por DSO" -#: elflink.c:8677 +#: elflink.c:9643 +#, c-format msgid "%B: hidden symbol `%s' in %B is referenced by DSO" -msgstr "%B: el símbolo oculto `%s' en %B está referenciado por DSO" +msgstr "%B: símbolo oculto «%s» en %B está referenciado por DSO" -#: elflink.c:8679 +#: elflink.c:9646 +#, c-format msgid "%B: local symbol `%s' in %B is referenced by DSO" -msgstr "%B: el símbolo local `%s' en %B está referenciado por DSO" +msgstr "%B: el símbolo local «%s» en %B está referenciado por DSO" -#: elflink.c:8776 +#: elflink.c:9732 +#, c-format msgid "%B: could not find output section %A for input section %A" msgstr "%B: no se puede encontrar la sección de salida %A para la sección de entrada %A" -#: elflink.c:8899 +#: elflink.c:9886 +#, c-format msgid "%B: protected symbol `%s' isn't defined" -msgstr "%B: el símbolo protegido `%s' no está definido" +msgstr "%B: el símbolo protegido «%s» no está definido" -#: elflink.c:8901 +#: elflink.c:9889 +#, c-format msgid "%B: internal symbol `%s' isn't defined" -msgstr "%B: el símbolo interno `%s' no está definido" +msgstr "%B: el símbolo interno «%s» no está definido" -#: elflink.c:8903 +#: elflink.c:9892 +#, c-format msgid "%B: hidden symbol `%s' isn't defined" -msgstr "%B: el símbolo oculto `%s' no está definido" +msgstr "%B: símbolo oculto «%s» no está definido" -#: elflink.c:9432 +#: elflink.c:9923 +#, c-format +msgid "%B: No symbol version section for versioned symbol `%s'" +msgstr "%B: ninguna sección de versión simbólica para símbolo «%s» versionado" + +#: elflink.c:10533 +#, c-format msgid "error: %B: size of section %A is not multiple of address size" msgstr "error: %B: el tamaño de la sección %A no es un múltiplo del tamaño de la dirección" -#: elflink.c:9479 -msgid "error: %B contains a reloc (0x%s) for section %A that references a non-existent global symbol" -msgstr "error: %B contiene una reubicación (0x%s) para la sección %A que refiere a un símbolo global que no existe" +#: elflink.c:10578 +#, c-format +msgid "error: %B contains a reloc (%#Lx) for section %A that references a non-existent global symbol" +msgstr "error: %B contiene una reubicación (%#Lx) para la sección %A que refiere a un símbolo global no existente" -#: elflink.c:10214 +#: elflink.c:11333 +#, c-format msgid "%A has both ordered [`%A' in %B] and unordered [`%A' in %B] sections" msgstr "%A tiene tanto secciones ordenadas [`%A' en %B] como desordenadas [`%A' en %B]" -#: elflink.c:10219 +#: elflink.c:11339 #, c-format msgid "%A has both ordered and unordered sections" msgstr "%A tiene secciones tanto ordenadas como desordenadas" -#: elflink.c:10784 +#: elflink.c:11441 +msgid "%B: no symbol found for import library" +msgstr "%B: ningún símbolo encontrado para importar biblioteca" + +#: elflink.c:12063 +#, c-format msgid "%B: file class %s incompatible with %s" -msgstr "%B: el fichero de clase %s es incompatible con %s" +msgstr "%B: fichero de clase %s es incompatible con %s" -#: elflink.c:11093 elflink.c:11137 -msgid "%B: could not find output section %s" -msgstr "%B: no se puede encontrar la sección de salida %s" +#: elflink.c:12280 +msgid "%B: failed to generate import library" +msgstr "%B: fallaba al generar biblioteca importada" -#: elflink.c:11098 +#: elflink.c:12399 #, c-format msgid "warning: %s section has zero size" msgstr "aviso: la sección %s es de tamaño cero" -#: elflink.c:11143 +#: elflink.c:12447 #, c-format msgid "warning: section '%s' is being made into a note" -msgstr "aviso: la sección '%s' se está convirtiendo en una nota" +msgstr "aviso: la sección «%s» se está convirtiendo en una nota" -#: elflink.c:11212 +#: elflink.c:12539 msgid "%P%X: read-only segment has dynamic relocations.\n" msgstr "%P%X: un segmento de sólo lectura tiene reubicaciones dinámicas.\n" -#: elflink.c:11215 +#: elflink.c:12542 msgid "%P: warning: creating a DT_TEXTREL in a shared object.\n" msgstr "%P: aviso: se crea un DT_TEXTREL en un objeto compartido.\n" -#: elflink.c:11402 +#: elflink.c:12667 msgid "%P%X: can not read symbols: %E\n" msgstr "%P%X: no se pueden leer símbolos: %E\n" -#: elflink.c:11792 -msgid "Removing unused section '%s' in file '%B'" -msgstr "Se elimina la sección sin uso '%s' en el fichero '%B'" +#: elflink.c:12829 +msgid "%F%P: corrupt input: %B\n" +msgstr "%F%P: entrada corrupta: %B\n" -#: elflink.c:11998 -msgid "Warning: gc-sections option ignored" -msgstr "Aviso: se descarta la opción gc-sections" +#: elflink.c:13495 +#, c-format +msgid "%B: %A+%#Lx: No symbol found for INHERIT" +msgstr "%B: %A+%#Lx: Ningún símbolo encontrado para INHERIT" -#: elflink.c:12277 +#: elflink.c:13671 #, c-format msgid "Unrecognized INPUT_SECTION_FLAG %s\n" msgstr "No se reconoce INPUT_SECTION_FLAG %s\n" -#: elfxx-mips.c:1234 +#: elfxx-mips.c:1444 msgid "static procedure (no name)" msgstr "procedimiento estático (sin nombre)" -#: elfxx-mips.c:5259 +#: elfxx-mips.c:5628 msgid "MIPS16 and microMIPS functions cannot call each other" -msgstr "las funciones MIPS16 y microMIPS no se pueden llamar unas a otras" +msgstr "Funciones MIPS16 y microMIPS no se pueden llamar unas a otras" + +#: elfxx-mips.c:6376 +msgid "%X%H: Unsupported JALX to the same ISA mode\n" +msgstr "%X%H: JALX no soportado para el mismo modo ISA\n" + +#: elfxx-mips.c:6409 +msgid "%X%H: Unsupported jump between ISA modes; consider recompiling with interlinking enabled\n" +msgstr "%X%H: omisión no permitido entre modos ISA; considere recompilar con el entrelazado activado\n" -#: elfxx-mips.c:5856 -msgid "%B: %A+0x%lx: Direct jumps between ISA modes are not allowed; consider recompiling with interlinking enabled." -msgstr "%B: %A+0x%lx: No se permiten los saltos directos entre modos ISA; considere recompilar con el entrelazado activado." +#: elfxx-mips.c:6454 +msgid "%X%H: Cannot convert branch between ISA modes to JALX: relocation out of range\n" +msgstr "%X%H: no puede convertir rama entre modos ISA a JALX: reubicando fuera de límite\n" -#: elfxx-mips.c:6519 elfxx-mips.c:6742 +#: elfxx-mips.c:6466 +msgid "%X%H: Unsupported branch between ISA modes\n" +msgstr "%X%H: rama no soportada entre modos ISA\n" + +#: elfxx-mips.c:7144 elfxx-mips.c:7379 +#, c-format msgid "%B: Warning: bad `%s' option size %u smaller than its header" -msgstr "%B: Aviso: el tamaño de opción `%s' %u erróneo es más pequeño que su encabezado" +msgstr "%B: Aviso: el tamaño de opción «%s» %u equivocado es más pequeño que su encabezado" -#: elfxx-mips.c:7495 elfxx-mips.c:7620 +#: elfxx-mips.c:8135 elfxx-mips.c:8261 +#, c-format msgid "%B: Warning: cannot determine the target function for stub section `%s'" -msgstr "%B: Aviso: no se puede determinar la función objetivo para la sección de cabo `%s'" +msgstr "%B: Aviso: no se puede determinar la función objetivo para la sección de cabo «%s»" -#: elfxx-mips.c:7749 +#: elfxx-mips.c:8393 +#, c-format msgid "%B: Malformed reloc detected for section %s" msgstr "%B: Se detectó una reubicación malformada para la sección %s" -#: elfxx-mips.c:7801 -msgid "%B: GOT reloc at 0x%lx not expected in executables" -msgstr "%B: no se esperaba la reubicación GOT en 0x%lx en ejecutables" - -#: elfxx-mips.c:7930 -msgid "%B: CALL16 reloc at 0x%lx not against global symbol" -msgstr "%B: la reubicación CALL16 en 0x%lx no es contra un símbolo global" +#: elfxx-mips.c:8465 +#, c-format +msgid "%B: GOT reloc at %#Lx not expected in executables" +msgstr "%B: reubicación GOT en %#Lx no esperado en ejecutables" + +#: elfxx-mips.c:8603 +#, c-format +msgid "%B: CALL16 reloc at %#Lx not against global symbol" +msgstr "%B: reubicación CALL16 en %Lx no contra símbolo global" -#: elfxx-mips.c:8645 +#: elfxx-mips.c:9226 #, c-format msgid "non-dynamic relocations refer to dynamic symbol %s" msgstr "reubicaciones que no son dinámicas se refieren al símbolo dinámico %s" -#: elfxx-mips.c:9347 -msgid "%B: Can't find matching LO16 reloc against `%s' for %s at 0x%lx in section `%A'" -msgstr "%B: No se puede encontrar una reubicación LO16 coincidente contra `%s' para %s en 0x%lx en la sección `%A'" +#: elfxx-mips.c:10146 +#, c-format +msgid "%B: Can't find matching LO16 reloc against `%s' for %s at %#Lx in section `%A'" +msgstr "%B: no se puede encontrar una reubicación LO16 coincidente contra «%s» para %s en %#Lx en la sección `%A'" -#: elfxx-mips.c:9486 +#: elfxx-mips.c:10286 msgid "small-data section exceeds 64KB; lower small-data size limit (see option -G)" msgstr "la sección small-data excede los 64KB; disminuya el límite de tamaño de small-data (vea la opción -G)" -#: elfxx-mips.c:9505 -msgid "JALX to a non-word-aligned address" -msgstr "JALX a una dirección que no está alineada con word" +#: elfxx-mips.c:10305 +msgid "Cannot convert a jump to JALX for a non-word-aligned address" +msgstr "No puede convertir una omisión a JALX para una dirección que no está alineada con word" + +#: elfxx-mips.c:10308 +msgid "Jump to a non-word-aligned address" +msgstr "Omite a una dirección no alineada con word" + +#: elfxx-mips.c:10309 +msgid "Jump to a non-instruction-aligned address" +msgstr "Omite a una dirección que no está alineada con instrucción" + +#: elfxx-mips.c:10312 +msgid "Cannot convert a branch to JALX for a non-word-aligned address" +msgstr "No puede convertir una rama a JALX para una dirección no está alineada con word" + +#: elfxx-mips.c:10314 +msgid "Branch to a non-instruction-aligned address" +msgstr "Rama a una dirección que no está alineada con instrucción" + +#: elfxx-mips.c:10316 +msgid "PC-relative load from unaligned address" +msgstr "Carga relativa PC desde dirección no alineada" + +#: elfxx-mips.c:10690 elfxx-mips.c:11258 +#, c-format +msgid "%B: `%A' offset of %Ld from `%A' beyond the range of ADDIUPC" +msgstr "%B: desplazamiento `%A' de %Ld desde `%A' más allá que el rango de ADDIUPC" + +#: elfxx-mips.c:14121 +#, c-format +msgid "%B: Unknown architecture %s" +msgstr "%B: arquitectura %d desconocida" + +#: elfxx-mips.c:14380 +msgid "%B: .reginfo section size should be %d bytes, actual size is %d" +msgstr "%B: tamaño de sección .reginfo debería ser de %d bytes, tamaño actual es %d" + +#: elfxx-mips.c:14659 +#, c-format +msgid "%B: illegal section name `%A'" +msgstr "%B: nombre de sección ilegal `%A'" + +#: elfxx-mips.c:14936 +msgid "%B: warning: linking abicalls files with non-abicalls files" +msgstr "%B: aviso: se enlazan ficheros de llamadas ABI con ficheros que no son de llamadas ABI" + +#: elfxx-mips.c:14953 +msgid "%B: linking 32-bit code with 64-bit code" +msgstr "%B: se enlaza código de 32-bit con código de 64-bit" + +#: elfxx-mips.c:14985 elfxx-mips.c:15051 elfxx-mips.c:15066 +#, c-format +msgid "%B: linking %s module with previous %s modules" +msgstr "%B: se enlaza el módulo %s con módulos %s previos" + +#: elfxx-mips.c:15009 +#, c-format +msgid "%B: ABI mismatch: linking %s module with previous %s modules" +msgstr "%B: no coincide ABI: se enlaza el módulo %s con módulos %s previos" + +#: elfxx-mips.c:15034 +#, c-format +msgid "%B: ASE mismatch: linking %s module with previous %s modules" +msgstr "%B: no coincide ASE: se enlaza el módulo %s con módulos %s previos" + +#: elfxx-mips.c:15168 +msgid "Warning: %B uses unknown floating point ABI %d (set by %B), %B uses unknown floating point ABI %d" +msgstr "Aviso: %B emplea la ABI de coma flotante desconocida %d (establecida por %B), %B emplea ABI con coma flotante %d desconocida" + +#: elfxx-mips.c:15174 +#, c-format +msgid "Warning: %B uses unknown floating point ABI %d (set by %B), %B uses %s" +msgstr "Aviso: %B utiliza coma flotante ABI %d (establecido por %B), %B emplea %s" + +#: elfxx-mips.c:15180 +#, c-format +msgid "Warning: %B uses %s (set by %B), %B uses unknown floating point ABI %d" +msgstr "Aviso: %B emplea %s (establece por %B), %B emplea punto flotante ABI desconocido %d" -#: elfxx-mips.c:13266 +#: elfxx-mips.c:15194 #, c-format -msgid "%s: illegal section name `%s'" -msgstr "%s: nombre de sección `%s' ilegal" +msgid "Warning: %B uses %s (set by %B), %B uses %s" +msgstr "Aviso: %B emplea %s (establecido por %B), %B emplea %s" -#: elfxx-mips.c:13645 elfxx-mips.c:13671 -msgid "Warning: %B uses -msingle-float, %B uses -mdouble-float" -msgstr "Aviso: %B usa -msingle-float, %B usa -mdouble-float" +#: elfxx-mips.c:15213 +#, c-format +msgid "Warning: %B uses %s (set by %B), %B uses unknown MSA ABI %d" +msgstr "Aviso: %B utiliza %s (establecido por %B), %B utiliza ABI MSA desconocido %d" -#: elfxx-mips.c:13657 elfxx-mips.c:13713 -msgid "Warning: %B uses -msingle-float, %B uses -mips32r2 -mfp64" -msgstr "Aviso: %B usa -msingle-float, %B usa -mips32r2 -mfp64" +#: elfxx-mips.c:15225 +#, c-format +msgid "Warning: %B uses unknown MSA ABI %d (set by %B), %B uses %s" +msgstr "Aviso: %B emplea la ABI MSA desconocida%d (establece por %B), %B emplea %s" -#: elfxx-mips.c:13683 elfxx-mips.c:13719 -msgid "Warning: %B uses -mdouble-float, %B uses -mips32r2 -mfp64" -msgstr "Aviso: %B usa -mdouble-float, %B usa -mips32r2 -mfp64" +#: elfxx-mips.c:15234 +#, c-format +msgid "Warning: %B uses unknown MSA ABI %d (set by %B), %B uses unknown MSA ABI %d" +msgstr "Aviso: %B emplea MSA ABI %d desconocida (establece por %B), %B emplea MSA ABI %d" -#: elfxx-mips.c:13761 +#: elfxx-mips.c:15296 msgid "%B: endianness incompatible with that of the selected emulation" -msgstr "%B: la endianez es incompatible con aquella de la emulación seleccionada" +msgstr "%B: endianez es incompatible con aquella de la emulación seleccionada" + +#: elfxx-mips.c:15310 +msgid "%B: ABI is incompatible with that of the selected emulation" +msgstr "%B: la ABI es incompatible con aquella de la emulación seleccionada" + +#: elfxx-mips.c:15362 +msgid "%B: warning: Inconsistent ISA between e_flags and .MIPS.abiflags" +msgstr "%B: aviso: ISA inconsistente entre e_flags y .MIPS.abiflags" + +#: elfxx-mips.c:15367 +msgid "%B: warning: Inconsistent FP ABI between .gnu.attributes and .MIPS.abiflags" +msgstr "%B: aviso: ABI FP inconsistente entre .gnu.attributes y .MIPS.abiflags" + +#: elfxx-mips.c:15371 +msgid "%B: warning: Inconsistent ASEs between e_flags and .MIPS.abiflags" +msgstr "%B: aviso: ASEs inconsistentes entre e_flags y .MIPS.abiflags" + +#: elfxx-mips.c:15378 +msgid "%B: warning: Inconsistent ISA extensions between e_flags and .MIPS.abiflags" +msgstr "%B: aviso: Extensiones ISA inconsistente entre e_flags y .MIPS.abiflags" + +#: elfxx-mips.c:15382 +msgid "%B: warning: Unexpected flag in the flags2 field of .MIPS.abiflags (0x%lx)" +msgstr "%B: aviso: Marca inesperada den el campo flags2 de .MIPS.abiflags (0x%lx)" + +#: elfxx-mips.c:15571 +msgid "-mips32r2 -mfp64 (12 callee-saved)" +msgstr "-mips32r2 -mfp64 (12 llamadas-guardadas)" + +#: elfxx-mips.c:15621 elfxx-mips.c:15632 +msgid "None" +msgstr "Ninguno" + +#: elfxx-mips.c:15623 elfxx-mips.c:15695 +msgid "Unknown" +msgstr "Desconocida" + +#: elfxx-mips.c:15706 +#, c-format +msgid "Hard or soft float\n" +msgstr "Hard o soft flotante\n" + +#: elfxx-mips.c:15709 +#, c-format +msgid "Hard float (double precision)\n" +msgstr "Coma flotante de hard (precisión doble)\n" -#: elfxx-mips.c:13772 -msgid "%B: ABI is incompatible with that of the selected emulation" -msgstr "%B: la ABI es incompatible con aquella de la emulación seleccionada" +#: elfxx-mips.c:15712 +#, c-format +msgid "Hard float (single precision)\n" +msgstr "Coma flotante de hard (precisión sencilla)\n" -#: elfxx-mips.c:13856 -msgid "%B: warning: linking abicalls files with non-abicalls files" -msgstr "%B: aviso: se enlazan ficheros de llamadas abi con ficheros que no son de llamadas abi" +#: elfxx-mips.c:15715 +#, c-format +msgid "Soft float\n" +msgstr "Flotante soft\n" -#: elfxx-mips.c:13873 -msgid "%B: linking 32-bit code with 64-bit code" -msgstr "%B: se enlaza código de 32-bit con código de 64-bit" +#: elfxx-mips.c:15718 +#, c-format +msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n" +msgstr "Flotante hard (FPU 12 llamadas-guardadas MIPS32r2 de 64-bit)\n" -#: elfxx-mips.c:13901 -msgid "%B: linking %s module with previous %s modules" -msgstr "%B: se enlaza el módulo %s con módulos %s previos" +#: elfxx-mips.c:15721 +#, c-format +msgid "Hard float (32-bit CPU, Any FPU)\n" +msgstr "Flotante Hard (32-bit CPU, cualquier FPU)\n" -#: elfxx-mips.c:13924 -msgid "%B: ABI mismatch: linking %s module with previous %s modules" -msgstr "%B: no coincide ABI: se enlaza el módulo %s con módulos %s previos" +#: elfxx-mips.c:15724 +#, c-format +msgid "Hard float (32-bit CPU, 64-bit FPU)\n" +msgstr "Flotante Hard (32-bit CPU, 64-bit FPU)\n" -#: elfxx-mips.c:13948 -msgid "%B: ASE mismatch: linking %s module with previous %s modules" -msgstr "%B: no coincide ASE: se enlaza el módulo %s con módulos %s previos" +#: elfxx-mips.c:15727 +#, c-format +msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n" +msgstr "Flotante Hard compacto (32-bit CPU, 64-bit FPU)\n" -#: elfxx-mips.c:14106 +#: elfxx-mips.c:15759 #, c-format msgid " [abi=O32]" msgstr " [abi=O32]" -#: elfxx-mips.c:14108 +#: elfxx-mips.c:15761 #, c-format msgid " [abi=O64]" msgstr " [abi=O64]" -#: elfxx-mips.c:14110 +#: elfxx-mips.c:15763 #, c-format msgid " [abi=EABI32]" msgstr " [abi=EABI32]" -#: elfxx-mips.c:14112 +#: elfxx-mips.c:15765 #, c-format msgid " [abi=EABI64]" msgstr " [abi=EABI64]" -#: elfxx-mips.c:14114 +#: elfxx-mips.c:15767 #, c-format msgid " [abi unknown]" msgstr " [abi desconocido]" -#: elfxx-mips.c:14116 +#: elfxx-mips.c:15769 #, c-format msgid " [abi=N32]" msgstr " [abi=N32]" -#: elfxx-mips.c:14118 +#: elfxx-mips.c:15771 #, c-format msgid " [abi=64]" msgstr " [abi=64]" -#: elfxx-mips.c:14120 +#: elfxx-mips.c:15773 #, c-format msgid " [no abi set]" msgstr " [no hay conjunto abi]" -#: elfxx-mips.c:14141 +#: elfxx-mips.c:15798 #, c-format msgid " [unknown ISA]" msgstr " [ISA desconocido]" -#: elfxx-mips.c:14155 +#: elfxx-mips.c:15818 #, c-format msgid " [not 32bitmode]" msgstr " [no es modo 32bit]" -#: elfxx-sparc.c:596 +#: elfxx-riscv.c:955 +#, c-format +msgid "unrecognized relocation (0x%x)" +msgstr "reubicación no reconocida (0x%x)" + +#: elfxx-sparc.c:639 #, c-format msgid "invalid relocation type %d" msgstr "tipo de reubicación %d inválido" -#: elfxx-tilegx.c:3952 +#: elfxx-sparc.c:3129 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:5024 +#, c-format +msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s" +msgstr "%B: reubicación %s frente al símbolo STT_GNU_IFUNC «%s» no es manipulada por %s" + +#: elfxx-tilegx.c:4241 +#, c-format msgid "%B: Cannot link together %s and %s objects." msgstr "%B: No se pueden enlazar juntos los objetos %s y %s." -#: i386linux.c:451 m68klinux.c:456 sparclinux.c:450 +#: elfxx-x86.c:570 +#, c-format +msgid "%P: %B: warning: relocation against `%s' in read-only section `%A'\n" +msgstr "%P: %B: aviso: reubicación contra «%s» en sección `%A' de sólo lectura\n" + +#: elfxx-x86.c:954 +msgid "%P: %B: warning: relocation in read-only section `%A'\n" +msgstr "%P: %B: aviso: reubicación en sección de sólo lectura `%A'\n" + +#: elfxx-x86.c:1287 +msgid "%P%X: read-only segment has dynamic IFUNC relocations; recompile with -fPIC\n" +msgstr "%P%X: segmento de sólo lectura tiene reubicaciones dinámicas IFUNC; recompile con -fPIC\n" + +#: elfxx-x86.c:2241 +msgid "error: %B: " +msgstr "error: %B: " + +#: elfxx-x86.c:2243 +msgid "error: %B: " +msgstr "error: %B: " + +#: elfxx-x86.c:2244 +msgid "error: %B: " +msgstr "error: %B: " + +#: elfxx-x86.c:2416 +msgid "%F%P: failed to create GNU property section\n" +msgstr "%F%P: fallado al crear sección propietaria GNU\n" + +#: elfxx-x86.c:2421 +#, c-format +msgid "%F%A: failed to align section\n" +msgstr "%F%A: falló para alinear sección\n" + +#: elfxx-x86.c:2571 +msgid "%F%P: failed to create VxWorks dynamic sections\n" +msgstr "%F%P: fallado al crear secciones dinámicas VxWorks\n" + +#: elfxx-x86.c:2580 +msgid "%F%P: failed to create GOT sections\n" +msgstr "%F%P: fallado al crear sección GOT\n" + +#: elfxx-x86.c:2598 +msgid "%F%P: failed to create ifunc sections\n" +msgstr "%F%P: fallado al crear sección ifunc\n" + +#: elfxx-x86.c:2639 +msgid "%F%P: failed to create GOT PLT section\n" +msgstr "%F%P: fallado al crear sección GOT PLT\n" + +#: elfxx-x86.c:2660 +msgid "%F%P: failed to create IBT-enabled PLT section\n" +msgstr "%F%P: fallado al crear sección PLT IBT-activo\n" + +#: elfxx-x86.c:2675 +msgid "%F%P: failed to create BND PLT section\n" +msgstr "%F%P: fallado al crear sección BND PLT\n" + +#: elfxx-x86.c:2696 +msgid "%F%P: failed to create PLT .eh_frame section\n" +msgstr "%F%P: fallado al crear sección PLT .eh_frame\n" + +#: elfxx-x86.c:2709 +msgid "%F%P: failed to create GOT PLT .eh_frame section\n" +msgstr "%F%P: fallado al crear sección GOT PLT .eh_frame\n" + +#: elfxx-x86.c:2723 +msgid "%F%P: failed to create the second PLT .eh_frame section\n" +msgstr "%F%P: fallado al crear sección PLT .eh_frame\n" + +#: i386linux.c:416 m68klinux.c:419 sparclinux.c:412 #, c-format msgid "Output file requires shared library `%s'\n" -msgstr "El fichero de salida requiere la biblioteca compartida `%s'\n" +msgstr "El fichero de salida requiere la biblioteca compartida «%s»\n" -#: i386linux.c:459 m68klinux.c:464 sparclinux.c:458 +#: i386linux.c:424 m68klinux.c:428 sparclinux.c:421 #, 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" +msgstr "El fichero de salida requiere la biblioteca compartida «%s.so.%s»\n" -#: i386linux.c:648 i386linux.c:698 m68klinux.c:656 m68klinux.c:704 -#: sparclinux.c:648 sparclinux.c:698 +#: i386linux.c:611 i386linux.c:661 m68klinux.c:617 m68klinux.c:665 +#: sparclinux.c:608 sparclinux.c:658 #, c-format msgid "Symbol %s not defined for fixups\n" msgstr "El símbolo %s no está definido para composturas\n" -#: i386linux.c:722 m68klinux.c:728 sparclinux.c:722 +#: i386linux.c:685 m68klinux.c:689 sparclinux.c:682 msgid "Warning: fixup count mismatch\n" msgstr "Aviso: no coincide la cuenta de composturas\n" #: ieee.c:159 #, c-format -msgid "%s: string too long (%d chars, max 65535)" -msgstr "%s: la cadena es demasiado larga (%d caracteres, máximo 65535)" +msgid "%B: string too long (%ld chars, max 65535)" +msgstr "%B: cadena muy larga (%ld caracteres, máx 65535)" + +#: ieee.c:226 +#, c-format +msgid "IEEE parser: string length: %#lx longer than buffer: %#lx" +msgstr "Interpretador IEEE: longitud de cadena textual: %#lx más largo que búfer: %#lx" -#: ieee.c:286 +#: ieee.c:302 #, c-format -msgid "%s: unrecognized symbol `%s' flags 0x%x" -msgstr "%s: no se reconoce el símbolo `%s' opciones 0x%x" +msgid "%B: unrecognized symbol `%s' flags 0x%x" +msgstr "%B: símbolo «%s» marcas 0x%x no reconocido" -#: ieee.c:792 +#: ieee.c:837 +#, c-format msgid "%B: unimplemented ATI record %u for symbol %u" -msgstr "%B: grabación ATI %u sin implementar para el símbolo %u" +msgstr "%B: registro ATI %u sin implementar para el símbolo %u" -#: ieee.c:816 -msgid "%B: unexpected ATN type %d in external part" -msgstr "%B: tipo ATN %d inesperado en la parte externa" +#: ieee.c:862 +#, c-format +msgid "%B: unexpected ATN type %Ld in external part" +msgstr "%B: tipo ATN %Ld inesperado en la parte externa" -#: ieee.c:838 +#: ieee.c:884 msgid "%B: unexpected type after ATN" msgstr "%B: tipo inesperado después de ATN" #: ihex.c:230 +#, c-format msgid "%B:%d: unexpected character `%s' in Intel Hex file" -msgstr "%B:%d: carácter `%s' inesperado en el fichero Hexadecimal de Intel" +msgstr "%B:%d: carácter «%s» inesperado en el fichero Hex Intel" -#: ihex.c:337 +#: ihex.c:338 +#, c-format msgid "%B:%u: bad checksum in Intel Hex file (expected %u, found %u)" -msgstr "%B:%u: suma de comprobación errónea en el fichero Hexadecimal de Intel (se esperaba %u, se obtuvo %u)" +msgstr "%B:%u: equivocación de comprobación sumatoria en el fichero Hex Intel (se esperaba %u, se obtuvo %u)" -#: ihex.c:392 +#: ihex.c:394 +#, c-format msgid "%B:%u: bad extended address record length in Intel Hex file" -msgstr "%B:%u: longitud de registro de dirección extendida errónea en el fichero Hexadecimal de Intel" +msgstr "%B:%u: equivocación de longitud de registro de dirección extendida en el fichero Hex Intel" -#: ihex.c:409 +#: ihex.c:412 +#, c-format msgid "%B:%u: bad extended start address length in Intel Hex file" -msgstr "%B:%u: longitud de dirección de inicio extendida errónea en el fichero Hexadecimal de Intel" +msgstr "%B:%u: equivocación de longitud de dirección de inicio extendida en el fichero Hex Intel" -#: ihex.c:426 +#: ihex.c:430 +#, c-format msgid "%B:%u: bad extended linear address record length in Intel Hex file" -msgstr "%B:%u: longitud de registro de dirección lineal extendida errónea en el fichero Hexadecimal de Intel" +msgstr "%B:%u: equivocación de longitud de registro de dirección lineal extendida en el fichero Hex Intel" -#: ihex.c:443 +#: ihex.c:448 +#, c-format msgid "%B:%u: bad extended linear start address length in Intel Hex file" -msgstr "%B:%u: longitud de dirección de inicio lineal extendida errónea en el fichero Hexadecimal de Intel" +msgstr "%B:%u: equivocación de longitud de dirección de inicio lineal extendida en el fichero Hex Intel" -#: ihex.c:460 +#: ihex.c:466 +#, c-format msgid "%B:%u: unrecognized ihex type %u in Intel Hex file" -msgstr "%B:%u: no se reconoce el tipo ihex %u en el fichero Hexadecimal de Intel" +msgstr "%B:%u: no se reconoce el tipo ihex %u en el fichero Hex Intel" -#: ihex.c:579 +#: ihex.c:585 msgid "%B: internal error in ihex_read_section" msgstr "%B: error interno en ihex_read_section" -#: ihex.c:613 +#: ihex.c:619 msgid "%B: bad section length in ihex_read_section" -msgstr "%B: longitud de sección errónea en ihex_read_section" +msgstr "%B: longitud seccional equivocada en ihex_read_section" -#: ihex.c:826 +#: ihex.c:830 #, 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" +msgid "%B: address %#Lx out of range for Intel Hex file" +msgstr "%B: dirección %#Lx está fuera de rango para el fichero Hexadecimal de Intel" -#: libbfd.c:863 +#: libbfd.c:799 +#, c-format msgid "%B: unable to get decompressed section %A" msgstr "%B: no se puede obtener la sección %A descomprimida" -#: libbfd.c:1012 -msgid "%B: compiled for a big endian system and target is little endian" -msgstr "%B: compilado para un sistema big endian y el objetivo es little endian" - -#: libbfd.c:1014 -msgid "%B: compiled for a little endian system and target is big endian" -msgstr "%B: compilado para un sistema little endian y el objetivo es big endian" - -#: libbfd.c:1043 +#: libbfd.c:963 #, c-format msgid "Deprecated %s called at %s line %d in %s\n" msgstr "Se llamó a %s que es obsoleto en %s línea %d en %s\n" -#: libbfd.c:1046 +#: libbfd.c:966 #, c-format msgid "Deprecated %s called\n" msgstr "Se llamó a %s que es obsoleto\n" -#: linker.c:1872 +#: linker.c:1678 +#, c-format msgid "%B: indirect symbol `%s' to `%s' is a loop" -msgstr "%B: el símbolo indirecto `%s' para `%s' es un ciclo" +msgstr "%B: el símbolo indirecto «%s» para «%s» es un bucle" -#: linker.c:2736 +#: linker.c:2548 #, c-format 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" -#: linker.c:3021 +#: linker.c:2834 +#, c-format msgid "%B: ignoring duplicate section `%A'\n" msgstr "%B: se descarta la sección duplicada `%A'\n" -#: linker.c:3030 linker.c:3039 +#: linker.c:2844 linker.c:2854 +#, c-format msgid "%B: duplicate section `%A' has different size\n" msgstr "%B: la sección duplicada `%A' tiene tamaño diferente\n" -#: linker.c:3047 linker.c:3052 +#: linker.c:2863 linker.c:2869 +#, c-format msgid "%B: could not read contents of section `%A'\n" msgstr "%B: no se puede leer el contenido de la sección `%A'\n" -#: linker.c:3056 +#: linker.c:2874 +#, c-format msgid "%B: duplicate section `%A' has different contents\n" msgstr "%B: la sección duplicada `%A' tiene contenido diferente\n" -#: mach-o.c:407 +#: linker.c:3362 +msgid "%B: compiled for a big endian system and target is little endian" +msgstr "%B: compilado para un sistema big endian y el objetivo es little endian" + +#: linker.c:3365 +msgid "%B: compiled for a little endian system and target is big endian" +msgstr "%B: compilado para un sistema little endian y el objetivo es big endian" + +#: mach-o.c:779 msgid "bfd_mach_o_canonicalize_symtab: unable to load symbols" msgstr "bfd_mach_o_canonicalize_symtab: no se pueden cargar símbolos" -#: mach-o.c:1301 -#, c-format -msgid "unable to write unknown load command 0x%lx" -msgstr "no se puede escribir la orden load 0x%lx desconocida" - -#: mach-o.c:1789 -#, c-format -msgid "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %lu" -msgstr "bfd_mach_o_read_symtab_symbol: no se pueden leer %d bytes en %lu" +#: mach-o.c:1981 +msgid "sorry: modtab, toc and extrefsyms are not yet implemented for dysymtab commands." +msgstr "disculpe: modtab, toc y extrefsyms aún no están implementados para órdenes dysymtab." -#: mach-o.c:1807 +#: mach-o.c:2424 #, c-format -msgid "bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %lu)" -msgstr "bfd_mach_o_read_symtab_symbol: nombre fuera de rango (%lu >= %lu)" +msgid "mach-o: there are too many sections (%u) maximum is 255,\n" +msgstr "mach-o: hay demasiadas secciones (%u) máximo es 255.\n" -#: mach-o.c:1892 +#: mach-o.c:2531 #, c-format -msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid section %d (max %lu): setting to undefined" -msgstr "bfd_mach_o_read_symtab_symbol: el símbolo \"%s\" especificó la sección inválida %d (máximo %lu): se cambia a indefinido" +msgid "unable to allocate data for load command %#x" +msgstr "incapaz de ubicar datos para orden de carga %#x" -#: mach-o.c:1900 +#: mach-o.c:2636 #, c-format -msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" is unsupported 'indirect' reference: setting to undefined" -msgstr "bfd_mach_o_read_symtab_symbol: el símbolo \"%s\" no admite la referencia 'indirect': se cambia a indefinido" +msgid "unable to write unknown load command %#x" +msgstr "incapaz de escribir orden de carga desconocida %#x" -#: mach-o.c:1906 +#: mach-o.c:2820 #, c-format -msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid type field 0x%x: setting to undefined" -msgstr "bfd_mach_o_read_symtab_symbol: el símbolo \"%s\" especificó el campo de tipo 0x%x inválido: se cambia a indefinido" +msgid "section address (%#Lx) below start of segment (%#Lx)" +msgstr "sección direccional (%#Lx) bajo inicio de segmento (%#Lx)" -#: mach-o.c:1979 -msgid "bfd_mach_o_read_symtab_symbols: unable to allocate memory for symbols" -msgstr "bfd_mach_o_read_symtab_symbols: no se puede reservar memoria para símbolos" - -#: mach-o.c:2014 +#: mach-o.c:2961 #, c-format -msgid "bfd_mach_o_read_dysymtab_symbol: unable to read %lu bytes at %lu" -msgstr "bfd_mach_o_read_dysymtab_symbol: no se pueden leer %lu bytes en %lu" +msgid "unable to layout unknown load command %#x" +msgstr "incapaz de distribuir orden de carga desconocida %#x" -#: mach-o.c:2734 +#: mach-o.c:3497 #, c-format -msgid "unable to read unknown load command 0x%lx" -msgstr "no se puede leer la orden load 0x%lx desconocida" +msgid "bfd_mach_o_read_section_32: overlarge alignment value: %#lx, using 32 instead" +msgstr "bfd_mach_o_read_section_32: valor de alineamiento sobrepasado: %#lx, utilizando 32 en su lugar" -#: mach-o.c:2915 +#: mach-o.c:3540 #, c-format -msgid "bfd_mach_o_scan: unknown architecture 0x%lx/0x%lx" -msgstr "bfd_mach_o_scan: arquitectura 0x%lx/0x%lx desconocida" +msgid "bfd_mach_o_read_section_64: overlarge alignment value: %#lx, using 32 instead" +msgstr "bfd_mach_o_read_section_64: valor de alineamiento sobrepasado: %#lx, utilizando 32 en su lugar" -#: mach-o.c:3011 +#: mach-o.c:3591 #, c-format -msgid "unknown header byte-order value 0x%lx" -msgstr "valor de encabezado de orden de byte 0x%lx desconocido" - -#: mach-o.c:3577 -msgid "Mach-O header:\n" -msgstr "encabezado de Mach-O:\n" +msgid "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %u" +msgstr "bfd_mach_o_read_symtab_symbol: no se pueden leer %d bytes en %u" -#: mach-o.c:3578 +#: mach-o.c:3610 #, c-format -msgid " magic : %08lx\n" -msgstr " magic : %08lx\n" +msgid "bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %u)" +msgstr "bfd_mach_o_read_symtab_symbol: nombre fuera de rango (%lu >= %u)" -#: mach-o.c:3579 +#: mach-o.c:3693 #, c-format -msgid " cputype : %08lx (%s)\n" -msgstr " tipocpu : %08lx (%s)\n" +msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid section %d (max %lu): setting to undefined" +msgstr "bfd_mach_o_read_symtab_symbol: el símbolo «%s» especificó la sección inválida %d (máximo %lu): se cambia a indefinido" -#: mach-o.c:3581 +#: mach-o.c:3712 #, c-format -msgid " cpusubtype: %08lx\n" -msgstr " subtipocpu: %08lx\n" +msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid type field 0x%x: setting to undefined" +msgstr "bfd_mach_o_read_symtab_symbol: el símbolo «%s» especificó el campo de tipo 0x%x inválido: se cambia a indefinido" -#: mach-o.c:3582 -#, c-format -msgid " filetype : %08lx (%s)\n" -msgstr " tipofich : %08lx (%s)\n" +#: mach-o.c:3789 +msgid "bfd_mach_o_read_symtab_symbols: unable to allocate memory for symbols" +msgstr "bfd_mach_o_read_symtab_symbols: no se puede reservar memoria para símbolos" -#: mach-o.c:3585 -#, c-format -msgid " ncmds : %08lx (%lu)\n" -msgstr " nordenes : %08lx (%lu)\n" +#: mach-o.c:4762 +msgid "%B: unknown load command %#x" +msgstr "%B: orden de carga desconocida %#x" -#: mach-o.c:3586 +#: mach-o.c:4953 #, c-format -msgid " sizeofcmds: %08lx\n" -msgstr " tamordenes: %08lx\n" +msgid "bfd_mach_o_scan: unknown architecture 0x%lx/0x%lx" +msgstr "bfd_mach_o_scan: arquitectura 0x%lx/0x%lx desconocida" -#: mach-o.c:3587 +#: mach-o.c:5058 #, c-format -msgid " flags : %08lx (" -msgstr " opciones : %08lx (" - -#: mach-o.c:3589 vms-alpha.c:7674 -msgid ")\n" -msgstr ")\n" +msgid "unknown header byte-order value %#x" +msgstr "valor de encabezado de orden de byte %#x desconocido" -#: mach-o.c:3590 +#: merge.c:868 #, c-format -msgid " reserved : %08x\n" -msgstr " reservado : %08x\n" - -#: mach-o.c:3600 -msgid "Segments and Sections:\n" -msgstr "Segmentos y Secciones:\n" +msgid "%B: access beyond end of merged section (%Ld)" +msgstr "%B: acceso más allá de sección combinada (%Ld)" -#: mach-o.c:3601 -msgid " #: Segment name Section name Address\n" -msgstr " #: Nombre segmento Nombre sección Dirección\n" - -#: merge.c:832 +#: mmo.c:468 #, c-format -msgid "%s: access beyond end of merged section (%ld)" -msgstr "%s: acceso más allá del final de la sección mezclada (%ld)" +msgid "%B: No core to allocate section name %s\n" +msgstr "%B: ningún núcleo para reservar nombre de sección %s\n" -#: mmo.c:456 +#: mmo.c:544 #, 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" +msgid "%B: No core to allocate a symbol %d bytes long\n" +msgstr "%B: ningún núcleo para reservar un símbolo de %d bytes de longitud\n" -#: mmo.c:531 +#: mmo.c:958 #, 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" +msgid "%B: attempt to emit contents at non-multiple-of-4 address %#Lx" +msgstr "%B: intenta emitir contenidos en dirección no múltiplo de 4 %#Lx" -#: mmo.c:1187 -#, 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:1255 +msgid "%B: invalid mmo file: initialization value for $255 is not `Main'\n" +msgstr "%B: fichero mmo inválido: el valor de iniciación para $255 no es `Main'\n" -#: mmo.c:1332 +#: mmo.c:1402 #, c-format -msgid "%s: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'\n" -msgstr "%s: no se admite la secuencia de caracteres anchos 0x%02X 0x%02X después del nombre de símbolo que inicia con `%s'\n" +msgid "%B: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'\n" +msgstr "%B: secuencia de anchura de carácter 0x%02X 0x%02X tras nombre simbólico iniciada con «%s» no admitida\n" -#: mmo.c:1565 +#: mmo.c:1636 #, c-format -msgid "%s: invalid mmo file: unsupported lopcode `%d'\n" -msgstr "%s: fichero mmo inválido: no se admite el código de operación-l `%d'\n" +msgid "%B: invalid mmo file: unsupported lopcode `%d'\n" +msgstr "%B: fichero mmo inválido: código de operación-l `%d' no compatible\n" -#: mmo.c:1575 +#: mmo.c:1647 #, 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" +msgid "%B: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n" +msgstr "%B: fichero mmo inválido: se esperaba YZ = 1 se obtuvo YZ = %d para lop_quote\n" -#: mmo.c:1611 +#: mmo.c:1685 #, 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" +msgid "%B: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n" +msgstr "%B: fichero mmo inválido: se esperaba z = 1 o z = 2, se obtuvo z = %d para lop_loc\n" -#: mmo.c:1657 +#: mmo.c:1736 #, 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" +msgid "%B: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n" +msgstr "%B: fichero mmo inválido: se esperaba z = 1 o z = 2, se obtuvo z = %d para lop_fixo\n" -#: mmo.c:1696 +#: mmo.c:1777 #, 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" +msgid "%B: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n" +msgstr "%B: fichero mmo inválido: se esperaba y = 0, se obtuvo y = %d para lop_fixrx\n" -#: mmo.c:1705 +#: mmo.c:1788 #, 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" +msgid "%B: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n" +msgstr "%B: fichero mmo inválido: se esperaba z = 16 o z = 24, se obtuvo z = %d para lop_fixrx\n" -#: mmo.c:1728 +#: mmo.c:1813 #, 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 del operando word debe ser 0 ó 1, se obtuvo %d para lop_fixrx\n" +msgid "%B: invalid mmo file: leading byte of operand word must be 0 or 1, got %d for lop_fixrx\n" +msgstr "%B: fichero mmo inválido: el byte inicial del operando word debe ser 0 o 1, se obtuvo %d para lop_fixrx\n" -#: mmo.c:1751 +#: mmo.c:1838 #, 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" +msgid "%B: cannot allocate file name for file number %d, %d bytes\n" +msgstr "%B: no se puede reservar el nombre de fichero para el número de fichero %d, %d bytes\n" -#: mmo.c:1771 +#: mmo.c:1860 #, 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" +msgid "%B: invalid mmo file: file number %d `%s', was already entered as `%s'\n" +msgstr "%B: fichero mmo inválido: el número de fichero %d «%s», ya se había introducido como «%s»\n" -#: mmo.c:1784 +#: mmo.c:1874 #, 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" +msgid "%B: invalid mmo file: file name for number %d was not specified before use\n" +msgstr "%B: fichero mmo inválido: no se especificó un nombre de fichero para el número %d antes de utilizarse\n" -#: mmo.c:1890 +#: mmo.c:1981 #, 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" +msgid "%B: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n" +msgstr "%B: fichero mmo inválido: campos ‘y’ y ‘z’ de lop_stab no cero, y: %d, z: %d\n" -#: mmo.c:1926 +#: mmo.c:2018 #, 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" +msgid "%B: invalid mmo file: lop_end not last item in file\n" +msgstr "%B: fichero mmo inválido: lop_end no es el último elemento en el fichero\n" -#: mmo.c:1939 +#: mmo.c:2032 #, 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" +msgid "%B: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)\n" +msgstr "%B: fichero mmo inválido: YZ de lop_end (%ld) no es igual al número de tetras al lop_stab precedente (%ld)\n" -#: mmo.c:2649 +#: mmo.c:2743 #, c-format -msgid "%s: invalid symbol table: duplicate symbol `%s'\n" -msgstr "%s: tabla de símbolos inválida: símbolo `%s' duplicado\n" +msgid "%B: invalid symbol table: duplicate symbol `%s'\n" +msgstr "%B: segmento simbólico no válido: símbolo duplicado «%s»\n" -#: mmo.c:2889 +#: mmo.c:2986 #, 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ó como %s en lugar de la dirección de inicio %s\n" +msgid "%B: Bad symbol definition: `Main' set to %s rather than the start address %s\n" +msgstr "%B: Definición de símbolo equivocada: `Main' se estableció como %s en lugar de la dirección de inicio %s\n" -#: mmo.c:2981 +#: mmo.c:3085 #, 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" +msgid "%B: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d. Only `Main' will be emitted.\n" +msgstr "%B: aviso: segmento simbólico es muy grande para mmo, más grande que 65535 words de 32-bit: %d. Solamente será emitida `Main'.\n" -#: mmo.c:3026 +#: mmo.c:3131 #, 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" +msgid "%B: internal error, symbol table changed size from %d to %d words\n" +msgstr "%B: error interno, el segmento simbólico modificó el tamaño desde %d hasta %d words\n" -#: mmo.c:3078 +#: mmo.c:3184 #, 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" +msgid "%B: internal error, internal register section %A had contents\n" +msgstr "%B: error interno, sección interna registrada %A tuvo contenidos\n" -#: mmo.c:3129 -#, 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:3235 +msgid "%B: no initialized registers; section length 0\n" +msgstr "%B: sin registros inicializados: longitud seccional 0\n" -#: mmo.c:3135 +#: mmo.c:3242 #, c-format -msgid "%s: too many initialized registers; section length %ld\n" -msgstr "%s: demasiados registros iniciados: longitud de sección %ld\n" +msgid "%B: too many initialized registers; section length %Ld" +msgstr "%B: demasiados registros iniciados: longitud seccional %Ld" -#: mmo.c:3140 +#: mmo.c:3247 #, 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 inicializados de longitud %ld: 0x%lx%08lx\n" +msgid "%B: invalid start address for initialized registers of length %Ld: %#Lx" +msgstr "%B: dirección de inicio inválida para los registros inicializados de longitud %Ld: %#Lx" -#: oasys.c:882 +#: oasys.c:881 #, c-format -msgid "%s: can not represent section `%s' in oasys" -msgstr "%s: no se puede representar la sección `%s' en oasys" +msgid "%B: can not represent section `%A' in oasys" +msgstr "%B: no se puede representar la sección «%A» en oasys" -#: osf-core.c:140 +#: osf-core.c:127 #, 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" +msgstr "Tipo seccional de fichero núcleo OSF/1 %d sin manipular\n" -#: pe-mips.c:607 +#: pe-mips.c:609 msgid "%B: `ld -r' not supported with PE MIPS objects\n" msgstr "%B: `ld -r' no se admite con objetos PE MIPS\n" @@ -3660,73 +5712,124 @@ #. 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:719 +#: pe-mips.c:720 +#, c-format msgid "%B: unimplemented %s\n" msgstr "%B: %s sin implementar\n" -#: pe-mips.c:745 +#: pe-mips.c:746 msgid "%B: jump too far away\n" -msgstr "%B: salto demasiado lejos\n" +msgstr "%B: omitir demasiado lejos\n" -#: pe-mips.c:771 +#: pe-mips.c:772 msgid "%B: bad pair/reflo after refhi\n" -msgstr "%B: pair/reflo erróneo después de refhi\n" +msgstr "%B: pair/reflo equivocado tras refhi\n" -#: pef.c:520 +#: pef.c:526 #, c-format msgid "bfd_pef_scan: unknown architecture 0x%lx" msgstr "bfd_pef_scan: arquitectura 0x%lx desconocida" -#: pei-x86_64.c:444 +#. PR 17512: file: 2245-7442-0.004. +#: pei-x86_64.c:281 +#, c-format +msgid "Unknown: %x" +msgstr "Desconocido: %x" + +#: pei-x86_64.c:331 +#, c-format +msgid "warning: xdata section corrupt\n" +msgstr "aviso: sección de datos xdata corrupto\n" + +#: pei-x86_64.c:341 +#, c-format +msgid "warning: xdata section corrupt" +msgstr "aviso: sección de datos xdata corrupta" + +#: pei-x86_64.c:401 +#, c-format +msgid "Too many unwind codes (%ld)\n" +msgstr "Demasiados códigos unwind (%ld)\n" + +#: pei-x86_64.c:491 +#, c-format +msgid "Warning: %s section size (%ld) is not a multiple of %d\n" +msgstr "" +"Aviso: tamaño de sección %s (%ld) no es un múltiplo de %d\n" +"\n" + +#: pei-x86_64.c:498 +#, c-format +msgid "Warning: %s section size is zero\n" +msgstr "Aviso: tamaño seccional %s es cero\n" + +#: pei-x86_64.c:513 #, 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" +msgid "Warning: %s section size (%ld) is smaller than virtual size (%ld)\n" +msgstr "Aviso: tamaño de sección %s (%ld) es menor que el tamaño virtual (%ld)\n" -#: pei-x86_64.c:448 peigen.c:1618 peigen.c:1801 pepigen.c:1618 pepigen.c:1801 -#: pex64igen.c:1618 pex64igen.c:1801 +#: pei-x86_64.c:522 #, c-format msgid "" "\n" -"The Function Table (interpreted .pdata section contents)\n" +"The Function Table (interpreted %s section contents)\n" msgstr "" "\n" -"La Tabla de Funciones (se interpretaron los contenidos de la sección .pdata)\n" +"La Tabla Funcional (se interpretaron %s contenidos de la sección)\n" -#: pei-x86_64.c:450 +#: pei-x86_64.c:525 #, c-format msgid "vma:\t\t\tBeginAddress\t EndAddress\t UnwindData\n" -msgstr "vma:\t\t\tDireccInicio\t DireccFin \t InformaciónDesenvuelta\n" +msgstr "vma:\t\t\tDireccInicio\t DireccFin \t DatosDesenvuelta\n" + +#: pei-x86_64.c:654 +#, c-format +msgid "" +"\n" +"Dump of %s\n" +msgstr "" +"\n" +"Volcado de %s\n" #. XXX code yet to be written. -#: peicode.h:751 +#: peicode.h:775 +#, c-format msgid "%B: Unhandled import type; %x" msgstr "%B: Tipo de importación sin manejar; %x" -#: peicode.h:756 +#: peicode.h:781 +#, c-format msgid "%B: Unrecognised import type; %x" -msgstr "%B: No se reconocer el tipo de importación; %x" +msgstr "%B: No se reconoce el tipo de importación; %x" -#: peicode.h:770 +#: peicode.h:796 +#, c-format msgid "%B: Unrecognised import name type; %x" msgstr "%B: No se reconoce el tipo de nombre de importación; %x" -#: peicode.h:1166 +#: peicode.h:1217 +#, c-format msgid "%B: Unrecognised machine type (0x%x) in Import Library Format archive" msgstr "%B: No se reconoce el tipo de máquina (0x%x) en el archivo de Formato de Importación de Bibliotecas" -#: peicode.h:1178 +#: peicode.h:1230 +#, c-format msgid "%B: Recognised but unhandled machine type (0x%x) in Import Library Format archive" -msgstr "%B: Se reconoce el tipo de máquina (0x%x) pero no se maneja en el archivo de Formato de Importación de Bibliotecas" +msgstr "%B: Se reconoce el tipo de máquina (0x%x) pero no se manipula en el archivo de Formato de Importación de Bibliotecas" -#: peicode.h:1196 +#: peicode.h:1248 msgid "%B: size field is zero in Import Library Format header" msgstr "%B: el tamaño del campo es cero en el encabezado del Formato de Importación de Bibliotecas" -#: peicode.h:1227 +#: peicode.h:1280 msgid "%B: string not null terminated in ILF object file." msgstr "%B: cadena que no termina en null en el fichero objeto ILF." -#: ppcboot.c:414 +#: peicode.h:1335 +msgid "%B: Error: Debug Data ends beyond end of debug directory." +msgstr "%B: Error: Depura Datos finales más allá del final del directorio depurante." + +#: ppcboot.c:393 #, c-format msgid "" "\n" @@ -3735,60 +5838,85 @@ "\n" "encabezado de ppcboot:\n" -#: ppcboot.c:415 +#: ppcboot.c:394 #, c-format msgid "Entry offset = 0x%.8lx (%ld)\n" msgstr "Desplazamiento de entrada = 0x%.8lx (%ld)\n" -#: ppcboot.c:417 +#: ppcboot.c:396 #, c-format msgid "Length = 0x%.8lx (%ld)\n" msgstr "Longitud = 0x%.8lx (%ld)\n" -#: ppcboot.c:421 +#: ppcboot.c:400 #, c-format msgid "Flag field = 0x%.2x\n" msgstr "Campo de opciones = 0x%.2x\n" -#: ppcboot.c:427 +#: ppcboot.c:406 #, c-format msgid "Partition name = \"%s\"\n" -msgstr "Nombre de la partición = \"%s\"\n" +msgstr "Nombre de la partición = «%s»\n" -#: ppcboot.c:446 +#: ppcboot.c:426 #, c-format msgid "" "\n" "Partition[%d] start = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" msgstr "" "\n" -"Partición[%d] inicio = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" +"Partición[%d] inicio = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" -#: ppcboot.c:452 +#: ppcboot.c:433 #, c-format msgid "Partition[%d] end = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" msgstr "Partición[%d] fin = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" -#: ppcboot.c:458 +#: ppcboot.c:440 #, c-format msgid "Partition[%d] sector = 0x%.8lx (%ld)\n" msgstr "Partición[%d] sector = 0x%.8lx (%ld)\n" -#: ppcboot.c:460 +#: ppcboot.c:444 #, c-format msgid "Partition[%d] length = 0x%.8lx (%ld)\n" msgstr "Partición[%d] longitud = 0x%.8lx (%ld)\n" -#: reloc.c:6160 +#: reloc.c:8106 msgid "INPUT_SECTION_FLAGS are not supported.\n" msgstr "No se admite INPUT_SECTION_FLAGS.\n" -#: rs6000-core.c:448 +#: reloc.c:8207 +#, c-format +msgid "%X%P: %B(%A): error: relocation for offset %V has no value\n" +msgstr "%X%P: %B(%A): error: reubicación para desplazamiento %V no tiene ningún valor\n" + +#: reloc.c:8283 +#, c-format +msgid "%X%P: %B(%A): relocation \"%R\" is not supported\n" +msgstr "%X%P: %B(%A): reubicación «%R» no está soportado\n" + +#: reloc.c:8292 +#, c-format +msgid "%X%P: %B(%A): relocation \"%R\" returns an unrecognized value %x\n" +msgstr "%X%P: %B(%A): reubicación «%R» devuelve un valor no reconocido %x\n" + +#: reloc.c:8354 +#, c-format +msgid "%B: unrecognized relocation (%#x) in section `%A'" +msgstr "%B: reubicación no reconocida (%#x) en la sección «%A»" + +#. PR 21803: Suggest the most likely cause of this error. +#: reloc.c:8358 #, c-format -msgid "%s: warning core file truncated" -msgstr "%s: aviso de fichero core trunco" +msgid "Is this version of the linker - %s - out of date ?" +msgstr "¿Es esta versión del enlazador - %s - fuera de fecha ?" + +#: rs6000-core.c:471 +msgid "%B: warning core file truncated" +msgstr "%B: aviso de fichero core truncado" -#: som.c:5471 +#: som.c:5478 #, c-format msgid "" "\n" @@ -3797,52 +5925,97 @@ "\n" "Encabezado Auxiliar de Ejecución\n" -#: som.c:5776 +#: som.c:5787 msgid "som_sizeof_headers unimplemented" msgstr "som_sizeof_headers sin implementar" -#: srec.c:261 +#: srec.c:260 +#, c-format msgid "%B:%d: Unexpected character `%s' in S-record file\n" -msgstr "%B:%d: Carácter `%s' inesperado en el fichero S-record\n" +msgstr "%B:%d: Carácter «%s» inesperado en el fichero S-record\n" + +#: srec.c:488 +#, c-format +msgid "%B:%d: byte count %d too small\n" +msgstr "%B:%d: contador de byte %d demasiado pequeño\n" -#: srec.c:567 srec.c:600 +#: srec.c:581 srec.c:615 +#, c-format msgid "%B:%d: Bad checksum in S-record file\n" -msgstr "%B:%d: Suma de comprobación errónea en el fichero S-record\n" +msgstr "%B:%d: Equivocación de suma comprobante en el fichero S-record\n" #: stabs.c:279 -msgid "%B(%A+0x%lx): Stabs entry has invalid string index." -msgstr "%B(%A+0x%lx): La entrada de cabos tiene una cadena índice inválida." +#, c-format +msgid "%B(%A+%#lx): Stabs entry has invalid string index." +msgstr "%B(%A+%#lx): Entrada de cabos tiene cadena indexada." #: syms.c:1079 msgid "Unsupported .stab relocation" msgstr "No se admite la reubicación .stab" -#: vms-alpha.c:1299 +#: vms-alpha.c:479 +msgid "Corrupt EIHD record - size is too small" +msgstr "Registro corrupto EIHD - tamaño es demasiado pequeño" + +#: vms-alpha.c:660 +#, c-format +msgid "Unable to read EIHS record at offset %#x" +msgstr "Incapaz de leer registro EIHS en desplazamiento %#x" + +#: vms-alpha.c:1172 +#, c-format +msgid "Corrupt EGSD record: its size (%#x) is too small" +msgstr "Registro corrupto EGSD: su tamaño (%#x) es demasiado pequeño" + +#: vms-alpha.c:1196 +#, c-format +msgid "Corrupt EGSD record: size (%#x) is larger than remaining space (%#x)" +msgstr "Registro corrupto EGSD: tamaño (%#x) es mayor que el espacio restante (%#x)" + +#: vms-alpha.c:1204 +#, c-format +msgid "Corrupt EGSD record: size (%#x) is too small" +msgstr "Registro corrupto EGSD: tamaño (%#x) es demasiado pequeño" + +#: vms-alpha.c:1333 vms-alpha.c:1349 vms-alpha.c:1389 +#, c-format +msgid "Corrupt EGSD record: its psindx field is too big (%#lx)" +msgstr "Registro corrupto EGSD: su campo ‘psindx’ es demasiado grande (%#lx)" + +#: vms-alpha.c:1418 #, c-format msgid "Unknown EGSD subtype %d" msgstr "Subtipo de EGSD %d desconocido" -#: vms-alpha.c:1330 +#: vms-alpha.c:1451 #, c-format msgid "Stack overflow (%d) in _bfd_vms_push" -msgstr "Desbordamiento de la pila (%d) en _bfd_vms_push" +msgstr "Pila desbordada superior (%d) en _bfd_vms_push" -#: vms-alpha.c:1343 +#: vms-alpha.c:1464 msgid "Stack underflow in _bfd_vms_pop" -msgstr "Desbordamiento por debajo de la pila en _bfd_vms_pop" +msgstr "Pila desbordada inferior en _bfd_vms_pop" #. These names have not yet been added to this switch statement. -#: vms-alpha.c:1580 +#: vms-alpha.c:1706 #, c-format msgid "unknown ETIR command %d" msgstr "orden ETIR %d desconocida" -#: vms-alpha.c:1767 +#: vms-alpha.c:1737 +msgid "Corrupt vms value" +msgstr "Valor vms corrupto" + +#: vms-alpha.c:1865 +msgid "Corrupt ETIR record encountered" +msgstr "Encontrado registro ETIR corrupto" + +#: vms-alpha.c:1922 #, c-format msgid "bad section index in %s" -msgstr "índice de sección erróneo en %s" +msgstr "índice seccional equivocado en %s" -#: vms-alpha.c:1780 +#: vms-alpha.c:1935 #, c-format msgid "unsupported STA cmd %s" msgstr "no se admite la orden STA %s" @@ -3852,1393 +6025,1499 @@ #. Rotate. #. Redefine symbol to current location. #. Define a literal. -#: vms-alpha.c:1956 vms-alpha.c:1987 vms-alpha.c:2234 +#: vms-alpha.c:2115 vms-alpha.c:2146 vms-alpha.c:2237 vms-alpha.c:2395 #, c-format msgid "%s: not supported" msgstr "%s: no se admite" -#: vms-alpha.c:1962 +#: vms-alpha.c:2121 #, c-format msgid "%s: not implemented" msgstr "%s: sin implementar" -#: vms-alpha.c:2218 +#: vms-alpha.c:2379 #, c-format msgid "invalid use of %s with contexts" msgstr "uso inválido de %s en contextos" -#: vms-alpha.c:2252 +#: vms-alpha.c:2413 #, c-format msgid "reserved cmd %d" msgstr "orden %d reservada" -#: vms-alpha.c:2337 +#: vms-alpha.c:2497 +msgid "Corrupt EEOM record - size is too small" +msgstr "Registro corrupto EEOM - tamaño es demasiado pequeño" + +#: vms-alpha.c:2506 msgid "Object module NOT error-free !\n" msgstr "¡ El módulo objeto NO está libre de errores !\n" -#: vms-alpha.c:2766 +#: vms-alpha.c:3830 #, c-format -msgid "Symbol %s replaced by %s\n" -msgstr "Se reemplazó el símbolo %s por %s\n" +msgid "SEC_RELOC with no relocs in section %A" +msgstr "SEC_RELOC con ninguna reubicación en sección %A" -#: vms-alpha.c:3769 +#: vms-alpha.c:3882 vms-alpha.c:4095 #, c-format -msgid "SEC_RELOC with no relocs in section %s" -msgstr "SEC_RELOC sin reubicaciones en la sección %s" +msgid "Size error in section %A" +msgstr "Tamaño erróneo en sección %A" -#: vms-alpha.c:3822 vms-alpha.c:4049 -#, c-format -msgid "Size error in section %s" -msgstr "Error de tamaño en la sección %s" - -#: vms-alpha.c:3991 +#: vms-alpha.c:4041 msgid "Spurious ALPHA_R_BSR reloc" msgstr "Reubicación ALPHA_R_BSR espuria" -#: vms-alpha.c:4036 +#: vms-alpha.c:4082 #, c-format msgid "Unhandled relocation %s" -msgstr "Reubicación %s sin manejar" +msgstr "Reubicación %s sin manipular" -#: vms-alpha.c:4326 +#: vms-alpha.c:4375 #, c-format msgid "unknown source command %d" msgstr "orden fuente %d desconocida" -#: vms-alpha.c:4387 +#: vms-alpha.c:4436 msgid "DST__K_SET_LINUM_INCR not implemented" -msgstr "DST__K_SET_LINUM_INCR sin implementar" +msgstr "DST__K_SET_LINUM_INCR no implementado" -#: vms-alpha.c:4393 +#: vms-alpha.c:4442 msgid "DST__K_SET_LINUM_INCR_W not implemented" -msgstr "DST__K_SET_LINUM_INCR_W sin implementar" +msgstr "DST__K_SET_LINUM_INCR_W no implementado" -#: vms-alpha.c:4399 +#: vms-alpha.c:4448 msgid "DST__K_RESET_LINUM_INCR not implemented" -msgstr "DST__K_RESET_LINUM_INCR sin implementar" +msgstr "DST__K_RESET_LINUM_INCR no implementado" -#: vms-alpha.c:4405 +#: vms-alpha.c:4454 msgid "DST__K_BEG_STMT_MODE not implemented" -msgstr "DST__K_BEG_STMT_MODE sin implementar" +msgstr "DST__K_BEG_STMT_MODE no implementado" -#: vms-alpha.c:4411 +#: vms-alpha.c:4460 msgid "DST__K_END_STMT_MODE not implemented" -msgstr "DST__K_END_STMT_MODE sin implementar" +msgstr "DST__K_END_STMT_MODE no implementado" -#: vms-alpha.c:4438 +#: vms-alpha.c:4487 msgid "DST__K_SET_PC not implemented" -msgstr "DST__K_SET_PC sin implementar" +msgstr "DST__K_SET_PC no implementado" -#: vms-alpha.c:4444 +#: vms-alpha.c:4493 msgid "DST__K_SET_PC_W not implemented" -msgstr "DST__K_SET_PC_W sin implementar" +msgstr "DST__K_SET_PC_W no implementado" -#: vms-alpha.c:4450 +#: vms-alpha.c:4499 msgid "DST__K_SET_PC_L not implemented" -msgstr "DST__K_SET_PC_L sin implementar" +msgstr "DST__K_SET_PC_L no implementado" -#: vms-alpha.c:4456 +#: vms-alpha.c:4505 msgid "DST__K_SET_STMTNUM not implemented" -msgstr "DST__K_SET_STMTNUM sin implementar" +msgstr "DST__K_SET_STMTNUM no implementado" -#: vms-alpha.c:4499 +#: vms-alpha.c:4548 #, c-format msgid "unknown line command %d" msgstr "orden de línea %d desconocida" -#: vms-alpha.c:4953 vms-alpha.c:4970 vms-alpha.c:4984 vms-alpha.c:4999 -#: vms-alpha.c:5011 vms-alpha.c:5022 vms-alpha.c:5034 +#: vms-alpha.c:5008 vms-alpha.c:5026 vms-alpha.c:5041 vms-alpha.c:5057 +#: vms-alpha.c:5070 vms-alpha.c:5082 vms-alpha.c:5095 #, c-format msgid "Unknown reloc %s + %s" msgstr "Reubicación %s + %s desconocida" -#: vms-alpha.c:5089 +#: vms-alpha.c:5150 #, c-format msgid "Unknown reloc %s" msgstr "Reubicación %s desconocida" -#: vms-alpha.c:5102 +#: vms-alpha.c:5163 msgid "Invalid section index in ETIR" -msgstr "Ãndice de sección inválido en ETIR" +msgstr "Ãndice seccional inválido en ETIR" -#: vms-alpha.c:5109 +#: vms-alpha.c:5172 msgid "Relocation for non-REL psect" -msgstr "Reubicación para psect que no es REL" +msgstr "Reubicación para psect que no-REL" -#: vms-alpha.c:5156 +#: vms-alpha.c:5219 #, c-format msgid "Unknown symbol in command %s" msgstr "Símbolo desconocido en la orden %s" -#: vms-alpha.c:5671 +#: vms-alpha.c:5629 +#, c-format +msgid "reloc (%d) is *UNKNOWN*" +msgstr "reub (%d) es *DESCONOCIDA*" + +#: vms-alpha.c:5745 #, c-format msgid " EMH %u (len=%u): " msgstr " EMH %u (lon=%u): " -#: vms-alpha.c:5680 +#: vms-alpha.c:5750 +#, c-format +msgid " Error: The length is less than the length of an EMH record\n" +msgstr " Error: la longitud es menor que la longitud de un registro EMH\n" + +#: vms-alpha.c:5767 +#, c-format +msgid " Error: The record length is less than the size of an EMH_MHD record\n" +msgstr " Error: La longitud del registro es menor que el tamaño de un registro EMH_MHD\n" + +#: vms-alpha.c:5770 #, c-format msgid "Module header\n" msgstr "Encabezado de módulo\n" -#: vms-alpha.c:5681 +#: vms-alpha.c:5771 #, c-format msgid " structure level: %u\n" msgstr " nivel estruct : %u\n" -#: vms-alpha.c:5682 +#: vms-alpha.c:5772 #, c-format msgid " max record size: %u\n" msgstr " tam reg máximo : %u\n" -#: vms-alpha.c:5685 +#: vms-alpha.c:5778 +#, c-format +msgid " Error: The module name is missing\n" +msgstr " Error: el nombre del módulo está ausente\n" + +#: vms-alpha.c:5784 +#, c-format +msgid " Error: The module name is too long\n" +msgstr " Error: el nombre de módulo es demasiado largo\n" + +#: vms-alpha.c:5787 #, c-format msgid " module name : %.*s\n" msgstr " nombre módulo : %.*s\n" -#: vms-alpha.c:5687 +#: vms-alpha.c:5791 +#, c-format +msgid " Error: The module version is missing\n" +msgstr " Error: la versión de módulo está faltando\n" + +#: vms-alpha.c:5797 +#, c-format +msgid " Error: The module version is too long\n" +msgstr " Error: la versión del módulo es demasiado largo\n" + +#: vms-alpha.c:5800 #, c-format msgid " module version : %.*s\n" msgstr " versión módulo : %.*s\n" -#: vms-alpha.c:5689 +#: vms-alpha.c:5803 +#, c-format +msgid " Error: The compile date is truncated\n" +msgstr " Error: la fecha de compilación está truncada\n" + +#: vms-alpha.c:5805 #, c-format msgid " compile date : %.17s\n" msgstr " fecha compil : %.17s\n" -#: vms-alpha.c:5694 +#: vms-alpha.c:5810 #, c-format msgid "Language Processor Name\n" msgstr "Nombre de Procesador de Lenguaje\n" -#: vms-alpha.c:5695 +#: vms-alpha.c:5811 #, c-format msgid " language name: %.*s\n" msgstr " nombre lenguaje: %.*s\n" -#: vms-alpha.c:5702 +#: vms-alpha.c:5815 #, c-format msgid "Source Files Header\n" msgstr "Encabezado de Ficheros Fuente\n" -#: vms-alpha.c:5703 +#: vms-alpha.c:5816 #, c-format msgid " file: %.*s\n" msgstr " fichero: %.*s\n" -#: vms-alpha.c:5710 +#: vms-alpha.c:5820 #, c-format msgid "Title Text Header\n" msgstr "Encabezado de Texto de Título\n" -#: vms-alpha.c:5711 +#: vms-alpha.c:5821 #, c-format msgid " title: %.*s\n" msgstr " título: %.*s\n" -#: vms-alpha.c:5718 +#: vms-alpha.c:5825 #, c-format msgid "Copyright Header\n" -msgstr "Encabezado de Copyright\n" +msgstr "Encabezado Copyright\n" -#: vms-alpha.c:5719 +#: vms-alpha.c:5826 #, c-format msgid " copyright: %.*s\n" msgstr " copyright: %.*s\n" -#: vms-alpha.c:5725 +#: vms-alpha.c:5830 #, c-format msgid "unhandled emh subtype %u\n" -msgstr "subtipo emh %u sin manejar\n" +msgstr "subtipo emh %u sin manipular\n" -#: vms-alpha.c:5735 +#: vms-alpha.c:5840 #, c-format msgid " EEOM (len=%u):\n" msgstr " EEOM (lon=%u):\n" -#: vms-alpha.c:5736 +#: vms-alpha.c:5845 +#, c-format +msgid " Error: The length is less than the length of an EEOM record\n" +msgstr " Error: la longitud es menor que la longitud de un registro EEOM\n" + +#: vms-alpha.c:5849 #, c-format msgid " number of cond linkage pairs: %u\n" msgstr " número de pares de enlace cond: %u\n" -#: vms-alpha.c:5738 +#: vms-alpha.c:5851 #, c-format msgid " completion code: %u\n" msgstr " código de completado: %u\n" -#: vms-alpha.c:5742 +#: vms-alpha.c:5855 #, c-format msgid " transfer addr flags: 0x%02x\n" msgstr " ops dirección transf: 0x%02x\n" -#: vms-alpha.c:5743 +#: vms-alpha.c:5856 #, c-format msgid " transfer addr psect: %u\n" msgstr " psect dirección transf: %u\n" -#: vms-alpha.c:5745 +#: vms-alpha.c:5858 #, c-format msgid " transfer address : 0x%08x\n" msgstr " dirección transf : 0x%08x\n" -#: vms-alpha.c:5754 +#: vms-alpha.c:5867 msgid " WEAK" msgstr " WEAK" -#: vms-alpha.c:5756 +#: vms-alpha.c:5869 msgid " DEF" msgstr " DEF" -#: vms-alpha.c:5758 +#: vms-alpha.c:5871 msgid " UNI" msgstr " UNI" -#: vms-alpha.c:5760 vms-alpha.c:5781 +#: vms-alpha.c:5873 vms-alpha.c:5894 msgid " REL" msgstr " REL" -#: vms-alpha.c:5762 +#: vms-alpha.c:5875 msgid " COMM" msgstr " COMM" -#: vms-alpha.c:5764 +#: vms-alpha.c:5877 msgid " VECEP" msgstr " VECEP" -#: vms-alpha.c:5766 +#: vms-alpha.c:5879 msgid " NORM" msgstr " NORM" -#: vms-alpha.c:5768 +#: vms-alpha.c:5881 msgid " QVAL" msgstr " QVAL" -#: vms-alpha.c:5775 +#: vms-alpha.c:5888 msgid " PIC" msgstr " PIC" -#: vms-alpha.c:5777 +#: vms-alpha.c:5890 msgid " LIB" -msgstr " LIB" +msgstr " BIB" -#: vms-alpha.c:5779 +#: vms-alpha.c:5892 msgid " OVR" -msgstr " OVR" +msgstr " SOB" -#: vms-alpha.c:5783 +#: vms-alpha.c:5896 msgid " GBL" msgstr " GBL" -#: vms-alpha.c:5785 +#: vms-alpha.c:5898 msgid " SHR" msgstr " SHR" -#: vms-alpha.c:5787 +#: vms-alpha.c:5900 msgid " EXE" msgstr " EXE" -#: vms-alpha.c:5789 +#: vms-alpha.c:5902 msgid " RD" msgstr " RD" -#: vms-alpha.c:5791 +#: vms-alpha.c:5904 msgid " WRT" msgstr " WRT" -#: vms-alpha.c:5793 +#: vms-alpha.c:5906 msgid " VEC" msgstr " VEC" -#: vms-alpha.c:5795 +#: vms-alpha.c:5908 msgid " NOMOD" msgstr " NOMOD" -#: vms-alpha.c:5797 +#: vms-alpha.c:5910 msgid " COM" msgstr " COM" -#: vms-alpha.c:5799 +#: vms-alpha.c:5912 msgid " 64B" msgstr " 64B" -#: vms-alpha.c:5808 +#: vms-alpha.c:5921 #, c-format msgid " EGSD (len=%u):\n" msgstr " EGSD (lon=%u):\n" -#: vms-alpha.c:5820 +#: vms-alpha.c:5934 #, c-format msgid " EGSD entry %2u (type: %u, len: %u): " msgstr " entrada EGSD %2u (tipo: %u, lon: %u): " -#: vms-alpha.c:5832 +#: vms-alpha.c:5940 vms-alpha.c:6191 +#, c-format +msgid " Error: length larger than remaining space in record\n" +msgstr " Error: longitud mñas larga que espacio restante en registro\n" + +#: vms-alpha.c:5952 #, c-format msgid "PSC - Program section definition\n" -msgstr "PSC - Definición de sección de programa\n" +msgstr "PSC - Definición seccional de programa\n" -#: vms-alpha.c:5833 vms-alpha.c:5850 +#: vms-alpha.c:5953 vms-alpha.c:5970 #, c-format msgid " alignment : 2**%u\n" msgstr " alineación : 2**%u\n" -#: vms-alpha.c:5834 vms-alpha.c:5851 +#: vms-alpha.c:5954 vms-alpha.c:5971 #, c-format msgid " flags : 0x%04x" msgstr " opciones : 0x%04x" -#: vms-alpha.c:5838 +#: vms-alpha.c:5958 #, c-format msgid " alloc (len): %u (0x%08x)\n" msgstr " aloj (lon) : %u (0x%08x)\n" -#: vms-alpha.c:5839 vms-alpha.c:5896 vms-alpha.c:5945 +#: vms-alpha.c:5959 vms-alpha.c:6016 vms-alpha.c:6065 #, c-format msgid " name : %.*s\n" msgstr " nombre : %.*s\n" -#: vms-alpha.c:5849 +#: vms-alpha.c:5969 #, c-format msgid "SPSC - Shared Image Program section def\n" msgstr "SPSC - def sección Programa de Imagen Compartida\n" -#: vms-alpha.c:5855 +#: vms-alpha.c:5975 #, c-format msgid " alloc (len) : %u (0x%08x)\n" msgstr " aloj (lon) : %u (0x%08x)\n" -#: vms-alpha.c:5856 +#: vms-alpha.c:5976 #, c-format msgid " image offset : 0x%08x\n" msgstr " despl imagen : 0x%08x\n" -#: vms-alpha.c:5858 +#: vms-alpha.c:5978 #, c-format msgid " symvec offset : 0x%08x\n" msgstr " despl symvec : 0x%08x\n" -#: vms-alpha.c:5860 +#: vms-alpha.c:5980 #, c-format msgid " name : %.*s\n" -msgstr " name : %.*s\n" +msgstr " nombre : %.*s\n" -#: vms-alpha.c:5873 +#: vms-alpha.c:5993 #, c-format msgid "SYM - Global symbol definition\n" msgstr "SYM - Definición de símbolo global\n" -#: vms-alpha.c:5874 vms-alpha.c:5934 vms-alpha.c:5955 vms-alpha.c:5974 +#: vms-alpha.c:5994 vms-alpha.c:6054 vms-alpha.c:6075 vms-alpha.c:6094 #, c-format msgid " flags: 0x%04x" msgstr " opciones: 0x%04x" -#: vms-alpha.c:5877 +#: vms-alpha.c:5997 #, c-format msgid " psect offset: 0x%08x\n" msgstr " despl psect: 0x%08x\n" -#: vms-alpha.c:5881 +#: vms-alpha.c:6001 #, c-format msgid " code address: 0x%08x\n" msgstr " dirección código: 0x%08x\n" -#: vms-alpha.c:5883 +#: vms-alpha.c:6003 #, c-format msgid " psect index for entry point : %u\n" -msgstr " índice psect para punto de entrada : %u\n" +msgstr " índice psect para punto entrante : %u\n" -#: vms-alpha.c:5886 vms-alpha.c:5962 vms-alpha.c:5981 +#: vms-alpha.c:6006 vms-alpha.c:6082 vms-alpha.c:6101 #, c-format msgid " psect index : %u\n" msgstr " índice psect : %u\n" -#: vms-alpha.c:5888 vms-alpha.c:5964 vms-alpha.c:5983 +#: vms-alpha.c:6008 vms-alpha.c:6084 vms-alpha.c:6103 #, c-format msgid " name : %.*s\n" msgstr " nombre : %.*s\n" -#: vms-alpha.c:5895 +#: vms-alpha.c:6015 #, c-format msgid "SYM - Global symbol reference\n" msgstr "SYM - Referencia de símbolo global\n" -#: vms-alpha.c:5907 +#: vms-alpha.c:6027 #, c-format msgid "IDC - Ident Consistency check\n" msgstr "IDC - Revisor de Consistencia de Identación\n" -#: vms-alpha.c:5908 +#: vms-alpha.c:6028 #, c-format msgid " flags : 0x%08x" msgstr " opciones : 0x%08x" -#: vms-alpha.c:5912 +#: vms-alpha.c:6032 #, c-format msgid " id match : %x\n" msgstr " coinc id : %x\n" -#: vms-alpha.c:5914 +#: vms-alpha.c:6034 #, c-format msgid " error severity: %x\n" msgstr " severidad err : %x\n" -#: vms-alpha.c:5917 +#: vms-alpha.c:6037 #, c-format msgid " entity name : %.*s\n" msgstr " nombre entidad: %.*s\n" -#: vms-alpha.c:5919 +#: vms-alpha.c:6039 #, c-format msgid " object name : %.*s\n" msgstr " nombre objeto : %.*s\n" -#: vms-alpha.c:5922 +#: vms-alpha.c:6042 #, c-format msgid " binary ident : 0x%08x\n" msgstr " ident binaria : 0x%08x\n" -#: vms-alpha.c:5925 +#: vms-alpha.c:6045 #, c-format msgid " ascii ident : %.*s\n" msgstr " ident ascii : %.*s\n" -#: vms-alpha.c:5933 +#: vms-alpha.c:6053 #, c-format msgid "SYMG - Universal symbol definition\n" msgstr "SYMG - Definición de símbolo universal\n" -#: vms-alpha.c:5937 +#: vms-alpha.c:6057 #, c-format msgid " symbol vector offset: 0x%08x\n" msgstr " despl vector símbolo: 0x%08x\n" -#: vms-alpha.c:5939 +#: vms-alpha.c:6059 #, c-format msgid " entry point: 0x%08x\n" -msgstr " punto de entrada: 0x%08x\n" +msgstr " punto entrante: 0x%08x\n" -#: vms-alpha.c:5941 +#: vms-alpha.c:6061 #, c-format msgid " proc descr : 0x%08x\n" msgstr " descr proc : 0x%08x\n" -#: vms-alpha.c:5943 +#: vms-alpha.c:6063 #, c-format msgid " psect index: %u\n" msgstr " índice psect: %u\n" -#: vms-alpha.c:5954 +#: vms-alpha.c:6074 #, c-format msgid "SYMV - Vectored symbol definition\n" msgstr "SYMV - Definición de símbolo vectorizado\n" -#: vms-alpha.c:5958 +#: vms-alpha.c:6078 #, c-format msgid " vector : 0x%08x\n" msgstr " vector : 0x%08x\n" -#: vms-alpha.c:5960 vms-alpha.c:5979 +#: vms-alpha.c:6080 vms-alpha.c:6099 #, c-format msgid " psect offset: %u\n" msgstr " despl psect : %u\n" -#: vms-alpha.c:5973 +#: vms-alpha.c:6093 #, c-format msgid "SYMM - Global symbol definition with version\n" msgstr "SYMM - Definición de símbolo global con versión\n" -#: vms-alpha.c:5977 +#: vms-alpha.c:6097 #, c-format msgid " version mask: 0x%08x\n" -msgstr " máscara versión: 0x%08x\n" +msgstr " máscara ver: 0x%08x\n" -#: vms-alpha.c:5988 +#: vms-alpha.c:6108 #, c-format msgid "unhandled egsd entry type %u\n" -msgstr "tipo de entrada egsd %u sin manejar\n" +msgstr "tipo de entrada egsd %u sin manipular\n" -#: vms-alpha.c:6022 +#: vms-alpha.c:6143 #, c-format msgid " linkage index: %u, replacement insn: 0x%08x\n" msgstr " índice enlace: %u, insn reemplazo: 0x%08x\n" -#: vms-alpha.c:6025 +#: vms-alpha.c:6147 #, c-format msgid " psect idx 1: %u, offset 1: 0x%08x %08x\n" msgstr " ind psect 1: %u, despl 1: 0x%08x %08x\n" -#: vms-alpha.c:6029 +#: vms-alpha.c:6152 #, c-format msgid " psect idx 2: %u, offset 2: 0x%08x %08x\n" msgstr " ind psect 2: %u, despl 2: 0x%08x %08x\n" -#: vms-alpha.c:6034 +#: vms-alpha.c:6158 #, c-format msgid " psect idx 3: %u, offset 3: 0x%08x %08x\n" msgstr " ind psect 3: %u, despl 3: 0x%08x %08x\n" -#: vms-alpha.c:6039 +#: vms-alpha.c:6163 #, c-format msgid " global name: %.*s\n" msgstr " nombre global: %.*s\n" -#: vms-alpha.c:6049 +#: vms-alpha.c:6174 #, c-format msgid " %s (len=%u+%u):\n" msgstr " %s (lon=%u+%u):\n" -#: vms-alpha.c:6064 +#: vms-alpha.c:6196 #, c-format msgid " (type: %3u, size: 4+%3u): " msgstr " (tipo: %3u, tam: 4+%3u): " -#: vms-alpha.c:6068 +#: vms-alpha.c:6200 #, c-format msgid "STA_GBL (stack global) %.*s\n" msgstr "STA_GBL (pila global) %.*s\n" -#: vms-alpha.c:6072 +#: vms-alpha.c:6204 #, c-format msgid "STA_LW (stack longword) 0x%08x\n" msgstr "STA_LW (pila longword) 0x%08x\n" -#: vms-alpha.c:6076 +#: vms-alpha.c:6208 #, c-format msgid "STA_QW (stack quadword) 0x%08x %08x\n" msgstr "STA_QW (pila quadword) 0x%08x %08x\n" -#: vms-alpha.c:6081 +#: vms-alpha.c:6213 #, c-format msgid "STA_PQ (stack psect base + offset)\n" msgstr "STA_PQ (pila psect base + despl)\n" -#: vms-alpha.c:6082 +#: vms-alpha.c:6215 #, c-format msgid " psect: %u, offset: 0x%08x %08x\n" msgstr " psect: %u, despl: 0x%08x %08x\n" -#: vms-alpha.c:6088 +#: vms-alpha.c:6221 #, c-format msgid "STA_LI (stack literal)\n" msgstr "STA_LI (pila literal)\n" -#: vms-alpha.c:6091 +#: vms-alpha.c:6224 #, c-format msgid "STA_MOD (stack module)\n" msgstr "STA_MOD (pila módulo)\n" -#: vms-alpha.c:6094 +#: vms-alpha.c:6227 #, c-format msgid "STA_CKARG (compare procedure argument)\n" msgstr "STA_CKARG (compara argumentos de procedimientos)\n" -#: vms-alpha.c:6098 +#: vms-alpha.c:6231 #, c-format msgid "STO_B (store byte)\n" msgstr "STO_B (almacena byte)\n" -#: vms-alpha.c:6101 +#: vms-alpha.c:6234 #, c-format msgid "STO_W (store word)\n" msgstr "STO_W (almacena word)\n" -#: vms-alpha.c:6104 +#: vms-alpha.c:6237 #, c-format msgid "STO_LW (store longword)\n" msgstr "STO_LW (almacena longword)\n" -#: vms-alpha.c:6107 +#: vms-alpha.c:6240 #, c-format msgid "STO_QW (store quadword)\n" msgstr "STO_QW (almacena quadword)\n" -#: vms-alpha.c:6113 +#: vms-alpha.c:6246 #, c-format msgid "STO_IMMR (store immediate repeat) %u bytes\n" msgstr "STO_IMMR (almacena inmediato repetido) %u bytes\n" -#: vms-alpha.c:6120 +#: vms-alpha.c:6253 #, c-format msgid "STO_GBL (store global) %.*s\n" msgstr "STO_GBL (almacena global) %.*s\n" -#: vms-alpha.c:6124 +#: vms-alpha.c:6257 #, c-format msgid "STO_CA (store code address) %.*s\n" msgstr "STO_CA (almacena direcc código) %.*s\n" -#: vms-alpha.c:6128 +#: vms-alpha.c:6261 #, c-format msgid "STO_RB (store relative branch)\n" msgstr "STO_RB (almacena ramif relativa)\n" -#: vms-alpha.c:6131 +#: vms-alpha.c:6264 #, c-format msgid "STO_AB (store absolute branch)\n" msgstr "STO_AB (almacena ramif absoluta)\n" -#: vms-alpha.c:6134 +#: vms-alpha.c:6267 #, c-format msgid "STO_OFF (store offset to psect)\n" msgstr "STO_OFF (almacena despl para psect)\n" -#: vms-alpha.c:6140 +#: vms-alpha.c:6273 #, c-format msgid "STO_IMM (store immediate) %u bytes\n" msgstr "STO_IMM (almacena inmediato) %u bytes\n" -#: vms-alpha.c:6147 +#: vms-alpha.c:6280 #, c-format msgid "STO_GBL_LW (store global longword) %.*s\n" msgstr "STO_GBL_LW (almacena global longword) %.*s\n" -#: vms-alpha.c:6151 +#: vms-alpha.c:6284 #, c-format msgid "STO_OFF (store LP with procedure signature)\n" msgstr "STO_OFF (almacena LP con firma de procedimiento)\n" -#: vms-alpha.c:6154 +#: vms-alpha.c:6287 #, c-format msgid "STO_BR_GBL (store branch global) *todo*\n" msgstr "STO_BR_GBL (almacena ramif global) *pend*\n" -#: vms-alpha.c:6157 +#: vms-alpha.c:6290 #, c-format msgid "STO_BR_PS (store branch psect + offset) *todo*\n" msgstr "STO_BR_PS (almacena ramif psect + despl) *pend*\n" -#: vms-alpha.c:6161 +#: vms-alpha.c:6294 #, c-format msgid "OPR_NOP (no-operation)\n" msgstr "OPR_NOP (no operación)\n" -#: vms-alpha.c:6164 +#: vms-alpha.c:6297 #, c-format msgid "OPR_ADD (add)\n" msgstr "OPR_ADD (adición)\n" -#: vms-alpha.c:6167 +#: vms-alpha.c:6300 #, c-format -msgid "OPR_SUB (substract)\n" -msgstr "OPR_SUB (sustracción)\n" +msgid "OPR_SUB (subtract)\n" +msgstr "OPR_SUB (subtract)\n" -#: vms-alpha.c:6170 +#: vms-alpha.c:6303 #, c-format msgid "OPR_MUL (multiply)\n" msgstr "OPR_MUL (multiplicación)\n" -#: vms-alpha.c:6173 +#: vms-alpha.c:6306 #, c-format msgid "OPR_DIV (divide)\n" msgstr "OPR_DIV (división)\n" -#: vms-alpha.c:6176 +#: vms-alpha.c:6309 #, c-format msgid "OPR_AND (logical and)\n" -msgstr "OPR_AND (and lógico)\n" +msgstr "OPR_AND (y lógico)\n" -#: vms-alpha.c:6179 +#: vms-alpha.c:6312 #, c-format msgid "OPR_IOR (logical inclusive or)\n" msgstr "OPR_IOR (or lógico inclusivo)\n" -#: vms-alpha.c:6182 +#: vms-alpha.c:6315 #, c-format msgid "OPR_EOR (logical exclusive or)\n" -msgstr "OPR_EOR (or lógico exclusivo)\n" +msgstr "OPR_EOR (o lógico exclusivo)\n" -#: vms-alpha.c:6185 +#: vms-alpha.c:6318 #, c-format msgid "OPR_NEG (negate)\n" msgstr "OPR_NEG (negación)\n" -#: vms-alpha.c:6188 +#: vms-alpha.c:6321 #, c-format msgid "OPR_COM (complement)\n" msgstr "OPR_COM (complemento)\n" -#: vms-alpha.c:6191 +#: vms-alpha.c:6324 #, c-format msgid "OPR_INSV (insert field)\n" msgstr "OPR_INSV (insertar campo)\n" -#: vms-alpha.c:6194 +#: vms-alpha.c:6327 #, c-format msgid "OPR_ASH (arithmetic shift)\n" msgstr "OPR_ASH (despl aritmético)\n" -#: vms-alpha.c:6197 +#: vms-alpha.c:6330 #, c-format msgid "OPR_USH (unsigned shift)\n" msgstr "OPR_USH (despl sin signo)\n" -#: vms-alpha.c:6200 +#: vms-alpha.c:6333 #, c-format msgid "OPR_ROT (rotate)\n" msgstr "OPR_ROT (rotación)\n" -#: vms-alpha.c:6203 +#: vms-alpha.c:6336 #, c-format msgid "OPR_SEL (select)\n" msgstr "OPR_SEL (selección)\n" -#: vms-alpha.c:6206 +#: vms-alpha.c:6339 #, c-format msgid "OPR_REDEF (redefine symbol to curr location)\n" msgstr "OPR_REDEF (redefine símbolo a la ubicación actual)\n" -#: vms-alpha.c:6209 +#: vms-alpha.c:6342 #, c-format msgid "OPR_REDEF (define a literal)\n" msgstr "OPR_REDEF (define una literal)\n" -#: vms-alpha.c:6213 +#: vms-alpha.c:6346 #, c-format msgid "STC_LP (store cond linkage pair)\n" msgstr "STC_LP (almacena par de enlace cond)\n" -#: vms-alpha.c:6217 +#: vms-alpha.c:6350 #, c-format msgid "STC_LP_PSB (store cond linkage pair + signature)\n" msgstr "STC_LP_PSB (almacena par de enlace cond + firma)\n" -#: vms-alpha.c:6218 +#: vms-alpha.c:6352 #, c-format msgid " linkage index: %u, procedure: %.*s\n" msgstr " índice enlace: %u, procedimiento: %.*s\n" -#: vms-alpha.c:6221 +#: vms-alpha.c:6355 #, c-format msgid " signature: %.*s\n" msgstr " firma: %.*s\n" -#: vms-alpha.c:6224 +#: vms-alpha.c:6358 #, c-format msgid "STC_GBL (store cond global)\n" msgstr "STC_GBL (almacena cond global)\n" -#: vms-alpha.c:6225 +#: vms-alpha.c:6360 #, c-format msgid " linkage index: %u, global: %.*s\n" msgstr " índice enlace: %u, global: %.*s\n" -#: vms-alpha.c:6229 +#: vms-alpha.c:6364 #, c-format msgid "STC_GCA (store cond code address)\n" msgstr "STC_GCA (almacena dirección de código cond)\n" -#: vms-alpha.c:6230 +#: vms-alpha.c:6366 #, c-format msgid " linkage index: %u, procedure name: %.*s\n" msgstr " índice enlace: %u, nombre procedimiento: %.*s\n" -#: vms-alpha.c:6234 +#: vms-alpha.c:6370 #, c-format msgid "STC_PS (store cond psect + offset)\n" msgstr "STC_PS (almacena psect cond + despl)\n" -#: vms-alpha.c:6236 +#: vms-alpha.c:6373 #, c-format msgid " linkage index: %u, psect: %u, offset: 0x%08x %08x\n" msgstr " índice enlace: %u, psect: %u, despl: 0x%08x %08x\n" -#: vms-alpha.c:6243 +#: vms-alpha.c:6380 #, c-format msgid "STC_NOP_GBL (store cond NOP at global addr)\n" msgstr "STC_NOP_GBL (almacena NOP cond en dirección global)\n" -#: vms-alpha.c:6247 +#: vms-alpha.c:6384 #, c-format msgid "STC_NOP_PS (store cond NOP at psect + offset)\n" msgstr "STC_NOP_PS (almacena NOP cond en psect + despl)\n" -#: vms-alpha.c:6251 +#: vms-alpha.c:6388 #, c-format msgid "STC_BSR_GBL (store cond BSR at global addr)\n" msgstr "STC_BSR_GBL (almacena BSR cond en dirección global)\n" -#: vms-alpha.c:6255 +#: vms-alpha.c:6392 #, c-format msgid "STC_BSR_PS (store cond BSR at psect + offset)\n" msgstr "STC_BSR_PS (almacena BSR cond en psect + despl)\n" -#: vms-alpha.c:6259 +#: vms-alpha.c:6396 #, c-format msgid "STC_LDA_GBL (store cond LDA at global addr)\n" msgstr "STC_LDA_GBL (almacena LDA cond en dirección global)\n" -#: vms-alpha.c:6263 +#: vms-alpha.c:6400 #, c-format msgid "STC_LDA_PS (store cond LDA at psect + offset)\n" msgstr "STC_LDA_PS (almacena LDA cond en psect + despl)\n" -#: vms-alpha.c:6267 +#: vms-alpha.c:6404 #, c-format msgid "STC_BOH_GBL (store cond BOH at global addr)\n" msgstr "STC_BOH_GBL (almacena BOH cond en dirección global)\n" -#: vms-alpha.c:6271 +#: vms-alpha.c:6408 #, c-format msgid "STC_BOH_PS (store cond BOH at psect + offset)\n" msgstr "STC_BOH_PS (almacena BOH cond en psect + despl)\n" -#: vms-alpha.c:6276 +#: vms-alpha.c:6413 #, c-format msgid "STC_NBH_GBL (store cond or hint at global addr)\n" msgstr "STC_NBH_GBL (almacena cond o pista en dirección global)\n" -#: vms-alpha.c:6280 +#: vms-alpha.c:6417 #, c-format msgid "STC_NBH_PS (store cond or hint at psect + offset)\n" msgstr "STC_NBH_PS (almacena cond o pista en psect + despl)\n" -#: vms-alpha.c:6284 +#: vms-alpha.c:6421 #, c-format msgid "CTL_SETRB (set relocation base)\n" msgstr "CTL_SETRB (define base de reubicación)\n" -#: vms-alpha.c:6290 +#: vms-alpha.c:6427 #, c-format msgid "CTL_AUGRB (augment relocation base) %u\n" msgstr "CTL_AUGRB (aumenta base de reubicación) %u\n" -#: vms-alpha.c:6294 +#: vms-alpha.c:6431 #, c-format msgid "CTL_DFLOC (define location)\n" msgstr "CTL_DFLOC (define ubicación)\n" -#: vms-alpha.c:6297 +#: vms-alpha.c:6434 #, c-format msgid "CTL_STLOC (set location)\n" msgstr "CTL_STLOC (establece ubicación)\n" -#: vms-alpha.c:6300 +#: vms-alpha.c:6437 #, c-format msgid "CTL_STKDL (stack defined location)\n" msgstr "CTL_STKDL (ubicación definida de pila)\n" -#: vms-alpha.c:6303 vms-alpha.c:6717 +#: vms-alpha.c:6440 vms-alpha.c:6864 vms-alpha.c:6990 #, c-format msgid "*unhandled*\n" msgstr "*sin manejar*\n" -#: vms-alpha.c:6333 vms-alpha.c:6372 +#: vms-alpha.c:6470 vms-alpha.c:6509 #, c-format msgid "cannot read GST record length\n" msgstr "no se puede leer la longitud del registro GST\n" #. Ill-formed. -#: vms-alpha.c:6354 +#: vms-alpha.c:6491 #, c-format msgid "cannot find EMH in first GST record\n" msgstr "no se puede encontrar EMH en el primer registro GST\n" -#: vms-alpha.c:6380 +#: vms-alpha.c:6517 #, c-format msgid "cannot read GST record header\n" msgstr "no se puede leer el encabezado del registro GST\n" -#: vms-alpha.c:6393 +#: vms-alpha.c:6530 #, c-format msgid " corrupted GST\n" msgstr " GST corrupto\n" -#: vms-alpha.c:6401 +#: vms-alpha.c:6538 #, c-format msgid "cannot read GST record\n" msgstr "no se puede leer el registro GST\n" -#: vms-alpha.c:6430 +#: vms-alpha.c:6567 #, c-format msgid " unhandled EOBJ record type %u\n" msgstr " tipo de registro EOBJ %u sin manejar\n" -#: vms-alpha.c:6453 +#: vms-alpha.c:6591 #, c-format msgid " bitcount: %u, base addr: 0x%08x\n" msgstr " cuenta bit: %u, direcc base: 0x%08x\n" -#: vms-alpha.c:6466 +#: vms-alpha.c:6605 #, c-format msgid " bitmap: 0x%08x (count: %u):\n" -msgstr " mapa bit: 0x%08x (cuenta: %u):\n" +msgstr " bitdistri: 0x%08x (cuenta: %u):\n" -#: vms-alpha.c:6473 +#: vms-alpha.c:6612 #, c-format msgid " %08x" msgstr " %08x" -#: vms-alpha.c:6498 +#: vms-alpha.c:6638 #, c-format msgid " image %u (%u entries)\n" -msgstr " imagen %u (%u entradas)\n" +msgstr " imagen %u (%u asientos)\n" -#: vms-alpha.c:6503 +#: vms-alpha.c:6644 #, c-format msgid " offset: 0x%08x, val: 0x%08x\n" msgstr " despl: 0x%08x, val: 0x%08x\n" -#: vms-alpha.c:6524 +#: vms-alpha.c:6666 #, c-format msgid " image %u (%u entries), offsets:\n" -msgstr " imagen %u (%u entradas), desplazamientos:\n" +msgstr " imagen %u (%u asientos), desplazs.:\n" -#: vms-alpha.c:6531 +#: vms-alpha.c:6673 #, c-format msgid " 0x%08x" msgstr " 0x%08x" #. 64 bits. -#: vms-alpha.c:6653 +#: vms-alpha.c:6795 #, c-format msgid "64 bits *unhandled*\n" -msgstr "64 bits *sin manejar*\n" +msgstr "64 bits *inmanipulado*\n" -#: vms-alpha.c:6657 +#: vms-alpha.c:6800 #, c-format msgid "class: %u, dtype: %u, length: %u, pointer: 0x%08x\n" msgstr "clase: %u, tipod: %u, long: %u, puntero: 0x%08x\n" -#: vms-alpha.c:6668 +#: vms-alpha.c:6811 #, c-format msgid "non-contiguous array of %s\n" msgstr "matriz no contigua de %s\n" -#: vms-alpha.c:6672 +#: vms-alpha.c:6816 #, c-format msgid "dimct: %u, aflags: 0x%02x, digits: %u, scale: %u\n" msgstr "dimct: %u, aops: 0x%02x, dígitos: %u, escala: %u\n" -#: vms-alpha.c:6676 +#: vms-alpha.c:6821 #, c-format msgid "arsize: %u, a0: 0x%08x\n" msgstr "artam: %u, a0: 0x%08x\n" -#: vms-alpha.c:6680 +#: vms-alpha.c:6825 #, c-format msgid "Strides:\n" msgstr "Estribos:\n" -#: vms-alpha.c:6685 -#, c-format -msgid "[%u]: %u\n" -msgstr "[%u]: %u\n" - -#: vms-alpha.c:6690 +#: vms-alpha.c:6835 #, c-format msgid "Bounds:\n" msgstr "Límites:\n" -#: vms-alpha.c:6695 +#: vms-alpha.c:6841 #, c-format msgid "[%u]: Lower: %u, upper: %u\n" msgstr "[%u]: Inferior: %u, superior: %u\n" -#: vms-alpha.c:6707 +#: vms-alpha.c:6853 #, c-format msgid "unaligned bit-string of %s\n" msgstr "cadena de bit sin alinear de %s\n" -#: vms-alpha.c:6711 +#: vms-alpha.c:6858 #, c-format msgid "base: %u, pos: %u\n" msgstr "base: %u, pos: %u\n" -#: vms-alpha.c:6731 +#: vms-alpha.c:6879 #, c-format msgid "vflags: 0x%02x, value: 0x%08x " msgstr "vops: 0x%02x, valor: 0x%08x " -#: vms-alpha.c:6737 +#: vms-alpha.c:6885 #, c-format msgid "(no value)\n" msgstr "(sin valor)\n" -#: vms-alpha.c:6740 +#: vms-alpha.c:6888 #, c-format msgid "(not active)\n" msgstr "(no activo)\n" -#: vms-alpha.c:6743 +#: vms-alpha.c:6891 #, c-format msgid "(not allocated)\n" -msgstr "(sin ubicar)\n" +msgstr "(sin ubicado)\n" -#: vms-alpha.c:6746 +#: vms-alpha.c:6894 #, c-format msgid "(descriptor)\n" msgstr "(descriptor)\n" -#: vms-alpha.c:6750 +#: vms-alpha.c:6898 #, c-format msgid "(trailing value)\n" msgstr "(valor restante)\n" -#: vms-alpha.c:6753 +#: vms-alpha.c:6901 #, c-format msgid "(value spec follows)\n" msgstr "(valor spec a continuación)\n" -#: vms-alpha.c:6756 +#: vms-alpha.c:6904 #, c-format msgid "(at bit offset %u)\n" msgstr "(en el despl de bit %u)\n" -#: vms-alpha.c:6759 +#: vms-alpha.c:6908 #, c-format msgid "(reg: %u, disp: %u, indir: %u, kind: " msgstr "(reg: %u, disp: %u, indir: %u, género: " -#: vms-alpha.c:6766 +#: vms-alpha.c:6915 msgid "literal" msgstr "literal" -#: vms-alpha.c:6769 +#: vms-alpha.c:6918 msgid "address" msgstr "dirección" -#: vms-alpha.c:6772 +#: vms-alpha.c:6921 msgid "desc" msgstr "desc" -#: vms-alpha.c:6775 +#: vms-alpha.c:6924 msgid "reg" msgstr "reg" -#: vms-alpha.c:6850 +#: vms-alpha.c:6941 +#, c-format +msgid "len: %2u, kind: %2u " +msgstr "lon: %2u, familia: %2u " + +#: vms-alpha.c:6947 +#, c-format +msgid "atomic, type=0x%02x %s\n" +msgstr "atómico, tipo=0x%02x %s\n" + +#: vms-alpha.c:6951 +#, c-format +msgid "indirect, defined at 0x%08x\n" +msgstr "indirecto, definido en 0x%08x\n" + +#: vms-alpha.c:6955 +#, c-format +msgid "typed pointer\n" +msgstr "puntero tipado\n" + +#: vms-alpha.c:6959 +#, c-format +msgid "pointer\n" +msgstr "puntero\n" + +#: vms-alpha.c:6967 +#, c-format +msgid "array, dim: %u, bitmap: " +msgstr "unimatriz, dim: %u, distribución bit: " + +#: vms-alpha.c:6974 +#, c-format +msgid "array descriptor:\n" +msgstr "descriptor matricial:\n" + +#: vms-alpha.c:6981 +#, c-format +msgid "type spec for element:\n" +msgstr "tipo específico para elemento:\n" + +#: vms-alpha.c:6983 +#, c-format +msgid "type spec for subscript %u:\n" +msgstr "" +"tipo específico para subcadena %u:\n" +"\n" + +#: vms-alpha.c:7001 #, c-format msgid "Debug symbol table:\n" -msgstr "Tabla de símbolos de depuración:\n" +msgstr "Tabla simbólica depurante:\n" -#: vms-alpha.c:6861 +#: vms-alpha.c:7012 #, c-format msgid "cannot read DST header\n" msgstr "no se puede leer el encabezado DST\n" -#: vms-alpha.c:6866 +#: vms-alpha.c:7018 #, c-format msgid " type: %3u, len: %3u (at 0x%08x): " msgstr " tipo: %3u, lon: %3u (en 0x%08x): " -#: vms-alpha.c:6880 +#: vms-alpha.c:7032 #, c-format msgid "cannot read DST symbol\n" msgstr "no se puede leer el símbolo DST\n" -#: vms-alpha.c:6923 +#: vms-alpha.c:7075 #, c-format msgid "standard data: %s\n" -msgstr "datos estándar: %s\n" +msgstr "datos comunes: %s\n" -#: vms-alpha.c:6926 vms-alpha.c:7010 +#: vms-alpha.c:7078 vms-alpha.c:7166 #, c-format msgid " name: %.*s\n" msgstr " nombre: %.*s\n" -#: vms-alpha.c:6933 +#: vms-alpha.c:7085 #, c-format msgid "modbeg\n" msgstr "modini\n" -#: vms-alpha.c:6934 +#: vms-alpha.c:7087 #, c-format msgid " flags: %d, language: %u, major: %u, minor: %u\n" msgstr " ops: %d, lenguaje: %u, mayor: %u, menor: %u\n" -#: vms-alpha.c:6940 vms-alpha.c:7206 +#: vms-alpha.c:7093 vms-alpha.c:7367 #, c-format msgid " module name: %.*s\n" msgstr " nom módulo : %.*s\n" -#: vms-alpha.c:6943 +#: vms-alpha.c:7096 #, c-format msgid " compiler : %.*s\n" msgstr " compilador : %.*s\n" -#: vms-alpha.c:6948 +#: vms-alpha.c:7101 #, c-format msgid "modend\n" msgstr "modfin\n" -#: vms-alpha.c:6955 +#: vms-alpha.c:7108 msgid "rtnbeg\n" msgstr "rtnini\n" -#: vms-alpha.c:6956 +#: vms-alpha.c:7110 #, c-format msgid " flags: %u, address: 0x%08x, pd-address: 0x%08x\n" msgstr " ops: %u, dirección: 0x%08x, direcc-pd: 0x%08x\n" -#: vms-alpha.c:6961 +#: vms-alpha.c:7115 #, c-format msgid " routine name: %.*s\n" msgstr " nom rutina : %.*s\n" -#: vms-alpha.c:6969 +#: vms-alpha.c:7123 #, c-format msgid "rtnend: size 0x%08x\n" msgstr "rtnfin: tam 0x%08x\n" -#: vms-alpha.c:6977 +#: vms-alpha.c:7131 #, c-format msgid "prolog: bkpt address 0x%08x\n" msgstr "prolog: dirección bkpt 0x%08x\n" -#: vms-alpha.c:6985 +#: vms-alpha.c:7140 #, c-format msgid "epilog: flags: %u, count: %u\n" msgstr "epilog: ops: %u, cuenta: %u\n" -#: vms-alpha.c:6994 +#: vms-alpha.c:7150 #, c-format msgid "blkbeg: address: 0x%08x, name: %.*s\n" msgstr "blkini: dirección: 0x%08x, nombre: %.*s\n" -#: vms-alpha.c:7003 +#: vms-alpha.c:7159 #, c-format msgid "blkend: size: 0x%08x\n" msgstr "blkfin: tam: 0x%08x\n" -#: vms-alpha.c:7009 +#: vms-alpha.c:7165 #, c-format msgid "typspec (len: %u)\n" msgstr "espectip (lon: %u)\n" -#: vms-alpha.c:7016 +#: vms-alpha.c:7172 #, c-format msgid "septyp, name: %.*s\n" msgstr "septip, nombre: %.*s\n" -#: vms-alpha.c:7025 +#: vms-alpha.c:7181 #, c-format msgid "recbeg: name: %.*s\n" msgstr "recini: nombre: %.*s\n" -#: vms-alpha.c:7032 +#: vms-alpha.c:7183 +#, c-format +msgid " len: %u bits\n" +msgstr " lon: %u bits\n" + +#: vms-alpha.c:7188 #, c-format msgid "recend\n" msgstr "recfin\n" -#: vms-alpha.c:7035 +#: vms-alpha.c:7192 #, c-format msgid "enumbeg, len: %u, name: %.*s\n" msgstr "enuini, lon: %u, nombre: %.*s\n" -#: vms-alpha.c:7039 +#: vms-alpha.c:7196 #, c-format msgid "enumelt, name: %.*s\n" msgstr "enufin, nombre: %.*s\n" -#: vms-alpha.c:7043 +#: vms-alpha.c:7200 #, c-format msgid "enumend\n" msgstr "enufin\n" -#: vms-alpha.c:7060 +#: vms-alpha.c:7205 +#, c-format +msgid "label, name: %.*s\n" +msgstr "etiqueta, nombre: %.*s\n" + +#: vms-alpha.c:7207 +#, c-format +msgid " address: 0x%08x\n" +msgstr " dirección: 0x%08x\n" + +#: vms-alpha.c:7217 #, c-format msgid "discontiguous range (nbr: %u)\n" msgstr "rango discontinuo (nbr: %u)\n" -#: vms-alpha.c:7062 +#: vms-alpha.c:7220 #, c-format msgid " address: 0x%08x, size: %u\n" msgstr " dirección: 0x%08x, tamaño: %u\n" -#: vms-alpha.c:7072 +#: vms-alpha.c:7230 #, c-format msgid "line num (len: %u)\n" msgstr "num línea (lon: %u)\n" -#: vms-alpha.c:7089 +#: vms-alpha.c:7247 #, c-format msgid "delta_pc_w %u\n" msgstr "delta_pc_w %u\n" -#: vms-alpha.c:7096 +#: vms-alpha.c:7254 #, c-format msgid "incr_linum(b): +%u\n" msgstr "incr_linum(b): +%u\n" -#: vms-alpha.c:7102 +#: vms-alpha.c:7260 #, c-format msgid "incr_linum_w: +%u\n" msgstr "incr_linum_w: +%u\n" -#: vms-alpha.c:7108 +#: vms-alpha.c:7266 #, c-format msgid "incr_linum_l: +%u\n" msgstr "incr_linum_l: +%u\n" -#: vms-alpha.c:7114 +#: vms-alpha.c:7272 #, c-format msgid "set_line_num(w) %u\n" msgstr "set_line_num(w) %u\n" -#: vms-alpha.c:7119 +#: vms-alpha.c:7277 #, c-format msgid "set_line_num_b %u\n" msgstr "set_line_num_b %u\n" -#: vms-alpha.c:7124 +#: vms-alpha.c:7282 #, c-format msgid "set_line_num_l %u\n" msgstr "set_line_num_l %u\n" -#: vms-alpha.c:7129 +#: vms-alpha.c:7287 #, c-format msgid "set_abs_pc: 0x%08x\n" msgstr "set_abs_pc: 0x%08x\n" -#: vms-alpha.c:7133 +#: vms-alpha.c:7291 #, c-format msgid "delta_pc_l: +0x%08x\n" msgstr "delta_pc_l: +0x%08x\n" -#: vms-alpha.c:7138 +#: vms-alpha.c:7296 #, c-format msgid "term(b): 0x%02x" msgstr "term(b): 0x%02x" -#: vms-alpha.c:7140 +#: vms-alpha.c:7298 #, c-format msgid " pc: 0x%08x\n" msgstr " pc: 0x%08x\n" -#: vms-alpha.c:7145 +#: vms-alpha.c:7303 #, c-format msgid "term_w: 0x%04x" msgstr "term_w: 0x%04x" -#: vms-alpha.c:7147 +#: vms-alpha.c:7305 #, c-format msgid " pc: 0x%08x\n" msgstr " pc: 0x%08x\n" -#: vms-alpha.c:7153 +#: vms-alpha.c:7311 #, c-format msgid "delta pc +%-4d" msgstr "delta pc +%-4d" -#: vms-alpha.c:7156 +#: vms-alpha.c:7315 #, c-format msgid " pc: 0x%08x line: %5u\n" msgstr " pc: 0x%08x línea: %5u\n" -#: vms-alpha.c:7161 +#: vms-alpha.c:7320 #, c-format msgid " *unhandled* cmd %u\n" msgstr " *sin manejar* ord %u\n" -#: vms-alpha.c:7176 +#: vms-alpha.c:7335 #, c-format msgid "source (len: %u)\n" msgstr "fuente (lon: %u)\n" -#: vms-alpha.c:7190 +#: vms-alpha.c:7350 #, c-format msgid " declfile: len: %u, flags: %u, fileid: %u\n" msgstr " declfich: lon: %u, ops: %u, fichid: %u\n" -#: vms-alpha.c:7194 +#: vms-alpha.c:7355 #, c-format msgid " rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n" msgstr " rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n" -#: vms-alpha.c:7203 +#: vms-alpha.c:7364 #, c-format msgid " filename : %.*s\n" msgstr " nomfichero : %.*s\n" -#: vms-alpha.c:7212 +#: vms-alpha.c:7373 #, c-format msgid " setfile %u\n" msgstr " setfile %u\n" -#: vms-alpha.c:7217 vms-alpha.c:7222 +#: vms-alpha.c:7378 vms-alpha.c:7383 #, c-format msgid " setrec %u\n" msgstr " setrect %u\n" -#: vms-alpha.c:7227 vms-alpha.c:7232 +#: vms-alpha.c:7388 vms-alpha.c:7393 #, c-format msgid " setlnum %u\n" msgstr " setlnum %u\n" -#: vms-alpha.c:7237 vms-alpha.c:7242 +#: vms-alpha.c:7398 vms-alpha.c:7403 #, c-format msgid " deflines %u\n" -msgstr " deflines %u\n" +msgstr " deflineas %u\n" -#: vms-alpha.c:7246 +#: vms-alpha.c:7407 #, c-format msgid " formfeed\n" msgstr " alimforma\n" -#: vms-alpha.c:7250 +#: vms-alpha.c:7411 #, c-format msgid " *unhandled* cmd %u\n" msgstr " *sin manejar* ord %u\n" -#: vms-alpha.c:7262 +#: vms-alpha.c:7423 #, c-format msgid "*unhandled* dst type %u\n" msgstr "tipo dst %u *sin manejar*\n" -#: vms-alpha.c:7294 +#: vms-alpha.c:7455 #, c-format msgid "cannot read EIHD\n" msgstr "no se puede leer EIHD\n" -#: vms-alpha.c:7297 +#: vms-alpha.c:7459 #, c-format msgid "EIHD: (size: %u, nbr blocks: %u)\n" msgstr "EIHD: (tamaño: %u, bloques nbr: %u)\n" -#: vms-alpha.c:7300 +#: vms-alpha.c:7463 #, c-format msgid " majorid: %u, minorid: %u\n" msgstr " idmayor: %u, idmenor: %u\n" -#: vms-alpha.c:7308 +#: vms-alpha.c:7471 msgid "executable" msgstr "ejecutable" -#: vms-alpha.c:7311 +#: vms-alpha.c:7474 msgid "linkable image" msgstr "imagen enlazable" -#: vms-alpha.c:7317 +#: vms-alpha.c:7481 #, c-format msgid " image type: %u (%s)" msgstr " tipo imagen: %u (%s)" -#: vms-alpha.c:7323 +#: vms-alpha.c:7487 msgid "native" msgstr "nativa" -#: vms-alpha.c:7326 +#: vms-alpha.c:7490 msgid "CLI" msgstr "CLI" -#: vms-alpha.c:7332 +#: vms-alpha.c:7497 #, c-format msgid ", subtype: %u (%s)\n" msgstr ", subtipo: %u (%s)\n" -#: vms-alpha.c:7338 +#: vms-alpha.c:7504 #, c-format msgid " offsets: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n" msgstr " despls: isd: %u, activ: %u, simdep: %u, idimg: %u, parche: %u\n" -#: vms-alpha.c:7342 +#: vms-alpha.c:7508 #, c-format msgid " fixup info rva: " msgstr " info compos rva: " -#: vms-alpha.c:7344 +#: vms-alpha.c:7510 #, c-format msgid ", symbol vector rva: " -msgstr " vector símbolo rva: " +msgstr ", vector símbolo rva: " -#: vms-alpha.c:7347 +#: vms-alpha.c:7513 #, c-format msgid "" "\n" @@ -5247,712 +7526,731 @@ "\n" " matriz versión despl: %u\n" -#: vms-alpha.c:7351 +#: vms-alpha.c:7518 #, c-format msgid " img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n" -msgstr " cuenta I/O img: %u, canales nbr: %u, pri req: %08x%08x\n" +msgstr " cuenta E/S img: %u, canales nbr: %u, pri req: %08x%08x\n" -#: vms-alpha.c:7357 +#: vms-alpha.c:7524 #, c-format msgid " linker flags: %08x:" -msgstr " opciones de enlazador: %08x:" +msgstr " opciones enlazadora: %08x:" -#: vms-alpha.c:7387 +#: vms-alpha.c:7555 #, c-format msgid " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n" msgstr " ident: 0x%08x, versis: 0x%08x, ctrl coinc: %u, tam_vectsim: %u\n" -#: vms-alpha.c:7393 +#: vms-alpha.c:7561 #, c-format msgid " BPAGE: %u" msgstr " BPAGE: %u" -#: vms-alpha.c:7399 +#: vms-alpha.c:7568 #, c-format msgid ", ext fixup offset: %u, no_opt psect off: %u" msgstr ", ext comp despl: %u, no_opt desp psect: %u" -#: vms-alpha.c:7402 +#: vms-alpha.c:7571 #, c-format msgid ", alias: %u\n" msgstr ", alias: %u\n" -#: vms-alpha.c:7410 +#: vms-alpha.c:7579 #, c-format msgid "system version array information:\n" msgstr "información de matriz de versión de sistema:\n" -#: vms-alpha.c:7414 +#: vms-alpha.c:7583 #, c-format msgid "cannot read EIHVN header\n" msgstr "no se puede leer el encabezado EIHVN\n" -#: vms-alpha.c:7424 +#: vms-alpha.c:7593 #, c-format msgid "cannot read EIHVN version\n" msgstr "no se puede leer la versión EIHVN\n" -#: vms-alpha.c:7427 +#: vms-alpha.c:7596 #, c-format msgid " %02u " msgstr " %02u " -#: vms-alpha.c:7431 +#: vms-alpha.c:7600 msgid "BASE_IMAGE " msgstr "IMAGEN_BASE " -#: vms-alpha.c:7434 +#: vms-alpha.c:7603 msgid "MEMORY_MANAGEMENT" msgstr "ADMIN_MEMORIA" -#: vms-alpha.c:7437 +#: vms-alpha.c:7606 msgid "IO " -msgstr "ES " +msgstr "E/S " -#: vms-alpha.c:7440 +#: vms-alpha.c:7609 msgid "FILES_VOLUMES " msgstr "VOL_FICHEROS " -#: vms-alpha.c:7443 +#: vms-alpha.c:7612 msgid "PROCESS_SCHED " msgstr "CALEND_PROCESOS " -#: vms-alpha.c:7446 +#: vms-alpha.c:7615 msgid "SYSGEN " msgstr "GENSIS " -#: vms-alpha.c:7449 +#: vms-alpha.c:7618 msgid "CLUSTERS_LOCKMGR " msgstr "ADMBLOQ_CLUSTERS " -#: vms-alpha.c:7452 +#: vms-alpha.c:7621 msgid "LOGICAL_NAMES " msgstr "NOMBRES_LOGICOS " -#: vms-alpha.c:7455 +#: vms-alpha.c:7624 msgid "SECURITY " msgstr "SEGURIDAD " -#: vms-alpha.c:7458 +#: vms-alpha.c:7627 msgid "IMAGE_ACTIVATOR " msgstr "ACTIVADOR_IMAGEN " -#: vms-alpha.c:7461 +#: vms-alpha.c:7630 msgid "NETWORKS " msgstr "REDES " -#: vms-alpha.c:7464 +#: vms-alpha.c:7633 msgid "COUNTERS " msgstr "CONTADORES " -#: vms-alpha.c:7467 +#: vms-alpha.c:7636 msgid "STABLE " msgstr "ESTABLE " -#: vms-alpha.c:7470 +#: vms-alpha.c:7639 msgid "MISC " msgstr "MISC " -#: vms-alpha.c:7473 +#: vms-alpha.c:7642 msgid "CPU " msgstr "CPU " -#: vms-alpha.c:7476 +#: vms-alpha.c:7645 msgid "VOLATILE " msgstr "VOLÃTIL " -#: vms-alpha.c:7479 +#: vms-alpha.c:7648 msgid "SHELL " msgstr "SHELL " -#: vms-alpha.c:7482 +#: vms-alpha.c:7651 msgid "POSIX " msgstr "POSIX " -#: vms-alpha.c:7485 +#: vms-alpha.c:7654 msgid "MULTI_PROCESSING " msgstr "MULTI_PROCESAM " -#: vms-alpha.c:7488 +#: vms-alpha.c:7657 msgid "GALAXY " msgstr "GALAXIA " -#: vms-alpha.c:7491 +#: vms-alpha.c:7660 msgid "*unknown* " msgstr "*desconocido* " -#: vms-alpha.c:7494 -#, c-format -msgid ": %u.%u\n" -msgstr ": %u.%u\n" - -#: vms-alpha.c:7507 vms-alpha.c:7766 +#: vms-alpha.c:7676 vms-alpha.c:7951 #, c-format msgid "cannot read EIHA\n" msgstr "no se puede leer EIHA\n" -#: vms-alpha.c:7510 +#: vms-alpha.c:7679 #, c-format msgid "Image activation: (size=%u)\n" msgstr "Activa imagen : (tamaño=%u)\n" -#: vms-alpha.c:7512 +#: vms-alpha.c:7682 #, c-format msgid " First address : 0x%08x 0x%08x\n" msgstr " Primera direcc: 0x%08x 0x%08x\n" -#: vms-alpha.c:7515 +#: vms-alpha.c:7686 #, c-format msgid " Second address: 0x%08x 0x%08x\n" msgstr " Segunda direcc: 0x%08x 0x%08x\n" -#: vms-alpha.c:7518 +#: vms-alpha.c:7690 #, c-format msgid " Third address : 0x%08x 0x%08x\n" msgstr " Tercera direcc: 0x%08x 0x%08x\n" -#: vms-alpha.c:7521 +#: vms-alpha.c:7694 #, c-format msgid " Fourth address: 0x%08x 0x%08x\n" msgstr " Cuarta direcc : 0x%08x 0x%08x\n" -#: vms-alpha.c:7524 +#: vms-alpha.c:7698 #, c-format msgid " Shared image : 0x%08x 0x%08x\n" -msgstr " Imagen compar : 0x%08x 0x%08x\n" +msgstr " Img compartbl : 0x%08x 0x%08x\n" -#: vms-alpha.c:7535 +#: vms-alpha.c:7709 #, c-format msgid "cannot read EIHI\n" msgstr "no se puede leer EIHI\n" -#: vms-alpha.c:7538 +#: vms-alpha.c:7713 #, c-format msgid "Image identification: (major: %u, minor: %u)\n" msgstr "Identificación de imagen: (mayor: %u, menor: %u)\n" -#: vms-alpha.c:7541 +#: vms-alpha.c:7716 #, c-format msgid " image name : %.*s\n" msgstr " nombre de imagen : %.*s\n" -#: vms-alpha.c:7543 +#: vms-alpha.c:7718 #, c-format msgid " link time : %s\n" msgstr " hora enlazado : %s\n" -#: vms-alpha.c:7545 +#: vms-alpha.c:7720 #, c-format msgid " image ident : %.*s\n" msgstr " ident imagen : %.*s\n" -#: vms-alpha.c:7547 +#: vms-alpha.c:7722 #, c-format msgid " linker ident : %.*s\n" msgstr " ident enlazador : %.*s\n" -#: vms-alpha.c:7549 +#: vms-alpha.c:7724 #, c-format msgid " image build ident: %.*s\n" msgstr " ident const imagen: %.*s\n" -#: vms-alpha.c:7559 +#: vms-alpha.c:7734 #, c-format msgid "cannot read EIHS\n" msgstr "no se puede leer EIHS\n" -#: vms-alpha.c:7562 +#: vms-alpha.c:7738 #, c-format msgid "Image symbol & debug table: (major: %u, minor: %u)\n" -msgstr "Símbolo de imagen y tabla de depuración: (mayor: %u, menor %u)\n" +msgstr "Símbolo de imagen y segmento de depuración: (mayor: %u, menor %u)\n" -#: vms-alpha.c:7567 +#: vms-alpha.c:7744 #, c-format msgid " debug symbol table : vbn: %u, size: %u (0x%x)\n" -msgstr " tabla de símbolos de depuración : vbn: %u, tam: %u (0x%x)\n" +msgstr " segmento de símbolos de depuración : vbn: %u, tam: %u (0x%x)\n" -#: vms-alpha.c:7571 +#: vms-alpha.c:7749 #, c-format msgid " global symbol table: vbn: %u, records: %u\n" -msgstr " tabla de símbolos globales : vbn: %u, registros: %u\n" +msgstr " segmento de símbolos globales : vbn: %u, registros: %u\n" -#: vms-alpha.c:7575 +#: vms-alpha.c:7754 #, c-format msgid " debug module table : vbn: %u, size: %u\n" -msgstr " tabla de módulo de depuración : vbn: %u, tam: %u\n" +msgstr " segmento de módulo de depuración : vbn: %u, tam: %u\n" -#: vms-alpha.c:7588 +#: vms-alpha.c:7767 #, c-format msgid "cannot read EISD\n" msgstr "no se puede leer EISD\n" -#: vms-alpha.c:7598 +#: vms-alpha.c:7778 #, c-format msgid "Image section descriptor: (major: %u, minor: %u, size: %u, offset: %u)\n" -msgstr "Descriptor de sección de imagen: (mayor: %u, menor: %u, tam: %u, despl: %u)\n" +msgstr "Descriptor seccional de imagen: (mayor: %u, menor: %u, tam: %u, despl: %u)\n" -#: vms-alpha.c:7605 +#: vms-alpha.c:7786 #, c-format msgid " section: base: 0x%08x%08x size: 0x%08x\n" msgstr " sección: base: 0x%08x%08x tam: 0x%08x\n" -#: vms-alpha.c:7610 +#: vms-alpha.c:7791 #, c-format msgid " flags: 0x%04x" msgstr " opciones: %04x" -#: vms-alpha.c:7647 +#: vms-alpha.c:7829 #, c-format msgid " vbn: %u, pfc: %u, matchctl: %u type: %u (" msgstr " vbn: %u, pfc: %u, coincctl: %u tipo: %u (" -#: vms-alpha.c:7653 +#: vms-alpha.c:7835 msgid "NORMAL" -msgstr "NORMAL" +msgstr "COMÚN" -#: vms-alpha.c:7656 +#: vms-alpha.c:7838 msgid "SHRFXD" msgstr "SHRFXD" -#: vms-alpha.c:7659 +#: vms-alpha.c:7841 msgid "PRVFXD" msgstr "PRVFXD" -#: vms-alpha.c:7662 +#: vms-alpha.c:7844 msgid "SHRPIC" msgstr "SHRPIC" -#: vms-alpha.c:7665 +#: vms-alpha.c:7847 msgid "PRVPIC" msgstr "PRVPIC" -#: vms-alpha.c:7668 +#: vms-alpha.c:7850 msgid "USRSTACK" -msgstr "USRSTACK" +msgstr "USRPILA" + +#: vms-alpha.c:7856 +msgid ")\n" +msgstr ")\n" -#: vms-alpha.c:7676 +#: vms-alpha.c:7859 #, c-format msgid " ident: 0x%08x, name: %.*s\n" msgstr " ident: 0x%08x, nombre: %.*s\n" -#: vms-alpha.c:7686 +#: vms-alpha.c:7869 #, c-format msgid "cannot read DMT\n" msgstr "no se puede leer DMT\n" -#: vms-alpha.c:7690 +#: vms-alpha.c:7873 #, c-format msgid "Debug module table:\n" -msgstr "Tabla de módulos de depuración\n" +msgstr "Tabla de módulos depurante\n" -#: vms-alpha.c:7699 +#: vms-alpha.c:7882 #, c-format msgid "cannot read DMT header\n" msgstr "no se puede leer el encabezado DMT\n" -#: vms-alpha.c:7704 +#: vms-alpha.c:7888 #, c-format msgid " module offset: 0x%08x, size: 0x%08x, (%u psects)\n" msgstr " despl módulo: 0x%08x, tam: 0x%08x, (%u psects)\n" -#: vms-alpha.c:7714 +#: vms-alpha.c:7898 #, c-format msgid "cannot read DMT psect\n" msgstr "no se puede leer el psect DMT\n" -#: vms-alpha.c:7717 +#: vms-alpha.c:7902 #, c-format msgid " psect start: 0x%08x, length: %u\n" msgstr " psect inicio: 0x%08x, long: %u\n" -#: vms-alpha.c:7730 +#: vms-alpha.c:7915 #, c-format msgid "cannot read DST\n" msgstr "no se puede leer DST\n" -#: vms-alpha.c:7740 +#: vms-alpha.c:7925 #, c-format msgid "cannot read GST\n" msgstr "no se puede leer GST\n" -#: vms-alpha.c:7744 +#: vms-alpha.c:7929 #, c-format msgid "Global symbol table:\n" msgstr "Tabla de símbolos global:\n" -#: vms-alpha.c:7772 +#: vms-alpha.c:7958 #, c-format msgid "Image activator fixup: (major: %u, minor: %u)\n" msgstr "Compostura de activador de imagen: (mayor: %u, menor: %u)\n" -#: vms-alpha.c:7775 +#: vms-alpha.c:7962 #, c-format msgid " iaflink : 0x%08x %08x\n" msgstr " iafenl : 0x%08x %08x\n" -#: vms-alpha.c:7778 +#: vms-alpha.c:7966 #, c-format msgid " fixuplnk: 0x%08x %08x\n" -msgstr " compenl : 0x%08x %08x\n" +msgstr " compenlace : 0x%08x %08x\n" -#: vms-alpha.c:7781 +#: vms-alpha.c:7969 #, c-format msgid " size : %u\n" -msgstr " tam : %u\n" +msgstr " tamñ : %u\n" -#: vms-alpha.c:7783 +#: vms-alpha.c:7971 #, c-format msgid " flags: 0x%08x\n" -msgstr " ops : 0x%08x\n" +msgstr " opcis: 0x%08x\n" -#: vms-alpha.c:7787 +#: vms-alpha.c:7976 #, c-format msgid " qrelfixoff: %5u, lrelfixoff: %5u\n" msgstr " qrelfixoff: %5u, lrelfixoff: %5u\n" -#: vms-alpha.c:7791 +#: vms-alpha.c:7981 #, c-format msgid " qdotadroff: %5u, ldotadroff: %5u\n" msgstr " qdotadroff: %5u, ldotadroff: %5u\n" -#: vms-alpha.c:7795 +#: vms-alpha.c:7986 #, c-format msgid " codeadroff: %5u, lpfixoff : %5u\n" msgstr " codeadroff: %5u, lpfixoff : %5u\n" -#: vms-alpha.c:7798 +#: vms-alpha.c:7989 #, c-format msgid " chgprtoff : %5u\n" msgstr " chgprtoff : %5u\n" -#: vms-alpha.c:7801 +#: vms-alpha.c:7993 #, c-format msgid " shlstoff : %5u, shrimgcnt : %5u\n" msgstr " shlstoff : %5u, shrimgcnt : %5u\n" -#: vms-alpha.c:7803 +#: vms-alpha.c:7996 #, c-format msgid " shlextra : %5u, permctx : %5u\n" msgstr " shlextra : %5u, permctx : %5u\n" -#: vms-alpha.c:7806 +#: vms-alpha.c:7999 #, c-format msgid " base_va : 0x%08x\n" msgstr " base_va : 0x%08x\n" -#: vms-alpha.c:7808 +#: vms-alpha.c:8001 #, c-format msgid " lppsbfixoff: %5u\n" msgstr " lppsbfixoff: %5u\n" -#: vms-alpha.c:7816 +#: vms-alpha.c:8009 #, c-format msgid " Shareable images:\n" msgstr " Imágenes compartibles:\n" -#: vms-alpha.c:7820 +#: vms-alpha.c:8014 #, c-format msgid " %u: size: %u, flags: 0x%02x, name: %.*s\n" msgstr " %u: tam: %u, opts: 0x%02x, nombre: %.*s\n" -#: vms-alpha.c:7827 +#: vms-alpha.c:8021 #, c-format msgid " quad-word relocation fixups:\n" msgstr " composturas de reubicación quad-word:\n" -#: vms-alpha.c:7832 +#: vms-alpha.c:8026 #, c-format msgid " long-word relocation fixups:\n" msgstr " composturas de reubicación long-word:\n" -#: vms-alpha.c:7837 +#: vms-alpha.c:8031 #, c-format msgid " quad-word .address reference fixups:\n" msgstr " composturas de referencia .address quad-word:\n" -#: vms-alpha.c:7842 +#: vms-alpha.c:8036 #, c-format msgid " long-word .address reference fixups:\n" msgstr " composturas de referencia .address long-word:\n" -#: vms-alpha.c:7847 +#: vms-alpha.c:8041 #, c-format msgid " Code Address Reference Fixups:\n" msgstr " Composturas de Referencias de Dirección de Código:\n" -#: vms-alpha.c:7852 +#: vms-alpha.c:8046 #, c-format -msgid " Linkage Pairs Referece Fixups:\n" -msgstr " Composturas de Referencias de Pares de Enlazado\n" +msgid " Linkage Pairs Reference Fixups:\n" +msgstr "" +" Recuperar Referencia Pares Enlazada:\n" +"\n" -#: vms-alpha.c:7861 +#: vms-alpha.c:8055 #, c-format msgid " Change Protection (%u entries):\n" msgstr " Cambiar Protección (%u entradas):\n" -#: vms-alpha.c:7866 +#: vms-alpha.c:8061 #, c-format msgid " base: 0x%08x %08x, size: 0x%08x, prot: 0x%08x " msgstr " base: 0x%08x %08x, tam: 0x%08x, prot: 0x%08x " #. FIXME: we do not yet support relocatable link. It is not obvious #. how to do it for debug infos. -#: vms-alpha.c:8706 +#: vms-alpha.c:8901 msgid "%P: relocatable link is not supported\n" msgstr "%P: no se admite el enlace reubicable\n" -#: vms-alpha.c:8776 +#: vms-alpha.c:8972 +#, c-format msgid "%P: multiple entry points: in modules %B and %B\n" msgstr "%P: puntos de entrada múltiples: en los módulos %B y %B\n" -#: vms-lib.c:1423 +#: vms-lib.c:1445 #, c-format msgid "could not open shared image '%s' from '%s'" -msgstr "no se puede abrir la imagen compartida '%s' desde '%s'" +msgstr "no se puede abrir la imagen compartida «%s» desde «%s»" -#: vms-misc.c:360 +#: vms-misc.c:361 msgid "_bfd_vms_output_counted called with zero bytes" msgstr "se llamó _bfd_vms_output_counted con cero bytes" -#: vms-misc.c:365 +#: vms-misc.c:366 msgid "_bfd_vms_output_counted called with too many bytes" msgstr "se llamó _bfd_vms_output_counted con demasiados bytes" -#: xcofflink.c:836 -#, 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:832 +msgid "%B: XCOFF shared object when not producing XCOFF output" +msgstr "%B: objeto compartido XCOFF cuando no se produce salida XCOFF" + +#: xcofflink.c:853 +msgid "%B: dynamic object with no .loader section" +msgstr "%B: objeto dinámico sin sección cargadora .loader" -#: xcofflink.c:857 +#: xcofflink.c:1413 #, c-format -msgid "%s: dynamic object with no .loader section" -msgstr "%s: objeto dinámico sin sección .loader" - -#: xcofflink.c:1416 msgid "%B: `%s' has line numbers but no enclosing section" -msgstr "%B: `%s' tiene números de línea pero no una sección contenedora" +msgstr "%B: «%s» tiene números de línea pero no una sección contenedora" -#: xcofflink.c:1468 +#: xcofflink.c:1466 +#, c-format msgid "%B: class %d symbol `%s' has no aux entries" -msgstr "%B: clase %d símbolo `%s' no tiene entradas auxiliares" +msgstr "%B: clase %d símbolo «%s» no tiene entradas auxiliares" -#: xcofflink.c:1490 +#: xcofflink.c:1489 +#, c-format msgid "%B: symbol `%s' has unrecognized csect type %d" -msgstr "%B: el símbolo `%s' tiene un tipo csect %d que no se reconoce" +msgstr "%B: el símbolo «%s» tiene un tipo csect %d que no se reconoce" #: xcofflink.c:1502 -msgid "%B: bad XTY_ER symbol `%s': class %d scnum %d scnlen %d" -msgstr "%B: símbolo XTY_ER `%s' erróneo: clase %d scnum %d scnlen %d" +#, c-format +msgid "%B: bad XTY_ER symbol `%s': class %d scnum %d scnlen %Ld" +msgstr "%B: símbolo XTY_ER «%s» equivocado: clase %d scnum %d scnlen %Ld" -#: xcofflink.c:1531 -msgid "%B: XMC_TC0 symbol `%s' is class %d scnlen %d" -msgstr "%B: símbolo XMC_TCO `%s' es clase %d scnlen %d" +#: xcofflink.c:1532 +#, c-format +msgid "%B: XMC_TC0 symbol `%s' is class %d scnlen %Ld" +msgstr "%B: símbolo XMC_TCO «%s» es clase %d scnlen %Ld" -#: xcofflink.c:1677 +#: xcofflink.c:1679 +#, c-format msgid "%B: csect `%s' not in enclosing section" -msgstr "%B: csect `%s' no está contenido en una sección" +msgstr "%B: csect «%s» no está contenido en un cierre seccional" -#: xcofflink.c:1784 +#: xcofflink.c:1787 +#, c-format msgid "%B: misplaced XTY_LD `%s'" -msgstr "%B: XTY_LD `%s' mal ubicado" +msgstr "%B: XTY_LD mal ubicado «%s»" -#: xcofflink.c:2103 -msgid "%B: reloc %s:%d not in csect" -msgstr "%B: la reubicación %s:%d no está en csect" +#: xcofflink.c:2108 +#, c-format +msgid "%B: reloc %s:%Ld not in csect" +msgstr "%B: reloc %s:%Ld no contenido en csect" -#: xcofflink.c:3194 +#: xcofflink.c:3198 #, c-format msgid "%s: no such symbol" msgstr "%s: no hay tal símbolo" -#: xcofflink.c:3299 +#: xcofflink.c:3303 #, c-format msgid "warning: attempt to export undefined symbol `%s'" -msgstr "aviso: se intenta exportar el símbolo sin definir `%s'" +msgstr "aviso: se intenta exportar el símbolo sin definir «%s»" -#: xcofflink.c:3678 +#: xcofflink.c:3682 msgid "error: undefined symbol __rtinit" -msgstr "error: símbolo __rtinit sin definir" +msgstr "error: símbolo __rtinit indefinido" -#: xcofflink.c:4057 +#: xcofflink.c:4062 +#, c-format msgid "%B: loader reloc in unrecognized section `%s'" -msgstr "%B: reubicación del cargador en la sección `%s' que no se reconoce" +msgstr "%B: reubicación del cargador en la sección que no se reconoce `%s'" -#: xcofflink.c:4068 +#: xcofflink.c:4074 +#, c-format msgid "%B: `%s' in loader reloc but not loader sym" -msgstr "%B: `%s' en la reubicación del cargador pero no es un símbolo del cargador" +msgstr "%B: «%s» en la reubicación del cargador pero no es un símbolo del cargador" -#: xcofflink.c:4084 +#: xcofflink.c:4091 +#, c-format msgid "%B: loader reloc in read-only section %A" msgstr "%B: reubicación del cargador en la sección de sólo lectura %A" -#: xcofflink.c:5106 +#: xcofflink.c:5115 #, 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" +msgid "TOC overflow: %#Lx > 0x10000; try -mminimal-toc when compiling" +msgstr "Desbordamiento superior de TOC: %#Lx > 0x10000; intente -mminimal-toc al compilar" -#: elf32-ia64.c:628 elf64-ia64.c:628 -msgid "%B: Can't relax br at 0x%lx in section `%A'. Please use brl or indirect branch." -msgstr "%B: No se puede relajar br en 0x%lx en la sección `%A'. Por favor use brl o ramificación indirecta." +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:1890 +#, c-format +msgid "Invalid AArch64 reloc number: %d" +msgstr "Número reubicante AArch64 no válido: %d" -#: elf32-ia64.c:2284 elf64-ia64.c:2284 -msgid "@pltoff reloc against local symbol" -msgstr "reubicación @pltoff contra un símbolo local" +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:4779 +msgid "%B: error: Erratum 835769 stub out of range (input file too large)" +msgstr "%B: error: error 835769 de cabo está fuera de rango (fichero entrante demasiado grande)" -#: elf32-ia64.c:3687 elf64-ia64.c:3687 -#, c-format -msgid "%s: short data segment overflowed (0x%lx >= 0x400000)" -msgstr "%s: segmento de datos short desbordado (0x%lx >= 0x400000)" +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:4860 +msgid "%B: error: Erratum 843419 stub out of range (input file too large)" +msgstr "%B: error: error 843419 de cabo está fuera de rango (fichero entrante demasiado grande)" -#: elf32-ia64.c:3698 elf64-ia64.c:3698 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:5366 #, c-format -msgid "%s: __gp does not cover short data segment" -msgstr "%s: __gp no cubre el segmento de datos short" - -#: elf32-ia64.c:3965 elf64-ia64.c:3965 -msgid "%B: non-pic code with imm relocation against dynamic symbol `%s'" -msgstr "%B: código que no es pic con reubicación imm contra el símbolo dinámico %s" +msgid "%B: relocation %s against symbol `%s' which may bind externally can not be used when making a shared object; recompile with -fPIC" +msgstr "%B: reubicación %s frente al símbolo «%s» el cual quizá externamente enlazado no puede ser empleada cuando se cra un objeto compartido; recompile con -fPIC" -#: elf32-ia64.c:4032 elf64-ia64.c:4032 -msgid "%B: @gprel relocation against dynamic symbol %s" -msgstr "%B: reubicación @gprel contra el símbolo dinámico %s" +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:5457 +#, c-format +msgid "%B: Local symbol descriptor table be NULL when applying relocation %s against local symbol" +msgstr "%B: tabla de descripción simbólica local es NULO cuando esté aplicando reubicación %s frente símbolo local" -#: elf32-ia64.c:4095 elf64-ia64.c:4095 -msgid "%B: linking non-pic code in a position independent executable" -msgstr "%B: se enlaza código que no es pic en un ejecutable independiente de posición" +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6479 +msgid "Too many GOT entries for -fpic, please recompile with -fPIC" +msgstr "Demasiadas entradas GOT para -fpic, recompile con -fPIC" -#: elf32-ia64.c:4232 elf64-ia64.c:4232 -msgid "%B: @internal branch to dynamic symbol %s" -msgstr "%B: ramificación @internal al símbolo dinámico %s" +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6507 +msgid "One possible cause of this error is that the symbol is being referenced in the indicated code as if it had a larger alignment than was declared where it was defined." +msgstr "Una causa posible de este error es que el símbolo está siendo referenciado dentro del código indicado como si tuvo un alineamiento mayor que lo que fue declarado donde estuvo definido." -#: elf32-ia64.c:4234 elf64-ia64.c:4234 -msgid "%B: speculation fixup to dynamic symbol %s" -msgstr "%B: compostura de especulación al símbolo dinámico %s" +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:7084 +#, c-format +msgid "%B: relocation %s against `%s' can not be used when making a shared object" +msgstr "%B: reubicación %s frente a «%s» no puede emplearse cuando se crea un objeto compartido" -#: elf32-ia64.c:4236 elf64-ia64.c:4236 -msgid "%B: @pcrel relocation against dynamic symbol %s" -msgstr "%B: reubicación @pcrel contra el símbolo dinámico %s" +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2570 +msgid "" +"%B: ABI is incompatible with that of the selected emulation:\n" +" target emulation `%s' does not match `%s'" +msgstr "" +"%B: la ABI es incompatible con esa de la emulación seleccionada:\n" +" emulación objetivo «%s» no coincide con «%s»" -#: elf32-ia64.c:4433 elf64-ia64.c:4433 -msgid "unsupported reloc" -msgstr "no se admite la reubicación" +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2590 +msgid "%B: can't link hard-float modules with soft-float modules" +msgstr "%B: no puede enlazar módulos flotantes-duros con módulos flotantes-blandos" -#: elf32-ia64.c:4471 elf64-ia64.c:4471 -msgid "%B: missing TLS section for relocation %s against `%s' at 0x%lx in section `%A'." -msgstr "%B: falta la sección TLS para la reubicación %s contra `%s' en 0x%lx en la sección `%A'." - -#: elf32-ia64.c:4486 elf64-ia64.c:4486 -msgid "%B: Can't relax br (%s) to `%s' at 0x%lx in section `%A' with size 0x%lx (> 0x1000000)." -msgstr "%B: No se puede relajar br (%s) a `%s' en 0x%lx en la sección `%A' con tamaño 0x%lx (> 0x1000000)." +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:3070 +msgid "%B(%A+0x%lx): %d bytes required for alignment to %d-byte boundary, but only %d present" +msgstr "%B(%A+0x%lx): %d bytes requirió para alineamiento para %d-byte frontera, pero solo %d presente" -#: elf32-ia64.c:4748 elf64-ia64.c:4748 -msgid "%B: linking trap-on-NULL-dereference with non-trapping files" -msgstr "%B: se enlaza deferencias-captura-en-NULL con ficheros que no son de captura" +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:3136 +msgid "%B(%A+0x%lx): Unable to clear RISCV_PCREL_HI20 relocfor cooresponding RISCV_PCREL_LO12 reloc" +msgstr "%B(%A+0x%lx): Incapaz de vaciar RISCV_PCREL_HI20 reubicando para correspondiente reubicación RISCV_PCREL_LO12" -#: elf32-ia64.c:4757 elf64-ia64.c:4757 -msgid "%B: linking big-endian files with little-endian files" -msgstr "%B: se enlazan ficheros big-endian con ficheros little-endian" +#: peigen.c:157 pepigen.c:157 pex64igen.c:157 +msgid "%B: unable to find name for empty section" +msgstr "%B: no se puede encontrar nombre para sección vacía" -#: elf32-ia64.c:4766 elf64-ia64.c:4766 -msgid "%B: linking 64-bit files with 32-bit files" -msgstr "%B: se enlazan ficheros de 64-bit con ficheros de 32-bit" +#: peigen.c:183 pepigen.c:183 pex64igen.c:183 +msgid "%B: out of memory creating name for empty section" +msgstr "%B: memoria agotada al crear nombre para sección vacía" -#: elf32-ia64.c:4775 elf64-ia64.c:4775 -msgid "%B: linking constant-gp files with non-constant-gp files" -msgstr "%B: se enlazan ficheros de gp constante con ficheros con gp no constante" +#: peigen.c:194 pepigen.c:194 pex64igen.c:194 +msgid "%B: unable to create fake empty section" +msgstr "%B: incapaz de crear sección vacía simulada" -#: elf32-ia64.c:4785 elf64-ia64.c:4785 -msgid "%B: linking auto-pic files with non-auto-pic files" -msgstr "%B: se enlazan ficheros de pic automático con ficheros sin pic automático" +#: peigen.c:532 pepigen.c:532 pex64igen.c:532 +msgid "%B: aout header specifies an invalid number of data-directory entries: %ld" +msgstr "%B: cabecera aout especifica un número de entradas de datos-directorio no válido: %ld" -#: peigen.c:1002 pepigen.c:1002 pex64igen.c:1002 +#: peigen.c:1089 pepigen.c:1089 pex64igen.c:1089 #, c-format -msgid "%s: line number overflow: 0x%lx > 0xffff" -msgstr "%s: desbordamiento de número de línea: 0x%lx > 0xffff" +msgid "%B: line number overflow: 0x%lx > 0xffff" +msgstr "%B: número de línea del desbordamiento superior: 0x%lx > 0xffff" -#: peigen.c:1029 pepigen.c:1029 pex64igen.c:1029 +#: peigen.c:1233 pepigen.c:1233 pex64igen.c:1233 msgid "Export Directory [.edata (or where ever we found it)]" -msgstr "Directorio de Exportación [.edata (o donde quiera que se encuentre)]" +msgstr "Exportar Directorio [.edata (o donde quiera que se encuentre)]" -#: peigen.c:1030 pepigen.c:1030 pex64igen.c:1030 +#: peigen.c:1234 pepigen.c:1234 pex64igen.c:1234 msgid "Import Directory [parts of .idata]" msgstr "Directorio de Importación [partes de .idata]" -#: peigen.c:1031 pepigen.c:1031 pex64igen.c:1031 +#: peigen.c:1235 pepigen.c:1235 pex64igen.c:1235 msgid "Resource Directory [.rsrc]" msgstr "Directorio de Recursos [.rsrc]" -#: peigen.c:1032 pepigen.c:1032 pex64igen.c:1032 +#: peigen.c:1236 pepigen.c:1236 pex64igen.c:1236 msgid "Exception Directory [.pdata]" msgstr "Directorio de Excepciones [.pdata]" -#: peigen.c:1033 pepigen.c:1033 pex64igen.c:1033 +#: peigen.c:1237 pepigen.c:1237 pex64igen.c:1237 msgid "Security Directory" msgstr "Directorio de Seguridad" -#: peigen.c:1034 pepigen.c:1034 pex64igen.c:1034 +#: peigen.c:1238 pepigen.c:1238 pex64igen.c:1238 msgid "Base Relocation Directory [.reloc]" msgstr "Directorio de Reubicación Base [.reloc]" -#: peigen.c:1035 pepigen.c:1035 pex64igen.c:1035 +#: peigen.c:1239 pepigen.c:1239 pex64igen.c:1239 msgid "Debug Directory" -msgstr "Directorio de Depuración" +msgstr "Directorio Depurante" -#: peigen.c:1036 pepigen.c:1036 pex64igen.c:1036 +#: peigen.c:1240 pepigen.c:1240 pex64igen.c:1240 msgid "Description Directory" msgstr "Directorio de Descripciones" -#: peigen.c:1037 pepigen.c:1037 pex64igen.c:1037 +#: peigen.c:1241 pepigen.c:1241 pex64igen.c:1241 msgid "Special Directory" msgstr "Directorio Especial" -#: peigen.c:1038 pepigen.c:1038 pex64igen.c:1038 +#: peigen.c:1242 pepigen.c:1242 pex64igen.c:1242 msgid "Thread Storage Directory [.tls]" msgstr "Directorio de Almacenamiento de Hilos [.tls]" -#: peigen.c:1039 pepigen.c:1039 pex64igen.c:1039 +#: peigen.c:1243 pepigen.c:1243 pex64igen.c:1243 msgid "Load Configuration Directory" msgstr "Directorio de Carga de Configuraciones" -#: peigen.c:1040 pepigen.c:1040 pex64igen.c:1040 +#: peigen.c:1244 pepigen.c:1244 pex64igen.c:1244 msgid "Bound Import Directory" msgstr "Directorio de Importación de Relaciones" -#: peigen.c:1041 pepigen.c:1041 pex64igen.c:1041 +#: peigen.c:1245 pepigen.c:1245 pex64igen.c:1245 msgid "Import Address Table Directory" msgstr "Directorio de Tablas de Direcciones de Importación" -#: peigen.c:1042 pepigen.c:1042 pex64igen.c:1042 +#: peigen.c:1246 pepigen.c:1246 pex64igen.c:1246 msgid "Delay Import Directory" msgstr "Directorio de Retardo de Importación" -#: peigen.c:1043 pepigen.c:1043 pex64igen.c:1043 +#: peigen.c:1247 pepigen.c:1247 pex64igen.c:1247 msgid "CLR Runtime Header" msgstr "Encabezado de Tiempo de Ejecución CLR" -#: peigen.c:1044 pepigen.c:1044 pex64igen.c:1044 +#: peigen.c:1248 pepigen.c:1248 pex64igen.c:1248 msgid "Reserved" msgstr "Reservado" -#: peigen.c:1104 pepigen.c:1104 pex64igen.c:1104 +#: peigen.c:1308 pepigen.c:1308 pex64igen.c:1308 #, c-format msgid "" "\n" "There is an import table, but the section containing it could not be found\n" msgstr "" "\n" -"Hay una tabla de importación, pero no se puede encontrar la sección que la contiene\n" +"Hay un segmento de importación, pero no se puede encontrar la sección que la contiene\n" + +#: peigen.c:1314 pepigen.c:1314 pex64igen.c:1314 +#, c-format +msgid "" +"\n" +"There is an import table in %s, but that section has no contents\n" +msgstr "" +"\n" +"Hay un segmento importada en %s, pero esa sección no tiene contenidos\n" +"\n" -#: peigen.c:1109 pepigen.c:1109 pex64igen.c:1109 +#: peigen.c:1321 pepigen.c:1321 pex64igen.c:1321 #, c-format msgid "" "\n" "There is an import table in %s at 0x%lx\n" msgstr "" "\n" -"Hay una tabla de importación en %s en 0x%lx\n" +"Hay un segmento de importación en %s en 0x%lx\n" -#: peigen.c:1151 pepigen.c:1151 pex64igen.c:1151 +#: peigen.c:1363 pepigen.c:1363 pex64igen.c:1363 #, c-format msgid "" "\n" @@ -5961,12 +8259,12 @@ "\n" "Se localizó el descriptor de función en la dirección de inicio: %04lx\n" -#: peigen.c:1154 pepigen.c:1154 pex64igen.c:1154 +#: peigen.c:1367 pepigen.c:1367 pex64igen.c:1367 #, 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" +msgstr "\tcódigo-base %08lx segmento-de-contenidos (cargable/actual) %08lx/%08lx\n" -#: peigen.c:1162 pepigen.c:1162 pex64igen.c:1162 +#: peigen.c:1375 pepigen.c:1375 pex64igen.c:1375 #, c-format msgid "" "\n" @@ -5975,16 +8273,16 @@ "\n" "¡No está la sección reldata! No se decodificó el descriptor de función.\n" -#: peigen.c:1167 pepigen.c:1167 pex64igen.c:1167 +#: peigen.c:1380 pepigen.c:1380 pex64igen.c:1380 #, c-format msgid "" "\n" "The Import Tables (interpreted %s section contents)\n" msgstr "" "\n" -"Las Tablas de Importación (se interpretaron los contenidos de la sección %s)\n" +"Las Tablas Importables (interpretados contenidos seccional %s)\n" -#: peigen.c:1170 pepigen.c:1170 pex64igen.c:1170 +#: peigen.c:1383 pepigen.c:1383 pex64igen.c:1383 #, c-format msgid "" " vma: Hint Time Forward DLL First\n" @@ -5993,57 +8291,81 @@ " vma: Pista Fecha Adelante DLL Primero\n" " Tabla Estampa Cadena Nombre Thunk\n" -#: peigen.c:1218 pepigen.c:1218 pex64igen.c:1218 +#: peigen.c:1433 pepigen.c:1433 pex64igen.c:1433 #, c-format msgid "" "\n" -"\tDLL Name: %s\n" +"\tDLL Name: %.*s\n" msgstr "" "\n" -"\tNombre de la DLL: %s\n" +"\tNombre DLL: %.*s\n" -#: peigen.c:1229 pepigen.c:1229 pex64igen.c:1229 +#: peigen.c:1449 pepigen.c:1449 pex64igen.c:1449 #, c-format msgid "\tvma: Hint/Ord Member-Name Bound-To\n" msgstr "\tvma: Pista/Ord Nombre-Miembro Unido-A\n" -#: peigen.c:1254 pepigen.c:1254 pex64igen.c:1254 +#: peigen.c:1474 pepigen.c:1474 pex64igen.c:1474 #, c-format msgid "" "\n" "There is a first thunk, but the section containing it could not be found\n" msgstr "" "\n" -"Hay un thunk inicial, pero no se puede encontrar la sección que lo contiene\n" +"Hay un trozo inicial, pero no se puede encontrar la sección que lo contiene\n" + +#: peigen.c:1518 peigen.c:1557 pepigen.c:1518 pepigen.c:1557 pex64igen.c:1518 +#: pex64igen.c:1557 +#, c-format +msgid "\t" +msgstr "\t" -#: peigen.c:1415 pepigen.c:1415 pex64igen.c:1415 +#: peigen.c:1650 pepigen.c:1650 pex64igen.c:1650 #, c-format msgid "" "\n" "There is an export table, but the section containing it could not be found\n" msgstr "" "\n" -"Hay una tabla de exportación, pero no se puede encontrar la sección que la contiene\n" +"Hay un segmento de exportación, pero no se puede encontrar la sección que la contiene\n" + +#: peigen.c:1656 pepigen.c:1656 pex64igen.c:1656 +#, c-format +msgid "" +"\n" +"There is an export table in %s, but that section has no contents\n" +msgstr "" +"\n" +"Hay un segmento exportado en %s, pero esa sección no tiene contenidos\n" -#: peigen.c:1424 pepigen.c:1424 pex64igen.c:1424 +#: peigen.c:1666 pepigen.c:1666 pex64igen.c:1666 #, c-format msgid "" "\n" "There is an export table in %s, but it does not fit into that section\n" msgstr "" "\n" -"Hay una tabla de exportación en %s, pero no cabe en esa sección\n" +"Hay un segmento de exportación en %s, pero no cabe en esa sección\n" + +#: peigen.c:1677 pepigen.c:1677 pex64igen.c:1677 +#, c-format +msgid "" +"\n" +"There is an export table in %s, but it is too small (%d)\n" +msgstr "" +"\n" +"Hay un segmento exportador dentro de %s, pero es demasiado pequeña (%d)\n" -#: peigen.c:1430 pepigen.c:1430 pex64igen.c:1430 +#: peigen.c:1683 pepigen.c:1683 pex64igen.c:1683 #, c-format msgid "" "\n" "There is an export table in %s at 0x%lx\n" msgstr "" "\n" -"Hay una tabla de exportación en %s en 0x%lx\n" +"Hay un segmento de exportación en %s en 0x%lx\n" -#: peigen.c:1458 pepigen.c:1458 pex64igen.c:1458 +#: peigen.c:1711 pepigen.c:1711 pex64igen.c:1711 #, c-format msgid "" "\n" @@ -6051,88 +8373,93 @@ "\n" msgstr "" "\n" -"Las Tablas de Exportación (se interpretaron los contenidos de la sección %s)\n" +"Las Tablas Exportables (se interpretaron los contenidos de la sección %s)\n" "\n" -#: peigen.c:1462 pepigen.c:1462 pex64igen.c:1462 +#: peigen.c:1715 pepigen.c:1715 pex64igen.c:1715 #, c-format msgid "Export Flags \t\t\t%lx\n" -msgstr "Opciones de Exportación \t\t\t%lx\n" +msgstr "Exportar Marcas \t\t\t%lx\n" -#: peigen.c:1465 pepigen.c:1465 pex64igen.c:1465 +#: peigen.c:1718 pepigen.c:1718 pex64igen.c:1718 #, c-format msgid "Time/Date stamp \t\t%lx\n" -msgstr "marca de Hora/Fecha \t\t%lx\n" +msgstr "Marca Hora/Fecha \t\t%lx\n" -#: peigen.c:1468 pepigen.c:1468 pex64igen.c:1468 +#: peigen.c:1722 pepigen.c:1722 pex64igen.c:1722 #, c-format msgid "Major/Minor \t\t\t%d/%d\n" msgstr "Mayor/Menor \t\t\t%d/%d\n" -#: peigen.c:1471 pepigen.c:1471 pex64igen.c:1471 +#: peigen.c:1725 pepigen.c:1725 pex64igen.c:1725 #, c-format msgid "Name \t\t\t\t" msgstr "Nombre \t\t\t\t" -#: peigen.c:1477 pepigen.c:1477 pex64igen.c:1477 +#: peigen.c:1736 pepigen.c:1736 pex64igen.c:1736 #, c-format msgid "Ordinal Base \t\t\t%ld\n" msgstr "Base Ordinal \t\t\t%ld\n" -#: peigen.c:1480 pepigen.c:1480 pex64igen.c:1480 +#: peigen.c:1739 pepigen.c:1739 pex64igen.c:1739 #, c-format msgid "Number in:\n" msgstr "Número en:\n" -#: peigen.c:1483 pepigen.c:1483 pex64igen.c:1483 +#: peigen.c:1742 pepigen.c:1742 pex64igen.c:1742 #, c-format msgid "\tExport Address Table \t\t%08lx\n" msgstr "\tTabla de Exportación de Direcciones \t\t%08lx\n" -#: peigen.c:1487 pepigen.c:1487 pex64igen.c:1487 +#: peigen.c:1746 pepigen.c:1746 pex64igen.c:1746 #, c-format msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n" msgstr "\tTabla [Nombre Puntero/Ordinal]\t%08lx\n" -#: peigen.c:1490 pepigen.c:1490 pex64igen.c:1490 +#: peigen.c:1749 pepigen.c:1749 pex64igen.c:1749 #, c-format msgid "Table Addresses\n" msgstr "Direcciones de la Tabla\n" -#: peigen.c:1493 pepigen.c:1493 pex64igen.c:1493 +#: peigen.c:1752 pepigen.c:1752 pex64igen.c:1752 #, c-format msgid "\tExport Address Table \t\t" msgstr "\tTabla de Exportación de Direcciones \t\t" -#: peigen.c:1498 pepigen.c:1498 pex64igen.c:1498 +#: peigen.c:1757 pepigen.c:1757 pex64igen.c:1757 #, c-format msgid "\tName Pointer Table \t\t" msgstr "\tNombre de la Tabla de Punteros \t\t" # continuar aqui -#: peigen.c:1503 pepigen.c:1503 pex64igen.c:1503 +#: peigen.c:1762 pepigen.c:1762 pex64igen.c:1762 #, c-format msgid "\tOrdinal Table \t\t\t" msgstr "\tTabla Ordinal \t\t\t" -#: peigen.c:1517 pepigen.c:1517 pex64igen.c:1517 +#: peigen.c:1776 pepigen.c:1776 pex64igen.c:1776 #, c-format msgid "" "\n" "Export Address Table -- Ordinal Base %ld\n" msgstr "" "\n" -"Tabla de Exportación de Direcciones -- Base Ordinal %ld\n" +"Tabla Exportante de Direcciones -- Base Ordinal %ld\n" + +#: peigen.c:1785 pepigen.c:1785 pex64igen.c:1785 +#, c-format +msgid "\tInvalid Export Address Table rva (0x%lx) or entry count (0x%lx)\n" +msgstr "\tDistribución Direccional Exportada Inválida rva (0x%lx) o contador de entrada (0x%lx)\n" -#: peigen.c:1536 pepigen.c:1536 pex64igen.c:1536 +#: peigen.c:1804 pepigen.c:1804 pex64igen.c:1804 msgid "Forwarder RVA" msgstr "RVA Adelantador" -#: peigen.c:1547 pepigen.c:1547 pex64igen.c:1547 +#: peigen.c:1816 pepigen.c:1816 pex64igen.c:1816 msgid "Export RVA" -msgstr "RVA Exportador" +msgstr "Exportar RVA" -#: peigen.c:1554 pepigen.c:1554 pex64igen.c:1554 +#: peigen.c:1823 pepigen.c:1823 pex64igen.c:1823 #, c-format msgid "" "\n" @@ -6141,42 +8468,72 @@ "\n" "Tabla [Puntero a Ordinal/Nombre]\n" -#: peigen.c:1614 peigen.c:1797 pepigen.c:1614 pepigen.c:1797 pex64igen.c:1614 -#: pex64igen.c:1797 +#: peigen.c:1831 pepigen.c:1831 pex64igen.c:1831 +#, c-format +msgid "\tInvalid Name Pointer Table rva (0x%lx) or entry count (0x%lx)\n" +msgstr "\tDistribución de nombres de punteros Invalido rva (0x%lx) o contador de entrada (0x%lx)\n" + +#: peigen.c:1838 pepigen.c:1838 pex64igen.c:1838 +#, c-format +msgid "\tInvalid Ordinal Table rva (0x%lx) or entry count (0x%lx)\n" +msgstr "\tDistribución Ordinal Inválida rva (0x%lx) o contador de entrada (0x%lx)\n" + +#: peigen.c:1852 pepigen.c:1852 pex64igen.c:1852 +#, c-format +msgid "\t[%4ld] \n" +msgstr "\t[%4ld] \n" + +#: peigen.c:1906 peigen.c:2103 pepigen.c:1906 pepigen.c:2103 pex64igen.c:1906 +#: pex64igen.c:2103 #, 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:1621 pepigen.c:1621 pex64igen.c:1621 +#: peigen.c:1910 peigen.c:2107 pepigen.c:1910 pepigen.c:2107 pex64igen.c:1910 +#: pex64igen.c:2107 +#, c-format +msgid "" +"\n" +"The Function Table (interpreted .pdata section contents)\n" +msgstr "" +"\n" +"La Tabla Funcional (se interpretaron los contenidos de la sección .pdata)\n" + +#: peigen.c:1913 pepigen.c:1913 pex64igen.c:1913 #, c-format 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:1623 pepigen.c:1623 pex64igen.c:1623 +#: peigen.c:1915 pepigen.c:1915 pex64igen.c:1915 #, c-format msgid "" " vma:\t\tBegin End EH EH PrologEnd Exception\n" " \t\tAddress Address Handler Data Address Mask\n" msgstr "" -" vma:\t\tInicio Fin EH EH FinPrólogo Excepción\n" -" \t\tDirecc Direcc Asa Datos Dirección Máscara\n" +" vma:\t\tInicio Final EH EH FinPrólog Excepción\n" +" \t\tDirecc Direcc Asa Datos Dirección Máscara\n" + +#: peigen.c:1928 pepigen.c:1928 pex64igen.c:1928 +#, c-format +msgid "Virtual size of .pdata section (%ld) larger than real size (%ld)\n" +msgstr "Tamaño virtual de sección .pdata (%ld) más grande que el tamaño real (%ld)\n" -#: peigen.c:1697 pepigen.c:1697 pex64igen.c:1697 +#: peigen.c:1998 pepigen.c:1998 pex64igen.c:1998 #, c-format msgid " Register save millicode" msgstr " Registro para guardar milicódigo" -#: peigen.c:1700 pepigen.c:1700 pex64igen.c:1700 +#: peigen.c:2001 pepigen.c:2001 pex64igen.c:2001 #, c-format msgid " Register restore millicode" msgstr " Registro para restaurar milicódigo" -#: peigen.c:1703 pepigen.c:1703 pex64igen.c:1703 +#: peigen.c:2004 pepigen.c:2004 pex64igen.c:2004 #, c-format msgid " Glue code sequence" msgstr " Secuencia de código pegamento" -#: peigen.c:1803 pepigen.c:1803 pex64igen.c:1803 +#: peigen.c:2109 pepigen.c:2109 pex64igen.c:2109 #, c-format msgid "" " vma:\t\tBegin Prolog Function Flags Exception EH\n" @@ -6185,7 +8542,7 @@ " vma:\t\tInicio Prólogo Función Opciones Excepción EH\n" " \t\tDirecc Longitud Longitud 32b exc Manejador Datos\n" -#: peigen.c:1929 pepigen.c:1929 pex64igen.c:1929 +#: peigen.c:2231 pepigen.c:2231 pex64igen.c:2231 #, c-format msgid "" "\n" @@ -6196,7 +8553,7 @@ "\n" "Reubicaciones de Fichero Base PE (se interpretaron los contenidos de la sección .reloc)\n" -#: peigen.c:1958 pepigen.c:1958 pex64igen.c:1958 +#: peigen.c:2261 pepigen.c:2261 pex64igen.c:2261 #, c-format msgid "" "\n" @@ -6205,15 +8562,145 @@ "\n" "Dirección Virtual: %08lx Tamaño del trozo %ld (0x%lx) Número de composturas %ld\n" -#: peigen.c:1971 pepigen.c:1971 pex64igen.c:1971 +#: peigen.c:2279 pepigen.c:2279 pex64igen.c:2279 #, c-format msgid "\treloc %4d offset %4x [%4lx] %s" msgstr "\treubicación %4d desplazamiento %4x [%4lx] %s" +#: peigen.c:2340 pepigen.c:2340 pex64igen.c:2340 +#, c-format +msgid "%03x %*.s Entry: " +msgstr "%03x %*.s Entrada: " + +#: peigen.c:2364 pepigen.c:2364 pex64igen.c:2364 +#, c-format +msgid "name: [val: %08lx len %d]: " +msgstr "nombre: [val: %08lx len %d]: " + +#: peigen.c:2384 pepigen.c:2384 pex64igen.c:2384 +#, c-format +msgid "\n" +msgstr "\n" + +#: peigen.c:2394 pepigen.c:2394 pex64igen.c:2394 +#, c-format +msgid "\n" +msgstr "\n" + +#: peigen.c:2399 pepigen.c:2399 pex64igen.c:2399 +#, c-format +msgid "ID: %#08lx" +msgstr "ID: %#08lx" + +#: peigen.c:2402 pepigen.c:2402 pex64igen.c:2402 +#, c-format +msgid ", Value: %#08lx\n" +msgstr ", Valor: %#08lx\n" + +#: peigen.c:2424 pepigen.c:2424 pex64igen.c:2424 +#, c-format +msgid "%03x %*.s Leaf: Addr: %#08lx, Size: %#08lx, Codepage: %d\n" +msgstr "%03x %*.s Hoja: Direc: %#08lx, Tam: %#08lx, PágCodigo: %d\n" + +#: peigen.c:2466 pepigen.c:2466 pex64igen.c:2466 +#, c-format +msgid "\n" +msgstr "\n" + +#: peigen.c:2474 pepigen.c:2474 pex64igen.c:2474 +#, c-format +msgid " Table: Char: %d, Time: %08lx, Ver: %d/%d, Num Names: %d, IDs: %d\n" +msgstr " Tabla: Car: %d, Tiempo: %08lx, Ver: %d/%d, Núm Nombres: %d, %d\n" + +#: peigen.c:2563 pepigen.c:2563 pex64igen.c:2563 +#, c-format +msgid "Corrupt .rsrc section detected!\n" +msgstr "" +"¡Detectada sección .rsrc corrupta!\n" +"\n" + +#: peigen.c:2587 pepigen.c:2587 pex64igen.c:2587 +#, c-format +msgid "" +"\n" +"WARNING: Extra data in .rsrc section - it will be ignored by Windows:\n" +msgstr "" +"\n" +"ATENCIÓN: Datos adicionales dentro en sección .rsrc - será ignorado por Ventanas:\n" + +#: peigen.c:2593 pepigen.c:2593 pex64igen.c:2593 +#, c-format +msgid " String table starts at offset: %#03x\n" +msgstr " Tabla de cadenas inicia en desplazamiento: %#03x\n" + +#: peigen.c:2596 pepigen.c:2596 pex64igen.c:2596 +#, c-format +msgid " Resources start at offset: %#03x\n" +msgstr " Recursos inician en desplazamiento: %#03x\n" + +#: peigen.c:2648 pepigen.c:2648 pex64igen.c:2648 +#, c-format +msgid "" +"\n" +"There is a debug directory, but the section containing it could not be found\n" +msgstr "" +"\n" +"Hay un directorio depurante, pero la sección conteniéndola no pudo ser encontrada\n" +"\n" + +#: peigen.c:2654 pepigen.c:2654 pex64igen.c:2654 +#, c-format +msgid "" +"\n" +"There is a debug directory in %s, but that section has no contents\n" +msgstr "" +"\n" +"Hay un directorio depurante dentro de %s, pero esa sección no tiene contenidos\n" + +#: peigen.c:2661 pepigen.c:2661 pex64igen.c:2661 +#, c-format +msgid "" +"\n" +"Error: section %s contains the debug data starting address but it is too small\n" +msgstr "" +"\n" +"Error: sección %s contiene los datos depurados iniciando en dirección pero es demasiado pequeño\n" + +#: peigen.c:2666 pepigen.c:2666 pex64igen.c:2666 +#, c-format +msgid "" +"\n" +"There is a debug directory in %s at 0x%lx\n" +"\n" +msgstr "" +"\n" +"Hay un directorio depurante dentro de %s en %lx\n" +"\n" + +#: peigen.c:2673 pepigen.c:2673 pex64igen.c:2673 +#, c-format +msgid "The debug data size field in the data directory is too big for the section" +msgstr "El tamaño del campo de datos depurados es demasiado grande para la sección" + +#: peigen.c:2678 pepigen.c:2678 pex64igen.c:2678 +#, c-format +msgid "Type Size Rva Offset\n" +msgstr "Tipo Tamaño Rva Despl\n" + +#: peigen.c:2726 pepigen.c:2726 pex64igen.c:2726 +#, c-format +msgid "(format %c%c%c%c signature %s age %ld)\n" +msgstr "(formato %c%c%c%c signatura %s envejecimiento %ld)\n" + +#: peigen.c:2734 pepigen.c:2734 pex64igen.c:2734 +#, c-format +msgid "The debug directory size is not a multiple of the debug directory entry size\n" +msgstr "El tamaño de directorio de depuración no es un múltiplo del tamaño de entrada de directorio depurador\n" + #. The MS dumpbin program reportedly ands with 0xff0f before #. printing the characteristics field. Not sure why. No reason to #. emulate it here. -#: peigen.c:2010 pepigen.c:2010 pex64igen.c:2010 +#: peigen.c:2754 pepigen.c:2754 pex64igen.c:2754 #, c-format msgid "" "\n" @@ -6222,38 +8709,220 @@ "\n" "Características 0x%x\n" -#: peigen.c:2310 pepigen.c:2310 pex64igen.c:2310 +#: peigen.c:2989 pepigen.c:2989 pex64igen.c:2989 +#, c-format +msgid "%B: Data Directory size (%lx) exceeds space left in section (%Lx)" +msgstr "%B: tamaño de Directorio e Datos (%lx) excede espacio izquierdo dentro de sección (%Lx)" + +#: peigen.c:3019 pepigen.c:3019 pex64igen.c:3019 +msgid "Failed to update file offsets in debug directory" +msgstr "Fallado al actualizar desplazamiento en directorio depurante" + +#: peigen.c:3025 pepigen.c:3025 pex64igen.c:3025 +msgid "%B: Failed to read debug data section" +msgstr "%B: fallaba al leer sección de datos depurados" + +#: peigen.c:3841 pepigen.c:3841 pex64igen.c:3841 +#, c-format +msgid ".rsrc merge failure: duplicate string resource: %d" +msgstr ".rsrc unión fallado: recurso de cadena duplicada: %d" + +#: peigen.c:3976 pepigen.c:3976 pex64igen.c:3976 +msgid ".rsrc merge failure: multiple non-default manifests" +msgstr "unión .rsrc fallada: múltiples manifestaciones no-predeterminadas" + +#: peigen.c:3994 pepigen.c:3994 pex64igen.c:3994 +msgid ".rsrc merge failure: a directory matches a leaf" +msgstr "fallo de mezcla .rsrc: un directorio coincide con una hoja" + +#: peigen.c:4036 pepigen.c:4036 pex64igen.c:4036 +msgid ".rsrc merge failure: duplicate leaf" +msgstr "fallo de mezcla .rsrc: hoja duplicada" + +#: peigen.c:4038 pepigen.c:4038 pex64igen.c:4038 +#, c-format +msgid ".rsrc merge failure: duplicate leaf: %s" +msgstr "fallo de mezcla .rsrc: hoja duplicada: %s" + +#: peigen.c:4104 pepigen.c:4104 pex64igen.c:4104 +msgid ".rsrc merge failure: dirs with differing characteristics\n" +msgstr "fallo de mezcla .rsrc: dirs con características diferentes\n" + +#: peigen.c:4111 pepigen.c:4111 pex64igen.c:4111 +msgid ".rsrc merge failure: differing directory versions\n" +msgstr "fallo de mezcla .rsrc: versiones de directorio diferentes\n" + +#. Corrupted .rsrc section - cannot merge. +#: peigen.c:4228 pepigen.c:4228 pex64igen.c:4228 +msgid "%B: .rsrc merge failure: corrupt .rsrc section" +msgstr "%B: unión .rsrc fallada: sección .rsrc corrupta" + +#: peigen.c:4236 pepigen.c:4236 pex64igen.c:4236 +msgid "%B: .rsrc merge failure: unexpected .rsrc size" +msgstr "%B: unión .rsrc fallada: tamaño inesperado .rsrc" + +#: peigen.c:4375 pepigen.c:4375 pex64igen.c:4375 msgid "%B: unable to fill in DataDictionary[1] because .idata$2 is missing" msgstr "%B: no se puede llenar DataDictionary[1] porque falta .idata$2" -#: peigen.c:2330 pepigen.c:2330 pex64igen.c:2330 +#: peigen.c:4395 pepigen.c:4395 pex64igen.c:4395 msgid "%B: unable to fill in DataDictionary[1] because .idata$4 is missing" msgstr "%B: no se puede llenar DataDictionary[1] porque falta .idata$4" -#: peigen.c:2351 pepigen.c:2351 pex64igen.c:2351 +#: peigen.c:4416 pepigen.c:4416 pex64igen.c:4416 msgid "%B: unable to fill in DataDictionary[12] because .idata$5 is missing" msgstr "%B: no se puede llenar DataDictionary[12] porque falta .idata$5" -#: peigen.c:2371 pepigen.c:2371 pex64igen.c:2371 +#: peigen.c:4436 pepigen.c:4436 pex64igen.c:4436 msgid "%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing" msgstr "%B: no se puede llenar DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] porque falta .idata$6" -#: peigen.c:2413 pepigen.c:2413 pex64igen.c:2413 +#: peigen.c:4478 pepigen.c:4478 pex64igen.c:4478 msgid "%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because .idata$6 is missing" msgstr "%B: no se puede llenar DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] porque falta .idata$6" -#: peigen.c:2438 pepigen.c:2438 pex64igen.c:2438 +#: peigen.c:4503 pepigen.c:4503 pex64igen.c:4503 msgid "%B: unable to fill in DataDictionary[9] because __tls_used is missing" msgstr "%B: no se puede llenar DataDictionary[9] porque falta __tls_used" -#~ msgid "%B: error: taking the address of protected function '%s' cannot be done when making a shared library" -#~ msgstr "%B: error: no se puede tomar la dirección de la función protegida '%s' cuando se hace una biblioteca compartida" +#~ msgid "Unrecognized reloc" +#~ msgstr "No se reconoce la reubicación" + +#~ msgid "%s: warning: illegal symbol index %ld in relocs" +#~ msgstr "%s: aviso: índice de símbolos %ld ilegal en reubicaciones" + +#~ msgid "Dwarf Error: Bad abbrev number: %u." +#~ msgstr "Error de Dwarf: Número de abreviación erróneo: %u." + +#~ msgid "%B: don't know how to handle allocated, application specific section `%s' [0x%8x]" +#~ msgstr "%B: no se sabe cómo manejar la sección específica alojada de la aplicación `%s' [0x%8x]" + +#~ msgid "%B: don't know how to handle processor specific section `%s' [0x%8x]" +#~ msgstr "%B: no se sabe cómo manejar la sección específica de procesador `%s' [0x%8x]" + +#~ msgid "%B: don't know how to handle OS specific section `%s' [0x%8x]" +#~ msgstr "%B: no se sabe cómo manejar la sección específica de SO `%s' [0x%8x]" + +#~ msgid "%B: don't know how to handle section `%s' [0x%8x]" +#~ msgstr "%B: no se sabe cómo manejar la sección `%s' [0x%8x]" + +#~ msgid "" +#~ "%B(%s): warning: interworking not enabled.\n" +#~ " first occurrence: %B: thumb call to arm" +#~ msgstr "" +#~ "%s(%s): aviso: no se activó la interoperabilidad.\n" +#~ " primer suceso: %B: llamada thumb a arm" + +#~ msgid "DIV usage mismatch between %B and %B" +#~ msgstr "no coincide el uso de DIV entre %B y %B" + +#~ msgid " [has entry point]" +#~ msgstr " [tiene punto de entrada]" + +#~ msgid "%B: unsupported relocation type %i" +#~ msgstr "%B: no se admite el tipo de reubicación %i" + +#~ 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)" + +#~ msgid "%B(%A+0x%lx): R_68K_TLS_LE32 relocation not permitted in shared object" +#~ msgstr "%B(%A+0x%lx): la reubicación R_68K_TLS_LE32 no se permite en objetos compartidos" + +#~ msgid "%s: unknown relocation type %d" +#~ msgstr "%s: tipo de reubicación %d desconocido" + +#~ 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)" -#~ msgid "%B(%A+0x%lx): cannot reach %s" -#~ msgstr "%B(%A+0x%lx): no se puede alcanzar %s" +#~ msgid "Warning: %B uses soft float, %B uses single-precision hard float" +#~ msgstr "Aviso: %B usa coma flotante soft, %B usa coma flotante hard de precisión simple" -#~ msgid "%B: warning: ignoring duplicate section `%A'\n" -#~ msgstr "%B: aviso: se descarta la sección duplicada `%A'\n" +#~ msgid "Warning: %B uses unknown small structure return convention %d" +#~ msgstr "Aviso: %B usa la convención de devolución de estructura small %d" + +#~ msgid "%P: dynamic variable `%s' is zero size\n" +#~ msgstr "%P: la variable dinámica `%s' es de tamaño cero\n" + +#~ msgid " [dsp]" +#~ msgstr " [dsp]" + +#~ msgid "%s: Malformed reloc detected for section %s" +#~ msgstr "%s: Se detectó una reubicación malformada para la sección %s" + +#~ msgid " %s: 0x%v\n" +#~ msgstr " %s: 0x%v\n" + +#~ msgid "%s: 0x%v 0x%v\n" +#~ msgstr "%s: 0x%v 0x%v\n" + +#~ msgid " %s%s %s\n" +#~ msgstr " %s%s %s\n" + +#~ msgid "%B(%A+0x" +#~ msgstr "%B(%A+0x" + +#~ msgid "%P: %H: automatic multiple TOCs not supported using your crt files; recompile with -mminimal-toc or upgrade gcc\n" +#~ msgstr "%P: %H: no se admiten los TOCs múltiples automáticos, utilizando sus ficheros crt; recompile con -mminimal-toc o actualice gcc\n" + +#~ msgid "%P: %H: sibling call optimization to `%s' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `%s' extern\n" +#~ msgstr "%P: %H: 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\n" + +#~ msgid "%B: relocation %s against undefined %s `%s' can not be used when making a shared object%s" +#~ msgstr "%B: no se puede usar la reubicación %s contra %s sin definir `%s' cuando se hace un objeto compartido%s" + +#~ msgid "note: '%s' is defined in DSO %B so try adding it to the linker command line" +#~ msgstr "nota: se define '%s' en DSO %B así que se tratará de agregarlo a la línea de órdenes del enlazador" + +#~ msgid "Warning: %B uses -msingle-float, %B uses -mips32r2 -mfp64" +#~ msgstr "Aviso: %B usa -msingle-float, %B usa -mips32r2 -mfp64" + +#~ msgid "Warning: %B uses -mdouble-float, %B uses -mips32r2 -mfp64" +#~ msgstr "Aviso: %B usa -mdouble-float, %B usa -mips32r2 -mfp64" + +#~ msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" is unsupported 'indirect' reference: setting to undefined" +#~ msgstr "bfd_mach_o_read_symtab_symbol: el símbolo \"%s\" no admite la referencia 'indirect': se cambia a indefinido" + +#~ msgid "bfd_mach_o_read_dysymtab_symbol: unable to read %lu bytes at %lu" +#~ msgstr "bfd_mach_o_read_dysymtab_symbol: no se pueden leer %lu bytes en %lu" + +#~ msgid "Mach-O header:\n" +#~ msgstr "encabezado de Mach-O:\n" + +#~ msgid " magic : %08lx\n" +#~ msgstr " magic : %08lx\n" + +#~ msgid " cputype : %08lx (%s)\n" +#~ msgstr " tipocpu : %08lx (%s)\n" + +#~ msgid " filetype : %08lx (%s)\n" +#~ msgstr " tipofich : %08lx (%s)\n" + +#~ msgid " ncmds : %08lx (%lu)\n" +#~ msgstr " nordenes : %08lx (%lu)\n" + +#~ msgid " sizeofcmds: %08lx\n" +#~ msgstr " tamordenes: %08lx\n" + +#~ msgid " flags : %08lx (" +#~ msgstr " opciones : %08lx (" + +#~ msgid " reserved : %08x\n" +#~ msgstr " reservado : %08x\n" + +#~ msgid "Segments and Sections:\n" +#~ msgstr "Segmentos y Secciones:\n" + +#~ msgid " #: Segment name Section name Address\n" +#~ msgstr " #: Nombre segmento Nombre sección Dirección\n" + +#~ msgid "Symbol %s replaced by %s\n" +#~ msgstr "Se reemplazó el símbolo %s por %s\n" + +#~ msgid "[%u]: %u\n" +#~ msgstr "[%u]: %u\n" + +#~ msgid ": %u.%u\n" +#~ msgstr ": %u.%u\n" #~ msgid "%B: warning: duplicate section `%A' has different size\n" #~ msgstr "%B: aviso: la sección duplicada `%A' es de tamaño diferente\n" @@ -6261,9 +8930,6 @@ #~ msgid "relocation references a different segment" #~ msgstr "la reubicación referencía un segmento diferente" -#~ msgid "%B: relocation type %d not implemented" -#~ msgstr "%B: el tipo de reubicación %d aún no está implementado" - #~ msgid "warning: %B and %B differ in position-dependence of data addressing" #~ msgstr "aviso: %B y %B difieren en el direccionamiento de datos dependiente de posición" @@ -6480,9 +9146,6 @@ #~ msgid " first occurrence: %s: thumb call to arm" #~ msgstr " primera ocurrencia: %s: llamada thumb a arm" -#~ msgid " consider relinking with --support-old-code enabled" -#~ msgstr " considere el reenlace con --support-old-code activado" - #~ msgid "reloc against unsupported section" #~ msgstr "reubicación contra una sección no admitida" @@ -6656,15 +9319,9 @@ #~ msgid "TIR_S_C_CTL_STKDL not fully implemented" #~ msgstr "TIR_S_C_CTL_STKDL no está completamente implementado" -#~ msgid " vma: Hint Time Forward DLL First\n" -#~ msgstr " vma: Pista Tiempo Adelante DLL Primero\n" - #~ msgid " \t\tAddress Address Handler Data Address Mask\n" #~ msgstr " \t\tDirección Dirección Manejador Datos Dirección Máscara\n" -#~ msgid "integer" -#~ msgstr "entero" - # FIXME: Revisar el contexto en el código para confirmar esta traducción. cfuga #~ msgid "soft" #~ msgstr "suave" Binary files /tmp/tmp2enahulf/tIHkpyh4Fz/gdb-8.1/bfd/po/fi.gmo and /tmp/tmp2enahulf/I6n3Ljszco/gdb-8.2/bfd/po/fi.gmo differ Binary files /tmp/tmp2enahulf/tIHkpyh4Fz/gdb-8.1/bfd/po/fr.gmo and /tmp/tmp2enahulf/I6n3Ljszco/gdb-8.2/bfd/po/fr.gmo differ diff -Nru gdb-8.1/bfd/po/fr.po gdb-8.2/bfd/po/fr.po --- gdb-8.1/bfd/po/fr.po 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/bfd/po/fr.po 2018-09-05 07:27:13.000000000 +0000 @@ -1,14 +1,14 @@ # Messages français pour GNU concernant bfd. -# Copyright (C) 2017 Free Software Foundation, Inc. +# Copyright (C) 2018 Free Software Foundation, Inc. # This file is distributed under the same license as the binutils package. # Michel Robitaille , traducteur depuis/since 1996. -# Frédéric Marchal , 2017. +# Frédéric Marchal , 2018. msgid "" msgstr "" -"Project-Id-Version: bfd-2.28.90\n" +"Project-Id-Version: bfd-2.30.0\n" "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n" -"POT-Creation-Date: 2017-07-03 16:54+0200\n" -"PO-Revision-Date: 2017-07-23 16:42+0200\n" +"POT-Creation-Date: 2018-01-13 13:44+0000\n" +"PO-Revision-Date: 2018-01-18 20:37+0100\n" "Last-Translator: Frédéric Marchal \n" "Language-Team: French \n" "Language: fr\n" @@ -38,46 +38,46 @@ msgid "%B: Bad relocation record imported: %d" msgstr "%B: Mauvais enregistrement de réadressage importé: %d" -#: aoutx.h:1284 aoutx.h:1621 pdp11.c:1152 pdp11.c:1413 +#: aoutx.h:1284 aoutx.h:1636 pdp11.c:1152 pdp11.c:1413 #, c-format msgid "%B: can not represent section `%A' in a.out object file format" msgstr "%B: ne peut représenter la section « %A » dans le fichier format objet a.out" -#: aoutx.h:1585 pdp11.c:1385 +#: aoutx.h:1600 pdp11.c:1385 #, c-format msgid "%B: can not represent section for symbol `%s' in a.out object file format" msgstr "%B: ne peut représenter la section pour le symbole « %s » dans le fichier format objet a.out" -#: aoutx.h:1588 vms-alpha.c:7776 +#: aoutx.h:1603 vms-alpha.c:7853 msgid "*unknown*" msgstr "*inconnu*" -#: aoutx.h:2407 aoutx.h:2425 +#: aoutx.h:2422 aoutx.h:2440 msgid "%B: attempt to write out unknown reloc type" msgstr "%B: tentative d'écrire un type de réadressage inconnu" -#: aoutx.h:4077 aoutx.h:4398 +#: aoutx.h:4093 aoutx.h:4414 msgid "%P: %B: unexpected relocation type\n" msgstr "%P: %B: type de réadressage non supporté\n" -#: aoutx.h:5424 pdp11.c:3708 +#: aoutx.h:5440 pdp11.c:3708 #, c-format msgid "%B: relocatable link from %s to %s not supported" msgstr "%B: lien relocalisable de %s vers %s n'est pas supporté" -#: archive.c:2293 +#: archive.c:2305 msgid "Warning: writing archive was slow: rewriting timestamp\n" msgstr "Attention: l'écriture de l'archive était lente: réécriture du cachet de date-heure\n" -#: archive.c:2405 linker.c:1408 +#: archive.c:2421 linker.c:1410 msgid "%B: plugin needed to handle lto object" msgstr "%B: le greffon doit gérer l'objet lto" -#: archive.c:2634 +#: archive.c:2650 msgid "Reading archive file mod timestamp" msgstr "Lecture du cachet date-heure modifié du fichier d'archive" -#: archive.c:2658 +#: archive.c:2674 msgid "Writing updated armap timestamp" msgstr "Écriture du cachet date-heure armap mise à jour" @@ -170,22 +170,22 @@ msgid "#" msgstr "#" -#: bfd.c:1138 +#: bfd.c:1442 #, c-format msgid "BFD %s assertion fail %s:%d" msgstr "BFD assertion %s a échoué %s:%d" -#: bfd.c:1151 +#: bfd.c:1455 #, c-format msgid "BFD %s internal error, aborting at %s:%d in %s\n" msgstr "BFD erreur interne %s, abandon à %s:%d dans %s\n" -#: bfd.c:1156 +#: bfd.c:1460 #, c-format msgid "BFD %s internal error, aborting at %s:%d\n" msgstr "BFD erreur interne %s, abandon à %s:%d\n" -#: bfd.c:1158 +#: bfd.c:1462 msgid "Please report this bug.\n" msgstr "Merci de rapporter cette anomalie.\n" @@ -201,11 +201,11 @@ #: binary.c:276 #, c-format -msgid "warning: writing section `%A' at huge (ie negative) file offset 0x%lx." -msgstr "Attention: écriture de la section « %A » vers un énorme décalage (c-à-d négatif) dans le fichier 0x%lx." +msgid "warning: writing section `%A' at huge (ie negative) file offset" +msgstr "attention: écriture de la section « %A » vers un énorme décalage (c-à-d négatif) dans le fichier" -#: bout.c:1142 elf-m10300.c:2651 elf32-avr.c:2484 elf32-frv.c:5633 -#: elf64-ia64-vms.c:353 elfxx-sparc.c:2989 reloc.c:8017 reloc16.c:156 +#: bout.c:1142 elf-m10300.c:2647 elf32-avr.c:2484 elf32-frv.c:5633 +#: elf64-ia64-vms.c:353 elfxx-sparc.c:2817 reloc.c:8059 reloc16.c:156 #: elf32-ia64.c:351 elf64-ia64.c:351 msgid "%P%F: --relax and -r may not be used together\n" msgstr "%P%F: --relax et -r ne peuvent pas être utilisés en même temps\n" @@ -227,7 +227,7 @@ msgid "%B: unknown/unsupported relocation type %d" msgstr "%B: type de réadressage %d inconnu ou non supporté" -#: coff-alpha.c:851 coff-alpha.c:888 coff-alpha.c:1961 coff-mips.c:944 +#: coff-alpha.c:851 coff-alpha.c:888 coff-alpha.c:1961 coff-mips.c:950 msgid "GP relative relocation used when GP not defined" msgstr "Réadressage relatif GP utilisé alors que GP n'est pas défini" @@ -243,24 +243,24 @@ msgid "%B: unsupported relocation: ALPHA_R_GPRELLOW" msgstr "%B: type de réadressage non supporté: ALPHA_R_GPRELLOW" -#: coff-alpha.c:1518 elf32-i370.c:1085 elf32-m32r.c:2418 -#: elf32-microblaze.c:952 elf64-alpha.c:4167 elf64-alpha.c:4315 -#: elf64-ia64-vms.c:3431 elf32-ia64.c:3839 elf64-ia64.c:3839 +#: coff-alpha.c:1518 elf32-i370.c:1081 elf32-m32r.c:2404 +#: elf32-microblaze.c:932 elf64-alpha.c:4098 elf64-alpha.c:4246 +#: elf64-ia64-vms.c:3430 elf32-ia64.c:3847 elf64-ia64.c:3847 #, c-format msgid "%B: unknown relocation type %d" msgstr "%B: type de réadressage %d inconnu" -#: coff-arm.c:1032 +#: coff-arm.c:1037 #, c-format msgid "%B: unable to find THUMB glue '%s' for `%s'" msgstr "%B: incapable de repérer le REPÈRE de liant « %s » pour « %s »" -#: coff-arm.c:1061 +#: coff-arm.c:1066 #, c-format msgid "%B: unable to find ARM glue '%s' for `%s'" msgstr "%B: incapable de repérer le liant ARM « %s » pour « %s »" -#: coff-arm.c:1363 elf32-arm.c:8896 +#: coff-arm.c:1368 elf32-arm.c:8896 #, c-format msgid "" "%B(%s): warning: interworking not enabled.\n" @@ -269,7 +269,7 @@ "%B(%s): attention: l'inter-réseautage n'est pas activé.\n" " première occurrence: %B: appel arm au repère" -#: coff-arm.c:1453 +#: coff-arm.c:1458 #, c-format msgid "" "%B(%s): warning: interworking not enabled.\n" @@ -280,100 +280,100 @@ " première occurrence: %B: appel arm au repère\n" " reliez avec --support-old-code activé" -#: coff-arm.c:1746 coff-tic80.c:670 cofflink.c:3123 +#: coff-arm.c:1751 coff-tic80.c:672 cofflink.c:3127 #, c-format -msgid "%B: bad reloc address 0x%lx in section `%A'" -msgstr "%B: mauvaise adresse de réadressage 0x%lx dans la section « %A »" +msgid "%B: bad reloc address %#Lx in section `%A'" +msgstr "%B: mauvaise adresse de réadressage %#Lx dans la section « %A »" -#: coff-arm.c:2071 +#: coff-arm.c:2076 #, c-format -msgid "%B: illegal symbol index in reloc: %d" -msgstr "%B: symbole index illégal dans le réadressage: %d" +msgid "%B: illegal symbol index in reloc: %ld" +msgstr "%B: symbole index illégal dans le réadressage: %ld" -#: coff-arm.c:2203 +#: coff-arm.c:2208 #, c-format msgid "error: %B is compiled for APCS-%d, whereas %B is compiled for APCS-%d" msgstr "erreur: %B compilé pour APCS-%d alors que %B a été compilé pour APCS-%d" -#: coff-arm.c:2216 elf32-arm.c:19756 +#: coff-arm.c:2221 elf32-arm.c:19582 #, c-format msgid "error: %B passes floats in float registers, whereas %B passes them in integer registers" msgstr "erreur: %B passage de valeurs en virgule flottante dans les registres FP alors que %B les passe dans les registres entiers" -#: coff-arm.c:2221 elf32-arm.c:19760 +#: coff-arm.c:2226 elf32-arm.c:19586 #, c-format msgid "error: %B passes floats in integer registers, whereas %B passes them in float registers" msgstr "erreur: %B passage de valeurs en virgule flottante dans les registres entiers alors que %B les passe dans les registres FP" -#: coff-arm.c:2233 +#: coff-arm.c:2238 #, c-format msgid "error: %B is compiled as position independent code, whereas target %B is absolute position" msgstr "erreur: %B compilé avec du code à position indépendante alors que la cible %B est à position absolue" -#: coff-arm.c:2238 +#: coff-arm.c:2243 #, c-format msgid "error: %B is compiled as absolute position code, whereas target %B is position independent" msgstr "erreur: %B compilé avec du code à position absolu alors que la cible %B est à position indépendante" -#: coff-arm.c:2265 elf32-arm.c:19825 +#: coff-arm.c:2270 elf32-arm.c:19651 #, c-format msgid "Warning: %B supports interworking, whereas %B does not" msgstr "Attention: %B supporte l'inter-réseautage, contrairement à %B" -#: coff-arm.c:2270 elf32-arm.c:19831 +#: coff-arm.c:2275 elf32-arm.c:19657 #, c-format msgid "Warning: %B does not support interworking, whereas %B does" msgstr "Attention: %B ne supporte pas l'inter-réseautage, contrairement à %B" -#: coff-arm.c:2293 +#: coff-arm.c:2298 #, c-format msgid "private flags = %x:" msgstr "fanions privés = %x:" -#: coff-arm.c:2301 elf32-arm.c:14156 +#: coff-arm.c:2306 elf32-arm.c:14160 #, c-format msgid " [floats passed in float registers]" msgstr " [valeurs en virgule flottante passées dans des registres de valeurs en virgule flottante]" -#: coff-arm.c:2303 +#: coff-arm.c:2308 #, c-format msgid " [floats passed in integer registers]" msgstr " [valeurs en virgule flottante passées dans des registres de valeurs entières]" -#: coff-arm.c:2306 elf32-arm.c:14159 +#: coff-arm.c:2311 elf32-arm.c:14163 #, c-format msgid " [position independent]" msgstr " [position indépendante]" -#: coff-arm.c:2308 +#: coff-arm.c:2313 #, c-format msgid " [absolute position]" msgstr " [position absolue]" -#: coff-arm.c:2312 +#: coff-arm.c:2317 #, c-format msgid " [interworking flag not initialised]" msgstr " [fanion d'inter-réseautage n'a pas été initialisé]" -#: coff-arm.c:2314 +#: coff-arm.c:2319 #, c-format msgid " [interworking supported]" msgstr " [inter-réseautage supporté]" -#: coff-arm.c:2316 +#: coff-arm.c:2321 #, c-format msgid " [interworking not supported]" msgstr " [inter-réseautage non supporté]" -#: coff-arm.c:2361 elf32-arm.c:13017 +#: coff-arm.c:2366 elf32-arm.c:13021 msgid "Warning: Not setting interworking flag of %B since it has already been specified as non-interworking" msgstr "Attention: Pas d'initialisation du fanion d'inter-réseautage de %B puisqu'il a déjà été spécifié sans inter-réseautage" -#: coff-arm.c:2364 elf32-arm.c:13021 +#: coff-arm.c:2369 elf32-arm.c:13025 msgid "Warning: Clearing the interworking flag of %B due to outside request" msgstr "Attention: Mise à zéro du fanion d'inter-réseautage de %B en raison d'une requête externe" -#: coff-arm.c:2421 elf32-arm.c:13066 +#: coff-arm.c:2426 elf32-arm.c:13070 #, c-format msgid "Warning: Clearing the interworking flag of %B because non-interworking code in %B has been linked with it" msgstr "Attention: mise à zéro du fanion d'inter-réseautage %B en raison du code sans inter-réseautage dans %B lié avec lui" @@ -383,12 +383,12 @@ msgid "cannot handle R_MEM_INDIRECT reloc when using %s output" msgstr "ne peut traiter le réadressage R_MEM_INDIRECT lorsque %s est utilisé en sortie" -#: coff-i860.c:146 +#: coff-i860.c:151 #, c-format msgid "relocation `%s' not yet implemented" msgstr "réadressage « %s » pas encore implémenté" -#: coff-i860.c:608 coff-tic4x.c:227 coff-tic54x.c:365 coffcode.h:5314 +#: coff-i860.c:613 coff-tic4x.c:227 coff-tic54x.c:365 coffcode.h:5343 #, c-format msgid "%B: warning: illegal symbol index %ld in relocs" msgstr "%B: attention: symbole index illégal %ld dans les réadressages" @@ -397,26 +397,26 @@ msgid "uncertain calling convention for non-COFF symbol" msgstr "convention d'appel incertaine pour un symbole non COFF" -#: coff-m68k.c:483 elf32-bfin.c:5530 elf32-cr16.c:2817 elf32-m68k.c:4574 +#: coff-m68k.c:488 elf32-bfin.c:5340 elf32-cr16.c:2801 elf32-m68k.c:4385 msgid "unsupported reloc type" msgstr "type de réadressage non supporté" -#: coff-mips.c:634 elf32-mips.c:1744 elf32-score.c:430 elf32-score7.c:330 -#: elf64-mips.c:3135 elfn32-mips.c:2954 +#: coff-mips.c:640 elf32-mips.c:1744 elf32-score.c:430 elf32-score7.c:330 +#: elf64-mips.c:3135 elfn32-mips.c:2958 msgid "GP relative relocation when _gp not defined" msgstr "réadressage relatif GP sans que _gp ne soit défini" -#: coff-rs6000.c:2747 +#: coff-rs6000.c:2773 #, c-format msgid "%B: unsupported relocation type 0x%02x" msgstr "%B: type de réadressage non supporté 0x%02x" -#: coff-rs6000.c:2833 +#: coff-rs6000.c:2859 #, c-format -msgid "%B: TOC reloc at 0x%x to symbol `%s' with no TOC entry" -msgstr "%B: la table des matières des réadressages à 0x%x pour le symbole « %s » sans aucune entrée" +msgid "%B: TOC reloc at %#Lx to symbol `%s' with no TOC entry" +msgstr "%B: la table des matières des réadressages à %Lx pour le symbole « %s » sans aucune entrée" -#: coff-rs6000.c:3579 coff64-rs6000.c:2110 +#: coff-rs6000.c:3605 coff64-rs6000.c:2150 #, c-format msgid "%B: symbol `%s' has unrecognized smclas %d" msgstr "%B: symbole « %s » a une classe smclas %d non reconnue" @@ -428,54 +428,54 @@ #: coff-sh.c:778 elf32-sh.c:580 #, c-format -msgid "%B: 0x%lx: warning: bad R_SH_USES offset" -msgstr "%B: 0x%lx: attention: mauvais décalage pour R_SH_USES" +msgid "%B: %#Lx: warning: bad R_SH_USES offset" +msgstr "%B: %#Lx: attention: mauvais décalage pour R_SH_USES" -#: coff-sh.c:789 elf32-sh.c:592 +#: coff-sh.c:789 #, c-format -msgid "%B: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x" -msgstr "%B: 0x%lx: attention: R_SH_USES pointe vers un insn inconnu 0x%x" +msgid "%B: %#Lx: warning: R_SH_USES points to unrecognized insn %#x" +msgstr "%B: %#Lx: attention: R_SH_USES pointe vers l'insn inconnu %#x" #: coff-sh.c:807 elf32-sh.c:610 #, c-format -msgid "%B: 0x%lx: warning: bad R_SH_USES load offset" -msgstr "%B: 0x%lx: attention: mauvais décalage de chargement R_SH_USES" +msgid "%B: %#Lx: warning: bad R_SH_USES load offset" +msgstr "%B: %#Lx: attention: mauvais décalage de chargement R_SH_USES" #: coff-sh.c:832 elf32-sh.c:626 #, c-format -msgid "%B: 0x%lx: warning: could not find expected reloc" -msgstr "%B: 0x%lx: attention: ne peut repérer le réadressage attendu" +msgid "%B: %#Lx: warning: could not find expected reloc" +msgstr "%B: %#Lx: attention: ne peut repérer le réadressage attendu" #: coff-sh.c:849 elf32-sh.c:655 #, c-format -msgid "%B: 0x%lx: warning: symbol in unexpected section" -msgstr "%B: 0x%lx: attention: symbole dans une section inattendue" +msgid "%B: %#Lx: warning: symbol in unexpected section" +msgstr "%B: %#Lx: attention: symbole dans une section inattendue" #: coff-sh.c:975 elf32-sh.c:785 #, c-format -msgid "%B: 0x%lx: warning: could not find expected COUNT reloc" -msgstr "%B: 0x%lx: attention: ne peut repérer le compteur de réadressages attendu" +msgid "%B: %#Lx: warning: could not find expected COUNT reloc" +msgstr "%B: %#Lx: attention: ne peut repérer le compteur de réadressages attendu" #: coff-sh.c:985 elf32-sh.c:795 #, c-format -msgid "%B: 0x%lx: warning: bad count" -msgstr "%B: 0x%lx: attention: mauvais décompte" +msgid "%B: %#Lx: warning: bad count" +msgstr "%B: %#Lx: attention: mauvais décompte" #: coff-sh.c:1357 coff-sh.c:2645 elf32-sh.c:1199 elf32-sh.c:1570 #, c-format -msgid "%B: 0x%lx: fatal: reloc overflow while relaxing" -msgstr "%B: 0x%lx: erreur fatale: débordement de réadressage lors des relâches" +msgid "%B: %#Lx: fatal: reloc overflow while relaxing" +msgstr "%B: %#Lx: erreur fatale: débordement de réadressage lors des relâches" #: coff-sh.c:1452 msgid "%B: fatal: generic symbols retrieved before relaxing" msgstr "%B: fatal: symboles génériques récupérés avant la relâche" -#: coff-sh.c:2783 cofflink.c:2961 +#: coff-sh.c:2783 cofflink.c:2965 #, c-format msgid "%B: illegal symbol index %ld in relocs" msgstr "%B: symbole index %ld illégal dans les réadressages" -#: coff-tic4x.c:183 coff-tic54x.c:278 coff-tic80.c:439 +#: coff-tic4x.c:183 coff-tic54x.c:278 coff-tic80.c:441 #, c-format msgid "Unrecognized reloc type 0x%x" msgstr "Type de réadressage non reconnu 0x%x" @@ -489,12 +489,18 @@ msgid "%B: unable to load COMDAT section name" msgstr "%B: impossible de charger le nom de section COMDAT" -#: coffcode.h:1009 +#. Malformed input files can trigger this test. +#. cf PR 21781. +#: coffcode.h:1003 +msgid "%B: error: unexpected symbol '%s' in COMDAT section" +msgstr "%B: erreur: symbole « %s » inattendu dans la section COMDAT" + +#: coffcode.h:1015 #, c-format msgid "%B: warning: COMDAT symbol '%s' does not match section name '%s'" msgstr "%B: attention: symbole COMDAT « %s » ne concorde par avec le nom de section « %s »" -#: coffcode.h:1019 +#: coffcode.h:1025 #, c-format msgid "%B: warning: No symbol for section '%s' found" msgstr "%B: attention: Pas de symbole trouvé pour la section « %s »" @@ -502,151 +508,164 @@ #. Generate a warning message rather using the 'unhandled' #. variable as this will allow some .sys files generate by #. other toolchains to be processed. See bugzilla issue 196. -#: coffcode.h:1245 +#: coffcode.h:1251 #, c-format msgid "%B: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section %s" msgstr "%B: Attention: Ignore le fanion de section IMAGE_SCN_MEM_NOT_PAGED dans la section %s" -#: coffcode.h:1314 +#: coffcode.h:1320 #, c-format -msgid "%B (%s): Section flag %s (0x%x) ignored" -msgstr "%B (%s): Fanion de section %s (0x%x) ignoré" +msgid "%B (%s): Section flag %s (%#lx) ignored" +msgstr "%B (%s): Fanion de section %s (%#lx) ignoré" -#: coffcode.h:1949 +#: coffcode.h:1950 msgid "%B: warning: claims to have 0xffff relocs, without overflow" msgstr "%B: attention: prétend avoir 0xffff réadressages, sans débordement" -#: coffcode.h:2465 +#: coffcode.h:2466 #, c-format msgid "Unrecognized TI COFF target id '0x%x'" msgstr "Identificateur de cible TI COFF non reconnu « 0x%x »" -#: coffcode.h:2783 +#: coffcode.h:2784 #, c-format msgid "%B: reloc against a non-existent symbol index: %ld" msgstr "%B: réadressage par rapport à un index de symbole inexistant: %ld" -#: coffcode.h:3186 +#: coffcode.h:3187 #, c-format msgid "%B: page size is too large (0x%x)" msgstr "%B: la taille de page est trop grande (0x%x)" -#: coffcode.h:3346 +#: coffcode.h:3347 #, c-format msgid "%B: too many sections (%d)" msgstr "%B: trop de sections (%d)" -#: coffcode.h:3767 +#: coffcode.h:3768 #, c-format msgid "%B: section %A: string table overflow at offset %ld" msgstr "%B: section %A: débordement de la table de chaînes à l'offset %ld" -#: coffcode.h:4585 +#: coffcode.h:3873 +#, c-format +msgid "%B:%s section %s: alignment 2**%u not representable" +msgstr "%B:%s section %s: l'alignement 2**%u n'est pas représentable" + +#: coffcode.h:4592 +msgid "%B: warning: line number count (%#lx) exceeds section size (%#lx)" +msgstr "%B: attention: le décompte du nombre de lignes (%#lx) dépasse la taille de la section (%#lx)" + +#: coffcode.h:4607 msgid "%B: warning: line number table read failed" msgstr "%B: attention: erreur lors de la lecture de la table des numéros de ligne" -#: coffcode.h:4619 coffcode.h:4633 +#: coffcode.h:4641 coffcode.h:4655 #, c-format msgid "%B: warning: illegal symbol index 0x%lx in line number entry %d" msgstr "%B: attention: symbole d'index 0x%lx illégal dans l'entrée %d des numéros de lignes" -#: coffcode.h:4647 +#: coffcode.h:4669 #, c-format msgid "%B: warning: illegal symbol in line number entry %d" msgstr "%B: attention: symbole illégal dans l'entrée %d des numéros de lignes" -#: coffcode.h:4660 +#: coffcode.h:4682 #, c-format msgid "%B: warning: duplicate line number information for `%s'" msgstr "%B: attention: information de numéro de ligne dédoublée pour « %s »" -#: coffcode.h:5074 +#: coffcode.h:5103 #, c-format msgid "%B: Unrecognized storage class %d for %s symbol `%s'" msgstr "%B: Classe de stockage %d non reconnue pour %s symbole « %s »" -#: coffcode.h:5207 +#: coffcode.h:5236 #, c-format msgid "warning: %B: local symbol `%s' has no section" msgstr "attention: %B: symbole local « %s » n'a pas de section" -#: coffcode.h:5354 +#: coffcode.h:5383 #, c-format -msgid "%B: illegal relocation type %d at address 0x%lx" -msgstr "%B: type de réadressage %d illégal à l'adresse 0x%lx" +msgid "%B: illegal relocation type %d at address %#Lx" +msgstr "%B: type de réadressage %d illégal à l'adresse %#Lx" -#: coffgen.c:178 elf.c:1181 +#: coffgen.c:178 elf.c:1198 #, c-format msgid "%B: unable to initialize compress status for section %s" msgstr "%B: impossible d'initialiser le statut de compression de la section %s" -#: coffgen.c:202 elf.c:1192 +#: coffgen.c:202 elf.c:1209 #, c-format msgid "%B: unable to initialize decompress status for section %s" msgstr "%B: impossible d'initialiser le statut de décompression de la section %s" +#: coffgen.c:1649 +msgid "%B: corrupt symbol count: %#Lx" +msgstr "%B: décompte de symbole corrompu: %#Lx" + #. PR 21013: Provide an error message when the alloc fails. -#: coffgen.c:1648 -msgid "%B: Not enough memory to allocate space for %lu symbols" -msgstr "%B: Pas assez de mémoire pour allouer l'espace pour %lu symboles" +#: coffgen.c:1658 +msgid "%B: not enough memory to allocate space for %#Lx symbols of size %#Lx" +msgstr "%B: Pas assez de mémoire pour allouer l'espace pour %#Lx symboles de taille %#Lx" -#: coffgen.c:1716 +#: coffgen.c:1725 #, c-format -msgid "%B: bad string table size %lu" -msgstr "%B: mauvaise taille de la table des chaînes %lu" +msgid "%B: bad string table size %Lu" +msgstr "%B: mauvaise taille de la table des chaînes %Lu" -#: coffgen.c:1885 coffgen.c:1945 coffgen.c:1963 cofflink.c:2041 +#: coffgen.c:1902 coffgen.c:1962 coffgen.c:1980 cofflink.c:2045 #: xcofflink.c:4507 msgid "" msgstr "" -#: coffgen.c:2087 +#: coffgen.c:2104 #, c-format msgid " %s" msgstr " %s" -#: coffgen.c:2666 elflink.c:14044 linker.c:2931 +#: coffgen.c:2683 elflink.c:14149 linker.c:2940 msgid "%F%P: already_linked_table: %E\n" msgstr "%F%P: already_linked_table: %E\n" -#: coffgen.c:3007 elflink.c:13059 +#: coffgen.c:3024 elflink.c:13151 #, c-format msgid "Removing unused section '%A' in file '%B'" msgstr "Suppression de la section inutilisée « %A » dans le fichier « %B »" -#: coffgen.c:3084 elflink.c:13304 +#: coffgen.c:3101 elflink.c:13369 msgid "Warning: gc-sections option ignored" msgstr "Attention: l'option de la section gc est ignorée" -#: cofflink.c:348 +#: cofflink.c:352 #, c-format msgid "Warning: symbol `%s' is both section and non-section" msgstr "Attention: le symbole « %s » est à la fois une section et une non-section" -#: cofflink.c:450 elf64-ia64-vms.c:5188 elflink.c:4788 +#: cofflink.c:454 elf64-ia64-vms.c:5186 elflink.c:4831 #, c-format msgid "Warning: type of symbol `%s' changed from %d to %d in %B" msgstr "Attention: type de symbole « %s » a changé de %d à %d dans %B" -#: cofflink.c:2369 +#: cofflink.c:2373 #, c-format msgid "%B: relocs in section `%A', but it has no contents" msgstr "%B: réadressages dans la section « %A » qui est vide" -#: cofflink.c:2432 elflink.c:10567 +#: cofflink.c:2436 elflink.c:10664 #, c-format msgid "%X`%s' referenced in section `%A' of %B: defined in discarded section `%A' of %B\n" msgstr "%X« %s » référencé dans la section « %A » de %B: défini dans la section abandonnée « %A » de %B\n" -#: cofflink.c:2730 +#: cofflink.c:2734 #, c-format -msgid "%B: %A: reloc overflow: 0x%lx > 0xffff" -msgstr "%B: %A: débordement de réadressage: 0x%lx > 0xffff" +msgid "%B: %A: reloc overflow: %#x > 0xffff" +msgstr "%B: %A: débordement de réadressage: %#x > 0xffff" -#: cofflink.c:2738 +#: cofflink.c:2742 #, c-format -msgid "%B: warning: %A: line number overflow: 0x%lx > 0xffff" -msgstr "%B: attention: %A: débordement du compteur de numéro de ligne: 0x%lx > 0xffff" +msgid "%B: warning: %A: line number overflow: %#x > 0xffff" +msgstr "%B: attention: %A: débordement du compteur de numéro de ligne: %#x > 0xffff" #: coffswap.h:811 #, c-format @@ -660,8 +679,8 @@ #: compress.c:255 #, c-format -msgid "error: %B(%A) is too large (%#lx bytes)" -msgstr "erreur: %B(%A) est trop grand (%#lx octets)" +msgid "error: %B(%A) is too large (%#Lx bytes)" +msgstr "erreur: %B(%A) est trop grand (%#Lx octets)" #: cpu-arm.c:192 cpu-arm.c:204 #, c-format @@ -673,88 +692,115 @@ msgid "warning: unable to update contents of %s section in %B" msgstr "attention: incapable de mettre à jour le contenu de la section %s dans %B" -#: dwarf2.c:532 +#: dwarf2.c:543 #, c-format msgid "Dwarf Error: Can't find %s section." msgstr "Erreur Dwarf: ne peut repérer la section %s" -#: dwarf2.c:562 +#: dwarf2.c:572 #, c-format -msgid "Dwarf Error: Offset (%lu) greater than or equal to %s size (%lu)." -msgstr "Erreur Dwarf: décalage de ligne (%lu) est >= à la taille de %s (%lu)" +msgid "Dwarf Error: Offset (%llu) greater than or equal to %s size (%Lu)." +msgstr "Erreur Dwarf: Décalage (%llu) plus grand ou égal à la taille de %s (%Lu)." -#: dwarf2.c:1028 +#: dwarf2.c:1089 msgid "Dwarf Error: Info pointer extends beyond end of attributes" msgstr "Erreur Dwarf: Le pointeur d'info va au delà de la fin des attributs" -#: dwarf2.c:1185 +#: dwarf2.c:1261 #, c-format msgid "Dwarf Error: Invalid or unhandled FORM value: %#x." msgstr "Erreur Dwarf: valeur de FORM invalide ou non supportée: %#x." -#: dwarf2.c:1491 +#: dwarf2.c:1567 msgid "Dwarf Error: mangled line number section (bad file number)." msgstr "Erreur Dwarf: numéro de ligne de section mutilé (mauvais no. de fichier)" -#: dwarf2.c:1779 +#: dwarf2.c:1912 +msgid "Dwarf Error: Zero format count." +msgstr "Erreur Dwarf: Décompte de format nul." + +#: dwarf2.c:1921 #, c-format -msgid "Dwarf Error: Line info section is too small (%ld)" -msgstr "Erreur Dwarf: Le section des informations de lignes est trop petite (%ld)" +msgid "Dwarf Error: data count (%Lx) larger than buffer size." +msgstr "Erreur Dwarf: décompte de données (%Lx) plus grand que la taille du tampon." -#: dwarf2.c:1809 +#: dwarf2.c:1962 #, c-format -msgid "Dwarf Error: Line info data is bigger (0x%lx) than the section (0x%lx)" -msgstr "Erreur Dwarf: Les données des informations de lignes sont plus grandes (0x%lx) que la section (0x%lx)" +msgid "Dwarf Error: Unknown format content type %Lu." +msgstr "Erreur Dwarf: Type de contenu de format %Lu inconnu." -#: dwarf2.c:1821 +#: dwarf2.c:2042 +#, c-format +msgid "Dwarf Error: Line info section is too small (%Ld)" +msgstr "Erreur Dwarf: Le section des informations de lignes est trop petite (%Ld)" + +#: dwarf2.c:2072 +#, c-format +msgid "Dwarf Error: Line info data is bigger (%#Lx) than the space remaining in the section (%#lx)" +msgstr "Erreur Dwarf: Les données des informations de lignes sont plus grandes (%#Lx) que l'espace restant dans la section (%#lx)" + +#: dwarf2.c:2085 #, c-format msgid "Dwarf Error: Unhandled .debug_line version %d." msgstr "Erreur Dwarf: Version .debug_line %d non prise en charge." -#: dwarf2.c:1830 +#: dwarf2.c:2095 msgid "Dwarf Error: Ran out of room reading prologue" msgstr "Erreur Dwarf: On est tombé à cours de place lors de la lecture du prologue" -#: dwarf2.c:1855 +#: dwarf2.c:2113 +#, c-format +msgid "Dwarf Error: Line info unsupported segment selector size %u." +msgstr "Erreur Dwarf: Taille de sélecteur de segment %u non supportée pour les informations de lignes." + +#: dwarf2.c:2140 msgid "Dwarf Error: Invalid maximum operations per instruction." msgstr "Erreur Dwarf: Opérations maximum par instruction invalide." -#: dwarf2.c:1874 +#: dwarf2.c:2159 msgid "Dwarf Error: Ran out of room reading opcodes" msgstr "Erreur Dwarf: On est tombé à cours de place en lisant les opcodes" -#: dwarf2.c:2069 +#: dwarf2.c:2332 msgid "Dwarf Error: mangled line number section." msgstr "Erreur Dwarf: numéro de ligne de section mutilé." -#: dwarf2.c:2575 +#: dwarf2.c:2833 dwarf2.c:2894 +msgid "Dwarf Error: Invalid abstract instance DIE ref." +msgstr "Erreur Dwarf: Réf DIE d'instance abstraite invalide." + +#: dwarf2.c:2870 #, c-format -msgid "Dwarf Error: Unable to read alt ref %u." -msgstr "Erreur Dwarf: Impossible de lire la ref alt %u." +msgid "Dwarf Error: Unable to read alt ref %llu." +msgstr "Erreur Dwarf: Impossible de lire la ref alt %llu." -#: dwarf2.c:2600 dwarf2.c:2750 dwarf2.c:3071 +#: dwarf2.c:2911 dwarf2.c:3076 dwarf2.c:3428 #, c-format msgid "Dwarf Error: Could not find abbrev number %u." msgstr "Erreur Dwarf: ne peut repérer le numéro abrégé %u." -#: dwarf2.c:3023 +#: dwarf2.c:2928 +msgid "Dwarf Error: Abstract instance recursion detected." +msgstr "Erreur Dwarf: Récursion d'une instance abstraite détectée." + +#: dwarf2.c:3347 #, c-format -msgid "Dwarf Error: found dwarf version '%u', this reader only handles version 2, 3 and 4 information." -msgstr "Erreur Dwarf: version DWARF trouvée « %u », ce lecteur ne supporte que les informations des versions 2, 3 et 4." +msgid "Dwarf Error: found dwarf version '%u', this reader only handles version 2, 3, 4 and 5 information." +msgstr "Erreur Dwarf: version DWARF trouvée « %u », ce lecteur ne supporte que les informations des versions 2, 3, 4 et 5." -#: dwarf2.c:3034 +#: dwarf2.c:3391 #, c-format msgid "Dwarf Error: found address size '%u', this reader can not handle sizes greater than '%u'." msgstr "Erreur Dwarf: taille d'adresse obtenue « %u », ce lecteur ne peut traiter des tailles plus grandes que « %u »." -#: dwarf2.c:3137 +#: dwarf2.c:3494 msgid "Dwarf Error: DW_AT_comp_dir attribute encountered with a non-string form." msgstr "Erreur Dwarf: attribut DW_AT_comp_dir rencontré sous une forme non-chaîne." #: ecoff.c:964 #, c-format -msgid "%B: warning: isymMax (%ld) is greater than ifdMax (%d)\n" -msgstr "%B: attention: isymMax (%ld) est plus grand que ifdMax (%d)\n" +msgid "%B: warning: isymMax (%ld) is greater than ifdMax (%ld)" +msgstr "%B: attention: isymMax (%ld) est plus grand que ifdMax (%ld)" #: ecoff.c:1261 #, c-format @@ -833,69 +879,73 @@ "\n" " Type: %s" -#: elf-attrs.c:595 +#: elf-attrs.c:475 +msgid "%B: error: attribute section length too small: %ld" +msgstr "%B: erreur: longueur de section d'attributs trop petite: %ld" + +#: elf-attrs.c:603 #, c-format msgid "error: %B: Object has vendor-specific contents that must be processed by the '%s' toolchain" msgstr "erreur: %B: L'objet a un contenu spécific à un vendeur qui doit être traité par la chaîne d'outils « %s »" -#: elf-attrs.c:605 +#: elf-attrs.c:613 #, c-format msgid "error: %B: Object tag '%d, %s' is incompatible with tag '%d, %s'" msgstr "erreur: %B: Étiquette d'objet « %d, %s » incompatible avec l'étiquette « %d, %s »" -#: elf-eh-frame.c:946 +#: elf-eh-frame.c:942 #, c-format msgid "discarding zero address range FDE in %B(%A).\n" msgstr "abandon du FDE avec une plage d'adresses nulle dans %B(%A).\n" -#: elf-eh-frame.c:1051 +#: elf-eh-frame.c:1047 #, c-format msgid "%P: error in %B(%A); no .eh_frame_hdr table will be created.\n" msgstr "%P: erreur dans %B(%A); aucune table .eh_frame_hdr ne sera créée.\n" -#: elf-eh-frame.c:1541 +#: elf-eh-frame.c:1537 #, c-format msgid "%P: FDE encoding in %B(%A) prevents .eh_frame_hdr table being created.\n" msgstr "%P: encodage FDE dans %B(%A) empêche la création de la table .eh_frame_hdr.\n" -#: elf-eh-frame.c:1548 +#: elf-eh-frame.c:1544 msgid "%P: Further warnings about FDE encoding preventing .eh_frame_hdr generation dropped.\n" msgstr "%P: Les avertissements suivants à propos de l'encodage FDE empêchant la génération de .eh_frame_hdr sont abandonnés.\n" -#: elf-eh-frame.c:1879 +#: elf-eh-frame.c:1866 #, c-format msgid "%B: %A not in order" msgstr "%B: %A pas dans l'ordre" -#: elf-eh-frame.c:1893 +#: elf-eh-frame.c:1880 #, c-format msgid "%B: %A invalid input section size" msgstr "%B: %A taille de section d'entrée invalide" -#: elf-eh-frame.c:1901 +#: elf-eh-frame.c:1888 #, c-format msgid "%B: %A points past end of text section" msgstr "%B: %A pointe au delà de la fin de la section texte" -#: elf-eh-frame.c:2150 +#: elf-eh-frame.c:2137 msgid "%P: DW_EH_PE_datarel unspecified for this architecture.\n" msgstr "%P: DW_EH_PE_datarel non spécifié pour cette architecture.\n" -#: elf-eh-frame.c:2320 +#: elf-eh-frame.c:2307 #, c-format msgid "Invalid output section for .eh_frame_entry: %A" msgstr "Section de sortie invalide pour .eh_frame_entry: %A" -#: elf-eh-frame.c:2343 +#: elf-eh-frame.c:2330 #, c-format msgid "Invalid contents in %A section" msgstr "Contenu invalide dans la section %A" -#: elf-eh-frame.c:2499 +#: elf-eh-frame.c:2486 msgid "%P: .eh_frame_hdr entry overflow.\n" -msgstr "*P: débordement de l'entrée .eh_frame_hrd.\n" +msgstr "%P: débordement de l'entrée .eh_frame_hrd.\n" -#: elf-eh-frame.c:2502 +#: elf-eh-frame.c:2489 msgid "%P: .eh_frame_hdr refers to overlapping FDEs.\n" msgstr "%P: .eh_frame_hdr fait référence à des FDE qui se chevauchent.\n" @@ -904,53 +954,53 @@ msgid "%F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%B' can not be used when making an executable; recompile with -fPIE and relink with -pie\n" msgstr "%P%P: symbole dynamique STT_GNU_IFUNC « %s » avec une égalité de pointeur dans « %B » ne peut pas être utilisé lors de la création d'un exécutable. Recompilez avec -fPIE et reliez avec -pie\n" -#: elf-m10200.c:425 elf-m10300.c:2149 elf32-avr.c:1502 elf32-bfin.c:3194 -#: elf32-cr16.c:1466 elf32-cr16c.c:780 elf32-cris.c:2025 elf32-crx.c:924 -#: elf32-d10v.c:513 elf32-epiphany.c:563 elf32-fr30.c:591 elf32-frv.c:4041 -#: elf32-ft32.c:334 elf32-h8300.c:522 elf32-i860.c:1210 elf32-ip2k.c:1475 -#: elf32-iq2000.c:693 elf32-lm32.c:1126 elf32-m32c.c:621 elf32-m32r.c:3044 -#: elf32-m68hc1x.c:1269 elf32-mep.c:524 elf32-metag.c:2001 -#: elf32-microblaze.c:1570 elf32-moxie.c:285 elf32-mt.c:400 elf32-nds32.c:5402 -#: elf32-or1k.c:1258 elf32-score.c:2731 elf32-score7.c:2540 elf32-spu.c:5076 -#: elf32-tilepro.c:3665 elf32-v850.c:2287 elf32-visium.c:677 -#: elf32-xstormy16.c:927 elf64-mmix.c:1540 elfxx-tilegx.c:4052 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2267 +#: elf-m10200.c:425 elf-m10300.c:2145 elf32-avr.c:1502 elf32-bfin.c:3116 +#: elf32-cr16.c:1462 elf32-cr16c.c:780 elf32-cris.c:2030 elf32-crx.c:924 +#: elf32-d10v.c:509 elf32-epiphany.c:563 elf32-fr30.c:591 elf32-frv.c:4041 +#: elf32-ft32.c:485 elf32-h8300.c:522 elf32-i860.c:1210 elf32-ip2k.c:1475 +#: elf32-iq2000.c:689 elf32-lm32.c:1106 elf32-m32c.c:622 elf32-m32r.c:3031 +#: elf32-m68hc1x.c:1265 elf32-mep.c:524 elf32-metag.c:1985 +#: elf32-microblaze.c:1556 elf32-moxie.c:285 elf32-mt.c:400 elf32-nds32.c:5328 +#: elf32-or1k.c:1238 elf32-score.c:2731 elf32-score7.c:2540 elf32-spu.c:5076 +#: elf32-tilepro.c:3497 elf32-v850.c:2283 elf32-visium.c:677 +#: elf32-xstormy16.c:923 elf64-mmix.c:1538 elfxx-tilegx.c:3857 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2237 msgid "internal error: out of range error" msgstr "erreur interne: hors limite" -#: elf-m10200.c:429 elf-m10300.c:2153 elf32-avr.c:1506 elf32-bfin.c:3198 -#: elf32-cr16.c:1470 elf32-cr16c.c:784 elf32-cris.c:2029 elf32-crx.c:928 -#: elf32-d10v.c:517 elf32-fr30.c:595 elf32-frv.c:4045 elf32-ft32.c:338 -#: elf32-h8300.c:526 elf32-i860.c:1214 elf32-iq2000.c:697 elf32-lm32.c:1130 -#: elf32-m32c.c:625 elf32-m32r.c:3048 elf32-m68hc1x.c:1273 elf32-mep.c:528 -#: elf32-metag.c:2005 elf32-microblaze.c:1574 elf32-moxie.c:289 -#: elf32-msp430.c:1361 elf32-nds32.c:5406 elf32-or1k.c:1262 elf32-score.c:2735 -#: elf32-score7.c:2544 elf32-spu.c:5080 elf32-tilepro.c:3669 elf32-v850.c:2291 -#: elf32-visium.c:681 elf32-xstormy16.c:931 elf64-mmix.c:1544 -#: elfxx-mips.c:10258 elfxx-tilegx.c:4056 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2271 +#: elf-m10200.c:429 elf-m10300.c:2149 elf32-avr.c:1506 elf32-bfin.c:3120 +#: elf32-cr16.c:1466 elf32-cr16c.c:784 elf32-cris.c:2034 elf32-crx.c:928 +#: elf32-d10v.c:513 elf32-fr30.c:595 elf32-frv.c:4045 elf32-ft32.c:489 +#: elf32-h8300.c:526 elf32-i860.c:1214 elf32-iq2000.c:693 elf32-lm32.c:1110 +#: elf32-m32c.c:626 elf32-m32r.c:3035 elf32-m68hc1x.c:1269 elf32-mep.c:528 +#: elf32-metag.c:1989 elf32-microblaze.c:1560 elf32-moxie.c:289 +#: elf32-msp430.c:1357 elf32-nds32.c:5332 elf32-or1k.c:1242 elf32-score.c:2735 +#: elf32-score7.c:2544 elf32-spu.c:5080 elf32-tilepro.c:3501 elf32-v850.c:2287 +#: elf32-visium.c:681 elf32-xstormy16.c:927 elf64-mmix.c:1542 +#: elfxx-mips.c:10265 elfxx-tilegx.c:3861 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2241 msgid "internal error: unsupported relocation error" msgstr "erreur interne: erreur de réadressage non supportée" -#: elf-m10200.c:433 elf32-cr16.c:1474 elf32-cr16c.c:788 elf32-crx.c:932 -#: elf32-d10v.c:521 elf32-h8300.c:530 elf32-lm32.c:1134 elf32-m32r.c:3052 -#: elf32-m68hc1x.c:1277 elf32-microblaze.c:1578 elf32-nds32.c:5410 +#: elf-m10200.c:433 elf32-cr16.c:1470 elf32-cr16c.c:788 elf32-crx.c:932 +#: elf32-d10v.c:517 elf32-h8300.c:530 elf32-lm32.c:1114 elf32-m32r.c:3039 +#: elf32-m68hc1x.c:1273 elf32-microblaze.c:1564 elf32-nds32.c:5336 #: elf32-score.c:2739 elf32-score7.c:2548 elf32-spu.c:5084 msgid "internal error: dangerous error" msgstr "erreur interne: erreur dangereuse" -#: elf-m10200.c:437 elf-m10300.c:2170 elf32-avr.c:1514 elf32-bfin.c:3206 -#: elf32-cr16.c:1478 elf32-cr16c.c:792 elf32-cris.c:2037 elf32-crx.c:936 -#: elf32-d10v.c:525 elf32-epiphany.c:578 elf32-fr30.c:603 elf32-frv.c:4053 -#: elf32-ft32.c:346 elf32-h8300.c:534 elf32-i860.c:1222 elf32-ip2k.c:1490 -#: elf32-iq2000.c:705 elf32-lm32.c:1138 elf32-m32c.c:633 elf32-m32r.c:3056 -#: elf32-m68hc1x.c:1281 elf32-mep.c:536 elf32-metag.c:2013 -#: elf32-microblaze.c:1582 elf32-moxie.c:297 elf32-msp430.c:1369 -#: elf32-mt.c:408 elf32-nds32.c:5414 elf32-or1k.c:1270 elf32-score.c:2748 -#: elf32-score7.c:2552 elf32-spu.c:5088 elf32-tilepro.c:3677 elf32-v850.c:2311 -#: elf32-visium.c:689 elf32-xstormy16.c:939 elf64-mmix.c:1552 -#: elfxx-tilegx.c:4064 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2279 +#: elf-m10200.c:437 elf-m10300.c:2166 elf32-avr.c:1514 elf32-bfin.c:3128 +#: elf32-cr16.c:1474 elf32-cr16c.c:792 elf32-cris.c:2042 elf32-crx.c:936 +#: elf32-d10v.c:521 elf32-epiphany.c:578 elf32-fr30.c:603 elf32-frv.c:4053 +#: elf32-ft32.c:497 elf32-h8300.c:534 elf32-i860.c:1222 elf32-ip2k.c:1490 +#: elf32-iq2000.c:701 elf32-lm32.c:1118 elf32-m32c.c:634 elf32-m32r.c:3043 +#: elf32-m68hc1x.c:1277 elf32-mep.c:536 elf32-metag.c:1997 +#: elf32-microblaze.c:1568 elf32-moxie.c:297 elf32-msp430.c:1365 +#: elf32-mt.c:408 elf32-nds32.c:5340 elf32-or1k.c:1250 elf32-score.c:2748 +#: elf32-score7.c:2552 elf32-spu.c:5088 elf32-tilepro.c:3509 elf32-v850.c:2307 +#: elf32-visium.c:689 elf32-xstormy16.c:935 elf64-mmix.c:1550 +#: elfxx-tilegx.c:3869 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2249 msgid "internal error: unknown error" msgstr "erreur interne: erreur inconnue" @@ -964,31 +1014,32 @@ msgid "%B: Unsupported transition from %s to %s" msgstr "%B: Transition de %s à %s non supportée" -#: elf-m10300.c:1201 +#: elf-m10300.c:1197 #, c-format msgid "%B: %s' accessed both as normal and thread local symbol" -msgstr "%B: « %s  » accédé à la fois comme symbole normal et comme symbole locale au thread" +msgstr "%B: « %s » accédé à la fois comme symbole normal et comme symbole locale au thread" -#: elf-m10300.c:2097 elf32-arm.c:12532 elf32-i386.c:5372 elf32-m32r.c:2540 -#: elf32-m68k.c:4084 elf32-s390.c:3372 elf32-sh.c:4127 elf32-tilepro.c:3569 -#: elf32-xtensa.c:3074 elf64-s390.c:3296 elf64-sh64.c:1636 elf64-x86-64.c:5753 -#: elfxx-sparc.c:4086 elfxx-tilegx.c:3976 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6437 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2236 +#: elf-m10300.c:2093 elf32-arm.c:12536 elf32-i386.c:3433 elf32-m32r.c:2526 +#: elf32-m68k.c:3895 elf32-s390.c:3204 elf32-sh.c:4121 elf32-tilepro.c:3401 +#: elf32-xtensa.c:2939 elf64-s390.c:3118 elf64-sh64.c:1636 elf64-x86-64.c:3790 +#: elfxx-sparc.c:3918 elfxx-tilegx.c:3781 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:5001 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6457 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2206 #, c-format -msgid "%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'" -msgstr "%B(%A+0x%lx): réadressage %s sans solution vers le symbole « %s »" +msgid "%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'" +msgstr "%B(%A+%#Lx): réadressage %s sans solution vers le symbole « %s »" -#: elf-m10300.c:2158 +#: elf-m10300.c:2154 msgid "error: inappropriate relocation type for shared library (did you forget -fpic?)" msgstr "erreur: type de réadressage inapproprié pour une librairie partagée (avez-vous oublié -fpic ?)" -#: elf-m10300.c:2162 +#: elf-m10300.c:2158 #, c-format msgid "%B: taking the address of protected function '%s' cannot be done when making a shared library" msgstr "%B: l'adresse de la fonction protégée « %s » ne peut être prise lors de la création d'une librairie partagée" -#: elf-m10300.c:2165 +#: elf-m10300.c:2161 msgid "internal error: suspicious relocation type used in shared library" msgstr "erreur interne: type de réadressage douteux utilisé dans une librairie partagée" @@ -1000,102 +1051,108 @@ msgid "warning: %B: corrupt GNU_PROPERTY_TYPE (%ld) size: %#lx" msgstr "attention: %B: taille de GNU_PROPERTY_TYPE (%ld) corrompue: %#lx" -#: elf-properties.c:107 +#: elf-properties.c:112 msgid "warning: %B: corrupt GNU_PROPERTY_TYPE (%ld) type (0x%x) datasz: 0x%x" msgstr "attention: %1$B: datasz du type (0x%3$x) GNU_PROPERTY_TYPE (%2$ld) corrompu: 0x%4$x" -#: elf-properties.c:146 +#: elf-properties.c:151 msgid "warning: %B: corrupt stack size: 0x%x" msgstr "attention: %B: taille de pille corrompue: 0x%x" -#: elf-properties.c:164 +#: elf-properties.c:169 msgid "warning: %B: corrupt no copy on protected size: 0x%x" msgstr "attention: %B: taille de « no copy on protected » corrompue: 0x%x" -#: elf-properties.c:180 +#: elf-properties.c:186 msgid "warning: %B: unsupported GNU_PROPERTY_TYPE (%ld) type: 0x%x" msgstr "attention: %B: type GNU_PROPERTY_TYPE (%ld) non supporté: 0x%x" #. PR 17512: file: f057ec89. -#: elf.c:342 +#: elf.c:343 #, c-format msgid "%B: attempt to load strings from a non-string section (number %d)" msgstr "%B: tentative de charger des chaînes depuis une section non-chaînes (numéro %d)" -#: elf.c:357 +#: elf.c:358 #, c-format -msgid "%B: invalid string offset %u >= %lu for section `%s'" -msgstr "%B: chaîne de décalage invalide %u >= %lu pour la section « %s »" +msgid "%B: invalid string offset %u >= %Lu for section `%s'" +msgstr "%B: chaîne de décalage invalide %u >= %Lu pour la section « %s »" -#: elf.c:496 +#: elf.c:497 /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:7535 #, c-format msgid "%B symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section" msgstr "%B le symbole numéro %lu fait référence à une section SHT_SYMTAB_SHNDX inexistante" -#: elf.c:660 +#: elf.c:661 #, c-format msgid "%B: corrupt size field in group section header: %#Lx" msgstr "%B: champ de taille corrompu dans l'en-tête du groupe de section: %#Lx" -#: elf.c:675 +#: elf.c:676 #, c-format msgid "%B: invalid size field in group section header: %#Lx" msgstr "%B: champ de taille invalide dans l'en-tête du groupe de section: %#Lx" -#: elf.c:711 +#: elf.c:712 msgid "%B: invalid SHT_GROUP entry" msgstr "%B: entrée SHT_GROUP invalide" -#: elf.c:730 +#: elf.c:731 msgid "%B: no valid group sections found" msgstr "%B: aucune section de groupe valable trouvée" -#: elf.c:804 +#. See PR 21957 for a reproducer. +#: elf.c:760 +#, c-format +msgid "%B: group section '%A' has no contents" +msgstr "%B: la section de groupe « %A » n'a pas de contenu" + +#: elf.c:820 #, c-format -msgid "%B: no group info for section %A" -msgstr "%B: aucune info de groupe pour la section %A" +msgid "%B: no group info for section '%A'" +msgstr "%B: aucune info de groupe pour la section « %A »" -#: elf.c:835 elf.c:3819 elflink.c:11155 +#: elf.c:851 elf.c:3862 elflink.c:11252 #, c-format msgid "%B: warning: sh_link not set for section `%A'" msgstr "%B: attention: sh_link n'a pas de valeur pour la section « %A »" -#: elf.c:855 +#: elf.c:871 #, c-format msgid "%B: sh_link [%d] in section `%A' is incorrect" msgstr "%B: sh_link [%d] n'est pas correct dans la section « %A »" -#: elf.c:868 +#: elf.c:884 #, c-format msgid "%B: SHT_GROUP section [index %d] has no SHF_GROUP sections" msgstr "%B: la section SHT_GROUP [index %d] n'a pas de section SHF_GROUP" -#: elf.c:889 +#: elf.c:905 #, c-format msgid "%B: section group entry number %u is corrupt" msgstr "%B: l'entrée de groupe de section %u est corrompue" -#: elf.c:914 +#: elf.c:928 #, c-format msgid "%B: unknown type [%#x] section `%s' in group [%A]" msgstr "%B: type [%#x] de section « %s » inconnu dans le groupe [%A]" -#: elf.c:1373 +#: elf.c:1390 #, c-format msgid "%B: Invalid sh_link field (%d) in section number %d" msgstr "%B: Champ sh_link (%d) invalide dans la section numéro %d" -#: elf.c:1389 +#: elf.c:1406 #, c-format msgid "%B: Failed to find link section for section %d" msgstr "%B: Impossible de trouver la section de liaison pour la section %d" -#: elf.c:1416 +#: elf.c:1433 #, c-format msgid "%B: Failed to find info section for section %d" msgstr "%B: Impossible de trouver la section d'information pour la section %d" -#: elf.c:1588 +#: elf.c:1605 #, c-format msgid "" "\n" @@ -1104,7 +1161,7 @@ "\n" "En-tête de programme:\n" -#: elf.c:1630 +#: elf.c:1647 #, c-format msgid "" "\n" @@ -1113,7 +1170,7 @@ "\n" "Section dynamique:\n" -#: elf.c:1771 +#: elf.c:1788 #, c-format msgid "" "\n" @@ -1122,7 +1179,7 @@ "\n" "Définitions des versions:\n" -#: elf.c:1796 +#: elf.c:1813 #, c-format msgid "" "\n" @@ -1131,149 +1188,149 @@ "\n" "Références de version:\n" -#: elf.c:1801 +#: elf.c:1818 #, c-format msgid " required from %s:\n" msgstr " requis par %s:\n" -#: elf.c:1999 +#: elf.c:2016 msgid "%B: warning: loop in section dependencies detected" msgstr "%B: attention: boucle détectée dans les dépendances de sections" -#: elf.c:2107 +#: elf.c:2124 #, c-format msgid "%B: warning: multiple symbol tables detected - ignoring the table in section %u" msgstr "%B: attention: plusieurs tables de symboles détectées — la table dans la section %u est ignorée" -#: elf.c:2191 +#: elf.c:2208 #, c-format msgid "%B: warning: multiple dynamic symbol tables detected - ignoring the table in section %u" msgstr "%B: attention: plusieurs tables de symboles dynamiques ont été détectées — la table dans la section %u est ignorée" -#: elf.c:2304 +#: elf.c:2321 #, c-format msgid "%B: invalid link %u for reloc section %s (index %u)" msgstr "%B: lien %u invalide pour la section de réadressages %s (index %u)" -#: elf.c:2463 elf.c:2478 elf.c:2489 elf.c:2502 +#: elf.c:2480 elf.c:2495 elf.c:2506 elf.c:2519 #, c-format msgid "%B: unknown type [%#x] section `%s'" msgstr "%B: type [%#x] inconnu dans la section « %s »" -#: elf.c:3206 +#: elf.c:3224 #, c-format msgid "%B: error: Alignment power %d of section `%A' is too big" msgstr "%B: erreur: L'alignement à la puissance %d de la section « %A » est trop grand" -#: elf.c:3236 +#: elf.c:3254 #, c-format msgid "warning: section `%A' type changed to PROGBITS" msgstr "attention: type de la section « %A » changé en PROGBITS" -#: elf.c:3687 +#: elf.c:3730 #, c-format msgid "%B: too many sections: %u" msgstr "%B: trop de sections: %u" -#: elf.c:3772 +#: elf.c:3815 #, c-format msgid "%B: sh_link of section `%A' points to discarded section `%A' of `%B'" msgstr "%B: le sh_link de la section « %A » pointe vers la section abandonnée « %A » de « %B »" -#: elf.c:3797 +#: elf.c:3840 #, c-format msgid "%B: sh_link of section `%A' points to removed section `%A' of `%B'" msgstr "%B: le sh_link de la section « %A » pointe vers la section supprimée « %A » de « %B »" -#: elf.c:4349 +#: elf.c:4392 #, c-format msgid "%B: GNU_MBIN section `%A' has invalid sh_info field: %d" msgstr "%B: la section GNU_MBIN « %A » a un champ sh_info invalide: %d" -#: elf.c:4891 +#: elf.c:4951 msgid "%B: TLS sections are not adjacent:" msgstr "%B: Les sections TLS ne sont pas adjacentes:" -#: elf.c:4898 +#: elf.c:4958 #, c-format msgid "\t TLS: %A" msgstr "\t TLS: %A" -#: elf.c:4902 +#: elf.c:4962 #, c-format msgid "\tnon-TLS: %A" msgstr "\tnon-TLS: %A" -#: elf.c:5398 +#: elf.c:5458 msgid "%B: The first section in the PT_DYNAMIC segment is not the .dynamic section" msgstr "%B: La première section dans le segment PT_DYNAMIC n'est pas la section .dynamic" -#: elf.c:5426 +#: elf.c:5486 msgid "%B: Not enough room for program headers, try linking with -N" msgstr "%B: Pas suffisamment d'espace pour les en-têtes du programme, essayer l'option -N" -#: elf.c:5514 +#: elf.c:5574 #, c-format msgid "%B: section %A lma %#Lx adjusted to %#Lx" msgstr "%B: section %A avec lma %#Lx ajustée à %#Lx" -#: elf.c:5651 +#: elf.c:5711 #, c-format msgid "%B: section `%A' can't be allocated in segment %d" msgstr "%B: la section « %A » ne peut pas être allouée dans le segment %d" -#: elf.c:5699 +#: elf.c:5759 #, c-format msgid "%B: warning: allocated section `%s' not in segment" msgstr "%B: attention: section allouée « %s » n'est pas dans le segment" -#: elf.c:5897 +#: elf.c:5957 msgid "%B: error: non-load segment %d includes file header and/or program header" msgstr "%B: erreur: le segment de non-chargement %d inclus un en-tête de fichier ou de programme" #. The fix for this error is usually to edit the linker script being #. used and set up the program headers manually. Either that or #. leave room for the headers at the start of the SECTIONS. -#: elf.c:6074 +#: elf.c:6134 msgid "%B: error: PHDR segment not covered by LOAD segment" msgstr "%B: erreur: segment PHDR non couvert par le segment LOAD" -#: elf.c:6418 +#: elf.c:6478 #, c-format msgid "%B: symbol `%s' required but not present" msgstr "%B: symbole « %s » requis mais absent" -#: elf.c:6761 +#: elf.c:6821 #, c-format msgid "%B: warning: Empty loadable segment detected at vaddr=%#Lx, is this intentional?" msgstr "%B: attention: Segment chargeable vide détecté à vaddr=%#Lx, est-ce intentionnel ?" -#: elf.c:7375 +#: elf.c:7435 #, c-format msgid "%B: warning: segment alignment of %#Lx is too large" msgstr "%B: attention: un alignement de segment de %#Lx est trop grand" -#: elf.c:7856 +#: elf.c:7916 #, c-format msgid "Unable to find equivalent output section for symbol '%s' from section '%s'" msgstr "Incapable de trouver un équivalent pour le symbole « %s » de la section « %s »" -#: elf.c:8188 +#: elf.c:8249 msgid "%B: .gnu.version_r invalid entry" msgstr "%B: entrée .gnu.version_r invalide" -#: elf.c:8315 +#: elf.c:8376 msgid "%B: .gnu.version_d invalid entry" msgstr "%B: entrée .gnu.version_d invalide" -#: elf.c:8867 +#: elf.c:8928 #, c-format msgid "%B: unsupported relocation type %s" msgstr "%B: type de réadressage %s non supporté" -#: elf32-arc.c:433 elf32-frv.c:6626 elf32-iq2000.c:870 elf32-m32c.c:915 -#: elf32-mt.c:564 elf32-rl78.c:1256 elf32-rx.c:3177 elf32-visium.c:837 -#: elf64-ppc.c:6078 +#: elf32-arc.c:433 elf32-frv.c:6623 elf32-iq2000.c:866 elf32-m32c.c:912 +#: elf32-mt.c:560 elf32-rl78.c:1257 elf32-rx.c:3178 elf32-visium.c:837 +#: elf64-ppc.c:6067 #, c-format msgid "private flags = 0x%lx:" msgstr "fanions privés = 0x%lx:" @@ -1311,11 +1368,11 @@ msgid "ERROR: Attempting to link %B with a binary %B of different architecture" msgstr "ERREUR: Tentative de lier %B avec un binaire %B d'une architecture différente" -#: elf32-arc.c:891 elf32-i370.c:359 elf32-iq2000.c:846 elf32-m32c.c:890 -#: elf32-m68hc1x.c:1388 elf64-sparc.c:727 elfxx-mips.c:15127 +#: elf32-arc.c:891 elf32-i370.c:359 elf32-iq2000.c:842 elf32-m32c.c:887 +#: elf32-m68hc1x.c:1384 elf32-ppc.c:4846 elf64-sparc.c:727 elfxx-mips.c:15082 #, c-format -msgid "%B: uses different e_flags (0x%lx) fields than previous modules (0x%lx)" -msgstr "%B: utilise des champs e_flags (0x%lx) différents des modules précédents (0x%lx)" +msgid "%B: uses different e_flags (%#x) fields than previous modules (%#x)" +msgstr "%B: utilise des champs e_flags (%#x) différents des modules précédents (%#x)" #: elf32-arc.c:980 msgid "Error: The ARC4 architecture is no longer supported.\n" @@ -1331,55 +1388,55 @@ #: elf32-arc.c:1119 #, c-format -msgid "%B(%A+0x%lx): CMEM relocation to `%s' is invalid, 16 MSB should be 0x%04x (value is 0x%lx)" -msgstr "%B(%A+0x%lx): le réadressage CMEM vers « %s » est invalide. 16 MSB devrait être 0x%04x (la valeur est 0x%lx)" +msgid "%B(%A+%#Lx): CMEM relocation to `%s' is invalid, 16 MSB should be %#x (value is %#Lx)" +msgstr "%B(%A+%#Lx): le réadressage CMEM vers « %s » est invalide. 16 MSB devrait être %#x (la valeur est %#Lx)" #: elf32-arc.c:1130 #, c-format -msgid "%B(%A+0x%lx): CMEM relocation to `%s+0x%lx' is invalid, 16 MSB should be 0x%04x (value is 0x%lx)" -msgstr "%B(%A+0x%lx): le réadressage CMEM vers « %s+0x%lx » est invalide, 16 MSB devrait être 0x%04x (la valeur est 0x%lx)" +msgid "%B(%A+%#Lx): CMEM relocation to `%s+%#Lx' is invalid, 16 MSB should be %#x (value is %#Lx)" +msgstr "%B(%A+%#Lx): le réadressage CMEM vers « %s+%#Lx » est invalide, 16 MSB devrait être %#x (la valeur est %Lx)" -#: elf32-arc.c:1835 +#: elf32-arc.c:1836 msgid "GOT and PLT relocations cannot be fixed with a non dynamic linker." msgstr "les réadressages GOT et PLT ne peuvent pas être corrigés avec un éditeur de liens non dynamique." -#: elf32-arc.c:1859 elf32-rl78.c:1094 elf32-rx.c:1448 +#: elf32-arc.c:1860 elf32-rl78.c:1095 elf32-rx.c:1449 #, c-format msgid "%B(%A): warning: unaligned access to symbol '%s' in the small data area" msgstr "%B(%A): attention: accès non aligné au symbole « %s » dans la zone des petites données" -#: elf32-arc.c:1864 elf32-rl78.c:1099 elf32-rx.c:1453 +#: elf32-arc.c:1865 elf32-rl78.c:1100 elf32-rx.c:1454 #, c-format msgid "%B(%A): internal error: out of range error" msgstr "%B(%A): erreur interne: hors limite" -#: elf32-arc.c:1869 elf32-rl78.c:1104 elf32-rx.c:1458 +#: elf32-arc.c:1870 elf32-rl78.c:1105 elf32-rx.c:1459 #, c-format msgid "%B(%A): internal error: unsupported relocation error" msgstr "%B(%A): erreur interne: réadressage non supporté" -#: elf32-arc.c:1874 elf32-rl78.c:1109 elf32-rx.c:1463 +#: elf32-arc.c:1875 elf32-rl78.c:1110 elf32-rx.c:1464 #, c-format msgid "%B(%A): internal error: dangerous relocation" msgstr "%B(%A): erreur interne: réadressage dangereux" -#: elf32-arc.c:1879 elf32-rl78.c:1114 elf32-rx.c:1468 +#: elf32-arc.c:1880 elf32-rl78.c:1115 elf32-rx.c:1469 #, c-format msgid "%B(%A): internal error: unknown error" msgstr "%B(%A): erreur interne: erreur inconnue" -#: elf32-arc.c:1967 elf32-arm.c:14714 elf32-metag.c:2272 elfxx-mips.c:8883 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:7224 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:484 +#: elf32-arc.c:1968 elf32-arm.c:14521 elf32-metag.c:2252 elfxx-mips.c:8889 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:7103 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:471 #, c-format msgid "%B: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC" msgstr "%B: réadressage de %s en vertu de « %s » ne peut être utilisé lors de la création d'un objet partagé; recompilez avec -fPIC" -#: elf32-arc.c:2859 +#: elf32-arc.c:2860 msgid "%B: Unknown mandatory ARC object attribute %d." msgstr "%B: L'attribut d'objet ARC obligatoire %d est inconnu." -#: elf32-arc.c:2867 +#: elf32-arc.c:2868 msgid "Warning: %B: Unknown ARC object attribute %d." msgstr "Attention: %B: Attribut d'objet ARC %d inconnu." @@ -1411,9 +1468,9 @@ msgid "No address assigned to the veneers output section %s" msgstr "Aucune adresse assignée à la section de sortie %s des trampolines (veneers)" -#: elf32-arm.c:4490 elf32-arm.c:6627 elf32-hppa.c:587 elf32-m68hc1x.c:165 -#: elf32-metag.c:1198 elf32-nios2.c:2227 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:2852 +#: elf32-arm.c:4490 elf32-arm.c:6627 elf32-hppa.c:577 elf32-m68hc1x.c:165 +#: elf32-metag.c:1183 elf32-nios2.c:2207 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:2854 #, c-format msgid "%B: cannot create stub entry %s" msgstr "%B: ne peut créer l'entrée de l'ébauche %s" @@ -1528,10 +1585,10 @@ #: elf32-arm.c:8618 #, c-format msgid "" -"%B(%A+0x%lx): error: multiple load detected in non-last IT block instruction : STM32L4XX veneer cannot be generated.\n" +"%B(%A+%#x): error: multiple load detected in non-last IT block instruction : STM32L4XX veneer cannot be generated.\n" "Use gcc option -mrestrict-it to generate only one instruction per IT block.\n" msgstr "" -"%B(%A+0x%lx): erreur: chargements multiples détectés dans un bloc d'instruction IT qui n'est pas le dernier : le trampoline (veneer) du STM32L4XX ne peut pas être généré.\n" +"%B(%A+%#x): erreur: chargements multiples détectés dans un bloc d'instruction IT qui n'est pas le dernier : le trampoline (veneer) du STM32L4XX ne peut pas être généré.\n" "Utilisez l'option -mrestrict-it de gcc pour générer seulement une instruction par bloc IT.\n" #: elf32-arm.c:8716 @@ -1547,154 +1604,154 @@ #: elf32-arm.c:9723 #, c-format -msgid "%B(%A+0x%lx): unexpected Thumb instruction '0x%x' in TLS trampoline" -msgstr "%B(%A+0x%lx): instruction Thumb « 0x%x » inattendue dans le trampoline TLS" +msgid "%B(%A+%#Lx): unexpected Thumb instruction '%#lx' in TLS trampoline" +msgstr "%B(%A+%#Lx): instruction Thumb « %#lx » inattendue dans le trampoline TLS" #: elf32-arm.c:9763 #, c-format -msgid "%B(%A+0x%lx): unexpected ARM instruction '0x%x' in TLS trampoline" -msgstr "%B(%A+0x%lx): instruction ARM « 0x%x » inattendue dans le trampoline TLS" +msgid "%B(%A+%#Lx): unexpected ARM instruction '%#lx' in TLS trampoline" +msgstr "%B(%A+%#Lx): instruction ARM « %lx » inattendue dans le trampoline TLS" -#: elf32-arm.c:10097 +#: elf32-arm.c:10103 msgid "shared object" msgstr "objet partagé" -#: elf32-arm.c:10100 +#: elf32-arm.c:10106 msgid "PIE executable" msgstr "exécutable PIE" -#: elf32-arm.c:10103 +#: elf32-arm.c:10109 msgid "%B: relocation %s against external or undefined symbol `%s' can not be used when making a %s; recompile with -fPIC" msgstr "%B: le réadressage de %s vers le symbole externe ou non défini « %s » ne peut pas être utilisé en construisant un %s; recompilez avec -fPIC" -#: elf32-arm.c:10234 -msgid "\\%B: Warning: Arm BLX instruction targets Arm function '%s'." -msgstr "\\%B: Attention: instruction Arm BLX vise la fonction Arm « %s »." +#: elf32-arm.c:10240 +msgid "%B: Warning: Arm BLX instruction targets Arm function '%s'." +msgstr "%B: Attention: instruction Arm BLX vise la fonction Arm « %s »." -#: elf32-arm.c:10660 +#: elf32-arm.c:10666 msgid "%B: Warning: Thumb BLX instruction targets thumb function '%s'." msgstr "%B: Attention: instruction de repérage BLX vise la fonction de repérage « %s »." -#: elf32-arm.c:11527 +#: elf32-arm.c:11534 #, c-format -msgid "%B(%A+0x%lx): unexpected Thumb instruction '0x%x' referenced by TLS_GOTDESC" -msgstr "%B(%A+0x%lx): instruction Thumb « 0x%x » inattendue référencée par TLS_GOTDESC" +msgid "%B(%A+%#Lx): unexpected Thumb instruction '%#lx' referenced by TLS_GOTDESC" +msgstr "%B(%A+%#Lx): instruction Thumb « %#lx » inattendue référencée par TLS_GOTDESC" -#: elf32-arm.c:11551 +#: elf32-arm.c:11557 #, c-format -msgid "%B(%A+0x%lx): unexpected ARM instruction '0x%x' referenced by TLS_GOTDESC" -msgstr "%B(%A+0x%lx): instruction ARM '0x%x' inattendue référencée par TLS_GOTDESC" +msgid "%B(%A+%#Lx): unexpected ARM instruction '%#lx' referenced by TLS_GOTDESC" +msgstr "%B(%A+%#Lx): instruction ARM '%#lx' inattendue référencée par TLS_GOTDESC" -#: elf32-arm.c:11581 +#: elf32-arm.c:11586 elf32-m68k.c:3701 elf32-metag.c:1916 elf32-nios2.c:4358 #, c-format -msgid "%B(%A+0x%lx): R_ARM_TLS_LE32 relocation not permitted in shared object" -msgstr "%B(%A+0x%lx): réadressage R_ARM_TLS_LE32 pas permis dans un objet partagé" +msgid "%B(%A+%#Lx): %s relocation not permitted in shared object" +msgstr "%B(%A+%#Lx): réadressage %s pas permis dans un objet partagé" -#: elf32-arm.c:11795 +#: elf32-arm.c:11799 #, c-format -msgid "%B(%A+0x%lx): Only ADD or SUB instructions are allowed for ALU group relocations" -msgstr "%B(%A+0x%lx): Seuls ADD ou SUB sont permis dans les réadressages du groupe ALU" +msgid "%B(%A+%#Lx): Only ADD or SUB instructions are allowed for ALU group relocations" +msgstr "%B(%A+%#Lx): Seuls ADD ou SUB sont permis dans les réadressages du groupe ALU" -#: elf32-arm.c:11836 elf32-arm.c:11927 elf32-arm.c:12013 elf32-arm.c:12101 +#: elf32-arm.c:11839 elf32-arm.c:11929 elf32-arm.c:12015 elf32-arm.c:12103 #, c-format -msgid "%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s" -msgstr "%B(%A+0x%lx): Débordement en scindant 0x%lx pour le réadressage du groupe %s" +msgid "%B(%A+%#Lx): Overflow whilst splitting %#Lx for group relocation %s" +msgstr "%B(%A+%#Lx): Débordement en scindant %#Lx pour le réadressage du groupe %s" -#: elf32-arm.c:12365 elf32-sh.c:4009 elf64-sh64.c:1539 +#: elf32-arm.c:12369 elf32-sh.c:4003 elf64-sh64.c:1539 #, c-format -msgid "%B(%A+0x%lx): %s relocation against SEC_MERGE section" -msgstr "%B(%A+0x%lx): %s réadressage vers une section SEC_MERGE" +msgid "%B(%A+%#Lx): %s relocation against SEC_MERGE section" +msgstr "%B(%A+%#Lx): %s réadressage vers une section SEC_MERGE" -#: elf32-arm.c:12477 elf32-m68k.c:4120 elf32-xtensa.c:2816 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6165 +#: elf32-arm.c:12481 elf32-m68k.c:3931 elf32-xtensa.c:2681 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6185 #, c-format -msgid "%B(%A+0x%lx): %s used with TLS symbol %s" -msgstr "%B(%A+0x%lx): %s utilisé avec le symbole TLS %s" +msgid "%B(%A+%#Lx): %s used with TLS symbol %s" +msgstr "%B(%A+%#Lx): %s utilisé avec le symbole TLS %s" -#: elf32-arm.c:12479 elf32-m68k.c:4122 elf32-xtensa.c:2818 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6167 +#: elf32-arm.c:12483 elf32-m68k.c:3933 elf32-xtensa.c:2683 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6187 #, c-format -msgid "%B(%A+0x%lx): %s used with non-TLS symbol %s" -msgstr "%B(%A+0x%lx): %s utilisé avec le symbole non-TLS %s" +msgid "%B(%A+%#Lx): %s used with non-TLS symbol %s" +msgstr "%B(%A+%#Lx): %s utilisé avec le symbole non-TLS %s" -#: elf32-arm.c:12561 elf32-tic6x.c:2739 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6500 +#: elf32-arm.c:12565 elf32-tic6x.c:2674 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6520 msgid "out of range" msgstr "hors limite" -#: elf32-arm.c:12565 elf32-nios2.c:4505 elf32-pru.c:821 elf32-tic6x.c:2743 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6504 +#: elf32-arm.c:12569 elf32-nios2.c:4492 elf32-pru.c:821 elf32-tic6x.c:2678 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6524 msgid "unsupported relocation" msgstr "réadressage non supporté" -#: elf32-arm.c:12573 elf32-nios2.c:4515 elf32-pru.c:831 elf32-tic6x.c:2751 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6512 +#: elf32-arm.c:12577 elf32-nios2.c:4502 elf32-pru.c:831 elf32-tic6x.c:2686 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6532 msgid "unknown error" msgstr "erreur inconnue" -#: elf32-arm.c:13153 +#: elf32-arm.c:13157 msgid "%B: Unknown mandatory EABI object attribute %d" msgstr "%B: L'attribut d'objet EABI obligatoire %d est manquant" -#: elf32-arm.c:13161 +#: elf32-arm.c:13165 msgid "Warning: %B: Unknown EABI object attribute %d" msgstr "Attention: %B: Attribut d'objet EABI %d inconnu" -#: elf32-arm.c:13428 +#: elf32-arm.c:13432 msgid "error: %B: Unknown CPU architecture" msgstr "erreur: %B: Architecture CPU inconnue" -#: elf32-arm.c:13466 elf32-nios2.c:2965 +#: elf32-arm.c:13470 elf32-nios2.c:2945 #, c-format msgid "error: %B: Conflicting CPU architectures %d/%d" msgstr "erreur: %B: Architectures CPU conflictuelles %d/%d" -#: elf32-arm.c:13563 +#: elf32-arm.c:13567 msgid "Error: %B has both the current and legacy Tag_MPextension_use attributes" msgstr "Erreur: %B utilise les deux attributs Tag_MPextension_use actuel et hérité" -#: elf32-arm.c:13592 +#: elf32-arm.c:13596 msgid "error: %B uses VFP register arguments, %B does not" msgstr "erreur: %B passe les paramètres dans un registre VFP alors que %B ne le fait pas" -#: elf32-arm.c:13750 +#: elf32-arm.c:13754 msgid "error: %B: unable to merge virtualization attributes with %B" msgstr "erreur: %B: impossible de fusionner les attributs de visualisation avec %B" -#: elf32-arm.c:13776 +#: elf32-arm.c:13780 msgid "error: %B: Conflicting architecture profiles %c/%c" msgstr "erreur: %B: Profils d'architecture conflictuels %c/%c" -#: elf32-arm.c:13915 +#: elf32-arm.c:13919 msgid "Warning: %B: Conflicting platform configuration" msgstr "Attention: %B: Configuration de platforme conflictuelle" -#: elf32-arm.c:13924 +#: elf32-arm.c:13928 msgid "error: %B: Conflicting use of R9" msgstr "erreur: %B: Utilisation conflictuelle de R9" -#: elf32-arm.c:13936 +#: elf32-arm.c:13940 msgid "error: %B: SB relative addressing conflicts with use of R9" msgstr "erreur: %B: Adressage relatif SB entre en conflit avec l'utilisation de R9" -#: elf32-arm.c:13949 +#: elf32-arm.c:13953 msgid "warning: %B uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may fail" msgstr "attention: %B utilise des wchar_t de %u octets alors que la sortie doit utiliser des wchar_t de %u octets. L'utilisation de wchar_t entre objets peu échouer" -#: elf32-arm.c:13980 +#: elf32-arm.c:13984 msgid "warning: %B uses %s enums yet the output is to use %s enums; use of enum values across objects may fail" -msgstr "attantion: %B utilise des enums %s alors que la sortie doit utiliser des enums %s. L'utilisation des valeurs enum entre objets peu échouer" +msgstr "attention: %B utilise des enums %s alors que la sortie doit utiliser des enums %s. L'utilisation des valeurs enum entre objets peu échouer" -#: elf32-arm.c:13992 +#: elf32-arm.c:13996 msgid "error: %B uses iWMMXt register arguments, %B does not" msgstr "erreur: %B passe les paramètres dans le registre iWMMXt contrairement à %B" -#: elf32-arm.c:14009 +#: elf32-arm.c:14013 msgid "error: fp16 format mismatch between %B and %B" msgstr "erreur: désaccord de format fp16 entre %B et %B" -#: elf32-arm.c:14045 -msgid "%B has has both the current and legacy Tag_MPextension_use attributes" +#: elf32-arm.c:14049 +msgid "%B has both the current and legacy Tag_MPextension_use attributes" msgstr "%B utilise les deux attributs Tag_MPextension_use actuel et hérité" #. Ignore init flag - it may not be set, despite the flags field @@ -1702,203 +1759,214 @@ #. Ignore init flag - it may not be set, despite the flags field containing valid data. #. Ignore init flag - it may not be set, despite the flags field #. containing valid data. -#: elf32-arm.c:14132 elf32-bfin.c:4919 elf32-cris.c:4089 elf32-m68hc1x.c:1413 -#: elf32-m68k.c:1200 elf32-score.c:4002 elf32-score7.c:3807 elf32-vax.c:536 -#: elf32-xgate.c:669 elfxx-mips.c:15802 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6666 +#: elf32-arm.c:14136 elf32-bfin.c:4729 elf32-cris.c:3905 elf32-m68hc1x.c:1409 +#: elf32-m68k.c:1199 elf32-score.c:3998 elf32-score7.c:3803 elf32-vax.c:536 +#: elf32-xgate.c:669 elfxx-mips.c:15756 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6686 #, c-format msgid "private flags = %lx:" msgstr "fanions privés = %lx" -#: elf32-arm.c:14141 +#: elf32-arm.c:14145 #, c-format msgid " [interworking enabled]" msgstr " [inter-réseautage autorisé]" -#: elf32-arm.c:14149 +#: elf32-arm.c:14153 #, c-format msgid " [VFP float format]" msgstr " [format flottant VFP]" -#: elf32-arm.c:14151 +#: elf32-arm.c:14155 #, c-format msgid " [Maverick float format]" msgstr " [format flottant Maverick]" -#: elf32-arm.c:14153 +#: elf32-arm.c:14157 #, c-format msgid " [FPA float format]" msgstr " [format flottant FPA]" -#: elf32-arm.c:14162 +#: elf32-arm.c:14166 #, c-format msgid " [new ABI]" msgstr " [nouvel ABI]" -#: elf32-arm.c:14165 +#: elf32-arm.c:14169 #, c-format msgid " [old ABI]" msgstr " [ancien ABI]" -#: elf32-arm.c:14168 +#: elf32-arm.c:14172 #, c-format msgid " [software FP]" msgstr " [virgule flottante logiciel]" -#: elf32-arm.c:14177 +#: elf32-arm.c:14181 #, c-format msgid " [Version1 EABI]" msgstr " [Version1 EABI]" -#: elf32-arm.c:14180 elf32-arm.c:14191 +#: elf32-arm.c:14184 elf32-arm.c:14195 #, c-format msgid " [sorted symbol table]" msgstr " [table des symboles triés]" -#: elf32-arm.c:14182 elf32-arm.c:14193 +#: elf32-arm.c:14186 elf32-arm.c:14197 #, c-format msgid " [unsorted symbol table]" msgstr " [table des symboles non triés]" -#: elf32-arm.c:14188 +#: elf32-arm.c:14192 #, c-format msgid " [Version2 EABI]" msgstr " [Version2 EABI]" -#: elf32-arm.c:14196 +#: elf32-arm.c:14200 #, c-format msgid " [dynamic symbols use segment index]" msgstr " [symboles dynamiques utilisent un index de segment]" -#: elf32-arm.c:14199 +#: elf32-arm.c:14203 #, c-format msgid " [mapping symbols precede others]" msgstr " [mapping de symboles précèdes les autres]" -#: elf32-arm.c:14206 +#: elf32-arm.c:14210 #, c-format msgid " [Version3 EABI]" msgstr " [Version3 EABI]" -#: elf32-arm.c:14210 +#: elf32-arm.c:14214 #, c-format msgid " [Version4 EABI]" msgstr " [Version4 EABI]" -#: elf32-arm.c:14214 +#: elf32-arm.c:14218 #, c-format msgid " [Version5 EABI]" msgstr " [Version5 EABI]" -#: elf32-arm.c:14217 +#: elf32-arm.c:14221 #, c-format msgid " [soft-float ABI]" msgstr " [soft-float ABI]" -#: elf32-arm.c:14220 +#: elf32-arm.c:14224 #, c-format msgid " [hard-float ABI]" msgstr " [hard-float ABI]" -#: elf32-arm.c:14226 +#: elf32-arm.c:14230 #, c-format msgid " [BE8]" msgstr " [BE8]" -#: elf32-arm.c:14229 +#: elf32-arm.c:14233 #, c-format msgid " [LE8]" msgstr " [LE8]" -#: elf32-arm.c:14235 +#: elf32-arm.c:14239 #, c-format msgid " " msgstr " " -#: elf32-arm.c:14242 +#: elf32-arm.c:14246 #, c-format msgid " [relocatable executable]" msgstr " [exécutables relocalisés]" -#: elf32-arm.c:14247 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6669 +#: elf32-arm.c:14251 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6689 #, c-format msgid "" msgstr "" -#: elf32-arm.c:14557 elf32-i386.c:2053 elf32-s390.c:956 elf32-tic6x.c:2814 -#: elf32-tilepro.c:1491 elf32-xtensa.c:1018 elf64-s390.c:875 -#: elf64-x86-64.c:2444 elfxx-sparc.c:1440 elfxx-tilegx.c:1708 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:7115 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:526 +#: elf32-arm.c:14368 elf32-i386.c:1510 elf32-s390.c:956 elf32-tic6x.c:2749 +#: elf32-tilepro.c:1471 elf32-xtensa.c:1018 elf64-s390.c:875 +#: elf64-x86-64.c:1823 elfxx-sparc.c:1420 elfxx-tilegx.c:1688 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6978 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:513 #, c-format msgid "%B: bad symbol index: %d" msgstr "%B: symbole index erroné: %d" -#: elf32-arm.c:16055 +#: elf32-arm.c:15636 elf32-hppa.c:2082 elf32-lm32.c:1989 elf32-m32r.c:2097 +#: elf32-metag.c:2792 elf32-nds32.c:3844 elf32-or1k.c:2281 elf32-ppc.c:6156 +#: elf32-s390.c:1851 elf32-sh.c:3289 elf32-tic6x.c:3205 elf32-tilepro.c:2237 +#: elf64-ppc.c:9893 elf64-s390.c:1785 elfxx-sparc.c:2457 elfxx-tilegx.c:2479 +#: elfxx-x86.c:563 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:8319 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:1112 +#, c-format +msgid "%B: dynamic relocation against `%T' in read-only section `%A'\n" +msgstr "%B: réadressage dynamique sur « %T » dans la section en lecture seule « %A »\n" + +#: elf32-arm.c:15881 msgid "Errors encountered processing file %B" msgstr "Erreurs rencontrées pendant le traitement du fichier %B" -#: elf32-arm.c:16493 elflink.c:12297 elflink.c:12344 +#: elf32-arm.c:16318 elflink.c:12394 elflink.c:12441 #, c-format msgid "could not find section %s" msgstr "ne peut repérer la section %s" -#: elf32-arm.c:17669 +#: elf32-arm.c:17494 msgid "%B: error: Cortex-A8 erratum stub is allocated in unsafe location" msgstr "%B: erreur: L'ébauche d'erratum du Cortex A8 est allouée à un emplacement peu sûr" #. There's not much we can do apart from complain if this #. happens. -#: elf32-arm.c:17696 +#: elf32-arm.c:17521 msgid "%B: error: Cortex-A8 erratum stub out of range (input file too large)" msgstr "%B: erreur: L'ébauche d'erratum du Cortex A8 est hors limite (fichier d'entrée trop grand)" -#: elf32-arm.c:18523 elf32-arm.c:18545 +#: elf32-arm.c:18348 elf32-arm.c:18370 msgid "%B: error: VFP11 veneer out of range" msgstr "%B: erreur: vernis VFP11 hors limite" -#: elf32-arm.c:18596 -msgid "%B(%#x): error: Cannot create STM32L4XX veneer. Jump out of range by %ld bytes. Cannot encode branch instruction. " -msgstr "%B(%#x): erreur: Impossible de créer le trampoline (veneer) du STM32L4XX. Saut hors de portée pour %ld octets. Impossible d'encoder l'instruction de branchement. " +#: elf32-arm.c:18421 +msgid "%B(%#Lx): error: Cannot create STM32L4XX veneer. Jump out of range by %Ld bytes. Cannot encode branch instruction. " +msgstr "%B(%#Lx): erreur: Impossible de créer le trampoline (veneer) du STM32L4XX. Saut hors de portée pour %Ld octets. Impossible d'encoder l'instruction de branchement. " -#: elf32-arm.c:18634 +#: elf32-arm.c:18459 msgid "%B: error: Cannot create STM32L4XX veneer." msgstr "%B: erreur: Impossible de créer le trampoline (veneer) du STM32L4XX." -#: elf32-arm.c:19655 +#: elf32-arm.c:19481 msgid "error: %B is already in final BE8 format" msgstr "erreur: %B est déjà au format final BE8" -#: elf32-arm.c:19731 +#: elf32-arm.c:19557 msgid "error: Source object %B has EABI version %d, but target %B has EABI version %d" msgstr "erreur: L'objet source %B a l'EABI version %d alors que la cible %B a l'EABI version %d" -#: elf32-arm.c:19746 +#: elf32-arm.c:19572 msgid "error: %B is compiled for APCS-%d, whereas target %B uses APCS-%d" msgstr "erreur: %B compilé pour APCS-%d alors que la cible %B utilise APCS-%d" -#: elf32-arm.c:19770 +#: elf32-arm.c:19596 msgid "error: %B uses VFP instructions, whereas %B does not" msgstr "erreur: %B utilise les instructions VFP alors que %B ne les utilise pas" -#: elf32-arm.c:19774 +#: elf32-arm.c:19600 msgid "error: %B uses FPA instructions, whereas %B does not" msgstr "erreur: %B utilise les instructions FPA alors que %B ne les utilise pas" -#: elf32-arm.c:19784 +#: elf32-arm.c:19610 msgid "error: %B uses Maverick instructions, whereas %B does not" msgstr "erreur: %B utilise les instructions Maverick alors que %B ne les utilise pas" -#: elf32-arm.c:19788 +#: elf32-arm.c:19614 msgid "error: %B does not use Maverick instructions, whereas %B does" msgstr "erreur: %B n'utilise pas les instructions Maverick alors que %B les utilise" -#: elf32-arm.c:19807 +#: elf32-arm.c:19633 msgid "error: %B uses software FP, whereas %B uses hardware FP" msgstr "erreur: %B utilise le logiciel pour virgule flottante alors que %B utilise le matériel pour virgule flottante" -#: elf32-arm.c:19811 +#: elf32-arm.c:19637 msgid "error: %B uses hardware FP, whereas %B uses software FP" msgstr "erreur: %B utilise le matériel pour virgule flottante alors que %B utilise le logiciel pour virgule flottante" @@ -1907,18 +1975,18 @@ msgid "%B: invalid AVR reloc number: %d" msgstr "%B: numéro de réadressage AVR invalide: %d" -#: elf32-avr.c:1510 elf32-bfin.c:3202 elf32-cris.c:2033 elf32-epiphany.c:574 -#: elf32-fr30.c:599 elf32-frv.c:4049 elf32-ft32.c:342 elf32-i860.c:1218 -#: elf32-ip2k.c:1486 elf32-iq2000.c:701 elf32-m32c.c:629 elf32-mep.c:532 -#: elf32-metag.c:2009 elf32-moxie.c:293 elf32-msp430.c:1365 elf32-mt.c:404 -#: elf32-or1k.c:1266 elf32-tilepro.c:3673 elf32-v850.c:2295 elf32-visium.c:685 -#: elf32-xstormy16.c:935 elf64-mmix.c:1548 elfxx-tilegx.c:4060 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2275 +#: elf32-avr.c:1510 elf32-bfin.c:3124 elf32-cris.c:2038 elf32-epiphany.c:574 +#: elf32-fr30.c:599 elf32-frv.c:4049 elf32-ft32.c:493 elf32-i860.c:1218 +#: elf32-ip2k.c:1486 elf32-iq2000.c:697 elf32-m32c.c:630 elf32-mep.c:532 +#: elf32-metag.c:1993 elf32-moxie.c:293 elf32-msp430.c:1361 elf32-mt.c:404 +#: elf32-or1k.c:1246 elf32-tilepro.c:3505 elf32-v850.c:2291 elf32-visium.c:685 +#: elf32-xstormy16.c:931 elf64-mmix.c:1546 elfxx-tilegx.c:3865 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2245 msgid "internal error: dangerous relocation" msgstr "erreur interne: réadressage dangereux" #: elf32-avr.c:3319 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:2880 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:2882 #, c-format msgid "cannot create stub entry %s" msgstr "ne peut créer l'entrée d'ébauche %s" @@ -1927,69 +1995,69 @@ msgid "relocation should be even number" msgstr "le réadressage devrait être un nombre paire" -#: elf32-bfin.c:1581 +#: elf32-bfin.c:1577 #, c-format -msgid "%B(%A+0x%lx): unresolvable relocation against symbol `%s'" -msgstr "%B(%A+0x%lx): réadressage sans solution vers le symbole « %s »" +msgid "%B(%A+%#Lx): unresolvable relocation against symbol `%s'" +msgstr "%B(%A+%#Lx): réadressage sans solution vers le symbole « %s »" -#: elf32-bfin.c:1612 elf32-i386.c:5412 elf32-m68k.c:4160 elf32-s390.c:3429 -#: elf64-s390.c:3353 elf64-x86-64.c:5793 +#: elf32-bfin.c:1608 elf32-i386.c:3473 elf32-m68k.c:3971 elf32-s390.c:3261 +#: elf64-s390.c:3175 elf64-x86-64.c:3839 #, c-format -msgid "%B(%A+0x%lx): reloc against `%s': error %d" -msgstr "%B(%A+0x%lx): réadressage vers « %s »: erreur %d" +msgid "%B(%A+%#Lx): reloc against `%s': error %d" +msgstr "%B(%A+%#Lx): réadressage sur « %s »: erreur %d" -#: elf32-bfin.c:2706 +#: elf32-bfin.c:2628 #, c-format -msgid "%B: relocation at `%A+0x%x' references symbol `%s' with nonzero addend" -msgstr "%B: réadressage à « %A+0x%x » fait référence au symbole « %s » avec un opérande non nul" +msgid "%B: relocation at `%A+%#Lx' references symbol `%s' with nonzero addend" +msgstr "%B: réadressage à « %A+%#Lx » fait référence au symbole « %s » avec un opérande non nul" -#: elf32-bfin.c:2722 +#: elf32-bfin.c:2644 msgid "relocation references symbol not defined in the module" msgstr "le réadressage fait référence à un symbole non défini dans le module" -#: elf32-bfin.c:2819 +#: elf32-bfin.c:2741 msgid "R_BFIN_FUNCDESC references dynamic symbol with nonzero addend" msgstr "R_BFIN_FUNCDESC fait référence à un symbole dynamique avec un opérande non nul" -#: elf32-bfin.c:2860 elf32-bfin.c:2983 +#: elf32-bfin.c:2782 elf32-bfin.c:2905 msgid "cannot emit fixups in read-only section" msgstr "impossible d'apporter des corrections dans une section en lecture seule" -#: elf32-bfin.c:2891 elf32-bfin.c:3021 elf32-lm32.c:1064 elf32-sh.c:4930 +#: elf32-bfin.c:2813 elf32-bfin.c:2943 elf32-lm32.c:1044 elf32-sh.c:4926 msgid "cannot emit dynamic relocations in read-only section" msgstr "impossible d'éditer les réadressages dynamiques dans une section en lecture seule" -#: elf32-bfin.c:2941 +#: elf32-bfin.c:2863 msgid "R_BFIN_FUNCDESC_VALUE references dynamic symbol with nonzero addend" msgstr "R_BFIN_FUNCDESC_VALUE fait référence à un symbole dynamique avec un opérande non nul" -#: elf32-bfin.c:3106 +#: elf32-bfin.c:3028 msgid "relocations between different segments are not supported" msgstr "les réadressages entre segments différents ne sont pas supportés" -#: elf32-bfin.c:3107 +#: elf32-bfin.c:3029 msgid "warning: relocation references a different segment" msgstr "attention: réadressage fait référence à un segment différent" -#: elf32-bfin.c:4877 +#: elf32-bfin.c:4687 #, c-format -msgid "%B: unsupported relocation type %i" -msgstr "%B: type de réadressage %i non supporté" +msgid "%B: unsupported relocation type %d" +msgstr "%B: type de réadressage %d non supporté" -#: elf32-bfin.c:4966 elf32-frv.c:6599 +#: elf32-bfin.c:4776 elf32-frv.c:6596 msgid "%B: cannot link non-fdpic object file into fdpic executable" msgstr "%B: ne peut lier un fichier objet non fdpic dans un exécutable fdpic" -#: elf32-bfin.c:4970 elf32-frv.c:6603 +#: elf32-bfin.c:4780 elf32-frv.c:6600 msgid "%B: cannot link fdpic object file into non-fdpic executable" msgstr "%B: ne peut lier un fichier objet fdpic dans un exécutable non fdpic" -#: elf32-bfin.c:5120 +#: elf32-bfin.c:4930 #, c-format msgid "*** check this relocation %s" msgstr "*** vérifiez ce réadressage %s" -#: elf32-bfin.c:5236 +#: elf32-bfin.c:5046 msgid "the bfin target does not currently support the generation of copy relocations" msgstr "la cible bfin ne supporte actuellement pas la génération de réadressages copiés" @@ -2013,80 +2081,80 @@ msgid "%B: invalid CRIS reloc number: %d" msgstr "%B: numéro de réadressage CRIS invalide: %d" -#: elf32-cris.c:1115 +#: elf32-cris.c:1116 #, c-format msgid "%B, section %A: unresolvable relocation %s against symbol `%s'" msgstr "%B, section %A: réadressage %s non résolu sur le symbole « %s »" -#: elf32-cris.c:1177 +#: elf32-cris.c:1181 #, c-format msgid "%B, section %A: No PLT nor GOT for relocation %s against symbol `%s'" -msgstr "%B, section %a: Pas de PLT ni de GOT pour réadresser %s sur le symbole « %s »" +msgstr "%B, section %A: Pas de PLT ni de GOT pour réadresser %s sur le symbole « %s »" -#: elf32-cris.c:1180 +#: elf32-cris.c:1184 #, c-format msgid "%B, section %A: No PLT for relocation %s against symbol `%s'" msgstr "%B, section %A: Pas de PLT pour réadresser %s sur le symbole « %s »" -#: elf32-cris.c:1186 elf32-cris.c:1319 elf32-cris.c:1583 elf32-cris.c:1666 -#: elf32-cris.c:1819 elf32-tic6x.c:2651 +#: elf32-cris.c:1190 elf32-cris.c:1323 elf32-cris.c:1588 elf32-cris.c:1671 +#: elf32-cris.c:1824 elf32-tic6x.c:2586 msgid "[whose name is lost]" msgstr "[dont le nom est perdu]" -#: elf32-cris.c:1304 elf32-tic6x.c:2635 +#: elf32-cris.c:1308 elf32-tic6x.c:2570 #, c-format -msgid "%B, section %A: relocation %s with non-zero addend %d against local symbol" -msgstr "%B, section %A: réadressage de %s avec un opérande non nul %d sur le symbole local" +msgid "%B, section %A: relocation %s with non-zero addend %Ld against local symbol" +msgstr "%B, section %A: réadressage de %s avec un opérande non nul %Ld sur le symbole local" -#: elf32-cris.c:1313 elf32-cris.c:1660 elf32-cris.c:1813 elf32-tic6x.c:2644 +#: elf32-cris.c:1317 elf32-cris.c:1665 elf32-cris.c:1818 elf32-tic6x.c:2579 #, c-format -msgid "%B, section %A: relocation %s with non-zero addend %d against symbol `%s'" -msgstr "%B, section %A: réadressage de %s avec un opérande non nul %d sur le symbole « %s »" +msgid "%B, section %A: relocation %s with non-zero addend %Ld against symbol `%s'" +msgstr "%B, section %A: réadressage de %s avec un opérande non nul %Ld sur le symbole « %s »" -#: elf32-cris.c:1340 +#: elf32-cris.c:1344 #, c-format msgid "%B, section %A: relocation %s is not allowed for global symbol: `%s'" msgstr "%B, section %A: le réadressage de %s n'est pas permis pour le symbole global: « %s »" -#: elf32-cris.c:1357 +#: elf32-cris.c:1361 #, c-format msgid "%B, section %A: relocation %s with no GOT created" msgstr "%B, section %A: réadressage de %s sans GOT" #. We shouldn't get here for GCC-emitted code. -#: elf32-cris.c:1573 +#: elf32-cris.c:1578 #, c-format msgid "%B, section %A: relocation %s has an undefined reference to `%s', perhaps a declaration mixup?" msgstr "%B, section %A: réadressage de %s a une référence non définie vers « %s », peut-être un mélange dans les déclarations ?" -#: elf32-cris.c:1576 +#: elf32-cris.c:1581 #, c-format msgid "%B, section %A: relocation %s is not allowed for `%s', a global symbol with default visibility, perhaps a declaration mixup?" msgstr "%B, section %A: réadressage de %s n'est pas permis pour « %s », un symbole global avec la visibilité par défaut, peut-être un mélange dans les déclarations ?" -#: elf32-cris.c:1947 +#: elf32-cris.c:1952 #, c-format msgid "%B, section %A: relocation %s is not allowed for symbol: `%s' which is defined outside the program, perhaps a declaration mixup?" msgstr "%B, section %A: réadressage de %s n'est pas permis pour le symbole « %s » qui est défini en dehors du programme, peut-être un mélange dans les déclarations ?" -#: elf32-cris.c:2000 +#: elf32-cris.c:2005 msgid "(too many global variables for -fpic: recompile with -fPIC)" msgstr "(trop de variables globales pour -fpic: recompilez avec -fPIC)" -#: elf32-cris.c:2007 +#: elf32-cris.c:2012 msgid "(thread-local data too big for -fpic or -msmall-tls: recompile with -fPIC or -mno-small-tls)" msgstr "(donnée locale au thread trop grande pour -fpic or -msmall-tls: recompilez avec -fPIC ou -mno-small-tls)" -#: elf32-cris.c:3233 +#: elf32-cris.c:3047 #, c-format msgid "" "%B, section %A:\n" -" v10/v32 compatible object %s must not contain a PIC relocation" +" v10/v32 compatible object must not contain a PIC relocation" msgstr "" "%B, section %A:\n" -" l'objet compatible v10/v32 %s ne peut pas contenir de réadressage PIC" +" l'objet compatible v10/v32 ne peut pas contenir de réadressage PIC" -#: elf32-cris.c:3287 +#: elf32-cris.c:3101 #, c-format msgid "" "%B, section %A:\n" @@ -2095,7 +2163,7 @@ "%B, section %A:\n" " réadressage de %s pas valable dans un objet partagé; typiquement un mélange dans les options. Recompilez avec -fPIC" -#: elf32-cris.c:3505 +#: elf32-cris.c:3319 #, c-format msgid "" "%B, section %A:\n" @@ -2104,7 +2172,7 @@ "%B, section %A:\n" " réadressage de %s ne devrait pas être utilisé dans un objet partagé; recompilez avec -fPIC" -#: elf32-cris.c:3929 +#: elf32-cris.c:3744 #, c-format msgid "" "%B, section `%A', to symbol `%s':\n" @@ -2113,38 +2181,38 @@ "%B, section « %A », vers le symbole « %s »:\n" " réadressage de %s ne devrait pas être utilisé dans un objet partagé; recompilez avec -fPIC" -#: elf32-cris.c:4041 +#: elf32-cris.c:3857 msgid "Unexpected machine number" msgstr "Numéro de machine inattendu" -#: elf32-cris.c:4092 +#: elf32-cris.c:3908 #, c-format msgid " [symbols have a _ prefix]" msgstr " [symboles sont préfixés par «  _  »]" -#: elf32-cris.c:4095 +#: elf32-cris.c:3911 #, c-format msgid " [v10 and v32]" msgstr " [v10 et v32]" -#: elf32-cris.c:4098 +#: elf32-cris.c:3914 #, c-format msgid " [v32]" msgstr " [v32]" -#: elf32-cris.c:4142 +#: elf32-cris.c:3958 msgid "%B: uses _-prefixed symbols, but writing file with non-prefixed symbols" msgstr "%B: utilise des symboles préfixés par _ mais écrits les symboles sans préfixes dans le fichier" -#: elf32-cris.c:4143 +#: elf32-cris.c:3959 msgid "%B: uses non-prefixed symbols, but writing file with _-prefixed symbols" msgstr "%B: utilise des symboles sans préfixe mais ajoute le préfixe _ aux symboles dans le fichier" -#: elf32-cris.c:4162 +#: elf32-cris.c:3978 msgid "%B contains CRIS v32 code, incompatible with previous objects" msgstr "%B contient du code CRIS v32 incompatible avec les objets précédents" -#: elf32-cris.c:4164 +#: elf32-cris.c:3980 msgid "%B contains non-CRIS-v32 code, incompatible with previous objects" msgstr "%B contient du code non CRIS v32 incompatible avec les objets précédents" @@ -2173,7 +2241,7 @@ msgid "BFD Link Error: jump (PC rel26) to section (%s) not supported" msgstr "Erreur de liaison BFD: saut (PC rel26) à la section (%s) n'est pas supporté" -#: elf32-dlx.c:552 +#: elf32-dlx.c:548 #, c-format msgid "Invalid DLX reloc number: %d" msgstr "Numéro de réadressage DLX invalide: %d" @@ -2285,57 +2353,66 @@ msgid "%H: reloc against `%s': %s\n" msgstr "%H: réadressage sur « %s »: %s\n" -#: elf32-frv.c:6258 +#: elf32-frv.c:6255 #, c-format msgid "%B: unsupported relocation type %i\n" msgstr "%B: type de réadressage %i non supporté\n" -#: elf32-frv.c:6510 +#: elf32-frv.c:6507 #, c-format msgid "%B: compiled with %s and linked with modules that use non-pic relocations" msgstr "%B: compilé avec %s et lié avec les modules qui utilisent le réadressage non PIC" -#: elf32-frv.c:6564 elf32-iq2000.c:832 elf32-m32c.c:877 +#: elf32-frv.c:6561 elf32-iq2000.c:828 elf32-m32c.c:874 #, c-format msgid "%B: compiled with %s and linked with modules compiled with %s" msgstr "%B: compilé avec %s et lié avec les modules compilés avec %s" -#: elf32-frv.c:6577 +#: elf32-frv.c:6574 #, c-format -msgid "%B: uses different unknown e_flags (0x%lx) fields than previous modules (0x%lx)" -msgstr "%B: utilise différents champs e_flags (0x%lx) que les modules précédents (0x%lx)" +msgid "%B: uses different unknown e_flags (%#x) fields than previous modules (%#x)" +msgstr "%B: utilise différents champs e_flags (%#x) de ceux des modules précédents (%#x)" #: elf32-gen.c:69 elf64-gen.c:69 #, c-format msgid "%B: Relocations in generic ELF (EM: %d)" msgstr "%B: Réadressages en format ELF générique (EM: %d)" -#: elf32-hppa.c:839 elf32-hppa.c:3599 +#: elf32-hppa.c:829 elf32-hppa.c:3499 #, c-format -msgid "%B(%A+0x%lx): cannot reach %s, recompile with -ffunction-sections" -msgstr "%B(%A+0x%lx): ne peut atteindre %s, recompilez avec -ffunction-sections" +msgid "%B(%A+%#Lx): cannot reach %s, recompile with -ffunction-sections" +msgstr "%B(%A+%#Lx): ne peut atteindre %s, recompilez avec -ffunction-sections" -#: elf32-hppa.c:1270 +#: elf32-hppa.c:1242 #, c-format msgid "%B: relocation %s can not be used when making a shared object; recompile with -fPIC" msgstr "%B: réadressage de %s ne peut être utilisé lors de la création d'un objet partagé; recompilez avec -fPIC" -#: elf32-hppa.c:2778 +#: elf32-hppa.c:2680 #, c-format msgid "%B: duplicate export stub %s" msgstr "%B: ébauche d'exportation en double %s" -#: elf32-hppa.c:3433 +#: elf32-hppa.c:3333 #, c-format -msgid "%B(%A+0x%lx): %s fixup for insn 0x%x is not supported in a non-shared link" -msgstr "%B(%A+0x%lx): correction %s pour insn 0x%x n'est pas supporté dans un lien non partagé" +msgid "%B(%A+%#Lx): %s fixup for insn %#x is not supported in a non-shared link" +msgstr "%B(%A+%#Lx): correction %s pour insn %#x n'est pas supporté dans un lien non partagé" -#: elf32-hppa.c:4290 +#: elf32-hppa.c:4124 #, c-format -msgid "%B(%A+0x%lx): cannot handle %s for %s" -msgstr "%B(%A+0x%lx): ne sait pas traiter %s pour %s" +msgid "%s has both normal and TLS relocs" +msgstr "%s a, à la fois, des réadressages normaux et TLS" -#: elf32-hppa.c:4588 +#: elf32-hppa.c:4142 +msgid "%B:%s has both normal and TLS relocs" +msgstr "%B:%s a, à la fois, des réadressages normaux et TLS" + +#: elf32-hppa.c:4201 +#, c-format +msgid "%B(%A+%#Lx): cannot handle %s for %s" +msgstr "%B(%A+%#Lx): ne sait pas traiter %s pour %s" + +#: elf32-hppa.c:4505 msgid ".got section not immediately after .plt section" msgstr "section .got pas immédiatement après la section .plt" @@ -2344,175 +2421,89 @@ msgid "%B: unrecognised I370 reloc number: %d" msgstr "%B: numéro de réadressage I370 non reconnu: %d" -#: elf32-i370.c:1168 +#: elf32-i370.c:1164 msgid "%B: unknown relocation type %d for symbol %s" msgstr "%B: type de réadressage %d inconnu pour le symbole %s" -#: elf32-i370.c:1310 +#: elf32-i370.c:1306 #, c-format msgid "%B: Relocation %s is not yet supported for symbol %s." msgstr "%B: réadressage %s n'est pas encore supporté pour le symbole %s" #. Unknown relocation. -#: elf32-i386.c:387 elf32-m68k.c:352 elf32-ppc.c:2074 elf32-s390.c:346 -#: elf32-tic6x.c:2674 elf32-wasm32.c:106 elf64-ppc.c:2516 elf64-s390.c:373 -#: elf64-x86-64.c:289 +#: elf32-i386.c:384 elf32-m68k.c:352 elf32-ppc.c:2039 elf32-s390.c:346 +#: elf32-tic6x.c:2609 elf32-wasm32.c:106 elf64-ppc.c:2516 elf64-s390.c:373 +#: elf64-x86-64.c:285 #, c-format msgid "%B: invalid relocation type %d" msgstr "%B: type de réadressage %d invalide" -#: elf32-i386.c:1711 elf64-x86-64.c:1888 +#: elf32-i386.c:1159 elf64-x86-64.c:1335 #, c-format -msgid "%B: TLS transition from %s to %s against `%s' at 0x%lx in section `%A' failed" -msgstr "%B: Échec de la transition TLS de %s vers %s sur « %s » à 0x%lx dans la section « %A »" +msgid "%B: TLS transition from %s to %s against `%s' at %#Lx in section `%A' failed" +msgstr "%B: Échec de la transition TLS de %s vers %s sur « %s » à %#Lx dans la section « %A »" -#: elf32-i386.c:1799 +#: elf32-i386.c:1250 #, c-format msgid "%B: direct GOT relocation R_386_GOT32X against `%s' without base register can not be used when making a shared object" msgstr "%B: le réadressage GOT direct R_386_GOT32X sur le symbole « %s » sans registre de base ne peut pas être utilisé lors de la création d'un objet partagé" -#: elf32-i386.c:2237 elf32-s390.c:1188 elf32-sh.c:6056 elf32-tilepro.c:1608 -#: elf32-xtensa.c:1196 elf64-s390.c:1117 elfxx-sparc.c:1625 -#: elfxx-tilegx.c:1817 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:440 +#: elf32-i386.c:1703 elf32-s390.c:1184 elf32-sh.c:6057 elf32-tilepro.c:1584 +#: elf32-xtensa.c:1192 elf64-s390.c:1113 elfxx-sparc.c:1601 +#: elfxx-tilegx.c:1793 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:427 #, c-format msgid "%B: `%s' accessed both as normal and thread local symbol" msgstr "%B: « %s » accédé à la fois comme symbole normal et comme symbole locale au thread" -#: elf32-i386.c:2314 +#: elf32-i386.c:1767 #, c-format msgid "%B: unsupported non-PIC call to IFUNC `%s'" msgstr "%B: appel non-PIC non supporté vers IFUNC « %s »" -#: elf32-i386.c:3189 elf64-x86-64.c:3589 -#, c-format -msgid "%P: %B: warning: relocation against `%s' in readonly section `%A'\n" -msgstr "%P: %B: attention: réadressage sur « %s » dans la section en lecture seule « %A »\n" - -#: elf32-i386.c:3402 elf64-x86-64.c:3798 -#, c-format -msgid "%P: %B: warning: relocation in readonly section `%A'\n" -msgstr "%P: %B: attention: réadressage dans la section « %A » en lecture seule\n" - -#: elf32-i386.c:3705 elf64-x86-64.c:4114 -msgid "%P%X: read-only segment has dynamic IFUNC relocations; recompile with -fPIC\n" -msgstr "%P%X: le segment en lecture seule a des réadressages IFUNC dynamiques; recompilez avec -fPIC\n" - -#: elf32-i386.c:3945 elf32-tilepro.c:2868 elf64-x86-64.c:4321 -#: elfxx-tilegx.c:3167 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6082 -#, c-format -msgid "%B: unrecognized relocation (0x%x) in section `%A'" -msgstr "%B: réadressage inconnu (0x%x) dans la section « %A »" - -#: elf32-i386.c:4240 elf64-x86-64.c:4550 +#: elf32-i386.c:2345 elf64-x86-64.c:2625 #, c-format msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't supported" msgstr "%B: le réadressage %s sur le symbole STT_GNU_IFUNC « %s » n'est pas supporté" -#: elf32-i386.c:4275 elf32-i386.c:5642 elf32-i386.c:5781 elf64-x86-64.c:4609 -#: elf64-x86-64.c:5982 elf64-x86-64.c:6136 +#: elf32-i386.c:2378 elf32-i386.c:3684 elf32-i386.c:3823 elf64-x86-64.c:2682 +#: elf64-x86-64.c:4012 elf64-x86-64.c:4166 msgid "Local IFUNC function `%s' in %B\n" msgstr "Fonction IFUNC locale « %s » dans %B\n" -#: elf32-i386.c:4508 +#: elf32-i386.c:2593 #, c-format msgid "%B: direct GOT relocation %s against `%s' without base register can not be used when making a shared object" msgstr "%B: le réadressage GOT direct %s vers « %s » sans registre de base ne peut pas être utilisé lors de la création d'un objet partagé" -#: elf32-i386.c:4543 elf64-x86-64.c:4816 +#: elf32-i386.c:2628 elf64-x86-64.c:2873 msgid "hidden symbol" msgstr "symbole caché" -#: elf32-i386.c:4546 elf64-x86-64.c:4819 +#: elf32-i386.c:2631 elf64-x86-64.c:2876 msgid "internal symbol" msgstr "symbole interne" -#: elf32-i386.c:4549 elf64-x86-64.c:4822 +#: elf32-i386.c:2634 elf64-x86-64.c:2879 msgid "protected symbol" msgstr "symbole protégé" -#: elf32-i386.c:4552 elf64-x86-64.c:4825 +#: elf32-i386.c:2637 elf64-x86-64.c:2882 msgid "symbol" msgstr "symbole" -#: elf32-i386.c:4558 +#: elf32-i386.c:2643 #, c-format msgid "%B: relocation R_386_GOTOFF against undefined %s `%s' can not be used when making a shared object" msgstr "%B: réadressage R_386_GOTOFF sur le symbole %s « %s » non défini ne peut pas être utilisé lors de la création d'un objet partagé" # « la %s progétée » a un %s qui est remplacé par le texte non traduit « function » ou « data ». # Heureusement, cette ligne n'existe plus dans le code source actuel. -#: elf32-i386.c:4571 +#: elf32-i386.c:2656 #, c-format msgid "%B: relocation R_386_GOTOFF against protected %s `%s' can not be used when making a shared object" msgstr "%B: réadressage R_386_GOTOFF vers la %s protégée « %s » ne peut pas être utilisé lors de la création d'un objet partagé" -#: elf32-i386.c:6116 elf32-tilepro.c:3920 elf64-x86-64.c:6483 -#: elfxx-tilegx.c:4327 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:9261 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2522 -#, c-format -msgid "discarded output section: `%A'" -msgstr "section de sortie rejetée: « %A »" - -#: elf32-i386.c:6693 elf64-x86-64.c:7228 -msgid "error: %B: " -msgstr "erreur: %B: " - -#: elf32-i386.c:6695 elf64-x86-64.c:7230 -msgid "error: %B: " -msgstr "erreur: %B: " - -#: elf32-i386.c:6696 elf64-x86-64.c:7231 -msgid "error: %B: " -msgstr "erreur: %B: " - -#: elf32-i386.c:6873 elf64-x86-64.c:7408 -#, c-format -msgid "%F: failed to create GNU property section\n" -msgstr "%F: échec lors de la création de la section des propriétés GNU\n" - -#: elf32-i386.c:6959 -#, c-format -msgid "%F: failed to create VxWorks dynamic sections\n" -msgstr "%F: échec lors de la création des sections dynamiques VxWorks\n" - -#: elf32-i386.c:7026 elf64-x86-64.c:7568 -#, c-format -msgid "%F: failed to create GOT sections\n" -msgstr "%F: échec lors de la création des sections GOT\n" - -#: elf32-i386.c:7031 elf64-x86-64.c:7584 -#, c-format -msgid "%F: failed to create ifunc sections\n" -msgstr "%F: échec lors de la création des sections ifunc\n" - -#: elf32-i386.c:7074 elf64-x86-64.c:7627 -#, c-format -msgid "%F: failed to create GOT PLT section\n" -msgstr "%F: échec lors de la création de la section PLT GOT\n" - -#: elf32-i386.c:7095 elf64-x86-64.c:7648 -#, c-format -msgid "%F: failed to create IBT-enabled PLT section\n" -msgstr "%F: échec lors de la création de la section PLT activée pour IBT\n" - -#: elf32-i386.c:7116 elf64-x86-64.c:7684 -#, c-format -msgid "%F: failed to create PLT .eh_frame section\n" -msgstr "%F: échec lors de la création de la section .eh_frame PLT\n" - -#: elf32-i386.c:7129 elf64-x86-64.c:7698 -#, c-format -msgid "%F: failed to create GOT PLT .eh_frame section\n" -msgstr "%F: échec lors de la création de la section .eh_frame PLT GOT\n" - -#: elf32-i386.c:7149 elf64-x86-64.c:7414 -#, c-format -msgid "%F%A: failed to align section\n" -msgstr "%F%A: échec lors de l'alignement de la section\n" - #: elf32-i960.c:140 #, c-format msgid "%B: invalid i960 reloc number: %d" @@ -2533,37 +2524,37 @@ #: elf32-ip2k.c:1298 #, c-format -msgid "ip2k linker: missing page instruction at 0x%08lx (dest = 0x%08lx)." -msgstr "liaison ip2k: instruction de page manquante à 0x%08lx (cible = 0x%08lx)." +msgid "ip2k linker: missing page instruction at %#Lx (dest = %#Lx)" +msgstr "éditeur de liens ip2k: instruction de page manquante à %#Lx (cible = %#Lx)." #: elf32-ip2k.c:1315 #, c-format -msgid "ip2k linker: redundant page instruction at 0x%08lx (dest = 0x%08lx)." -msgstr "liaison ip2k: instruction de page redondante à 0x%08lx (cible = 0x%08lx)." +msgid "ip2k linker: redundant page instruction at %#Lx (dest = %#Lx)" +msgstr "éditeur de liens ip2k: instruction de page redondante à %#Lx (cible = %#Lx)." #: elf32-iq2000.c:441 #, c-format msgid "%B: invalid IQ2000 reloc number: %d" msgstr "%B: numéro de réadressage IQ2000 invalide: %d" -#: elf32-lm32.c:559 +#: elf32-lm32.c:539 #, c-format msgid "%B: invalid LM32 reloc number: %d" msgstr "%B: numéro de réadressage LM32 invalide: %d" -#: elf32-lm32.c:668 elf32-nios2.c:3153 +#: elf32-lm32.c:648 elf32-nios2.c:3133 msgid "global pointer relative relocation when _gp not defined" msgstr "réadressage relatif au pointeur global sans que _gp ne soit défini" -#: elf32-lm32.c:723 elf32-nios2.c:3590 +#: elf32-lm32.c:703 elf32-nios2.c:3570 msgid "global pointer relative address out of range" msgstr "adresse relative du pointeur global hors limites" -#: elf32-lm32.c:1018 +#: elf32-lm32.c:998 msgid "internal error: addend should be zero for R_LM32_16_GOT" msgstr "erreur interne: opérande devrait être zéro pour R_LM32_16_GOT" -#: elf32-m32c.c:305 +#: elf32-m32c.c:306 #, c-format msgid "%B: invalid M32C reloc number: %d" msgstr "%B: numéro de réadressage M32C invalide: %d" @@ -2577,31 +2568,31 @@ msgid "SDA relocation when _SDA_BASE_ not defined" msgstr "réadressage SDA alors que _SDA_BASE_ n'est pas défini" -#: elf32-m32r.c:2984 elf32-microblaze.c:1080 elf32-microblaze.c:1128 +#: elf32-m32r.c:2971 elf32-microblaze.c:1064 elf32-microblaze.c:1112 #, c-format msgid "%B: The target (%s) of an %s relocation is in the wrong section (%A)" msgstr "%B: la cible (%s) du réadressage %s est dans la mauvaise section (%A)" -#: elf32-m32r.c:3486 +#: elf32-m32r.c:3473 msgid "%B: Instruction set mismatch with previous modules" msgstr "%B: jeu d'instructions ne concorde par avec les modules précédents" -#: elf32-m32r.c:3507 elf32-nds32.c:6111 +#: elf32-m32r.c:3494 elf32-nds32.c:6037 #, c-format msgid "private flags = %lx" msgstr "fanions privés = %lx" -#: elf32-m32r.c:3512 +#: elf32-m32r.c:3499 #, c-format msgid ": m32r instructions" msgstr ": instructions m32r" -#: elf32-m32r.c:3513 +#: elf32-m32r.c:3500 #, c-format msgid ": m32rx instructions" msgstr ": instruction m32rx" -#: elf32-m32r.c:3514 +#: elf32-m32r.c:3501 #, c-format msgid ": m32r2 instructions" msgstr ": instructions m32r2" @@ -2616,112 +2607,107 @@ msgid "%B: invalid M68HC12 reloc number: %d" msgstr "%B: numéro de réadressage M68HC12 invalide: %d" -#: elf32-m68hc1x.c:1119 +#: elf32-m68hc1x.c:1115 #, c-format msgid "Reference to the far symbol `%s' using a wrong relocation may result in incorrect execution" msgstr "Référence à un symbole far « %s » utilisant le mauvais réadressage peut provoquer une exécution incorrecte" -#: elf32-m68hc1x.c:1153 +#: elf32-m68hc1x.c:1149 #, c-format msgid "XGATE address (%lx) is not within shared RAM(0xE000-0xFFFF), therefore you must manually offset the address, and possibly manage the page, in your code." msgstr "l'adresse XGATE (%lx) n'est pas dans la mémoire RAM partagée (0xE000-0xFFFF), par conséquent, vous devez décaler l'adresse manuellement, et peut-être gérer la page, dans votre code." -#: elf32-m68hc1x.c:1171 +#: elf32-m68hc1x.c:1167 #, c-format msgid "banked address [%lx:%04lx] (%lx) is not in the same bank as current banked address [%lx:%04lx] (%lx)" msgstr "banque d'adresses [%lx:%04lx] (%lx) n'es pas dans la même banque que la banque courante d'adresses [%lx:%04lx] (%lx)" -#: elf32-m68hc1x.c:1187 +#: elf32-m68hc1x.c:1183 #, c-format msgid "reference to a banked address [%lx:%04lx] in the normal address space at %04lx" msgstr "référence à une banque d'adresses [%lx:%04lx] dans l'espace normal d'adresses à %04lx" -#: elf32-m68hc1x.c:1228 +#: elf32-m68hc1x.c:1224 #, c-format msgid "S12 address (%lx) is not within shared RAM(0x2000-0x4000), therefore you must manually offset the address in your code" msgstr "l'adresse S12 (%lx) n'est pas dans la mémoire RAM partagée (0x2000-0x4000), par conséquent, vous devez décaler l'adresse manuellement dans votre code" -#: elf32-m68hc1x.c:1355 +#: elf32-m68hc1x.c:1351 msgid "%B: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers" msgstr "%B: fichiers liés compilés pour des entiers de 16 bits (-mshort) et d'autres pour des entiers de 32 bits" -#: elf32-m68hc1x.c:1362 +#: elf32-m68hc1x.c:1358 msgid "%B: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double" msgstr "%B: fichiers liés compilés pour des doubles de 32 bits (-fshort-double) et d'autres pour des doubles de 64 bits" -#: elf32-m68hc1x.c:1371 +#: elf32-m68hc1x.c:1367 msgid "%B: linking files compiled for HCS12 with others compiled for HC12" msgstr "%B: certains fichiers liés compilés pour HCS12 avec d'autres compilés pour HC12" -#: elf32-m68hc1x.c:1416 elf32-xgate.c:672 +#: elf32-m68hc1x.c:1412 elf32-xgate.c:672 #, c-format msgid "[abi=32-bit int, " msgstr "[abi=32-bit int, " -#: elf32-m68hc1x.c:1418 elf32-xgate.c:674 +#: elf32-m68hc1x.c:1414 elf32-xgate.c:674 #, c-format msgid "[abi=16-bit int, " msgstr "[abi=16-bit int, " -#: elf32-m68hc1x.c:1421 elf32-xgate.c:677 +#: elf32-m68hc1x.c:1417 elf32-xgate.c:677 #, c-format msgid "64-bit double, " msgstr "double de 64 bits, " -#: elf32-m68hc1x.c:1423 elf32-xgate.c:679 +#: elf32-m68hc1x.c:1419 elf32-xgate.c:679 #, c-format msgid "32-bit double, " msgstr "double de 32 bits, " -#: elf32-m68hc1x.c:1426 +#: elf32-m68hc1x.c:1422 #, c-format msgid "cpu=HC11]" msgstr "cpu=HC11]" -#: elf32-m68hc1x.c:1428 +#: elf32-m68hc1x.c:1424 #, c-format msgid "cpu=HCS12]" msgstr "cpu=HCS12]" -#: elf32-m68hc1x.c:1430 +#: elf32-m68hc1x.c:1426 #, c-format msgid "cpu=HC12]" msgstr "cpu=HC12]" -#: elf32-m68hc1x.c:1433 +#: elf32-m68hc1x.c:1429 #, c-format msgid " [memory=bank-model]" msgstr " [memory=bank-model]" -#: elf32-m68hc1x.c:1435 +#: elf32-m68hc1x.c:1431 #, c-format msgid " [memory=flat]" msgstr " [memory=flat]" -#: elf32-m68hc1x.c:1438 +#: elf32-m68hc1x.c:1434 #, c-format msgid " [XGATE RAM offsetting]" msgstr " [décalage RAM XGATE]" -#: elf32-m68k.c:1215 elf32-m68k.c:1216 vms-alpha.c:7400 vms-alpha.c:7416 +#: elf32-m68k.c:1214 elf32-m68k.c:1215 vms-alpha.c:7477 vms-alpha.c:7493 msgid "unknown" msgstr "inconnu" -#: elf32-m68k.c:1680 +#: elf32-m68k.c:1658 #, c-format msgid "%B: GOT overflow: Number of relocations with 8-bit offset > %d" msgstr "%B: débordement GOT: Nombre de réadressages avec des offsets de 8 bits > %d" -#: elf32-m68k.c:1687 +#: elf32-m68k.c:1665 #, c-format msgid "%B: GOT overflow: Number of relocations with 8- or 16-bit offset > %d" msgstr "%B: débordement GOT: Nombre de réadressages avec des offsets de 8 ou 16 bits > %d" -#: elf32-m68k.c:3890 -#, c-format -msgid "%B(%A+0x%lx): R_68K_TLS_LE32 relocation not permitted in shared object" -msgstr "%B(%A+0x%lx): réadressage R_68K_TLS_LE32 pas permis dans un objet partagé" - #: elf32-mcore.c:100 elf32-mcore.c:455 #, c-format msgid "%B: Relocation %s (%d) is not currently supported.\n" @@ -2768,40 +2754,35 @@ msgid "private flags = 0x%lx" msgstr "fanions privés = 0x%lx" -#: elf32-metag.c:893 +#: elf32-metag.c:878 #, c-format msgid "%B: invalid METAG reloc number: %d" msgstr "%B: numéro de réadressage METAG invalide: %d" -#: elf32-metag.c:1875 +#: elf32-metag.c:1860 msgid "%B(%A): multiple TLS models are not supported" msgstr "%B(%A): l'utilisation de plusieurs modèles TLS n'est pas supporté" -#: elf32-metag.c:1878 +#: elf32-metag.c:1863 msgid "%B(%A): shared library symbol %s encountered whilst performing a static link" msgstr "%B(%A): symbole de bibliothèque partagée %s rencontré en réalisant une édition de liens statiques" -#: elf32-metag.c:1931 -#, c-format -msgid "%B(%A+0x%lx): R_METAG_TLS_LE/IENONPIC relocation not permitted in shared object" -msgstr "%B(%A+0x%lx): réadressage R_METAG_TLS_LE/IENONPIC pas permis dans un objet partagé" - #: elf32-microblaze.c:656 #, c-format msgid "%B: unrecognised MicroBlaze reloc number: %d" msgstr "%B: numéro de réadressage MicroBlaze non reconnu: %d" -#: elf32-microblaze.c:1496 elf32-or1k.c:1072 elf32-tilepro.c:3317 -#: elfxx-sparc.c:3705 elfxx-tilegx.c:3726 +#: elf32-microblaze.c:1482 elf32-or1k.c:1052 elf32-tilepro.c:3147 +#: elfxx-sparc.c:3537 elfxx-tilegx.c:3531 msgid "%B: probably compiled without -fPIC?" msgstr "%B: probablement compilé sans -fPIC?" -#: elf32-mips.c:1777 elf64-mips.c:3200 elfn32-mips.c:3010 +#: elf32-mips.c:1777 elf64-mips.c:3200 elfn32-mips.c:3014 msgid "literal relocation occurs for an external symbol" msgstr "réadressage littéral rencontré pour un symbole externe" #: elf32-mips.c:1824 elf32-score.c:569 elf32-score7.c:469 elf64-mips.c:3243 -#: elfn32-mips.c:3051 +#: elfn32-mips.c:3055 msgid "32bits gp relative relocation occurs for an external symbol" msgstr "réadressage relatif gp 32bits rencontré pour un symbole externe" @@ -2825,45 +2806,45 @@ msgid "%B: invalid MSP430 reloc number: %d" msgstr "%B: numéro de réadressage MSP430 invalide: %d" -#: elf32-msp430.c:836 elf32-msp430.c:1150 +#: elf32-msp430.c:832 elf32-msp430.c:1146 msgid "Try enabling relaxation to avoid relocation truncations" msgstr "Essayez d'activer la relaxation pour éviter des réadressages tronqués" -#: elf32-msp430.c:1357 +#: elf32-msp430.c:1353 msgid "internal error: branch/jump to an odd address detected" msgstr "erreur interne: branchement/saut vers une adresse impaire détecté" -#: elf32-msp430.c:2354 +#: elf32-msp430.c:2352 #, c-format msgid "Warning: %B: Unknown MSPABI object attribute %d" msgstr "Attention: %B: Attribut d'objet MSPBI %d inconnu" -#: elf32-msp430.c:2447 +#: elf32-msp430.c:2445 #, c-format msgid "error: %B uses %s instructions but %B uses %s" msgstr "erreur: %B utilise les instructions %s alors que %B utilise %s" -#: elf32-msp430.c:2459 +#: elf32-msp430.c:2457 #, c-format msgid "error: %B uses the %s code model whereas %B uses the %s code model" msgstr "erreur: %B utilise le modèle de code %s alors que %B utilise le modèle de code %s" -#: elf32-msp430.c:2471 +#: elf32-msp430.c:2469 #, c-format msgid "error: %B uses the large code model but %B uses MSP430 instructions" msgstr "erreur: %B utilise le grand modèle de code alors que %B utilise les instructions MSP430" -#: elf32-msp430.c:2482 +#: elf32-msp430.c:2480 #, c-format msgid "error: %B uses the %s data model whereas %B uses the %s data model" msgstr "erreur: %B utilise le modèle de données %s alors que %B utilise le modèle de données %s" -#: elf32-msp430.c:2494 +#: elf32-msp430.c:2492 #, c-format msgid "error: %B uses the small code model but %B uses the %s data model" msgstr "erreur: %B utilise le petit modèle de code alors que %B utilise le modèle de données %s" -#: elf32-msp430.c:2506 +#: elf32-msp430.c:2504 #, c-format msgid "error: %B uses the %s data model but %B only uses MSP430 instructions" msgstr "erreur: %B utilise le modèle de données %s alors que %B utilise uniquement des instructions MSP430" @@ -2873,181 +2854,177 @@ msgid "%B: invalid MT reloc number: %d" msgstr "%B: numéro de réadressage MT invalide: %d" -#: elf32-nds32.c:2974 +#: elf32-nds32.c:2897 #, c-format msgid "%B: invalid NDS32 reloc number: %d" msgstr "%B: numéro de réadressage NDS32 invalide: %d" -#: elf32-nds32.c:3309 +#: elf32-nds32.c:3232 msgid "error: Can't find symbol: _SDA_BASE_." msgstr "erreur: Le symbole ne peut être trouvé: _SDA_BASE_." -#: elf32-nds32.c:4484 elf32-nds32.c:11978 +#: elf32-nds32.c:4410 elf32-nds32.c:11783 msgid "%B: error: Cannot set _ITB_BASE_" msgstr "%B: erreur: Ne peut définir _ITB_BASE_" -#: elf32-nds32.c:4492 +#: elf32-nds32.c:4418 msgid "error: IFC relocation error." msgstr "erreur: erreur de réadressage IFC." -#: elf32-nds32.c:4526 +#: elf32-nds32.c:4452 #, c-format msgid "%B: error: unknown relocation type %d." msgstr "%B: erreur: type de réadressage %d inconnu." -#: elf32-nds32.c:4972 +#: elf32-nds32.c:4898 msgid "%B: warning: cannot deal R_NDS32_25_ABS_RELA in shared mode." msgstr "%B: attention: ne peut gérer R_NDS32_25_ABS_RELA en mode partagé." -#: elf32-nds32.c:5106 +#: elf32-nds32.c:5032 msgid "%B: warning: unaligned access to GOT entry." msgstr "%B: attention: accès non aligné à une entrée GOT." -#: elf32-nds32.c:5148 +#: elf32-nds32.c:5074 msgid "%B: warning: relocate SDA_BASE failed." msgstr "%B: attention: réadressage SDA_BASE a échoué." -#: elf32-nds32.c:5170 +#: elf32-nds32.c:5096 #, c-format msgid "%B(%A): warning: unaligned small data access of type %d." msgstr "%B(%A): attention: accès non aligné à une petite donnée de type %d." -#: elf32-nds32.c:5918 +#: elf32-nds32.c:5844 #, c-format msgid "%B: ISR vector size mismatch with previous modules, previous %u-byte, current %u-byte" msgstr "%B: Taille de vecteur ISR en désaccord avec les modules précédents: précédent a %u octets; actuel a %u octets" -#: elf32-nds32.c:5962 +#: elf32-nds32.c:5888 msgid "%B: warning: Endian mismatch with previous modules." msgstr "%B: attention: L'ordre des octets n'est pas le même que dans les modules précédents." -#: elf32-nds32.c:5972 +#: elf32-nds32.c:5898 msgid "%B: warning: Older version of object file encountered, Please recompile with current tool chain." msgstr "%B: attention: Version plus ancienne du fichier objet rencontrée. Veuillez recompiler avec la chaîne d'outils actuelle." -#: elf32-nds32.c:6050 +#: elf32-nds32.c:5976 msgid "%B: error: ABI mismatch with previous modules." msgstr "%B: erreur: non concordance de l'ABI avec les modules précédents." -#: elf32-nds32.c:6061 +#: elf32-nds32.c:5987 msgid "%B: error: Instruction set mismatch with previous modules." msgstr "%B: erreur: Jeu d'instructions ne concorde par avec les modules précédents." -#: elf32-nds32.c:6087 +#: elf32-nds32.c:6013 #, c-format msgid "%B: warning: Incompatible elf-versions %s and %s." msgstr "%B: attention: Versions elf %s et %s non compatibles." -#: elf32-nds32.c:6117 +#: elf32-nds32.c:6043 #, c-format msgid ": n1 instructions" msgstr ": instructions n1" -#: elf32-nds32.c:6120 +#: elf32-nds32.c:6046 #, c-format msgid ": n1h instructions" msgstr ": instructions n1h" -#: elf32-nds32.c:8730 +#: elf32-nds32.c:8535 msgid "%B: Error: search_nds32_elf_blank reports wrong node\n" msgstr "%B: Erreur: search_nds32_elf_blank rapporte le mauvais nÅ“ud\n" -#: elf32-nds32.c:8989 +#: elf32-nds32.c:8794 #, c-format -msgid "%B: warning: %s points to unrecognized reloc at 0x%lx." -msgstr "%B: attention: %s pointe vers le réadressage non reconnu à 0x%lx." +msgid "%B: warning: %s points to unrecognized reloc at %#Lx" +msgstr "%B: attention: %s pointe vers le réadressage non reconnu à %#Lx." -#: elf32-nds32.c:11850 elf32-nds32.c:11867 +#: elf32-nds32.c:11655 elf32-nds32.c:11672 msgid "error: Jump IFC Fail." msgstr "erreur: Saut IFC a échoué." -#: elf32-nds32.c:12724 +#: elf32-nds32.c:12529 #, c-format msgid "%B: Nested OMIT_FP in %A." msgstr "%B: OMIT_FP imbriqués dans %A." -#: elf32-nds32.c:12743 +#: elf32-nds32.c:12548 #, c-format msgid "%B: Unmatched OMIT_FP in %A." msgstr "%B: OMIT_FP non apparié dans %A." -#: elf32-nds32.c:13026 reloc.c:8231 +#: elf32-nds32.c:12831 reloc.c:8273 #, c-format msgid "%X%P: %B(%A): relocation \"%R\" goes out of range\n" msgstr "%X%P: %B(%A): réadressage « %R » va en dehors des limites\n" -#: elf32-nds32.c:14802 +#: elf32-nds32.c:14607 msgid "Linker: cannot init ex9 hash table error \n" msgstr "Lieur: ne peut initialiser la table de hachage ex9 \n" -#: elf32-nds32.c:15211 elf32-nds32.c:15225 +#: elf32-nds32.c:15016 elf32-nds32.c:15030 msgid "Linker: error cannot fixed ex9 relocation \n" msgstr "Lieur: ne peut réadresser ex9 fixé \n" -#: elf32-nds32.c:15436 +#: elf32-nds32.c:15241 #, c-format -msgid "%B: warning: unaligned small data access. For entry: {%d, %d, %d}, addr = 0x%x, align = 0x%x." -msgstr "%B: attention: accès non aligné à une petite donnée. Pour l'entrée: {%d, %d, %d}, adr = 0x%x, alignement = 0x%x." +msgid "%B: warning: unaligned small data access for entry: {%Ld, %Ld, %Ld}, addr = %#Lx, align = %#x" +msgstr "%B: attention: accès non aligné à une petite donnée pour l'entrée: {%Ld, %Ld, %Ld}, adr = %#Lx, alignement = %#x." -#: elf32-nds32.c:15469 -msgid "%P%F: failed creating ex9.it %s hash table: %E\n" -msgstr "%P%F: échec de la création de la table de hachage ex9.it %s: %E\n" +#: elf32-nds32.c:15274 +#, c-format +msgid "failed creating ex9.it %s hash table entry" +msgstr "échec de la création de la table de hachage ex9.it %s" -#: elf32-nios2.c:2949 +#: elf32-nios2.c:2929 msgid "error: %B: Big-endian R2 is not supported." msgstr "erreur: %B: R2 gros boutiste n'est pas supporté." -#: elf32-nios2.c:3830 +#: elf32-nios2.c:3814 #, c-format msgid "global pointer relative relocation at address 0x%08x when _gp not defined\n" msgstr "réadressage relatif au pointeur global à l'adresse 0x%08x sans que _gp ne soit défini\n" -#: elf32-nios2.c:3850 +#: elf32-nios2.c:3834 #, c-format msgid "Unable to reach %s (at 0x%08x) from the global pointer (at 0x%08x) because the offset (%d) is out of the allowed range, -32678 to 32767.\n" msgstr "Impossible d'atteindre %s (à 0x%08x) depuis le pointeur global (à 0x%08x) car l'offset (%d) est en dehors de la plage autorisée -32768 à 32767.\n" -#: elf32-nios2.c:4372 -#, c-format -msgid "%B(%A+0x%lx): R_NIOS2_TLS_LE16 relocation not permitted in shared object" -msgstr "%B(%A+0x%lx): réadressage R_NIOS2_TLS_LE16 pas permis dans un objet partagé" - -#: elf32-nios2.c:4500 elf32-pru.c:816 +#: elf32-nios2.c:4487 elf32-pru.c:816 msgid "relocation out of range" msgstr "réadressage hors limite" -#: elf32-nios2.c:4510 elf32-pru.c:826 elf32-tic6x.c:2747 +#: elf32-nios2.c:4497 elf32-pru.c:826 elf32-tic6x.c:2682 msgid "dangerous relocation" msgstr "réadressage dangereux" -#: elf32-nios2.c:5491 +#: elf32-nios2.c:5370 #, c-format msgid "dynamic variable `%s' is zero size" msgstr "la variable dynamique « %s » a une taille nulle" -#: elf32-or1k.c:735 +#: elf32-or1k.c:715 #, c-format msgid "%B: invalid OR1K reloc number: %d" msgstr "%B: numéro de réadressage OR1K invalide: %d" -#: elf32-or1k.c:985 +#: elf32-or1k.c:965 msgid "internal error: addend should be zero for R_OR1K_GOT16" msgstr "erreur interne: opérande devrait être zéro pour R_OR1K_GOT16" -#: elf32-or1k.c:1094 +#: elf32-or1k.c:1074 msgid "%B: support for local dynamic not implemented" msgstr "%B: support pour les dynamiques locaux pas implémentée" -#: elf32-or1k.c:1229 +#: elf32-or1k.c:1209 msgid "%B: will not resolve runtime TLS relocation" msgstr "%B: le réadressage TLS ne sera pas résolu à l'exécution" -#: elf32-or1k.c:1599 +#: elf32-or1k.c:1529 #, c-format msgid "%B: bad relocation section name `%s'" msgstr "%B: nom de section de réadressage erroné « %s »" -#: elf32-or1k.c:2704 +#: elf32-or1k.c:2641 msgid "%B: EF_OR1K_NODELAY flag mismatch with previous modules" msgstr "%B: désaccord du fanion EF_OR1K_NODELAY avec les modules précédents" @@ -3056,111 +3033,106 @@ msgid "%B: unrecognised PicoJava reloc number: %d" msgstr "%B: numéro de réadressage PicoJava non reconnu: %d" -#: elf32-ppc.c:2062 +#: elf32-ppc.c:2027 #, c-format msgid "%B: unrecognised PPC reloc number: %d" msgstr "%B: numéro de réadressage PPC non reconnu: %d" -#: elf32-ppc.c:2147 +#: elf32-ppc.c:2112 #, c-format msgid "generic linker can't handle %s" msgstr "liaison générique ne peut traiter %s" -#: elf32-ppc.c:2781 +#: elf32-ppc.c:2732 #, c-format msgid "corrupt %s section in %B" msgstr "section %s corrompue dans %B" -#: elf32-ppc.c:2801 +#: elf32-ppc.c:2752 #, c-format msgid "unable to read in %s section from %B" msgstr "incapable de lire dans la section %s à partir de %B" -#: elf32-ppc.c:2843 +#: elf32-ppc.c:2794 #, c-format msgid "warning: unable to set size of %s section in %B" msgstr "attention: incapable d'initialiser la taille de la section %s dans %B" -#: elf32-ppc.c:2893 +#: elf32-ppc.c:2844 msgid "failed to allocate space for new APUinfo section." msgstr "échec d'allocation d'espace pour une nouvelle section APUinfo" -#: elf32-ppc.c:2912 +#: elf32-ppc.c:2863 msgid "failed to compute new APUinfo section." msgstr "échec d'évaluation de la nouvelle section APUinfo" -#: elf32-ppc.c:2915 +#: elf32-ppc.c:2866 msgid "failed to install new APUinfo section." msgstr "échec d'installation de la nouvelle section APUinfo" -#: elf32-ppc.c:3975 +#: elf32-ppc.c:3915 #, c-format msgid "%B: relocation %s cannot be used when making a shared object" msgstr "%B: réadressage %s ne peut être utilisé lors de la création d'un objet partagé" -#: elf32-ppc.c:4329 elf64-ppc.c:5591 +#: elf32-ppc.c:4266 elf64-ppc.c:5597 #, c-format msgid "%H: %s reloc against local symbol\n" msgstr "%H: %s est réadressé par rapport à un symbole local\n" -#: elf32-ppc.c:4691 elf32-ppc.c:4695 +#: elf32-ppc.c:4628 elf32-ppc.c:4632 #, c-format msgid "Warning: %B uses hard float, %B uses soft float" msgstr "Attention: %B utilise la virgule flottante matérielle, %B utilise la virgule flottante logicielle" -#: elf32-ppc.c:4699 elf32-ppc.c:4704 +#: elf32-ppc.c:4636 elf32-ppc.c:4641 #, c-format msgid "Warning: %B uses double-precision hard float, %B uses single-precision hard float" msgstr "Attention: %B utilise la virgule flottante double précision matérielle, %B utilise la virgule flottante simple précision matérielle" -#: elf32-ppc.c:4719 elf32-ppc.c:4724 +#: elf32-ppc.c:4656 elf32-ppc.c:4661 #, c-format msgid "Warning: %B uses 64-bit long double, %B uses 128-bit long double" msgstr "Attention: %B utilise un double long 64 bits, %B utilise un double long de 128 bits" -#: elf32-ppc.c:4729 elf32-ppc.c:4734 +#: elf32-ppc.c:4666 elf32-ppc.c:4671 #, c-format msgid "Warning: %B uses IBM long double, %B uses IEEE long double" msgstr "Attention: %B utilise un double long IBM, %B utilise un double long IEEE" -#: elf32-ppc.c:4785 elf32-ppc.c:4790 +#: elf32-ppc.c:4722 elf32-ppc.c:4727 #, c-format msgid "Warning: %B uses AltiVec vector ABI, %B uses SPE vector ABI" msgstr "Attention: %B utilise l'ABI de vecteurs AltiVec, %B utilise l'ABI de vecteurs SPE" -#: elf32-ppc.c:4813 elf32-ppc.c:4818 +#: elf32-ppc.c:4750 elf32-ppc.c:4755 #, c-format msgid "Warning: %B uses r3/r4 for small structure returns, %B uses memory" msgstr "Attention: %B utilise r3/r4 pour les retours de petites structures, %B utilise la mémoire" -#: elf32-ppc.c:4873 +#: elf32-ppc.c:4810 msgid "%B: compiled with -mrelocatable and linked with modules compiled normally" msgstr "%B: compilé avec -mrelocatable et fait l'édition de lien avec les modules compilés normalement" -#: elf32-ppc.c:4881 +#: elf32-ppc.c:4818 msgid "%B: compiled normally and linked with modules compiled with -mrelocatable" msgstr "%B: compilé normalement et fait l'édition de lien avec les modules compilés avec -mrelocatable" -#: elf32-ppc.c:4909 -#, c-format -msgid "%B: uses different e_flags (%#x) fields than previous modules (%#x)" -msgstr "%B: utilise des champs e_flags (%#x) différents des modules précédents (%#x)" - -#: elf32-ppc.c:4950 +#: elf32-ppc.c:4887 #, c-format msgid "%B(%A+0x%lx): expected 16A style relocation on 0x%08x insn" msgstr "%B(%A+0x%lx): réadressage du style 16A attendu sur l'insn 0x%08x" -#: elf32-ppc.c:4969 +#: elf32-ppc.c:4906 #, c-format msgid "%B(%A+0x%lx): expected 16D style relocation on 0x%08x insn" msgstr "%B(%A+0x%lx): réadressage du style 16D attendu sur l'insn 0x%08x" -#: elf32-ppc.c:5043 +#: elf32-ppc.c:4997 msgid "%P: bss-plt forced due to %B\n" msgstr "%P: bss-plt forcé à cause de %B\n" -#: elf32-ppc.c:5046 +#: elf32-ppc.c:5000 msgid "%P: bss-plt forced by profiling\n" msgstr "%P: bss-plt forcé par le profilage\n" @@ -3168,31 +3140,40 @@ #. could just mark this symbol to exclude it #. from tls optimization but it's safer to skip #. the entire optimization. -#: elf32-ppc.c:5544 elf64-ppc.c:8798 +#: elf32-ppc.c:5322 elf64-ppc.c:8654 #, c-format msgid "%H arg lost __tls_get_addr, TLS optimization disabled\n" msgstr "%H l'argument a perdu __tls_get_addr, optimisation TLS désactivée\n" -#: elf32-ppc.c:8249 +#: elf32-ppc.c:6264 elf32-sh.c:3392 elf32-tilepro.c:2331 elfxx-sparc.c:2556 +#: elfxx-tilegx.c:2567 +msgid "%B: dynamic relocation in read-only section `%A'\n" +msgstr "%B: réadressage dynamique dans une section en lecture seule « %A »\n" + +#: elf32-ppc.c:8100 msgid "%H: fixup branch overflow\n" msgstr "%H: débordement du branchement de correction\n" -#: elf32-ppc.c:8289 elf32-ppc.c:8324 +#: elf32-ppc.c:8140 elf32-ppc.c:8175 #, c-format -msgid "%H: error: %s with unexpected instruction %x\n" -msgstr "%H: erreur: %s avec l'instruction inattendue %x\n" +msgid "%B(%A+%#Lx): error: %s with unexpected instruction %#x" +msgstr "%B(%A+%#Lx): erreur: %s avec l'instruction inattendue %#x" -#: elf32-ppc.c:8380 +#: elf32-ppc.c:8231 #, c-format msgid "%X%H: unsupported bss-plt -fPIC ifunc %s\n" msgstr "%X%H: bss-plt -fPIC ifunc %s non supporté\n" -#: elf32-ppc.c:8434 +#: elf32-ppc.c:8294 elf64-ppc.c:15070 +msgid "%H: warning: %s unexpected insn %#x.\n" +msgstr "%H: attention: %s insn %#x inattendue.\n" + +#: elf32-ppc.c:8319 #, c-format msgid "%P: %B: unknown relocation type %d for symbol %s\n" msgstr "%P: %B: type de réadressage %d inconnu pour le symbole %s\n" -#: elf32-ppc.c:8723 +#: elf32-ppc.c:8606 #, c-format msgid "%H: non-zero addend on %s reloc against `%s'\n" msgstr "%H: opérande non nul sur le réadressage %s par rapport à « %s »\n" @@ -3205,122 +3186,122 @@ #. local won't have the +32k reloc addend trick marking #. -fPIC code, so the linker won't know whether r30 is #. _GLOBAL_OFFSET_TABLE_ or pointing into a .got2 section. -#: elf32-ppc.c:8755 +#: elf32-ppc.c:8638 #, c-format msgid "%X%H: @local call to ifunc %s\n" msgstr "%X%H: appel @local à ifunc %s\n" -#: elf32-ppc.c:8935 +#: elf32-ppc.c:8808 #, c-format msgid "%H: relocation %s for indirect function %s unsupported\n" msgstr "%H: réadressage %s non supporté pour la fonction indirecte %s\n" -#: elf32-ppc.c:9232 elf32-ppc.c:9263 elf32-ppc.c:9354 +#: elf32-ppc.c:9077 elf32-ppc.c:9108 elf32-ppc.c:9199 #, c-format msgid "%P: %B: the target (%s) of a %s relocation is in the wrong output section (%s)\n" msgstr "%P: %B: la cible (%s) d'un réadressage %s est dans la mauvaise section de sortie (%s)\n" -#: elf32-ppc.c:9442 +#: elf32-ppc.c:9287 #, c-format msgid "%B: the target (%s) of a %s relocation is in the wrong output section (%s)" msgstr "%B: la cible (%s) d'un réadressage %s est dans la mauvaise section de sortie (%s)" -#: elf32-ppc.c:9546 +#: elf32-ppc.c:9395 #, c-format msgid "%P: %B: relocation %s is not yet supported for symbol %s\n" msgstr "%P: %B: réadressage %s n'est pas encore supporté pour le symbole %s\n" -#: elf32-ppc.c:9631 +#: elf32-ppc.c:9480 #, c-format msgid "%H: error: %s against `%s' not a multiple of %u\n" msgstr "%H: erreur: %s par rapport à « %s » n'est pas un multiple de %u\n" -#: elf32-ppc.c:9660 +#: elf32-ppc.c:9509 #, c-format msgid "%H: unresolvable %s relocation against symbol `%s'\n" msgstr "%H: réadressage %s sans solution par rapport au symbole « %s »\n" -#: elf32-ppc.c:9741 +#: elf32-ppc.c:9590 #, c-format msgid "%H: %s reloc against `%s': error %d\n" msgstr "%H: réadressage %s vers « %s »: erreur %d\n" -#: elf32-ppc.c:10505 elf64-ppc.c:15719 +#: elf32-ppc.c:10354 elf64-ppc.c:15601 msgid "%X%P: text relocations and GNU indirect functions will result in a segfault at runtime\n" msgstr "%X%P: les réadressages de textes et les fonctions indirectes GNU résulteront en un crash à l'exécution\n" -#: elf32-ppc.c:10509 elf64-ppc.c:15723 +#: elf32-ppc.c:10358 elf64-ppc.c:15605 msgid "%P: warning: text relocations and GNU indirect functions may result in a segfault at runtime\n" msgstr "%P: attention: les réadressages de textes et les fonctions indirectes GNU pourraient résulter en un crash à l'exécution\n" -#: elf32-ppc.c:10554 +#: elf32-ppc.c:10403 #, c-format msgid "%P: %s not defined in linker created %s\n" msgstr "%P: %s pas défini dans %s créé par l'éditeur de liens\n" -#: elf32-rl78.c:291 +#: elf32-rl78.c:292 #, c-format msgid "%B: invalid RL78 reloc number: %d" msgstr "%B: numéro de réadressage RL78 invalide: %d" -#: elf32-rl78.c:369 +#: elf32-rl78.c:370 msgid "Internal Error: RL78 reloc stack overflow" msgstr "Erreur interne: débordement de la pile de réadressages RL78" -#: elf32-rl78.c:380 +#: elf32-rl78.c:381 msgid "Internal Error: RL78 reloc stack underflow" msgstr "Erreur interne: débordement par le bas de la pile de réadressages RL78" -#: elf32-rl78.c:1049 +#: elf32-rl78.c:1050 msgid "Warning: RL78_SYM reloc with an unknown symbol" msgstr "Attention: Réadressage RL78_SYM avec un symbole inconnu" -#: elf32-rl78.c:1080 elf32-rx.c:1434 +#: elf32-rl78.c:1081 elf32-rx.c:1435 #, c-format msgid "%B(%A): error: call to undefined function '%s'" msgstr "%B(%A): erreur: appel à la fonction non définie « %s »" -#: elf32-rl78.c:1201 +#: elf32-rl78.c:1202 #, c-format msgid "RL78 ABI conflict: G10 file %B cannot be linked with %s file %B" msgstr "Conflit ABI RL78: Le fichier G10 %B ne peut pas être lié avec %s fichier %B" # les deux %s sont des noms de processeurs -#: elf32-rl78.c:1218 +#: elf32-rl78.c:1219 #, c-format msgid "RL78 ABI conflict: cannot link %s file %B with %s file %B" msgstr "Conflit d'ABI RL78: ne peut lier le fichier %2$B pour %1$s avec le fichier %4$B pour %3$s" -#: elf32-rl78.c:1227 +#: elf32-rl78.c:1228 msgid "RL78 merge conflict: cannot link 32-bit and 64-bit objects together" msgstr "Conflit de fusion RL78: ne peut lier ensemble un objet 32 bits et un objet 64 bits" -#: elf32-rl78.c:1231 elf32-rl78.c:1235 +#: elf32-rl78.c:1232 elf32-rl78.c:1236 #, c-format msgid "- %B is 64-bit, %B is not" msgstr "- %B est 64 bits, %B ne l'est pas" -#: elf32-rl78.c:1262 +#: elf32-rl78.c:1263 #, c-format msgid " [64-bit doubles]" msgstr " [doubles de 64 bits]" -#: elf32-rx.c:313 +#: elf32-rx.c:314 #, c-format msgid "%B: invalid RX reloc number: %d" msgstr "%B: numéro de réadressage RX invalide: %d" -#: elf32-rx.c:594 +#: elf32-rx.c:595 #, c-format msgid "%B:%A: table entry %s outside table" msgstr "%B:%A: l'entrée %s de la table est en dehors de la table" -#: elf32-rx.c:601 +#: elf32-rx.c:602 #, c-format msgid "%B:%A: table entry %s not word-aligned within table" msgstr "%B:%A: l'entrée %s de la table n'est pas alignée sur un mot dans la table" -#: elf32-rx.c:667 +#: elf32-rx.c:668 #, c-format msgid "%B:%A: Warning: deprecated Red Hat reloc " msgstr "%B:%A: Attention: réadressage Red Hat réprouvée " @@ -3329,43 +3310,43 @@ #. an absolute address is being computed. There are special cases #. for relocs against symbols that are known to be referenced in #. crt0.o before the PID base address register has been initialised. -#: elf32-rx.c:686 +#: elf32-rx.c:687 #, c-format -msgid "%B(%A): unsafe PID relocation %s at 0x%08lx (against %s in %s)" -msgstr "%B(%A): réadressage PID %s non sûr à 0x%08lx (sur %s dans %s)" +msgid "%B(%A): unsafe PID relocation %s at %#Lx (against %s in %s)" +msgstr "%B(%A): réadressage PID %s non sûr à %Lx (sur %s dans %s)" -#: elf32-rx.c:1266 +#: elf32-rx.c:1267 msgid "Warning: RX_SYM reloc with an unknown symbol" msgstr "Attention: Relocalistaion RX_SYM avec un symbole inconnu" -#: elf32-rx.c:3145 +#: elf32-rx.c:3146 msgid "There is a conflict merging the ELF header flags from %B" msgstr "Il y a un conflit en fusionnant les fanions d'en-têtes ELF de %B" -#: elf32-rx.c:3148 +#: elf32-rx.c:3149 #, c-format msgid " the input file's flags: %s" msgstr " les fanions du fichier d'entrée: %s" -#: elf32-rx.c:3150 +#: elf32-rx.c:3151 #, c-format msgid " the output file's flags: %s" msgstr " les fanions du fichier de sortie: %s" -#: elf32-rx.c:3757 +#: elf32-rx.c:3758 #, c-format msgid "%B:%A: table %s missing corresponding %s" msgstr "%B:%A: la table %s n'a pas de %s correspondant" -#: elf32-rx.c:3765 +#: elf32-rx.c:3766 #, c-format msgid "%B:%A: %s and %s must be in the same input section" msgstr "%B:%A: %s et %s doivent être dans la même section d'entrée" -#: elf32-s390.c:2310 elf64-s390.c:2257 +#: elf32-s390.c:2137 elf64-s390.c:2075 #, c-format -msgid "%B(%A+0x%lx): invalid instruction for TLS relocation %s" -msgstr "%B(%A+0x%lx): instruction invalide pour le réadressage TLS %s" +msgid "%B(%A+%#Lx): invalid instruction for TLS relocation %s" +msgstr "%B(%A+%#Lx): instruction invalide pour le réadressage TLS %s" #: elf32-score.c:1521 elf32-score7.c:1382 elfxx-mips.c:3756 msgid "not enough GOT space for local GOT entries" @@ -3380,22 +3361,22 @@ msgid "%B: Malformed reloc detected for section %A" msgstr "%B: Réadressage mal composé détecté dans la section %A" -#: elf32-score.c:2883 elf32-score7.c:2688 +#: elf32-score.c:2879 elf32-score7.c:2684 #, c-format -msgid "%B: CALL15 reloc at 0x%lx not against global symbol" -msgstr "%B: appel CALL15 de réadressage à 0x%lx n'est pas appliqué sur un symbole global" +msgid "%B: CALL15 reloc at %#Lx not against global symbol" +msgstr "%B: appel CALL15 de réadressage à %#Lx n'est pas appliqué sur un symbole global" -#: elf32-score.c:4005 elf32-score7.c:3810 +#: elf32-score.c:4001 elf32-score7.c:3806 #, c-format msgid " [pic]" msgstr " [pic]" -#: elf32-score.c:4009 elf32-score7.c:3814 +#: elf32-score.c:4005 elf32-score7.c:3810 #, c-format msgid " [fix dep]" msgstr " [fix dep]" -#: elf32-score.c:4052 elf32-score7.c:3857 +#: elf32-score.c:4048 elf32-score7.c:3853 msgid "%B: warning: linking PIC files with non-PIC files" msgstr "%B: attention: édition de liens des fichiers PIC avec des fichiers non PIC" @@ -3419,85 +3400,90 @@ msgid "%B: unrecognised SH reloc number: %d" msgstr "%B: numéro de réadressage SH non reconnu: %d" -#: elf32-sh.c:3953 elf64-sh64.c:1508 +#: elf32-sh.c:592 +#, c-format +msgid "%B: %#Lx: warning: R_SH_USES points to unrecognized insn 0x%x" +msgstr "%B: %#Lx: attention: R_SH_USES pointe vers un insn inconnu 0x%x" + +#: elf32-sh.c:3947 elf64-sh64.c:1508 msgid "Unexpected STO_SH5_ISA32 on local symbol is not handled" msgstr "STO_SH5_ISA32 inattendu sur le symbole local n'est pas traité" -#: elf32-sh.c:4206 +#: elf32-sh.c:4200 #, c-format -msgid "%B: 0x%lx: fatal: unaligned branch target for relax-support relocation" -msgstr "%B: 0x%lx: fatal: cible de branchement non alignée pour un réadressage de type relax-support" +msgid "%B: %#Lx: fatal: unaligned branch target for relax-support relocation" +msgstr "%B: %#Lx: fatal: cible de branchement non alignée pour un réadressage de type relax-support" -#: elf32-sh.c:4240 elf32-sh.c:4256 +#: elf32-sh.c:4234 elf32-sh.c:4250 #, c-format -msgid "%B: 0x%lx: fatal: unaligned %s relocation 0x%lx" -msgstr "%B: 0x%lx: fatal: réadressage %s non aligné 0x%lx" +msgid "%B: %#Lx: fatal: unaligned %s relocation %#Lx" +msgstr "%B: %#Lx: fatal: réadressage %s non aligné %#Lx" -#: elf32-sh.c:4271 +#: elf32-sh.c:4265 #, c-format -msgid "%B: 0x%lx: fatal: R_SH_PSHA relocation %d not in range -32..32" -msgstr "%B: 0x%lx: fatal: réadressage R_SH_PSHA %d pas dans l'intervalle -32..32" +msgid "%B: %#Lx: fatal: R_SH_PSHA relocation %Ld not in range -32..32" +msgstr "%B: %#Lx: fatal: réadressage R_SH_PSHA %Ld pas dans l'intervalle -32..32" -#: elf32-sh.c:4286 +#: elf32-sh.c:4280 #, c-format -msgid "%B: 0x%lx: fatal: R_SH_PSHL relocation %d not in range -32..32" -msgstr "%B: 0x%lx: fatal: réadressage R_SH_PSHL %d n'est pas dans l'intervalle -32..32" +msgid "%B: %#Lx: fatal: R_SH_PSHL relocation %Ld not in range -32..32" +msgstr "%B: %#Lx: fatal: réadressage R_SH_PSHL %Ld n'est pas dans l'intervalle -32..32" -#: elf32-sh.c:4431 elf32-sh.c:4903 +#: elf32-sh.c:4426 elf32-sh.c:4899 #, c-format -msgid "%B(%A+0x%lx): cannot emit fixup to `%s' in read-only section" -msgstr "%B(%A+0x%lx): impossible d'apporter des corrections à « %s » dans une section en lecture seule" +msgid "%B(%A+%#Lx): cannot emit fixup to `%s' in read-only section" +msgstr "%B(%A+%#Lx): impossible d'apporter des corrections à « %s » dans une section en lecture seule" -#: elf32-sh.c:5005 +#: elf32-sh.c:5001 #, c-format -msgid "%B(%A+0x%lx): %s relocation against external symbol \"%s\"" -msgstr "%B(%A+0x%lx): %s réadressage vers le symbole externe « %s »" +msgid "%B(%A+%#Lx): %s relocation against external symbol \"%s\"" +msgstr "%B(%A+%#Lx): %s réadressage vers le symbole externe « %s »" -#: elf32-sh.c:5469 +#: elf32-sh.c:5465 #, c-format msgid "%X%C: relocation to \"%s\" references a different segment\n" msgstr "%X%C: le réadressage vers « %s » fait référence à un segment différent\n" -#: elf32-sh.c:5476 +#: elf32-sh.c:5472 #, c-format msgid "%C: warning: relocation to \"%s\" references a different segment\n" msgstr "%C: attention: réadressage vers « %s » fait référence à un segment différent\n" -#: elf32-sh.c:6045 elf32-sh.c:6131 +#: elf32-sh.c:6046 elf32-sh.c:6132 #, c-format msgid "%B: `%s' accessed both as normal and FDPIC symbol" msgstr "%B: « %s » accédé à la fois comme symbole normal et comme symbole FDPIC" -#: elf32-sh.c:6051 elf32-sh.c:6136 +#: elf32-sh.c:6052 elf32-sh.c:6137 #, c-format msgid "%B: `%s' accessed both as FDPIC and thread local symbol" msgstr "%B: « %s » accédé à la fois comme symbole FDPIC et comme symbole local au thread" -#: elf32-sh.c:6082 +#: elf32-sh.c:6083 msgid "%B: Function descriptor relocation with non-zero addend" msgstr "%B: Descripteur de fonction réadressé avec un opérande non nul" -#: elf32-sh.c:6320 elf64-alpha.c:4757 +#: elf32-sh.c:6321 elf64-alpha.c:4688 #, c-format msgid "%B: TLS local exec code cannot be linked into shared objects" msgstr "%B: code exécutable local TLS ne peut être lié en objets partagés" # %s sont « dsp » ou « floating point » non traduits -#: elf32-sh.c:6435 +#: elf32-sh.c:6436 #, c-format msgid "%B: uses %s instructions while previous modules use %s instructions" msgstr "%B: utilise les instructions %s tandis que les modules précédents utilisent les instructions %s" -#: elf32-sh.c:6447 +#: elf32-sh.c:6448 #, c-format msgid "internal error: merge of architecture '%s' with architecture '%s' produced unknown architecture" msgstr "erreur interne: la fusion de l'architecture « %s » avec l'architecture « %s » a produit une architecture inconnue" -#: elf32-sh.c:6484 +#: elf32-sh.c:6485 msgid "%B: uses instructions which are incompatible with instructions used in previous modules" msgstr "%B: utilise des instructions qui sont incompatibles avec les instructions utilisées dans les modules précédents" -#: elf32-sh.c:6497 +#: elf32-sh.c:6498 msgid "%B: attempt to mix FDPIC and non-FDPIC objects" msgstr "%B: tentative de mélanger des objets FDPIC et non-FDPIC" @@ -3516,7 +3502,7 @@ msgid "%B: object size does not match that of target %B" msgstr "%B: taille de l'objet ne concorde pas avec la taille de la cible %B" -#: elf32-sh64.c:455 elf64-sh64.c:2776 +#: elf32-sh64.c:455 elf64-sh64.c:2772 msgid "%B: encountered datalabel symbol in input" msgstr "%B: rencontre du symbole d'une étiquette de donnée dans l'entrée" @@ -3534,8 +3520,8 @@ #: elf32-sh64.c:600 #, c-format -msgid "%B: error: unaligned relocation type %d at %08x reloc %p\n" -msgstr "%B: erreur: type de réadressage %d non aligné à %08x réadressé %p\n" +msgid "%B: error: unaligned relocation type %d at %#Lx reloc %#Lx" +msgstr "%B: erreur: type de réadressage %d non aligné à %#Lx réadressé %#Lx" #: elf32-sh64.c:676 msgid "%B: could not write out added .cranges entries" @@ -3695,8 +3681,8 @@ #: elf32-spu.c:5043 #, c-format -msgid "%B(%s+0x%lx): unresolvable %s relocation against symbol `%s'" -msgstr "%B(%A+0x%lx): réadressage %s sans solution vers le symbole « %s »" +msgid "%B(%s+%#Lx): unresolvable %s relocation against symbol `%s'" +msgstr "%B(%s+%#Lx): réadressage %s sans solution vers le symbole « %s »" #: elf32-tic6x.c:1596 msgid "warning: generating a shared library containing non-PIC code" @@ -3706,279 +3692,286 @@ msgid "warning: generating a shared library containing non-PID code" msgstr "attention: production d'une librairie partagée contenant du code non-PID" -#: elf32-tic6x.c:2525 +#: elf32-tic6x.c:2460 msgid "%B: SB-relative relocation but __c6xabi_DSBT_BASE not defined" msgstr "%B: réadressage relatif à SB mais __c6xabi_DSBT_BASE n'est pas défini" -#: elf32-tic6x.c:3651 +#: elf32-tic6x.c:3582 #, c-format msgid "%B: error: unknown mandatory EABI object attribute %d" msgstr "%B: erreur: l'attribut d'objet EABI obligatoire %d est manquant" -#: elf32-tic6x.c:3660 +#: elf32-tic6x.c:3591 #, c-format msgid "%B: warning: unknown EABI object attribute %d" msgstr "%B: attention: attribut d'objet EABI %d inconnu" -#: elf32-tic6x.c:3774 elf32-tic6x.c:3783 +#: elf32-tic6x.c:3705 elf32-tic6x.c:3714 #, c-format msgid "error: %B requires more stack alignment than %B preserves" msgstr "erreur: %B nécessite un plus grand alignement de pile que ce que %B préserve" -#: elf32-tic6x.c:3793 elf32-tic6x.c:3802 +#: elf32-tic6x.c:3724 elf32-tic6x.c:3733 msgid "error: unknown Tag_ABI_array_object_alignment value in %B" msgstr "erreur: valeur Tag_ABI_array_object_alignment inconnue dans %B" -#: elf32-tic6x.c:3811 elf32-tic6x.c:3820 +#: elf32-tic6x.c:3742 elf32-tic6x.c:3751 msgid "error: unknown Tag_ABI_array_object_align_expected value in %B" msgstr "erreur: valeur Tag_ABI_array_object_align_expected inconnue dans %B" -#: elf32-tic6x.c:3829 elf32-tic6x.c:3837 +#: elf32-tic6x.c:3760 elf32-tic6x.c:3768 #, c-format msgid "error: %B requires more array alignment than %B preserves" msgstr "erreur: %B nécessite un plus grand alignement de tableau que ce que %B préserve" -#: elf32-tic6x.c:3860 +#: elf32-tic6x.c:3791 #, c-format msgid "warning: %B and %B differ in wchar_t size" msgstr "attention: %B et %B on des tailles de wchar_t différentes" -#: elf32-tic6x.c:3879 +#: elf32-tic6x.c:3810 #, c-format msgid "warning: %B and %B differ in whether code is compiled for DSBT" msgstr "attention: %B et %B ne sont pas d'accord sur la compilation du code pour DSBT" -#: elf32-v850.c:157 +#: elf32-tilepro.c:3752 elfxx-tilegx.c:4132 elfxx-x86.c:1336 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:9172 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2492 +#, c-format +msgid "discarded output section: `%A'" +msgstr "section de sortie rejetée: « %A »" + +#: elf32-v850.c:153 #, c-format msgid "Variable `%s' cannot occupy in multiple small data regions" msgstr "Variable « %s » ne peut occuper de multiples petites régions de données" -#: elf32-v850.c:160 +#: elf32-v850.c:156 #, c-format msgid "Variable `%s' can only be in one of the small, zero, and tiny data regions" msgstr "Variable « %s » peut seulement être dans une région de données petite, zéro ou minuscule" -#: elf32-v850.c:163 +#: elf32-v850.c:159 #, c-format msgid "Variable `%s' cannot be in both small and zero data regions simultaneously" msgstr "Variable « %s » ne peut être dans une région de données petite et zéro à la fois" -#: elf32-v850.c:166 +#: elf32-v850.c:162 #, c-format msgid "Variable `%s' cannot be in both small and tiny data regions simultaneously" msgstr "Variable « %s » ne peut être dans une région de données petite et minuscule à la fois" -#: elf32-v850.c:169 +#: elf32-v850.c:165 #, c-format msgid "Variable `%s' cannot be in both zero and tiny data regions simultaneously" msgstr "Variable « %s » ne peut être dans une région de données zéro et minuscule à la fois" -#: elf32-v850.c:467 +#: elf32-v850.c:463 msgid "FAILED to find previous HI16 reloc" msgstr "ÉCHEC de repérage du réadressage HI16 précédent" -#: elf32-v850.c:1902 elf32-v850.c:1921 +#: elf32-v850.c:1898 elf32-v850.c:1917 #, c-format msgid "%B: invalid V850 reloc number: %d" msgstr "%B: numéro de réadressage V850 invalide: %d" -#: elf32-v850.c:2299 +#: elf32-v850.c:2295 msgid "could not locate special linker symbol __gp" msgstr "ne peut repérer le symbole spécial d'édition de lien __gp" -#: elf32-v850.c:2303 +#: elf32-v850.c:2299 msgid "could not locate special linker symbol __ep" msgstr "ne peut repérer le symbole spécial d'édition de lien __ep" -#: elf32-v850.c:2307 +#: elf32-v850.c:2303 msgid "could not locate special linker symbol __ctbp" msgstr "ne peut repérer le symbole spécial d'édition de lien __ctbp" -#: elf32-v850.c:2528 +#: elf32-v850.c:2524 #, c-format -msgid "error: %B needs 8-byte aligment but %B is set for 4-byte alignment" +msgid "error: %B needs 8-byte alignment but %B is set for 4-byte alignment" msgstr "erreur: %B a besoin d'un alignement sur 8 octets mais %B est défini pour un alignement sur 4 octets" -#: elf32-v850.c:2544 +#: elf32-v850.c:2540 #, c-format msgid "error: %B uses 64-bit doubles but %B uses 32-bit doubles" msgstr "erreur: %B utilise des doubles 64 bits alors que %B utilise des doubles 32 bits" -#: elf32-v850.c:2559 +#: elf32-v850.c:2555 #, c-format msgid "error: %B uses FPU-3.0 but %B only supports FPU-2.0" msgstr "erreur: %B utilise FPU-3.0 mais %B ne supporte que FPU-2.0" -#: elf32-v850.c:2591 +#: elf32-v850.c:2587 #, c-format msgid " alignment of 8-byte entities: " msgstr " alignement d'entités de 8 octets:" -#: elf32-v850.c:2594 +#: elf32-v850.c:2590 #, c-format msgid "4-byte" msgstr "4 octets" -#: elf32-v850.c:2595 +#: elf32-v850.c:2591 #, c-format msgid "8-byte" msgstr "8 octets" -#: elf32-v850.c:2596 elf32-v850.c:2608 +#: elf32-v850.c:2592 elf32-v850.c:2604 #, c-format msgid "not set" msgstr "pas défini" -#: elf32-v850.c:2597 elf32-v850.c:2609 elf32-v850.c:2621 elf32-v850.c:2632 -#: elf32-v850.c:2643 elf32-v850.c:2654 +#: elf32-v850.c:2593 elf32-v850.c:2605 elf32-v850.c:2617 elf32-v850.c:2628 +#: elf32-v850.c:2639 elf32-v850.c:2650 #, c-format msgid "unknown: %x" msgstr "inconnu: %x" -#: elf32-v850.c:2603 +#: elf32-v850.c:2599 #, c-format msgid " size of doubles: " msgstr " taille des doubles: " -#: elf32-v850.c:2606 +#: elf32-v850.c:2602 #, c-format msgid "4-bytes" msgstr "4 octets" -#: elf32-v850.c:2607 +#: elf32-v850.c:2603 #, c-format msgid "8-bytes" msgstr "8 octets" -#: elf32-v850.c:2615 +#: elf32-v850.c:2611 #, c-format msgid " FPU support required: " msgstr " support du FPU requis: " -#: elf32-v850.c:2618 +#: elf32-v850.c:2614 #, c-format msgid "FPU-2.0" msgstr "FPU-2.0" -#: elf32-v850.c:2619 +#: elf32-v850.c:2615 #, c-format msgid "FPU-3.0" msgstr "FPU-3.0" -#: elf32-v850.c:2620 +#: elf32-v850.c:2616 #, c-format msgid "none" msgstr "aucun" -#: elf32-v850.c:2627 +#: elf32-v850.c:2623 #, c-format msgid "SIMD use: " msgstr "utilisation SIMD: " -#: elf32-v850.c:2630 elf32-v850.c:2641 elf32-v850.c:2652 +#: elf32-v850.c:2626 elf32-v850.c:2637 elf32-v850.c:2648 #, c-format msgid "yes" msgstr "oui" -#: elf32-v850.c:2631 elf32-v850.c:2642 elf32-v850.c:2653 +#: elf32-v850.c:2627 elf32-v850.c:2638 elf32-v850.c:2649 #, c-format msgid "no" msgstr "non" -#: elf32-v850.c:2638 +#: elf32-v850.c:2634 #, c-format msgid "CACHE use: " msgstr "utilisation CACHE: " -#: elf32-v850.c:2649 +#: elf32-v850.c:2645 #, c-format msgid "MMU use: " msgstr "utilisation MMU: " -#: elf32-v850.c:2816 elf32-v850.c:2872 +#: elf32-v850.c:2812 elf32-v850.c:2868 msgid "%B: Architecture mismatch with previous modules" msgstr "%B: L'architecture ne concorde pas avec les modules précédents" #. xgettext:c-format. -#: elf32-v850.c:2890 +#: elf32-v850.c:2886 #, c-format msgid "private flags = %lx: " msgstr "fanions privés = %lx: " -#: elf32-v850.c:2895 +#: elf32-v850.c:2891 #, c-format msgid "unknown v850 architecture" msgstr "architecture v850 inconnue" -#: elf32-v850.c:2897 +#: elf32-v850.c:2893 #, c-format msgid "v850 E3 architecture" msgstr "architecture v850 E3" -#: elf32-v850.c:2899 elf32-v850.c:2906 +#: elf32-v850.c:2895 elf32-v850.c:2902 #, c-format msgid "v850 architecture" msgstr "architecture v850" -#: elf32-v850.c:2907 +#: elf32-v850.c:2903 #, c-format msgid "v850e architecture" msgstr "architecture v850e" -#: elf32-v850.c:2908 +#: elf32-v850.c:2904 #, c-format msgid "v850e1 architecture" msgstr "architecture v850e1" -#: elf32-v850.c:2909 +#: elf32-v850.c:2905 #, c-format msgid "v850e2 architecture" msgstr "architecture v850e2" -#: elf32-v850.c:2910 +#: elf32-v850.c:2906 #, c-format msgid "v850e2v3 architecture" msgstr "architecture v850e2v3" -#: elf32-v850.c:2911 +#: elf32-v850.c:2907 #, c-format msgid "v850e3v5 architecture" msgstr "architecture v850e3v5" -#: elf32-v850.c:3605 +#: elf32-v850.c:3601 #, c-format -msgid "%B: 0x%lx: warning: R_V850_LONGCALL points to unrecognized insns" -msgstr "%B: 0x%lx: attention: R_V850_LONGCALL pointe vers des insns inconnues" +msgid "%B: %#Lx: warning: R_V850_LONGCALL points to unrecognized insns" +msgstr "%B: %#Lx: attention: R_V850_LONGCALL pointe vers des insns inconnues" -#: elf32-v850.c:3615 +#: elf32-v850.c:3611 #, c-format -msgid "%B: 0x%lx: warning: R_V850_LONGCALL points to unrecognized insn 0x%x" -msgstr "%B: 0x%lx: attention: R_V850_LONGCALL pointe vers l'insn inconnue 0x%x" +msgid "%B: %#Lx: warning: R_V850_LONGCALL points to unrecognized insn %#x" +msgstr "%B: %#Lx: attention: R_V850_LONGCALL pointe vers l'insn inconnue %#x" -#: elf32-v850.c:3660 +#: elf32-v850.c:3656 #, c-format -msgid "%B: 0x%lx: warning: R_V850_LONGCALL points to unrecognized reloc" -msgstr "%B: 0x%lx: attention: R_V850_LONGCALL pointe vers un réadressage non reconnu" +msgid "%B: %#Lx: warning: R_V850_LONGCALL points to unrecognized reloc" +msgstr "%B: %#Lx: attention: R_V850_LONGCALL pointe vers un réadressage non reconnu" -#: elf32-v850.c:3700 +#: elf32-v850.c:3696 #, c-format -msgid "%B: 0x%lx: warning: R_V850_LONGCALL points to unrecognized reloc 0x%lx" -msgstr "%B: 0x%lx: attention: R_V850_LONGCALL pointe vers le réadressage inconnu 0x%lx" +msgid "%B: %#Lx: warning: R_V850_LONGCALL points to unrecognized reloc %#Lx" +msgstr "%B: %#Lx: attention: R_V850_LONGCALL pointe vers le réadressage inconnu %#Lx" -#: elf32-v850.c:3843 +#: elf32-v850.c:3839 #, c-format -msgid "%B: 0x%lx: warning: R_V850_LONGJUMP points to unrecognized insns" -msgstr "%B: 0x%lx: attention: R_V850_LONGJUMP pointe vers des insns non reconnues" +msgid "%B: %#Lx: warning: R_V850_LONGJUMP points to unrecognized insns" +msgstr "%B: %#Lx: attention: R_V850_LONGJUMP pointe vers des insns non reconnues" -#: elf32-v850.c:3853 +#: elf32-v850.c:3849 #, c-format -msgid "%B: 0x%lx: warning: R_V850_LONGJUMP points to unrecognized insn 0x%x" -msgstr "%B: 0x%lx: attention: R_V850_LONGJUMP pointe vers une insn inconnue 0x%x" +msgid "%B: %#Lx: warning: R_V850_LONGJUMP points to unrecognized insn %#x" +msgstr "%B: %#Lx: attention: R_V850_LONGJUMP pointe vers une insn inconnue %#x" -#: elf32-v850.c:3887 +#: elf32-v850.c:3883 #, c-format -msgid "%B: 0x%lx: warning: R_V850_LONGJUMP points to unrecognized reloc" -msgstr "%B: 0x%lx: attention: R_V850_LONGJUMP pointe vers un réadressage non reconnu" +msgid "%B: %#Lx: warning: R_V850_LONGJUMP points to unrecognized reloc" +msgstr "%B: %#Lx: attention: R_V850_LONGJUMP pointe vers un réadressage non reconnu" #: elf32-vax.c:290 #, c-format @@ -4000,25 +3993,25 @@ msgid " [g-float]" msgstr " [g-float]" -#: elf32-vax.c:635 +#: elf32-vax.c:631 #, c-format -msgid "%B: warning: GOT addend of %ld to `%s' does not match previous GOT addend of %ld" -msgstr "%B: attention: ajout GOT de %ld à « %s » ne concorde par avec l'ajout GOT précédent de %ld" +msgid "%B: warning: GOT addend of %Ld to `%s' does not match previous GOT addend of %Ld" +msgstr "%B: attention: ajout GOT de %Ld à « %s » ne concorde par avec l'ajout GOT précédent de %Ld" -#: elf32-vax.c:1511 +#: elf32-vax.c:1445 #, c-format -msgid "%B: warning: PLT addend of %d to `%s' from %A section ignored" -msgstr "%B: attention: ignore l'ajout PLT de %d à « %s » de la section %A" +msgid "%B: warning: PLT addend of %Ld to `%s' from %A section ignored" +msgstr "%B: attention: ignore l'ajout PLT de %Ld à « %s » de la section %A" -#: elf32-vax.c:1636 +#: elf32-vax.c:1570 #, c-format msgid "%B: warning: %s relocation against symbol `%s' from %A section" msgstr "%B: attention: réadressage %s vers le symbole « %s » de la section %A" -#: elf32-vax.c:1643 +#: elf32-vax.c:1577 #, c-format -msgid "%B: warning: %s relocation to 0x%x from %A section" -msgstr "%B: attention: réadressage %s vers 0x%x de la section %A" +msgid "%B: warning: %s relocation to %#Lx from %A section" +msgstr "%B: attention: réadressage %s vers %#Lx de la section %A" #: elf32-visium.c:481 #, c-format @@ -4047,8 +4040,8 @@ msgid "error reading cpu type from elf private data" msgstr "erreur lors de la lecture du type de CPU dans les données elf privées" -#: elf32-xstormy16.c:453 elf64-ia64-vms.c:2074 elf32-ia64.c:2334 -#: elf64-ia64.c:2334 +#: elf32-xstormy16.c:449 elf64-ia64-vms.c:2074 elf32-ia64.c:2337 +#: elf64-ia64.c:2337 msgid "non-zero addend in @fptr reloc" msgstr "ajout non nul dans le réadressage @fptr" @@ -4062,54 +4055,54 @@ msgid "%B(%A): invalid property table" msgstr "%B(%A): table de propriété invalide" -#: elf32-xtensa.c:2790 +#: elf32-xtensa.c:2655 #, c-format -msgid "%B(%A+0x%lx): relocation offset out of range (size=0x%x)" -msgstr "%B(%A+0x%lx): décalage de réadressage hors limite (taille=0x%x)" +msgid "%B(%A+%#Lx): relocation offset out of range (size=%#Lx)" +msgstr "%B(%A+%#Lx): décalage de réadressage hors limite (taille=%#Lx)" -#: elf32-xtensa.c:2871 elf32-xtensa.c:2990 +#: elf32-xtensa.c:2736 elf32-xtensa.c:2855 msgid "dynamic relocation in read-only section" msgstr "réadressage dynamique dans une section en lecture seule" -#: elf32-xtensa.c:2967 +#: elf32-xtensa.c:2832 msgid "TLS relocation invalid without dynamic sections" msgstr "réadressage TLS incorrecte sans section dynamique" -#: elf32-xtensa.c:3178 +#: elf32-xtensa.c:3043 msgid "internal inconsistency in size of .got.loc section" msgstr "incohérence interne dans la taille de la section .got.loc" -#: elf32-xtensa.c:3485 +#: elf32-xtensa.c:3350 #, c-format msgid "%B: incompatible machine type. Output is 0x%x. Input is 0x%x" msgstr "%B: type de machine incompatible. Sortie est 0x%x. Entrée est 0x%x" -#: elf32-xtensa.c:4716 elf32-xtensa.c:4724 +#: elf32-xtensa.c:4581 elf32-xtensa.c:4589 msgid "Attempt to convert L32R/CALLX to CALL failed" msgstr "Échec de la tentative de convertir L32R/CALLX en CALL" -#: elf32-xtensa.c:6552 elf32-xtensa.c:6629 elf32-xtensa.c:8002 +#: elf32-xtensa.c:6417 elf32-xtensa.c:6495 elf32-xtensa.c:7871 #, c-format -msgid "%B(%A+0x%lx): could not decode instruction; possible configuration mismatch" -msgstr "%B(%A+0x%lx): l'instruction ne peut pas être décodée; la configuration est peut-être erronée" +msgid "%B(%A+%#Lx): could not decode instruction; possible configuration mismatch" +msgstr "%B(%A+%#Lx): l'instruction ne peut pas être décodée; la configuration est peut-être erronée" -#: elf32-xtensa.c:7743 +#: elf32-xtensa.c:7610 #, c-format -msgid "%B(%A+0x%lx): could not decode instruction for XTENSA_ASM_SIMPLIFY relocation; possible configuration mismatch" -msgstr "%B(%A+0x%lx): l'instruction ne peut pas être décodée pour un réadressage XTENSA_ASM_SIMPLIFY; la configuration est peut-être erronée" +msgid "%B(%A+%#Lx): could not decode instruction for XTENSA_ASM_SIMPLIFY relocation; possible configuration mismatch" +msgstr "%B(%A+%#Lx): l'instruction ne peut pas être décodée pour un réadressage XTENSA_ASM_SIMPLIFY; la configuration est peut-être erronée" -#: elf32-xtensa.c:9585 +#: elf32-xtensa.c:9455 msgid "invalid relocation address" msgstr "adresse de réadressage incorrecte" -#: elf32-xtensa.c:9635 +#: elf32-xtensa.c:9505 msgid "overflow after relaxation" msgstr "débordement après la relâche" -#: elf32-xtensa.c:10779 +#: elf32-xtensa.c:10649 #, c-format -msgid "%B(%A+0x%lx): unexpected fix for %s relocation" -msgstr "%B(%A+0x%lx): correction inattendue pour le réadressage %s" +msgid "%B(%A+%#Lx): unexpected fix for %s relocation" +msgstr "%B(%A+%#Lx): correction inattendue pour le réadressage %s" #: elf64-alpha.c:472 msgid "GPDISP relocation did not find ldah and lda instructions" @@ -4120,172 +4113,172 @@ msgid "%B: unrecognised Alpha reloc number: %d" msgstr "%B: numéro de réadressage Alpha non reconnu: %d" -#: elf64-alpha.c:2529 +#: elf64-alpha.c:2462 #, c-format msgid "%B: .got subsegment exceeds 64K (size %d)" msgstr "%B: le sous-segment .got excède 64K (taille %d)" -#: elf64-alpha.c:3084 +#: elf64-alpha.c:3017 #, c-format -msgid "%B: %A+0x%lx: warning: %s relocation against unexpected insn" -msgstr "%B: %A+0x%lx: attention: réadressage de %s sur une insn inattendue" +msgid "%B: %A+%#Lx: warning: %s relocation against unexpected insn" +msgstr "%B: %A+%#Lx: attention: réadressage de %s sur une insn inattendue" -#: elf64-alpha.c:3280 +#: elf64-alpha.c:3212 #, c-format -msgid "%B: %A+0x%lx: warning: LITERAL relocation against unexpected insn" -msgstr "%B: %A+0x%lx: attention: réadressage LITERAL sur une insn inattendue" +msgid "%B: %A+%#Lx: warning: LITERAL relocation against unexpected insn" +msgstr "%B: %A+%#Lx: attention: réadressage LITERAL sur une insn inattendue" -#: elf64-alpha.c:4481 elf64-alpha.c:4494 +#: elf64-alpha.c:4412 elf64-alpha.c:4425 #, c-format msgid "%B: gp-relative relocation against dynamic symbol %s" msgstr "%B: réadressage relatif au gp vers le symbole dynamique %s" -#: elf64-alpha.c:4521 elf64-alpha.c:4665 +#: elf64-alpha.c:4452 elf64-alpha.c:4596 #, c-format msgid "%B: pc-relative relocation against dynamic symbol %s" msgstr "%B: réadressage relatif au PC vers le symbole dynamique %s" -#: elf64-alpha.c:4550 +#: elf64-alpha.c:4481 #, c-format msgid "%B: change in gp: BRSGP %s" msgstr "%B: changé dans le GP: BRSGP %s" -#: elf64-alpha.c:4575 +#: elf64-alpha.c:4506 msgid "" msgstr "" -#: elf64-alpha.c:4581 +#: elf64-alpha.c:4512 #, c-format msgid "%B: !samegp reloc against symbol without .prologue: %s" msgstr "%B: réadressage !samegp vers le symbole sans .prologue: %s" -#: elf64-alpha.c:4639 +#: elf64-alpha.c:4570 #, c-format msgid "%B: unhandled dynamic relocation against %s" msgstr "%B: réadressage dynamique non traité vers %s" -#: elf64-alpha.c:4674 +#: elf64-alpha.c:4605 #, c-format msgid "%B: pc-relative relocation against undefined weak symbol %s" msgstr "%B: réadressage relatif au PC vers le symbole faible non défini %s" -#: elf64-alpha.c:4740 +#: elf64-alpha.c:4671 #, c-format msgid "%B: dtp-relative relocation against dynamic symbol %s" msgstr "%B: réadressage relatif au dtp vers le symbole dynamique %s" -#: elf64-alpha.c:4765 +#: elf64-alpha.c:4696 #, c-format msgid "%B: tp-relative relocation against dynamic symbol %s" msgstr "%B: réadressage relatif au tp vers le symbole dynamique %s" -#: elf64-hppa.c:2082 +#: elf64-hppa.c:2081 #, c-format -msgid "stub entry for %s cannot load .plt, dp offset = %ld" -msgstr "entrée de l'ébauche pour %s ne peut charger .plt, décalage dp = %ld" +msgid "stub entry for %s cannot load .plt, dp offset = %Ld" +msgstr "l'entrée de l'ébauche pour %s ne peut charger .plt, décalage dp = %Ld" -#: elf64-hppa.c:3287 +#: elf64-hppa.c:3286 #, c-format -msgid "%B(%A+0x%" -msgstr "%B(%A+0x%" +msgid "%B(%A+%#Lx): cannot reach %s" +msgstr "%B(%A+%#Lx): ne peut atteindre %s" #: elf64-ia64-vms.c:587 elf32-ia64.c:620 elf64-ia64.c:620 #, c-format -msgid "%B: Can't relax br at 0x%lx in section `%A'. Please use brl or indirect branch." -msgstr "%B: Ne peut relâcher br à 0x%lx dans la section « %A ». Veuillez utiliser brl ou un branchement indirect." +msgid "%B: Can't relax br at %#Lx in section `%A'. Please use brl or indirect branch." +msgstr "%B: Ne peut relâcher br à %#Lx dans la section « %A ». Veuillez utiliser brl ou un branchement indirect." -#: elf64-ia64-vms.c:2029 elf32-ia64.c:2282 elf64-ia64.c:2282 +#: elf64-ia64-vms.c:2029 elf32-ia64.c:2285 elf64-ia64.c:2285 msgid "@pltoff reloc against local symbol" msgstr "réadressage @pltoff vers un symbole local" -#: elf64-ia64-vms.c:3282 elf32-ia64.c:3688 elf64-ia64.c:3688 +#: elf64-ia64-vms.c:3281 elf32-ia64.c:3696 elf64-ia64.c:3696 #, c-format -msgid "%B: short data segment overflowed (0x%lx >= 0x400000)" -msgstr "%B: débordement du segment de données court (0x%lx >= 0x400000)" +msgid "%B: short data segment overflowed (%#Lx >= 0x400000)" +msgstr "%B: débordement du segment de données court (%#Lx >= 0x400000)" -#: elf64-ia64-vms.c:3292 elf32-ia64.c:3698 elf64-ia64.c:3698 +#: elf64-ia64-vms.c:3291 elf32-ia64.c:3706 elf64-ia64.c:3706 msgid "%B: __gp does not cover short data segment" msgstr "%B: __gp ne couvre pas le segment de données court" -#: elf64-ia64-vms.c:3558 elf32-ia64.c:3965 elf64-ia64.c:3965 +#: elf64-ia64-vms.c:3557 elf32-ia64.c:3974 elf64-ia64.c:3974 #, c-format msgid "%B: non-pic code with imm relocation against dynamic symbol `%s'" msgstr "%B: code non pic avec des réadressages imm vers le symbole dynamique « %s »" -#: elf64-ia64-vms.c:3622 elf32-ia64.c:4033 elf64-ia64.c:4033 +#: elf64-ia64-vms.c:3621 elf32-ia64.c:4042 elf64-ia64.c:4042 #, c-format msgid "%B: @gprel relocation against dynamic symbol %s" msgstr "%B: réadressage @gprel vers le symbole dynamique %s" -#: elf64-ia64-vms.c:3681 elf32-ia64.c:4096 elf64-ia64.c:4096 +#: elf64-ia64-vms.c:3680 elf32-ia64.c:4105 elf64-ia64.c:4105 msgid "%B: linking non-pic code in a position independent executable" msgstr "%B: liaison de code non-pic dans un exécutable à position indépendante" -#: elf64-ia64-vms.c:3783 elf32-ia64.c:4234 elf64-ia64.c:4234 +#: elf64-ia64-vms.c:3782 elf32-ia64.c:4243 elf64-ia64.c:4243 #, c-format msgid "%B: @internal branch to dynamic symbol %s" msgstr "%B: branchement @internal vers le symbole dynamique %s" -#: elf64-ia64-vms.c:3786 elf32-ia64.c:4237 elf64-ia64.c:4237 +#: elf64-ia64-vms.c:3785 elf32-ia64.c:4246 elf64-ia64.c:4246 #, c-format msgid "%B: speculation fixup to dynamic symbol %s" msgstr "%B: spéculation d'ajustements vers le symbole dynamique %s" -#: elf64-ia64-vms.c:3789 elf32-ia64.c:4240 elf64-ia64.c:4240 +#: elf64-ia64-vms.c:3788 elf32-ia64.c:4249 elf64-ia64.c:4249 #, c-format msgid "%B: @pcrel relocation against dynamic symbol %s" msgstr "%B: réadressage @pcrel vers le symbole dynamique %s" -#: elf64-ia64-vms.c:3913 elf32-ia64.c:4437 elf64-ia64.c:4437 +#: elf64-ia64-vms.c:3912 elf32-ia64.c:4446 elf64-ia64.c:4446 msgid "unsupported reloc" msgstr "réadressage non supportée" -#: elf64-ia64-vms.c:3950 elf32-ia64.c:4475 elf64-ia64.c:4475 +#: elf64-ia64-vms.c:3949 elf32-ia64.c:4484 elf64-ia64.c:4484 #, c-format -msgid "%B: missing TLS section for relocation %s against `%s' at 0x%lx in section `%A'." -msgstr "%B: setion TLS manquante pour le réadressage %s vers « %s » à 0x%lx dans la section « %A »." +msgid "%B: missing TLS section for relocation %s against `%s' at %#Lx in section `%A'." +msgstr "%B: setion TLS manquante pour le réadressage %s vers « %s » à %#Lx dans la section « %A »." -#: elf64-ia64-vms.c:3967 elf32-ia64.c:4492 elf64-ia64.c:4492 +#: elf64-ia64-vms.c:3966 elf32-ia64.c:4501 elf64-ia64.c:4501 #, c-format -msgid "%B: Can't relax br (%s) to `%s' at 0x%lx in section `%A' with size 0x%lx (> 0x1000000)." -msgstr "%B:Ne peut pas relâcher br (%s) sur « %s » à 0x%lx dans la section « %A » avec la taille 0x%lx (> 0x1000000)." +msgid "%B: Can't relax br (%s) to `%s' at %#Lx in section `%A' with size %#Lx (> 0x1000000)." +msgstr "%B: Ne peut pas relâcher br (%s) sur « %s » à %#Lx dans la section « %A » avec la taille %#Lx (> 0x1000000)." -#: elf64-ia64-vms.c:4258 elf32-ia64.c:4749 elf64-ia64.c:4749 +#: elf64-ia64-vms.c:4257 elf32-ia64.c:4758 elf64-ia64.c:4758 msgid "%B: linking trap-on-NULL-dereference with non-trapping files" msgstr "%B: édition de liens trap-on-NULL-dereference avec des fichiers non-trapping" -#: elf64-ia64-vms.c:4267 elf32-ia64.c:4758 elf64-ia64.c:4758 +#: elf64-ia64-vms.c:4266 elf32-ia64.c:4767 elf64-ia64.c:4767 msgid "%B: linking big-endian files with little-endian files" msgstr "%B: édition de liens entre des fichiers à octets de poids fort et des fichiers à octets de poids faible" -#: elf64-ia64-vms.c:4276 elf32-ia64.c:4767 elf64-ia64.c:4767 +#: elf64-ia64-vms.c:4275 elf32-ia64.c:4776 elf64-ia64.c:4776 msgid "%B: linking 64-bit files with 32-bit files" msgstr "%B: édition de liens entre fichiers 64 bits et fichiers 32 bits" -#: elf64-ia64-vms.c:4285 elf32-ia64.c:4776 elf64-ia64.c:4776 +#: elf64-ia64-vms.c:4284 elf32-ia64.c:4785 elf64-ia64.c:4785 msgid "%B: linking constant-gp files with non-constant-gp files" msgstr "%B: édition de liens entre fichiers constant-gp et fichiers non-constant-gp" -#: elf64-ia64-vms.c:4295 elf32-ia64.c:4786 elf64-ia64.c:4786 +#: elf64-ia64-vms.c:4294 elf32-ia64.c:4795 elf64-ia64.c:4795 msgid "%B: linking auto-pic files with non-auto-pic files" msgstr "%B: édition de liens entre fichiers auto-pic et fichiers non-auto-pic" -#: elf64-ia64-vms.c:5138 elflink.c:4730 +#: elf64-ia64-vms.c:5137 elflink.c:4773 #, c-format msgid "Warning: alignment %u of common symbol `%s' in %B is greater than the alignment (%u) of its section %A" msgstr "Attention: alignement %u du symbole commun « %s » dans %B est plus grand que l'alignement (%u) de sa section %A" -#: elf64-ia64-vms.c:5145 elflink.c:4737 +#: elf64-ia64-vms.c:5144 elflink.c:4780 #, c-format msgid "Warning: alignment %u of symbol `%s' in %B is smaller than %u in %B" msgstr "Attention: alignement %u du symbole « %s » dans %B est plus petit que %u dans %B" -#: elf64-ia64-vms.c:5161 +#: elf64-ia64-vms.c:5160 elflink.c:4797 #, c-format -msgid "Warning: size of symbol `%s' changed from %lu in %B to %lu in %B" -msgstr "Attention: taille du symbole « %s » a changé de %lu dans %B à %lu dans %B" +msgid "Warning: size of symbol `%s' changed from %Lu in %B to %Lu in %B" +msgstr "Attention: taille du symbole « %s » a changé de %Lu dans %B à %Lu dans %B" -#: elf64-mips.c:3615 elfn32-mips.c:3439 +#: elf64-mips.c:3615 elfn32-mips.c:3443 #, c-format msgid "unrecognised MIPS reloc number: %d" msgstr "type de réadressage MIPS non reconnu: %d" @@ -4314,177 +4307,192 @@ #, c-format msgid "" "%B: Internal inconsistency error for value for\n" -" linker-allocated global register: linked: 0x%lx%08lx != relaxed: 0x%lx%08lx\n" +" linker-allocated global register: linked: %#Lx != relaxed: %#Lx" msgstr "" -"%B: erreur d'incohérence interne pour la valeur du registre global\n" -" alloué à l'édition de lien: lié: 0x%lx%08lx != relâché: 0x%lx%08lx\n" +"%B: Erreur d'incohérence interne pour la valeur du registre global\n" +" alloué à l'édition de lien: lié: %#Lx != relâché: %#Lx" -#: elf64-mmix.c:1266 +#: elf64-mmix.c:1264 #, c-format msgid "%B: invalid MMIX reloc number: %d" msgstr "%B: numéro de réadressage MMIX invalide: %d" -#: elf64-mmix.c:1618 +#: elf64-mmix.c:1616 #, c-format msgid "%B: base-plus-offset relocation against register symbol: (unknown) in %A" msgstr "%B: réadressage base plus décalage vers le symbole registre: (inconnu) dans %A" -#: elf64-mmix.c:1624 +#: elf64-mmix.c:1622 #, c-format msgid "%B: base-plus-offset relocation against register symbol: %s in %A" msgstr "%B: réadressage base plus décalage vers le symbole registre: %s dans %A" -#: elf64-mmix.c:1669 +#: elf64-mmix.c:1667 #, c-format msgid "%B: register relocation against non-register symbol: (unknown) in %A" msgstr "%B: réadressage de registre vers le symbole non-registre: (inconnu) dans %A" -#: elf64-mmix.c:1675 +#: elf64-mmix.c:1673 #, c-format msgid "%B: register relocation against non-register symbol: %s in %A" msgstr "%B: réadressage de registre vers le symbole non-registre: %s dans %A" -#: elf64-mmix.c:1712 +#: elf64-mmix.c:1710 msgid "%B: directive LOCAL valid only with a register or absolute value" msgstr "%B: directive LOCAL valide seulement avec un registre ou une valeur absolue" -#: elf64-mmix.c:1743 +#: elf64-mmix.c:1741 #, c-format -msgid "%B: LOCAL directive: Register $%ld is not a local register. First global register is $%ld." -msgstr "%B: directive LOCAL: registre $%ld n'est pas un registre local. Premier registre global est $%ld." +msgid "%B: LOCAL directive: Register $%Ld is not a local register. First global register is $%Ld." +msgstr "%B: directive LOCAL: registre $%Ld n'est pas un registre local. Premier registre global est $%Ld." -#: elf64-mmix.c:2202 +#: elf64-mmix.c:2169 #, c-format msgid "%B: Error: multiple definition of `%s'; start of %s is set in a earlier linked file\n" msgstr "%B: erreur: multiple définitions de « %s »; début de %s est initialisé dans un précédent fichier lié\n" -#: elf64-mmix.c:2257 +#: elf64-mmix.c:2224 msgid "Register section has contents\n" msgstr "Registre de section contient\n" -#: elf64-mmix.c:2447 +#: elf64-mmix.c:2414 #, c-format msgid "" -"Internal inconsistency: remaining %u != max %u.\n" +"Internal inconsistency: remaining %lu != max %lu.\n" " Please report this bug." msgstr "" -"Inconsistance interne: reste %u != max %u.\n" +"Inconsistance interne: reste %lu != max %lu.\n" " Merci de rapporter cette anomalie." -#: elf64-ppc.c:4625 +#: elf64-ppc.c:4640 #, c-format msgid "%P: %B: cannot create stub entry %s\n" msgstr "%P: %B: ne peut créer l'entrée de l'ébauche %s\n" -#: elf64-ppc.c:4993 +#: elf64-ppc.c:4971 msgid "%P: symbol '%s' has invalid st_other for ABI version 1\n" msgstr "%P: le symbole « %s » a un st_other invalide pour l'ABI à la version 1\n" -#: elf64-ppc.c:5163 +#: elf64-ppc.c:5146 #, c-format msgid "%P: %B .opd not allowed in ABI version %d\n" msgstr "%P: %B: .opd pas permis dans l'ABI à la version %d\n" -#: elf64-ppc.c:5639 +#: elf64-ppc.c:5645 #, c-format msgid "%H: %s reloc unsupported in shared libraries and PIEs.\n" msgstr "%H: le réadressage %s n'est pas supporté dans les bibliothèques partagées et les PIE.\n" -#: elf64-ppc.c:6046 +#: elf64-ppc.c:6035 #, c-format msgid "%B uses unknown e_flags 0x%lx" msgstr "%B utilise le e_flags 0x%lx inconnu" -#: elf64-ppc.c:6054 +#: elf64-ppc.c:6043 #, c-format msgid "%B: ABI version %ld is not compatible with ABI version %ld output" msgstr "%B: la version ABI %ld n'est pas compatible avec la sortie de l'ABI version %ld" -#: elf64-ppc.c:6082 +#: elf64-ppc.c:6071 #, c-format msgid " [abiv%ld]" msgstr " [abiv%ld]" -#: elf64-ppc.c:7413 +#: elf64-ppc.c:7255 msgid "%P: copy reloc against `%T' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc\n" msgstr "%P: le réadressage par copie sur « %T » nécessite un lien plt paresseux; évitez de mettre LD_BIND_NOW=1 ou mettez à jour gcc\n" -#: elf64-ppc.c:7680 +#: elf64-ppc.c:7522 msgid "%B: undefined symbol on R_PPC64_TOCSAVE relocation" msgstr "%B: symbole indéfini sur le réadressage R_PPC64_TOCSAVE" -#: elf64-ppc.c:7910 +#: elf64-ppc.c:7749 #, c-format msgid "%P: dynreloc miscount for %B, section %A\n" msgstr "%P: erreur de décompte de réadressage dynamique pour %B, section %A\n" -#: elf64-ppc.c:7999 +#: elf64-ppc.c:7838 msgid "%B: .opd is not a regular array of opd entries" msgstr "%B: .opd n'est pas un tableau régulier d'entrées opd" -#: elf64-ppc.c:8009 +#: elf64-ppc.c:7848 #, c-format msgid "%B: unexpected reloc type %u in .opd section" msgstr "%B: type de réadressage %u inattendu dans la section .opd" -#: elf64-ppc.c:8031 +#: elf64-ppc.c:7870 #, c-format msgid "%B: undefined sym `%s' in .opd section" msgstr "%B: symbole « %s » indéfini dans la section .opd" -#: elf64-ppc.c:8600 +#: elf64-ppc.c:8207 +msgid "%P: warning: --plt-localentry is especially dangerous without ld.so support to detect ABI violations.\n" +msgstr "%P: attention: --plt-localentry est particulièrement dangereux sans le support de ld.so pour détecter des violations de l'ABI.\n" + +#: elf64-ppc.c:8456 msgid "%H __tls_get_addr lost arg, TLS optimization disabled\n" msgstr "%H __tls_get_addr a perdu l'argument, optimisation TLS désactivée\n" -#: elf64-ppc.c:8943 elf64-ppc.c:9580 +#: elf64-ppc.c:8800 elf64-ppc.c:9437 #, c-format msgid "%s defined on removed toc entry" msgstr "%s défini dans une entrée toc supprimée" -#: elf64-ppc.c:9308 +#: elf64-ppc.c:9165 #, c-format msgid "%H: toc optimization is not supported for %s instruction.\n" msgstr "%H: l'optimisation toc n'est pas supportée pour l'instruction %s.\n" -#: elf64-ppc.c:9537 +#: elf64-ppc.c:9394 #, c-format msgid "%H: %s references optimized away TOC entry\n" msgstr "%H: %s fait référence à une entrée TOC supprimée par l'optimisation\n" -#: elf64-ppc.c:10878 +#: elf64-ppc.c:10157 +#, c-format +msgid "warning: discarding dynamic section %s" +msgstr "attention: abandon de la section dynamique %s" + +#: elf64-ppc.c:10746 msgid "%P: cannot find opd entry toc for `%T'\n" msgstr "%P: l'entrée toc de opd non trouvée pour « %T »\n" -#: elf64-ppc.c:10969 +#: elf64-ppc.c:10837 msgid "%P: long branch stub `%s' offset overflow\n" msgstr "%P: débordement de l'offset du branchement long de l'ébauche « %s »\n" -#: elf64-ppc.c:11028 +#: elf64-ppc.c:10896 msgid "%P: can't find branch stub `%s'\n" msgstr "%P: ne peut repérer l'ébauche de branchement « %s »\n" -#: elf64-ppc.c:11092 elf64-ppc.c:11244 elf64-ppc.c:13052 +#: elf64-ppc.c:10960 elf64-ppc.c:11112 elf64-ppc.c:12974 #, c-format msgid "%P: linkage table error against `%T'\n" msgstr "%P: erreur de la table de liaison vers « %T »\n" -#: elf64-ppc.c:11454 +#: elf64-ppc.c:11331 msgid "%P: can't build branch stub `%s'\n" msgstr "%P: ne peut construire l'ébauche de branchement « %s »\n" -#: elf64-ppc.c:12227 +#: elf64-ppc.c:12104 #, c-format msgid "%B section %A exceeds stub group size" msgstr "%B section %A dépasse la taille du groupe d'ébauche" -#: elf64-ppc.c:13331 +#: elf64-ppc.c:13242 msgid "%P: stubs don't match calculated size\n" msgstr "%P: taille des ébauches ne concorde pas avec la taille calculée\n" -#: elf64-ppc.c:13343 +#: elf64-ppc.c:13256 +#, c-format +msgid "linker stubs in %u group\n" +msgid_plural "linker stubs in %u groups\n" +msgstr[0] "ébauches de l'éditeur de liens dans %u groupe\n" +msgstr[1] "ébauches de l'éditeur de liens dans %u groupes\n" + +#: elf64-ppc.c:13260 #, c-format msgid "" -"linker stubs in %u group%s\n" " branch %lu\n" " toc adjust %lu\n" " long branch %lu\n" @@ -4493,7 +4501,6 @@ " plt call toc %lu\n" " global entry %lu" msgstr "" -"éditeur de liens des ébauches dans %u groupe%s\n" " branchements %lu\n" " ajustements toc %lu\n" " long branchements %lu\n" @@ -4502,68 +4509,68 @@ " appels plt toc %lu\n" " entrées globales %lu" -#: elf64-ppc.c:13665 +#: elf64-ppc.c:13579 #, c-format msgid "%H: %s used with TLS symbol `%T'\n" msgstr "%H: %s utilisé avec le symbole TLS « %T »\n" -#: elf64-ppc.c:13667 +#: elf64-ppc.c:13581 #, c-format msgid "%H: %s used with non-TLS symbol `%T'\n" msgstr "%H: %s utilisé avec le symbole non-TLS « %T »\n" -#: elf64-ppc.c:14306 +#: elf64-ppc.c:14191 #, c-format msgid "%H: call to `%T' lacks nop, can't restore toc; recompile with -fPIC\n" msgstr "%H: il manque un nop à l'appel à « %T », toc ne peut être rétablie, recompilez avec -fPIC\n" -#: elf64-ppc.c:14312 +#: elf64-ppc.c:14197 #, c-format msgid "%H: call to `%T' lacks nop, can't restore toc; (-mcmodel=small toc adjust stub)\n" msgstr "%H: il manque un nop à l'appel à « %T », toc ne peut être rétablie, (ébauche d'ajustement de la toc -mcmodel=small)\n" -#: elf64-ppc.c:14440 +#: elf64-ppc.c:14325 #, c-format msgid "%P: %B: unknown relocation type %d for `%T'\n" msgstr "%P: %B: type de réadressage %d inconnu pour « %T »\n" -#: elf64-ppc.c:14994 +#: elf64-ppc.c:14874 #, c-format msgid "%H: %s for indirect function `%T' unsupported\n" msgstr "%H: %s non supporté pour la fonction indirecte « %T »\n" -#: elf64-ppc.c:15132 +#: elf64-ppc.c:14986 #, c-format msgid "%P: %B: %s is not supported for `%T'\n" msgstr "%P: %B: %s n'est pas supporté pour le symbole « %T »\n" -#: elf64-ppc.c:15287 +#: elf64-ppc.c:15169 #, c-format msgid "%H: error: %s not a multiple of %u\n" msgstr "%H: erreur: %s n'est pas un multiple de %u\n" -#: elf64-ppc.c:15309 +#: elf64-ppc.c:15191 #, c-format msgid "%H: unresolvable %s against `%T'\n" msgstr "%H: %s ne peut être résolu par rapport à « %T »\n" -#: elf64-ppc.c:15406 +#: elf64-ppc.c:15288 #, c-format msgid "%H: %s against `%T': error %d\n" msgstr "%H: %s vers « %T »: erreur %d\n" -#: elf64-ppc.c:15801 elf64-ppc.c:15830 +#: elf64-ppc.c:15678 elf64-ppc.c:15697 msgid "%P: %s offset too large for .eh_frame sdata4 encoding" msgstr "%P: décalage %s trop grand pour l'encodage .eh_frame sdata4" -#: elf64-s390.c:2712 +#: elf64-s390.c:2533 msgid "%B: `%s' non-PLT reloc for symbol defined in shared library and accessed from executable (rebuild file with -fPIC ?)" msgstr "%B: réadressage non-PLT « %s » pour le symbole défini dans une bibliothèque partagée et accédé depuis l'exécutable (recompiler le fichier avec -fPIC ?)" #: elf64-sh64.c:1680 #, c-format -msgid "%B: error: unaligned relocation type %d at %08x reloc %08x\n" -msgstr "%B: erreur: type de réadressage %d non aligné à %08x réadressé`%08x\n" +msgid "%B: error: unaligned relocation type %d at %08Lx reloc %08Lx" +msgstr "%B: erreur: type de réadressage %d non aligné à %08Lx réadressé`%08Lx" #: elf64-sparc.c:460 msgid "%B: Only registers %%g[2367] can be declared using STT_REGISTER" @@ -4588,361 +4595,360 @@ msgid "%B: linking UltraSPARC specific with HAL specific code" msgstr "%B: édition de liens spécifiques pour UltraSPARC avec du code spécifique HAL" -#: elf64-x86-64.c:1923 +#: elf64-x86-64.c:1370 msgid "hidden symbol " msgstr "symbole caché " -#: elf64-x86-64.c:1926 +#: elf64-x86-64.c:1373 msgid "internal symbol " msgstr "symbole interne " -#: elf64-x86-64.c:1929 +#: elf64-x86-64.c:1376 elf64-x86-64.c:1380 msgid "protected symbol " msgstr "symbole protégé " -#: elf64-x86-64.c:1932 +#: elf64-x86-64.c:1382 msgid "symbol " msgstr "symbole " -#: elf64-x86-64.c:1933 elf64-x86-64.c:1943 +#: elf64-x86-64.c:1383 elf64-x86-64.c:1393 msgid "; recompile with -fPIC" msgstr "; recompilé avec -fPIC" -#: elf64-x86-64.c:1938 +#: elf64-x86-64.c:1388 msgid "undefined " msgstr "non défini " +#: elf64-x86-64.c:1397 +msgid "a shared object" +msgstr "un objet partagé" + +#: elf64-x86-64.c:1399 +msgid "a PIE object" +msgstr "un objet PIE" + +#: elf64-x86-64.c:1401 +msgid "a PDE object" +msgstr "un objet PDE" + # Les %s%s au début de %s%s« %s » peuvent être « non défini » ou rien pour le premier et # un des fragments ci-dessus pour le second ce qui donne par exemple « symbole interne non défini» en inversant les deux %s. -# Le dernier %s collé au dernier mot peut être rien ou un des fragments traduits ci-dessus et commençant par un point-virgule. -#: elf64-x86-64.c:1947 +# Malheureusement, on ne peut pas inverser les %s car la syntaxe %1$s a été ajoutée le 5/11/2017 à bfd comme indiqué +# dans le bug https://sourceware.org/bugzilla/show_bug.cgi?id=22717. +# L'avant dernier %s est l'un des trois messages ci-dessus telle que "un objet partagé". +# Le dernier %s collé au dernier %s peut être rien ou un des fragments traduits ci-dessus et commençant par un point-virgule. +#: elf64-x86-64.c:1404 #, c-format -msgid "%B: relocation %s against %s%s`%s' can not be used when making a shared object%s" -msgstr "%1$B: réadressage %2$s vers %4$s%3$s« %5$s » ne peut pas être utilisé en créant un objet partagé%6$s" +msgid "%B: relocation %s against %s%s`%s' can not be used when making %s%s" +msgstr "%B: réadressage %s vers %s%s« %s » ne peut pas être utilisé en créant %s%s" -#: elf64-x86-64.c:2510 +#: elf64-x86-64.c:1889 #, c-format msgid "%B: relocation %s against symbol `%s' isn't supported in x32 mode" msgstr "%B: le réadressage %s sur le symbole « %s » n'est pas supporté en mode x32" -#: elf64-x86-64.c:2633 +#: elf64-x86-64.c:2027 #, c-format msgid "%B: '%s' accessed both as normal and thread local symbol" msgstr "%B: symbole « %s » accédé à la fois comme normal et comme local au thread" -#: elf64-x86-64.c:4576 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:5018 +#: elf64-x86-64.c:2651 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:5040 #, c-format -msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %d" -msgstr "%B: le réadressage %s vers le symbole STT_GNU_IFUNC « %s » a l'opérande non nul: %d" +msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %Ld" +msgstr "%B: le réadressage %s vers le symbole STT_GNU_IFUNC « %s » a l'opérande non nul: %Ld" -#: elf64-x86-64.c:4831 +#: elf64-x86-64.c:2888 #, c-format msgid "%B: relocation R_X86_64_GOTOFF64 against undefined %s `%s' can not be used when making a shared object" msgstr "%B: réadressage R_X86_64_GOTOFF64 sur le symbole %s « %s » non défini ne peut pas être utilisé lors de la création d'un objet partagé" # Le %s protégée est soit « function » ou « data » sans traduction. # Cette construction scabreuse a déjà été enlevée dans les sources. -#: elf64-x86-64.c:4845 +#: elf64-x86-64.c:2902 #, c-format msgid "%B: relocation R_X86_64_GOTOFF64 against protected %s `%s' can not be used when making a shared object" msgstr "%B: réadressage R_X86_64_GOTOFF64 vers la %s protégée « %s » ne peut pas être utilisé lors de la création d'un objet partagé" -#: elf64-x86-64.c:5122 +#: elf64-x86-64.c:3153 #, c-format -msgid "%B: addend -0x%x in relocation %s against symbol `%s' at 0x%lx in section `%A' is out of range" -msgstr "%B: l'opérande -0x%x dans le réadressage %s vers le symbole « %s » à 0x%lx dans la section « %A » est hors limite" +msgid "%B: addend %s%#x in relocation %s against symbol `%s' at %#Lx in section `%A' is out of range" +msgstr "%B: l'opérande %s%#x dans le réadressage %s vers le symbole « %s » à %#Lx dans la section « %A » est hors limite" -#: elf64-x86-64.c:5130 -#, c-format -msgid "%B: addend 0x%x in relocation %s against symbol `%s' at 0x%lx in section `%A' is out of range" -msgstr "%B: l'opérande 0x%x dans le réadressage %s vers le symbole « %s » à 0x%lx dans la section « %A » est hors limite" +#: elf64-x86-64.c:3828 +msgid "%F%P: failed to convert GOTPCREL relocation; relink with --no-relax\n" +msgstr "%F%P: impossible de convertir le réadressage GOTPCREL: éditez les liens à nouveau avec --no-relax\n" -#: elf64-x86-64.c:5952 +#: elf64-x86-64.c:3986 #, c-format msgid "%F%B: PC-relative offset overflow in PLT entry for `%s'\n" msgstr "%F%B: débordement du décalage relatif au PC dans l'entrée PLT pour « %s »\n" -#: elf64-x86-64.c:6019 +#: elf64-x86-64.c:4049 #, c-format msgid "%F%B: branch displacement overflow in PLT entry for `%s'\n" msgstr "%F%B: débordement du déplacement de branchement dans l'entrée PLT pour « %s »\n" -#: elf64-x86-64.c:6072 +#: elf64-x86-64.c:4102 #, c-format msgid "%F%B: PC-relative offset overflow in GOT PLT entry for `%s'\n" msgstr "%F%B: débordement du décalage relatif au PC dans l'entrée PLT GOT pour « %s »\n" -#: elf64-x86-64.c:7663 -#, c-format -msgid "%F: failed to create BND PLT section\n" -msgstr "%F: échec lors de la création de la section PLT BND\n" - -#: elf64-x86-64.c:7713 -#, c-format -msgid "%F: failed to create BND PLT .eh_frame section\n" -msgstr "%F: échec lors de la création de la section .eh_frame PLT BND\n" - #: elfcode.h:760 msgid "warning: %B has a corrupt string table index - ignoring" msgstr "attention: %B a un index de table de chaînes corrompu - ignoré" -#: elfcode.h:1193 +#: elfcode.h:1199 #, c-format -msgid "%B: version count (%ld) does not match symbol count (%ld)" -msgstr "%B: compteur de version (%ld) ne concorde pas avec le symbole du compteur (%ld)" +msgid "%B: version count (%Ld) does not match symbol count (%ld)" +msgstr "%B: compteur de version (%Ld) ne concorde pas avec le symbole du compteur (%ld)" -#: elfcode.h:1448 +#: elfcode.h:1456 #, c-format msgid "%B(%A): relocation %d has invalid symbol index %ld" msgstr "%B(%A): réadressage %d a un index de symbole %ld invalide" #: elfcore.h:300 #, c-format -msgid "Warning: %B is truncated: expected core file size >= %lu, found: %lu." -msgstr "Attention: %B est tronqué: taille attendue du cÅ“ur du fichier >= %lu, obtenu: %lu." +msgid "warning: %B is truncated: expected core file size >= %Lu, found: %llu" +msgstr "attention: %B est tronqué: taille attendue du cÅ“ur du fichier >= %Lu, obtenu: %llu" -#: elflink.c:1336 +#: elflink.c:1353 #, c-format msgid "%s: TLS definition in %B section %A mismatches non-TLS definition in %B section %A" msgstr "%s: définition TLS dans %B section %A ne correspond pas à la définition non TLS dans %B section %A" -#: elflink.c:1342 +#: elflink.c:1359 #, c-format msgid "%s: TLS reference in %B mismatches non-TLS reference in %B" msgstr "%s: référence TLS dans %B ne correspond pas à la référence non TLS dans %B" -#: elflink.c:1348 +#: elflink.c:1365 #, c-format msgid "%s: TLS definition in %B section %A mismatches non-TLS reference in %B" msgstr "%s: définition TLS dans %B section %A ne correspond pas à la référence TLS dans %B" -#: elflink.c:1354 +#: elflink.c:1371 #, c-format msgid "%s: TLS reference in %B mismatches non-TLS definition in %B section %A" msgstr "%s: référence TLS dans %B ne correspond pas à la définition non TLS dans %B section %A" -#: elflink.c:2015 +#: elflink.c:2052 #, c-format msgid "%B: unexpected redefinition of indirect versioned symbol `%s'" msgstr "%B: attention: redéfinition inattendue du symbole indirect avec version « %s »" -#: elflink.c:2308 +#: elflink.c:2345 #, c-format msgid "%B: version node not found for symbol %s" msgstr "%B: version du nÅ“ud pas trouvée pour le symbole %s" -#: elflink.c:2397 +#: elflink.c:2434 #, c-format -msgid "%B: bad reloc symbol index (%#lx >= %#lx) for offset %#Lx in section `%A'" -msgstr "%B: mauvais index du symbole de réadressage (%#lx >= %#lx) pour l'offset %#Lx de la section « %A »" +msgid "%B: bad reloc symbol index (%#Lx >= %#lx) for offset %#Lx in section `%A'" +msgstr "%B: mauvais index du symbole de réadressage (%#Lx >= %#lx) pour l'offset %#Lx de la section « %A »" -#: elflink.c:2409 +#: elflink.c:2446 #, c-format -msgid "%B: non-zero symbol index (%#lx) for offset %#Lx in section `%A' when the object file has no symbol table" -msgstr "%B: index de symbole non nul (%#lx) pour l'offset %#Lx de la section « %A » quand le fichier objet n'a pas de table de symboles" +msgid "%B: non-zero symbol index (%#Lx) for offset %#Lx in section `%A' when the object file has no symbol table" +msgstr "%B: index de symbole non nul (%#Lx) pour l'offset %#Lx de la section « %A » quand le fichier objet n'a pas de table de symboles" -#: elflink.c:2600 +#: elflink.c:2637 #, c-format msgid "%B: relocation size mismatch in %B section %A" msgstr "%B: taille du réadressage ne concorde pas dans %B section %A" -#: elflink.c:2911 +#: elflink.c:2955 #, c-format msgid "warning: type and size of dynamic symbol `%s' are not defined" msgstr "attention: type et taille du symbole dynamique « %s » ne sont pas définis" -#: elflink.c:2976 +#: elflink.c:3017 msgid "%P: copy reloc against protected `%T' is dangerous\n" msgstr "%P: un réadressage copié envers un « %T » protégé est dangereux\n" -#: elflink.c:3777 +#: elflink.c:3818 #, c-format msgid "%P: alternate ELF machine code found (%d) in %B, expecting %d\n" msgstr "%P: code machine ELF alternatif trouvé (%d) dans %B, %d est attendu\n" -#: elflink.c:4438 +#: elflink.c:4484 #, c-format msgid "%B: %s: invalid version %u (max %d)" msgstr "%B: %s: version invalide %u (max %d)" -#: elflink.c:4475 +#: elflink.c:4521 #, c-format msgid "%B: %s: invalid needed version %d" msgstr "%B: %s: version requise invalide %d" -#: elflink.c:4754 -#, c-format -msgid "Warning: size of symbol `%s' changed from %Lu in %B to %Lu in %B" -msgstr "Attention: taille du symbole « %s » a changé de %Lu dans %B à %Lu dans %B" - -#: elflink.c:4890 +#: elflink.c:4932 #, c-format msgid "%B: undefined reference to symbol '%s'" msgstr "%B: référence au symbole non défini « %s »" -#: elflink.c:5903 +#: elflink.c:6008 #, c-format msgid "%B: stack size specified and %s set" msgstr "%B: taille de pile spécifiée et %s défini" -#: elflink.c:5907 +#: elflink.c:6012 #, c-format msgid "%B: %s not absolute" msgstr "%B: %s pas supporté" -#: elflink.c:6105 +#: elflink.c:6209 #, c-format msgid "%s: undefined version: %s" msgstr "%s: version non définie: %s" -#: elflink.c:6682 +#: elflink.c:6780 msgid "%B: .preinit_array section is not allowed in DSO" msgstr "%B: section .preinit_array n'est pas permise dans DSO" -#: elflink.c:8122 +#: elflink.c:8217 #, c-format msgid "undefined %s reference in complex symbol: %s" msgstr "référence %s non définie dans le symbole complexe: %s" -#: elflink.c:8277 +#: elflink.c:8372 #, c-format msgid "unknown operator '%c' in complex symbol" msgstr "opérateur « %c » inconnu dans le symbole complexe" #. PR 21524: Let the user know if a symbol was removed by garbage collection. -#: elflink.c:8615 +#: elflink.c:8710 msgid "%B:%A: error: relocation references symbol %s which was removed by garbage collection." msgstr "%B:%A: erreur: symbole de référence des réadressages %s qui a été supprimé par le ramasse miettes" -#: elflink.c:8618 +#: elflink.c:8713 msgid "%B:%A: error: try relinking with --gc-keep-exported enabled." msgstr "%B:%A: erreur: essayez de rééditer les liens avec --gc-keep-exported enabled." -#: elflink.c:8855 elflink.c:8873 elflink.c:8912 elflink.c:8930 +#: elflink.c:8949 elflink.c:8967 elflink.c:9006 elflink.c:9024 msgid "%B: Unable to sort relocs - they are in more than one size" msgstr "%B: Impossible de trier les réadressages - plusieurs tailles rencontrées" #. The section size is not divisible by either - #. something is wrong. -#: elflink.c:8889 elflink.c:8946 +#: elflink.c:8983 elflink.c:9040 msgid "%B: Unable to sort relocs - they are of an unknown size" msgstr "%B: Impossible de trier les réadressages - leur taille est inconnue" -#: elflink.c:8998 +#: elflink.c:9092 msgid "Not enough memory to sort relocations" msgstr "Pas assez de mémoire pour trier les réadressages" -#: elflink.c:9266 +#: elflink.c:9360 #, c-format msgid "%B: Too many sections: %d (>= %d)" msgstr "%B: Trop de sections: %d (>= %d)" -#: elflink.c:9546 +#: elflink.c:9640 #, c-format msgid "%B: internal symbol `%s' in %B is referenced by DSO" msgstr "%B: symbole interne « %s » dans %B est référencé par DSO" -#: elflink.c:9549 +#: elflink.c:9643 #, c-format msgid "%B: hidden symbol `%s' in %B is referenced by DSO" msgstr "%B: symbole caché « %s » dans %B est référencé par DSO" -#: elflink.c:9552 +#: elflink.c:9646 #, c-format msgid "%B: local symbol `%s' in %B is referenced by DSO" msgstr "%B: symbole local « %s » dans %B est référencé par DSO" -#: elflink.c:9638 +#: elflink.c:9732 #, c-format msgid "%B: could not find output section %A for input section %A" msgstr "%B: ne peut repérer la section de sortie %A pour la section d'entrée %A" -#: elflink.c:9792 +#: elflink.c:9886 #, c-format msgid "%B: protected symbol `%s' isn't defined" msgstr "%B: symbole protégé « %s » n'est pas défini" -#: elflink.c:9795 +#: elflink.c:9889 #, c-format msgid "%B: internal symbol `%s' isn't defined" msgstr "%B: symbole interne « %s » n'est pas défini" -#: elflink.c:9798 +#: elflink.c:9892 #, c-format msgid "%B: hidden symbol `%s' isn't defined" msgstr "%B: symbole caché « %s » n'est pas défini" -#: elflink.c:9829 +#: elflink.c:9923 #, c-format msgid "%B: No symbol version section for versioned symbol `%s'" msgstr "%B: Pas de section de version de symbole pour le symbole avec version « %s »" -#: elflink.c:10436 +#: elflink.c:10533 #, c-format msgid "error: %B: size of section %A is not multiple of address size" msgstr "erreur: %B: le réadressage de la section %A n'est pas un multiple de la taille des adresses" -#: elflink.c:10481 +#: elflink.c:10578 #, c-format msgid "error: %B contains a reloc (%#Lx) for section %A that references a non-existent global symbol" msgstr "erreur: %B contient un réadressage (%#Lx) pour la section %A qui fait référence à un symbole global inexistant" -#: elflink.c:11236 +#: elflink.c:11333 #, c-format msgid "%A has both ordered [`%A' in %B] and unordered [`%A' in %B] sections" msgstr "%A a, à la fois, des sections ordonnées [« %A » dans %B] et désordonnées [« %A » dans %B]" -#: elflink.c:11242 +#: elflink.c:11339 #, c-format msgid "%A has both ordered and unordered sections" msgstr "%A a, à la fois, des sections ordonnées et désordonnées" -#: elflink.c:11344 +#: elflink.c:11441 msgid "%B: no symbol found for import library" msgstr "%B: aucun symbole trouvé dans la bibliothèque d'importation" -#: elflink.c:11966 +#: elflink.c:12063 #, c-format msgid "%B: file class %s incompatible with %s" msgstr "%B: classe de fichier %s incompatible avec %s" -#: elflink.c:12183 +#: elflink.c:12280 msgid "%B: failed to generate import library" msgstr "%B: échec de la génération de la bibliothèque d'importation" -#: elflink.c:12302 +#: elflink.c:12399 #, c-format msgid "warning: %s section has zero size" msgstr "attention: section %s a une taille nulle" -#: elflink.c:12350 +#: elflink.c:12447 #, c-format msgid "warning: section '%s' is being made into a note" msgstr "attention: section « %s » changé en une note" -#: elflink.c:12442 +#: elflink.c:12539 msgid "%P%X: read-only segment has dynamic relocations.\n" msgstr "%P%X: segment en lecture seule a des réadressages dynamiques.\n" -#: elflink.c:12445 +#: elflink.c:12542 msgid "%P: warning: creating a DT_TEXTREL in a shared object.\n" msgstr "%P: attention: création d'un DT_TEXTREL dans un objet partagé.\n" -#: elflink.c:12570 +#: elflink.c:12667 msgid "%P%X: can not read symbols: %E\n" msgstr "%P%X: ne peut pas lire les symboles: %E\n" -#: elflink.c:12732 +#: elflink.c:12829 msgid "%F%P: corrupt input: %B\n" msgstr "%F%P: entrée corrompue: %B\n" -#: elflink.c:13421 +#: elflink.c:13495 #, c-format msgid "%B: %A+%#Lx: No symbol found for INHERIT" msgstr "%B: %A+%#Lx: Pas de symbole trouvé pour INHERIT" -#: elflink.c:13597 +#: elflink.c:13671 #, c-format msgid "Unrecognized INPUT_SECTION_FLAG %s\n" msgstr "INPUT_SECTION_FLAG %s non reconnu\n" @@ -4951,292 +4957,296 @@ msgid "static procedure (no name)" msgstr "procédure statique (sans name)" -#: elfxx-mips.c:5627 +#: elfxx-mips.c:5628 msgid "MIPS16 and microMIPS functions cannot call each other" msgstr "Des fonctions MIPS16 et microMIPS ne peuvent pas s'appeler l'une l'autre" -#: elfxx-mips.c:6370 +#: elfxx-mips.c:6376 msgid "%X%H: Unsupported JALX to the same ISA mode\n" msgstr "%X%H: JALX vers le même mode ISA n'est pas supporté\n" -#: elfxx-mips.c:6403 +#: elfxx-mips.c:6409 msgid "%X%H: Unsupported jump between ISA modes; consider recompiling with interlinking enabled\n" msgstr "%X%H: Saut non supporté entre modes ISA ; envisagez de recompiler avec l'interliage activé.\n" -#: elfxx-mips.c:6444 +#: elfxx-mips.c:6454 msgid "%X%H: Cannot convert branch between ISA modes to JALX: relocation out of range\n" msgstr "%X%H: Impossible de convertir les branchements vers JALX entre modes ISA: réadressage hors portée\n" -#: elfxx-mips.c:6456 +#: elfxx-mips.c:6466 msgid "%X%H: Unsupported branch between ISA modes\n" msgstr "%X%H: Branchement entre modes ISA non supporté\n" -#: elfxx-mips.c:7134 elfxx-mips.c:7369 +#: elfxx-mips.c:7144 elfxx-mips.c:7379 #, c-format msgid "%B: Warning: bad `%s' option size %u smaller than its header" msgstr "%B: Attention: mauvaise « %s » taille d'option %u plus petite que son en-tête" -#: elfxx-mips.c:8125 elfxx-mips.c:8251 +#: elfxx-mips.c:8135 elfxx-mips.c:8261 #, c-format msgid "%B: Warning: cannot determine the target function for stub section `%s'" msgstr "%B: Attention: ne peut pas déterminer la fonction cible de la section d'ébauche « %s »" -#: elfxx-mips.c:8383 +#: elfxx-mips.c:8393 #, c-format msgid "%B: Malformed reloc detected for section %s" msgstr "%B: Réadressage mal composé détecté dans la section %s" -#: elfxx-mips.c:8459 +#: elfxx-mips.c:8465 #, c-format -msgid "%B: GOT reloc at 0x%lx not expected in executables" -msgstr "%B: Réadressage GOT à 0x%lx pas attendu dans les exécutables" +msgid "%B: GOT reloc at %#Lx not expected in executables" +msgstr "%B: Réadressage GOT à %#Lx pas attendu dans les exécutables" -#: elfxx-mips.c:8597 +#: elfxx-mips.c:8603 #, c-format -msgid "%B: CALL16 reloc at 0x%lx not against global symbol" -msgstr "%B: appel CALL16 de réadressage à 0x%lx qui n'est pas pour un symbole global" +msgid "%B: CALL16 reloc at %#Lx not against global symbol" +msgstr "%B: Le réadressage CALL16 à %#Lx n'est pas sur un symbole global" -#: elfxx-mips.c:9219 +#: elfxx-mips.c:9226 #, c-format msgid "non-dynamic relocations refer to dynamic symbol %s" msgstr "réadressages non dynamiques font référence au symbole dynamique %s" -#: elfxx-mips.c:10139 +#: elfxx-mips.c:10146 #, c-format -msgid "%B: Can't find matching LO16 reloc against `%s' for %s at 0x%lx in section `%A'" -msgstr "%B: Ne trouve pas de réadressage LO16 correspondant vers « %s » pour %s à 0x%lx de la section « %A »" +msgid "%B: Can't find matching LO16 reloc against `%s' for %s at %#Lx in section `%A'" +msgstr "%B: Ne trouve pas de réadressage LO16 correspondant sur « %s » pour %s à %#Lx de la section « %A »" -#: elfxx-mips.c:10279 +#: elfxx-mips.c:10286 msgid "small-data section exceeds 64KB; lower small-data size limit (see option -G)" msgstr "la taille des petites données de la section dépasse 64KB; abaissez la limite de taille des petites données (voyez l'option -G)" -#: elfxx-mips.c:10298 +#: elfxx-mips.c:10305 msgid "Cannot convert a jump to JALX for a non-word-aligned address" msgstr "Impossible de convertir un saut vers JALX pour une adresse non alignée sur un mot" -#: elfxx-mips.c:10301 +#: elfxx-mips.c:10308 msgid "Jump to a non-word-aligned address" msgstr "Saut vers une adresse non alignée sur un mot" -#: elfxx-mips.c:10302 +#: elfxx-mips.c:10309 msgid "Jump to a non-instruction-aligned address" msgstr "Saut vers une adresse non alignée sur une instruction" -#: elfxx-mips.c:10305 +#: elfxx-mips.c:10312 msgid "Cannot convert a branch to JALX for a non-word-aligned address" msgstr "Impossible de convertir un branchement vers JALX pour une adresse non alignée sur un mot" -#: elfxx-mips.c:10307 +#: elfxx-mips.c:10314 msgid "Branch to a non-instruction-aligned address" msgstr "Branchement vers une adresse non alignée sur une instruction" -#: elfxx-mips.c:10309 +#: elfxx-mips.c:10316 msgid "PC-relative load from unaligned address" msgstr "Chargement relatif au PC depuis une adresse non alignée" -#: elfxx-mips.c:10683 elfxx-mips.c:11251 +#: elfxx-mips.c:10690 elfxx-mips.c:11258 #, c-format -msgid "%B: `%A' offset of %ld from `%A' beyond the range of ADDIUPC" -msgstr "%B: « %A » offset de %ld depuis « %A » au delà de la limite de ADDIUPC" +msgid "%B: `%A' offset of %Ld from `%A' beyond the range of ADDIUPC" +msgstr "%B: « %A » offset de %Ld depuis « %A » au delà de la limite de ADDIUPC" -#: elfxx-mips.c:14174 +#: elfxx-mips.c:14121 #, c-format msgid "%B: Unknown architecture %s" msgstr "%B: Architecture %s inconnue" -#: elfxx-mips.c:14704 +#: elfxx-mips.c:14380 +msgid "%B: .reginfo section size should be %d bytes, actual size is %d" +msgstr "%B: la taille de la section .reginfo devrait être %d octets, la taille actuelle est %d" + +#: elfxx-mips.c:14659 #, c-format msgid "%B: illegal section name `%A'" msgstr "%B: nom illégal de section « %A »" -#: elfxx-mips.c:14981 +#: elfxx-mips.c:14936 msgid "%B: warning: linking abicalls files with non-abicalls files" msgstr "%B: attention: édition de liens des fichiers abicalls avec des fichiers non abicalls" -#: elfxx-mips.c:14998 +#: elfxx-mips.c:14953 msgid "%B: linking 32-bit code with 64-bit code" msgstr "%B: édition de liens de code 32 bits avec du code 64 bits" -#: elfxx-mips.c:15030 elfxx-mips.c:15096 elfxx-mips.c:15111 +#: elfxx-mips.c:14985 elfxx-mips.c:15051 elfxx-mips.c:15066 #, c-format msgid "%B: linking %s module with previous %s modules" msgstr "%B: édition de liens du module %s avec les modules précédents %s" -#: elfxx-mips.c:15054 +#: elfxx-mips.c:15009 #, c-format msgid "%B: ABI mismatch: linking %s module with previous %s modules" msgstr "%B: ABI ne concorde pas: édition de lien du module %s avec les modules précédents %s" -#: elfxx-mips.c:15079 +#: elfxx-mips.c:15034 #, c-format msgid "%B: ASE mismatch: linking %s module with previous %s modules" msgstr "%B: ASE ne concorde pas: édition de lien du module %s avec les modules précédents %s" -#: elfxx-mips.c:15214 +#: elfxx-mips.c:15168 msgid "Warning: %B uses unknown floating point ABI %d (set by %B), %B uses unknown floating point ABI %d" msgstr "Attention: %B utilise l'ABI virgule flottante inconnue %d (définie par %B), %B utilise l'ABI virgule flottante inconnue %d" -#: elfxx-mips.c:15220 +#: elfxx-mips.c:15174 #, c-format msgid "Warning: %B uses unknown floating point ABI %d (set by %B), %B uses %s" msgstr "Attention: %B utilise l'ABI virgule flottante inconnue %d (définie par %B), %B utilise %s" -#: elfxx-mips.c:15226 +#: elfxx-mips.c:15180 #, c-format msgid "Warning: %B uses %s (set by %B), %B uses unknown floating point ABI %d" msgstr "Attention: %B utilise %s (défini par %B), %B utilise l'ABI virgule flottante inconnue %d" -#: elfxx-mips.c:15240 +#: elfxx-mips.c:15194 #, c-format msgid "Warning: %B uses %s (set by %B), %B uses %s" msgstr "Attention: %B utilise %s (défini par %B), %B utilise « %s »" -#: elfxx-mips.c:15259 +#: elfxx-mips.c:15213 #, c-format msgid "Warning: %B uses %s (set by %B), %B uses unknown MSA ABI %d" msgstr "Attention: %B utilise %s (défini par %B), %B utilise l'ABI MSA inconnue %d" -#: elfxx-mips.c:15271 +#: elfxx-mips.c:15225 #, c-format msgid "Warning: %B uses unknown MSA ABI %d (set by %B), %B uses %s" msgstr "Attention: %B utilise l'ABI MSA inconnue %d (définie par %B), %B utilise %s" -#: elfxx-mips.c:15280 +#: elfxx-mips.c:15234 #, c-format msgid "Warning: %B uses unknown MSA ABI %d (set by %B), %B uses unknown MSA ABI %d" msgstr "Attention: %B utilise l'ABI MSA inconnue %d (définie par %B), %B utilise l'ABI MSA inconnue %d" -#: elfxx-mips.c:15342 +#: elfxx-mips.c:15296 msgid "%B: endianness incompatible with that of the selected emulation" msgstr "%B: système de poids fort ou faible incompatible avec celui sélectionné pour l'émulation" -#: elfxx-mips.c:15356 +#: elfxx-mips.c:15310 msgid "%B: ABI is incompatible with that of the selected emulation" msgstr "%B: ABI est incompatible avec celui sélectionné pour l'émulation" -#: elfxx-mips.c:15408 +#: elfxx-mips.c:15362 msgid "%B: warning: Inconsistent ISA between e_flags and .MIPS.abiflags" msgstr "%B: attention: ISA incohérentes entre e_flags et .MIPS.abiflags" -#: elfxx-mips.c:15413 +#: elfxx-mips.c:15367 msgid "%B: warning: Inconsistent FP ABI between .gnu.attributes and .MIPS.abiflags" msgstr "%B: attention: ABI FP incohérentes entre .gnu.attributes and .MIPS.abiflags" -#: elfxx-mips.c:15417 +#: elfxx-mips.c:15371 msgid "%B: warning: Inconsistent ASEs between e_flags and .MIPS.abiflags" msgstr "%B: attention: ASE incohérents entre e_flags et .MIPS.abiflags" -#: elfxx-mips.c:15424 +#: elfxx-mips.c:15378 msgid "%B: warning: Inconsistent ISA extensions between e_flags and .MIPS.abiflags" msgstr "%B: attention: Extensions ISA incohérentes entre e_flags et .MIPS.abiflags" -#: elfxx-mips.c:15428 +#: elfxx-mips.c:15382 msgid "%B: warning: Unexpected flag in the flags2 field of .MIPS.abiflags (0x%lx)" msgstr "%B: attention: Fanion inattendu dans le champ flags2 de .MIPS.abiflags (0x%lx)" -#: elfxx-mips.c:15617 +#: elfxx-mips.c:15571 msgid "-mips32r2 -mfp64 (12 callee-saved)" msgstr "-mips32r2 -mfp64 (12 callee-saved)" -#: elfxx-mips.c:15667 elfxx-mips.c:15678 +#: elfxx-mips.c:15621 elfxx-mips.c:15632 msgid "None" msgstr "aucun" -#: elfxx-mips.c:15669 elfxx-mips.c:15741 +#: elfxx-mips.c:15623 elfxx-mips.c:15695 msgid "Unknown" msgstr "Inconnu" -#: elfxx-mips.c:15752 +#: elfxx-mips.c:15706 #, c-format msgid "Hard or soft float\n" msgstr "Flottant matériel ou logiciel\n" -#: elfxx-mips.c:15755 +#: elfxx-mips.c:15709 #, c-format msgid "Hard float (double precision)\n" msgstr "Flottant matériel (double précision)\n" -#: elfxx-mips.c:15758 +#: elfxx-mips.c:15712 #, c-format msgid "Hard float (single precision)\n" msgstr "Flottant matériel (simple précision)\n" -#: elfxx-mips.c:15761 +#: elfxx-mips.c:15715 #, c-format msgid "Soft float\n" msgstr "Flottant logiciel\n" -#: elfxx-mips.c:15764 +#: elfxx-mips.c:15718 #, c-format msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n" msgstr "Flottant matériel (MIPS32r2 64 bits FPU 12 callee-saved)\n" -#: elfxx-mips.c:15767 +#: elfxx-mips.c:15721 #, c-format msgid "Hard float (32-bit CPU, Any FPU)\n" msgstr "Flottant matériel (processeur 32 bits, tout coprocesseur)\n" -#: elfxx-mips.c:15770 +#: elfxx-mips.c:15724 #, c-format msgid "Hard float (32-bit CPU, 64-bit FPU)\n" msgstr "Flottant matériel (processeur 32 bits, coprocesseur 64 bits)\n" -#: elfxx-mips.c:15773 +#: elfxx-mips.c:15727 #, c-format msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n" msgstr "Compatibilité flottant matériel (processeur 32 bits, coprocesseur 64 bits)\n" -#: elfxx-mips.c:15805 +#: elfxx-mips.c:15759 #, c-format msgid " [abi=O32]" msgstr " [abi=O32]" -#: elfxx-mips.c:15807 +#: elfxx-mips.c:15761 #, c-format msgid " [abi=O64]" msgstr " [abi=O64]" -#: elfxx-mips.c:15809 +#: elfxx-mips.c:15763 #, c-format msgid " [abi=EABI32]" msgstr " [abi=EABI32]" -#: elfxx-mips.c:15811 +#: elfxx-mips.c:15765 #, c-format msgid " [abi=EABI64]" msgstr " [abi=EABI64]" -#: elfxx-mips.c:15813 +#: elfxx-mips.c:15767 #, c-format msgid " [abi unknown]" msgstr " [abi inconnu]" -#: elfxx-mips.c:15815 +#: elfxx-mips.c:15769 #, c-format msgid " [abi=N32]" msgstr " [abi=N32]" -#: elfxx-mips.c:15817 +#: elfxx-mips.c:15771 #, c-format msgid " [abi=64]" msgstr " [abi=64]" -#: elfxx-mips.c:15819 +#: elfxx-mips.c:15773 #, c-format msgid " [no abi set]" msgstr " [aucun jeu abi]" -#: elfxx-mips.c:15844 +#: elfxx-mips.c:15798 #, c-format msgid " [unknown ISA]" msgstr " [ISA inconnu]" -#: elfxx-mips.c:15864 +#: elfxx-mips.c:15818 #, c-format msgid " [not 32bitmode]" msgstr " [aucun mode 32 bits]" -#: elfxx-riscv.c:948 +#: elfxx-riscv.c:955 #, c-format msgid "unrecognized relocation (0x%x)" msgstr "Réadressage non reconnu (0x%x)" @@ -5246,17 +5256,87 @@ msgid "invalid relocation type %d" msgstr "type de réadressage %d invalide" -#: elfxx-sparc.c:3301 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:5002 +#: elfxx-sparc.c:3129 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:5024 #, c-format msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s" msgstr "%B: le réadressage %s sur le symbole STT_GNU_IFUNC « %s » n'est pas géré par %s" -#: elfxx-tilegx.c:4436 +#: elfxx-tilegx.c:4241 #, c-format msgid "%B: Cannot link together %s and %s objects." msgstr "%B: Ne peut lier ensemble les objets %s et %s." +#: elfxx-x86.c:570 +#, c-format +msgid "%P: %B: warning: relocation against `%s' in read-only section `%A'\n" +msgstr "%P: %B: attention: réadressage sur « %s » dans la section en lecture seule « %A »\n" + +#: elfxx-x86.c:954 +msgid "%P: %B: warning: relocation in read-only section `%A'\n" +msgstr "%P: %B: attention: réadressage dans la section « %A » en lecture seule\n" + +#: elfxx-x86.c:1287 +msgid "%P%X: read-only segment has dynamic IFUNC relocations; recompile with -fPIC\n" +msgstr "%P%X: le segment en lecture seule a des réadressages IFUNC dynamiques; recompilez avec -fPIC\n" + +#: elfxx-x86.c:2241 +msgid "error: %B: " +msgstr "erreur: %B: " + +#: elfxx-x86.c:2243 +msgid "error: %B: " +msgstr "erreur: %B: " + +#: elfxx-x86.c:2244 +msgid "error: %B: " +msgstr "erreur: %B: " + +#: elfxx-x86.c:2416 +msgid "%F%P: failed to create GNU property section\n" +msgstr "%F%P: échec lors de la création de la section des propriétés GNU\n" + +#: elfxx-x86.c:2421 +#, c-format +msgid "%F%A: failed to align section\n" +msgstr "%F%A: échec lors de l'alignement de la section\n" + +#: elfxx-x86.c:2571 +msgid "%F%P: failed to create VxWorks dynamic sections\n" +msgstr "%F%P: échec lors de la création des sections dynamiques VxWorks\n" + +#: elfxx-x86.c:2580 +msgid "%F%P: failed to create GOT sections\n" +msgstr "%F%P: échec lors de la création des sections GOT\n" + +#: elfxx-x86.c:2598 +msgid "%F%P: failed to create ifunc sections\n" +msgstr "%F%P: échec lors de la création des sections ifunc\n" + +#: elfxx-x86.c:2639 +msgid "%F%P: failed to create GOT PLT section\n" +msgstr "%F%P: échec lors de la création de la section PLT GOT\n" + +#: elfxx-x86.c:2660 +msgid "%F%P: failed to create IBT-enabled PLT section\n" +msgstr "%F%P: échec lors de la création de la section PLT activée pour IBT\n" + +#: elfxx-x86.c:2675 +msgid "%F%P: failed to create BND PLT section\n" +msgstr "%F%P: échec lors de la création de la section PLT BND\n" + +#: elfxx-x86.c:2696 +msgid "%F%P: failed to create PLT .eh_frame section\n" +msgstr "%F%P: échec lors de la création de la section .eh_frame PLT\n" + +#: elfxx-x86.c:2709 +msgid "%F%P: failed to create GOT PLT .eh_frame section\n" +msgstr "%F%P: échec lors de la création de la section .eh_frame PLT GOT\n" + +#: elfxx-x86.c:2723 +msgid "%F%P: failed to create the second PLT .eh_frame section\n" +msgstr "%F%P: échec lors de la création de la section .eh_frame PLT\n" + #: i386linux.c:416 m68klinux.c:419 sparclinux.c:412 #, c-format msgid "Output file requires shared library `%s'\n" @@ -5279,8 +5359,8 @@ #: ieee.c:159 #, c-format -msgid "%B: string too long (%d chars, max 65535)" -msgstr "%B: chaîne trop longue (%d caractères, max 65535)" +msgid "%B: string too long (%ld chars, max 65535)" +msgstr "%B: chaîne trop longue (%ld caractères, max 65535)" #: ieee.c:226 #, c-format @@ -5299,8 +5379,8 @@ #: ieee.c:862 #, c-format -msgid "%B: unexpected ATN type %d in external part" -msgstr "%B: type ATN %d inattendu dans la partie externe" +msgid "%B: unexpected ATN type %Ld in external part" +msgstr "%B: type ATN %Ld inattendu dans la partie externe" #: ieee.c:884 msgid "%B: unexpected type after ATN" @@ -5349,10 +5429,10 @@ msgid "%B: bad section length in ihex_read_section" msgstr "%B: longuer erronée de section dans ihex_read_section" -#: ihex.c:833 +#: ihex.c:830 #, c-format -msgid "%B: address 0x%s out of range for Intel Hex file" -msgstr "%B: adresse 0x%s hors limite pour le fichier Intel hexadécimal" +msgid "%B: address %#Lx out of range for Intel Hex file" +msgstr "%B: adresse %#Lx hors limite pour le fichier Intel hexadécimal" #: libbfd.c:799 #, c-format @@ -5369,43 +5449,43 @@ msgid "Deprecated %s called\n" msgstr "%s appel déprécié\n" -#: linker.c:1669 +#: linker.c:1678 #, c-format msgid "%B: indirect symbol `%s' to `%s' is a loop" msgstr "%B: symbole indirect « %s » vers « %s » est une boucle" -#: linker.c:2539 +#: linker.c:2548 #, c-format msgid "Attempt to do relocatable link with %s input and %s output" msgstr "Tentative de réadressage d'un lien avec %s à l'entrée et %s à la sortie" -#: linker.c:2825 +#: linker.c:2834 #, c-format msgid "%B: ignoring duplicate section `%A'\n" msgstr "%B: ignore les sections dupliquées « %A »\n" -#: linker.c:2835 linker.c:2845 +#: linker.c:2844 linker.c:2854 #, c-format msgid "%B: duplicate section `%A' has different size\n" msgstr "%B: section dupliquée « %A » avec des tailles différentes\n" -#: linker.c:2854 linker.c:2860 +#: linker.c:2863 linker.c:2869 #, c-format msgid "%B: could not read contents of section `%A'\n" msgstr "%B: ne peut pas lire le contenu de la section « %A »\n" -#: linker.c:2865 +#: linker.c:2874 #, c-format msgid "%B: duplicate section `%A' has different contents\n" msgstr "%B: section dupliquée « %A » a des contenus différents\n" -#: linker.c:3353 +#: linker.c:3362 msgid "%B: compiled for a big endian system and target is little endian" msgstr "" "%B: compilé pour un système à octets de poids fort alors que la cible\n" "est un système à octets de poids faible" -#: linker.c:3356 +#: linker.c:3365 msgid "%B: compiled for a little endian system and target is big endian" msgstr "" "%B: compilé pour un système à octets de poids faible alors que la cible\n" @@ -5426,43 +5506,43 @@ #: mach-o.c:2531 #, c-format -msgid "unable to allocate data for load command 0x%lx" -msgstr "impossible d'allouer les données pour la commande de chargement 0x%lx" +msgid "unable to allocate data for load command %#x" +msgstr "impossible d'allouer les données pour la commande de chargement %#x" #: mach-o.c:2636 #, c-format -msgid "unable to write unknown load command 0x%lx" -msgstr "impossible d'écrire la commande de chargement inconnue 0x%lx" +msgid "unable to write unknown load command %#x" +msgstr "impossible d'écrire la commande de chargement inconnue %#x" #: mach-o.c:2820 #, c-format -msgid "section address (%lx) below start of segment (%lx)" -msgstr "adresse de section (%lx) en deçà du début du segment (%lx)" +msgid "section address (%#Lx) below start of segment (%#Lx)" +msgstr "adresse de section (%#Lx) en deçà du début du segment (%#Lx)" #: mach-o.c:2961 #, c-format -msgid "unable to layout unknown load command 0x%lx" -msgstr "impossible de disposer la commande de chargement inconnue 0x%lx" +msgid "unable to layout unknown load command %#x" +msgstr "impossible de disposer la commande de chargement inconnue %#x" #: mach-o.c:3497 #, c-format -msgid "bfd_mach_o_read_section_32: overlarge alignment value: 0x%x, using 32 instead" -msgstr "bfd_mach_o_read_section_32: valeur d'alignement démesurée: 0x%x, utilise 32 à la place" +msgid "bfd_mach_o_read_section_32: overlarge alignment value: %#lx, using 32 instead" +msgstr "bfd_mach_o_read_section_32: valeur d'alignement démesurée: %#lx, utilise 32 à la place" #: mach-o.c:3540 #, c-format -msgid "bfd_mach_o_read_section_64: overlarge alignment value: 0x%x, using 32 instead" -msgstr "bfd_mach_o_read_section_64: valeur d'alignement démesurée: 0x%x, utilise 32 à la place" +msgid "bfd_mach_o_read_section_64: overlarge alignment value: %#lx, using 32 instead" +msgstr "bfd_mach_o_read_section_64: valeur d'alignement démesurée: %#lx, utilise 32 à la place" #: mach-o.c:3591 #, c-format -msgid "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %lu" -msgstr "bfd_mach_o_read_symtab_symbol: impossible de lire %d octets à %lu" +msgid "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %u" +msgstr "bfd_mach_o_read_symtab_symbol: impossible de lire %d octets à %u" #: mach-o.c:3610 #, c-format -msgid "bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %lu)" -msgstr "bfd_mach_o_read_symtab_symbol: nom hors limites (%lu >= %lu)" +msgid "bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %u)" +msgstr "bfd_mach_o_read_symtab_symbol: nom hors limites (%lu >= %u)" #: mach-o.c:3693 #, c-format @@ -5474,28 +5554,28 @@ msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid type field 0x%x: setting to undefined" msgstr "bfd_mach_o_read_symtab_symbol: symbole « %s » spécifie le champ de type 0x%x invalide: laissé non défini" -#: mach-o.c:3786 +#: mach-o.c:3789 msgid "bfd_mach_o_read_symtab_symbols: unable to allocate memory for symbols" msgstr "bfd_mach_o_read_symtab_symbols: impossible d'allouer la mémoire pour les symboles" -#: mach-o.c:4759 -msgid "%B: unknown load command 0x%lx" -msgstr "%B: commande de chargement inconnue 0x%lx" +#: mach-o.c:4762 +msgid "%B: unknown load command %#x" +msgstr "%B: commande de chargement inconnue %#x" -#: mach-o.c:4950 +#: mach-o.c:4953 #, c-format msgid "bfd_mach_o_scan: unknown architecture 0x%lx/0x%lx" msgstr "bfd_mach_o_scan: architecture 0x%lx/0x%lx inconnue" -#: mach-o.c:5055 +#: mach-o.c:5058 #, c-format -msgid "unknown header byte-order value 0x%lx" -msgstr "valeur d'ordre des octets de l'en-tête 0x%lx est inconnue" +msgid "unknown header byte-order value %#x" +msgstr "la valeur d'ordre des octets de l'en-tête %#x est inconnue" -#: merge.c:864 +#: merge.c:868 #, c-format -msgid "%B: access beyond end of merged section (%ld)" -msgstr "%B: accès au-delà de la fin de la section fusionnée (%ld)" +msgid "%B: access beyond end of merged section (%Ld)" +msgstr "%B: accès au-delà de la fin de la section fusionnée (%Ld)" #: mmo.c:468 #, c-format @@ -5509,8 +5589,8 @@ #: mmo.c:958 #, c-format -msgid "%B: attempt to emit contents at non-multiple-of-4 address 0x%lx\n" -msgstr "%B: tentative d'émettre du contenu à une adresse 0x%lx qui n'est pas un multiple de 4\n" +msgid "%B: attempt to emit contents at non-multiple-of-4 address %#Lx" +msgstr "%B: tentative d'émettre du contenu à une adresse %#Lx qui n'est pas un multiple de 4" #: mmo.c:1255 msgid "%B: invalid mmo file: initialization value for $255 is not `Main'\n" @@ -5617,13 +5697,13 @@ #: mmo.c:3242 #, c-format -msgid "%B: too many initialized registers; section length %ld\n" -msgstr "%B: trop de registres initialisés; longueur de section %ld\n" +msgid "%B: too many initialized registers; section length %Ld" +msgstr "%B: trop de registres initialisés; longueur de section %Ld" #: mmo.c:3247 #, c-format -msgid "%B: invalid start address for initialized registers of length %ld: 0x%lx%08lx\n" -msgstr "%B: adresse de départ invalide pour des registres initialisés de longueur %ld: 0x%lx%08lx\n" +msgid "%B: invalid start address for initialized registers of length %Ld: %#Lx" +msgstr "%B: adresse de départ invalide pour des registres initialisés de longueur %Ld: %#Lx" #: oasys.c:881 #, c-format @@ -5754,7 +5834,7 @@ msgid "%B: string not null terminated in ILF object file." msgstr "%B: chaîne n'est pas terminée par un zéro dans le fichier objet ILF." -#: peicode.h:1333 +#: peicode.h:1335 msgid "%B: Error: Debug Data ends beyond end of debug directory." msgstr "%B: Erreur: Les données de débogage s'arrêtent après la fin du répertoire de débogage." @@ -5811,25 +5891,36 @@ msgid "Partition[%d] length = 0x%.8lx (%ld)\n" msgstr "Longueur de la partition[%d] = 0x%.8lx (%ld)\n" -#: reloc.c:8064 +#: reloc.c:8106 msgid "INPUT_SECTION_FLAGS are not supported.\n" msgstr "INPUT_SECTION_FLAGS pas supportés.\n" -#: reloc.c:8165 +#: reloc.c:8207 #, c-format msgid "%X%P: %B(%A): error: relocation for offset %V has no value\n" msgstr "%X%P: %B(%A): erreur: le réadressage pour le décalage %V n'a pas de valeur\n" -#: reloc.c:8241 +#: reloc.c:8283 #, c-format msgid "%X%P: %B(%A): relocation \"%R\" is not supported\n" msgstr "%X%P: %B(%A): le réadressage « %R » n'est pas supporté\n" -#: reloc.c:8250 +#: reloc.c:8292 #, c-format msgid "%X%P: %B(%A): relocation \"%R\" returns an unrecognized value %x\n" msgstr "%X%P: %B(%A): le réadressage « %R » retourne une valeur %x non reconnue\n" +#: reloc.c:8354 +#, c-format +msgid "%B: unrecognized relocation (%#x) in section `%A'" +msgstr "%B: réadressage inconnu (%#x) dans la section « %A »" + +#. PR 21803: Suggest the most likely cause of this error. +#: reloc.c:8358 +#, c-format +msgid "Is this version of the linker - %s - out of date ?" +msgstr "La version de l'éditeur de liens – %s – est-elle dépassée ?" + #: rs6000-core.c:471 msgid "%B: warning core file truncated" msgstr "%B: fichier core d'avertissement tronqué" @@ -5864,67 +5955,76 @@ #: stabs.c:279 #, c-format -msgid "%B(%A+0x%lx): Stabs entry has invalid string index." -msgstr "%B(%A+0x%lx): Entrée des ébauches a un indexe de chaîne invalide" +msgid "%B(%A+%#lx): Stabs entry has invalid string index." +msgstr "%B(%A+%#lx): Entrée des ébauches a un indexe de chaîne invalide" #: syms.c:1079 msgid "Unsupported .stab relocation" msgstr "Réadressage du .stab non supporté" -#: vms-alpha.c:652 +#: vms-alpha.c:479 +msgid "Corrupt EIHD record - size is too small" +msgstr "Enregistrement EIHD corrompu – la taille est trop petite" + +#: vms-alpha.c:660 #, c-format msgid "Unable to read EIHS record at offset %#x" msgstr "Impossible de lire l'enregistrement EIHS à l'offset %#x" -#: vms-alpha.c:1164 +#: vms-alpha.c:1172 #, c-format msgid "Corrupt EGSD record: its size (%#x) is too small" msgstr "Enregistrement EGSD corrompu: sa taille (%#x) est trop petite" -#: vms-alpha.c:1188 +#: vms-alpha.c:1196 #, c-format msgid "Corrupt EGSD record: size (%#x) is larger than remaining space (%#x)" msgstr "Enregistrement EGSD corrompu: la taille (%#x) est plus grande que l'espace restant (%#x)" -#: vms-alpha.c:1196 +#: vms-alpha.c:1204 #, c-format msgid "Corrupt EGSD record: size (%#x) is too small" msgstr "Enregistrement EGSD corrompu: la taille (%#x) est trop petite" -#: vms-alpha.c:1380 +#: vms-alpha.c:1333 vms-alpha.c:1349 vms-alpha.c:1389 +#, c-format +msgid "Corrupt EGSD record: its psindx field is too big (%#lx)" +msgstr "Enregistrement EGSD corrompu: son champ psindx est trop grand (%#lx)" + +#: vms-alpha.c:1418 #, c-format msgid "Unknown EGSD subtype %d" msgstr "Sous type EGSD %d inconnu" -#: vms-alpha.c:1413 +#: vms-alpha.c:1451 #, c-format msgid "Stack overflow (%d) in _bfd_vms_push" msgstr "Débordement de la pile (%d) dans _bfd_vms_push" -#: vms-alpha.c:1426 +#: vms-alpha.c:1464 msgid "Stack underflow in _bfd_vms_pop" msgstr "Sous dépilage de la pile dans _bfd_vms_pop" #. These names have not yet been added to this switch statement. -#: vms-alpha.c:1665 +#: vms-alpha.c:1706 #, c-format msgid "unknown ETIR command %d" msgstr "commande ETIR %d inconnue" -#: vms-alpha.c:1696 +#: vms-alpha.c:1737 msgid "Corrupt vms value" msgstr "Valeur vms corrompue" -#: vms-alpha.c:1824 +#: vms-alpha.c:1865 msgid "Corrupt ETIR record encountered" msgstr "Enregistrement ETIR corrompu rencontré" -#: vms-alpha.c:1881 +#: vms-alpha.c:1922 #, c-format msgid "bad section index in %s" msgstr "index de section erronée dans %s" -#: vms-alpha.c:1894 +#: vms-alpha.c:1935 #, c-format msgid "unsupported STA cmd %s" msgstr "commande STA %s non supportée" @@ -5934,1463 +6034,1497 @@ #. Rotate. #. Redefine symbol to current location. #. Define a literal. -#: vms-alpha.c:2074 vms-alpha.c:2105 vms-alpha.c:2196 vms-alpha.c:2354 +#: vms-alpha.c:2115 vms-alpha.c:2146 vms-alpha.c:2237 vms-alpha.c:2395 #, c-format msgid "%s: not supported" msgstr "%s: pas supporté" -#: vms-alpha.c:2080 +#: vms-alpha.c:2121 #, c-format msgid "%s: not implemented" msgstr "%s: non implémenté" -#: vms-alpha.c:2338 +#: vms-alpha.c:2379 #, c-format msgid "invalid use of %s with contexts" msgstr "utilisation incorrecte de %s avec des contextes" -#: vms-alpha.c:2372 +#: vms-alpha.c:2413 #, c-format msgid "reserved cmd %d" msgstr "commande %d réservée" -#: vms-alpha.c:2457 +#: vms-alpha.c:2497 +msgid "Corrupt EEOM record - size is too small" +msgstr "Enregistrement EEOM corrompu – taille trop petite" + +#: vms-alpha.c:2506 msgid "Object module NOT error-free !\n" msgstr "Module objet N'EST PAS sans erreur !\n" -#: vms-alpha.c:3778 +#: vms-alpha.c:3830 #, c-format msgid "SEC_RELOC with no relocs in section %A" msgstr "SEC_RELOC sans réadressages dans la section %A" -#: vms-alpha.c:3830 vms-alpha.c:4043 +#: vms-alpha.c:3882 vms-alpha.c:4095 #, c-format msgid "Size error in section %A" msgstr "Erreur de taille dans la section %A" -#: vms-alpha.c:3989 +#: vms-alpha.c:4041 msgid "Spurious ALPHA_R_BSR reloc" msgstr "Réadressages ALPHA_R_BSR parasite" -#: vms-alpha.c:4030 +#: vms-alpha.c:4082 #, c-format msgid "Unhandled relocation %s" msgstr "Réadressage %s non traité" -#: vms-alpha.c:4323 +#: vms-alpha.c:4375 #, c-format msgid "unknown source command %d" msgstr "commande source %d inconnue" -#: vms-alpha.c:4384 +#: vms-alpha.c:4436 msgid "DST__K_SET_LINUM_INCR not implemented" msgstr "DST__K_SET_LINUM_INCR pas implémenté" -#: vms-alpha.c:4390 +#: vms-alpha.c:4442 msgid "DST__K_SET_LINUM_INCR_W not implemented" msgstr "DST__K_SET_LINUM_INCR_W pas implémenté" -#: vms-alpha.c:4396 +#: vms-alpha.c:4448 msgid "DST__K_RESET_LINUM_INCR not implemented" msgstr "DST__K_RESET_LINUM_INCR pas implémenté" -#: vms-alpha.c:4402 +#: vms-alpha.c:4454 msgid "DST__K_BEG_STMT_MODE not implemented" msgstr "DST__K_BEG_STMT_MODE pas implémenté" -#: vms-alpha.c:4408 +#: vms-alpha.c:4460 msgid "DST__K_END_STMT_MODE not implemented" msgstr "DST__K_END_STMT_MODE pas implémenté" -#: vms-alpha.c:4435 +#: vms-alpha.c:4487 msgid "DST__K_SET_PC not implemented" msgstr "DST__K_SET_PC pas implémenté" -#: vms-alpha.c:4441 +#: vms-alpha.c:4493 msgid "DST__K_SET_PC_W not implemented" msgstr "DST__K_SET_PC_W pas implémenté" -#: vms-alpha.c:4447 +#: vms-alpha.c:4499 msgid "DST__K_SET_PC_L not implemented" msgstr "DST__K_SET_PC_L pas implémenté" -#: vms-alpha.c:4453 +#: vms-alpha.c:4505 msgid "DST__K_SET_STMTNUM not implemented" msgstr "DST__K_SET_STMTNUM pas implémenté" -#: vms-alpha.c:4496 +#: vms-alpha.c:4548 #, c-format msgid "unknown line command %d" msgstr "commande de ligne %d inconnue" -#: vms-alpha.c:4956 vms-alpha.c:4974 vms-alpha.c:4989 vms-alpha.c:5005 -#: vms-alpha.c:5018 vms-alpha.c:5030 vms-alpha.c:5043 +#: vms-alpha.c:5008 vms-alpha.c:5026 vms-alpha.c:5041 vms-alpha.c:5057 +#: vms-alpha.c:5070 vms-alpha.c:5082 vms-alpha.c:5095 #, c-format msgid "Unknown reloc %s + %s" msgstr "Réadressage %s + %s inconnu" -#: vms-alpha.c:5098 +#: vms-alpha.c:5150 #, c-format msgid "Unknown reloc %s" msgstr "Réadressage %s inconnu" -#: vms-alpha.c:5111 +#: vms-alpha.c:5163 msgid "Invalid section index in ETIR" msgstr "Index de section incorrect dans ETIR" -#: vms-alpha.c:5120 +#: vms-alpha.c:5172 msgid "Relocation for non-REL psect" msgstr "Réadressage pour psect non-REL" -#: vms-alpha.c:5167 +#: vms-alpha.c:5219 #, c-format msgid "Unknown symbol in command %s" msgstr "Symbole inconnu dans la commande %s" -#: vms-alpha.c:5577 +#: vms-alpha.c:5629 #, c-format msgid "reloc (%d) is *UNKNOWN*" msgstr "le réadressage (%d) est *INCONNU*" -#: vms-alpha.c:5692 +#: vms-alpha.c:5745 #, c-format msgid " EMH %u (len=%u): " msgstr " EMH %u (long=%u): " -#: vms-alpha.c:5697 +#: vms-alpha.c:5750 #, c-format msgid " Error: The length is less than the length of an EMH record\n" msgstr " Erreur: La longueur est plus petite que la longueur d'un enregistrement EMH\n" -#: vms-alpha.c:5708 +#: vms-alpha.c:5767 +#, c-format +msgid " Error: The record length is less than the size of an EMH_MHD record\n" +msgstr " Erreur: La longueur de l'enregistrement est inférieure à la taille de l'enregistrement EMH_MHD\n" + +#: vms-alpha.c:5770 #, c-format msgid "Module header\n" msgstr "En-tête module\n" -#: vms-alpha.c:5709 +#: vms-alpha.c:5771 #, c-format msgid " structure level: %u\n" msgstr " niveau de structure: %u\n" -#: vms-alpha.c:5710 +#: vms-alpha.c:5772 #, c-format msgid " max record size: %u\n" msgstr " taille max d'enregistrement: %u\n" -#: vms-alpha.c:5713 +#: vms-alpha.c:5778 +#, c-format +msgid " Error: The module name is missing\n" +msgstr " Erreur: Le nom du module est manquant\n" + +#: vms-alpha.c:5784 +#, c-format +msgid " Error: The module name is too long\n" +msgstr " Erreur: Le nom du module est trop long\n" + +#: vms-alpha.c:5787 #, c-format msgid " module name : %.*s\n" msgstr " nom du module : %.*s\n" -#: vms-alpha.c:5715 +#: vms-alpha.c:5791 +#, c-format +msgid " Error: The module version is missing\n" +msgstr " Erreur: La version du module est manquante\n" + +#: vms-alpha.c:5797 +#, c-format +msgid " Error: The module version is too long\n" +msgstr " Erreur: La version du module est trop longue\n" + +#: vms-alpha.c:5800 #, c-format msgid " module version : %.*s\n" msgstr " version du module : %.*s\n" -#: vms-alpha.c:5717 +#: vms-alpha.c:5803 +#, c-format +msgid " Error: The compile date is truncated\n" +msgstr " Erreur: La date de compilation est tronquée\n" + +#: vms-alpha.c:5805 #, c-format msgid " compile date : %.17s\n" msgstr " date de compilation : %.17s\n" -#: vms-alpha.c:5722 +#: vms-alpha.c:5810 #, c-format msgid "Language Processor Name\n" msgstr "Nom du Processeur de Langage\n" -#: vms-alpha.c:5723 +#: vms-alpha.c:5811 #, c-format msgid " language name: %.*s\n" msgstr " nom du language: %.*s\n" -#: vms-alpha.c:5730 +#: vms-alpha.c:5815 #, c-format msgid "Source Files Header\n" msgstr "En-tête des fichiers sources\n" -#: vms-alpha.c:5731 +#: vms-alpha.c:5816 #, c-format msgid " file: %.*s\n" msgstr " fichier: %.*s\n" -#: vms-alpha.c:5738 +#: vms-alpha.c:5820 #, c-format msgid "Title Text Header\n" msgstr "En-tête du texte du titre\n" -#: vms-alpha.c:5739 +#: vms-alpha.c:5821 #, c-format msgid " title: %.*s\n" msgstr " titre: %.*s\n" -#: vms-alpha.c:5746 +#: vms-alpha.c:5825 #, c-format msgid "Copyright Header\n" msgstr "En-tête du copyright\n" -#: vms-alpha.c:5747 +#: vms-alpha.c:5826 #, c-format msgid " copyright: %.*s\n" msgstr " copyright: %.*s\n" -#: vms-alpha.c:5753 +#: vms-alpha.c:5830 #, c-format msgid "unhandled emh subtype %u\n" msgstr "sous-type emh %u non pris en charge\n" -#: vms-alpha.c:5763 +#: vms-alpha.c:5840 #, c-format msgid " EEOM (len=%u):\n" msgstr " EEOM (long=%u):\n" -#: vms-alpha.c:5768 +#: vms-alpha.c:5845 #, c-format msgid " Error: The length is less than the length of an EEOM record\n" msgstr " Erreur: La longueur est plus petite que la longueur d'un enregistrement EEOM\n" -#: vms-alpha.c:5772 +#: vms-alpha.c:5849 #, c-format msgid " number of cond linkage pairs: %u\n" msgstr " nombre de paires de liaisons cond: %u\n" -#: vms-alpha.c:5774 +#: vms-alpha.c:5851 #, c-format msgid " completion code: %u\n" msgstr " code de complétion: %u\n" -#: vms-alpha.c:5778 +#: vms-alpha.c:5855 #, c-format msgid " transfer addr flags: 0x%02x\n" msgstr " fanions de transfert d'adr: 0x%02x\n" -#: vms-alpha.c:5779 +#: vms-alpha.c:5856 #, c-format msgid " transfer addr psect: %u\n" msgstr " psect transert adr: %u\n" -#: vms-alpha.c:5781 +#: vms-alpha.c:5858 #, c-format msgid " transfer address : 0x%08x\n" msgstr " adresse de transert: 0x%08x\n" -#: vms-alpha.c:5790 +#: vms-alpha.c:5867 msgid " WEAK" msgstr " FAIBLE" -#: vms-alpha.c:5792 +#: vms-alpha.c:5869 msgid " DEF" msgstr " DEF" -#: vms-alpha.c:5794 +#: vms-alpha.c:5871 msgid " UNI" msgstr " UNI" -#: vms-alpha.c:5796 vms-alpha.c:5817 +#: vms-alpha.c:5873 vms-alpha.c:5894 msgid " REL" msgstr " REL" -#: vms-alpha.c:5798 +#: vms-alpha.c:5875 msgid " COMM" msgstr " COMM" -#: vms-alpha.c:5800 +#: vms-alpha.c:5877 msgid " VECEP" msgstr " VECEP" -#: vms-alpha.c:5802 +#: vms-alpha.c:5879 msgid " NORM" msgstr " NORM" -#: vms-alpha.c:5804 +#: vms-alpha.c:5881 msgid " QVAL" msgstr " QVAL" -#: vms-alpha.c:5811 +#: vms-alpha.c:5888 msgid " PIC" msgstr " PIC" -#: vms-alpha.c:5813 +#: vms-alpha.c:5890 msgid " LIB" msgstr " LIB" -#: vms-alpha.c:5815 +#: vms-alpha.c:5892 msgid " OVR" msgstr " OVR" -#: vms-alpha.c:5819 +#: vms-alpha.c:5896 msgid " GBL" msgstr " GBL" -#: vms-alpha.c:5821 +#: vms-alpha.c:5898 msgid " SHR" msgstr " SHR" -#: vms-alpha.c:5823 +#: vms-alpha.c:5900 msgid " EXE" msgstr " EXE" -#: vms-alpha.c:5825 +#: vms-alpha.c:5902 msgid " RD" msgstr " RD" -#: vms-alpha.c:5827 +#: vms-alpha.c:5904 msgid " WRT" msgstr " WRT" -#: vms-alpha.c:5829 +#: vms-alpha.c:5906 msgid " VEC" msgstr " VEC" -#: vms-alpha.c:5831 +#: vms-alpha.c:5908 msgid " NOMOD" msgstr " NOMOD" -#: vms-alpha.c:5833 +#: vms-alpha.c:5910 msgid " COM" msgstr " COM" -#: vms-alpha.c:5835 +#: vms-alpha.c:5912 msgid " 64B" msgstr " 64B" -#: vms-alpha.c:5844 +#: vms-alpha.c:5921 #, c-format msgid " EGSD (len=%u):\n" msgstr " EGSD (long=%u):\n" -#: vms-alpha.c:5857 +#: vms-alpha.c:5934 #, c-format msgid " EGSD entry %2u (type: %u, len: %u): " msgstr " entrée EGSD %2u (type: %u, long: %u): " -#: vms-alpha.c:5863 vms-alpha.c:6114 +#: vms-alpha.c:5940 vms-alpha.c:6191 #, c-format msgid " Error: length larger than remaining space in record\n" msgstr " Erreur: longueur plus grande que l'espace restant dans l'enregistrement\n" -#: vms-alpha.c:5875 +#: vms-alpha.c:5952 #, c-format msgid "PSC - Program section definition\n" msgstr "PSC - Définition de section du programme\n" -#: vms-alpha.c:5876 vms-alpha.c:5893 +#: vms-alpha.c:5953 vms-alpha.c:5970 #, c-format msgid " alignment : 2**%u\n" msgstr " alignement : 2**%u\n" -#: vms-alpha.c:5877 vms-alpha.c:5894 +#: vms-alpha.c:5954 vms-alpha.c:5971 #, c-format msgid " flags : 0x%04x" msgstr " fanions : 0x%04x" -#: vms-alpha.c:5881 +#: vms-alpha.c:5958 #, c-format msgid " alloc (len): %u (0x%08x)\n" msgstr " alloc (long): %u (0x%08x)\n" -#: vms-alpha.c:5882 vms-alpha.c:5939 vms-alpha.c:5988 +#: vms-alpha.c:5959 vms-alpha.c:6016 vms-alpha.c:6065 #, c-format msgid " name : %.*s\n" msgstr " nom : %.*s\n" -#: vms-alpha.c:5892 +#: vms-alpha.c:5969 #, c-format msgid "SPSC - Shared Image Program section def\n" msgstr "SPSC - Def de section de l'image partagée du programme\n" -#: vms-alpha.c:5898 +#: vms-alpha.c:5975 #, c-format msgid " alloc (len) : %u (0x%08x)\n" msgstr " alloc (long) : %u (0x%08x)\n" -#: vms-alpha.c:5899 +#: vms-alpha.c:5976 #, c-format msgid " image offset : 0x%08x\n" msgstr " offset d'image: 0x%08x\n" -#: vms-alpha.c:5901 +#: vms-alpha.c:5978 #, c-format msgid " symvec offset : 0x%08x\n" msgstr " offset symvec : 0x%08x\n" -#: vms-alpha.c:5903 +#: vms-alpha.c:5980 #, c-format msgid " name : %.*s\n" msgstr " nom : %.*s\n" -#: vms-alpha.c:5916 +#: vms-alpha.c:5993 #, c-format msgid "SYM - Global symbol definition\n" msgstr "SYM - Définition du symbol global\n" -#: vms-alpha.c:5917 vms-alpha.c:5977 vms-alpha.c:5998 vms-alpha.c:6017 +#: vms-alpha.c:5994 vms-alpha.c:6054 vms-alpha.c:6075 vms-alpha.c:6094 #, c-format msgid " flags: 0x%04x" msgstr " fanions: 0x%04x" -#: vms-alpha.c:5920 +#: vms-alpha.c:5997 #, c-format msgid " psect offset: 0x%08x\n" msgstr " offset psect: 0x%08x\n" -#: vms-alpha.c:5924 +#: vms-alpha.c:6001 #, c-format msgid " code address: 0x%08x\n" msgstr " adresse code: 0x%08x\n" -#: vms-alpha.c:5926 +#: vms-alpha.c:6003 #, c-format msgid " psect index for entry point : %u\n" msgstr " index psect pour point d'entrée: %u\n" -#: vms-alpha.c:5929 vms-alpha.c:6005 vms-alpha.c:6024 +#: vms-alpha.c:6006 vms-alpha.c:6082 vms-alpha.c:6101 #, c-format msgid " psect index : %u\n" msgstr " index psect : %u\n" -#: vms-alpha.c:5931 vms-alpha.c:6007 vms-alpha.c:6026 +#: vms-alpha.c:6008 vms-alpha.c:6084 vms-alpha.c:6103 #, c-format msgid " name : %.*s\n" msgstr " nom : %.*s\n" -#: vms-alpha.c:5938 +#: vms-alpha.c:6015 #, c-format msgid "SYM - Global symbol reference\n" msgstr "SYM - Référence du symbol globaux\n" -#: vms-alpha.c:5950 +#: vms-alpha.c:6027 #, c-format msgid "IDC - Ident Consistency check\n" msgstr "IDC - Vérification de la consistance d'identité\n" -#: vms-alpha.c:5951 +#: vms-alpha.c:6028 #, c-format msgid " flags : 0x%08x" msgstr " fanions : 0x%08x" -#: vms-alpha.c:5955 +#: vms-alpha.c:6032 #, c-format msgid " id match : %x\n" msgstr " correspondance id : %x\n" -#: vms-alpha.c:5957 +#: vms-alpha.c:6034 #, c-format msgid " error severity: %x\n" msgstr " sévérité d'erreur: %x\n" -#: vms-alpha.c:5960 +#: vms-alpha.c:6037 #, c-format msgid " entity name : %.*s\n" msgstr " nom d'entité : %.*s\n" -#: vms-alpha.c:5962 +#: vms-alpha.c:6039 #, c-format msgid " object name : %.*s\n" msgstr " nom d'objet : %.*s\n" -#: vms-alpha.c:5965 +#: vms-alpha.c:6042 #, c-format msgid " binary ident : 0x%08x\n" msgstr " ident binaire : 0x%08x\n" -#: vms-alpha.c:5968 +#: vms-alpha.c:6045 #, c-format msgid " ascii ident : %.*s\n" msgstr " ident ascii : %.*s\n" -#: vms-alpha.c:5976 +#: vms-alpha.c:6053 #, c-format msgid "SYMG - Universal symbol definition\n" msgstr "SYMG - Définition de symbole universel\n" -#: vms-alpha.c:5980 +#: vms-alpha.c:6057 #, c-format msgid " symbol vector offset: 0x%08x\n" msgstr " offset vecteur symbole: 0x%08x\n" -#: vms-alpha.c:5982 +#: vms-alpha.c:6059 #, c-format msgid " entry point: 0x%08x\n" msgstr " point d'entrée: 0x%08x\n" -#: vms-alpha.c:5984 +#: vms-alpha.c:6061 #, c-format msgid " proc descr : 0x%08x\n" msgstr " descr proc : 0x%08x\n" -#: vms-alpha.c:5986 +#: vms-alpha.c:6063 #, c-format msgid " psect index: %u\n" msgstr " index psect: %u\n" -#: vms-alpha.c:5997 +#: vms-alpha.c:6074 #, c-format msgid "SYMV - Vectored symbol definition\n" msgstr "SYMV - Définition symbole vectorisé\n" -#: vms-alpha.c:6001 +#: vms-alpha.c:6078 #, c-format msgid " vector : 0x%08x\n" msgstr " vecteur : 0x%08x\n" -#: vms-alpha.c:6003 vms-alpha.c:6022 +#: vms-alpha.c:6080 vms-alpha.c:6099 #, c-format msgid " psect offset: %u\n" msgstr " offset psect: %u\n" -#: vms-alpha.c:6016 +#: vms-alpha.c:6093 #, c-format msgid "SYMM - Global symbol definition with version\n" msgstr "SYMM - Définition de symbole globale avec version\n" -#: vms-alpha.c:6020 +#: vms-alpha.c:6097 #, c-format msgid " version mask: 0x%08x\n" msgstr " masque de version: 0x%08x\n" -#: vms-alpha.c:6031 +#: vms-alpha.c:6108 #, c-format msgid "unhandled egsd entry type %u\n" msgstr "type d'entrée egsd %u non supporté\n" -#: vms-alpha.c:6066 +#: vms-alpha.c:6143 #, c-format msgid " linkage index: %u, replacement insn: 0x%08x\n" msgstr " index de liaison: %u, instruction de remplacement: 0x%08x\n" -#: vms-alpha.c:6070 +#: vms-alpha.c:6147 #, c-format msgid " psect idx 1: %u, offset 1: 0x%08x %08x\n" msgstr " index psect 1: %u, offset 1: 0x%08x %08x\n" -#: vms-alpha.c:6075 +#: vms-alpha.c:6152 #, c-format msgid " psect idx 2: %u, offset 2: 0x%08x %08x\n" msgstr " index psect 2: %u, offset 2: 0x%08x %08x\n" -#: vms-alpha.c:6081 +#: vms-alpha.c:6158 #, c-format msgid " psect idx 3: %u, offset 3: 0x%08x %08x\n" msgstr " index psect 3: %u, offset 3: 0x%08x %08x\n" -#: vms-alpha.c:6086 +#: vms-alpha.c:6163 #, c-format msgid " global name: %.*s\n" msgstr " nom global: %.*s\n" -#: vms-alpha.c:6097 +#: vms-alpha.c:6174 #, c-format msgid " %s (len=%u+%u):\n" msgstr " %s (long=%u+%u):\n" -#: vms-alpha.c:6119 +#: vms-alpha.c:6196 #, c-format msgid " (type: %3u, size: 4+%3u): " msgstr " (type: %3u, taille: 4+%3u): " -#: vms-alpha.c:6123 +#: vms-alpha.c:6200 #, c-format msgid "STA_GBL (stack global) %.*s\n" msgstr "STA_GBL (pile globals) %.*s\n" -#: vms-alpha.c:6127 +#: vms-alpha.c:6204 #, c-format msgid "STA_LW (stack longword) 0x%08x\n" msgstr "STA_LW (pile mot long) 0x%08x\n" -#: vms-alpha.c:6131 +#: vms-alpha.c:6208 #, c-format msgid "STA_QW (stack quadword) 0x%08x %08x\n" msgstr "STA_QW (pile quad mot) 0x%08x %08x\n" -#: vms-alpha.c:6136 +#: vms-alpha.c:6213 #, c-format msgid "STA_PQ (stack psect base + offset)\n" msgstr "STA_PQ (base pile psect + offset)\n" -#: vms-alpha.c:6138 +#: vms-alpha.c:6215 #, c-format msgid " psect: %u, offset: 0x%08x %08x\n" msgstr " psect: %u, offset: 0x%08x %08x\n" -#: vms-alpha.c:6144 +#: vms-alpha.c:6221 #, c-format msgid "STA_LI (stack literal)\n" msgstr "STA_LI (pile literale)\n" -#: vms-alpha.c:6147 +#: vms-alpha.c:6224 #, c-format msgid "STA_MOD (stack module)\n" msgstr "STA_MOD (pile module)\n" -#: vms-alpha.c:6150 +#: vms-alpha.c:6227 #, c-format msgid "STA_CKARG (compare procedure argument)\n" msgstr "STA_CKARG (compare les arguments de la procédure)\n" -#: vms-alpha.c:6154 +#: vms-alpha.c:6231 #, c-format msgid "STO_B (store byte)\n" msgstr "STO_B (stocke octet)\n" -#: vms-alpha.c:6157 +#: vms-alpha.c:6234 #, c-format msgid "STO_W (store word)\n" msgstr "STO_W (stocke mot)\n" -#: vms-alpha.c:6160 +#: vms-alpha.c:6237 #, c-format msgid "STO_LW (store longword)\n" msgstr "STO_LW (stocke mot long)\n" -#: vms-alpha.c:6163 +#: vms-alpha.c:6240 #, c-format msgid "STO_QW (store quadword)\n" msgstr "STO_QW (stocke quad mot)\n" -#: vms-alpha.c:6169 +#: vms-alpha.c:6246 #, c-format msgid "STO_IMMR (store immediate repeat) %u bytes\n" msgstr "STO_IMMR (stock répétition immédiate) %u octets\n" -#: vms-alpha.c:6176 +#: vms-alpha.c:6253 #, c-format msgid "STO_GBL (store global) %.*s\n" msgstr "STO_GBL (stocke globale) %.*s\n" -#: vms-alpha.c:6180 +#: vms-alpha.c:6257 #, c-format msgid "STO_CA (store code address) %.*s\n" msgstr "STO_CA (stock adresse code) %.*s\n" -#: vms-alpha.c:6184 +#: vms-alpha.c:6261 #, c-format msgid "STO_RB (store relative branch)\n" msgstr "STO_RB (stocke branche relative)\n" -#: vms-alpha.c:6187 +#: vms-alpha.c:6264 #, c-format msgid "STO_AB (store absolute branch)\n" msgstr "STO_AB (stocke branche absolue)\n" -#: vms-alpha.c:6190 +#: vms-alpha.c:6267 #, c-format msgid "STO_OFF (store offset to psect)\n" msgstr "STO_OFF (stocke offset de psect)\n" -#: vms-alpha.c:6196 +#: vms-alpha.c:6273 #, c-format msgid "STO_IMM (store immediate) %u bytes\n" msgstr "STO_IMM (stocke immediat) %u octets\n" -#: vms-alpha.c:6203 +#: vms-alpha.c:6280 #, c-format msgid "STO_GBL_LW (store global longword) %.*s\n" msgstr "STO_GBL_LW (stocke mot long global) %.*s\n" -#: vms-alpha.c:6207 +#: vms-alpha.c:6284 #, c-format msgid "STO_OFF (store LP with procedure signature)\n" msgstr "STO_OFF (stocke LP avec la signature de la procédure)\n" -#: vms-alpha.c:6210 +#: vms-alpha.c:6287 #, c-format msgid "STO_BR_GBL (store branch global) *todo*\n" msgstr "STO_BR_GBL (stocke branche globale) *todo*\n" -#: vms-alpha.c:6213 +#: vms-alpha.c:6290 #, c-format msgid "STO_BR_PS (store branch psect + offset) *todo*\n" msgstr "STO_BR_PS (stocke branche psect + offset) *todo*\n" -#: vms-alpha.c:6217 +#: vms-alpha.c:6294 #, c-format msgid "OPR_NOP (no-operation)\n" msgstr "OPR_NOP (pas d'operation)\n" -#: vms-alpha.c:6220 +#: vms-alpha.c:6297 #, c-format msgid "OPR_ADD (add)\n" msgstr "OPR_ADD (ajout)\n" -#: vms-alpha.c:6223 +#: vms-alpha.c:6300 #, c-format -msgid "OPR_SUB (substract)\n" +msgid "OPR_SUB (subtract)\n" msgstr "OPR_SUB (soustraction)\n" -#: vms-alpha.c:6226 +#: vms-alpha.c:6303 #, c-format msgid "OPR_MUL (multiply)\n" msgstr "OPR_MUL (multiplication)\n" -#: vms-alpha.c:6229 +#: vms-alpha.c:6306 #, c-format msgid "OPR_DIV (divide)\n" msgstr "OPR_DIV (division)\n" -#: vms-alpha.c:6232 +#: vms-alpha.c:6309 #, c-format msgid "OPR_AND (logical and)\n" msgstr "OPR_AND (et logique)\n" -#: vms-alpha.c:6235 +#: vms-alpha.c:6312 #, c-format msgid "OPR_IOR (logical inclusive or)\n" msgstr "OPR_IOR (ou inclusif logique)\n" -#: vms-alpha.c:6238 +#: vms-alpha.c:6315 #, c-format msgid "OPR_EOR (logical exclusive or)\n" msgstr "OPR_EOR (ou exclusif logique)\n" -#: vms-alpha.c:6241 +#: vms-alpha.c:6318 #, c-format msgid "OPR_NEG (negate)\n" msgstr "OPR_NEG (négation)\n" -#: vms-alpha.c:6244 +#: vms-alpha.c:6321 #, c-format msgid "OPR_COM (complement)\n" msgstr "OPR_COM (complément)\n" -#: vms-alpha.c:6247 +#: vms-alpha.c:6324 #, c-format msgid "OPR_INSV (insert field)\n" msgstr "OPR_INSV (insertion champ)\n" -#: vms-alpha.c:6250 +#: vms-alpha.c:6327 #, c-format msgid "OPR_ASH (arithmetic shift)\n" msgstr "OPR_ASH (décalage arithmetique)\n" -#: vms-alpha.c:6253 +#: vms-alpha.c:6330 #, c-format msgid "OPR_USH (unsigned shift)\n" msgstr "OPR_USH (décalage non signé)\n" -#: vms-alpha.c:6256 +#: vms-alpha.c:6333 #, c-format msgid "OPR_ROT (rotate)\n" msgstr "OPR_ROT (rotation)\n" -#: vms-alpha.c:6259 +#: vms-alpha.c:6336 #, c-format msgid "OPR_SEL (select)\n" msgstr "OPR_SEL (selection)\n" -#: vms-alpha.c:6262 +#: vms-alpha.c:6339 #, c-format msgid "OPR_REDEF (redefine symbol to curr location)\n" msgstr "OPR_REDEF (redéfini le symbole à la position actuelle)\n" -#: vms-alpha.c:6265 +#: vms-alpha.c:6342 #, c-format msgid "OPR_REDEF (define a literal)\n" msgstr "OPR_REDEF (définir un litéral)\n" -#: vms-alpha.c:6269 +#: vms-alpha.c:6346 #, c-format msgid "STC_LP (store cond linkage pair)\n" msgstr "STC_LP (stocke pair de liaison cond)\n" -#: vms-alpha.c:6273 +#: vms-alpha.c:6350 #, c-format msgid "STC_LP_PSB (store cond linkage pair + signature)\n" msgstr "STC_LP_PSB (stocke pair de liaison cond + signature)\n" -#: vms-alpha.c:6275 +#: vms-alpha.c:6352 #, c-format msgid " linkage index: %u, procedure: %.*s\n" msgstr " index liaison: %u, procédure: %.*s\n" -#: vms-alpha.c:6278 +#: vms-alpha.c:6355 #, c-format msgid " signature: %.*s\n" msgstr " signature: %.*s\n" -#: vms-alpha.c:6281 +#: vms-alpha.c:6358 #, c-format msgid "STC_GBL (store cond global)\n" msgstr "STC_GBL (stocke cond globale)\n" -#: vms-alpha.c:6283 +#: vms-alpha.c:6360 #, c-format msgid " linkage index: %u, global: %.*s\n" msgstr " index liaison: %u, globale: %.*s\n" -#: vms-alpha.c:6287 +#: vms-alpha.c:6364 #, c-format msgid "STC_GCA (store cond code address)\n" msgstr "STC_GCA (stocke adresse code cond)\n" -#: vms-alpha.c:6289 +#: vms-alpha.c:6366 #, c-format msgid " linkage index: %u, procedure name: %.*s\n" msgstr " index liaison: %u, nom procédure: %.*s\n" -#: vms-alpha.c:6293 +#: vms-alpha.c:6370 #, c-format msgid "STC_PS (store cond psect + offset)\n" msgstr "STC_PS (stocke psect cond + offset)\n" -#: vms-alpha.c:6296 +#: vms-alpha.c:6373 #, c-format msgid " linkage index: %u, psect: %u, offset: 0x%08x %08x\n" msgstr " index liaison: %u, psect: %u, offset: 0x%08x %08x\n" -#: vms-alpha.c:6303 +#: vms-alpha.c:6380 #, c-format msgid "STC_NOP_GBL (store cond NOP at global addr)\n" msgstr "STC_NOP_GBL (stocke NOP cond à l'adresse globale)\n" -#: vms-alpha.c:6307 +#: vms-alpha.c:6384 #, c-format msgid "STC_NOP_PS (store cond NOP at psect + offset)\n" msgstr "STC_NOP_PS (stocke NOP cond à psect + offset)\n" -#: vms-alpha.c:6311 +#: vms-alpha.c:6388 #, c-format msgid "STC_BSR_GBL (store cond BSR at global addr)\n" msgstr "STC_BSR_GBL (stocke BSR cond à l'adresse globale)\n" -#: vms-alpha.c:6315 +#: vms-alpha.c:6392 #, c-format msgid "STC_BSR_PS (store cond BSR at psect + offset)\n" msgstr "STC_BSR_PS (stocke BSR cond à psect + offset)\n" -#: vms-alpha.c:6319 +#: vms-alpha.c:6396 #, c-format msgid "STC_LDA_GBL (store cond LDA at global addr)\n" msgstr "STC_LDA_GBL (stocke LDA cond à l'adresse globale)\n" -#: vms-alpha.c:6323 +#: vms-alpha.c:6400 #, c-format msgid "STC_LDA_PS (store cond LDA at psect + offset)\n" msgstr "STC_LDA_PS (stocke LDA cond à psect + offset)\n" -#: vms-alpha.c:6327 +#: vms-alpha.c:6404 #, c-format msgid "STC_BOH_GBL (store cond BOH at global addr)\n" msgstr "STC_BOH_GBL (stocke BOH cond à l'adresse globale)\n" -#: vms-alpha.c:6331 +#: vms-alpha.c:6408 #, c-format msgid "STC_BOH_PS (store cond BOH at psect + offset)\n" msgstr "STC_BOH_PS (stocke BOH cond à psect + offset)\n" -#: vms-alpha.c:6336 +#: vms-alpha.c:6413 #, c-format msgid "STC_NBH_GBL (store cond or hint at global addr)\n" msgstr "STC_NBH_GBL (stocke cond ou suggestion à l'adresse globale)\n" -#: vms-alpha.c:6340 +#: vms-alpha.c:6417 #, c-format msgid "STC_NBH_PS (store cond or hint at psect + offset)\n" msgstr "STC_NBH_PS (stocke cond or suggestion à psect + offset)\n" -#: vms-alpha.c:6344 +#: vms-alpha.c:6421 #, c-format msgid "CTL_SETRB (set relocation base)\n" msgstr "CTL_SETRB (fixe la base du réadressage)\n" -#: vms-alpha.c:6350 +#: vms-alpha.c:6427 #, c-format msgid "CTL_AUGRB (augment relocation base) %u\n" msgstr "CTL_AUGRB (augmente la base du réadressage) %u\n" -#: vms-alpha.c:6354 +#: vms-alpha.c:6431 #, c-format msgid "CTL_DFLOC (define location)\n" msgstr "CTL_DFLOC (définir position)\n" -#: vms-alpha.c:6357 +#: vms-alpha.c:6434 #, c-format msgid "CTL_STLOC (set location)\n" msgstr "CTL_STLOC (fixer position)\n" -#: vms-alpha.c:6360 +#: vms-alpha.c:6437 #, c-format msgid "CTL_STKDL (stack defined location)\n" msgstr "CTL_STKDL (position définie dans la pile)\n" -#: vms-alpha.c:6363 vms-alpha.c:6787 vms-alpha.c:6913 +#: vms-alpha.c:6440 vms-alpha.c:6864 vms-alpha.c:6990 #, c-format msgid "*unhandled*\n" msgstr "*non pris en charge*\n" -#: vms-alpha.c:6393 vms-alpha.c:6432 +#: vms-alpha.c:6470 vms-alpha.c:6509 #, c-format msgid "cannot read GST record length\n" msgstr "impossible de lire la longueur de l'enregistrement GST\n" #. Ill-formed. -#: vms-alpha.c:6414 +#: vms-alpha.c:6491 #, c-format msgid "cannot find EMH in first GST record\n" msgstr "impossible de trouver le EMH dans le premier enregistrement GST\n" -#: vms-alpha.c:6440 +#: vms-alpha.c:6517 #, c-format msgid "cannot read GST record header\n" msgstr "impossible de lire l'en-tête de l'enregistrement GST\n" -#: vms-alpha.c:6453 +#: vms-alpha.c:6530 #, c-format msgid " corrupted GST\n" msgstr " GST corrompu\n" -#: vms-alpha.c:6461 +#: vms-alpha.c:6538 #, c-format msgid "cannot read GST record\n" msgstr "ne peut lire l'enregistrement GST\n" -#: vms-alpha.c:6490 +#: vms-alpha.c:6567 #, c-format msgid " unhandled EOBJ record type %u\n" msgstr " type d'enregistrement EOBJ %u non supporté\n" -#: vms-alpha.c:6514 +#: vms-alpha.c:6591 #, c-format msgid " bitcount: %u, base addr: 0x%08x\n" msgstr " décompte des bits: %u, adr base: 0x%08x\n" -#: vms-alpha.c:6528 +#: vms-alpha.c:6605 #, c-format msgid " bitmap: 0x%08x (count: %u):\n" msgstr " carte des bits: 0x%08x (occurrence: %u):\n" -#: vms-alpha.c:6535 +#: vms-alpha.c:6612 #, c-format msgid " %08x" msgstr " %08x" -#: vms-alpha.c:6561 +#: vms-alpha.c:6638 #, c-format msgid " image %u (%u entries)\n" msgstr " image %u (%u entrées)\n" -#: vms-alpha.c:6567 +#: vms-alpha.c:6644 #, c-format msgid " offset: 0x%08x, val: 0x%08x\n" msgstr " offset: 0x%08x, val: 0x%08x\n" -#: vms-alpha.c:6589 +#: vms-alpha.c:6666 #, c-format msgid " image %u (%u entries), offsets:\n" msgstr " image %u (%u entrées), offsets:\n" -#: vms-alpha.c:6596 +#: vms-alpha.c:6673 #, c-format msgid " 0x%08x" msgstr " 0x%08x" #. 64 bits. -#: vms-alpha.c:6718 +#: vms-alpha.c:6795 #, c-format msgid "64 bits *unhandled*\n" msgstr "64 bits *non supporté*\n" -#: vms-alpha.c:6723 +#: vms-alpha.c:6800 #, c-format msgid "class: %u, dtype: %u, length: %u, pointer: 0x%08x\n" msgstr "classe: %u, dtype: %u, longueur: %u, pointeur: 0x%08x\n" -#: vms-alpha.c:6734 +#: vms-alpha.c:6811 #, c-format msgid "non-contiguous array of %s\n" msgstr "table de %s non contiguë\n" -#: vms-alpha.c:6739 +#: vms-alpha.c:6816 #, c-format msgid "dimct: %u, aflags: 0x%02x, digits: %u, scale: %u\n" msgstr "dimct: %u, aflags: 0x%02x, digits: %u, échelle: %u\n" -#: vms-alpha.c:6744 +#: vms-alpha.c:6821 #, c-format msgid "arsize: %u, a0: 0x%08x\n" msgstr "arsize: %u, a0: 0x%08x\n" -#: vms-alpha.c:6748 +#: vms-alpha.c:6825 #, c-format msgid "Strides:\n" msgstr "Pas:\n" -#: vms-alpha.c:6758 +#: vms-alpha.c:6835 #, c-format msgid "Bounds:\n" msgstr "Limites:\n" -#: vms-alpha.c:6764 +#: vms-alpha.c:6841 #, c-format msgid "[%u]: Lower: %u, upper: %u\n" msgstr "[%u]: Inférieure: %u, supérieure: %u\n" -#: vms-alpha.c:6776 +#: vms-alpha.c:6853 #, c-format msgid "unaligned bit-string of %s\n" msgstr "chaine de bits de %s désalignée\n" -#: vms-alpha.c:6781 +#: vms-alpha.c:6858 #, c-format msgid "base: %u, pos: %u\n" msgstr "base: %u, pos: %u\n" -#: vms-alpha.c:6802 +#: vms-alpha.c:6879 #, c-format msgid "vflags: 0x%02x, value: 0x%08x " msgstr "vflags: 0x%02x, valeur: 0x%08x " -#: vms-alpha.c:6808 +#: vms-alpha.c:6885 #, c-format msgid "(no value)\n" msgstr "(pas de valeur)\n" -#: vms-alpha.c:6811 +#: vms-alpha.c:6888 #, c-format msgid "(not active)\n" msgstr "(pas active)\n" -#: vms-alpha.c:6814 +#: vms-alpha.c:6891 #, c-format msgid "(not allocated)\n" msgstr "(pas allouée)\n" -#: vms-alpha.c:6817 +#: vms-alpha.c:6894 #, c-format msgid "(descriptor)\n" msgstr "(descripteur)\n" -#: vms-alpha.c:6821 +#: vms-alpha.c:6898 #, c-format msgid "(trailing value)\n" msgstr "(valeur postérieure)\n" -#: vms-alpha.c:6824 +#: vms-alpha.c:6901 #, c-format msgid "(value spec follows)\n" msgstr "(spécificités de la valeur suivent)\n" -#: vms-alpha.c:6827 +#: vms-alpha.c:6904 #, c-format msgid "(at bit offset %u)\n" msgstr "(à l'offset de bit %u)\n" -#: vms-alpha.c:6831 +#: vms-alpha.c:6908 #, c-format msgid "(reg: %u, disp: %u, indir: %u, kind: " msgstr "(reg: %u, aff: %u, indir: %u, type: " -#: vms-alpha.c:6838 +#: vms-alpha.c:6915 msgid "literal" msgstr "litérale" -#: vms-alpha.c:6841 +#: vms-alpha.c:6918 msgid "address" msgstr "adresse" -#: vms-alpha.c:6844 +#: vms-alpha.c:6921 msgid "desc" msgstr "desc" -#: vms-alpha.c:6847 +#: vms-alpha.c:6924 msgid "reg" msgstr "reg" -#: vms-alpha.c:6864 +#: vms-alpha.c:6941 #, c-format msgid "len: %2u, kind: %2u " msgstr "long: %2u, type: %2u " -#: vms-alpha.c:6870 +#: vms-alpha.c:6947 #, c-format msgid "atomic, type=0x%02x %s\n" msgstr "atomique, type=0x%02x %s\n" -#: vms-alpha.c:6874 +#: vms-alpha.c:6951 #, c-format msgid "indirect, defined at 0x%08x\n" msgstr "indirect, défini à 0x%08x\n" -#: vms-alpha.c:6878 +#: vms-alpha.c:6955 #, c-format msgid "typed pointer\n" msgstr "pointeur typé\n" -#: vms-alpha.c:6882 +#: vms-alpha.c:6959 #, c-format msgid "pointer\n" msgstr "pointeur\n" -#: vms-alpha.c:6890 +#: vms-alpha.c:6967 #, c-format msgid "array, dim: %u, bitmap: " msgstr "tableau, dim: %u, bitmpa: " -#: vms-alpha.c:6897 +#: vms-alpha.c:6974 #, c-format msgid "array descriptor:\n" msgstr "descripteur de tableau:\n" -#: vms-alpha.c:6904 +#: vms-alpha.c:6981 #, c-format msgid "type spec for element:\n" msgstr "spec de type pour élément:\n" -#: vms-alpha.c:6906 +#: vms-alpha.c:6983 #, c-format msgid "type spec for subscript %u:\n" msgstr "spec de type pour l'indice %u:\n" -#: vms-alpha.c:6924 +#: vms-alpha.c:7001 #, c-format msgid "Debug symbol table:\n" msgstr "Table des symboles de debug:\n" -#: vms-alpha.c:6935 +#: vms-alpha.c:7012 #, c-format msgid "cannot read DST header\n" msgstr "impossible de lire l'en-tête DST\n" -#: vms-alpha.c:6941 +#: vms-alpha.c:7018 #, c-format msgid " type: %3u, len: %3u (at 0x%08x): " msgstr " type: %3u, long: %3u (à 0x%08x): " -#: vms-alpha.c:6955 +#: vms-alpha.c:7032 #, c-format msgid "cannot read DST symbol\n" msgstr "ne peut lire le symbole DST\n" -#: vms-alpha.c:6998 +#: vms-alpha.c:7075 #, c-format msgid "standard data: %s\n" msgstr "données standards: %s\n" -#: vms-alpha.c:7001 vms-alpha.c:7089 +#: vms-alpha.c:7078 vms-alpha.c:7166 #, c-format msgid " name: %.*s\n" msgstr " nom: %.*s\n" -#: vms-alpha.c:7008 +#: vms-alpha.c:7085 #, c-format msgid "modbeg\n" msgstr "début module\n" -#: vms-alpha.c:7010 +#: vms-alpha.c:7087 #, c-format msgid " flags: %d, language: %u, major: %u, minor: %u\n" msgstr " fanions: %d, language: %u, majeur: %u, mineur: %u\n" -#: vms-alpha.c:7016 vms-alpha.c:7290 +#: vms-alpha.c:7093 vms-alpha.c:7367 #, c-format msgid " module name: %.*s\n" msgstr " nom du module: %.*s\n" -#: vms-alpha.c:7019 +#: vms-alpha.c:7096 #, c-format msgid " compiler : %.*s\n" msgstr " compilateur : %.*s\n" -#: vms-alpha.c:7024 +#: vms-alpha.c:7101 #, c-format msgid "modend\n" msgstr "fin module\n" -#: vms-alpha.c:7031 +#: vms-alpha.c:7108 msgid "rtnbeg\n" msgstr "début rtn\n" -#: vms-alpha.c:7033 +#: vms-alpha.c:7110 #, c-format msgid " flags: %u, address: 0x%08x, pd-address: 0x%08x\n" msgstr " fanions: %u, adresse: 0x%08x, pd-adresse: 0x%08x\n" -#: vms-alpha.c:7038 +#: vms-alpha.c:7115 #, c-format msgid " routine name: %.*s\n" msgstr " nom routine : %.*s\n" -#: vms-alpha.c:7046 +#: vms-alpha.c:7123 #, c-format msgid "rtnend: size 0x%08x\n" msgstr "fin rtn: taille 0x%08x\n" -#: vms-alpha.c:7054 +#: vms-alpha.c:7131 #, c-format msgid "prolog: bkpt address 0x%08x\n" msgstr "prologue: adresse bkpt 0x%08x\n" -#: vms-alpha.c:7063 +#: vms-alpha.c:7140 #, c-format msgid "epilog: flags: %u, count: %u\n" msgstr "épilogue: fanions: %u, nombre: %u\n" -#: vms-alpha.c:7073 +#: vms-alpha.c:7150 #, c-format msgid "blkbeg: address: 0x%08x, name: %.*s\n" msgstr "début blk: adresse: 0x%08x, nom: %.*s\n" -#: vms-alpha.c:7082 +#: vms-alpha.c:7159 #, c-format msgid "blkend: size: 0x%08x\n" msgstr "fin blk: taille: 0x%08x\n" -#: vms-alpha.c:7088 +#: vms-alpha.c:7165 #, c-format msgid "typspec (len: %u)\n" msgstr "typspec (long: %u)\n" -#: vms-alpha.c:7095 +#: vms-alpha.c:7172 #, c-format msgid "septyp, name: %.*s\n" msgstr "septyp, nom: %.*s\n" -#: vms-alpha.c:7104 +#: vms-alpha.c:7181 #, c-format msgid "recbeg: name: %.*s\n" msgstr "début rec: nom: %.*s\n" -#: vms-alpha.c:7106 +#: vms-alpha.c:7183 #, c-format msgid " len: %u bits\n" msgstr " long: %u bits\n" -#: vms-alpha.c:7111 +#: vms-alpha.c:7188 #, c-format msgid "recend\n" msgstr "fin rec\n" -#: vms-alpha.c:7115 +#: vms-alpha.c:7192 #, c-format msgid "enumbeg, len: %u, name: %.*s\n" msgstr "début énumération, long: %u, nom: %.*s\n" -#: vms-alpha.c:7119 +#: vms-alpha.c:7196 #, c-format msgid "enumelt, name: %.*s\n" msgstr "énumération éléments, nom: %.*s\n" -#: vms-alpha.c:7123 +#: vms-alpha.c:7200 #, c-format msgid "enumend\n" msgstr "fin énumération\n" -#: vms-alpha.c:7128 +#: vms-alpha.c:7205 #, c-format msgid "label, name: %.*s\n" msgstr "étiquette, nom: %.*s\n" -#: vms-alpha.c:7130 +#: vms-alpha.c:7207 #, c-format msgid " address: 0x%08x\n" msgstr " adresse: 0x%08x\n" -#: vms-alpha.c:7140 +#: vms-alpha.c:7217 #, c-format msgid "discontiguous range (nbr: %u)\n" msgstr "plage discontinue (nbr: %u)\n" -#: vms-alpha.c:7143 +#: vms-alpha.c:7220 #, c-format msgid " address: 0x%08x, size: %u\n" msgstr " adresse: 0x%08x, taille: %u\n" -#: vms-alpha.c:7153 +#: vms-alpha.c:7230 #, c-format msgid "line num (len: %u)\n" msgstr "num ligne (long: %u)\n" -#: vms-alpha.c:7170 +#: vms-alpha.c:7247 #, c-format msgid "delta_pc_w %u\n" msgstr "delta_pc_w %u\n" -#: vms-alpha.c:7177 +#: vms-alpha.c:7254 #, c-format msgid "incr_linum(b): +%u\n" msgstr "incr_linum(b): +%u\n" -#: vms-alpha.c:7183 +#: vms-alpha.c:7260 #, c-format msgid "incr_linum_w: +%u\n" msgstr "incr_linum_w: +%u\n" -#: vms-alpha.c:7189 +#: vms-alpha.c:7266 #, c-format msgid "incr_linum_l: +%u\n" msgstr "incr_linum_l: +%u\n" -#: vms-alpha.c:7195 +#: vms-alpha.c:7272 #, c-format msgid "set_line_num(w) %u\n" msgstr "set_line_num(w) %u\n" -#: vms-alpha.c:7200 +#: vms-alpha.c:7277 #, c-format msgid "set_line_num_b %u\n" msgstr "set_line_num_b %u\n" -#: vms-alpha.c:7205 +#: vms-alpha.c:7282 #, c-format msgid "set_line_num_l %u\n" msgstr "set_line_num_l %u\n" -#: vms-alpha.c:7210 +#: vms-alpha.c:7287 #, c-format msgid "set_abs_pc: 0x%08x\n" msgstr "set_abs_pc: 0x%08x\n" -#: vms-alpha.c:7214 +#: vms-alpha.c:7291 #, c-format msgid "delta_pc_l: +0x%08x\n" msgstr "delta_pc_l: +0x%08x\n" -#: vms-alpha.c:7219 +#: vms-alpha.c:7296 #, c-format msgid "term(b): 0x%02x" msgstr "term(b): 0x%02x" -#: vms-alpha.c:7221 +#: vms-alpha.c:7298 #, c-format msgid " pc: 0x%08x\n" msgstr " pc: 0x%08x\n" -#: vms-alpha.c:7226 +#: vms-alpha.c:7303 #, c-format msgid "term_w: 0x%04x" msgstr "term_w: 0x%04x" -#: vms-alpha.c:7228 +#: vms-alpha.c:7305 #, c-format msgid " pc: 0x%08x\n" msgstr " pc: 0x%08x\n" -#: vms-alpha.c:7234 +#: vms-alpha.c:7311 #, c-format msgid "delta pc +%-4d" msgstr "delta pc +%-4d" -#: vms-alpha.c:7238 +#: vms-alpha.c:7315 #, c-format msgid " pc: 0x%08x line: %5u\n" msgstr " pc: 0x%08x ligne: %5u\n" -#: vms-alpha.c:7243 +#: vms-alpha.c:7320 #, c-format msgid " *unhandled* cmd %u\n" msgstr " cmd %u *non gérée*\n" -#: vms-alpha.c:7258 +#: vms-alpha.c:7335 #, c-format msgid "source (len: %u)\n" msgstr "source (long: %u)\n" -#: vms-alpha.c:7273 +#: vms-alpha.c:7350 #, c-format msgid " declfile: len: %u, flags: %u, fileid: %u\n" msgstr " declfile: long: %u, fanions: %u, id fichier: %u\n" -#: vms-alpha.c:7278 +#: vms-alpha.c:7355 #, c-format msgid " rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n" msgstr " rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n" -#: vms-alpha.c:7287 +#: vms-alpha.c:7364 #, c-format msgid " filename : %.*s\n" msgstr " nom fichier: %.*s\n" -#: vms-alpha.c:7296 +#: vms-alpha.c:7373 #, c-format msgid " setfile %u\n" msgstr " setfile %u\n" -#: vms-alpha.c:7301 vms-alpha.c:7306 +#: vms-alpha.c:7378 vms-alpha.c:7383 #, c-format msgid " setrec %u\n" msgstr " setrec %u\n" -#: vms-alpha.c:7311 vms-alpha.c:7316 +#: vms-alpha.c:7388 vms-alpha.c:7393 #, c-format msgid " setlnum %u\n" msgstr " setlnum %u\n" -#: vms-alpha.c:7321 vms-alpha.c:7326 +#: vms-alpha.c:7398 vms-alpha.c:7403 #, c-format msgid " deflines %u\n" msgstr " deflines %u\n" -#: vms-alpha.c:7330 +#: vms-alpha.c:7407 #, c-format msgid " formfeed\n" msgstr " formfeed\n" -#: vms-alpha.c:7334 +#: vms-alpha.c:7411 #, c-format msgid " *unhandled* cmd %u\n" msgstr " cmd %u *non gérée*\n" -#: vms-alpha.c:7346 +#: vms-alpha.c:7423 #, c-format msgid "*unhandled* dst type %u\n" msgstr "type dst %u *non géré*\n" -#: vms-alpha.c:7378 +#: vms-alpha.c:7455 #, c-format msgid "cannot read EIHD\n" msgstr "ne peut lire EIHD\n" -#: vms-alpha.c:7382 +#: vms-alpha.c:7459 #, c-format msgid "EIHD: (size: %u, nbr blocks: %u)\n" msgstr "EIHD: (taille: %u, nbr blocs: %u)\n" -#: vms-alpha.c:7386 +#: vms-alpha.c:7463 #, c-format msgid " majorid: %u, minorid: %u\n" msgstr " id majeur: %u, id mineur: %u\n" -#: vms-alpha.c:7394 +#: vms-alpha.c:7471 msgid "executable" msgstr "exécutable" -#: vms-alpha.c:7397 +#: vms-alpha.c:7474 msgid "linkable image" msgstr "image liable" -#: vms-alpha.c:7404 +#: vms-alpha.c:7481 #, c-format msgid " image type: %u (%s)" msgstr " type image: %u (%s)" -#: vms-alpha.c:7410 +#: vms-alpha.c:7487 msgid "native" msgstr "natif" -#: vms-alpha.c:7413 +#: vms-alpha.c:7490 msgid "CLI" msgstr "CLI" -#: vms-alpha.c:7420 +#: vms-alpha.c:7497 #, c-format msgid ", subtype: %u (%s)\n" msgstr ", sous-type: %u (%s)\n" -#: vms-alpha.c:7427 +#: vms-alpha.c:7504 #, c-format msgid " offsets: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n" msgstr " offsets: isd: %u, actif: %u, debug symbol: %u, id image: %u, patch: %u\n" -#: vms-alpha.c:7431 +#: vms-alpha.c:7508 #, c-format msgid " fixup info rva: " msgstr " correctif info rva: " -#: vms-alpha.c:7433 +#: vms-alpha.c:7510 #, c-format msgid ", symbol vector rva: " msgstr ", vecteur de symbol rva: " -#: vms-alpha.c:7436 +#: vms-alpha.c:7513 #, c-format msgid "" "\n" @@ -7399,460 +7533,460 @@ "\n" " offset tableau version: %u\n" -#: vms-alpha.c:7441 +#: vms-alpha.c:7518 #, c-format msgid " img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n" msgstr " décompte E/S img: %u, nbr canaux: %u, priv req: %08x%08x\n" -#: vms-alpha.c:7447 +#: vms-alpha.c:7524 #, c-format msgid " linker flags: %08x:" msgstr " fanions lieur: %08x:" -#: vms-alpha.c:7478 +#: vms-alpha.c:7555 #, c-format msgid " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n" msgstr " ident: 0x%08x, ver sys: 0x%08x, apparier ctrl: %u, taille vectsym: %u\n" -#: vms-alpha.c:7484 +#: vms-alpha.c:7561 #, c-format msgid " BPAGE: %u" msgstr " BPAGE: %u" -#: vms-alpha.c:7491 +#: vms-alpha.c:7568 #, c-format msgid ", ext fixup offset: %u, no_opt psect off: %u" msgstr ", offset correctif étendu: %u, offset no_opt psect: %u" -#: vms-alpha.c:7494 +#: vms-alpha.c:7571 #, c-format msgid ", alias: %u\n" msgstr ", alias: %u\n" -#: vms-alpha.c:7502 +#: vms-alpha.c:7579 #, c-format msgid "system version array information:\n" msgstr "information sur table de version système:\n" -#: vms-alpha.c:7506 +#: vms-alpha.c:7583 #, c-format msgid "cannot read EIHVN header\n" msgstr "ne peut lire l'en-tête EIHVN\n" -#: vms-alpha.c:7516 +#: vms-alpha.c:7593 #, c-format msgid "cannot read EIHVN version\n" msgstr "ne peut lire la version EIHVN\n" -#: vms-alpha.c:7519 +#: vms-alpha.c:7596 #, c-format msgid " %02u " msgstr " %02u " -#: vms-alpha.c:7523 +#: vms-alpha.c:7600 msgid "BASE_IMAGE " msgstr "BASE_IMAGE " -#: vms-alpha.c:7526 +#: vms-alpha.c:7603 msgid "MEMORY_MANAGEMENT" msgstr "MEMORY_MANAGEMENT" -#: vms-alpha.c:7529 +#: vms-alpha.c:7606 msgid "IO " msgstr "IO " -#: vms-alpha.c:7532 +#: vms-alpha.c:7609 msgid "FILES_VOLUMES " msgstr "FILES_VOLUMES " -#: vms-alpha.c:7535 +#: vms-alpha.c:7612 msgid "PROCESS_SCHED " msgstr "PROCESS_SCHED " -#: vms-alpha.c:7538 +#: vms-alpha.c:7615 msgid "SYSGEN " msgstr "SYSGEN " -#: vms-alpha.c:7541 +#: vms-alpha.c:7618 msgid "CLUSTERS_LOCKMGR " msgstr "CLUSTERS_LOCKMGR " -#: vms-alpha.c:7544 +#: vms-alpha.c:7621 msgid "LOGICAL_NAMES " msgstr "LOGICAL_NAMES " -#: vms-alpha.c:7547 +#: vms-alpha.c:7624 msgid "SECURITY " msgstr "SECURITY " -#: vms-alpha.c:7550 +#: vms-alpha.c:7627 msgid "IMAGE_ACTIVATOR " msgstr "IMAGE_ACTIVATOR " -#: vms-alpha.c:7553 +#: vms-alpha.c:7630 msgid "NETWORKS " msgstr "NETWORKS " -#: vms-alpha.c:7556 +#: vms-alpha.c:7633 msgid "COUNTERS " msgstr "COUNTERS " -#: vms-alpha.c:7559 +#: vms-alpha.c:7636 msgid "STABLE " msgstr "STABLE " -#: vms-alpha.c:7562 +#: vms-alpha.c:7639 msgid "MISC " msgstr "MISC " -#: vms-alpha.c:7565 +#: vms-alpha.c:7642 msgid "CPU " msgstr "CPU " -#: vms-alpha.c:7568 +#: vms-alpha.c:7645 msgid "VOLATILE " msgstr "VOLATILE " -#: vms-alpha.c:7571 +#: vms-alpha.c:7648 msgid "SHELL " msgstr "SHELL " -#: vms-alpha.c:7574 +#: vms-alpha.c:7651 msgid "POSIX " msgstr "POSIX " -#: vms-alpha.c:7577 +#: vms-alpha.c:7654 msgid "MULTI_PROCESSING " msgstr "MULTI_PROCESSING " -#: vms-alpha.c:7580 +#: vms-alpha.c:7657 msgid "GALAXY " msgstr "GALAXY " -#: vms-alpha.c:7583 +#: vms-alpha.c:7660 msgid "*unknown* " msgstr "*inconnu* " -#: vms-alpha.c:7599 vms-alpha.c:7874 +#: vms-alpha.c:7676 vms-alpha.c:7951 #, c-format msgid "cannot read EIHA\n" msgstr "ne peut lire EIHA\n" -#: vms-alpha.c:7602 +#: vms-alpha.c:7679 #, c-format msgid "Image activation: (size=%u)\n" msgstr "Activation de l'image: (taille=%u)\n" -#: vms-alpha.c:7605 +#: vms-alpha.c:7682 #, c-format msgid " First address : 0x%08x 0x%08x\n" msgstr " Première adresse : 0x%08x 0x%08x\n" -#: vms-alpha.c:7609 +#: vms-alpha.c:7686 #, c-format msgid " Second address: 0x%08x 0x%08x\n" msgstr " Deuxième adresse : 0x%08x 0x%08x\n" -#: vms-alpha.c:7613 +#: vms-alpha.c:7690 #, c-format msgid " Third address : 0x%08x 0x%08x\n" msgstr " Troisième adresse: 0x%08x 0x%08x\n" -#: vms-alpha.c:7617 +#: vms-alpha.c:7694 #, c-format msgid " Fourth address: 0x%08x 0x%08x\n" msgstr " Quatrième adresse: 0x%08x 0x%08x\n" -#: vms-alpha.c:7621 +#: vms-alpha.c:7698 #, c-format msgid " Shared image : 0x%08x 0x%08x\n" msgstr " Image partagée : 0x%08x 0x%08x\n" -#: vms-alpha.c:7632 +#: vms-alpha.c:7709 #, c-format msgid "cannot read EIHI\n" msgstr "ne peut lire EIHI\n" -#: vms-alpha.c:7636 +#: vms-alpha.c:7713 #, c-format msgid "Image identification: (major: %u, minor: %u)\n" msgstr "Identification d'image: (majeur: %u, mineur: %u)\n" -#: vms-alpha.c:7639 +#: vms-alpha.c:7716 #, c-format msgid " image name : %.*s\n" msgstr " nom de l'image : %.*s\n" -#: vms-alpha.c:7641 +#: vms-alpha.c:7718 #, c-format msgid " link time : %s\n" msgstr " heure de liaison : %s\n" -#: vms-alpha.c:7643 +#: vms-alpha.c:7720 #, c-format msgid " image ident : %.*s\n" msgstr " ident image : %.*s\n" -#: vms-alpha.c:7645 +#: vms-alpha.c:7722 #, c-format msgid " linker ident : %.*s\n" msgstr " ident lieur : %.*s\n" -#: vms-alpha.c:7647 +#: vms-alpha.c:7724 #, c-format msgid " image build ident: %.*s\n" msgstr " ident construction image: %.*s\n" -#: vms-alpha.c:7657 +#: vms-alpha.c:7734 #, c-format msgid "cannot read EIHS\n" msgstr "ne peut lire EIHS\n" -#: vms-alpha.c:7661 +#: vms-alpha.c:7738 #, c-format msgid "Image symbol & debug table: (major: %u, minor: %u)\n" msgstr "Image des symboles et table debug: (majeur: %u, mineur: %u)\n" -#: vms-alpha.c:7667 +#: vms-alpha.c:7744 #, c-format msgid " debug symbol table : vbn: %u, size: %u (0x%x)\n" msgstr " table des symboles de debug : vbn: %u, taille: %u (0x%x)\n" -#: vms-alpha.c:7672 +#: vms-alpha.c:7749 #, c-format msgid " global symbol table: vbn: %u, records: %u\n" msgstr " table des symboles globale: vbn: %u, enregistrements: %u\n" -#: vms-alpha.c:7677 +#: vms-alpha.c:7754 #, c-format msgid " debug module table : vbn: %u, size: %u\n" msgstr " table des modules de debug: vbn: %u, taille: %u\n" -#: vms-alpha.c:7690 +#: vms-alpha.c:7767 #, c-format msgid "cannot read EISD\n" msgstr "ne peut lire EISD\n" -#: vms-alpha.c:7701 +#: vms-alpha.c:7778 #, c-format msgid "Image section descriptor: (major: %u, minor: %u, size: %u, offset: %u)\n" msgstr "Descripteur de section d'image: (majeur: %u, mineur: %u, taille: %u, offset: %u)\n" -#: vms-alpha.c:7709 +#: vms-alpha.c:7786 #, c-format msgid " section: base: 0x%08x%08x size: 0x%08x\n" msgstr " section: base: 0x%08x%08x taille: 0x%08x\n" -#: vms-alpha.c:7714 +#: vms-alpha.c:7791 #, c-format msgid " flags: 0x%04x" msgstr " fanions: 0x%04x" -#: vms-alpha.c:7752 +#: vms-alpha.c:7829 #, c-format msgid " vbn: %u, pfc: %u, matchctl: %u type: %u (" msgstr " vbn: %u, pfc: %u, matchctl: %u type: %u (" -#: vms-alpha.c:7758 +#: vms-alpha.c:7835 msgid "NORMAL" msgstr "NORMAL" -#: vms-alpha.c:7761 +#: vms-alpha.c:7838 msgid "SHRFXD" msgstr "SHRFXD" -#: vms-alpha.c:7764 +#: vms-alpha.c:7841 msgid "PRVFXD" msgstr "PRVFXD" -#: vms-alpha.c:7767 +#: vms-alpha.c:7844 msgid "SHRPIC" msgstr "SHRPIC" -#: vms-alpha.c:7770 +#: vms-alpha.c:7847 msgid "PRVPIC" msgstr "PRVPIC" -#: vms-alpha.c:7773 +#: vms-alpha.c:7850 msgid "USRSTACK" msgstr "USRSTACK" -#: vms-alpha.c:7779 +#: vms-alpha.c:7856 msgid ")\n" msgstr ")\n" -#: vms-alpha.c:7782 +#: vms-alpha.c:7859 #, c-format msgid " ident: 0x%08x, name: %.*s\n" msgstr " ident: 0x%08x, nom: %.*s\n" -#: vms-alpha.c:7792 +#: vms-alpha.c:7869 #, c-format msgid "cannot read DMT\n" msgstr "ne peut lire DMT\n" -#: vms-alpha.c:7796 +#: vms-alpha.c:7873 #, c-format msgid "Debug module table:\n" msgstr "Table de debug du module:\n" -#: vms-alpha.c:7805 +#: vms-alpha.c:7882 #, c-format msgid "cannot read DMT header\n" msgstr "ne peut lire l'en-tête DMT\n" -#: vms-alpha.c:7811 +#: vms-alpha.c:7888 #, c-format msgid " module offset: 0x%08x, size: 0x%08x, (%u psects)\n" msgstr " offset du module: 0x%08x, taille: 0x%08x, (%u psects)\n" -#: vms-alpha.c:7821 +#: vms-alpha.c:7898 #, c-format msgid "cannot read DMT psect\n" msgstr "ne peut lire le psect DMT\n" -#: vms-alpha.c:7825 +#: vms-alpha.c:7902 #, c-format msgid " psect start: 0x%08x, length: %u\n" msgstr " début psect: 0x%08x, longueur: %u\n" -#: vms-alpha.c:7838 +#: vms-alpha.c:7915 #, c-format msgid "cannot read DST\n" msgstr "ne peut lire DST\n" -#: vms-alpha.c:7848 +#: vms-alpha.c:7925 #, c-format msgid "cannot read GST\n" msgstr "ne peut lire GST\n" -#: vms-alpha.c:7852 +#: vms-alpha.c:7929 #, c-format msgid "Global symbol table:\n" msgstr "Table des symboles globaux:\n" -#: vms-alpha.c:7881 +#: vms-alpha.c:7958 #, c-format msgid "Image activator fixup: (major: %u, minor: %u)\n" msgstr "Correction de l'activateur de l'image: (majeur: %u, mineur: %u)\n" -#: vms-alpha.c:7885 +#: vms-alpha.c:7962 #, c-format msgid " iaflink : 0x%08x %08x\n" msgstr " lien iaf : 0x%08x %08x\n" -#: vms-alpha.c:7889 +#: vms-alpha.c:7966 #, c-format msgid " fixuplnk: 0x%08x %08x\n" msgstr " lien correctif: 0x%08x %08x\n" -#: vms-alpha.c:7892 +#: vms-alpha.c:7969 #, c-format msgid " size : %u\n" msgstr " taille : %u\n" -#: vms-alpha.c:7894 +#: vms-alpha.c:7971 #, c-format msgid " flags: 0x%08x\n" msgstr " fanions: 0x%08x\n" -#: vms-alpha.c:7899 +#: vms-alpha.c:7976 #, c-format msgid " qrelfixoff: %5u, lrelfixoff: %5u\n" msgstr " qrelfixoff: %5u, lrelfixoff: %5u\n" -#: vms-alpha.c:7904 +#: vms-alpha.c:7981 #, c-format msgid " qdotadroff: %5u, ldotadroff: %5u\n" msgstr " qdotadroff: %5u, ldotadroff: %5u\n" -#: vms-alpha.c:7909 +#: vms-alpha.c:7986 #, c-format msgid " codeadroff: %5u, lpfixoff : %5u\n" msgstr " codeadroff: %5u, lpfixoff : %5u\n" -#: vms-alpha.c:7912 +#: vms-alpha.c:7989 #, c-format msgid " chgprtoff : %5u\n" msgstr " chgprtoff : %5u\n" -#: vms-alpha.c:7916 +#: vms-alpha.c:7993 #, c-format msgid " shlstoff : %5u, shrimgcnt : %5u\n" msgstr " shlstoff : %5u, shrimgcnt : %5u\n" -#: vms-alpha.c:7919 +#: vms-alpha.c:7996 #, c-format msgid " shlextra : %5u, permctx : %5u\n" msgstr " shlextra : %5u, permctx : %5u\n" -#: vms-alpha.c:7922 +#: vms-alpha.c:7999 #, c-format msgid " base_va : 0x%08x\n" msgstr " base_va : 0x%08x\n" -#: vms-alpha.c:7924 +#: vms-alpha.c:8001 #, c-format msgid " lppsbfixoff: %5u\n" msgstr " lppsbfixoff: %5u\n" -#: vms-alpha.c:7932 +#: vms-alpha.c:8009 #, c-format msgid " Shareable images:\n" msgstr " Images partageables:\n" -#: vms-alpha.c:7937 +#: vms-alpha.c:8014 #, c-format msgid " %u: size: %u, flags: 0x%02x, name: %.*s\n" msgstr " %u: taille: %u, fanions: 0x%02x, nom: %.*s\n" -#: vms-alpha.c:7944 +#: vms-alpha.c:8021 #, c-format msgid " quad-word relocation fixups:\n" msgstr " correctifs du réadressage des quad-mots:\n" -#: vms-alpha.c:7949 +#: vms-alpha.c:8026 #, c-format msgid " long-word relocation fixups:\n" msgstr " correctifs du réadressage des mots longs:\n" -#: vms-alpha.c:7954 +#: vms-alpha.c:8031 #, c-format msgid " quad-word .address reference fixups:\n" msgstr " correctifs des références quad-mots « .address »:\n" -#: vms-alpha.c:7959 +#: vms-alpha.c:8036 #, c-format msgid " long-word .address reference fixups:\n" msgstr " correctifs des références mots longs « .address »:\n" -#: vms-alpha.c:7964 +#: vms-alpha.c:8041 #, c-format msgid " Code Address Reference Fixups:\n" msgstr " Correctifs des références des adresses de code:\n" -#: vms-alpha.c:7969 +#: vms-alpha.c:8046 #, c-format msgid " Linkage Pairs Reference Fixups:\n" msgstr " Correctifs des références des paires de liaison:\n" -#: vms-alpha.c:7978 +#: vms-alpha.c:8055 #, c-format msgid " Change Protection (%u entries):\n" msgstr " Changement de protection (%u entrées):\n" -#: vms-alpha.c:7984 +#: vms-alpha.c:8061 #, c-format msgid " base: 0x%08x %08x, size: 0x%08x, prot: 0x%08x " msgstr " base: 0x%08x %08x, taille: 0x%08x, prot: 0x%08x " #. FIXME: we do not yet support relocatable link. It is not obvious #. how to do it for debug infos. -#: vms-alpha.c:8824 +#: vms-alpha.c:8901 msgid "%P: relocatable link is not supported\n" msgstr "%P: lien relocalisable pas supporté\n" -#: vms-alpha.c:8895 +#: vms-alpha.c:8972 #, c-format msgid "%P: multiple entry points: in modules %B and %B\n" msgstr "%P: points d'entrée multiples: dans les modules %B et %B\n" @@ -7895,13 +8029,13 @@ #: xcofflink.c:1502 #, c-format -msgid "%B: bad XTY_ER symbol `%s': class %d scnum %d scnlen %d" -msgstr "%B: symbole XTY_ER « %s » erroné: classe %d scnum %d scnlen %d" +msgid "%B: bad XTY_ER symbol `%s': class %d scnum %d scnlen %Ld" +msgstr "%B: symbole XTY_ER « %s » erroné: classe %d scnum %d scnlen %Ld" #: xcofflink.c:1532 #, c-format -msgid "%B: XMC_TC0 symbol `%s' is class %d scnlen %d" -msgstr "%B: XMC_TC0 symbol « %s » est la classe %d scnlen %d" +msgid "%B: XMC_TC0 symbol `%s' is class %d scnlen %Ld" +msgstr "%B: XMC_TC0 symbol « %s » est la classe %d scnlen %Ld" #: xcofflink.c:1679 #, c-format @@ -7915,8 +8049,8 @@ #: xcofflink.c:2108 #, c-format -msgid "%B: reloc %s:%d not in csect" -msgstr "%B: réadressage %s:%d n'est pas dans csect" +msgid "%B: reloc %s:%Ld not in csect" +msgstr "%B: le réadressage %s:%Ld n'est pas dans csect" #: xcofflink.c:3198 #, c-format @@ -7949,41 +8083,46 @@ #: xcofflink.c:5115 #, c-format -msgid "TOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compiling" -msgstr "Débordement de la table des entrées: 0x%lx > 0x10000; essayez l'option -mminimal-toc à la compilation" +msgid "TOC overflow: %#Lx > 0x10000; try -mminimal-toc when compiling" +msgstr "Débordement de la table des entrées: %#Lx > 0x10000; essayez l'option -mminimal-toc à la compilation" -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:1890 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:1890 #, c-format msgid "Invalid AArch64 reloc number: %d" msgstr "Numéro de réadressage AArch64 invalide: %d" -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:4777 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:4779 msgid "%B: error: Erratum 835769 stub out of range (input file too large)" msgstr "%B: erreur: L'ébauche d'erratum du 835769 est hors limite (fichier d'entrée trop grand)" -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:4858 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:4860 msgid "%B: error: Erratum 843419 stub out of range (input file too large)" msgstr "%B: erreur: L'ébauche d'erratum du 843419 est hors limite (fichier d'entrée trop grand)" -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:5340 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:5366 #, c-format msgid "%B: relocation %s against symbol `%s' which may bind externally can not be used when making a shared object; recompile with -fPIC" msgstr "%B: réadressage de %s en vertu du symbol « %s » qui peut être lié avec l'extérieur ne peut être utilisé lors de la création d'un objet partagé; recompilez avec -fPIC" -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:5431 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:5457 #, c-format msgid "%B: Local symbol descriptor table be NULL when applying relocation %s against local symbol" msgstr "%B: La table des descripteurs de symboles locaux peut être NULL en application le réadressage %s sur un symbole local" -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6459 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6479 msgid "Too many GOT entries for -fpic, please recompile with -fPIC" msgstr "Trop d'entrées GOT pour -fpic, recompilez avec -fPIC" -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6487 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6507 msgid "One possible cause of this error is that the symbol is being referenced in the indicated code as if it had a larger alignment than was declared where it was defined." msgstr "Une cause possible pour cette erreur est que le symbole est référencé dans le code indiqué comme si il avait un alignement plus grand que celui qui a été déclaré lors de sa définition." -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2600 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:7084 +#, c-format +msgid "%B: relocation %s against `%s' can not be used when making a shared object" +msgstr "%B: le réadressage %s vers « %s » ne peut pas être utilisé en créant un objet partagé" + +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2570 msgid "" "%B: ABI is incompatible with that of the selected emulation:\n" " target emulation `%s' does not match `%s'" @@ -7991,10 +8130,18 @@ "%B: l'ABI est incompatible avec celle de l'émulation sélectionnée:\n" " l'émulation de la cible « %s » ne correspond pas à « %s »" -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2620 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2590 msgid "%B: can't link hard-float modules with soft-float modules" msgstr "%B: impossible de lier des modules utilisant des flottants matériels avec des modules utilisant des flottants logiciels" +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:3070 +msgid "%B(%A+0x%lx): %d bytes required for alignment to %d-byte boundary, but only %d present" +msgstr "%B(%A+0x%lx: %d octets requis pour aligner sur une frontière de %d octets mais seulement %d sont présents" + +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:3136 +msgid "%B(%A+0x%lx): Unable to clear RISCV_PCREL_HI20 relocfor cooresponding RISCV_PCREL_LO12 reloc" +msgstr "%B(%A+0x%lx): Impossible d'effacer le réadressage RISCV_PCREL_HI20 pour le réadressage RISCV_PCREL_LO12 correspondant" + #: peigen.c:157 pepigen.c:157 pex64igen.c:157 msgid "%B: unable to find name for empty section" msgstr "%B: impossible de trouver le nom pour une section vide" @@ -8008,8 +8155,8 @@ msgstr "%B: impossible de créer une section vide factice" #: peigen.c:532 pepigen.c:532 pex64igen.c:532 -msgid "%B: aout header specifies an invalid number of data-directory entries: %d" -msgstr "%B: l'en-tête aout spécifie un nombre invalide d'entrées de répertoire de données: %d" +msgid "%B: aout header specifies an invalid number of data-directory entries: %ld" +msgstr "%B: l'en-tête aout spécifie un nombre invalide d'entrées de répertoire de données: %ld" #: peigen.c:1089 pepigen.c:1089 pex64igen.c:1089 #, c-format @@ -8171,13 +8318,13 @@ "\n" "Il y a un premier « thunk », mais la section le contenant ne peut être repérée\n" -#: peigen.c:1518 peigen.c:1556 pepigen.c:1518 pepigen.c:1556 pex64igen.c:1518 -#: pex64igen.c:1556 +#: peigen.c:1518 peigen.c:1557 pepigen.c:1518 pepigen.c:1557 pex64igen.c:1518 +#: pex64igen.c:1557 #, c-format msgid "\t" msgstr "\t" -#: peigen.c:1649 pepigen.c:1649 pex64igen.c:1649 +#: peigen.c:1650 pepigen.c:1650 pex64igen.c:1650 #, c-format msgid "" "\n" @@ -8186,7 +8333,7 @@ "\n" "Il y a une table d'exportation, mais la section la contenant n'a pu être repérée\n" -#: peigen.c:1655 pepigen.c:1655 pex64igen.c:1655 +#: peigen.c:1656 pepigen.c:1656 pex64igen.c:1656 #, c-format msgid "" "\n" @@ -8195,7 +8342,7 @@ "\n" "Il y a une table d'exportation dans %s, mais cette section n'a pas de contenu\n" -#: peigen.c:1665 pepigen.c:1665 pex64igen.c:1665 +#: peigen.c:1666 pepigen.c:1666 pex64igen.c:1666 #, c-format msgid "" "\n" @@ -8204,7 +8351,7 @@ "\n" "Il y a une table d'exportation dans %s, mais elle ne rentre pas dans la section\n" -#: peigen.c:1676 pepigen.c:1676 pex64igen.c:1676 +#: peigen.c:1677 pepigen.c:1677 pex64igen.c:1677 #, c-format msgid "" "\n" @@ -8213,7 +8360,7 @@ "\n" "Il y a une table d'exportation dans %s, mais elle est trop petite (%d)\n" -#: peigen.c:1682 pepigen.c:1682 pex64igen.c:1682 +#: peigen.c:1683 pepigen.c:1683 pex64igen.c:1683 #, c-format msgid "" "\n" @@ -8222,7 +8369,7 @@ "\n" "Il y a une table d'exportation dans %s à 0x%lx\n" -#: peigen.c:1710 pepigen.c:1710 pex64igen.c:1710 +#: peigen.c:1711 pepigen.c:1711 pex64igen.c:1711 #, c-format msgid "" "\n" @@ -8233,67 +8380,67 @@ "Les tables d'exportation (contenus interprété de la section %s)\n" "\n" -#: peigen.c:1714 pepigen.c:1714 pex64igen.c:1714 +#: peigen.c:1715 pepigen.c:1715 pex64igen.c:1715 #, c-format msgid "Export Flags \t\t\t%lx\n" msgstr "Fanion d'exportation \t\t\t%lx\n" -#: peigen.c:1717 pepigen.c:1717 pex64igen.c:1717 +#: peigen.c:1718 pepigen.c:1718 pex64igen.c:1718 #, c-format msgid "Time/Date stamp \t\t%lx\n" msgstr "Tampon Heure/Date \t\t%lx\n" -#: peigen.c:1721 pepigen.c:1721 pex64igen.c:1721 +#: peigen.c:1722 pepigen.c:1722 pex64igen.c:1722 #, c-format msgid "Major/Minor \t\t\t%d/%d\n" msgstr "Majeur/Mineur \t\t\t%d/%d\n" -#: peigen.c:1724 pepigen.c:1724 pex64igen.c:1724 +#: peigen.c:1725 pepigen.c:1725 pex64igen.c:1725 #, c-format msgid "Name \t\t\t\t" msgstr "Nom \t\t\t\t" -#: peigen.c:1735 pepigen.c:1735 pex64igen.c:1735 +#: peigen.c:1736 pepigen.c:1736 pex64igen.c:1736 #, c-format msgid "Ordinal Base \t\t\t%ld\n" msgstr "base de nombre ordinal \t\t\t%ld\n" -#: peigen.c:1738 pepigen.c:1738 pex64igen.c:1738 +#: peigen.c:1739 pepigen.c:1739 pex64igen.c:1739 #, c-format msgid "Number in:\n" msgstr "Numéro dans:\n" -#: peigen.c:1741 pepigen.c:1741 pex64igen.c:1741 +#: peigen.c:1742 pepigen.c:1742 pex64igen.c:1742 #, c-format msgid "\tExport Address Table \t\t%08lx\n" msgstr "\tTable d'adresses d'exportation \t\t%08lx\n" -#: peigen.c:1745 pepigen.c:1745 pex64igen.c:1745 +#: peigen.c:1746 pepigen.c:1746 pex64igen.c:1746 #, c-format msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n" msgstr "\tTable [Nom pointeur/Nombre ordinal]\t%08lx\n" -#: peigen.c:1748 pepigen.c:1748 pex64igen.c:1748 +#: peigen.c:1749 pepigen.c:1749 pex64igen.c:1749 #, c-format msgid "Table Addresses\n" msgstr "Table d'adresses\n" -#: peigen.c:1751 pepigen.c:1751 pex64igen.c:1751 +#: peigen.c:1752 pepigen.c:1752 pex64igen.c:1752 #, c-format msgid "\tExport Address Table \t\t" msgstr "\tTable d'adresse d'exportation \t\t" -#: peigen.c:1756 pepigen.c:1756 pex64igen.c:1756 +#: peigen.c:1757 pepigen.c:1757 pex64igen.c:1757 #, c-format msgid "\tName Pointer Table \t\t" msgstr "\tTable des noms de pointeurs \t\t" -#: peigen.c:1761 pepigen.c:1761 pex64igen.c:1761 +#: peigen.c:1762 pepigen.c:1762 pex64igen.c:1762 #, c-format msgid "\tOrdinal Table \t\t\t" msgstr "\tTable des ordinals \t\t\t" -#: peigen.c:1775 pepigen.c:1775 pex64igen.c:1775 +#: peigen.c:1776 pepigen.c:1776 pex64igen.c:1776 #, c-format msgid "" "\n" @@ -8302,20 +8449,20 @@ "\n" "Table d'adresses d'exportation -- base de nombre ordinal %ld\n" -#: peigen.c:1784 pepigen.c:1784 pex64igen.c:1784 +#: peigen.c:1785 pepigen.c:1785 pex64igen.c:1785 #, c-format msgid "\tInvalid Export Address Table rva (0x%lx) or entry count (0x%lx)\n" msgstr "\tL'adresse virtuelle relative de la table des adresses exportées (0x%lx) ou le nombre d'entrées (0x%lx) est invalide\n" -#: peigen.c:1803 pepigen.c:1803 pex64igen.c:1803 +#: peigen.c:1804 pepigen.c:1804 pex64igen.c:1804 msgid "Forwarder RVA" msgstr "Adresseur RVA" -#: peigen.c:1815 pepigen.c:1815 pex64igen.c:1815 +#: peigen.c:1816 pepigen.c:1816 pex64igen.c:1816 msgid "Export RVA" msgstr "Exportation RVA" -#: peigen.c:1822 pepigen.c:1822 pex64igen.c:1822 +#: peigen.c:1823 pepigen.c:1823 pex64igen.c:1823 #, c-format msgid "" "\n" @@ -8324,29 +8471,29 @@ "\n" "Table [Ordinal/Nom de pointeur]\n" -#: peigen.c:1830 pepigen.c:1830 pex64igen.c:1830 +#: peigen.c:1831 pepigen.c:1831 pex64igen.c:1831 #, c-format msgid "\tInvalid Name Pointer Table rva (0x%lx) or entry count (0x%lx)\n" msgstr "\tAdresse virtuelle relative de la table des pointeurs de noms (0x%lx) ou nombre d'entrées (0x%lx) invalide\n" -#: peigen.c:1837 pepigen.c:1837 pex64igen.c:1837 +#: peigen.c:1838 pepigen.c:1838 pex64igen.c:1838 #, c-format msgid "\tInvalid Ordinal Table rva (0x%lx) or entry count (0x%lx)\n" msgstr "\tAdresse virtuelle relative de la table ordinale (0x%lx) ou nombre d'entrées (0x%lx) invalide\n" -#: peigen.c:1851 pepigen.c:1851 pex64igen.c:1851 +#: peigen.c:1852 pepigen.c:1852 pex64igen.c:1852 #, c-format msgid "\t[%4ld] \n" msgstr "\t[%4ld] \n" -#: peigen.c:1905 peigen.c:2102 pepigen.c:1905 pepigen.c:2102 pex64igen.c:1905 -#: pex64igen.c:2102 +#: peigen.c:1906 peigen.c:2103 pepigen.c:1906 pepigen.c:2103 pex64igen.c:1906 +#: pex64igen.c:2103 #, c-format msgid "Warning, .pdata section size (%ld) is not a multiple of %d\n" msgstr "Attention, taille de la section .pdata (%ld) n'est pas un multiple de %d\n" -#: peigen.c:1909 peigen.c:2106 pepigen.c:1909 pepigen.c:2106 pex64igen.c:1909 -#: pex64igen.c:2106 +#: peigen.c:1910 peigen.c:2107 pepigen.c:1910 pepigen.c:2107 pex64igen.c:1910 +#: pex64igen.c:2107 #, c-format msgid "" "\n" @@ -8355,12 +8502,12 @@ "\n" "La table de fonctions (interprétation du contenu de la section .pdata)\n" -#: peigen.c:1912 pepigen.c:1912 pex64igen.c:1912 +#: peigen.c:1913 pepigen.c:1913 pex64igen.c:1913 #, c-format msgid " vma:\t\t\tBegin Address End Address Unwind Info\n" msgstr " vma:\t\t\tDébut Adresse Fin Adresse Unwind Info\n" -#: peigen.c:1914 pepigen.c:1914 pex64igen.c:1914 +#: peigen.c:1915 pepigen.c:1915 pex64igen.c:1915 #, c-format msgid "" " vma:\t\tBegin End EH EH PrologEnd Exception\n" @@ -8369,27 +8516,27 @@ " vma:\t\tDébut Fin EH EH FinProlog Exception\n" " \t\tAdresse Adresse Handler Données Adresse Masque\n" -#: peigen.c:1927 pepigen.c:1927 pex64igen.c:1927 +#: peigen.c:1928 pepigen.c:1928 pex64igen.c:1928 #, c-format msgid "Virtual size of .pdata section (%ld) larger than real size (%ld)\n" msgstr "La taille virtuelle de la section .pdata (%ld) est plus grande que la taille réelle (%ld)\n" -#: peigen.c:1997 pepigen.c:1997 pex64igen.c:1997 +#: peigen.c:1998 pepigen.c:1998 pex64igen.c:1998 #, c-format msgid " Register save millicode" msgstr " Registre a préservé le millicode" -#: peigen.c:2000 pepigen.c:2000 pex64igen.c:2000 +#: peigen.c:2001 pepigen.c:2001 pex64igen.c:2001 #, c-format msgid " Register restore millicode" msgstr " Registre a restauré le millicode" -#: peigen.c:2003 pepigen.c:2003 pex64igen.c:2003 +#: peigen.c:2004 pepigen.c:2004 pex64igen.c:2004 #, c-format msgid " Glue code sequence" msgstr " Séquence du code de liants" -#: peigen.c:2108 pepigen.c:2108 pex64igen.c:2108 +#: peigen.c:2109 pepigen.c:2109 pex64igen.c:2109 #, c-format msgid "" " vma:\t\tBegin Prolog Function Flags Exception EH\n" @@ -8398,7 +8545,7 @@ " vma:\t\tDébut Long. Long. Fanions Gestion. EH\n" " \t\tAdresse Prolog. Fonction 32b exc Exception Données\n" -#: peigen.c:2230 pepigen.c:2230 pex64igen.c:2230 +#: peigen.c:2231 pepigen.c:2231 pex64igen.c:2231 #, c-format msgid "" "\n" @@ -8409,7 +8556,7 @@ "\n" "Fichier de base des réadressages PE (contenus interprétés de la section .reloc)\n" -#: peigen.c:2260 pepigen.c:2260 pex64igen.c:2260 +#: peigen.c:2261 pepigen.c:2261 pex64igen.c:2261 #, c-format msgid "" "\n" @@ -8418,62 +8565,62 @@ "\n" "Adresse virtuelle: %08lx taille des morceaux %ld (0x%lx) nombre de correctifs %ld\n" -#: peigen.c:2278 pepigen.c:2278 pex64igen.c:2278 +#: peigen.c:2279 pepigen.c:2279 pex64igen.c:2279 #, c-format msgid "\treloc %4d offset %4x [%4lx] %s" msgstr "\tréadressage %4d décalage %4x [%4lx] %s" -#: peigen.c:2339 pepigen.c:2339 pex64igen.c:2339 +#: peigen.c:2340 pepigen.c:2340 pex64igen.c:2340 #, c-format msgid "%03x %*.s Entry: " msgstr "%03x %*.s Entrée: " -#: peigen.c:2363 pepigen.c:2363 pex64igen.c:2363 +#: peigen.c:2364 pepigen.c:2364 pex64igen.c:2364 #, c-format msgid "name: [val: %08lx len %d]: " msgstr "nom: [val: %08lx long %d]: " -#: peigen.c:2383 pepigen.c:2383 pex64igen.c:2383 +#: peigen.c:2384 pepigen.c:2384 pex64igen.c:2384 #, c-format msgid "\n" msgstr "\n" -#: peigen.c:2393 pepigen.c:2393 pex64igen.c:2393 +#: peigen.c:2394 pepigen.c:2394 pex64igen.c:2394 #, c-format msgid "\n" msgstr "\n" -#: peigen.c:2398 pepigen.c:2398 pex64igen.c:2398 +#: peigen.c:2399 pepigen.c:2399 pex64igen.c:2399 #, c-format msgid "ID: %#08lx" msgstr "ID: %#08lx" -#: peigen.c:2401 pepigen.c:2401 pex64igen.c:2401 +#: peigen.c:2402 pepigen.c:2402 pex64igen.c:2402 #, c-format msgid ", Value: %#08lx\n" msgstr ", Valeur: %#08lx\n" -#: peigen.c:2423 pepigen.c:2423 pex64igen.c:2423 +#: peigen.c:2424 pepigen.c:2424 pex64igen.c:2424 #, c-format msgid "%03x %*.s Leaf: Addr: %#08lx, Size: %#08lx, Codepage: %d\n" msgstr "%03x %*.s Feuilles: Adr: %#08lx, Taille: %#08lx, Codepage: %d\n" -#: peigen.c:2465 pepigen.c:2465 pex64igen.c:2465 +#: peigen.c:2466 pepigen.c:2466 pex64igen.c:2466 #, c-format msgid "\n" msgstr "\n" -#: peigen.c:2473 pepigen.c:2473 pex64igen.c:2473 +#: peigen.c:2474 pepigen.c:2474 pex64igen.c:2474 #, c-format msgid " Table: Char: %d, Time: %08lx, Ver: %d/%d, Num Names: %d, IDs: %d\n" msgstr "Table: Car: %d, Temps: %08lx, Ver: %d/%d, Nbr Noms: %d, IDs: %d\n" -#: peigen.c:2562 pepigen.c:2562 pex64igen.c:2562 +#: peigen.c:2563 pepigen.c:2563 pex64igen.c:2563 #, c-format msgid "Corrupt .rsrc section detected!\n" msgstr "Détection d'une section .rsrc corrompue !\n" -#: peigen.c:2586 pepigen.c:2586 pex64igen.c:2586 +#: peigen.c:2587 pepigen.c:2587 pex64igen.c:2587 #, c-format msgid "" "\n" @@ -8482,17 +8629,17 @@ "\n" "ATTENTION: Données en trop dans la section .rsrc – elles seront ignorées par Windows:\n" -#: peigen.c:2592 pepigen.c:2592 pex64igen.c:2592 +#: peigen.c:2593 pepigen.c:2593 pex64igen.c:2593 #, c-format msgid " String table starts at offset: %#03x\n" msgstr " La table des chaînes démarre au décalage: %#03x\n" -#: peigen.c:2595 pepigen.c:2595 pex64igen.c:2595 +#: peigen.c:2596 pepigen.c:2596 pex64igen.c:2596 #, c-format msgid " Resources start at offset: %#03x\n" msgstr " Les ressources démarrent au décalage: %#03x\n" -#: peigen.c:2647 pepigen.c:2647 pex64igen.c:2647 +#: peigen.c:2648 pepigen.c:2648 pex64igen.c:2648 #, c-format msgid "" "\n" @@ -8501,7 +8648,7 @@ "\n" "Ceci est un répertoire de débogage, mais la section le contenant ne peut être repérée\n" -#: peigen.c:2653 pepigen.c:2653 pex64igen.c:2653 +#: peigen.c:2654 pepigen.c:2654 pex64igen.c:2654 #, c-format msgid "" "\n" @@ -8510,7 +8657,7 @@ "\n" "Il y a un répertoire de débogage dans %s, mais cette section n'a pas de contenu\n" -#: peigen.c:2660 pepigen.c:2660 pex64igen.c:2660 +#: peigen.c:2661 pepigen.c:2661 pex64igen.c:2661 #, c-format msgid "" "\n" @@ -8519,7 +8666,7 @@ "\n" "Erreur: la section %s contient l'adresse de départ des données de débogage mais elle est trop petite\n" -#: peigen.c:2665 pepigen.c:2665 pex64igen.c:2665 +#: peigen.c:2666 pepigen.c:2666 pex64igen.c:2666 #, c-format msgid "" "\n" @@ -8529,24 +8676,24 @@ "\n" "Il y a un répertoire de débogage dans %s à 0x%lx\n" -#: peigen.c:2672 pepigen.c:2672 pex64igen.c:2672 +#: peigen.c:2673 pepigen.c:2673 pex64igen.c:2673 #, c-format msgid "The debug data size field in the data directory is too big for the section" msgstr "Le champ de taille des données de débogage dans le répertoire de données est trop grand pour la section" # RVA = Adresse Virtuelle Relative mais AVR semble inconnu sur internet. Gageons que les utilisateurs trouverons plus # facilement la signification de RVA dans ce contexte. -#: peigen.c:2677 pepigen.c:2677 pex64igen.c:2677 +#: peigen.c:2678 pepigen.c:2678 pex64igen.c:2678 #, c-format msgid "Type Size Rva Offset\n" msgstr "Type Taille Rva Décalage\n" -#: peigen.c:2725 pepigen.c:2725 pex64igen.c:2725 +#: peigen.c:2726 pepigen.c:2726 pex64igen.c:2726 #, c-format msgid "(format %c%c%c%c signature %s age %ld)\n" msgstr "(format %c%c%c%c signature %s age %ld)\n" -#: peigen.c:2733 pepigen.c:2733 pex64igen.c:2733 +#: peigen.c:2734 pepigen.c:2734 pex64igen.c:2734 #, c-format msgid "The debug directory size is not a multiple of the debug directory entry size\n" msgstr "La taille du répertoire de débogage n'est pas un multiple de la taille d'une entrée du répertoire de débogage\n" @@ -8554,7 +8701,7 @@ #. The MS dumpbin program reportedly ands with 0xff0f before #. printing the characteristics field. Not sure why. No reason to #. emulate it here. -#: peigen.c:2753 pepigen.c:2753 pex64igen.c:2753 +#: peigen.c:2754 pepigen.c:2754 pex64igen.c:2754 #, c-format msgid "" "\n" @@ -8563,82 +8710,112 @@ "\n" "Caractéristiques 0x%x\n" -#: peigen.c:2988 pepigen.c:2988 pex64igen.c:2988 +#: peigen.c:2989 pepigen.c:2989 pex64igen.c:2989 #, c-format -msgid "%B: Data Directory size (%lx) exceeds space left in section (%lx)" -msgstr "%B: La taille du répertoire de données (%lx) excède l'espace restant dans la section (%lx)" +msgid "%B: Data Directory size (%lx) exceeds space left in section (%Lx)" +msgstr "%B: La taille du répertoire de données (%lx) excède l'espace restant dans la section (%Lx)" -#: peigen.c:3018 pepigen.c:3018 pex64igen.c:3018 +#: peigen.c:3019 pepigen.c:3019 pex64igen.c:3019 msgid "Failed to update file offsets in debug directory" msgstr "Échec lors de la mise à jour des décalages du fichier dans le répertoire de débogage" -#: peigen.c:3024 pepigen.c:3024 pex64igen.c:3024 +#: peigen.c:3025 pepigen.c:3025 pex64igen.c:3025 msgid "%B: Failed to read debug data section" msgstr "%B: Échec lors de la lecture de la section des données de débogage" -#: peigen.c:3840 pepigen.c:3840 pex64igen.c:3840 +#: peigen.c:3841 pepigen.c:3841 pex64igen.c:3841 #, c-format msgid ".rsrc merge failure: duplicate string resource: %d" msgstr "échec de la fusion de .rsrc: ressource chaîne dupliquée: %d" -#: peigen.c:3975 pepigen.c:3975 pex64igen.c:3975 +#: peigen.c:3976 pepigen.c:3976 pex64igen.c:3976 msgid ".rsrc merge failure: multiple non-default manifests" msgstr "échec de la fusion de .rsrc: plusieurs manifestes pas par défaut" -#: peigen.c:3993 pepigen.c:3993 pex64igen.c:3993 +#: peigen.c:3994 pepigen.c:3994 pex64igen.c:3994 msgid ".rsrc merge failure: a directory matches a leaf" msgstr "échec de la fusion de .rsrc: un répertoire correspond à une feuille" -#: peigen.c:4035 pepigen.c:4035 pex64igen.c:4035 +#: peigen.c:4036 pepigen.c:4036 pex64igen.c:4036 msgid ".rsrc merge failure: duplicate leaf" msgstr "échec de la fusion de .rsrc: feuille dupliquée" -#: peigen.c:4037 pepigen.c:4037 pex64igen.c:4037 +#: peigen.c:4038 pepigen.c:4038 pex64igen.c:4038 #, c-format msgid ".rsrc merge failure: duplicate leaf: %s" msgstr "échec de la fusion .rsrc: feuille dupliquée: %s" -#: peigen.c:4103 pepigen.c:4103 pex64igen.c:4103 +#: peigen.c:4104 pepigen.c:4104 pex64igen.c:4104 msgid ".rsrc merge failure: dirs with differing characteristics\n" msgstr "échec de la fusion .rsrc: répertoires avec des caractéristiques différentes\n" -#: peigen.c:4110 pepigen.c:4110 pex64igen.c:4110 +#: peigen.c:4111 pepigen.c:4111 pex64igen.c:4111 msgid ".rsrc merge failure: differing directory versions\n" msgstr "échec de la fusion de .rsrc: versions de répertoires différentes\n" #. Corrupted .rsrc section - cannot merge. -#: peigen.c:4227 pepigen.c:4227 pex64igen.c:4227 +#: peigen.c:4228 pepigen.c:4228 pex64igen.c:4228 msgid "%B: .rsrc merge failure: corrupt .rsrc section" msgstr "%B: échec de la fusion de .rsrc: section .rsrc corrompue" -#: peigen.c:4235 pepigen.c:4235 pex64igen.c:4235 +#: peigen.c:4236 pepigen.c:4236 pex64igen.c:4236 msgid "%B: .rsrc merge failure: unexpected .rsrc size" msgstr "%B: échec de la fusion de .rsrc: taille de .rsrc inattendue" -#: peigen.c:4374 pepigen.c:4374 pex64igen.c:4374 +#: peigen.c:4375 pepigen.c:4375 pex64igen.c:4375 msgid "%B: unable to fill in DataDictionary[1] because .idata$2 is missing" msgstr "%B: impossible de remplir DataDictionary[1] car .idata$2 est manquant" -#: peigen.c:4394 pepigen.c:4394 pex64igen.c:4394 +#: peigen.c:4395 pepigen.c:4395 pex64igen.c:4395 msgid "%B: unable to fill in DataDictionary[1] because .idata$4 is missing" msgstr "%B: impossible de remplir DataDictionary[1] car .idata$4 est manquant" -#: peigen.c:4415 pepigen.c:4415 pex64igen.c:4415 +#: peigen.c:4416 pepigen.c:4416 pex64igen.c:4416 msgid "%B: unable to fill in DataDictionary[12] because .idata$5 is missing" msgstr "%B: impossible de remplir DataDictionary[12] car .idata$5 est manquant" -#: peigen.c:4435 pepigen.c:4435 pex64igen.c:4435 +#: peigen.c:4436 pepigen.c:4436 pex64igen.c:4436 msgid "%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing" msgstr "%B: impossible de remplir DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] car .idata$6 est manquant" -#: peigen.c:4477 pepigen.c:4477 pex64igen.c:4477 +#: peigen.c:4478 pepigen.c:4478 pex64igen.c:4478 msgid "%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because .idata$6 is missing" msgstr "%B: impossible de remplir DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] car .idata$6 est manquant" -#: peigen.c:4502 pepigen.c:4502 pex64igen.c:4502 +#: peigen.c:4503 pepigen.c:4503 pex64igen.c:4503 msgid "%B: unable to fill in DataDictionary[9] because __tls_used is missing" msgstr "%B: impossible de remplir DataDictionary[9] car __tls_used est manquant" +#~ msgid "%B: uses different e_flags (0x%lx) fields than previous modules (0x%lx)" +#~ msgstr "%B: utilise des champs e_flags (0x%lx) différents des modules précédents (0x%lx)" + +#~ msgid "%B: unsupported relocation type %i" +#~ msgstr "%B: type de réadressage %i non supporté" + +#~ msgid "%B(%A+0x%lx): R_68K_TLS_LE32 relocation not permitted in shared object" +#~ msgstr "%B(%A+0x%lx): réadressage R_68K_TLS_LE32 pas permis dans un objet partagé" + +#~ msgid "%B(%A+0x%lx): R_METAG_TLS_LE/IENONPIC relocation not permitted in shared object" +#~ msgstr "%B(%A+0x%lx): réadressage R_METAG_TLS_LE/IENONPIC pas permis dans un objet partagé" + +#~ msgid "%B(%A+0x%lx): R_NIOS2_TLS_LE16 relocation not permitted in shared object" +#~ msgstr "%B(%A+0x%lx): réadressage R_NIOS2_TLS_LE16 pas permis dans un objet partagé" + +#~ msgid "%B: error: unaligned relocation type %d at %08x reloc %p\n" +#~ msgstr "%B: erreur: type de réadressage %d non aligné à %08x réadressé %p\n" + +#~ msgid "%B(%A+0x%" +#~ msgstr "%B(%A+0x%" + +#~ msgid "Warning: size of symbol `%s' changed from %lu in %B to %lu in %B" +#~ msgstr "Attention: taille du symbole « %s » a changé de %lu dans %B à %lu dans %B" + +#~ msgid "%B: addend -0x%x in relocation %s against symbol `%s' at 0x%lx in section `%A' is out of range" +#~ msgstr "%B: l'opérande -0x%x dans le réadressage %s vers le symbole « %s » à 0x%lx dans la section « %A » est hors limite" + +#~ msgid "%F: failed to create BND PLT .eh_frame section\n" +#~ msgstr "%F: échec lors de la création de la section .eh_frame PLT BND\n" + #~ msgid "Unrecognized reloc" #~ msgstr "Relocalisation non reconnue" @@ -8790,12 +8967,6 @@ #~ msgid "Symbol %s replaced by %s\n" #~ msgstr "Symbole %s remplacé par %s\n" -#~ msgid "%B(%A+0x%lx): cannot reach %s" -#~ msgstr "%B(%A+0x%lx): ne peut atteindre %s" - -#~ msgid "%B: warning: ignoring duplicate section `%A'\n" -#~ msgstr "%B: attention: ignore la section dupliquée « %A »\n" - #~ msgid "%B: warning: duplicate section `%A' has different size\n" #~ msgstr "%B: attention: section dupliquée « %A » avec des tailles différentes\n" Binary files /tmp/tmp2enahulf/tIHkpyh4Fz/gdb-8.1/bfd/po/hr.gmo and /tmp/tmp2enahulf/I6n3Ljszco/gdb-8.2/bfd/po/hr.gmo differ Binary files /tmp/tmp2enahulf/tIHkpyh4Fz/gdb-8.1/bfd/po/id.gmo and /tmp/tmp2enahulf/I6n3Ljszco/gdb-8.2/bfd/po/id.gmo differ Binary files /tmp/tmp2enahulf/tIHkpyh4Fz/gdb-8.1/bfd/po/ja.gmo and /tmp/tmp2enahulf/I6n3Ljszco/gdb-8.2/bfd/po/ja.gmo differ Binary files /tmp/tmp2enahulf/tIHkpyh4Fz/gdb-8.1/bfd/po/pt.gmo and /tmp/tmp2enahulf/I6n3Ljszco/gdb-8.2/bfd/po/pt.gmo differ diff -Nru gdb-8.1/bfd/po/pt.po gdb-8.2/bfd/po/pt.po --- gdb-8.1/bfd/po/pt.po 1970-01-01 00:00:00.000000000 +0000 +++ gdb-8.2/bfd/po/pt.po 2018-09-05 07:27:13.000000000 +0000 @@ -0,0 +1,8766 @@ +# Portuguese translations for GNU binutils package. +# Copyright (C) 2018 Free Software Foundation, Inc. +# This file is distributed under the same license as the binutils package. +# Pedro Albuquerque , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: bfd-2.30.0\n" +"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n" +"POT-Creation-Date: 2018-01-13 13:44+0000\n" +"PO-Revision-Date: 2018-05-11 10:07+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Gtranslator 2.91.6\n" + +#: aout-adobe.c:126 +#, c-format +msgid "%B: Unknown section type in a.out.adobe file: %x\n" +msgstr "%B: tipo de secção desconhecido em ficheiro a.out.adobe: %x\n" + +#: aout-cris.c:200 +#, c-format +msgid "%B: Invalid relocation type exported: %d" +msgstr "%B: tipo de relocalização exportado inválido: %d" + +#: aout-cris.c:244 +#, c-format +msgid "%B: Invalid relocation type imported: %d" +msgstr "%B: tipo de relocalização importado inválido: %d" + +#: aout-cris.c:256 +#, c-format +msgid "%B: Bad relocation record imported: %d" +msgstr "%B: registo de relocalização importado inválido: %d" + +#: aoutx.h:1284 aoutx.h:1636 pdp11.c:1152 pdp11.c:1413 +#, c-format +msgid "%B: can not represent section `%A' in a.out object file format" +msgstr "%B: impossível representar secção \"%A\" num formato de ficheiro objecto a.out" + +#: aoutx.h:1600 pdp11.c:1385 +#, c-format +msgid "%B: can not represent section for symbol `%s' in a.out object file format" +msgstr "%B: impossível representar secção para símbolo\"%s\" num formato de ficheiro objecto a.out" + +#: aoutx.h:1603 vms-alpha.c:7853 +msgid "*unknown*" +msgstr "*desconhecido*" + +#: aoutx.h:2422 aoutx.h:2440 +msgid "%B: attempt to write out unknown reloc type" +msgstr "%B tentativa de escrever tipo de reloc desconhecido" + +#: aoutx.h:4093 aoutx.h:4414 +msgid "%P: %B: unexpected relocation type\n" +msgstr "%P: %B: tipo de relocalização inesperado\n" + +#: aoutx.h:5440 pdp11.c:3708 +#, c-format +msgid "%B: relocatable link from %s to %s not supported" +msgstr "%B: ligação relocalizável de %s para %s não suportado" + +#: archive.c:2305 +msgid "Warning: writing archive was slow: rewriting timestamp\n" +msgstr "Aviso: escrita do arquivo lenta: a reescrever o carimbo\n" + +#: archive.c:2421 linker.c:1410 +msgid "%B: plugin needed to handle lto object" +msgstr "%B: extensão precisou de gerir objecto lto" + +#: archive.c:2650 +msgid "Reading archive file mod timestamp" +msgstr "A ler carimbo de mod de ficheiro de arquivo" + +#: archive.c:2674 +msgid "Writing updated armap timestamp" +msgstr "A escrever carimbo armap actualizado" + +#: bfd.c:454 +msgid "No error" +msgstr "Sem erro" + +#: bfd.c:455 +msgid "System call error" +msgstr "Erro de chamada do sistema" + +#: bfd.c:456 +msgid "Invalid bfd target" +msgstr "Alvo bfd inválido" + +#: bfd.c:457 +msgid "File in wrong format" +msgstr "Ficheiro em formato errado" + +#: bfd.c:458 +msgid "Archive object file in wrong format" +msgstr "Ficheiro objecto de arquivo em formato errado" + +#: bfd.c:459 +msgid "Invalid operation" +msgstr "Operação inválida" + +#: bfd.c:460 +msgid "Memory exhausted" +msgstr "Memória esgotada" + +#: bfd.c:461 +msgid "No symbols" +msgstr "Sem símbolos" + +#: bfd.c:462 +msgid "Archive has no index; run ranlib to add one" +msgstr "Arquivo sem índice; execute ranlib para adicionar um" + +#: bfd.c:463 +msgid "No more archived files" +msgstr "Sem mais ficheiros de arquivo" + +#: bfd.c:464 +msgid "Malformed archive" +msgstr "Arquivo mal formado" + +#: bfd.c:465 +msgid "DSO missing from command line" +msgstr "DSO em falta da linha de comandos" + +#: bfd.c:466 +msgid "File format not recognized" +msgstr "Formato de ficheiro não reconhecido" + +#: bfd.c:467 +msgid "File format is ambiguous" +msgstr "Formato de ficheiro ambíguo" + +#: bfd.c:468 +msgid "Section has no contents" +msgstr "Secção sem conteúdo" + +#: bfd.c:469 +msgid "Nonrepresentable section on output" +msgstr "Secção não representável na saída" + +#: bfd.c:470 +msgid "Symbol needs debug section which does not exist" +msgstr "Símbolo precisa de secção de depuração que não existe" + +#: bfd.c:471 +msgid "Bad value" +msgstr "Mau valor" + +#: bfd.c:472 +msgid "File truncated" +msgstr "Ficheiro truncado" + +#: bfd.c:473 +msgid "File too big" +msgstr "Ficheiro muito grande" + +#: bfd.c:474 +#, c-format +msgid "Error reading %s: %s" +msgstr "Erro ao ler %s: %s" + +#: bfd.c:475 +msgid "#" +msgstr "#" + +#: bfd.c:1442 +#, c-format +msgid "BFD %s assertion fail %s:%d" +msgstr "BFD falha de asserção %s %s:%d" + +#: bfd.c:1455 +#, c-format +msgid "BFD %s internal error, aborting at %s:%d in %s\n" +msgstr "BFD erro interno %s, a abortar em %s:%d em %s\n" + +#: bfd.c:1460 +#, c-format +msgid "BFD %s internal error, aborting at %s:%d\n" +msgstr "BFD erro interno %s, a abortar em %s:%d\n" + +#: bfd.c:1462 +msgid "Please report this bug.\n" +msgstr "Por favor, reporte este erro.\n" + +#: bfdwin.c:206 +#, c-format +msgid "not mapping: data=%lx mapped=%d\n" +msgstr "não mapeado: dados=%lx mapeado=%d\n" + +#: bfdwin.c:209 +#, c-format +msgid "not mapping: env var not set\n" +msgstr "não mapeado: env var não definida\n" + +#: binary.c:276 +#, c-format +msgid "warning: writing section `%A' at huge (ie negative) file offset" +msgstr "aviso: secção de escrita \"%A\" em enorme (negativo) desvio de ficheiro" + +#: bout.c:1142 elf-m10300.c:2647 elf32-avr.c:2484 elf32-frv.c:5633 +#: elf64-ia64-vms.c:353 elfxx-sparc.c:2817 reloc.c:8059 reloc16.c:156 +#: elf32-ia64.c:351 elf64-ia64.c:351 +msgid "%P%F: --relax and -r may not be used together\n" +msgstr "%P%F: --relax e -r não podem ser usadas em conjunto\n" + +#: cache.c:273 +#, c-format +msgid "reopening %B: %s\n" +msgstr "a reabrir %B: %s\n" + +#: coff-alpha.c:450 +msgid "" +"%B: Cannot handle compressed Alpha binaries.\n" +" Use compiler flags, or objZ, to generate uncompressed binaries." +msgstr "" +"%B: impossível gerir binários Alpha comprimidos.\n" +" Use bandeiras do compilador ou objZ para gerar binários descomprimidos." + +#: coff-alpha.c:602 +msgid "%B: unknown/unsupported relocation type %d" +msgstr "%B: tipo de relocalização %d desconhecido/não suportado" + +#: coff-alpha.c:851 coff-alpha.c:888 coff-alpha.c:1961 coff-mips.c:950 +msgid "GP relative relocation used when GP not defined" +msgstr "Usada relocalização relativa GP sem GP definido" + +#: coff-alpha.c:1444 +msgid "using multiple gp values" +msgstr "a usar múltiplos valores gp" + +#: coff-alpha.c:1503 +msgid "%B: unsupported relocation: ALPHA_R_GPRELHIGH" +msgstr "%B: relocalização não suportada: ALPHA_R_GPRELHIGH" + +#: coff-alpha.c:1510 +msgid "%B: unsupported relocation: ALPHA_R_GPRELLOW" +msgstr "%B: relocalização não suportada: ALPHA_R_GPRELLOW" + +#: coff-alpha.c:1518 elf32-i370.c:1081 elf32-m32r.c:2404 +#: elf32-microblaze.c:932 elf64-alpha.c:4098 elf64-alpha.c:4246 +#: elf64-ia64-vms.c:3430 elf32-ia64.c:3847 elf64-ia64.c:3847 +#, c-format +msgid "%B: unknown relocation type %d" +msgstr "%B: tipo de relocalização desconhecido %d" + +#: coff-arm.c:1037 +#, c-format +msgid "%B: unable to find THUMB glue '%s' for `%s'" +msgstr "%B: impossível encontrar cola THUMB \"%s\" para \"%s\"" + +#: coff-arm.c:1066 +#, c-format +msgid "%B: unable to find ARM glue '%s' for `%s'" +msgstr "%B: impossível encontrar cola ARM \"%s\" para \"%s\"" + +#: coff-arm.c:1368 elf32-arm.c:8896 +#, c-format +msgid "" +"%B(%s): warning: interworking not enabled.\n" +" first occurrence: %B: arm call to thumb" +msgstr "" +"%B(%s): aviso: interworking não activo.\n" +" primeira ocorrência: %B: chamada arm a thumb" + +#: coff-arm.c:1458 +#, c-format +msgid "" +"%B(%s): warning: interworking not enabled.\n" +" first occurrence: %B: thumb call to arm\n" +" consider relinking with --support-old-code enabled" +msgstr "" +"%B(%s): aviso: interworking não activo.\n" +" primeira ocorrência: %B: chamada thumb a arm\n" +" considere religação com --support-old-code activo" + +#: coff-arm.c:1751 coff-tic80.c:672 cofflink.c:3127 +#, c-format +msgid "%B: bad reloc address %#Lx in section `%A'" +msgstr "%B: mau endereço reloc %#Lx na secção \"%A\"" + +#: coff-arm.c:2076 +#, c-format +msgid "%B: illegal symbol index in reloc: %ld" +msgstr "%B: índice de símbolo ilegal na reloc: %ld" + +#: coff-arm.c:2208 +#, c-format +msgid "error: %B is compiled for APCS-%d, whereas %B is compiled for APCS-%d" +msgstr "erro: %B está compilado para APCS-%d, enquanto %B está compilado para APCS-%d" + +#: coff-arm.c:2221 elf32-arm.c:19582 +#, c-format +msgid "error: %B passes floats in float registers, whereas %B passes them in integer registers" +msgstr "erro: %B passa flutuantes em registos flutuantes, enquanto %B os passa em registos inteiros" + +#: coff-arm.c:2226 elf32-arm.c:19586 +#, c-format +msgid "error: %B passes floats in integer registers, whereas %B passes them in float registers" +msgstr "erro: %B passa flutuantes em registos inteiros, enquanto %B os passa em registos flutuantes" + +#: coff-arm.c:2238 +#, c-format +msgid "error: %B is compiled as position independent code, whereas target %B is absolute position" +msgstr "erro: %B está compilado como código independente da posição, enquanto destino %B é de posição absoluta" + +#: coff-arm.c:2243 +#, c-format +msgid "error: %B is compiled as absolute position code, whereas target %B is position independent" +msgstr "erro: %B está compilado como código de posição absoluta, enquanto destino %B é de posição independente" + +#: coff-arm.c:2270 elf32-arm.c:19651 +#, c-format +msgid "Warning: %B supports interworking, whereas %B does not" +msgstr "Aviso: %B suporta interworking, enquanto %B não" + +#: coff-arm.c:2275 elf32-arm.c:19657 +#, c-format +msgid "Warning: %B does not support interworking, whereas %B does" +msgstr "Aviso: %B não suporta interworking, enquanto %B sim" + +#: coff-arm.c:2298 +#, c-format +msgid "private flags = %x:" +msgstr "bandeiras privadas = %x:" + +#: coff-arm.c:2306 elf32-arm.c:14160 +#, c-format +msgid " [floats passed in float registers]" +msgstr " [flutuantes passados em registos flutuantes]" + +#: coff-arm.c:2308 +#, c-format +msgid " [floats passed in integer registers]" +msgstr " [flutuantes passados em registos inteiros]" + +#: coff-arm.c:2311 elf32-arm.c:14163 +#, c-format +msgid " [position independent]" +msgstr " [posição independente]" + +#: coff-arm.c:2313 +#, c-format +msgid " [absolute position]" +msgstr " [posição absoluta]" + +#: coff-arm.c:2317 +#, c-format +msgid " [interworking flag not initialised]" +msgstr " [bandeira interworking não inicializada]" + +#: coff-arm.c:2319 +#, c-format +msgid " [interworking supported]" +msgstr " [interworking suportado]" + +#: coff-arm.c:2321 +#, c-format +msgid " [interworking not supported]" +msgstr " [interworking não suportado]" + +#: coff-arm.c:2366 elf32-arm.c:13021 +msgid "Warning: Not setting interworking flag of %B since it has already been specified as non-interworking" +msgstr "Aviso: bandeira %B de interworking não definida porque já foi especificada como não-interworking" + +#: coff-arm.c:2369 elf32-arm.c:13025 +msgid "Warning: Clearing the interworking flag of %B due to outside request" +msgstr "Aviso: a limpar bandeira %B de interworking devido a pedido externo" + +#: coff-arm.c:2426 elf32-arm.c:13070 +#, c-format +msgid "Warning: Clearing the interworking flag of %B because non-interworking code in %B has been linked with it" +msgstr "Aviso: a limpar bandeira %B de interworking devido a código não interworking em %B que lhe foi ligado" + +#: coff-h8300.c:1068 +#, c-format +msgid "cannot handle R_MEM_INDIRECT reloc when using %s output" +msgstr "impossível gerir reloc R_MEM_INDIRECT enquanto usa saída %s" + +#: coff-i860.c:151 +#, c-format +msgid "relocation `%s' not yet implemented" +msgstr "relocalização \"%s\" ainda não implementada" + +#: coff-i860.c:613 coff-tic4x.c:227 coff-tic54x.c:365 coffcode.h:5343 +#, c-format +msgid "%B: warning: illegal symbol index %ld in relocs" +msgstr "%B: aviso: índice de símbolo %ld ilegal em relocs" + +#: coff-i960.c:122 coff-i960.c:475 +msgid "uncertain calling convention for non-COFF symbol" +msgstr "convenção de chamada incerta para símbolo não-COFF" + +#: coff-m68k.c:488 elf32-bfin.c:5340 elf32-cr16.c:2801 elf32-m68k.c:4385 +msgid "unsupported reloc type" +msgstr "tipo de reloc não suportado" + +#: coff-mips.c:640 elf32-mips.c:1744 elf32-score.c:430 elf32-score7.c:330 +#: elf64-mips.c:3135 elfn32-mips.c:2958 +msgid "GP relative relocation when _gp not defined" +msgstr "Relocalização relativa GP com _gp não definido" + +#: coff-rs6000.c:2773 +#, c-format +msgid "%B: unsupported relocation type 0x%02x" +msgstr "%B: tipo de relocalização 0x%02x não suportado" + +#: coff-rs6000.c:2859 +#, c-format +msgid "%B: TOC reloc at %#Lx to symbol `%s' with no TOC entry" +msgstr "%B: reloc TOC em %#Lx para símbolo \"%s\" sem entrada TOC" + +#: coff-rs6000.c:3605 coff64-rs6000.c:2150 +#, c-format +msgid "%B: symbol `%s' has unrecognized smclas %d" +msgstr "%B: símbolo \"%s\" tem smclas %d não reconhecido" + +#: coff-sh.c:504 +#, c-format +msgid "SH Error: unknown reloc type %d" +msgstr "Erro SH: tipo de reloc %d não suportado" + +#: coff-sh.c:778 elf32-sh.c:580 +#, c-format +msgid "%B: %#Lx: warning: bad R_SH_USES offset" +msgstr "%B: %#Lx: aviso: mau desvio R_SH_USES" + +#: coff-sh.c:789 +#, c-format +msgid "%B: %#Lx: warning: R_SH_USES points to unrecognized insn %#x" +msgstr "%B: %#Lx: aviso: R_SH_USES aponta para insn %#x não reconhecido" + +#: coff-sh.c:807 elf32-sh.c:610 +#, c-format +msgid "%B: %#Lx: warning: bad R_SH_USES load offset" +msgstr "%B: %#Lx: aviso: mau desvio de carga R_SH_USES" + +#: coff-sh.c:832 elf32-sh.c:626 +#, c-format +msgid "%B: %#Lx: warning: could not find expected reloc" +msgstr "%B: %#Lx: aviso: impossível encontrar reloc esperado" + +#: coff-sh.c:849 elf32-sh.c:655 +#, c-format +msgid "%B: %#Lx: warning: symbol in unexpected section" +msgstr "%B: %#Lx: aviso: símbolo em secção inesperada" + +#: coff-sh.c:975 elf32-sh.c:785 +#, c-format +msgid "%B: %#Lx: warning: could not find expected COUNT reloc" +msgstr "%B: %#Lx: aviso: impossível encontrar reloc COUNT" + +#: coff-sh.c:985 elf32-sh.c:795 +#, c-format +msgid "%B: %#Lx: warning: bad count" +msgstr "%B: %#Lx: aviso: má contagem" + +#: coff-sh.c:1357 coff-sh.c:2645 elf32-sh.c:1199 elf32-sh.c:1570 +#, c-format +msgid "%B: %#Lx: fatal: reloc overflow while relaxing" +msgstr "%B: %#Lx: fatal: transporte reloc ao relaxar" + +#: coff-sh.c:1452 +msgid "%B: fatal: generic symbols retrieved before relaxing" +msgstr "%B: fatal: obtidos símbolos genéricos antes de relaxar" + +#: coff-sh.c:2783 cofflink.c:2965 +#, c-format +msgid "%B: illegal symbol index %ld in relocs" +msgstr "%B: índice de símbolo %ld ilegal em relocs" + +#: coff-tic4x.c:183 coff-tic54x.c:278 coff-tic80.c:441 +#, c-format +msgid "Unrecognized reloc type 0x%x" +msgstr "tipo de reloc 0x%x não reconhecido" + +#: coff-w65.c:352 +#, c-format +msgid "ignoring reloc %s\n" +msgstr "a ignorar reloc %s\n" + +#: coffcode.h:968 +msgid "%B: unable to load COMDAT section name" +msgstr "%B: impossível carregar nome de secção COMDAT" + +#. Malformed input files can trigger this test. +#. cf PR 21781. +#: coffcode.h:1003 +msgid "%B: error: unexpected symbol '%s' in COMDAT section" +msgstr "%B: erro: símbolo \"%s\" inesperado em secção COMDAT" + +#: coffcode.h:1015 +#, c-format +msgid "%B: warning: COMDAT symbol '%s' does not match section name '%s'" +msgstr "%B: aviso: símbolo \"%s\" COMDAT não corresponde ao nome de secção \"%s\"" + +#: coffcode.h:1025 +#, c-format +msgid "%B: warning: No symbol for section '%s' found" +msgstr "%B: aviso: símbolo para secção \"%s\" não encontrado" + +#. Generate a warning message rather using the 'unhandled' +#. variable as this will allow some .sys files generate by +#. other toolchains to be processed. See bugzilla issue 196. +#: coffcode.h:1251 +#, c-format +msgid "%B: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section %s" +msgstr "%B: aviso: a ignorar bandeira de secção IMAGE_SCN_MEM_NOT_PAGED na secção %s" + +#: coffcode.h:1320 +#, c-format +msgid "%B (%s): Section flag %s (%#lx) ignored" +msgstr "%B (%s): bandeira de secção %s (%#lx) ignorada" + +#: coffcode.h:1950 +msgid "%B: warning: claims to have 0xffff relocs, without overflow" +msgstr "%B: aviso: afirma ter 0xffff relocs, sem transporte" + +#: coffcode.h:2466 +#, c-format +msgid "Unrecognized TI COFF target id '0x%x'" +msgstr "TI COFF id de alvo \"0x%x\" não reconhecida" + +#: coffcode.h:2784 +#, c-format +msgid "%B: reloc against a non-existent symbol index: %ld" +msgstr "%B: reloc contra índice de símbolo não existente: %ld" + +#: coffcode.h:3187 +#, c-format +msgid "%B: page size is too large (0x%x)" +msgstr "%B: tamanho de página muito grande (0x%x)" + +#: coffcode.h:3347 +#, c-format +msgid "%B: too many sections (%d)" +msgstr "%B: demasiadas secções (%d)" + +#: coffcode.h:3768 +#, c-format +msgid "%B: section %A: string table overflow at offset %ld" +msgstr "%B: secção %A: transporte na tabela de símbolo no desvio %ld" + +#: coffcode.h:3873 +#, c-format +msgid "%B:%s section %s: alignment 2**%u not representable" +msgstr "%B:%s secção %s: alinhamento 2**%u não representável" + +#: coffcode.h:4592 +msgid "%B: warning: line number count (%#lx) exceeds section size (%#lx)" +msgstr "%B: aviso: total de número de linha (%#lx) excede tamanho de secção (%#lx)" + +#: coffcode.h:4607 +msgid "%B: warning: line number table read failed" +msgstr "%B: aviso: falha ao ler tabela de número de linha" + +#: coffcode.h:4641 coffcode.h:4655 +#, c-format +msgid "%B: warning: illegal symbol index 0x%lx in line number entry %d" +msgstr "%B: aviso: índice de símbolo 0x%lx ilegal em entrada de número de linha %d" + +#: coffcode.h:4669 +#, c-format +msgid "%B: warning: illegal symbol in line number entry %d" +msgstr "%B: aviso: símbolo ilegal em entrada de número de linha %d" + +#: coffcode.h:4682 +#, c-format +msgid "%B: warning: duplicate line number information for `%s'" +msgstr "%B: aviso: informação de número de linha duplicada para \"%s\"" + +#: coffcode.h:5103 +#, c-format +msgid "%B: Unrecognized storage class %d for %s symbol `%s'" +msgstr "%B: classe de armazenamento %d não reconhecida para %s símbolo \"%s\"" + +#: coffcode.h:5236 +#, c-format +msgid "warning: %B: local symbol `%s' has no section" +msgstr "aviso: %B: símbolo local \"%s\" não tem secção" + +#: coffcode.h:5383 +#, c-format +msgid "%B: illegal relocation type %d at address %#Lx" +msgstr "%B: tipo de relocalização %d ilegal no endereço %#Lx" + +#: coffgen.c:178 elf.c:1198 +#, c-format +msgid "%B: unable to initialize compress status for section %s" +msgstr "%B: impossível inicializar estado comprimido para secção %s" + +#: coffgen.c:202 elf.c:1209 +#, c-format +msgid "%B: unable to initialize decompress status for section %s" +msgstr "%B: impossível inicializar estado descomprimido para secção %s" + +#: coffgen.c:1649 +msgid "%B: corrupt symbol count: %#Lx" +msgstr "%B: total de símbolos corrupto: %#Lx" + +#. PR 21013: Provide an error message when the alloc fails. +#: coffgen.c:1658 +msgid "%B: not enough memory to allocate space for %#Lx symbols of size %#Lx" +msgstr "%B: memória insuficiente para alocar espaço para %#Lx símbolos de tamanho %#Lx" + +#: coffgen.c:1725 +#, c-format +msgid "%B: bad string table size %Lu" +msgstr "%B: mau tamanho de tabela de cadeias %Lu" + +#: coffgen.c:1902 coffgen.c:1962 coffgen.c:1980 cofflink.c:2045 +#: xcofflink.c:4507 +msgid "" +msgstr "" + +#: coffgen.c:2104 +#, c-format +msgid " %s" +msgstr " %s" + +#: coffgen.c:2683 elflink.c:14149 linker.c:2940 +msgid "%F%P: already_linked_table: %E\n" +msgstr "%F%P: already_linked_table: %E\n" + +#: coffgen.c:3024 elflink.c:13151 +#, c-format +msgid "Removing unused section '%A' in file '%B'" +msgstr "A remover secção \"%A\" não usada no ficheiro \"%B\"" + +#: coffgen.c:3101 elflink.c:13369 +msgid "Warning: gc-sections option ignored" +msgstr "Aviso: opção gc-sections ignorada" + +#: cofflink.c:352 +#, c-format +msgid "Warning: symbol `%s' is both section and non-section" +msgstr "Aviso: símbolo \"%s\" é secção e não-secção em simultâneo" + +#: cofflink.c:454 elf64-ia64-vms.c:5186 elflink.c:4831 +#, c-format +msgid "Warning: type of symbol `%s' changed from %d to %d in %B" +msgstr "Aviso: tipo de símbolo \"%s\" alterado de %d para %d em %B" + +#: cofflink.c:2373 +#, c-format +msgid "%B: relocs in section `%A', but it has no contents" +msgstr "%B: relocs na secção \"%A\", mas não tem conteúdo" + +#: cofflink.c:2436 elflink.c:10664 +#, c-format +msgid "%X`%s' referenced in section `%A' of %B: defined in discarded section `%A' of %B\n" +msgstr "%X\"%s\" referenciado na secção \"%A\" de %B: definido em secção descartada \"%A\" de %B\n" + +#: cofflink.c:2734 +#, c-format +msgid "%B: %A: reloc overflow: %#x > 0xffff" +msgstr "%B: %A: transporte de reloc: %#x > 0xffff" + +#: cofflink.c:2742 +#, c-format +msgid "%B: warning: %A: line number overflow: %#x > 0xffff" +msgstr "%B: aviso: %A: transporte de número de linha: %#x > 0xffff" + +#: coffswap.h:811 +#, c-format +msgid "%B: warning: %s: line number overflow: 0x%lx > 0xffff" +msgstr "%B: aviso: %s: transporte de número de linha: 0x%lx > 0xffff" + +#: coffswap.h:825 +#, c-format +msgid "%B: %s: reloc overflow: 0x%lx > 0xffff" +msgstr "%B: %s: transporte de reloc: 0x%lx > 0xffff" + +#: compress.c:255 +#, c-format +msgid "error: %B(%A) is too large (%#Lx bytes)" +msgstr "erro: %B(%A) é muito grande (%#Lx bytes)" + +#: cpu-arm.c:192 cpu-arm.c:204 +#, c-format +msgid "error: %B is compiled for the EP9312, whereas %B is compiled for XScale" +msgstr "erro: %B está compilado para EP9312, enquanto %B está compilado para XScale" + +#: cpu-arm.c:338 +#, c-format +msgid "warning: unable to update contents of %s section in %B" +msgstr "aviso: impossível actualizar conteúdo da secção %s em %B" + +#: dwarf2.c:543 +#, c-format +msgid "Dwarf Error: Can't find %s section." +msgstr "Erro Dwarf: impossível encontrar a secção %s." + +#: dwarf2.c:572 +#, c-format +msgid "Dwarf Error: Offset (%llu) greater than or equal to %s size (%Lu)." +msgstr "Erro Dwarf: desvio (%llu) maior ou igual a tamanho %s (%Lu)." + +#: dwarf2.c:1089 +msgid "Dwarf Error: Info pointer extends beyond end of attributes" +msgstr "Erro Dwarf: ponteiro de informação excede o final dos atributos" + +#: dwarf2.c:1261 +#, c-format +msgid "Dwarf Error: Invalid or unhandled FORM value: %#x." +msgstr "Erro Dwarf: valor FORM inválido ou não gerido: %#x." + +#: dwarf2.c:1567 +msgid "Dwarf Error: mangled line number section (bad file number)." +msgstr "Erro Dwarf: secção de número de linha modificada (mau nº de ficheiro)." + +#: dwarf2.c:1912 +msgid "Dwarf Error: Zero format count." +msgstr "Erro Dwarf: total de formato zero." + +#: dwarf2.c:1921 +#, c-format +msgid "Dwarf Error: data count (%Lx) larger than buffer size." +msgstr "Erro Dwarf: total de dados (%Lx) maior que o tamanho do buffer." + +#: dwarf2.c:1962 +#, c-format +msgid "Dwarf Error: Unknown format content type %Lu." +msgstr "Erro Dwarf: tipo de formato de conteúdo %Lu desconhecido." + +#: dwarf2.c:2042 +#, c-format +msgid "Dwarf Error: Line info section is too small (%Ld)" +msgstr "Erro Dwarf: secção de informação da linha muito pequena (%Ld)" + +#: dwarf2.c:2072 +#, c-format +msgid "Dwarf Error: Line info data is bigger (%#Lx) than the space remaining in the section (%#lx)" +msgstr "Erro Dwarf: secção de informação da linha maior (%#Lx) que o espaço restante na secção (%#lx)" + +#: dwarf2.c:2085 +#, c-format +msgid "Dwarf Error: Unhandled .debug_line version %d." +msgstr "Erro Dwarf: versão %d .debug_line version não gerida." + +#: dwarf2.c:2095 +msgid "Dwarf Error: Ran out of room reading prologue" +msgstr "Erro Dwarf: sem espaço ao ler o prólogo" + +#: dwarf2.c:2113 +#, c-format +msgid "Dwarf Error: Line info unsupported segment selector size %u." +msgstr "Erro Dwarf: tamanho %u do selector de segmento de informação de linha não suportado" + +#: dwarf2.c:2140 +msgid "Dwarf Error: Invalid maximum operations per instruction." +msgstr "Erro Dwarf: máximo de operações por instrução inválido." + +#: dwarf2.c:2159 +msgid "Dwarf Error: Ran out of room reading opcodes" +msgstr "Erro Dwarf: sem espaço ao ler opcodes" + +#: dwarf2.c:2332 +msgid "Dwarf Error: mangled line number section." +msgstr "Erro Dwarf: secção de número de linha modificada." + +#: dwarf2.c:2833 dwarf2.c:2894 +msgid "Dwarf Error: Invalid abstract instance DIE ref." +msgstr "Erro Dwarf: instância DIE ref abstracta inválida." + +#: dwarf2.c:2870 +#, c-format +msgid "Dwarf Error: Unable to read alt ref %llu." +msgstr "Erro Dwarf: impossível ler referência alternativa %llu." + +#: dwarf2.c:2911 dwarf2.c:3076 dwarf2.c:3428 +#, c-format +msgid "Dwarf Error: Could not find abbrev number %u." +msgstr "Erro Dwarf: impossível encontrar número abbrev %u." + +#: dwarf2.c:2928 +msgid "Dwarf Error: Abstract instance recursion detected." +msgstr "Erro Dwarf: detectada recursividade em instância abstracta." + +#: dwarf2.c:3347 +#, c-format +msgid "Dwarf Error: found dwarf version '%u', this reader only handles version 2, 3, 4 and 5 information." +msgstr "Erro Dwarf: encontrada versão dwarf \"%u\", este leitor só gere informação das versões 2, 3, 4 e 5." + +#: dwarf2.c:3391 +#, c-format +msgid "Dwarf Error: found address size '%u', this reader can not handle sizes greater than '%u'." +msgstr "Erro Dwarf: encontrado tamanho de endereço \"%u\", este leitor não gere tamanhos maiores que \"%u\"." + +#: dwarf2.c:3494 +msgid "Dwarf Error: DW_AT_comp_dir attribute encountered with a non-string form." +msgstr "Erro Dwarf: encontrado atributo DW_AT_comp_dir com uma forma não-cadeia." + +#: ecoff.c:964 +#, c-format +msgid "%B: warning: isymMax (%ld) is greater than ifdMax (%ld)" +msgstr "%B: aviso: isymMax (%ld) é maior que ifdMax (%ld)" + +#: ecoff.c:1261 +#, c-format +msgid "Unknown basic type %d" +msgstr "Tipo básico %d desconhecido" + +#: ecoff.c:1518 +#, c-format +msgid "" +"\n" +" End+1 symbol: %ld" +msgstr "" +"\n" +" Símbolo End+1: %ld" + +#: ecoff.c:1525 ecoff.c:1528 +#, c-format +msgid "" +"\n" +" First symbol: %ld" +msgstr "" +"\n" +" Primeiro símbolo: %ld" + +#: ecoff.c:1541 +#, c-format +msgid "" +"\n" +" End+1 symbol: %-7ld Type: %s" +msgstr "" +"\n" +" Símbolo End+1: %-7ld Tipo: %s" + +#: ecoff.c:1548 +#, c-format +msgid "" +"\n" +" Local symbol: %ld" +msgstr "" +"\n" +" Símbolo local: %ld" + +#: ecoff.c:1556 +#, c-format +msgid "" +"\n" +" struct; End+1 symbol: %ld" +msgstr "" +"\n" +" struct; símbolo End+1: %ld" + +#: ecoff.c:1561 +#, c-format +msgid "" +"\n" +" union; End+1 symbol: %ld" +msgstr "" +"\n" +" union; símbolo End+1: %ld" + +#: ecoff.c:1566 +#, c-format +msgid "" +"\n" +" enum; End+1 symbol: %ld" +msgstr "" +"\n" +" enum; símbolo End+1: %ld" + +#: ecoff.c:1572 +#, c-format +msgid "" +"\n" +" Type: %s" +msgstr "" +"\n" +" Tipo: %s" + +#: elf-attrs.c:475 +msgid "%B: error: attribute section length too small: %ld" +msgstr "%B: erro: tamanho da secção de atributo muito pequeno: %ld" + +#: elf-attrs.c:603 +#, c-format +msgid "error: %B: Object has vendor-specific contents that must be processed by the '%s' toolchain" +msgstr "erro: %B: objecto tem conteúdo especifico do fabricante que tem de ser processado por \"%s\"" + +#: elf-attrs.c:613 +#, c-format +msgid "error: %B: Object tag '%d, %s' is incompatible with tag '%d, %s'" +msgstr "erro: %B: etiqueta do objecto \"%d, %s\" é incompatível com etiqueta \"%d, %s\"" + +#: elf-eh-frame.c:942 +#, c-format +msgid "discarding zero address range FDE in %B(%A).\n" +msgstr "a descartar intervalo FDE de endereço zero em %B(%A).\n" + +#: elf-eh-frame.c:1047 +#, c-format +msgid "%P: error in %B(%A); no .eh_frame_hdr table will be created.\n" +msgstr "%P: erro em %B(%A); não será criada nenhuma tabela .eh_frame_hdr.\n" + +#: elf-eh-frame.c:1537 +#, c-format +msgid "%P: FDE encoding in %B(%A) prevents .eh_frame_hdr table being created.\n" +msgstr "%P: codificação FDE em %B(%A) impede a criação de tabela .eh_frame_hdr.\n" + +#: elf-eh-frame.c:1544 +msgid "%P: Further warnings about FDE encoding preventing .eh_frame_hdr generation dropped.\n" +msgstr "%P: largados mais avisos sobre a codificação FDE impedir a geração de .eh_frame_hdr.\n" + +#: elf-eh-frame.c:1866 +#, c-format +msgid "%B: %A not in order" +msgstr "%B: %A não está em ordem" + +#: elf-eh-frame.c:1880 +#, c-format +msgid "%B: %A invalid input section size" +msgstr "%B: %A tamanho inválido de secção de entrada" + +#: elf-eh-frame.c:1888 +#, c-format +msgid "%B: %A points past end of text section" +msgstr "%B: %A aponta para lá do fim da secção de texto" + +#: elf-eh-frame.c:2137 +msgid "%P: DW_EH_PE_datarel unspecified for this architecture.\n" +msgstr "%P: DW_EH_PE_datarel não especificado para esta arquitectura.\n" + +#: elf-eh-frame.c:2307 +#, c-format +msgid "Invalid output section for .eh_frame_entry: %A" +msgstr "Secção de saída inválida para .eh_frame_entry: %A" + +#: elf-eh-frame.c:2330 +#, c-format +msgid "Invalid contents in %A section" +msgstr "Conteúdo inválido na secção %A" + +#: elf-eh-frame.c:2486 +msgid "%P: .eh_frame_hdr entry overflow.\n" +msgstr "%P: transporte na entrada .eh_frame_hdr.\n" + +#: elf-eh-frame.c:2489 +msgid "%P: .eh_frame_hdr refers to overlapping FDEs.\n" +msgstr "%P: .eh_frame_hdr refere FDEs sobrepostos.\n" + +#: elf-ifunc.c:142 +#, c-format +msgid "%F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%B' can not be used when making an executable; recompile with -fPIE and relink with -pie\n" +msgstr "%F%P: símbolo \"%s\" STT_GNU_IFUNC dinâmico com igualdade de ponteiro em \"%B\" não pode ser usado ao fazer um executável; recompile com -fPIE e volte a ligar com -pie\n" + +#: elf-m10200.c:425 elf-m10300.c:2145 elf32-avr.c:1502 elf32-bfin.c:3116 +#: elf32-cr16.c:1462 elf32-cr16c.c:780 elf32-cris.c:2030 elf32-crx.c:924 +#: elf32-d10v.c:509 elf32-epiphany.c:563 elf32-fr30.c:591 elf32-frv.c:4041 +#: elf32-ft32.c:485 elf32-h8300.c:522 elf32-i860.c:1210 elf32-ip2k.c:1475 +#: elf32-iq2000.c:689 elf32-lm32.c:1106 elf32-m32c.c:622 elf32-m32r.c:3031 +#: elf32-m68hc1x.c:1265 elf32-mep.c:524 elf32-metag.c:1985 +#: elf32-microblaze.c:1556 elf32-moxie.c:285 elf32-mt.c:400 elf32-nds32.c:5328 +#: elf32-or1k.c:1238 elf32-score.c:2731 elf32-score7.c:2540 elf32-spu.c:5076 +#: elf32-tilepro.c:3497 elf32-v850.c:2283 elf32-visium.c:677 +#: elf32-xstormy16.c:923 elf64-mmix.c:1538 elfxx-tilegx.c:3857 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2237 +msgid "internal error: out of range error" +msgstr "erro interno: erro fora do intervalo" + +#: elf-m10200.c:429 elf-m10300.c:2149 elf32-avr.c:1506 elf32-bfin.c:3120 +#: elf32-cr16.c:1466 elf32-cr16c.c:784 elf32-cris.c:2034 elf32-crx.c:928 +#: elf32-d10v.c:513 elf32-fr30.c:595 elf32-frv.c:4045 elf32-ft32.c:489 +#: elf32-h8300.c:526 elf32-i860.c:1214 elf32-iq2000.c:693 elf32-lm32.c:1110 +#: elf32-m32c.c:626 elf32-m32r.c:3035 elf32-m68hc1x.c:1269 elf32-mep.c:528 +#: elf32-metag.c:1989 elf32-microblaze.c:1560 elf32-moxie.c:289 +#: elf32-msp430.c:1357 elf32-nds32.c:5332 elf32-or1k.c:1242 elf32-score.c:2735 +#: elf32-score7.c:2544 elf32-spu.c:5080 elf32-tilepro.c:3501 elf32-v850.c:2287 +#: elf32-visium.c:681 elf32-xstormy16.c:927 elf64-mmix.c:1542 +#: elfxx-mips.c:10265 elfxx-tilegx.c:3861 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2241 +msgid "internal error: unsupported relocation error" +msgstr "erro interno: erro relocalização não suportada" + +#: elf-m10200.c:433 elf32-cr16.c:1470 elf32-cr16c.c:788 elf32-crx.c:932 +#: elf32-d10v.c:517 elf32-h8300.c:530 elf32-lm32.c:1114 elf32-m32r.c:3039 +#: elf32-m68hc1x.c:1273 elf32-microblaze.c:1564 elf32-nds32.c:5336 +#: elf32-score.c:2739 elf32-score7.c:2548 elf32-spu.c:5084 +msgid "internal error: dangerous error" +msgstr "erro interno: erro perigoso" + +#: elf-m10200.c:437 elf-m10300.c:2166 elf32-avr.c:1514 elf32-bfin.c:3128 +#: elf32-cr16.c:1474 elf32-cr16c.c:792 elf32-cris.c:2042 elf32-crx.c:936 +#: elf32-d10v.c:521 elf32-epiphany.c:578 elf32-fr30.c:603 elf32-frv.c:4053 +#: elf32-ft32.c:497 elf32-h8300.c:534 elf32-i860.c:1222 elf32-ip2k.c:1490 +#: elf32-iq2000.c:701 elf32-lm32.c:1118 elf32-m32c.c:634 elf32-m32r.c:3043 +#: elf32-m68hc1x.c:1277 elf32-mep.c:536 elf32-metag.c:1997 +#: elf32-microblaze.c:1568 elf32-moxie.c:297 elf32-msp430.c:1365 +#: elf32-mt.c:408 elf32-nds32.c:5340 elf32-or1k.c:1250 elf32-score.c:2748 +#: elf32-score7.c:2552 elf32-spu.c:5088 elf32-tilepro.c:3509 elf32-v850.c:2307 +#: elf32-visium.c:689 elf32-xstormy16.c:935 elf64-mmix.c:1550 +#: elfxx-tilegx.c:3869 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2249 +msgid "internal error: unknown error" +msgstr "erro interno: erro desconhecido" + +#: elf-m10300.c:812 +#, c-format +msgid "%B: unrecognised MN10300 reloc number: %d" +msgstr "%B: número reloc MN10300 não reconhecido: %d" + +#: elf-m10300.c:1028 +#, c-format +msgid "%B: Unsupported transition from %s to %s" +msgstr "%B: transição %s para %s não suportada" + +#: elf-m10300.c:1197 +#, c-format +msgid "%B: %s' accessed both as normal and thread local symbol" +msgstr "%B: %s acedido como símbolo local normal e de fio, em simultâneo" + +#: elf-m10300.c:2093 elf32-arm.c:12536 elf32-i386.c:3433 elf32-m32r.c:2526 +#: elf32-m68k.c:3895 elf32-s390.c:3204 elf32-sh.c:4121 elf32-tilepro.c:3401 +#: elf32-xtensa.c:2939 elf64-s390.c:3118 elf64-sh64.c:1636 elf64-x86-64.c:3790 +#: elfxx-sparc.c:3918 elfxx-tilegx.c:3781 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:5001 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6457 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2206 +#, c-format +msgid "%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'" +msgstr "%B(%A+%#Lx): relocalização %s insolúvel contra o símbolo \"%s\"" + +#: elf-m10300.c:2154 +msgid "error: inappropriate relocation type for shared library (did you forget -fpic?)" +msgstr "erro: tipo de relocalização inapropriado para biblioteca partilhada (esqueceu-se de -fpic?)" + +#: elf-m10300.c:2158 +#, c-format +msgid "%B: taking the address of protected function '%s' cannot be done when making a shared library" +msgstr "%B: tirar o endereço da função protegida \"%s\" não pode ser feito ao fazer uma biblioteca partilhada" + +#: elf-m10300.c:2161 +msgid "internal error: suspicious relocation type used in shared library" +msgstr "erro interno: tipo de relocalização suspeito usado em biblioteca partilhada" + +#: elf-properties.c:65 +msgid "%B: out of memory in _bfd_elf_get_property" +msgstr "%B: sem memória em _bfd_elf_get_property" + +#: elf-properties.c:91 +msgid "warning: %B: corrupt GNU_PROPERTY_TYPE (%ld) size: %#lx" +msgstr "aviso: %B: tamanho GNU_PROPERTY_TYPE (%ld) corrupto: %#lx" + +#: elf-properties.c:112 +msgid "warning: %B: corrupt GNU_PROPERTY_TYPE (%ld) type (0x%x) datasz: 0x%x" +msgstr "aviso: %B: GNU_PROPERTY_TYPE (%ld) corrupto ,tipo (0x%x) datasz: 0x%x" + +#: elf-properties.c:151 +msgid "warning: %B: corrupt stack size: 0x%x" +msgstr "aviso: %B:tamanho de stack corrupto: 0x%x" + +#: elf-properties.c:169 +msgid "warning: %B: corrupt no copy on protected size: 0x%x" +msgstr "aviso: %B: tamanho corrupto de não copiar se protegido: 0x%x" + +#: elf-properties.c:186 +msgid "warning: %B: unsupported GNU_PROPERTY_TYPE (%ld) type: 0x%x" +msgstr "aviso: %B: GNU_PROPERTY_TYPE (%ld) não suportada, tipo: 0x%x" + +#. PR 17512: file: f057ec89. +#: elf.c:343 +#, c-format +msgid "%B: attempt to load strings from a non-string section (number %d)" +msgstr "%B: tentativa de carregar cadeias de secção não-cadeia (número %d)" + +#: elf.c:358 +#, c-format +msgid "%B: invalid string offset %u >= %Lu for section `%s'" +msgstr "%B: desvio de cadeia inválido %u >= %Lu para secção \"%s\"" + +#: elf.c:497 /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:7535 +#, c-format +msgid "%B symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section" +msgstr "%B número de símbolo %lu referencia secção SHT_SYMTAB_SHNDX não existente" + +#: elf.c:661 +#, c-format +msgid "%B: corrupt size field in group section header: %#Lx" +msgstr "%B: campo de tamanho corrupto no cabeçalho da secção de grupo: %#Lx" + +#: elf.c:676 +#, c-format +msgid "%B: invalid size field in group section header: %#Lx" +msgstr "%B: campo de tamanho inválido no cabeçalho da secção de grupo: %#Lx" + +#: elf.c:712 +msgid "%B: invalid SHT_GROUP entry" +msgstr "%B: entrada SHT_GROUP inválida" + +#: elf.c:731 +msgid "%B: no valid group sections found" +msgstr "%B: sem secções de grupo válidas" + +#. See PR 21957 for a reproducer. +#: elf.c:760 +#, c-format +msgid "%B: group section '%A' has no contents" +msgstr "%B: secção de grupo \"%A\" não tem conteúdo" + +#: elf.c:820 +#, c-format +msgid "%B: no group info for section '%A'" +msgstr "%B: sem informação de grupo para secção \"%A\"" + +#: elf.c:851 elf.c:3862 elflink.c:11252 +#, c-format +msgid "%B: warning: sh_link not set for section `%A'" +msgstr "%B: aviso: sh_link não definido para a secção \"%A\"" + +#: elf.c:871 +#, c-format +msgid "%B: sh_link [%d] in section `%A' is incorrect" +msgstr "%B: sh_link [%d] na secção \"%A\" está incorrecto" + +#: elf.c:884 +#, c-format +msgid "%B: SHT_GROUP section [index %d] has no SHF_GROUP sections" +msgstr "%B: secção SHT_GROUP [índice %d] não tem secções SHF_GROUP" + +#: elf.c:905 +#, c-format +msgid "%B: section group entry number %u is corrupt" +msgstr "%B: entrada do grupo de secção número %u está corrompida" + +#: elf.c:928 +#, c-format +msgid "%B: unknown type [%#x] section `%s' in group [%A]" +msgstr "%B: secção tipo [%#x] \"%s\" desconhecida no grupo [%A]" + +#: elf.c:1390 +#, c-format +msgid "%B: Invalid sh_link field (%d) in section number %d" +msgstr "%B: sh_link field (%d) inválido no número da secção %d" + +#: elf.c:1406 +#, c-format +msgid "%B: Failed to find link section for section %d" +msgstr "%B: falha ao procurar secção de ligação para a secção %d" + +#: elf.c:1433 +#, c-format +msgid "%B: Failed to find info section for section %d" +msgstr "%B: falha ao procurar secção de informação para a secção %d" + +#: elf.c:1605 +#, c-format +msgid "" +"\n" +"Program Header:\n" +msgstr "" +"\n" +"Cabeçalho do programa:\n" + +#: elf.c:1647 +#, c-format +msgid "" +"\n" +"Dynamic Section:\n" +msgstr "" +"\n" +"Secção dinâmica:\n" + +#: elf.c:1788 +#, c-format +msgid "" +"\n" +"Version definitions:\n" +msgstr "" +"\n" +"Definições da versão:\n" + +#: elf.c:1813 +#, c-format +msgid "" +"\n" +"Version References:\n" +msgstr "" +"\n" +"Referências da versão:\n" + +#: elf.c:1818 +#, c-format +msgid " required from %s:\n" +msgstr " requerido de %s:\n" + +#: elf.c:2016 +msgid "%B: warning: loop in section dependencies detected" +msgstr "%B: aviso: detectado ciclo em dependências da secção" + +#: elf.c:2124 +#, c-format +msgid "%B: warning: multiple symbol tables detected - ignoring the table in section %u" +msgstr "%B: aviso: detectadas múltiplas tabelas de símbolo - a ignorar a tabela na secção %u" + +#: elf.c:2208 +#, c-format +msgid "%B: warning: multiple dynamic symbol tables detected - ignoring the table in section %u" +msgstr "%B: aviso: detectadas múltiplas tabelas de símbolo dinâmico - a ignorar a tabela na secção %u" + +#: elf.c:2321 +#, c-format +msgid "%B: invalid link %u for reloc section %s (index %u)" +msgstr "%B: ligação inválida %u para secção reloc %s (índice %u)" + +#: elf.c:2480 elf.c:2495 elf.c:2506 elf.c:2519 +#, c-format +msgid "%B: unknown type [%#x] section `%s'" +msgstr "%B: tipo desconhecido [%#x], secção \"%s\"" + +#: elf.c:3224 +#, c-format +msgid "%B: error: Alignment power %d of section `%A' is too big" +msgstr "%B: erro: poder de alinhamento %d da secção \"%A\" é muito grande" + +#: elf.c:3254 +#, c-format +msgid "warning: section `%A' type changed to PROGBITS" +msgstr "aviso: tipo da secção \"%A\" alterou-se para PROGBITS" + +#: elf.c:3730 +#, c-format +msgid "%B: too many sections: %u" +msgstr "%B: demasiadas secções: %u" + +#: elf.c:3815 +#, c-format +msgid "%B: sh_link of section `%A' points to discarded section `%A' of `%B'" +msgstr "%B: sh_link da secção \"%A\" aponta para secção descartada \"%A\" de \"%B\"" + +#: elf.c:3840 +#, c-format +msgid "%B: sh_link of section `%A' points to removed section `%A' of `%B'" +msgstr "%B: sh_link da secção \"%A\" aponta para secção removida \"%A\" de \"%B\"" + +#: elf.c:4392 +#, c-format +msgid "%B: GNU_MBIN section `%A' has invalid sh_info field: %d" +msgstr "%B: secção \"%A\" de GNU_MBIN tem campo sh_info inválido: %d" + +#: elf.c:4951 +msgid "%B: TLS sections are not adjacent:" +msgstr "%B: secções TLS não adjacentes:" + +#: elf.c:4958 +#, c-format +msgid "\t TLS: %A" +msgstr "\t TLS: %A" + +#: elf.c:4962 +#, c-format +msgid "\tnon-TLS: %A" +msgstr "\tnão-TLS: %A" + +#: elf.c:5458 +msgid "%B: The first section in the PT_DYNAMIC segment is not the .dynamic section" +msgstr "%B: a primeira secção no segmento PT_DYNAMIC não é a secção .dynamic" + +#: elf.c:5486 +msgid "%B: Not enough room for program headers, try linking with -N" +msgstr "%B: sem espaço para cabeçalhos do programa, tente ligar com -N" + +#: elf.c:5574 +#, c-format +msgid "%B: section %A lma %#Lx adjusted to %#Lx" +msgstr "%B: secção %A lma %#Lx ajustada para %#Lx" + +#: elf.c:5711 +#, c-format +msgid "%B: section `%A' can't be allocated in segment %d" +msgstr "%B: secção \"%A\" não pode ser alocada no segmento %d" + +#: elf.c:5759 +#, c-format +msgid "%B: warning: allocated section `%s' not in segment" +msgstr "%B: aviso: secção alocada \"%s\" não está no segmento" + +#: elf.c:5957 +msgid "%B: error: non-load segment %d includes file header and/or program header" +msgstr "%B: erro: segmento %d não carga inclui cabeçalho de ficheiro e/ou de programa" + +#. The fix for this error is usually to edit the linker script being +#. used and set up the program headers manually. Either that or +#. leave room for the headers at the start of the SECTIONS. +#: elf.c:6134 +msgid "%B: error: PHDR segment not covered by LOAD segment" +msgstr "%B: erro: segmento PHDR não coberto pelo segmento LOAD" + +#: elf.c:6478 +#, c-format +msgid "%B: symbol `%s' required but not present" +msgstr "%B: símbolo \"%s\" requerido mas não presente" + +#: elf.c:6821 +#, c-format +msgid "%B: warning: Empty loadable segment detected at vaddr=%#Lx, is this intentional?" +msgstr "%B: aviso: detectado segmento carregável vazio em vaddr=%#Lx, é intencional?" + +#: elf.c:7435 +#, c-format +msgid "%B: warning: segment alignment of %#Lx is too large" +msgstr "%B: aviso: alinhamento do segmento de %#Lx é muito grande" + +#: elf.c:7916 +#, c-format +msgid "Unable to find equivalent output section for symbol '%s' from section '%s'" +msgstr "Impossível encontrar secção de saída equivalente para símbolo \"%s\" da secção \"%s\"" + +#: elf.c:8249 +msgid "%B: .gnu.version_r invalid entry" +msgstr "%B: entrada .gnu.version_r inválida" + +#: elf.c:8376 +msgid "%B: .gnu.version_d invalid entry" +msgstr "%B: entrada .gnu.version_d inválida" + +#: elf.c:8928 +#, c-format +msgid "%B: unsupported relocation type %s" +msgstr "%B: tipo de relocalização %s não suportado" + +#: elf32-arc.c:433 elf32-frv.c:6623 elf32-iq2000.c:866 elf32-m32c.c:912 +#: elf32-mt.c:560 elf32-rl78.c:1257 elf32-rx.c:3178 elf32-visium.c:837 +#: elf64-ppc.c:6067 +#, c-format +msgid "private flags = 0x%lx:" +msgstr "bandeiras privadas = 0x%lx:" + +#: elf32-arc.c:611 +msgid "Warning: %B: Conflicting platform configuration %s with %s.\n" +msgstr "Aviso: %B: conflito na configuração de plataforma %s com %s.\n" + +#: elf32-arc.c:630 +msgid "error: %B: unable to merge CPU base attributes %s with %s.\n" +msgstr "erro: %B: impossível unir atributos base CPU %s com %s.\n" + +#: elf32-arc.c:667 +msgid "error: %B: unable to merge ISA extension attributes %s.\n" +msgstr "erro: %B: impossível unir atributos de extensão ISA %s.\n" + +#: elf32-arc.c:691 +msgid "error: %B: conflicting ISA extension attributes %s with %s.\n" +msgstr "erro: %B: conflito de atributos de extensão ISA %s com %s.\n" + +#: elf32-arc.c:726 +msgid "error: %B: cannot mix rf16 with full register set %B.\n" +msgstr "erro: %B: impossível misturar rf16 com conjunto de registo completo %B.\n" + +#: elf32-arc.c:752 +msgid "error: %B: conflicting attributes %s: %s with %s.\n" +msgstr "erro: %B: conflito de atributos %s: %s com %s.\n" + +#: elf32-arc.c:777 +msgid "error: %B: conflicting attributes %s.\n" +msgstr "erro: %B: conflito de atributos %s.\n" + +#: elf32-arc.c:877 +#, c-format +msgid "ERROR: Attempting to link %B with a binary %B of different architecture" +msgstr "ERRO: tentativa de ligar %B com um binário %B de diferente arquitectura" + +#: elf32-arc.c:891 elf32-i370.c:359 elf32-iq2000.c:842 elf32-m32c.c:887 +#: elf32-m68hc1x.c:1384 elf32-ppc.c:4846 elf64-sparc.c:727 elfxx-mips.c:15082 +#, c-format +msgid "%B: uses different e_flags (%#x) fields than previous modules (%#x)" +msgstr "%B: usa campos e_flags diferentes (%#x) dos módulos anteriores (%#x)" + +#: elf32-arc.c:980 +msgid "Error: The ARC4 architecture is no longer supported.\n" +msgstr "Erro: a arquitectura ARC4 já não é suportada.\n" + +#: elf32-arc.c:986 +msgid "" +"Warning: unset or old architecture flags. \n" +"\t Use default machine.\n" +msgstr "" +"Aviso: bandeiras não definidas ou de arquitectura antiga. \n" +"\t Use a máquina predefinida.\n" + +#: elf32-arc.c:1119 +#, c-format +msgid "%B(%A+%#Lx): CMEM relocation to `%s' is invalid, 16 MSB should be %#x (value is %#Lx)" +msgstr "%B(%A+%#Lx): relocalização CMEM para \"%s\" é inválida, 16 MSB deveria ser %#x (o valor é %#Lx)" + +#: elf32-arc.c:1130 +#, c-format +msgid "%B(%A+%#Lx): CMEM relocation to `%s+%#Lx' is invalid, 16 MSB should be %#x (value is %#Lx)" +msgstr "%B(%A+%#Lx): relocalização CMEM para \"%s+%#Lx\" é inválida, 16 MSB deveria ser %#x (o valor é %#Lx)" + +#: elf32-arc.c:1836 +msgid "GOT and PLT relocations cannot be fixed with a non dynamic linker." +msgstr "Relocalizações GOT e PLT não podem ser reparadas com um linker não dinâmico." + +#: elf32-arc.c:1860 elf32-rl78.c:1095 elf32-rx.c:1449 +#, c-format +msgid "%B(%A): warning: unaligned access to symbol '%s' in the small data area" +msgstr "%B(%A): aviso: acesso não alinhado ao símbolo \"%s\" na área de dados pequenos" + +#: elf32-arc.c:1865 elf32-rl78.c:1100 elf32-rx.c:1454 +#, c-format +msgid "%B(%A): internal error: out of range error" +msgstr "%B(%A): erro interno: erro fora do intervalo" + +#: elf32-arc.c:1870 elf32-rl78.c:1105 elf32-rx.c:1459 +#, c-format +msgid "%B(%A): internal error: unsupported relocation error" +msgstr "%B(%A): erro interno: erro relocalização não suportada" + +#: elf32-arc.c:1875 elf32-rl78.c:1110 elf32-rx.c:1464 +#, c-format +msgid "%B(%A): internal error: dangerous relocation" +msgstr "%B(%A): erro interno: relocalização perigosa" + +#: elf32-arc.c:1880 elf32-rl78.c:1115 elf32-rx.c:1469 +#, c-format +msgid "%B(%A): internal error: unknown error" +msgstr "%B(%A): erro interno: erro desconhecido" + +#: elf32-arc.c:1968 elf32-arm.c:14521 elf32-metag.c:2252 elfxx-mips.c:8889 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:7103 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:471 +#, c-format +msgid "%B: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC" +msgstr "%B: relocalização %s contra \"%s\" não pode ser usada a fazer um objecto partilhado; recompile com -fPIC" + +#: elf32-arc.c:2860 +msgid "%B: Unknown mandatory ARC object attribute %d." +msgstr "%B: atributo de objecto ARC %d obrigatório desconhecido." + +#: elf32-arc.c:2868 +msgid "Warning: %B: Unknown ARC object attribute %d." +msgstr "Aviso: %B: atributo de objecto ARC %d desconhecido." + +#: elf32-arm.c:4022 elf32-arm.c:4056 elf32-arm.c:4075 elf32-arm.c:4127 +msgid "%B(%A): warning: long branch veneers used in section with SHF_ARM_PURECODE section attribute is only supported for M-profile targets that implement the movw instruction." +msgstr "%B(%A): aviso: o uso de folhas de ramos longos na secção com atributo de secção SHF_ARM_PURECODE só é suportado para alvos M-profile que implementem a instrução movw." + +#: elf32-arm.c:4087 elf32-arm.c:8806 +msgid "" +"%B(%s): warning: interworking not enabled.\n" +" first occurrence: %B: Thumb call to ARM" +msgstr "" +"%B(%s): aviso: interworking não activo.\n" +" primeira ocorrência: %B: chamada Thumb a ARM" + +#: elf32-arm.c:4141 +msgid "" +"%B(%s): warning: interworking not enabled.\n" +" first occurrence: %B: ARM call to Thumb" +msgstr "" +"%B(%s): aviso: interworking não activo.\n" +" primeira ocorrência: %B: chamada ARM a Thumb" + +#: elf32-arm.c:4415 +#, c-format +msgid "No address assigned to the veneers output section %s" +msgstr "Sem endereço atribuído à secção de saída das folhas %s" + +#: elf32-arm.c:4490 elf32-arm.c:6627 elf32-hppa.c:577 elf32-m68hc1x.c:165 +#: elf32-metag.c:1183 elf32-nios2.c:2207 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:2854 +#, c-format +msgid "%B: cannot create stub entry %s" +msgstr "%B: impossível criar entrada fictícia %s" + +#: elf32-arm.c:5675 +msgid "%B: Special symbol `%s' only allowed for ARMv8-M architecture or later." +msgstr "%B: símbolo especial \"%s\" só é permitido para arquitecturas ARMv8-M ou posteriores." + +#: elf32-arm.c:5684 +msgid "%B: invalid special symbol `%s'." +msgstr "%B: símbolo especial \"%s\" inválido." + +#: elf32-arm.c:5686 elf32-arm.c:5726 +msgid "It must be a global or weak function symbol." +msgstr "Tem de ser um símbolo de função global ou fraco." + +#: elf32-arm.c:5724 +msgid "%B: invalid standard symbol `%s'." +msgstr "%B: símbolo standard \"%s\" inválido." + +#: elf32-arm.c:5730 +msgid "%B: absent standard symbol `%s'." +msgstr "%B: símbolo standard \"%s\" ausente." + +#: elf32-arm.c:5742 +msgid "%B: `%s' and its special symbol are in different sections." +msgstr "%B: \"%s\" e o seu símbolo especial estão em secções diferentes." + +#: elf32-arm.c:5754 +msgid "%B: entry function `%s' not output." +msgstr "%B: função de entrada \"%s\" não saída." + +#: elf32-arm.c:5761 +msgid "%B: entry function `%s' is empty." +msgstr "%B: função de entrada \"%s\" está vazia." + +#: elf32-arm.c:5890 +msgid "%B: --in-implib only supported for Secure Gateway import libraries." +msgstr "%B: --in-implib só é suportado para bibliotecas importadas Secure Gateway." + +#: elf32-arm.c:5936 +msgid "%B: invalid import library entry: `%s'." +msgstr "%B: entrada de biblioteca importada \"%s\" inválida." + +#: elf32-arm.c:5938 +msgid "Symbol should be absolute, global and refer to Thumb functions." +msgstr "O símbolo deve ser absoluto, global e referir-se a funções Thumb." + +#: elf32-arm.c:5958 +#, c-format +msgid "Entry function `%s' disappeared from secure code." +msgstr "Função de entrada \"%s\" desapareceu do código de segurança." + +#: elf32-arm.c:5982 +#, c-format +msgid "`%s' refers to a non entry function." +msgstr "\"%s\" refere-se a função não de entrada." + +#: elf32-arm.c:5997 +msgid "%B: visibility of symbol `%s' has changed." +msgstr "%B: a visibilidade do símbolo \"%s\" mudou." + +#: elf32-arm.c:6006 +msgid "%B: incorrect size for symbol `%s'." +msgstr "%B: tamanho incorrecto do símbolo \"%s\"." + +#: elf32-arm.c:6025 +#, c-format +msgid "Offset of veneer for entry function `%s' not a multiple of its size." +msgstr "Desvio \"%s\" da folha para função de entrada não é múltiplo do seu tamanho." + +#: elf32-arm.c:6045 +msgid "new entry function(s) introduced but no output import library specified:" +msgstr "introduzidas novas funções de entrada mas não especificou biblioteca importada de saída:" + +#: elf32-arm.c:6053 +#, c-format +msgid "Start address of `%s' is different from previous link." +msgstr "Endereço inicial de \"%s\" é diferente da ligação prévia." + +#: elf32-arm.c:6760 +#, c-format +msgid "unable to find THUMB glue '%s' for '%s'" +msgstr "impossível encontrar cola THUMB \"%s\" para \"%s\"" + +#: elf32-arm.c:6796 +#, c-format +msgid "unable to find ARM glue '%s' for '%s'" +msgstr "impossível encontrar cola ARM \"%s\" para \"%s\"" + +#: elf32-arm.c:7511 +msgid "%B: BE8 images only valid in big-endian mode." +msgstr "%B: imagens BE8 só são válidas em modo big-endian." + +#. Give a warning, but do as the user requests anyway. +#: elf32-arm.c:7742 +msgid "%B: warning: selected VFP11 erratum workaround is not necessary for target architecture" +msgstr "%B: aviso: a solução de errata VFP11 seleccionada não é necessária para arquitectura de destino" + +#: elf32-arm.c:7769 +msgid "%B: warning: selected STM32L4XX erratum workaround is not necessary for target architecture" +msgstr "%B: aviso: a solução de errata STM32L4XX seleccionada não é necessária para arquitectura de destino" + +#: elf32-arm.c:8306 elf32-arm.c:8326 +msgid "%B: unable to find VFP11 veneer `%s'" +msgstr "%B: impossível encontrar a folha VFP11 \"%s\"" + +#: elf32-arm.c:8392 elf32-arm.c:8411 +msgid "%B: unable to find STM32L4XX veneer `%s'" +msgstr "%B: impossível encontrar a folha STM32L4XX \"%s\"" + +#: elf32-arm.c:8618 +#, c-format +msgid "" +"%B(%A+%#x): error: multiple load detected in non-last IT block instruction : STM32L4XX veneer cannot be generated.\n" +"Use gcc option -mrestrict-it to generate only one instruction per IT block.\n" +msgstr "" +"%B(%A+%#x): erro: detectada múltipla carga em bloco de instrução IT não-último: impossível gerar folha STM32L4XX.\n" +"Use a opção gcc -mrestrict-it para gerar só uma instrução por bloco IT.\n" + +#: elf32-arm.c:8716 +#, c-format +msgid "Invalid TARGET2 relocation type '%s'." +msgstr "Tipo de relocalização \"%s\" TARGET2 inválido." + +#. FIXME: We ought to be able to generate thumb-1 PLT +#. instructions... +#: elf32-arm.c:9458 +msgid "%B: Warning: thumb-1 mode PLT generation not currently supported" +msgstr "%B: aviso: geração PLT modo thumb-1 não é actualmente suportada" + +#: elf32-arm.c:9723 +#, c-format +msgid "%B(%A+%#Lx): unexpected Thumb instruction '%#lx' in TLS trampoline" +msgstr "%B(%A+%#Lx): instrução Thumb \"%#lx\" inesperada em trampolim TLS" + +#: elf32-arm.c:9763 +#, c-format +msgid "%B(%A+%#Lx): unexpected ARM instruction '%#lx' in TLS trampoline" +msgstr "%B(%A+%#Lx): instrução ARM \"%#lx\" inesperada em trampolim TLS" + +#: elf32-arm.c:10103 +msgid "shared object" +msgstr "objecto partilhado" + +#: elf32-arm.c:10106 +msgid "PIE executable" +msgstr "Executável PIE" + +#: elf32-arm.c:10109 +msgid "%B: relocation %s against external or undefined symbol `%s' can not be used when making a %s; recompile with -fPIC" +msgstr "%B: relocalização %s contra símbolo \"%s\" externo ou indefinido não pode ser usada ao fazer %s; recompile com -fPIC" + +#: elf32-arm.c:10240 +msgid "%B: Warning: Arm BLX instruction targets Arm function '%s'." +msgstr "%B: aviso: instrução Arm BLX destina-se a função Arm \"%s\"." + +#: elf32-arm.c:10666 +msgid "%B: Warning: Thumb BLX instruction targets thumb function '%s'." +msgstr "%B: aviso: instrução Thumb BLX destina-se a função thumb \"%s\"." + +#: elf32-arm.c:11534 +#, c-format +msgid "%B(%A+%#Lx): unexpected Thumb instruction '%#lx' referenced by TLS_GOTDESC" +msgstr "%B(%A+%#Lx): instrução Thumb \"%#lx\" inesperada referenciada por TLS_GOTDESC" + +#: elf32-arm.c:11557 +#, c-format +msgid "%B(%A+%#Lx): unexpected ARM instruction '%#lx' referenced by TLS_GOTDESC" +msgstr "%B(%A+%#Lx): instrução ARM \"%#lx\" inesperada referenciada por TLS_GOTDESC" + +#: elf32-arm.c:11586 elf32-m68k.c:3701 elf32-metag.c:1916 elf32-nios2.c:4358 +#, c-format +msgid "%B(%A+%#Lx): %s relocation not permitted in shared object" +msgstr "%B(%A+%#Lx): relocalização %s não permitida em objecto partilhado" + +#: elf32-arm.c:11799 +#, c-format +msgid "%B(%A+%#Lx): Only ADD or SUB instructions are allowed for ALU group relocations" +msgstr "%B(%A+%#Lx): só são permitidas instruções ADD ou SUB para relocalizações de grupo ALU" + +#: elf32-arm.c:11839 elf32-arm.c:11929 elf32-arm.c:12015 elf32-arm.c:12103 +#, c-format +msgid "%B(%A+%#Lx): Overflow whilst splitting %#Lx for group relocation %s" +msgstr "%B(%A+%#Lx): transporte ao dividir %#Lx para relocalização de grupo %s" + +#: elf32-arm.c:12369 elf32-sh.c:4003 elf64-sh64.c:1539 +#, c-format +msgid "%B(%A+%#Lx): %s relocation against SEC_MERGE section" +msgstr "%B(%A+%#Lx): relocalização %s contra secção SEC_MERGE" + +#: elf32-arm.c:12481 elf32-m68k.c:3931 elf32-xtensa.c:2681 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6185 +#, c-format +msgid "%B(%A+%#Lx): %s used with TLS symbol %s" +msgstr "%B(%A+%#Lx): %s usado com símbolo TLS %s" + +#: elf32-arm.c:12483 elf32-m68k.c:3933 elf32-xtensa.c:2683 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6187 +#, c-format +msgid "%B(%A+%#Lx): %s used with non-TLS symbol %s" +msgstr "%B(%A+%#Lx): %s usado com símbolo não-TLS %s" + +#: elf32-arm.c:12565 elf32-tic6x.c:2674 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6520 +msgid "out of range" +msgstr "fora do intervalo" + +#: elf32-arm.c:12569 elf32-nios2.c:4492 elf32-pru.c:821 elf32-tic6x.c:2678 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6524 +msgid "unsupported relocation" +msgstr "relocalização não suportada" + +#: elf32-arm.c:12577 elf32-nios2.c:4502 elf32-pru.c:831 elf32-tic6x.c:2686 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6532 +msgid "unknown error" +msgstr "erro desconhecido" + +#: elf32-arm.c:13157 +msgid "%B: Unknown mandatory EABI object attribute %d" +msgstr "Aviso: %B: atributo de objecto EABI %d obrigatório desconhecido" + +#: elf32-arm.c:13165 +msgid "Warning: %B: Unknown EABI object attribute %d" +msgstr "Aviso: %B: atributo de objecto EABI %d desconhecido" + +#: elf32-arm.c:13432 +msgid "error: %B: Unknown CPU architecture" +msgstr "erro: %B: arquitectura CPU desconhecida" + +#: elf32-arm.c:13470 elf32-nios2.c:2945 +#, c-format +msgid "error: %B: Conflicting CPU architectures %d/%d" +msgstr "erro: %B: arquitecturas CPU %d/%d em conflito" + +#: elf32-arm.c:13567 +msgid "Error: %B has both the current and legacy Tag_MPextension_use attributes" +msgstr "Erro: %B tem ambos os atributos Tag_MPextension_use actual e legado" + +#: elf32-arm.c:13596 +msgid "error: %B uses VFP register arguments, %B does not" +msgstr "erro: %B usa argumentos de registo VFP, %B não" + +#: elf32-arm.c:13754 +msgid "error: %B: unable to merge virtualization attributes with %B" +msgstr "erro: %B: impossível unir atributos de virtualização com %B" + +#: elf32-arm.c:13780 +msgid "error: %B: Conflicting architecture profiles %c/%c" +msgstr "erro: %B: perfis de arquitectura %c/%c em conflito" + +#: elf32-arm.c:13919 +msgid "Warning: %B: Conflicting platform configuration" +msgstr "Aviso: %B: configuração de plataforma em conflito" + +#: elf32-arm.c:13928 +msgid "error: %B: Conflicting use of R9" +msgstr "erro: %B: uso de R9 em conflito" + +#: elf32-arm.c:13940 +msgid "error: %B: SB relative addressing conflicts with use of R9" +msgstr "erro: %B: conflitos de endereçamento relativo SB com o uso de R9" + +#: elf32-arm.c:13953 +msgid "warning: %B uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may fail" +msgstr "aviso: %B usa %u-byte wchar_t mas a saída deve usar %u-byte wchar_t; uso de valores wchar_t através de vários objectos pode falhar" + +#: elf32-arm.c:13984 +msgid "warning: %B uses %s enums yet the output is to use %s enums; use of enum values across objects may fail" +msgstr "aviso: %B usa %s enums mas a saída deve usar %s enums; uso de valores enum através de vários objectos pode falhar" + +#: elf32-arm.c:13996 +msgid "error: %B uses iWMMXt register arguments, %B does not" +msgstr "erro: %B usa argumentos de registo iWMMXt, %B não" + +#: elf32-arm.c:14013 +msgid "error: fp16 format mismatch between %B and %B" +msgstr "erro: formato fp16 enganado entre %B e %B" + +#: elf32-arm.c:14049 +msgid "%B has both the current and legacy Tag_MPextension_use attributes" +msgstr "%B tem ambos os atributos Tag_MPextension_use actual e legado" + +#. Ignore init flag - it may not be set, despite the flags field +#. containing valid data. +#. Ignore init flag - it may not be set, despite the flags field containing valid data. +#. Ignore init flag - it may not be set, despite the flags field +#. containing valid data. +#: elf32-arm.c:14136 elf32-bfin.c:4729 elf32-cris.c:3905 elf32-m68hc1x.c:1409 +#: elf32-m68k.c:1199 elf32-score.c:3998 elf32-score7.c:3803 elf32-vax.c:536 +#: elf32-xgate.c:669 elfxx-mips.c:15756 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6686 +#, c-format +msgid "private flags = %lx:" +msgstr "bandeiras provadas = %lx:" + +#: elf32-arm.c:14145 +#, c-format +msgid " [interworking enabled]" +msgstr " [interworking activo]" + +#: elf32-arm.c:14153 +#, c-format +msgid " [VFP float format]" +msgstr " [formato flutuante VFP]" + +#: elf32-arm.c:14155 +#, c-format +msgid " [Maverick float format]" +msgstr " [formato flutuante Maverick]" + +#: elf32-arm.c:14157 +#, c-format +msgid " [FPA float format]" +msgstr " [formato flutuante FPA]" + +#: elf32-arm.c:14166 +#, c-format +msgid " [new ABI]" +msgstr " [novo ABI]" + +#: elf32-arm.c:14169 +#, c-format +msgid " [old ABI]" +msgstr " [ABI antigo]" + +#: elf32-arm.c:14172 +#, c-format +msgid " [software FP]" +msgstr " [software FP]" + +#: elf32-arm.c:14181 +#, c-format +msgid " [Version1 EABI]" +msgstr " [Version1 EABI]" + +#: elf32-arm.c:14184 elf32-arm.c:14195 +#, c-format +msgid " [sorted symbol table]" +msgstr " [tabela de símbolo ordenada]" + +#: elf32-arm.c:14186 elf32-arm.c:14197 +#, c-format +msgid " [unsorted symbol table]" +msgstr " [tabela de símbolo desordenada]" + +#: elf32-arm.c:14192 +#, c-format +msgid " [Version2 EABI]" +msgstr " [Version2 EABI]" + +#: elf32-arm.c:14200 +#, c-format +msgid " [dynamic symbols use segment index]" +msgstr " [símbolos dinâmicos usam índice de segmento]" + +#: elf32-arm.c:14203 +#, c-format +msgid " [mapping symbols precede others]" +msgstr " [símbolos de mapeamento precedem outros]" + +#: elf32-arm.c:14210 +#, c-format +msgid " [Version3 EABI]" +msgstr " [Version3 EABI]" + +#: elf32-arm.c:14214 +#, c-format +msgid " [Version4 EABI]" +msgstr " [Version4 EABI]" + +#: elf32-arm.c:14218 +#, c-format +msgid " [Version5 EABI]" +msgstr " [Version5 EABI]" + +#: elf32-arm.c:14221 +#, c-format +msgid " [soft-float ABI]" +msgstr " [soft-float ABI]" + +#: elf32-arm.c:14224 +#, c-format +msgid " [hard-float ABI]" +msgstr " [hard-float ABI]" + +#: elf32-arm.c:14230 +#, c-format +msgid " [BE8]" +msgstr " [BE8]" + +#: elf32-arm.c:14233 +#, c-format +msgid " [LE8]" +msgstr " [LE8]" + +#: elf32-arm.c:14239 +#, c-format +msgid " " +msgstr " " + +#: elf32-arm.c:14246 +#, c-format +msgid " [relocatable executable]" +msgstr " [executável relocalizável]" + +#: elf32-arm.c:14251 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6689 +#, c-format +msgid "" +msgstr "" + +#: elf32-arm.c:14368 elf32-i386.c:1510 elf32-s390.c:956 elf32-tic6x.c:2749 +#: elf32-tilepro.c:1471 elf32-xtensa.c:1018 elf64-s390.c:875 +#: elf64-x86-64.c:1823 elfxx-sparc.c:1420 elfxx-tilegx.c:1688 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6978 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:513 +#, c-format +msgid "%B: bad symbol index: %d" +msgstr "%B: mau índice de símbolo: %d" + +#: elf32-arm.c:15636 elf32-hppa.c:2082 elf32-lm32.c:1989 elf32-m32r.c:2097 +#: elf32-metag.c:2792 elf32-nds32.c:3844 elf32-or1k.c:2281 elf32-ppc.c:6156 +#: elf32-s390.c:1851 elf32-sh.c:3289 elf32-tic6x.c:3205 elf32-tilepro.c:2237 +#: elf64-ppc.c:9893 elf64-s390.c:1785 elfxx-sparc.c:2457 elfxx-tilegx.c:2479 +#: elfxx-x86.c:563 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:8319 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:1112 +#, c-format +msgid "%B: dynamic relocation against `%T' in read-only section `%A'\n" +msgstr "%B: relocalização dinâmica contra \"%T\" em secção só de leitura \"%A\"\n" + +#: elf32-arm.c:15881 +msgid "Errors encountered processing file %B" +msgstr "Encontrados erros ao processar o ficheiro %B" + +#: elf32-arm.c:16318 elflink.c:12394 elflink.c:12441 +#, c-format +msgid "could not find section %s" +msgstr "impossível encontrar a secção %s" + +#: elf32-arm.c:17494 +msgid "%B: error: Cortex-A8 erratum stub is allocated in unsafe location" +msgstr "%B: erro: errata Cortex-A8 fictícia está alocada a localização não-segura" + +#. There's not much we can do apart from complain if this +#. happens. +#: elf32-arm.c:17521 +msgid "%B: error: Cortex-A8 erratum stub out of range (input file too large)" +msgstr "%B: erro: errata Cortex-A8 fictícia fora do intervalo (ficheiro de entrada muito grande)" + +#: elf32-arm.c:18348 elf32-arm.c:18370 +msgid "%B: error: VFP11 veneer out of range" +msgstr "%B: erro: folha VFP11 fora do intervalo" + +#: elf32-arm.c:18421 +msgid "%B(%#Lx): error: Cannot create STM32L4XX veneer. Jump out of range by %Ld bytes. Cannot encode branch instruction. " +msgstr "%B(%#Lx): erro: impossível criar folha STM32L4XX. Sai fora do intervalo por %Ld bytes. Impossível codificar a instrução do ramo. " + +#: elf32-arm.c:18459 +msgid "%B: error: Cannot create STM32L4XX veneer." +msgstr "%B: erro: impossível criar folha STM32L4XX." + +#: elf32-arm.c:19481 +msgid "error: %B is already in final BE8 format" +msgstr "erro: %B já está no formato final BE8" + +#: elf32-arm.c:19557 +msgid "error: Source object %B has EABI version %d, but target %B has EABI version %d" +msgstr "erro: objecto fonte %B tem versão EABI %d, mas o alvo %B tem versão EABI %d" + +#: elf32-arm.c:19572 +msgid "error: %B is compiled for APCS-%d, whereas target %B uses APCS-%d" +msgstr "erro: %B está compilado para APCS-%d, enquanto o alvo %B usa APCS-%d" + +#: elf32-arm.c:19596 +msgid "error: %B uses VFP instructions, whereas %B does not" +msgstr "erro: %B usa instruções VFP, enquanto %B não" + +#: elf32-arm.c:19600 +msgid "error: %B uses FPA instructions, whereas %B does not" +msgstr "erro: %B usa instruções FPA, enquanto %B não" + +#: elf32-arm.c:19610 +msgid "error: %B uses Maverick instructions, whereas %B does not" +msgstr "erro: %B usa instruções Maverick, enquanto %B não" + +#: elf32-arm.c:19614 +msgid "error: %B does not use Maverick instructions, whereas %B does" +msgstr "erro: %B não usa instruções Maverick, enquanto %B sim" + +#: elf32-arm.c:19633 +msgid "error: %B uses software FP, whereas %B uses hardware FP" +msgstr "erro: %B usa programa FP, enquanto %B usa equipamento FP" + +#: elf32-arm.c:19637 +msgid "error: %B uses hardware FP, whereas %B uses software FP" +msgstr "erro: %B usa equipamento FP, enquanto %B usa programa FP" + +#: elf32-avr.c:959 +#, c-format +msgid "%B: invalid AVR reloc number: %d" +msgstr "%B: número de reloc AVR inválido: %d" + +#: elf32-avr.c:1510 elf32-bfin.c:3124 elf32-cris.c:2038 elf32-epiphany.c:574 +#: elf32-fr30.c:599 elf32-frv.c:4049 elf32-ft32.c:493 elf32-i860.c:1218 +#: elf32-ip2k.c:1486 elf32-iq2000.c:697 elf32-m32c.c:630 elf32-mep.c:532 +#: elf32-metag.c:1993 elf32-moxie.c:293 elf32-msp430.c:1361 elf32-mt.c:404 +#: elf32-or1k.c:1246 elf32-tilepro.c:3505 elf32-v850.c:2291 elf32-visium.c:685 +#: elf32-xstormy16.c:931 elf64-mmix.c:1546 elfxx-tilegx.c:3865 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2245 +msgid "internal error: dangerous relocation" +msgstr "erro interno: relocalização perigosa" + +#: elf32-avr.c:3319 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:2882 +#, c-format +msgid "cannot create stub entry %s" +msgstr "impossível criar entrada fictícia %s" + +#: elf32-bfin.c:106 elf32-bfin.c:362 +msgid "relocation should be even number" +msgstr "a relocalização deve ser número par" + +#: elf32-bfin.c:1577 +#, c-format +msgid "%B(%A+%#Lx): unresolvable relocation against symbol `%s'" +msgstr "%B(%A+%#Lx): relocalização insolúvel contra símbolo \"%s\"" + +#: elf32-bfin.c:1608 elf32-i386.c:3473 elf32-m68k.c:3971 elf32-s390.c:3261 +#: elf64-s390.c:3175 elf64-x86-64.c:3839 +#, c-format +msgid "%B(%A+%#Lx): reloc against `%s': error %d" +msgstr "%B(%A+%#Lx): reloc contra \"%s\": erro %d" + +#: elf32-bfin.c:2628 +#, c-format +msgid "%B: relocation at `%A+%#Lx' references symbol `%s' with nonzero addend" +msgstr "%B: relocalização em \"%A+%#Lx\" referencia o símbolo \"%s\" com adenda não-zero" + +#: elf32-bfin.c:2644 +msgid "relocation references symbol not defined in the module" +msgstr "relocalização referencia símbolo ainda não definido no módulo" + +#: elf32-bfin.c:2741 +msgid "R_BFIN_FUNCDESC references dynamic symbol with nonzero addend" +msgstr "R_BFIN_FUNCDESC referencia símbolo dinâmico com adenda não-zero" + +#: elf32-bfin.c:2782 elf32-bfin.c:2905 +msgid "cannot emit fixups in read-only section" +msgstr "impossível emitir fixups em secção só de leitura" + +#: elf32-bfin.c:2813 elf32-bfin.c:2943 elf32-lm32.c:1044 elf32-sh.c:4926 +msgid "cannot emit dynamic relocations in read-only section" +msgstr "impossível emitir relocalizações dinâmicas em secção só de leitura" + +#: elf32-bfin.c:2863 +msgid "R_BFIN_FUNCDESC_VALUE references dynamic symbol with nonzero addend" +msgstr "R_BFIN_FUNCDESC_VALUE referencia símbolo dinâmico com adenda não-zero" + +#: elf32-bfin.c:3028 +msgid "relocations between different segments are not supported" +msgstr "relocalizações entre diferentes segmentos não são suportadas" + +#: elf32-bfin.c:3029 +msgid "warning: relocation references a different segment" +msgstr "aviso: a relocalização referencia um segmento diferente" + +#: elf32-bfin.c:4687 +#, c-format +msgid "%B: unsupported relocation type %d" +msgstr "%B: tipo de relocalização não suportado %d" + +#: elf32-bfin.c:4776 elf32-frv.c:6596 +msgid "%B: cannot link non-fdpic object file into fdpic executable" +msgstr "%B: impossível ligar ficheiro objecto não-fdpic a executável fdpic" + +#: elf32-bfin.c:4780 elf32-frv.c:6600 +msgid "%B: cannot link fdpic object file into non-fdpic executable" +msgstr "%B: impossível ligar ficheiro objecto fdpic a executável não-fdpic" + +#: elf32-bfin.c:4930 +#, c-format +msgid "*** check this relocation %s" +msgstr "*** verificar esta relocalização %s" + +#: elf32-bfin.c:5046 +msgid "the bfin target does not currently support the generation of copy relocations" +msgstr "o alvo bfin actualmente não suporta a geração de relocalizações de cópia" + +#: elf32-cr16.c:653 +#, c-format +msgid "Unsupported CR16 relocation type: 0x%x\n" +msgstr "Tipo de relocalização CR16 não suportado: 0x%x\n" + +#: elf32-cr16.c:682 +#, c-format +msgid "%B: unrecognised CR16 reloc number: %d" +msgstr "%B: número de reloc CR16 não reconhecido: %d" + +#: elf32-cr16c.c:186 +#, c-format +msgid "%B: invalid CR16C reloc number: %d" +msgstr "%B: número de reloc CR16C inválido: %d" + +#: elf32-cris.c:467 +#, c-format +msgid "%B: invalid CRIS reloc number: %d" +msgstr "%B: número de reloc CRIS inválido: %d" + +#: elf32-cris.c:1116 +#, c-format +msgid "%B, section %A: unresolvable relocation %s against symbol `%s'" +msgstr "%B, secção %A: relocalização insolúvel %s contra símbolo \"%s\"" + +#: elf32-cris.c:1181 +#, c-format +msgid "%B, section %A: No PLT nor GOT for relocation %s against symbol `%s'" +msgstr "%B, secção %A: sem PLT ou GOT para relocalização %s contra símbolo \"%s\"" + +#: elf32-cris.c:1184 +#, c-format +msgid "%B, section %A: No PLT for relocation %s against symbol `%s'" +msgstr "%B, secção %A: sem PLT para relocalização %s contra símbolo \"%s\"" + +#: elf32-cris.c:1190 elf32-cris.c:1323 elf32-cris.c:1588 elf32-cris.c:1671 +#: elf32-cris.c:1824 elf32-tic6x.c:2586 +msgid "[whose name is lost]" +msgstr "8cujo nome está perdido]" + +#: elf32-cris.c:1308 elf32-tic6x.c:2570 +#, c-format +msgid "%B, section %A: relocation %s with non-zero addend %Ld against local symbol" +msgstr "%B, secção %A: relocalização %s com adenda não-zero %Ld contra símbolo local" + +#: elf32-cris.c:1317 elf32-cris.c:1665 elf32-cris.c:1818 elf32-tic6x.c:2579 +#, c-format +msgid "%B, section %A: relocation %s with non-zero addend %Ld against symbol `%s'" +msgstr "%B, secção %A: relocalização %s com adenda não-zero %Ld contra símbolo \"%s\"" + +#: elf32-cris.c:1344 +#, c-format +msgid "%B, section %A: relocation %s is not allowed for global symbol: `%s'" +msgstr "%B, secção %A: relocalização %s não é permitida para símbolo global: \"%s\"" + +#: elf32-cris.c:1361 +#, c-format +msgid "%B, section %A: relocation %s with no GOT created" +msgstr "%B, secção %A: relocalização %s sem GOT criado" + +#. We shouldn't get here for GCC-emitted code. +#: elf32-cris.c:1578 +#, c-format +msgid "%B, section %A: relocation %s has an undefined reference to `%s', perhaps a declaration mixup?" +msgstr "%B, secção %A: relocalização %s tem referência não definida a \"%s\", talvez uma declaração misturada?" + +#: elf32-cris.c:1581 +#, c-format +msgid "%B, section %A: relocation %s is not allowed for `%s', a global symbol with default visibility, perhaps a declaration mixup?" +msgstr "%B, secção %A: relocalização %s não é permitida para \"%s\", um símbolo global com visibilidade predefinida, talvez uma declaração misturada?" + +#: elf32-cris.c:1952 +#, c-format +msgid "%B, section %A: relocation %s is not allowed for symbol: `%s' which is defined outside the program, perhaps a declaration mixup?" +msgstr "%B, secção %A: relocalização %s não é permitida para \"%s\", que está definido fora do programa, talvez uma declaração misturada?" + +#: elf32-cris.c:2005 +msgid "(too many global variables for -fpic: recompile with -fPIC)" +msgstr "(muitas variáveis globais para -fpic: recompile com -fPIC)" + +#: elf32-cris.c:2012 +msgid "(thread-local data too big for -fpic or -msmall-tls: recompile with -fPIC or -mno-small-tls)" +msgstr "(dados thread-local muito grandes para -fpic ou -msmall-tls: recompile com -fPIC ou -mno-small-tls" + +#: elf32-cris.c:3047 +#, c-format +msgid "" +"%B, section %A:\n" +" v10/v32 compatible object must not contain a PIC relocation" +msgstr "" +"%B, secção %A:\n" +" objecto compatível v10/v32 não deve conter uma relocalização PIC" + +#: elf32-cris.c:3101 +#, c-format +msgid "" +"%B, section %A:\n" +" relocation %s not valid in a shared object; typically an option mixup, recompile with -fPIC" +msgstr "" +"%B, secção %A:\n" +" relocalização %s inválida em objecto partilhado; tipicamente uma mistura de opções, recompile com -fPIC" + +#: elf32-cris.c:3319 +#, c-format +msgid "" +"%B, section %A:\n" +" relocation %s should not be used in a shared object; recompile with -fPIC" +msgstr "" +"%B, secção %A:\n" +" relocalização %s não deve ser usada em objecto partilhado; recompile com -fPIC" + +#: elf32-cris.c:3744 +#, c-format +msgid "" +"%B, section `%A', to symbol `%s':\n" +" relocation %s should not be used in a shared object; recompile with -fPIC" +msgstr "" +"%B, secção %A, para símbolo \"%s\":\n" +" relocalização %s não deve ser usada em objecto partilhado; recompile com -fPIC" + +#: elf32-cris.c:3857 +msgid "Unexpected machine number" +msgstr "Número de máquina inesperado" + +#: elf32-cris.c:3908 +#, c-format +msgid " [symbols have a _ prefix]" +msgstr " [símbolos têm um prefixo _]" + +#: elf32-cris.c:3911 +#, c-format +msgid " [v10 and v32]" +msgstr " [v10 e v32]" + +#: elf32-cris.c:3914 +#, c-format +msgid " [v32]" +msgstr " [v32]" + +#: elf32-cris.c:3958 +msgid "%B: uses _-prefixed symbols, but writing file with non-prefixed symbols" +msgstr "%B: usa símbolos prefixados com _, mas o ficheiro será escrito com símbolos sem prefixo" + +#: elf32-cris.c:3959 +msgid "%B: uses non-prefixed symbols, but writing file with _-prefixed symbols" +msgstr "%B: usa símbolos sem prefixo, mas o ficheiro será escrito com símbolos prefixados com _" + +#: elf32-cris.c:3978 +msgid "%B contains CRIS v32 code, incompatible with previous objects" +msgstr "%B contém código CRIS v32, incompatível com os objectos anteriores" + +#: elf32-cris.c:3980 +msgid "%B contains non-CRIS-v32 code, incompatible with previous objects" +msgstr "%B contém código não-CRIS-v32, incompatível com os objectos anteriores" + +#: elf32-crx.c:429 +#, c-format +msgid "%B: unrecognised CRX reloc number: %d" +msgstr "%B: número de reloc CRX não reconhecido: %d" + +#: elf32-d10v.c:234 +#, c-format +msgid "%B: invalid D10V reloc number: %d" +msgstr "%B: número de reloc D10V inválido : %d" + +#: elf32-d30v.c:522 elf32-d30v.c:541 +#, c-format +msgid "%B: invalid D30V reloc number: %d" +msgstr "%B: número de reloc D30V inválido : %d" + +#: elf32-dlx.c:141 +#, c-format +msgid "BFD Link Error: branch (PC rel16) to section (%s) not supported" +msgstr "Erro de ligação BFD: ramo (PC rel16) para secção (%s) não suportado" + +#: elf32-dlx.c:204 +#, c-format +msgid "BFD Link Error: jump (PC rel26) to section (%s) not supported" +msgstr "Erro de ligação BFD: salto (PC rel26) para secção (%s) não suportado" + +#: elf32-dlx.c:548 +#, c-format +msgid "Invalid DLX reloc number: %d" +msgstr "Número de reloc DLX inválido: %d" + +#: elf32-epiphany.c:376 +#, c-format +msgid "%B: invalid Epiphany reloc number: %d" +msgstr "%B: número de reloc Epiphany inválido: %d" + +#. Only if it's not an unresolved symbol. +#: elf32-epiphany.c:570 elf32-ip2k.c:1482 +msgid "unsupported relocation between data/insn address spaces" +msgstr "relocalização não suportada entre dados/espaços de endereço insn" + +#: elf32-fr30.c:381 +#, c-format +msgid "%B: invalid FR30 reloc number: %d" +msgstr "%B: número de reloc FR30 inválido: %d" + +#: elf32-frv.c:1451 elf32-frv.c:1602 +msgid "relocation requires zero addend" +msgstr "relocalização requer adenda zero" + +#: elf32-frv.c:2557 +#, c-format +msgid "%B: invalid FRV reloc number: %d" +msgstr "%B: número de reloc FRV inválido: %d" + +#: elf32-frv.c:2823 +#, c-format +msgid "%H: relocation to `%s+%v' may have caused the error above\n" +msgstr "%H: relocalização para \"%s+%v\" poderá ter causado o erro acima\n" + +#: elf32-frv.c:2840 +msgid "%H: relocation references symbol not defined in the module\n" +msgstr "%H: relocalização referencia símbolo não definido no módulo\n" + +#: elf32-frv.c:2916 +msgid "%H: R_FRV_GETTLSOFF not applied to a call instruction\n" +msgstr "%H: R_FRV_GETTLSOFF não aplicado a uma instrução call\n" + +#: elf32-frv.c:2957 +msgid "%H: R_FRV_GOTTLSDESC12 not applied to an lddi instruction\n" +msgstr "%H: R_FRV_GOTTLSDESC12 não aplicado a uma instrução lddi\n" + +#: elf32-frv.c:3028 +msgid "%H: R_FRV_GOTTLSDESCHI not applied to a sethi instruction\n" +msgstr "%H: R_FRV_GOTTLSDESCHI não aplicado a uma instrução sethi\n" + +#: elf32-frv.c:3065 +msgid "%H: R_FRV_GOTTLSDESCLO not applied to a setlo or setlos instruction\n" +msgstr "%H: R_FRV_GOTTLSDESCLO não aplicado a uma instrução setlo ou setlos\n" + +#: elf32-frv.c:3112 +msgid "%H: R_FRV_TLSDESC_RELAX not applied to an ldd instruction\n" +msgstr "%H: R_FRV_TLSDESC_RELAX não aplicado a uma instrução ldd\n" + +#: elf32-frv.c:3196 +msgid "%H: R_FRV_GETTLSOFF_RELAX not applied to a calll instruction\n" +msgstr "%H: R_FRV_GETTLSOFF_RELAX não aplicado a uma instrução calll\n" + +#: elf32-frv.c:3250 +msgid "%H: R_FRV_GOTTLSOFF12 not applied to an ldi instruction\n" +msgstr "%H: R_FRV_GOTTLSOFF12 não aplicado a uma instrução ldi\n" + +#: elf32-frv.c:3280 +msgid "%H: R_FRV_GOTTLSOFFHI not applied to a sethi instruction\n" +msgstr "%H: R_FRV_GOTTLSOFFHI não aplicado a uma instrução sethi\n" + +#: elf32-frv.c:3309 +msgid "%H: R_FRV_GOTTLSOFFLO not applied to a setlo or setlos instruction\n" +msgstr "%H: R_FRV_GOTTLSOFFLO não aplicado a uma instrução setlo ou setlos\n" + +#: elf32-frv.c:3339 +msgid "%H: R_FRV_TLSOFF_RELAX not applied to an ld instruction\n" +msgstr "%H: R_FRV_TLSOFF_RELAX não aplicado a uma instrução ld\n" + +#: elf32-frv.c:3384 +msgid "%H: R_FRV_TLSMOFFHI not applied to a sethi instruction\n" +msgstr "%H: R_FRV_TLSMOFFHI não aplicado a uma instrução sethi\n" + +#: elf32-frv.c:3411 +msgid "R_FRV_TLSMOFFLO not applied to a setlo or setlos instruction\n" +msgstr "R_FRV_TLSMOFFLO não aplicado a uma instrução setlo ou setlos\n" + +#: elf32-frv.c:3532 +msgid "%H: R_FRV_FUNCDESC references dynamic symbol with nonzero addend\n" +msgstr "%H: R_FRV_FUNCDESC referencia símbolo dinâmico com adenda não zero\n" + +#: elf32-frv.c:3573 elf32-frv.c:3695 +msgid "%H: cannot emit fixups in read-only section\n" +msgstr "%H: impossível emitir fixups em secção só de leitura\n" + +#: elf32-frv.c:3604 elf32-frv.c:3738 +msgid "%H: cannot emit dynamic relocations in read-only section\n" +msgstr "%H: impossível emitir relocalizações dinâmicas em secção só de leitura\n" + +#: elf32-frv.c:3653 +msgid "%H: R_FRV_FUNCDESC_VALUE references dynamic symbol with nonzero addend\n" +msgstr "%H: R_FRV_FUNCDESC_VALUE referencia símbolo dinâmico com adenda não-zero\n" + +#: elf32-frv.c:3910 +#, c-format +msgid "%H: reloc against `%s' references a different segment\n" +msgstr "%H: reloc contra \"%s\" referencia um segmento diferente\n" + +#: elf32-frv.c:4061 +#, c-format +msgid "%H: reloc against `%s': %s\n" +msgstr "%H: reloc contra \"%s\": %s\n" + +#: elf32-frv.c:6255 +#, c-format +msgid "%B: unsupported relocation type %i\n" +msgstr "%B: tipo de relocalização não suportado %i\n" + +#: elf32-frv.c:6507 +#, c-format +msgid "%B: compiled with %s and linked with modules that use non-pic relocations" +msgstr "%B: compilado com %s e ligado com módulos que usam relocalizações não-pic" + +#: elf32-frv.c:6561 elf32-iq2000.c:828 elf32-m32c.c:874 +#, c-format +msgid "%B: compiled with %s and linked with modules compiled with %s" +msgstr "%B: compilado com %s e ligado com módulos compilados com %s" + +#: elf32-frv.c:6574 +#, c-format +msgid "%B: uses different unknown e_flags (%#x) fields than previous modules (%#x)" +msgstr "%B: usa campos e_flags (%#x) desconhecidos diferentes dos módulos anteriores (%#x)" + +#: elf32-gen.c:69 elf64-gen.c:69 +#, c-format +msgid "%B: Relocations in generic ELF (EM: %d)" +msgstr "%B: relocalizações em ELF (EM: %d) genérico" + +#: elf32-hppa.c:829 elf32-hppa.c:3499 +#, c-format +msgid "%B(%A+%#Lx): cannot reach %s, recompile with -ffunction-sections" +msgstr "%B(%A+%#Lx): impossível atingir %s, recompile com -ffunction-sections" + +#: elf32-hppa.c:1242 +#, c-format +msgid "%B: relocation %s can not be used when making a shared object; recompile with -fPIC" +msgstr "%B: relocalização %s não pode ser usada ao fazer um objecto partilhado; recompile com -fPIC" + +#: elf32-hppa.c:2680 +#, c-format +msgid "%B: duplicate export stub %s" +msgstr "%B: fictício de exportação duplicado %s" + +#: elf32-hppa.c:3333 +#, c-format +msgid "%B(%A+%#Lx): %s fixup for insn %#x is not supported in a non-shared link" +msgstr "%B(%A+%#Lx): %s fixup para insn %#x não é suportado em ligação não partilhada" + +#: elf32-hppa.c:4124 +#, c-format +msgid "%s has both normal and TLS relocs" +msgstr "%s tem relocs normal e TLS em simultâneo" + +#: elf32-hppa.c:4142 +msgid "%B:%s has both normal and TLS relocs" +msgstr "%B:%s tem relocs normal e TLS em simultâneo" + +#: elf32-hppa.c:4201 +#, c-format +msgid "%B(%A+%#Lx): cannot handle %s for %s" +msgstr "%B(%A+%#Lx): impossível gerir %s para %s" + +#: elf32-hppa.c:4505 +msgid ".got section not immediately after .plt section" +msgstr "secção .got não imediatamente após secção .plt" + +#: elf32-i370.c:307 +#, c-format +msgid "%B: unrecognised I370 reloc number: %d" +msgstr "%B: número de reloc I370 não reconhecido: %d" + +#: elf32-i370.c:1164 +msgid "%B: unknown relocation type %d for symbol %s" +msgstr "%B: tipo de relocalização %d não desconhecido para símbolo %s" + +#: elf32-i370.c:1306 +#, c-format +msgid "%B: Relocation %s is not yet supported for symbol %s." +msgstr "%B: Relocalização %s ainda não suportada para símbolo %s." + +#. Unknown relocation. +#: elf32-i386.c:384 elf32-m68k.c:352 elf32-ppc.c:2039 elf32-s390.c:346 +#: elf32-tic6x.c:2609 elf32-wasm32.c:106 elf64-ppc.c:2516 elf64-s390.c:373 +#: elf64-x86-64.c:285 +#, c-format +msgid "%B: invalid relocation type %d" +msgstr "%B: tipo de relocalização %d inválido" + +#: elf32-i386.c:1159 elf64-x86-64.c:1335 +#, c-format +msgid "%B: TLS transition from %s to %s against `%s' at %#Lx in section `%A' failed" +msgstr "%B: transição TLS de %s para %s contra \"%s\" em %#Lx na secção \"%A\" falhou" + +#: elf32-i386.c:1250 +#, c-format +msgid "%B: direct GOT relocation R_386_GOT32X against `%s' without base register can not be used when making a shared object" +msgstr "%B: relocalização GOT directa R_386_GOT32X contra \"%s\" sem registo-base não pode ser usada ao fazer um objecto partilhado" + +#: elf32-i386.c:1703 elf32-s390.c:1184 elf32-sh.c:6057 elf32-tilepro.c:1584 +#: elf32-xtensa.c:1192 elf64-s390.c:1113 elfxx-sparc.c:1601 +#: elfxx-tilegx.c:1793 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:427 +#, c-format +msgid "%B: `%s' accessed both as normal and thread local symbol" +msgstr "%B: \"%s\" acedido como símbolo local normal e thread em simultâneo" + +#: elf32-i386.c:1767 +#, c-format +msgid "%B: unsupported non-PIC call to IFUNC `%s'" +msgstr "%B: chamada não-PIC a IFUNC \"%s\" não suportada" + +#: elf32-i386.c:2345 elf64-x86-64.c:2625 +#, c-format +msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't supported" +msgstr "%B: relocalização %s contra STT_GNU_IFUNC símbolo \"%s\" não suportada" + +#: elf32-i386.c:2378 elf32-i386.c:3684 elf32-i386.c:3823 elf64-x86-64.c:2682 +#: elf64-x86-64.c:4012 elf64-x86-64.c:4166 +msgid "Local IFUNC function `%s' in %B\n" +msgstr "Função IFUNC local \"%s\" em %B\n" + +#: elf32-i386.c:2593 +#, c-format +msgid "%B: direct GOT relocation %s against `%s' without base register can not be used when making a shared object" +msgstr "%B: relocalização GOT directa %s contra \"%s\" sem registo-base não pode ser usada ao fazer um objecto partilhado" + +#: elf32-i386.c:2628 elf64-x86-64.c:2873 +msgid "hidden symbol" +msgstr "símbolo oculto" + +#: elf32-i386.c:2631 elf64-x86-64.c:2876 +msgid "internal symbol" +msgstr "símbolo interno" + +#: elf32-i386.c:2634 elf64-x86-64.c:2879 +msgid "protected symbol" +msgstr "símbolo protegido" + +#: elf32-i386.c:2637 elf64-x86-64.c:2882 +msgid "symbol" +msgstr "símbolo" + +#: elf32-i386.c:2643 +#, c-format +msgid "%B: relocation R_386_GOTOFF against undefined %s `%s' can not be used when making a shared object" +msgstr "%B: relocalização R_386_GOTOFF contra %s \"%s\" indefinido não pode ser usada ao fazer um objecto partilhado" + +#: elf32-i386.c:2656 +#, c-format +msgid "%B: relocation R_386_GOTOFF against protected %s `%s' can not be used when making a shared object" +msgstr "%B: relocalização R_386_GOTOFF contra %s \"%s\" protegido não pode ser usada ao fazer um objecto partilhado" + +#: elf32-i960.c:140 +#, c-format +msgid "%B: invalid i960 reloc number: %d" +msgstr "%B: número de reloc i960 inválido: %d" + +#: elf32-ip2k.c:856 elf32-ip2k.c:862 elf32-ip2k.c:929 elf32-ip2k.c:935 +msgid "ip2k relaxer: switch table without complete matching relocation information." +msgstr "ip2k relaxer: tabela de troca sem informação completa de comparação de relocalização." + +#: elf32-ip2k.c:879 elf32-ip2k.c:962 +msgid "ip2k relaxer: switch table header corrupt." +msgstr "ip2k relaxer: cabeçalho da tabela de troca corrompido." + +#: elf32-ip2k.c:1245 +#, c-format +msgid "%B: invalid IP2K reloc number: %d" +msgstr "%B: número de reloc IP2K inválido: %d" + +#: elf32-ip2k.c:1298 +#, c-format +msgid "ip2k linker: missing page instruction at %#Lx (dest = %#Lx)" +msgstr "ip2k linker: página de instrução em falta em %#Lx (dest = %#Lx)" + +#: elf32-ip2k.c:1315 +#, c-format +msgid "ip2k linker: redundant page instruction at %#Lx (dest = %#Lx)" +msgstr "ip2k linker: página de instrução redundante em %#Lx (dest = %#Lx)" + +#: elf32-iq2000.c:441 +#, c-format +msgid "%B: invalid IQ2000 reloc number: %d" +msgstr "%B: número de reloc IQ2000 inválido: %d" + +#: elf32-lm32.c:539 +#, c-format +msgid "%B: invalid LM32 reloc number: %d" +msgstr "%B: número de reloc LM32 inválido: %d" + +#: elf32-lm32.c:648 elf32-nios2.c:3133 +msgid "global pointer relative relocation when _gp not defined" +msgstr "relocalização relativa de ponteiro global com _gp não definido" + +#: elf32-lm32.c:703 elf32-nios2.c:3570 +msgid "global pointer relative address out of range" +msgstr "endereço relativo de ponteiro global fora do intervalo" + +#: elf32-lm32.c:998 +msgid "internal error: addend should be zero for R_LM32_16_GOT" +msgstr "erro interno: adenda devia ser zero para R_LM32_16_GOT" + +#: elf32-m32c.c:306 +#, c-format +msgid "%B: invalid M32C reloc number: %d" +msgstr "%B: número de reloc M32C inválido: %d" + +#: elf32-m32r.c:1286 +#, c-format +msgid "%B: invalid M32R reloc number: %d" +msgstr "%B: número de reloc M32R inválido: %d" + +#: elf32-m32r.c:1458 +msgid "SDA relocation when _SDA_BASE_ not defined" +msgstr "relocalização SDA com _SDA_BASE_ não definido" + +#: elf32-m32r.c:2971 elf32-microblaze.c:1064 elf32-microblaze.c:1112 +#, c-format +msgid "%B: The target (%s) of an %s relocation is in the wrong section (%A)" +msgstr "%B: o alvo (%s) de uma relocalização %s está na secção errada (%A)" + +#: elf32-m32r.c:3473 +msgid "%B: Instruction set mismatch with previous modules" +msgstr "%B: conjunto de instruções trocado com os módulos anteriores" + +#: elf32-m32r.c:3494 elf32-nds32.c:6037 +#, c-format +msgid "private flags = %lx" +msgstr "bandeiras privadas = %lx" + +#: elf32-m32r.c:3499 +#, c-format +msgid ": m32r instructions" +msgstr ": instruções m32r" + +#: elf32-m32r.c:3500 +#, c-format +msgid ": m32rx instructions" +msgstr ": instruções m32rx" + +#: elf32-m32r.c:3501 +#, c-format +msgid ": m32r2 instructions" +msgstr ": instruções m32r2" + +#: elf32-m68hc11.c:390 +#, c-format +msgid "%B: invalid M68HC11 reloc number: %d" +msgstr "%B: invalid M68HC11 reloc number: %d" + +#: elf32-m68hc12.c:510 +#, c-format +msgid "%B: invalid M68HC12 reloc number: %d" +msgstr "%B: número de reloc M68HC12 inválido: %d" + +#: elf32-m68hc1x.c:1115 +#, c-format +msgid "Reference to the far symbol `%s' using a wrong relocation may result in incorrect execution" +msgstr "Referência ao símbolo distante \"%s\" com uma relocalização errada pode resultar em execução incorrecta" + +#: elf32-m68hc1x.c:1149 +#, c-format +msgid "XGATE address (%lx) is not within shared RAM(0xE000-0xFFFF), therefore you must manually offset the address, and possibly manage the page, in your code." +msgstr "O endereço XGATE (%lx) não está dentro de RAM(0xE000-0xFFFF) partilhado, deve desviar manualmente o endereço e, possivelmente gerir a página, no seu código." + +#: elf32-m68hc1x.c:1167 +#, c-format +msgid "banked address [%lx:%04lx] (%lx) is not in the same bank as current banked address [%lx:%04lx] (%lx)" +msgstr "endereço de banco [%lx:%04lx] (%lx) não está no mesmo banco que o endereço actual [%lx:%04lx] (%lx)" + +#: elf32-m68hc1x.c:1183 +#, c-format +msgid "reference to a banked address [%lx:%04lx] in the normal address space at %04lx" +msgstr "referência a um endereço de banco [%lx:%04lx] no espaço de endereço normal em %04lx" + +#: elf32-m68hc1x.c:1224 +#, c-format +msgid "S12 address (%lx) is not within shared RAM(0x2000-0x4000), therefore you must manually offset the address in your code" +msgstr "endereço S12 (%lx) não está dentro de RAM(0x2000-0x4000) partilhado, deve desviar manualmente o endereço no seu código" + +#: elf32-m68hc1x.c:1351 +msgid "%B: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers" +msgstr "%B: a ligar ficheiros compilados para inteiros de 16-bit (-mshort) e outros para inteiros de 32-bit" + +#: elf32-m68hc1x.c:1358 +msgid "%B: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double" +msgstr "%B: a ligar ficheiros compilados para duplos de 32-bit (-fshort-double) e outros para duplos de 64-bit" + +#: elf32-m68hc1x.c:1367 +msgid "%B: linking files compiled for HCS12 with others compiled for HC12" +msgstr "%B: a ligar ficheiros compilados para HCS12 com outros compilados para HC12" + +#: elf32-m68hc1x.c:1412 elf32-xgate.c:672 +#, c-format +msgid "[abi=32-bit int, " +msgstr "[abi=32-bit int, " + +#: elf32-m68hc1x.c:1414 elf32-xgate.c:674 +#, c-format +msgid "[abi=16-bit int, " +msgstr "[abi=16-bit int, " + +#: elf32-m68hc1x.c:1417 elf32-xgate.c:677 +#, c-format +msgid "64-bit double, " +msgstr "64-bit duplo, " + +#: elf32-m68hc1x.c:1419 elf32-xgate.c:679 +#, c-format +msgid "32-bit double, " +msgstr "32-bit duplo, " + +#: elf32-m68hc1x.c:1422 +#, c-format +msgid "cpu=HC11]" +msgstr "cpu=HC11]" + +#: elf32-m68hc1x.c:1424 +#, c-format +msgid "cpu=HCS12]" +msgstr "cpu=HCS12]" + +#: elf32-m68hc1x.c:1426 +#, c-format +msgid "cpu=HC12]" +msgstr "cpu=HC12]" + +#: elf32-m68hc1x.c:1429 +#, c-format +msgid " [memory=bank-model]" +msgstr " [memória=bank-model]" + +#: elf32-m68hc1x.c:1431 +#, c-format +msgid " [memory=flat]" +msgstr " [memória=flat]" + +#: elf32-m68hc1x.c:1434 +#, c-format +msgid " [XGATE RAM offsetting]" +msgstr " [desvio XGATE RAM]" + +#: elf32-m68k.c:1214 elf32-m68k.c:1215 vms-alpha.c:7477 vms-alpha.c:7493 +msgid "unknown" +msgstr "desconhecido" + +#: elf32-m68k.c:1658 +#, c-format +msgid "%B: GOT overflow: Number of relocations with 8-bit offset > %d" +msgstr "%B: transporte GOT: número de relocalizações com desvio 8-bit > %d" + +#: elf32-m68k.c:1665 +#, c-format +msgid "%B: GOT overflow: Number of relocations with 8- or 16-bit offset > %d" +msgstr "%B: transporte GOT: número de relocalizações com desvio 8- ou 16-bit > %d" + +#: elf32-mcore.c:100 elf32-mcore.c:455 +#, c-format +msgid "%B: Relocation %s (%d) is not currently supported.\n" +msgstr "%B: Relocalização %s (%d) actualmente não suportada.\n" + +#: elf32-mcore.c:355 +#, c-format +msgid "%B: unrecognised MCore reloc number: %d" +msgstr "%B: número de reloc MCore não reconhecido: %d" + +#: elf32-mcore.c:440 +#, c-format +msgid "%B: Unknown relocation type %d\n" +msgstr "%B: tipo de relocalização %d desconhecido\n" + +#. Pacify gcc -Wall. +#: elf32-mep.c:139 +#, c-format +msgid "mep: no reloc for code %d" +msgstr "mep: sem reloc para código %d" + +#: elf32-mep.c:146 +#, c-format +msgid "MeP: howto %d has type %d" +msgstr "MeP: howto %d tem tipo %d" + +#: elf32-mep.c:390 +#, c-format +msgid "%B: invalid MEP reloc number: %d" +msgstr "%B: número de reloc MEP inválido: %d" + +#: elf32-mep.c:620 +#, c-format +msgid "%B and %B are for different cores" +msgstr "%B e %B são para cores diferentes" + +#: elf32-mep.c:639 +#, c-format +msgid "%B and %B are for different configurations" +msgstr "%B e %B são para configurações diferentes" + +#: elf32-mep.c:677 +#, c-format +msgid "private flags = 0x%lx" +msgstr "bandeiras privadas = 0x%lx" + +#: elf32-metag.c:878 +#, c-format +msgid "%B: invalid METAG reloc number: %d" +msgstr "%B: número de reloc METAG inválido: %d" + +#: elf32-metag.c:1860 +msgid "%B(%A): multiple TLS models are not supported" +msgstr "%B(%A): múltiplos modelos TLS não são suportados" + +#: elf32-metag.c:1863 +msgid "%B(%A): shared library symbol %s encountered whilst performing a static link" +msgstr "%B(%A): encontrado símbolo de biblioteca partilhada %s ao realizar ligação estática" + +#: elf32-microblaze.c:656 +#, c-format +msgid "%B: unrecognised MicroBlaze reloc number: %d" +msgstr "%B: número de reloc MicroBlaze não reconhecido: %d" + +#: elf32-microblaze.c:1482 elf32-or1k.c:1052 elf32-tilepro.c:3147 +#: elfxx-sparc.c:3537 elfxx-tilegx.c:3531 +msgid "%B: probably compiled without -fPIC?" +msgstr "%B: provavelmente compilado com -fPIC?" + +#: elf32-mips.c:1777 elf64-mips.c:3200 elfn32-mips.c:3014 +msgid "literal relocation occurs for an external symbol" +msgstr "relocalização literal ocorre para um símbolo externo" + +#: elf32-mips.c:1824 elf32-score.c:569 elf32-score7.c:469 elf64-mips.c:3243 +#: elfn32-mips.c:3055 +msgid "32bits gp relative relocation occurs for an external symbol" +msgstr "relocalização relativa 32bits gp ocorre para um símbolo externo" + +#: elf32-mips.c:2225 +#, c-format +msgid "Unrecognised MIPS reloc number: %d" +msgstr "Número de reloc MIPS não reconhecido: %d" + +#: elf32-moxie.c:137 +#, c-format +msgid "%B: invalid Moxie reloc number: %d" +msgstr "%B: número de reloc Moxie inválido: %d" + +#: elf32-msp430.c:648 +#, c-format +msgid "%B: invalid MSP430X reloc number: %d" +msgstr "%B: número de reloc MSP430X inválido: %d" + +#: elf32-msp430.c:658 +#, c-format +msgid "%B: invalid MSP430 reloc number: %d" +msgstr "%B: número de reloc MSP430 inválido: %d" + +#: elf32-msp430.c:832 elf32-msp430.c:1146 +msgid "Try enabling relaxation to avoid relocation truncations" +msgstr "Tente activar relaxe para evitar truncamentos nas relocalizações" + +#: elf32-msp430.c:1353 +msgid "internal error: branch/jump to an odd address detected" +msgstr "erro interno: detectado ramo/salto para um endereço ímpar" + +#: elf32-msp430.c:2352 +#, c-format +msgid "Warning: %B: Unknown MSPABI object attribute %d" +msgstr "Aviso: %B: atributo de objecto MSABI %d desconhecido" + +#: elf32-msp430.c:2445 +#, c-format +msgid "error: %B uses %s instructions but %B uses %s" +msgstr "erro: %B usa instruções %s mas %B usa %s" + +#: elf32-msp430.c:2457 +#, c-format +msgid "error: %B uses the %s code model whereas %B uses the %s code model" +msgstr "erro: %B usa o modelo de código %s enquanto %B usa o modelo de código %s" + +#: elf32-msp430.c:2469 +#, c-format +msgid "error: %B uses the large code model but %B uses MSP430 instructions" +msgstr "erro: %B usa o modelo de código grande mas %B usa instruções MSP430" + +#: elf32-msp430.c:2480 +#, c-format +msgid "error: %B uses the %s data model whereas %B uses the %s data model" +msgstr "erro: %B usa o modelo de dados %s enquanto %B usa o modelo de dados %s" + +#: elf32-msp430.c:2492 +#, c-format +msgid "error: %B uses the small code model but %B uses the %s data model" +msgstr "erro: %B usa o modelo de código pequeno mas %B usa o modelo de dados %s" + +#: elf32-msp430.c:2504 +#, c-format +msgid "error: %B uses the %s data model but %B only uses MSP430 instructions" +msgstr "erro: %B usa o modelo de dados %s mas %B só usa instruções MSP430" + +#: elf32-mt.c:242 +#, c-format +msgid "%B: invalid MT reloc number: %d" +msgstr "%B: número de reloc MT inválido: %d" + +#: elf32-nds32.c:2897 +#, c-format +msgid "%B: invalid NDS32 reloc number: %d" +msgstr "%B: número de reloc NDS32 inválido: %d" + +#: elf32-nds32.c:3232 +msgid "error: Can't find symbol: _SDA_BASE_." +msgstr "erro: impossível encontrar símbolo: _SDA_BASE_." + +#: elf32-nds32.c:4410 elf32-nds32.c:11783 +msgid "%B: error: Cannot set _ITB_BASE_" +msgstr "%B: erro: impossível definir _ITB_BASE_" + +#: elf32-nds32.c:4418 +msgid "error: IFC relocation error." +msgstr "erro: erro de relocalização IFC." + +#: elf32-nds32.c:4452 +#, c-format +msgid "%B: error: unknown relocation type %d." +msgstr "%B: erro: tipo de relocalização %d desconhecido." + +#: elf32-nds32.c:4898 +msgid "%B: warning: cannot deal R_NDS32_25_ABS_RELA in shared mode." +msgstr "%B: aviso: impossível gerir R_NDS32_25_ABS_RELA em modo partilhado." + +#: elf32-nds32.c:5032 +msgid "%B: warning: unaligned access to GOT entry." +msgstr "%B: aviso: acesso não alinhado a entrada GOT." + +#: elf32-nds32.c:5074 +msgid "%B: warning: relocate SDA_BASE failed." +msgstr "%B: aviso: falha ao relocalizar SDA_BASE." + +#: elf32-nds32.c:5096 +#, c-format +msgid "%B(%A): warning: unaligned small data access of type %d." +msgstr "%B(%A): aviso: acesso não alinhado a dados pequenos de tipo %d." + +#: elf32-nds32.c:5844 +#, c-format +msgid "%B: ISR vector size mismatch with previous modules, previous %u-byte, current %u-byte" +msgstr "%B: tamanho do vector ISR trocado com módulos anteriores, anterior %u-byte, actual %u-byte" + +#: elf32-nds32.c:5888 +msgid "%B: warning: Endian mismatch with previous modules." +msgstr "%B: aviso: Endian trocado com módulos anteriores." + +#: elf32-nds32.c:5898 +msgid "%B: warning: Older version of object file encountered, Please recompile with current tool chain." +msgstr "%B: aviso: encontradas versões anteriores do ficheiro objecto, recompile com as ferramentas actuais." + +#: elf32-nds32.c:5976 +msgid "%B: error: ABI mismatch with previous modules." +msgstr "%B: erro: ABI trocado com módulos anteriores." + +#: elf32-nds32.c:5987 +msgid "%B: error: Instruction set mismatch with previous modules." +msgstr "%B: erro: conjunto de instruções trocado com módulos anteriores." + +#: elf32-nds32.c:6013 +#, c-format +msgid "%B: warning: Incompatible elf-versions %s and %s." +msgstr "%B: aviso: versões elf %s e %s incompatíveis." + +#: elf32-nds32.c:6043 +#, c-format +msgid ": n1 instructions" +msgstr ": instruções n1" + +#: elf32-nds32.c:6046 +#, c-format +msgid ": n1h instructions" +msgstr ": instruções n1h" + +#: elf32-nds32.c:8535 +msgid "%B: Error: search_nds32_elf_blank reports wrong node\n" +msgstr "%B: erro: search_nds32_elf_blank reporta nó errado\n" + +#: elf32-nds32.c:8794 +#, c-format +msgid "%B: warning: %s points to unrecognized reloc at %#Lx" +msgstr "%B: aviso: %s aponta para reloc não reconhecida em %#Lx" + +#: elf32-nds32.c:11655 elf32-nds32.c:11672 +msgid "error: Jump IFC Fail." +msgstr "erro: falha em salto IFC." + +#: elf32-nds32.c:12529 +#, c-format +msgid "%B: Nested OMIT_FP in %A." +msgstr "%B: OMIT_FP aninhado em %A." + +#: elf32-nds32.c:12548 +#, c-format +msgid "%B: Unmatched OMIT_FP in %A." +msgstr "%B: OMIT_FP desirmanado em %A." + +#: elf32-nds32.c:12831 reloc.c:8273 +#, c-format +msgid "%X%P: %B(%A): relocation \"%R\" goes out of range\n" +msgstr "%X%P: %B(%A): relocalização \"%R\" sai fora do intervalo\n" + +#: elf32-nds32.c:14607 +msgid "Linker: cannot init ex9 hash table error \n" +msgstr "Linker: impossível iniciar erro da tabela de hash ex9 \n" + +#: elf32-nds32.c:15016 elf32-nds32.c:15030 +msgid "Linker: error cannot fixed ex9 relocation \n" +msgstr "Linker: erro impossível relocalização fixa ex9 \n" + +#: elf32-nds32.c:15241 +#, c-format +msgid "%B: warning: unaligned small data access for entry: {%Ld, %Ld, %Ld}, addr = %#Lx, align = %#x" +msgstr "%B: aviso: acesso não alinhado a dados pequenos para entrada: {%Ld, %Ld, %Ld}, end = %#Lx, alinh = %#x" + +#: elf32-nds32.c:15274 +#, c-format +msgid "failed creating ex9.it %s hash table entry" +msgstr "falha ao criar entrada de tabela hash ex9.it %s" + +#: elf32-nios2.c:2929 +msgid "error: %B: Big-endian R2 is not supported." +msgstr "erro: %B: Big-endian R2 não é suportado." + +#: elf32-nios2.c:3814 +#, c-format +msgid "global pointer relative relocation at address 0x%08x when _gp not defined\n" +msgstr "relocalização relativa de ponteiro global no endereço 0x%08x com _gp não definido\n" + +#: elf32-nios2.c:3834 +#, c-format +msgid "Unable to reach %s (at 0x%08x) from the global pointer (at 0x%08x) because the offset (%d) is out of the allowed range, -32678 to 32767.\n" +msgstr "Impossível atingir %s (at 0x%08x) do ponteiro global (em 0x%08x) porque o desvio (%d) está fora do intervalo permitido, -32678 a 32767.\n" + +#: elf32-nios2.c:4487 elf32-pru.c:816 +msgid "relocation out of range" +msgstr "relocalização fora do intervalo" + +#: elf32-nios2.c:4497 elf32-pru.c:826 elf32-tic6x.c:2682 +msgid "dangerous relocation" +msgstr "relocalização perigosa" + +#: elf32-nios2.c:5370 +#, c-format +msgid "dynamic variable `%s' is zero size" +msgstr "variável dinâmica \"%s\" tem tamanho zero" + +#: elf32-or1k.c:715 +#, c-format +msgid "%B: invalid OR1K reloc number: %d" +msgstr "%B: número de reloc OR1K inválido: %d" + +#: elf32-or1k.c:965 +msgid "internal error: addend should be zero for R_OR1K_GOT16" +msgstr "erro interno: adenda devia ser zero para R_OR1K_GOT16" + +#: elf32-or1k.c:1074 +msgid "%B: support for local dynamic not implemented" +msgstr "%B: suporte a dinâmica local não implementado" + +#: elf32-or1k.c:1209 +msgid "%B: will not resolve runtime TLS relocation" +msgstr "%B: não resolve relocalização TLS em tempo de execução" + +#: elf32-or1k.c:1529 +#, c-format +msgid "%B: bad relocation section name `%s'" +msgstr "%B: mau nome de secção de relocalização \"%s\"" + +#: elf32-or1k.c:2641 +msgid "%B: EF_OR1K_NODELAY flag mismatch with previous modules" +msgstr "%B: bandeira EF_OR1K_NODELAY trocada com módulos anteriores" + +#: elf32-pj.c:325 +#, c-format +msgid "%B: unrecognised PicoJava reloc number: %d" +msgstr "%B: número de reloc PicoJava não reconhecido: %d" + +#: elf32-ppc.c:2027 +#, c-format +msgid "%B: unrecognised PPC reloc number: %d" +msgstr "%B: número de reloc PPC não reconhecido: %d" + +#: elf32-ppc.c:2112 +#, c-format +msgid "generic linker can't handle %s" +msgstr "linker genérico não pode gerir %s" + +#: elf32-ppc.c:2732 +#, c-format +msgid "corrupt %s section in %B" +msgstr "secção %s corrupta em %B" + +#: elf32-ppc.c:2752 +#, c-format +msgid "unable to read in %s section from %B" +msgstr "impossível ler na secção %s de %B" + +#: elf32-ppc.c:2794 +#, c-format +msgid "warning: unable to set size of %s section in %B" +msgstr "aviso: impossível definir tamanho da secção %s em %B" + +#: elf32-ppc.c:2844 +msgid "failed to allocate space for new APUinfo section." +msgstr "falha ao alocar espaço para nova secção APUinfo." + +#: elf32-ppc.c:2863 +msgid "failed to compute new APUinfo section." +msgstr "falha ao computar nova secção APUinfo." + +#: elf32-ppc.c:2866 +msgid "failed to install new APUinfo section." +msgstr "falha ao instalar nova secção APUinfo." + +#: elf32-ppc.c:3915 +#, c-format +msgid "%B: relocation %s cannot be used when making a shared object" +msgstr "%B: relocalização %s não pode ser usada ao fazer objecto partilhado" + +#: elf32-ppc.c:4266 elf64-ppc.c:5597 +#, c-format +msgid "%H: %s reloc against local symbol\n" +msgstr "%H: reloc %s contra símbolo local\n" + +#: elf32-ppc.c:4628 elf32-ppc.c:4632 +#, c-format +msgid "Warning: %B uses hard float, %B uses soft float" +msgstr "Aviso: %B usa vírgula rígida, %B usa vírgula suave" + +#: elf32-ppc.c:4636 elf32-ppc.c:4641 +#, c-format +msgid "Warning: %B uses double-precision hard float, %B uses single-precision hard float" +msgstr "Aviso: %B usa vírgula rígida de precisão dupla, %B usa vírgula rígida de precisão simples" + +#: elf32-ppc.c:4656 elf32-ppc.c:4661 +#, c-format +msgid "Warning: %B uses 64-bit long double, %B uses 128-bit long double" +msgstr "Aviso: %B usa 64-bit long double, %B usa 128-bit long double" + +#: elf32-ppc.c:4666 elf32-ppc.c:4671 +#, c-format +msgid "Warning: %B uses IBM long double, %B uses IEEE long double" +msgstr "Aviso: %B usa IBM long double, %B usa IEEE long double" + +#: elf32-ppc.c:4722 elf32-ppc.c:4727 +#, c-format +msgid "Warning: %B uses AltiVec vector ABI, %B uses SPE vector ABI" +msgstr "Aviso: %B usa AltiVec vector ABI, %B usa SPE vector ABI" + +#: elf32-ppc.c:4750 elf32-ppc.c:4755 +#, c-format +msgid "Warning: %B uses r3/r4 for small structure returns, %B uses memory" +msgstr "Aviso: %B usa r3/r4 para devoluções de estrutura pequena, %B usa memória" + +#: elf32-ppc.c:4810 +msgid "%B: compiled with -mrelocatable and linked with modules compiled normally" +msgstr "%B: compilado com -mrelocatable e ligado com módulos compilados normalmente" + +#: elf32-ppc.c:4818 +msgid "%B: compiled normally and linked with modules compiled with -mrelocatable" +msgstr "%B: compilado normalmente e ligado com módulos compilados com -mrelocatable" + +#: elf32-ppc.c:4887 +#, c-format +msgid "%B(%A+0x%lx): expected 16A style relocation on 0x%08x insn" +msgstr "%B(%A+0x%lx): esperada relocalização estilo 16A em 0x%08x insn" + +#: elf32-ppc.c:4906 +#, c-format +msgid "%B(%A+0x%lx): expected 16D style relocation on 0x%08x insn" +msgstr "%B(%A+0x%lx): esperada relocalização estilo 16D em 0x%08x insn" + +#: elf32-ppc.c:4997 +msgid "%P: bss-plt forced due to %B\n" +msgstr "%P: bss-plt forçado devido a %B\n" + +#: elf32-ppc.c:5000 +msgid "%P: bss-plt forced by profiling\n" +msgstr "%P: bss-plt forçado pelo perfil\n" + +#. Uh oh, we didn't find the expected call. We +#. could just mark this symbol to exclude it +#. from tls optimization but it's safer to skip +#. the entire optimization. +#: elf32-ppc.c:5322 elf64-ppc.c:8654 +#, c-format +msgid "%H arg lost __tls_get_addr, TLS optimization disabled\n" +msgstr "argumento %H perdeu __tls_get_addr, optimização TLS desactivada\n" + +#: elf32-ppc.c:6264 elf32-sh.c:3392 elf32-tilepro.c:2331 elfxx-sparc.c:2556 +#: elfxx-tilegx.c:2567 +msgid "%B: dynamic relocation in read-only section `%A'\n" +msgstr "%B: relocalização dinâmica em secção \"%A\" só de leitura\n" + +#: elf32-ppc.c:8100 +msgid "%H: fixup branch overflow\n" +msgstr "%H: transporte em ramo fixup\n" + +#: elf32-ppc.c:8140 elf32-ppc.c:8175 +#, c-format +msgid "%B(%A+%#Lx): error: %s with unexpected instruction %#x" +msgstr "%B(%A+%#Lx): erro: %s com instrução inesperada %#x" + +#: elf32-ppc.c:8231 +#, c-format +msgid "%X%H: unsupported bss-plt -fPIC ifunc %s\n" +msgstr "%X%H: bss-plt -fPIC ifunc %s não suportada\n" + +#: elf32-ppc.c:8294 elf64-ppc.c:15070 +msgid "%H: warning: %s unexpected insn %#x.\n" +msgstr "%H: aviso: %s insn %#x inesperado.\n" + +#: elf32-ppc.c:8319 +#, c-format +msgid "%P: %B: unknown relocation type %d for symbol %s\n" +msgstr "%P: %B: tipo de relocalização %d desconhecido para símbolo %s\n" + +#: elf32-ppc.c:8606 +#, c-format +msgid "%H: non-zero addend on %s reloc against `%s'\n" +msgstr "%H: adenda não-zero em reloc %s contra \"%s\"\n" + +#. @local on an ifunc does not really make sense since +#. the ifunc resolver can take you anywhere. More +#. seriously, calls to ifuncs must go through a plt call +#. stub, and for pic the plt call stubs uses r30 to +#. access the PLT. The problem is that a call that is +#. local won't have the +32k reloc addend trick marking +#. -fPIC code, so the linker won't know whether r30 is +#. _GLOBAL_OFFSET_TABLE_ or pointing into a .got2 section. +#: elf32-ppc.c:8638 +#, c-format +msgid "%X%H: @local call to ifunc %s\n" +msgstr "%X%H: chamada @local a ifunc %s\n" + +#: elf32-ppc.c:8808 +#, c-format +msgid "%H: relocation %s for indirect function %s unsupported\n" +msgstr "%H: relocalização %s para função indirecta %s não suportada\n" + +#: elf32-ppc.c:9077 elf32-ppc.c:9108 elf32-ppc.c:9199 +#, c-format +msgid "%P: %B: the target (%s) of a %s relocation is in the wrong output section (%s)\n" +msgstr "%P: %B: o alvo (%s) de uma relocalização %s está na secção de saída errada (%s)\n" + +#: elf32-ppc.c:9287 +#, c-format +msgid "%B: the target (%s) of a %s relocation is in the wrong output section (%s)" +msgstr "%B: o alvo (%s) de uma relocalização %s está na secção de saída errada (%s)" + +#: elf32-ppc.c:9395 +#, c-format +msgid "%P: %B: relocation %s is not yet supported for symbol %s\n" +msgstr "%P: %B: relocalização %s ainda não é suportada para símbolo %s\n" + +#: elf32-ppc.c:9480 +#, c-format +msgid "%H: error: %s against `%s' not a multiple of %u\n" +msgstr "%H: erro: %s contra \"%s\" não é múltiplo de %u\n" + +#: elf32-ppc.c:9509 +#, c-format +msgid "%H: unresolvable %s relocation against symbol `%s'\n" +msgstr "%H: relocalização %s insolúvel contra símbolo \"%s\"\n" + +#: elf32-ppc.c:9590 +#, c-format +msgid "%H: %s reloc against `%s': error %d\n" +msgstr "%H: %s reloc contra \"%s\": erro %d\n" + +#: elf32-ppc.c:10354 elf64-ppc.c:15601 +msgid "%X%P: text relocations and GNU indirect functions will result in a segfault at runtime\n" +msgstr "%X%P: relocalizações de texto e funções indirectas GNU resultarão em segfault em tempo de execução\n" + +#: elf32-ppc.c:10358 elf64-ppc.c:15605 +msgid "%P: warning: text relocations and GNU indirect functions may result in a segfault at runtime\n" +msgstr "%P: aviso: relocalizações de texto e funções indirectas GNU podem resultar em segfault em tempo de execução\n" + +#: elf32-ppc.c:10403 +#, c-format +msgid "%P: %s not defined in linker created %s\n" +msgstr "%P: %s não definido em linker criado %s\n" + +#: elf32-rl78.c:292 +#, c-format +msgid "%B: invalid RL78 reloc number: %d" +msgstr "%B: número de reloc RL78 inválido: %d" + +#: elf32-rl78.c:370 +msgid "Internal Error: RL78 reloc stack overflow" +msgstr "Erro interno: transporte de stack em reloc RL78" + +#: elf32-rl78.c:381 +msgid "Internal Error: RL78 reloc stack underflow" +msgstr "Erro interno: sub-transporte de stack em reloc RL78" + +#: elf32-rl78.c:1050 +msgid "Warning: RL78_SYM reloc with an unknown symbol" +msgstr "Aviso: reloc RL78_SYM com símbolo desconhecido" + +#: elf32-rl78.c:1081 elf32-rx.c:1435 +#, c-format +msgid "%B(%A): error: call to undefined function '%s'" +msgstr "%B(%A): erro: chamada a função não definida \"%s\"" + +#: elf32-rl78.c:1202 +#, c-format +msgid "RL78 ABI conflict: G10 file %B cannot be linked with %s file %B" +msgstr "conflito RL78 ABI: ficheiro G10 %B não pode ser ligado a ficheiro %s %B" + +#: elf32-rl78.c:1219 +#, c-format +msgid "RL78 ABI conflict: cannot link %s file %B with %s file %B" +msgstr "conflito RL78 ABI: impossível ligar ficheiro %s %B com ficheiro %s %B" + +#: elf32-rl78.c:1228 +msgid "RL78 merge conflict: cannot link 32-bit and 64-bit objects together" +msgstr "conflito de união RL78: impossível ligar objectos 32-bit e 64-bit" + +#: elf32-rl78.c:1232 elf32-rl78.c:1236 +#, c-format +msgid "- %B is 64-bit, %B is not" +msgstr "- %B é 64-bit, %B não é" + +#: elf32-rl78.c:1263 +#, c-format +msgid " [64-bit doubles]" +msgstr " [64-bit doubles]" + +#: elf32-rx.c:314 +#, c-format +msgid "%B: invalid RX reloc number: %d" +msgstr "%B: número de reloc RX inválido: %d" + +#: elf32-rx.c:595 +#, c-format +msgid "%B:%A: table entry %s outside table" +msgstr "%B:%A: entrada de tabela %s fora da tabela" + +#: elf32-rx.c:602 +#, c-format +msgid "%B:%A: table entry %s not word-aligned within table" +msgstr "%B:%A: entrada de tabela %s não alinhado dentro da tabela" + +#: elf32-rx.c:668 +#, c-format +msgid "%B:%A: Warning: deprecated Red Hat reloc " +msgstr "%B:%A: aviso: reloc Red Hat obsoleta " + +#. Check for unsafe relocs in PID mode. These are any relocs where +#. an absolute address is being computed. There are special cases +#. for relocs against symbols that are known to be referenced in +#. crt0.o before the PID base address register has been initialised. +#: elf32-rx.c:687 +#, c-format +msgid "%B(%A): unsafe PID relocation %s at %#Lx (against %s in %s)" +msgstr "%B(%A): relocalização PID insegura %s em %#Lx (contra %s em %s)" + +#: elf32-rx.c:1267 +msgid "Warning: RX_SYM reloc with an unknown symbol" +msgstr "Aviso: reloc RX_SYM com símbolo desconhecido" + +#: elf32-rx.c:3146 +msgid "There is a conflict merging the ELF header flags from %B" +msgstr "Há um conflito na união das bandeira do cabeçalho ELF de %B" + +#: elf32-rx.c:3149 +#, c-format +msgid " the input file's flags: %s" +msgstr " bandeiras fich. entrada: %s" + +#: elf32-rx.c:3151 +#, c-format +msgid " the output file's flags: %s" +msgstr " bandeiras fich. saída: %s" + +#: elf32-rx.c:3758 +#, c-format +msgid "%B:%A: table %s missing corresponding %s" +msgstr "%B:%A: tabela %s com correspondente %s em falta" + +#: elf32-rx.c:3766 +#, c-format +msgid "%B:%A: %s and %s must be in the same input section" +msgstr "%B:%A: %s e %s têm de estar na mesma secção de entrada" + +#: elf32-s390.c:2137 elf64-s390.c:2075 +#, c-format +msgid "%B(%A+%#Lx): invalid instruction for TLS relocation %s" +msgstr "%B(%A+%#Lx): instrução inválida para relocalização TLS %s" + +#: elf32-score.c:1521 elf32-score7.c:1382 elfxx-mips.c:3756 +msgid "not enough GOT space for local GOT entries" +msgstr "espaço GOT insuficiente para entradas GOT locais" + +#: elf32-score.c:2744 +msgid "address not word align" +msgstr "endereço não alinhado por word" + +#: elf32-score.c:2825 elf32-score7.c:2630 +#, c-format +msgid "%B: Malformed reloc detected for section %A" +msgstr "%B: reloc malformada detectada para secção %A" + +#: elf32-score.c:2879 elf32-score7.c:2684 +#, c-format +msgid "%B: CALL15 reloc at %#Lx not against global symbol" +msgstr "%B: reloc CALL15 em %#Lx não contra símbolo global" + +#: elf32-score.c:4001 elf32-score7.c:3806 +#, c-format +msgid " [pic]" +msgstr " [pic]" + +#: elf32-score.c:4005 elf32-score7.c:3810 +#, c-format +msgid " [fix dep]" +msgstr " [fix dep]" + +#: elf32-score.c:4048 elf32-score7.c:3853 +msgid "%B: warning: linking PIC files with non-PIC files" +msgstr "%B: aviso: a ligar ficheiros PIC com ficheiros não-PIC" + +#: elf32-sh-symbian.c:130 +#, c-format +msgid "%B: IMPORT AS directive for %s conceals previous IMPORT AS" +msgstr "%B: directiva IMPORT AS para %s oculta a IMPORT AS anterior" + +#: elf32-sh-symbian.c:384 +#, c-format +msgid "%B: Unrecognised .directive command: %s" +msgstr "%B: comando .directive não reconhecido: %s" + +#: elf32-sh-symbian.c:502 +#, c-format +msgid "%B: Failed to add renamed symbol %s" +msgstr "%B: falha ao adicionar símbolo %s renomeado" + +#: elf32-sh.c:491 +#, c-format +msgid "%B: unrecognised SH reloc number: %d" +msgstr "%B: número de reloc SH não reconhecido: %d" + +#: elf32-sh.c:592 +#, c-format +msgid "%B: %#Lx: warning: R_SH_USES points to unrecognized insn 0x%x" +msgstr "%B: %#Lx: aviso: R_SH_USES aponta para insn 0x%x não reconhecido" + +#: elf32-sh.c:3947 elf64-sh64.c:1508 +msgid "Unexpected STO_SH5_ISA32 on local symbol is not handled" +msgstr "STO_SH5_ISA32 inesperado em símbolo local não é gerido" + +#: elf32-sh.c:4200 +#, c-format +msgid "%B: %#Lx: fatal: unaligned branch target for relax-support relocation" +msgstr "%B: %#Lx: fatal: ramo alvo não alinhado para relocalização relax-support" + +#: elf32-sh.c:4234 elf32-sh.c:4250 +#, c-format +msgid "%B: %#Lx: fatal: unaligned %s relocation %#Lx" +msgstr "%B: %#Lx: fatal: relocalização %s desalinhada %#Lx" + +#: elf32-sh.c:4265 +#, c-format +msgid "%B: %#Lx: fatal: R_SH_PSHA relocation %Ld not in range -32..32" +msgstr "%B: %#Lx: fatal: R_SH_PSHA relocalização %Ld fora do intervalo -32..32" + +#: elf32-sh.c:4280 +#, c-format +msgid "%B: %#Lx: fatal: R_SH_PSHL relocation %Ld not in range -32..32" +msgstr "%B: %#Lx: fatal: R_SH_PSHL relocalização %Ld fora do intervalo -32..32" + +#: elf32-sh.c:4426 elf32-sh.c:4899 +#, c-format +msgid "%B(%A+%#Lx): cannot emit fixup to `%s' in read-only section" +msgstr "%B(%A+%#Lx): impossível emitir fixup a \"%s\" em secção só de leitura" + +#: elf32-sh.c:5001 +#, c-format +msgid "%B(%A+%#Lx): %s relocation against external symbol \"%s\"" +msgstr "%B(%A+%#Lx): relocalização %s contra símbolo externo \"%s\"" + +#: elf32-sh.c:5465 +#, c-format +msgid "%X%C: relocation to \"%s\" references a different segment\n" +msgstr "%X%C: relocalização para \"%s\" referencia um segmento diferente\n" + +#: elf32-sh.c:5472 +#, c-format +msgid "%C: warning: relocation to \"%s\" references a different segment\n" +msgstr "%C: aviso: relocalização para \"%s\" referencia um segmento diferente\n" + +#: elf32-sh.c:6046 elf32-sh.c:6132 +#, c-format +msgid "%B: `%s' accessed both as normal and FDPIC symbol" +msgstr "%B: \"%s\" acedido como símbolo normal e FDPIC em simultâneo" + +#: elf32-sh.c:6052 elf32-sh.c:6137 +#, c-format +msgid "%B: `%s' accessed both as FDPIC and thread local symbol" +msgstr "%B: \"%s\" acedido como símbolo local FDPIC e thread em simultâneo" + +#: elf32-sh.c:6083 +msgid "%B: Function descriptor relocation with non-zero addend" +msgstr "%B: relocalização de descritor de função com adenda não-zero" + +#: elf32-sh.c:6321 elf64-alpha.c:4688 +#, c-format +msgid "%B: TLS local exec code cannot be linked into shared objects" +msgstr "%B: código exec TLS local não pode ser ligado a objectos partilhados" + +#: elf32-sh.c:6436 +#, c-format +msgid "%B: uses %s instructions while previous modules use %s instructions" +msgstr "%B: usa instruções %s enquanto os módulos anteriores usam instruções %s" + +#: elf32-sh.c:6448 +#, c-format +msgid "internal error: merge of architecture '%s' with architecture '%s' produced unknown architecture" +msgstr "erro interno: união da arquitectura \"%s\" com a arquitectura \"%s\" produziu uma arquitectura desconhecida" + +#: elf32-sh.c:6485 +msgid "%B: uses instructions which are incompatible with instructions used in previous modules" +msgstr "%B: usa instruções incompatíveis com instruções usadas em módulos anteriores" + +#: elf32-sh.c:6498 +msgid "%B: attempt to mix FDPIC and non-FDPIC objects" +msgstr "%B: tentativa de misturar objectos FDPIC e não-FDPIC" + +#: elf32-sh64.c:225 elf64-sh64.c:2277 +#, c-format +msgid "%B: compiled as 32-bit object and %B is 64-bit" +msgstr "%B: compilado como objecto 32-bit e %B é 64-bit" + +#: elf32-sh64.c:229 elf64-sh64.c:2281 +#, c-format +msgid "%B: compiled as 64-bit object and %B is 32-bit" +msgstr "%B: compilado como objecto 64-bit e %B é 32-bit" + +#: elf32-sh64.c:232 elf64-sh64.c:2284 +#, c-format +msgid "%B: object size does not match that of target %B" +msgstr "%B: tamanho do objecto não corresponde ao do alvo %B" + +#: elf32-sh64.c:455 elf64-sh64.c:2772 +msgid "%B: encountered datalabel symbol in input" +msgstr "%B: encontrado símbolo datalabel na entrada" + +#: elf32-sh64.c:531 +msgid "PTB mismatch: a SHmedia address (bit 0 == 1)" +msgstr "troca PTB: endereço SHmedia (bit 0 == 1)" + +#: elf32-sh64.c:534 +msgid "PTA mismatch: a SHcompact address (bit 0 == 0)" +msgstr "troca PTA: endereço SHcompact (bit 0 == 0)" + +#: elf32-sh64.c:550 +msgid "%B: GAS error: unexpected PTB insn with R_SH_PT_16" +msgstr "%B: erro GAS: PTB insn inesperado com R_SH_PT_16" + +#: elf32-sh64.c:600 +#, c-format +msgid "%B: error: unaligned relocation type %d at %#Lx reloc %#Lx" +msgstr "%B: erro: tipo de relocalização %d não alinhado em %#Lx reloc %#Lx" + +#: elf32-sh64.c:676 +msgid "%B: could not write out added .cranges entries" +msgstr "%B: impossível escrever entradas .cranges adicionadas" + +#: elf32-sh64.c:735 +msgid "%B: could not write out sorted .cranges entries" +msgstr "%B: impossível escrever entradas .cranges ordenadas" + +#: elf32-sparc.c:89 +msgid "%B: compiled for a 64 bit system and target is 32 bit" +msgstr "%B: compilado para um sistema 64 bit e o alvo é 32 bit" + +#: elf32-sparc.c:102 +msgid "%B: linking little endian files with big endian files" +msgstr "%B: a ligar ficheiros little endian com ficheiros big endian" + +#: elf32-spu.c:160 +#, c-format +msgid "%B: unrecognised SPU reloc number: %d" +msgstr "%B: número de relocalização SPU não reconhecido: %d" + +#: elf32-spu.c:726 +msgid "%X%P: overlay section %A does not start on a cache line.\n" +msgstr "%X%P: secção de sobreposição %A não começa numa linha de cache.\n" + +#: elf32-spu.c:734 +msgid "%X%P: overlay section %A is larger than a cache line.\n" +msgstr "%X%P: secção de sobreposição %A é maior que uma linha de cache.\n" + +#: elf32-spu.c:754 +msgid "%X%P: overlay section %A is not in cache area.\n" +msgstr "%X%P: secção de sobreposição %A não está numa área de cache.\n" + +#: elf32-spu.c:795 +#, c-format +msgid "%X%P: overlay sections %A and %A do not start at the same address.\n" +msgstr "%X%P: secções de sobreposição %A e %A não começam no mesmo endereço.\n" + +#: elf32-spu.c:1021 +#, c-format +msgid "warning: call to non-function symbol %s defined in %B" +msgstr "aviso: chamada a símbolo não-função %s definida em %B" + +#: elf32-spu.c:1371 +#, c-format +msgid "%A:0x%v lrlive .brinfo (%u) differs from analysis (%u)\n" +msgstr "%A:0x%v lrlive .brinfo (%u) difere da análise (%u)\n" + +#: elf32-spu.c:1903 +#, c-format +msgid "%B is not allowed to define %s" +msgstr "%B não tem permissão para definir %s" + +#: elf32-spu.c:1911 +#, c-format +msgid "you are not allowed to define %s in a script" +msgstr "não tem permissão para definir %s num script" + +#: elf32-spu.c:1945 +#, c-format +msgid "%s in overlay section" +msgstr "%s em secção de sobreposição" + +#: elf32-spu.c:1974 +msgid "overlay stub relocation overflow" +msgstr "transporte de relocalização fictícia de sobreposição" + +#: elf32-spu.c:1983 +msgid "stubs don't match calculated size" +msgstr "fictícios não correspondem ao tamanho calculado" + +#: elf32-spu.c:2566 +#, c-format +msgid "warning: %s overlaps %s\n" +msgstr "aviso: %s sobrepõe-se a %s\n" + +#: elf32-spu.c:2582 +#, c-format +msgid "warning: %s exceeds section size\n" +msgstr "aviso: %s excede o tamanho da secção\n" + +#: elf32-spu.c:2614 +#, c-format +msgid "%A:0x%v not found in function table\n" +msgstr "%A:0x%v não encontrado na tabela de função\n" + +#: elf32-spu.c:2755 +#, c-format +msgid "%B(%A+0x%v): call to non-code section %B(%A), analysis incomplete\n" +msgstr "%B(%A+0x%v): chamada a secção não-código %B(%A), análise incompleta\n" + +#: elf32-spu.c:3324 +#, c-format +msgid "Stack analysis will ignore the call from %s to %s\n" +msgstr "Análise de stack ignorará a chamada de %s a %s\n" + +#: elf32-spu.c:4021 +msgid " calls:\n" +msgstr " chamadas:\n" + +#: elf32-spu.c:4335 +#, c-format +msgid "%s duplicated in %s\n" +msgstr "%s duplicado em %s\n" + +#: elf32-spu.c:4339 +#, c-format +msgid "%s duplicated\n" +msgstr "%s duplicado\n" + +#: elf32-spu.c:4346 +msgid "sorry, no support for duplicate object files in auto-overlay script\n" +msgstr "desculpe, sem suporte para ficheiros objecto duplicados no script de auto-sobreposição\n" + +#: elf32-spu.c:4388 +#, c-format +msgid "non-overlay size of 0x%v plus maximum overlay size of 0x%v exceeds local store\n" +msgstr "tamanho não-sobreposição de 0x%v mais o tamanho máximo de sobreposição de 0x%v excede a capacidade local\n" + +#: elf32-spu.c:4544 +#, c-format +msgid "%B:%A%s exceeds overlay size\n" +msgstr "%B:%A%s excede o tamanho de sobreposição\n" + +#: elf32-spu.c:4685 +msgid "%F%P: auto overlay error: %E\n" +msgstr "%F%P: erro de auto-sobreposição: %E\n" + +#: elf32-spu.c:4706 +msgid "Stack size for call graph root nodes.\n" +msgstr "Tamanho de stack para chamar nós raiz gráficos.\n" + +#: elf32-spu.c:4707 +msgid "" +"\n" +"Stack size for functions. Annotations: '*' max stack, 't' tail call\n" +msgstr "" +"\n" +"Tamanho de stack para funções. Anotações: \"*\" stack máx, \"t\" chamada tail\n" + +#: elf32-spu.c:4717 +msgid "Maximum stack required is 0x%v\n" +msgstr "Stack máximo requerido é 0x%v\n" + +#: elf32-spu.c:4736 +msgid "%X%P: stack/lrlive analysis error: %E\n" +msgstr "%X%P: erro de análise stack/lrlive: %E\n" + +#: elf32-spu.c:4739 +msgid "%F%P: can not build overlay stubs: %E\n" +msgstr "%F%P: impossível construir fictícios de sobreposição: %E\n" + +#: elf32-spu.c:4808 +msgid "fatal error while creating .fixup" +msgstr "erro fatal ao criar .fixup" + +#: elf32-spu.c:5043 +#, c-format +msgid "%B(%s+%#Lx): unresolvable %s relocation against symbol `%s'" +msgstr "%B(%s+%#Lx): relocalização %s insolúvel comtra símbolo \"%s\"" + +#: elf32-tic6x.c:1596 +msgid "warning: generating a shared library containing non-PIC code" +msgstr "aviso: a gerar uma biblioteca partilhada contendo código não PIC" + +#: elf32-tic6x.c:1601 +msgid "warning: generating a shared library containing non-PID code" +msgstr "aviso: a gerar uma biblioteca partilhada contendo código não PID" + +#: elf32-tic6x.c:2460 +msgid "%B: SB-relative relocation but __c6xabi_DSBT_BASE not defined" +msgstr "%B: relocalização relativa a SB mas __c6xabi_DSBT_BASE não definido" + +#: elf32-tic6x.c:3582 +#, c-format +msgid "%B: error: unknown mandatory EABI object attribute %d" +msgstr "%B: erro: atributo de objecto EABI obrigatório desconhecido %d" + +#: elf32-tic6x.c:3591 +#, c-format +msgid "%B: warning: unknown EABI object attribute %d" +msgstr "%B: aviso: atributo de objecto EABI desconhecido %d" + +#: elf32-tic6x.c:3705 elf32-tic6x.c:3714 +#, c-format +msgid "error: %B requires more stack alignment than %B preserves" +msgstr "erro: %B requer mais alinhamento de stack do que %B preserva" + +#: elf32-tic6x.c:3724 elf32-tic6x.c:3733 +msgid "error: unknown Tag_ABI_array_object_alignment value in %B" +msgstr "erro: valor Tag_ABI_array_object_alignment desconhecido em %B" + +#: elf32-tic6x.c:3742 elf32-tic6x.c:3751 +msgid "error: unknown Tag_ABI_array_object_align_expected value in %B" +msgstr "erro: valor Tag_ABI_array_object_align_expected desconhecido em %B" + +#: elf32-tic6x.c:3760 elf32-tic6x.c:3768 +#, c-format +msgid "error: %B requires more array alignment than %B preserves" +msgstr "erro: %B requer mais alinhamento de matriz do que %B preserva" + +#: elf32-tic6x.c:3791 +#, c-format +msgid "warning: %B and %B differ in wchar_t size" +msgstr "aviso: %B e %B diferem em tamanho wchar_t" + +#: elf32-tic6x.c:3810 +#, c-format +msgid "warning: %B and %B differ in whether code is compiled for DSBT" +msgstr "aviso: %B e %B diferem sobre se o código foi compilado para DSBT" + +#: elf32-tilepro.c:3752 elfxx-tilegx.c:4132 elfxx-x86.c:1336 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:9172 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2492 +#, c-format +msgid "discarded output section: `%A'" +msgstr "secção de saída descartada: \"%A\"" + +#: elf32-v850.c:153 +#, c-format +msgid "Variable `%s' cannot occupy in multiple small data regions" +msgstr "Variável \"%s\" não pode ocupar múltiplas pequenas regiões de dados" + +#: elf32-v850.c:156 +#, c-format +msgid "Variable `%s' can only be in one of the small, zero, and tiny data regions" +msgstr "Variável \"%s\" só pode estar numa das regiões de dados pequena, zero e minúscula" + +#: elf32-v850.c:159 +#, c-format +msgid "Variable `%s' cannot be in both small and zero data regions simultaneously" +msgstr "Variável \"%s\" não pode estar nas regiões de dados pequena e zero em simultâneo" + +#: elf32-v850.c:162 +#, c-format +msgid "Variable `%s' cannot be in both small and tiny data regions simultaneously" +msgstr "Variável \"%s\" não pode estar nas regiões de dados pequena e minúscula em simultâneo" + +#: elf32-v850.c:165 +#, c-format +msgid "Variable `%s' cannot be in both zero and tiny data regions simultaneously" +msgstr "Variável \"%s\" não pode estar nas regiões de dados zero e minúscula em simultâneo" + +#: elf32-v850.c:463 +msgid "FAILED to find previous HI16 reloc" +msgstr "Falha ao procurar reloc HI16 anterior" + +#: elf32-v850.c:1898 elf32-v850.c:1917 +#, c-format +msgid "%B: invalid V850 reloc number: %d" +msgstr "%B: número de reloc V850 inválido: %d" + +#: elf32-v850.c:2295 +msgid "could not locate special linker symbol __gp" +msgstr "impossível localizar símbolo linker especial __gp" + +#: elf32-v850.c:2299 +msgid "could not locate special linker symbol __ep" +msgstr "impossível localizar símbolo linker especial __ep" + +#: elf32-v850.c:2303 +msgid "could not locate special linker symbol __ctbp" +msgstr "impossível localizar símbolo linker especial __ctbp" + +#: elf32-v850.c:2524 +#, c-format +msgid "error: %B needs 8-byte alignment but %B is set for 4-byte alignment" +msgstr "erro: %B precisa de alinhamento 8-byte mas %B está definido para alinhamento 4-byte" + +#: elf32-v850.c:2540 +#, c-format +msgid "error: %B uses 64-bit doubles but %B uses 32-bit doubles" +msgstr "erro: %B usa doubles 64-bit mas %B usa doubles 32-bit" + +#: elf32-v850.c:2555 +#, c-format +msgid "error: %B uses FPU-3.0 but %B only supports FPU-2.0" +msgstr "erro: %B usa FPU-3.0 mas %B só suporta FPU-2.0" + +#: elf32-v850.c:2587 +#, c-format +msgid " alignment of 8-byte entities: " +msgstr " alinhamento de entidades 8-byte: " + +#: elf32-v850.c:2590 +#, c-format +msgid "4-byte" +msgstr "4-byte" + +#: elf32-v850.c:2591 +#, c-format +msgid "8-byte" +msgstr "8-byte" + +#: elf32-v850.c:2592 elf32-v850.c:2604 +#, c-format +msgid "not set" +msgstr "não definido" + +#: elf32-v850.c:2593 elf32-v850.c:2605 elf32-v850.c:2617 elf32-v850.c:2628 +#: elf32-v850.c:2639 elf32-v850.c:2650 +#, c-format +msgid "unknown: %x" +msgstr "desconhecido: %x" + +#: elf32-v850.c:2599 +#, c-format +msgid " size of doubles: " +msgstr " tamanho de doubles: " + +#: elf32-v850.c:2602 +#, c-format +msgid "4-bytes" +msgstr "4-bytes" + +#: elf32-v850.c:2603 +#, c-format +msgid "8-bytes" +msgstr "8-bytes" + +#: elf32-v850.c:2611 +#, c-format +msgid " FPU support required: " +msgstr " requerido suporte FPU: " + +#: elf32-v850.c:2614 +#, c-format +msgid "FPU-2.0" +msgstr "FPU-2.0" + +#: elf32-v850.c:2615 +#, c-format +msgid "FPU-3.0" +msgstr "FPU-3.0" + +#: elf32-v850.c:2616 +#, c-format +msgid "none" +msgstr "nenhum" + +#: elf32-v850.c:2623 +#, c-format +msgid "SIMD use: " +msgstr "uso SIMD: " + +#: elf32-v850.c:2626 elf32-v850.c:2637 elf32-v850.c:2648 +#, c-format +msgid "yes" +msgstr "sim" + +#: elf32-v850.c:2627 elf32-v850.c:2638 elf32-v850.c:2649 +#, c-format +msgid "no" +msgstr "não" + +#: elf32-v850.c:2634 +#, c-format +msgid "CACHE use: " +msgstr "uso CACHE: " + +#: elf32-v850.c:2645 +#, c-format +msgid "MMU use: " +msgstr "uso MMU: " + +#: elf32-v850.c:2812 elf32-v850.c:2868 +msgid "%B: Architecture mismatch with previous modules" +msgstr "%B: troca de arquitectura com módulos anteriores" + +#. xgettext:c-format. +#: elf32-v850.c:2886 +#, c-format +msgid "private flags = %lx: " +msgstr "bandeiras privadas = %lx: " + +#: elf32-v850.c:2891 +#, c-format +msgid "unknown v850 architecture" +msgstr "arquitectura V850 desconhecida" + +#: elf32-v850.c:2893 +#, c-format +msgid "v850 E3 architecture" +msgstr "arquitectura v850 E3" + +#: elf32-v850.c:2895 elf32-v850.c:2902 +#, c-format +msgid "v850 architecture" +msgstr "arquitectura v850" + +#: elf32-v850.c:2903 +#, c-format +msgid "v850e architecture" +msgstr "arquitectura v850e" + +#: elf32-v850.c:2904 +#, c-format +msgid "v850e1 architecture" +msgstr "arquitectura v850e1" + +#: elf32-v850.c:2905 +#, c-format +msgid "v850e2 architecture" +msgstr "arquitectura v850e2" + +#: elf32-v850.c:2906 +#, c-format +msgid "v850e2v3 architecture" +msgstr "arquitectura v850e2v3" + +#: elf32-v850.c:2907 +#, c-format +msgid "v850e3v5 architecture" +msgstr "arquitectura v850e3v5" + +#: elf32-v850.c:3601 +#, c-format +msgid "%B: %#Lx: warning: R_V850_LONGCALL points to unrecognized insns" +msgstr "%B: %#Lx: aviso: R_V850_LONGCALL aponta para insns não reconhecido" + +#: elf32-v850.c:3611 +#, c-format +msgid "%B: %#Lx: warning: R_V850_LONGCALL points to unrecognized insn %#x" +msgstr "%B: %#Lx: aviso: R_V850_LONGCALL aponta para insn %#x não reconhecido" + +#: elf32-v850.c:3656 +#, c-format +msgid "%B: %#Lx: warning: R_V850_LONGCALL points to unrecognized reloc" +msgstr "%B: %#Lx: aviso: R_V850_LONGCALL aponta para reloc não reconhecida" + +#: elf32-v850.c:3696 +#, c-format +msgid "%B: %#Lx: warning: R_V850_LONGCALL points to unrecognized reloc %#Lx" +msgstr "%B: %#Lx: aviso: R_V850_LONGCALL aponta para reloc %#Lx não reconhecida" + +#: elf32-v850.c:3839 +#, c-format +msgid "%B: %#Lx: warning: R_V850_LONGJUMP points to unrecognized insns" +msgstr "%B: %#Lx: aviso: R_V850_LONGJUMP aponta para insns não reconhecido" + +#: elf32-v850.c:3849 +#, c-format +msgid "%B: %#Lx: warning: R_V850_LONGJUMP points to unrecognized insn %#x" +msgstr "%B: %#Lx: aviso: R_V850_LONGJUMP aponta para insn %#x não reconhecido" + +#: elf32-v850.c:3883 +#, c-format +msgid "%B: %#Lx: warning: R_V850_LONGJUMP points to unrecognized reloc" +msgstr "%B: %#Lx: aviso: R_V850_LONGJUMP aponta para reloc não reconhecida" + +#: elf32-vax.c:290 +#, c-format +msgid "%B: unrecognised VAX reloc number: %d" +msgstr "%B: número de reloc VAX não reconhecido: %d" + +#: elf32-vax.c:539 +#, c-format +msgid " [nonpic]" +msgstr " [nonpic]" + +#: elf32-vax.c:542 +#, c-format +msgid " [d-float]" +msgstr " [d-float]" + +#: elf32-vax.c:545 +#, c-format +msgid " [g-float]" +msgstr " [g-float]" + +#: elf32-vax.c:631 +#, c-format +msgid "%B: warning: GOT addend of %Ld to `%s' does not match previous GOT addend of %Ld" +msgstr "%B: aviso: adenda GOT de %Ld a \"%s\" não corresponde a adenda GOT de %Ld prévia" + +#: elf32-vax.c:1445 +#, c-format +msgid "%B: warning: PLT addend of %Ld to `%s' from %A section ignored" +msgstr "%B: aviso: adenda PLT de %Ld a c\"%s\" da secção %A ignorada" + +#: elf32-vax.c:1570 +#, c-format +msgid "%B: warning: %s relocation against symbol `%s' from %A section" +msgstr "%B: aviso: relocalização %s contra símbolo \"%s\" da secção %A" + +#: elf32-vax.c:1577 +#, c-format +msgid "%B: warning: %s relocation to %#Lx from %A section" +msgstr "%B: aviso: relocalização %s para %#Lx da secção %A" + +#: elf32-visium.c:481 +#, c-format +msgid "%B: invalid Visium reloc number: %d" +msgstr "%B: número de reloc Visium inválido: %d" + +#: elf32-visium.c:817 +#, c-format +msgid "%B: compiled %s -mtune=%s and linked with modules compiled %s -mtune=%s" +msgstr "%B: compilado %s -mtune=%s e ligado com módulos compilados %s -mtune=%s" + +#: elf32-xgate.c:428 +#, c-format +msgid "%B: invalid XGate reloc number: %d" +msgstr "%B: número de relocalização XGate inválido: %d" + +#: elf32-xgate.c:681 +#, c-format +msgid "cpu=XGATE]" +msgstr "cpu=XGATE]" + +#: elf32-xgate.c:683 +#, c-format +msgid "error reading cpu type from elf private data" +msgstr "erro ao ler tipo de cpu de dados privados elf" + +#: elf32-xstormy16.c:449 elf64-ia64-vms.c:2074 elf32-ia64.c:2337 +#: elf64-ia64.c:2337 +msgid "non-zero addend in @fptr reloc" +msgstr "adenda não-zero em reloc @fptr" + +#: elf32-xtensa.c:485 +#, c-format +msgid "%B: invalid XTENSA reloc number: %d" +msgstr "%B: número de reloc XTENSA inválido: %d" + +#: elf32-xtensa.c:926 +#, c-format +msgid "%B(%A): invalid property table" +msgstr "%B(%A): tabela de propriedade inválida" + +#: elf32-xtensa.c:2655 +#, c-format +msgid "%B(%A+%#Lx): relocation offset out of range (size=%#Lx)" +msgstr "%B(%A+%#Lx): desvio de relocalização fora do intervalo (tamanho=%#Lx)" + +#: elf32-xtensa.c:2736 elf32-xtensa.c:2855 +msgid "dynamic relocation in read-only section" +msgstr "relocalização dinâmica em secção só de leitura" + +#: elf32-xtensa.c:2832 +msgid "TLS relocation invalid without dynamic sections" +msgstr "relocalização TLS inválida sem secções dinâmicas" + +#: elf32-xtensa.c:3043 +msgid "internal inconsistency in size of .got.loc section" +msgstr "inconsistência interna no tamanho da secção .got.loc" + +#: elf32-xtensa.c:3350 +#, c-format +msgid "%B: incompatible machine type. Output is 0x%x. Input is 0x%x" +msgstr "%B: tipo de máquina incompatível. Saída é 0x%x. Entrada é 0x%x" + +#: elf32-xtensa.c:4581 elf32-xtensa.c:4589 +msgid "Attempt to convert L32R/CALLX to CALL failed" +msgstr "Tentativa de converter L32R/CALLX para CALL falhou" + +#: elf32-xtensa.c:6417 elf32-xtensa.c:6495 elf32-xtensa.c:7871 +#, c-format +msgid "%B(%A+%#Lx): could not decode instruction; possible configuration mismatch" +msgstr "%B(%A+%#Lx): impossível descodificar instrução; possível troca de configuração" + +#: elf32-xtensa.c:7610 +#, c-format +msgid "%B(%A+%#Lx): could not decode instruction for XTENSA_ASM_SIMPLIFY relocation; possible configuration mismatch" +msgstr "%B(%A+%#Lx): impossível descodificar instrução para relocalização XTENSA_ASM_SIMPLIFY; possível troca de configuração" + +#: elf32-xtensa.c:9455 +msgid "invalid relocation address" +msgstr "Endereço de relocalização inválido" + +#: elf32-xtensa.c:9505 +msgid "overflow after relaxation" +msgstr "transporte após relaxe" + +#: elf32-xtensa.c:10649 +#, c-format +msgid "%B(%A+%#Lx): unexpected fix for %s relocation" +msgstr "%B(%A+%#Lx): fix inesperado para relocalização %s" + +#: elf64-alpha.c:472 +msgid "GPDISP relocation did not find ldah and lda instructions" +msgstr "relocalização GPDISP não encontrou instruções ldah e lda" + +#: elf64-alpha.c:1112 +#, c-format +msgid "%B: unrecognised Alpha reloc number: %d" +msgstr "%B: número de reloc Alpha não reconhecido: %d" + +#: elf64-alpha.c:2462 +#, c-format +msgid "%B: .got subsegment exceeds 64K (size %d)" +msgstr "%B: sub-segmento .got excede 64K (tamanho %d)" + +#: elf64-alpha.c:3017 +#, c-format +msgid "%B: %A+%#Lx: warning: %s relocation against unexpected insn" +msgstr "%B: %A+%#Lx: aviso: relocalização %s contra insn inesperado" + +#: elf64-alpha.c:3212 +#, c-format +msgid "%B: %A+%#Lx: warning: LITERAL relocation against unexpected insn" +msgstr "%B: %A+%#Lx: aviso: relocalização LITERAL contra insn inesperado" + +#: elf64-alpha.c:4412 elf64-alpha.c:4425 +#, c-format +msgid "%B: gp-relative relocation against dynamic symbol %s" +msgstr "%B: relocalização gp-relative contra símbolo dinâmico %s" + +#: elf64-alpha.c:4452 elf64-alpha.c:4596 +#, c-format +msgid "%B: pc-relative relocation against dynamic symbol %s" +msgstr "%B: relocalização pc-relative contra símbolo dinâmico %s" + +#: elf64-alpha.c:4481 +#, c-format +msgid "%B: change in gp: BRSGP %s" +msgstr "%B: alteração em gp: BRSGP %s" + +#: elf64-alpha.c:4506 +msgid "" +msgstr "" + +#: elf64-alpha.c:4512 +#, c-format +msgid "%B: !samegp reloc against symbol without .prologue: %s" +msgstr "%B: reloc !samegp contra símbolo sem .prologue: %s" + +#: elf64-alpha.c:4570 +#, c-format +msgid "%B: unhandled dynamic relocation against %s" +msgstr "%B: relocalização dinâmica contra %s não gerida" + +#: elf64-alpha.c:4605 +#, c-format +msgid "%B: pc-relative relocation against undefined weak symbol %s" +msgstr "%B: relocalização pc-relative contra símbolo fraco %s indefinido" + +#: elf64-alpha.c:4671 +#, c-format +msgid "%B: dtp-relative relocation against dynamic symbol %s" +msgstr "%B: relocalização dtp-relative contra símbolo dinâmico %s" + +#: elf64-alpha.c:4696 +#, c-format +msgid "%B: tp-relative relocation against dynamic symbol %s" +msgstr "%B: relocalização tp-relative contra símbolo dinâmico %s" + +#: elf64-hppa.c:2081 +#, c-format +msgid "stub entry for %s cannot load .plt, dp offset = %Ld" +msgstr "entrada fictícia para %s não pode carregar .plt, desvio dp = %Ld" + +#: elf64-hppa.c:3286 +#, c-format +msgid "%B(%A+%#Lx): cannot reach %s" +msgstr "%B(%A+%#Lx): impossível atingir %s" + +#: elf64-ia64-vms.c:587 elf32-ia64.c:620 elf64-ia64.c:620 +#, c-format +msgid "%B: Can't relax br at %#Lx in section `%A'. Please use brl or indirect branch." +msgstr "%B: impossível relaxar br em %#Lx na secção \"%A\". Por favor, use brl ou um ramo indirecto." + +#: elf64-ia64-vms.c:2029 elf32-ia64.c:2285 elf64-ia64.c:2285 +msgid "@pltoff reloc against local symbol" +msgstr "reloc @pltoff contra símbolo local" + +#: elf64-ia64-vms.c:3281 elf32-ia64.c:3696 elf64-ia64.c:3696 +#, c-format +msgid "%B: short data segment overflowed (%#Lx >= 0x400000)" +msgstr "%B: transporte no segmento de dados curtos (%#Lx >= 0x400000)" + +#: elf64-ia64-vms.c:3291 elf32-ia64.c:3706 elf64-ia64.c:3706 +msgid "%B: __gp does not cover short data segment" +msgstr "%B: __gp não cobre o segmento de dados curtos" + +#: elf64-ia64-vms.c:3557 elf32-ia64.c:3974 elf64-ia64.c:3974 +#, c-format +msgid "%B: non-pic code with imm relocation against dynamic symbol `%s'" +msgstr "%B: código não-pic com relocalização imm contra símbolo dinâmico \"%s\"" + +#: elf64-ia64-vms.c:3621 elf32-ia64.c:4042 elf64-ia64.c:4042 +#, c-format +msgid "%B: @gprel relocation against dynamic symbol %s" +msgstr "%B: relocalização @gprel contra símbolo dinâmico %s" + +#: elf64-ia64-vms.c:3680 elf32-ia64.c:4105 elf64-ia64.c:4105 +msgid "%B: linking non-pic code in a position independent executable" +msgstr "%B: a ligar código não-pic num executável de posição independente" + +#: elf64-ia64-vms.c:3782 elf32-ia64.c:4243 elf64-ia64.c:4243 +#, c-format +msgid "%B: @internal branch to dynamic symbol %s" +msgstr "%B: ramo @internal para símbolo dinâmico %s" + +#: elf64-ia64-vms.c:3785 elf32-ia64.c:4246 elf64-ia64.c:4246 +#, c-format +msgid "%B: speculation fixup to dynamic symbol %s" +msgstr "%B: fixup de especulação para símbolo dinâmico %s" + +#: elf64-ia64-vms.c:3788 elf32-ia64.c:4249 elf64-ia64.c:4249 +#, c-format +msgid "%B: @pcrel relocation against dynamic symbol %s" +msgstr "%B: relocalização @pcrel contra símbolo dinâmico %s" + +#: elf64-ia64-vms.c:3912 elf32-ia64.c:4446 elf64-ia64.c:4446 +msgid "unsupported reloc" +msgstr "reloc não suportado" + +#: elf64-ia64-vms.c:3949 elf32-ia64.c:4484 elf64-ia64.c:4484 +#, c-format +msgid "%B: missing TLS section for relocation %s against `%s' at %#Lx in section `%A'." +msgstr "%B: secção TLS em falta para relocalização %s contra \"%s\" em %#Lx na secção \"%A\"." + +#: elf64-ia64-vms.c:3966 elf32-ia64.c:4501 elf64-ia64.c:4501 +#, c-format +msgid "%B: Can't relax br (%s) to `%s' at %#Lx in section `%A' with size %#Lx (> 0x1000000)." +msgstr "%B: impossível relaxar br (%s) para \"%s\" em %#Lx na secção \"%A\" com tamanho %#Lx (> 0x1000000)." + +#: elf64-ia64-vms.c:4257 elf32-ia64.c:4758 elf64-ia64.c:4758 +msgid "%B: linking trap-on-NULL-dereference with non-trapping files" +msgstr "%B: a ligar trap-on-NULL-dereference com ficheiros não-trapping" + +#: elf64-ia64-vms.c:4266 elf32-ia64.c:4767 elf64-ia64.c:4767 +msgid "%B: linking big-endian files with little-endian files" +msgstr "%B: a ligar ficheiros big-endian com ficheiros little-endian" + +#: elf64-ia64-vms.c:4275 elf32-ia64.c:4776 elf64-ia64.c:4776 +msgid "%B: linking 64-bit files with 32-bit files" +msgstr "%B: a ligar ficheiros 64-bit com ficheiros 32-bit" + +#: elf64-ia64-vms.c:4284 elf32-ia64.c:4785 elf64-ia64.c:4785 +msgid "%B: linking constant-gp files with non-constant-gp files" +msgstr "%B: a ligar ficheiros constant-gp com ficheiros não constant-gp" + +#: elf64-ia64-vms.c:4294 elf32-ia64.c:4795 elf64-ia64.c:4795 +msgid "%B: linking auto-pic files with non-auto-pic files" +msgstr "%B: a ligar ficheiros auto-pic com ficheiro não auto-pic" + +#: elf64-ia64-vms.c:5137 elflink.c:4773 +#, c-format +msgid "Warning: alignment %u of common symbol `%s' in %B is greater than the alignment (%u) of its section %A" +msgstr "Aviso: alihamento %u de símbolo comum \"%s\" em %B é maior que o alinhamento (%u) da sua secção %A" + +#: elf64-ia64-vms.c:5144 elflink.c:4780 +#, c-format +msgid "Warning: alignment %u of symbol `%s' in %B is smaller than %u in %B" +msgstr "Aviso: alinhamento %u do símbolo \"%s\" em %B é menor que %u em %B" + +#: elf64-ia64-vms.c:5160 elflink.c:4797 +#, c-format +msgid "Warning: size of symbol `%s' changed from %Lu in %B to %Lu in %B" +msgstr "Aviso: tamanho do símbolo \"%s\" mudou de %Lu em %B para %Lu em %B" + +#: elf64-mips.c:3615 elfn32-mips.c:3443 +#, c-format +msgid "unrecognised MIPS reloc number: %d" +msgstr "número de reloc MIPS não reconhecido: %d" + +#: elf64-mmix.c:984 +msgid "" +"invalid input relocation when producing non-ELF, non-mmo format output.\n" +" Please use the objcopy program to convert from ELF or mmo,\n" +" or assemble using \"-no-expand\" (for gcc, \"-Wa,-no-expand\"" +msgstr "" +"Relocalização de entrada inválida ao produzir saída de formato não-ELF, não-mmo.\n" +" Por favor, use o programa objcopy para converter de ELF ou mmo,\n" +" ou monte usando \"-no-expand\" (para gcc, \"-Wa,-no-expand\"" + +#: elf64-mmix.c:1168 +msgid "" +"invalid input relocation when producing non-ELF, non-mmo format output.\n" +" Please use the objcopy program to convert from ELF or mmo,\n" +" or compile using the gcc-option \"-mno-base-addresses\"." +msgstr "" +"Relocalização de entrada inválida ao produzir saída de formato não-ELF, não-mmo.\n" +" Por favor, use o programa objcopy para converter de ELF ou mmo,\n" +"ou compile usando a opção gcc \"-mno-base-addresses\"." + +#: elf64-mmix.c:1195 +#, c-format +msgid "" +"%B: Internal inconsistency error for value for\n" +" linker-allocated global register: linked: %#Lx != relaxed: %#Lx" +msgstr "" +"%B: erro interno de inconsistência no valor para o\n" +" registo global alocado para o linker: ligado: %#Lx != relaxado: %#Lx" + +#: elf64-mmix.c:1264 +#, c-format +msgid "%B: invalid MMIX reloc number: %d" +msgstr "%B: invalid MMIX reloc number: %d" + +#: elf64-mmix.c:1616 +#, c-format +msgid "%B: base-plus-offset relocation against register symbol: (unknown) in %A" +msgstr "%B: relocalização base-plus-offset contra símbolo de registo: (desconhecido) em %A" + +#: elf64-mmix.c:1622 +#, c-format +msgid "%B: base-plus-offset relocation against register symbol: %s in %A" +msgstr "%B: relocalização base-plus-offset contra símbolo de registo: %s em %A" + +#: elf64-mmix.c:1667 +#, c-format +msgid "%B: register relocation against non-register symbol: (unknown) in %A" +msgstr "%B: relocalização de registo contra símbolo não-registo: (desconhecido) em %A" + +#: elf64-mmix.c:1673 +#, c-format +msgid "%B: register relocation against non-register symbol: %s in %A" +msgstr "%B: relocalização de registo contra símbolo não-registo: %s em %A" + +#: elf64-mmix.c:1710 +msgid "%B: directive LOCAL valid only with a register or absolute value" +msgstr "%B: directiva LOCAL só é válida com um registo ou um valor absoluto" + +#: elf64-mmix.c:1741 +#, c-format +msgid "%B: LOCAL directive: Register $%Ld is not a local register. First global register is $%Ld." +msgstr "%B: directiva LOCAL: registo $%Ld não é um registo local. O primeiro registo global é $%Ld." + +#: elf64-mmix.c:2169 +#, c-format +msgid "%B: Error: multiple definition of `%s'; start of %s is set in a earlier linked file\n" +msgstr "%B: Erro: definição múltipla de \"%s\"; início de %s está definido num ficheiro previamente ligado\n" + +#: elf64-mmix.c:2224 +msgid "Register section has contents\n" +msgstr "Secção de registo tem conteúdo\n" + +#: elf64-mmix.c:2414 +#, c-format +msgid "" +"Internal inconsistency: remaining %lu != max %lu.\n" +" Please report this bug." +msgstr "" +"Inconsistência interna: resta %lu != máx %lu.\n" +" Por favor, reporte este erro." + +#: elf64-ppc.c:4640 +#, c-format +msgid "%P: %B: cannot create stub entry %s\n" +msgstr "%P: %B: impossível criar entrada fictícia %s\n" + +#: elf64-ppc.c:4971 +msgid "%P: symbol '%s' has invalid st_other for ABI version 1\n" +msgstr "%P: símbolo \"%s\" tem st_other inválido para a versão ABI 1\n" + +#: elf64-ppc.c:5146 +#, c-format +msgid "%P: %B .opd not allowed in ABI version %d\n" +msgstr "%P: %B .opd não permitida na versão ABI %d\n" + +#: elf64-ppc.c:5645 +#, c-format +msgid "%H: %s reloc unsupported in shared libraries and PIEs.\n" +msgstr "%H: %s reloc não suportada em bibliotecas partilhadas e PIEs.\n" + +#: elf64-ppc.c:6035 +#, c-format +msgid "%B uses unknown e_flags 0x%lx" +msgstr "%B usa e_flags 0x%lx desconhecido" + +#: elf64-ppc.c:6043 +#, c-format +msgid "%B: ABI version %ld is not compatible with ABI version %ld output" +msgstr "%B: versão ABI %ld não é compatível com a saída da versão ABI %ld" + +#: elf64-ppc.c:6071 +#, c-format +msgid " [abiv%ld]" +msgstr " [abiv%ld]" + +#: elf64-ppc.c:7255 +msgid "%P: copy reloc against `%T' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc\n" +msgstr "%P: cópia da reloc contra \"%T\" requer ligação lazy plt; evite definir LD_BIND_NOW=1 ou actualize o gcc\n" + +#: elf64-ppc.c:7522 +msgid "%B: undefined symbol on R_PPC64_TOCSAVE relocation" +msgstr "%B: símbolo indefinido em relocalização R_PPC64_TOCSAVE" + +#: elf64-ppc.c:7749 +#, c-format +msgid "%P: dynreloc miscount for %B, section %A\n" +msgstr "%P: erro de contagem dynreloc para %B, secção %A\n" + +#: elf64-ppc.c:7838 +msgid "%B: .opd is not a regular array of opd entries" +msgstr "%B: .opd não é uma matriz normal de entradas opd" + +#: elf64-ppc.c:7848 +#, c-format +msgid "%B: unexpected reloc type %u in .opd section" +msgstr "%B: tipo de reloc inesperado %u em secção .opd" + +#: elf64-ppc.c:7870 +#, c-format +msgid "%B: undefined sym `%s' in .opd section" +msgstr "%B: símbolo indefinido \"%s\" em secção .opd" + +#: elf64-ppc.c:8207 +msgid "%P: warning: --plt-localentry is especially dangerous without ld.so support to detect ABI violations.\n" +msgstr "%P: aviso: --plt-localentry é particularmente perigosa sem suporte ld.so para detectar violações ABI.\n" + +#: elf64-ppc.c:8456 +msgid "%H __tls_get_addr lost arg, TLS optimization disabled\n" +msgstr "%H __tls_get_addr perdeu arg, optimização TLS desactivada\n" + +#: elf64-ppc.c:8800 elf64-ppc.c:9437 +#, c-format +msgid "%s defined on removed toc entry" +msgstr "%s defenido em entrada toc removida" + +#: elf64-ppc.c:9165 +#, c-format +msgid "%H: toc optimization is not supported for %s instruction.\n" +msgstr "%H: optimização toc não é suportada para instreuções %s.\n" + +#: elf64-ppc.c:9394 +#, c-format +msgid "%H: %s references optimized away TOC entry\n" +msgstr "%H: %s referencia entrada TOC optimizada\n" + +#: elf64-ppc.c:10157 +#, c-format +msgid "warning: discarding dynamic section %s" +msgstr "aviso: a descartar secção dinâmica %s" + +#: elf64-ppc.c:10746 +msgid "%P: cannot find opd entry toc for `%T'\n" +msgstr "%P: impossível encontrar entrada opd toc para \"%T\"\n" + +#: elf64-ppc.c:10837 +msgid "%P: long branch stub `%s' offset overflow\n" +msgstr "%P: transporte em desvio \"%s\" em fictício de ramo longo\n" + +#: elf64-ppc.c:10896 +msgid "%P: can't find branch stub `%s'\n" +msgstr "%P: impossível encontrar fictício de ramo \"%s\"\n" + +#: elf64-ppc.c:10960 elf64-ppc.c:11112 elf64-ppc.c:12974 +#, c-format +msgid "%P: linkage table error against `%T'\n" +msgstr "%P: erro na tabela de ligação contra \"%T\"\n" + +#: elf64-ppc.c:11331 +msgid "%P: can't build branch stub `%s'\n" +msgstr "%P: impossível construir fictício de ramo \"%s\"\n" + +#: elf64-ppc.c:12104 +#, c-format +msgid "%B section %A exceeds stub group size" +msgstr "%B secção %A excede tamanho de grupo de fictício" + +#: elf64-ppc.c:13242 +msgid "%P: stubs don't match calculated size\n" +msgstr "%P: fictícios não correspondem ao tamanho calculado\n" + +#: elf64-ppc.c:13256 +#, c-format +msgid "linker stubs in %u group\n" +msgid_plural "linker stubs in %u groups\n" +msgstr[0] "fictícios de linker em grupo %u\n" +msgstr[1] "fictícios de linker em grupos %u\n" + +#: elf64-ppc.c:13260 +#, c-format +msgid "" +" branch %lu\n" +" toc adjust %lu\n" +" long branch %lu\n" +" long toc adj %lu\n" +" plt call %lu\n" +" plt call toc %lu\n" +" global entry %lu" +msgstr "" +" ramo %lu\n" +" ajuste toc %lu\n" +" ramo longo %lu\n" +" aj. toc longo %lu\n" +" chamada plt %lu\n" +" toc cham. plt %lu\n" +" entrada global %lu" + +#: elf64-ppc.c:13579 +#, c-format +msgid "%H: %s used with TLS symbol `%T'\n" +msgstr "%H: %s usado com símbolo TLS \"%T\"\n" + +#: elf64-ppc.c:13581 +#, c-format +msgid "%H: %s used with non-TLS symbol `%T'\n" +msgstr "%H: %s usado com símbolo não-TLS \"%T\"\n" + +#: elf64-ppc.c:14191 +#, c-format +msgid "%H: call to `%T' lacks nop, can't restore toc; recompile with -fPIC\n" +msgstr "%H: chamada a \"%T\" com nop em falta, impossível restaurar toc; recompile com -fPIC\n" + +#: elf64-ppc.c:14197 +#, c-format +msgid "%H: call to `%T' lacks nop, can't restore toc; (-mcmodel=small toc adjust stub)\n" +msgstr "%H: chamada a \"%T\" com nop em falta, impossível restaurar toc; (-mcmodel=small toc adjust stub)\n" + +#: elf64-ppc.c:14325 +#, c-format +msgid "%P: %B: unknown relocation type %d for `%T'\n" +msgstr "%P: %B: tipo de relocalização %d desconhecido para \"%T\"\n" + +#: elf64-ppc.c:14874 +#, c-format +msgid "%H: %s for indirect function `%T' unsupported\n" +msgstr "%H: %s para função indirecta \"%T\" não suportado\n" + +#: elf64-ppc.c:14986 +#, c-format +msgid "%P: %B: %s is not supported for `%T'\n" +msgstr "%P: %B: %s não é suportado para \"%T\"\n" + +#: elf64-ppc.c:15169 +#, c-format +msgid "%H: error: %s not a multiple of %u\n" +msgstr "%H: erro: %s não é múltiplo de %u\n" + +#: elf64-ppc.c:15191 +#, c-format +msgid "%H: unresolvable %s against `%T'\n" +msgstr "%H: %s insolúvel contra \"%T\"\n" + +#: elf64-ppc.c:15288 +#, c-format +msgid "%H: %s against `%T': error %d\n" +msgstr "%H: %s contra \"%T\": erro %d\n" + +#: elf64-ppc.c:15678 elf64-ppc.c:15697 +msgid "%P: %s offset too large for .eh_frame sdata4 encoding" +msgstr "%P: desvio %s muito grande para codificação .eh_frame sdata4" + +#: elf64-s390.c:2533 +msgid "%B: `%s' non-PLT reloc for symbol defined in shared library and accessed from executable (rebuild file with -fPIC ?)" +msgstr "%B: \"%s\" reloc não-PLT para símbolo definido em biblioteca partilhada e acedido a partir de executável (reconstrua o ficheiro com -fPIC ?)" + +#: elf64-sh64.c:1680 +#, c-format +msgid "%B: error: unaligned relocation type %d at %08Lx reloc %08Lx" +msgstr "%B: erro: tipo de relocalização %d desalinhado em %08Lx reloc %08Lx" + +#: elf64-sparc.c:460 +msgid "%B: Only registers %%g[2367] can be declared using STT_REGISTER" +msgstr "%B: só registos %%g[2367] podem ser declarados usando STT_REGISTER" + +#: elf64-sparc.c:481 +#, c-format +msgid "Register %%g%d used incompatibly: %s in %B, previously %s in %B" +msgstr "Registo %%g%d usa incompatibilidade: %s em %B, previamente %s em %B" + +#: elf64-sparc.c:505 +#, c-format +msgid "Symbol `%s' has differing types: REGISTER in %B, previously %s in %B" +msgstr "Símbolo \"%s\" tem tipos diferentes: REGISTER em %B, previamente %s em %B" + +#: elf64-sparc.c:552 +#, c-format +msgid "Symbol `%s' has differing types: %s in %B, previously REGISTER in %B" +msgstr "Símbolo \"%s\" tem tipos diferentes: %s em %B, previamente REGISTER em %B" + +#: elf64-sparc.c:707 +msgid "%B: linking UltraSPARC specific with HAL specific code" +msgstr "%B: a ligar específico UltraSPARC com código específico HAL" + +#: elf64-x86-64.c:1370 +msgid "hidden symbol " +msgstr "símbolo oculto " + +#: elf64-x86-64.c:1373 +msgid "internal symbol " +msgstr "símbolo interno " + +#: elf64-x86-64.c:1376 elf64-x86-64.c:1380 +msgid "protected symbol " +msgstr "símbolo protegido " + +#: elf64-x86-64.c:1382 +msgid "symbol " +msgstr "símbolo " + +#: elf64-x86-64.c:1383 elf64-x86-64.c:1393 +msgid "; recompile with -fPIC" +msgstr "; recompile com -fPIC" + +#: elf64-x86-64.c:1388 +msgid "undefined " +msgstr "indefinido" + +#: elf64-x86-64.c:1397 +msgid "a shared object" +msgstr "um objecto partilhado" + +#: elf64-x86-64.c:1399 +msgid "a PIE object" +msgstr "um objecto PIE" + +#: elf64-x86-64.c:1401 +msgid "a PDE object" +msgstr "um objecto PDE" + +#: elf64-x86-64.c:1404 +#, c-format +msgid "%B: relocation %s against %s%s`%s' can not be used when making %s%s" +msgstr "%B: relocalização %s contra %s%s\"%s\" não pode ser usada ao fazer %s%s" + +#: elf64-x86-64.c:1889 +#, c-format +msgid "%B: relocation %s against symbol `%s' isn't supported in x32 mode" +msgstr "%B: relocalização %s contra símbolo \"%s\" não é suportada em modo x32" + +#: elf64-x86-64.c:2027 +#, c-format +msgid "%B: '%s' accessed both as normal and thread local symbol" +msgstr "%B: \"%s\" acedido como símbolo local normal e thread em simultâneo" + +#: elf64-x86-64.c:2651 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:5040 +#, c-format +msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %Ld" +msgstr "%B: relocalização %s contra STT_GNU_IFUNC símbolo \"%s\" tem adenda não-zero: %Ld" + +#: elf64-x86-64.c:2888 +#, c-format +msgid "%B: relocation R_X86_64_GOTOFF64 against undefined %s `%s' can not be used when making a shared object" +msgstr "%B: relocalização R_X86_64_GOTOFF64 contra %s \"%s\" indefinido não pode ser usado ao fazer um objecto partilhado" + +#: elf64-x86-64.c:2902 +#, c-format +msgid "%B: relocation R_X86_64_GOTOFF64 against protected %s `%s' can not be used when making a shared object" +msgstr "%B: relocalização R_X86_64_GOTOFF64 contra %s \"%s\" protegido não pode ser usado ao fazer um objecto partilhado" + +#: elf64-x86-64.c:3153 +#, c-format +msgid "%B: addend %s%#x in relocation %s against symbol `%s' at %#Lx in section `%A' is out of range" +msgstr "%B: adenda %s%#x em relocalização %s contra símbolo \"%s\" em %#Lx na secção \"%A\" está fora do intervalo" + +#: elf64-x86-64.c:3828 +msgid "%F%P: failed to convert GOTPCREL relocation; relink with --no-relax\n" +msgstr "%F%P: falha ao converter relocalização GOTPCREL; religue com --no-relax\n" + +#: elf64-x86-64.c:3986 +#, c-format +msgid "%F%B: PC-relative offset overflow in PLT entry for `%s'\n" +msgstr "%F%B: transporte de desvio PC-relative em entrada PLT para \"%s\"\n" + +#: elf64-x86-64.c:4049 +#, c-format +msgid "%F%B: branch displacement overflow in PLT entry for `%s'\n" +msgstr "%F%B: transporte em deslocamento do ramo em entrada PLT para \"%s\n" + +#: elf64-x86-64.c:4102 +#, c-format +msgid "%F%B: PC-relative offset overflow in GOT PLT entry for `%s'\n" +msgstr "%F%B: transporte de desvio PC-relative em entrada GOT PLT para \"%s\"\n" + +#: elfcode.h:760 +msgid "warning: %B has a corrupt string table index - ignoring" +msgstr "aviso: %B tem um índice de tabela de cadeia corrompido - a ignorar" + +#: elfcode.h:1199 +#, c-format +msgid "%B: version count (%Ld) does not match symbol count (%ld)" +msgstr "%B: nº de versão (%Ld) não corresponde ao nº de símbolos (%ld)" + +#: elfcode.h:1456 +#, c-format +msgid "%B(%A): relocation %d has invalid symbol index %ld" +msgstr "%B(%A): relocalização %d tem índice de símbolos inválido %ld" + +#: elfcore.h:300 +#, c-format +msgid "warning: %B is truncated: expected core file size >= %Lu, found: %llu" +msgstr "aviso: %B está truncado: esperado tamanho do ficheiro de núcleo >= %Lu, obtido: %llu" + +#: elflink.c:1353 +#, c-format +msgid "%s: TLS definition in %B section %A mismatches non-TLS definition in %B section %A" +msgstr "%s: definição TLS em secção %B %A não corresponde a definição não-TLS em secção %B %A" + +#: elflink.c:1359 +#, c-format +msgid "%s: TLS reference in %B mismatches non-TLS reference in %B" +msgstr "%s: referência TLS em %B não corresponde a referência não-TLS em %B" + +#: elflink.c:1365 +#, c-format +msgid "%s: TLS definition in %B section %A mismatches non-TLS reference in %B" +msgstr "%s: definição TLS em secção %B %A não corresponde a referência não-TLS em %B" + +#: elflink.c:1371 +#, c-format +msgid "%s: TLS reference in %B mismatches non-TLS definition in %B section %A" +msgstr "%s: referência TLS em %B não corresponde a definição não-TLS em secção %B %A" + +#: elflink.c:2052 +#, c-format +msgid "%B: unexpected redefinition of indirect versioned symbol `%s'" +msgstr "%B: redefinição de símbolo com versão indirecto \"%s\" inesperada" + +#: elflink.c:2345 +#, c-format +msgid "%B: version node not found for symbol %s" +msgstr "%B: nó de versão não encontrado para símbolo %s" + +#: elflink.c:2434 +#, c-format +msgid "%B: bad reloc symbol index (%#Lx >= %#lx) for offset %#Lx in section `%A'" +msgstr "%B: mau índice de símbolo de reloc (%#Lx >= %#lx) para desvio %#Lx na secção \"%A\"" + +#: elflink.c:2446 +#, c-format +msgid "%B: non-zero symbol index (%#Lx) for offset %#Lx in section `%A' when the object file has no symbol table" +msgstr "%B: índice de símbolo não-zero (%#Lx) para desvio %#Lx na secção \"%A\" onde o ficheiro objecto não tem tabela de símbolo" + +#: elflink.c:2637 +#, c-format +msgid "%B: relocation size mismatch in %B section %A" +msgstr "%B: tamanho de relocalização trocado na secção %B %A" + +#: elflink.c:2955 +#, c-format +msgid "warning: type and size of dynamic symbol `%s' are not defined" +msgstr "aviso: tipo e tamanho do símbolo dinâmico \"%s\" não estão definidos" + +#: elflink.c:3017 +msgid "%P: copy reloc against protected `%T' is dangerous\n" +msgstr "%P: cópia de reloc contra \"%T\" protegido é perigosa\n" + +#: elflink.c:3818 +#, c-format +msgid "%P: alternate ELF machine code found (%d) in %B, expecting %d\n" +msgstr "%P: encontrado código máquina ELF alternativo (%d) em %B, esperado %d\n" + +#: elflink.c:4484 +#, c-format +msgid "%B: %s: invalid version %u (max %d)" +msgstr "%B: %s: versão %u inválida (máx %d)" + +#: elflink.c:4521 +#, c-format +msgid "%B: %s: invalid needed version %d" +msgstr "%B: %s: versão necessária %d inválida" + +#: elflink.c:4932 +#, c-format +msgid "%B: undefined reference to symbol '%s'" +msgstr "%B: referência indefinida a símbolo \"%s\"" + +#: elflink.c:6008 +#, c-format +msgid "%B: stack size specified and %s set" +msgstr "%B: tamanho de stack especificado e definido como %s" + +#: elflink.c:6012 +#, c-format +msgid "%B: %s not absolute" +msgstr "%B: %s não absoluto" + +#: elflink.c:6209 +#, c-format +msgid "%s: undefined version: %s" +msgstr "%s: versão indefinida: %s" + +#: elflink.c:6780 +msgid "%B: .preinit_array section is not allowed in DSO" +msgstr "%B: secção .preinit_array não é permitida em DSO" + +#: elflink.c:8217 +#, c-format +msgid "undefined %s reference in complex symbol: %s" +msgstr "referência %s indefinida em símbolo complexo: %s" + +#: elflink.c:8372 +#, c-format +msgid "unknown operator '%c' in complex symbol" +msgstr "operador \"%c\" desconhecido em símbolo complexo" + +#. PR 21524: Let the user know if a symbol was removed by garbage collection. +#: elflink.c:8710 +msgid "%B:%A: error: relocation references symbol %s which was removed by garbage collection." +msgstr "%B:%A: erro: relocalização referencia símbolo %s que foi removido pela recolha de lixo." + +#: elflink.c:8713 +msgid "%B:%A: error: try relinking with --gc-keep-exported enabled." +msgstr "%B:%A: erro: tente religar com --gc-keep-exported activado." + +#: elflink.c:8949 elflink.c:8967 elflink.c:9006 elflink.c:9024 +msgid "%B: Unable to sort relocs - they are in more than one size" +msgstr "%B: impossível ordenar relocs - têm mais de um tamanho" + +#. The section size is not divisible by either - +#. something is wrong. +#: elflink.c:8983 elflink.c:9040 +msgid "%B: Unable to sort relocs - they are of an unknown size" +msgstr "%B: impossível ordenar relocs - têm um tamanho desconhecido" + +#: elflink.c:9092 +msgid "Not enough memory to sort relocations" +msgstr "Sem memória suficiente para ordenar relocalizações" + +#: elflink.c:9360 +#, c-format +msgid "%B: Too many sections: %d (>= %d)" +msgstr "%B: demasiadas secções: %d (>= %d)" + +#: elflink.c:9640 +#, c-format +msgid "%B: internal symbol `%s' in %B is referenced by DSO" +msgstr "%B: símbolo \"%s\" interno em %B é referenciado por DSO" + +#: elflink.c:9643 +#, c-format +msgid "%B: hidden symbol `%s' in %B is referenced by DSO" +msgstr "%B: símbolo \"%s\" oculto em %B é referenciado por DSO" + +#: elflink.c:9646 +#, c-format +msgid "%B: local symbol `%s' in %B is referenced by DSO" +msgstr "%B: símbolo \"%s\" local em %B é referenciado por DSO" + +#: elflink.c:9732 +#, c-format +msgid "%B: could not find output section %A for input section %A" +msgstr "%B: impossível encontrar a secção de saída %A para a secção de entrada %A" + +#: elflink.c:9886 +#, c-format +msgid "%B: protected symbol `%s' isn't defined" +msgstr "%B: símbolo \"%s\" protegido não está definido" + +#: elflink.c:9889 +#, c-format +msgid "%B: internal symbol `%s' isn't defined" +msgstr "%B: símbolo \"%s\" não está definido" + +#: elflink.c:9892 +#, c-format +msgid "%B: hidden symbol `%s' isn't defined" +msgstr "%B: símbolo \"%s\" oculto não está definido" + +#: elflink.c:9923 +#, c-format +msgid "%B: No symbol version section for versioned symbol `%s'" +msgstr "%B: sem secção de versão de símbolo para o símbolo com versão \"%s\"" + +#: elflink.c:10533 +#, c-format +msgid "error: %B: size of section %A is not multiple of address size" +msgstr "erro: %B: tamanho da secção %A não é múltiplo do tamanho do endereço" + +#: elflink.c:10578 +#, c-format +msgid "error: %B contains a reloc (%#Lx) for section %A that references a non-existent global symbol" +msgstr "erro: %B contém uma reloc (%#Lx) para a secção %A que referencia um símbolo global inexistente" + +#: elflink.c:11333 +#, c-format +msgid "%A has both ordered [`%A' in %B] and unordered [`%A' in %B] sections" +msgstr "%A tem secções ordenadas [\"%A\" em %B] e desordenadas [\"%A\" em %B] em simultâneo" + +#: elflink.c:11339 +#, c-format +msgid "%A has both ordered and unordered sections" +msgstr "%A tem secções ordenadas e desordenadas em simultâneo" + +#: elflink.c:11441 +msgid "%B: no symbol found for import library" +msgstr "%B: sem símbolo para biblioteca de importação" + +#: elflink.c:12063 +#, c-format +msgid "%B: file class %s incompatible with %s" +msgstr "%B: classe de ficheiro %s incompatível com %s" + +#: elflink.c:12280 +msgid "%B: failed to generate import library" +msgstr "%B: falha ao gerar biblioteca de importação" + +#: elflink.c:12399 +#, c-format +msgid "warning: %s section has zero size" +msgstr "aviso: secção %s tem tamanho zero" + +#: elflink.c:12447 +#, c-format +msgid "warning: section '%s' is being made into a note" +msgstr "aviso: a secção \"%s\" está a ser tornada numa nota" + +#: elflink.c:12539 +msgid "%P%X: read-only segment has dynamic relocations.\n" +msgstr "%P%X: segmento só de leitura tem relocalizações dinâmicas.\n" + +#: elflink.c:12542 +msgid "%P: warning: creating a DT_TEXTREL in a shared object.\n" +msgstr "%P: aviso: a criar uma DT_TEXTREL num objecto partilhado.\n" + +#: elflink.c:12667 +msgid "%P%X: can not read symbols: %E\n" +msgstr "%P%X: impossível ler os símbolos: %E\n" + +#: elflink.c:12829 +msgid "%F%P: corrupt input: %B\n" +msgstr "%F%P: entrada corrupta: %B\n" + +#: elflink.c:13495 +#, c-format +msgid "%B: %A+%#Lx: No symbol found for INHERIT" +msgstr "%B: %A+%#Lx: sem símbolo para INHERIT" + +#: elflink.c:13671 +#, c-format +msgid "Unrecognized INPUT_SECTION_FLAG %s\n" +msgstr "INPUT_SECTION_FLAG %s não reconhecida\n" + +#: elfxx-mips.c:1444 +msgid "static procedure (no name)" +msgstr "procedimento estático (sem nome)" + +#: elfxx-mips.c:5628 +msgid "MIPS16 and microMIPS functions cannot call each other" +msgstr "funções MIPS16 e microMIPS não se podem chamar entre si" + +#: elfxx-mips.c:6376 +msgid "%X%H: Unsupported JALX to the same ISA mode\n" +msgstr "%X%H: JALX não suportado para o mesmo modo ISA\n" + +#: elfxx-mips.c:6409 +msgid "%X%H: Unsupported jump between ISA modes; consider recompiling with interlinking enabled\n" +msgstr "%X%H: salto não suportado entre modos ISA; considere recompilar com interlinking activado\n" + +#: elfxx-mips.c:6454 +msgid "%X%H: Cannot convert branch between ISA modes to JALX: relocation out of range\n" +msgstr "%X%H: impossível converter ramo entre modos ISA para JALX: relocalização fora do intervalo\n" + +#: elfxx-mips.c:6466 +msgid "%X%H: Unsupported branch between ISA modes\n" +msgstr "%X%H: ramo não suportado entre modos ISA\n" + +#: elfxx-mips.c:7144 elfxx-mips.c:7379 +#, c-format +msgid "%B: Warning: bad `%s' option size %u smaller than its header" +msgstr "%B: aviso: mau tamanho de opção \"%s\" %u menor que o seu cabeçalho" + +#: elfxx-mips.c:8135 elfxx-mips.c:8261 +#, c-format +msgid "%B: Warning: cannot determine the target function for stub section `%s'" +msgstr "%B: aviso: impossível determinar a função alvo para secção fictícia \"%s\"" + +#: elfxx-mips.c:8393 +#, c-format +msgid "%B: Malformed reloc detected for section %s" +msgstr "%B: reloc mal formada detectada para secção %s" + +#: elfxx-mips.c:8465 +#, c-format +msgid "%B: GOT reloc at %#Lx not expected in executables" +msgstr "%B: reloc GOT em %#Lx não esperada em executáveis" + +#: elfxx-mips.c:8603 +#, c-format +msgid "%B: CALL16 reloc at %#Lx not against global symbol" +msgstr "%B: reloc CALL16 em %#Lx não contra símbolo global" + +#: elfxx-mips.c:9226 +#, c-format +msgid "non-dynamic relocations refer to dynamic symbol %s" +msgstr "relocalizações não-dinâmicas referem-se a símbolo dinâmico %s" + +#: elfxx-mips.c:10146 +#, c-format +msgid "%B: Can't find matching LO16 reloc against `%s' for %s at %#Lx in section `%A'" +msgstr "%B: impossível encontrar reloc LO16 correspondente contra \"%s\" para %s em %#Lx na secção \"%A\"" + +#: elfxx-mips.c:10286 +msgid "small-data section exceeds 64KB; lower small-data size limit (see option -G)" +msgstr "secção small-data excede 64KB; baixe o limite de tamanho de small-data (veja a opção -G)" + +#: elfxx-mips.c:10305 +msgid "Cannot convert a jump to JALX for a non-word-aligned address" +msgstr "Impossível converter um salto para JALX para um endereço não alinhado por word" + +#: elfxx-mips.c:10308 +msgid "Jump to a non-word-aligned address" +msgstr "Salto para um endereço não alinhado por word" + +#: elfxx-mips.c:10309 +msgid "Jump to a non-instruction-aligned address" +msgstr "Salto para um endereço não alinhado por instrução" + +#: elfxx-mips.c:10312 +msgid "Cannot convert a branch to JALX for a non-word-aligned address" +msgstr "Impossível converter um ramo para JALX para um endereço não alinhado por word" + +#: elfxx-mips.c:10314 +msgid "Branch to a non-instruction-aligned address" +msgstr "Ramo para um endereço não alinhado por instrução" + +#: elfxx-mips.c:10316 +msgid "PC-relative load from unaligned address" +msgstr "Carga PC-relative de endereço não alinhado" + +#: elfxx-mips.c:10690 elfxx-mips.c:11258 +#, c-format +msgid "%B: `%A' offset of %Ld from `%A' beyond the range of ADDIUPC" +msgstr "%B: desvio \"%A\" de %Ld de \"%A\" além do intervalo de ADDIUPC" + +#: elfxx-mips.c:14121 +#, c-format +msgid "%B: Unknown architecture %s" +msgstr "%B: arquitectura desconhecida %s" + +#: elfxx-mips.c:14380 +msgid "%B: .reginfo section size should be %d bytes, actual size is %d" +msgstr "%B: tamanho da secção .reginfo devia ser %d bytes, tamanho actual é %d" + +#: elfxx-mips.c:14659 +#, c-format +msgid "%B: illegal section name `%A'" +msgstr "%B: nome de secção ilegal \"%A\"" + +#: elfxx-mips.c:14936 +msgid "%B: warning: linking abicalls files with non-abicalls files" +msgstr "%B: aviso: a ligar ficheiros abicalls com ficheiros não-abicalls" + +#: elfxx-mips.c:14953 +msgid "%B: linking 32-bit code with 64-bit code" +msgstr "%B: a ligar código 32-bit com código 64-bit" + +#: elfxx-mips.c:14985 elfxx-mips.c:15051 elfxx-mips.c:15066 +#, c-format +msgid "%B: linking %s module with previous %s modules" +msgstr "%B: a ligar módulo %s com módulos prévios %s" + +#: elfxx-mips.c:15009 +#, c-format +msgid "%B: ABI mismatch: linking %s module with previous %s modules" +msgstr "%B: troca ABI: a ligar módulo %s com módulos prévios %s" + +#: elfxx-mips.c:15034 +#, c-format +msgid "%B: ASE mismatch: linking %s module with previous %s modules" +msgstr "%B: troca ASE: a ligar módulo %s com módulos prévios %s" + +#: elfxx-mips.c:15168 +msgid "Warning: %B uses unknown floating point ABI %d (set by %B), %B uses unknown floating point ABI %d" +msgstr "Aviso: %B usa vírgula flutuante ABI %d desconhecida (definida por %B), %B usa vírgula flutuante ABI %d desconhecida" + +#: elfxx-mips.c:15174 +#, c-format +msgid "Warning: %B uses unknown floating point ABI %d (set by %B), %B uses %s" +msgstr "Aviso: %B usa vírgula flutuante ABI %d desconhecida (definida por %B), %B usa %s" + +#: elfxx-mips.c:15180 +#, c-format +msgid "Warning: %B uses %s (set by %B), %B uses unknown floating point ABI %d" +msgstr "Abiso: %B usa %s (definida por %B), %B usa vírgula flutuante ABI %d desconhecida" + +#: elfxx-mips.c:15194 +#, c-format +msgid "Warning: %B uses %s (set by %B), %B uses %s" +msgstr "Aviso: %B usa %s (definida por %B), %B usa %s" + +#: elfxx-mips.c:15213 +#, c-format +msgid "Warning: %B uses %s (set by %B), %B uses unknown MSA ABI %d" +msgstr "Aviso: %B usa %s (definida por %B), %B usa MSA ABI %d desconhecida" + +#: elfxx-mips.c:15225 +#, c-format +msgid "Warning: %B uses unknown MSA ABI %d (set by %B), %B uses %s" +msgstr "Aviso: %B usa MSA ABI %d desconhecida (definida por %B), %B usa %s" + +#: elfxx-mips.c:15234 +#, c-format +msgid "Warning: %B uses unknown MSA ABI %d (set by %B), %B uses unknown MSA ABI %d" +msgstr "Aviso: %B usa MSA ABI %d desconhecida (definida por %B), %B usa MSA ABI %d desconhecida" + +#: elfxx-mips.c:15296 +msgid "%B: endianness incompatible with that of the selected emulation" +msgstr "%B: endianness incompatível com a da emulação seleccionada" + +#: elfxx-mips.c:15310 +msgid "%B: ABI is incompatible with that of the selected emulation" +msgstr "%B: ABI incompatível com a da emulação seleccionada" + +#: elfxx-mips.c:15362 +msgid "%B: warning: Inconsistent ISA between e_flags and .MIPS.abiflags" +msgstr "%B: aviso: ISA inconsistente entre e_flags e .MIPS.abiflags" + +#: elfxx-mips.c:15367 +msgid "%B: warning: Inconsistent FP ABI between .gnu.attributes and .MIPS.abiflags" +msgstr "%B: aviso: FP ABI inconsistente entre .gnu.attributes e .MIPS.abiflags" + +#: elfxx-mips.c:15371 +msgid "%B: warning: Inconsistent ASEs between e_flags and .MIPS.abiflags" +msgstr "%B: aviso: ASEs inconsistente entre e_flags e .MIPS.abiflags" + +#: elfxx-mips.c:15378 +msgid "%B: warning: Inconsistent ISA extensions between e_flags and .MIPS.abiflags" +msgstr "%B: aviso: extensões ISA inconsistentes entre e_flags e .MIPS.abiflags" + +#: elfxx-mips.c:15382 +msgid "%B: warning: Unexpected flag in the flags2 field of .MIPS.abiflags (0x%lx)" +msgstr "%B: aviso: bandeira inesperada no campo flags2 de .MIPS.abiflags (0x%lx)" + +#: elfxx-mips.c:15571 +msgid "-mips32r2 -mfp64 (12 callee-saved)" +msgstr "-mips32r2 -mfp64 (12 callee-saved)" + +#: elfxx-mips.c:15621 elfxx-mips.c:15632 +msgid "None" +msgstr "Nenhum" + +#: elfxx-mips.c:15623 elfxx-mips.c:15695 +msgid "Unknown" +msgstr "Desconhecido" + +#: elfxx-mips.c:15706 +#, c-format +msgid "Hard or soft float\n" +msgstr "Flutuante rígido ou suave\n" + +#: elfxx-mips.c:15709 +#, c-format +msgid "Hard float (double precision)\n" +msgstr "Flutuante rígido (precisão dupla)\n" + +#: elfxx-mips.c:15712 +#, c-format +msgid "Hard float (single precision)\n" +msgstr "Flutuante rígido (precisão simples)\n" + +#: elfxx-mips.c:15715 +#, c-format +msgid "Soft float\n" +msgstr "Flutuante suave\n" + +#: elfxx-mips.c:15718 +#, c-format +msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n" +msgstr "Flutuante rígido (MIPS32r2 64-bit FPU 12 callee-saved)\n" + +#: elfxx-mips.c:15721 +#, c-format +msgid "Hard float (32-bit CPU, Any FPU)\n" +msgstr "Flutuante rígido (32-bit CPU, qualquer FPU)\n" + +#: elfxx-mips.c:15724 +#, c-format +msgid "Hard float (32-bit CPU, 64-bit FPU)\n" +msgstr "Flutuante rígido (32-bit CPU, 64-bit FPU)\n" + +#: elfxx-mips.c:15727 +#, c-format +msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n" +msgstr "Comp. flutuante rígido (32-bit CPU, 64-bit FPU)\n" + +#: elfxx-mips.c:15759 +#, c-format +msgid " [abi=O32]" +msgstr " [abi=O32]" + +#: elfxx-mips.c:15761 +#, c-format +msgid " [abi=O64]" +msgstr " [abi=O64]" + +#: elfxx-mips.c:15763 +#, c-format +msgid " [abi=EABI32]" +msgstr " [abi=EABI32]" + +#: elfxx-mips.c:15765 +#, c-format +msgid " [abi=EABI64]" +msgstr " [abi=EABI64]" + +#: elfxx-mips.c:15767 +#, c-format +msgid " [abi unknown]" +msgstr " [abi desconhecida]" + +#: elfxx-mips.c:15769 +#, c-format +msgid " [abi=N32]" +msgstr " [abi=N32]" + +#: elfxx-mips.c:15771 +#, c-format +msgid " [abi=64]" +msgstr " [abi=64]" + +#: elfxx-mips.c:15773 +#, c-format +msgid " [no abi set]" +msgstr " [sem abi definida]" + +#: elfxx-mips.c:15798 +#, c-format +msgid " [unknown ISA]" +msgstr " [ISA desconhecida]" + +#: elfxx-mips.c:15818 +#, c-format +msgid " [not 32bitmode]" +msgstr " [não 32bitmode]" + +#: elfxx-riscv.c:955 +#, c-format +msgid "unrecognized relocation (0x%x)" +msgstr "relocalização não reconhecida (0x%x)" + +#: elfxx-sparc.c:639 +#, c-format +msgid "invalid relocation type %d" +msgstr "tipo de relocalização %d inválido" + +#: elfxx-sparc.c:3129 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:5024 +#, c-format +msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s" +msgstr "%B: relocalização %s contra símbolo STT_GNU_IFUNC \"%s\" não é gerido por %s" + +#: elfxx-tilegx.c:4241 +#, c-format +msgid "%B: Cannot link together %s and %s objects." +msgstr "%B: impossível ligar objectos %s e %s." + +#: elfxx-x86.c:570 +#, c-format +msgid "%P: %B: warning: relocation against `%s' in read-only section `%A'\n" +msgstr "%P: %B: aviso: relocalização contra \"%s\" em secção só de leitura \"%A\"\n" + +#: elfxx-x86.c:954 +msgid "%P: %B: warning: relocation in read-only section `%A'\n" +msgstr "%P: %B: aviso: relocalização em secção só de leitura \"%A\"\n" + +#: elfxx-x86.c:1287 +msgid "%P%X: read-only segment has dynamic IFUNC relocations; recompile with -fPIC\n" +msgstr "%P%X: segmento só de leitura tem relocalizações dinâmicas IFUNC; recompile com -fPIC\n" + +#: elfxx-x86.c:2241 +msgid "error: %B: " +msgstr "erro: %B: " + +#: elfxx-x86.c:2243 +msgid "error: %B: " +msgstr "erro: %B: " + +#: elfxx-x86.c:2244 +msgid "error: %B: " +msgstr "erro: %B: " + +#: elfxx-x86.c:2416 +msgid "%F%P: failed to create GNU property section\n" +msgstr "%F%P: falha ao criar secção de propriedade GNU\n" + +#: elfxx-x86.c:2421 +#, c-format +msgid "%F%A: failed to align section\n" +msgstr "%F%A: falha ao alinhar secção\n" + +#: elfxx-x86.c:2571 +msgid "%F%P: failed to create VxWorks dynamic sections\n" +msgstr "%F%P: falha ao criar secções dinâmicas VxWorks \n" + +#: elfxx-x86.c:2580 +msgid "%F%P: failed to create GOT sections\n" +msgstr "%F%P: falha ao criar secções GOT\n" + +#: elfxx-x86.c:2598 +msgid "%F%P: failed to create ifunc sections\n" +msgstr "%F%P: falha ao criar secções ifunc\n" + +#: elfxx-x86.c:2639 +msgid "%F%P: failed to create GOT PLT section\n" +msgstr "%F%P: falha ao criar secção GOT PLT\n" + +#: elfxx-x86.c:2660 +msgid "%F%P: failed to create IBT-enabled PLT section\n" +msgstr "%F%P: falha ao criar secção IBT-enabled PLT\n" + +#: elfxx-x86.c:2675 +msgid "%F%P: failed to create BND PLT section\n" +msgstr "%F%P: falha ao criar secção BND PLT\n" + +#: elfxx-x86.c:2696 +msgid "%F%P: failed to create PLT .eh_frame section\n" +msgstr "%F%P: falha ao criar secção PLT .eh_frame\n" + +#: elfxx-x86.c:2709 +msgid "%F%P: failed to create GOT PLT .eh_frame section\n" +msgstr "%F%P: falha ao criar secção GOT PLT .eh_frame\n" + +#: elfxx-x86.c:2723 +msgid "%F%P: failed to create the second PLT .eh_frame section\n" +msgstr "%F%P: falha ao criar segunda secção PLT .eh_frame\n" + +#: i386linux.c:416 m68klinux.c:419 sparclinux.c:412 +#, c-format +msgid "Output file requires shared library `%s'\n" +msgstr "O ficheiro de saída requer a biblioteca partilhada \"%s\"\n" + +#: i386linux.c:424 m68klinux.c:428 sparclinux.c:421 +#, c-format +msgid "Output file requires shared library `%s.so.%s'\n" +msgstr "O ficheiro de saída requer a biblioteca partilhada \"%s.so.%s\"\n" + +#: i386linux.c:611 i386linux.c:661 m68klinux.c:617 m68klinux.c:665 +#: sparclinux.c:608 sparclinux.c:658 +#, c-format +msgid "Symbol %s not defined for fixups\n" +msgstr "Símbolo %s não definido para fixups\n" + +#: i386linux.c:685 m68klinux.c:689 sparclinux.c:682 +msgid "Warning: fixup count mismatch\n" +msgstr "Aviso: troca de total de fixups\n" + +#: ieee.c:159 +#, c-format +msgid "%B: string too long (%ld chars, max 65535)" +msgstr "%B: cadeia muito grande (%ld caracteres, máx. 65535)" + +#: ieee.c:226 +#, c-format +msgid "IEEE parser: string length: %#lx longer than buffer: %#lx" +msgstr "Analisador IEEE: tamanho da cadeia: %#lx maior que o buffer: %#lx" + +#: ieee.c:302 +#, c-format +msgid "%B: unrecognized symbol `%s' flags 0x%x" +msgstr "%B: símbolo \"%s\" não reconhecido bandeiras 0x%x" + +#: ieee.c:837 +#, c-format +msgid "%B: unimplemented ATI record %u for symbol %u" +msgstr "%B: registo ATI %u não implementado para símbolo %u" + +#: ieee.c:862 +#, c-format +msgid "%B: unexpected ATN type %Ld in external part" +msgstr "%B: tipo ATN inesperado %Ld em parte externa" + +#: ieee.c:884 +msgid "%B: unexpected type after ATN" +msgstr "%B: tipo inesperado após ATN" + +#: ihex.c:230 +#, c-format +msgid "%B:%d: unexpected character `%s' in Intel Hex file" +msgstr "%B:%d: carácter \"%s\" inesperado em ficheiro Intel Hex" + +#: ihex.c:338 +#, c-format +msgid "%B:%u: bad checksum in Intel Hex file (expected %u, found %u)" +msgstr "%B:%u: mau checksum em ficheiro Intel Hex (esperado %u, obtido %u)" + +#: ihex.c:394 +#, c-format +msgid "%B:%u: bad extended address record length in Intel Hex file" +msgstr "%B:%u: mau tamanho de registo de endereço estendido em ficheiro Intel Hex" + +#: ihex.c:412 +#, c-format +msgid "%B:%u: bad extended start address length in Intel Hex file" +msgstr "%B:%u: mau tamanho de endereço inicial estendido em ficheiro Intel Hex" + +#: ihex.c:430 +#, c-format +msgid "%B:%u: bad extended linear address record length in Intel Hex file" +msgstr "%B:%u: mau tamanho de registo em endereço linear estendido em ficheiro Intel Hex" + +#: ihex.c:448 +#, c-format +msgid "%B:%u: bad extended linear start address length in Intel Hex file" +msgstr "%B:%u: mau tamanho de endereço linear inicial estendido em ficheiro Intel Hex" + +#: ihex.c:466 +#, c-format +msgid "%B:%u: unrecognized ihex type %u in Intel Hex file" +msgstr "%B:%u: tipo ihex não reconhecido %u em ficheiro Intel Hex" + +#: ihex.c:585 +msgid "%B: internal error in ihex_read_section" +msgstr "%B: erro interno em ihex_read_section" + +#: ihex.c:619 +msgid "%B: bad section length in ihex_read_section" +msgstr "%B: mau tamanho de secção em ihex_read_section" + +#: ihex.c:830 +#, c-format +msgid "%B: address %#Lx out of range for Intel Hex file" +msgstr "%B: endereço %#Lx fora do intervalo para ficheiro Intel Hex" + +#: libbfd.c:799 +#, c-format +msgid "%B: unable to get decompressed section %A" +msgstr "%B: impossível obter secção %A descomprimida" + +#: libbfd.c:963 +#, c-format +msgid "Deprecated %s called at %s line %d in %s\n" +msgstr "%s obsoleto chamado em %s linha %d em %s\n" + +#: libbfd.c:966 +#, c-format +msgid "Deprecated %s called\n" +msgstr "%s obsoleto chamado\n" + +#: linker.c:1678 +#, c-format +msgid "%B: indirect symbol `%s' to `%s' is a loop" +msgstr "%B: símbolo indirecto \"%s\" para \"%s\" é um ciclo" + +#: linker.c:2548 +#, c-format +msgid "Attempt to do relocatable link with %s input and %s output" +msgstr "Tentativa de fazer ligação relocalizável com entrada %s e saída %s" + +#: linker.c:2834 +#, c-format +msgid "%B: ignoring duplicate section `%A'\n" +msgstr "%B: a ignorar secção \"%A\" duplicada\n" + +#: linker.c:2844 linker.c:2854 +#, c-format +msgid "%B: duplicate section `%A' has different size\n" +msgstr "%B: secção \"%A\" duplicada tem tamanho diferente\n" + +#: linker.c:2863 linker.c:2869 +#, c-format +msgid "%B: could not read contents of section `%A'\n" +msgstr "%B: impossível ler conteúdo da secção \"%A\"\n" + +#: linker.c:2874 +#, c-format +msgid "%B: duplicate section `%A' has different contents\n" +msgstr "%B: secção \"%A\" duplicada tem conteúdo diferente\n" + +#: linker.c:3362 +msgid "%B: compiled for a big endian system and target is little endian" +msgstr "%B: compilado para um sistema big endian e o alvo é little endian" + +#: linker.c:3365 +msgid "%B: compiled for a little endian system and target is big endian" +msgstr "%B: compilado para um sistema little endian e o alvo é big endian" + +#: mach-o.c:779 +msgid "bfd_mach_o_canonicalize_symtab: unable to load symbols" +msgstr "bfd_mach_o_canonicalize_symtab: impossível carregar símbolos" + +#: mach-o.c:1981 +msgid "sorry: modtab, toc and extrefsyms are not yet implemented for dysymtab commands." +msgstr "desculpe: modtab, toc e extrefsyms ainda não estão implementados para comandos dysymtab." + +#: mach-o.c:2424 +#, c-format +msgid "mach-o: there are too many sections (%u) maximum is 255,\n" +msgstr "mach-o: há demasiadas secções (%u), o máximo é 255,\n" + +#: mach-o.c:2531 +#, c-format +msgid "unable to allocate data for load command %#x" +msgstr "impossível alocar dados para comando de carga %#x" + +#: mach-o.c:2636 +#, c-format +msgid "unable to write unknown load command %#x" +msgstr "impossível escrever comando de carga %#x desconhecido" + +#: mach-o.c:2820 +#, c-format +msgid "section address (%#Lx) below start of segment (%#Lx)" +msgstr "endereço de secção (%#Lx) abaixo do início do segmento (%#Lx)" + +#: mach-o.c:2961 +#, c-format +msgid "unable to layout unknown load command %#x" +msgstr "impossível dispor comando de carga %#x desconhecido" + +#: mach-o.c:3497 +#, c-format +msgid "bfd_mach_o_read_section_32: overlarge alignment value: %#lx, using 32 instead" +msgstr "bfd_mach_o_read_section_32: valor de alinhamento muito grande: %#lx, a usar 32" + +#: mach-o.c:3540 +#, c-format +msgid "bfd_mach_o_read_section_64: overlarge alignment value: %#lx, using 32 instead" +msgstr "bfd_mach_o_read_section_64: valor de alinhamento muito grande: %#lx, a usar 32" + +#: mach-o.c:3591 +#, c-format +msgid "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %u" +msgstr "bfd_mach_o_read_symtab_symbol: impossível ler %d bytes em %u" + +#: mach-o.c:3610 +#, c-format +msgid "bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %u)" +msgstr "bfd_mach_o_read_symtab_symbol: nome fora do intervalo (%lu >= %u)" + +#: mach-o.c:3693 +#, c-format +msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid section %d (max %lu): setting to undefined" +msgstr "bfd_mach_o_read_symtab_symbol: símbolo \"%s\" especificou secção inválida %d (máx %lu): a definir como indefinida" + +#: mach-o.c:3712 +#, c-format +msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid type field 0x%x: setting to undefined" +msgstr "bfd_mach_o_read_symtab_symbol: símbolo \"%s\" especificou campo de tipo inválido 0x%x: a definir como indefinida" + +#: mach-o.c:3789 +msgid "bfd_mach_o_read_symtab_symbols: unable to allocate memory for symbols" +msgstr "bfd_mach_o_read_symtab_symbols: impossível alocar memória para símbolos" + +#: mach-o.c:4762 +msgid "%B: unknown load command %#x" +msgstr "%B: comando de carga %#x desconhecido" + +#: mach-o.c:4953 +#, c-format +msgid "bfd_mach_o_scan: unknown architecture 0x%lx/0x%lx" +msgstr "bfd_mach_o_scan: arquitectura desconhecida 0x%lx/0x%lx" + +#: mach-o.c:5058 +#, c-format +msgid "unknown header byte-order value %#x" +msgstr "valor de cabeçalho byte-order %#x desconhecido" + +#: merge.c:868 +#, c-format +msgid "%B: access beyond end of merged section (%Ld)" +msgstr "%B: acesso além do fim da secção unida (%Ld)" + +#: mmo.c:468 +#, c-format +msgid "%B: No core to allocate section name %s\n" +msgstr "%B: sem núcleo para alocar nome de secção %s\n" + +#: mmo.c:544 +#, c-format +msgid "%B: No core to allocate a symbol %d bytes long\n" +msgstr "%B: sem núcleo para alocar um símbolo com %d bytes\n" + +#: mmo.c:958 +#, c-format +msgid "%B: attempt to emit contents at non-multiple-of-4 address %#Lx" +msgstr "%B: tentativa de emitir conteúdo em endereço não múltiplo de 4 %#Lx" + +#: mmo.c:1255 +msgid "%B: invalid mmo file: initialization value for $255 is not `Main'\n" +msgstr "%B: ficheiro mmo inválido: valor de initialização para $255 não é \"Main\"\n" + +#: mmo.c:1402 +#, c-format +msgid "%B: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'\n" +msgstr "%B: sequência de caracteres largos 0x%02X 0x%02X não suportada após nome de símbolo começado por \"%s\"\n" + +#: mmo.c:1636 +#, c-format +msgid "%B: invalid mmo file: unsupported lopcode `%d'\n" +msgstr "%B: ficheiro mmo inválido: lopcode \"%d\" não suportado\n" + +#: mmo.c:1647 +#, c-format +msgid "%B: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n" +msgstr "%B: ficheiro mmo inválido: esperado YZ = 1, obtido YZ = %d para lop_quote\n" + +#: mmo.c:1685 +#, c-format +msgid "%B: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n" +msgstr "%B: ficheiro mmo inválido: esperado z = 1 ou z = 2, obtido z = %d para lop_loc\n" + +#: mmo.c:1736 +#, c-format +msgid "%B: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n" +msgstr "%B: ficheiro mmo inválido: esperado z = 1 ou z = 2, obtido z = %d para lop_fixo\n" + +#: mmo.c:1777 +#, c-format +msgid "%B: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n" +msgstr "%B: ficheiro mmo inválido: esperado y = 0, obtido y = %d para lop_fixrx\n" + +#: mmo.c:1788 +#, c-format +msgid "%B: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n" +msgstr "%B: ficheiro mmo inválido: esperado z = 16 ou z = 24, obtido z = %d para lop_fixrx\n" + +#: mmo.c:1813 +#, c-format +msgid "%B: invalid mmo file: leading byte of operand word must be 0 or 1, got %d for lop_fixrx\n" +msgstr "%B: ficheiro mmo inválido: byte inicial da palavra operando tem de ser 0 ou 1, obtido %d para lop_fixrx\n" + +#: mmo.c:1838 +#, c-format +msgid "%B: cannot allocate file name for file number %d, %d bytes\n" +msgstr "%B: impossível alocar nome de ficheiro para número de ficheiro %d, %d bytes\n" + +#: mmo.c:1860 +#, c-format +msgid "%B: invalid mmo file: file number %d `%s', was already entered as `%s'\n" +msgstr "%B: ficheiro mmo inválido: número de ficheiro %d \"%s\", já foi inserido como \"%s\"\n" + +#: mmo.c:1874 +#, c-format +msgid "%B: invalid mmo file: file name for number %d was not specified before use\n" +msgstr "%B: ficheiro mmo inválido: nome de ficheiro para número %d não foi especificado antes do uso\n" + +#: mmo.c:1981 +#, c-format +msgid "%B: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n" +msgstr "%B: ficheiro mmo inválido: campos y e z de lop_stab não-zero, y: %d, z: %d\n" + +#: mmo.c:2018 +#, c-format +msgid "%B: invalid mmo file: lop_end not last item in file\n" +msgstr "%B: ficheiro mmo inválido: lop_end não é o último item no ficheiro\n" + +#: mmo.c:2032 +#, c-format +msgid "%B: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)\n" +msgstr "%B: ficheiro mmo inválido: YZ de lop_end (%ld) não igual ao número de tetras para o lop_stab (%ld) precedente\n" + +#: mmo.c:2743 +#, c-format +msgid "%B: invalid symbol table: duplicate symbol `%s'\n" +msgstr "%B: tabela de símbolo inválida: símbolo duplicado \"%s\"\n" + +#: mmo.c:2986 +#, c-format +msgid "%B: Bad symbol definition: `Main' set to %s rather than the start address %s\n" +msgstr "%B: má definição de símbolo: \"Main\" definido como %s em vez do endereço inicial %s\n" + +#: mmo.c:3085 +#, c-format +msgid "%B: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d. Only `Main' will be emitted.\n" +msgstr "%B: aviso: tabela de simbolo muito grande para mmo, maior que palavras de 65535 32-bit: %d. Só \"Main\" será emitido.\n" + +#: mmo.c:3131 +#, c-format +msgid "%B: internal error, symbol table changed size from %d to %d words\n" +msgstr "%B: erro interno, tabela de símbolo alterou o tamanho de %d para %d palavras\n" + +#: mmo.c:3184 +#, c-format +msgid "%B: internal error, internal register section %A had contents\n" +msgstr "%B: erro interno, secção de registo interna %A tinha conteúdo\n" + +#: mmo.c:3235 +msgid "%B: no initialized registers; section length 0\n" +msgstr "%B: sem registos inicializados; tamanho de secção 0\n" + +#: mmo.c:3242 +#, c-format +msgid "%B: too many initialized registers; section length %Ld" +msgstr "%B: demasiados registos inicializados; tamanho de secção %Ld" + +#: mmo.c:3247 +#, c-format +msgid "%B: invalid start address for initialized registers of length %Ld: %#Lx" +msgstr "%B: endereço inicial inválido para registos inicializados de tamanho %Ld: %#Lx" + +#: oasys.c:881 +#, c-format +msgid "%B: can not represent section `%A' in oasys" +msgstr "%B: impossível representar secção \"%A\" em oasys" + +#: osf-core.c:127 +#, c-format +msgid "Unhandled OSF/1 core file section type %d\n" +msgstr "Tipo de secção %d de ficheiro núcleo OSF/1 não gerida\n" + +#: pe-mips.c:609 +msgid "%B: `ld -r' not supported with PE MIPS objects\n" +msgstr "%B: \"ld -r\" não suportado com objectos PE MIPS\n" + +#. OK, at this point the following variables are set up: +#. src = VMA of the memory we're fixing up +#. mem = pointer to memory we're fixing up +#. val = VMA of what we need to refer to. +#: pe-mips.c:720 +#, c-format +msgid "%B: unimplemented %s\n" +msgstr "%B: %s não implementado\n" + +#: pe-mips.c:746 +msgid "%B: jump too far away\n" +msgstr "%B: salto para demasiado longe\n" + +#: pe-mips.c:772 +msgid "%B: bad pair/reflo after refhi\n" +msgstr "%B: mau pair/reflo após refhi\n" + +#: pef.c:526 +#, c-format +msgid "bfd_pef_scan: unknown architecture 0x%lx" +msgstr "bfd_pef_scan: arquitectura desconhecida 0x%lx" + +#. PR 17512: file: 2245-7442-0.004. +#: pei-x86_64.c:281 +#, c-format +msgid "Unknown: %x" +msgstr "Desconhecido: %x" + +#: pei-x86_64.c:331 +#, c-format +msgid "warning: xdata section corrupt\n" +msgstr "aviso: secção xdata corrupta\n" + +#: pei-x86_64.c:341 +#, c-format +msgid "warning: xdata section corrupt" +msgstr "aviso: secção xdata corrupta" + +#: pei-x86_64.c:401 +#, c-format +msgid "Too many unwind codes (%ld)\n" +msgstr "Demasiados códigos unwind (%ld)\n" + +#: pei-x86_64.c:491 +#, c-format +msgid "Warning: %s section size (%ld) is not a multiple of %d\n" +msgstr "Aviso: tamanho de secção %s (%ld) não é múltiplo de %d\n" + +#: pei-x86_64.c:498 +#, c-format +msgid "Warning: %s section size is zero\n" +msgstr "Aviso: tamanho de secção %s é zero\n" + +#: pei-x86_64.c:513 +#, c-format +msgid "Warning: %s section size (%ld) is smaller than virtual size (%ld)\n" +msgstr "Aviso: tamanho de secção %s (%ld) é menor que o tamanho virtual (%ld)\n" + +#: pei-x86_64.c:522 +#, c-format +msgid "" +"\n" +"The Function Table (interpreted %s section contents)\n" +msgstr "" +"\n" +"A tabela de função (interpretado %s conteúdo de secção)\n" + +#: pei-x86_64.c:525 +#, c-format +msgid "vma:\t\t\tBeginAddress\t EndAddress\t UnwindData\n" +msgstr "vma:\t\t\tEndInicial \t EndFinal \t DadosUnwind\n" + +#: pei-x86_64.c:654 +#, c-format +msgid "" +"\n" +"Dump of %s\n" +msgstr "" +"\n" +"Despejo de %s\n" + +#. XXX code yet to be written. +#: peicode.h:775 +#, c-format +msgid "%B: Unhandled import type; %x" +msgstr "%B: tipo de importação não gerido; %x" + +#: peicode.h:781 +#, c-format +msgid "%B: Unrecognised import type; %x" +msgstr "%B: tipo de importação não reconhecido; %x" + +#: peicode.h:796 +#, c-format +msgid "%B: Unrecognised import name type; %x" +msgstr "%B: tipo de nome de importação não reconhecido; %x" + +#: peicode.h:1217 +#, c-format +msgid "%B: Unrecognised machine type (0x%x) in Import Library Format archive" +msgstr "%B: tipo de máquina não reconhecido (0x%x) em arquivo Import Library Format" + +#: peicode.h:1230 +#, c-format +msgid "%B: Recognised but unhandled machine type (0x%x) in Import Library Format archive" +msgstr "%B: tipo de máquina reconhecido mas não gerido (0x%x) em arquivo Import Library Format" + +#: peicode.h:1248 +msgid "%B: size field is zero in Import Library Format header" +msgstr "%B: tamanho de campo é zero em cabeçalho Import Library Format" + +#: peicode.h:1280 +msgid "%B: string not null terminated in ILF object file." +msgstr "%B: cadeia nã-null terminada em ficheiro objecto ILF." + +#: peicode.h:1335 +msgid "%B: Error: Debug Data ends beyond end of debug directory." +msgstr "%B: erro: Debug Data termina após o fim da pasta de depuração." + +#: ppcboot.c:393 +#, c-format +msgid "" +"\n" +"ppcboot header:\n" +msgstr "" +"\n" +"cabeçalho ppcboot:\n" + +#: ppcboot.c:394 +#, c-format +msgid "Entry offset = 0x%.8lx (%ld)\n" +msgstr "Desvio da entrada = 0x%.8lx (%ld)\n" + +#: ppcboot.c:396 +#, c-format +msgid "Length = 0x%.8lx (%ld)\n" +msgstr "Tamanho = 0x%.8lx (%ld)\n" + +#: ppcboot.c:400 +#, c-format +msgid "Flag field = 0x%.2x\n" +msgstr "Campo de bandeira = 0x%.2x\n" + +#: ppcboot.c:406 +#, c-format +msgid "Partition name = \"%s\"\n" +msgstr "Nome da partição = \"%s\"\n" + +#: ppcboot.c:426 +#, c-format +msgid "" +"\n" +"Partition[%d] start = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" +msgstr "" +"\n" +"Início da partição[%d] = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" + +#: ppcboot.c:433 +#, c-format +msgid "Partition[%d] end = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" +msgstr "Fim da partição[%d] = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" + +#: ppcboot.c:440 +#, c-format +msgid "Partition[%d] sector = 0x%.8lx (%ld)\n" +msgstr "Sector da partição[%d] = 0x%.8lx (%ld)\n" + +#: ppcboot.c:444 +#, c-format +msgid "Partition[%d] length = 0x%.8lx (%ld)\n" +msgstr "Tamanho da partição[%d] = 0x%.8lx (%ld)\n" + +#: reloc.c:8106 +msgid "INPUT_SECTION_FLAGS are not supported.\n" +msgstr "INPUT_SECTION_FLAGS não são suportadas.\n" + +#: reloc.c:8207 +#, c-format +msgid "%X%P: %B(%A): error: relocation for offset %V has no value\n" +msgstr "%X%P: %B(%A): erro: relocalização para desvio %V não tem valor\n" + +#: reloc.c:8283 +#, c-format +msgid "%X%P: %B(%A): relocation \"%R\" is not supported\n" +msgstr "%X%P: %B(%A): relocalização \"%R\" não é suportada\n" + +#: reloc.c:8292 +#, c-format +msgid "%X%P: %B(%A): relocation \"%R\" returns an unrecognized value %x\n" +msgstr "%X%P: %B(%A): relocalização \"%R\" devolve um valor não reconhecido %x\n" + +#: reloc.c:8354 +#, c-format +msgid "%B: unrecognized relocation (%#x) in section `%A'" +msgstr "%B: relocalização não reconhecida (%#x) na secção \"%A\"" + +#. PR 21803: Suggest the most likely cause of this error. +#: reloc.c:8358 +#, c-format +msgid "Is this version of the linker - %s - out of date ?" +msgstr "Estará esta versão do linker - %s - fora do prazo?" + +#: rs6000-core.c:471 +msgid "%B: warning core file truncated" +msgstr "%B: aviso: ficheiro núcleo truncado" + +#: som.c:5478 +#, c-format +msgid "" +"\n" +"Exec Auxiliary Header\n" +msgstr "" +"\n" +"Exec Auxiliary Header\n" + +#: som.c:5787 +msgid "som_sizeof_headers unimplemented" +msgstr "som_sizeof_headers não implementado" + +#: srec.c:260 +#, c-format +msgid "%B:%d: Unexpected character `%s' in S-record file\n" +msgstr "%B:%d: carácter \"%s\" inesperado em ficheiro S-record\n" + +#: srec.c:488 +#, c-format +msgid "%B:%d: byte count %d too small\n" +msgstr "%B:%d: total de byte %d muito pequeno\n" + +#: srec.c:581 srec.c:615 +#, c-format +msgid "%B:%d: Bad checksum in S-record file\n" +msgstr "%B:%d: mau checksum em ficheiro S-record\n" + +#: stabs.c:279 +#, c-format +msgid "%B(%A+%#lx): Stabs entry has invalid string index." +msgstr "%B(%A+%#lx): entrada Stabs tem índice de cadeia inválido." + +#: syms.c:1079 +msgid "Unsupported .stab relocation" +msgstr "Relocalização .stab não suportada" + +#: vms-alpha.c:479 +msgid "Corrupt EIHD record - size is too small" +msgstr "Registo EIHD corrupto - tamanho muito pequeno" + +#: vms-alpha.c:660 +#, c-format +msgid "Unable to read EIHS record at offset %#x" +msgstr "Impossível ler registo EIHS no desvio %#x" + +#: vms-alpha.c:1172 +#, c-format +msgid "Corrupt EGSD record: its size (%#x) is too small" +msgstr "Registo EGSD corrupto: tamanho (%#x) muito pequeno" + +#: vms-alpha.c:1196 +#, c-format +msgid "Corrupt EGSD record: size (%#x) is larger than remaining space (%#x)" +msgstr "Registo EGSD corrupto: tamanho (%#x) maior que o espaço restante (%#x)" + +#: vms-alpha.c:1204 +#, c-format +msgid "Corrupt EGSD record: size (%#x) is too small" +msgstr "Registo EGSD corrupto: tamanho (%#x) muito pequeno" + +#: vms-alpha.c:1333 vms-alpha.c:1349 vms-alpha.c:1389 +#, c-format +msgid "Corrupt EGSD record: its psindx field is too big (%#lx)" +msgstr "Registo EGSD corrupto: campo psindx muito grande (%#lx)" + +#: vms-alpha.c:1418 +#, c-format +msgid "Unknown EGSD subtype %d" +msgstr "Sub-tipo EGSD %d desconhecido" + +#: vms-alpha.c:1451 +#, c-format +msgid "Stack overflow (%d) in _bfd_vms_push" +msgstr "Transporte de stack (%d) em _bfd_vms_push" + +#: vms-alpha.c:1464 +msgid "Stack underflow in _bfd_vms_pop" +msgstr "Sub-transporte de stack em _bfd_vms_pop" + +#. These names have not yet been added to this switch statement. +#: vms-alpha.c:1706 +#, c-format +msgid "unknown ETIR command %d" +msgstr "comando ETIR %d desconhecido" + +#: vms-alpha.c:1737 +msgid "Corrupt vms value" +msgstr "Valor vms corrupto" + +#: vms-alpha.c:1865 +msgid "Corrupt ETIR record encountered" +msgstr "Encontrado registo ETIR corrupto" + +#: vms-alpha.c:1922 +#, c-format +msgid "bad section index in %s" +msgstr "mau índice de secção em %s" + +#: vms-alpha.c:1935 +#, c-format +msgid "unsupported STA cmd %s" +msgstr "comando STA %s não suportado" + +#. Insert field. +#. Unsigned shift. +#. Rotate. +#. Redefine symbol to current location. +#. Define a literal. +#: vms-alpha.c:2115 vms-alpha.c:2146 vms-alpha.c:2237 vms-alpha.c:2395 +#, c-format +msgid "%s: not supported" +msgstr "%s: não suportado" + +#: vms-alpha.c:2121 +#, c-format +msgid "%s: not implemented" +msgstr "%s: não implementado" + +#: vms-alpha.c:2379 +#, c-format +msgid "invalid use of %s with contexts" +msgstr "uso inválido de %s com contextos" + +#: vms-alpha.c:2413 +#, c-format +msgid "reserved cmd %d" +msgstr "comando reservado %d" + +#: vms-alpha.c:2497 +msgid "Corrupt EEOM record - size is too small" +msgstr "Registo EEOM corrupto - tamanho demasiado pequeno" + +#: vms-alpha.c:2506 +msgid "Object module NOT error-free !\n" +msgstr "Módulo objecto NÃO livre de erros!\n" + +#: vms-alpha.c:3830 +#, c-format +msgid "SEC_RELOC with no relocs in section %A" +msgstr "SEC_RELOC sem relocs na secção %A" + +#: vms-alpha.c:3882 vms-alpha.c:4095 +#, c-format +msgid "Size error in section %A" +msgstr "Erro de tamanho na secção %A" + +#: vms-alpha.c:4041 +msgid "Spurious ALPHA_R_BSR reloc" +msgstr "Relocalização ALPHA_R_BSR espúria" + +#: vms-alpha.c:4082 +#, c-format +msgid "Unhandled relocation %s" +msgstr "Relocalização %s não gerida" + +#: vms-alpha.c:4375 +#, c-format +msgid "unknown source command %d" +msgstr "Comando fonte %d desconhecido" + +#: vms-alpha.c:4436 +msgid "DST__K_SET_LINUM_INCR not implemented" +msgstr "DST__K_SET_LINUM_INCR não implementado" + +#: vms-alpha.c:4442 +msgid "DST__K_SET_LINUM_INCR_W not implemented" +msgstr "DST__K_SET_LINUM_INCR_W não implementado" + +#: vms-alpha.c:4448 +msgid "DST__K_RESET_LINUM_INCR not implemented" +msgstr "DST__K_RESET_LINUM_INCR não implementado" + +#: vms-alpha.c:4454 +msgid "DST__K_BEG_STMT_MODE not implemented" +msgstr "DST__K_BEG_STMT_MODE não implementado" + +#: vms-alpha.c:4460 +msgid "DST__K_END_STMT_MODE not implemented" +msgstr "DST__K_END_STMT_MODE não implementado" + +#: vms-alpha.c:4487 +msgid "DST__K_SET_PC not implemented" +msgstr "DST__K_SET_PC não implementado" + +#: vms-alpha.c:4493 +msgid "DST__K_SET_PC_W not implemented" +msgstr "DST__K_SET_PC_W não implementado" + +#: vms-alpha.c:4499 +msgid "DST__K_SET_PC_L not implemented" +msgstr "DST__K_SET_PC_L não implementado" + +#: vms-alpha.c:4505 +msgid "DST__K_SET_STMTNUM not implemented" +msgstr "DST__K_SET_STMTNUM não implementado" + +#: vms-alpha.c:4548 +#, c-format +msgid "unknown line command %d" +msgstr "comando de linha %d desconhecido" + +#: vms-alpha.c:5008 vms-alpha.c:5026 vms-alpha.c:5041 vms-alpha.c:5057 +#: vms-alpha.c:5070 vms-alpha.c:5082 vms-alpha.c:5095 +#, c-format +msgid "Unknown reloc %s + %s" +msgstr "Reloc %s + %s desconhecida" + +#: vms-alpha.c:5150 +#, c-format +msgid "Unknown reloc %s" +msgstr "Reloc %s desconhecida" + +#: vms-alpha.c:5163 +msgid "Invalid section index in ETIR" +msgstr "Ãndice de secção inválido em ETIR" + +#: vms-alpha.c:5172 +msgid "Relocation for non-REL psect" +msgstr "Relocalização para psect não-REL" + +#: vms-alpha.c:5219 +#, c-format +msgid "Unknown symbol in command %s" +msgstr "Símbolo desconhecido em comando %s" + +#: vms-alpha.c:5629 +#, c-format +msgid "reloc (%d) is *UNKNOWN*" +msgstr "reloc (%d) é *UNKNOWN*" + +#: vms-alpha.c:5745 +#, c-format +msgid " EMH %u (len=%u): " +msgstr " EMH %u (tam=%u): " + +#: vms-alpha.c:5750 +#, c-format +msgid " Error: The length is less than the length of an EMH record\n" +msgstr " Erro: o tamanho é menor que o tamanho de um registo EMH\n" + +#: vms-alpha.c:5767 +#, c-format +msgid " Error: The record length is less than the size of an EMH_MHD record\n" +msgstr " Erro: o tamanho do registo é menor que o tamanho de um registo EMH_MHD\n" + +#: vms-alpha.c:5770 +#, c-format +msgid "Module header\n" +msgstr "Cabeçalho de módulo\n" + +#: vms-alpha.c:5771 +#, c-format +msgid " structure level: %u\n" +msgstr " nível de estrutura: %u\n" + +#: vms-alpha.c:5772 +#, c-format +msgid " max record size: %u\n" +msgstr " tam. máx registo: %u\n" + +#: vms-alpha.c:5778 +#, c-format +msgid " Error: The module name is missing\n" +msgstr " Erro: nome de módulo em falta\n" + +#: vms-alpha.c:5784 +#, c-format +msgid " Error: The module name is too long\n" +msgstr " Erro: nome de módulo muito longo\n" + +#: vms-alpha.c:5787 +#, c-format +msgid " module name : %.*s\n" +msgstr " nome de módulo : %.*s\n" + +#: vms-alpha.c:5791 +#, c-format +msgid " Error: The module version is missing\n" +msgstr " Erro: versão de módulo em falta\n" + +#: vms-alpha.c:5797 +#, c-format +msgid " Error: The module version is too long\n" +msgstr " Erro: versão de módulo muito longa\n" + +#: vms-alpha.c:5800 +#, c-format +msgid " module version : %.*s\n" +msgstr " versão de módulo: %.*s\n" + +#: vms-alpha.c:5803 +#, c-format +msgid " Error: The compile date is truncated\n" +msgstr " Erro: data de compilação truncada\n" + +#: vms-alpha.c:5805 +#, c-format +msgid " compile date : %.17s\n" +msgstr " data compilação: %.17s\n" + +#: vms-alpha.c:5810 +#, c-format +msgid "Language Processor Name\n" +msgstr "Nome do processador de linguagem\n" + +#: vms-alpha.c:5811 +#, c-format +msgid " language name: %.*s\n" +msgstr " nome linguagem: %.*s\n" + +#: vms-alpha.c:5815 +#, c-format +msgid "Source Files Header\n" +msgstr "Cabeçalho de ficheiros fonte\n" + +#: vms-alpha.c:5816 +#, c-format +msgid " file: %.*s\n" +msgstr " ficheiro: %.*s\n" + +#: vms-alpha.c:5820 +#, c-format +msgid "Title Text Header\n" +msgstr "Cabeçalho do texto de título\n" + +#: vms-alpha.c:5821 +#, c-format +msgid " title: %.*s\n" +msgstr " título: %.*s\n" + +#: vms-alpha.c:5825 +#, c-format +msgid "Copyright Header\n" +msgstr "Cabeçalho de copyright\n" + +#: vms-alpha.c:5826 +#, c-format +msgid " copyright: %.*s\n" +msgstr " copyright: %.*s\n" + +#: vms-alpha.c:5830 +#, c-format +msgid "unhandled emh subtype %u\n" +msgstr "sub-tipo emh %u não gerido\n" + +#: vms-alpha.c:5840 +#, c-format +msgid " EEOM (len=%u):\n" +msgstr " EEOM (tam=%u):\n" + +#: vms-alpha.c:5845 +#, c-format +msgid " Error: The length is less than the length of an EEOM record\n" +msgstr " Erro: o tamanho é menor que o tamanho de um registo EEOM\n" + +#: vms-alpha.c:5849 +#, c-format +msgid " number of cond linkage pairs: %u\n" +msgstr " número de pares de ligação condicional: %u\n" + +#: vms-alpha.c:5851 +#, c-format +msgid " completion code: %u\n" +msgstr " código de conclusão: %u\n" + +#: vms-alpha.c:5855 +#, c-format +msgid " transfer addr flags: 0x%02x\n" +msgstr " transferir band end: 0x%02x\n" + +#: vms-alpha.c:5856 +#, c-format +msgid " transfer addr psect: %u\n" +msgstr " transferir psect end.: %u\n" + +#: vms-alpha.c:5858 +#, c-format +msgid " transfer address : 0x%08x\n" +msgstr " transferir endereço: 0x%08x\n" + +#: vms-alpha.c:5867 +msgid " WEAK" +msgstr " WEAK" + +#: vms-alpha.c:5869 +msgid " DEF" +msgstr " DEF" + +#: vms-alpha.c:5871 +msgid " UNI" +msgstr " UNI" + +#: vms-alpha.c:5873 vms-alpha.c:5894 +msgid " REL" +msgstr " REL" + +#: vms-alpha.c:5875 +msgid " COMM" +msgstr " COMM" + +#: vms-alpha.c:5877 +msgid " VECEP" +msgstr " VECEP" + +#: vms-alpha.c:5879 +msgid " NORM" +msgstr " NORM" + +#: vms-alpha.c:5881 +msgid " QVAL" +msgstr " QVAL" + +#: vms-alpha.c:5888 +msgid " PIC" +msgstr " PIC" + +#: vms-alpha.c:5890 +msgid " LIB" +msgstr " LIB" + +#: vms-alpha.c:5892 +msgid " OVR" +msgstr " OVR" + +#: vms-alpha.c:5896 +msgid " GBL" +msgstr " GBL" + +#: vms-alpha.c:5898 +msgid " SHR" +msgstr " SHR" + +#: vms-alpha.c:5900 +msgid " EXE" +msgstr " EXE" + +#: vms-alpha.c:5902 +msgid " RD" +msgstr " RD" + +#: vms-alpha.c:5904 +msgid " WRT" +msgstr " WRT" + +#: vms-alpha.c:5906 +msgid " VEC" +msgstr " VEC" + +#: vms-alpha.c:5908 +msgid " NOMOD" +msgstr " NOMOD" + +#: vms-alpha.c:5910 +msgid " COM" +msgstr " COM" + +#: vms-alpha.c:5912 +msgid " 64B" +msgstr " 64B" + +#: vms-alpha.c:5921 +#, c-format +msgid " EGSD (len=%u):\n" +msgstr " EGSD (tam=%u):\n" + +#: vms-alpha.c:5934 +#, c-format +msgid " EGSD entry %2u (type: %u, len: %u): " +msgstr " entrada EGSD %2u (tipo: %u, tamanho: %u): " + +#: vms-alpha.c:5940 vms-alpha.c:6191 +#, c-format +msgid " Error: length larger than remaining space in record\n" +msgstr " Erro: tamanho maior que o espaço restante no registo\n" + +#: vms-alpha.c:5952 +#, c-format +msgid "PSC - Program section definition\n" +msgstr "PSC - definição da secção Program\n" + +#: vms-alpha.c:5953 vms-alpha.c:5970 +#, c-format +msgid " alignment : 2**%u\n" +msgstr " alinhamento : 2**%u\n" + +#: vms-alpha.c:5954 vms-alpha.c:5971 +#, c-format +msgid " flags : 0x%04x" +msgstr " bandeiras : 0x%04x" + +#: vms-alpha.c:5958 +#, c-format +msgid " alloc (len): %u (0x%08x)\n" +msgstr " aloc. (tam): %u (0x%08x)\n" + +#: vms-alpha.c:5959 vms-alpha.c:6016 vms-alpha.c:6065 +#, c-format +msgid " name : %.*s\n" +msgstr " nome : %.*s\n" + +#: vms-alpha.c:5969 +#, c-format +msgid "SPSC - Shared Image Program section def\n" +msgstr "SPSC - definição de secção Shared Image Program\n" + +#: vms-alpha.c:5975 +#, c-format +msgid " alloc (len) : %u (0x%08x)\n" +msgstr " aloc. (tam) : %u (0x%08x)\n" + +#: vms-alpha.c:5976 +#, c-format +msgid " image offset : 0x%08x\n" +msgstr " desvio imagem : 0x%08x\n" + +#: vms-alpha.c:5978 +#, c-format +msgid " symvec offset : 0x%08x\n" +msgstr " desvio symvec : 0x%08x\n" + +#: vms-alpha.c:5980 +#, c-format +msgid " name : %.*s\n" +msgstr " nome : %.*s\n" + +#: vms-alpha.c:5993 +#, c-format +msgid "SYM - Global symbol definition\n" +msgstr "SYM - definição de símbolo Global\n" + +#: vms-alpha.c:5994 vms-alpha.c:6054 vms-alpha.c:6075 vms-alpha.c:6094 +#, c-format +msgid " flags: 0x%04x" +msgstr " bandeiras: 0x%04x" + +#: vms-alpha.c:5997 +#, c-format +msgid " psect offset: 0x%08x\n" +msgstr " desvio psect: 0x%08x\n" + +#: vms-alpha.c:6001 +#, c-format +msgid " code address: 0x%08x\n" +msgstr " end. de cód.: 0x%08x\n" + +#: vms-alpha.c:6003 +#, c-format +msgid " psect index for entry point : %u\n" +msgstr " índice psect do ponto de entrada: %u\n" + +#: vms-alpha.c:6006 vms-alpha.c:6082 vms-alpha.c:6101 +#, c-format +msgid " psect index : %u\n" +msgstr " índice psect : %u\n" + +#: vms-alpha.c:6008 vms-alpha.c:6084 vms-alpha.c:6103 +#, c-format +msgid " name : %.*s\n" +msgstr " nome : %.*s\n" + +#: vms-alpha.c:6015 +#, c-format +msgid "SYM - Global symbol reference\n" +msgstr "SYM - referência de símbolo Global\n" + +#: vms-alpha.c:6027 +#, c-format +msgid "IDC - Ident Consistency check\n" +msgstr "IDC - verificação Ident Consistency\n" + +#: vms-alpha.c:6028 +#, c-format +msgid " flags : 0x%08x" +msgstr " bandeiras : 0x%08x" + +#: vms-alpha.c:6032 +#, c-format +msgid " id match : %x\n" +msgstr " comparação id : %x\n" + +#: vms-alpha.c:6034 +#, c-format +msgid " error severity: %x\n" +msgstr " severidade do erro: %x\n" + +#: vms-alpha.c:6037 +#, c-format +msgid " entity name : %.*s\n" +msgstr " nome entidade : %.*s\n" + +#: vms-alpha.c:6039 +#, c-format +msgid " object name : %.*s\n" +msgstr " nome objecto : %.*s\n" + +#: vms-alpha.c:6042 +#, c-format +msgid " binary ident : 0x%08x\n" +msgstr " ident. binária: 0x%08x\n" + +#: vms-alpha.c:6045 +#, c-format +msgid " ascii ident : %.*s\n" +msgstr " ident. ascii : %.*s\n" + +#: vms-alpha.c:6053 +#, c-format +msgid "SYMG - Universal symbol definition\n" +msgstr "SYMG - definição Universal\n" + +#: vms-alpha.c:6057 +#, c-format +msgid " symbol vector offset: 0x%08x\n" +msgstr " desvio do vector de símbolo: 0x%08x\n" + +#: vms-alpha.c:6059 +#, c-format +msgid " entry point: 0x%08x\n" +msgstr " ponto de entrada: 0x%08x\n" + +#: vms-alpha.c:6061 +#, c-format +msgid " proc descr : 0x%08x\n" +msgstr " descrição de procedimento: 0x%08x\n" + +#: vms-alpha.c:6063 +#, c-format +msgid " psect index: %u\n" +msgstr " índice psect: %u\n" + +#: vms-alpha.c:6074 +#, c-format +msgid "SYMV - Vectored symbol definition\n" +msgstr "SYMV - definição de símbolo Vectored\n" + +#: vms-alpha.c:6078 +#, c-format +msgid " vector : 0x%08x\n" +msgstr " vector : 0x%08x\n" + +#: vms-alpha.c:6080 vms-alpha.c:6099 +#, c-format +msgid " psect offset: %u\n" +msgstr " desvio psect: %u\n" + +#: vms-alpha.c:6093 +#, c-format +msgid "SYMM - Global symbol definition with version\n" +msgstr "SYMM - definição de símbolo Global com versão\n" + +#: vms-alpha.c:6097 +#, c-format +msgid " version mask: 0x%08x\n" +msgstr " máscara de versão: 0x%08x\n" + +#: vms-alpha.c:6108 +#, c-format +msgid "unhandled egsd entry type %u\n" +msgstr "tipo de entrada egsd %u não gerida\n" + +#: vms-alpha.c:6143 +#, c-format +msgid " linkage index: %u, replacement insn: 0x%08x\n" +msgstr " índice de ligação: %u, insn de substituição: 0x%08x\n" + +#: vms-alpha.c:6147 +#, c-format +msgid " psect idx 1: %u, offset 1: 0x%08x %08x\n" +msgstr " índ psect 1: %u, desvio 1: 0x%08x %08x\n" + +#: vms-alpha.c:6152 +#, c-format +msgid " psect idx 2: %u, offset 2: 0x%08x %08x\n" +msgstr " índ psect 2: %u, desvio 2: 0x%08x %08x\n" + +#: vms-alpha.c:6158 +#, c-format +msgid " psect idx 3: %u, offset 3: 0x%08x %08x\n" +msgstr " índ psect 3: %u, desvio 3: 0x%08x %08x\n" + +#: vms-alpha.c:6163 +#, c-format +msgid " global name: %.*s\n" +msgstr " nome global: %.*s\n" + +#: vms-alpha.c:6174 +#, c-format +msgid " %s (len=%u+%u):\n" +msgstr " %s (tam=%u+%u):\n" + +#: vms-alpha.c:6196 +#, c-format +msgid " (type: %3u, size: 4+%3u): " +msgstr " (tipo: %3u, tam.: 4+%3u): " + +#: vms-alpha.c:6200 +#, c-format +msgid "STA_GBL (stack global) %.*s\n" +msgstr "STA_GBL (stack global) %.*s\n" + +#: vms-alpha.c:6204 +#, c-format +msgid "STA_LW (stack longword) 0x%08x\n" +msgstr "STA_LW (stack longword) 0x%08x\n" + +#: vms-alpha.c:6208 +#, c-format +msgid "STA_QW (stack quadword) 0x%08x %08x\n" +msgstr "STA_QW (stack quadword) 0x%08x %08x\n" + +#: vms-alpha.c:6213 +#, c-format +msgid "STA_PQ (stack psect base + offset)\n" +msgstr "STA_PQ (stack psect base + desvio)\n" + +#: vms-alpha.c:6215 +#, c-format +msgid " psect: %u, offset: 0x%08x %08x\n" +msgstr " psect: %u, desvio: 0x%08x %08x\n" + +#: vms-alpha.c:6221 +#, c-format +msgid "STA_LI (stack literal)\n" +msgstr "STA_LI (stack literal)\n" + +#: vms-alpha.c:6224 +#, c-format +msgid "STA_MOD (stack module)\n" +msgstr "STA_MOD (stack módulo)\n" + +#: vms-alpha.c:6227 +#, c-format +msgid "STA_CKARG (compare procedure argument)\n" +msgstr "STA_CKARG (comparar argumento de procedimento)\n" + +#: vms-alpha.c:6231 +#, c-format +msgid "STO_B (store byte)\n" +msgstr "STO_B (armazenar byte)\n" + +#: vms-alpha.c:6234 +#, c-format +msgid "STO_W (store word)\n" +msgstr "STO_W (armazenar word)\n" + +#: vms-alpha.c:6237 +#, c-format +msgid "STO_LW (store longword)\n" +msgstr "STO_LW (armazenar longword)\n" + +#: vms-alpha.c:6240 +#, c-format +msgid "STO_QW (store quadword)\n" +msgstr "STO_QW (armazenar quadword)\n" + +#: vms-alpha.c:6246 +#, c-format +msgid "STO_IMMR (store immediate repeat) %u bytes\n" +msgstr "STO_IMMR (armazenar repetição imediata) %u bytes\n" + +#: vms-alpha.c:6253 +#, c-format +msgid "STO_GBL (store global) %.*s\n" +msgstr "STO_GBL (armazenar global) %.*s\n" + +#: vms-alpha.c:6257 +#, c-format +msgid "STO_CA (store code address) %.*s\n" +msgstr "STO_CA (armazenar endereço de código) %.*s\n" + +#: vms-alpha.c:6261 +#, c-format +msgid "STO_RB (store relative branch)\n" +msgstr "STO_RB (armazenar ramo relativo)\n" + +#: vms-alpha.c:6264 +#, c-format +msgid "STO_AB (store absolute branch)\n" +msgstr "STO_AB (armazenar ramo absoluto)\n" + +#: vms-alpha.c:6267 +#, c-format +msgid "STO_OFF (store offset to psect)\n" +msgstr "STO_OFF (armazenar desvio para psect)\n" + +#: vms-alpha.c:6273 +#, c-format +msgid "STO_IMM (store immediate) %u bytes\n" +msgstr "STO_IMM (armazenar imediato) %u bytes\n" + +#: vms-alpha.c:6280 +#, c-format +msgid "STO_GBL_LW (store global longword) %.*s\n" +msgstr "STO_GBL_LW (armazenar longword global) %.*s\n" + +#: vms-alpha.c:6284 +#, c-format +msgid "STO_OFF (store LP with procedure signature)\n" +msgstr "STO_OFF ( global LP com assinatura de procedimento)\n" + +#: vms-alpha.c:6287 +#, c-format +msgid "STO_BR_GBL (store branch global) *todo*\n" +msgstr "STO_BR_GBL ( global ramo global) *todo*\n" + +#: vms-alpha.c:6290 +#, c-format +msgid "STO_BR_PS (store branch psect + offset) *todo*\n" +msgstr "STO_BR_PS ( global ramo psect + desvio) *todo*\n" + +#: vms-alpha.c:6294 +#, c-format +msgid "OPR_NOP (no-operation)\n" +msgstr "OPR_NOP (sem-operação)\n" + +#: vms-alpha.c:6297 +#, c-format +msgid "OPR_ADD (add)\n" +msgstr "OPR_ADD (adicionar)\n" + +#: vms-alpha.c:6300 +#, c-format +msgid "OPR_SUB (subtract)\n" +msgstr "OPR_SUB (subtrair)\n" + +#: vms-alpha.c:6303 +#, c-format +msgid "OPR_MUL (multiply)\n" +msgstr "OPR_MUL (multiplicar)\n" + +#: vms-alpha.c:6306 +#, c-format +msgid "OPR_DIV (divide)\n" +msgstr "OPR_DIV (dividir)\n" + +#: vms-alpha.c:6309 +#, c-format +msgid "OPR_AND (logical and)\n" +msgstr "OPR_AND (e lógico)\n" + +#: vms-alpha.c:6312 +#, c-format +msgid "OPR_IOR (logical inclusive or)\n" +msgstr "OPR_IOR (ou inclusivo lógico)\n" + +#: vms-alpha.c:6315 +#, c-format +msgid "OPR_EOR (logical exclusive or)\n" +msgstr "OPR_EOR (ou exclusivo lógico)\n" + +#: vms-alpha.c:6318 +#, c-format +msgid "OPR_NEG (negate)\n" +msgstr "OPR_NEG (negar)\n" + +#: vms-alpha.c:6321 +#, c-format +msgid "OPR_COM (complement)\n" +msgstr "OPR_COM (complementar)\n" + +#: vms-alpha.c:6324 +#, c-format +msgid "OPR_INSV (insert field)\n" +msgstr "OPR_INSV (inserir campo)\n" + +#: vms-alpha.c:6327 +#, c-format +msgid "OPR_ASH (arithmetic shift)\n" +msgstr "OPR_ASH (mudança aritmética)\n" + +#: vms-alpha.c:6330 +#, c-format +msgid "OPR_USH (unsigned shift)\n" +msgstr "OPR_USH (mudança não assinada)\n" + +#: vms-alpha.c:6333 +#, c-format +msgid "OPR_ROT (rotate)\n" +msgstr "OPR_ROT (rodar)\n" + +#: vms-alpha.c:6336 +#, c-format +msgid "OPR_SEL (select)\n" +msgstr "OPR_SEL (seleccionar)\n" + +#: vms-alpha.c:6339 +#, c-format +msgid "OPR_REDEF (redefine symbol to curr location)\n" +msgstr "OPR_REDEF (redefinir símbolo para localização actual)\n" + +#: vms-alpha.c:6342 +#, c-format +msgid "OPR_REDEF (define a literal)\n" +msgstr "OPR_REDEF (definir um literal)\n" + +#: vms-alpha.c:6346 +#, c-format +msgid "STC_LP (store cond linkage pair)\n" +msgstr "STC_LP (armazenar par de ligação condicional)\n" + +#: vms-alpha.c:6350 +#, c-format +msgid "STC_LP_PSB (store cond linkage pair + signature)\n" +msgstr "STC_LP_PSB (armazenar par de ligação condicional + assinatura)\n" + +#: vms-alpha.c:6352 +#, c-format +msgid " linkage index: %u, procedure: %.*s\n" +msgstr " índice de ligaão: %u, procedimento: %.*s\n" + +#: vms-alpha.c:6355 +#, c-format +msgid " signature: %.*s\n" +msgstr " assinatura: %.*s\n" + +#: vms-alpha.c:6358 +#, c-format +msgid "STC_GBL (store cond global)\n" +msgstr "STC_GBL (armazenar global condicional)\n" + +#: vms-alpha.c:6360 +#, c-format +msgid " linkage index: %u, global: %.*s\n" +msgstr " índice de ligação: %u, global: %.*s\n" + +#: vms-alpha.c:6364 +#, c-format +msgid "STC_GCA (store cond code address)\n" +msgstr "STC_GCA (armazenar endereço de código condicional)\n" + +#: vms-alpha.c:6366 +#, c-format +msgid " linkage index: %u, procedure name: %.*s\n" +msgstr " índice de ligação: %u, nome do procedimento: %.*s\n" + +#: vms-alpha.c:6370 +#, c-format +msgid "STC_PS (store cond psect + offset)\n" +msgstr "STC_PS (armazenar psect condicional + desvio)\n" + +#: vms-alpha.c:6373 +#, c-format +msgid " linkage index: %u, psect: %u, offset: 0x%08x %08x\n" +msgstr " índice de ligação: %u, psect: %u, desvio: 0x%08x %08x\n" + +#: vms-alpha.c:6380 +#, c-format +msgid "STC_NOP_GBL (store cond NOP at global addr)\n" +msgstr "STC_NOP_GBL (armazenar NOP condicional em endereço global)\n" + +#: vms-alpha.c:6384 +#, c-format +msgid "STC_NOP_PS (store cond NOP at psect + offset)\n" +msgstr "STC_NOP_PS (armazenar NOP condicional em psect + desvio)\n" + +#: vms-alpha.c:6388 +#, c-format +msgid "STC_BSR_GBL (store cond BSR at global addr)\n" +msgstr "STC_BSR_GBL (armazenar BSR condicional em endereço global)\n" + +#: vms-alpha.c:6392 +#, c-format +msgid "STC_BSR_PS (store cond BSR at psect + offset)\n" +msgstr "STC_BSR_PS (armazenar BSR condicional em psect + desvio)\n" + +#: vms-alpha.c:6396 +#, c-format +msgid "STC_LDA_GBL (store cond LDA at global addr)\n" +msgstr "STC_LDA_GBL (armazenar LDA condicional em endereço global)\n" + +#: vms-alpha.c:6400 +#, c-format +msgid "STC_LDA_PS (store cond LDA at psect + offset)\n" +msgstr "STC_LDA_PS (armazenar LDA condicional em psect + desvio)\n" + +#: vms-alpha.c:6404 +#, c-format +msgid "STC_BOH_GBL (store cond BOH at global addr)\n" +msgstr "STC_BOH_GBL (armazenar BOH condicional em endereço global)\n" + +#: vms-alpha.c:6408 +#, c-format +msgid "STC_BOH_PS (store cond BOH at psect + offset)\n" +msgstr "STC_BOH_PS (armazenar BOH condicional em psect + desvio)\n" + +#: vms-alpha.c:6413 +#, c-format +msgid "STC_NBH_GBL (store cond or hint at global addr)\n" +msgstr "STC_NBH_GBL (armazenar condicional ou dica em endereço global)\n" + +#: vms-alpha.c:6417 +#, c-format +msgid "STC_NBH_PS (store cond or hint at psect + offset)\n" +msgstr "STC_NBH_PS (armazenar condicional ou dica em psect + desvio)\n" + +#: vms-alpha.c:6421 +#, c-format +msgid "CTL_SETRB (set relocation base)\n" +msgstr "CTL_SETRB (definir base de relocalização)\n" + +#: vms-alpha.c:6427 +#, c-format +msgid "CTL_AUGRB (augment relocation base) %u\n" +msgstr "CTL_AUGRB (aumentar base de relocalização) %u\n" + +#: vms-alpha.c:6431 +#, c-format +msgid "CTL_DFLOC (define location)\n" +msgstr "CTL_DFLOC (definir localização)\n" + +#: vms-alpha.c:6434 +#, c-format +msgid "CTL_STLOC (set location)\n" +msgstr "CTL_STLOC (definir localização)\n" + +#: vms-alpha.c:6437 +#, c-format +msgid "CTL_STKDL (stack defined location)\n" +msgstr "CTL_STKDL (localização definida por stack)\n" + +#: vms-alpha.c:6440 vms-alpha.c:6864 vms-alpha.c:6990 +#, c-format +msgid "*unhandled*\n" +msgstr "*não gerido*\n" + +#: vms-alpha.c:6470 vms-alpha.c:6509 +#, c-format +msgid "cannot read GST record length\n" +msgstr "impossível ler tamanho do registo GST\n" + +#. Ill-formed. +#: vms-alpha.c:6491 +#, c-format +msgid "cannot find EMH in first GST record\n" +msgstr "impossível encontrar EMH no primeiro registo GST\n" + +#: vms-alpha.c:6517 +#, c-format +msgid "cannot read GST record header\n" +msgstr "impossível ler cabeçalho de registo GST\n" + +#: vms-alpha.c:6530 +#, c-format +msgid " corrupted GST\n" +msgstr " GST corrompido\n" + +#: vms-alpha.c:6538 +#, c-format +msgid "cannot read GST record\n" +msgstr "impossível ler registo GST\n" + +#: vms-alpha.c:6567 +#, c-format +msgid " unhandled EOBJ record type %u\n" +msgstr " tipo de registo EOBJ %u não gerido\n" + +#: vms-alpha.c:6591 +#, c-format +msgid " bitcount: %u, base addr: 0x%08x\n" +msgstr " bitcount: %u, endereço base: 0x%08x\n" + +#: vms-alpha.c:6605 +#, c-format +msgid " bitmap: 0x%08x (count: %u):\n" +msgstr " bitmap: 0x%08x (total: %u):\n" + +#: vms-alpha.c:6612 +#, c-format +msgid " %08x" +msgstr " %08x" + +#: vms-alpha.c:6638 +#, c-format +msgid " image %u (%u entries)\n" +msgstr " imagem %u (%u entradas)\n" + +#: vms-alpha.c:6644 +#, c-format +msgid " offset: 0x%08x, val: 0x%08x\n" +msgstr " desvio: 0x%08x, val: 0x%08x\n" + +#: vms-alpha.c:6666 +#, c-format +msgid " image %u (%u entries), offsets:\n" +msgstr " imagem %u (%u entradas), desvios:\n" + +#: vms-alpha.c:6673 +#, c-format +msgid " 0x%08x" +msgstr " 0x%08x" + +#. 64 bits. +#: vms-alpha.c:6795 +#, c-format +msgid "64 bits *unhandled*\n" +msgstr "64 bits *não geridos*\n" + +#: vms-alpha.c:6800 +#, c-format +msgid "class: %u, dtype: %u, length: %u, pointer: 0x%08x\n" +msgstr "classe: %u, dtype: %u, tamanho: %u, ponteiro: 0x%08x\n" + +#: vms-alpha.c:6811 +#, c-format +msgid "non-contiguous array of %s\n" +msgstr "matriz não contínua de %s\n" + +#: vms-alpha.c:6816 +#, c-format +msgid "dimct: %u, aflags: 0x%02x, digits: %u, scale: %u\n" +msgstr "dimct: %u, aflags: 0x%02x, dígitos: %u, escala: %u\n" + +#: vms-alpha.c:6821 +#, c-format +msgid "arsize: %u, a0: 0x%08x\n" +msgstr "arsize: %u, a0: 0x%08x\n" + +#: vms-alpha.c:6825 +#, c-format +msgid "Strides:\n" +msgstr "Passos:\n" + +#: vms-alpha.c:6835 +#, c-format +msgid "Bounds:\n" +msgstr "Vínculos:\n" + +#: vms-alpha.c:6841 +#, c-format +msgid "[%u]: Lower: %u, upper: %u\n" +msgstr "[%u]: inferior: %u, superior: %u\n" + +#: vms-alpha.c:6853 +#, c-format +msgid "unaligned bit-string of %s\n" +msgstr "cadeia de bits não alinhada de %s\n" + +#: vms-alpha.c:6858 +#, c-format +msgid "base: %u, pos: %u\n" +msgstr "base: %u, pos: %u\n" + +#: vms-alpha.c:6879 +#, c-format +msgid "vflags: 0x%02x, value: 0x%08x " +msgstr "vflags: 0x%02x, valor: 0x%08x " + +#: vms-alpha.c:6885 +#, c-format +msgid "(no value)\n" +msgstr "(sem valor)\n" + +#: vms-alpha.c:6888 +#, c-format +msgid "(not active)\n" +msgstr "(não activo)\n" + +#: vms-alpha.c:6891 +#, c-format +msgid "(not allocated)\n" +msgstr "(não alocada)\n" + +#: vms-alpha.c:6894 +#, c-format +msgid "(descriptor)\n" +msgstr "(descritor)\n" + +#: vms-alpha.c:6898 +#, c-format +msgid "(trailing value)\n" +msgstr "(valor inicial)\n" + +#: vms-alpha.c:6901 +#, c-format +msgid "(value spec follows)\n" +msgstr "(spec de valor segue)\n" + +#: vms-alpha.c:6904 +#, c-format +msgid "(at bit offset %u)\n" +msgstr "(no desvio de bit %u)\n" + +#: vms-alpha.c:6908 +#, c-format +msgid "(reg: %u, disp: %u, indir: %u, kind: " +msgstr "(reg: %u, disp: %u, indir: %u, tipo: " + +#: vms-alpha.c:6915 +msgid "literal" +msgstr "literal" + +#: vms-alpha.c:6918 +msgid "address" +msgstr "endereço" + +#: vms-alpha.c:6921 +msgid "desc" +msgstr "desc" + +#: vms-alpha.c:6924 +msgid "reg" +msgstr "reg" + +#: vms-alpha.c:6941 +#, c-format +msgid "len: %2u, kind: %2u " +msgstr "tam: %2u, tipo: %2u " + +#: vms-alpha.c:6947 +#, c-format +msgid "atomic, type=0x%02x %s\n" +msgstr "atómico, tipo=0x%02x %s\n" + +#: vms-alpha.c:6951 +#, c-format +msgid "indirect, defined at 0x%08x\n" +msgstr "indirecto, definido em 0x%08x\n" + +#: vms-alpha.c:6955 +#, c-format +msgid "typed pointer\n" +msgstr "ponteiro com tipo\n" + +#: vms-alpha.c:6959 +#, c-format +msgid "pointer\n" +msgstr "ponteiro\n" + +#: vms-alpha.c:6967 +#, c-format +msgid "array, dim: %u, bitmap: " +msgstr "matriz, dim: %u, bitmap: " + +#: vms-alpha.c:6974 +#, c-format +msgid "array descriptor:\n" +msgstr "descritor de matriz:\n" + +#: vms-alpha.c:6981 +#, c-format +msgid "type spec for element:\n" +msgstr "tipo de spec para elemento:\n" + +#: vms-alpha.c:6983 +#, c-format +msgid "type spec for subscript %u:\n" +msgstr "tipo de spec para subscrito %u:\n" + +#: vms-alpha.c:7001 +#, c-format +msgid "Debug symbol table:\n" +msgstr "Tabela de símbolos de depuração:\n" + +#: vms-alpha.c:7012 +#, c-format +msgid "cannot read DST header\n" +msgstr "impossível ler cabeçalho DST\n" + +#: vms-alpha.c:7018 +#, c-format +msgid " type: %3u, len: %3u (at 0x%08x): " +msgstr " tipo: %3u, tam: %3u (em 0x%08x): " + +#: vms-alpha.c:7032 +#, c-format +msgid "cannot read DST symbol\n" +msgstr "impossível ler símbolo DST\n" + +#: vms-alpha.c:7075 +#, c-format +msgid "standard data: %s\n" +msgstr "dados standard: %s\n" + +#: vms-alpha.c:7078 vms-alpha.c:7166 +#, c-format +msgid " name: %.*s\n" +msgstr " nome: %.*s\n" + +#: vms-alpha.c:7085 +#, c-format +msgid "modbeg\n" +msgstr "modbeg\n" + +#: vms-alpha.c:7087 +#, c-format +msgid " flags: %d, language: %u, major: %u, minor: %u\n" +msgstr " bands: %d, linguagem: %u, principal: %u, menor: %u\n" + +#: vms-alpha.c:7093 vms-alpha.c:7367 +#, c-format +msgid " module name: %.*s\n" +msgstr " nome módulo: %.*s\n" + +#: vms-alpha.c:7096 +#, c-format +msgid " compiler : %.*s\n" +msgstr " compilador : %.*s\n" + +#: vms-alpha.c:7101 +#, c-format +msgid "modend\n" +msgstr "modend\n" + +#: vms-alpha.c:7108 +msgid "rtnbeg\n" +msgstr "rtnbeg\n" + +#: vms-alpha.c:7110 +#, c-format +msgid " flags: %u, address: 0x%08x, pd-address: 0x%08x\n" +msgstr " bands: %u, endereço: 0x%08x, endereço pd: 0x%08x\n" + +#: vms-alpha.c:7115 +#, c-format +msgid " routine name: %.*s\n" +msgstr " nome da rotina: %.*s\n" + +#: vms-alpha.c:7123 +#, c-format +msgid "rtnend: size 0x%08x\n" +msgstr "rtnend: tamanho 0x%08x\n" + +#: vms-alpha.c:7131 +#, c-format +msgid "prolog: bkpt address 0x%08x\n" +msgstr "prólogo: bkpt endereço 0x%08x\n" + +#: vms-alpha.c:7140 +#, c-format +msgid "epilog: flags: %u, count: %u\n" +msgstr "epílogo: bandeiras: %u, total: %u\n" + +#: vms-alpha.c:7150 +#, c-format +msgid "blkbeg: address: 0x%08x, name: %.*s\n" +msgstr "blkbeg: endereço: 0x%08x, nome: %.*s\n" + +#: vms-alpha.c:7159 +#, c-format +msgid "blkend: size: 0x%08x\n" +msgstr "blkend: tamanho: 0x%08x\n" + +#: vms-alpha.c:7165 +#, c-format +msgid "typspec (len: %u)\n" +msgstr "typspec (tam: %u)\n" + +#: vms-alpha.c:7172 +#, c-format +msgid "septyp, name: %.*s\n" +msgstr "septyp, nome: %.*s\n" + +#: vms-alpha.c:7181 +#, c-format +msgid "recbeg: name: %.*s\n" +msgstr "recbeg: nome: %.*s\n" + +#: vms-alpha.c:7183 +#, c-format +msgid " len: %u bits\n" +msgstr " tam: %u bits\n" + +#: vms-alpha.c:7188 +#, c-format +msgid "recend\n" +msgstr "recend\n" + +#: vms-alpha.c:7192 +#, c-format +msgid "enumbeg, len: %u, name: %.*s\n" +msgstr "enumbeg, tam: %u, nome: %.*s\n" + +#: vms-alpha.c:7196 +#, c-format +msgid "enumelt, name: %.*s\n" +msgstr "enumelt, nome: %.*s\n" + +#: vms-alpha.c:7200 +#, c-format +msgid "enumend\n" +msgstr "enumend\n" + +#: vms-alpha.c:7205 +#, c-format +msgid "label, name: %.*s\n" +msgstr "etiqueta, nome: %.*s\n" + +#: vms-alpha.c:7207 +#, c-format +msgid " address: 0x%08x\n" +msgstr " endereço: 0x%08x\n" + +#: vms-alpha.c:7217 +#, c-format +msgid "discontiguous range (nbr: %u)\n" +msgstr "intervalo descontínuo (nr: %u)\n" + +#: vms-alpha.c:7220 +#, c-format +msgid " address: 0x%08x, size: %u\n" +msgstr " endereço: 0x%08x, tamanho: %u\n" + +#: vms-alpha.c:7230 +#, c-format +msgid "line num (len: %u)\n" +msgstr "nº linha (tam: %u)\n" + +#: vms-alpha.c:7247 +#, c-format +msgid "delta_pc_w %u\n" +msgstr "delta_pc_w %u\n" + +#: vms-alpha.c:7254 +#, c-format +msgid "incr_linum(b): +%u\n" +msgstr "incr_linum(b): +%u\n" + +#: vms-alpha.c:7260 +#, c-format +msgid "incr_linum_w: +%u\n" +msgstr "incr_linum_w: +%u\n" + +#: vms-alpha.c:7266 +#, c-format +msgid "incr_linum_l: +%u\n" +msgstr "incr_linum_l: +%u\n" + +#: vms-alpha.c:7272 +#, c-format +msgid "set_line_num(w) %u\n" +msgstr "set_line_num(w) %u\n" + +#: vms-alpha.c:7277 +#, c-format +msgid "set_line_num_b %u\n" +msgstr "set_line_num_b %u\n" + +#: vms-alpha.c:7282 +#, c-format +msgid "set_line_num_l %u\n" +msgstr "set_line_num_l %u\n" + +#: vms-alpha.c:7287 +#, c-format +msgid "set_abs_pc: 0x%08x\n" +msgstr "set_abs_pc: 0x%08x\n" + +#: vms-alpha.c:7291 +#, c-format +msgid "delta_pc_l: +0x%08x\n" +msgstr "delta_pc_l: +0x%08x\n" + +#: vms-alpha.c:7296 +#, c-format +msgid "term(b): 0x%02x" +msgstr "term(b): 0x%02x" + +#: vms-alpha.c:7298 +#, c-format +msgid " pc: 0x%08x\n" +msgstr " pc: 0x%08x\n" + +#: vms-alpha.c:7303 +#, c-format +msgid "term_w: 0x%04x" +msgstr "term_w: 0x%04x" + +#: vms-alpha.c:7305 +#, c-format +msgid " pc: 0x%08x\n" +msgstr " pc: 0x%08x\n" + +#: vms-alpha.c:7311 +#, c-format +msgid "delta pc +%-4d" +msgstr "delta pc +%-4d" + +#: vms-alpha.c:7315 +#, c-format +msgid " pc: 0x%08x line: %5u\n" +msgstr " pc: 0x%08x line: %5u\n" + +#: vms-alpha.c:7320 +#, c-format +msgid " *unhandled* cmd %u\n" +msgstr " cmd *não gerido* %u\n" + +#: vms-alpha.c:7335 +#, c-format +msgid "source (len: %u)\n" +msgstr "fonte (tam: %u)\n" + +#: vms-alpha.c:7350 +#, c-format +msgid " declfile: len: %u, flags: %u, fileid: %u\n" +msgstr " declfile: tam: %u, bands: %u, idfich: %u\n" + +#: vms-alpha.c:7355 +#, c-format +msgid " rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n" +msgstr " rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n" + +#: vms-alpha.c:7364 +#, c-format +msgid " filename : %.*s\n" +msgstr " nomeficheiro: %.*s\n" + +#: vms-alpha.c:7373 +#, c-format +msgid " setfile %u\n" +msgstr " setfile %u\n" + +#: vms-alpha.c:7378 vms-alpha.c:7383 +#, c-format +msgid " setrec %u\n" +msgstr " setrec %u\n" + +#: vms-alpha.c:7388 vms-alpha.c:7393 +#, c-format +msgid " setlnum %u\n" +msgstr " setlnum %u\n" + +#: vms-alpha.c:7398 vms-alpha.c:7403 +#, c-format +msgid " deflines %u\n" +msgstr " deflines %u\n" + +#: vms-alpha.c:7407 +#, c-format +msgid " formfeed\n" +msgstr " formfeed\n" + +#: vms-alpha.c:7411 +#, c-format +msgid " *unhandled* cmd %u\n" +msgstr " cmd *não gerido* %u\n" + +#: vms-alpha.c:7423 +#, c-format +msgid "*unhandled* dst type %u\n" +msgstr "tipo DST *não gerido* %u\n" + +#: vms-alpha.c:7455 +#, c-format +msgid "cannot read EIHD\n" +msgstr "impossível ler EIHD\n" + +#: vms-alpha.c:7459 +#, c-format +msgid "EIHD: (size: %u, nbr blocks: %u)\n" +msgstr "EIHD: (tamanho: %u, nº blocos: %u)\n" + +#: vms-alpha.c:7463 +#, c-format +msgid " majorid: %u, minorid: %u\n" +msgstr " majorid: %u, minorid: %u\n" + +#: vms-alpha.c:7471 +msgid "executable" +msgstr "executável" + +#: vms-alpha.c:7474 +msgid "linkable image" +msgstr "imagem ligável" + +#: vms-alpha.c:7481 +#, c-format +msgid " image type: %u (%s)" +msgstr " tipo de imagem: %u (%s)" + +#: vms-alpha.c:7487 +msgid "native" +msgstr "nativo" + +#: vms-alpha.c:7490 +msgid "CLI" +msgstr "CLI" + +#: vms-alpha.c:7497 +#, c-format +msgid ", subtype: %u (%s)\n" +msgstr ", sub-tipo: %u (%s)\n" + +#: vms-alpha.c:7504 +#, c-format +msgid " offsets: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n" +msgstr " desvios: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n" + +#: vms-alpha.c:7508 +#, c-format +msgid " fixup info rva: " +msgstr " fixup info rva: " + +#: vms-alpha.c:7510 +#, c-format +msgid ", symbol vector rva: " +msgstr ", vector símbolo rva: " + +#: vms-alpha.c:7513 +#, c-format +msgid "" +"\n" +" version array off: %u\n" +msgstr "" +"\n" +" matriz de versão off: %u\n" + +#: vms-alpha.c:7518 +#, c-format +msgid " img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n" +msgstr " total img I/O: %u, nº canais: %u, req pri: %08x%08x\n" + +#: vms-alpha.c:7524 +#, c-format +msgid " linker flags: %08x:" +msgstr " bands linker: %08x:" + +#: vms-alpha.c:7555 +#, c-format +msgid " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n" +msgstr " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n" + +#: vms-alpha.c:7561 +#, c-format +msgid " BPAGE: %u" +msgstr " BPAGE: %u" + +#: vms-alpha.c:7568 +#, c-format +msgid ", ext fixup offset: %u, no_opt psect off: %u" +msgstr ", desvio ext fixup: %u, no_opt psect off: %u" + +#: vms-alpha.c:7571 +#, c-format +msgid ", alias: %u\n" +msgstr ", aliás: %u\n" + +#: vms-alpha.c:7579 +#, c-format +msgid "system version array information:\n" +msgstr "informação da matriz de versão do sistema:\n" + +#: vms-alpha.c:7583 +#, c-format +msgid "cannot read EIHVN header\n" +msgstr "impossível ler cabeçalho EIHVN\n" + +#: vms-alpha.c:7593 +#, c-format +msgid "cannot read EIHVN version\n" +msgstr "impossível ler versão EIHVN\n" + +#: vms-alpha.c:7596 +#, c-format +msgid " %02u " +msgstr " %02u " + +#: vms-alpha.c:7600 +msgid "BASE_IMAGE " +msgstr "BASE_IMAGE " + +#: vms-alpha.c:7603 +msgid "MEMORY_MANAGEMENT" +msgstr "MEMORY_MANAGEMENT" + +#: vms-alpha.c:7606 +msgid "IO " +msgstr "IO " + +#: vms-alpha.c:7609 +msgid "FILES_VOLUMES " +msgstr "FILES_VOLUMES " + +#: vms-alpha.c:7612 +msgid "PROCESS_SCHED " +msgstr "PROCESS_SCHED " + +#: vms-alpha.c:7615 +msgid "SYSGEN " +msgstr "SYSGEN " + +#: vms-alpha.c:7618 +msgid "CLUSTERS_LOCKMGR " +msgstr "CLUSTERS_LOCKMGR " + +#: vms-alpha.c:7621 +msgid "LOGICAL_NAMES " +msgstr "LOGICAL_NAMES " + +#: vms-alpha.c:7624 +msgid "SECURITY " +msgstr "SECURITY " + +#: vms-alpha.c:7627 +msgid "IMAGE_ACTIVATOR " +msgstr "IMAGE_ACTIVATOR " + +#: vms-alpha.c:7630 +msgid "NETWORKS " +msgstr "NETWORKS " + +#: vms-alpha.c:7633 +msgid "COUNTERS " +msgstr "COUNTERS " + +#: vms-alpha.c:7636 +msgid "STABLE " +msgstr "STABLE " + +#: vms-alpha.c:7639 +msgid "MISC " +msgstr "MISC " + +#: vms-alpha.c:7642 +msgid "CPU " +msgstr "CPU " + +#: vms-alpha.c:7645 +msgid "VOLATILE " +msgstr "VOLATILE " + +#: vms-alpha.c:7648 +msgid "SHELL " +msgstr "SHELL " + +#: vms-alpha.c:7651 +msgid "POSIX " +msgstr "POSIX " + +#: vms-alpha.c:7654 +msgid "MULTI_PROCESSING " +msgstr "MULTI_PROCESSING " + +#: vms-alpha.c:7657 +msgid "GALAXY " +msgstr "GALAXY " + +#: vms-alpha.c:7660 +msgid "*unknown* " +msgstr "*desconhecido* " + +#: vms-alpha.c:7676 vms-alpha.c:7951 +#, c-format +msgid "cannot read EIHA\n" +msgstr "impossível ler EIHA\n" + +#: vms-alpha.c:7679 +#, c-format +msgid "Image activation: (size=%u)\n" +msgstr "Activação da imagem: (tam=%u)\n" + +#: vms-alpha.c:7682 +#, c-format +msgid " First address : 0x%08x 0x%08x\n" +msgstr " 1º endereço: 0x%08x 0x%08x\n" + +#: vms-alpha.c:7686 +#, c-format +msgid " Second address: 0x%08x 0x%08x\n" +msgstr " 2º endereço: 0x%08x 0x%08x\n" + +#: vms-alpha.c:7690 +#, c-format +msgid " Third address : 0x%08x 0x%08x\n" +msgstr " 3º endereço: 0x%08x 0x%08x\n" + +#: vms-alpha.c:7694 +#, c-format +msgid " Fourth address: 0x%08x 0x%08x\n" +msgstr " 4º endereço: 0x%08x 0x%08x\n" + +#: vms-alpha.c:7698 +#, c-format +msgid " Shared image : 0x%08x 0x%08x\n" +msgstr " Imagem partilhada: 0x%08x 0x%08x\n" + +#: vms-alpha.c:7709 +#, c-format +msgid "cannot read EIHI\n" +msgstr "impossível ler EIHI\n" + +#: vms-alpha.c:7713 +#, c-format +msgid "Image identification: (major: %u, minor: %u)\n" +msgstr "Identificação da imagem: (principal: %u, menor: %u)\n" + +#: vms-alpha.c:7716 +#, c-format +msgid " image name : %.*s\n" +msgstr " nome da imagem : %.*s\n" + +#: vms-alpha.c:7718 +#, c-format +msgid " link time : %s\n" +msgstr " hora de ligação : %s\n" + +#: vms-alpha.c:7720 +#, c-format +msgid " image ident : %.*s\n" +msgstr " ident imagem : %.*s\n" + +#: vms-alpha.c:7722 +#, c-format +msgid " linker ident : %.*s\n" +msgstr " ident linker : %.*s\n" + +#: vms-alpha.c:7724 +#, c-format +msgid " image build ident: %.*s\n" +msgstr " ident build imagem: %.*s\n" + +#: vms-alpha.c:7734 +#, c-format +msgid "cannot read EIHS\n" +msgstr "impossível ler EIHS\n" + +#: vms-alpha.c:7738 +#, c-format +msgid "Image symbol & debug table: (major: %u, minor: %u)\n" +msgstr "Tabela de símbolo de imagem e depuração: (principal: %u, menor: %u)\n" + +#: vms-alpha.c:7744 +#, c-format +msgid " debug symbol table : vbn: %u, size: %u (0x%x)\n" +msgstr " tabela de símbolo de depuração : vbn: %u, tamanho: %u (0x%x)\n" + +#: vms-alpha.c:7749 +#, c-format +msgid " global symbol table: vbn: %u, records: %u\n" +msgstr " tabela de símbolo global: vbn: %u, registos: %u\n" + +#: vms-alpha.c:7754 +#, c-format +msgid " debug module table : vbn: %u, size: %u\n" +msgstr " tabela de módulo de depuração: vbn: %u, tamanho: %u\n" + +#: vms-alpha.c:7767 +#, c-format +msgid "cannot read EISD\n" +msgstr "impossível ler EISD\n" + +#: vms-alpha.c:7778 +#, c-format +msgid "Image section descriptor: (major: %u, minor: %u, size: %u, offset: %u)\n" +msgstr "Descritor de secção de imagem: (principal: %u, menor: %u, tamanho: %u, desvio: %u)\n" + +#: vms-alpha.c:7786 +#, c-format +msgid " section: base: 0x%08x%08x size: 0x%08x\n" +msgstr " secção: base: 0x%08x%08x tamanho: 0x%08x\n" + +#: vms-alpha.c:7791 +#, c-format +msgid " flags: 0x%04x" +msgstr " bandeiras: 0x%04x" + +#: vms-alpha.c:7829 +#, c-format +msgid " vbn: %u, pfc: %u, matchctl: %u type: %u (" +msgstr " vbn: %u, pfc: %u, matchctl: %u tipo: %u (" + +#: vms-alpha.c:7835 +msgid "NORMAL" +msgstr "NORMAL" + +#: vms-alpha.c:7838 +msgid "SHRFXD" +msgstr "SHRFXD" + +#: vms-alpha.c:7841 +msgid "PRVFXD" +msgstr "PRVFXD" + +#: vms-alpha.c:7844 +msgid "SHRPIC" +msgstr "SHRPIC" + +#: vms-alpha.c:7847 +msgid "PRVPIC" +msgstr "PRVPIC" + +#: vms-alpha.c:7850 +msgid "USRSTACK" +msgstr "USRSTACK" + +#: vms-alpha.c:7856 +msgid ")\n" +msgstr ")\n" + +#: vms-alpha.c:7859 +#, c-format +msgid " ident: 0x%08x, name: %.*s\n" +msgstr " ident: 0x%08x, nome: %.*s\n" + +#: vms-alpha.c:7869 +#, c-format +msgid "cannot read DMT\n" +msgstr "impossível ler DMT\n" + +#: vms-alpha.c:7873 +#, c-format +msgid "Debug module table:\n" +msgstr "Tabela de módulo de depuração:\n" + +#: vms-alpha.c:7882 +#, c-format +msgid "cannot read DMT header\n" +msgstr "impossível ler cabeçalho DMT\n" + +#: vms-alpha.c:7888 +#, c-format +msgid " module offset: 0x%08x, size: 0x%08x, (%u psects)\n" +msgstr " desvio do módulo: 0x%08x, tamanho: 0x%08x, (%u psects)\n" + +#: vms-alpha.c:7898 +#, c-format +msgid "cannot read DMT psect\n" +msgstr "impossível ler psect DMT\n" + +#: vms-alpha.c:7902 +#, c-format +msgid " psect start: 0x%08x, length: %u\n" +msgstr " início psect: 0x%08x, tamanho: %u\n" + +#: vms-alpha.c:7915 +#, c-format +msgid "cannot read DST\n" +msgstr "impossível ler DST\n" + +#: vms-alpha.c:7925 +#, c-format +msgid "cannot read GST\n" +msgstr "impossível ler GST\n" + +#: vms-alpha.c:7929 +#, c-format +msgid "Global symbol table:\n" +msgstr "Tabela de símbolo global:\n" + +#: vms-alpha.c:7958 +#, c-format +msgid "Image activator fixup: (major: %u, minor: %u)\n" +msgstr "Fixup do activador de imagem: (principal: %u, menor: %u)\n" + +#: vms-alpha.c:7962 +#, c-format +msgid " iaflink : 0x%08x %08x\n" +msgstr " iaflink : 0x%08x %08x\n" + +#: vms-alpha.c:7966 +#, c-format +msgid " fixuplnk: 0x%08x %08x\n" +msgstr " fixuplnk: 0x%08x %08x\n" + +#: vms-alpha.c:7969 +#, c-format +msgid " size : %u\n" +msgstr " tamanho: %u\n" + +#: vms-alpha.c:7971 +#, c-format +msgid " flags: 0x%08x\n" +msgstr " bandeiras: 0x%08x\n" + +#: vms-alpha.c:7976 +#, c-format +msgid " qrelfixoff: %5u, lrelfixoff: %5u\n" +msgstr " qrelfixoff: %5u, lrelfixoff: %5u\n" + +#: vms-alpha.c:7981 +#, c-format +msgid " qdotadroff: %5u, ldotadroff: %5u\n" +msgstr " qdotadroff: %5u, ldotadroff: %5u\n" + +#: vms-alpha.c:7986 +#, c-format +msgid " codeadroff: %5u, lpfixoff : %5u\n" +msgstr " codeadroff: %5u, lpfixoff : %5u\n" + +#: vms-alpha.c:7989 +#, c-format +msgid " chgprtoff : %5u\n" +msgstr " chgprtoff : %5u\n" + +#: vms-alpha.c:7993 +#, c-format +msgid " shlstoff : %5u, shrimgcnt : %5u\n" +msgstr " shlstoff : %5u, shrimgcnt : %5u\n" + +#: vms-alpha.c:7996 +#, c-format +msgid " shlextra : %5u, permctx : %5u\n" +msgstr " shlextra : %5u, permctx : %5u\n" + +#: vms-alpha.c:7999 +#, c-format +msgid " base_va : 0x%08x\n" +msgstr " base_va : 0x%08x\n" + +#: vms-alpha.c:8001 +#, c-format +msgid " lppsbfixoff: %5u\n" +msgstr " lppsbfixoff: %5u\n" + +#: vms-alpha.c:8009 +#, c-format +msgid " Shareable images:\n" +msgstr " Imagens partilháveis:\n" + +#: vms-alpha.c:8014 +#, c-format +msgid " %u: size: %u, flags: 0x%02x, name: %.*s\n" +msgstr " %u: tam.: %u, bands: 0x%02x, nome: %.*s\n" + +#: vms-alpha.c:8021 +#, c-format +msgid " quad-word relocation fixups:\n" +msgstr " fixups de relocalização de quad-word:\n" + +#: vms-alpha.c:8026 +#, c-format +msgid " long-word relocation fixups:\n" +msgstr " fixups de relocalização de long-word:\n" + +#: vms-alpha.c:8031 +#, c-format +msgid " quad-word .address reference fixups:\n" +msgstr " fixups de referência de .address de quad-word:\n" + +#: vms-alpha.c:8036 +#, c-format +msgid " long-word .address reference fixups:\n" +msgstr " fixups de referência de .address de long-word:\n" + +#: vms-alpha.c:8041 +#, c-format +msgid " Code Address Reference Fixups:\n" +msgstr " Fixups de referência de endereço de código:\n" + +#: vms-alpha.c:8046 +#, c-format +msgid " Linkage Pairs Reference Fixups:\n" +msgstr "Fixups de referência de pares de ligação:\n" + +#: vms-alpha.c:8055 +#, c-format +msgid " Change Protection (%u entries):\n" +msgstr " Alterar protecção (%u entradas):\n" + +#: vms-alpha.c:8061 +#, c-format +msgid " base: 0x%08x %08x, size: 0x%08x, prot: 0x%08x " +msgstr " base: 0x%08x %08x, tam.: 0x%08x, prot: 0x%08x " + +#. FIXME: we do not yet support relocatable link. It is not obvious +#. how to do it for debug infos. +#: vms-alpha.c:8901 +msgid "%P: relocatable link is not supported\n" +msgstr "%P: ligação relocalizável não suportada\n" + +#: vms-alpha.c:8972 +#, c-format +msgid "%P: multiple entry points: in modules %B and %B\n" +msgstr "%P: múltiplos pontos de entrada: nos módulos %B e %B\n" + +#: vms-lib.c:1445 +#, c-format +msgid "could not open shared image '%s' from '%s'" +msgstr "impossível abrir imagem partilhada \"%s\" de \"%s\"" + +#: vms-misc.c:361 +msgid "_bfd_vms_output_counted called with zero bytes" +msgstr "_bfd_vms_output_counted chamado com zero bytes" + +#: vms-misc.c:366 +msgid "_bfd_vms_output_counted called with too many bytes" +msgstr "_bfd_vms_output_counted chamado com demasiados bytes" + +#: xcofflink.c:832 +msgid "%B: XCOFF shared object when not producing XCOFF output" +msgstr "%B: objecto partilhado XCOFF sem produzir saída XCOFF" + +#: xcofflink.c:853 +msgid "%B: dynamic object with no .loader section" +msgstr "%B: objecto dinâmico sem secção .loader" + +#: xcofflink.c:1413 +#, c-format +msgid "%B: `%s' has line numbers but no enclosing section" +msgstr "%B: \"%s\" tem números de linha mas sem secção envolvente" + +#: xcofflink.c:1466 +#, c-format +msgid "%B: class %d symbol `%s' has no aux entries" +msgstr "%B: classe %d símbolo \"%s\" não tem entradas aux" + +#: xcofflink.c:1489 +#, c-format +msgid "%B: symbol `%s' has unrecognized csect type %d" +msgstr "%B: símbolo \"%s\" tem tipo csect %d não reconhecido" + +#: xcofflink.c:1502 +#, c-format +msgid "%B: bad XTY_ER symbol `%s': class %d scnum %d scnlen %Ld" +msgstr "%B: mau símbolo XTY_ER \"%s\": classe %d scnum %d scnlen %Ld" + +#: xcofflink.c:1532 +#, c-format +msgid "%B: XMC_TC0 symbol `%s' is class %d scnlen %Ld" +msgstr "%B: XMC_TC0 símbolo \"%s\" é classe %d scnlen %Ld" + +#: xcofflink.c:1679 +#, c-format +msgid "%B: csect `%s' not in enclosing section" +msgstr "%B: csect \"%s\" não está em secção envolvente" + +#: xcofflink.c:1787 +#, c-format +msgid "%B: misplaced XTY_LD `%s'" +msgstr "%B: XTY_LD \"%s\" mal colocado" + +#: xcofflink.c:2108 +#, c-format +msgid "%B: reloc %s:%Ld not in csect" +msgstr "%B: reloc %s:%Ld fora de csect" + +#: xcofflink.c:3198 +#, c-format +msgid "%s: no such symbol" +msgstr "%s: sem tal símbolo" + +#: xcofflink.c:3303 +#, c-format +msgid "warning: attempt to export undefined symbol `%s'" +msgstr "aviso: tentativa de exportar símbolo \"%s\" indefinido" + +#: xcofflink.c:3682 +msgid "error: undefined symbol __rtinit" +msgstr "erro: símbolo __rtinit indefinido" + +#: xcofflink.c:4062 +#, c-format +msgid "%B: loader reloc in unrecognized section `%s'" +msgstr "%B: reloc loader em secção \"%s\" não reconhecida" + +#: xcofflink.c:4074 +#, c-format +msgid "%B: `%s' in loader reloc but not loader sym" +msgstr "%B: \"%s\" em reloc loader mas sem símbolo loader" + +#: xcofflink.c:4091 +#, c-format +msgid "%B: loader reloc in read-only section %A" +msgstr "%B: reloc loader em secção só de leitura %A" + +#: xcofflink.c:5115 +#, c-format +msgid "TOC overflow: %#Lx > 0x10000; try -mminimal-toc when compiling" +msgstr "Transporte TOC: %#Lx > 0x10000; tente -mminimal-toc ao compilar" + +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:1890 +#, c-format +msgid "Invalid AArch64 reloc number: %d" +msgstr "Número de reloc AArch64 inválido: %d" + +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:4779 +msgid "%B: error: Erratum 835769 stub out of range (input file too large)" +msgstr "%B: erro: Erratum 835769 fictício fora do intervalo (ficheiro de entrada muito grande)" + +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:4860 +msgid "%B: error: Erratum 843419 stub out of range (input file too large)" +msgstr "%B: erro: Erratum 843419 fictício fora do intervalo (ficheiro de entrada muito grande)" + +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:5366 +#, c-format +msgid "%B: relocation %s against symbol `%s' which may bind externally can not be used when making a shared object; recompile with -fPIC" +msgstr "%B: relocalização %s contra símbolo \"%s\" que pode ligar externamente não pode ser usada ao fazer um objecto partilhado; recompile com -fPIC" + +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:5457 +#, c-format +msgid "%B: Local symbol descriptor table be NULL when applying relocation %s against local symbol" +msgstr "%B: tabela de descritor de símbolo local é NULL ao aplicar relocalização %s contra símbolo local" + +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6479 +msgid "Too many GOT entries for -fpic, please recompile with -fPIC" +msgstr "Demasiadas entradas GOT para -fpic, recompile com -fPIC" + +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6507 +msgid "One possible cause of this error is that the symbol is being referenced in the indicated code as if it had a larger alignment than was declared where it was defined." +msgstr "Uma causa possível deste erro é o símbolo ser referenciado no código indicado como se tivesse um alinhamento maior do que aquele que foi declarado na definição." + +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:7084 +#, c-format +msgid "%B: relocation %s against `%s' can not be used when making a shared object" +msgstr "%B: relocalização %s contra \"%s\" não pode ser usada ao fazer um objecto partilhado" + +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2570 +msgid "" +"%B: ABI is incompatible with that of the selected emulation:\n" +" target emulation `%s' does not match `%s'" +msgstr "" +"%B: ABI é incompatível com aquele da emulação seleccionada:\n" +" emulação alvo \"%s\" não corresponde a \"%s\"" + +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2590 +msgid "%B: can't link hard-float modules with soft-float modules" +msgstr "%B: impossível ligar módulos hard-float com módulos soft-float" + +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:3070 +msgid "%B(%A+0x%lx): %d bytes required for alignment to %d-byte boundary, but only %d present" +msgstr "%B(%A+0x%lx): %d bytes requeridos para alinhamento com limite %d-byte, mas só há %d presentes" + +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:3136 +msgid "%B(%A+0x%lx): Unable to clear RISCV_PCREL_HI20 relocfor cooresponding RISCV_PCREL_LO12 reloc" +msgstr "%B(%A+0x%lx): impossível limpar RISCV_PCREL_HI20 relocfor corespondente a reloc RISCV_PCREL_LO12" + +#: peigen.c:157 pepigen.c:157 pex64igen.c:157 +msgid "%B: unable to find name for empty section" +msgstr "%B: impossível encontrar nome para secção vazia" + +#: peigen.c:183 pepigen.c:183 pex64igen.c:183 +msgid "%B: out of memory creating name for empty section" +msgstr "%B: sem memória ao criar nome para secção vazia" + +#: peigen.c:194 pepigen.c:194 pex64igen.c:194 +msgid "%B: unable to create fake empty section" +msgstr "%B: impossível criar secção vazia falsa" + +#: peigen.c:532 pepigen.c:532 pex64igen.c:532 +msgid "%B: aout header specifies an invalid number of data-directory entries: %ld" +msgstr "%B: cabeçalho aout especifica um número inválido de entradas data-directory: %ld" + +#: peigen.c:1089 pepigen.c:1089 pex64igen.c:1089 +#, c-format +msgid "%B: line number overflow: 0x%lx > 0xffff" +msgstr "%B: transporte de nº de linha: 0x%lx > 0xffff" + +#: peigen.c:1233 pepigen.c:1233 pex64igen.c:1233 +msgid "Export Directory [.edata (or where ever we found it)]" +msgstr "Pasta de exportação [.edata (ou onde o encontrámos)]" + +#: peigen.c:1234 pepigen.c:1234 pex64igen.c:1234 +msgid "Import Directory [parts of .idata]" +msgstr "Pasta de importação [partes de .idata]" + +#: peigen.c:1235 pepigen.c:1235 pex64igen.c:1235 +msgid "Resource Directory [.rsrc]" +msgstr "Pasta de recursos [.rsrc]" + +#: peigen.c:1236 pepigen.c:1236 pex64igen.c:1236 +msgid "Exception Directory [.pdata]" +msgstr "Pasta de excepções [.pdata]" + +#: peigen.c:1237 pepigen.c:1237 pex64igen.c:1237 +msgid "Security Directory" +msgstr "Pasta de segurança" + +#: peigen.c:1238 pepigen.c:1238 pex64igen.c:1238 +msgid "Base Relocation Directory [.reloc]" +msgstr "Pasta de relocalização base [.reloc]" + +#: peigen.c:1239 pepigen.c:1239 pex64igen.c:1239 +msgid "Debug Directory" +msgstr "Pasta de depuração" + +#: peigen.c:1240 pepigen.c:1240 pex64igen.c:1240 +msgid "Description Directory" +msgstr "Pasta de descrição" + +#: peigen.c:1241 pepigen.c:1241 pex64igen.c:1241 +msgid "Special Directory" +msgstr "Pasta especial" + +#: peigen.c:1242 pepigen.c:1242 pex64igen.c:1242 +msgid "Thread Storage Directory [.tls]" +msgstr "Pasta de armazenamento de Thread [.tls]" + +#: peigen.c:1243 pepigen.c:1243 pex64igen.c:1243 +msgid "Load Configuration Directory" +msgstr "Pasta de configuração de carregamento" + +#: peigen.c:1244 pepigen.c:1244 pex64igen.c:1244 +msgid "Bound Import Directory" +msgstr "Pasta de importação vinculada" + +#: peigen.c:1245 pepigen.c:1245 pex64igen.c:1245 +msgid "Import Address Table Directory" +msgstr "Pasta de tabela de endereços de importação" + +#: peigen.c:1246 pepigen.c:1246 pex64igen.c:1246 +msgid "Delay Import Directory" +msgstr "Pasta de atraso de importação" + +#: peigen.c:1247 pepigen.c:1247 pex64igen.c:1247 +msgid "CLR Runtime Header" +msgstr "Cabeçalho de execução CLR" + +#: peigen.c:1248 pepigen.c:1248 pex64igen.c:1248 +msgid "Reserved" +msgstr "Reservado" + +#: peigen.c:1308 pepigen.c:1308 pex64igen.c:1308 +#, c-format +msgid "" +"\n" +"There is an import table, but the section containing it could not be found\n" +msgstr "" +"\n" +"Há uma tabela de importação, mas a secção que a contém não pôde ser encontrada\n" + +#: peigen.c:1314 pepigen.c:1314 pex64igen.c:1314 +#, c-format +msgid "" +"\n" +"There is an import table in %s, but that section has no contents\n" +msgstr "" +"\n" +"Há uma tabela de importação em %s, mas essa secção não tem conteúdo\n" + +#: peigen.c:1321 pepigen.c:1321 pex64igen.c:1321 +#, c-format +msgid "" +"\n" +"There is an import table in %s at 0x%lx\n" +msgstr "" +"\n" +"Há uma tabela de importação em %s em 0x%lx\n" + +#: peigen.c:1363 pepigen.c:1363 pex64igen.c:1363 +#, c-format +msgid "" +"\n" +"Function descriptor located at the start address: %04lx\n" +msgstr "" +"\n" +"Descritor de função localizado no endereço inicial: %04lx\n" + +#: peigen.c:1367 pepigen.c:1367 pex64igen.c:1367 +#, c-format +msgid "\tcode-base %08lx toc (loadable/actual) %08lx/%08lx\n" +msgstr "\tcode-base %08lx toc (carregável/actual) %08lx/%08lx\n" + +#: peigen.c:1375 pepigen.c:1375 pex64igen.c:1375 +#, c-format +msgid "" +"\n" +"No reldata section! Function descriptor not decoded.\n" +msgstr "" +"\n" +"Sem secção reldata! Descritor de função não descodificado.\n" + +#: peigen.c:1380 pepigen.c:1380 pex64igen.c:1380 +#, c-format +msgid "" +"\n" +"The Import Tables (interpreted %s section contents)\n" +msgstr "" +"\n" +"As tabelas de importação (interpretado %s conteúdo de secção)\n" + +#: peigen.c:1383 pepigen.c:1383 pex64igen.c:1383 +#, c-format +msgid "" +" vma: Hint Time Forward DLL First\n" +" Table Stamp Chain Name Thunk\n" +msgstr "" +" vma: Dica Hora Avanço DLL Prim.\n" +" Tabela Selo Cadeia Nome Thunk\n" + +#: peigen.c:1433 pepigen.c:1433 pex64igen.c:1433 +#, c-format +msgid "" +"\n" +"\tDLL Name: %.*s\n" +msgstr "" +"\n" +"\tNome DLL: %.*s\n" + +#: peigen.c:1449 pepigen.c:1449 pex64igen.c:1449 +#, c-format +msgid "\tvma: Hint/Ord Member-Name Bound-To\n" +msgstr "\tvma: Dica/Ord Nome-membro ligado a\n" + +#: peigen.c:1474 pepigen.c:1474 pex64igen.c:1474 +#, c-format +msgid "" +"\n" +"There is a first thunk, but the section containing it could not be found\n" +msgstr "" +"\n" +"Há um primeiro thunk, mas a secção que o contém não pôde ser encontrada\n" + +#: peigen.c:1518 peigen.c:1557 pepigen.c:1518 pepigen.c:1557 pex64igen.c:1518 +#: pex64igen.c:1557 +#, c-format +msgid "\t" +msgstr "\t" + +#: peigen.c:1650 pepigen.c:1650 pex64igen.c:1650 +#, c-format +msgid "" +"\n" +"There is an export table, but the section containing it could not be found\n" +msgstr "" +"\n" +"Há uma tabela de exportação, mas a secção que a contém não pôde ser encontrada\n" + +#: peigen.c:1656 pepigen.c:1656 pex64igen.c:1656 +#, c-format +msgid "" +"\n" +"There is an export table in %s, but that section has no contents\n" +msgstr "" +"\n" +"Há uma tabela de exportação em %s, mas essa secção não tem conteúdo\n" + +#: peigen.c:1666 pepigen.c:1666 pex64igen.c:1666 +#, c-format +msgid "" +"\n" +"There is an export table in %s, but it does not fit into that section\n" +msgstr "" +"\n" +"Há uma tabela de exportação em %s, mas não serve nessa secção\n" + +#: peigen.c:1677 pepigen.c:1677 pex64igen.c:1677 +#, c-format +msgid "" +"\n" +"There is an export table in %s, but it is too small (%d)\n" +msgstr "" +"\n" +"Há uma tabela de exportação em %s, mas é demasiado pequena (%d)\n" + +#: peigen.c:1683 pepigen.c:1683 pex64igen.c:1683 +#, c-format +msgid "" +"\n" +"There is an export table in %s at 0x%lx\n" +msgstr "" +"\n" +"Há uma tabela de exportação em %s em 0x%lx\n" + +#: peigen.c:1711 pepigen.c:1711 pex64igen.c:1711 +#, c-format +msgid "" +"\n" +"The Export Tables (interpreted %s section contents)\n" +"\n" +msgstr "" +"\n" +"As tabelas de exportação (interpretado %s conteúdo de secção)\n" +"\n" + +#: peigen.c:1715 pepigen.c:1715 pex64igen.c:1715 +#, c-format +msgid "Export Flags \t\t\t%lx\n" +msgstr "Bandeiras de exportação \t\t\t%lx\n" + +#: peigen.c:1718 pepigen.c:1718 pex64igen.c:1718 +#, c-format +msgid "Time/Date stamp \t\t%lx\n" +msgstr "Selo Hora/Data \t\t%lx\n" + +#: peigen.c:1722 pepigen.c:1722 pex64igen.c:1722 +#, c-format +msgid "Major/Minor \t\t\t%d/%d\n" +msgstr "Principal/Menor \t\t\t%d/%d\n" + +#: peigen.c:1725 pepigen.c:1725 pex64igen.c:1725 +#, c-format +msgid "Name \t\t\t\t" +msgstr "Nome \t\t\t\t" + +#: peigen.c:1736 pepigen.c:1736 pex64igen.c:1736 +#, c-format +msgid "Ordinal Base \t\t\t%ld\n" +msgstr "Base ordinal \t\t\t%ld\n" + +#: peigen.c:1739 pepigen.c:1739 pex64igen.c:1739 +#, c-format +msgid "Number in:\n" +msgstr "Número em:\n" + +#: peigen.c:1742 pepigen.c:1742 pex64igen.c:1742 +#, c-format +msgid "\tExport Address Table \t\t%08lx\n" +msgstr "\tTabela end. exportação \t\t%08lx\n" + +#: peigen.c:1746 pepigen.c:1746 pex64igen.c:1746 +#, c-format +msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n" +msgstr "\t[Nome Ponteiro/Ordinal] Tabela\t%08lx\n" + +#: peigen.c:1749 pepigen.c:1749 pex64igen.c:1749 +#, c-format +msgid "Table Addresses\n" +msgstr "Endereços da tabela\n" + +#: peigen.c:1752 pepigen.c:1752 pex64igen.c:1752 +#, c-format +msgid "\tExport Address Table \t\t" +msgstr "\tTabela end. exportação \t\t" + +#: peigen.c:1757 pepigen.c:1757 pex64igen.c:1757 +#, c-format +msgid "\tName Pointer Table \t\t" +msgstr "\tTabela Nome Ponteiro \t\t" + +#: peigen.c:1762 pepigen.c:1762 pex64igen.c:1762 +#, c-format +msgid "\tOrdinal Table \t\t\t" +msgstr "\tTabela ordinal \t\t\t" + +#: peigen.c:1776 pepigen.c:1776 pex64igen.c:1776 +#, c-format +msgid "" +"\n" +"Export Address Table -- Ordinal Base %ld\n" +msgstr "" +"\n" +"Tabela end. exportação -- Base ordinal %ld\n" + +#: peigen.c:1785 pepigen.c:1785 pex64igen.c:1785 +#, c-format +msgid "\tInvalid Export Address Table rva (0x%lx) or entry count (0x%lx)\n" +msgstr "\trva de tabela de end. de exportação (0x%lx) ou total de entradas (0x%lx) inválidos\n" + +#: peigen.c:1804 pepigen.c:1804 pex64igen.c:1804 +msgid "Forwarder RVA" +msgstr "Reencaminhador RVA" + +#: peigen.c:1816 pepigen.c:1816 pex64igen.c:1816 +msgid "Export RVA" +msgstr "Exportação RVA" + +#: peigen.c:1823 pepigen.c:1823 pex64igen.c:1823 +#, c-format +msgid "" +"\n" +"[Ordinal/Name Pointer] Table\n" +msgstr "" +"\n" +"Tabela [Ordinal/Nome Ponteiro]\n" + +#: peigen.c:1831 pepigen.c:1831 pex64igen.c:1831 +#, c-format +msgid "\tInvalid Name Pointer Table rva (0x%lx) or entry count (0x%lx)\n" +msgstr "\trva de tabela de ponteiro de nome (0x%lx) ou total de entradas (0x%lx) inválidos\n" + +#: peigen.c:1838 pepigen.c:1838 pex64igen.c:1838 +#, c-format +msgid "\tInvalid Ordinal Table rva (0x%lx) or entry count (0x%lx)\n" +msgstr "\trva de tabela ordinal (0x%lx) ou total de entradas (0x%lx) inválidos\n" + +#: peigen.c:1852 pepigen.c:1852 pex64igen.c:1852 +#, c-format +msgid "\t[%4ld] \n" +msgstr "\t[%4ld] \n" + +#: peigen.c:1906 peigen.c:2103 pepigen.c:1906 pepigen.c:2103 pex64igen.c:1906 +#: pex64igen.c:2103 +#, c-format +msgid "Warning, .pdata section size (%ld) is not a multiple of %d\n" +msgstr "Aviso, .tamanho da secção pdata (%ld) não é múltiplo de %d\n" + +#: peigen.c:1910 peigen.c:2107 pepigen.c:1910 pepigen.c:2107 pex64igen.c:1910 +#: pex64igen.c:2107 +#, c-format +msgid "" +"\n" +"The Function Table (interpreted .pdata section contents)\n" +msgstr "" +"\n" +"A tabela de função (interpretado conteúdo de secção .pdata)\n" + +#: peigen.c:1913 pepigen.c:1913 pex64igen.c:1913 +#, c-format +msgid " vma:\t\t\tBegin Address End Address Unwind Info\n" +msgstr " vma:\t\t\tEnd. inicial End. final Info Unwind\n" + +#: peigen.c:1915 pepigen.c:1915 pex64igen.c:1915 +#, c-format +msgid "" +" vma:\t\tBegin End EH EH PrologEnd Exception\n" +" \t\tAddress Address Handler Data Address Mask\n" +msgstr "" +" vma:\t\tInício Fim EH EH PrólogFim Excepção\n" +" \t\tEndereço Endereço Gestor Dados Endereço Máscara\n" + +#: peigen.c:1928 pepigen.c:1928 pex64igen.c:1928 +#, c-format +msgid "Virtual size of .pdata section (%ld) larger than real size (%ld)\n" +msgstr "Tamanho virtual da secção .pdata (%ld) maior que o tamanho real (%ld)\n" + +#: peigen.c:1998 pepigen.c:1998 pex64igen.c:1998 +#, c-format +msgid " Register save millicode" +msgstr " Register save millicode" + +#: peigen.c:2001 pepigen.c:2001 pex64igen.c:2001 +#, c-format +msgid " Register restore millicode" +msgstr " Register restore millicode" + +#: peigen.c:2004 pepigen.c:2004 pex64igen.c:2004 +#, c-format +msgid " Glue code sequence" +msgstr " Colar sequência de código" + +#: peigen.c:2109 pepigen.c:2109 pex64igen.c:2109 +#, c-format +msgid "" +" vma:\t\tBegin Prolog Function Flags Exception EH\n" +" \t\tAddress Length Length 32b exc Handler Data\n" +msgstr "" +" vma:\t\tInício Prólogo Função Bands Excepção EH\n" +" \t\tEndereço Tam. Tam. 32b exc Gestor Dados\n" + +#: peigen.c:2231 pepigen.c:2231 pex64igen.c:2231 +#, c-format +msgid "" +"\n" +"\n" +"PE File Base Relocations (interpreted .reloc section contents)\n" +msgstr "" +"\n" +"\n" +"Relocalizações base de ficheiros PE (interpretado conteúdo de secção .reloc)\n" + +#: peigen.c:2261 pepigen.c:2261 pex64igen.c:2261 +#, c-format +msgid "" +"\n" +"Virtual Address: %08lx Chunk size %ld (0x%lx) Number of fixups %ld\n" +msgstr "" +"\n" +"Endereço virtual: %08lx, tamanho do pedaço %ld (0x%lx), número de fixups %ld\n" + +#: peigen.c:2279 pepigen.c:2279 pex64igen.c:2279 +#, c-format +msgid "\treloc %4d offset %4x [%4lx] %s" +msgstr "\treloc %4d desvio %4x [%4lx] %s" + +#: peigen.c:2340 pepigen.c:2340 pex64igen.c:2340 +#, c-format +msgid "%03x %*.s Entry: " +msgstr "%03x %*.s Entrada: " + +#: peigen.c:2364 pepigen.c:2364 pex64igen.c:2364 +#, c-format +msgid "name: [val: %08lx len %d]: " +msgstr "nome: [val: %08lx tam %d]: " + +#: peigen.c:2384 pepigen.c:2384 pex64igen.c:2384 +#, c-format +msgid "\n" +msgstr "\n" + +#: peigen.c:2394 pepigen.c:2394 pex64igen.c:2394 +#, c-format +msgid "\n" +msgstr "\n" + +#: peigen.c:2399 pepigen.c:2399 pex64igen.c:2399 +#, c-format +msgid "ID: %#08lx" +msgstr "ID: %#08lx" + +#: peigen.c:2402 pepigen.c:2402 pex64igen.c:2402 +#, c-format +msgid ", Value: %#08lx\n" +msgstr ", Valor: %#08lx\n" + +#: peigen.c:2424 pepigen.c:2424 pex64igen.c:2424 +#, c-format +msgid "%03x %*.s Leaf: Addr: %#08lx, Size: %#08lx, Codepage: %d\n" +msgstr "%03x %*.s Folha: End.: %#08lx, Tamanho: %#08lx, Codepage: %d\n" + +#: peigen.c:2466 pepigen.c:2466 pex64igen.c:2466 +#, c-format +msgid "\n" +msgstr "\n" + +#: peigen.c:2474 pepigen.c:2474 pex64igen.c:2474 +#, c-format +msgid " Table: Char: %d, Time: %08lx, Ver: %d/%d, Num Names: %d, IDs: %d\n" +msgstr " Tabela: Car.: %d, Hora: %08lx, Ver: %d/%d, Nomes Núm: %d, IDs: %d\n" + +#: peigen.c:2563 pepigen.c:2563 pex64igen.c:2563 +#, c-format +msgid "Corrupt .rsrc section detected!\n" +msgstr "Secção .rsrc corrompida detectada!\n" + +#: peigen.c:2587 pepigen.c:2587 pex64igen.c:2587 +#, c-format +msgid "" +"\n" +"WARNING: Extra data in .rsrc section - it will be ignored by Windows:\n" +msgstr "" +"\n" +"AVISO: dados extra em secção .rsrc - será ignorada pelo Windows:\n" + +#: peigen.c:2593 pepigen.c:2593 pex64igen.c:2593 +#, c-format +msgid " String table starts at offset: %#03x\n" +msgstr " Tabela de cadeia começa no desvio: %#03x\n" + +#: peigen.c:2596 pepigen.c:2596 pex64igen.c:2596 +#, c-format +msgid " Resources start at offset: %#03x\n" +msgstr " Recursos começam no desvio: %#03x\n" + +#: peigen.c:2648 pepigen.c:2648 pex64igen.c:2648 +#, c-format +msgid "" +"\n" +"There is a debug directory, but the section containing it could not be found\n" +msgstr "" +"\n" +"Há uma pasta de depuração, mas a secção que a contém não pôde ser encontrada\n" + +#: peigen.c:2654 pepigen.c:2654 pex64igen.c:2654 +#, c-format +msgid "" +"\n" +"There is a debug directory in %s, but that section has no contents\n" +msgstr "" +"\n" +"Há uma pasta de depuração em %s, mas essa secção não tem conteúdo\n" + +#: peigen.c:2661 pepigen.c:2661 pex64igen.c:2661 +#, c-format +msgid "" +"\n" +"Error: section %s contains the debug data starting address but it is too small\n" +msgstr "" +"\n" +"Erro: secção %s contém o endereço dos dados de depuração, mas é muito pequena\n" + +#: peigen.c:2666 pepigen.c:2666 pex64igen.c:2666 +#, c-format +msgid "" +"\n" +"There is a debug directory in %s at 0x%lx\n" +"\n" +msgstr "" +"\n" +"Há uma pasta de depuração em %s em 0x%lx\n" +"\n" + +#: peigen.c:2673 pepigen.c:2673 pex64igen.c:2673 +#, c-format +msgid "The debug data size field in the data directory is too big for the section" +msgstr "O campo de tamanho dos dados de depuração na pasta de dados é demasiado grande para a secção" + +#: peigen.c:2678 pepigen.c:2678 pex64igen.c:2678 +#, c-format +msgid "Type Size Rva Offset\n" +msgstr "Tipo Tam. Rva Desvio\n" + +#: peigen.c:2726 pepigen.c:2726 pex64igen.c:2726 +#, c-format +msgid "(format %c%c%c%c signature %s age %ld)\n" +msgstr "(formato %c%c%c%c assinatura %s idade %ld)\n" + +#: peigen.c:2734 pepigen.c:2734 pex64igen.c:2734 +#, c-format +msgid "The debug directory size is not a multiple of the debug directory entry size\n" +msgstr "O tamanho da pasta de depuração não é múltiplo do tamanho da entrada da pasta de depuração\n" + +#. The MS dumpbin program reportedly ands with 0xff0f before +#. printing the characteristics field. Not sure why. No reason to +#. emulate it here. +#: peigen.c:2754 pepigen.c:2754 pex64igen.c:2754 +#, c-format +msgid "" +"\n" +"Characteristics 0x%x\n" +msgstr "" +"\n" +"Características 0x%x\n" + +#: peigen.c:2989 pepigen.c:2989 pex64igen.c:2989 +#, c-format +msgid "%B: Data Directory size (%lx) exceeds space left in section (%Lx)" +msgstr "%B: tamanho da pasta de dados (%lx) excede o espaço deixado na secção (%Lx)" + +#: peigen.c:3019 pepigen.c:3019 pex64igen.c:3019 +msgid "Failed to update file offsets in debug directory" +msgstr "Falha ao actualizar desvios de ficheiro na pasta de depuração" + +#: peigen.c:3025 pepigen.c:3025 pex64igen.c:3025 +msgid "%B: Failed to read debug data section" +msgstr "%B: falha ao ler secção de dados de depuração" + +#: peigen.c:3841 pepigen.c:3841 pex64igen.c:3841 +#, c-format +msgid ".rsrc merge failure: duplicate string resource: %d" +msgstr "falha de união .rsrc: recurso de cadeia duplicado: %d" + +#: peigen.c:3976 pepigen.c:3976 pex64igen.c:3976 +msgid ".rsrc merge failure: multiple non-default manifests" +msgstr "falha de união .rsrc: múltiplos manifestos não-predefinidos" + +#: peigen.c:3994 pepigen.c:3994 pex64igen.c:3994 +msgid ".rsrc merge failure: a directory matches a leaf" +msgstr "falha de união .rsrc: uma pasta corresponde a uma folha" + +#: peigen.c:4036 pepigen.c:4036 pex64igen.c:4036 +msgid ".rsrc merge failure: duplicate leaf" +msgstr "falha de união .rsrc: folha duplicada" + +#: peigen.c:4038 pepigen.c:4038 pex64igen.c:4038 +#, c-format +msgid ".rsrc merge failure: duplicate leaf: %s" +msgstr "falha de união .rsrc: folha duplicada: %s" + +#: peigen.c:4104 pepigen.c:4104 pex64igen.c:4104 +msgid ".rsrc merge failure: dirs with differing characteristics\n" +msgstr "falha de união .rsrc: pastas com características diferentes\n" + +#: peigen.c:4111 pepigen.c:4111 pex64igen.c:4111 +msgid ".rsrc merge failure: differing directory versions\n" +msgstr "falha de união .rsrc: versões de pasta diferentes\n" + +#. Corrupted .rsrc section - cannot merge. +#: peigen.c:4228 pepigen.c:4228 pex64igen.c:4228 +msgid "%B: .rsrc merge failure: corrupt .rsrc section" +msgstr "%B: falha de união .rsrc: secção .rsrc corrupta" + +#: peigen.c:4236 pepigen.c:4236 pex64igen.c:4236 +msgid "%B: .rsrc merge failure: unexpected .rsrc size" +msgstr "%B: falha de união .rsrc: tamanho .rsrc inesperado" + +#: peigen.c:4375 pepigen.c:4375 pex64igen.c:4375 +msgid "%B: unable to fill in DataDictionary[1] because .idata$2 is missing" +msgstr "%B: impossível preencher DataDictionary[1] porque .idata$2 está em falta" + +#: peigen.c:4395 pepigen.c:4395 pex64igen.c:4395 +msgid "%B: unable to fill in DataDictionary[1] because .idata$4 is missing" +msgstr "%B: impossível preencher DataDictionary[1] porque .idata$4 está em falta" + +#: peigen.c:4416 pepigen.c:4416 pex64igen.c:4416 +msgid "%B: unable to fill in DataDictionary[12] because .idata$5 is missing" +msgstr "%B: impossível preencher DataDictionary[12] porque .idata$5 está em falta" + +#: peigen.c:4436 pepigen.c:4436 pex64igen.c:4436 +msgid "%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing" +msgstr "%B: impossível preencher DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] porque .idata$6 está em falta" + +#: peigen.c:4478 pepigen.c:4478 pex64igen.c:4478 +msgid "%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because .idata$6 is missing" +msgstr "%B: impossível preencher DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] porque .idata$6 está em falta" + +#: peigen.c:4503 pepigen.c:4503 pex64igen.c:4503 +msgid "%B: unable to fill in DataDictionary[9] because __tls_used is missing" +msgstr "%B: impossível preencher DataDictionary[9] porque __tls_used está em falta" Binary files /tmp/tmp2enahulf/tIHkpyh4Fz/gdb-8.1/bfd/po/ro.gmo and /tmp/tmp2enahulf/I6n3Ljszco/gdb-8.2/bfd/po/ro.gmo differ Binary files /tmp/tmp2enahulf/tIHkpyh4Fz/gdb-8.1/bfd/po/ru.gmo and /tmp/tmp2enahulf/I6n3Ljszco/gdb-8.2/bfd/po/ru.gmo differ diff -Nru gdb-8.1/bfd/po/ru.po gdb-8.2/bfd/po/ru.po --- gdb-8.1/bfd/po/ru.po 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/bfd/po/ru.po 2018-09-05 07:44:28.000000000 +0000 @@ -2,176 +2,191 @@ # Copyright (C) 2003, 2005, 2006, 2009 Free Software Foundation, Inc. # This file is distributed under the same license as the binutils package. # -# Yuri Kozlov , 2009, 2010, 2011, 2012. +# Yuri Kozlov , 2009, 2010, 2011, 2012, 2018. msgid "" msgstr "" -"Project-Id-Version: bfd 2.22.90\n" +"Project-Id-Version: bfd 2.30.0\n" "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n" -"POT-Creation-Date: 2011-10-25 11:58+0100\n" -"PO-Revision-Date: 2012-07-29 11:48+0400\n" +"POT-Creation-Date: 2018-01-13 13:44+0000\n" +"PO-Revision-Date: 2018-01-26 20:53+0300\n" "Last-Translator: Yuri Kozlov \n" -"Language-Team: Russian \n" +"Language-Team: Russian \n" "Language: ru\n" -"X-Bugs: Report translation errors to the Language-Team address.\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.4\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 2.0\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: aout-adobe.c:127 +#: aout-adobe.c:126 +#, c-format msgid "%B: Unknown section type in a.out.adobe file: %x\n" msgstr "%B: неизвеÑтный тип раздела в файле a.out.adobe: %x\n" -#: aout-cris.c:199 +#: aout-cris.c:200 #, c-format -msgid "%s: Invalid relocation type exported: %d" -msgstr "%s: ÑкÑпортирован неверный тип перемещениÑ: %d" +msgid "%B: Invalid relocation type exported: %d" +msgstr "%B: ÑкÑпортирован неверный тип перемещениÑ: %d" -#: aout-cris.c:242 +#: aout-cris.c:244 +#, c-format msgid "%B: Invalid relocation type imported: %d" -msgstr "%s: Импортирован неверный тип перемещениÑ: %d" +msgstr "%B: Импортирован неверный тип перемещениÑ: %d" -#: aout-cris.c:253 +#: aout-cris.c:256 +#, c-format msgid "%B: Bad relocation record imported: %d" msgstr "%B: Импортирована Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ о перемещении: %d" -#: aoutx.h:1273 aoutx.h:1611 +#: aoutx.h:1284 aoutx.h:1636 pdp11.c:1152 pdp11.c:1413 #, c-format -msgid "%s: can not represent section `%s' in a.out object file format" -msgstr "%s: Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€ÐµÐ´Ñтавить раздел «%s» в объектном файле формата a.out" +msgid "%B: can not represent section `%A' in a.out object file format" +msgstr "%B: Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€ÐµÐ´Ñтавить раздел «%s» в формате объектного файла a.out" -#: aoutx.h:1577 +#: aoutx.h:1600 pdp11.c:1385 #, c-format -msgid "%s: can not represent section for symbol `%s' in a.out object file format" -msgstr "%s: Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€ÐµÐ´Ñтавить раздел Ð´Ð»Ñ Ñимвола «%s» в объектном файле формата a.out" +msgid "%B: can not represent section for symbol `%s' in a.out object file format" +msgstr "%B: Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€ÐµÐ´Ñтавить раздел Ð´Ð»Ñ Ñимвола «%s» в формате объектного файла a.out" -#: aoutx.h:1579 vms-alpha.c:7671 +#: aoutx.h:1603 vms-alpha.c:7853 msgid "*unknown*" msgstr "*неизвеÑтно*" -#: aoutx.h:4018 aoutx.h:4344 +#: aoutx.h:2422 aoutx.h:2440 +msgid "%B: attempt to write out unknown reloc type" +msgstr "%B: попытка запиÑи неизвеÑтного типа перемещениÑ" + +#: aoutx.h:4093 aoutx.h:4414 msgid "%P: %B: unexpected relocation type\n" msgstr "%P: %B: неожиданный тип перемещениÑ\n" -#: aoutx.h:5375 +#: aoutx.h:5440 pdp11.c:3708 #, c-format -msgid "%s: relocatable link from %s to %s not supported" -msgstr "%s: Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰Ð°ÐµÐ¼Ð°Ñ ÑÑылка из %s в %s не поддерживаетÑÑ" +msgid "%B: relocatable link from %s to %s not supported" +msgstr "%B: Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰Ð°ÐµÐ¼Ð°Ñ ÑÑылка из %s в %s не поддерживаетÑÑ" -#: archive.c:2203 +#: archive.c:2305 msgid "Warning: writing archive was slow: rewriting timestamp\n" msgstr "Предупреждение: Ð¼ÐµÐ´Ð»ÐµÐ½Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ в архив: обновлÑетÑÑ Ð¼ÐµÑ‚ÐºÐ° времени\n" -#: archive.c:2491 +#: archive.c:2421 linker.c:1410 +msgid "%B: plugin needed to handle lto object" +msgstr "%B: Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ объекта lto требуетÑÑ Ð¼Ð¾Ð´ÑƒÐ»ÑŒ" + +#: archive.c:2650 msgid "Reading archive file mod timestamp" -msgstr "Чтение метки времени архивного файла mod" +msgstr "Чтение метки времени Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð°Ñ€Ñ…Ð¸Ð²Ð½Ð¾Ð³Ð¾ файла" -#: archive.c:2515 +#: archive.c:2674 msgid "Writing updated armap timestamp" msgstr "ЗапиÑÑŒ обновлённой метки времени armap" -#: bfd.c:398 +#: bfd.c:454 msgid "No error" msgstr "Ðет ошибки" -#: bfd.c:399 +#: bfd.c:455 msgid "System call error" msgstr "Ошибка ÑиÑтемного вызова" -#: bfd.c:400 +#: bfd.c:456 msgid "Invalid bfd target" msgstr "ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ñ†ÐµÐ»ÑŒ bfd" -#: bfd.c:401 +#: bfd.c:457 msgid "File in wrong format" msgstr "Файл в неправильном формате" -#: bfd.c:402 +#: bfd.c:458 msgid "Archive object file in wrong format" msgstr "Ðрхивный объектный файл в неправильном формате" -#: bfd.c:403 +#: bfd.c:459 msgid "Invalid operation" msgstr "ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ" -#: bfd.c:404 +#: bfd.c:460 msgid "Memory exhausted" msgstr "ЗакончилаÑÑŒ памÑÑ‚ÑŒ" -#: bfd.c:405 +#: bfd.c:461 msgid "No symbols" msgstr "Ðет Ñимволов" -#: bfd.c:406 +#: bfd.c:462 msgid "Archive has no index; run ranlib to add one" msgstr "Ðрхив без индекÑа; запуÑк ranlib Ð´Ð»Ñ ÑозданиÑ" -#: bfd.c:407 +#: bfd.c:463 msgid "No more archived files" msgstr "Ðрхивные файлы закончилиÑÑŒ" -#: bfd.c:408 +#: bfd.c:464 msgid "Malformed archive" msgstr "ИÑкажённый архив" -#: bfd.c:409 +#: bfd.c:465 +msgid "DSO missing from command line" +msgstr "Ð’ командной Ñтроке не указан DSO" + +#: bfd.c:466 msgid "File format not recognized" msgstr "Формат файла не раÑпознан" -#: bfd.c:410 +#: bfd.c:467 msgid "File format is ambiguous" msgstr "Формат файла неоднозначен" -#: bfd.c:411 +#: bfd.c:468 msgid "Section has no contents" msgstr "Раздел не имеет Ñодержимого" -#: bfd.c:412 +#: bfd.c:469 msgid "Nonrepresentable section on output" msgstr "Раздел, непредÑтавимый Ð´Ð»Ñ Ð²Ñ‹Ð²Ð¾Ð´Ð°" -#: bfd.c:413 +#: bfd.c:470 msgid "Symbol needs debug section which does not exist" msgstr "Ð”Ð»Ñ Ñимвола требуетÑÑ Ð¾Ñ‚Ð»Ð°Ð´Ð¾Ñ‡Ð½Ñ‹Ð¹ раздел, но его не ÑущеÑтвует" -#: bfd.c:414 +#: bfd.c:471 msgid "Bad value" msgstr "Ðекорректное значение" -#: bfd.c:415 +#: bfd.c:472 msgid "File truncated" msgstr "Файл уÑечён" -#: bfd.c:416 +#: bfd.c:473 msgid "File too big" msgstr "Файл Ñлишком большой" -#: bfd.c:417 +#: bfd.c:474 #, c-format msgid "Error reading %s: %s" msgstr "Ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ %s: %s" -#: bfd.c:418 +#: bfd.c:475 msgid "#" msgstr "#<Ðеверный код ошибки>" -#: bfd.c:945 +#: bfd.c:1442 #, c-format msgid "BFD %s assertion fail %s:%d" msgstr "Оператор ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ BFD %s обнаружил ошибку %s:%d" -#: bfd.c:957 +#: bfd.c:1455 #, c-format -msgid "BFD %s internal error, aborting at %s line %d in %s\n" -msgstr "ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° BFD %s, оÑтанов на %s, Ñтрока %d в %s\n" +msgid "BFD %s internal error, aborting at %s:%d in %s\n" +msgstr "ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° BFD %s, оÑтанов на %s:%d в %s\n" -#: bfd.c:961 +#: bfd.c:1460 #, c-format -msgid "BFD %s internal error, aborting at %s line %d\n" -msgstr "ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° BFD %s, оÑтанов на %s, Ñтрока %d\n" +msgid "BFD %s internal error, aborting at %s:%d\n" +msgstr "ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° BFD %s, оÑтанов на %s:%d\n" -#: bfd.c:963 +#: bfd.c:1462 msgid "Please report this bug.\n" msgstr "ПожалуйÑта, Ñообщите об Ñтой ошибке.\n" @@ -185,22 +200,23 @@ msgid "not mapping: env var not set\n" msgstr "не отображено: Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ env не задана\n" -#: binary.c:271 +#: binary.c:276 #, c-format -msgid "Warning: Writing section `%s' to huge (ie negative) file offset 0x%lx." -msgstr "Предупреждение: ВыполнÑетÑÑ Ð·Ð°Ð¿Ð¸ÑÑŒ раздела «%s» в файл по огромному (Ñ‚.е. отрицательному) Ñмещению 0x%lx." +msgid "warning: writing section `%A' at huge (ie negative) file offset" +msgstr "предупреждение: выполнÑетÑÑ Ð·Ð°Ð¿Ð¸ÑÑŒ раздела «%A» по огромному (Ñ‚. е., отрицательному) файловому Ñмещению" -#: bout.c:1146 elf-m10300.c:2063 elf32-avr.c:1654 elf32-frv.c:5734 -#: elfxx-sparc.c:2802 reloc.c:6115 reloc16.c:162 elf32-ia64.c:360 -#: elf64-ia64.c:360 +#: bout.c:1142 elf-m10300.c:2647 elf32-avr.c:2484 elf32-frv.c:5633 +#: elf64-ia64-vms.c:353 elfxx-sparc.c:2817 reloc.c:8059 reloc16.c:156 +#: elf32-ia64.c:351 elf64-ia64.c:351 msgid "%P%F: --relax and -r may not be used together\n" msgstr "%P%F: --relax и -r Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать вмеÑте\n" -#: cache.c:227 +#: cache.c:273 +#, c-format msgid "reopening %B: %s\n" msgstr "переоткрываетÑÑ %B: %s\n" -#: coff-alpha.c:491 +#: coff-alpha.c:450 msgid "" "%B: Cannot handle compressed Alpha binaries.\n" " Use compiler flags, or objZ, to generate uncompressed binaries." @@ -208,42 +224,44 @@ "%B: Ðе удалоÑÑŒ обработать Ñжатые двоичные файлы Alpha.\n" " Ð”Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½ÐµÑжатых файлов иÑпользуйте параметры компилÑтора или objZ." -#: coff-alpha.c:648 +#: coff-alpha.c:602 msgid "%B: unknown/unsupported relocation type %d" msgstr "%B: неизвеÑтный/неподдерживаемый тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %d" -#: coff-alpha.c:900 coff-alpha.c:937 coff-alpha.c:2025 coff-mips.c:1003 +#: coff-alpha.c:851 coff-alpha.c:888 coff-alpha.c:1961 coff-mips.c:950 msgid "GP relative relocation used when GP not defined" msgstr "ИÑпользовано отноÑительное перемещение GP, но GP не определена" -#: coff-alpha.c:1502 +#: coff-alpha.c:1444 msgid "using multiple gp values" msgstr "иÑпользуетÑÑ Ð½ÐµÑколько значений gp" -#: coff-alpha.c:1561 +#: coff-alpha.c:1503 msgid "%B: unsupported relocation: ALPHA_R_GPRELHIGH" msgstr "%B: неподдерживаемое перемещение: ALPHA_R_GPRELHIGH" -#: coff-alpha.c:1568 +#: coff-alpha.c:1510 msgid "%B: unsupported relocation: ALPHA_R_GPRELLOW" msgstr "%B: неподдерживаемое перемещение: ALPHA_R_GPRELLOW" -#: coff-alpha.c:1575 elf32-m32r.c:2484 elf64-alpha.c:4074 elf64-alpha.c:4224 -#: elf32-ia64.c:3839 elf64-ia64.c:3839 +#: coff-alpha.c:1518 elf32-i370.c:1081 elf32-m32r.c:2404 +#: elf32-microblaze.c:932 elf64-alpha.c:4098 elf64-alpha.c:4246 +#: elf64-ia64-vms.c:3430 elf32-ia64.c:3847 elf64-ia64.c:3847 +#, c-format msgid "%B: unknown relocation type %d" msgstr "%B: неизвеÑтный тип перемещениÑ: %d" -#: coff-arm.c:1038 +#: coff-arm.c:1037 #, c-format msgid "%B: unable to find THUMB glue '%s' for `%s'" msgstr "%B: не удалоÑÑŒ найти THUMB-Ñклейку «%s» Ð´Ð»Ñ Â«%s»" -#: coff-arm.c:1067 +#: coff-arm.c:1066 #, c-format msgid "%B: unable to find ARM glue '%s' for `%s'" msgstr "%B: не удалоÑÑŒ найти ARM-Ñклейку «%s» Ð´Ð»Ñ Â«%s»" -#: coff-arm.c:1369 elf32-arm.c:7023 +#: coff-arm.c:1368 elf32-arm.c:8896 #, c-format msgid "" "%B(%s): warning: interworking not enabled.\n" @@ -252,7 +270,7 @@ "%B(%s): предупреждение: ÑовмеÑÑ‚Ð½Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð° не включена.\n" " первое упоминание: %B: arm-вызов в thumb" -#: coff-arm.c:1459 +#: coff-arm.c:1458 #, c-format msgid "" "%B(%s): warning: interworking not enabled.\n" @@ -263,317 +281,534 @@ " первое упоминание: %B: thumb-вызов в arm\n" " выполните переÑборку Ñ Ð²ÐºÐ»ÑŽÑ‡Ñ‘Ð½Ð½Ñ‹Ð¼ параметром --support-old-code" -#: coff-arm.c:1754 coff-tic80.c:695 cofflink.c:3081 -msgid "%B: bad reloc address 0x%lx in section `%A'" -msgstr "%B: неправильный Ð°Ð´Ñ€ÐµÑ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ 0x%lx в разделе «%A»" - -#: coff-arm.c:2079 -msgid "%B: illegal symbol index in reloc: %d" -msgstr "%B: недопуÑтимый Ñимвольный Ð¸Ð½Ð´ÐµÐºÑ Ð² перемещении: %d" +#: coff-arm.c:1751 coff-tic80.c:672 cofflink.c:3127 +#, c-format +msgid "%B: bad reloc address %#Lx in section `%A'" +msgstr "%B: неправильный Ð°Ð´Ñ€ÐµÑ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %#Lx в разделе «%A»" + +#: coff-arm.c:2076 +#, c-format +msgid "%B: illegal symbol index in reloc: %ld" +msgstr "%B: недопуÑтимый Ñимвольный Ð¸Ð½Ð´ÐµÐºÑ Ð² перемещении: %ld" -#: coff-arm.c:2210 +#: coff-arm.c:2208 #, c-format msgid "error: %B is compiled for APCS-%d, whereas %B is compiled for APCS-%d" msgstr "ошибка: %B Ñобран Ð´Ð»Ñ APCS-%d, в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº %B Ñобран Ð´Ð»Ñ APCS-%d" -#: coff-arm.c:2226 elf32-arm.c:15621 +#: coff-arm.c:2221 elf32-arm.c:19582 #, c-format msgid "error: %B passes floats in float registers, whereas %B passes them in integer registers" msgstr "ошибка: %B передаёт чиÑла Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ точкой в региÑтрах Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ точкой, в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº %B передаёт их в целочиÑленных региÑтрах" -#: coff-arm.c:2229 elf32-arm.c:15625 +#: coff-arm.c:2226 elf32-arm.c:19586 #, c-format msgid "error: %B passes floats in integer registers, whereas %B passes them in float registers" msgstr "ошибка: %B передаёт чиÑла в целочиÑленных региÑтрах, в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº %B передаёт их в региÑтрах Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ точкой" -#: coff-arm.c:2243 +#: coff-arm.c:2238 #, c-format msgid "error: %B is compiled as position independent code, whereas target %B is absolute position" msgstr "ошибка: %B Ñкомпилирован как позиционно-незавиÑимый код, в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº целью %B ÑвлÑетÑÑ ÐºÐ¾Ð´ Ñ Ð°Ð±Ñолютной позицией" -#: coff-arm.c:2246 +#: coff-arm.c:2243 #, c-format msgid "error: %B is compiled as absolute position code, whereas target %B is position independent" msgstr "ошибка: %B Ñкомпилирован как код Ñ Ð°Ð±Ñолютной позицией, в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº целью %B ÑвлÑетÑÑ Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ð¾Ð½Ð½Ð¾-незавиÑимый код" -#: coff-arm.c:2274 elf32-arm.c:15690 +#: coff-arm.c:2270 elf32-arm.c:19651 #, c-format msgid "Warning: %B supports interworking, whereas %B does not" msgstr "Предупреждение: %B поддерживает ÑовмеÑтную работу, в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº %B нет" -#: coff-arm.c:2277 elf32-arm.c:15696 +#: coff-arm.c:2275 elf32-arm.c:19657 #, c-format msgid "Warning: %B does not support interworking, whereas %B does" msgstr "Предупреждение: %B не поддерживает ÑовмеÑтную работу, в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº %B поддерживает" -#: coff-arm.c:2301 +#: coff-arm.c:2298 #, c-format msgid "private flags = %x:" msgstr "ÑобÑтвенные флаги = %x:" -#: coff-arm.c:2309 elf32-arm.c:11806 +#: coff-arm.c:2306 elf32-arm.c:14160 #, c-format msgid " [floats passed in float registers]" msgstr " [чиÑла Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ точкой передаютÑÑ Ð² региÑтрах Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ точкой]" -#: coff-arm.c:2311 +#: coff-arm.c:2308 #, c-format msgid " [floats passed in integer registers]" msgstr " [чиÑла Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ точкой передаютÑÑ Ð² целочиÑленных региÑтрах]" -#: coff-arm.c:2314 elf32-arm.c:11809 +#: coff-arm.c:2311 elf32-arm.c:14163 #, c-format msgid " [position independent]" msgstr " [позиционно-незавиÑимый]" -#: coff-arm.c:2316 +#: coff-arm.c:2313 #, c-format msgid " [absolute position]" msgstr " [Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð¾Ð¹ позицией]" -#: coff-arm.c:2320 +#: coff-arm.c:2317 #, c-format msgid " [interworking flag not initialised]" msgstr " [флаг ÑовмеÑтной работы не уÑтановлен]" -#: coff-arm.c:2322 +#: coff-arm.c:2319 #, c-format msgid " [interworking supported]" msgstr " [поддерживаетÑÑ ÑовмеÑÑ‚Ð½Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°]" -#: coff-arm.c:2324 +#: coff-arm.c:2321 #, c-format msgid " [interworking not supported]" msgstr " [ÑовмеÑÑ‚Ð½Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð° не поддерживаетÑÑ]" -#: coff-arm.c:2370 elf32-arm.c:10841 -#, c-format +#: coff-arm.c:2366 elf32-arm.c:13021 msgid "Warning: Not setting interworking flag of %B since it has already been specified as non-interworking" msgstr "Предупреждение: Флаг ÑовмеÑтной работы Ð´Ð»Ñ %B не уÑтанавливаетÑÑ, так как так как он уже указывает на неÑовмеÑтную работу" -#: coff-arm.c:2374 elf32-arm.c:10845 -#, c-format +#: coff-arm.c:2369 elf32-arm.c:13025 msgid "Warning: Clearing the interworking flag of %B due to outside request" msgstr "Предупреждение: ОчищаетÑÑ Ñ„Ð»Ð°Ð³ ÑовмеÑтной работы Ð´Ð»Ñ %B по внешнему запроÑу" -#: coff-h8300.c:1122 +#: coff-arm.c:2426 elf32-arm.c:13070 +#, c-format +msgid "Warning: Clearing the interworking flag of %B because non-interworking code in %B has been linked with it" +msgstr "Предупреждение: Ð¡Ð±Ñ€Ð¾Ñ Ñ„Ð»Ð°Ð³Ð° ÑовмеÑтной работы %B, как Ñ Ð½Ð¸Ð¼ был Ñкомпонован код без ÑовмеÑтной работы из %B" + +#: coff-h8300.c:1068 #, c-format msgid "cannot handle R_MEM_INDIRECT reloc when using %s output" msgstr "невозможно обработать перемещение R_MEM_INDIRECT, еÑли Ð´Ð»Ñ Ð²Ñ‹Ð²Ð¾Ð´Ð° иÑпользуетÑÑ %s" -#: coff-i860.c:147 +#: coff-i860.c:151 #, c-format msgid "relocation `%s' not yet implemented" msgstr "перемещение «%s» пока не реализовано" -#: coff-i860.c:605 coff-tic54x.c:398 coffcode.h:5198 +#: coff-i860.c:613 coff-tic4x.c:227 coff-tic54x.c:365 coffcode.h:5343 +#, c-format msgid "%B: warning: illegal symbol index %ld in relocs" msgstr "%B: предупреждение: недопуÑтимый Ñимвольный Ð¸Ð½Ð´ÐµÐºÑ %ld в перемещениÑÑ…" -#: coff-i960.c:144 coff-i960.c:507 +#: coff-i960.c:122 coff-i960.c:475 msgid "uncertain calling convention for non-COFF symbol" msgstr "неÑÑное Ñоглашение о вызове Ð´Ð»Ñ Ð½Ðµ-COFF Ñимвола" -#: coff-m68k.c:506 elf32-bfin.c:5690 elf32-cr16.c:2897 elf32-m68k.c:4677 +#: coff-m68k.c:488 elf32-bfin.c:5340 elf32-cr16.c:2801 elf32-m68k.c:4385 msgid "unsupported reloc type" msgstr "неподдерживаемый тип перемещениÑ" -#: coff-mips.c:688 elf32-mips.c:1516 elf32-score.c:431 elf32-score7.c:330 -#: elf64-mips.c:2618 elfn32-mips.c:2431 +#: coff-mips.c:640 elf32-mips.c:1744 elf32-score.c:430 elf32-score7.c:330 +#: elf64-mips.c:3135 elfn32-mips.c:2958 msgid "GP relative relocation when _gp not defined" msgstr "ОтноÑительное перемещение GP, но _gp не определена" -#: coff-or32.c:229 -msgid "Unrecognized reloc" -msgstr "ÐераÑпознанное перемещение" - -#: coff-rs6000.c:2720 +#: coff-rs6000.c:2773 #, c-format -msgid "%s: unsupported relocation type 0x%02x" -msgstr "%s: неподдерживаемый тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ 0x%02x" +msgid "%B: unsupported relocation type 0x%02x" +msgstr "%B: неподдерживаемый тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ 0x%02x" -#: coff-rs6000.c:2805 +#: coff-rs6000.c:2859 #, c-format -msgid "%s: TOC reloc at 0x%x to symbol `%s' with no TOC entry" -msgstr "%s: перемещение TOC по адреÑу 0x%x Ñимвола «%s» без Ñлемента TOC" +msgid "%B: TOC reloc at %#Lx to symbol `%s' with no TOC entry" +msgstr "%B: перемещение TOC по адреÑу %#Lx к Ñимволу «%s» без Ñлемента TOC" -#: coff-rs6000.c:3556 coff64-rs6000.c:2111 +#: coff-rs6000.c:3605 coff64-rs6000.c:2150 +#, c-format msgid "%B: symbol `%s' has unrecognized smclas %d" msgstr "%B: Ñимвол «%s» имеет нераÑпознанный smclas %d" -#: coff-sh.c:521 +#: coff-sh.c:504 #, c-format msgid "SH Error: unknown reloc type %d" msgstr "Ошибка SH: неизвеÑтный тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %d" -#: coff-tic4x.c:195 coff-tic54x.c:299 coff-tic80.c:458 +#: coff-sh.c:778 elf32-sh.c:580 #, c-format -msgid "Unrecognized reloc type 0x%x" -msgstr "ÐераÑпознанный тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ 0x%x" +msgid "%B: %#Lx: warning: bad R_SH_USES offset" +msgstr "%B: %#Lx: предупреждение: неправильное Ñмещение R_SH_USES" + +#: coff-sh.c:789 +#, c-format +msgid "%B: %#Lx: warning: R_SH_USES points to unrecognized insn %#x" +msgstr "%B: %#Lx: предупреждение: R_SH_USES указывает на нераÑпознанный insn %#x" + +#: coff-sh.c:807 elf32-sh.c:610 +#, c-format +msgid "%B: %#Lx: warning: bad R_SH_USES load offset" +msgstr "%B: %#Lx: предупреждение: неправильное загрузочное Ñмещение R_SH_USES" + +#: coff-sh.c:832 elf32-sh.c:626 +#, c-format +msgid "%B: %#Lx: warning: could not find expected reloc" +msgstr "%B: %#Lx: предупреждение: невозможно найти ожидаемое перемещение" -#: coff-tic4x.c:240 +#: coff-sh.c:849 elf32-sh.c:655 #, c-format -msgid "%s: warning: illegal symbol index %ld in relocs" -msgstr "%s: предупреждение: в перемещениÑÑ… недопуÑтимый Ñимвольный Ð¸Ð½Ð´ÐµÐºÑ %ld" +msgid "%B: %#Lx: warning: symbol in unexpected section" +msgstr "%B: %#Lx: предупреждение: Ñимвол в неожиданном разделе" -#: coff-w65.c:367 +#: coff-sh.c:975 elf32-sh.c:785 +#, c-format +msgid "%B: %#Lx: warning: could not find expected COUNT reloc" +msgstr "%B: %#Lx: предупреждение: невозможно найти ожидаемое перемещение COUNT" + +#: coff-sh.c:985 elf32-sh.c:795 +#, c-format +msgid "%B: %#Lx: warning: bad count" +msgstr "%B: %#Lx: предупреждение: неправильный Ñчётчик" + +#: coff-sh.c:1357 coff-sh.c:2645 elf32-sh.c:1199 elf32-sh.c:1570 +#, c-format +msgid "%B: %#Lx: fatal: reloc overflow while relaxing" +msgstr "%B: %#Lx: оÑтанов: переполнение Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ оÑлаблении" + +#: coff-sh.c:1452 +msgid "%B: fatal: generic symbols retrieved before relaxing" +msgstr "%B: оÑтанов: перед оÑлаблением получены общие Ñимволы" + +#: coff-sh.c:2783 cofflink.c:2965 +#, c-format +msgid "%B: illegal symbol index %ld in relocs" +msgstr "%B: недопуÑтимый Ñимвольный Ð¸Ð½Ð´ÐµÐºÑ %ld в перемещениÑÑ…" + +#: coff-tic4x.c:183 coff-tic54x.c:278 coff-tic80.c:441 +#, c-format +msgid "Unrecognized reloc type 0x%x" +msgstr "ÐераÑпознанный тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ 0x%x" + +#: coff-w65.c:352 #, c-format msgid "ignoring reloc %s\n" msgstr "игнорируетÑÑ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ðµ %s\n" -#: coffcode.h:997 +#: coffcode.h:968 +msgid "%B: unable to load COMDAT section name" +msgstr "%B: невозможно загрузить Ð¸Ð¼Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° COMDAT" + +#. Malformed input files can trigger this test. +#. cf PR 21781. +#: coffcode.h:1003 +msgid "%B: error: unexpected symbol '%s' in COMDAT section" +msgstr "%B: ошибка: неожиданный Ñимвол «%s» в разделе COMDAT" + +#: coffcode.h:1015 +#, c-format msgid "%B: warning: COMDAT symbol '%s' does not match section name '%s'" -msgstr "%B: предупреждение: COMDAT Ñимвол '%s' не ÑоответÑтвует имени раздела '%s'" +msgstr "%B: предупреждение: Ñимвол «%s» в COMDAT не Ñовпадает Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ раздела «%s»" + +#: coffcode.h:1025 +#, c-format +msgid "%B: warning: No symbol for section '%s' found" +msgstr "%B: предупреждение: не найден Ñимвол Ð´Ð»Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° «%s»" #. Generate a warning message rather using the 'unhandled' #. variable as this will allow some .sys files generate by #. other toolchains to be processed. See bugzilla issue 196. -#: coffcode.h:1221 +#: coffcode.h:1251 +#, c-format msgid "%B: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section %s" -msgstr "%B: Предупреждение: ИгнорируетÑÑ Ñ„Ð»Ð°Ð³ раздела IMAGE_SCN_MEM_NOT_PAGED в разделе %s" +msgstr "%B: предупреждение: игнорируетÑÑ Ñ„Ð»Ð°Ð³ раздела IMAGE_SCN_MEM_NOT_PAGED в разделе %s" + +#: coffcode.h:1320 +#, c-format +msgid "%B (%s): Section flag %s (%#lx) ignored" +msgstr "%B (%s): игнорируетÑÑ Ñ„Ð»Ð°Ð³ раздела %s (%#lx)" -#: coffcode.h:1288 -msgid "%B (%s): Section flag %s (0x%x) ignored" -msgstr "%B (%s): ИгнорируетÑÑ Ñ„Ð»Ð°Ð³ раздела %s (0x%x)" +#: coffcode.h:1950 +msgid "%B: warning: claims to have 0xffff relocs, without overflow" +msgstr "%B: предупреждение: утверждение иметь 0xffff перемещений, без переполнениÑ" -#: coffcode.h:2430 +#: coffcode.h:2466 #, c-format msgid "Unrecognized TI COFF target id '0x%x'" -msgstr "ÐераÑпознанный идентификатор цели TI COFF '0x%x'" +msgstr "ÐераÑпознанный идентификатор цели TI COFF «0x%x»" -#: coffcode.h:2744 -msgid "%B: reloc against a non-existant symbol index: %ld" +#: coffcode.h:2784 +#, c-format +msgid "%B: reloc against a non-existent symbol index: %ld" msgstr "%B: перемещение по неÑущеÑтвующему Ñимвольному индекÑу: %ld" -#: coffcode.h:3302 +#: coffcode.h:3187 +#, c-format +msgid "%B: page size is too large (0x%x)" +msgstr "%B: Ñлишком большой размер Ñтраницы (0x%x)" + +#: coffcode.h:3347 +#, c-format msgid "%B: too many sections (%d)" -msgstr "%B: Ñлишком много разделов: (%d)" +msgstr "%B: Ñлишком много разделов (%d)" -#: coffcode.h:3718 -msgid "%B: section %s: string table overflow at offset %ld" -msgstr "%B: раздел %s: переполнение таблицы Ñтрок по Ñмещению %d" +#: coffcode.h:3768 +#, c-format +msgid "%B: section %A: string table overflow at offset %ld" +msgstr "%B: раздел %A: переполнение таблицы Ñтрок по Ñмещению %ld" + +#: coffcode.h:3873 +#, c-format +msgid "%B:%s section %s: alignment 2**%u not representable" +msgstr "%B:%s раздел %s: выравнивание 2**%u не предÑтавимо" + +#: coffcode.h:4592 +msgid "%B: warning: line number count (%#lx) exceeds section size (%#lx)" +msgstr "%B: предупреждение: Ñчётчик количеÑтва Ñтрок (%#lx) превышает размер раздела (%#lx)" -#: coffcode.h:4523 +#: coffcode.h:4607 msgid "%B: warning: line number table read failed" msgstr "%B: предупреждение: не удалоÑÑŒ прочитать таблицу номеров Ñтрок" -#: coffcode.h:4553 -msgid "%B: warning: illegal symbol index %ld in line numbers" -msgstr "%B: предупреждение: недопуÑтимый Ñимвольный Ð¸Ð½Ð´ÐµÐºÑ %ld в номерах Ñтрок" +#: coffcode.h:4641 coffcode.h:4655 +#, c-format +msgid "%B: warning: illegal symbol index 0x%lx in line number entry %d" +msgstr "%B: предупреждение: недопуÑтимый Ñимвольный Ð¸Ð½Ð´ÐµÐºÑ 0x%lx в Ñлементе номера Ñтроки %d" + +#: coffcode.h:4669 +#, c-format +msgid "%B: warning: illegal symbol in line number entry %d" +msgstr "%B: предупреждение: недопуÑтимый Ñимвольный Ð¸Ð½Ð´ÐµÐºÑ %d в Ñлементе номера Ñтроки" -#: coffcode.h:4567 +#: coffcode.h:4682 +#, c-format msgid "%B: warning: duplicate line number information for `%s'" msgstr "%B: предупреждение: повторÑющаÑÑÑ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ номере Ñтроки Ð´Ð»Ñ Â«%s»" -#: coffcode.h:4967 +#: coffcode.h:5103 +#, c-format msgid "%B: Unrecognized storage class %d for %s symbol `%s'" -msgstr "%B: ÐераÑпознанный клаÑÑ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ %d Ð´Ð»Ñ %s, Ñимвол «%s»" +msgstr "%B: нераÑпознанный клаÑÑ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ %d Ð´Ð»Ñ %s, Ñимвол «%s»" -#: coffcode.h:5093 +#: coffcode.h:5236 +#, c-format msgid "warning: %B: local symbol `%s' has no section" msgstr "предупреждение: %B: локальный Ñимвол «%s» не имеет раздела" -#: coffcode.h:5237 -msgid "%B: illegal relocation type %d at address 0x%lx" -msgstr "%B: недопуÑтимый тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %d по адреÑу 0x%lx" - -#: coffgen.c:1595 -msgid "%B: bad string table size %lu" -msgstr "%B: неправильный размер таблицы Ñтрок %lu" +#: coffcode.h:5383 +#, c-format +msgid "%B: illegal relocation type %d at address %#Lx" +msgstr "%B: недопуÑтимый тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %d по адреÑу %#Lx" + +#: coffgen.c:178 elf.c:1198 +#, c-format +msgid "%B: unable to initialize compress status for section %s" +msgstr "%B: невозможно инициализировать ÑоÑтоÑние ÑÐ¶Ð°Ñ‚Ð¸Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° %s" + +#: coffgen.c:202 elf.c:1209 +#, c-format +msgid "%B: unable to initialize decompress status for section %s" +msgstr "%B: невозможно инициализировать ÑоÑтоÑние Ñ€Ð°Ð·Ð¶Ð°Ñ‚Ð¸Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° %s" + +#: coffgen.c:1649 +msgid "%B: corrupt symbol count: %#Lx" +msgstr "%B: повреждённый Ñчётчик Ñимволов: %#Lx" -#: coffgen.c:2500 elflink.c:12689 linker.c:3122 +#. PR 21013: Provide an error message when the alloc fails. +#: coffgen.c:1658 +msgid "%B: not enough memory to allocate space for %#Lx symbols of size %#Lx" +msgstr "%B: недоÑтаточно памÑти Ð´Ð»Ñ Ð²Ñ‹Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¼ÐµÑта Ð´Ð»Ñ %#Lx Ñимволов размером %#Lx" + +#: coffgen.c:1725 +#, c-format +msgid "%B: bad string table size %Lu" +msgstr "%B: неправильный размер таблицы Ñтрок %Lu" + +#: coffgen.c:1902 coffgen.c:1962 coffgen.c:1980 cofflink.c:2045 +#: xcofflink.c:4507 +msgid "" +msgstr "<повреждено>" + +#: coffgen.c:2104 +#, c-format +msgid " %s" +msgstr "<Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ повреждении> %s" + +#: coffgen.c:2683 elflink.c:14149 linker.c:2940 msgid "%F%P: already_linked_table: %E\n" msgstr "%F%P: already_linked_table: %E\n" -#: cofflink.c:533 elflink.c:4323 +#: coffgen.c:3024 elflink.c:13151 +#, c-format +msgid "Removing unused section '%A' in file '%B'" +msgstr "УдалÑетÑÑ Ð½ÐµÐ¸Ñпользуемый раздел «%A» в файле «%B»" + +#: coffgen.c:3101 elflink.c:13369 +msgid "Warning: gc-sections option ignored" +msgstr "Предупреждение: параметр gc-sections игнорируетÑÑ" + +#: cofflink.c:352 +#, c-format +msgid "Warning: symbol `%s' is both section and non-section" +msgstr "Предупреждение: Ñимвол «%s» Ð´Ð»Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° и не Ð´Ð»Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° одновременно" + +#: cofflink.c:454 elf64-ia64-vms.c:5186 elflink.c:4831 +#, c-format msgid "Warning: type of symbol `%s' changed from %d to %d in %B" msgstr "Предупреждение: в %B изменён тип Ñимвола «%s» Ñ %d на %d" -#: cofflink.c:2329 +#: cofflink.c:2373 +#, c-format msgid "%B: relocs in section `%A', but it has no contents" msgstr "%B: Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð² разделе «%A», но он не имеет Ñодержимого" -#: cofflink.c:2391 elflink.c:9545 +#: cofflink.c:2436 elflink.c:10664 +#, c-format msgid "%X`%s' referenced in section `%A' of %B: defined in discarded section `%A' of %B\n" msgstr "%X«%s» указывает в раздел «%A» из %B: определён в отброшенном разделе «%A» из %B\n" -#: cofflink.c:2690 coffswap.h:826 +#: cofflink.c:2734 #, c-format -msgid "%s: %s: reloc overflow: 0x%lx > 0xffff" -msgstr "%s: %s: переполнение перемещениÑ: 0x%lx > 0xffff" +msgid "%B: %A: reloc overflow: %#x > 0xffff" +msgstr "%B: %A: переполнение перемещениÑ: %#x > 0xffff" -#: cofflink.c:2699 coffswap.h:812 +#: cofflink.c:2742 #, c-format -msgid "%s: warning: %s: line number overflow: 0x%lx > 0xffff" -msgstr "%s: предупреждение: %s: переполнение номера Ñтроки: 0x%lx > 0xffff" +msgid "%B: warning: %A: line number overflow: %#x > 0xffff" +msgstr "%B: предупреждение: %A: переполнение номера Ñтроки: %#x > 0xffff" -#: cpu-arm.c:189 cpu-arm.c:200 +#: coffswap.h:811 +#, c-format +msgid "%B: warning: %s: line number overflow: 0x%lx > 0xffff" +msgstr "%B: предупреждение: %s: переполнение номера Ñтроки: 0x%lx > 0xffff" + +#: coffswap.h:825 +#, c-format +msgid "%B: %s: reloc overflow: 0x%lx > 0xffff" +msgstr "%B: %s: переполнение перемещениÑ: 0x%lx > 0xffff" + +#: compress.c:255 +#, c-format +msgid "error: %B(%A) is too large (%#Lx bytes)" +msgstr "ошибка: %B(%A) Ñлишком велико (%#Lx байт)" + +#: cpu-arm.c:192 cpu-arm.c:204 +#, c-format msgid "error: %B is compiled for the EP9312, whereas %B is compiled for XScale" msgstr "ошибка: %B Ñкомпилирован Ð´Ð»Ñ EP9312, в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº %B Ñкомпилирован Ð´Ð»Ñ XScale" -#: cpu-arm.c:333 +#: cpu-arm.c:338 #, c-format -msgid "warning: unable to update contents of %s section in %s" -msgstr "предупреждение: не удалоÑÑŒ обновить Ñодержимое раздела %s в %s" +msgid "warning: unable to update contents of %s section in %B" +msgstr "предупреждение: невозможно обновить Ñодержимое раздела %s в %B" -#: dwarf2.c:496 +#: dwarf2.c:543 #, c-format msgid "Dwarf Error: Can't find %s section." -msgstr "Ошибка в dwarf: Раздел %s не найден." +msgstr "Ошибка в dwarf: раздел %s не найден." -#: dwarf2.c:525 +#: dwarf2.c:572 #, c-format -msgid "Dwarf Error: Offset (%lu) greater than or equal to %s size (%lu)." -msgstr "Ошибка в dwarf: Смещение (%lu) больше или равно размеру %s (%lu)." +msgid "Dwarf Error: Offset (%llu) greater than or equal to %s size (%Lu)." +msgstr "Ошибка в dwarf: Ñмещение (%llu) больше или равно размеру %s (%Lu)." + +#: dwarf2.c:1089 +msgid "Dwarf Error: Info pointer extends beyond end of attributes" +msgstr "Ошибка в dwarf: информационный указатель выходит за конец атрибутов" -#: dwarf2.c:949 +#: dwarf2.c:1261 #, c-format -msgid "Dwarf Error: Invalid or unhandled FORM value: %u." -msgstr "Ошибка в dwarf: ÐедопуÑтимое или необработанное значение FORM: %u." +msgid "Dwarf Error: Invalid or unhandled FORM value: %#x." +msgstr "Ошибка в dwarf: недопуÑтимое или необработанное значение FORM: %#x." -#: dwarf2.c:1200 +#: dwarf2.c:1567 msgid "Dwarf Error: mangled line number section (bad file number)." msgstr "Ошибка в dwarf: иÑкажённый раздел номеров Ñтрок (неверный номер файла)." -#: dwarf2.c:1453 +#: dwarf2.c:1912 +msgid "Dwarf Error: Zero format count." +msgstr "Ошибка в dwarf: Ñчётчик формата равен нулю." + +#: dwarf2.c:1921 +#, c-format +msgid "Dwarf Error: data count (%Lx) larger than buffer size." +msgstr "Ошибка в dwarf: Ñчётчик данных (%Lx) больше размера буфера." + +#: dwarf2.c:1962 +#, c-format +msgid "Dwarf Error: Unknown format content type %Lu." +msgstr "Ошибка в dwarf: неизвеÑтный формат типа Ñодержимого %Lu." + +#: dwarf2.c:2042 +#, c-format +msgid "Dwarf Error: Line info section is too small (%Ld)" +msgstr "Ошибка в dwarf: раздел информации о Ñтроках Ñлишком мал (%Ld)" + +#: dwarf2.c:2072 +#, c-format +msgid "Dwarf Error: Line info data is bigger (%#Lx) than the space remaining in the section (%#lx)" +msgstr "Ошибка в dwarf: данные информации о Ñтроках больше (%#Lx) чем проÑтранÑтво, оÑтавшееÑÑ Ð² разделе (%#lx)" + +#: dwarf2.c:2085 #, c-format msgid "Dwarf Error: Unhandled .debug_line version %d." msgstr "Ошибка в dwarf: Ð½ÐµÐ¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚Ð°Ð½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ %d у .debug_line." -#: dwarf2.c:1475 +#: dwarf2.c:2095 +msgid "Dwarf Error: Ran out of room reading prologue" +msgstr "Ошибка в dwarf: иÑчерпано меÑто при чтении пролога" + +#: dwarf2.c:2113 +#, c-format +msgid "Dwarf Error: Line info unsupported segment selector size %u." +msgstr "Ошибка в dwarf: неподдерживаемый размер %u Ñелектора Ñегмента в информации о Ñтроках." + +#: dwarf2.c:2140 msgid "Dwarf Error: Invalid maximum operations per instruction." msgstr "Ошибка в dwarf: неверное макÑимальное количеÑтво операций на инÑтрукцию." -#: dwarf2.c:1662 +#: dwarf2.c:2159 +msgid "Dwarf Error: Ran out of room reading opcodes" +msgstr "Ошибка в dwarf: иÑчерпано меÑто при чтении кодов операций" + +#: dwarf2.c:2332 msgid "Dwarf Error: mangled line number section." msgstr "Ошибка в dwarf: иÑкажённый раздел номеров Ñтрок." -#: dwarf2.c:1989 dwarf2.c:2109 dwarf2.c:2394 +#: dwarf2.c:2833 dwarf2.c:2894 +msgid "Dwarf Error: Invalid abstract instance DIE ref." +msgstr "Ошибка в dwarf: некорректный абÑтрактный ÑкземплÑÑ€ ÑÑылки DIE." + +#: dwarf2.c:2870 +#, c-format +msgid "Dwarf Error: Unable to read alt ref %llu." +msgstr "Ошибка в dwarf: невозможно прочитать альтернативную ÑÑылку %llu." + +#: dwarf2.c:2911 dwarf2.c:3076 dwarf2.c:3428 #, c-format msgid "Dwarf Error: Could not find abbrev number %u." -msgstr "Ошибка в dwarf: Ðевозможно найти укороченный номер %u." +msgstr "Ошибка в dwarf: невозможно найти укороченный номер %u." -#: dwarf2.c:2355 +#: dwarf2.c:2928 +msgid "Dwarf Error: Abstract instance recursion detected." +msgstr "Ошибка в dwarf: обнаружена рекурÑÐ¸Ñ Ð°Ð±Ñтрактного ÑкземплÑра." + +#: dwarf2.c:3347 #, c-format -msgid "Dwarf Error: found dwarf version '%u', this reader only handles version 2, 3 and 4 information." -msgstr "Ошибка в dwarf: найдена верÑÐ¸Ñ dwarf «%u», Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð½Ð¸Ð¼Ð°ÐµÑ‚ только верÑии 2, 3 и 4." +msgid "Dwarf Error: found dwarf version '%u', this reader only handles version 2, 3, 4 and 5 information." +msgstr "Ошибка в dwarf: найдена верÑÐ¸Ñ dwarf «%u», Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð½Ð¸Ð¼Ð°ÐµÑ‚ только верÑии 2, 3, 4 и 5." -#: dwarf2.c:2362 +#: dwarf2.c:3391 #, c-format msgid "Dwarf Error: found address size '%u', this reader can not handle sizes greater than '%u'." msgstr "Ошибка в dwarf: найден размер адреÑа «%u», Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð½Ðµ умеет работать Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð°Ð¼Ð¸ более чем «%u»." -#: dwarf2.c:2385 +#: dwarf2.c:3494 +msgid "Dwarf Error: DW_AT_comp_dir attribute encountered with a non-string form." +msgstr "Ошибка в dwarf: вÑтречен атрибут DW_AT_comp_dir в не Ñтроковом виде." + +#: ecoff.c:964 #, c-format -msgid "Dwarf Error: Bad abbrev number: %u." -msgstr "Ошибка в dwarf: Ðеверный укороченный номер: %u." +msgid "%B: warning: isymMax (%ld) is greater than ifdMax (%ld)" +msgstr "%B: предупреждение: isymMax (%ld) больше, чем ifdMax (%ld)" -#: ecoff.c:1239 +#: ecoff.c:1261 #, c-format msgid "Unknown basic type %d" msgstr "ÐеизвеÑтный начальный тип %d" -#: ecoff.c:1496 +#: ecoff.c:1518 #, c-format msgid "" "\n" @@ -582,7 +817,7 @@ "\n" " Символ End+1: %ld" -#: ecoff.c:1503 ecoff.c:1506 +#: ecoff.c:1525 ecoff.c:1528 #, c-format msgid "" "\n" @@ -591,7 +826,7 @@ "\n" " Первый Ñимвол: %ld" -#: ecoff.c:1518 +#: ecoff.c:1541 #, c-format msgid "" "\n" @@ -600,7 +835,7 @@ "\n" " Символ End+1: %-7ld Тип: %s" -#: ecoff.c:1525 +#: ecoff.c:1548 #, c-format msgid "" "\n" @@ -609,7 +844,7 @@ "\n" " Локальный Ñимвол: %ld" -#: ecoff.c:1533 +#: ecoff.c:1556 #, c-format msgid "" "\n" @@ -618,7 +853,7 @@ "\n" " struct; Ñимвол End+1: %ld" -#: ecoff.c:1538 +#: ecoff.c:1561 #, c-format msgid "" "\n" @@ -627,7 +862,7 @@ "\n" " union; Ñимвол End+1: %ld" -#: ecoff.c:1543 +#: ecoff.c:1566 #, c-format msgid "" "\n" @@ -636,7 +871,7 @@ "\n" " enum; Ñимвол End+1: %ld" -#: ecoff.c:1549 +#: ecoff.c:1572 #, c-format msgid "" "\n" @@ -645,140 +880,280 @@ "\n" " Тип: %s" -#: elf-attrs.c:569 +#: elf-attrs.c:475 +msgid "%B: error: attribute section length too small: %ld" +msgstr "%B: ошибка: длина раздела атрибутов Ñлишком мала: %ld" + +#: elf-attrs.c:603 +#, c-format msgid "error: %B: Object has vendor-specific contents that must be processed by the '%s' toolchain" msgstr "ошибка: %B: объект Ñодержит Ñпециальное Ñодержимое производителÑ, которое должно обрабатыватьÑÑ Ð¸Ð½Ñтрументами Ñборки «%s»" -#: elf-attrs.c:578 +#: elf-attrs.c:613 +#, c-format msgid "error: %B: Object tag '%d, %s' is incompatible with tag '%d, %s'" -msgstr "error: %B: Объектный тег «%d, %s» неÑовмеÑтим Ñ Ñ‚ÐµÐ³Ð¾Ð¼ «%d, %s»" +msgstr "ошибка: %B: объектный тег «%d, %s» неÑовмеÑтим Ñ Ñ‚ÐµÐ³Ð¾Ð¼ «%d, %s»" + +#: elf-eh-frame.c:942 +#, c-format +msgid "discarding zero address range FDE in %B(%A).\n" +msgstr "отбраÑываем нулевой диапазон адреÑов FDE в %B(%A).\n" -#: elf-eh-frame.c:917 +#: elf-eh-frame.c:1047 +#, c-format msgid "%P: error in %B(%A); no .eh_frame_hdr table will be created.\n" -msgstr "%P: ошибка в %B(%A); таблиц .eh_frame_hdr Ñоздана не будет.\n" +msgstr "%P: ошибка в %B(%A); таблица .eh_frame_hdr Ñоздана не будет.\n" + +#: elf-eh-frame.c:1537 +#, c-format +msgid "%P: FDE encoding in %B(%A) prevents .eh_frame_hdr table being created.\n" +msgstr "%P: из-за кодировки FDE в %B(%A) таблица .eh_frame_hdr Ñоздана не будет.\n" + +#: elf-eh-frame.c:1544 +msgid "%P: Further warnings about FDE encoding preventing .eh_frame_hdr generation dropped.\n" +msgstr "%P: в дальнейшем Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¾ не Ñоздании таблицы .eh_frame_hdr из-за кодировки FDE будут отбраÑыватьÑÑ.\n" + +#: elf-eh-frame.c:1866 +#, c-format +msgid "%B: %A not in order" +msgstr "%B: %A не упорÑдочено" + +#: elf-eh-frame.c:1880 +#, c-format +msgid "%B: %A invalid input section size" +msgstr "%B: %A имеет некорректный размер входного раздела" -#: elf-eh-frame.c:1189 -msgid "%P: fde encoding in %B(%A) prevents .eh_frame_hdr table being created.\n" -msgstr "%P: из-за кодировки fde в %B(%A) таблица .eh_frame_hdr Ñоздана не будет.\n" +#: elf-eh-frame.c:1888 +#, c-format +msgid "%B: %A points past end of text section" +msgstr "%B: %A указывает за конец раздела текÑта" -#: elf-eh-frame.c:1605 +#: elf-eh-frame.c:2137 msgid "%P: DW_EH_PE_datarel unspecified for this architecture.\n" msgstr "%P: DW_EH_PE_datarel не определена Ð´Ð»Ñ Ñтой архитектуры.\n" -#: elf-ifunc.c:179 +#: elf-eh-frame.c:2307 +#, c-format +msgid "Invalid output section for .eh_frame_entry: %A" +msgstr "Ðекорректный выходной раздел Ð´Ð»Ñ .eh_frame_entry: %A" + +#: elf-eh-frame.c:2330 +#, c-format +msgid "Invalid contents in %A section" +msgstr "Ðекорректное Ñодержимое в разделе %A" + +#: elf-eh-frame.c:2486 +msgid "%P: .eh_frame_hdr entry overflow.\n" +msgstr "%P: переполнение Ñлемента .eh_frame_hdr.\n" + +#: elf-eh-frame.c:2489 +msgid "%P: .eh_frame_hdr refers to overlapping FDEs.\n" +msgstr "%P: .eh_frame_hdr ÑÑылаетÑÑ Ð½Ð° перекрывающиеÑÑ FDE.\n" + +#: elf-ifunc.c:142 +#, c-format msgid "%F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%B' can not be used when making an executable; recompile with -fPIE and relink with -pie\n" msgstr "%F%P: динамичеÑкий STT_GNU_IFUNC Ñимвол «%s» Ñ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ñ‹Ð¼ указателем в «%B» Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать при Ñоздании иÑполнÑемого файла; перекомпилируйте Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ -fPIE и перекомпонуйте Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ -pie\n" -#: elf-m10200.c:450 elf-m10300.c:1563 elf32-avr.c:1221 elf32-bfin.c:3213 -#: elf32-cr16.c:1482 elf32-cr16c.c:780 elf32-cris.c:2081 elf32-crx.c:922 -#: elf32-d10v.c:509 elf32-epiphany.c:556 elf32-fr30.c:609 elf32-frv.c:4105 -#: elf32-h8300.c:509 elf32-i860.c:1211 elf32-ip2k.c:1468 elf32-iq2000.c:684 -#: elf32-lm32.c:1168 elf32-m32c.c:553 elf32-m32r.c:3106 elf32-m68hc1x.c:1138 -#: elf32-mep.c:535 elf32-microblaze.c:1231 elf32-moxie.c:282 -#: elf32-msp430.c:486 elf32-mt.c:395 elf32-openrisc.c:404 elf32-score.c:2729 -#: elf32-score7.c:2537 elf32-spu.c:5044 elf32-tilepro.c:3214 elf32-v850.c:2143 -#: elf32-xstormy16.c:935 elf64-mmix.c:1590 elfxx-tilegx.c:3577 +#: elf-m10200.c:425 elf-m10300.c:2145 elf32-avr.c:1502 elf32-bfin.c:3116 +#: elf32-cr16.c:1462 elf32-cr16c.c:780 elf32-cris.c:2030 elf32-crx.c:924 +#: elf32-d10v.c:509 elf32-epiphany.c:563 elf32-fr30.c:591 elf32-frv.c:4041 +#: elf32-ft32.c:485 elf32-h8300.c:522 elf32-i860.c:1210 elf32-ip2k.c:1475 +#: elf32-iq2000.c:689 elf32-lm32.c:1106 elf32-m32c.c:622 elf32-m32r.c:3031 +#: elf32-m68hc1x.c:1265 elf32-mep.c:524 elf32-metag.c:1985 +#: elf32-microblaze.c:1556 elf32-moxie.c:285 elf32-mt.c:400 elf32-nds32.c:5328 +#: elf32-or1k.c:1238 elf32-score.c:2731 elf32-score7.c:2540 elf32-spu.c:5076 +#: elf32-tilepro.c:3497 elf32-v850.c:2283 elf32-visium.c:677 +#: elf32-xstormy16.c:923 elf64-mmix.c:1538 elfxx-tilegx.c:3857 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2237 msgid "internal error: out of range error" msgstr "внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: ошибка выхода из диапазона" -#: elf-m10200.c:454 elf-m10300.c:1567 elf32-avr.c:1225 elf32-bfin.c:3217 -#: elf32-cr16.c:1486 elf32-cr16c.c:784 elf32-cris.c:2085 elf32-crx.c:926 -#: elf32-d10v.c:513 elf32-fr30.c:613 elf32-frv.c:4109 elf32-h8300.c:513 -#: elf32-i860.c:1215 elf32-iq2000.c:688 elf32-lm32.c:1172 elf32-m32c.c:557 -#: elf32-m32r.c:3110 elf32-m68hc1x.c:1142 elf32-mep.c:539 -#: elf32-microblaze.c:1235 elf32-moxie.c:286 elf32-msp430.c:490 -#: elf32-openrisc.c:408 elf32-score.c:2733 elf32-score7.c:2541 -#: elf32-spu.c:5048 elf32-tilepro.c:3218 elf32-v850.c:2147 -#: elf32-xstormy16.c:939 elf64-mmix.c:1594 elfxx-mips.c:9465 -#: elfxx-tilegx.c:3581 +#: elf-m10200.c:429 elf-m10300.c:2149 elf32-avr.c:1506 elf32-bfin.c:3120 +#: elf32-cr16.c:1466 elf32-cr16c.c:784 elf32-cris.c:2034 elf32-crx.c:928 +#: elf32-d10v.c:513 elf32-fr30.c:595 elf32-frv.c:4045 elf32-ft32.c:489 +#: elf32-h8300.c:526 elf32-i860.c:1214 elf32-iq2000.c:693 elf32-lm32.c:1110 +#: elf32-m32c.c:626 elf32-m32r.c:3035 elf32-m68hc1x.c:1269 elf32-mep.c:528 +#: elf32-metag.c:1989 elf32-microblaze.c:1560 elf32-moxie.c:289 +#: elf32-msp430.c:1357 elf32-nds32.c:5332 elf32-or1k.c:1242 elf32-score.c:2735 +#: elf32-score7.c:2544 elf32-spu.c:5080 elf32-tilepro.c:3501 elf32-v850.c:2287 +#: elf32-visium.c:681 elf32-xstormy16.c:927 elf64-mmix.c:1542 +#: elfxx-mips.c:10265 elfxx-tilegx.c:3861 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2241 msgid "internal error: unsupported relocation error" msgstr "внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: ошибка неподдерживаемого перемещениÑ" -#: elf-m10200.c:458 elf32-cr16.c:1490 elf32-cr16c.c:788 elf32-crx.c:930 -#: elf32-d10v.c:517 elf32-h8300.c:517 elf32-lm32.c:1176 elf32-m32r.c:3114 -#: elf32-m68hc1x.c:1146 elf32-microblaze.c:1239 elf32-score.c:2737 -#: elf32-score7.c:2545 elf32-spu.c:5052 +#: elf-m10200.c:433 elf32-cr16.c:1470 elf32-cr16c.c:788 elf32-crx.c:932 +#: elf32-d10v.c:517 elf32-h8300.c:530 elf32-lm32.c:1114 elf32-m32r.c:3039 +#: elf32-m68hc1x.c:1273 elf32-microblaze.c:1564 elf32-nds32.c:5336 +#: elf32-score.c:2739 elf32-score7.c:2548 elf32-spu.c:5084 msgid "internal error: dangerous error" -msgstr "внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: ошибка риÑка" +msgstr "внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: опаÑÐ½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°" -#: elf-m10200.c:462 elf-m10300.c:1580 elf32-avr.c:1233 elf32-bfin.c:3225 -#: elf32-cr16.c:1494 elf32-cr16c.c:792 elf32-cris.c:2093 elf32-crx.c:934 -#: elf32-d10v.c:521 elf32-epiphany.c:571 elf32-fr30.c:621 elf32-frv.c:4117 -#: elf32-h8300.c:521 elf32-i860.c:1223 elf32-ip2k.c:1483 elf32-iq2000.c:696 -#: elf32-lm32.c:1180 elf32-m32c.c:565 elf32-m32r.c:3118 elf32-m68hc1x.c:1150 -#: elf32-mep.c:547 elf32-microblaze.c:1243 elf32-moxie.c:294 -#: elf32-msp430.c:498 elf32-mt.c:403 elf32-openrisc.c:416 elf32-score.c:2746 -#: elf32-score7.c:2549 elf32-spu.c:5056 elf32-tilepro.c:3226 elf32-v850.c:2167 -#: elf32-xstormy16.c:947 elf64-mmix.c:1602 elfxx-tilegx.c:3589 +#: elf-m10200.c:437 elf-m10300.c:2166 elf32-avr.c:1514 elf32-bfin.c:3128 +#: elf32-cr16.c:1474 elf32-cr16c.c:792 elf32-cris.c:2042 elf32-crx.c:936 +#: elf32-d10v.c:521 elf32-epiphany.c:578 elf32-fr30.c:603 elf32-frv.c:4053 +#: elf32-ft32.c:497 elf32-h8300.c:534 elf32-i860.c:1222 elf32-ip2k.c:1490 +#: elf32-iq2000.c:701 elf32-lm32.c:1118 elf32-m32c.c:634 elf32-m32r.c:3043 +#: elf32-m68hc1x.c:1277 elf32-mep.c:536 elf32-metag.c:1997 +#: elf32-microblaze.c:1568 elf32-moxie.c:297 elf32-msp430.c:1365 +#: elf32-mt.c:408 elf32-nds32.c:5340 elf32-or1k.c:1250 elf32-score.c:2748 +#: elf32-score7.c:2552 elf32-spu.c:5088 elf32-tilepro.c:3509 elf32-v850.c:2307 +#: elf32-visium.c:689 elf32-xstormy16.c:935 elf64-mmix.c:1550 +#: elfxx-tilegx.c:3869 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2249 msgid "internal error: unknown error" msgstr "внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: неизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°" -#: elf-m10300.c:1507 elf32-arm.c:10419 elf32-i386.c:4264 elf32-m32r.c:2599 -#: elf32-m68k.c:4156 elf32-s390.c:3003 elf32-sh.c:4218 elf32-tilepro.c:3117 -#: elf32-xtensa.c:3066 elf64-s390.c:2978 elf64-sh64.c:1640 elf64-x86-64.c:4110 -#: elfxx-sparc.c:3835 elfxx-tilegx.c:3500 -msgid "%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'" -msgstr "%B(%A+0x%lx): неразрешимое перемещение %s отноÑительно Ñимвола «%s»" +#: elf-m10300.c:812 +#, c-format +msgid "%B: unrecognised MN10300 reloc number: %d" +msgstr "%B: нераÑпознанный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ MN10300: %d" + +#: elf-m10300.c:1028 +#, c-format +msgid "%B: Unsupported transition from %s to %s" +msgstr "%B: неподдерживаемый переход из %s в %s" + +#: elf-m10300.c:1197 +#, c-format +msgid "%B: %s' accessed both as normal and thread local symbol" +msgstr "%B: «%s» доÑтупен как обычный и как локальный Ñимвол нити" + +#: elf-m10300.c:2093 elf32-arm.c:12536 elf32-i386.c:3433 elf32-m32r.c:2526 +#: elf32-m68k.c:3895 elf32-s390.c:3204 elf32-sh.c:4121 elf32-tilepro.c:3401 +#: elf32-xtensa.c:2939 elf64-s390.c:3118 elf64-sh64.c:1636 elf64-x86-64.c:3790 +#: elfxx-sparc.c:3918 elfxx-tilegx.c:3781 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:5001 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6457 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2206 +#, c-format +msgid "%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'" +msgstr "%B(%A+%#Lx): неразрешимое перемещение %s отноÑительно Ñимвола «%s»" -#: elf-m10300.c:1572 +#: elf-m10300.c:2154 msgid "error: inappropriate relocation type for shared library (did you forget -fpic?)" msgstr "ошибка: неподходÑщий тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¾Ð±Ñ‰ÐµÐ¹ библиотеки (не указан -fpic?)" -#: elf-m10300.c:1575 +#: elf-m10300.c:2158 +#, c-format +msgid "%B: taking the address of protected function '%s' cannot be done when making a shared library" +msgstr "%B: получение адреÑа защищённой функции «%s» не может быть выполнено при Ñоздании общей библиотеки" + +#: elf-m10300.c:2161 msgid "internal error: suspicious relocation type used in shared library" msgstr "внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: подозрительный тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð² общей библиотеке" -#: elf-m10300.c:4372 elf32-arm.c:12800 elf32-cr16.c:2451 elf32-cris.c:3057 -#: elf32-hppa.c:1894 elf32-i370.c:503 elf32-i386.c:2182 elf32-lm32.c:1868 -#: elf32-m32r.c:1927 elf32-m68k.c:3253 elf32-s390.c:1652 elf32-sh.c:2931 -#: elf32-tic6x.c:2162 elf32-tilepro.c:1940 elf32-vax.c:1041 elf64-s390.c:1635 -#: elf64-sh64.c:3381 elf64-x86-64.c:2176 elfxx-sparc.c:2119 -#: elfxx-tilegx.c:2261 +#: elf-properties.c:65 +msgid "%B: out of memory in _bfd_elf_get_property" +msgstr "%B: не хватило памÑти в _bfd_elf_get_property" + +#: elf-properties.c:91 +msgid "warning: %B: corrupt GNU_PROPERTY_TYPE (%ld) size: %#lx" +msgstr "предупреждение: %B: повреждённый размер GNU_PROPERTY_TYPE (%ld): %#lx" + +#: elf-properties.c:112 +msgid "warning: %B: corrupt GNU_PROPERTY_TYPE (%ld) type (0x%x) datasz: 0x%x" +msgstr "предупреждение: %B: повреждённый размер GNU_PROPERTY_TYPE (%ld), тип (0x%x), размер данных: 0x%x" + +#: elf-properties.c:151 +msgid "warning: %B: corrupt stack size: 0x%x" +msgstr "предупреждение: %B: повреждённый размер Ñтека: 0x%x" + +#: elf-properties.c:169 +msgid "warning: %B: corrupt no copy on protected size: 0x%x" +msgstr "предупреждение: %B: повреждённый размер у Ð²Ñ‹ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð·Ð°Ñ‰Ð¸Ñ‰Ñ‘Ð½Ð½Ñ‹Ñ… перемещений: 0x%x" + +#: elf-properties.c:186 +msgid "warning: %B: unsupported GNU_PROPERTY_TYPE (%ld) type: 0x%x" +msgstr "предупреждение: %B: неподдерживаемый тип GNU_PROPERTY_TYPE (%ld): 0x%x" + +#. PR 17512: file: f057ec89. +#: elf.c:343 #, c-format -msgid "dynamic variable `%s' is zero size" -msgstr "динамичеÑÐºÐ°Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Â«%s» имеет нулевой размер" +msgid "%B: attempt to load strings from a non-string section (number %d)" +msgstr "%B: попытка загрузить Ñтроки из не Ñтрокового раздела (номер %d)" -#: elf.c:334 -msgid "%B: invalid string offset %u >= %lu for section `%s'" -msgstr "%B: недопуÑтимое Ñмещение Ñтроки %u >= %lu Ð´Ð»Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° «%s»" +#: elf.c:358 +#, c-format +msgid "%B: invalid string offset %u >= %Lu for section `%s'" +msgstr "%B: недопуÑтимое Ñмещение Ñтроки %u >= %Lu Ð´Ð»Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° «%s»" -#: elf.c:446 +#: elf.c:497 /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:7535 +#, c-format msgid "%B symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section" msgstr "%B Ñимвольный номер %lu ÑÑылаетÑÑ Ð½Ð° неÑущеÑтвующий раздел SHT_SYMTAB_SHNDX" -#: elf.c:602 -msgid "%B: Corrupt size field in group section header: 0x%lx" -msgstr "%B: Повреждённое поле размера в заголовке раздела групп: 0x%lx" +#: elf.c:661 +#, c-format +msgid "%B: corrupt size field in group section header: %#Lx" +msgstr "%B: повреждённое поле размера в заголовке раздела групп: %#Lx" + +#: elf.c:676 +#, c-format +msgid "%B: invalid size field in group section header: %#Lx" +msgstr "%B: некорректное поле размера в заголовке раздела групп: %#Lx" -#: elf.c:638 +#: elf.c:712 msgid "%B: invalid SHT_GROUP entry" -msgstr "%B: недопуÑтимый Ñлемент SHT_GROUP" +msgstr "%B: некорректный Ñлемент SHT_GROUP" + +#: elf.c:731 +msgid "%B: no valid group sections found" +msgstr "%B: не найдено корректных разделов групп" -#: elf.c:708 -msgid "%B: no group info for section %A" -msgstr "%B: нет информации о группе Ð´Ð»Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° %A" +#. See PR 21957 for a reproducer. +#: elf.c:760 +#, c-format +msgid "%B: group section '%A' has no contents" +msgstr "%B: раздел групп «%A» не имеет Ñодержимого" + +#: elf.c:820 +#, c-format +msgid "%B: no group info for section '%A'" +msgstr "%B: нет информации о группе Ð´Ð»Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° «%A»" -#: elf.c:737 elf.c:3121 elflink.c:10135 +#: elf.c:851 elf.c:3862 elflink.c:11252 +#, c-format msgid "%B: warning: sh_link not set for section `%A'" msgstr "%B: предупреждение: не задан sh_link Ð´Ð»Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° «%A»" -#: elf.c:756 +#: elf.c:871 +#, c-format msgid "%B: sh_link [%d] in section `%A' is incorrect" msgstr "%B: некорректный sh_link [%d] в разделе «%A»" -#: elf.c:791 -msgid "%B: unknown [%d] section `%s' in group [%s]" -msgstr "%B: неизвеÑтный [%d] раздел «%s» в группе [%s]" - -#: elf.c:1041 -msgid "%B: unable to initialize commpress status for section %s" -msgstr "%B: не удалоÑÑŒ инициализировать ÑоÑтоÑние ÑÐ¶Ð°Ñ‚Ð¸Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° %s" - -#: elf.c:1061 -msgid "%B: unable to initialize decommpress status for section %s" -msgstr "%B: не удалоÑÑŒ инициализировать ÑоÑтоÑние Ñ€Ð°Ð·Ð¶Ð°Ñ‚Ð¸Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° %s" +#: elf.c:884 +#, c-format +msgid "%B: SHT_GROUP section [index %d] has no SHF_GROUP sections" +msgstr "%B: раздел SHT_GROUP [Ð¸Ð½Ð´ÐµÐºÑ %d] не Ñодержит разделов SHF_GROUP" + +#: elf.c:905 +#, c-format +msgid "%B: section group entry number %u is corrupt" +msgstr "%B: номер Ñлемента группы разделов %u повреждён" + +#: elf.c:928 +#, c-format +msgid "%B: unknown type [%#x] section `%s' in group [%A]" +msgstr "%B: неизвеÑтный тип [%#x] раздела «%s» в группе [%A]" + +#: elf.c:1390 +#, c-format +msgid "%B: Invalid sh_link field (%d) in section number %d" +msgstr "%B: некорректное поле sh_link (%d) в номере раздела %d" + +#: elf.c:1406 +#, c-format +msgid "%B: Failed to find link section for section %d" +msgstr "%B: не удалоÑÑŒ найти раздел ÑÑылок Ð´Ð»Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° %d" + +#: elf.c:1433 +#, c-format +msgid "%B: Failed to find info section for section %d" +msgstr "%B: не удалоÑÑŒ найти информационный раздел Ð´Ð»Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° %A" -#: elf.c:1181 +#: elf.c:1605 #, c-format msgid "" "\n" @@ -787,7 +1162,7 @@ "\n" "Заголовок программы:\n" -#: elf.c:1223 +#: elf.c:1647 #, c-format msgid "" "\n" @@ -796,7 +1171,7 @@ "\n" "ДинамичеÑкий раздел:\n" -#: elf.c:1359 +#: elf.c:1788 #, c-format msgid "" "\n" @@ -805,7 +1180,7 @@ "\n" "ОбъÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð²ÐµÑ€Ñий:\n" -#: elf.c:1384 +#: elf.c:1813 #, c-format msgid "" "\n" @@ -814,591 +1189,971 @@ "\n" "ВерÑии ÑÑылок:\n" -#: elf.c:1389 +#: elf.c:1818 #, c-format msgid " required from %s:\n" msgstr " требуетÑÑ Ð¸Ð· %s:\n" -#: elf.c:1796 -msgid "%B: invalid link %lu for reloc section %s (index %u)" -msgstr "%B: недопуÑÑ‚Ð¸Ð¼Ð°Ñ ÑÑылка %lu Ð´Ð»Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° перемещений %s (Ð¸Ð½Ð´ÐµÐºÑ %u)" - -#: elf.c:1966 -msgid "%B: don't know how to handle allocated, application specific section `%s' [0x%8x]" -msgstr "%B: неизвеÑтно как обработать размещённый, Ñпециальный раздел Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Â«%s» [0x%8x]" - -#: elf.c:1978 -msgid "%B: don't know how to handle processor specific section `%s' [0x%8x]" -msgstr "%B: неизвеÑтно как обработать Ñпециальный раздел процеÑÑора «%s» [0x%8x]" - -#: elf.c:1989 -msgid "%B: don't know how to handle OS specific section `%s' [0x%8x]" -msgstr "%B: неизвеÑтно как обработать Ñпециальный раздел ОС «%s» [0x%8x]" - -#: elf.c:1999 -msgid "%B: don't know how to handle section `%s' [0x%8x]" -msgstr "%B: неизвеÑтно как обработать раздел «%s» [0x%8x]" +#: elf.c:2016 +msgid "%B: warning: loop in section dependencies detected" +msgstr "%B: предупреждение: обнаружено зацикливание в завиÑимоÑÑ‚ÑÑ… разделов" -#: elf.c:2634 +#: elf.c:2124 +#, c-format +msgid "%B: warning: multiple symbol tables detected - ignoring the table in section %u" +msgstr "%B: предупреждение: обнаружена пуÑÑ‚Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° Ñимволов — игнорируетÑÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° в разделе %u" + +#: elf.c:2208 +#, c-format +msgid "%B: warning: multiple dynamic symbol tables detected - ignoring the table in section %u" +msgstr "%B: предупреждение: обнаружена пуÑÑ‚Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° динамичеÑких Ñимволов — игнорируетÑÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° в разделе %u" + +#: elf.c:2321 +#, c-format +msgid "%B: invalid link %u for reloc section %s (index %u)" +msgstr "%B: Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÑÑылка %u Ð´Ð»Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° перемещений %s (Ð¸Ð½Ð´ÐµÐºÑ %u)" + +#: elf.c:2480 elf.c:2495 elf.c:2506 elf.c:2519 +#, c-format +msgid "%B: unknown type [%#x] section `%s'" +msgstr "%B: неизвеÑтный тип [%#x] раздела «%s»" + +#: elf.c:3224 +#, c-format +msgid "%B: error: Alignment power %d of section `%A' is too big" +msgstr "%B: ошибка: у раздела «%A» Ñлишком велико выравнивание, кратное %d" + +#: elf.c:3254 #, c-format msgid "warning: section `%A' type changed to PROGBITS" msgstr "предупреждение: тип раздела «%A» изменён на PROGBITS" -#: elf.c:3078 +#: elf.c:3730 +#, c-format +msgid "%B: too many sections: %u" +msgstr "%B: Ñлишком много разделов: %u" + +#: elf.c:3815 +#, c-format msgid "%B: sh_link of section `%A' points to discarded section `%A' of `%B'" msgstr "%B: sh_link раздела «%A» указывает на отброшенный раздел «%A» из «%B»" -#: elf.c:3101 +#: elf.c:3840 +#, c-format msgid "%B: sh_link of section `%A' points to removed section `%A' of `%B'" msgstr "%B: sh_link раздела «%A» указывает на удалённый раздел «%A» из «%B»" -#: elf.c:4527 +#: elf.c:4392 +#, c-format +msgid "%B: GNU_MBIN section `%A' has invalid sh_info field: %d" +msgstr "%B: GNU_MBIN раздела «%A» имеет некорректное поле sh_info: %d" + +#: elf.c:4951 +msgid "%B: TLS sections are not adjacent:" +msgstr "%B: разделы TLS находÑÑ‚ÑÑ Ð½Ðµ Ñ€Ñдом:" + +#: elf.c:4958 +#, c-format +msgid "\t TLS: %A" +msgstr "\t TLS: %A" + +#: elf.c:4962 +#, c-format +msgid "\tnon-TLS: %A" +msgstr "\t не-TLS: %A" + +#: elf.c:5458 msgid "%B: The first section in the PT_DYNAMIC segment is not the .dynamic section" -msgstr "%B: Первый раздел в Ñегменте PT_DYNAMIC не ÑвлÑетÑÑ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¾Ð¼ .dynamic" +msgstr "%B: первый раздел в Ñегменте PT_DYNAMIC не ÑвлÑетÑÑ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¾Ð¼ .dynamic" -#: elf.c:4554 +#: elf.c:5486 msgid "%B: Not enough room for program headers, try linking with -N" -msgstr "%B: ÐедоÑтаточно меÑта Ð´Ð»Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ¾Ð² программы, попытайтеÑÑŒ Ñкомпоновать Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ -N" +msgstr "%B: недоÑтаточно меÑта Ð´Ð»Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ¾Ð² программы, попытайтеÑÑŒ Ñкомпоновать Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ -N" -#: elf.c:4641 -msgid "%B: section %A lma %#lx adjusted to %#lx" -msgstr "%B: lma %#lx раздела %A подогнано к %#lx" +#: elf.c:5574 +#, c-format +msgid "%B: section %A lma %#Lx adjusted to %#Lx" +msgstr "%B: lma %#Lx раздела %A подогнано к %#Lx" -#: elf.c:4776 +#: elf.c:5711 +#, c-format msgid "%B: section `%A' can't be allocated in segment %d" msgstr "%B: раздел «%A» не может быть раÑпределён в Ñегмент %d" -#: elf.c:4824 +#: elf.c:5759 +#, c-format msgid "%B: warning: allocated section `%s' not in segment" msgstr "%B: предупреждение: раÑпределённый раздел «%s» не в Ñегменте" -#: elf.c:5324 +#: elf.c:5957 +msgid "%B: error: non-load segment %d includes file header and/or program header" +msgstr "%B: ошибка: незагружаемый Ñегмент %d включает файловый заголовок и/или программный заголовок" + +#. The fix for this error is usually to edit the linker script being +#. used and set up the program headers manually. Either that or +#. leave room for the headers at the start of the SECTIONS. +#: elf.c:6134 +msgid "%B: error: PHDR segment not covered by LOAD segment" +msgstr "%B: ошибка: Ñегмент PHDR не покрываетÑÑ Ñегментом LOAD" + +#: elf.c:6478 +#, c-format msgid "%B: symbol `%s' required but not present" msgstr "%B: требуетÑÑ Ñимвол «%s», но он отÑутÑтвует" -#: elf.c:5662 -msgid "%B: warning: Empty loadable segment detected, is this intentional ?\n" -msgstr "%B: предупреждение: Обнаружен пуÑтой загружаемый Ñегмент, Ñто так задумывалоÑÑŒ?\n" - -#: elf.c:6692 +#: elf.c:6821 #, c-format -msgid "Unable to find equivalent output section for symbol '%s' from section '%s'" -msgstr "Ðе удалоÑÑŒ найти подходÑщее меÑто вывода Ð´Ð»Ñ Ñимвола '%s' из раздела '%s'" +msgid "%B: warning: Empty loadable segment detected at vaddr=%#Lx, is this intentional?" +msgstr "%B: предупреждение: обнаружен пуÑтой загружаемый Ñегмент по vaddr=%#Lx, Ñто так задумывалоÑÑŒ?" -#: elf.c:7692 -msgid "%B: unsupported relocation type %s" -msgstr "%B: неподдерживаемый тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %s" +#: elf.c:7435 +#, c-format +msgid "%B: warning: segment alignment of %#Lx is too large" +msgstr "%B: предупреждение: выравнивание Ñегмента %#Lx Ñлишком велико" -#: elf32-arm.c:3617 -msgid "" -"%B(%s): warning: interworking not enabled.\n" -" first occurrence: %B: Thumb call to ARM" -msgstr "" -"%B(%s): предупреждение: ÑовмеÑÑ‚Ð½Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð° не включена.\n" -" первое упоминание: %B: Thumb-вызов в ARM" +#: elf.c:7916 +#, c-format +msgid "Unable to find equivalent output section for symbol '%s' from section '%s'" +msgstr "Ðевозможно найти подходÑщее меÑто вывода Ð´Ð»Ñ Ñимвола «%s» из раздела «%s»" -#: elf32-arm.c:3664 -msgid "" -"%B(%s): warning: interworking not enabled.\n" -" first occurrence: %B: ARM call to Thumb" -msgstr "" -"%B(%s): предупреждение: ÑовмеÑÑ‚Ð½Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð° не включена.\n" -" первое упоминание: %B: ARM-вызов в Thumb" +#: elf.c:8249 +msgid "%B: .gnu.version_r invalid entry" +msgstr "%B: некорректный Ñлемент .gnu.version_r" -#: elf32-arm.c:3878 elf32-arm.c:5315 -#, c-format -msgid "%s: cannot create stub entry %s" -msgstr "%s: невозможно Ñоздать Ñлемент заглушки %s" +#: elf.c:8376 +msgid "%B: .gnu.version_d invalid entry" +msgstr "%B: некорректный Ñлемент .gnu.version_d" -#: elf32-arm.c:5431 +#: elf.c:8928 #, c-format -msgid "unable to find THUMB glue '%s' for '%s'" -msgstr "не удалоÑÑŒ найти THUMB-Ñклейку '%s' Ð´Ð»Ñ '%s'" +msgid "%B: unsupported relocation type %s" +msgstr "%B: неподдерживаемый тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %s" -#: elf32-arm.c:5467 +#: elf32-arc.c:433 elf32-frv.c:6623 elf32-iq2000.c:866 elf32-m32c.c:912 +#: elf32-mt.c:560 elf32-rl78.c:1257 elf32-rx.c:3178 elf32-visium.c:837 +#: elf64-ppc.c:6067 #, c-format -msgid "unable to find ARM glue '%s' for '%s'" -msgstr "не удалоÑÑŒ найти ARM-Ñклейку '%s' Ð´Ð»Ñ '%s'" +msgid "private flags = 0x%lx:" +msgstr "ÑобÑтвенные флаги = 0x%lx:" -#: elf32-arm.c:6005 -msgid "%B: BE8 images only valid in big-endian mode." -msgstr "%B: образы BE8 разрешены только в режиме big-endian." +#: elf32-arc.c:611 +msgid "Warning: %B: Conflicting platform configuration %s with %s.\n" +msgstr "Предупреждение: %B: Противоречивые наÑтройки платформы %s Ñ %s.\n" -#. Give a warning, but do as the user requests anyway. -#: elf32-arm.c:6235 -msgid "%B: warning: selected VFP11 erratum workaround is not necessary for target architecture" -msgstr "%B: предупреждение: выбранный обход ошибки VFP11 не требуетÑÑ Ð´Ð»Ñ Ñ†ÐµÐ»ÐµÐ²Ð¾Ð¹ архитектуры" +#: elf32-arc.c:630 +msgid "error: %B: unable to merge CPU base attributes %s with %s.\n" +msgstr "ошибка: %B: не удалоÑÑŒ объединить оÑновные атрибуты ЦП %s Ñ %s.\n" -#: elf32-arm.c:6779 elf32-arm.c:6799 -msgid "%B: unable to find VFP11 veneer `%s'" -msgstr "%B: невозможно найти Ñклейку VFP11 «%s»" +#: elf32-arc.c:667 +msgid "error: %B: unable to merge ISA extension attributes %s.\n" +msgstr "ошибка: %B: не удалоÑÑŒ объединить атрибуты %s раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ ISA.\n" -#: elf32-arm.c:6848 -#, c-format -msgid "Invalid TARGET2 relocation type '%s'." -msgstr "ÐедопуÑтимый в TARGET2 тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Â«%s»." +#: elf32-arc.c:691 +msgid "error: %B: conflicting ISA extension attributes %s with %s.\n" +msgstr "ошибка: %B: не ÑоглаÑующиеÑÑ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ‹ %s Ñ %s раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ ISA.\n" -#: elf32-arm.c:6933 -msgid "" -"%B(%s): warning: interworking not enabled.\n" -" first occurrence: %B: thumb call to arm" -msgstr "" -"%B(%s): предупреждение: interworking not enabled.\n" -" первое упоминание: %B: thumb-вызов в arm" +#: elf32-arc.c:726 +msgid "error: %B: cannot mix rf16 with full register set %B.\n" +msgstr "error: %B: Ð½ÐµÐ»ÑŒÐ·Ñ Ñмешивать rf16 Ñ Ð¿Ð¾Ð»Ð½Ñ‹Ð¼ набором региÑтров %B.\n" -#: elf32-arm.c:7717 -msgid "%B(%A+0x%lx):unexpected Thumb instruction '0x%x' in TLS trampoline" -msgstr "%B(%A+0x%lx): Ð½ÐµÐ¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ð°Ñ Thumb-инÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ Â«0x%x» в трамплине TLS" +#: elf32-arc.c:752 +msgid "error: %B: conflicting attributes %s: %s with %s.\n" +msgstr "ошибка: %B: не ÑоглаÑующиеÑÑ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ‹ %s: %s Ñ %s.\n" -#: elf32-arm.c:7756 -msgid "%B(%A+0x%lx):unexpected ARM instruction '0x%x' in TLS trampoline" -msgstr "%B(%A+0x%lx): Ð½ÐµÐ¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ð°Ñ ARM-инÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ Â«0x%x» в трамплине TLS" +#: elf32-arc.c:777 +msgid "error: %B: conflicting attributes %s.\n" +msgstr "ошибка: %B: не ÑоглаÑующиеÑÑ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ‹ %s.\n" -#: elf32-arm.c:8209 -msgid "\\%B: Warning: Arm BLX instruction targets Arm function '%s'." -msgstr "\\%B: Предупреждение: Arm инÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ BLX в функции Arm '%s'." +#: elf32-arc.c:877 +#, c-format +msgid "ERROR: Attempting to link %B with a binary %B of different architecture" +msgstr "ОШИБКÐ: попытка компоновки %B Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñ‚ÐµÐºÐ¾Ð¹ %B другой архитектуры" -#: elf32-arm.c:8622 -msgid "%B: Warning: Thumb BLX instruction targets thumb function '%s'." -msgstr "\\%B: Предупреждение: Thumb инÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ BLX в функции thumb '%s'." +#: elf32-arc.c:891 elf32-i370.c:359 elf32-iq2000.c:842 elf32-m32c.c:887 +#: elf32-m68hc1x.c:1384 elf32-ppc.c:4846 elf64-sparc.c:727 elfxx-mips.c:15082 +#, c-format +msgid "%B: uses different e_flags (%#x) fields than previous modules (%#x)" +msgstr "%B: иÑпользуютÑÑ Ð¿Ð¾Ð»Ñ e_flags (%#x), отличающиеÑÑ Ð¾Ñ‚ иÑпользованных в предыдущих модулÑÑ… (%#x)" -#: elf32-arm.c:9460 -msgid "%B(%A+0x%lx):unexpected Thumb instruction '0x%x' referenced by TLS_GOTDESC" -msgstr "%B(%A+0x%lx): Ð½ÐµÐ¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ð°Ñ Thumb-инÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ Â«0x%x», на которую ÑÑылаетÑÑ TLS_GOTDESC" +#: elf32-arc.c:980 +msgid "Error: The ARC4 architecture is no longer supported.\n" +msgstr "Ошибка: архитектура ARC4 больше не поддерживаетÑÑ.\n" -#: elf32-arm.c:9483 -msgid "%B(%A+0x%lx):unexpected ARM instruction '0x%x' referenced by TLS_GOTDESC" -msgstr "%B(%A+0x%lx): Ð½ÐµÐ¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ð°Ñ ARM-инÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ Â«0x%x», на которую ÑÑылаетÑÑ TLS_GOTDESC" +#: elf32-arc.c:986 +msgid "" +"Warning: unset or old architecture flags. \n" +"\t Use default machine.\n" +msgstr "" +"Предупреждение: не заданы или уÑтарели флаги архитектуры.\n" +"\t ИÑпользуетÑÑ Ð¼Ð°ÑˆÐ¸Ð½Ð° по умолчанию.\n" -#: elf32-arm.c:9512 -msgid "%B(%A+0x%lx): R_ARM_TLS_LE32 relocation not permitted in shared object" -msgstr "%B(%A+0x%lx): перемещение R_ARM_TLS_LE32 не разрешено Ð´Ð»Ñ Ð¾Ð±Ñ‰ÐµÐ³Ð¾ объекта" +#: elf32-arc.c:1119 +#, c-format +msgid "%B(%A+%#Lx): CMEM relocation to `%s' is invalid, 16 MSB should be %#x (value is %#Lx)" +msgstr "%B(%A+%#Lx): некорректное перемещение CMEM в «%s», 16 MSB должно быть %#x (значение равно %#Lx)" -#: elf32-arm.c:9727 -msgid "%B(%A+0x%lx): Only ADD or SUB instructions are allowed for ALU group relocations" -msgstr "%B(%A+0x%lx): Ð’ группе перемещений ALU разрешена только инÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ ADD или SUB" +#: elf32-arc.c:1130 +#, c-format +msgid "%B(%A+%#Lx): CMEM relocation to `%s+%#Lx' is invalid, 16 MSB should be %#x (value is %#Lx)" +msgstr "%B(%A+%#Lx): некорректное перемещение CMEM в «%s+%#Lx», 16 MSB должно быть %#x" -#: elf32-arm.c:9767 elf32-arm.c:9854 elf32-arm.c:9937 elf32-arm.c:10022 -msgid "%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s" -msgstr "%B(%A+0x%lx): Переполнение во Ð²Ñ€ÐµÐ¼Ñ Ñ€Ð°Ð·Ð´ÐµÐ»ÐµÐ½Ð¸Ñ 0x%lx Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ðµ группы %s" +#: elf32-arc.c:1836 +msgid "GOT and PLT relocations cannot be fixed with a non dynamic linker." +msgstr "ÐŸÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ GOT и PLT не могут быть поÑтоÑнными Ñ Ð½Ðµ динамичеÑким компоновщиком." -#: elf32-arm.c:10261 elf32-sh.c:4103 elf64-sh64.c:1544 -msgid "%B(%A+0x%lx): %s relocation against SEC_MERGE section" -msgstr "%B(%A+0x%lx): %s перемещение в разделе SEC_MERGE" +#: elf32-arc.c:1860 elf32-rl78.c:1095 elf32-rx.c:1449 +#, c-format +msgid "%B(%A): warning: unaligned access to symbol '%s' in the small data area" +msgstr "%B(%A): предупреждение: невыровненный доÑтуп к Ñимволу «%s» в малой облаÑти данных" -#: elf32-arm.c:10372 elf32-m68k.c:4191 elf32-xtensa.c:2802 -msgid "%B(%A+0x%lx): %s used with TLS symbol %s" -msgstr "%B(%A+0x%lx): %s иÑпользуетÑÑ Ñ TLS-Ñимволом %s" +#: elf32-arc.c:1865 elf32-rl78.c:1100 elf32-rx.c:1454 +#, c-format +msgid "%B(%A): internal error: out of range error" +msgstr "%B(%A): внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: ошибка выхода из диапазона" -#: elf32-arm.c:10373 elf32-m68k.c:4192 elf32-xtensa.c:2803 -msgid "%B(%A+0x%lx): %s used with non-TLS symbol %s" -msgstr "%B(%A+0x%lx): %s иÑпользуетÑÑ Ñ Ð½Ðµ-TLS Ñимволом %s" +#: elf32-arc.c:1870 elf32-rl78.c:1105 elf32-rx.c:1459 +#, c-format +msgid "%B(%A): internal error: unsupported relocation error" +msgstr "%B(%A): внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: ошибка неподдерживаемого перемещениÑ" -#: elf32-arm.c:10453 elf32-tic6x.c:2753 +#: elf32-arc.c:1875 elf32-rl78.c:1110 elf32-rx.c:1464 +#, c-format +msgid "%B(%A): internal error: dangerous relocation" +msgstr "%B(%A): внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: опаÑное перемещение" + +#: elf32-arc.c:1880 elf32-rl78.c:1115 elf32-rx.c:1469 +#, c-format +msgid "%B(%A): internal error: unknown error" +msgstr "%B(%A): внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: неизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°" + +#: elf32-arc.c:1968 elf32-arm.c:14521 elf32-metag.c:2252 elfxx-mips.c:8889 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:7103 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:471 +#, c-format +msgid "%B: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC" +msgstr "%B: перемещение %s Ð´Ð»Ñ Â«%s» не может иÑпользоватьÑÑ Ð¿Ñ€Ð¸ Ñоздании общего объекта; перекомпилируйте Ñ -fPIC" + +#: elf32-arc.c:2860 +msgid "%B: Unknown mandatory ARC object attribute %d." +msgstr "%B: неизвеÑтный обÑзательный атрибут объекта ARC %d." + +#: elf32-arc.c:2868 +msgid "Warning: %B: Unknown ARC object attribute %d." +msgstr "Предупреждение: %B: неизвеÑтный атрибут объекта ARC %d." + +#: elf32-arm.c:4022 elf32-arm.c:4056 elf32-arm.c:4075 elf32-arm.c:4127 +msgid "%B(%A): warning: long branch veneers used in section with SHF_ARM_PURECODE section attribute is only supported for M-profile targets that implement the movw instruction." +msgstr "%B(%A): предупреждение: Ñклейки длинных ветвей, иÑпользованных в разделе Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¾Ð¼ раздела SHF_ARM_PURECODE поддерживаютÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ð´Ð»Ñ Ñ†ÐµÐ»ÐµÐ¹ M-профилÑ, который реализован инÑтрукцией movw." + +#: elf32-arm.c:4087 elf32-arm.c:8806 +msgid "" +"%B(%s): warning: interworking not enabled.\n" +" first occurrence: %B: Thumb call to ARM" +msgstr "" +"%B(%s): предупреждение: ÑовмеÑÑ‚Ð½Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð° не включена.\n" +" первое упоминание: %B: Thumb-вызов в ARM" + +#: elf32-arm.c:4141 +msgid "" +"%B(%s): warning: interworking not enabled.\n" +" first occurrence: %B: ARM call to Thumb" +msgstr "" +"%B(%s): предупреждение: ÑовмеÑÑ‚Ð½Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð° не включена.\n" +" первое упоминание: %B: ARM-вызов в Thumb" + +#: elf32-arm.c:4415 +#, c-format +msgid "No address assigned to the veneers output section %s" +msgstr "Ðе назначен Ð°Ð´Ñ€ÐµÑ Ñклейкам в выходном разделе %s" + +#: elf32-arm.c:4490 elf32-arm.c:6627 elf32-hppa.c:577 elf32-m68hc1x.c:165 +#: elf32-metag.c:1183 elf32-nios2.c:2207 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:2854 +#, c-format +msgid "%B: cannot create stub entry %s" +msgstr "%B: невозможно Ñоздать Ñлемент заглушки %s" + +#: elf32-arm.c:5675 +msgid "%B: Special symbol `%s' only allowed for ARMv8-M architecture or later." +msgstr "%B: Ñпециальный Ñимвол «%s» разрешён только Ð´Ð»Ñ Ð°Ñ€Ñ…Ð¸Ñ‚ÐµÐºÑ‚ÑƒÑ€Ñ‹ ARMv8-M и более новой." + +#: elf32-arm.c:5684 +msgid "%B: invalid special symbol `%s'." +msgstr "%B: некорректный Ñпециальный Ñимвол «%s»." + +#: elf32-arm.c:5686 elf32-arm.c:5726 +msgid "It must be a global or weak function symbol." +msgstr "Он должен быть глобальным или Ñлабым Ñимволов функции." + +#: elf32-arm.c:5724 +msgid "%B: invalid standard symbol `%s'." +msgstr "%B: некорректный Ñтандартный Ñимвол «%s»." + +#: elf32-arm.c:5730 +msgid "%B: absent standard symbol `%s'." +msgstr "%B: отÑутÑтвует Ñтандартный Ñимвол «%s»." + +#: elf32-arm.c:5742 +msgid "%B: `%s' and its special symbol are in different sections." +msgstr "%B: «%s» и его Ñпециальный Ñимвол находÑÑ‚ÑÑ Ð² разных разделах." + +#: elf32-arm.c:5754 +msgid "%B: entry function `%s' not output." +msgstr "%B: Ð²Ñ…Ð¾Ð´Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Â«%s» отÑутÑтвует в выводе." + +#: elf32-arm.c:5761 +msgid "%B: entry function `%s' is empty." +msgstr "%B: Ð²Ñ…Ð¾Ð´Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Â«%s» пуÑта." + +#: elf32-arm.c:5890 +msgid "%B: --in-implib only supported for Secure Gateway import libraries." +msgstr "%B: --in-implib поддерживаетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ð´Ð»Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñ‚ÐµÐº импорта Secure Gateway." + +#: elf32-arm.c:5936 +msgid "%B: invalid import library entry: `%s'." +msgstr "%B: некорректный Ñлемент импортируемой библиотеки: «%s»." + +#: elf32-arm.c:5938 +msgid "Symbol should be absolute, global and refer to Thumb functions." +msgstr "Символ должен быть абÑолютным, глобальным или ÑÑылатьÑÑ Ð½Ð° функции Thumb." + +#: elf32-arm.c:5958 +#, c-format +msgid "Entry function `%s' disappeared from secure code." +msgstr "Ð’Ñ…Ð¾Ð´Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Â«%s» иÑчезла из безопаÑного кода." + +#: elf32-arm.c:5982 +#, c-format +msgid "`%s' refers to a non entry function." +msgstr "«%s» ÑÑылаетÑÑ Ð½Ð° не пуÑтую входную функцию." + +#: elf32-arm.c:5997 +msgid "%B: visibility of symbol `%s' has changed." +msgstr "%B: изменилаÑÑŒ видимоÑÑ‚ÑŒ Ñимвола «%s»." + +#: elf32-arm.c:6006 +msgid "%B: incorrect size for symbol `%s'." +msgstr "%B: некорректный размер Ñимвола «%s»." + +#: elf32-arm.c:6025 +#, c-format +msgid "Offset of veneer for entry function `%s' not a multiple of its size." +msgstr "Смещение Ñклейки входной функции «%s» не кратно её размеру." + +#: elf32-arm.c:6045 +msgid "new entry function(s) introduced but no output import library specified:" +msgstr "поÑвилаÑÑŒ Ð½Ð¾Ð²Ð°Ñ Ð²Ñ…Ð¾Ð´Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ(и), но не указан вывод импортируемой библиотеки:" + +#: elf32-arm.c:6053 +#, c-format +msgid "Start address of `%s' is different from previous link." +msgstr "Ðачальный Ð°Ð´Ñ€ÐµÑ Â«%s» отличаетÑÑ Ð¾Ñ‚ предыдущей ÑÑылки." + +#: elf32-arm.c:6760 +#, c-format +msgid "unable to find THUMB glue '%s' for '%s'" +msgstr "не удалоÑÑŒ найти THUMB-Ñклейку «%s» Ð´Ð»Ñ Â«%s»" + +#: elf32-arm.c:6796 +#, c-format +msgid "unable to find ARM glue '%s' for '%s'" +msgstr "не удалоÑÑŒ найти ARM-Ñклейку «%s» Ð´Ð»Ñ Â«%s»" + +#: elf32-arm.c:7511 +msgid "%B: BE8 images only valid in big-endian mode." +msgstr "%B: образы BE8 разрешены только в режиме big-endian." + +#. Give a warning, but do as the user requests anyway. +#: elf32-arm.c:7742 +msgid "%B: warning: selected VFP11 erratum workaround is not necessary for target architecture" +msgstr "%B: предупреждение: выбранный обход ошибки VFP11 не требуетÑÑ Ð´Ð»Ñ Ñ†ÐµÐ»ÐµÐ²Ð¾Ð¹ архитектуры" + +#: elf32-arm.c:7769 +msgid "%B: warning: selected STM32L4XX erratum workaround is not necessary for target architecture" +msgstr "%B: предупреждение: выбранный обход ошибки STM32L4XX не требуетÑÑ Ð´Ð»Ñ Ñ†ÐµÐ»ÐµÐ²Ð¾Ð¹ архитектуры" + +#: elf32-arm.c:8306 elf32-arm.c:8326 +msgid "%B: unable to find VFP11 veneer `%s'" +msgstr "%B: невозможно найти Ñклейку VFP11 «%s»" + +#: elf32-arm.c:8392 elf32-arm.c:8411 +msgid "%B: unable to find STM32L4XX veneer `%s'" +msgstr "%B: невозможно найти Ñклейку STM32L4XX «%s»" + +#: elf32-arm.c:8618 +#, c-format +msgid "" +"%B(%A+%#x): error: multiple load detected in non-last IT block instruction : STM32L4XX veneer cannot be generated.\n" +"Use gcc option -mrestrict-it to generate only one instruction per IT block.\n" +msgstr "" +"%B(%A+%#x): ошибка: обнаружено неÑколько инÑтрукций загрузок в не поÑледнем блоке IT: невозможно Ñгенерировать Ñклейку STM32L4XX.\n" +"ИÑпользуйте параметр gcc -mrestrict-it Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ð¸ только одной инÑтрукции в блоке IT.\n" + +#: elf32-arm.c:8716 +#, c-format +msgid "Invalid TARGET2 relocation type '%s'." +msgstr "ÐедопуÑтимый TARGET2 тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Â«%s»." + +#. FIXME: We ought to be able to generate thumb-1 PLT +#. instructions... +#: elf32-arm.c:9458 +msgid "%B: Warning: thumb-1 mode PLT generation not currently supported" +msgstr "%B: Предупреждение: Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ PLT в режиме thumb-1 пока не поддерживаетÑÑ" + +#: elf32-arm.c:9723 +#, c-format +msgid "%B(%A+%#Lx): unexpected Thumb instruction '%#lx' in TLS trampoline" +msgstr "%B(%A+%#Lx): Ð½ÐµÐ¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ð°Ñ Thumb-инÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ Â«%#lx» в трамплине TLS" + +#: elf32-arm.c:9763 +#, c-format +msgid "%B(%A+%#Lx): unexpected ARM instruction '%#lx' in TLS trampoline" +msgstr "%B(%A+%#Lx): Ð½ÐµÐ¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ð°Ñ ARM-инÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ Â«%#lx» в трамплине TLS" + +#: elf32-arm.c:10103 +msgid "shared object" +msgstr "общий объект" + +#: elf32-arm.c:10106 +msgid "PIE executable" +msgstr "иÑполнÑемый PIE" + +#: elf32-arm.c:10109 +msgid "%B: relocation %s against external or undefined symbol `%s' can not be used when making a %s; recompile with -fPIC" +msgstr "%B: перемещение %s Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ или неопределённого Ñимвола «%s» не может иÑпользоватьÑÑ Ð¿Ñ€Ð¸ Ñоздании %s; перекомпилируйте Ñ -fPIC" + +#: elf32-arm.c:10240 +msgid "%B: Warning: Arm BLX instruction targets Arm function '%s'." +msgstr "%B: предупреждение: Arm-инÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ BLX Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ Arm «%s»." + +#: elf32-arm.c:10666 +msgid "%B: Warning: Thumb BLX instruction targets thumb function '%s'." +msgstr "%B: предупреждение: Thumb-инÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ BLX Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ thumb «%s»." + +#: elf32-arm.c:11534 +#, c-format +msgid "%B(%A+%#Lx): unexpected Thumb instruction '%#lx' referenced by TLS_GOTDESC" +msgstr "%B(%A+%#Lx): Ð½ÐµÐ¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ð°Ñ Thumb-инÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ Â«%#lx», на которую ÑÑылаетÑÑ TLS_GOTDESC" + +#: elf32-arm.c:11557 +#, c-format +msgid "%B(%A+%#Lx): unexpected ARM instruction '%#lx' referenced by TLS_GOTDESC" +msgstr "%B(%A+%#Lx): Ð½ÐµÐ¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ð°Ñ ARM-инÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ Â«%#lx», на которую ÑÑылаетÑÑ TLS_GOTDESC" + +#: elf32-arm.c:11586 elf32-m68k.c:3701 elf32-metag.c:1916 elf32-nios2.c:4358 +#, c-format +msgid "%B(%A+%#Lx): %s relocation not permitted in shared object" +msgstr "%B(%A+%#Lx): перемещение %s не разрешено Ð´Ð»Ñ Ð¾Ð±Ñ‰ÐµÐ³Ð¾ объекта" + +#: elf32-arm.c:11799 +#, c-format +msgid "%B(%A+%#Lx): Only ADD or SUB instructions are allowed for ALU group relocations" +msgstr "%B(%A+%#Lx): в группе перемещений ALU разрешены только инÑтрукции ADD или SUB" + +#: elf32-arm.c:11839 elf32-arm.c:11929 elf32-arm.c:12015 elf32-arm.c:12103 +#, c-format +msgid "%B(%A+%#Lx): Overflow whilst splitting %#Lx for group relocation %s" +msgstr "%B(%A+%#Lx): переполнение во Ð²Ñ€ÐµÐ¼Ñ Ñ€Ð°Ð·Ð´ÐµÐ»ÐµÐ½Ð¸Ñ %#Lx Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹ перемещений %s" + +#: elf32-arm.c:12369 elf32-sh.c:4003 elf64-sh64.c:1539 +#, c-format +msgid "%B(%A+%#Lx): %s relocation against SEC_MERGE section" +msgstr "%B(%A+%#Lx): перемещение %s в разделе SEC_MERGE" + +#: elf32-arm.c:12481 elf32-m68k.c:3931 elf32-xtensa.c:2681 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6185 +#, c-format +msgid "%B(%A+%#Lx): %s used with TLS symbol %s" +msgstr "%B(%A+%#Lx): %s иÑпользуетÑÑ Ñ TLS-Ñимволом %s" + +#: elf32-arm.c:12483 elf32-m68k.c:3933 elf32-xtensa.c:2683 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6187 +#, c-format +msgid "%B(%A+%#Lx): %s used with non-TLS symbol %s" +msgstr "%B(%A+%#Lx): %s иÑпользуетÑÑ Ñ Ð½Ðµ TLS-Ñимволом %s" + +#: elf32-arm.c:12565 elf32-tic6x.c:2674 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6520 msgid "out of range" msgstr "вне диапазона" -#: elf32-arm.c:10457 elf32-tic6x.c:2757 +#: elf32-arm.c:12569 elf32-nios2.c:4492 elf32-pru.c:821 elf32-tic6x.c:2678 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6524 msgid "unsupported relocation" msgstr "неподдерживаемое перемещение" -#: elf32-arm.c:10465 elf32-tic6x.c:2765 +#: elf32-arm.c:12577 elf32-nios2.c:4502 elf32-pru.c:831 elf32-tic6x.c:2686 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6532 msgid "unknown error" msgstr "неизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°" -#: elf32-arm.c:10890 -msgid "Warning: Clearing the interworking flag of %B because non-interworking code in %B has been linked with it" -msgstr "Предупреждение: Ð¡Ð±Ñ€Ð¾Ñ Ñ„Ð»Ð°Ð³Ð° ÑовмеÑтной работы %B, как Ñ Ð½Ð¸Ð¼ был Ñкомпонован код без ÑовмеÑтной работы из %B" - -#: elf32-arm.c:10984 +#: elf32-arm.c:13157 msgid "%B: Unknown mandatory EABI object attribute %d" msgstr "%B: ÐеизвеÑтный обÑзательный атрибут EABI-объекта %d" -#: elf32-arm.c:10992 +#: elf32-arm.c:13165 msgid "Warning: %B: Unknown EABI object attribute %d" msgstr "Предупреждение: %B: ÐеизвеÑтный атрибут EABI-объекта %d" -#: elf32-arm.c:11173 +#: elf32-arm.c:13432 msgid "error: %B: Unknown CPU architecture" msgstr "ошибка: %B: ÐеизвеÑÑ‚Ð½Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑÑÐ¾Ñ€Ð½Ð°Ñ Ð°Ñ€Ñ…Ð¸Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð°" -#: elf32-arm.c:11211 +#: elf32-arm.c:13470 elf32-nios2.c:2945 +#, c-format msgid "error: %B: Conflicting CPU architectures %d/%d" msgstr "ошибка: %B: Противоречащие архитектурные профили %d/%d" -#: elf32-arm.c:11260 +#: elf32-arm.c:13567 msgid "Error: %B has both the current and legacy Tag_MPextension_use attributes" msgstr "Ошибка: %B Ñодержит одновременно и текущий и уÑтаревший атрибут Tag_MPextension_use" -#: elf32-arm.c:11285 +#: elf32-arm.c:13596 msgid "error: %B uses VFP register arguments, %B does not" msgstr "ошибка: %B иÑпользует региÑтровые аргументы VFP, а %B не иÑпользует" -#: elf32-arm.c:11430 +#: elf32-arm.c:13754 msgid "error: %B: unable to merge virtualization attributes with %B" msgstr "ошибка: %B: не удалоÑÑŒ объединить атрибуты виртуализации Ñ %B" -#: elf32-arm.c:11456 +#: elf32-arm.c:13780 msgid "error: %B: Conflicting architecture profiles %c/%c" msgstr "ошибка: %B: противоречащие архитектурные профили %c/%c" -#: elf32-arm.c:11557 +#: elf32-arm.c:13919 msgid "Warning: %B: Conflicting platform configuration" msgstr "Предупреждение: %B: Противоречивые наÑтройки платформы" -#: elf32-arm.c:11566 +#: elf32-arm.c:13928 msgid "error: %B: Conflicting use of R9" msgstr "ошибка: %B: Противоречащее иÑпользование R9" -#: elf32-arm.c:11578 +#: elf32-arm.c:13940 msgid "error: %B: SB relative addressing conflicts with use of R9" msgstr "ошибка: %B: противоречащее иÑпользование отноÑительной адреÑации SB и R9" -#: elf32-arm.c:11591 +#: elf32-arm.c:13953 msgid "warning: %B uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may fail" msgstr "предупреждение: %B иÑпользует %u-байтовый wchar_t, Ñ…Ð¾Ñ‚Ñ ÑƒÐ¶Ðµ иÑпользовалÑÑ %u-байтовый wchar_t; иÑпользование значений wchar_t в разных объектах может привеÑти к ошибке" -#: elf32-arm.c:11622 +#: elf32-arm.c:13984 msgid "warning: %B uses %s enums yet the output is to use %s enums; use of enum values across objects may fail" msgstr "предупреждение: %B иÑпользует %s enum, Ñ…Ð¾Ñ‚Ñ ÑƒÐ¶Ðµ иÑпользовалÑÑ %s enum; иÑпользование значений enum в разных объектах может привеÑти к ошибке" -#: elf32-arm.c:11634 +#: elf32-arm.c:13996 msgid "error: %B uses iWMMXt register arguments, %B does not" msgstr "ошибка: %B иÑпользует региÑтровые аргументы iWMMXt, а %B не иÑпользует" -#: elf32-arm.c:11651 +#: elf32-arm.c:14013 msgid "error: fp16 format mismatch between %B and %B" msgstr "ошибка: формат fp16 раÑходитÑÑ Ð² %B и %B" -#: elf32-arm.c:11675 -msgid "DIV usage mismatch between %B and %B" -msgstr "ИÑпользование DIV раÑходитÑÑ Ð² %B и %B" - -#: elf32-arm.c:11694 -msgid "%B has has both the current and legacy Tag_MPextension_use attributes" +#: elf32-arm.c:14049 +msgid "%B has both the current and legacy Tag_MPextension_use attributes" msgstr "%B Ñодержит одновременно и текущий и уÑтаревший атрибут Tag_MPextension_use" #. Ignore init flag - it may not be set, despite the flags field #. containing valid data. #. Ignore init flag - it may not be set, despite the flags field containing valid data. -#: elf32-arm.c:11782 elf32-bfin.c:5079 elf32-cris.c:4169 elf32-m68hc1x.c:1282 -#: elf32-m68k.c:1236 elf32-score.c:3994 elf32-score7.c:3800 elf32-vax.c:529 -#: elfxx-mips.c:14103 +#. Ignore init flag - it may not be set, despite the flags field +#. containing valid data. +#: elf32-arm.c:14136 elf32-bfin.c:4729 elf32-cris.c:3905 elf32-m68hc1x.c:1409 +#: elf32-m68k.c:1199 elf32-score.c:3998 elf32-score7.c:3803 elf32-vax.c:536 +#: elf32-xgate.c:669 elfxx-mips.c:15756 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6686 #, c-format msgid "private flags = %lx:" msgstr "ÑобÑтвенные флаги = %lx:" -#: elf32-arm.c:11791 +#: elf32-arm.c:14145 #, c-format msgid " [interworking enabled]" msgstr " [ÑовмеÑÑ‚Ð½Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð° включена]" -#: elf32-arm.c:11799 +#: elf32-arm.c:14153 #, c-format msgid " [VFP float format]" msgstr " [VFP формат плавающей точки]" -#: elf32-arm.c:11801 +#: elf32-arm.c:14155 #, c-format msgid " [Maverick float format]" msgstr " [Maverick формат плавающей точки]" -#: elf32-arm.c:11803 +#: elf32-arm.c:14157 #, c-format msgid " [FPA float format]" msgstr " [FPA формат плавающей точки]" -#: elf32-arm.c:11812 +#: elf32-arm.c:14166 #, c-format msgid " [new ABI]" msgstr " [новый ABI]" -#: elf32-arm.c:11815 +#: elf32-arm.c:14169 #, c-format msgid " [old ABI]" msgstr " [Ñтарый ABI]" -#: elf32-arm.c:11818 +#: elf32-arm.c:14172 #, c-format msgid " [software FP]" msgstr " [Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð½Ð°Ñ FP]" -#: elf32-arm.c:11827 +#: elf32-arm.c:14181 #, c-format msgid " [Version1 EABI]" msgstr " [ВерÑиÑ1 EABI]" -#: elf32-arm.c:11830 elf32-arm.c:11841 +#: elf32-arm.c:14184 elf32-arm.c:14195 #, c-format msgid " [sorted symbol table]" msgstr " [отÑÐ¾Ñ€Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° Ñимволов]" -#: elf32-arm.c:11832 elf32-arm.c:11843 +#: elf32-arm.c:14186 elf32-arm.c:14197 #, c-format msgid " [unsorted symbol table]" msgstr " [неÑÐ¾Ñ€Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° Ñимволов]" -#: elf32-arm.c:11838 +#: elf32-arm.c:14192 #, c-format msgid " [Version2 EABI]" msgstr " [ВерÑиÑ2 EABI]" -#: elf32-arm.c:11846 +#: elf32-arm.c:14200 #, c-format msgid " [dynamic symbols use segment index]" msgstr " [динамичеÑкие Ñимволы иÑпользуют Ñегментный индекÑ]" -#: elf32-arm.c:11849 +#: elf32-arm.c:14203 #, c-format msgid " [mapping symbols precede others]" msgstr " [проецируемые Ñимволы указываютÑÑ Ñ€Ð°Ð½ÑŒÑˆÐµ]" -#: elf32-arm.c:11856 +#: elf32-arm.c:14210 #, c-format msgid " [Version3 EABI]" msgstr " [ВерÑиÑ3 EABI]" -#: elf32-arm.c:11860 +#: elf32-arm.c:14214 #, c-format msgid " [Version4 EABI]" msgstr " [ВерÑиÑ4 EABI]" -#: elf32-arm.c:11864 +#: elf32-arm.c:14218 #, c-format msgid " [Version5 EABI]" msgstr " [ВерÑиÑ5 EABI]" -#: elf32-arm.c:11867 +#: elf32-arm.c:14221 +#, c-format +msgid " [soft-float ABI]" +msgstr " [soft-float ABI]" + +#: elf32-arm.c:14224 +#, c-format +msgid " [hard-float ABI]" +msgstr " [hard-float ABI]" + +#: elf32-arm.c:14230 #, c-format msgid " [BE8]" msgstr " [BE8]" -#: elf32-arm.c:11870 +#: elf32-arm.c:14233 #, c-format msgid " [LE8]" msgstr " [LE8]" -#: elf32-arm.c:11876 +#: elf32-arm.c:14239 #, c-format msgid " " msgstr " <нераÑÐ¿Ð¾Ð·Ð½Ð°Ð½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ EABI>" -#: elf32-arm.c:11883 +#: elf32-arm.c:14246 #, c-format msgid " [relocatable executable]" msgstr " [перемещаемый иÑполнÑемый]" -#: elf32-arm.c:11886 -#, c-format -msgid " [has entry point]" -msgstr " [имеет точку входа]" - -#: elf32-arm.c:11891 +#: elf32-arm.c:14251 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6689 #, c-format msgid "" msgstr "<ÐераÑпознанный набор битов флага>" -#: elf32-arm.c:12189 elf32-i386.c:1461 elf32-s390.c:1000 elf32-tic6x.c:2829 -#: elf32-tilepro.c:1336 elf32-xtensa.c:1009 elf64-s390.c:960 -#: elf64-x86-64.c:1364 elfxx-sparc.c:1371 elfxx-tilegx.c:1586 +#: elf32-arm.c:14368 elf32-i386.c:1510 elf32-s390.c:956 elf32-tic6x.c:2749 +#: elf32-tilepro.c:1471 elf32-xtensa.c:1018 elf64-s390.c:875 +#: elf64-x86-64.c:1823 elfxx-sparc.c:1420 elfxx-tilegx.c:1688 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6978 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:513 +#, c-format msgid "%B: bad symbol index: %d" msgstr "%B: неправильный Ñимвольный индекÑ: %d" -#: elf32-arm.c:12337 elf64-x86-64.c:1561 elf64-x86-64.c:1732 elfxx-mips.c:8223 -msgid "%B: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC" -msgstr "%B: перемещение %s Ð´Ð»Ñ Â«%s» не может иÑпользоватьÑÑ Ð¿Ñ€Ð¸ Ñоздании общего объекта; перекомпилируйте Ñ -fPIC" +#: elf32-arm.c:15636 elf32-hppa.c:2082 elf32-lm32.c:1989 elf32-m32r.c:2097 +#: elf32-metag.c:2792 elf32-nds32.c:3844 elf32-or1k.c:2281 elf32-ppc.c:6156 +#: elf32-s390.c:1851 elf32-sh.c:3289 elf32-tic6x.c:3205 elf32-tilepro.c:2237 +#: elf64-ppc.c:9893 elf64-s390.c:1785 elfxx-sparc.c:2457 elfxx-tilegx.c:2479 +#: elfxx-x86.c:563 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:8319 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:1112 +#, c-format +msgid "%B: dynamic relocation against `%T' in read-only section `%A'\n" +msgstr "%B: динамичеÑкое перемещение Ñ Â«%T» в разделе только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Â«%A»\n" + +#: elf32-arm.c:15881 +msgid "Errors encountered processing file %B" +msgstr "При обработке файла %B обнаружены ошибки" -#: elf32-arm.c:13460 +#: elf32-arm.c:16318 elflink.c:12394 elflink.c:12441 #, c-format -msgid "Errors encountered processing file %s" -msgstr "При обработке файла %s обнаружены ошибки" +msgid "could not find section %s" +msgstr "невозможно найти раздел %s" -#: elf32-arm.c:14837 +#: elf32-arm.c:17494 msgid "%B: error: Cortex-A8 erratum stub is allocated in unsafe location" msgstr "%B: ошибка: заглушка Ð´Ð»Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¸ Cortex-A8 раÑположена в небезопаÑном меÑте" #. There's not much we can do apart from complain if this #. happens. -#: elf32-arm.c:14864 +#: elf32-arm.c:17521 msgid "%B: error: Cortex-A8 erratum stub out of range (input file too large)" msgstr "%B: ошибка: заглушка Ð´Ð»Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¸ Cortex-A8 находитÑÑ Ð²Ð½Ðµ диапазона (Ñлишком большой входной файл)" -#: elf32-arm.c:14958 elf32-arm.c:14980 +#: elf32-arm.c:18348 elf32-arm.c:18370 msgid "%B: error: VFP11 veneer out of range" msgstr "%B: ошибка: Ñклейка VFP11 вне диапазона" -#: elf32-arm.c:15518 +#: elf32-arm.c:18421 +msgid "%B(%#Lx): error: Cannot create STM32L4XX veneer. Jump out of range by %Ld bytes. Cannot encode branch instruction. " +msgstr "%B(%#Lx): ошибка: невозможно Ñоздать Ñклейку STM32L4XX. Прыжок выходит за диапазон %Ld байт. Ðевозможно закодировать инÑтрукцию ветвлениÑ." + +#: elf32-arm.c:18459 +msgid "%B: error: Cannot create STM32L4XX veneer." +msgstr "%B: ошибка: невозможно Ñоздать Ñклейку STM32L4XX." + +#: elf32-arm.c:19481 msgid "error: %B is already in final BE8 format" msgstr "ошибка: %B уже в конечном формате BE8" -#: elf32-arm.c:15594 +#: elf32-arm.c:19557 msgid "error: Source object %B has EABI version %d, but target %B has EABI version %d" msgstr "ошибка: Объект-иÑточник %B имеет верÑию EABI %d, а цель %B имеет верÑию EABI %d" -#: elf32-arm.c:15610 +#: elf32-arm.c:19572 msgid "error: %B is compiled for APCS-%d, whereas target %B uses APCS-%d" msgstr "ошибка: %B Ñкомпилирован Ð´Ð»Ñ APCS-%d, в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº цель %B иÑпользует APCS-%d" -#: elf32-arm.c:15635 +#: elf32-arm.c:19596 msgid "error: %B uses VFP instructions, whereas %B does not" msgstr "ошибка: %B иÑпользует инÑтрукции VFP, в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº %B не иÑпользует" -#: elf32-arm.c:15639 +#: elf32-arm.c:19600 msgid "error: %B uses FPA instructions, whereas %B does not" msgstr "ошибка: %B иÑпользует инÑтрукции FPA, в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº %B не иÑпользует" -#: elf32-arm.c:15649 +#: elf32-arm.c:19610 msgid "error: %B uses Maverick instructions, whereas %B does not" msgstr "ошибка: %B иÑпользует инÑтрукции Maverick, в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº %B не иÑпользует" -#: elf32-arm.c:15653 +#: elf32-arm.c:19614 msgid "error: %B does not use Maverick instructions, whereas %B does" msgstr "ошибка: %B не иÑпользует инÑтрукции Maverick, в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº %B иÑпользует" -#: elf32-arm.c:15672 +#: elf32-arm.c:19633 msgid "error: %B uses software FP, whereas %B uses hardware FP" msgstr "ошибка: %B иÑпользует программную FP, в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº %B иÑпользует аппаратную FP" -#: elf32-arm.c:15676 +#: elf32-arm.c:19637 msgid "error: %B uses hardware FP, whereas %B uses software FP" msgstr "ошибка: %B иÑпользует аппаратную FP, в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº %B иÑпользует программную FP" -#: elf32-avr.c:1229 elf32-bfin.c:3221 elf32-cris.c:2089 elf32-epiphany.c:567 -#: elf32-fr30.c:617 elf32-frv.c:4113 elf32-i860.c:1219 elf32-ip2k.c:1479 -#: elf32-iq2000.c:692 elf32-m32c.c:561 elf32-mep.c:543 elf32-moxie.c:290 -#: elf32-msp430.c:494 elf32-mt.c:399 elf32-openrisc.c:412 elf32-tilepro.c:3222 -#: elf32-v850.c:2151 elf32-xstormy16.c:943 elf64-mmix.c:1598 -#: elfxx-tilegx.c:3585 +#: elf32-avr.c:959 +#, c-format +msgid "%B: invalid AVR reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ AVR: %d" + +#: elf32-avr.c:1510 elf32-bfin.c:3124 elf32-cris.c:2038 elf32-epiphany.c:574 +#: elf32-fr30.c:599 elf32-frv.c:4049 elf32-ft32.c:493 elf32-i860.c:1218 +#: elf32-ip2k.c:1486 elf32-iq2000.c:697 elf32-m32c.c:630 elf32-mep.c:532 +#: elf32-metag.c:1993 elf32-moxie.c:293 elf32-msp430.c:1361 elf32-mt.c:404 +#: elf32-or1k.c:1246 elf32-tilepro.c:3505 elf32-v850.c:2291 elf32-visium.c:685 +#: elf32-xstormy16.c:931 elf64-mmix.c:1546 elfxx-tilegx.c:3865 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2245 msgid "internal error: dangerous relocation" msgstr "внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: опаÑное перемещение" -#: elf32-avr.c:2415 elf32-hppa.c:598 elf32-m68hc1x.c:166 -msgid "%B: cannot create stub entry %s" -msgstr "%B: невозможно Ñоздать Ñлемент заглушки %s" +#: elf32-avr.c:3319 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:2882 +#, c-format +msgid "cannot create stub entry %s" +msgstr "невозможно Ñоздать Ñлемент заглушки %s" -#: elf32-bfin.c:107 elf32-bfin.c:363 +#: elf32-bfin.c:106 elf32-bfin.c:362 msgid "relocation should be even number" msgstr "значение Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ð¾ быть чётным чиÑлом" -#: elf32-bfin.c:1593 -msgid "%B(%A+0x%lx): unresolvable relocation against symbol `%s'" -msgstr "%B(%A+0x%lx): неразрешимое перемещение отноÑительно Ñимвола «%s»" - -#: elf32-bfin.c:1626 elf32-i386.c:4307 elf32-m68k.c:4233 elf32-s390.c:3055 -#: elf64-s390.c:3030 elf64-x86-64.c:4151 -msgid "%B(%A+0x%lx): reloc against `%s': error %d" -msgstr "%B(%A+0x%lx): перемещение к «%s»: ошибка %d" - -#: elf32-bfin.c:2725 -msgid "%B: relocation at `%A+0x%x' references symbol `%s' with nonzero addend" -msgstr "%B: перемещение «%A+0x%x» ÑÑылаетÑÑ Ð½Ð° Ñимвол «%s» Ñ Ð½ÐµÐ½ÑƒÐ»ÐµÐ²Ñ‹Ð¼ добавлением" +#: elf32-bfin.c:1577 +#, c-format +msgid "%B(%A+%#Lx): unresolvable relocation against symbol `%s'" +msgstr "%B(%A+%#Lx): неразрешимое перемещение Ñ Ñимволом «%s»" -#: elf32-bfin.c:2741 +#: elf32-bfin.c:1608 elf32-i386.c:3473 elf32-m68k.c:3971 elf32-s390.c:3261 +#: elf64-s390.c:3175 elf64-x86-64.c:3839 +#, c-format +msgid "%B(%A+%#Lx): reloc against `%s': error %d" +msgstr "%B(%A+%#Lx): перемещение Ñ Â«%s»: ошибка %d" + +#: elf32-bfin.c:2628 +#, c-format +msgid "%B: relocation at `%A+%#Lx' references symbol `%s' with nonzero addend" +msgstr "%B: перемещение по адреÑу «%A+%#Lx» ÑÑылаетÑÑ Ð½Ð° Ñимвол «%s» Ñ Ð½ÐµÐ½ÑƒÐ»ÐµÐ²Ñ‹Ð¼ добавлением" + +#: elf32-bfin.c:2644 msgid "relocation references symbol not defined in the module" msgstr "перемещение указывает на неопределённый Ñимвол в модуле" -#: elf32-bfin.c:2838 +#: elf32-bfin.c:2741 msgid "R_BFIN_FUNCDESC references dynamic symbol with nonzero addend" msgstr "R_BFIN_FUNCDESC указывает на динамичеÑкий Ñимвол Ñ Ð½ÐµÐ½ÑƒÐ»ÐµÐ²Ñ‹Ð¼ добавлением" -#: elf32-bfin.c:2879 elf32-bfin.c:3002 +#: elf32-bfin.c:2782 elf32-bfin.c:2905 msgid "cannot emit fixups in read-only section" msgstr "невозможно Ñгенерировать меÑÑ‚Ð¾Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð² разделе только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ" -#: elf32-bfin.c:2910 elf32-bfin.c:3040 elf32-lm32.c:1103 elf32-sh.c:5016 +#: elf32-bfin.c:2813 elf32-bfin.c:2943 elf32-lm32.c:1044 elf32-sh.c:4926 msgid "cannot emit dynamic relocations in read-only section" msgstr "невозможно Ñгенерировать динамичеÑкие Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð² разделе только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ" -#: elf32-bfin.c:2960 +#: elf32-bfin.c:2863 msgid "R_BFIN_FUNCDESC_VALUE references dynamic symbol with nonzero addend" msgstr "R_BFIN_FUNCDESC_VALUE указывает на динамичеÑкий Ñимвол Ñ Ð½ÐµÐ½ÑƒÐ»ÐµÐ²Ñ‹Ð¼ добавлением" -#: elf32-bfin.c:3125 +#: elf32-bfin.c:3028 msgid "relocations between different segments are not supported" msgstr "Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñƒ различными Ñегментами не поддерживаютÑÑ" -#: elf32-bfin.c:3126 +#: elf32-bfin.c:3029 msgid "warning: relocation references a different segment" msgstr "предупреждение: перемещение ÑÑылаетÑÑ Ð½Ð° другой Ñегмент" -#: elf32-bfin.c:4971 -msgid "%B: unsupported relocation type %i" -msgstr "%B: неподдерживаемый тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %i" - -#: elf32-bfin.c:5125 elf32-frv.c:6808 +#: elf32-bfin.c:4687 #, c-format -msgid "%s: cannot link non-fdpic object file into fdpic executable" -msgstr "%s: невозможно Ñкомпоновать не-fdpic объектный файл в иÑполнÑемый fdpic" +msgid "%B: unsupported relocation type %d" +msgstr "%B: неподдерживаемый тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %d" -#: elf32-bfin.c:5129 elf32-frv.c:6812 -#, c-format -msgid "%s: cannot link fdpic object file into non-fdpic executable" -msgstr "%s: невозможно Ñкомпоновать fdpic объектный файл в иÑполнÑемый не-fdpic" +#: elf32-bfin.c:4776 elf32-frv.c:6596 +msgid "%B: cannot link non-fdpic object file into fdpic executable" +msgstr "%B: невозможно Ñкомпоновать объектный файл не ÑвлÑющийÑÑ fdpic в иÑполнÑемый fdpic" -#: elf32-bfin.c:5283 +#: elf32-bfin.c:4780 elf32-frv.c:6600 +msgid "%B: cannot link fdpic object file into non-fdpic executable" +msgstr "%B: невозможно Ñкомпоновать объектный файл ÑвлÑющийÑÑ fdpic в иÑполнÑемый не fdpic" + +#: elf32-bfin.c:4930 #, c-format msgid "*** check this relocation %s" msgstr "*** проверьте Ñто перемещение %s" -#: elf32-cris.c:1176 +#: elf32-bfin.c:5046 +msgid "the bfin target does not currently support the generation of copy relocations" +msgstr "Ð´Ð»Ñ Ñ†ÐµÐ»Ð¸ bfin пока не поддерживаетÑÑ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ð¹" + +#: elf32-cr16.c:653 +#, c-format +msgid "Unsupported CR16 relocation type: 0x%x\n" +msgstr "Ðеподдерживаемый тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ CR16: 0x%x\n" + +#: elf32-cr16.c:682 +#, c-format +msgid "%B: unrecognised CR16 reloc number: %d" +msgstr "%B: нераÑпознанный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ CR16: %d" + +#: elf32-cr16c.c:186 +#, c-format +msgid "%B: invalid CR16C reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ CR16C: %d" + +#: elf32-cris.c:467 +#, c-format +msgid "%B: invalid CRIS reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ CRIS: %d" + +#: elf32-cris.c:1116 +#, c-format msgid "%B, section %A: unresolvable relocation %s against symbol `%s'" msgstr "%B, раздел %A: неразрешимое перемещение %s у Ñимвола «%s»" -#: elf32-cris.c:1238 +#: elf32-cris.c:1181 +#, c-format msgid "%B, section %A: No PLT nor GOT for relocation %s against symbol `%s'" msgstr "%B, раздел %A: Ðет ни PLT ни GOT Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %s у Ñимвола «%s»" -#: elf32-cris.c:1240 +#: elf32-cris.c:1184 +#, c-format msgid "%B, section %A: No PLT for relocation %s against symbol `%s'" msgstr "%B, раздел %A: Ðет PLT Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %s у Ñимвола «%s»" -#: elf32-cris.c:1246 elf32-cris.c:1379 elf32-cris.c:1639 elf32-cris.c:1722 -#: elf32-cris.c:1875 elf32-tic6x.c:2662 +#: elf32-cris.c:1190 elf32-cris.c:1323 elf32-cris.c:1588 elf32-cris.c:1671 +#: elf32-cris.c:1824 elf32-tic6x.c:2586 msgid "[whose name is lost]" msgstr "[чьё Ð¸Ð¼Ñ Ð¿Ð¾Ñ‚ÐµÑ€Ñно]" -#: elf32-cris.c:1365 elf32-tic6x.c:2647 -msgid "%B, section %A: relocation %s with non-zero addend %d against local symbol" -msgstr "%B, раздел %A: перемещение %s Ñ Ð½ÐµÐ½ÑƒÐ»ÐµÐ²Ñ‹Ð¼ добавлением %d у локального Ñимвола" - -#: elf32-cris.c:1373 elf32-cris.c:1716 elf32-cris.c:1869 elf32-tic6x.c:2655 -msgid "%B, section %A: relocation %s with non-zero addend %d against symbol `%s'" -msgstr "%B, раздел %A: перемещение %s Ñ Ð½ÐµÐ½ÑƒÐ»ÐµÐ²Ñ‹Ð¼ добавлением %d у Ñимвола «%s»" +#: elf32-cris.c:1308 elf32-tic6x.c:2570 +#, c-format +msgid "%B, section %A: relocation %s with non-zero addend %Ld against local symbol" +msgstr "%B, раздел %A: перемещение %s Ñ Ð½ÐµÐ½ÑƒÐ»ÐµÐ²Ñ‹Ð¼ добавлением %Ld у локального Ñимвола" + +#: elf32-cris.c:1317 elf32-cris.c:1665 elf32-cris.c:1818 elf32-tic6x.c:2579 +#, c-format +msgid "%B, section %A: relocation %s with non-zero addend %Ld against symbol `%s'" +msgstr "%B, раздел %A: перемещение %s Ñ Ð½ÐµÐ½ÑƒÐ»ÐµÐ²Ñ‹Ð¼ добавлением %Ld у Ñимвола «%s»" -#: elf32-cris.c:1399 +#: elf32-cris.c:1344 +#, c-format msgid "%B, section %A: relocation %s is not allowed for global symbol: `%s'" msgstr "%B, раздел %A: перемещение %s не разрешено Ð´Ð»Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñимвола: «%s»" -#: elf32-cris.c:1415 +#: elf32-cris.c:1361 +#, c-format msgid "%B, section %A: relocation %s with no GOT created" msgstr "%B, раздел %A: перемещение %s без Ñозданного GOT" #. We shouldn't get here for GCC-emitted code. -#: elf32-cris.c:1630 +#: elf32-cris.c:1578 +#, c-format msgid "%B, section %A: relocation %s has an undefined reference to `%s', perhaps a declaration mixup?" msgstr "%B, раздел %A: перемещение %s имеет неопределённую ÑÑылку на «%s»; возможно, Ñмешение объÑвлений?" -#: elf32-cris.c:2002 +#: elf32-cris.c:1581 +#, c-format +msgid "%B, section %A: relocation %s is not allowed for `%s', a global symbol with default visibility, perhaps a declaration mixup?" +msgstr "%B, раздел %A: перемещение %s не разрешено Ð´Ð»Ñ Â«%s», глобального Ñимвола Ñ Ð²Ð¸Ð´Ð¸Ð¼Ð¾Ñтью по умолчанию; возможно, Ñмешение объÑвлений?" + +#: elf32-cris.c:1952 +#, c-format msgid "%B, section %A: relocation %s is not allowed for symbol: `%s' which is defined outside the program, perhaps a declaration mixup?" msgstr "%B, раздел %A: перемещение %s не разрешено Ð´Ð»Ñ Ñимвола: «%s», который определён вне программы; возможно, Ñмешение объÑвлений?" -#: elf32-cris.c:2055 +#: elf32-cris.c:2005 msgid "(too many global variables for -fpic: recompile with -fPIC)" msgstr "(Ñлишком много глобальных переменных Ð´Ð»Ñ -fpic: перекомпилируйте Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ -fPIC)" -#: elf32-cris.c:2062 +#: elf32-cris.c:2012 msgid "(thread-local data too big for -fpic or -msmall-tls: recompile with -fPIC or -mno-small-tls)" msgstr "(локальный данные нити Ñлишком велики Ð´Ð»Ñ -fpic или -msmall-tls: перекомпилируйте Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ -fPIC или -mno-small-tls)" -#: elf32-cris.c:3261 +#: elf32-cris.c:3047 +#, c-format msgid "" "%B, section %A:\n" -" v10/v32 compatible object %s must not contain a PIC relocation" +" v10/v32 compatible object must not contain a PIC relocation" msgstr "" "%B, раздел %A:\n" -" v10/v32 ÑовмеÑтимый объект %s не должен Ñодержать Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ PIC" +" v10/v32 ÑовмеÑтимый объект не должен Ñодержать перемещение PIC" -#: elf32-cris.c:3366 +#: elf32-cris.c:3101 +#, c-format msgid "" "%B, section %A:\n" " relocation %s not valid in a shared object; typically an option mixup, recompile with -fPIC" @@ -1406,7 +2161,8 @@ "%B, раздел %A:\n" " перемещение %s не должно иÑпользоватьÑÑ Ð² общем объекте; возможно, Ñмешение параметров, перекомпилируйте Ñ -fPIC" -#: elf32-cris.c:3580 +#: elf32-cris.c:3319 +#, c-format msgid "" "%B, section %A:\n" " relocation %s should not be used in a shared object; recompile with -fPIC" @@ -1414,7 +2170,8 @@ "%B, раздел %A:\n" " перемещение %s не должно иÑпользоватьÑÑ Ð² общем объекте; перекомпилируйте Ñ -fPIC" -#: elf32-cris.c:4002 +#: elf32-cris.c:3744 +#, c-format msgid "" "%B, section `%A', to symbol `%s':\n" " relocation %s should not be used in a shared object; recompile with -fPIC" @@ -1422,42 +2179,57 @@ "%B, раздел «%A», к Ñимволу «%s»:\n" " перемещение %s не должно иÑпользоватьÑÑ Ð² общем объекте; перекомпилируйте Ñ -fPIC" -#: elf32-cris.c:4118 +#: elf32-cris.c:3857 msgid "Unexpected machine number" msgstr "Ðеожидаемое машинное чиÑло" -#: elf32-cris.c:4172 +#: elf32-cris.c:3908 #, c-format msgid " [symbols have a _ prefix]" msgstr " [Ñимволы Ñодержат Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ _]" -#: elf32-cris.c:4175 +#: elf32-cris.c:3911 #, c-format msgid " [v10 and v32]" msgstr " [v10 и v32]" -#: elf32-cris.c:4178 +#: elf32-cris.c:3914 #, c-format msgid " [v32]" msgstr " [v32]" -#: elf32-cris.c:4223 +#: elf32-cris.c:3958 msgid "%B: uses _-prefixed symbols, but writing file with non-prefixed symbols" msgstr "%B: иÑпользуютÑÑ Ñимволы Ñ Ð¿Ñ€ÐµÑ„Ð¸ÐºÑом _, но в файл запиÑываютÑÑ Ñимволы без префикÑов" -#: elf32-cris.c:4224 +#: elf32-cris.c:3959 msgid "%B: uses non-prefixed symbols, but writing file with _-prefixed symbols" msgstr "%B: иÑпользуютÑÑ Ñимволы без префикÑа _, но в файл запиÑываютÑÑ Ñимволы Ñ Ð¿Ñ€ÐµÑ„Ð¸ÐºÑом _" -#: elf32-cris.c:4243 +#: elf32-cris.c:3978 msgid "%B contains CRIS v32 code, incompatible with previous objects" msgstr "%B Ñодержит код CRIS v32, который не ÑовмеÑтим Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð¸Ð¼Ð¸ объектами" -#: elf32-cris.c:4245 +#: elf32-cris.c:3980 msgid "%B contains non-CRIS-v32 code, incompatible with previous objects" msgstr "%B Ñодержит код не-CRIS v32, который не ÑовмеÑтим Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð¸Ð¼Ð¸ объектами" -#: elf32-dlx.c:142 +#: elf32-crx.c:429 +#, c-format +msgid "%B: unrecognised CRX reloc number: %d" +msgstr "%B: нераÑпознанный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ CRX: %d" + +#: elf32-d10v.c:234 +#, c-format +msgid "%B: invalid D10V reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ D10V: %d" + +#: elf32-d30v.c:522 elf32-d30v.c:541 +#, c-format +msgid "%B: invalid D30V reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ D30V: %d" + +#: elf32-dlx.c:141 #, c-format msgid "BFD Link Error: branch (PC rel16) to section (%s) not supported" msgstr "Ошибка компоновки BFD: ветвление (PC rel16) в раздел (%s) не поддерживаетÑÑ" @@ -1467,515 +2239,896 @@ msgid "BFD Link Error: jump (PC rel26) to section (%s) not supported" msgstr "Ошибка компоновки BFD: прыжок (PC rel26) в раздел (%s) не поддерживаетÑÑ" +#: elf32-dlx.c:548 +#, c-format +msgid "Invalid DLX reloc number: %d" +msgstr "Ðекорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ DLX: %d" + +#: elf32-epiphany.c:376 +#, c-format +msgid "%B: invalid Epiphany reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Epiphany: %d" + #. Only if it's not an unresolved symbol. -#: elf32-epiphany.c:563 elf32-ip2k.c:1475 +#: elf32-epiphany.c:570 elf32-ip2k.c:1482 msgid "unsupported relocation between data/insn address spaces" msgstr "неподдерживаемое перемещение между адреÑным проÑтранÑтвом данных/insn" -#: elf32-frv.c:1509 elf32-frv.c:1658 +#: elf32-fr30.c:381 +#, c-format +msgid "%B: invalid FR30 reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ FR30: %d" + +#: elf32-frv.c:1451 elf32-frv.c:1602 msgid "relocation requires zero addend" msgstr "Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ÑÑ Ð½ÑƒÐ»ÐµÐ²Ð¾Ðµ добавление" -#: elf32-frv.c:2888 +#: elf32-frv.c:2557 +#, c-format +msgid "%B: invalid FRV reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ FRV: %d" + +#: elf32-frv.c:2823 +#, c-format msgid "%H: relocation to `%s+%v' may have caused the error above\n" msgstr "%H: перемещение в «%s+%v» может быть вызвано предыдущей ошибкой\n" -#: elf32-frv.c:2905 +#: elf32-frv.c:2840 msgid "%H: relocation references symbol not defined in the module\n" msgstr "%H: перемещение указывает на неопределённый Ñимвол в модуле\n" -#: elf32-frv.c:2981 +#: elf32-frv.c:2916 msgid "%H: R_FRV_GETTLSOFF not applied to a call instruction\n" msgstr "%H: R_FRV_GETTLSOFF не применимо Ð´Ð»Ñ Ð¸Ð½Ñтрукции call\n" -#: elf32-frv.c:3022 +#: elf32-frv.c:2957 msgid "%H: R_FRV_GOTTLSDESC12 not applied to an lddi instruction\n" msgstr "%H R_FRV_GOTTLSDESC12 не применимо Ð´Ð»Ñ Ð¸Ð½Ñтрукции lddi\n" -#: elf32-frv.c:3093 +#: elf32-frv.c:3028 msgid "%H: R_FRV_GOTTLSDESCHI not applied to a sethi instruction\n" msgstr "%H: R_FRV_GOTTLSDESCHI не применимо Ð´Ð»Ñ Ð¸Ð½Ñтрукции sethi\n" -#: elf32-frv.c:3130 +#: elf32-frv.c:3065 msgid "%H: R_FRV_GOTTLSDESCLO not applied to a setlo or setlos instruction\n" msgstr "%H: R_FRV_GOTTLSDESCLO не применимо Ð´Ð»Ñ Ð¸Ð½Ñтрукции setlo или setlos\n" -#: elf32-frv.c:3177 +#: elf32-frv.c:3112 msgid "%H: R_FRV_TLSDESC_RELAX not applied to an ldd instruction\n" msgstr "%H: R_FRV_TLSDESC_RELAX не применимо Ð´Ð»Ñ Ð¸Ð½Ñтрукции ldd\n" -#: elf32-frv.c:3261 +#: elf32-frv.c:3196 msgid "%H: R_FRV_GETTLSOFF_RELAX not applied to a calll instruction\n" msgstr "%H: R_FRV_GETTLSOFF_RELAX не применимо Ð´Ð»Ñ Ð¸Ð½Ñтрукции calll\n" -#: elf32-frv.c:3315 +#: elf32-frv.c:3250 msgid "%H: R_FRV_GOTTLSOFF12 not applied to an ldi instruction\n" msgstr "%H: R_FRV_GOTTLSOFF12 не применимо Ð´Ð»Ñ Ð¸Ð½Ñтрукции ldi\n" -#: elf32-frv.c:3345 +#: elf32-frv.c:3280 msgid "%H: R_FRV_GOTTLSOFFHI not applied to a sethi instruction\n" msgstr "%H: R_FRV_GOTTLSOFFHI не применимо Ð´Ð»Ñ Ð¸Ð½Ñтрукции sethi\n" -#: elf32-frv.c:3374 +#: elf32-frv.c:3309 msgid "%H: R_FRV_GOTTLSOFFLO not applied to a setlo or setlos instruction\n" msgstr "%H: R_FRV_GOTTLSOFFLO не применимо Ð´Ð»Ñ Ð¸Ð½Ñтрукции setlo или setlos\n" -#: elf32-frv.c:3404 +#: elf32-frv.c:3339 msgid "%H: R_FRV_TLSOFF_RELAX not applied to an ld instruction\n" msgstr "%H: R_FRV_TLSOFF_RELAX не применимо Ð´Ð»Ñ Ð¸Ð½Ñтрукции ld\n" -#: elf32-frv.c:3449 +#: elf32-frv.c:3384 msgid "%H: R_FRV_TLSMOFFHI not applied to a sethi instruction\n" msgstr "%H: R_FRV_TLSMOFFHI не применимо Ð´Ð»Ñ Ð¸Ð½Ñтрукции sethi\n" -#: elf32-frv.c:3476 +#: elf32-frv.c:3411 msgid "R_FRV_TLSMOFFLO not applied to a setlo or setlos instruction\n" msgstr "R_FRV_TLSMOFFLO не применимо Ð´Ð»Ñ Ð¸Ð½Ñтрукции setlo или setlos\n" -#: elf32-frv.c:3597 +#: elf32-frv.c:3532 msgid "%H: R_FRV_FUNCDESC references dynamic symbol with nonzero addend\n" msgstr "%H: R_FRV_FUNCDESC указывает на динамичеÑкий Ñимвол Ñ Ð½ÐµÐ½ÑƒÐ»ÐµÐ²Ñ‹Ð¼ добавлением\n" -#: elf32-frv.c:3638 elf32-frv.c:3760 +#: elf32-frv.c:3573 elf32-frv.c:3695 msgid "%H: cannot emit fixups in read-only section\n" msgstr "%H: невозможно Ñгенерировать меÑÑ‚Ð¾Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð² разделе только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ\n" -#: elf32-frv.c:3669 elf32-frv.c:3803 +#: elf32-frv.c:3604 elf32-frv.c:3738 msgid "%H: cannot emit dynamic relocations in read-only section\n" msgstr "%H: невозможно Ñгенерировать динамичеÑкие Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð² разделе только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ\n" -#: elf32-frv.c:3718 +#: elf32-frv.c:3653 msgid "%H: R_FRV_FUNCDESC_VALUE references dynamic symbol with nonzero addend\n" msgstr "%H: R_FRV_FUNCDESC_VALUE указывает на динамичеÑкий Ñимвол Ñ Ð½ÐµÐ½ÑƒÐ»ÐµÐ²Ñ‹Ð¼ добавлением\n" -#: elf32-frv.c:3974 +#: elf32-frv.c:3910 +#, c-format msgid "%H: reloc against `%s' references a different segment\n" msgstr "%H: перемещение указывает на ÑÑылки «%s» другого Ñегмента\n" -#: elf32-frv.c:4124 +#: elf32-frv.c:4061 +#, c-format msgid "%H: reloc against `%s': %s\n" msgstr "%H: перемещение указывает на «%s»: %s\n" -#: elf32-frv.c:6400 +#: elf32-frv.c:6255 +#, c-format msgid "%B: unsupported relocation type %i\n" msgstr "%B: неподдерживаемый тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %i\n" -#: elf32-frv.c:6722 -#, c-format -msgid "%s: compiled with %s and linked with modules that use non-pic relocations" -msgstr "%s: компилируетÑÑ Ñ %s и компонуетÑÑ Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñми, в которых иÑпользуютÑÑ Ð½Ðµ-pic перемещениÑ" - -#: elf32-frv.c:6775 elf32-iq2000.c:845 elf32-m32c.c:807 +#: elf32-frv.c:6507 #, c-format -msgid "%s: compiled with %s and linked with modules compiled with %s" -msgstr "%s: компилируетÑÑ Ñ %s и компонуетÑÑ Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñми, Ñкомпилированными Ñ %s" +msgid "%B: compiled with %s and linked with modules that use non-pic relocations" +msgstr "%B: компилируетÑÑ Ñ %s и компонуетÑÑ Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñми, в которых иÑпользуютÑÑ Ð½Ðµ-pic перемещениÑ" -#: elf32-frv.c:6787 +#: elf32-frv.c:6561 elf32-iq2000.c:828 elf32-m32c.c:874 #, c-format -msgid "%s: uses different unknown e_flags (0x%lx) fields than previous modules (0x%lx)" -msgstr "%s: иÑпользует другие неизвеÑтные флаги e_flags (0x%lx) чем предыдущие модули (0x%lx)" +msgid "%B: compiled with %s and linked with modules compiled with %s" +msgstr "%B: компилируетÑÑ Ñ %s и компонуетÑÑ Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñми, Ñкомпилированными Ñ %s" -#: elf32-frv.c:6837 elf32-iq2000.c:882 elf32-m32c.c:843 elf32-mt.c:576 -#: elf32-rx.c:3001 +#: elf32-frv.c:6574 #, c-format -msgid "private flags = 0x%lx:" -msgstr "ÑобÑтвенные флаги = 0x%lx:" +msgid "%B: uses different unknown e_flags (%#x) fields than previous modules (%#x)" +msgstr "%B: иÑпользуютÑÑ Ð½ÐµÐ¸Ð·Ð²ÐµÑтные Ð¿Ð¾Ð»Ñ e_flags (%#x), отличающиеÑÑ Ð¾Ñ‚ иÑпользованных в предыдущих модулÑÑ… (%#x)" #: elf32-gen.c:69 elf64-gen.c:69 +#, c-format msgid "%B: Relocations in generic ELF (EM: %d)" msgstr "%B: ÐŸÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð² универÑальном ELF (EM: %d)" -#: elf32-hppa.c:850 elf32-hppa.c:3598 -msgid "%B(%A+0x%lx): cannot reach %s, recompile with -ffunction-sections" -msgstr "%B(%A+0x%lx): невозможно доÑтичь %s, перекомпилируйте Ñ -ffunction-sections" +#: elf32-hppa.c:829 elf32-hppa.c:3499 +#, c-format +msgid "%B(%A+%#Lx): cannot reach %s, recompile with -ffunction-sections" +msgstr "%B(%A+%#Lx): невозможно доÑтичь %s, перекомпилируйте Ñ -ffunction-sections" -#: elf32-hppa.c:1284 +#: elf32-hppa.c:1242 +#, c-format msgid "%B: relocation %s can not be used when making a shared object; recompile with -fPIC" msgstr "%B: перемещение %s не может иÑпользоватьÑÑ Ð¿Ñ€Ð¸ Ñоздании общего объекта; перекомпилируйте Ñ -fPIC" -#: elf32-hppa.c:2791 +#: elf32-hppa.c:2680 +#, c-format msgid "%B: duplicate export stub %s" msgstr "%B: повторный ÑкÑпорт заглушки %s" -#: elf32-hppa.c:3437 -msgid "%B(%A+0x%lx): %s fixup for insn 0x%x is not supported in a non-shared link" -msgstr "%B(%A+0x%lx): %s меÑтоположение Ð´Ð»Ñ insn 0x%x не поддерживаетÑÑ Ð² общей ÑÑылке" - -#: elf32-hppa.c:4284 -msgid "%B(%A+0x%lx): cannot handle %s for %s" -msgstr "%B(%A+0x%lx): невозможно обработать %s Ð´Ð»Ñ %s" +#: elf32-hppa.c:3333 +#, c-format +msgid "%B(%A+%#Lx): %s fixup for insn %#x is not supported in a non-shared link" +msgstr "%B(%A+%#Lx): %s меÑтоположение Ð´Ð»Ñ insn %#x не поддерживаетÑÑ Ð² не общей ÑÑылке" + +#: elf32-hppa.c:4124 +#, c-format +msgid "%s has both normal and TLS relocs" +msgstr "%s Ñодержит обычные Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¸ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ TLS" + +#: elf32-hppa.c:4142 +msgid "%B:%s has both normal and TLS relocs" +msgstr "%B:%s Ñодержит обычные Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¸ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ TLS" + +#: elf32-hppa.c:4201 +#, c-format +msgid "%B(%A+%#Lx): cannot handle %s for %s" +msgstr "%B(%A+%#Lx): невозможно обработать %s Ð´Ð»Ñ %s" -#: elf32-hppa.c:4603 +#: elf32-hppa.c:4505 msgid ".got section not immediately after .plt section" msgstr "раздел .got не может ÑтоÑÑ‚ÑŒ Ñразу поÑле раздела .plt" +#: elf32-i370.c:307 +#, c-format +msgid "%B: unrecognised I370 reloc number: %d" +msgstr "%B: нераÑпознанный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ I370: %d" + +#: elf32-i370.c:1164 +msgid "%B: unknown relocation type %d for symbol %s" +msgstr "%B: неизвеÑтный тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %d Ð´Ð»Ñ Ñимвола %s" + +#: elf32-i370.c:1306 +#, c-format +msgid "%B: Relocation %s is not yet supported for symbol %s." +msgstr "%B: перемещение %s пока не поддерживаетÑÑ Ð´Ð»Ñ Ñимвола %s." + #. Unknown relocation. -#: elf32-i386.c:373 elf32-m68k.c:384 elf32-ppc.c:1676 elf32-s390.c:379 -#: elf32-tic6x.c:2684 elf64-ppc.c:2300 elf64-s390.c:403 elf64-x86-64.c:265 +#: elf32-i386.c:384 elf32-m68k.c:352 elf32-ppc.c:2039 elf32-s390.c:346 +#: elf32-tic6x.c:2609 elf32-wasm32.c:106 elf64-ppc.c:2516 elf64-s390.c:373 +#: elf64-x86-64.c:285 +#, c-format msgid "%B: invalid relocation type %d" msgstr "%B: неверный тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %d" -#: elf32-i386.c:1404 elf64-x86-64.c:1308 -msgid "%B: TLS transition from %s to %s against `%s' at 0x%lx in section `%A' failed" -msgstr "%B: TLS-переход из %s в %s Ð´Ð»Ñ Â«%s» по 0x%lx в разделе «%A» завершилÑÑ Ð½ÐµÑƒÐ´Ð°Ñ‡Ð½Ð¾" +#: elf32-i386.c:1159 elf64-x86-64.c:1335 +#, c-format +msgid "%B: TLS transition from %s to %s against `%s' at %#Lx in section `%A' failed" +msgstr "%B: TLS-переход из %s в %s Ð´Ð»Ñ Â«%s» по адреÑу %#Lx в разделе «%A» завершилÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹" -#: elf32-i386.c:1549 elf32-i386.c:3244 elf64-x86-64.c:1487 elf64-x86-64.c:3125 -#: elfxx-sparc.c:3083 -msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s" -msgstr "%B: перемещение %s вмеÑте Ñ STT_GNU_IFUNC Ñимволом «%s» не обрабатываетÑÑ %s" +#: elf32-i386.c:1250 +#, c-format +msgid "%B: direct GOT relocation R_386_GOT32X against `%s' without base register can not be used when making a shared object" +msgstr "%B: прÑмое GOT перемещение R_386_GOT32X c «%s» без базового региÑтра не может иÑпользоватьÑÑ Ð¿Ñ€Ð¸ Ñоздании общего объекта" -#: elf32-i386.c:1711 elf32-s390.c:1182 elf32-sh.c:6362 elf32-tilepro.c:1434 -#: elf32-xtensa.c:1182 elf64-s390.c:1151 elfxx-sparc.c:1548 -#: elfxx-tilegx.c:1701 +#: elf32-i386.c:1703 elf32-s390.c:1184 elf32-sh.c:6057 elf32-tilepro.c:1584 +#: elf32-xtensa.c:1192 elf64-s390.c:1113 elfxx-sparc.c:1601 +#: elfxx-tilegx.c:1793 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:427 +#, c-format msgid "%B: `%s' accessed both as normal and thread local symbol" msgstr "%B: «%s» доÑтупен как обычный и как локальный Ð´Ð»Ñ Ð½Ð¸Ñ‚Ð¸ Ñимвол" -#: elf32-i386.c:2539 elf64-x86-64.c:2506 -msgid "%P: %B: warning: relocation against `%s' in readonly section `%A'.\n" -msgstr "%P: %B: предупреждение: перемещение указывает на «%s» из раздела только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Â«%A».\n" - -#: elf32-i386.c:2629 elf64-x86-64.c:2593 -msgid "%P: %B: warning: relocation in readonly section `%A'.\n" -msgstr "P: %B: предупреждение: перемещение в разделе только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Â«%A».\n" - -#: elf32-i386.c:3086 elf32-tilepro.c:2557 elfxx-tilegx.c:2871 -msgid "%B: unrecognized relocation (0x%x) in section `%A'" -msgstr "%B: нераÑпознанное перемещение (0x%x) в разделе «%A»" +#: elf32-i386.c:1767 +#, c-format +msgid "%B: unsupported non-PIC call to IFUNC `%s'" +msgstr "%B: неподдерживаемый не PIC вызов IFUNC «%s»" + +#: elf32-i386.c:2345 elf64-x86-64.c:2625 +#, c-format +msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't supported" +msgstr "%B: перемещение %s Ñ STT_GNU_IFUNC Ñимволом «%s» не поддерживаетÑÑ" + +#: elf32-i386.c:2378 elf32-i386.c:3684 elf32-i386.c:3823 elf64-x86-64.c:2682 +#: elf64-x86-64.c:4012 elf64-x86-64.c:4166 +msgid "Local IFUNC function `%s' in %B\n" +msgstr "Ð›Ð¾ÐºÐ°Ð»ÑŒÐ½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ IFUNC «%s» в %B\n" + +#: elf32-i386.c:2593 +#, c-format +msgid "%B: direct GOT relocation %s against `%s' without base register can not be used when making a shared object" +msgstr "%B: прÑмое GOT перемещение %s c «%s» без базового региÑтра не может иÑпользоватьÑÑ Ð¿Ñ€Ð¸ Ñоздании общего объекта" -#: elf32-i386.c:3494 elf64-x86-64.c:3513 +#: elf32-i386.c:2628 elf64-x86-64.c:2873 msgid "hidden symbol" msgstr "Ñкрытый Ñимвол" -#: elf32-i386.c:3497 elf64-x86-64.c:3516 +#: elf32-i386.c:2631 elf64-x86-64.c:2876 msgid "internal symbol" msgstr "внутренний Ñимвол" -#: elf32-i386.c:3500 elf64-x86-64.c:3519 +#: elf32-i386.c:2634 elf64-x86-64.c:2879 msgid "protected symbol" msgstr "защищённый Ñимвол" -#: elf32-i386.c:3503 elf64-x86-64.c:3522 +#: elf32-i386.c:2637 elf64-x86-64.c:2882 msgid "symbol" msgstr "Ñимвол" -#: elf32-i386.c:3508 +#: elf32-i386.c:2643 +#, c-format msgid "%B: relocation R_386_GOTOFF against undefined %s `%s' can not be used when making a shared object" msgstr "%B: перемещение R_386_GOTOFF Ð´Ð»Ñ Ð½ÐµÐ¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð¾Ð³Ð¾ %s «%s» не может иÑпользоватьÑÑ Ð¿Ñ€Ð¸ Ñоздании общего объекта" -#: elf32-i386.c:3518 -msgid "%B: relocation R_386_GOTOFF against protected function `%s' can not be used when making a shared object" -msgstr "%B: перемещение R_386_GOTOFF Ð´Ð»Ñ Ð·Ð°Ñ‰Ð¸Ñ‰Ñ‘Ð½Ð½Ð¾Ð¹ функции «%s» не может иÑпользоватьÑÑ Ð¿Ñ€Ð¸ Ñоздании общего объекта" +#: elf32-i386.c:2656 +#, c-format +msgid "%B: relocation R_386_GOTOFF against protected %s `%s' can not be used when making a shared object" +msgstr "%B: перемещение R_386_GOTOFF Ð´Ð»Ñ Ð·Ð°Ñ‰Ð¸Ñ‰Ñ‘Ð½Ð½Ð¾Ð¹ %s «%s» не может иÑпользоватьÑÑ Ð¿Ñ€Ð¸ Ñоздании общего объекта" -#: elf32-i386.c:4839 elf32-tilepro.c:3467 elf64-x86-64.c:4609 -#: elfxx-tilegx.c:3847 +#: elf32-i960.c:140 #, c-format -msgid "discarded output section: `%A'" -msgstr "отброшенный выходной раздел: «%A»" +msgid "%B: invalid i960 reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ i960: %d" -#: elf32-ip2k.c:857 elf32-ip2k.c:863 elf32-ip2k.c:930 elf32-ip2k.c:936 +#: elf32-ip2k.c:856 elf32-ip2k.c:862 elf32-ip2k.c:929 elf32-ip2k.c:935 msgid "ip2k relaxer: switch table without complete matching relocation information." msgstr "ip2k relaxer: таблица переключений без полного ÑÐ¾Ð²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¸ о перемещении." -#: elf32-ip2k.c:880 elf32-ip2k.c:963 +#: elf32-ip2k.c:879 elf32-ip2k.c:962 msgid "ip2k relaxer: switch table header corrupt." msgstr "ip2k relaxer: иÑпорчен заголовок у таблицы переключений." -#: elf32-ip2k.c:1292 +#: elf32-ip2k.c:1245 +#, c-format +msgid "%B: invalid IP2K reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ IP2K: %d" + +#: elf32-ip2k.c:1298 +#, c-format +msgid "ip2k linker: missing page instruction at %#Lx (dest = %#Lx)" +msgstr "компоновщик ip2k: отÑутÑтвует Ñтраница инÑтрукций по адреÑу %#Lx (назнач = %#Lx)" + +#: elf32-ip2k.c:1315 #, c-format -msgid "ip2k linker: missing page instruction at 0x%08lx (dest = 0x%08lx)." -msgstr "ip2k linker: отÑутÑтвует Ñтраница инÑтрукций по адреÑу 0x%08lx (назнач = 0x%08lx)." +msgid "ip2k linker: redundant page instruction at %#Lx (dest = %#Lx)" +msgstr "компоновщик ip2k: повторÑющаÑÑÑ Ñтраница инÑтрукций по адреÑу %#Lx (назнач = %#Lx)" -#: elf32-ip2k.c:1308 +#: elf32-iq2000.c:441 #, c-format -msgid "ip2k linker: redundant page instruction at 0x%08lx (dest = 0x%08lx)." -msgstr "ip2k linker: повторÑющаÑÑÑ Ñтраница инÑтрукций по адреÑу 0x%08lx (назнач = 0x%08lx)." +msgid "%B: invalid IQ2000 reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ IQ2000: %d" -#: elf32-iq2000.c:858 elf32-m32c.c:819 +#: elf32-lm32.c:539 #, c-format -msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)" -msgstr "%s: иÑпользует другие неизвеÑтные флаги e_flags (0x%lx) чем предыдущие модули (0x%lx)" +msgid "%B: invalid LM32 reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ LM32: %d" -#: elf32-lm32.c:706 +#: elf32-lm32.c:648 elf32-nios2.c:3133 msgid "global pointer relative relocation when _gp not defined" msgstr "глобальный указатель отноÑительно перемещениÑ, но _gp не определена" -#: elf32-lm32.c:761 +#: elf32-lm32.c:703 elf32-nios2.c:3570 msgid "global pointer relative address out of range" msgstr "глобальный указатель отноÑительно адреÑа вне диапазона" -#: elf32-lm32.c:1057 +#: elf32-lm32.c:998 msgid "internal error: addend should be zero for R_LM32_16_GOT" msgstr "внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: добавление должно быть нулём Ð´Ð»Ñ R_LM32_16_GOT" -#: elf32-m32r.c:1453 +#: elf32-m32c.c:306 +#, c-format +msgid "%B: invalid M32C reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ M32C: %d" + +#: elf32-m32r.c:1286 +#, c-format +msgid "%B: invalid M32R reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ M32R: %d" + +#: elf32-m32r.c:1458 msgid "SDA relocation when _SDA_BASE_ not defined" msgstr "перемещение SDA, но _SDA_BASE_ не определена" -#: elf32-m32r.c:3043 +#: elf32-m32r.c:2971 elf32-microblaze.c:1064 elf32-microblaze.c:1112 +#, c-format msgid "%B: The target (%s) of an %s relocation is in the wrong section (%A)" msgstr "%B: Цель (%s) Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %s в ошибочном разделе (%A)" -#: elf32-m32r.c:3571 +#: elf32-m32r.c:3473 msgid "%B: Instruction set mismatch with previous modules" msgstr "%B: Ðабор инÑтрукций не Ñовпадает Ñ Ð½Ð°Ð±Ð¾Ñ€Ð¾Ð¼ у предыдущих модулей" -#: elf32-m32r.c:3592 +#: elf32-m32r.c:3494 elf32-nds32.c:6037 #, c-format msgid "private flags = %lx" msgstr "ÑобÑтвенные флаги = %lx" -#: elf32-m32r.c:3597 +#: elf32-m32r.c:3499 #, c-format msgid ": m32r instructions" msgstr ": инÑтрукции m32r" -#: elf32-m32r.c:3598 +#: elf32-m32r.c:3500 #, c-format msgid ": m32rx instructions" msgstr ": инÑтрукции m32rx" -#: elf32-m32r.c:3599 +#: elf32-m32r.c:3501 #, c-format msgid ": m32r2 instructions" msgstr ": инÑтрукции m32r2" -#: elf32-m68hc1x.c:1050 +#: elf32-m68hc11.c:390 +#, c-format +msgid "%B: invalid M68HC11 reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ M68HC11: %d" + +#: elf32-m68hc12.c:510 +#, c-format +msgid "%B: invalid M68HC12 reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ M68HC12: %d" + +#: elf32-m68hc1x.c:1115 #, c-format msgid "Reference to the far symbol `%s' using a wrong relocation may result in incorrect execution" msgstr "Указание на дальний Ñимвол «%s» Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ошибочного Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ привеÑти к неправильному выполнению" -#: elf32-m68hc1x.c:1073 +#: elf32-m68hc1x.c:1149 +#, c-format +msgid "XGATE address (%lx) is not within shared RAM(0xE000-0xFFFF), therefore you must manually offset the address, and possibly manage the page, in your code." +msgstr "ÐÐ´Ñ€ÐµÑ XGATE (%lx) находитÑÑ Ð²Ð½Ðµ общей оперативной памÑти (0xE000-0xFFFF), поÑтому вы должны вручную указывать Ð°Ð´Ñ€ÐµÑ ÑÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¸, возможно, управлÑÑ‚ÑŒ Ñтраницей в коде." + +#: elf32-m68hc1x.c:1167 #, c-format msgid "banked address [%lx:%04lx] (%lx) is not in the same bank as current banked address [%lx:%04lx] (%lx)" msgstr "банкируемый Ð°Ð´Ñ€ÐµÑ [%lx:%04lx] (%lx) не Ñовпадает Ñ Ð±Ð°Ð½ÐºÐ¾Ð¼ текущего банкируемого адреÑа [%lx:%04lx] (%lx)" -#: elf32-m68hc1x.c:1092 +#: elf32-m68hc1x.c:1183 #, c-format msgid "reference to a banked address [%lx:%04lx] in the normal address space at %04lx" msgstr "ÑÑылка на банкируемый Ð°Ð´Ñ€ÐµÑ [%lx:%04lx] в обычном адреÑном проÑтранÑтве по адреÑу %04lx" -#: elf32-m68hc1x.c:1225 +#: elf32-m68hc1x.c:1224 +#, c-format +msgid "S12 address (%lx) is not within shared RAM(0x2000-0x4000), therefore you must manually offset the address in your code" +msgstr "ÐÐ´Ñ€ÐµÑ S12 (%lx) находитÑÑ Ð²Ð½Ðµ общей оперативной памÑти (0x2000-0x4000), поÑтому вы должны вручную указывать Ð°Ð´Ñ€ÐµÑ ÑÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð² коде" + +#: elf32-m68hc1x.c:1351 msgid "%B: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers" msgstr "%B: компоновка файлов, Ñкомпилированных Ð´Ð»Ñ 16-битных целых (-mshort), Ñ Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸, Ñкомпилированными Ð´Ð»Ñ 32-битных целых" -#: elf32-m68hc1x.c:1232 +#: elf32-m68hc1x.c:1358 msgid "%B: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double" msgstr "%B: компоновка файлов, Ñкомпилированных Ð´Ð»Ñ 32-битных double (-fshort-double), Ñ Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸, Ñкомпилированными Ð´Ð»Ñ 64-битных double" -#: elf32-m68hc1x.c:1241 +#: elf32-m68hc1x.c:1367 msgid "%B: linking files compiled for HCS12 with others compiled for HC12" msgstr "%B: компоновка файлов, Ñкомпилированных Ð´Ð»Ñ HCS12, Ñ Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸, Ñкомпилированными Ð´Ð»Ñ HC12" -#: elf32-m68hc1x.c:1257 elf32-ppc.c:4227 elf64-sparc.c:706 elfxx-mips.c:13965 -msgid "%B: uses different e_flags (0x%lx) fields than previous modules (0x%lx)" -msgstr "%B: иÑпользует другие неизвеÑтные флаги e_flags (0x%lx), чем предыдущие модули (0x%lx)" - -#: elf32-m68hc1x.c:1285 +#: elf32-m68hc1x.c:1412 elf32-xgate.c:672 #, c-format msgid "[abi=32-bit int, " msgstr "[abi=32-битное int, " -#: elf32-m68hc1x.c:1287 +#: elf32-m68hc1x.c:1414 elf32-xgate.c:674 #, c-format msgid "[abi=16-bit int, " msgstr "[abi=16-битное int, " -#: elf32-m68hc1x.c:1290 +#: elf32-m68hc1x.c:1417 elf32-xgate.c:677 #, c-format msgid "64-bit double, " msgstr "64-битное double, " -#: elf32-m68hc1x.c:1292 +#: elf32-m68hc1x.c:1419 elf32-xgate.c:679 #, c-format msgid "32-bit double, " msgstr "32-битное double, " -#: elf32-m68hc1x.c:1295 +#: elf32-m68hc1x.c:1422 #, c-format msgid "cpu=HC11]" msgstr "ЦП=HC11]" -#: elf32-m68hc1x.c:1297 +#: elf32-m68hc1x.c:1424 #, c-format msgid "cpu=HCS12]" msgstr "ЦП=HCS12]" -#: elf32-m68hc1x.c:1299 +#: elf32-m68hc1x.c:1426 #, c-format msgid "cpu=HC12]" msgstr "ЦП=HC12]" -#: elf32-m68hc1x.c:1302 +#: elf32-m68hc1x.c:1429 #, c-format msgid " [memory=bank-model]" msgstr " [памÑÑ‚ÑŒ=модель Ñ Ð±Ð°Ð½ÐºÐ°Ð¼Ð¸]" -#: elf32-m68hc1x.c:1304 +#: elf32-m68hc1x.c:1431 #, c-format msgid " [memory=flat]" msgstr " [памÑÑ‚ÑŒ=плоÑкаÑ]" -#: elf32-m68k.c:1251 elf32-m68k.c:1252 vms-alpha.c:7314 vms-alpha.c:7329 +#: elf32-m68hc1x.c:1434 +#, c-format +msgid " [XGATE RAM offsetting]" +msgstr " [Ñмещение XGATE памÑти]" + +#: elf32-m68k.c:1214 elf32-m68k.c:1215 vms-alpha.c:7477 vms-alpha.c:7493 msgid "unknown" msgstr "неизвеÑтно" -#: elf32-m68k.c:1715 +#: elf32-m68k.c:1658 +#, c-format msgid "%B: GOT overflow: Number of relocations with 8-bit offset > %d" msgstr "%B: переполнение GOT: КоличеÑтво перемещений Ñ 8-битным Ñмещением > %d" -#: elf32-m68k.c:1721 +#: elf32-m68k.c:1665 +#, c-format msgid "%B: GOT overflow: Number of relocations with 8- or 16-bit offset > %d" msgstr "%B: переполнение GOT: КоличеÑтво перемещений Ñ 8-ми или 16-битным Ñмещением > %d" -#: elf32-m68k.c:3957 -msgid "%B(%A+0x%lx): R_68K_TLS_LE32 relocation not permitted in shared object" -msgstr "%B(%A+0x%lx): перемещение R_68K_TLS_LE32 не разрешено Ð´Ð»Ñ Ð¾Ð±Ñ‰ÐµÐ³Ð¾ объекта" - -#: elf32-mcore.c:99 elf32-mcore.c:442 +#: elf32-mcore.c:100 elf32-mcore.c:455 +#, c-format msgid "%B: Relocation %s (%d) is not currently supported.\n" msgstr "%B: Перемещение %s (%d) в данный момент не поддерживаетÑÑ.\n" -#: elf32-mcore.c:428 +#: elf32-mcore.c:355 +#, c-format +msgid "%B: unrecognised MCore reloc number: %d" +msgstr "%B: нераÑпознанный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ MCore: %d" + +#: elf32-mcore.c:440 +#, c-format msgid "%B: Unknown relocation type %d\n" msgstr "%B: ÐеизвеÑтный тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %d\n" #. Pacify gcc -Wall. -#: elf32-mep.c:157 +#: elf32-mep.c:139 #, c-format msgid "mep: no reloc for code %d" msgstr "mep: нет Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÐºÐ¾Ð´Ð° %d" -#: elf32-mep.c:163 +#: elf32-mep.c:146 #, c-format msgid "MeP: howto %d has type %d" msgstr "MeP: howto %d имеет тип %d" -#: elf32-mep.c:648 +#: elf32-mep.c:390 +#, c-format +msgid "%B: invalid MEP reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ MEP: %d" + +#: elf32-mep.c:620 +#, c-format msgid "%B and %B are for different cores" msgstr "%B и %B Ð´Ð»Ñ Ñ€Ð°Ð·Ð½Ñ‹Ñ… Ñдер" -#: elf32-mep.c:665 +#: elf32-mep.c:639 +#, c-format msgid "%B and %B are for different configurations" msgstr "%B и %B Ð´Ð»Ñ Ñ€Ð°Ð·Ð½Ñ‹Ñ… конфигураций" -#: elf32-mep.c:702 +#: elf32-mep.c:677 #, c-format msgid "private flags = 0x%lx" msgstr "ÑобÑтвенные флаги = 0x%lx" -#: elf32-microblaze.c:742 +#: elf32-metag.c:878 #, c-format -msgid "%s: unknown relocation type %d" -msgstr "%s: неизвеÑтный тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %d" +msgid "%B: invalid METAG reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ METAG: %d" -#: elf32-microblaze.c:867 elf32-microblaze.c:912 +#: elf32-metag.c:1860 +msgid "%B(%A): multiple TLS models are not supported" +msgstr "%B(%A): много моделей TLS не поддерживаетÑÑ" + +#: elf32-metag.c:1863 +msgid "%B(%A): shared library symbol %s encountered whilst performing a static link" +msgstr "%B(%A): при выполнении ÑтатичеÑкой компоновки обнаружен Ñимвол %s общей библиотеки" + +#: elf32-microblaze.c:656 #, c-format -msgid "%s: The target (%s) of an %s relocation is in the wrong section (%s)" -msgstr "%s: Цель (%s) Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %s в ошибочном разделе (%s)" +msgid "%B: unrecognised MicroBlaze reloc number: %d" +msgstr "%B: нераÑпознанный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ MicroBlaze: %d" -#: elf32-microblaze.c:1155 elf32-tilepro.c:2891 elfxx-sparc.c:3457 -#: elfxx-tilegx.c:3230 +#: elf32-microblaze.c:1482 elf32-or1k.c:1052 elf32-tilepro.c:3147 +#: elfxx-sparc.c:3537 elfxx-tilegx.c:3531 msgid "%B: probably compiled without -fPIC?" msgstr "%B: вероÑтно, компилÑÑ†Ð¸Ñ Ð±ÐµÐ· -fPIC?" -#: elf32-microblaze.c:2074 -msgid "%B: bad relocation section name `%s'" -msgstr "%B: неправильное Ð¸Ð¼Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰Ð°ÐµÐ¼Ð¾Ð³Ð¾ раздела «%s»" - -#: elf32-mips.c:1549 elf64-mips.c:2683 elfn32-mips.c:2487 +#: elf32-mips.c:1777 elf64-mips.c:3200 elfn32-mips.c:3014 msgid "literal relocation occurs for an external symbol" msgstr "Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ Ñимвола обнаружено конÑтантное перемещение" -#: elf32-mips.c:1596 elf32-score.c:570 elf32-score7.c:469 elf64-mips.c:2726 -#: elfn32-mips.c:2528 +#: elf32-mips.c:1824 elf32-score.c:569 elf32-score7.c:469 elf64-mips.c:3243 +#: elfn32-mips.c:3055 msgid "32bits gp relative relocation occurs for an external symbol" msgstr "Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ Ñимвола обнаружено 32—битное отноÑительное перемещение" -#: elf32-ppc.c:1741 +#: elf32-mips.c:2225 +#, c-format +msgid "Unrecognised MIPS reloc number: %d" +msgstr "ÐераÑпознанный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ MIPS: %d" + +#: elf32-moxie.c:137 +#, c-format +msgid "%B: invalid Moxie reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Moxie: %d" + +#: elf32-msp430.c:648 +#, c-format +msgid "%B: invalid MSP430X reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ MSP430X: %d" + +#: elf32-msp430.c:658 +#, c-format +msgid "%B: invalid MSP430 reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ MSP430: %d" + +#: elf32-msp430.c:832 elf32-msp430.c:1146 +msgid "Try enabling relaxation to avoid relocation truncations" +msgstr "Попробуйте включить оÑлабление, чтобы избежать Ð¾Ð±Ñ€ÐµÐ·Ð°Ð½Ð¸Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ð¹" + +#: elf32-msp430.c:1353 +msgid "internal error: branch/jump to an odd address detected" +msgstr "внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: обнаружено ветвление/прыжок по Ñтранному адреÑу" + +#: elf32-msp430.c:2352 +#, c-format +msgid "Warning: %B: Unknown MSPABI object attribute %d" +msgstr "Предупреждение: %B: ÐеизвеÑтный атрибут MSPABI-объекта %d" + +#: elf32-msp430.c:2445 +#, c-format +msgid "error: %B uses %s instructions but %B uses %s" +msgstr "ошибка: %B иÑпользует инÑтрукции %s, в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº %B иÑпользует %s" + +#: elf32-msp430.c:2457 +#, c-format +msgid "error: %B uses the %s code model whereas %B uses the %s code model" +msgstr "ошибка: %B иÑпользует модель кода %s, в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº %B иÑпользует модель кода %s" + +#: elf32-msp430.c:2469 +#, c-format +msgid "error: %B uses the large code model but %B uses MSP430 instructions" +msgstr "ошибка: %B иÑпользует огромную модель кода, в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº %B иÑпользует инÑтрукции MSP430" + +#: elf32-msp430.c:2480 +#, c-format +msgid "error: %B uses the %s data model whereas %B uses the %s data model" +msgstr "ошибка: %B иÑпользует модель данных %s, в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº %B иÑпользует модель данных %s" + +#: elf32-msp430.c:2492 +#, c-format +msgid "error: %B uses the small code model but %B uses the %s data model" +msgstr "ошибка: %B иÑпользует малую модель данных, в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº %B иÑпользует модель данных %s" + +#: elf32-msp430.c:2504 +#, c-format +msgid "error: %B uses the %s data model but %B only uses MSP430 instructions" +msgstr "ошибка: %B иÑпользует модель данных %s, в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº %B иÑпользует только инÑтрукции MSP430" + +#: elf32-mt.c:242 +#, c-format +msgid "%B: invalid MT reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ MT: %d" + +#: elf32-nds32.c:2897 +#, c-format +msgid "%B: invalid NDS32 reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ NDS32: %d" + +#: elf32-nds32.c:3232 +msgid "error: Can't find symbol: _SDA_BASE_." +msgstr "ошибка: невозможно найти Ñимвол: _SDA_BASE_." + +#: elf32-nds32.c:4410 elf32-nds32.c:11783 +msgid "%B: error: Cannot set _ITB_BASE_" +msgstr "%B: ошибка: Ðевозможно задать _ITB_BASE_" + +#: elf32-nds32.c:4418 +msgid "error: IFC relocation error." +msgstr "ошибка: ошибка Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ IFC." + +#: elf32-nds32.c:4452 +#, c-format +msgid "%B: error: unknown relocation type %d." +msgstr "%B: ошибка: неизвеÑтный тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %d." + +#: elf32-nds32.c:4898 +msgid "%B: warning: cannot deal R_NDS32_25_ABS_RELA in shared mode." +msgstr "%B: предупреждение: невозможно иÑпользовать R_NDS32_25_ABS_RELA в общем режиме." + +#: elf32-nds32.c:5032 +msgid "%B: warning: unaligned access to GOT entry." +msgstr "%B: предупреждение: невыровненный доÑтуп к Ñлементу GOT." + +#: elf32-nds32.c:5074 +msgid "%B: warning: relocate SDA_BASE failed." +msgstr "%B: предупреждение: не удалоÑÑŒ выполнить перемещение SDA_BASE." + +#: elf32-nds32.c:5096 +#, c-format +msgid "%B(%A): warning: unaligned small data access of type %d." +msgstr "%B(%A): предупреждение: невыровненный доÑтуп к малым данным Ñ Ñ‚Ð¸Ð¿Ð¾Ð¼ %d." + +#: elf32-nds32.c:5844 +#, c-format +msgid "%B: ISR vector size mismatch with previous modules, previous %u-byte, current %u-byte" +msgstr "%B: размер вектора ISR не Ñовпадает Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð¸Ð¼Ð¸ модулÑми, был %u-байтовый, Ñтал %u-байтовый" + +#: elf32-nds32.c:5888 +msgid "%B: warning: Endian mismatch with previous modules." +msgstr "%B: предупреждение: порÑдок байт не Ñовпадает Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð¸Ð¼Ð¸ модулÑми." + +#: elf32-nds32.c:5898 +msgid "%B: warning: Older version of object file encountered, Please recompile with current tool chain." +msgstr "%B: предупреждение: обнаружена ÑÑ‚Ð°Ñ€Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð½Ð¾Ð³Ð¾ файла, перекомпилируйте текущим набором инÑтрументов." + +#: elf32-nds32.c:5976 +msgid "%B: error: ABI mismatch with previous modules." +msgstr "%B: ошибка: ABI не Ñовпадает Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð¸Ð¼Ð¸ модулÑми." + +#: elf32-nds32.c:5987 +msgid "%B: error: Instruction set mismatch with previous modules." +msgstr "%B: ошибка: набор инÑтрукций не Ñовпадает Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð¸Ð¼Ð¸ модулÑми." + +#: elf32-nds32.c:6013 +#, c-format +msgid "%B: warning: Incompatible elf-versions %s and %s." +msgstr "%B: предупреждение: неÑовмеÑтимые верÑии elf %s и %s." + +#: elf32-nds32.c:6043 +#, c-format +msgid ": n1 instructions" +msgstr ": инÑтрукции n1" + +#: elf32-nds32.c:6046 +#, c-format +msgid ": n1h instructions" +msgstr ": инÑтрукции n1h" + +#: elf32-nds32.c:8535 +msgid "%B: Error: search_nds32_elf_blank reports wrong node\n" +msgstr "%B: ошибка: search_nds32_elf_blank Ñообщает о неверном узле\n" + +#: elf32-nds32.c:8794 +#, c-format +msgid "%B: warning: %s points to unrecognized reloc at %#Lx" +msgstr "%B: предупреждение: %s указывает на нераÑпознанное перемещение по адреÑу %#Lx" + +#: elf32-nds32.c:11655 elf32-nds32.c:11672 +msgid "error: Jump IFC Fail." +msgstr "ошибка: не удалоÑÑŒ выполнить прыжок IFC." + +#: elf32-nds32.c:12529 +#, c-format +msgid "%B: Nested OMIT_FP in %A." +msgstr "%B: вложенные OMIT_FP в %A." + +#: elf32-nds32.c:12548 +#, c-format +msgid "%B: Unmatched OMIT_FP in %A." +msgstr "%B: неÑовпадение OMIT_FP в %A." + +#: elf32-nds32.c:12831 reloc.c:8273 +#, c-format +msgid "%X%P: %B(%A): relocation \"%R\" goes out of range\n" +msgstr "%X%P: %B(%A): перемещение «%R» выходит за диапазон\n" + +#: elf32-nds32.c:14607 +msgid "Linker: cannot init ex9 hash table error \n" +msgstr "Компоновщик: невозможно инициализировать Ñ…Ñш-таблицу ошибок ex9 \n" + +#: elf32-nds32.c:15016 elf32-nds32.c:15030 +msgid "Linker: error cannot fixed ex9 relocation \n" +msgstr "Компоновщик: невозможно иÑправить перемещение ex9 \n" + +#: elf32-nds32.c:15241 +#, c-format +msgid "%B: warning: unaligned small data access for entry: {%Ld, %Ld, %Ld}, addr = %#Lx, align = %#x" +msgstr "%B: предупреждение: невыровненный доÑтуп к малым данным Ð´Ð»Ñ Ñлемента: {%Ld, %Ld, %Ld}, Ð°Ð´Ñ€ÐµÑ = %#Lx, выравнивание = %#x" + +#: elf32-nds32.c:15274 +#, c-format +msgid "failed creating ex9.it %s hash table entry" +msgstr "ошибка при Ñоздании Ñлемента %s Ñ…Ñш-таблицы ex9.it" + +#: elf32-nios2.c:2929 +msgid "error: %B: Big-endian R2 is not supported." +msgstr "ошибка: %B: порÑдок от Ñтаршего к младшему R2 не поддерживаетÑÑ." + +#: elf32-nios2.c:3814 +#, c-format +msgid "global pointer relative relocation at address 0x%08x when _gp not defined\n" +msgstr "глобальный указатель отноÑительного Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¿Ð¾ адреÑу 0x%08x, но _gp не определена\n" + +#: elf32-nios2.c:3834 +#, c-format +msgid "Unable to reach %s (at 0x%08x) from the global pointer (at 0x%08x) because the offset (%d) is out of the allowed range, -32678 to 32767.\n" +msgstr "Ðевозможно доÑтичь %s (по адреÑу 0x%08x) из глобального ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ (по адреÑу 0x%08x), так как Ñмещение (%d) выходит из разрешённого диапазона -32678—32767.\n" + +#: elf32-nios2.c:4487 elf32-pru.c:816 +msgid "relocation out of range" +msgstr "перемещение выходит за диапазон" + +#: elf32-nios2.c:4497 elf32-pru.c:826 elf32-tic6x.c:2682 +msgid "dangerous relocation" +msgstr "опаÑное перемещение" + +#: elf32-nios2.c:5370 +#, c-format +msgid "dynamic variable `%s' is zero size" +msgstr "динамичеÑÐºÐ°Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Â«%s» имеет нулевой размер" + +#: elf32-or1k.c:715 +#, c-format +msgid "%B: invalid OR1K reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ OR1K: %d" + +#: elf32-or1k.c:965 +msgid "internal error: addend should be zero for R_OR1K_GOT16" +msgstr "внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: добавление должно быть нулём Ð´Ð»Ñ R_OR1K_GOT16" + +#: elf32-or1k.c:1074 +msgid "%B: support for local dynamic not implemented" +msgstr "%B: поддержка локальных динамичеÑких Ñлементов не реализована" + +#: elf32-or1k.c:1209 +msgid "%B: will not resolve runtime TLS relocation" +msgstr "%B: перемещение TLS времени Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð½Ðµ будет решено" + +#: elf32-or1k.c:1529 +#, c-format +msgid "%B: bad relocation section name `%s'" +msgstr "%B: неправильное Ð¸Ð¼Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰Ð°ÐµÐ¼Ð¾Ð³Ð¾ раздела «%s»" + +#: elf32-or1k.c:2641 +msgid "%B: EF_OR1K_NODELAY flag mismatch with previous modules" +msgstr "%B: флаг EF_OR1K_NODELAY не Ñовпадает Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð¸Ð¼Ð¸ модулÑми" + +#: elf32-pj.c:325 +#, c-format +msgid "%B: unrecognised PicoJava reloc number: %d" +msgstr "%B: нераÑпознанный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ PicoJava: %d" + +#: elf32-ppc.c:2027 +#, c-format +msgid "%B: unrecognised PPC reloc number: %d" +msgstr "%B: нераÑпознанный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ PPC: %d" + +#: elf32-ppc.c:2112 #, c-format msgid "generic linker can't handle %s" msgstr "универÑальный компоновщик не Ñмог обработать %s" -#: elf32-ppc.c:2184 +#: elf32-ppc.c:2732 +#, c-format msgid "corrupt %s section in %B" msgstr "повреждённый раздел %s в %B" -#: elf32-ppc.c:2203 +#: elf32-ppc.c:2752 +#, c-format msgid "unable to read in %s section from %B" msgstr "не удалоÑÑŒ прочитать раздел %s из %B" -#: elf32-ppc.c:2244 +#: elf32-ppc.c:2794 +#, c-format msgid "warning: unable to set size of %s section in %B" msgstr "предупреждение: не удалоÑÑŒ уÑтановить размер раздела %s в %B" -#: elf32-ppc.c:2294 +#: elf32-ppc.c:2844 msgid "failed to allocate space for new APUinfo section." msgstr "не удалоÑÑŒ выделить меÑто Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ раздела APUinfo." -#: elf32-ppc.c:2313 +#: elf32-ppc.c:2863 msgid "failed to compute new APUinfo section." msgstr "не удалоÑÑŒ вычиÑлить новый раздел APUinfo." -#: elf32-ppc.c:2316 +#: elf32-ppc.c:2866 msgid "failed to install new APUinfo section." msgstr "не удалоÑÑŒ уÑтановить новый раздел APUinfo." -#: elf32-ppc.c:3356 +#: elf32-ppc.c:3915 +#, c-format msgid "%B: relocation %s cannot be used when making a shared object" msgstr "%B: раздел %s не может иÑпользоватьÑÑ Ð¿Ñ€Ð¸ Ñоздании общего объекта" -#. It does not make sense to have a procedure linkage -#. table entry for a local symbol. -#: elf32-ppc.c:3700 -msgid "%P: %H: %s reloc against local symbol\n" -msgstr "%P: %H: перемещение %s Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñимвола\n" +#: elf32-ppc.c:4266 elf64-ppc.c:5597 +#, c-format +msgid "%H: %s reloc against local symbol\n" +msgstr "%H: перемещение %s Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñимвола\n" -#: elf32-ppc.c:4039 elf32-ppc.c:4054 elfxx-mips.c:13651 elfxx-mips.c:13677 -#: elfxx-mips.c:13699 elfxx-mips.c:13725 +#: elf32-ppc.c:4628 elf32-ppc.c:4632 +#, c-format msgid "Warning: %B uses hard float, %B uses soft float" msgstr "Предупреждение: %B иÑпользует аппаратную плавающую точку, %B иÑпользует программную плавающую точку" -#: elf32-ppc.c:4042 elf32-ppc.c:4046 +#: elf32-ppc.c:4636 elf32-ppc.c:4641 +#, c-format msgid "Warning: %B uses double-precision hard float, %B uses single-precision hard float" msgstr "Предупреждение: %B иÑпользует аппаратную плавающую точку двойной точноÑти, %B иÑпользует аппаратную плавающую точку одинарной точноÑти" -#: elf32-ppc.c:4050 -msgid "Warning: %B uses soft float, %B uses single-precision hard float" -msgstr "Предупреждение: %B иÑпользует программную плавающую точку, %B аппаратную плавающую точку одинарной точноÑти" - -#: elf32-ppc.c:4057 elf32-ppc.c:4061 elfxx-mips.c:13631 elfxx-mips.c:13635 -msgid "Warning: %B uses unknown floating point ABI %d" -msgstr "Предупреждение: %B иÑпользует неизвеÑтный ABI плавающей точки %d" - -#: elf32-ppc.c:4103 elf32-ppc.c:4107 -msgid "Warning: %B uses unknown vector ABI %d" -msgstr "Предупреждение: %B иÑпользует неизвеÑтный ABI векторов %d" - -#: elf32-ppc.c:4111 -msgid "Warning: %B uses vector ABI \"%s\", %B uses \"%s\"" -msgstr "Предупреждение: %B иÑпользует ABI векторов \"%s\", %B иÑпользует \"%s\"" +#: elf32-ppc.c:4656 elf32-ppc.c:4661 +#, c-format +msgid "Warning: %B uses 64-bit long double, %B uses 128-bit long double" +msgstr "Предупреждение: %B иÑпользует 64-битный long double, %B иÑпользует 128-битный long double" + +#: elf32-ppc.c:4666 elf32-ppc.c:4671 +#, c-format +msgid "Warning: %B uses IBM long double, %B uses IEEE long double" +msgstr "Предупреждение: %B иÑпользует long double IBM, %B иÑпользует long double IEEE" + +#: elf32-ppc.c:4722 elf32-ppc.c:4727 +#, c-format +msgid "Warning: %B uses AltiVec vector ABI, %B uses SPE vector ABI" +msgstr "Предупреждение: %B иÑпользует ABI векторов AltiVec, %B иÑпользует ABI векторов SPE" -#: elf32-ppc.c:4128 elf32-ppc.c:4131 +#: elf32-ppc.c:4750 elf32-ppc.c:4755 +#, c-format msgid "Warning: %B uses r3/r4 for small structure returns, %B uses memory" msgstr "Предупреждение: %B иÑпользует r3/r4 Ð´Ð»Ñ Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‚Ð° маленькой Ñтруктуры, %B иÑпользует памÑÑ‚ÑŒ" -#: elf32-ppc.c:4134 elf32-ppc.c:4138 -msgid "Warning: %B uses unknown small structure return convention %d" -msgstr "Предупреждение: %B иÑпользует неизвеÑтное Ñоглашение %d по возврату маленькой Ñтруктуры" - -#: elf32-ppc.c:4192 +#: elf32-ppc.c:4810 msgid "%B: compiled with -mrelocatable and linked with modules compiled normally" msgstr "%B: Ñкомпилирована Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ -mrelocatable и нормально Ñкомпонована Ñо Ñкомпилированными модулÑми" -#: elf32-ppc.c:4200 +#: elf32-ppc.c:4818 msgid "%B: compiled normally and linked with modules compiled with -mrelocatable" msgstr "%B: нормально Ñкомпилирована и Ñкомпонована Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñми, Ñкомпилированными Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ -mrelocatable" -#: elf32-ppc.c:4309 +#: elf32-ppc.c:4887 +#, c-format +msgid "%B(%A+0x%lx): expected 16A style relocation on 0x%08x insn" +msgstr "%B(%A+0x%lx): ожидаетÑÑ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ðµ в формате 16A по адреÑу 0x%08x insn" + +#: elf32-ppc.c:4906 +#, c-format +msgid "%B(%A+0x%lx): expected 16D style relocation on 0x%08x insn" +msgstr "%B(%A+0x%lx): ожидаетÑÑ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ðµ в формате 16D по адреÑу 0x%08x insn" + +#: elf32-ppc.c:4997 msgid "%P: bss-plt forced due to %B\n" msgstr "%P: bss-plt иÑпользуетÑÑ Ð¸Ð·-за %B\n" -#: elf32-ppc.c:4312 +#: elf32-ppc.c:5000 msgid "%P: bss-plt forced by profiling\n" msgstr "%P: bss-plt иÑпользуетÑÑ Ð¸Ð·-за профилированиÑ\n" @@ -1983,47 +3136,168 @@ #. could just mark this symbol to exclude it #. from tls optimization but it's safer to skip #. the entire optimization. -#: elf32-ppc.c:4809 elf64-ppc.c:7858 +#: elf32-ppc.c:5322 elf64-ppc.c:8654 +#, c-format msgid "%H arg lost __tls_get_addr, TLS optimization disabled\n" msgstr "%H аргумент lost __tls_get_addr, Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ TLS выключена\n" -#: elf32-ppc.c:5044 elf64-ppc.c:6528 -msgid "%P: dynamic variable `%s' is zero size\n" -msgstr "%P: динамичеÑÐºÐ°Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Â«%s» имеет нулевой размер\n" +#: elf32-ppc.c:6264 elf32-sh.c:3392 elf32-tilepro.c:2331 elfxx-sparc.c:2556 +#: elfxx-tilegx.c:2567 +msgid "%B: dynamic relocation in read-only section `%A'\n" +msgstr "%B: динамичеÑкое перемещение в разделе только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Â«%A»\n" + +#: elf32-ppc.c:8100 +msgid "%H: fixup branch overflow\n" +msgstr "%H: переполнение ветви меÑтоположений\n" + +#: elf32-ppc.c:8140 elf32-ppc.c:8175 +#, c-format +msgid "%B(%A+%#Lx): error: %s with unexpected instruction %#x" +msgstr "%B(%A+%#Lx): ошибка: %s Ñ Ð½ÐµÐ¾Ð¶Ð¸Ð´Ð°Ð½Ð½Ð¾Ð¹ инÑтрукцией %#x" + +#: elf32-ppc.c:8231 +#, c-format +msgid "%X%H: unsupported bss-plt -fPIC ifunc %s\n" +msgstr "%X%H: Ð½ÐµÐ¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÐµÐ¼Ð°Ñ bss-plt -fPIC ifunc %s\n" + +#: elf32-ppc.c:8294 elf64-ppc.c:15070 +msgid "%H: warning: %s unexpected insn %#x.\n" +msgstr "%H: предупреждение: в %s не ожидалоÑÑŒ insn %#x.\n" -#: elf32-ppc.c:7263 elf64-ppc.c:12675 +#: elf32-ppc.c:8319 +#, c-format msgid "%P: %B: unknown relocation type %d for symbol %s\n" msgstr "%P: %B: неизвеÑтный тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %d Ð´Ð»Ñ Ñимвола %s\n" -#: elf32-ppc.c:7524 -msgid "%P: %H: non-zero addend on %s reloc against `%s'\n" -msgstr "%P: %H: ненулевое добавление в перемещении %s Ð´Ð»Ñ Â«%s»\n" - -#: elf32-ppc.c:7720 elf64-ppc.c:13181 -msgid "%P: %H: relocation %s for indirect function %s unsupported\n" -msgstr "%P: %H: перемещение %s Ð´Ð»Ñ Ð½ÐµÑвного вызова функции %s не поддерживаетÑÑ\n" +#: elf32-ppc.c:8606 +#, c-format +msgid "%H: non-zero addend on %s reloc against `%s'\n" +msgstr "%H: ненулевое добавление в перемещении %s Ð´Ð»Ñ Â«%s»\n" + +#. @local on an ifunc does not really make sense since +#. the ifunc resolver can take you anywhere. More +#. seriously, calls to ifuncs must go through a plt call +#. stub, and for pic the plt call stubs uses r30 to +#. access the PLT. The problem is that a call that is +#. local won't have the +32k reloc addend trick marking +#. -fPIC code, so the linker won't know whether r30 is +#. _GLOBAL_OFFSET_TABLE_ or pointing into a .got2 section. +#: elf32-ppc.c:8638 +#, c-format +msgid "%X%H: @local call to ifunc %s\n" +msgstr "%X%H: @local вызов ifunc %s\n" + +#: elf32-ppc.c:8808 +#, c-format +msgid "%H: relocation %s for indirect function %s unsupported\n" +msgstr "%H: перемещение %s Ð´Ð»Ñ Ð½ÐµÑвного вызова функции %s не поддерживаетÑÑ\n" -#: elf32-ppc.c:7948 elf32-ppc.c:7978 elf32-ppc.c:8025 +#: elf32-ppc.c:9077 elf32-ppc.c:9108 elf32-ppc.c:9199 +#, c-format msgid "%P: %B: the target (%s) of a %s relocation is in the wrong output section (%s)\n" msgstr "%P: %B: назначение (%s) Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %s в ошибочный выходной раздел (%s)\n" -#: elf32-ppc.c:8097 +#: elf32-ppc.c:9287 +#, c-format +msgid "%B: the target (%s) of a %s relocation is in the wrong output section (%s)" +msgstr "%B: назначение (%s) Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %s в ошибочный выходной раздел (%s)" + +#: elf32-ppc.c:9395 +#, c-format msgid "%P: %B: relocation %s is not yet supported for symbol %s\n" msgstr "%P: %B: перемещение %s пока не поддерживаетÑÑ Ð´Ð»Ñ Ñимвола %s\n" -#: elf32-ppc.c:8158 elf64-ppc.c:13467 -msgid "%P: %H: unresolvable %s relocation against symbol `%s'\n" -msgstr "%P: %H: неразрешимое перемещение %s отноÑительно Ð´Ð»Ñ Ñимвола «%s»\n" - -#: elf32-ppc.c:8205 elf64-ppc.c:13512 -msgid "%P: %H: %s reloc against `%s': error %d\n" -msgstr "%P: %H: перемещение %s Ð´Ð»Ñ Â«%s»: ошибка %d\n" +#: elf32-ppc.c:9480 +#, c-format +msgid "%H: error: %s against `%s' not a multiple of %u\n" +msgstr "%H: ошибка: %s в «%s» не кратно %u\n" + +#: elf32-ppc.c:9509 +#, c-format +msgid "%H: unresolvable %s relocation against symbol `%s'\n" +msgstr "%H: неразрешимое перемещение %s Ð´Ð»Ñ Ñимвола «%s»\n" + +#: elf32-ppc.c:9590 +#, c-format +msgid "%H: %s reloc against `%s': error %d\n" +msgstr "%H: перемещение %s Ð´Ð»Ñ Â«%s»: ошибка %d\n" + +#: elf32-ppc.c:10354 elf64-ppc.c:15601 +msgid "%X%P: text relocations and GNU indirect functions will result in a segfault at runtime\n" +msgstr "%X%P: текÑтовые Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¸ неÑвные функции GNU приведут к ошибке ÑÐµÐ³Ð¼ÐµÐ½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ð¾ Ð²Ñ€ÐµÐ¼Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ\n" -#: elf32-ppc.c:8696 +#: elf32-ppc.c:10358 elf64-ppc.c:15605 +msgid "%P: warning: text relocations and GNU indirect functions may result in a segfault at runtime\n" +msgstr "%P: предупреждение: текÑтовые Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¸ неÑвные функции GNU могут привеÑти к ошибке ÑÐµÐ³Ð¼ÐµÐ½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ð¾ Ð²Ñ€ÐµÐ¼Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ\n" + +#: elf32-ppc.c:10403 +#, c-format msgid "%P: %s not defined in linker created %s\n" msgstr "%P: %s не определено в компоновщике, Ñозданном %s\n" -#: elf32-rx.c:563 +#: elf32-rl78.c:292 +#, c-format +msgid "%B: invalid RL78 reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ RL78: %d" + +#: elf32-rl78.c:370 +msgid "Internal Error: RL78 reloc stack overflow" +msgstr "ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: перемещение RL78 вызвало переполнение Ñтека" + +#: elf32-rl78.c:381 +msgid "Internal Error: RL78 reloc stack underflow" +msgstr "ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: перемещение RL78 вызвало выход за нижнюю границу Ñтека" + +#: elf32-rl78.c:1050 +msgid "Warning: RL78_SYM reloc with an unknown symbol" +msgstr "Предупреждение: перемещение RL78_SYM Ñ Ð½ÐµÐ¸Ð·Ð²ÐµÑтным Ñимволом" + +#: elf32-rl78.c:1081 elf32-rx.c:1435 +#, c-format +msgid "%B(%A): error: call to undefined function '%s'" +msgstr "%B(%A): ошибка: вызов неопределённой функции «%s»" + +#: elf32-rl78.c:1202 +#, c-format +msgid "RL78 ABI conflict: G10 file %B cannot be linked with %s file %B" +msgstr "конфликт RL78 ABI: G10 в файле %B невозможно Ñкомпоновать Ñ %s из файла %B" + +#: elf32-rl78.c:1219 +#, c-format +msgid "RL78 ABI conflict: cannot link %s file %B with %s file %B" +msgstr "конфликт RL78 ABI: G невозможно Ñкомпоновать %s из файла %B Ñ %s из файла %B" + +#: elf32-rl78.c:1228 +msgid "RL78 merge conflict: cannot link 32-bit and 64-bit objects together" +msgstr "конфликт Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ RL78: невозможно Ñкомпоновать 32-битные и 64-битные объекты вмеÑте" + +#: elf32-rl78.c:1232 elf32-rl78.c:1236 +#, c-format +msgid "- %B is 64-bit, %B is not" +msgstr "- %B ÑвлÑетÑÑ 64-битным, а %B нет" + +#: elf32-rl78.c:1263 +#, c-format +msgid " [64-bit doubles]" +msgstr "[64-битные double]" + +#: elf32-rx.c:314 +#, c-format +msgid "%B: invalid RX reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ RX: %d" + +#: elf32-rx.c:595 +#, c-format +msgid "%B:%A: table entry %s outside table" +msgstr "%B:%A: Ñлемент таблицы %s находитÑÑ Ð²Ð½Ðµ таблицы" + +#: elf32-rx.c:602 +#, c-format +msgid "%B:%A: table entry %s not word-aligned within table" +msgstr "%B:%A: Ñлемент таблицы %s не выровнен в таблице по границе Ñлова" + +#: elf32-rx.c:668 +#, c-format msgid "%B:%A: Warning: deprecated Red Hat reloc " msgstr "%B:%A: предупреждение: уÑтаревшее перемещение Red Hat " @@ -2031,349 +3305,351 @@ #. an absolute address is being computed. There are special cases #. for relocs against symbols that are known to be referenced in #. crt0.o before the PID base address register has been initialised. -#: elf32-rx.c:581 -msgid "%B(%A): unsafe PID relocation %s at 0x%08lx (against %s in %s)" -msgstr "%B(%A): небезопаÑное перемещение PID %s по адреÑу 0x%08lx (отноÑительно %s в %s)" +#: elf32-rx.c:687 +#, c-format +msgid "%B(%A): unsafe PID relocation %s at %#Lx (against %s in %s)" +msgstr "%B(%A): небезопаÑное перемещение PID %s по адреÑу %#Lx (Ð´Ð»Ñ %s в %s)" -#: elf32-rx.c:1157 +#: elf32-rx.c:1267 msgid "Warning: RX_SYM reloc with an unknown symbol" msgstr "Предупреждение: перемещение RX_SYM Ñ Ð½ÐµÐ¸Ð·Ð²ÐµÑтным Ñимволом" -#: elf32-rx.c:1324 -msgid "%B(%A): error: call to undefined function '%s'" -msgstr "%B(%A): ошибка: вызов неопределённой функции «%s»" - -#: elf32-rx.c:1338 -msgid "%B(%A): warning: unaligned access to symbol '%s' in the small data area" -msgstr "%B(%A): предупреждение: невыровненный доÑтуп к Ñимволу «%s» в малой облаÑти данных" - -#: elf32-rx.c:1342 -msgid "%B(%A): internal error: out of range error" -msgstr "%B(%A): внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: ошибка выхода из диапазона" - -#: elf32-rx.c:1346 -msgid "%B(%A): internal error: unsupported relocation error" -msgstr "%B(%A): внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: ошибка неподдерживаемого перемещениÑ" +#: elf32-rx.c:3146 +msgid "There is a conflict merging the ELF header flags from %B" +msgstr "Возник конфликт Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ„Ð»Ð°Ð³Ð¾Ð² заголовка ELF из %B" -#: elf32-rx.c:1350 -msgid "%B(%A): internal error: dangerous relocation" -msgstr "%B(%A): внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: опаÑное перемещение" +#: elf32-rx.c:3149 +#, c-format +msgid " the input file's flags: %s" +msgstr " флаги входного файла: %s" -#: elf32-rx.c:1354 -msgid "%B(%A): internal error: unknown error" -msgstr "%B(%A): внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: неизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°" +#: elf32-rx.c:3151 +#, c-format +msgid " the output file's flags: %s" +msgstr " флаги выходного файла: %s" -#: elf32-rx.c:3004 +#: elf32-rx.c:3758 #, c-format -msgid " [64-bit doubles]" -msgstr "[64-битные double]" +msgid "%B:%A: table %s missing corresponding %s" +msgstr "%B:%A: отÑутÑтвует таблица %s, ÑоответÑÑ‚Ð²ÑƒÑŽÑ‰Ð°Ñ %s" -#: elf32-rx.c:3006 +#: elf32-rx.c:3766 #, c-format -msgid " [dsp]" -msgstr " [dsp]" +msgid "%B:%A: %s and %s must be in the same input section" +msgstr "%B:%A: %s и %s должны быть в одном входном разделе" -#: elf32-s390.c:2200 elf64-s390.c:2187 -msgid "%B(%A+0x%lx): invalid instruction for TLS relocation %s" -msgstr "%B(%A+0x%lx): недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð¸Ð½ÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ Ð´Ð»Ñ TLS-Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %s" +#: elf32-s390.c:2137 elf64-s390.c:2075 +#, c-format +msgid "%B(%A+%#Lx): invalid instruction for TLS relocation %s" +msgstr "%B(%A+%#Lx): недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð¸Ð½ÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ Ð´Ð»Ñ TLS-Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %s" -#: elf32-score.c:1520 elf32-score7.c:1379 elfxx-mips.c:3435 +#: elf32-score.c:1521 elf32-score7.c:1382 elfxx-mips.c:3756 msgid "not enough GOT space for local GOT entries" msgstr "недоÑтаточно проÑтранÑтва GOT Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ñ‹Ñ… Ñлементов GOT" -#: elf32-score.c:2742 +#: elf32-score.c:2744 msgid "address not word align" msgstr "Ð°Ð´Ñ€ÐµÑ Ð½Ðµ выровнен по границе Ñлова" -#: elf32-score.c:2827 elf32-score7.c:2631 +#: elf32-score.c:2825 elf32-score7.c:2630 #, c-format -msgid "%s: Malformed reloc detected for section %s" -msgstr "%s: Обнаружено иÑкажённое перемещение Ð´Ð»Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° %s" +msgid "%B: Malformed reloc detected for section %A" +msgstr "%B: Обнаружено иÑкажённое перемещение в разделе %A" -#: elf32-score.c:2878 elf32-score7.c:2682 -msgid "%B: CALL15 reloc at 0x%lx not against global symbol" -msgstr "%B: перемещение CALL15 по адреÑу 0x%lx не Ð´Ð»Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñимвола" +#: elf32-score.c:2879 elf32-score7.c:2684 +#, c-format +msgid "%B: CALL15 reloc at %#Lx not against global symbol" +msgstr "%B: перемещение CALL15 по адреÑу %#Lx не Ð´Ð»Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñимвола" -#: elf32-score.c:3997 elf32-score7.c:3803 +#: elf32-score.c:4001 elf32-score7.c:3806 #, c-format msgid " [pic]" msgstr " [pic]" -#: elf32-score.c:4001 elf32-score7.c:3807 +#: elf32-score.c:4005 elf32-score7.c:3810 #, c-format msgid " [fix dep]" msgstr " [fix dep]" -#: elf32-score.c:4043 elf32-score7.c:3849 +#: elf32-score.c:4048 elf32-score7.c:3853 msgid "%B: warning: linking PIC files with non-PIC files" msgstr "%B: предупреждение: выполнÑетÑÑ ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²ÐºÐ° PIC-файлов Ñ Ð½Ðµ-PIC файлами" #: elf32-sh-symbian.c:130 +#, c-format msgid "%B: IMPORT AS directive for %s conceals previous IMPORT AS" msgstr "%B: директива IMPORT AS Ð´Ð»Ñ %s ÑкрываетÑÑ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰ÐµÐ¹ IMPORT AS" -#: elf32-sh-symbian.c:383 +#: elf32-sh-symbian.c:384 +#, c-format msgid "%B: Unrecognised .directive command: %s" msgstr "%B: ÐераÑÐ¿Ð¾Ð·Ð½Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° .directive: %s" -#: elf32-sh-symbian.c:504 +#: elf32-sh-symbian.c:502 +#, c-format msgid "%B: Failed to add renamed symbol %s" msgstr "%B: Ðе удалоÑÑŒ добавить переименованный Ñимвол %s" -#: elf32-sh.c:568 -msgid "%B: 0x%lx: warning: bad R_SH_USES offset" -msgstr "%B: 0x%lx: предупреждение: неправильное Ñмещение R_SH_USES" - -#: elf32-sh.c:580 -msgid "%B: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x" -msgstr "%B: 0x%lx: предупреждение: R_SH_USES указывает на нераÑпознанный insn 0x%x" - -#: elf32-sh.c:597 -msgid "%B: 0x%lx: warning: bad R_SH_USES load offset" -msgstr "%B: 0x%lx: предупреждение: неправильное загрузочное Ñмещение R_SH_USES" - -#: elf32-sh.c:612 -msgid "%B: 0x%lx: warning: could not find expected reloc" -msgstr "%B: 0x%lx: предупреждение: невозможно найти ожидаемое перемещение" - -#: elf32-sh.c:640 -msgid "%B: 0x%lx: warning: symbol in unexpected section" -msgstr "%B: 0x%lx: предупреждение: Ñимвол в неожиданном разделе" - -#: elf32-sh.c:766 -msgid "%B: 0x%lx: warning: could not find expected COUNT reloc" -msgstr "%B: 0x%lx: предупреждение: невозможно найти ожидаемое перемещение COUNT" - -#: elf32-sh.c:775 -msgid "%B: 0x%lx: warning: bad count" -msgstr "%B: 0x%lx: предупреждение: неправильный Ñчётчик" - -#: elf32-sh.c:1179 elf32-sh.c:1549 -msgid "%B: 0x%lx: fatal: reloc overflow while relaxing" -msgstr "%B: 0x%lx: оÑтанов: переполнение Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ оÑлаблении" +#: elf32-sh.c:491 +#, c-format +msgid "%B: unrecognised SH reloc number: %d" +msgstr "%B: нераÑпознанный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ SH: %d" + +#: elf32-sh.c:592 +#, c-format +msgid "%B: %#Lx: warning: R_SH_USES points to unrecognized insn 0x%x" +msgstr "%B: %#Lx: предупреждение: R_SH_USES указывает на нераÑпознанный insn 0x%x" -#: elf32-sh.c:4048 elf64-sh64.c:1514 +#: elf32-sh.c:3947 elf64-sh64.c:1508 msgid "Unexpected STO_SH5_ISA32 on local symbol is not handled" msgstr "Ðеожиданное STO_SH5_ISA32 локального Ñимвола не обрабатываетÑÑ" -#: elf32-sh.c:4299 -msgid "%B: 0x%lx: fatal: unaligned branch target for relax-support relocation" -msgstr "%B: 0x%lx: оÑтанов: невыровненное назначение Ð²ÐµÑ‚Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¾Ð¹ оÑлаблениÑ" - -#: elf32-sh.c:4332 elf32-sh.c:4347 -msgid "%B: 0x%lx: fatal: unaligned %s relocation 0x%lx" -msgstr "%B: 0x%lx: оÑтанов: невыровненное %s перемещение 0x%lx" - -#: elf32-sh.c:4361 -msgid "%B: 0x%lx: fatal: R_SH_PSHA relocation %d not in range -32..32" -msgstr "%B: 0x%lx: оÑтанов: R_SH_PSHA перемещение %d вне диапазона -32..32" - -#: elf32-sh.c:4375 -msgid "%B: 0x%lx: fatal: R_SH_PSHL relocation %d not in range -32..32" -msgstr "%B: 0x%lx: оÑтанов: R_SH_PSHL перемещение %d вне диапазона -32..32" - -#: elf32-sh.c:4519 elf32-sh.c:4989 -msgid "%B(%A+0x%lx): cannot emit fixup to `%s' in read-only section" -msgstr "%B(%A+0x%lx): невозможно Ñгенерировать меÑтоположение к «%s» в разделе только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ" - -#: elf32-sh.c:5096 -msgid "%B(%A+0x%lx): %s relocation against external symbol \"%s\"" -msgstr "%B(%A+0x%lx): перемещение %s Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ Ñимвола «%s»" +#: elf32-sh.c:4200 +#, c-format +msgid "%B: %#Lx: fatal: unaligned branch target for relax-support relocation" +msgstr "%B: %#Lx: оÑтанов: невыровненное назначение Ð²ÐµÑ‚Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¾Ð¹ оÑлаблениÑ" + +#: elf32-sh.c:4234 elf32-sh.c:4250 +#, c-format +msgid "%B: %#Lx: fatal: unaligned %s relocation %#Lx" +msgstr "%B: %#Lx: оÑтанов: невыровненное перемещение %s (%#Lx)" + +#: elf32-sh.c:4265 +#, c-format +msgid "%B: %#Lx: fatal: R_SH_PSHA relocation %Ld not in range -32..32" +msgstr "%B: %#Lx: оÑтанов: перемещение R_SH_PSHA %Ld вне диапазона -32..32" + +#: elf32-sh.c:4280 +#, c-format +msgid "%B: %#Lx: fatal: R_SH_PSHL relocation %Ld not in range -32..32" +msgstr "%B: %#Lx: оÑтанов: перемещение R_SH_PSHL %Ld вне диапазона -32..32" + +#: elf32-sh.c:4426 elf32-sh.c:4899 +#, c-format +msgid "%B(%A+%#Lx): cannot emit fixup to `%s' in read-only section" +msgstr "%B(%A+%#Lx): невозможно Ñгенерировать меÑтоположение к «%s» в разделе только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ" + +#: elf32-sh.c:5001 +#, c-format +msgid "%B(%A+%#Lx): %s relocation against external symbol \"%s\"" +msgstr "%B(%A+%#Lx): перемещение %s Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ Ñимвола «%s»" -#: elf32-sh.c:5569 +#: elf32-sh.c:5465 #, c-format msgid "%X%C: relocation to \"%s\" references a different segment\n" msgstr "%X%C: перемещение указывает на ÑÑылки «%s» другого Ñегмента\n" -#: elf32-sh.c:5575 +#: elf32-sh.c:5472 #, c-format msgid "%C: warning: relocation to \"%s\" references a different segment\n" msgstr "%C: предупреждение: перемещение указывает на ÑÑылки «%s» другого Ñегмента\n" -#: elf32-sh.c:6353 elf32-sh.c:6436 +#: elf32-sh.c:6046 elf32-sh.c:6132 +#, c-format msgid "%B: `%s' accessed both as normal and FDPIC symbol" msgstr "%B: «%s» доÑтупен как обычный и как FDPIC Ñимвол" -#: elf32-sh.c:6358 elf32-sh.c:6440 +#: elf32-sh.c:6052 elf32-sh.c:6137 +#, c-format msgid "%B: `%s' accessed both as FDPIC and thread local symbol" msgstr "%B: «%s» доÑтупен как FDPIC и как локальный Ñимвол нити" -#: elf32-sh.c:6388 +#: elf32-sh.c:6083 msgid "%B: Function descriptor relocation with non-zero addend" msgstr "%B: перемещение деÑкриптора функции Ñ Ð½ÐµÐ½ÑƒÐ»ÐµÐ²Ñ‹Ð¼ добавлением" -#: elf32-sh.c:6624 elf64-alpha.c:4652 +#: elf32-sh.c:6321 elf64-alpha.c:4688 +#, c-format msgid "%B: TLS local exec code cannot be linked into shared objects" msgstr "%B: локальный иÑполнÑемый код TLS не может быть Ñкомпонован Ñ Ð¾Ð±Ñ‰Ð¸Ð¼Ð¸ объектами" -#: elf32-sh64.c:223 elf64-sh64.c:2318 +#: elf32-sh.c:6436 +#, c-format +msgid "%B: uses %s instructions while previous modules use %s instructions" +msgstr "%B: иÑпользуютÑÑ Ð¸Ð½Ñтрукции %s, Ñ…Ð¾Ñ‚Ñ Ð² предыдущих модулÑÑ… иÑпользовалиÑÑŒ инÑтрукции %s" + +#: elf32-sh.c:6448 #, c-format -msgid "%s: compiled as 32-bit object and %s is 64-bit" -msgstr "%s: Ñкомпилирован как 32-битный объект, а %s 64-битный" +msgid "internal error: merge of architecture '%s' with architecture '%s' produced unknown architecture" +msgstr "внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: объединение архитектуры «%s» Ñ Ð°Ñ€Ñ…Ð¸Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¾Ð¹ «%s» Ñоздаёт неизвеÑтную архитектуру" + +#: elf32-sh.c:6485 +msgid "%B: uses instructions which are incompatible with instructions used in previous modules" +msgstr "%B: иÑпользуютÑÑ Ð¸Ð½Ñтрукции, не ÑовмеÑтимые Ñ Ð¸Ð½ÑтрукциÑми, иÑпользовавшимиÑÑ Ð² предыдущих модулÑÑ…" -#: elf32-sh64.c:226 elf64-sh64.c:2321 +#: elf32-sh.c:6498 +msgid "%B: attempt to mix FDPIC and non-FDPIC objects" +msgstr "%B: попытка Ñмешать объекты FDPIC и не FDPIC" + +#: elf32-sh64.c:225 elf64-sh64.c:2277 #, c-format -msgid "%s: compiled as 64-bit object and %s is 32-bit" -msgstr "%s: Ñкомпилирован как 64-битный объект, а %s 32-битный" +msgid "%B: compiled as 32-bit object and %B is 64-bit" +msgstr "%B: Ñкомпилирован как 32-битный объект, а %B — 64-битный" -#: elf32-sh64.c:228 elf64-sh64.c:2323 +#: elf32-sh64.c:229 elf64-sh64.c:2281 #, c-format -msgid "%s: object size does not match that of target %s" -msgstr "%s: размер объекта не ÑоответÑтвует Ñтой цели %s" +msgid "%B: compiled as 64-bit object and %B is 32-bit" +msgstr "%B: Ñкомпилирован как 64-битный объект, а %B — 32-битный" -#: elf32-sh64.c:451 elf64-sh64.c:2837 +#: elf32-sh64.c:232 elf64-sh64.c:2284 #, c-format -msgid "%s: encountered datalabel symbol in input" -msgstr "%s: во входных данных обнаружен Ñимвол метки данных" +msgid "%B: object size does not match that of target %B" +msgstr "%B: размер объекта не Ñовпадает Ñ Ð¸Ð¼ÐµÑŽÑ‰Ð¸Ð¼ÑÑ Ñƒ Ñтой цели %B" + +#: elf32-sh64.c:455 elf64-sh64.c:2772 +msgid "%B: encountered datalabel symbol in input" +msgstr "%B: во входных данных обнаружен Ñимвол метки данных" -#: elf32-sh64.c:528 +#: elf32-sh64.c:531 msgid "PTB mismatch: a SHmedia address (bit 0 == 1)" msgstr "неÑовпадение PTB: Ð°Ð´Ñ€ÐµÑ SHmedia (бит 0 == 1)" -#: elf32-sh64.c:531 +#: elf32-sh64.c:534 msgid "PTA mismatch: a SHcompact address (bit 0 == 0)" msgstr "неÑовпадение PTA: Ð°Ð´Ñ€ÐµÑ SHcompact (бит 0 == 0)" -#: elf32-sh64.c:549 -#, c-format -msgid "%s: GAS error: unexpected PTB insn with R_SH_PT_16" -msgstr "%s: ошибка GAS: неожиданный PTB insn Ñ R_SH_PT_16" - -#: elf32-sh64.c:598 -msgid "%B: error: unaligned relocation type %d at %08x reloc %p\n" -msgstr "%B: ошибка: невыровненный тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %d по адреÑу %08x перемещение %p\n" +#: elf32-sh64.c:550 +msgid "%B: GAS error: unexpected PTB insn with R_SH_PT_16" +msgstr "%B: ошибка GAS: Ð½ÐµÐ¾Ð¶Ð¸Ð´Ð°Ð½Ð½Ð°Ñ Ð¸Ð½ÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ PTB Ñ R_SH_PT_16" -#: elf32-sh64.c:674 +#: elf32-sh64.c:600 #, c-format -msgid "%s: could not write out added .cranges entries" -msgstr "%s: не удалоÑÑŒ запиÑать добавленные Ñлементы .cranges" +msgid "%B: error: unaligned relocation type %d at %#Lx reloc %#Lx" +msgstr "%B: ошибка: невыровненный тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %d по адреÑу %#Lx, перемещение %#Lx" -#: elf32-sh64.c:734 -#, c-format -msgid "%s: could not write out sorted .cranges entries" -msgstr "%s: не удалоÑÑŒ запиÑать отÑортированные Ñлементы .cranges" +#: elf32-sh64.c:676 +msgid "%B: could not write out added .cranges entries" +msgstr "%B: не удалоÑÑŒ запиÑать добавленные Ñлементы .cranges" + +#: elf32-sh64.c:735 +msgid "%B: could not write out sorted .cranges entries" +msgstr "%B: не удалоÑÑŒ запиÑать отÑортированные Ñлементы .cranges" -#: elf32-sparc.c:90 +#: elf32-sparc.c:89 msgid "%B: compiled for a 64 bit system and target is 32 bit" msgstr "%B: Ñкомпилирован Ð´Ð»Ñ 64-битной ÑиÑтемы, а цель 32-битнаÑ" -#: elf32-sparc.c:103 +#: elf32-sparc.c:102 msgid "%B: linking little endian files with big endian files" msgstr "%B: производитÑÑ ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²ÐºÐ° файлов Ñ Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ñ‹Ð¼ порÑдком байт Ñ Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ Ñ Ð¿Ñ€Ñмым порÑдком байт" -#: elf32-spu.c:719 +#: elf32-spu.c:160 +#, c-format +msgid "%B: unrecognised SPU reloc number: %d" +msgstr "%B: нераÑпознанный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ SPU: %d" + +#: elf32-spu.c:726 msgid "%X%P: overlay section %A does not start on a cache line.\n" msgstr "%X%P: раздел Ð¾Ð²ÐµÑ€Ð»ÐµÑ %A не начинаетÑÑ Ñо Ñтроки кÑша.\n" -#: elf32-spu.c:727 +#: elf32-spu.c:734 msgid "%X%P: overlay section %A is larger than a cache line.\n" msgstr "%X%P: раздел Ð¾Ð²ÐµÑ€Ð»ÐµÑ %A больше Ñтроки кÑша.\n" -#: elf32-spu.c:747 +#: elf32-spu.c:754 msgid "%X%P: overlay section %A is not in cache area.\n" msgstr "%X%P: раздел Ð¾Ð²ÐµÑ€Ð»ÐµÑ %A не в облаÑти кÑша.\n" -#: elf32-spu.c:787 +#: elf32-spu.c:795 +#, c-format msgid "%X%P: overlay sections %A and %A do not start at the same address.\n" msgstr "%X%P: разделы оверлеев %A и %A не начинаютÑÑ Ñ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ð¾Ð³Ð¾ адреÑа.\n" -#: elf32-spu.c:1011 +#: elf32-spu.c:1021 +#, c-format msgid "warning: call to non-function symbol %s defined in %B" msgstr "предупреждение: в %B определён вызов Ñимвола не-функции %s" -#: elf32-spu.c:1361 +#: elf32-spu.c:1371 +#, c-format msgid "%A:0x%v lrlive .brinfo (%u) differs from analysis (%u)\n" msgstr "%A:0x%v lrlive .brinfo (%u) отличаетÑÑ Ð¾Ñ‚ анализируемого (%u)\n" -#: elf32-spu.c:1880 +#: elf32-spu.c:1903 +#, c-format msgid "%B is not allowed to define %s" msgstr "%B не разрешает определÑÑ‚ÑŒ %s" -#: elf32-spu.c:1888 +#: elf32-spu.c:1911 #, c-format msgid "you are not allowed to define %s in a script" msgstr "вам не разрешено определÑÑ‚ÑŒ %s в Ñценарии" -#: elf32-spu.c:1922 +#: elf32-spu.c:1945 #, c-format msgid "%s in overlay section" msgstr "%s в разделе оверлеев" -#: elf32-spu.c:1951 +#: elf32-spu.c:1974 msgid "overlay stub relocation overflow" msgstr "переполнение оверлейной заглушки перемещениÑ" -#: elf32-spu.c:1960 +#: elf32-spu.c:1983 msgid "stubs don't match calculated size" msgstr "заглушка не ÑоответÑтвует вычиÑленному размеру" -#: elf32-spu.c:2542 +#: elf32-spu.c:2566 #, c-format msgid "warning: %s overlaps %s\n" msgstr "предупреждение: %s перекрываетÑÑ Ñ %s\n" -#: elf32-spu.c:2558 +#: elf32-spu.c:2582 #, c-format msgid "warning: %s exceeds section size\n" msgstr "предупреждение: %s превышает размер раздела\n" -#: elf32-spu.c:2589 +#: elf32-spu.c:2614 +#, c-format msgid "%A:0x%v not found in function table\n" msgstr "%A:0x%v не найдена в таблице функций\n" -#: elf32-spu.c:2729 +#: elf32-spu.c:2755 +#, c-format msgid "%B(%A+0x%v): call to non-code section %B(%A), analysis incomplete\n" msgstr "%B(%A+0x%v): вызов не кодового раздела %B(%A), анализ не полон\n" -#: elf32-spu.c:3297 +#: elf32-spu.c:3324 #, c-format msgid "Stack analysis will ignore the call from %s to %s\n" msgstr "Ð’ анализе Ñтека будет игнорироватьÑÑ Ð²Ñ‹Ð·Ð¾Ð² из %s в %s\n" -#: elf32-spu.c:3988 -msgid " %s: 0x%v\n" -msgstr " %s: 0x%v\n" - -#: elf32-spu.c:3989 -msgid "%s: 0x%v 0x%v\n" -msgstr "%s: 0x%v 0x%v\n" - -#: elf32-spu.c:3994 +#: elf32-spu.c:4021 msgid " calls:\n" msgstr " вызовы:\n" -#: elf32-spu.c:4002 -#, c-format -msgid " %s%s %s\n" -msgstr " %s%s %s\n" - -#: elf32-spu.c:4307 +#: elf32-spu.c:4335 #, c-format msgid "%s duplicated in %s\n" msgstr "%s повторÑетÑÑ Ð² %s\n" -#: elf32-spu.c:4311 +#: elf32-spu.c:4339 #, c-format msgid "%s duplicated\n" msgstr "%s повторÑетÑÑ\n" -#: elf32-spu.c:4318 +#: elf32-spu.c:4346 msgid "sorry, no support for duplicate object files in auto-overlay script\n" msgstr "поддержка повторÑющихÑÑ Ð¾Ð±ÑŠÐµÐºÑ‚Ð½Ñ‹Ñ… файлов в Ñценарии auto-overlay пока не Ñделана\n" -#: elf32-spu.c:4359 +#: elf32-spu.c:4388 +#, c-format msgid "non-overlay size of 0x%v plus maximum overlay size of 0x%v exceeds local store\n" msgstr "не оверлейный размер 0x%v Ð¿Ð»ÑŽÑ Ð¼Ð°ÐºÑимальный размер Ð¾Ð²ÐµÑ€Ð»ÐµÑ 0x%v превышает локальное хранилище\n" -#: elf32-spu.c:4514 +#: elf32-spu.c:4544 +#, c-format msgid "%B:%A%s exceeds overlay size\n" msgstr "%B:%A%s превышает размер оверлеÑ\n" -#: elf32-spu.c:4676 +#: elf32-spu.c:4685 +msgid "%F%P: auto overlay error: %E\n" +msgstr "%F%P: ошибка автоматичеÑкого оверлеÑ: %E\n" + +#: elf32-spu.c:4706 msgid "Stack size for call graph root nodes.\n" msgstr "Размер Ñтека Ð´Ð»Ñ Ð²Ñ‹Ð·Ð¾Ð²Ð° графа корневых узлов.\n" -#: elf32-spu.c:4677 +#: elf32-spu.c:4707 msgid "" "\n" "Stack size for functions. Annotations: '*' max stack, 't' tail call\n" @@ -2381,283 +3657,625 @@ "\n" "Размер Ñтека Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¹. ПримечаниÑ: '*' Ð¼Ð°ÐºÑ Ñтек, 't' хвоÑтовой вызов\n" -#: elf32-spu.c:4687 +#: elf32-spu.c:4717 msgid "Maximum stack required is 0x%v\n" msgstr "Ð”Ð»Ñ Ð¼Ð°ÐºÑимального Ñтека требуетÑÑ 0x%v\n" -#: elf32-spu.c:4778 +#: elf32-spu.c:4736 +msgid "%X%P: stack/lrlive analysis error: %E\n" +msgstr "%X%P: ошибка при анализе Ñтека/lrlive: %E\n" + +#: elf32-spu.c:4739 +msgid "%F%P: can not build overlay stubs: %E\n" +msgstr "%F%P: невозможно Ñобрать заглушки оверлеÑ: %E\n" + +#: elf32-spu.c:4808 msgid "fatal error while creating .fixup" msgstr "неиÑÐ¿Ñ€Ð°Ð²Ð¸Ð¼Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° при Ñоздании .fixup" -#: elf32-spu.c:5008 -msgid "%B(%s+0x%lx): unresolvable %s relocation against symbol `%s'" -msgstr "%B(%s+0x%lx): неразрешённое перемещение %s Ð´Ð»Ñ Ñимвола «%s»" +#: elf32-spu.c:5043 +#, c-format +msgid "%B(%s+%#Lx): unresolvable %s relocation against symbol `%s'" +msgstr "%B(%s+%#Lx): неразрешимое перемещение %s Ð´Ð»Ñ Ñимвола «%s»" -#: elf32-tic6x.c:1602 +#: elf32-tic6x.c:1596 msgid "warning: generating a shared library containing non-PIC code" msgstr "предупреждение: Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¾Ð±Ñ‰ÐµÐ¹ библиотеки Ñодержащей не-PIC код" -#: elf32-tic6x.c:1607 +#: elf32-tic6x.c:1601 msgid "warning: generating a shared library containing non-PID code" msgstr "предупреждение: Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¾Ð±Ñ‰ÐµÐ¹ библиотеки Ñодержащей не-PID код" -#: elf32-tic6x.c:2541 +#: elf32-tic6x.c:2460 msgid "%B: SB-relative relocation but __c6xabi_DSBT_BASE not defined" msgstr "%B: отноÑительное перемещение SB, но __c6xabi_DSBT_BASE не определён" -#: elf32-tic6x.c:2761 -msgid "dangerous relocation" -msgstr "опаÑное перемещение" - -#: elf32-tic6x.c:3733 +#: elf32-tic6x.c:3582 +#, c-format msgid "%B: error: unknown mandatory EABI object attribute %d" msgstr "%B: ошибка: неизвеÑтный обÑзательный атрибут EABI-объекта %d" -#: elf32-tic6x.c:3741 +#: elf32-tic6x.c:3591 +#, c-format msgid "%B: warning: unknown EABI object attribute %d" msgstr "%B: предупреждение: неизвеÑтный атрибут EABI-объекта %d" -#: elf32-tic6x.c:3853 elf32-tic6x.c:3861 +#: elf32-tic6x.c:3705 elf32-tic6x.c:3714 +#, c-format msgid "error: %B requires more stack alignment than %B preserves" msgstr "ошибка: Ð´Ð»Ñ %B требуетÑÑ Ð±Ð¾Ð»ÑŒÑˆÐµÐµ выравнивание Ñтека, чем Ñохранено в %B" -#: elf32-tic6x.c:3871 elf32-tic6x.c:3880 +#: elf32-tic6x.c:3724 elf32-tic6x.c:3733 msgid "error: unknown Tag_ABI_array_object_alignment value in %B" msgstr "ошибка: неизвеÑтное значение Tag_ABI_array_object_alignment в %B" -#: elf32-tic6x.c:3889 elf32-tic6x.c:3898 +#: elf32-tic6x.c:3742 elf32-tic6x.c:3751 msgid "error: unknown Tag_ABI_array_object_align_expected value in %B" msgstr "ошибка: неизвеÑтное значение Tag_ABI_array_object_align_expected в %B" -#: elf32-tic6x.c:3906 elf32-tic6x.c:3913 +#: elf32-tic6x.c:3760 elf32-tic6x.c:3768 +#, c-format msgid "error: %B requires more array alignment than %B preserves" msgstr "ошибка: Ð´Ð»Ñ %B требуетÑÑ Ð±Ð¾Ð»ÑŒÑˆÐµÐµ выравнивание маÑÑива, чем Ñохранено в %B" -#: elf32-tic6x.c:3935 +#: elf32-tic6x.c:3791 +#, c-format msgid "warning: %B and %B differ in wchar_t size" msgstr "предупреждение: в %B и %B различаетÑÑ Ñ€Ð°Ð·Ð¼ÐµÑ€ wchar_t" -#: elf32-tic6x.c:3953 +#: elf32-tic6x.c:3810 +#, c-format msgid "warning: %B and %B differ in whether code is compiled for DSBT" msgstr "предупреждение: в %B и %B по-разному Ñкомпилирован код Ð´Ð»Ñ DSBT" -#: elf32-v850.c:173 +#: elf32-tilepro.c:3752 elfxx-tilegx.c:4132 elfxx-x86.c:1336 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:9172 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2492 +#, c-format +msgid "discarded output section: `%A'" +msgstr "отброшенный выходной раздел: «%A»" + +#: elf32-v850.c:153 #, c-format msgid "Variable `%s' cannot occupy in multiple small data regions" msgstr "ÐŸÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Â«%s» не может занимать неÑколько маленьких облаÑтей данных" -#: elf32-v850.c:176 +#: elf32-v850.c:156 #, c-format msgid "Variable `%s' can only be in one of the small, zero, and tiny data regions" msgstr "ÐŸÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Â«%s» может быть только в одном из маленьких, нулевых и крошечных облаÑтей данных" -#: elf32-v850.c:179 +#: elf32-v850.c:159 #, c-format msgid "Variable `%s' cannot be in both small and zero data regions simultaneously" msgstr "ÐŸÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Â«%s» не может быть в маленьких и нулевых облаÑÑ‚ÑÑ… данных одновременно" -#: elf32-v850.c:182 +#: elf32-v850.c:162 #, c-format msgid "Variable `%s' cannot be in both small and tiny data regions simultaneously" msgstr "ÐŸÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Â«%s» не может быть в маленьких и крошечных облаÑÑ‚ÑÑ… данных одновременно" -#: elf32-v850.c:185 +#: elf32-v850.c:165 #, c-format msgid "Variable `%s' cannot be in both zero and tiny data regions simultaneously" msgstr "ÐŸÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Â«%s» не может быть в нулевых и крошечных облаÑÑ‚ÑÑ… данных одновременно" -#: elf32-v850.c:483 +#: elf32-v850.c:463 msgid "FAILED to find previous HI16 reloc" msgstr "ÐЕ УДÐЛОСЬ найти предыдущее перемещение HI16" -#: elf32-v850.c:2155 +#: elf32-v850.c:1898 elf32-v850.c:1917 +#, c-format +msgid "%B: invalid V850 reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ V850: %d" + +#: elf32-v850.c:2295 msgid "could not locate special linker symbol __gp" msgstr "невозможно отыÑкать Ñпециальный Ñимвол компоновки __gp" -#: elf32-v850.c:2159 +#: elf32-v850.c:2299 msgid "could not locate special linker symbol __ep" msgstr "невозможно отыÑкать Ñпециальный Ñимвол компоновки __ep" -#: elf32-v850.c:2163 +#: elf32-v850.c:2303 msgid "could not locate special linker symbol __ctbp" msgstr "невозможно отыÑкать Ñпециальный Ñимвол компоновки __ctbp" -#: elf32-v850.c:2341 -msgid "%B: Architecture mismatch with previous modules" -msgstr "%B: Ðрхитектура не Ñовпадает Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð¸Ð¼Ð¸ модулÑми" +#: elf32-v850.c:2524 +#, c-format +msgid "error: %B needs 8-byte alignment but %B is set for 4-byte alignment" +msgstr "ошибка: Ð´Ð»Ñ %B требуетÑÑ 8-байтовое выравнивание, но Ð´Ð»Ñ %B задано 4-байтовое выравнивание" -#. xgettext:c-format. -#: elf32-v850.c:2360 +#: elf32-v850.c:2540 #, c-format -msgid "private flags = %lx: " -msgstr "ÑобÑтвенные флаги = %lx: " +msgid "error: %B uses 64-bit doubles but %B uses 32-bit doubles" +msgstr "ошибка: в %B иÑпользуютÑÑ 64-битные double, но в %B иÑпользуют 32-битные double" -#: elf32-v850.c:2365 +#: elf32-v850.c:2555 #, c-format -msgid "v850 architecture" -msgstr "архитектура v850" +msgid "error: %B uses FPU-3.0 but %B only supports FPU-2.0" +msgstr "ошибка: в %B иÑпользуетÑÑ FPU-3.0, в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº %B поддерживает только FPU-2.0" -#: elf32-v850.c:2366 +#: elf32-v850.c:2587 #, c-format -msgid "v850e architecture" -msgstr "архитектура v850e" +msgid " alignment of 8-byte entities: " +msgstr " выравнивание 8-байтовых Ñлементов: " -#: elf32-v850.c:2367 +#: elf32-v850.c:2590 +#, c-format +msgid "4-byte" +msgstr "4-байтовое" + +#: elf32-v850.c:2591 +#, c-format +msgid "8-byte" +msgstr "8-байтовое" + +#: elf32-v850.c:2592 elf32-v850.c:2604 +#, c-format +msgid "not set" +msgstr " [не задано]" + +#: elf32-v850.c:2593 elf32-v850.c:2605 elf32-v850.c:2617 elf32-v850.c:2628 +#: elf32-v850.c:2639 elf32-v850.c:2650 +#, c-format +msgid "unknown: %x" +msgstr "неизвеÑтно: %x" + +#: elf32-v850.c:2599 +#, c-format +msgid " size of doubles: " +msgstr " размер double: " + +#: elf32-v850.c:2602 +#, c-format +msgid "4-bytes" +msgstr "4-байтовые" + +#: elf32-v850.c:2603 +#, c-format +msgid "8-bytes" +msgstr "8-байтовые" + +#: elf32-v850.c:2611 +#, c-format +msgid " FPU support required: " +msgstr " Ñ‚Ñ€ÐµÐ±ÑƒÐµÐ¼Ð°Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ° FPU: " + +#: elf32-v850.c:2614 +#, c-format +msgid "FPU-2.0" +msgstr "FPU-2.0" + +#: elf32-v850.c:2615 +#, c-format +msgid "FPU-3.0" +msgstr "FPU-3.0" + +#: elf32-v850.c:2616 +#, c-format +msgid "none" +msgstr "не требуетÑÑ" + +#: elf32-v850.c:2623 +#, c-format +msgid "SIMD use: " +msgstr "ИÑпользование SIMD: " + +#: elf32-v850.c:2626 elf32-v850.c:2637 elf32-v850.c:2648 +#, c-format +msgid "yes" +msgstr "да" + +#: elf32-v850.c:2627 elf32-v850.c:2638 elf32-v850.c:2649 +#, c-format +msgid "no" +msgstr "нет" + +#: elf32-v850.c:2634 +#, c-format +msgid "CACHE use: " +msgstr "ИÑпользование CACHE: " + +#: elf32-v850.c:2645 +#, c-format +msgid "MMU use: " +msgstr "ИÑпользование MMU: " + +#: elf32-v850.c:2812 elf32-v850.c:2868 +msgid "%B: Architecture mismatch with previous modules" +msgstr "%B: архитектура не Ñовпадает Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð¸Ð¼Ð¸ модулÑми" + +#. xgettext:c-format. +#: elf32-v850.c:2886 +#, c-format +msgid "private flags = %lx: " +msgstr "ÑобÑтвенные флаги = %lx: " + +#: elf32-v850.c:2891 +#, c-format +msgid "unknown v850 architecture" +msgstr "неизвеÑÑ‚Ð½Ð°Ñ Ð°Ñ€Ñ…Ð¸Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° v850" + +#: elf32-v850.c:2893 +#, c-format +msgid "v850 E3 architecture" +msgstr "архитектура v850 E3" + +#: elf32-v850.c:2895 elf32-v850.c:2902 +#, c-format +msgid "v850 architecture" +msgstr "архитектура v850" + +#: elf32-v850.c:2903 +#, c-format +msgid "v850e architecture" +msgstr "архитектура v850e" + +#: elf32-v850.c:2904 #, c-format msgid "v850e1 architecture" msgstr "архитектура v850e1" -#: elf32-v850.c:2368 +#: elf32-v850.c:2905 #, c-format msgid "v850e2 architecture" msgstr "архитектура v850e2" -#: elf32-v850.c:2369 +#: elf32-v850.c:2906 #, c-format msgid "v850e2v3 architecture" msgstr "архитектура v850e2v3" -#: elf32-vax.c:532 +#: elf32-v850.c:2907 +#, c-format +msgid "v850e3v5 architecture" +msgstr "архитектура v850e3v5" + +#: elf32-v850.c:3601 +#, c-format +msgid "%B: %#Lx: warning: R_V850_LONGCALL points to unrecognized insns" +msgstr "%B: %#Lx: предупреждение: R_V850_LONGCALL указывает на нераÑпознанные insn" + +#: elf32-v850.c:3611 +#, c-format +msgid "%B: %#Lx: warning: R_V850_LONGCALL points to unrecognized insn %#x" +msgstr "%B: %#Lx: предупреждение: R_V850_LONGCALL указывает на нераÑпознанную insn %#x" + +#: elf32-v850.c:3656 +#, c-format +msgid "%B: %#Lx: warning: R_V850_LONGCALL points to unrecognized reloc" +msgstr "%B: %#Lx: предупреждение: R_V850_LONGCALL указывает на нераÑпознанное перемещение" + +#: elf32-v850.c:3696 +#, c-format +msgid "%B: %#Lx: warning: R_V850_LONGCALL points to unrecognized reloc %#Lx" +msgstr "%B: %#Lx: предупреждение: R_V850_LONGCALL указывает на нераÑпознанное перемещение %#Lx" + +#: elf32-v850.c:3839 +#, c-format +msgid "%B: %#Lx: warning: R_V850_LONGJUMP points to unrecognized insns" +msgstr "%B: %#Lx: предупреждение: R_V850_LONGJUMP указывает на нераÑпознанные insn" + +#: elf32-v850.c:3849 +#, c-format +msgid "%B: %#Lx: warning: R_V850_LONGJUMP points to unrecognized insn %#x" +msgstr "%B: %#Lx: предупреждение: R_V850_LONGJUMP указывает на нераÑпознанную insn %#x" + +#: elf32-v850.c:3883 +#, c-format +msgid "%B: %#Lx: warning: R_V850_LONGJUMP points to unrecognized reloc" +msgstr "%B: %#Lx: предупреждение: R_V850_LONGJUMP указывает на нераÑпознанное перемещение" + +#: elf32-vax.c:290 +#, c-format +msgid "%B: unrecognised VAX reloc number: %d" +msgstr "%B: нераÑпознанный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ VAX: %d" + +#: elf32-vax.c:539 #, c-format msgid " [nonpic]" msgstr " [не-pic]" -#: elf32-vax.c:535 +#: elf32-vax.c:542 #, c-format msgid " [d-float]" msgstr " [d-float]" -#: elf32-vax.c:538 +#: elf32-vax.c:545 #, c-format msgid " [g-float]" msgstr " [g-float]" -#: elf32-vax.c:655 +#: elf32-vax.c:631 +#, c-format +msgid "%B: warning: GOT addend of %Ld to `%s' does not match previous GOT addend of %Ld" +msgstr "%B: предупреждение: добавление GOT из %Ld к «%s» не Ñовпадает Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð¸Ð¼ добавлением GOT из %Ld" + +#: elf32-vax.c:1445 +#, c-format +msgid "%B: warning: PLT addend of %Ld to `%s' from %A section ignored" +msgstr "%B: предупреждение: добавление PLT из %Ld к «%s» из раздела %A игнорируетÑÑ" + +#: elf32-vax.c:1570 +#, c-format +msgid "%B: warning: %s relocation against symbol `%s' from %A section" +msgstr "%B: предупреждение: перемещение %s Ð´Ð»Ñ Ñимвола «%s» из раздела %A" + +#: elf32-vax.c:1577 +#, c-format +msgid "%B: warning: %s relocation to %#Lx from %A section" +msgstr "%B: предупреждение: перемещение %s к %#Lx из раздела %A" + +#: elf32-visium.c:481 #, c-format -msgid "%s: warning: GOT addend of %ld to `%s' does not match previous GOT addend of %ld" -msgstr "%s: предупреждение: добавление GOT из %ld к «%s» не Ñовпадает Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð¸Ð¼ добавлением GOT из %ld" +msgid "%B: invalid Visium reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Visium: %d" -#: elf32-vax.c:1585 +#: elf32-visium.c:817 #, c-format -msgid "%s: warning: PLT addend of %d to `%s' from %s section ignored" -msgstr "%s: предупреждение: добавление PLT из %d к «%s» из раздела %s игнорируетÑÑ" +msgid "%B: compiled %s -mtune=%s and linked with modules compiled %s -mtune=%s" +msgstr "%B: компилируетÑÑ Ñ %s -mtune=%s и компонуетÑÑ Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñми, Ñкомпилированными Ñ %s -mtune=%s" -#: elf32-vax.c:1712 +#: elf32-xgate.c:428 #, c-format -msgid "%s: warning: %s relocation against symbol `%s' from %s section" -msgstr "%s: предупреждение: перемещение %s Ð´Ð»Ñ Ñимвола «%s» из раздела %s" +msgid "%B: invalid XGate reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ XGate: %d" -#: elf32-vax.c:1718 +#: elf32-xgate.c:681 #, c-format -msgid "%s: warning: %s relocation to 0x%x from %s section" -msgstr "%s: предупреждение: перемещение %s к 0x%x из раздела %s" +msgid "cpu=XGATE]" +msgstr "процеÑÑор=XGATE]" -#: elf32-xstormy16.c:451 elf32-ia64.c:2336 elf64-ia64.c:2336 +#: elf32-xgate.c:683 +#, c-format +msgid "error reading cpu type from elf private data" +msgstr "ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ñ‚Ð¸Ð¿Ð° процеÑÑора из закрытых данных elf" + +#: elf32-xstormy16.c:449 elf64-ia64-vms.c:2074 elf32-ia64.c:2337 +#: elf64-ia64.c:2337 msgid "non-zero addend in @fptr reloc" msgstr "ненулевое добавление в перемещение @fptr" -#: elf32-xtensa.c:918 +#: elf32-xtensa.c:485 +#, c-format +msgid "%B: invalid XTENSA reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ XTENSA: %d" + +#: elf32-xtensa.c:926 +#, c-format msgid "%B(%A): invalid property table" -msgstr "%B(%A): недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° ÑвойÑтв" +msgstr "%B(%A): Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° ÑвойÑтв" -#: elf32-xtensa.c:2777 -msgid "%B(%A+0x%lx): relocation offset out of range (size=0x%x)" -msgstr "%B(%A+0x%lx): Ñмещение Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð²Ð½Ðµ диапазона (размер=0x%x)" +#: elf32-xtensa.c:2655 +#, c-format +msgid "%B(%A+%#Lx): relocation offset out of range (size=%#Lx)" +msgstr "%B(%A+%#Lx): Ñмещение Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð²Ð½Ðµ диапазона (размер=%#Lx)" -#: elf32-xtensa.c:2856 elf32-xtensa.c:2977 +#: elf32-xtensa.c:2736 elf32-xtensa.c:2855 msgid "dynamic relocation in read-only section" msgstr "динамичеÑкое перемещение в разделе только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ" -#: elf32-xtensa.c:2953 +#: elf32-xtensa.c:2832 msgid "TLS relocation invalid without dynamic sections" msgstr "TLS-перемещение недопуÑтимо без динамичеÑких разделов" -#: elf32-xtensa.c:3172 +#: elf32-xtensa.c:3043 msgid "internal inconsistency in size of .got.loc section" msgstr "внутреннÑÑ Ð½ÐµÑоглаÑованноÑÑ‚ÑŒ размера раздела .got.loc" -#: elf32-xtensa.c:3485 +#: elf32-xtensa.c:3350 +#, c-format msgid "%B: incompatible machine type. Output is 0x%x. Input is 0x%x" msgstr "%B: неÑовмеÑтимый машинный тип. Выходной 0x%x. Входной 0x%x" -#: elf32-xtensa.c:4714 elf32-xtensa.c:4722 +#: elf32-xtensa.c:4581 elf32-xtensa.c:4589 msgid "Attempt to convert L32R/CALLX to CALL failed" msgstr "Попытка Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ L32R/CALLX в CALL завершилаÑÑŒ неудачно" -#: elf32-xtensa.c:6332 elf32-xtensa.c:6408 elf32-xtensa.c:7524 -msgid "%B(%A+0x%lx): could not decode instruction; possible configuration mismatch" -msgstr "%B(%A+0x%lx): невозможно декодировать инÑтрукцию; возможно неÑовпадение конфигурации" - -#: elf32-xtensa.c:7264 -msgid "%B(%A+0x%lx): could not decode instruction for XTENSA_ASM_SIMPLIFY relocation; possible configuration mismatch" -msgstr "%B(%A+0x%lx): невозможно декодировать инÑтрукцию Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ XTENSA_ASM_SIMPLIFY; возможно неÑовпадение конфигурации" +#: elf32-xtensa.c:6417 elf32-xtensa.c:6495 elf32-xtensa.c:7871 +#, c-format +msgid "%B(%A+%#Lx): could not decode instruction; possible configuration mismatch" +msgstr "%B(%A+%#Lx): невозможно декодировать инÑтрукцию; возможно неÑовпадение конфигурации" -#: elf32-xtensa.c:9023 +#: elf32-xtensa.c:7610 +#, c-format +msgid "%B(%A+%#Lx): could not decode instruction for XTENSA_ASM_SIMPLIFY relocation; possible configuration mismatch" +msgstr "%B(%A+%#Lx): невозможно декодировать инÑтрукцию Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ XTENSA_ASM_SIMPLIFY; возможно неÑовпадение конфигурации" + +#: elf32-xtensa.c:9455 msgid "invalid relocation address" msgstr "недопуÑтимый Ð°Ð´Ñ€ÐµÑ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ" -#: elf32-xtensa.c:9072 +#: elf32-xtensa.c:9505 msgid "overflow after relaxation" msgstr "переполнение поÑле оÑлаблениÑ" -#: elf32-xtensa.c:10204 -msgid "%B(%A+0x%lx): unexpected fix for %s relocation" -msgstr "%B(%A+0x%lx): неожиданное назначение Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %s" +#: elf32-xtensa.c:10649 +#, c-format +msgid "%B(%A+%#Lx): unexpected fix for %s relocation" +msgstr "%B(%A+%#Lx): неожиданное назначение Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %s" -#: elf64-alpha.c:460 +#: elf64-alpha.c:472 msgid "GPDISP relocation did not find ldah and lda instructions" msgstr "Ðе найдены инÑтрукции ldah и lda Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ GPDISP" -#: elf64-alpha.c:2497 +#: elf64-alpha.c:1112 +#, c-format +msgid "%B: unrecognised Alpha reloc number: %d" +msgstr "%B: нераÑпознанный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Alpha: %d" + +#: elf64-alpha.c:2462 +#, c-format msgid "%B: .got subsegment exceeds 64K (size %d)" msgstr "%B: подраздел .got превышает 64K (размер %d)" -#: elf64-alpha.c:4387 elf64-alpha.c:4399 +#: elf64-alpha.c:3017 +#, c-format +msgid "%B: %A+%#Lx: warning: %s relocation against unexpected insn" +msgstr "%B: %A+%#Lx: предупреждение: перемещение Ñ Ð½ÐµÐ¾Ð¶Ð¸Ð´Ð°Ð½Ð½Ð¾Ð¹ инÑтрукцией" + +#: elf64-alpha.c:3212 +#, c-format +msgid "%B: %A+%#Lx: warning: LITERAL relocation against unexpected insn" +msgstr "%B: %A+%#Lx: предупреждение: перемещение LITERAL Ñ Ð½ÐµÐ¾Ð¶Ð¸Ð´Ð°Ð½Ð½Ð¾Ð¹ инÑтрукцией" + +#: elf64-alpha.c:4412 elf64-alpha.c:4425 +#, c-format msgid "%B: gp-relative relocation against dynamic symbol %s" msgstr "%B: gp-отноÑительное перемещение Ð´Ð»Ñ Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñ‡ÐµÑкого Ñимвола %s" -#: elf64-alpha.c:4425 elf64-alpha.c:4565 +#: elf64-alpha.c:4452 elf64-alpha.c:4596 +#, c-format msgid "%B: pc-relative relocation against dynamic symbol %s" msgstr "%B: pc-отноÑительное перемещение Ð´Ð»Ñ Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñ‡ÐµÑкого Ñимвола %s" -#: elf64-alpha.c:4453 +#: elf64-alpha.c:4481 +#, c-format msgid "%B: change in gp: BRSGP %s" msgstr "%B: изменение в gp: BRSGP %s" -#: elf64-alpha.c:4478 +#: elf64-alpha.c:4506 msgid "" msgstr "<неизвеÑтно>" -#: elf64-alpha.c:4483 +#: elf64-alpha.c:4512 +#, c-format msgid "%B: !samegp reloc against symbol without .prologue: %s" msgstr "%B: перемещение !samegp Ð´Ð»Ñ Ñимвола без .prologue: %s" -#: elf64-alpha.c:4540 +#: elf64-alpha.c:4570 +#, c-format msgid "%B: unhandled dynamic relocation against %s" msgstr "%B: необработанное динамичеÑкое перемещение Ð´Ð»Ñ %s" -#: elf64-alpha.c:4572 +#: elf64-alpha.c:4605 +#, c-format msgid "%B: pc-relative relocation against undefined weak symbol %s" msgstr "%B: pc-отноÑительное перемещение Ð´Ð»Ñ Ð½ÐµÐ¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð¾Ð³Ð¾ Ñлабого Ñимвола %s" -#: elf64-alpha.c:4636 +#: elf64-alpha.c:4671 +#, c-format msgid "%B: dtp-relative relocation against dynamic symbol %s" msgstr "%B: dtp-отноÑительное перемещение Ð´Ð»Ñ Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñ‡ÐµÑкого Ñимвола %s" -#: elf64-alpha.c:4659 +#: elf64-alpha.c:4696 +#, c-format msgid "%B: tp-relative relocation against dynamic symbol %s" msgstr "%B: tp-отноÑительное перемещение Ð´Ð»Ñ Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñ‡ÐµÑкого Ñимвола %s" -#: elf64-hppa.c:2083 +#: elf64-hppa.c:2081 +#, c-format +msgid "stub entry for %s cannot load .plt, dp offset = %Ld" +msgstr "Ñлемент заглушки Ð´Ð»Ñ %s не может загрузить .plt, Ñмещение dp = %Ld" + +#: elf64-hppa.c:3286 +#, c-format +msgid "%B(%A+%#Lx): cannot reach %s" +msgstr "%B(%A+%#Lx): невозможно добратьÑÑ Ð´Ð¾ %s" + +#: elf64-ia64-vms.c:587 elf32-ia64.c:620 elf64-ia64.c:620 +#, c-format +msgid "%B: Can't relax br at %#Lx in section `%A'. Please use brl or indirect branch." +msgstr "%B: Ðевозможно оÑлабить br по адреÑу %#Lx в разделе «%A». ИÑпользуйте brl или коÑвенное ветвление." + +#: elf64-ia64-vms.c:2029 elf32-ia64.c:2285 elf64-ia64.c:2285 +msgid "@pltoff reloc against local symbol" +msgstr "перемещение @pltoff Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñимвола" + +#: elf64-ia64-vms.c:3281 elf32-ia64.c:3696 elf64-ia64.c:3696 +#, c-format +msgid "%B: short data segment overflowed (%#Lx >= 0x400000)" +msgstr "%B: переполнение короткого Ñегмента данных (%#Lx >= 0x400000)" + +#: elf64-ia64-vms.c:3291 elf32-ia64.c:3706 elf64-ia64.c:3706 +msgid "%B: __gp does not cover short data segment" +msgstr "%B: __gp не покрывает короткий Ñегмент данных" + +#: elf64-ia64-vms.c:3557 elf32-ia64.c:3974 elf64-ia64.c:3974 +#, c-format +msgid "%B: non-pic code with imm relocation against dynamic symbol `%s'" +msgstr "%B: не-pic код Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸ÐµÐ¼ imm Ð´Ð»Ñ Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñ‡ÐµÑкого Ñимвола «%s»" + +#: elf64-ia64-vms.c:3621 elf32-ia64.c:4042 elf64-ia64.c:4042 +#, c-format +msgid "%B: @gprel relocation against dynamic symbol %s" +msgstr "%B: перемещение @gprel Ð´Ð»Ñ Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñ‡ÐµÑкого Ñимвола %s" + +#: elf64-ia64-vms.c:3680 elf32-ia64.c:4105 elf64-ia64.c:4105 +msgid "%B: linking non-pic code in a position independent executable" +msgstr "%B: компоновка не-pic кода в позиционно-незавиÑимый иÑполнÑемый" + +#: elf64-ia64-vms.c:3782 elf32-ia64.c:4243 elf64-ia64.c:4243 +#, c-format +msgid "%B: @internal branch to dynamic symbol %s" +msgstr "%B: ветвление @internal к динамичеÑкому Ñимволу %s" + +#: elf64-ia64-vms.c:3785 elf32-ia64.c:4246 elf64-ia64.c:4246 +#, c-format +msgid "%B: speculation fixup to dynamic symbol %s" +msgstr "%B: догадка меÑÑ‚Ð¾Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñ‡ÐµÑкого Ñимвола %s" + +#: elf64-ia64-vms.c:3788 elf32-ia64.c:4249 elf64-ia64.c:4249 +#, c-format +msgid "%B: @pcrel relocation against dynamic symbol %s" +msgstr "%B: перемещение @pcrel Ð´Ð»Ñ Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñ‡ÐµÑкого Ñимвола %s" + +#: elf64-ia64-vms.c:3912 elf32-ia64.c:4446 elf64-ia64.c:4446 +msgid "unsupported reloc" +msgstr "неподдерживаемое перемещение" + +#: elf64-ia64-vms.c:3949 elf32-ia64.c:4484 elf64-ia64.c:4484 +#, c-format +msgid "%B: missing TLS section for relocation %s against `%s' at %#Lx in section `%A'." +msgstr "%B: отÑутÑтвует TLS-раздел Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %s Ð´Ð»Ñ Â«%s» по адреÑу %#Lx в разделе «%A»." + +#: elf64-ia64-vms.c:3966 elf32-ia64.c:4501 elf64-ia64.c:4501 +#, c-format +msgid "%B: Can't relax br (%s) to `%s' at %#Lx in section `%A' with size %#Lx (> 0x1000000)." +msgstr "%B: Ðевозможно оÑлабить br (%s) до «%s» по адреÑу %#Lx в разделе «%A» Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð¾Ð¼ %#Lx (> 0x1000000)." + +#: elf64-ia64-vms.c:4257 elf32-ia64.c:4758 elf64-ia64.c:4758 +msgid "%B: linking trap-on-NULL-dereference with non-trapping files" +msgstr "%B: компоновка trap-on-NULL-dereference Ñ Ð½Ðµ-trapping файлами" + +#: elf64-ia64-vms.c:4266 elf32-ia64.c:4767 elf64-ia64.c:4767 +msgid "%B: linking big-endian files with little-endian files" +msgstr "%B: компоновка файлов Ñ Ð¿Ñ€Ñмым порÑдком байт Ñ Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ Ñ Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ñ‹Ð¼ порÑдком байт" + +#: elf64-ia64-vms.c:4275 elf32-ia64.c:4776 elf64-ia64.c:4776 +msgid "%B: linking 64-bit files with 32-bit files" +msgstr "%B: компоновка 64-битных файлов Ñ 32-битными файлами" + +#: elf64-ia64-vms.c:4284 elf32-ia64.c:4785 elf64-ia64.c:4785 +msgid "%B: linking constant-gp files with non-constant-gp files" +msgstr "%B: компоновка constant-gp файлов Ñ Ð½Ðµ-constant-gp файлами" + +#: elf64-ia64-vms.c:4294 elf32-ia64.c:4795 elf64-ia64.c:4795 +msgid "%B: linking auto-pic files with non-auto-pic files" +msgstr "%B: компоновка auto-pic файлов Ñ Ð½Ðµ-auto-pic файлами" + +#: elf64-ia64-vms.c:5137 elflink.c:4773 +#, c-format +msgid "Warning: alignment %u of common symbol `%s' in %B is greater than the alignment (%u) of its section %A" +msgstr "Предупреждение: выравнивание %u общего Ñимвола «%s» в %B больше, чем выравнивание (%u) его раздела %A" + +#: elf64-ia64-vms.c:5144 elflink.c:4780 +#, c-format +msgid "Warning: alignment %u of symbol `%s' in %B is smaller than %u in %B" +msgstr "Предупреждение: выравнивание %u Ñимвола «%s» в %B меньше, чем %u в %B" + +#: elf64-ia64-vms.c:5160 elflink.c:4797 #, c-format -msgid "stub entry for %s cannot load .plt, dp offset = %ld" -msgstr "Ñлемент заглушки Ð´Ð»Ñ %s не может загрузить .plt, Ñмещение dp = %ld" +msgid "Warning: size of symbol `%s' changed from %Lu in %B to %Lu in %B" +msgstr "Предупреждение: размер Ñимвола «%s» изменилÑÑ Ñ %Lu в %B на %Lu в %B" -#: elf64-hppa.c:3275 -msgid "%B(%A+0x" -msgstr "%B(%A+0x" +#: elf64-mips.c:3615 elfn32-mips.c:3443 +#, c-format +msgid "unrecognised MIPS reloc number: %d" +msgstr "нераÑпознанный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ MIPS: %d" -#: elf64-mmix.c:1034 +#: elf64-mmix.c:984 msgid "" "invalid input relocation when producing non-ELF, non-mmo format output.\n" " Please use the objcopy program to convert from ELF or mmo,\n" @@ -2667,7 +4285,7 @@ " ИÑпользуйте программу objcopy Ð´Ð»Ñ Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð· ELF или mmo,\n" " или компилируйте Ñ Â«-no-expand» (Ð´Ð»Ñ gcc, «-Wa,-no-expand»" -#: elf64-mmix.c:1218 +#: elf64-mmix.c:1168 msgid "" "invalid input relocation when producing non-ELF, non-mmo format output.\n" " Please use the objcopy program to convert from ELF or mmo,\n" @@ -2677,985 +4295,1408 @@ " ИÑпользуйте программу objcopy Ð´Ð»Ñ Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð· ELF или mmo,\n" " или компилируйте Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ gcc «-mno-base-addresses»." -#: elf64-mmix.c:1244 +#: elf64-mmix.c:1195 #, c-format msgid "" -"%s: Internal inconsistency error for value for\n" -" linker-allocated global register: linked: 0x%lx%08lx != relaxed: 0x%lx%08lx\n" +"%B: Internal inconsistency error for value for\n" +" linker-allocated global register: linked: %#Lx != relaxed: %#Lx" msgstr "" -"%s: Ошибка внутреннего неÑоответÑÑ‚Ð²Ð¸Ñ Ð´Ð»Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ\n" -" глобального региÑтра назначаемого компоновщиком: Ñкомпонован: 0x%lx%08lx != оÑлаблен: 0x%lx%08lx\n" +"%B: ошибка внутреннего неÑоответÑÑ‚Ð²Ð¸Ñ Ð´Ð»Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ\n" +" глобального региÑтра назначаемого компоновщиком: Ñкомпонован: %#Lx != оÑлаблен: %#Lx" -#: elf64-mmix.c:1670 +#: elf64-mmix.c:1264 #, c-format -msgid "%s: base-plus-offset relocation against register symbol: (unknown) in %s" -msgstr "%s: перемещение база-плюÑ-Ñмещение Ð´Ð»Ñ Ñ€ÐµÐ³Ð¸Ñтрового Ñимвола: (неизвеÑтно) в %s" +msgid "%B: invalid MMIX reloc number: %d" +msgstr "%B: некорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ MMIX: %d" -#: elf64-mmix.c:1675 +#: elf64-mmix.c:1616 #, c-format -msgid "%s: base-plus-offset relocation against register symbol: %s in %s" -msgstr "%s: перемещение база-плюÑ-Ñмещение Ð´Ð»Ñ Ñ€ÐµÐ³Ð¸Ñтрового Ñимвола: %s в %s" +msgid "%B: base-plus-offset relocation against register symbol: (unknown) in %A" +msgstr "%B: перемещение база-плюÑ-Ñмещение Ð´Ð»Ñ Ñ€ÐµÐ³Ð¸Ñтрового Ñимвола: (неизвеÑтно) в %A" -#: elf64-mmix.c:1719 +#: elf64-mmix.c:1622 #, c-format -msgid "%s: register relocation against non-register symbol: (unknown) in %s" -msgstr "%s: региÑтровое перемещение Ð´Ð»Ñ Ð½ÐµÑ€ÐµÐ³Ð¸Ñтрового Ñимвола: (неизвеÑтно) в %s" +msgid "%B: base-plus-offset relocation against register symbol: %s in %A" +msgstr "%B: перемещение база-плюÑ-Ñмещение Ð´Ð»Ñ Ñ€ÐµÐ³Ð¸Ñтрового Ñимвола: %s в %A" -#: elf64-mmix.c:1724 +#: elf64-mmix.c:1667 #, c-format -msgid "%s: register relocation against non-register symbol: %s in %s" -msgstr "%s: региÑтровое перемещение Ð´Ð»Ñ Ð½ÐµÑ€ÐµÐ³Ð¸Ñтрового Ñимвола: %s в %s" +msgid "%B: register relocation against non-register symbol: (unknown) in %A" +msgstr "%B: региÑтровое перемещение Ð´Ð»Ñ Ð½ÐµÑ€ÐµÐ³Ð¸Ñтрового Ñимвола: (неизвеÑтно) в %A" -#: elf64-mmix.c:1761 +#: elf64-mmix.c:1673 #, c-format -msgid "%s: directive LOCAL valid only with a register or absolute value" -msgstr "%s: директива LOCAL разрешена только Ñ Ñ€ÐµÐ³Ð¸Ñтром или абÑолютным значением" +msgid "%B: register relocation against non-register symbol: %s in %A" +msgstr "%B: региÑтровое перемещение Ð´Ð»Ñ Ð½ÐµÑ€ÐµÐ³Ð¸Ñтрового Ñимвола: %s в %A" + +#: elf64-mmix.c:1710 +msgid "%B: directive LOCAL valid only with a register or absolute value" +msgstr "%B: директива LOCAL разрешена только Ñ Ñ€ÐµÐ³Ð¸Ñтром или абÑолютным значением" -#: elf64-mmix.c:1789 +#: elf64-mmix.c:1741 #, c-format -msgid "%s: LOCAL directive: Register $%ld is not a local register. First global register is $%ld." -msgstr "%s: директива LOCAL: РегиÑÑ‚Ñ€ $%ld не ÑвлÑетÑÑ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ñ‹Ð¼ региÑтром. Первый глобальный региÑÑ‚Ñ€: $%ld." +msgid "%B: LOCAL directive: Register $%Ld is not a local register. First global register is $%Ld." +msgstr "%B: директива LOCAL: региÑÑ‚Ñ€ $%Ld не ÑвлÑетÑÑ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ñ‹Ð¼ региÑтром. Первый глобальный региÑÑ‚Ñ€: $%Ld." -#: elf64-mmix.c:2253 +#: elf64-mmix.c:2169 #, c-format -msgid "%s: Error: multiple definition of `%s'; start of %s is set in a earlier linked file\n" -msgstr "%s: Ошибка: множеÑтвенные объÑÐ²Ð»ÐµÐ½Ð¸Ñ Â«%s»; начало %s уÑтановлено в ранее Ñкомпонованном файле\n" +msgid "%B: Error: multiple definition of `%s'; start of %s is set in a earlier linked file\n" +msgstr "%B: ошибка: множеÑтвенные объÑÐ²Ð»ÐµÐ½Ð¸Ñ Â«%s»; начало %s уÑтановлено в ранее Ñкомпонованном файле\n" -#: elf64-mmix.c:2311 +#: elf64-mmix.c:2224 msgid "Register section has contents\n" msgstr "Ð’ региÑтровом разделе имеетÑÑ Ñодержимое\n" -#: elf64-mmix.c:2503 +#: elf64-mmix.c:2414 #, c-format msgid "" -"Internal inconsistency: remaining %u != max %u.\n" +"Internal inconsistency: remaining %lu != max %lu.\n" " Please report this bug." msgstr "" -"Внутреннее противоречие: оÑтаётÑÑ %u != Ð¼Ð°ÐºÑ %u.\n" +"Внутреннее противоречие: оÑтаётÑÑ %lu != Ð¼Ð°ÐºÑ %lu.\n" " Сообщите об ошибке." -#: elf64-ppc.c:4185 +#: elf64-ppc.c:4640 +#, c-format msgid "%P: %B: cannot create stub entry %s\n" msgstr "%P: %B: невозможно Ñоздать Ñлемент заглушки %s\n" -#: elf64-ppc.c:6518 -msgid "%P: copy reloc against `%s' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc\n" -msgstr "%P: копирование Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Â«%s» требует ленивой plt-компоновки; не задавайте LD_BIND_NOW=1 или обновите gcc\n" +#: elf64-ppc.c:4971 +msgid "%P: symbol '%s' has invalid st_other for ABI version 1\n" +msgstr "%P: Ñимвол «%s» Ñодержит некорректное st_other Ð´Ð»Ñ ABI верÑии 1\n" + +#: elf64-ppc.c:5146 +#, c-format +msgid "%P: %B .opd not allowed in ABI version %d\n" +msgstr "%P: %B .opd запрещено в ABI верÑии %d\n" + +#: elf64-ppc.c:5645 +#, c-format +msgid "%H: %s reloc unsupported in shared libraries and PIEs.\n" +msgstr "%H: перемещение %s не поддерживаетÑÑ Ð² общих библиотеках и PIE.\n" + +#: elf64-ppc.c:6035 +#, c-format +msgid "%B uses unknown e_flags 0x%lx" +msgstr "%B иÑпользует неизвеÑтное значение e_flags 0x%lx" + +#: elf64-ppc.c:6043 +#, c-format +msgid "%B: ABI version %ld is not compatible with ABI version %ld output" +msgstr "%B: ABI верÑии %ld не ÑовмеÑтимо Ñ Ð²Ñ‹Ð²Ð¾Ð´Ð¾Ð¼ Ñ ABI верÑии %ld" + +#: elf64-ppc.c:6071 +#, c-format +msgid " [abiv%ld]" +msgstr " [abiv%ld]" + +#: elf64-ppc.c:7255 +msgid "%P: copy reloc against `%T' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc\n" +msgstr "%P: копирование Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Â«%T» требует ленивой plt-компоновки; не задавайте LD_BIND_NOW=1 или обновите gcc\n" -#: elf64-ppc.c:6788 +#: elf64-ppc.c:7522 msgid "%B: undefined symbol on R_PPC64_TOCSAVE relocation" msgstr "%B: неопределённый Ñимвол по перемещению R_PPC64_TOCSAVE" -#: elf64-ppc.c:6992 +#: elf64-ppc.c:7749 +#, c-format msgid "%P: dynreloc miscount for %B, section %A\n" msgstr "%P: ошибка в вычиÑлении dynreloc %B, раздел %A\n" -#: elf64-ppc.c:7076 +#: elf64-ppc.c:7838 msgid "%B: .opd is not a regular array of opd entries" msgstr "%B: .opd не ÑвлÑетÑÑ Ð¾Ð±Ñ‹Ñ‡Ð½Ñ‹Ð¼ маÑÑивом Ñлементов opd" -#: elf64-ppc.c:7085 +#: elf64-ppc.c:7848 +#, c-format msgid "%B: unexpected reloc type %u in .opd section" msgstr "%B: неожиданный тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %u в разделе .opd" -#: elf64-ppc.c:7106 +#: elf64-ppc.c:7870 +#, c-format msgid "%B: undefined sym `%s' in .opd section" msgstr "%B: неопределённый Ñимвол «%s» в разделе .opd" -#: elf64-ppc.c:7664 +#: elf64-ppc.c:8207 +msgid "%P: warning: --plt-localentry is especially dangerous without ld.so support to detect ABI violations.\n" +msgstr "%P: предупреждение: --plt-localentry оÑобенно опаÑно без поддержки в ld.so Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð½Ð°Ñ€ÑƒÑˆÐµÐ½Ð¸Ð¹ ABI.\n" + +#: elf64-ppc.c:8456 msgid "%H __tls_get_addr lost arg, TLS optimization disabled\n" msgstr "%H __tls_get_addr без аргумента, Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ TLS выключена\n" -#: elf64-ppc.c:8003 elf64-ppc.c:8564 +#: elf64-ppc.c:8800 elf64-ppc.c:9437 #, c-format msgid "%s defined on removed toc entry" msgstr "%s определён на удалённом Ñлементе toc" -#: elf64-ppc.c:8521 -msgid "%P: %H: %s relocation references optimized away TOC entry\n" -msgstr "%P: %H: перемещение %s ÑÑылаетÑÑ Ð½Ð° удалённый оптимизатором Ñлемент TOC\n" - -#: elf64-ppc.c:9598 -msgid "%P: cannot find opd entry toc for %s\n" -msgstr "%P: не удалоÑÑŒ найти opd Ñлемента toc Ð´Ð»Ñ %s\n" +#: elf64-ppc.c:9165 +#, c-format +msgid "%H: toc optimization is not supported for %s instruction.\n" +msgstr "%H: Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ toc не не поддерживаетÑÑ Ð´Ð»Ñ Ð¸Ð½Ñтрукции.\n" + +#: elf64-ppc.c:9394 +#, c-format +msgid "%H: %s references optimized away TOC entry\n" +msgstr "%H: %s ÑÑылаетÑÑ Ð½Ð° удалённый оптимизатором Ñлемент TOC\n" + +#: elf64-ppc.c:10157 +#, c-format +msgid "warning: discarding dynamic section %s" +msgstr "предупреждение: отбраÑываетÑÑ Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñ‡ÐµÑкий раздел %s" + +#: elf64-ppc.c:10746 +msgid "%P: cannot find opd entry toc for `%T'\n" +msgstr "%P: не удалоÑÑŒ найти opd у Ñлемента toc Ð´Ð»Ñ Â«%T»\n" -#: elf64-ppc.c:9680 +#: elf64-ppc.c:10837 msgid "%P: long branch stub `%s' offset overflow\n" msgstr "%P: переполнение ÑÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð·Ð°Ð³Ð»ÑƒÑˆÐºÐ¸ длинного Ð²ÐµÑ‚Ð²Ð»ÐµÐ½Ð¸Ñ Â«%s»\n" -#: elf64-ppc.c:9739 +#: elf64-ppc.c:10896 msgid "%P: can't find branch stub `%s'\n" msgstr "%P: не найдена заглушка Ð²ÐµÑ‚Ð²Ð»ÐµÐ½Ð¸Ñ Â«%s»\n" -#: elf64-ppc.c:9801 elf64-ppc.c:9943 -msgid "%P: linkage table error against `%s'\n" -msgstr "%P: ошибка в таблице компоновки Ð´Ð»Ñ Â«%s»\n" +#: elf64-ppc.c:10960 elf64-ppc.c:11112 elf64-ppc.c:12974 +#, c-format +msgid "%P: linkage table error against `%T'\n" +msgstr "%P: ошибка в таблице компоновки Ð´Ð»Ñ Â«%T»\n" -#: elf64-ppc.c:10126 +#: elf64-ppc.c:11331 msgid "%P: can't build branch stub `%s'\n" msgstr "%P: невозможно Ñобрать заглушку Ð²ÐµÑ‚Ð²Ð»ÐµÐ½Ð¸Ñ Â«%s»\n" -#: elf64-ppc.c:10941 +#: elf64-ppc.c:12104 +#, c-format msgid "%B section %A exceeds stub group size" msgstr "%B раздел %A превышает групповой размер заглушки" -#: elf64-ppc.c:11666 elf64-ppc.c:11699 -msgid "%P: %s offset too large for .eh_frame sdata4 encoding" -msgstr "%P: Ñмещение %s Ñлишком больше Ð´Ð»Ñ ÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ sdata4 в .eh_frame" - -#: elf64-ppc.c:11744 +#: elf64-ppc.c:13242 msgid "%P: stubs don't match calculated size\n" msgstr "%P: заглушки не ÑоответÑтвуют вычиÑленному размеру\n" -#: elf64-ppc.c:11756 +#: elf64-ppc.c:13256 +#, c-format +msgid "linker stubs in %u group\n" +msgid_plural "linker stubs in %u groups\n" +msgstr[0] "заглушки компоновщика в %u группе\n" +msgstr[1] "заглушки компоновщика в %u группах\n" +msgstr[2] "заглушки компоновщика в %u группах\n" + +#: elf64-ppc.c:13260 #, c-format msgid "" -"linker stubs in %u group%s\n" " branch %lu\n" " toc adjust %lu\n" " long branch %lu\n" " long toc adj %lu\n" -" plt call %lu" +" plt call %lu\n" +" plt call toc %lu\n" +" global entry %lu" msgstr "" -"заглушки компоновщика в %u группе%s\n" " ветвление %lu\n" " иÑправление toc %lu\n" " длинное ветвление %lu\n" -" иÑправление длинного long %lu\n" -" plt-вызов %lu" +" иÑправление длинного toc %lu\n" +" plt-вызов %lu\n" +" plt-вызов toc %lu\n" +" глобальный Ñлемент %lu" + +#: elf64-ppc.c:13579 +#, c-format +msgid "%H: %s used with TLS symbol `%T'\n" +msgstr "%H: %s иÑпользуетÑÑ Ñ TLS-Ñимволом «%T»\n" + +#: elf64-ppc.c:13581 +#, c-format +msgid "%H: %s used with non-TLS symbol `%T'\n" +msgstr "%H: %s иÑпользуетÑÑ Ñ Ð½Ðµ TLS-Ñимволом «%T»\n" + +#: elf64-ppc.c:14191 +#, c-format +msgid "%H: call to `%T' lacks nop, can't restore toc; recompile with -fPIC\n" +msgstr "%H: вызов «%T» указывает на не nop, невозможно воÑÑтановить toc; перекомпилируйте Ñ -fPIC\n" + +#: elf64-ppc.c:14197 +#, c-format +msgid "%H: call to `%T' lacks nop, can't restore toc; (-mcmodel=small toc adjust stub)\n" +msgstr "%H: вызов «%T» указывает на не nop, невозможно воÑÑтановить toc; (-mcmodel=small заглушка иÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ toc)\n" + +#: elf64-ppc.c:14325 +#, c-format +msgid "%P: %B: unknown relocation type %d for `%T'\n" +msgstr "%P: %B: неизвеÑтный тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %d Ð´Ð»Ñ Â«%T»\n" -#: elf64-ppc.c:12042 -msgid "%P: %H: %s used with TLS symbol %s\n" -msgstr "%P: %H: %s иÑпользуетÑÑ Ñ TLS-Ñимволом %s\n" +#: elf64-ppc.c:14874 +#, c-format +msgid "%H: %s for indirect function `%T' unsupported\n" +msgstr "%H: %s Ð´Ð»Ñ Ð½ÐµÑвного вызова функции «%T» не поддерживаетÑÑ\n" -#: elf64-ppc.c:12043 -msgid "%P: %H: %s used with non-TLS symbol %s\n" -msgstr "%P: %H: %s иÑпользуетÑÑ Ñ Ð½Ðµ-TLS Ñимволом %s\n" +#: elf64-ppc.c:14986 +#, c-format +msgid "%P: %B: %s is not supported for `%T'\n" +msgstr "%P: %B: %s не поддерживаетÑÑ Ð´Ð»Ñ Â«%T»\n" -#: elf64-ppc.c:12556 -msgid "%P: %H: automatic multiple TOCs not supported using your crt files; recompile with -mminimal-toc or upgrade gcc\n" -msgstr "%P: %H: автоматичеÑкие множеÑтвенные TOC не поддерживаютÑÑ Ñ‡ÐµÑ€ÐµÐ· ваши файлы crt; перекомпилируйте Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ -mminimal-toc или обновите gcc\n" +#: elf64-ppc.c:15169 +#, c-format +msgid "%H: error: %s not a multiple of %u\n" +msgstr "%H: ошибка: %s не кратно %u\n" -#: elf64-ppc.c:12562 -msgid "%P: %H: sibling call optimization to `%s' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `%s' extern\n" -msgstr "%P: %H: Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¾Ð´Ð½Ð¾ÑƒÑ€Ð¾Ð²Ð½ÐµÐ²Ñ‹Ñ… вызовов к «%s» не позволÑет автоматичеÑкие множеÑтвенные TOC; перекомпилируйте Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ -mminimal-toc или -fno-optimize-sibling-calls, или Ñоздайте внешний «%s»\n" +#: elf64-ppc.c:15191 +#, c-format +msgid "%H: unresolvable %s against `%T'\n" +msgstr "%H: неразрешимое %s Ð´Ð»Ñ Ñимвола «%T»\n" -#: elf64-ppc.c:13286 -msgid "%P: %B: relocation %s is not supported for symbol %s\n" -msgstr "%P: %B: перемещение %s не поддерживаетÑÑ Ð´Ð»Ñ Ñимвола %s\n" +#: elf64-ppc.c:15288 +#, c-format +msgid "%H: %s against `%T': error %d\n" +msgstr "%H: %s Ð´Ð»Ñ Â«%T»: ошибка %d\n" -#: elf64-ppc.c:13446 -msgid "%P: %H: error: %s not a multiple of %u\n" -msgstr "%P: %H: ошибка: %s не кратно %u\n" +#: elf64-ppc.c:15678 elf64-ppc.c:15697 +msgid "%P: %s offset too large for .eh_frame sdata4 encoding" +msgstr "%P: Ñмещение %s Ñлишком больше Ð´Ð»Ñ ÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ sdata4 в .eh_frame" + +#: elf64-s390.c:2533 +msgid "%B: `%s' non-PLT reloc for symbol defined in shared library and accessed from executable (rebuild file with -fPIC ?)" +msgstr "%B: не PLT перемещение «%s» Ð´Ð»Ñ Ñимвола, определённого в общей библиотеке, к которому обращаютÑÑ Ð¸Ð· иÑполнÑемого файла (переÑоберите файл Ñ -fPIC ?)" -#: elf64-sh64.c:1686 +#: elf64-sh64.c:1680 #, c-format -msgid "%s: error: unaligned relocation type %d at %08x reloc %08x\n" -msgstr "%s: ошибка: невыровненный тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %d по адреÑу %08x перемещение %08x\n" +msgid "%B: error: unaligned relocation type %d at %08Lx reloc %08Lx" +msgstr "%B: ошибка: невыровненный тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %d по адреÑу %08Lx перемещение %08Lx" -#: elf64-sparc.c:446 +#: elf64-sparc.c:460 msgid "%B: Only registers %%g[2367] can be declared using STT_REGISTER" -msgstr "%B: Только региÑтры %%g[2367] могут объÑвлÑÑ‚ÑŒÑÑ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ STT_REGISTER" +msgstr "%B: только региÑтры %%g[2367] могут объÑвлÑÑ‚ÑŒÑÑ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ STT_REGISTER" -#: elf64-sparc.c:466 +#: elf64-sparc.c:481 +#, c-format msgid "Register %%g%d used incompatibly: %s in %B, previously %s in %B" msgstr "ÐеÑовмеÑтимое иÑпользование региÑтра %%g%d: %s в %B, ранее %s в %B" -#: elf64-sparc.c:489 +#: elf64-sparc.c:505 +#, c-format msgid "Symbol `%s' has differing types: REGISTER in %B, previously %s in %B" msgstr "Символ «%s» имеет различные типы: REGISTER в %B, ранее %s в %B" -#: elf64-sparc.c:534 +#: elf64-sparc.c:552 +#, c-format msgid "Symbol `%s' has differing types: %s in %B, previously REGISTER in %B" msgstr "Символ «%s» имеет различные типы: %s в %B, ранее REGISTER в %B" -#: elf64-sparc.c:687 +#: elf64-sparc.c:707 msgid "%B: linking UltraSPARC specific with HAL specific code" msgstr "%B: UltraSPARC-ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸Ñ‡Ð½Ð°Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²ÐºÐ° Ñ HAL-Ñпецифичным кодом" -#: elf64-x86-64.c:1427 +#: elf64-x86-64.c:1370 +msgid "hidden symbol " +msgstr "Ñкрытый Ñимвол " + +#: elf64-x86-64.c:1373 +msgid "internal symbol " +msgstr "внутренний Ñимвол " + +#: elf64-x86-64.c:1376 elf64-x86-64.c:1380 +msgid "protected symbol " +msgstr "защищённый Ñимвол " + +#: elf64-x86-64.c:1382 +msgid "symbol " +msgstr "Ñимвол " + +#: elf64-x86-64.c:1383 elf64-x86-64.c:1393 +msgid "; recompile with -fPIC" +msgstr "; перекомпилируйте Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ -fPIC" + +#: elf64-x86-64.c:1388 +msgid "undefined " +msgstr "не определено " + +#: elf64-x86-64.c:1397 +msgid "a shared object" +msgstr "общий объект" + +#: elf64-x86-64.c:1399 +msgid "a PIE object" +msgstr "объект PIE" + +#: elf64-x86-64.c:1401 +msgid "a PDE object" +msgstr "объект PDE" + +#: elf64-x86-64.c:1404 +#, c-format +msgid "%B: relocation %s against %s%s`%s' can not be used when making %s%s" +msgstr "%B: перемещение %s Ð´Ð»Ñ %s%s«%s» не может иÑпользоватьÑÑ Ð¿Ñ€Ð¸ Ñоздании %s%s" + +#: elf64-x86-64.c:1889 +#, c-format msgid "%B: relocation %s against symbol `%s' isn't supported in x32 mode" msgstr "%B: перемещение %s Ð´Ð»Ñ Ñимвола «%s» не поддерживаетÑÑ Ð² режиме x32" -#: elf64-x86-64.c:1656 +#: elf64-x86-64.c:2027 +#, c-format msgid "%B: '%s' accessed both as normal and thread local symbol" msgstr "%B: «%s» доÑтупен как обычный и как локальный Ð´Ð»Ñ Ð½Ð¸Ñ‚Ð¸ Ñимвол" -#: elf64-x86-64.c:3150 -msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %d" -msgstr "%B: перемещение %s вмеÑте Ñ STT_GNU_IFUNC Ñимволом «%s» имеет ненулевое добавление: %d" - -#: elf64-x86-64.c:3411 -msgid "%B: relocation R_X86_64_GOTOFF64 against protected function `%s' can not be used when making a shared object" -msgstr "%B: перемещение R_X86_64_GOTOFF64 Ð´Ð»Ñ Ð·Ð°Ñ‰Ð¸Ñ‰Ñ‘Ð½Ð½Ð¾Ð¹ функции «%s» не может иÑпользоватьÑÑ Ð¿Ñ€Ð¸ Ñоздании общего объекта" +#: elf64-x86-64.c:2651 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:5040 +#, c-format +msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %Ld" +msgstr "%B: перемещение %s вмеÑте Ñ STT_GNU_IFUNC Ñимволом «%s» имеет ненулевое добавление: %Ld" -#: elf64-x86-64.c:3523 -msgid "; recompile with -fPIC" -msgstr "; перекомпилируйте Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ -fPIC" +#: elf64-x86-64.c:2888 +#, c-format +msgid "%B: relocation R_X86_64_GOTOFF64 against undefined %s `%s' can not be used when making a shared object" +msgstr "%B: перемещение R_X86_64_GOTOFF64 Ð´Ð»Ñ Ð½ÐµÐ¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð¾Ð³Ð¾ %s «%s» не может иÑпользоватьÑÑ Ð¿Ñ€Ð¸ Ñоздании общего объекта" -#: elf64-x86-64.c:3528 -msgid "%B: relocation %s against %s `%s' can not be used when making a shared object%s" -msgstr "%B: перемещение %s Ð´Ð»Ñ %s «%s» не может иÑпользоватьÑÑ Ð¿Ñ€Ð¸ Ñоздании общего объекта(ов)" +#: elf64-x86-64.c:2902 +#, c-format +msgid "%B: relocation R_X86_64_GOTOFF64 against protected %s `%s' can not be used when making a shared object" +msgstr "%B: перемещение R_X86_64_GOTOFF64 Ð´Ð»Ñ Ð·Ð°Ñ‰Ð¸Ñ‰Ñ‘Ð½Ð½Ð¾Ð³Ð¾ %s «%s» не может иÑпользоватьÑÑ Ð¿Ñ€Ð¸ Ñоздании общего объекта" + +#: elf64-x86-64.c:3153 +#, c-format +msgid "%B: addend %s%#x in relocation %s against symbol `%s' at %#Lx in section `%A' is out of range" +msgstr "%B: добавление %s%#x в перемещении %s Ð´Ð»Ñ Ñимвола «%s» по адреÑу %#Lx разделе «%A»." + +#: elf64-x86-64.c:3828 +msgid "%F%P: failed to convert GOTPCREL relocation; relink with --no-relax\n" +msgstr "%F%P: не удалоÑÑŒ преобразовать перемещение GOTPCREL; перекомпонуйте Ñ --no-relax\n" + +#: elf64-x86-64.c:3986 +#, c-format +msgid "%F%B: PC-relative offset overflow in PLT entry for `%s'\n" +msgstr "%F%B: переполнение отноÑительного PC Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð² Ñлементе PLT Ð´Ð»Ñ Â«%s»\n" -#: elf64-x86-64.c:3530 -msgid "%B: relocation %s against undefined %s `%s' can not be used when making a shared object%s" -msgstr "%B: перемещение %s Ð´Ð»Ñ Ð½ÐµÐ¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð¾Ð³Ð¾ %s «%s» не может иÑпользоватьÑÑ Ð¿Ñ€Ð¸ Ñоздании общего объекта(ов)" +#: elf64-x86-64.c:4049 +#, c-format +msgid "%F%B: branch displacement overflow in PLT entry for `%s'\n" +msgstr "%F%B: переполнение ветви переÑтановки в Ñлементе PLT Ð´Ð»Ñ Â«%s»\n" -#: elfcode.h:767 +#: elf64-x86-64.c:4102 #, c-format -msgid "warning: %s has a corrupt string table index - ignoring" -msgstr "предупреждение: у %s повреждена таблица индекÑов Ñтрок — игнорируетÑÑ" +msgid "%F%B: PC-relative offset overflow in GOT PLT entry for `%s'\n" +msgstr "%F%B: переполнение отноÑительного PC Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð² Ñлементе GOT PLT Ð´Ð»Ñ Â«%s»\n" + +#: elfcode.h:760 +msgid "warning: %B has a corrupt string table index - ignoring" +msgstr "предупреждение: у %B повреждена таблица индекÑов Ñтрок — игнорируетÑÑ" -#: elfcode.h:1177 +#: elfcode.h:1199 #, c-format -msgid "%s: version count (%ld) does not match symbol count (%ld)" -msgstr "%s: Ñчётчик верÑии (%ld) не Ñовпадает Ñо Ñчётчиком Ñимвола (%ld)" +msgid "%B: version count (%Ld) does not match symbol count (%ld)" +msgstr "%B: Ñчётчик верÑии (%Ld) не Ñовпадает Ñо Ñчётчиком Ñимвола (%Ld)" -#: elfcode.h:1431 +#: elfcode.h:1456 #, c-format -msgid "%s(%s): relocation %d has invalid symbol index %ld" -msgstr "%s(%s): перемещение %d имеет недопуÑтимый Ð¸Ð½Ð´ÐµÐºÑ Ñимвола %ld" +msgid "%B(%A): relocation %d has invalid symbol index %ld" +msgstr "%B(%A): перемещение %d имеет некорректный Ð¸Ð½Ð´ÐµÐºÑ Ñимвола %ld" -#: elfcore.h:312 -msgid "Warning: %B is truncated: expected core file size >= %lu, found: %lu." -msgstr "Предупреждение: %B уÑечён: ожидалÑÑ Ñ€Ð°Ð·Ð¼ÐµÑ€ Ñдра файла >= %lu, найдено: %lu." +#: elfcore.h:300 +#, c-format +msgid "warning: %B is truncated: expected core file size >= %Lu, found: %llu" +msgstr "предупреждение: %B уÑечён: ожидалÑÑ Ñ€Ð°Ð·Ð¼ÐµÑ€ файла core >= %Lu, найдено: %llu" -#: elflink.c:1117 +#: elflink.c:1353 +#, c-format msgid "%s: TLS definition in %B section %A mismatches non-TLS definition in %B section %A" msgstr "%s: TLS-определение в %B раздела %A не Ñовпадает Ñ Ð½Ðµ-TLS определением в %B раздела %A" -#: elflink.c:1121 +#: elflink.c:1359 +#, c-format msgid "%s: TLS reference in %B mismatches non-TLS reference in %B" msgstr "%s: TLS-ÑÑылка в %B не Ñовпадает Ñ Ð½Ðµ-TLS ÑÑылкой в %B" -#: elflink.c:1125 +#: elflink.c:1365 +#, c-format msgid "%s: TLS definition in %B section %A mismatches non-TLS reference in %B" msgstr "%s: TLS-определение в %B раздела %A не Ñовпадает Ñ Ð½Ðµ-TLS ÑÑылкой в %B" -#: elflink.c:1129 +#: elflink.c:1371 +#, c-format msgid "%s: TLS reference in %B mismatches non-TLS definition in %B section %A" msgstr "%s: TLS-ÑÑылка в %B не Ñовпадает Ñ Ð½Ðµ-TLS определением в %B раздела %A" -#: elflink.c:1762 +#: elflink.c:2052 +#, c-format msgid "%B: unexpected redefinition of indirect versioned symbol `%s'" msgstr "%B: неожиданное переопределение коÑвенного верÑионного Ñимвола «%s»" -#: elflink.c:2063 +#: elflink.c:2345 +#, c-format msgid "%B: version node not found for symbol %s" msgstr "%B: верÑÐ¸Ñ ÑƒÐ·Ð»Ð° не найдена Ð´Ð»Ñ Ñимвола %s" -#: elflink.c:2154 -msgid "%B: bad reloc symbol index (0x%lx >= 0x%lx) for offset 0x%lx in section `%A'" -msgstr "%B: неправильный Ð¸Ð½Ð´ÐµÐºÑ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰Ð°ÐµÐ¼Ð¾Ð³Ð¾ Ñимвола (0x%lx >= 0x%lx) Ð´Ð»Ñ ÑÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ 0x%lx в разделе «%A»" - -#: elflink.c:2165 -msgid "%B: non-zero symbol index (0x%lx) for offset 0x%lx in section `%A' when the object file has no symbol table" -msgstr "%B: ненулевой Ð¸Ð½Ð´ÐµÐºÑ Ñимвола (0x%lx) Ð´Ð»Ñ ÑÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ 0x%lx в разделе «%A», в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº в объектном файле нет таблицы Ñимволов" +#: elflink.c:2434 +#, c-format +msgid "%B: bad reloc symbol index (%#Lx >= %#lx) for offset %#Lx in section `%A'" +msgstr "%B: неправильный Ð¸Ð½Ð´ÐµÐºÑ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰Ð°ÐµÐ¼Ð¾Ð³Ð¾ Ñимвола (%#Lx >= %#lx) Ð´Ð»Ñ ÑÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %#Lx в разделе «%A»" + +#: elflink.c:2446 +#, c-format +msgid "%B: non-zero symbol index (%#Lx) for offset %#Lx in section `%A' when the object file has no symbol table" +msgstr "%B: ненулевой Ð¸Ð½Ð´ÐµÐºÑ Ñимвола (%#Lx) Ð´Ð»Ñ ÑÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %#Lx в разделе «%A», в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº в объектном файле нет таблицы Ñимволов" -#: elflink.c:2355 +#: elflink.c:2637 +#, c-format msgid "%B: relocation size mismatch in %B section %A" msgstr "%B: размер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð½Ðµ Ñовпадает в %B раздела %A" -#: elflink.c:2639 +#: elflink.c:2955 #, c-format msgid "warning: type and size of dynamic symbol `%s' are not defined" msgstr "предупреждение: тип и размер динамичеÑкого Ñимвола «%s» не определён" -#: elflink.c:3391 +#: elflink.c:3017 +msgid "%P: copy reloc against protected `%T' is dangerous\n" +msgstr "%P: копирование Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ñ Ð·Ð°Ñ‰Ð¸Ñ‰Ñ‘Ð½Ð½Ñ‹Ð¼ «%T» опаÑно\n" + +#: elflink.c:3818 +#, c-format msgid "%P: alternate ELF machine code found (%d) in %B, expecting %d\n" msgstr "%P: обнаружен альтернативный машинный код ELF (%d) в %B, ожидаетÑÑ %d\n" -#: elflink.c:4037 +#: elflink.c:4484 +#, c-format msgid "%B: %s: invalid version %u (max %d)" msgstr "%B: %s: недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ %u (Ð¼Ð°ÐºÑ %d)" -#: elflink.c:4073 +#: elflink.c:4521 +#, c-format msgid "%B: %s: invalid needed version %d" msgstr "%B: %s: недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð½ÐµÐ¾Ð±Ñ…Ð¾Ð´Ð¸Ð¼Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ %d" -#: elflink.c:4269 -msgid "Warning: alignment %u of common symbol `%s' in %B is greater than the alignment (%u) of its section %A" -msgstr "Предупреждение: выравнивание %u общего Ñимвола «%s» в %B больше, чем выравнивание (%u) его раздела %A" - -#: elflink.c:4275 -msgid "Warning: alignment %u of symbol `%s' in %B is smaller than %u in %B" -msgstr "Предупреждение: выравнивание %u Ñимвола «%s» в %B меньше, чем %u в %B" - -#: elflink.c:4290 -msgid "Warning: size of symbol `%s' changed from %lu in %B to %lu in %B" -msgstr "Предупреждение: размер Ñимвола «%s» изменилÑÑ Ñ %lu в %B на %lu в %B" - -#: elflink.c:4463 +#: elflink.c:4932 +#, c-format msgid "%B: undefined reference to symbol '%s'" msgstr "%B: Ð½ÐµÐ¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ ÑÑылка на Ñимвол «%s»" -#: elflink.c:4466 -msgid "note: '%s' is defined in DSO %B so try adding it to the linker command line" -msgstr "замечание: «%s» определён в DSO %B, попробуйте добавить его в командную Ñтроку компоновщика" +#: elflink.c:6008 +#, c-format +msgid "%B: stack size specified and %s set" +msgstr "%B: указан размер Ñтека и уÑтановлен %s" + +#: elflink.c:6012 +#, c-format +msgid "%B: %s not absolute" +msgstr "%B: %s не ÑвлÑетÑÑ Ð°Ð±Ñолютным" -#: elflink.c:5781 +#: elflink.c:6209 #, c-format msgid "%s: undefined version: %s" msgstr "%s: Ð½ÐµÐ¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð²ÐµÑ€ÑиÑ: %s" -#: elflink.c:5849 +#: elflink.c:6780 msgid "%B: .preinit_array section is not allowed in DSO" msgstr "%B: раздел .preinit_array не разрешаетÑÑ Ð² DSO" -#: elflink.c:7604 +#: elflink.c:8217 #, c-format msgid "undefined %s reference in complex symbol: %s" msgstr "Ð½ÐµÐ¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ ÑÑылка %s в Ñложном Ñимволе: %s" -#: elflink.c:7758 +#: elflink.c:8372 #, c-format msgid "unknown operator '%c' in complex symbol" msgstr "неизвеÑтный оператор '%c' в Ñложном Ñимволе" -#: elflink.c:8097 elflink.c:8114 elflink.c:8151 elflink.c:8168 +#. PR 21524: Let the user know if a symbol was removed by garbage collection. +#: elflink.c:8710 +msgid "%B:%A: error: relocation references symbol %s which was removed by garbage collection." +msgstr "%B:%A: ошибка: перемещение ÑÑылаетÑÑ Ð½Ð° Ñимвол %s, который был удалён Ñборщиком муÑора." + +#: elflink.c:8713 +msgid "%B:%A: error: try relinking with --gc-keep-exported enabled." +msgstr "%B:%A: ошибка: попробуйте перекомпоновать Ñ Ð²ÐºÐ»ÑŽÑ‡Ñ‘Ð½Ð½Ñ‹Ð¼ --gc-keep-exported." + +#: elflink.c:8949 elflink.c:8967 elflink.c:9006 elflink.c:9024 msgid "%B: Unable to sort relocs - they are in more than one size" msgstr "%B: Ðевозможно отÑортировать Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ - они разных размеров" -#: elflink.c:8128 elflink.c:8182 +#. The section size is not divisible by either - +#. something is wrong. +#: elflink.c:8983 elflink.c:9040 msgid "%B: Unable to sort relocs - they are of an unknown size" msgstr "%B: Ðевозможно отÑортировать Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ - они неизвеÑтного размера" -#: elflink.c:8233 +#: elflink.c:9092 msgid "Not enough memory to sort relocations" msgstr "ÐедоÑтаточно памÑти Ð´Ð»Ñ Ñортировки перемещений" -#: elflink.c:8426 +#: elflink.c:9360 +#, c-format msgid "%B: Too many sections: %d (>= %d)" msgstr "%B: Слишком много разделов: %d (>= %d)" -#: elflink.c:8675 +#: elflink.c:9640 +#, c-format msgid "%B: internal symbol `%s' in %B is referenced by DSO" msgstr "%B: на внутренний Ñимвол «%s» из %B ÑÑылаютÑÑ Ð¸Ð· DSO" -#: elflink.c:8677 +#: elflink.c:9643 +#, c-format msgid "%B: hidden symbol `%s' in %B is referenced by DSO" msgstr "%B: на Ñкрытый Ñимвол «%s» из %B ÑÑылаютÑÑ Ð¸Ð· DSO" -#: elflink.c:8679 +#: elflink.c:9646 +#, c-format msgid "%B: local symbol `%s' in %B is referenced by DSO" msgstr "%B: на локальный Ñимвол «%s» из %B ÑÑылаютÑÑ Ð¸Ð· DSO" -#: elflink.c:8776 +#: elflink.c:9732 +#, c-format msgid "%B: could not find output section %A for input section %A" msgstr "%B: невозможно найти выходной раздел %A Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ð½Ð¾Ð³Ð¾ раздела %A" -#: elflink.c:8899 +#: elflink.c:9886 +#, c-format msgid "%B: protected symbol `%s' isn't defined" msgstr "%B: защищённый Ñимвол «%s» не определён" -#: elflink.c:8901 +#: elflink.c:9889 +#, c-format msgid "%B: internal symbol `%s' isn't defined" msgstr "%B: внутренний Ñимвол «%s» не определён" -#: elflink.c:8903 +#: elflink.c:9892 +#, c-format msgid "%B: hidden symbol `%s' isn't defined" msgstr "%B: Ñкрытый Ñимвол «%s» не определён" -#: elflink.c:9432 +#: elflink.c:9923 +#, c-format +msgid "%B: No symbol version section for versioned symbol `%s'" +msgstr "%B: отÑутÑтвует раздел верÑий Ñимволов Ð´Ð»Ñ Ð²ÐµÑ€Ñионного Ñимвола «%s»" + +#: elflink.c:10533 +#, c-format msgid "error: %B: size of section %A is not multiple of address size" msgstr "ошибка: %B: размер раздела %A не кратен размеру адреÑа" -#: elflink.c:9479 -msgid "error: %B contains a reloc (0x%s) for section %A that references a non-existent global symbol" -msgstr "ошибка: %B Ñодержит перемещение (0x%s) Ð´Ð»Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° %A, который ÑÑылаетÑÑ Ð½Ð° неÑущеÑтвующий глобальный Ñимвол" +#: elflink.c:10578 +#, c-format +msgid "error: %B contains a reloc (%#Lx) for section %A that references a non-existent global symbol" +msgstr "ошибка: %B Ñодержит перемещение (%#Lx) Ð´Ð»Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° %A, который ÑÑылаетÑÑ Ð½Ð° неÑущеÑтвующий глобальный Ñимвол" -#: elflink.c:10214 +#: elflink.c:11333 +#, c-format msgid "%A has both ordered [`%A' in %B] and unordered [`%A' in %B] sections" msgstr "%A Ñодержит упорÑдоченные [«%A» в %B] и неупорÑдоченные [«%A» в %B] разделы" -#: elflink.c:10219 +#: elflink.c:11339 #, c-format msgid "%A has both ordered and unordered sections" msgstr "%A Ñодержит упорÑдоченные и неупорÑдоченные разделы" -#: elflink.c:10784 +#: elflink.c:11441 +msgid "%B: no symbol found for import library" +msgstr "%B: не найден Ñимвол импортируемой библиотеки" + +#: elflink.c:12063 +#, c-format msgid "%B: file class %s incompatible with %s" msgstr "%B: файловый клаÑÑ %s неÑовмеÑтим Ñ %s" -#: elflink.c:11093 elflink.c:11137 -msgid "%B: could not find output section %s" -msgstr "%B: невозможно найти выходной раздел %s" +#: elflink.c:12280 +msgid "%B: failed to generate import library" +msgstr "%B: не удалоÑÑŒ Ñгенерировать импортируемую библиотеку" -#: elflink.c:11098 +#: elflink.c:12399 #, c-format msgid "warning: %s section has zero size" msgstr "предупреждение: раздел %s имеет нулевой размер" -#: elflink.c:11143 +#: elflink.c:12447 #, c-format msgid "warning: section '%s' is being made into a note" msgstr "предупреждение: раздел «%s» преобразуетÑÑ Ð² примечание" -#: elflink.c:11212 +#: elflink.c:12539 msgid "%P%X: read-only segment has dynamic relocations.\n" msgstr "%P%X: в Ñегменте, доÑтупном только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ, ÑодержатÑÑ Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñ‡ÐµÑкие перемещениÑ.\n" -#: elflink.c:11215 +#: elflink.c:12542 msgid "%P: warning: creating a DT_TEXTREL in a shared object.\n" msgstr "%P: предупреждение: ÑоздаётÑÑ DT_TEXTREL в общем объекте.\n" -#: elflink.c:11402 +#: elflink.c:12667 msgid "%P%X: can not read symbols: %E\n" msgstr "%P%X: невозможно прочитать Ñимволы: %E\n" -#: elflink.c:11792 -msgid "Removing unused section '%s' in file '%B'" -msgstr "УдалÑетÑÑ Ð½ÐµÐ¸Ñпользуемый раздел '%s' в файле '%B'" +#: elflink.c:12829 +msgid "%F%P: corrupt input: %B\n" +msgstr "%F%P: повреждённый ввод: %B\n" -#: elflink.c:11998 -msgid "Warning: gc-sections option ignored" -msgstr "Предупреждение: параметр gc-sections игнорируетÑÑ" +#: elflink.c:13495 +#, c-format +msgid "%B: %A+%#Lx: No symbol found for INHERIT" +msgstr "%B: %A+%#Lx: не найден Ñимвол Ð´Ð»Ñ INHERIT" -#: elflink.c:12277 +#: elflink.c:13671 #, c-format msgid "Unrecognized INPUT_SECTION_FLAG %s\n" msgstr "ÐераÑпознанный INPUT_SECTION_FLAG %s\n" -#: elfxx-mips.c:1234 +#: elfxx-mips.c:1444 msgid "static procedure (no name)" msgstr "ÑтатичеÑÐºÐ°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÐ´ÑƒÑ€Ð° (без имени)" -#: elfxx-mips.c:5259 +#: elfxx-mips.c:5628 msgid "MIPS16 and microMIPS functions cannot call each other" msgstr "Функции MIPS16 и microMIPS не могут вызывать друг друга" -#: elfxx-mips.c:5856 -msgid "%B: %A+0x%lx: Direct jumps between ISA modes are not allowed; consider recompiling with interlinking enabled." -msgstr "%B: %A+0x%lx: прÑмые переходы между режимами ISA недопуÑтимы; попробуйте перекомпилировать Ñ Ð²ÐºÐ»ÑŽÑ‡Ñ‘Ð½Ð½Ð¾Ð¹ увÑзкой." +#: elfxx-mips.c:6376 +msgid "%X%H: Unsupported JALX to the same ISA mode\n" +msgstr "%X%H: неподдерживаемый JALX Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾ же режима ISA\n" + +#: elfxx-mips.c:6409 +msgid "%X%H: Unsupported jump between ISA modes; consider recompiling with interlinking enabled\n" +msgstr "%X%H: неподдерживаемый прыжок между режимами ISA; попробуйте перекомпилировать Ñ Ð²ÐºÐ»ÑŽÑ‡Ñ‘Ð½Ð½Ð¾Ð¹ увÑзкой\n" + +#: elfxx-mips.c:6454 +msgid "%X%H: Cannot convert branch between ISA modes to JALX: relocation out of range\n" +msgstr "%X%H: невозможно преобразовать ветвление между режимами ISA в JALX: перемещение выходит за диапазон\n" + +#: elfxx-mips.c:6466 +msgid "%X%H: Unsupported branch between ISA modes\n" +msgstr "%X%H: неподдерживаемое ветвление между режимами ISA\n" -#: elfxx-mips.c:6519 elfxx-mips.c:6742 +#: elfxx-mips.c:7144 elfxx-mips.c:7379 +#, c-format msgid "%B: Warning: bad `%s' option size %u smaller than its header" msgstr "%B: предупреждение: размер параметра «%s» (%u) меньше, чем его заголовок" -#: elfxx-mips.c:7495 elfxx-mips.c:7620 +#: elfxx-mips.c:8135 elfxx-mips.c:8261 +#, c-format msgid "%B: Warning: cannot determine the target function for stub section `%s'" msgstr "%B: Предупреждение: невозможно определить функцию Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° заглушки «%s»" -#: elfxx-mips.c:7749 +#: elfxx-mips.c:8393 +#, c-format msgid "%B: Malformed reloc detected for section %s" msgstr "%B: Обнаружено иÑкажённое перемещение в разделе %s" -#: elfxx-mips.c:7801 -msgid "%B: GOT reloc at 0x%lx not expected in executables" -msgstr "%B: перемещение GOT по адреÑу 0x%lx не ожидаетÑÑ Ð² иÑполнÑемых файлах" - -#: elfxx-mips.c:7930 -msgid "%B: CALL16 reloc at 0x%lx not against global symbol" -msgstr "%B: перемещение CALL16 по адреÑу 0x%lx не предназначено Ð´Ð»Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñимвола" +#: elfxx-mips.c:8465 +#, c-format +msgid "%B: GOT reloc at %#Lx not expected in executables" +msgstr "%B: перемещение GOT по адреÑу %#Lx не ожидаетÑÑ Ð² иÑполнÑемых файлах" + +#: elfxx-mips.c:8603 +#, c-format +msgid "%B: CALL16 reloc at %#Lx not against global symbol" +msgstr "%B: перемещение CALL16 по адреÑу %#Lx не Ð´Ð»Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñимвола" -#: elfxx-mips.c:8645 +#: elfxx-mips.c:9226 #, c-format msgid "non-dynamic relocations refer to dynamic symbol %s" msgstr "не-динамичеÑкие Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ ÑƒÐºÐ°Ð·Ñ‹Ð²Ð°ÑŽÑ‚ на динамичеÑкий Ñимвол %s" -#: elfxx-mips.c:9347 -msgid "%B: Can't find matching LO16 reloc against `%s' for %s at 0x%lx in section `%A'" -msgstr "%B: Ðевозможно найти подходÑщее LO16 перемещение у «%s» Ð´Ð»Ñ %s по адреÑу 0x%lx в разделе «%A»" +#: elfxx-mips.c:10146 +#, c-format +msgid "%B: Can't find matching LO16 reloc against `%s' for %s at %#Lx in section `%A'" +msgstr "%B: невозможно найти подходÑщее LO16 перемещение у «%s» Ð´Ð»Ñ %s по адреÑу %#Lx в разделе «%A»" -#: elfxx-mips.c:9486 +#: elfxx-mips.c:10286 msgid "small-data section exceeds 64KB; lower small-data size limit (see option -G)" msgstr "раздел small-data превышает 64КБ — нижний предел small-data (Ñм. параметр -G)" -#: elfxx-mips.c:9505 -msgid "JALX to a non-word-aligned address" -msgstr "ВыполнÑетÑÑ JALX в адреÑ, невыровненный по границе Ñлова" +#: elfxx-mips.c:10305 +msgid "Cannot convert a jump to JALX for a non-word-aligned address" +msgstr "Ðевозможно преобразовать прыжок к JALX Ð´Ð»Ñ Ð½Ðµ выровненного по границе Ñлова адреÑа" + +#: elfxx-mips.c:10308 +msgid "Jump to a non-word-aligned address" +msgstr "Прыжок по не выровненному по границе Ñлова адреÑу" + +#: elfxx-mips.c:10309 +msgid "Jump to a non-instruction-aligned address" +msgstr "Прыжок по не выровненному по границе инÑтрукции адреÑу" + +#: elfxx-mips.c:10312 +msgid "Cannot convert a branch to JALX for a non-word-aligned address" +msgstr "Ðевозможно преобразовать ветвление к JALX Ð´Ð»Ñ Ð½Ðµ выровненного по границе Ñлова адреÑа" + +#: elfxx-mips.c:10314 +msgid "Branch to a non-instruction-aligned address" +msgstr "Ветвление по не выровненному по границе инÑтрукции адреÑу" + +#: elfxx-mips.c:10316 +msgid "PC-relative load from unaligned address" +msgstr "загрузка отноÑительно PC из не выровненного адреÑа" + +#: elfxx-mips.c:10690 elfxx-mips.c:11258 +#, c-format +msgid "%B: `%A' offset of %Ld from `%A' beyond the range of ADDIUPC" +msgstr "%B: Ñмещение «%A» Ð´Ð»Ñ %Ld из «%A» вне диапазона ADDIUPC" + +#: elfxx-mips.c:14121 +#, c-format +msgid "%B: Unknown architecture %s" +msgstr "%B: неизвеÑÑ‚Ð½Ð°Ñ Ð°Ñ€Ñ…Ð¸Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° %s" + +#: elfxx-mips.c:14380 +msgid "%B: .reginfo section size should be %d bytes, actual size is %d" +msgstr "%B: размер раздела .reginfo должен быть %d байт, дейÑтвительный размер — %d" + +#: elfxx-mips.c:14659 +#, c-format +msgid "%B: illegal section name `%A'" +msgstr "%B: недопуÑтимое Ð¸Ð¼Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° «%A»" + +#: elfxx-mips.c:14936 +msgid "%B: warning: linking abicalls files with non-abicalls files" +msgstr "%B: предупреждение: компоновка файлов abicalls Ñ Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ не-abicalls" + +#: elfxx-mips.c:14953 +msgid "%B: linking 32-bit code with 64-bit code" +msgstr "%B: компоновка 32-битного кода Ñ 64-битным кодом" + +#: elfxx-mips.c:14985 elfxx-mips.c:15051 elfxx-mips.c:15066 +#, c-format +msgid "%B: linking %s module with previous %s modules" +msgstr "%B: компоновка Ð¼Ð¾Ð´ÑƒÐ»Ñ %s Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð¸Ð¼Ð¸ модулÑми %s" + +#: elfxx-mips.c:15009 +#, c-format +msgid "%B: ABI mismatch: linking %s module with previous %s modules" +msgstr "%B: неÑовпадение ABI: компоновка Ð¼Ð¾Ð´ÑƒÐ»Ñ %s Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð¸Ð¼Ð¸ модулÑми %s" + +#: elfxx-mips.c:15034 +#, c-format +msgid "%B: ASE mismatch: linking %s module with previous %s modules" +msgstr "%B: неÑовпадение ASE: компоновка Ð¼Ð¾Ð´ÑƒÐ»Ñ %s Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð¸Ð¼Ð¸ модулÑми %s" + +#: elfxx-mips.c:15168 +msgid "Warning: %B uses unknown floating point ABI %d (set by %B), %B uses unknown floating point ABI %d" +msgstr "Предупреждение: %B иÑпользует неизвеÑтный ABI плавающей точки %d (заданный %B), %B иÑпользует неизвеÑтный ABI плавающей точки %d" + +#: elfxx-mips.c:15174 +#, c-format +msgid "Warning: %B uses unknown floating point ABI %d (set by %B), %B uses %s" +msgstr "Предупреждение: %B иÑпользует неизвеÑтный ABI плавающей точки %d (заданный %B), %B иÑпользует %s" + +#: elfxx-mips.c:15180 +#, c-format +msgid "Warning: %B uses %s (set by %B), %B uses unknown floating point ABI %d" +msgstr "Предупреждение: %B иÑпользует %s (заданный %B), %B иÑпользует неизвеÑтный ABI плавающей точки %d" -#: elfxx-mips.c:13266 +#: elfxx-mips.c:15194 #, c-format -msgid "%s: illegal section name `%s'" -msgstr "%s: недопуÑтимое Ð¸Ð¼Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° «%s»" +msgid "Warning: %B uses %s (set by %B), %B uses %s" +msgstr "Предупреждение: %B иÑпользует %s (заданный %B), %B иÑпользует %s" -#: elfxx-mips.c:13645 elfxx-mips.c:13671 -msgid "Warning: %B uses -msingle-float, %B uses -mdouble-float" -msgstr "Предупреждение: %B иÑпользует -msingle-float, %B иÑпользует -mdouble-float" +#: elfxx-mips.c:15213 +#, c-format +msgid "Warning: %B uses %s (set by %B), %B uses unknown MSA ABI %d" +msgstr "Предупреждение: %B иÑпользует %s (заданный %B), %B иÑпользует неизвеÑтный ABI MSA %d" -#: elfxx-mips.c:13657 elfxx-mips.c:13713 -msgid "Warning: %B uses -msingle-float, %B uses -mips32r2 -mfp64" -msgstr "Предупреждение: %B иÑпользует -msingle-float, %B иÑпользует -mips32r2 -mfp64" +#: elfxx-mips.c:15225 +#, c-format +msgid "Warning: %B uses unknown MSA ABI %d (set by %B), %B uses %s" +msgstr "Предупреждение: %B иÑпользует неизвеÑтный ABI MSA %d (заданный %B), %B иÑпользует %s" -#: elfxx-mips.c:13683 elfxx-mips.c:13719 -msgid "Warning: %B uses -mdouble-float, %B uses -mips32r2 -mfp64" -msgstr "Предупреждение: %B иÑпользует -mdouble-float, %B иÑпользует -mips32r2 -mfp64" +#: elfxx-mips.c:15234 +#, c-format +msgid "Warning: %B uses unknown MSA ABI %d (set by %B), %B uses unknown MSA ABI %d" +msgstr "Предупреждение: %B иÑпользует неизвеÑтный ABI MSA %d (заданный %B), %B иÑпользует неизвеÑтный ABI MSA %d" -#: elfxx-mips.c:13761 +#: elfxx-mips.c:15296 msgid "%B: endianness incompatible with that of the selected emulation" msgstr "%B: порÑдок байт не ÑовмеÑтим Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ð¼ в ÑмулÑции" -#: elfxx-mips.c:13772 +#: elfxx-mips.c:15310 msgid "%B: ABI is incompatible with that of the selected emulation" msgstr "%B: ABI не ÑовмеÑтим Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ð¼ в ÑмулÑции" -#: elfxx-mips.c:13856 -msgid "%B: warning: linking abicalls files with non-abicalls files" -msgstr "%B: предупреждение: компоновка файлов abicalls Ñ Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ не-abicalls" +#: elfxx-mips.c:15362 +msgid "%B: warning: Inconsistent ISA between e_flags and .MIPS.abiflags" +msgstr "%B: предупреждение: неÑоглаÑованноÑÑ‚ÑŒ ISA между e_flags и .MIPS.abiflags" -#: elfxx-mips.c:13873 -msgid "%B: linking 32-bit code with 64-bit code" -msgstr "%B: компоновка 32-битного кода Ñ 64-битным кодом" +#: elfxx-mips.c:15367 +msgid "%B: warning: Inconsistent FP ABI between .gnu.attributes and .MIPS.abiflags" +msgstr "%B: предупреждение: неÑоглаÑованноÑÑ‚ÑŒ FP ABI между .gnu.attributes и .MIPS.abiflags" + +#: elfxx-mips.c:15371 +msgid "%B: warning: Inconsistent ASEs between e_flags and .MIPS.abiflags" +msgstr "%B: предупреждение: неÑоглаÑованноÑÑ‚ÑŒ ASE между e_flags и .MIPS.abiflags" + +#: elfxx-mips.c:15378 +msgid "%B: warning: Inconsistent ISA extensions between e_flags and .MIPS.abiflags" +msgstr "%B: предупреждение: неÑоглаÑованноÑÑ‚ÑŒ раÑширений ISA между e_flags и .MIPS.abiflags" + +#: elfxx-mips.c:15382 +msgid "%B: warning: Unexpected flag in the flags2 field of .MIPS.abiflags (0x%lx)" +msgstr "%B: предупреждение: неожидаемый флаг в поле flags2 у .MIPS.abiflags (0x%lx)" + +#: elfxx-mips.c:15571 +msgid "-mips32r2 -mfp64 (12 callee-saved)" +msgstr "-mips32r2 -mfp64 (12 ÑохранÑÑŽÑ‚ÑÑ Ð²Ñ‹Ð·Ñ‹Ð²Ð°ÐµÐ¼Ñ‹Ð¼)" + +#: elfxx-mips.c:15621 elfxx-mips.c:15632 +msgid "None" +msgstr "ОтÑутÑтвует" + +#: elfxx-mips.c:15623 elfxx-mips.c:15695 +msgid "Unknown" +msgstr "ÐеизвеÑтно" + +#: elfxx-mips.c:15706 +#, c-format +msgid "Hard or soft float\n" +msgstr "ÐÐ¿Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð°Ñ Ð¸Ð»Ð¸ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð½Ð°Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰Ð°Ñ Ð·Ð°Ð¿ÑтаÑ\n" + +#: elfxx-mips.c:15709 +#, c-format +msgid "Hard float (double precision)\n" +msgstr "ÐÐ¿Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð°Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰Ð°Ñ Ð·Ð°Ð¿ÑÑ‚Ð°Ñ (Ð´Ð²Ð¾Ð¹Ð½Ð°Ñ Ñ‚Ð¾Ñ‡Ð½Ð¾ÑÑ‚ÑŒ)\n" + +#: elfxx-mips.c:15712 +#, c-format +msgid "Hard float (single precision)\n" +msgstr "ÐÐ¿Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð°Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰Ð°Ñ Ð·Ð°Ð¿ÑÑ‚Ð°Ñ (Ð¾Ð´Ð¸Ð½Ð°Ñ€Ð½Ð°Ñ Ñ‚Ð¾Ñ‡Ð½Ð¾ÑÑ‚ÑŒ)\n" + +#: elfxx-mips.c:15715 +#, c-format +msgid "Soft float\n" +msgstr "ÐŸÑ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð½Ð°Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰Ð°Ñ Ð·Ð°Ð¿ÑтаÑ\n" -#: elfxx-mips.c:13901 -msgid "%B: linking %s module with previous %s modules" -msgstr "%B: компоновка Ð¼Ð¾Ð´ÑƒÐ»Ñ %s Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð¸Ð¼Ð¸ модулÑми %s" +#: elfxx-mips.c:15718 +#, c-format +msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n" +msgstr "ÐÐ¿Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð°Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰Ð°Ñ Ð·Ð°Ð¿ÑÑ‚Ð°Ñ (MIPS32r2 64-bit FPU 12 ÑохранÑÑŽÑ‚ÑÑ Ð²Ñ‹Ð·Ñ‹Ð²Ð°ÐµÐ¼Ñ‹Ð¼)\n" -#: elfxx-mips.c:13924 -msgid "%B: ABI mismatch: linking %s module with previous %s modules" -msgstr "%B: неÑовпадение ABI: компоновка Ð¼Ð¾Ð´ÑƒÐ»Ñ %s Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð¸Ð¼Ð¸ модулÑми %s" +#: elfxx-mips.c:15721 +#, c-format +msgid "Hard float (32-bit CPU, Any FPU)\n" +msgstr "ÐÐ¿Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð°Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰Ð°Ñ Ð·Ð°Ð¿ÑÑ‚Ð°Ñ (32-битный ЦП, любой FPU)\n" -#: elfxx-mips.c:13948 -msgid "%B: ASE mismatch: linking %s module with previous %s modules" -msgstr "%B: неÑовпадение ASE: компоновка Ð¼Ð¾Ð´ÑƒÐ»Ñ %s Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð¸Ð¼Ð¸ модулÑми %s" +#: elfxx-mips.c:15724 +#, c-format +msgid "Hard float (32-bit CPU, 64-bit FPU)\n" +msgstr "ÐÐ¿Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð°Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰Ð°Ñ Ð·Ð°Ð¿ÑÑ‚Ð°Ñ (32-битный ЦП, 64-битный FPU)\n" + +#: elfxx-mips.c:15727 +#, c-format +msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n" +msgstr "СовмеÑÑ‚Ð¸Ð¼Ð°Ñ Ð°Ð¿Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð°Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰Ð°Ñ Ð·Ð°Ð¿ÑÑ‚Ð°Ñ (32-битный ЦП, 64-битный FPU)\n" -#: elfxx-mips.c:14106 +#: elfxx-mips.c:15759 #, c-format msgid " [abi=O32]" msgstr " [abi=O32]" -#: elfxx-mips.c:14108 +#: elfxx-mips.c:15761 #, c-format msgid " [abi=O64]" msgstr " [abi=O64]" -#: elfxx-mips.c:14110 +#: elfxx-mips.c:15763 #, c-format msgid " [abi=EABI32]" msgstr " [abi=EABI32]" -#: elfxx-mips.c:14112 +#: elfxx-mips.c:15765 #, c-format msgid " [abi=EABI64]" msgstr " [abi=EABI64]" -#: elfxx-mips.c:14114 +#: elfxx-mips.c:15767 #, c-format msgid " [abi unknown]" msgstr " [abi неизвеÑтен]" -#: elfxx-mips.c:14116 +#: elfxx-mips.c:15769 #, c-format msgid " [abi=N32]" msgstr " [abi=N32]" -#: elfxx-mips.c:14118 +#: elfxx-mips.c:15771 #, c-format msgid " [abi=64]" msgstr " [abi=64]" -#: elfxx-mips.c:14120 +#: elfxx-mips.c:15773 #, c-format msgid " [no abi set]" msgstr " [abi не задан]" -#: elfxx-mips.c:14141 +#: elfxx-mips.c:15798 #, c-format msgid " [unknown ISA]" msgstr " [неизвеÑтный ISA]" -#: elfxx-mips.c:14155 +#: elfxx-mips.c:15818 #, c-format msgid " [not 32bitmode]" msgstr " [не 32-битный режим]" -#: elfxx-sparc.c:596 +#: elfxx-riscv.c:955 +#, c-format +msgid "unrecognized relocation (0x%x)" +msgstr "нераÑпознанное перемещение (0x%x)" + +#: elfxx-sparc.c:639 #, c-format msgid "invalid relocation type %d" msgstr "недопуÑтимый тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %d" -#: elfxx-tilegx.c:3952 +#: elfxx-sparc.c:3129 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:5024 +#, c-format +msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s" +msgstr "%B: перемещение %s вмеÑте Ñ STT_GNU_IFUNC Ñимволом «%s» не обрабатываетÑÑ %s" + +#: elfxx-tilegx.c:4241 +#, c-format msgid "%B: Cannot link together %s and %s objects." msgstr "%B: невозможно Ñкомпоновать объекты %s и %s вмеÑте." -#: i386linux.c:451 m68klinux.c:456 sparclinux.c:450 +#: elfxx-x86.c:570 +#, c-format +msgid "%P: %B: warning: relocation against `%s' in read-only section `%A'\n" +msgstr "%P: %B: предупреждение: перемещение указывает на «%s» из раздела только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Â«%A»\n" + +#: elfxx-x86.c:954 +msgid "%P: %B: warning: relocation in read-only section `%A'\n" +msgstr "%P: %B: предупреждение: перемещение в разделе только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Â«%A»\n" + +#: elfxx-x86.c:1287 +msgid "%P%X: read-only segment has dynamic IFUNC relocations; recompile with -fPIC\n" +msgstr "%P%X: в Ñегменте, доÑтупном только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ, ÑодержатÑÑ Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñ‡ÐµÑкие Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ IFUNC; перекомпилируйте Ñ -fPIC\n" + +#: elfxx-x86.c:2241 +msgid "error: %B: " +msgstr "ошибка: %B: <повреждение иÑпользуемого размера x86 ISA: 0x%x>" + +#: elfxx-x86.c:2243 +msgid "error: %B: " +msgstr "ошибка: %B: <повреждение необходимого размера x86 ISA: 0x%x>" + +#: elfxx-x86.c:2244 +msgid "error: %B: " +msgstr "ошибка: %B: <повреждение размера ÑвойÑтва x86: 0x%x>" + +#: elfxx-x86.c:2416 +msgid "%F%P: failed to create GNU property section\n" +msgstr "%F%P: не удалоÑÑŒ Ñоздать раздел ÑвойÑтв GNU\n" + +#: elfxx-x86.c:2421 +#, c-format +msgid "%F%A: failed to align section\n" +msgstr "%F%A: не удалоÑÑŒ выровнÑÑ‚ÑŒ раздел\n" + +#: elfxx-x86.c:2571 +msgid "%F%P: failed to create VxWorks dynamic sections\n" +msgstr "%F%P: не удалоÑÑŒ Ñоздать динамичеÑкие разделы VxWorks\n" + +#: elfxx-x86.c:2580 +msgid "%F%P: failed to create GOT sections\n" +msgstr "%F%P: не удалоÑÑŒ Ñоздать разделы GOT\n" + +#: elfxx-x86.c:2598 +msgid "%F%P: failed to create ifunc sections\n" +msgstr "%F%P: не удалоÑÑŒ Ñоздать разделы ifunc\n" + +#: elfxx-x86.c:2639 +msgid "%F%P: failed to create GOT PLT section\n" +msgstr "%F%P: не удалоÑÑŒ Ñоздать раздел GOT PLT\n" + +#: elfxx-x86.c:2660 +msgid "%F%P: failed to create IBT-enabled PLT section\n" +msgstr "%F%P: не удалоÑÑŒ Ñоздать раздел PLT Ñ Ð²ÐºÐ»ÑŽÑ‡Ñ‘Ð½Ð½Ñ‹Ð¼ IBT\n" + +#: elfxx-x86.c:2675 +msgid "%F%P: failed to create BND PLT section\n" +msgstr "%F%P: не удалоÑÑŒ Ñоздать раздел BND PLT\n" + +#: elfxx-x86.c:2696 +msgid "%F%P: failed to create PLT .eh_frame section\n" +msgstr "%F%P: не удалоÑÑŒ Ñоздать раздел PLT .eh_frame\n" + +#: elfxx-x86.c:2709 +msgid "%F%P: failed to create GOT PLT .eh_frame section\n" +msgstr "%F%P: не удалоÑÑŒ Ñоздать раздел GOT PLT .eh_frame\n" + +#: elfxx-x86.c:2723 +msgid "%F%P: failed to create the second PLT .eh_frame section\n" +msgstr "%F%P: не удалоÑÑŒ Ñоздать второй раздел PLT .eh_frame\n" + +#: i386linux.c:416 m68klinux.c:419 sparclinux.c:412 #, c-format msgid "Output file requires shared library `%s'\n" msgstr "Ð”Ð»Ñ Ð²Ñ‹Ñ…Ð¾Ð´Ð½Ð¾Ð³Ð¾ файла требуетÑÑ Ð¾Ð±Ñ‰Ð°Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñ‚ÐµÐºÐ° «%s»\n" -#: i386linux.c:459 m68klinux.c:464 sparclinux.c:458 +#: i386linux.c:424 m68klinux.c:428 sparclinux.c:421 #, c-format msgid "Output file requires shared library `%s.so.%s'\n" msgstr "Ð”Ð»Ñ Ð²Ñ‹Ñ…Ð¾Ð´Ð½Ð¾Ð³Ð¾ файла требуетÑÑ Ð¾Ð±Ñ‰Ð°Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñ‚ÐµÐºÐ° «%s.so.%s»\n" -#: i386linux.c:648 i386linux.c:698 m68klinux.c:656 m68klinux.c:704 -#: sparclinux.c:648 sparclinux.c:698 +#: i386linux.c:611 i386linux.c:661 m68klinux.c:617 m68klinux.c:665 +#: sparclinux.c:608 sparclinux.c:658 #, c-format msgid "Symbol %s not defined for fixups\n" msgstr "Символ %s не определён Ð´Ð»Ñ Ð¼ÐµÑтоположений\n" -#: i386linux.c:722 m68klinux.c:728 sparclinux.c:722 +#: i386linux.c:685 m68klinux.c:689 sparclinux.c:682 msgid "Warning: fixup count mismatch\n" msgstr "Предупреждение: не Ñовпадает Ñчётчик меÑтоположениÑ\n" #: ieee.c:159 #, c-format -msgid "%s: string too long (%d chars, max 65535)" -msgstr "%s: Ñлишком Ð´Ð»Ð¸Ð½Ð½Ð°Ñ Ñтрока (%d Ñимволов, макÑ. 65535)" +msgid "%B: string too long (%ld chars, max 65535)" +msgstr "%B: Ñлишком Ð´Ð»Ð¸Ð½Ð½Ð°Ñ Ñтрока (%ld Ñимволов, макÑ. 65535)" + +#: ieee.c:226 +#, c-format +msgid "IEEE parser: string length: %#lx longer than buffer: %#lx" +msgstr "анализатор IEEE: длина Ñтроки (%#lx) длиннее буфера (%#lx)" -#: ieee.c:286 +#: ieee.c:302 #, c-format -msgid "%s: unrecognized symbol `%s' flags 0x%x" -msgstr "%s: нераÑпознанные флаги Ñимвола «%s» (0x%x)" +msgid "%B: unrecognized symbol `%s' flags 0x%x" +msgstr "%B: нераÑпознанный Ñимвол «%s» флагов 0x%x" -#: ieee.c:792 +#: ieee.c:837 +#, c-format msgid "%B: unimplemented ATI record %u for symbol %u" msgstr "%B: Ð½ÐµÑ€ÐµÐ°Ð»Ð¸Ð·Ð¾Ð²Ð°Ð½Ð½Ð°Ñ ATI-запиÑÑŒ %u Ð´Ð»Ñ Ñимвола %u" -#: ieee.c:816 -msgid "%B: unexpected ATN type %d in external part" -msgstr "%B: неожиданный ATN-тип %d во внешней чаÑти" +#: ieee.c:862 +#, c-format +msgid "%B: unexpected ATN type %Ld in external part" +msgstr "%B: неожиданный ATN-тип %Ld во внешней чаÑти" -#: ieee.c:838 +#: ieee.c:884 msgid "%B: unexpected type after ATN" msgstr "%B: неожиданный тип поÑле ATN" #: ihex.c:230 +#, c-format msgid "%B:%d: unexpected character `%s' in Intel Hex file" msgstr "%B:%d: неожиданный Ñимвол «%s» в Intel Hex файле" -#: ihex.c:337 +#: ihex.c:338 +#, c-format msgid "%B:%u: bad checksum in Intel Hex file (expected %u, found %u)" msgstr "%B:%u: Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð°Ñ Ñумма в Intel Hex файле (должна быть %u, получена %u)" -#: ihex.c:392 +#: ihex.c:394 +#, c-format msgid "%B:%u: bad extended address record length in Intel Hex file" msgstr "%B:%u: Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° запиÑи раÑширенного адреÑа в Intel Hex файле" -#: ihex.c:409 +#: ihex.c:412 +#, c-format msgid "%B:%u: bad extended start address length in Intel Hex file" msgstr "%B:%u: Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° раÑширенного начального адреÑа в Intel Hex файле" -#: ihex.c:426 +#: ihex.c:430 +#, c-format msgid "%B:%u: bad extended linear address record length in Intel Hex file" msgstr "%B:%u: Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° запиÑи раÑширенного прÑмолинейного адреÑа в Intel Hex файле" -#: ihex.c:443 +#: ihex.c:448 +#, c-format msgid "%B:%u: bad extended linear start address length in Intel Hex file" msgstr "%B:%u: Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° раÑширенного прÑмолинейного начального адреÑа в Intel Hex файле" -#: ihex.c:460 +#: ihex.c:466 +#, c-format msgid "%B:%u: unrecognized ihex type %u in Intel Hex file" msgstr "%B:%u: нераÑпознанный ihex-тип %u в Intel Hex файле" -#: ihex.c:579 +#: ihex.c:585 msgid "%B: internal error in ihex_read_section" msgstr "%B: внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° в ihex_read_section" -#: ihex.c:613 +#: ihex.c:619 msgid "%B: bad section length in ihex_read_section" msgstr "%B: Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° раздела в ihex_read_section" -#: ihex.c:826 +#: ihex.c:830 #, c-format -msgid "%s: address 0x%s out of range for Intel Hex file" -msgstr "%s: Ð°Ð´Ñ€ÐµÑ 0x%s вне диапазона Ð´Ð»Ñ Intel Hex файла" +msgid "%B: address %#Lx out of range for Intel Hex file" +msgstr "%B: Ð°Ð´Ñ€ÐµÑ %#Lx вне диапазона Ð´Ð»Ñ Intel Hex файла" -#: libbfd.c:863 +#: libbfd.c:799 +#, c-format msgid "%B: unable to get decompressed section %A" msgstr "Ошибка в dwarf: не удалоÑÑŒ получить раÑжатый раздел %A" -#: libbfd.c:1012 -msgid "%B: compiled for a big endian system and target is little endian" -msgstr "%B: Ñкомпилировано Ð´Ð»Ñ ÑиÑтемы Ñ Ð¿Ñ€Ñмым порÑдком байт, а цель Ñ Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ñ‹Ð¼ порÑдком байт" - -#: libbfd.c:1014 -msgid "%B: compiled for a little endian system and target is big endian" -msgstr "%B: Ñкомпилировано Ð´Ð»Ñ ÑиÑтемы Ñ Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ñ‹Ð¼ порÑдком байт, а цель Ñ Ð¿Ñ€Ñмым порÑдком байт" - -#: libbfd.c:1043 +#: libbfd.c:963 #, c-format msgid "Deprecated %s called at %s line %d in %s\n" msgstr "Вызван нерекомендуемый %s Ñ€Ñдом Ñ %s в Ñтроке %d в %s\n" -#: libbfd.c:1046 +#: libbfd.c:966 #, c-format msgid "Deprecated %s called\n" msgstr "Вызван нерекомендуемый %s\n" -#: linker.c:1872 +#: linker.c:1678 +#, c-format msgid "%B: indirect symbol `%s' to `%s' is a loop" msgstr "%B: коÑвенный Ñимвол «%s» к «%s» Ñоздаёт зацикливание" -#: linker.c:2736 +#: linker.c:2548 #, c-format msgid "Attempt to do relocatable link with %s input and %s output" msgstr "Попытка Ñделать перемещаемую ÑÑылку Ñ Ð²Ñ…Ð¾Ð´Ð¾Ð¼ %s и выходом %s" -#: linker.c:3021 +#: linker.c:2834 +#, c-format msgid "%B: ignoring duplicate section `%A'\n" msgstr "%B: игнорируетÑÑ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€ÑющийÑÑ Ñ€Ð°Ð·Ð´ÐµÐ» «%A»\n" -#: linker.c:3030 linker.c:3039 +#: linker.c:2844 linker.c:2854 +#, c-format msgid "%B: duplicate section `%A' has different size\n" msgstr "%B: повторÑющийÑÑ Ñ€Ð°Ð·Ð´ÐµÐ» «%A» имеет другой размер\n" -#: linker.c:3047 linker.c:3052 +#: linker.c:2863 linker.c:2869 +#, c-format msgid "%B: could not read contents of section `%A'\n" msgstr "%B: предупреждение: невозможно прочитать Ñодержимое раздела «%A»\n" -#: linker.c:3056 +#: linker.c:2874 +#, c-format msgid "%B: duplicate section `%A' has different contents\n" msgstr "%B: предупреждение: повторÑющийÑÑ Ñ€Ð°Ð·Ð´ÐµÐ» «%A» имеет другое Ñодержимое\n" -#: mach-o.c:407 +#: linker.c:3362 +msgid "%B: compiled for a big endian system and target is little endian" +msgstr "%B: Ñкомпилировано Ð´Ð»Ñ ÑиÑтемы Ñ Ð¿Ñ€Ñмым порÑдком байт, а цель Ñ Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ñ‹Ð¼ порÑдком байт" + +#: linker.c:3365 +msgid "%B: compiled for a little endian system and target is big endian" +msgstr "%B: Ñкомпилировано Ð´Ð»Ñ ÑиÑтемы Ñ Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ñ‹Ð¼ порÑдком байт, а цель Ñ Ð¿Ñ€Ñмым порÑдком байт" + +#: mach-o.c:779 msgid "bfd_mach_o_canonicalize_symtab: unable to load symbols" msgstr "bfd_mach_o_canonicalize_symtab: невозможно загрузить Ñимволы" -#: mach-o.c:1301 -#, c-format -msgid "unable to write unknown load command 0x%lx" -msgstr "невозможно запиÑать неизвеÑтную команду загрузки 0x%lx" - -#: mach-o.c:1789 -#, c-format -msgid "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %lu" -msgstr "bfd_mach_o_read_symtab_symbol: невозможно прочитать %d байт из %lu" +#: mach-o.c:1981 +msgid "sorry: modtab, toc and extrefsyms are not yet implemented for dysymtab commands." +msgstr "Извините: modtab, toc и extrefsyms пока не реализованы Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ dysymtab." -#: mach-o.c:1807 +#: mach-o.c:2424 #, c-format -msgid "bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %lu)" -msgstr "bfd_mach_o_read_symtab_symbol: Ð¸Ð¼Ñ Ð²Ð½Ðµ диапазона (%lu >= %lu)" +msgid "mach-o: there are too many sections (%u) maximum is 255,\n" +msgstr "mach-o: Ñлишком много разделов (%u), должно быть не более 255,\n" -#: mach-o.c:1892 +#: mach-o.c:2531 #, c-format -msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid section %d (max %lu): setting to undefined" -msgstr "bfd_mach_o_read_symtab_symbol: Ñимвол «%s» указывает на неверный раздел %d (макÑимальное значение %lu): наÑтройка не определена" +msgid "unable to allocate data for load command %#x" +msgstr "не удалоÑÑŒ выделить данные Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ‹ загрузки %#x" -#: mach-o.c:1900 +#: mach-o.c:2636 #, c-format -msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" is unsupported 'indirect' reference: setting to undefined" -msgstr "bfd_mach_o_read_symtab_symbol: Ñимвол «%s» ÑвлÑетÑÑ Ð½ÐµÐ¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÐµÐ¼Ð¾Ð¹ «неÑвной» ÑÑылкой: наÑтройка не определена" +msgid "unable to write unknown load command %#x" +msgstr "невозможно запиÑать неизвеÑтную команду загрузки %#x" -#: mach-o.c:1906 +#: mach-o.c:2820 #, c-format -msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid type field 0x%x: setting to undefined" -msgstr "bfd_mach_o_read_symtab_symbol: Ñимвол «%s» указывает на неверный тип Ð¿Ð¾Ð»Ñ 0x%x: наÑтройка не определена" - -#: mach-o.c:1979 -msgid "bfd_mach_o_read_symtab_symbols: unable to allocate memory for symbols" -msgstr "bfd_mach_o_read_symtab_symbols: невозможно выделить памÑÑ‚ÑŒ Ð´Ð»Ñ Ñимволов" +msgid "section address (%#Lx) below start of segment (%#Lx)" +msgstr "Ð°Ð´Ñ€ÐµÑ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° (%#Lx) меньше начала Ñегмента (%#Lx)" -#: mach-o.c:2014 +#: mach-o.c:2961 #, c-format -msgid "bfd_mach_o_read_dysymtab_symbol: unable to read %lu bytes at %lu" -msgstr "bfd_mach_o_read_dysymtab_symbol: невозможно прочитать %lu байт из %lu" +msgid "unable to layout unknown load command %#x" +msgstr "невозможно запланировать неизвеÑтную команду загрузки %#x" -#: mach-o.c:2734 +#: mach-o.c:3497 #, c-format -msgid "unable to read unknown load command 0x%lx" -msgstr "невозможно прочитать неизвеÑтную команду загрузки 0x%lx" +msgid "bfd_mach_o_read_section_32: overlarge alignment value: %#lx, using 32 instead" +msgstr "bfd_mach_o_read_section_32: Ñлишком большое значение выравниваниÑ: %#lx, иÑпользуетÑÑ 32" -#: mach-o.c:2915 +#: mach-o.c:3540 #, c-format -msgid "bfd_mach_o_scan: unknown architecture 0x%lx/0x%lx" -msgstr "bfd_mach_o_scan: неизвеÑÑ‚Ð½Ð°Ñ Ð°Ñ€Ñ…Ð¸Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° 0x%lx/0x%lx" +msgid "bfd_mach_o_read_section_64: overlarge alignment value: %#lx, using 32 instead" +msgstr "bfd_mach_o_read_section_64: Ñлишком большое значение выравниваниÑ: %#lx, иÑпользуетÑÑ 32" -#: mach-o.c:3011 +#: mach-o.c:3591 #, c-format -msgid "unknown header byte-order value 0x%lx" -msgstr "неизвеÑтное значение порÑдка байт в заголовке 0x%lx" +msgid "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %u" +msgstr "bfd_mach_o_read_symtab_symbol: невозможно прочитать %d байт по адреÑу %u" -#: mach-o.c:3577 -msgid "Mach-O header:\n" -msgstr "заголовок Mach-O:\n" - -#: mach-o.c:3578 +#: mach-o.c:3610 #, c-format -msgid " magic : %08lx\n" -msgstr " отл.призн : %08lx\n" +msgid "bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %u)" +msgstr "bfd_mach_o_read_symtab_symbol: Ð¸Ð¼Ñ Ð²Ð½Ðµ диапазона (%lu >= %u)" -#: mach-o.c:3579 +#: mach-o.c:3693 #, c-format -msgid " cputype : %08lx (%s)\n" -msgstr " тип ЦП : %08lx (%s)\n" +msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid section %d (max %lu): setting to undefined" +msgstr "bfd_mach_o_read_symtab_symbol: Ñимвол «%s» указывает на неверный раздел %d (макÑимальное значение %lu): наÑтройка не определена" -#: mach-o.c:3581 +#: mach-o.c:3712 #, c-format -msgid " cpusubtype: %08lx\n" -msgstr " подтип ЦП : %08lx\n" +msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid type field 0x%x: setting to undefined" +msgstr "bfd_mach_o_read_symtab_symbol: Ñимвол «%s» указывает на неверный тип Ð¿Ð¾Ð»Ñ 0x%x: наÑтройка не определена" -#: mach-o.c:3582 -#, c-format -msgid " filetype : %08lx (%s)\n" -msgstr " тип файла : %08lx (%s)\n" +#: mach-o.c:3789 +msgid "bfd_mach_o_read_symtab_symbols: unable to allocate memory for symbols" +msgstr "bfd_mach_o_read_symtab_symbols: невозможно выделить памÑÑ‚ÑŒ Ð´Ð»Ñ Ñимволов" -#: mach-o.c:3585 -#, c-format -msgid " ncmds : %08lx (%lu)\n" -msgstr " ч_кмнд : %08lx (%lu)\n" +#: mach-o.c:4762 +msgid "%B: unknown load command %#x" +msgstr "%B: неизвеÑÑ‚Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ‹ загрузки %#x" -#: mach-o.c:3586 +#: mach-o.c:4953 #, c-format -msgid " sizeofcmds: %08lx\n" -msgstr " разм_кмнд : %08lx\n" +msgid "bfd_mach_o_scan: unknown architecture 0x%lx/0x%lx" +msgstr "bfd_mach_o_scan: неизвеÑÑ‚Ð½Ð°Ñ Ð°Ñ€Ñ…Ð¸Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° 0x%lx/0x%lx" -#: mach-o.c:3587 +#: mach-o.c:5058 #, c-format -msgid " flags : %08lx (" -msgstr " флаги : %08lx (" - -#: mach-o.c:3589 vms-alpha.c:7674 -msgid ")\n" -msgstr ")\n" +msgid "unknown header byte-order value %#x" +msgstr "неизвеÑтное значение порÑдка байт в заголовке %#x" -#: mach-o.c:3590 +#: merge.c:868 #, c-format -msgid " reserved : %08x\n" -msgstr " зарезерв : %08x\n" +msgid "%B: access beyond end of merged section (%Ld)" +msgstr "%B: доÑтуп за конец объединённого раздела (%Ld)" -#: mach-o.c:3600 -msgid "Segments and Sections:\n" -msgstr "Сегменты и разделы:\n" - -#: mach-o.c:3601 -msgid " #: Segment name Section name Address\n" -msgstr "" -" #: Segment name Section name Address\n" -" #: Ðазвание Ñегм Ðазвание раздела ÐдреÑ\n" - -#: merge.c:832 +#: mmo.c:468 #, c-format -msgid "%s: access beyond end of merged section (%ld)" -msgstr "%s: доÑтуп за конец объединённого раздела (%ld)" +msgid "%B: No core to allocate section name %s\n" +msgstr "%B: Ðет core Ð´Ð»Ñ Ð²Ñ‹Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð¸ раздела %s\n" -#: mmo.c:456 +#: mmo.c:544 #, c-format -msgid "%s: No core to allocate section name %s\n" -msgstr "%s: Ðет оÑÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ Ð²Ñ‹Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð¸ раздела %s\n" +msgid "%B: No core to allocate a symbol %d bytes long\n" +msgstr "%B: Ðет core Ð´Ð»Ñ Ð²Ñ‹Ð´ÐµÐ»ÐµÐ½Ð¸Ñ %d байт Ñимвола\n" -#: mmo.c:531 +#: mmo.c:958 #, c-format -msgid "%s: No core to allocate a symbol %d bytes long\n" -msgstr "%s: Ðет оÑÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ Ð²Ñ‹Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ñимвольных %d байт\n" +msgid "%B: attempt to emit contents at non-multiple-of-4 address %#Lx" +msgstr "%B: попытка выпуÑтить Ñодержимое по адреÑу не кратному 4 (%#Lx)" -#: mmo.c:1187 -#, c-format -msgid "%s: invalid mmo file: initialization value for $255 is not `Main'\n" -msgstr "%s: недопуÑтимый mmo-файл: инициализационное значение Ð´Ð»Ñ $255 не равно «Main»\n" +#: mmo.c:1255 +msgid "%B: invalid mmo file: initialization value for $255 is not `Main'\n" +msgstr "%B: некорректный mmo-файл: инициализационное значение Ð´Ð»Ñ $255 не равно «Main»\n" -#: mmo.c:1332 +#: mmo.c:1402 #, c-format -msgid "%s: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'\n" -msgstr "%s: Ð½ÐµÐ¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÐµÐ¼Ð°Ñ Ð¿Ð¾ÑледовательноÑÑ‚ÑŒ широких Ñимволов 0x%02X 0x%02X поÑле имени Ñимвола, начинающегоÑÑ Ñ Â«%s»\n" +msgid "%B: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'\n" +msgstr "%B: Ð½ÐµÐ¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÐµÐ¼Ð°Ñ Ð¿Ð¾ÑледовательноÑÑ‚ÑŒ широких Ñимволов 0x%02X 0x%02X поÑле имени Ñимвола, Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ Â«%s»\n" -#: mmo.c:1565 +#: mmo.c:1636 #, c-format -msgid "%s: invalid mmo file: unsupported lopcode `%d'\n" -msgstr "%s: недопуÑтимый mmo-файл: неподдерживаемый lopcode «%d»\n" +msgid "%B: invalid mmo file: unsupported lopcode `%d'\n" +msgstr "%B: некорректный mmo-файл: неподдерживаемый lopcode «%d»\n" -#: mmo.c:1575 +#: mmo.c:1647 #, c-format -msgid "%s: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n" -msgstr "%s: недопуÑтимый mmo-файл: ожидалоÑÑŒ YZ = 1, получено YZ = %d Ð´Ð»Ñ lop_quote\n" +msgid "%B: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n" +msgstr "%B: некорректный mmo-файл: Ð´Ð»Ñ lop_quote ожидалоÑÑŒ YZ = 1, получено YZ = %d\n" -#: mmo.c:1611 +#: mmo.c:1685 #, c-format -msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n" -msgstr "%s: недопуÑтимый mmo-файл: ожидалоÑÑŒ z = 1 или z = 2, получено z = %d Ð´Ð»Ñ lop_loc\n" +msgid "%B: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n" +msgstr "%B: некорректный mmo-файл: Ð´Ð»Ñ lop_loc ожидалоÑÑŒ z = 1 или z = 2, получено z = %d\n" -#: mmo.c:1657 +#: mmo.c:1736 #, c-format -msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n" -msgstr "%s: недопуÑтимый mmo-файл: ожидалоÑÑŒ z = 1 или z = 2, получено z = %d Ð´Ð»Ñ lop_fixo\n" +msgid "%B: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n" +msgstr "%B: некорректный mmo-файл: Ð´Ð»Ñ lop_fixo ожидалоÑÑŒ z = 1 или z = 2, получено z = %d\n" -#: mmo.c:1696 +#: mmo.c:1777 #, c-format -msgid "%s: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n" -msgstr "%s: недопуÑтимый mmo-файл: ожидалоÑÑŒ y = 0, получено y = %d Ð´Ð»Ñ lop_fixrx\n" +msgid "%B: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n" +msgstr "%B: некорректный mmo-файл: Ð´Ð»Ñ lop_fixrx ожидалоÑÑŒ y = 0, получено y = %d\n" -#: mmo.c:1705 +#: mmo.c:1788 #, c-format -msgid "%s: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n" -msgstr "%s: недопуÑтимый mmo-файл: ожидалоÑÑŒ z = 16 или z = 24, получено z = %d Ð´Ð»Ñ lop_fixrx\n" +msgid "%B: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n" +msgstr "%B: некорректный mmo-файл: Ð´Ð»Ñ lop_fixrx ожидалоÑÑŒ z = 16 или z = 24, получено z = %d\n" -#: mmo.c:1728 +#: mmo.c:1813 #, 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: недопуÑтимый mmo-файл: начальный байт Ñлова операнда должен быть равен 0 или 1, получено %d Ð´Ð»Ñ lop_fixrx\n" +msgid "%B: invalid mmo file: leading byte of operand word must be 0 or 1, got %d for lop_fixrx\n" +msgstr "%B: некорректный mmo-файл: Ð´Ð»Ñ lop_fixrx начальный байт Ñлова операнда должен быть равен 0 или 1, получено %d\n" -#: mmo.c:1751 +#: mmo.c:1838 #, c-format -msgid "%s: cannot allocate file name for file number %d, %d bytes\n" -msgstr "%s: невозможно выделить меÑто Ð´Ð»Ñ Ð¸Ð¼ÐµÐ½Ð¸ файла к файлу Ñ Ð½Ð¾Ð¼ÐµÑ€Ð¾Ð¼ %d, %d байт\n" +msgid "%B: cannot allocate file name for file number %d, %d bytes\n" +msgstr "%B: невозможно выделить меÑто Ð´Ð»Ñ Ð¸Ð¼ÐµÐ½Ð¸ файла файлу Ñ Ð½Ð¾Ð¼ÐµÑ€Ð¾Ð¼ %d, %d байт\n" -#: mmo.c:1771 +#: mmo.c:1860 #, c-format -msgid "%s: invalid mmo file: file number %d `%s', was already entered as `%s'\n" -msgstr "%s: недопуÑтимый mmo-файл: номер файла %d «%s», был уже введён как «%s»\n" +msgid "%B: invalid mmo file: file number %d `%s', was already entered as `%s'\n" +msgstr "%B: некорректный mmo-файл: номер файла %d «%s» был уже введён как «%s»\n" -#: mmo.c:1784 +#: mmo.c:1874 #, c-format -msgid "%s: invalid mmo file: file name for number %d was not specified before use\n" -msgstr "%s: недопуÑтимый mmo-файл: Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° Ð´Ð»Ñ Ð½Ð¾Ð¼ÐµÑ€Ð° %d не указано перед иÑпользованием\n" +msgid "%B: invalid mmo file: file name for number %d was not specified before use\n" +msgstr "%B: некорректный mmo-файл: Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° Ð´Ð»Ñ Ð½Ð¾Ð¼ÐµÑ€Ð° %d не указано перед иÑпользованием\n" -#: mmo.c:1890 +#: mmo.c:1981 #, c-format -msgid "%s: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n" -msgstr "%s: недопуÑтимый mmo-файл: Ð¿Ð¾Ð»Ñ y и z в lop_stab не равны нулю, y: %d, z: %d\n" +msgid "%B: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n" +msgstr "%B: некорректный mmo-файл: Ð¿Ð¾Ð»Ñ y и z в lop_stab не равны нулю, y: %d, z: %d\n" -#: mmo.c:1926 +#: mmo.c:2018 #, c-format -msgid "%s: invalid mmo file: lop_end not last item in file\n" -msgstr "%s: недопуÑтимый mmo-файл: lop_end не поÑледний Ñлемент в файле\n" +msgid "%B: invalid mmo file: lop_end not last item in file\n" +msgstr "%B: некорректный mmo-файл: lop_end не поÑледний Ñлемент в файле\n" -#: mmo.c:1939 +#: mmo.c:2032 #, 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: недопуÑтимый mmo-файл: YZ в lop_end (%ld) не равно чиÑлу тетрад в указанной ранее lop_stab (%ld)\n" +msgid "%B: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)\n" +msgstr "%B: некорректный mmo-файл: YZ в lop_end (%ld) не равно чиÑлу тетрад в указанной ранее lop_stab (%ld)\n" -#: mmo.c:2649 +#: mmo.c:2743 #, c-format -msgid "%s: invalid symbol table: duplicate symbol `%s'\n" -msgstr "%s: ошибка в таблице Ñимволов: повторÑющийÑÑ Ñимвол «%s»\n" +msgid "%B: invalid symbol table: duplicate symbol `%s'\n" +msgstr "%B: Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° Ñимволов: повторÑющийÑÑ Ñимвол «%s»\n" -#: mmo.c:2889 +#: mmo.c:2986 #, c-format -msgid "%s: Bad symbol definition: `Main' set to %s rather than the start address %s\n" -msgstr "%s: Ðеверное определение Ñимвола: «Main» уÑтановлена в %s, а не в начальный Ð°Ð´Ñ€ÐµÑ %s\n" +msgid "%B: Bad symbol definition: `Main' set to %s rather than the start address %s\n" +msgstr "%B: неверное определение Ñимвола: «Main» равен %s, а не начальному адреÑу %s\n" -#: mmo.c:2981 +#: mmo.c:3085 #, 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: предупреждение: таблица Ñимволов Ñлишком Ð±Ð¾Ð»ÑŒÑˆÐ°Ñ Ð´Ð»Ñ mmo, больше чем 65535 32-битных Ñлов: %d. Будет выделена только «Main».\n" +msgid "%B: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d. Only `Main' will be emitted.\n" +msgstr "%B: предупреждение: таблица Ñимволов Ñлишком Ð±Ð¾Ð»ÑŒÑˆÐ°Ñ Ð´Ð»Ñ mmo, больше чем 65535 32-битных Ñлов: %d. Будет выдана только «Main».\n" -#: mmo.c:3026 +#: mmo.c:3131 #, c-format -msgid "%s: internal error, symbol table changed size from %d to %d words\n" -msgstr "%s: внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°, у таблицы Ñимволов изменилÑÑ Ñ€Ð°Ð·Ð¼ÐµÑ€ Ñ %d Ñлов до %d\n" +msgid "%B: internal error, symbol table changed size from %d to %d words\n" +msgstr "%B: внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°, у таблицы Ñимволов изменилÑÑ Ñ€Ð°Ð·Ð¼ÐµÑ€ Ñ %d Ñлов до %d\n" -#: mmo.c:3078 +#: mmo.c:3184 #, c-format -msgid "%s: internal error, internal register section %s had contents\n" -msgstr "%s: внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°, внутренний раздел региÑтров %s Ñодержит данные\n" +msgid "%B: internal error, internal register section %A had contents\n" +msgstr "%B: внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°, внутренний раздел региÑтров %A Ñодержит данные\n" -#: mmo.c:3129 -#, c-format -msgid "%s: no initialized registers; section length 0\n" -msgstr "%s:нет инициализированных региÑтров; длина раздела равна 0\n" +#: mmo.c:3235 +msgid "%B: no initialized registers; section length 0\n" +msgstr "%B:нет инициализированных региÑтров; длина раздела равна 0\n" -#: mmo.c:3135 +#: mmo.c:3242 #, c-format -msgid "%s: too many initialized registers; section length %ld\n" -msgstr "%s: Ñлишком много инициализированных региÑтров; длина раздела равна %ld\n" +msgid "%B: too many initialized registers; section length %Ld" +msgstr "%B: Ñлишком много инициализированных региÑтров; длина раздела равна %Ld" -#: mmo.c:3140 +#: mmo.c:3247 #, c-format -msgid "%s: invalid start address for initialized registers of length %ld: 0x%lx%08lx\n" -msgstr "%s: недопуÑтимый начальный Ð°Ð´Ñ€ÐµÑ Ð´Ð»Ñ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ñ… региÑтров длины %ld: 0x%lx%08lx\n" +msgid "%B: invalid start address for initialized registers of length %Ld: %#Lx" +msgstr "%B: недопуÑтимый начальный Ð°Ð´Ñ€ÐµÑ Ð´Ð»Ñ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ñ… региÑтров длины %Ld: %#Lx" -#: oasys.c:882 +#: oasys.c:881 #, c-format -msgid "%s: can not represent section `%s' in oasys" -msgstr "%s: невозможно предÑтавить раздел «%s» в oasys" +msgid "%B: can not represent section `%A' in oasys" +msgstr "%B: невозможно предÑтавить раздел «%s» в oasys" -#: osf-core.c:140 +#: osf-core.c:127 #, c-format msgid "Unhandled OSF/1 core file section type %d\n" msgstr "Ðеобработанный файл Ñдра OSF/1 раздела Ñ Ñ‚Ð¸Ð¿Ð¾Ð¼ %d\n" -#: pe-mips.c:607 +#: pe-mips.c:609 msgid "%B: `ld -r' not supported with PE MIPS objects\n" msgstr "%B: «ld -r» не поддерживаетÑÑ Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð°Ð¼Ð¸ PE MIPS\n" @@ -3663,73 +5704,122 @@ #. 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:719 +#: pe-mips.c:720 +#, c-format msgid "%B: unimplemented %s\n" msgstr "%B: не реализовано %s\n" -#: pe-mips.c:745 +#: pe-mips.c:746 msgid "%B: jump too far away\n" msgstr "%B: точка перехода Ñлишком далеко\n" -#: pe-mips.c:771 +#: pe-mips.c:772 msgid "%B: bad pair/reflo after refhi\n" msgstr "%B: Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ pair/reflo поÑле refhi\n" -#: pef.c:520 +#: pef.c:526 #, c-format msgid "bfd_pef_scan: unknown architecture 0x%lx" msgstr "bfd_pef_scan: неизвеÑÑ‚Ð½Ð°Ñ Ð°Ñ€Ñ…Ð¸Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° 0x%lx" -#: pei-x86_64.c:444 +#. PR 17512: file: 2245-7442-0.004. +#: pei-x86_64.c:281 +#, c-format +msgid "Unknown: %x" +msgstr "ÐеизвеÑтно: %x" + +#: pei-x86_64.c:331 +#, c-format +msgid "warning: xdata section corrupt\n" +msgstr "предупреждение: повреждён раздел xdata\n" + +#: pei-x86_64.c:341 +#, c-format +msgid "warning: xdata section corrupt" +msgstr "предупреждение: повреждён раздел xdata" + +#: pei-x86_64.c:401 #, c-format -msgid "warning: .pdata section size (%ld) is not a multiple of %d\n" -msgstr "предупреждение: размер раздела .pdata (%ld) не кратен %d\n" +msgid "Too many unwind codes (%ld)\n" +msgstr "Слишком много раÑкрываемого кода (%ld)\n" -#: pei-x86_64.c:448 peigen.c:1618 peigen.c:1801 pepigen.c:1618 pepigen.c:1801 -#: pex64igen.c:1618 pex64igen.c:1801 +#: pei-x86_64.c:491 +#, c-format +msgid "Warning: %s section size (%ld) is not a multiple of %d\n" +msgstr "Предупреждение: размер раздела %s (%ld) не кратен %d\n" + +#: pei-x86_64.c:498 +#, c-format +msgid "Warning: %s section size is zero\n" +msgstr "Предупреждение: размер раздела %s равен нулю\n" + +#: pei-x86_64.c:513 +#, c-format +msgid "Warning: %s section size (%ld) is smaller than virtual size (%ld)\n" +msgstr "Предупреждение: размер раздела %s (%ld) меньше виртуального размера (%ld)\n" + +#: pei-x86_64.c:522 #, c-format msgid "" "\n" -"The Function Table (interpreted .pdata section contents)\n" +"The Function Table (interpreted %s section contents)\n" msgstr "" "\n" -"Таблица функций (обработан раздел .pdata)\n" +"Таблица функций (обработано Ñодержимое раздела %s)\n" -#: pei-x86_64.c:450 +#: pei-x86_64.c:525 #, c-format msgid "vma:\t\t\tBeginAddress\t EndAddress\t UnwindData\n" msgstr "vma:\t\t\tÐач Ð°Ð´Ñ€ÐµÑ \t Кон адреÑ\t РаÑкр данные\n" +#: pei-x86_64.c:654 +#, c-format +msgid "" +"\n" +"Dump of %s\n" +msgstr "" +"\n" +"Дамп %s\n" + #. XXX code yet to be written. -#: peicode.h:751 +#: peicode.h:775 +#, c-format msgid "%B: Unhandled import type; %x" msgstr "%B: Ðеобработанный тип импорта; %x" -#: peicode.h:756 +#: peicode.h:781 +#, c-format msgid "%B: Unrecognised import type; %x" msgstr "%B: ÐераÑпознанный тип импорта; %x" -#: peicode.h:770 +#: peicode.h:796 +#, c-format msgid "%B: Unrecognised import name type; %x" msgstr "%B: ÐераÑпознанный именной тип импорта; %x" -#: peicode.h:1166 +#: peicode.h:1217 +#, c-format msgid "%B: Unrecognised machine type (0x%x) in Import Library Format archive" msgstr "%B: ÐераÑпознанный машинный тип (0x%x) в архиве Import Library Format" -#: peicode.h:1178 +#: peicode.h:1230 +#, c-format msgid "%B: Recognised but unhandled machine type (0x%x) in Import Library Format archive" msgstr "%B: РаÑпознан, но не обработан машинный тип (0x%x) в архиве Import Library Format" -#: peicode.h:1196 +#: peicode.h:1248 msgid "%B: size field is zero in Import Library Format header" msgstr "%B: размер Ð¿Ð¾Ð»Ñ Ñ€Ð°Ð²ÐµÐ½ нулю в заголовке Import Library Format" -#: peicode.h:1227 +#: peicode.h:1280 msgid "%B: string not null terminated in ILF object file." msgstr "%B: Ñтрока не заканчиваетÑÑ Ð½ÑƒÐ»Ñ‘Ð¼ в объектном файле ILF." -#: ppcboot.c:414 +#: peicode.h:1335 +msgid "%B: Error: Debug Data ends beyond end of debug directory." +msgstr "%B: ошибка: конец отладочных данных за окончанием отладочного каталога." + +#: ppcboot.c:393 #, c-format msgid "" "\n" @@ -3738,27 +5828,27 @@ "\n" "заголовок ppcboot:\n" -#: ppcboot.c:415 +#: ppcboot.c:394 #, c-format msgid "Entry offset = 0x%.8lx (%ld)\n" msgstr "Ðачальное Ñмещение = 0x%.8lx (%ld)\n" -#: ppcboot.c:417 +#: ppcboot.c:396 #, c-format msgid "Length = 0x%.8lx (%ld)\n" msgstr "Длина = 0x%.8lx (%ld)\n" -#: ppcboot.c:421 +#: ppcboot.c:400 #, c-format msgid "Flag field = 0x%.2x\n" msgstr "Поле флагов = 0x%.2x\n" -#: ppcboot.c:427 +#: ppcboot.c:406 #, c-format msgid "Partition name = \"%s\"\n" msgstr "Ð˜Ð¼Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° = \"%s\"\n" -#: ppcboot.c:446 +#: ppcboot.c:426 #, c-format msgid "" "\n" @@ -3767,31 +5857,56 @@ "\n" "Ðачало раздела[%d] = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" -#: ppcboot.c:452 +#: ppcboot.c:433 #, c-format msgid "Partition[%d] end = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" msgstr "Конец раздела[%d] = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" -#: ppcboot.c:458 +#: ppcboot.c:440 #, c-format msgid "Partition[%d] sector = 0x%.8lx (%ld)\n" msgstr "Сектор раздела[%d] = 0x%.8lx (%ld)\n" -#: ppcboot.c:460 +#: ppcboot.c:444 #, c-format msgid "Partition[%d] length = 0x%.8lx (%ld)\n" msgstr "Длина раздела[%d] = 0x%.8lx (%ld)\n" -#: reloc.c:6160 +#: reloc.c:8106 msgid "INPUT_SECTION_FLAGS are not supported.\n" msgstr "INPUT_SECTION_FLAGS не поддерживаетÑÑ.\n" -#: rs6000-core.c:448 +#: reloc.c:8207 +#, c-format +msgid "%X%P: %B(%A): error: relocation for offset %V has no value\n" +msgstr "%X%P: %B(%A): ошибка: отÑутÑтвует значение Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÑÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %V\n" + +#: reloc.c:8283 +#, c-format +msgid "%X%P: %B(%A): relocation \"%R\" is not supported\n" +msgstr "%X%P: %B(%A): перемещение «%R» не поддерживаетÑÑ\n" + +#: reloc.c:8292 #, c-format -msgid "%s: warning core file truncated" -msgstr "%s: предупреждение: файл core уÑечён" +msgid "%X%P: %B(%A): relocation \"%R\" returns an unrecognized value %x\n" +msgstr "%X%P: %B(%A): перемещение «%R» возвратило нераÑпознанное значение %x\n" -#: som.c:5471 +#: reloc.c:8354 +#, c-format +msgid "%B: unrecognized relocation (%#x) in section `%A'" +msgstr "%B: нераÑпознанное перемещение (%#x) в разделе «%A»" + +#. PR 21803: Suggest the most likely cause of this error. +#: reloc.c:8358 +#, c-format +msgid "Is this version of the linker - %s - out of date ?" +msgstr "Ð”Ð°Ð½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ñ‰Ð¸ÐºÐ° — %s — уÑтарела?" + +#: rs6000-core.c:471 +msgid "%B: warning core file truncated" +msgstr "%B: предупреждение: файл core уÑечён" + +#: som.c:5478 #, c-format msgid "" "\n" @@ -3800,52 +5915,97 @@ "\n" "Ð’Ñпомогательный заголовок Exec\n" -#: som.c:5776 +#: som.c:5787 msgid "som_sizeof_headers unimplemented" msgstr "som_sizeof_headers не реализован" -#: srec.c:261 +#: srec.c:260 +#, c-format msgid "%B:%d: Unexpected character `%s' in S-record file\n" msgstr "%B:%d: Ðеожиданный Ñимвол «%s» в файле S-record\n" -#: srec.c:567 srec.c:600 +#: srec.c:488 +#, c-format +msgid "%B:%d: byte count %d too small\n" +msgstr "%B:%d: Ñчётчик байт %d Ñлишком мал\n" + +#: srec.c:581 srec.c:615 +#, c-format msgid "%B:%d: Bad checksum in S-record file\n" msgstr "%B:%d: ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð°Ñ Ñумма в файле S-record\n" #: stabs.c:279 -msgid "%B(%A+0x%lx): Stabs entry has invalid string index." -msgstr "%B(%A+0x%lx): Элемент Stabs имеет недопуÑтимый Ð¸Ð½Ð´ÐµÐºÑ Ñтроки." +#, c-format +msgid "%B(%A+%#lx): Stabs entry has invalid string index." +msgstr "%B(%A+%#lx): Ñлемент Stabs имеет недопуÑтимый Ð¸Ð½Ð´ÐµÐºÑ Ñтроки." #: syms.c:1079 msgid "Unsupported .stab relocation" msgstr "Ðеподдерживаемое перемещение .stab" -#: vms-alpha.c:1299 +#: vms-alpha.c:479 +msgid "Corrupt EIHD record - size is too small" +msgstr "ЗапиÑÑŒ EIHD повреждена — размер Ñлишком мал" + +#: vms-alpha.c:660 +#, c-format +msgid "Unable to read EIHS record at offset %#x" +msgstr "Ðевозможно прочитать запиÑÑŒ EIHS по Ñмещению %#x" + +#: vms-alpha.c:1172 +#, c-format +msgid "Corrupt EGSD record: its size (%#x) is too small" +msgstr "ЗапиÑÑŒ EGSD повреждена: её размер (%#x) Ñлишком мал" + +#: vms-alpha.c:1196 +#, c-format +msgid "Corrupt EGSD record: size (%#x) is larger than remaining space (%#x)" +msgstr "ЗапиÑÑŒ EGSD повреждена: размер (%#x) больше оÑтавшегоÑÑ Ð¿Ñ€Ð¾ÑтранÑтва (%#x)" + +#: vms-alpha.c:1204 +#, c-format +msgid "Corrupt EGSD record: size (%#x) is too small" +msgstr "ЗапиÑÑŒ EGSD повреждена: размер (%#x) Ñлишком мал" + +#: vms-alpha.c:1333 vms-alpha.c:1349 vms-alpha.c:1389 +#, c-format +msgid "Corrupt EGSD record: its psindx field is too big (%#lx)" +msgstr "ЗапиÑÑŒ EGSD повреждена: её поле psindx Ñлишком велико (%#lx)" + +#: vms-alpha.c:1418 #, c-format msgid "Unknown EGSD subtype %d" msgstr "ÐеизвеÑтный подтип EGSD %d" -#: vms-alpha.c:1330 +#: vms-alpha.c:1451 #, c-format msgid "Stack overflow (%d) in _bfd_vms_push" msgstr "Переполнение Ñтека (%d) в _bfd_vms_push" -#: vms-alpha.c:1343 +#: vms-alpha.c:1464 msgid "Stack underflow in _bfd_vms_pop" msgstr "Выход за нижнюю границу Ñтека в _bfd_vms_pop" #. These names have not yet been added to this switch statement. -#: vms-alpha.c:1580 +#: vms-alpha.c:1706 #, c-format msgid "unknown ETIR command %d" msgstr "неизвеÑÑ‚Ð½Ð°Ñ ETIR команда %d" -#: vms-alpha.c:1767 +#: vms-alpha.c:1737 +msgid "Corrupt vms value" +msgstr "Значение vms повреждено" + +#: vms-alpha.c:1865 +msgid "Corrupt ETIR record encountered" +msgstr "Обнаружена Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´Ñ‘Ð½Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ ETIR" + +#: vms-alpha.c:1922 #, c-format msgid "bad section index in %s" msgstr "неверный Ð¸Ð½Ð´ÐµÐºÑ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° в %s" -#: vms-alpha.c:1780 +#: vms-alpha.c:1935 #, c-format msgid "unsupported STA cmd %s" msgstr "неподдерживаемый STA cmd %s" @@ -3855,1393 +6015,1497 @@ #. Rotate. #. Redefine symbol to current location. #. Define a literal. -#: vms-alpha.c:1956 vms-alpha.c:1987 vms-alpha.c:2234 +#: vms-alpha.c:2115 vms-alpha.c:2146 vms-alpha.c:2237 vms-alpha.c:2395 #, c-format msgid "%s: not supported" msgstr "%s: не поддерживаетÑÑ" -#: vms-alpha.c:1962 +#: vms-alpha.c:2121 #, c-format msgid "%s: not implemented" msgstr "%s: не реализовано" -#: vms-alpha.c:2218 +#: vms-alpha.c:2379 #, c-format msgid "invalid use of %s with contexts" msgstr "неправильное иÑпользование %s Ñ ÐºÐ¾Ð½Ñ‚ÐµÐºÑтами" -#: vms-alpha.c:2252 +#: vms-alpha.c:2413 #, c-format msgid "reserved cmd %d" msgstr "зарезервированный cmd %d" -#: vms-alpha.c:2337 +#: vms-alpha.c:2497 +msgid "Corrupt EEOM record - size is too small" +msgstr "ЗапиÑÑŒ EEOM повреждена — размер Ñлишком мал" + +#: vms-alpha.c:2506 msgid "Object module NOT error-free !\n" msgstr "Объектный модуль ÐЕ error-free !\n" -#: vms-alpha.c:2766 -#, c-format -msgid "Symbol %s replaced by %s\n" -msgstr "Символ %s заменён на %s\n" - -#: vms-alpha.c:3769 +#: vms-alpha.c:3830 #, c-format -msgid "SEC_RELOC with no relocs in section %s" -msgstr "SEC_RELOC без перемещений в разделе %s" +msgid "SEC_RELOC with no relocs in section %A" +msgstr "SEC_RELOC без перемещений в разделе %A" -#: vms-alpha.c:3822 vms-alpha.c:4049 +#: vms-alpha.c:3882 vms-alpha.c:4095 #, c-format -msgid "Size error in section %s" -msgstr "Ошибка размера в разделе %s" +msgid "Size error in section %A" +msgstr "Ошибка размера в разделе %A" -#: vms-alpha.c:3991 +#: vms-alpha.c:4041 msgid "Spurious ALPHA_R_BSR reloc" msgstr "Ðетипичное перемещение ALPHA_R_BSR" -#: vms-alpha.c:4036 +#: vms-alpha.c:4082 #, c-format msgid "Unhandled relocation %s" msgstr "Ðеобработанное перемещение %s" -#: vms-alpha.c:4326 +#: vms-alpha.c:4375 #, c-format msgid "unknown source command %d" msgstr "неизвеÑÑ‚Ð½Ð°Ñ Ð¸ÑÑ…Ð¾Ð´Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° %d" -#: vms-alpha.c:4387 +#: vms-alpha.c:4436 msgid "DST__K_SET_LINUM_INCR not implemented" msgstr "DST__K_SET_LINUM_INCR не реализован" -#: vms-alpha.c:4393 +#: vms-alpha.c:4442 msgid "DST__K_SET_LINUM_INCR_W not implemented" msgstr "DST__K_SET_LINUM_INCR_W не реализован" -#: vms-alpha.c:4399 +#: vms-alpha.c:4448 msgid "DST__K_RESET_LINUM_INCR not implemented" msgstr "DST__K_RESET_LINUM_INCR не реализован" -#: vms-alpha.c:4405 +#: vms-alpha.c:4454 msgid "DST__K_BEG_STMT_MODE not implemented" msgstr "DST__K_BEG_STMT_MODE не реализован" -#: vms-alpha.c:4411 +#: vms-alpha.c:4460 msgid "DST__K_END_STMT_MODE not implemented" msgstr "DST__K_END_STMT_MODE не реализован" -#: vms-alpha.c:4438 +#: vms-alpha.c:4487 msgid "DST__K_SET_PC not implemented" msgstr "DST__K_SET_PC не реализован" -#: vms-alpha.c:4444 +#: vms-alpha.c:4493 msgid "DST__K_SET_PC_W not implemented" msgstr "DST__K_SET_PC_W не реализован" -#: vms-alpha.c:4450 +#: vms-alpha.c:4499 msgid "DST__K_SET_PC_L not implemented" msgstr "DST__K_SET_PC_L не реализован" -#: vms-alpha.c:4456 +#: vms-alpha.c:4505 msgid "DST__K_SET_STMTNUM not implemented" msgstr "DST__K_SET_STMTNUM не реализован" -#: vms-alpha.c:4499 +#: vms-alpha.c:4548 #, c-format msgid "unknown line command %d" msgstr "неизвеÑÑ‚Ð½Ð°Ñ Ñтрока команды %d" -#: vms-alpha.c:4953 vms-alpha.c:4970 vms-alpha.c:4984 vms-alpha.c:4999 -#: vms-alpha.c:5011 vms-alpha.c:5022 vms-alpha.c:5034 +#: vms-alpha.c:5008 vms-alpha.c:5026 vms-alpha.c:5041 vms-alpha.c:5057 +#: vms-alpha.c:5070 vms-alpha.c:5082 vms-alpha.c:5095 #, c-format msgid "Unknown reloc %s + %s" msgstr "ÐеизвеÑтное перемещение %s + %s" -#: vms-alpha.c:5089 +#: vms-alpha.c:5150 #, c-format msgid "Unknown reloc %s" msgstr "ÐеизвеÑтное перемещение %s" -#: vms-alpha.c:5102 +#: vms-alpha.c:5163 msgid "Invalid section index in ETIR" msgstr "Ðеверный Ð¸Ð½Ð´ÐµÐºÑ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° в ETIR" -#: vms-alpha.c:5109 +#: vms-alpha.c:5172 msgid "Relocation for non-REL psect" msgstr "Перемещение Ð´Ð»Ñ Ð½Ðµ-REL psect" -#: vms-alpha.c:5156 +#: vms-alpha.c:5219 #, c-format msgid "Unknown symbol in command %s" msgstr "ÐеизвеÑтный Ñимвол в команде %s" -#: vms-alpha.c:5671 +#: vms-alpha.c:5629 +#, c-format +msgid "reloc (%d) is *UNKNOWN*" +msgstr "перемещение (%d) *ÐЕИЗВЕСТÐО*" + +#: vms-alpha.c:5745 #, c-format msgid " EMH %u (len=%u): " msgstr " EMH %u (len=%u): " -#: vms-alpha.c:5680 +#: vms-alpha.c:5750 +#, c-format +msgid " Error: The length is less than the length of an EMH record\n" +msgstr " Ошибка: длина меньше длины запиÑи EMH\n" + +#: vms-alpha.c:5767 +#, c-format +msgid " Error: The record length is less than the size of an EMH_MHD record\n" +msgstr " Ошибка: длина запиÑи меньше размера запиÑи EMH_MHD\n" + +#: vms-alpha.c:5770 #, c-format msgid "Module header\n" msgstr "Заголовок модулÑ\n" -#: vms-alpha.c:5681 +#: vms-alpha.c:5771 #, c-format msgid " structure level: %u\n" msgstr " уровень Ñтруктуры : %u\n" -#: vms-alpha.c:5682 +#: vms-alpha.c:5772 #, c-format msgid " max record size: %u\n" msgstr " макÑ. размер запиÑи: %u\n" -#: vms-alpha.c:5685 +#: vms-alpha.c:5778 +#, c-format +msgid " Error: The module name is missing\n" +msgstr " Ошибка: отÑутÑтвует Ð¸Ð¼Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ\n" + +#: vms-alpha.c:5784 +#, c-format +msgid " Error: The module name is too long\n" +msgstr " Ошибка: Ñлишком длинное Ð¸Ð¼Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ\n" + +#: vms-alpha.c:5787 #, c-format msgid " module name : %.*s\n" msgstr " Ð¸Ð¼Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ : %.*s\n" -#: vms-alpha.c:5687 +#: vms-alpha.c:5791 +#, c-format +msgid " Error: The module version is missing\n" +msgstr " Ошибка: отÑутÑтвует верÑÐ¸Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ\n" + +#: vms-alpha.c:5797 +#, c-format +msgid " Error: The module version is too long\n" +msgstr " Ошибка: Ñлишком Ð´Ð»Ð¸Ð½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ\n" + +#: vms-alpha.c:5800 #, c-format msgid " module version : %.*s\n" msgstr " верÑÐ¸Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ : %.*s\n" -#: vms-alpha.c:5689 +#: vms-alpha.c:5803 +#, c-format +msgid " Error: The compile date is truncated\n" +msgstr " Ошибка: обрезана дата компилÑции\n" + +#: vms-alpha.c:5805 #, c-format msgid " compile date : %.17s\n" msgstr " дата компилÑции : %.17s\n" -#: vms-alpha.c:5694 +#: vms-alpha.c:5810 #, c-format msgid "Language Processor Name\n" msgstr "Ðазвание процеÑÑорного Ñзыка\n" -#: vms-alpha.c:5695 +#: vms-alpha.c:5811 #, c-format msgid " language name: %.*s\n" msgstr " название Ñзыка : %.*s\n" -#: vms-alpha.c:5702 +#: vms-alpha.c:5815 #, c-format msgid "Source Files Header\n" msgstr "Заголовок иÑходных файлов\n" -#: vms-alpha.c:5703 +#: vms-alpha.c:5816 #, c-format msgid " file: %.*s\n" msgstr " файл: %.*s\n" -#: vms-alpha.c:5710 +#: vms-alpha.c:5820 #, c-format msgid "Title Text Header\n" msgstr "Заголовок Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ‚ÐµÐºÑта\n" -#: vms-alpha.c:5711 +#: vms-alpha.c:5821 #, c-format msgid " title: %.*s\n" msgstr " название : %.*s\n" -#: vms-alpha.c:5718 +#: vms-alpha.c:5825 #, c-format msgid "Copyright Header\n" msgstr "Заголовок авторÑкого права\n" -#: vms-alpha.c:5719 +#: vms-alpha.c:5826 #, c-format msgid " copyright: %.*s\n" msgstr " авторÑкое право: %.*s\n" -#: vms-alpha.c:5725 +#: vms-alpha.c:5830 #, c-format msgid "unhandled emh subtype %u\n" msgstr "необработанный подтип emh %u\n" -#: vms-alpha.c:5735 +#: vms-alpha.c:5840 #, c-format msgid " EEOM (len=%u):\n" msgstr " EEOM (len=%u):\n" -#: vms-alpha.c:5736 +#: vms-alpha.c:5845 +#, c-format +msgid " Error: The length is less than the length of an EEOM record\n" +msgstr " Ошибка: длина меньше длины запиÑи EEOM\n" + +#: vms-alpha.c:5849 #, c-format msgid " number of cond linkage pairs: %u\n" msgstr " кол-во уÑловно компонуемых пар: %u\n" -#: vms-alpha.c:5738 +#: vms-alpha.c:5851 #, c-format msgid " completion code: %u\n" msgstr " завершённый код: %u\n" -#: vms-alpha.c:5742 +#: vms-alpha.c:5855 #, c-format msgid " transfer addr flags: 0x%02x\n" msgstr " адреÑа передачи flags: 0x%02x\n" -#: vms-alpha.c:5743 +#: vms-alpha.c:5856 #, c-format msgid " transfer addr psect: %u\n" msgstr " Ð°Ð´Ñ€ÐµÑ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‡Ð¸ psect: %u\n" -#: vms-alpha.c:5745 +#: vms-alpha.c:5858 #, c-format msgid " transfer address : 0x%08x\n" msgstr " Ð°Ð´Ñ€ÐµÑ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‡Ð¸ : 0x%08x\n" -#: vms-alpha.c:5754 +#: vms-alpha.c:5867 msgid " WEAK" msgstr " WEAK" -#: vms-alpha.c:5756 +#: vms-alpha.c:5869 msgid " DEF" msgstr " DEF" -#: vms-alpha.c:5758 +#: vms-alpha.c:5871 msgid " UNI" msgstr " UNI" -#: vms-alpha.c:5760 vms-alpha.c:5781 +#: vms-alpha.c:5873 vms-alpha.c:5894 msgid " REL" msgstr " REL" -#: vms-alpha.c:5762 +#: vms-alpha.c:5875 msgid " COMM" msgstr " COMM" -#: vms-alpha.c:5764 +#: vms-alpha.c:5877 msgid " VECEP" msgstr " VECEP" -#: vms-alpha.c:5766 +#: vms-alpha.c:5879 msgid " NORM" msgstr " NORM" -#: vms-alpha.c:5768 +#: vms-alpha.c:5881 msgid " QVAL" msgstr " QVAL" -#: vms-alpha.c:5775 +#: vms-alpha.c:5888 msgid " PIC" msgstr " PIC" -#: vms-alpha.c:5777 +#: vms-alpha.c:5890 msgid " LIB" msgstr " LIB" -#: vms-alpha.c:5779 +#: vms-alpha.c:5892 msgid " OVR" msgstr " OVR" -#: vms-alpha.c:5783 +#: vms-alpha.c:5896 msgid " GBL" msgstr " GBL" -#: vms-alpha.c:5785 +#: vms-alpha.c:5898 msgid " SHR" msgstr " SHR" -#: vms-alpha.c:5787 +#: vms-alpha.c:5900 msgid " EXE" msgstr " EXE" -#: vms-alpha.c:5789 +#: vms-alpha.c:5902 msgid " RD" msgstr " RD" -#: vms-alpha.c:5791 +#: vms-alpha.c:5904 msgid " WRT" msgstr " WRT" -#: vms-alpha.c:5793 +#: vms-alpha.c:5906 msgid " VEC" msgstr " VEC" -#: vms-alpha.c:5795 +#: vms-alpha.c:5908 msgid " NOMOD" msgstr " NOMOD" -#: vms-alpha.c:5797 +#: vms-alpha.c:5910 msgid " COM" msgstr " COM" -#: vms-alpha.c:5799 +#: vms-alpha.c:5912 msgid " 64B" msgstr " 64B" -#: vms-alpha.c:5808 +#: vms-alpha.c:5921 #, c-format msgid " EGSD (len=%u):\n" msgstr " EGSD (len=%u):\n" -#: vms-alpha.c:5820 +#: vms-alpha.c:5934 #, c-format msgid " EGSD entry %2u (type: %u, len: %u): " msgstr " запиÑÑŒ EGSD %2u (тип: %u, длина: %u): " -#: vms-alpha.c:5832 +#: vms-alpha.c:5940 vms-alpha.c:6191 +#, c-format +msgid " Error: length larger than remaining space in record\n" +msgstr " Ошибка: длина больше оÑтавшегоÑÑ Ð¿Ñ€Ð¾ÑтранÑтва в запиÑи\n" + +#: vms-alpha.c:5952 #, c-format msgid "PSC - Program section definition\n" msgstr "PSC - определение программного раздела\n" -#: vms-alpha.c:5833 vms-alpha.c:5850 +#: vms-alpha.c:5953 vms-alpha.c:5970 #, c-format msgid " alignment : 2**%u\n" msgstr " выравнивание : 2**%u\n" -#: vms-alpha.c:5834 vms-alpha.c:5851 +#: vms-alpha.c:5954 vms-alpha.c:5971 #, c-format msgid " flags : 0x%04x" msgstr " флаги : 0x%04x" -#: vms-alpha.c:5838 +#: vms-alpha.c:5958 #, c-format msgid " alloc (len): %u (0x%08x)\n" msgstr " alloc (len): %u (0x%08x)\n" -#: vms-alpha.c:5839 vms-alpha.c:5896 vms-alpha.c:5945 +#: vms-alpha.c:5959 vms-alpha.c:6016 vms-alpha.c:6065 #, c-format msgid " name : %.*s\n" msgstr " Ð¸Ð¼Ñ : %.*s\n" -#: vms-alpha.c:5849 +#: vms-alpha.c:5969 #, c-format msgid "SPSC - Shared Image Program section def\n" msgstr "SPSC — определение программного раздела общего образа\n" -#: vms-alpha.c:5855 +#: vms-alpha.c:5975 #, c-format msgid " alloc (len) : %u (0x%08x)\n" msgstr " alloc (len) : %u (0x%08x)\n" -#: vms-alpha.c:5856 +#: vms-alpha.c:5976 #, c-format msgid " image offset : 0x%08x\n" msgstr " Ñмещение образа : 0x%08x\n" -#: vms-alpha.c:5858 +#: vms-alpha.c:5978 #, c-format msgid " symvec offset : 0x%08x\n" msgstr " Ñмещение symvec: 0x%08x\n" -#: vms-alpha.c:5860 +#: vms-alpha.c:5980 #, c-format msgid " name : %.*s\n" msgstr " Ð¸Ð¼Ñ : %.*s\n" -#: vms-alpha.c:5873 +#: vms-alpha.c:5993 #, c-format msgid "SYM - Global symbol definition\n" msgstr "SYM - определение глобальных Ñимволов\n" -#: vms-alpha.c:5874 vms-alpha.c:5934 vms-alpha.c:5955 vms-alpha.c:5974 +#: vms-alpha.c:5994 vms-alpha.c:6054 vms-alpha.c:6075 vms-alpha.c:6094 #, c-format msgid " flags: 0x%04x" msgstr " флаги: 0x%04x" -#: vms-alpha.c:5877 +#: vms-alpha.c:5997 #, c-format msgid " psect offset: 0x%08x\n" msgstr " Ñмещение psect: 0x%08x\n" -#: vms-alpha.c:5881 +#: vms-alpha.c:6001 #, c-format msgid " code address: 0x%08x\n" msgstr " Ð°Ð´Ñ€ÐµÑ ÐºÐ¾Ð´Ð°: 0x%08x\n" -#: vms-alpha.c:5883 +#: vms-alpha.c:6003 #, c-format msgid " psect index for entry point : %u\n" msgstr " Ð¸Ð½Ð´ÐµÐºÑ psect Ð´Ð»Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ входа: %u\n" -#: vms-alpha.c:5886 vms-alpha.c:5962 vms-alpha.c:5981 +#: vms-alpha.c:6006 vms-alpha.c:6082 vms-alpha.c:6101 #, c-format msgid " psect index : %u\n" msgstr " Ð¸Ð½Ð´ÐµÐºÑ psect: %u\n" -#: vms-alpha.c:5888 vms-alpha.c:5964 vms-alpha.c:5983 +#: vms-alpha.c:6008 vms-alpha.c:6084 vms-alpha.c:6103 #, c-format msgid " name : %.*s\n" msgstr " Ð¸Ð¼Ñ : %.*s\n" -#: vms-alpha.c:5895 +#: vms-alpha.c:6015 #, c-format msgid "SYM - Global symbol reference\n" msgstr "SYM - ÑÑылки глобальных Ñимволов\n" -#: vms-alpha.c:5907 +#: vms-alpha.c:6027 #, c-format msgid "IDC - Ident Consistency check\n" msgstr "IDC - проверка идентификатора целоÑтноÑти\n" -#: vms-alpha.c:5908 +#: vms-alpha.c:6028 #, c-format msgid " flags : 0x%08x" msgstr " флаги : 0x%08x" -#: vms-alpha.c:5912 +#: vms-alpha.c:6032 #, c-format msgid " id match : %x\n" msgstr " id ÑоответÑÑ‚Ð²Ð¸Ñ : %x\n" -#: vms-alpha.c:5914 +#: vms-alpha.c:6034 #, c-format msgid " error severity: %x\n" msgstr " ÑерьёзноÑÑ‚ÑŒ ошибки: %x\n" -#: vms-alpha.c:5917 +#: vms-alpha.c:6037 #, c-format msgid " entity name : %.*s\n" msgstr " название категории: %.*s\n" -#: vms-alpha.c:5919 +#: vms-alpha.c:6039 #, c-format msgid " object name : %.*s\n" msgstr " Ð¸Ð¼Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð°: %.*s\n" -#: vms-alpha.c:5922 +#: vms-alpha.c:6042 #, c-format msgid " binary ident : 0x%08x\n" msgstr " двоичный идентификатор: 0x%08x\n" -#: vms-alpha.c:5925 +#: vms-alpha.c:6045 #, c-format msgid " ascii ident : %.*s\n" msgstr " ascii-идентификатор: %.*s\n" -#: vms-alpha.c:5933 +#: vms-alpha.c:6053 #, c-format msgid "SYMG - Universal symbol definition\n" msgstr "SYMG - определение универÑальных Ñимволов\n" -#: vms-alpha.c:5937 +#: vms-alpha.c:6057 #, c-format msgid " symbol vector offset: 0x%08x\n" msgstr " Ñмещение Ñимвольного вектора: 0x%08x\n" -#: vms-alpha.c:5939 +#: vms-alpha.c:6059 #, c-format msgid " entry point: 0x%08x\n" msgstr " точка входа: 0x%08x\n" -#: vms-alpha.c:5941 +#: vms-alpha.c:6061 #, c-format msgid " proc descr : 0x%08x\n" msgstr " proc descr : 0x%08x\n" -#: vms-alpha.c:5943 +#: vms-alpha.c:6063 #, c-format msgid " psect index: %u\n" msgstr " Ð¸Ð½Ð´ÐµÐºÑ psect: %u\n" -#: vms-alpha.c:5954 +#: vms-alpha.c:6074 #, c-format msgid "SYMV - Vectored symbol definition\n" msgstr "SYMV - определение векторных Ñимволов\n" -#: vms-alpha.c:5958 +#: vms-alpha.c:6078 #, c-format msgid " vector : 0x%08x\n" msgstr " вектор : 0x%08x\n" -#: vms-alpha.c:5960 vms-alpha.c:5979 +#: vms-alpha.c:6080 vms-alpha.c:6099 #, c-format msgid " psect offset: %u\n" msgstr " Ñмещение psect: %u\n" -#: vms-alpha.c:5973 +#: vms-alpha.c:6093 #, c-format msgid "SYMM - Global symbol definition with version\n" msgstr "SYMM - определение глобальных Ñимволов Ñ Ð²ÐµÑ€Ñией\n" -#: vms-alpha.c:5977 +#: vms-alpha.c:6097 #, c-format msgid " version mask: 0x%08x\n" msgstr " маÑка верÑии: 0x%08x\n" -#: vms-alpha.c:5988 +#: vms-alpha.c:6108 #, c-format msgid "unhandled egsd entry type %u\n" msgstr "необработанный egsd-Ñлемент типа %u\n" -#: vms-alpha.c:6022 +#: vms-alpha.c:6143 #, c-format msgid " linkage index: %u, replacement insn: 0x%08x\n" msgstr " Ð¸Ð½Ð´ÐµÐºÑ ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²ÐºÐ¸: %u, заменитель insn: 0x%08x\n" -#: vms-alpha.c:6025 +#: vms-alpha.c:6147 #, c-format msgid " psect idx 1: %u, offset 1: 0x%08x %08x\n" msgstr " 1-й Ð¸Ð½Ð´ÐµÐºÑ psect: %u, 1-е Ñмещение: 0x%08x %08x\n" -#: vms-alpha.c:6029 +#: vms-alpha.c:6152 #, c-format msgid " psect idx 2: %u, offset 2: 0x%08x %08x\n" msgstr " 2-й Ð¸Ð½Ð´ÐµÐºÑ psect: %u, 2-е Ñмещение: 0x%08x %08x\n" -#: vms-alpha.c:6034 +#: vms-alpha.c:6158 #, c-format msgid " psect idx 3: %u, offset 3: 0x%08x %08x\n" msgstr " 3-й Ð¸Ð½Ð´ÐµÐºÑ psect: %u, 3-е Ñмещение: 0x%08x %08x\n" -#: vms-alpha.c:6039 +#: vms-alpha.c:6163 #, c-format msgid " global name: %.*s\n" msgstr " глобальное имÑ: %.*s\n" -#: vms-alpha.c:6049 +#: vms-alpha.c:6174 #, c-format msgid " %s (len=%u+%u):\n" msgstr " %s (len=%u+%u):\n" -#: vms-alpha.c:6064 +#: vms-alpha.c:6196 #, c-format msgid " (type: %3u, size: 4+%3u): " msgstr " (тип: %3u, размер: 4+%3u): " -#: vms-alpha.c:6068 +#: vms-alpha.c:6200 #, c-format msgid "STA_GBL (stack global) %.*s\n" msgstr "STA_GBL (глобальный Ñтек) %.*s\n" -#: vms-alpha.c:6072 +#: vms-alpha.c:6204 #, c-format msgid "STA_LW (stack longword) 0x%08x\n" msgstr "STA_LW (Ñтек длинных Ñлов) 0x%08x\n" -#: vms-alpha.c:6076 +#: vms-alpha.c:6208 #, c-format msgid "STA_QW (stack quadword) 0x%08x %08x\n" msgstr "STA_QW (Ñтек четверных Ñлов) 0x%08x %08x\n" -#: vms-alpha.c:6081 +#: vms-alpha.c:6213 #, c-format msgid "STA_PQ (stack psect base + offset)\n" msgstr "STA_PQ (Ñтек psect база + Ñмещение)\n" -#: vms-alpha.c:6082 +#: vms-alpha.c:6215 #, c-format msgid " psect: %u, offset: 0x%08x %08x\n" msgstr " psect: %u, Ñмещение: 0x%08x %08x\n" -#: vms-alpha.c:6088 +#: vms-alpha.c:6221 #, c-format msgid "STA_LI (stack literal)\n" msgstr "STA_LI (Ñтек литерала)\n" -#: vms-alpha.c:6091 +#: vms-alpha.c:6224 #, c-format msgid "STA_MOD (stack module)\n" msgstr "STA_MOD (Ñтек модулей)\n" -#: vms-alpha.c:6094 +#: vms-alpha.c:6227 #, c-format msgid "STA_CKARG (compare procedure argument)\n" msgstr "STA_CKARG (аргумент процедуры ÑравнениÑ)\n" -#: vms-alpha.c:6098 +#: vms-alpha.c:6231 #, c-format msgid "STO_B (store byte)\n" msgstr "STO_B (хранимый байт)\n" -#: vms-alpha.c:6101 +#: vms-alpha.c:6234 #, c-format msgid "STO_W (store word)\n" msgstr "STO_W (хранимое Ñлово)\n" -#: vms-alpha.c:6104 +#: vms-alpha.c:6237 #, c-format msgid "STO_LW (store longword)\n" msgstr "STO_LW (хранимое длинное Ñлово)\n" -#: vms-alpha.c:6107 +#: vms-alpha.c:6240 #, c-format msgid "STO_QW (store quadword)\n" msgstr "STO_QW (хранимое учетверённое Ñлово)\n" -#: vms-alpha.c:6113 +#: vms-alpha.c:6246 #, c-format msgid "STO_IMMR (store immediate repeat) %u bytes\n" msgstr "STO_IMMR (хранимый непоÑредÑтвенный повтор) %u байт\n" -#: vms-alpha.c:6120 +#: vms-alpha.c:6253 #, c-format msgid "STO_GBL (store global) %.*s\n" msgstr "STO_GBL (Ñ…Ñ€Ð°Ð½Ð¸Ð¼Ð°Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð°Ñ) %.*s\n" -#: vms-alpha.c:6124 +#: vms-alpha.c:6257 #, c-format msgid "STO_CA (store code address) %.*s\n" msgstr "STO_CA (хранимый Ð°Ð´Ñ€ÐµÑ ÐºÐ¾Ð´Ð°) %.*s\n" -#: vms-alpha.c:6128 +#: vms-alpha.c:6261 #, c-format msgid "STO_RB (store relative branch)\n" msgstr "STO_RB (хранимое отноÑительное ветвление)\n" -#: vms-alpha.c:6131 +#: vms-alpha.c:6264 #, c-format msgid "STO_AB (store absolute branch)\n" msgstr "STO_AB (хранимое абÑолютное ветвление)\n" -#: vms-alpha.c:6134 +#: vms-alpha.c:6267 #, c-format msgid "STO_OFF (store offset to psect)\n" msgstr "STO_OFF (хранимое Ñмещение на psect)\n" -#: vms-alpha.c:6140 +#: vms-alpha.c:6273 #, c-format msgid "STO_IMM (store immediate) %u bytes\n" msgstr "STO_IMM (Ñ…Ñ€Ð°Ð½Ð¸Ð¼Ð°Ñ Ð½ÐµÐ¿Ð¾ÑредÑтвенно) %u байт\n" -#: vms-alpha.c:6147 +#: vms-alpha.c:6280 #, c-format msgid "STO_GBL_LW (store global longword) %.*s\n" msgstr "STO_GBL_LW (хранимое глобальное длинное Ñлово) %.*s\n" -#: vms-alpha.c:6151 +#: vms-alpha.c:6284 #, c-format msgid "STO_OFF (store LP with procedure signature)\n" msgstr "STO_OFF (хранимый LP Ñ Ñигнатурой процедуры)\n" -#: vms-alpha.c:6154 +#: vms-alpha.c:6287 #, c-format msgid "STO_BR_GBL (store branch global) *todo*\n" msgstr "STO_BR_GBL (хранимое глобальное ветвление) *todo*\n" -#: vms-alpha.c:6157 +#: vms-alpha.c:6290 #, c-format msgid "STO_BR_PS (store branch psect + offset) *todo*\n" msgstr "STO_BR_PS (хранимое ветвление psect + Ñмещение) *todo*\n" -#: vms-alpha.c:6161 +#: vms-alpha.c:6294 #, c-format msgid "OPR_NOP (no-operation)\n" msgstr "OPR_NOP (нет операции)\n" -#: vms-alpha.c:6164 +#: vms-alpha.c:6297 #, c-format msgid "OPR_ADD (add)\n" msgstr "OPR_ADD (Ñложение)\n" -#: vms-alpha.c:6167 +#: vms-alpha.c:6300 #, c-format -msgid "OPR_SUB (substract)\n" +msgid "OPR_SUB (subtract)\n" msgstr "OPR_SUB (вычитание)\n" -#: vms-alpha.c:6170 +#: vms-alpha.c:6303 #, c-format msgid "OPR_MUL (multiply)\n" msgstr "OPR_MUL (умножение)\n" -#: vms-alpha.c:6173 +#: vms-alpha.c:6306 #, c-format msgid "OPR_DIV (divide)\n" msgstr "OPR_DIV (деление)\n" -#: vms-alpha.c:6176 +#: vms-alpha.c:6309 #, c-format msgid "OPR_AND (logical and)\n" msgstr "OPR_AND (логичеÑкое и)\n" -#: vms-alpha.c:6179 +#: vms-alpha.c:6312 #, c-format msgid "OPR_IOR (logical inclusive or)\n" msgstr "OPR_IOR (логичеÑкое включающее или)\n" -#: vms-alpha.c:6182 +#: vms-alpha.c:6315 #, c-format msgid "OPR_EOR (logical exclusive or)\n" msgstr "OPR_EOR (логичеÑкое не включающее или)\n" -#: vms-alpha.c:6185 +#: vms-alpha.c:6318 #, c-format msgid "OPR_NEG (negate)\n" msgstr "OPR_NEG (инверÑиÑ)\n" -#: vms-alpha.c:6188 +#: vms-alpha.c:6321 #, c-format msgid "OPR_COM (complement)\n" msgstr "OPR_COM (дополнение)\n" -#: vms-alpha.c:6191 +#: vms-alpha.c:6324 #, c-format msgid "OPR_INSV (insert field)\n" msgstr "OPR_INSV (поле вÑтавки)\n" -#: vms-alpha.c:6194 +#: vms-alpha.c:6327 #, c-format msgid "OPR_ASH (arithmetic shift)\n" msgstr "OPR_ASH (арифметичеÑкий Ñдвиг)\n" -#: vms-alpha.c:6197 +#: vms-alpha.c:6330 #, c-format msgid "OPR_USH (unsigned shift)\n" msgstr "OPR_USH (беззнаковый Ñдвиг)\n" -#: vms-alpha.c:6200 +#: vms-alpha.c:6333 #, c-format msgid "OPR_ROT (rotate)\n" msgstr "OPR_ROT (цикличеÑкий Ñдвиг)\n" -#: vms-alpha.c:6203 +#: vms-alpha.c:6336 #, c-format msgid "OPR_SEL (select)\n" msgstr "OPR_SEL (выбор)\n" -#: vms-alpha.c:6206 +#: vms-alpha.c:6339 #, c-format msgid "OPR_REDEF (redefine symbol to curr location)\n" msgstr "OPR_REDEF (переопределение Ñимвола в текущей позиции)\n" -#: vms-alpha.c:6209 +#: vms-alpha.c:6342 #, c-format msgid "OPR_REDEF (define a literal)\n" msgstr "OPR_REDEF (определение литерала)\n" -#: vms-alpha.c:6213 +#: vms-alpha.c:6346 #, c-format msgid "STC_LP (store cond linkage pair)\n" msgstr "STC_LP (Ñ…Ñ€Ð°Ð½Ð¸Ð¼Ð°Ñ ÑƒÑловно ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐµÐ¼Ð°Ñ Ð¿Ð°Ñ€Ð°)\n" -#: vms-alpha.c:6217 +#: vms-alpha.c:6350 #, c-format msgid "STC_LP_PSB (store cond linkage pair + signature)\n" msgstr "STC_LP_PSB (Ñ…Ñ€Ð°Ð½Ð¸Ð¼Ð°Ñ ÑƒÑловно ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐµÐ¼Ð°Ñ Ð¿Ð°Ñ€Ð° + Ñигнатура)\n" -#: vms-alpha.c:6218 +#: vms-alpha.c:6352 #, c-format msgid " linkage index: %u, procedure: %.*s\n" msgstr " Ð¸Ð½Ð´ÐµÐºÑ ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²ÐºÐ¸: %u, процедура: %.*s\n" -#: vms-alpha.c:6221 +#: vms-alpha.c:6355 #, c-format msgid " signature: %.*s\n" msgstr " Ñигнатура: %.*s\n" -#: vms-alpha.c:6224 +#: vms-alpha.c:6358 #, c-format msgid "STC_GBL (store cond global)\n" msgstr "STC_GBL (Ñ…Ñ€Ð°Ð½Ð¸Ð¼Ð°Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð¾Ðµ уÑловие)\n" -#: vms-alpha.c:6225 +#: vms-alpha.c:6360 #, c-format msgid " linkage index: %u, global: %.*s\n" msgstr " Ð¸Ð½Ð´ÐµÐºÑ ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²ÐºÐ¸: %u, глобальный: %.*s\n" -#: vms-alpha.c:6229 +#: vms-alpha.c:6364 #, c-format msgid "STC_GCA (store cond code address)\n" msgstr "STC_GCA (хранимый Ð°Ð´Ñ€ÐµÑ ÑƒÑловного кода)\n" -#: vms-alpha.c:6230 +#: vms-alpha.c:6366 #, c-format msgid " linkage index: %u, procedure name: %.*s\n" msgstr " Ð¸Ð½Ð´ÐµÐºÑ ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²ÐºÐ¸: %u, Ð¸Ð¼Ñ Ð¿Ñ€Ð¾Ñ†ÐµÐ´ÑƒÑ€Ñ‹: %.*s\n" -#: vms-alpha.c:6234 +#: vms-alpha.c:6370 #, c-format msgid "STC_PS (store cond psect + offset)\n" msgstr "STC_PS (хранимое уÑловие psect + Ñмещение)\n" -#: vms-alpha.c:6236 +#: vms-alpha.c:6373 #, c-format msgid " linkage index: %u, psect: %u, offset: 0x%08x %08x\n" msgstr " Ð¸Ð½Ð´ÐµÐºÑ ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²ÐºÐ¸: %u, psect: %u, Ñмещение: 0x%08x %08x\n" -#: vms-alpha.c:6243 +#: vms-alpha.c:6380 #, c-format msgid "STC_NOP_GBL (store cond NOP at global addr)\n" msgstr "STC_NOP_GBL (хранимое уÑловие NOP по глобальному адреÑу)\n" -#: vms-alpha.c:6247 +#: vms-alpha.c:6384 #, c-format msgid "STC_NOP_PS (store cond NOP at psect + offset)\n" msgstr "STC_NOP_PS (хранимое уÑловие NOP по psect + Ñмещение)\n" -#: vms-alpha.c:6251 +#: vms-alpha.c:6388 #, c-format msgid "STC_BSR_GBL (store cond BSR at global addr)\n" msgstr "STC_BSR_GBL (хранимое уÑловие BSR по глобальному адреÑу)\n" -#: vms-alpha.c:6255 +#: vms-alpha.c:6392 #, c-format msgid "STC_BSR_PS (store cond BSR at psect + offset)\n" msgstr "STC_BSR_PS (хранимое уÑловие BSR по psect + Ñмещение)\n" -#: vms-alpha.c:6259 +#: vms-alpha.c:6396 #, c-format msgid "STC_LDA_GBL (store cond LDA at global addr)\n" msgstr "STC_LDA_GBL (хранимое уÑловие LDA по глобальному адреÑу)\n" -#: vms-alpha.c:6263 +#: vms-alpha.c:6400 #, c-format msgid "STC_LDA_PS (store cond LDA at psect + offset)\n" msgstr "STC_LDA_PS (хранимое уÑловие LDA по psect + Ñмещение)\n" -#: vms-alpha.c:6267 +#: vms-alpha.c:6404 #, c-format msgid "STC_BOH_GBL (store cond BOH at global addr)\n" msgstr "STC_BOH_GBL (хранимое уÑловие BOH по глобальному адреÑу)\n" -#: vms-alpha.c:6271 +#: vms-alpha.c:6408 #, c-format msgid "STC_BOH_PS (store cond BOH at psect + offset)\n" msgstr "STC_BOH_PS (хранимое уÑловие BOH по psect + Ñмещение)\n" -#: vms-alpha.c:6276 +#: vms-alpha.c:6413 #, c-format msgid "STC_NBH_GBL (store cond or hint at global addr)\n" msgstr "STC_NBH_GBL (хранимое уÑловие или указание по глобальному адреÑу)\n" -#: vms-alpha.c:6280 +#: vms-alpha.c:6417 #, c-format msgid "STC_NBH_PS (store cond or hint at psect + offset)\n" msgstr "STC_NBH_PS (хранимое уÑловие или указание по psect + Ñмещение)\n" -#: vms-alpha.c:6284 +#: vms-alpha.c:6421 #, c-format msgid "CTL_SETRB (set relocation base)\n" msgstr "CTL_SETRB (уÑтановка базы перемещениÑ)\n" -#: vms-alpha.c:6290 +#: vms-alpha.c:6427 #, c-format msgid "CTL_AUGRB (augment relocation base) %u\n" msgstr "CTL_AUGRB (дополнение базы перемещениÑ) %u\n" -#: vms-alpha.c:6294 +#: vms-alpha.c:6431 #, c-format msgid "CTL_DFLOC (define location)\n" msgstr "CTL_DFLOC (определение положениÑ)\n" -#: vms-alpha.c:6297 +#: vms-alpha.c:6434 #, c-format msgid "CTL_STLOC (set location)\n" msgstr "CTL_STLOC (задание положениÑ)\n" -#: vms-alpha.c:6300 +#: vms-alpha.c:6437 #, c-format msgid "CTL_STKDL (stack defined location)\n" msgstr "CTL_STKDL (положение определÑемое Ñтеком)\n" -#: vms-alpha.c:6303 vms-alpha.c:6717 +#: vms-alpha.c:6440 vms-alpha.c:6864 vms-alpha.c:6990 #, c-format msgid "*unhandled*\n" msgstr "*не обработано*\n" -#: vms-alpha.c:6333 vms-alpha.c:6372 +#: vms-alpha.c:6470 vms-alpha.c:6509 #, c-format msgid "cannot read GST record length\n" msgstr "не удалоÑÑŒ прочитать длину запиÑи GST\n" #. Ill-formed. -#: vms-alpha.c:6354 +#: vms-alpha.c:6491 #, c-format msgid "cannot find EMH in first GST record\n" msgstr "не удалоÑÑŒ найти EMH в первой запиÑи GST\n" -#: vms-alpha.c:6380 +#: vms-alpha.c:6517 #, c-format msgid "cannot read GST record header\n" msgstr "не удалоÑÑŒ прочитать заголовок запиÑи GST\n" -#: vms-alpha.c:6393 +#: vms-alpha.c:6530 #, c-format msgid " corrupted GST\n" msgstr " повреждённый GST\n" -#: vms-alpha.c:6401 +#: vms-alpha.c:6538 #, c-format msgid "cannot read GST record\n" msgstr "не удалоÑÑŒ прочитать запиÑÑŒ GST\n" -#: vms-alpha.c:6430 +#: vms-alpha.c:6567 #, c-format msgid " unhandled EOBJ record type %u\n" msgstr " необработанный тип запиÑи EOBJ %u\n" -#: vms-alpha.c:6453 +#: vms-alpha.c:6591 #, c-format msgid " bitcount: %u, base addr: 0x%08x\n" msgstr " Ñчётчик бит: %u, базовый адреÑ: 0x%08x\n" -#: vms-alpha.c:6466 +#: vms-alpha.c:6605 #, c-format msgid " bitmap: 0x%08x (count: %u):\n" msgstr " bitmap: 0x%08x (Ñчётчик: %u):\n" -#: vms-alpha.c:6473 +#: vms-alpha.c:6612 #, c-format msgid " %08x" msgstr " %08x" -#: vms-alpha.c:6498 +#: vms-alpha.c:6638 #, c-format msgid " image %u (%u entries)\n" msgstr " образ %u (%u Ñлементов)\n" -#: vms-alpha.c:6503 +#: vms-alpha.c:6644 #, c-format msgid " offset: 0x%08x, val: 0x%08x\n" msgstr " Ñмещение: 0x%08x, значение: 0x%08x\n" -#: vms-alpha.c:6524 +#: vms-alpha.c:6666 #, c-format msgid " image %u (%u entries), offsets:\n" msgstr " образ %u (%u Ñлементов), ÑмещениÑ:\n" -#: vms-alpha.c:6531 +#: vms-alpha.c:6673 #, c-format msgid " 0x%08x" msgstr " 0x%08x" #. 64 bits. -#: vms-alpha.c:6653 +#: vms-alpha.c:6795 #, c-format msgid "64 bits *unhandled*\n" msgstr "64 бита *не обработано*\n" -#: vms-alpha.c:6657 +#: vms-alpha.c:6800 #, c-format msgid "class: %u, dtype: %u, length: %u, pointer: 0x%08x\n" msgstr "клаÑÑ: %u, dtype: %u, длина: %u, указатель: 0x%08x\n" -#: vms-alpha.c:6668 +#: vms-alpha.c:6811 #, c-format msgid "non-contiguous array of %s\n" msgstr "неÑвÑзный маÑÑив %s\n" -#: vms-alpha.c:6672 +#: vms-alpha.c:6816 #, c-format msgid "dimct: %u, aflags: 0x%02x, digits: %u, scale: %u\n" msgstr "dimct: %u, aflags: 0x%02x, цифр: %u, шкала: %u\n" -#: vms-alpha.c:6676 +#: vms-alpha.c:6821 #, c-format msgid "arsize: %u, a0: 0x%08x\n" msgstr "arsize: %u, a0: 0x%08x\n" -#: vms-alpha.c:6680 +#: vms-alpha.c:6825 #, c-format msgid "Strides:\n" msgstr "Шаги:\n" -#: vms-alpha.c:6685 -#, c-format -msgid "[%u]: %u\n" -msgstr "[%u]: %u\n" - -#: vms-alpha.c:6690 +#: vms-alpha.c:6835 #, c-format msgid "Bounds:\n" msgstr "Границы:\n" -#: vms-alpha.c:6695 +#: vms-alpha.c:6841 #, c-format msgid "[%u]: Lower: %u, upper: %u\n" msgstr "[%u]: нижнÑÑ: %u, верхнÑÑ: %u\n" -#: vms-alpha.c:6707 +#: vms-alpha.c:6853 #, c-format msgid "unaligned bit-string of %s\n" msgstr "Ð½ÐµÐ²Ñ‹Ñ€Ð¾Ð²Ð½ÐµÐ½Ð½Ð°Ñ Ñтрока бит %s\n" -#: vms-alpha.c:6711 +#: vms-alpha.c:6858 #, c-format msgid "base: %u, pos: %u\n" msgstr "база: %u, позициÑ: %u\n" -#: vms-alpha.c:6731 +#: vms-alpha.c:6879 #, c-format msgid "vflags: 0x%02x, value: 0x%08x " msgstr "vflags: 0x%02x, значение: 0x%08x " -#: vms-alpha.c:6737 +#: vms-alpha.c:6885 #, c-format msgid "(no value)\n" msgstr "(нет значениÑ)\n" -#: vms-alpha.c:6740 +#: vms-alpha.c:6888 #, c-format msgid "(not active)\n" msgstr "(не активно)\n" -#: vms-alpha.c:6743 +#: vms-alpha.c:6891 #, c-format msgid "(not allocated)\n" msgstr "(не выделено)\n" -#: vms-alpha.c:6746 +#: vms-alpha.c:6894 #, c-format msgid "(descriptor)\n" msgstr "(деÑкриптор)\n" -#: vms-alpha.c:6750 +#: vms-alpha.c:6898 #, c-format msgid "(trailing value)\n" msgstr "(конечное значение)\n" -#: vms-alpha.c:6753 +#: vms-alpha.c:6901 #, c-format msgid "(value spec follows)\n" msgstr "(далее значение Ñпецификации)\n" -#: vms-alpha.c:6756 +#: vms-alpha.c:6904 #, c-format msgid "(at bit offset %u)\n" msgstr "(по битовому Ñмещению %u)\n" -#: vms-alpha.c:6759 +#: vms-alpha.c:6908 #, c-format msgid "(reg: %u, disp: %u, indir: %u, kind: " msgstr "(reg: %u, disp: %u, indir: %u, kind: " -#: vms-alpha.c:6766 +#: vms-alpha.c:6915 msgid "literal" msgstr "литерал" -#: vms-alpha.c:6769 +#: vms-alpha.c:6918 msgid "address" msgstr "адреÑ" -#: vms-alpha.c:6772 -msgid "desc" -msgstr "деÑк" +#: vms-alpha.c:6921 +msgid "desc" +msgstr "опиÑ" + +#: vms-alpha.c:6924 +msgid "reg" +msgstr "рег" + +#: vms-alpha.c:6941 +#, c-format +msgid "len: %2u, kind: %2u " +msgstr "len: %2u, kind: %2u " + +#: vms-alpha.c:6947 +#, c-format +msgid "atomic, type=0x%02x %s\n" +msgstr "атомарно, тип=0x%02x %s\n" + +#: vms-alpha.c:6951 +#, c-format +msgid "indirect, defined at 0x%08x\n" +msgstr "коÑвенно, определено по адреÑу 0x%08x\n" + +#: vms-alpha.c:6955 +#, c-format +msgid "typed pointer\n" +msgstr "типизированный указатель\n" + +#: vms-alpha.c:6959 +#, c-format +msgid "pointer\n" +msgstr "указатель\n" + +#: vms-alpha.c:6967 +#, c-format +msgid "array, dim: %u, bitmap: " +msgstr "маÑÑив, размер: %u, bitmap: " + +#: vms-alpha.c:6974 +#, c-format +msgid "array descriptor:\n" +msgstr "опиÑатель маÑÑива:\n" + +#: vms-alpha.c:6981 +#, c-format +msgid "type spec for element:\n" +msgstr "ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ñ‚Ð¸Ð¿Ð° Ð´Ð»Ñ Ñлемента:\n" -#: vms-alpha.c:6775 -msgid "reg" -msgstr "рег" +#: vms-alpha.c:6983 +#, c-format +msgid "type spec for subscript %u:\n" +msgstr "ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ñ‚Ð¸Ð¿Ð° Ð´Ð»Ñ subscript %u:\n" -#: vms-alpha.c:6850 +#: vms-alpha.c:7001 #, c-format msgid "Debug symbol table:\n" msgstr "Таблица Ñимволов отладки:\n" -#: vms-alpha.c:6861 +#: vms-alpha.c:7012 #, c-format msgid "cannot read DST header\n" msgstr "не удалоÑÑŒ прочитать заголовок DST\n" -#: vms-alpha.c:6866 +#: vms-alpha.c:7018 #, c-format msgid " type: %3u, len: %3u (at 0x%08x): " msgstr " тип: %3u, длина: %3u (по 0x%08x): " -#: vms-alpha.c:6880 +#: vms-alpha.c:7032 #, c-format msgid "cannot read DST symbol\n" msgstr "не удалоÑÑŒ прочитать Ñимвол DST\n" -#: vms-alpha.c:6923 +#: vms-alpha.c:7075 #, c-format msgid "standard data: %s\n" msgstr "Ñтандартные данные: %s\n" -#: vms-alpha.c:6926 vms-alpha.c:7010 +#: vms-alpha.c:7078 vms-alpha.c:7166 #, c-format msgid " name: %.*s\n" msgstr " имÑ: %.*s\n" -#: vms-alpha.c:6933 +#: vms-alpha.c:7085 #, c-format msgid "modbeg\n" msgstr "modbeg\n" -#: vms-alpha.c:6934 +#: vms-alpha.c:7087 #, c-format msgid " flags: %d, language: %u, major: %u, minor: %u\n" msgstr " флаги: %d, Ñзык: %u, Ñтарший: %u, младший: %u\n" -#: vms-alpha.c:6940 vms-alpha.c:7206 +#: vms-alpha.c:7093 vms-alpha.c:7367 #, c-format msgid " module name: %.*s\n" msgstr " Ð¸Ð¼Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ: %.*s\n" -#: vms-alpha.c:6943 +#: vms-alpha.c:7096 #, c-format msgid " compiler : %.*s\n" msgstr " компилÑтор : %.*s\n" -#: vms-alpha.c:6948 +#: vms-alpha.c:7101 #, c-format msgid "modend\n" msgstr "modend\n" -#: vms-alpha.c:6955 +#: vms-alpha.c:7108 msgid "rtnbeg\n" msgstr "rtnbeg\n" -#: vms-alpha.c:6956 +#: vms-alpha.c:7110 #, c-format msgid " flags: %u, address: 0x%08x, pd-address: 0x%08x\n" msgstr " флаги: %u, адреÑ: 0x%08x, pd-адреÑ: 0x%08x\n" -#: vms-alpha.c:6961 +#: vms-alpha.c:7115 #, c-format msgid " routine name: %.*s\n" msgstr " Ð¸Ð¼Ñ Ð¿Ñ€Ð¾Ñ†ÐµÐ´ÑƒÑ€Ñ‹: %.*s\n" -#: vms-alpha.c:6969 +#: vms-alpha.c:7123 #, c-format msgid "rtnend: size 0x%08x\n" msgstr "rtnend: размер 0x%08x\n" -#: vms-alpha.c:6977 +#: vms-alpha.c:7131 #, c-format msgid "prolog: bkpt address 0x%08x\n" msgstr "пролог: Ð°Ð´Ñ€ÐµÑ bkpt 0x%08x\n" -#: vms-alpha.c:6985 +#: vms-alpha.c:7140 #, c-format msgid "epilog: flags: %u, count: %u\n" msgstr "Ñпилог: флаги: %u, Ñчётчик: %u\n" -#: vms-alpha.c:6994 +#: vms-alpha.c:7150 #, c-format msgid "blkbeg: address: 0x%08x, name: %.*s\n" msgstr "blkbeg: адреÑ: 0x%08x, имÑ: %.*s\n" -#: vms-alpha.c:7003 +#: vms-alpha.c:7159 #, c-format msgid "blkend: size: 0x%08x\n" msgstr "blkend: размер: 0x%08x\n" -#: vms-alpha.c:7009 +#: vms-alpha.c:7165 #, c-format msgid "typspec (len: %u)\n" msgstr "typspec (длина: %u)\n" -#: vms-alpha.c:7016 +#: vms-alpha.c:7172 #, c-format msgid "septyp, name: %.*s\n" msgstr "septyp, имÑ: %.*s\n" -#: vms-alpha.c:7025 +#: vms-alpha.c:7181 #, c-format msgid "recbeg: name: %.*s\n" msgstr "recbeg: имÑ: %.*s\n" -#: vms-alpha.c:7032 +#: vms-alpha.c:7183 +#, c-format +msgid " len: %u bits\n" +msgstr " длина: %u бит\n" + +#: vms-alpha.c:7188 #, c-format msgid "recend\n" msgstr "recend\n" -#: vms-alpha.c:7035 +#: vms-alpha.c:7192 #, c-format msgid "enumbeg, len: %u, name: %.*s\n" msgstr "enumbeg, длина: %u, имÑ: %.*s\n" -#: vms-alpha.c:7039 +#: vms-alpha.c:7196 #, c-format msgid "enumelt, name: %.*s\n" msgstr "enumelt, имÑ: %.*s\n" -#: vms-alpha.c:7043 +#: vms-alpha.c:7200 #, c-format msgid "enumend\n" msgstr "enumend\n" -#: vms-alpha.c:7060 +#: vms-alpha.c:7205 +#, c-format +msgid "label, name: %.*s\n" +msgstr "метка, имÑ: %.*s\n" + +#: vms-alpha.c:7207 +#, c-format +msgid " address: 0x%08x\n" +msgstr " адреÑ: 0x%08x\n" + +#: vms-alpha.c:7217 #, c-format msgid "discontiguous range (nbr: %u)\n" msgstr "неÑмежный диапазон (nbr: %u)\n" -#: vms-alpha.c:7062 +#: vms-alpha.c:7220 #, c-format msgid " address: 0x%08x, size: %u\n" msgstr " адреÑ: 0x%08x, размер: %u\n" -#: vms-alpha.c:7072 +#: vms-alpha.c:7230 #, c-format msgid "line num (len: %u)\n" msgstr "номер Ñтроки (длина: %u)\n" -#: vms-alpha.c:7089 +#: vms-alpha.c:7247 #, c-format msgid "delta_pc_w %u\n" msgstr "delta_pc_w %u\n" -#: vms-alpha.c:7096 +#: vms-alpha.c:7254 #, c-format msgid "incr_linum(b): +%u\n" msgstr "incr_linum(b): +%u\n" -#: vms-alpha.c:7102 +#: vms-alpha.c:7260 #, c-format msgid "incr_linum_w: +%u\n" msgstr "incr_linum_w: +%u\n" -#: vms-alpha.c:7108 +#: vms-alpha.c:7266 #, c-format msgid "incr_linum_l: +%u\n" msgstr "incr_linum_l: +%u\n" -#: vms-alpha.c:7114 +#: vms-alpha.c:7272 #, c-format msgid "set_line_num(w) %u\n" msgstr "set_line_num(w) %u\n" -#: vms-alpha.c:7119 +#: vms-alpha.c:7277 #, c-format msgid "set_line_num_b %u\n" msgstr "set_line_num_b %u\n" -#: vms-alpha.c:7124 +#: vms-alpha.c:7282 #, c-format msgid "set_line_num_l %u\n" msgstr "set_line_num_l %u\n" -#: vms-alpha.c:7129 +#: vms-alpha.c:7287 #, c-format msgid "set_abs_pc: 0x%08x\n" msgstr "set_abs_pc: 0x%08x\n" -#: vms-alpha.c:7133 +#: vms-alpha.c:7291 #, c-format msgid "delta_pc_l: +0x%08x\n" msgstr "delta_pc_l: +0x%08x\n" -#: vms-alpha.c:7138 +#: vms-alpha.c:7296 #, c-format msgid "term(b): 0x%02x" msgstr "term(b): 0x%02x" -#: vms-alpha.c:7140 +#: vms-alpha.c:7298 #, c-format msgid " pc: 0x%08x\n" msgstr " pc: 0x%08x\n" -#: vms-alpha.c:7145 +#: vms-alpha.c:7303 #, c-format msgid "term_w: 0x%04x" msgstr "term_w: 0x%04x" -#: vms-alpha.c:7147 +#: vms-alpha.c:7305 #, c-format msgid " pc: 0x%08x\n" msgstr " pc: 0x%08x\n" -#: vms-alpha.c:7153 +#: vms-alpha.c:7311 #, c-format msgid "delta pc +%-4d" msgstr "delta pc +%-4d" -#: vms-alpha.c:7156 +#: vms-alpha.c:7315 #, c-format msgid " pc: 0x%08x line: %5u\n" msgstr " pc: 0x%08x Ñтрока: %5u\n" -#: vms-alpha.c:7161 +#: vms-alpha.c:7320 #, c-format msgid " *unhandled* cmd %u\n" msgstr " *необработаннаÑ* команда %u\n" -#: vms-alpha.c:7176 +#: vms-alpha.c:7335 #, c-format msgid "source (len: %u)\n" msgstr "иÑточник (длина: %u)\n" -#: vms-alpha.c:7190 +#: vms-alpha.c:7350 #, c-format msgid " declfile: len: %u, flags: %u, fileid: %u\n" msgstr " declfile: длина: %u, флаги: %u, fileid: %u\n" -#: vms-alpha.c:7194 +#: vms-alpha.c:7355 #, c-format msgid " rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n" msgstr " rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n" -#: vms-alpha.c:7203 +#: vms-alpha.c:7364 #, c-format msgid " filename : %.*s\n" msgstr " Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° : %.*s\n" -#: vms-alpha.c:7212 +#: vms-alpha.c:7373 #, c-format msgid " setfile %u\n" msgstr " setfile %u\n" -#: vms-alpha.c:7217 vms-alpha.c:7222 +#: vms-alpha.c:7378 vms-alpha.c:7383 #, c-format msgid " setrec %u\n" msgstr " setrec %u\n" -#: vms-alpha.c:7227 vms-alpha.c:7232 +#: vms-alpha.c:7388 vms-alpha.c:7393 #, c-format msgid " setlnum %u\n" msgstr " setlnum %u\n" -#: vms-alpha.c:7237 vms-alpha.c:7242 +#: vms-alpha.c:7398 vms-alpha.c:7403 #, c-format msgid " deflines %u\n" msgstr " deflines %u\n" -#: vms-alpha.c:7246 +#: vms-alpha.c:7407 #, c-format msgid " formfeed\n" msgstr " formfeed\n" -#: vms-alpha.c:7250 +#: vms-alpha.c:7411 #, c-format msgid " *unhandled* cmd %u\n" msgstr " *необработаннаÑ* команда %u\n" -#: vms-alpha.c:7262 +#: vms-alpha.c:7423 #, c-format msgid "*unhandled* dst type %u\n" msgstr "*необработанный* тип Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ %u\n" -#: vms-alpha.c:7294 +#: vms-alpha.c:7455 #, c-format msgid "cannot read EIHD\n" msgstr "не удалоÑÑŒ прочитать EIHD\n" -#: vms-alpha.c:7297 +#: vms-alpha.c:7459 #, c-format msgid "EIHD: (size: %u, nbr blocks: %u)\n" msgstr "EIHD: (размер: %u, nbr блоков: %u)\n" -#: vms-alpha.c:7300 +#: vms-alpha.c:7463 #, c-format msgid " majorid: %u, minorid: %u\n" msgstr " majorid: %u, minorid: %u\n" -#: vms-alpha.c:7308 +#: vms-alpha.c:7471 msgid "executable" msgstr "иÑполнÑемый" -#: vms-alpha.c:7311 +#: vms-alpha.c:7474 msgid "linkable image" msgstr "компонуемый образ" -#: vms-alpha.c:7317 +#: vms-alpha.c:7481 #, c-format msgid " image type: %u (%s)" msgstr " тип образа: %u (%s)" -#: vms-alpha.c:7323 +#: vms-alpha.c:7487 msgid "native" msgstr "родной" -#: vms-alpha.c:7326 +#: vms-alpha.c:7490 msgid "CLI" msgstr "CLI" -#: vms-alpha.c:7332 +#: vms-alpha.c:7497 #, c-format msgid ", subtype: %u (%s)\n" msgstr ", подтип: %u (%s)\n" -#: vms-alpha.c:7338 +#: vms-alpha.c:7504 #, c-format msgid " offsets: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n" msgstr " ÑмещениÑ: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n" -#: vms-alpha.c:7342 +#: vms-alpha.c:7508 #, c-format msgid " fixup info rva: " msgstr " fixup info rva: " -#: vms-alpha.c:7344 +#: vms-alpha.c:7510 #, c-format msgid ", symbol vector rva: " msgstr ", Ñимвольный вектор rva: " -#: vms-alpha.c:7347 +#: vms-alpha.c:7513 #, c-format msgid "" "\n" @@ -5250,694 +7514,701 @@ "\n" " Ñмещение маÑÑива верÑий: %u\n" -#: vms-alpha.c:7351 +#: vms-alpha.c:7518 #, c-format msgid " img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n" msgstr " img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n" -#: vms-alpha.c:7357 +#: vms-alpha.c:7524 #, c-format msgid " linker flags: %08x:" msgstr " флаги компоновщика: %08x:" -#: vms-alpha.c:7387 +#: vms-alpha.c:7555 #, c-format msgid " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n" msgstr " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n" -#: vms-alpha.c:7393 +#: vms-alpha.c:7561 #, c-format msgid " BPAGE: %u" msgstr " BPAGE: %u" -#: vms-alpha.c:7399 +#: vms-alpha.c:7568 #, c-format msgid ", ext fixup offset: %u, no_opt psect off: %u" msgstr ", ext fixup offset: %u, no_opt psect off: %u" -#: vms-alpha.c:7402 +#: vms-alpha.c:7571 #, c-format msgid ", alias: %u\n" msgstr ", пÑевдоним: %u\n" -#: vms-alpha.c:7410 +#: vms-alpha.c:7579 #, c-format msgid "system version array information:\n" msgstr "маÑÑив информации верÑии ÑиÑтемы:\n" -#: vms-alpha.c:7414 +#: vms-alpha.c:7583 #, c-format msgid "cannot read EIHVN header\n" msgstr "не удалоÑÑŒ прочитать заголовок EIHVN\n" -#: vms-alpha.c:7424 +#: vms-alpha.c:7593 #, c-format msgid "cannot read EIHVN version\n" msgstr "не удалоÑÑŒ прочитать верÑию EIHVN\n" -#: vms-alpha.c:7427 +#: vms-alpha.c:7596 #, c-format msgid " %02u " msgstr " %02u " -#: vms-alpha.c:7431 +#: vms-alpha.c:7600 msgid "BASE_IMAGE " msgstr "BASE_IMAGE " -#: vms-alpha.c:7434 +#: vms-alpha.c:7603 msgid "MEMORY_MANAGEMENT" msgstr "MEMORY_MANAGEMENT" -#: vms-alpha.c:7437 +#: vms-alpha.c:7606 msgid "IO " msgstr "IO " -#: vms-alpha.c:7440 +#: vms-alpha.c:7609 msgid "FILES_VOLUMES " msgstr "FILES_VOLUMES " -#: vms-alpha.c:7443 +#: vms-alpha.c:7612 msgid "PROCESS_SCHED " msgstr "PROCESS_SCHED " -#: vms-alpha.c:7446 +#: vms-alpha.c:7615 msgid "SYSGEN " msgstr "SYSGEN " -#: vms-alpha.c:7449 +#: vms-alpha.c:7618 msgid "CLUSTERS_LOCKMGR " msgstr "CLUSTERS_LOCKMGR " -#: vms-alpha.c:7452 +#: vms-alpha.c:7621 msgid "LOGICAL_NAMES " msgstr "LOGICAL_NAMES " -#: vms-alpha.c:7455 +#: vms-alpha.c:7624 msgid "SECURITY " msgstr "SECURITY " -#: vms-alpha.c:7458 +#: vms-alpha.c:7627 msgid "IMAGE_ACTIVATOR " msgstr "IMAGE_ACTIVATOR " -#: vms-alpha.c:7461 +#: vms-alpha.c:7630 msgid "NETWORKS " msgstr "NETWORKS " -#: vms-alpha.c:7464 +#: vms-alpha.c:7633 msgid "COUNTERS " msgstr "COUNTERS " -#: vms-alpha.c:7467 +#: vms-alpha.c:7636 msgid "STABLE " msgstr "STABLE " -#: vms-alpha.c:7470 +#: vms-alpha.c:7639 msgid "MISC " msgstr "MISC " -#: vms-alpha.c:7473 +#: vms-alpha.c:7642 msgid "CPU " msgstr "CPU " -#: vms-alpha.c:7476 +#: vms-alpha.c:7645 msgid "VOLATILE " msgstr "VOLATILE " -#: vms-alpha.c:7479 +#: vms-alpha.c:7648 msgid "SHELL " msgstr "SHELL " -#: vms-alpha.c:7482 +#: vms-alpha.c:7651 msgid "POSIX " msgstr "POSIX " -#: vms-alpha.c:7485 +#: vms-alpha.c:7654 msgid "MULTI_PROCESSING " msgstr "MULTI_PROCESSING " -#: vms-alpha.c:7488 +#: vms-alpha.c:7657 msgid "GALAXY " msgstr "GALAXY " -#: vms-alpha.c:7491 +#: vms-alpha.c:7660 msgid "*unknown* " msgstr "*неизвеÑтно* " -#: vms-alpha.c:7494 -#, c-format -msgid ": %u.%u\n" -msgstr ": %u.%u\n" - -#: vms-alpha.c:7507 vms-alpha.c:7766 +#: vms-alpha.c:7676 vms-alpha.c:7951 #, c-format msgid "cannot read EIHA\n" msgstr "не удалоÑÑŒ прочитать EIHA\n" -#: vms-alpha.c:7510 +#: vms-alpha.c:7679 #, c-format msgid "Image activation: (size=%u)\n" msgstr "ÐÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ñ Ð¾Ð±Ñ€Ð°Ð·Ð°: (размер=%u)\n" -#: vms-alpha.c:7512 +#: vms-alpha.c:7682 #, c-format msgid " First address : 0x%08x 0x%08x\n" msgstr " Первый адреÑ: 0x%08x 0x%08x\n" -#: vms-alpha.c:7515 +#: vms-alpha.c:7686 #, c-format msgid " Second address: 0x%08x 0x%08x\n" msgstr " Второй адреÑ: 0x%08x 0x%08x\n" -#: vms-alpha.c:7518 +#: vms-alpha.c:7690 #, c-format msgid " Third address : 0x%08x 0x%08x\n" msgstr " Третий адреÑ: 0x%08x 0x%08x\n" -#: vms-alpha.c:7521 +#: vms-alpha.c:7694 #, c-format msgid " Fourth address: 0x%08x 0x%08x\n" msgstr " Четвёртый адреÑ: 0x%08x 0x%08x\n" -#: vms-alpha.c:7524 +#: vms-alpha.c:7698 #, c-format msgid " Shared image : 0x%08x 0x%08x\n" msgstr " Общий образ: 0x%08x 0x%08x\n" -#: vms-alpha.c:7535 +#: vms-alpha.c:7709 #, c-format msgid "cannot read EIHI\n" msgstr "не удалоÑÑŒ прочитать EIHI\n" -#: vms-alpha.c:7538 +#: vms-alpha.c:7713 #, c-format msgid "Image identification: (major: %u, minor: %u)\n" msgstr "Ð˜Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¾Ð±Ñ€Ð°Ð·Ð°: (Ñтарший: %u, младший: %u)\n" -#: vms-alpha.c:7541 +#: vms-alpha.c:7716 #, c-format msgid " image name : %.*s\n" msgstr " Ð¸Ð¼Ñ Ð¾Ð±Ñ€Ð°Ð·Ð° : %.*s\n" -#: vms-alpha.c:7543 +#: vms-alpha.c:7718 #, c-format msgid " link time : %s\n" msgstr " Ð²Ñ€ÐµÐ¼Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²ÐºÐ¸ : %s\n" -#: vms-alpha.c:7545 +#: vms-alpha.c:7720 #, c-format msgid " image ident : %.*s\n" msgstr " идент-Ñ€ образа : %.*s\n" -#: vms-alpha.c:7547 +#: vms-alpha.c:7722 #, c-format msgid " linker ident : %.*s\n" msgstr " идент-Ñ€ компоновщика: %.*s\n" -#: vms-alpha.c:7549 +#: vms-alpha.c:7724 #, c-format msgid " image build ident: %.*s\n" msgstr " идент-Ñ€ Ñборки образа: %.*s\n" -#: vms-alpha.c:7559 +#: vms-alpha.c:7734 #, c-format msgid "cannot read EIHS\n" msgstr "не удалоÑÑŒ прочитать EIHS\n" -#: vms-alpha.c:7562 +#: vms-alpha.c:7738 #, c-format msgid "Image symbol & debug table: (major: %u, minor: %u)\n" msgstr "Таблица Ñимволов & отладки образа: (Ñтарший: %u, младший: %u)\n" -#: vms-alpha.c:7567 +#: vms-alpha.c:7744 #, c-format msgid " debug symbol table : vbn: %u, size: %u (0x%x)\n" msgstr " таблица отладочных Ñимволов: vbn: %u, размер: %u (0x%x)\n" -#: vms-alpha.c:7571 +#: vms-alpha.c:7749 #, c-format msgid " global symbol table: vbn: %u, records: %u\n" msgstr " Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° Ñимволов: vbn: %u, запиÑей: %u\n" -#: vms-alpha.c:7575 +#: vms-alpha.c:7754 #, c-format msgid " debug module table : vbn: %u, size: %u\n" msgstr " таблица отладочных модулей: vbn: %u, размер: %u\n" -#: vms-alpha.c:7588 +#: vms-alpha.c:7767 #, c-format msgid "cannot read EISD\n" msgstr "не удалоÑÑŒ прочитать EISD\n" -#: vms-alpha.c:7598 +#: vms-alpha.c:7778 #, c-format msgid "Image section descriptor: (major: %u, minor: %u, size: %u, offset: %u)\n" msgstr "ДеÑкриптор раздела образа: (Ñтарший: %u, младший: %u, размер: %u, Ñмещение: %u)\n" -#: vms-alpha.c:7605 +#: vms-alpha.c:7786 #, c-format msgid " section: base: 0x%08x%08x size: 0x%08x\n" msgstr " раздел: база: 0x%08x%08x размер: 0x%08x\n" -#: vms-alpha.c:7610 +#: vms-alpha.c:7791 #, c-format msgid " flags: 0x%04x" msgstr " флаги: 0x%04x" -#: vms-alpha.c:7647 +#: vms-alpha.c:7829 #, c-format msgid " vbn: %u, pfc: %u, matchctl: %u type: %u (" msgstr " vbn: %u, pfc: %u, matchctl: %u тип: %u (" -#: vms-alpha.c:7653 +#: vms-alpha.c:7835 msgid "NORMAL" msgstr "NORMAL" -#: vms-alpha.c:7656 +#: vms-alpha.c:7838 msgid "SHRFXD" msgstr "SHRFXD" -#: vms-alpha.c:7659 +#: vms-alpha.c:7841 msgid "PRVFXD" msgstr "PRVFXD" -#: vms-alpha.c:7662 +#: vms-alpha.c:7844 msgid "SHRPIC" msgstr "SHRPIC" -#: vms-alpha.c:7665 +#: vms-alpha.c:7847 msgid "PRVPIC" msgstr "PRVPIC" -#: vms-alpha.c:7668 +#: vms-alpha.c:7850 msgid "USRSTACK" msgstr "USRSTACK" -#: vms-alpha.c:7676 +#: vms-alpha.c:7856 +msgid ")\n" +msgstr ")\n" + +#: vms-alpha.c:7859 #, c-format msgid " ident: 0x%08x, name: %.*s\n" msgstr " иден-Ñ€: 0x%08x, имÑ: %.*s\n" -#: vms-alpha.c:7686 +#: vms-alpha.c:7869 #, c-format msgid "cannot read DMT\n" msgstr "не удалоÑÑŒ прочитать DMT\n" -#: vms-alpha.c:7690 +#: vms-alpha.c:7873 #, c-format msgid "Debug module table:\n" msgstr "Таблица отладочных модулей:\n" -#: vms-alpha.c:7699 +#: vms-alpha.c:7882 #, c-format msgid "cannot read DMT header\n" msgstr "не удалоÑÑŒ прочитать заголовок DMT\n" -#: vms-alpha.c:7704 +#: vms-alpha.c:7888 #, c-format msgid " module offset: 0x%08x, size: 0x%08x, (%u psects)\n" msgstr " Ñмещение модулÑ: 0x%08x, размер: 0x%08x, (%u psects)\n" -#: vms-alpha.c:7714 +#: vms-alpha.c:7898 #, c-format msgid "cannot read DMT psect\n" msgstr "не удалоÑÑŒ прочитать DMT psect\n" -#: vms-alpha.c:7717 +#: vms-alpha.c:7902 #, c-format msgid " psect start: 0x%08x, length: %u\n" msgstr " начало psect: 0x%08x, длина: %u\n" -#: vms-alpha.c:7730 +#: vms-alpha.c:7915 #, c-format msgid "cannot read DST\n" msgstr "не удалоÑÑŒ прочитать DST\n" -#: vms-alpha.c:7740 +#: vms-alpha.c:7925 #, c-format msgid "cannot read GST\n" msgstr "не удалоÑÑŒ прочитать GST\n" -#: vms-alpha.c:7744 +#: vms-alpha.c:7929 #, c-format msgid "Global symbol table:\n" msgstr "Таблица глобальных Ñимволов:\n" -#: vms-alpha.c:7772 +#: vms-alpha.c:7958 #, c-format msgid "Image activator fixup: (major: %u, minor: %u)\n" msgstr "Ðктиватор меÑÑ‚Ð¾Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¾Ð±Ñ€Ð°Ð·Ð°: (Ñтарший: %u, младший: %u)\n" -#: vms-alpha.c:7775 +#: vms-alpha.c:7962 #, c-format msgid " iaflink : 0x%08x %08x\n" msgstr " iaflink : 0x%08x %08x\n" -#: vms-alpha.c:7778 +#: vms-alpha.c:7966 #, c-format msgid " fixuplnk: 0x%08x %08x\n" msgstr " fixuplnk: 0x%08x %08x\n" -#: vms-alpha.c:7781 +#: vms-alpha.c:7969 #, c-format msgid " size : %u\n" msgstr " размер: %u\n" -#: vms-alpha.c:7783 +#: vms-alpha.c:7971 #, c-format msgid " flags: 0x%08x\n" msgstr " флаги: 0x%08x\n" -#: vms-alpha.c:7787 +#: vms-alpha.c:7976 #, c-format msgid " qrelfixoff: %5u, lrelfixoff: %5u\n" msgstr " qrelfixoff: %5u, lrelfixoff: %5u\n" -#: vms-alpha.c:7791 +#: vms-alpha.c:7981 #, c-format msgid " qdotadroff: %5u, ldotadroff: %5u\n" msgstr " qdotadroff: %5u, ldotadroff: %5u\n" -#: vms-alpha.c:7795 +#: vms-alpha.c:7986 #, c-format msgid " codeadroff: %5u, lpfixoff : %5u\n" msgstr " codeadroff: %5u, lpfixoff : %5u\n" -#: vms-alpha.c:7798 +#: vms-alpha.c:7989 #, c-format msgid " chgprtoff : %5u\n" msgstr " chgprtoff : %5u\n" -#: vms-alpha.c:7801 +#: vms-alpha.c:7993 #, c-format msgid " shlstoff : %5u, shrimgcnt : %5u\n" msgstr " shlstoff : %5u, shrimgcnt : %5u\n" -#: vms-alpha.c:7803 +#: vms-alpha.c:7996 #, c-format msgid " shlextra : %5u, permctx : %5u\n" msgstr " shlextra : %5u, permctx : %5u\n" -#: vms-alpha.c:7806 +#: vms-alpha.c:7999 #, c-format msgid " base_va : 0x%08x\n" msgstr " base_va : 0x%08x\n" -#: vms-alpha.c:7808 +#: vms-alpha.c:8001 #, c-format msgid " lppsbfixoff: %5u\n" msgstr " lppsbfixoff: %5u\n" -#: vms-alpha.c:7816 +#: vms-alpha.c:8009 #, c-format msgid " Shareable images:\n" msgstr " Общие образы:\n" -#: vms-alpha.c:7820 +#: vms-alpha.c:8014 #, c-format msgid " %u: size: %u, flags: 0x%02x, name: %.*s\n" msgstr " %u: размер: %u, флаги: 0x%02x, имÑ: %.*s\n" -#: vms-alpha.c:7827 +#: vms-alpha.c:8021 #, c-format msgid " quad-word relocation fixups:\n" msgstr " четверное Ñлово перемещаемых меÑтоположений:\n" -#: vms-alpha.c:7832 +#: vms-alpha.c:8026 #, c-format msgid " long-word relocation fixups:\n" msgstr " длинное Ñлово перемещаемых меÑтоположений:\n" -#: vms-alpha.c:7837 +#: vms-alpha.c:8031 #, c-format msgid " quad-word .address reference fixups:\n" msgstr " четверное Ñлово ÑÑылочных меÑтоположений .address:\n" -#: vms-alpha.c:7842 +#: vms-alpha.c:8036 #, c-format msgid " long-word .address reference fixups:\n" msgstr " длинное Ñлово ÑÑылочных меÑтоположений .address:\n" -#: vms-alpha.c:7847 +#: vms-alpha.c:8041 #, c-format msgid " Code Address Reference Fixups:\n" msgstr " СÑылочные меÑÑ‚Ð¾Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð°Ð´Ñ€ÐµÑа кода:\n" -#: vms-alpha.c:7852 +#: vms-alpha.c:8046 #, c-format -msgid " Linkage Pairs Referece Fixups:\n" +msgid " Linkage Pairs Reference Fixups:\n" msgstr " СÑылочные меÑÑ‚Ð¾Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐµÐ¼Ñ‹Ñ… пар:\n" -#: vms-alpha.c:7861 +#: vms-alpha.c:8055 #, c-format msgid " Change Protection (%u entries):\n" msgstr " Изменение защиты (%u Ñлементов):\n" -#: vms-alpha.c:7866 +#: vms-alpha.c:8061 #, c-format msgid " base: 0x%08x %08x, size: 0x%08x, prot: 0x%08x " msgstr " база: 0x%08x %08x, размер: 0x%08x, prot: 0x%08x " #. FIXME: we do not yet support relocatable link. It is not obvious #. how to do it for debug infos. -#: vms-alpha.c:8706 +#: vms-alpha.c:8901 msgid "%P: relocatable link is not supported\n" msgstr "%P: Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰Ð°ÐµÐ¼Ð°Ñ ÑÑылка не поддерживаетÑÑ\n" -#: vms-alpha.c:8776 +#: vms-alpha.c:8972 +#, c-format msgid "%P: multiple entry points: in modules %B and %B\n" msgstr "%P: неÑколько точек входа: в модулÑÑ… %B и %B\n" -#: vms-lib.c:1423 +#: vms-lib.c:1445 #, c-format msgid "could not open shared image '%s' from '%s'" msgstr "не удалоÑÑŒ открыть общий образ «%s» из «%s»" -#: vms-misc.c:360 +#: vms-misc.c:361 msgid "_bfd_vms_output_counted called with zero bytes" msgstr "Вызов _bfd_vms_output_counted Ñ Ð½ÑƒÐ»ÐµÐ²Ñ‹Ð¼ количеÑтвом байт" -#: vms-misc.c:365 +#: vms-misc.c:366 msgid "_bfd_vms_output_counted called with too many bytes" msgstr "Вызов _bfd_vms_output_counted Ñо Ñлишком большим количеÑтвом байт" -#: xcofflink.c:836 -#, c-format -msgid "%s: XCOFF shared object when not producing XCOFF output" -msgstr "%s: общий объект XCOFF без ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð²Ñ‹Ð²Ð¾Ð´Ð° XCOFF" +#: xcofflink.c:832 +msgid "%B: XCOFF shared object when not producing XCOFF output" +msgstr "%B: общий объект XCOFF без ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð²Ñ‹Ð²Ð¾Ð´Ð° XCOFF" + +#: xcofflink.c:853 +msgid "%B: dynamic object with no .loader section" +msgstr "%B: динамичеÑкий объект без раздела .loader" -#: xcofflink.c:857 +#: xcofflink.c:1413 #, c-format -msgid "%s: dynamic object with no .loader section" -msgstr "%s: динамичеÑкий объект без раздела .loader" - -#: xcofflink.c:1416 msgid "%B: `%s' has line numbers but no enclosing section" msgstr "%B: «%s» Ñодержит номера Ñтрок, но в обрамлÑющем разделе" -#: xcofflink.c:1468 +#: xcofflink.c:1466 +#, c-format msgid "%B: class %d symbol `%s' has no aux entries" msgstr "%B: клаÑÑ %d Ñимвола «%s» не имеет Ñлементов aux" -#: xcofflink.c:1490 +#: xcofflink.c:1489 +#, c-format msgid "%B: symbol `%s' has unrecognized csect type %d" msgstr "%B: Ñимвол «%s» имеет нераÑпознанный тип csect: %d" #: xcofflink.c:1502 -msgid "%B: bad XTY_ER symbol `%s': class %d scnum %d scnlen %d" -msgstr "%B: неверный Ñимвол XTY_ER «%s»: клаÑÑ %d scnum %d scnlen %d" +#, c-format +msgid "%B: bad XTY_ER symbol `%s': class %d scnum %d scnlen %Ld" +msgstr "%B: неверный Ñимвол XTY_ER «%s»: клаÑÑ %d scnum %d scnlen %Ld" -#: xcofflink.c:1531 -msgid "%B: XMC_TC0 symbol `%s' is class %d scnlen %d" -msgstr "%B: Ñимвол XMC_TC0 «%s» ÑвлÑетÑÑ ÐºÐ»Ð°ÑÑом %d scnlen %d" +#: xcofflink.c:1532 +#, c-format +msgid "%B: XMC_TC0 symbol `%s' is class %d scnlen %Ld" +msgstr "%B: Ñимвол XMC_TC0 «%s» ÑвлÑетÑÑ ÐºÐ»Ð°ÑÑом %d scnlen %Ld" -#: xcofflink.c:1677 +#: xcofflink.c:1679 +#, c-format msgid "%B: csect `%s' not in enclosing section" msgstr "%B: csect «%s» не в обрамлÑющем разделе" -#: xcofflink.c:1784 +#: xcofflink.c:1787 +#, c-format msgid "%B: misplaced XTY_LD `%s'" msgstr "%B: неправильно раÑположенный XTY_LD «%s»" -#: xcofflink.c:2103 -msgid "%B: reloc %s:%d not in csect" -msgstr "%B: перемещение %s:%d не в csect" +#: xcofflink.c:2108 +#, c-format +msgid "%B: reloc %s:%Ld not in csect" +msgstr "%B: перемещение %s:%Ld не в csect" -#: xcofflink.c:3194 +#: xcofflink.c:3198 #, c-format msgid "%s: no such symbol" msgstr "%s: нет такого Ñимвола" -#: xcofflink.c:3299 +#: xcofflink.c:3303 #, c-format msgid "warning: attempt to export undefined symbol `%s'" msgstr "предупреждение: попытка ÑкÑпортировать неопределённый Ñимвол «%s»" -#: xcofflink.c:3678 +#: xcofflink.c:3682 msgid "error: undefined symbol __rtinit" msgstr "ошибка: неопределённый Ñимвол __rtinit" -#: xcofflink.c:4057 +#: xcofflink.c:4062 +#, c-format msgid "%B: loader reloc in unrecognized section `%s'" msgstr "%B: перемещение загрузчика в нераÑпознанном разделе «%s»" -#: xcofflink.c:4068 +#: xcofflink.c:4074 +#, c-format msgid "%B: `%s' in loader reloc but not loader sym" msgstr "%B: «%s» в перемещении загрузчика, но не Ñимволе загрузчика" -#: xcofflink.c:4084 +#: xcofflink.c:4091 +#, c-format msgid "%B: loader reloc in read-only section %A" msgstr "%B: перемещение загрузчика в разделе %A, доÑтупном только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ" -#: xcofflink.c:5106 +#: xcofflink.c:5115 +#, c-format +msgid "TOC overflow: %#Lx > 0x10000; try -mminimal-toc when compiling" +msgstr "переполнение TOC: %#Lx > 0x10000; попробуйте Ñкомпилировать Ñ -mminimal-toc" + +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:1890 #, c-format -msgid "TOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compiling" -msgstr "переполнение TOC: 0x%lx > 0x10000; попробуйте Ñкомпилировать Ñ -mminimal-toc" +msgid "Invalid AArch64 reloc number: %d" +msgstr "Ðекорректный номер Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ AArch64: %d" -#: elf32-ia64.c:628 elf64-ia64.c:628 -msgid "%B: Can't relax br at 0x%lx in section `%A'. Please use brl or indirect branch." -msgstr "%B: Ðевозможно оÑлабить br по адреÑу 0x%lx в разделе «%A». ИÑпользуйте brl или коÑвенное ветвление." +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:4779 +msgid "%B: error: Erratum 835769 stub out of range (input file too large)" +msgstr "%B: ошибка: заглушка Ð´Ð»Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¸ 835769 находитÑÑ Ð²Ð½Ðµ диапазона (Ñлишком большой входной файл)" -#: elf32-ia64.c:2284 elf64-ia64.c:2284 -msgid "@pltoff reloc against local symbol" -msgstr "перемещение @pltoff Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñимвола" +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:4860 +msgid "%B: error: Erratum 843419 stub out of range (input file too large)" +msgstr "%B: ошибка: заглушка Ð´Ð»Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¸ 843419 находитÑÑ Ð²Ð½Ðµ диапазона (Ñлишком большой входной файл)" -#: elf32-ia64.c:3687 elf64-ia64.c:3687 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:5366 #, c-format -msgid "%s: short data segment overflowed (0x%lx >= 0x400000)" -msgstr "%s: переполнение короткого Ñегмента данных (0x%lx >= 0x400000)" +msgid "%B: relocation %s against symbol `%s' which may bind externally can not be used when making a shared object; recompile with -fPIC" +msgstr "%B: перемещение %s Ð´Ð»Ñ Â«%s», который может быть привÑзан извне, не может иÑпользоватьÑÑ Ð¿Ñ€Ð¸ Ñоздании общего объекта; перекомпилируйте Ñ -fPIC" -#: elf32-ia64.c:3698 elf64-ia64.c:3698 +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:5457 #, c-format -msgid "%s: __gp does not cover short data segment" -msgstr "%s: __gp не покрывает короткий Ñегмент данных" - -#: elf32-ia64.c:3965 elf64-ia64.c:3965 -msgid "%B: non-pic code with imm relocation against dynamic symbol `%s'" -msgstr "%B: не-pic код Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸ÐµÐ¼ imm Ð´Ð»Ñ Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñ‡ÐµÑкого Ñимвола «%s»" - -#: elf32-ia64.c:4032 elf64-ia64.c:4032 -msgid "%B: @gprel relocation against dynamic symbol %s" -msgstr "%B: перемещение @gprel Ð´Ð»Ñ Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñ‡ÐµÑкого Ñимвола %s" +msgid "%B: Local symbol descriptor table be NULL when applying relocation %s against local symbol" +msgstr "%B: таблица опиÑателей локальных Ñимволов будет равна NULL, еÑли применить перемещение %s Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ñ‹Ð¼ Ñимволом" -#: elf32-ia64.c:4095 elf64-ia64.c:4095 -msgid "%B: linking non-pic code in a position independent executable" -msgstr "%B: компоновка не-pic кода в позиционно-незавиÑимый иÑполнÑемый" +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6479 +msgid "Too many GOT entries for -fpic, please recompile with -fPIC" +msgstr "Слишком много Ñлементов GOT Ð´Ð»Ñ -fpic: перекомпилируйте Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ -fPIC" -#: elf32-ia64.c:4232 elf64-ia64.c:4232 -msgid "%B: @internal branch to dynamic symbol %s" -msgstr "%B: ветвление @internal к динамичеÑкому Ñимволу %s" +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:6507 +msgid "One possible cause of this error is that the symbol is being referenced in the indicated code as if it had a larger alignment than was declared where it was defined." +msgstr "Одной из возможных причин Ñтой ошибки ÑвлÑетÑÑ Ñ‚Ð¾, что в указанном коде на Ñимвол ÑÑылаютÑÑ Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð¼ выравниванием, чем было объÑвлено в его меÑте определениÑ." -#: elf32-ia64.c:4234 elf64-ia64.c:4234 -msgid "%B: speculation fixup to dynamic symbol %s" -msgstr "%B: догадка меÑÑ‚Ð¾Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñ‡ÐµÑкого Ñимвола %s" +#: /work/sources/binutils/branches/2.30/bfd/elfnn-aarch64.c:7084 +#, c-format +msgid "%B: relocation %s against `%s' can not be used when making a shared object" +msgstr "%B: перемещение %s Ð´Ð»Ñ %s «%s» не может иÑпользоватьÑÑ Ð¿Ñ€Ð¸ Ñоздании общего объекта" -#: elf32-ia64.c:4236 elf64-ia64.c:4236 -msgid "%B: @pcrel relocation against dynamic symbol %s" -msgstr "%B: перемещение @pcrel Ð´Ð»Ñ Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñ‡ÐµÑкого Ñимвола %s" +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2570 +msgid "" +"%B: ABI is incompatible with that of the selected emulation:\n" +" target emulation `%s' does not match `%s'" +msgstr "" +"%B: ABI не ÑовмеÑтим Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ð¼ в ÑмулÑции:\n" +" цель ÑмулÑции «%s» не Ñовпадает Ñ Â«%s»" -#: elf32-ia64.c:4433 elf64-ia64.c:4433 -msgid "unsupported reloc" -msgstr "неподдерживаемое перемещение" +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:2590 +msgid "%B: can't link hard-float modules with soft-float modules" +msgstr "%B: невозможно компоновать модули Ñ Ð°Ð¿Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð¾Ð¹ плавающей точкой Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñми, иÑпользующими программную плавающую точку" -#: elf32-ia64.c:4471 elf64-ia64.c:4471 -msgid "%B: missing TLS section for relocation %s against `%s' at 0x%lx in section `%A'." -msgstr "%B: отÑутÑтвует TLS-раздел Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %s Ð´Ð»Ñ Â«%s» по адреÑу 0x%lx в разделе «%A»." - -#: elf32-ia64.c:4486 elf64-ia64.c:4486 -msgid "%B: Can't relax br (%s) to `%s' at 0x%lx in section `%A' with size 0x%lx (> 0x1000000)." -msgstr "%B: Ðевозможно оÑлабить br (%s) до «%s» по адреÑу 0x%lx в разделе «%A» Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð¾Ð¼ 0x%lx (> 0x1000000)." +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:3070 +msgid "%B(%A+0x%lx): %d bytes required for alignment to %d-byte boundary, but only %d present" +msgstr "%B(%A+0x%lx): требуетÑÑ %d байт Ð´Ð»Ñ Ð²Ñ‹Ñ€Ð°Ð²Ð½Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ %d-байтной границе, но еÑÑ‚ÑŒ только %d" -#: elf32-ia64.c:4748 elf64-ia64.c:4748 -msgid "%B: linking trap-on-NULL-dereference with non-trapping files" -msgstr "%B: компоновка trap-on-NULL-dereference Ñ Ð½Ðµ-trapping файлами" +#: /work/sources/binutils/branches/2.30/bfd/elfnn-riscv.c:3136 +msgid "%B(%A+0x%lx): Unable to clear RISCV_PCREL_HI20 relocfor cooresponding RISCV_PCREL_LO12 reloc" +msgstr "%B(%A+0x%lx): невозможно очиÑтить перемещение RISCV_PCREL_HI20 Ð´Ð»Ñ ÑоответÑтвующего Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ RISCV_PCREL_LO12" -#: elf32-ia64.c:4757 elf64-ia64.c:4757 -msgid "%B: linking big-endian files with little-endian files" -msgstr "%B: компоновка файлов Ñ Ð¿Ñ€Ñмым порÑдком байт Ñ Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ Ñ Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ñ‹Ð¼ порÑдком байт" +#: peigen.c:157 pepigen.c:157 pex64igen.c:157 +msgid "%B: unable to find name for empty section" +msgstr "%B: не удалоÑÑŒ найти Ð¸Ð¼Ñ Ð¿ÑƒÑтого раздела" -#: elf32-ia64.c:4766 elf64-ia64.c:4766 -msgid "%B: linking 64-bit files with 32-bit files" -msgstr "%B: компоновка 64-битных файлов Ñ 32-битными файлами" +#: peigen.c:183 pepigen.c:183 pex64igen.c:183 +msgid "%B: out of memory creating name for empty section" +msgstr "%B: не хватает памÑти Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð¸ пуÑтого раздела" -#: elf32-ia64.c:4775 elf64-ia64.c:4775 -msgid "%B: linking constant-gp files with non-constant-gp files" -msgstr "%B: компоновка constant-gp файлов Ñ Ð½Ðµ-constant-gp файлами" +#: peigen.c:194 pepigen.c:194 pex64igen.c:194 +msgid "%B: unable to create fake empty section" +msgstr "%B: невозможно Ñоздать фиктивный пуÑтой раздел" -#: elf32-ia64.c:4785 elf64-ia64.c:4785 -msgid "%B: linking auto-pic files with non-auto-pic files" -msgstr "%B: компоновка auto-pic файлов Ñ Ð½Ðµ-auto-pic файлами" +#: peigen.c:532 pepigen.c:532 pex64igen.c:532 +msgid "%B: aout header specifies an invalid number of data-directory entries: %ld" +msgstr "%B: в заголовке aout указан некорректный номер Ñлементов каталога данных: %ld" -#: peigen.c:1002 pepigen.c:1002 pex64igen.c:1002 +#: peigen.c:1089 pepigen.c:1089 pex64igen.c:1089 #, c-format -msgid "%s: line number overflow: 0x%lx > 0xffff" -msgstr "%s: переполнение номеров Ñтрок: 0x%lx > 0xffff" +msgid "%B: line number overflow: 0x%lx > 0xffff" +msgstr "%B: переполнение нумерации Ñтрок: 0x%lx > 0xffff" -#: peigen.c:1029 pepigen.c:1029 pex64igen.c:1029 +#: peigen.c:1233 pepigen.c:1233 pex64igen.c:1233 msgid "Export Directory [.edata (or where ever we found it)]" msgstr "Каталог ÑкÑпорта [.edata (или где он нашёлÑÑ)]" -#: peigen.c:1030 pepigen.c:1030 pex64igen.c:1030 +#: peigen.c:1234 pepigen.c:1234 pex64igen.c:1234 msgid "Import Directory [parts of .idata]" msgstr "Каталог импорта [чаÑÑ‚ÑŒ .idata]" -#: peigen.c:1031 pepigen.c:1031 pex64igen.c:1031 +#: peigen.c:1235 pepigen.c:1235 pex64igen.c:1235 msgid "Resource Directory [.rsrc]" msgstr "Каталог реÑурÑов [.rsrc]" -#: peigen.c:1032 pepigen.c:1032 pex64igen.c:1032 +#: peigen.c:1236 pepigen.c:1236 pex64igen.c:1236 msgid "Exception Directory [.pdata]" msgstr "Каталог иÑключений [.pdata]" -#: peigen.c:1033 pepigen.c:1033 pex64igen.c:1033 +#: peigen.c:1237 pepigen.c:1237 pex64igen.c:1237 msgid "Security Directory" msgstr "Каталог безопаÑноÑти" -#: peigen.c:1034 pepigen.c:1034 pex64igen.c:1034 +#: peigen.c:1238 pepigen.c:1238 pex64igen.c:1238 msgid "Base Relocation Directory [.reloc]" msgstr "Каталог базового Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ [.reloc]" -#: peigen.c:1035 pepigen.c:1035 pex64igen.c:1035 +#: peigen.c:1239 pepigen.c:1239 pex64igen.c:1239 msgid "Debug Directory" msgstr "Каталог отладки" -#: peigen.c:1036 pepigen.c:1036 pex64igen.c:1036 +#: peigen.c:1240 pepigen.c:1240 pex64igen.c:1240 msgid "Description Directory" msgstr "Каталог опиÑаний" -#: peigen.c:1037 pepigen.c:1037 pex64igen.c:1037 +#: peigen.c:1241 pepigen.c:1241 pex64igen.c:1241 msgid "Special Directory" msgstr "Специальный каталог" -#: peigen.c:1038 pepigen.c:1038 pex64igen.c:1038 +#: peigen.c:1242 pepigen.c:1242 pex64igen.c:1242 msgid "Thread Storage Directory [.tls]" msgstr "Каталог хранилища нитей [.tls]" -#: peigen.c:1039 pepigen.c:1039 pex64igen.c:1039 +#: peigen.c:1243 pepigen.c:1243 pex64igen.c:1243 msgid "Load Configuration Directory" msgstr "Каталог загрузки конфигурации" -#: peigen.c:1040 pepigen.c:1040 pex64igen.c:1040 +#: peigen.c:1244 pepigen.c:1244 pex64igen.c:1244 msgid "Bound Import Directory" msgstr "Каталог обÑзательного импорта" -#: peigen.c:1041 pepigen.c:1041 pex64igen.c:1041 +#: peigen.c:1245 pepigen.c:1245 pex64igen.c:1245 msgid "Import Address Table Directory" msgstr "Каталог таблицы импорта адреÑов" -#: peigen.c:1042 pepigen.c:1042 pex64igen.c:1042 +#: peigen.c:1246 pepigen.c:1246 pex64igen.c:1246 msgid "Delay Import Directory" msgstr "Каталог отложенного импорта" -#: peigen.c:1043 pepigen.c:1043 pex64igen.c:1043 +#: peigen.c:1247 pepigen.c:1247 pex64igen.c:1247 msgid "CLR Runtime Header" msgstr "Заголовок времени Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ CLR" -#: peigen.c:1044 pepigen.c:1044 pex64igen.c:1044 +#: peigen.c:1248 pepigen.c:1248 pex64igen.c:1248 msgid "Reserved" msgstr "Зарезервировано" -#: peigen.c:1104 pepigen.c:1104 pex64igen.c:1104 +#: peigen.c:1308 pepigen.c:1308 pex64igen.c:1308 #, c-format msgid "" "\n" @@ -5946,7 +8217,16 @@ "\n" "СущеÑтвует таблица импорта, но не найден раздел, в котором она ÑодержитÑÑ\n" -#: peigen.c:1109 pepigen.c:1109 pex64igen.c:1109 +#: peigen.c:1314 pepigen.c:1314 pex64igen.c:1314 +#, c-format +msgid "" +"\n" +"There is an import table in %s, but that section has no contents\n" +msgstr "" +"\n" +"СущеÑтвует таблица импорта в %s, но Ñтот раздел без Ñодержимого\n" + +#: peigen.c:1321 pepigen.c:1321 pex64igen.c:1321 #, c-format msgid "" "\n" @@ -5955,7 +8235,7 @@ "\n" "Ð’ %s имеетÑÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° импорта по адреÑу 0x%lx\n" -#: peigen.c:1151 pepigen.c:1151 pex64igen.c:1151 +#: peigen.c:1363 pepigen.c:1363 pex64igen.c:1363 #, c-format msgid "" "\n" @@ -5964,12 +8244,12 @@ "\n" "Ðачальный Ð°Ð´Ñ€ÐµÑ Ð¾Ð¿Ð¸ÑÐ°Ñ‚ÐµÐ»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸: %04lx\n" -#: peigen.c:1154 pepigen.c:1154 pex64igen.c:1154 +#: peigen.c:1367 pepigen.c:1367 pex64igen.c:1367 #, c-format msgid "\tcode-base %08lx toc (loadable/actual) %08lx/%08lx\n" msgstr "\tcode-base %08lx toc (загружаемый/реальный) %08lx/%08lx\n" -#: peigen.c:1162 pepigen.c:1162 pex64igen.c:1162 +#: peigen.c:1375 pepigen.c:1375 pex64igen.c:1375 #, c-format msgid "" "\n" @@ -5978,7 +8258,7 @@ "\n" "Ðет раздела reldata! ОпиÑатель функции не раÑшифрован.\n" -#: peigen.c:1167 pepigen.c:1167 pex64igen.c:1167 +#: peigen.c:1380 pepigen.c:1380 pex64igen.c:1380 #, c-format msgid "" "\n" @@ -5987,7 +8267,7 @@ "\n" "Таблицы импорта (обработан раздел %s)\n" -#: peigen.c:1170 pepigen.c:1170 pex64igen.c:1170 +#: peigen.c:1383 pepigen.c:1383 pex64igen.c:1383 #, c-format msgid "" " vma: Hint Time Forward DLL First\n" @@ -5996,21 +8276,21 @@ " vma: Таблица Отметка Цепочка Ð˜Ð¼Ñ ÐŸÐµÑ€Ð²Ñ‹Ð¹\n" " Указаний Времени ПереÑылки DLL Шлюз\n" -#: peigen.c:1218 pepigen.c:1218 pex64igen.c:1218 +#: peigen.c:1433 pepigen.c:1433 pex64igen.c:1433 #, c-format msgid "" "\n" -"\tDLL Name: %s\n" +"\tDLL Name: %.*s\n" msgstr "" "\n" -"\tÐ˜Ð¼Ñ DLL: %s\n" +"\tÐ˜Ð¼Ñ DLL: %.*s\n" -#: peigen.c:1229 pepigen.c:1229 pex64igen.c:1229 +#: peigen.c:1449 pepigen.c:1449 pex64igen.c:1449 #, c-format msgid "\tvma: Hint/Ord Member-Name Bound-To\n" msgstr "\tvma: Hint/Ord ИмÑ-Ñлемента ПривÑзан-к\n" -#: peigen.c:1254 pepigen.c:1254 pex64igen.c:1254 +#: peigen.c:1474 pepigen.c:1474 pex64igen.c:1474 #, c-format msgid "" "\n" @@ -6019,7 +8299,13 @@ "\n" "СущеÑтвует первый шлюз, но не найден раздел, в котором он ÑодержитÑÑ\n" -#: peigen.c:1415 pepigen.c:1415 pex64igen.c:1415 +#: peigen.c:1518 peigen.c:1557 pepigen.c:1518 pepigen.c:1557 pex64igen.c:1518 +#: pex64igen.c:1557 +#, c-format +msgid "\t" +msgstr "\t<повреждено: 0x%04lx>" + +#: peigen.c:1650 pepigen.c:1650 pex64igen.c:1650 #, c-format msgid "" "\n" @@ -6028,7 +8314,16 @@ "\n" "СущеÑтвует таблица ÑкÑпорта, но не найден раздел, в котором она ÑодержитÑÑ\n" -#: peigen.c:1424 pepigen.c:1424 pex64igen.c:1424 +#: peigen.c:1656 pepigen.c:1656 pex64igen.c:1656 +#, c-format +msgid "" +"\n" +"There is an export table in %s, but that section has no contents\n" +msgstr "" +"\n" +"СущеÑтвует таблица ÑкÑпорта в %s, но Ñтот раздел без Ñодержимого\n" + +#: peigen.c:1666 pepigen.c:1666 pex64igen.c:1666 #, c-format msgid "" "\n" @@ -6037,7 +8332,16 @@ "\n" "СущеÑтвует таблица ÑкÑпорта в %s, но она не помещаетÑÑ Ð² Ñтот раздел\n" -#: peigen.c:1430 pepigen.c:1430 pex64igen.c:1430 +#: peigen.c:1677 pepigen.c:1677 pex64igen.c:1677 +#, c-format +msgid "" +"\n" +"There is an export table in %s, but it is too small (%d)\n" +msgstr "" +"\n" +"СущеÑтвует таблица ÑкÑпорта в %s, но она Ñлишком Ð¼Ð°Ð»ÐµÐ½ÑŒÐºÐ°Ñ (%d)\n" + +#: peigen.c:1683 pepigen.c:1683 pex64igen.c:1683 #, c-format msgid "" "\n" @@ -6046,7 +8350,7 @@ "\n" "СущеÑтвует таблица ÑкÑпорта в %s по адреÑу 0x%lx\n" -#: peigen.c:1458 pepigen.c:1458 pex64igen.c:1458 +#: peigen.c:1711 pepigen.c:1711 pex64igen.c:1711 #, c-format msgid "" "\n" @@ -6057,67 +8361,67 @@ "Таблицы ÑкÑпорта (обработан раздел %s)\n" "\n" -#: peigen.c:1462 pepigen.c:1462 pex64igen.c:1462 +#: peigen.c:1715 pepigen.c:1715 pex64igen.c:1715 #, c-format msgid "Export Flags \t\t\t%lx\n" msgstr "Флаги ÑкÑпорта \t\t\t%lx\n" -#: peigen.c:1465 pepigen.c:1465 pex64igen.c:1465 +#: peigen.c:1718 pepigen.c:1718 pex64igen.c:1718 #, c-format msgid "Time/Date stamp \t\t%lx\n" msgstr "Метка времени/даты \t\t%lx\n" -#: peigen.c:1468 pepigen.c:1468 pex64igen.c:1468 +#: peigen.c:1722 pepigen.c:1722 pex64igen.c:1722 #, c-format msgid "Major/Minor \t\t\t%d/%d\n" msgstr "Старший/Младший \t\t\t%d/%d\n" -#: peigen.c:1471 pepigen.c:1471 pex64igen.c:1471 +#: peigen.c:1725 pepigen.c:1725 pex64igen.c:1725 #, c-format msgid "Name \t\t\t\t" msgstr "Ð˜Ð¼Ñ \t\t\t\t" -#: peigen.c:1477 pepigen.c:1477 pex64igen.c:1477 +#: peigen.c:1736 pepigen.c:1736 pex64igen.c:1736 #, c-format msgid "Ordinal Base \t\t\t%ld\n" msgstr "Ðачальный порÑдковый номер \t\t\t%ld\n" -#: peigen.c:1480 pepigen.c:1480 pex64igen.c:1480 +#: peigen.c:1739 pepigen.c:1739 pex64igen.c:1739 #, c-format msgid "Number in:\n" msgstr "Ðомер в:\n" -#: peigen.c:1483 pepigen.c:1483 pex64igen.c:1483 +#: peigen.c:1742 pepigen.c:1742 pex64igen.c:1742 #, c-format msgid "\tExport Address Table \t\t%08lx\n" msgstr "\tТаблица ÑкÑпортируемых адреÑов \t\t%08lx\n" -#: peigen.c:1487 pepigen.c:1487 pex64igen.c:1487 +#: peigen.c:1746 pepigen.c:1746 pex64igen.c:1746 #, c-format msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n" msgstr "\tТаблица [указателей имён/порÑдковых номеров]\t%08lx\n" -#: peigen.c:1490 pepigen.c:1490 pex64igen.c:1490 +#: peigen.c:1749 pepigen.c:1749 pex64igen.c:1749 #, c-format msgid "Table Addresses\n" msgstr "Таблица адреÑов\n" -#: peigen.c:1493 pepigen.c:1493 pex64igen.c:1493 +#: peigen.c:1752 pepigen.c:1752 pex64igen.c:1752 #, c-format msgid "\tExport Address Table \t\t" msgstr "\tТаблица ÑкÑпортируемых адреÑов \t\t" -#: peigen.c:1498 pepigen.c:1498 pex64igen.c:1498 +#: peigen.c:1757 pepigen.c:1757 pex64igen.c:1757 #, c-format msgid "\tName Pointer Table \t\t" msgstr "\tТаблица указателей имён \t\t" -#: peigen.c:1503 pepigen.c:1503 pex64igen.c:1503 +#: peigen.c:1762 pepigen.c:1762 pex64igen.c:1762 #, c-format msgid "\tOrdinal Table \t\t\t" msgstr "\tТаблица порÑдковых номеров \t\t\t" -#: peigen.c:1517 pepigen.c:1517 pex64igen.c:1517 +#: peigen.c:1776 pepigen.c:1776 pex64igen.c:1776 #, c-format msgid "" "\n" @@ -6126,15 +8430,20 @@ "\n" "Таблица ÑкÑпортируемых адреÑов -- Ðачальный порÑдковый номер %ld\n" -#: peigen.c:1536 pepigen.c:1536 pex64igen.c:1536 +#: peigen.c:1785 pepigen.c:1785 pex64igen.c:1785 +#, c-format +msgid "\tInvalid Export Address Table rva (0x%lx) or entry count (0x%lx)\n" +msgstr "\tÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° ÑкÑпортируемых адреÑов rva (0x%lx) или Ñчётчик Ñлементов (0x%lx)\n" + +#: peigen.c:1804 pepigen.c:1804 pex64igen.c:1804 msgid "Forwarder RVA" msgstr "ПереадреÑуемый RVA" -#: peigen.c:1547 pepigen.c:1547 pex64igen.c:1547 +#: peigen.c:1816 pepigen.c:1816 pex64igen.c:1816 msgid "Export RVA" msgstr "ЭкÑпортируемый RVA" -#: peigen.c:1554 pepigen.c:1554 pex64igen.c:1554 +#: peigen.c:1823 pepigen.c:1823 pex64igen.c:1823 #, c-format msgid "" "\n" @@ -6143,18 +8452,43 @@ "\n" "Таблица [порÑдковых номеров/указателей имён]\n" -#: peigen.c:1614 peigen.c:1797 pepigen.c:1614 pepigen.c:1797 pex64igen.c:1614 -#: pex64igen.c:1797 +#: peigen.c:1831 pepigen.c:1831 pex64igen.c:1831 +#, c-format +msgid "\tInvalid Name Pointer Table rva (0x%lx) or entry count (0x%lx)\n" +msgstr "\tÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° указателей имён (0x%lx) или Ñчётчик Ñлементов (0x%lx)\n" + +#: peigen.c:1838 pepigen.c:1838 pex64igen.c:1838 +#, c-format +msgid "\tInvalid Ordinal Table rva (0x%lx) or entry count (0x%lx)\n" +msgstr "\tÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð¾Ð±Ñ‹Ñ‡Ð½Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° rva (0x%lx) или Ñчётчик Ñлементов (0x%lx)\n" + +#: peigen.c:1852 pepigen.c:1852 pex64igen.c:1852 +#, c-format +msgid "\t[%4ld] \n" +msgstr "\t[%4ld] <повреждёно Ñмещение: %lx>\n" + +#: peigen.c:1906 peigen.c:2103 pepigen.c:1906 pepigen.c:2103 pex64igen.c:1906 +#: pex64igen.c:2103 #, c-format msgid "Warning, .pdata section size (%ld) is not a multiple of %d\n" msgstr "Внимание, размер раздела .pdata (%ld) не кратен %d\n" -#: peigen.c:1621 pepigen.c:1621 pex64igen.c:1621 +#: peigen.c:1910 peigen.c:2107 pepigen.c:1910 pepigen.c:2107 pex64igen.c:1910 +#: pex64igen.c:2107 +#, c-format +msgid "" +"\n" +"The Function Table (interpreted .pdata section contents)\n" +msgstr "" +"\n" +"Таблица функций (обработан раздел .pdata)\n" + +#: peigen.c:1913 pepigen.c:1913 pex64igen.c:1913 #, c-format msgid " vma:\t\t\tBegin Address End Address Unwind Info\n" msgstr " vma:\t\t\tÐачальный Ð°Ð´Ñ€ÐµÑ ÐšÐ¾Ð½ÐµÑ‡Ð½Ñ‹Ð¹ Ð°Ð´Ñ€ÐµÑ Ð Ð°ÑÐºÑ€Ñ‹Ð²Ð°ÑŽÑ‰Ð°Ñ Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ\n" -#: peigen.c:1623 pepigen.c:1623 pex64igen.c:1623 +#: peigen.c:1915 pepigen.c:1915 pex64igen.c:1915 #, c-format msgid "" " vma:\t\tBegin End EH EH PrologEnd Exception\n" @@ -6163,22 +8497,27 @@ " vma:\t\tÐачальный Конечный EH EH ÐÐ´Ñ€ÐµÑ ÐœÐ°Ñка\n" " \t\tÐÐ´Ñ€ÐµÑ ÐÐ´Ñ€ÐµÑ ÐžÐ±Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸Ðº Данные КонцаПролога ИÑключениÑ\n" -#: peigen.c:1697 pepigen.c:1697 pex64igen.c:1697 +#: peigen.c:1928 pepigen.c:1928 pex64igen.c:1928 +#, c-format +msgid "Virtual size of .pdata section (%ld) larger than real size (%ld)\n" +msgstr "Виртуальный размер раздела .pdata (%ld) больше чем реальный размер (%ld)\n" + +#: peigen.c:1998 pepigen.c:1998 pex64igen.c:1998 #, c-format msgid " Register save millicode" msgstr " Милликод ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñ€ÐµÐ³Ð¸Ñтра" -#: peigen.c:1700 pepigen.c:1700 pex64igen.c:1700 +#: peigen.c:2001 pepigen.c:2001 pex64igen.c:2001 #, c-format msgid " Register restore millicode" msgstr " Милликод воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ€ÐµÐ³Ð¸Ñтра" -#: peigen.c:1703 pepigen.c:1703 pex64igen.c:1703 +#: peigen.c:2004 pepigen.c:2004 pex64igen.c:2004 #, c-format msgid " Glue code sequence" msgstr " ПоÑледовательноÑÑ‚ÑŒ ÑвÑзующего кода" -#: peigen.c:1803 pepigen.c:1803 pex64igen.c:1803 +#: peigen.c:2109 pepigen.c:2109 pex64igen.c:2109 #, c-format msgid "" " vma:\t\tBegin Prolog Function Flags Exception EH\n" @@ -6187,7 +8526,7 @@ " vma:\t\tÐачальный Длина Длина Флаги Обработчик EH\n" " \t\tÐÐ´Ñ€ÐµÑ ÐŸÑ€Ð¾Ð»Ð¾Ð³Ð° Функции 32b exc ИÑключений Данные\n" -#: peigen.c:1929 pepigen.c:1929 pex64igen.c:1929 +#: peigen.c:2231 pepigen.c:2231 pex64igen.c:2231 #, c-format msgid "" "\n" @@ -6198,7 +8537,7 @@ "\n" "Ðачало перемещений в PE-файле (обработан раздел .reloc)\n" -#: peigen.c:1958 pepigen.c:1958 pex64igen.c:1958 +#: peigen.c:2261 pepigen.c:2261 pex64igen.c:2261 #, c-format msgid "" "\n" @@ -6207,15 +8546,142 @@ "\n" "Виртуальный адреÑ: %08lx Размер блока %ld (0x%lx) ЧиÑло меÑтоположений %ld\n" -#: peigen.c:1971 pepigen.c:1971 pex64igen.c:1971 +#: peigen.c:2279 pepigen.c:2279 pex64igen.c:2279 #, c-format msgid "\treloc %4d offset %4x [%4lx] %s" msgstr "\tперемещение %4d Ñмещение %4x [%4lx] %s" +#: peigen.c:2340 pepigen.c:2340 pex64igen.c:2340 +#, c-format +msgid "%03x %*.s Entry: " +msgstr "%03x %*.s Элемент: " + +#: peigen.c:2364 pepigen.c:2364 pex64igen.c:2364 +#, c-format +msgid "name: [val: %08lx len %d]: " +msgstr "имÑ: [значение: %08lx длина %d]: " + +#: peigen.c:2384 pepigen.c:2384 pex64igen.c:2384 +#, c-format +msgid "\n" +msgstr "<повреждена длина Ñтроки: %#x>\n" + +#: peigen.c:2394 pepigen.c:2394 pex64igen.c:2394 +#, c-format +msgid "\n" +msgstr "<повреждено Ñмещение Ñтроки: %#lx>\n" + +#: peigen.c:2399 pepigen.c:2399 pex64igen.c:2399 +#, c-format +msgid "ID: %#08lx" +msgstr "ID: %#08lx" + +#: peigen.c:2402 pepigen.c:2402 pex64igen.c:2402 +#, c-format +msgid ", Value: %#08lx\n" +msgstr ", значение: %#08lx\n" + +#: peigen.c:2424 pepigen.c:2424 pex64igen.c:2424 +#, c-format +msgid "%03x %*.s Leaf: Addr: %#08lx, Size: %#08lx, Codepage: %d\n" +msgstr "%03x %*.s лиÑÑ‚: адреÑ: %#08lx, размер: %#08lx, ÐºÐ¾Ð´Ð¾Ð²Ð°Ñ Ñтраница: %d\n" + +#: peigen.c:2466 pepigen.c:2466 pex64igen.c:2466 +#, c-format +msgid "\n" +msgstr "<неизвеÑтный тип каталога: %d>\n" + +#: peigen.c:2474 pepigen.c:2474 pex64igen.c:2474 +#, c-format +msgid " Table: Char: %d, Time: %08lx, Ver: %d/%d, Num Names: %d, IDs: %d\n" +msgstr " Таблица: Символ: %d, ВремÑ: %08lx, ВерÑиÑ: %d/%d, Кол-во имён: %d, ID: %d\n" + +#: peigen.c:2563 pepigen.c:2563 pex64igen.c:2563 +#, c-format +msgid "Corrupt .rsrc section detected!\n" +msgstr "Обнаружен повреждённый раздел .rsrc!\n" + +#: peigen.c:2587 pepigen.c:2587 pex64igen.c:2587 +#, c-format +msgid "" +"\n" +"WARNING: Extra data in .rsrc section - it will be ignored by Windows:\n" +msgstr "" +"\n" +"ПРЕДУПРЕЖДЕÐИЕ: дополнительные данные в разделе .rsrc — будут проигнорированы Windows:\n" + +#: peigen.c:2593 pepigen.c:2593 pex64igen.c:2593 +#, c-format +msgid " String table starts at offset: %#03x\n" +msgstr " Таблица Ñтрок начинаетÑÑ Ñо ÑмещениÑ: %#03x\n" + +#: peigen.c:2596 pepigen.c:2596 pex64igen.c:2596 +#, c-format +msgid " Resources start at offset: %#03x\n" +msgstr " РеÑурÑÑ‹ начинаютÑÑ Ñо ÑмещениÑ: %#03x\n" + +#: peigen.c:2648 pepigen.c:2648 pex64igen.c:2648 +#, c-format +msgid "" +"\n" +"There is a debug directory, but the section containing it could not be found\n" +msgstr "" +"\n" +"СущеÑтвует отладочный каталог, но не найден раздел, в котором он ÑодержитÑÑ\n" + +#: peigen.c:2654 pepigen.c:2654 pex64igen.c:2654 +#, c-format +msgid "" +"\n" +"There is a debug directory in %s, but that section has no contents\n" +msgstr "" +"\n" +"СущеÑтвует отладочный каталог в %s, но Ñтот раздел без Ñодержимого\n" + +#: peigen.c:2661 pepigen.c:2661 pex64igen.c:2661 +#, c-format +msgid "" +"\n" +"Error: section %s contains the debug data starting address but it is too small\n" +msgstr "" +"\n" +"Ошибка: раздел %s Ñодержит отладочные данные, Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ Ð°Ð´Ñ€ÐµÑа, который Ñлишком мал\n" + +#: peigen.c:2666 pepigen.c:2666 pex64igen.c:2666 +#, c-format +msgid "" +"\n" +"There is a debug directory in %s at 0x%lx\n" +"\n" +msgstr "" +"\n" +"Ð’ %s имеетÑÑ Ð¾Ñ‚Ð»Ð°Ð´Ð¾Ñ‡Ð½Ñ‹Ð¹ каталог по адреÑу 0x%lx\n" +"\n" + +#: peigen.c:2673 pepigen.c:2673 pex64igen.c:2673 +#, c-format +msgid "The debug data size field in the data directory is too big for the section" +msgstr "Поле размера отладочных данных в каталоге данных Ñлишком большое Ð´Ð»Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð°" + +#: peigen.c:2678 pepigen.c:2678 pex64igen.c:2678 +#, c-format +msgid "Type Size Rva Offset\n" +msgstr "Тип Размер Rva Смещение\n" + +#: peigen.c:2726 pepigen.c:2726 pex64igen.c:2726 +#, c-format +msgid "(format %c%c%c%c signature %s age %ld)\n" +msgstr "(формат %c%c%c%c подпиÑÑŒ %s возраÑÑ‚ %ld)\n" + +#: peigen.c:2734 pepigen.c:2734 pex64igen.c:2734 +#, c-format +msgid "The debug directory size is not a multiple of the debug directory entry size\n" +msgstr "Размер отладочного каталога не кратен размеру Ñлемента отладочного каталога\n" + #. The MS dumpbin program reportedly ands with 0xff0f before #. printing the characteristics field. Not sure why. No reason to #. emulate it here. -#: peigen.c:2010 pepigen.c:2010 pex64igen.c:2010 +#: peigen.c:2754 pepigen.c:2754 pex64igen.c:2754 #, c-format msgid "" "\n" @@ -6224,38 +8690,222 @@ "\n" "ХарактериÑтики 0x%x\n" -#: peigen.c:2310 pepigen.c:2310 pex64igen.c:2310 +#: peigen.c:2989 pepigen.c:2989 pex64igen.c:2989 +#, c-format +msgid "%B: Data Directory size (%lx) exceeds space left in section (%Lx)" +msgstr "%B: размер каталога данных (%lx) превышает оÑтавшееÑÑ Ð¼ÐµÑто в разделе (%Lx)" + +#: peigen.c:3019 pepigen.c:3019 pex64igen.c:3019 +msgid "Failed to update file offsets in debug directory" +msgstr "Сбой Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²Ñ‹Ñ… Ñмещений в отладочном каталоге" + +#: peigen.c:3025 pepigen.c:3025 pex64igen.c:3025 +msgid "%B: Failed to read debug data section" +msgstr "%B: не удалоÑÑŒ прочитать раздел отладочных данных" + +#: peigen.c:3841 pepigen.c:3841 pex64igen.c:3841 +#, c-format +msgid ".rsrc merge failure: duplicate string resource: %d" +msgstr "ошибка при ÑлиÑнии .rsrc: Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð°Ñ Ñтрока реÑурÑа: %d" + +#: peigen.c:3976 pepigen.c:3976 pex64igen.c:3976 +msgid ".rsrc merge failure: multiple non-default manifests" +msgstr "ошибка при ÑлиÑнии .rsrc: неÑколько манифеÑтов не по умолчанию" + +#: peigen.c:3994 pepigen.c:3994 pex64igen.c:3994 +msgid ".rsrc merge failure: a directory matches a leaf" +msgstr "ошибка при ÑлиÑнии .rsrc: каталог Ñовпадает Ñ Ð»Ð¸Ñтом" + +#: peigen.c:4036 pepigen.c:4036 pex64igen.c:4036 +msgid ".rsrc merge failure: duplicate leaf" +msgstr "ошибка при ÑлиÑнии .rsrc: повторÑющийÑÑ Ð»Ð¸ÑÑ‚" + +#: peigen.c:4038 pepigen.c:4038 pex64igen.c:4038 +#, c-format +msgid ".rsrc merge failure: duplicate leaf: %s" +msgstr "ошибка при ÑлиÑнии .rsrc: повторÑющийÑÑ Ð»Ð¸ÑÑ‚: %s" + +#: peigen.c:4104 pepigen.c:4104 pex64igen.c:4104 +msgid ".rsrc merge failure: dirs with differing characteristics\n" +msgstr "ошибка при ÑлиÑнии .rsrc: каталоги Ñ Ñ€Ð°Ð·Ð½Ñ‹Ð¼ характериÑтиками\n" + +#: peigen.c:4111 pepigen.c:4111 pex64igen.c:4111 +msgid ".rsrc merge failure: differing directory versions\n" +msgstr "ошибка при ÑлиÑнии .rsrc: верÑии каталогов отличаютÑÑ\n" + +#. Corrupted .rsrc section - cannot merge. +#: peigen.c:4228 pepigen.c:4228 pex64igen.c:4228 +msgid "%B: .rsrc merge failure: corrupt .rsrc section" +msgstr "%B: ошибка при ÑлиÑнии .rsrc: раздел .rsrc повреждён" + +#: peigen.c:4236 pepigen.c:4236 pex64igen.c:4236 +msgid "%B: .rsrc merge failure: unexpected .rsrc size" +msgstr "%B: ошибка при ÑлиÑнии rsrc: неожиданный размер раздела .rsrc" + +#: peigen.c:4375 pepigen.c:4375 pex64igen.c:4375 msgid "%B: unable to fill in DataDictionary[1] because .idata$2 is missing" msgstr "%B: невозможно заполнить DataDictionary[1], так как отÑутÑтвует .idata$2" -#: peigen.c:2330 pepigen.c:2330 pex64igen.c:2330 +#: peigen.c:4395 pepigen.c:4395 pex64igen.c:4395 msgid "%B: unable to fill in DataDictionary[1] because .idata$4 is missing" msgstr "%B: невозможно заполнить DataDictionary[1], так как отÑутÑтвует .idata$4" -#: peigen.c:2351 pepigen.c:2351 pex64igen.c:2351 +#: peigen.c:4416 pepigen.c:4416 pex64igen.c:4416 msgid "%B: unable to fill in DataDictionary[12] because .idata$5 is missing" msgstr "%B: невозможно заполнить DataDictionary[12], так как отÑутÑтвует .idata$5" -#: peigen.c:2371 pepigen.c:2371 pex64igen.c:2371 +#: peigen.c:4436 pepigen.c:4436 pex64igen.c:4436 msgid "%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing" msgstr "%B: невозможно заполнить DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)], так как отÑутÑтвует .idata$6" -#: peigen.c:2413 pepigen.c:2413 pex64igen.c:2413 +#: peigen.c:4478 pepigen.c:4478 pex64igen.c:4478 msgid "%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because .idata$6 is missing" msgstr "%B: невозможно заполнить DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)], так как отÑутÑтвует .idata$6" -#: peigen.c:2438 pepigen.c:2438 pex64igen.c:2438 +#: peigen.c:4503 pepigen.c:4503 pex64igen.c:4503 msgid "%B: unable to fill in DataDictionary[9] because __tls_used is missing" msgstr "%B: невозможно заполнить DataDictionary[9], так как отÑутÑтвует __tls_used" -#~ msgid "%B: error: taking the address of protected function '%s' cannot be done when making a shared library" -#~ msgstr "%B: ошибка: получение адреÑа защищённой функции «%s» не может быть выполнено при Ñоздании общей библиотеки" +#~ msgid "Unrecognized reloc" +#~ msgstr "ÐераÑпознанное перемещение" + +#~ msgid "%s: warning: illegal symbol index %ld in relocs" +#~ msgstr "%s: предупреждение: в перемещениÑÑ… недопуÑтимый Ñимвольный Ð¸Ð½Ð´ÐµÐºÑ %ld" + +#~ msgid "Dwarf Error: Bad abbrev number: %u." +#~ msgstr "Ошибка в dwarf: Ðеверный укороченный номер: %u." + +#~ msgid "%B: don't know how to handle allocated, application specific section `%s' [0x%8x]" +#~ msgstr "%B: неизвеÑтно как обработать размещённый, Ñпециальный раздел Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Â«%s» [0x%8x]" + +#~ msgid "%B: don't know how to handle processor specific section `%s' [0x%8x]" +#~ msgstr "%B: неизвеÑтно как обработать Ñпециальный раздел процеÑÑора «%s» [0x%8x]" + +#~ msgid "%B: don't know how to handle OS specific section `%s' [0x%8x]" +#~ msgstr "%B: неизвеÑтно как обработать Ñпециальный раздел ОС «%s» [0x%8x]" + +#~ msgid "%B: don't know how to handle section `%s' [0x%8x]" +#~ msgstr "%B: неизвеÑтно как обработать раздел «%s» [0x%8x]" + +#~ msgid "" +#~ "%B(%s): warning: interworking not enabled.\n" +#~ " first occurrence: %B: thumb call to arm" +#~ msgstr "" +#~ "%B(%s): предупреждение: interworking not enabled.\n" +#~ " первое упоминание: %B: thumb-вызов в arm" + +#~ msgid "DIV usage mismatch between %B and %B" +#~ msgstr "ИÑпользование DIV раÑходитÑÑ Ð² %B и %B" + +#~ msgid " [has entry point]" +#~ msgstr " [имеет точку входа]" + +#~ msgid "%B: unsupported relocation type %i" +#~ msgstr "%B: неподдерживаемый тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %i" + +#~ msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)" +#~ msgstr "%s: иÑпользует другие неизвеÑтные флаги e_flags (0x%lx) чем предыдущие модули (0x%lx)" -#~ msgid "%B(%A+0x%lx): cannot reach %s" -#~ msgstr "%B(%A+0x%lx): невозможно добратьÑÑ Ð´Ð¾ %s" +#~ msgid "%B(%A+0x%lx): R_68K_TLS_LE32 relocation not permitted in shared object" +#~ msgstr "%B(%A+0x%lx): перемещение R_68K_TLS_LE32 не разрешено Ð´Ð»Ñ Ð¾Ð±Ñ‰ÐµÐ³Ð¾ объекта" -#~ msgid "%B: warning: ignoring duplicate section `%A'\n" -#~ msgstr "%B: предупреждение: игнорируетÑÑ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€ÑющийÑÑ Ñ€Ð°Ð·Ð´ÐµÐ» «%A»\n" +#~ msgid "%s: unknown relocation type %d" +#~ msgstr "%s: неизвеÑтный тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %d" + +#~ msgid "%s: The target (%s) of an %s relocation is in the wrong section (%s)" +#~ msgstr "%s: Цель (%s) Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %s в ошибочном разделе (%s)" + +#~ msgid "Warning: %B uses soft float, %B uses single-precision hard float" +#~ msgstr "Предупреждение: %B иÑпользует программную плавающую точку, %B аппаратную плавающую точку одинарной точноÑти" + +#~ msgid "Warning: %B uses unknown small structure return convention %d" +#~ msgstr "Предупреждение: %B иÑпользует неизвеÑтное Ñоглашение %d по возврату маленькой Ñтруктуры" + +#~ msgid "%P: dynamic variable `%s' is zero size\n" +#~ msgstr "%P: динамичеÑÐºÐ°Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Â«%s» имеет нулевой размер\n" + +#~ msgid " [dsp]" +#~ msgstr " [dsp]" + +#~ msgid "%s: Malformed reloc detected for section %s" +#~ msgstr "%s: Обнаружено иÑкажённое перемещение Ð´Ð»Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° %s" + +#~ msgid " %s: 0x%v\n" +#~ msgstr " %s: 0x%v\n" + +#~ msgid "%s: 0x%v 0x%v\n" +#~ msgstr "%s: 0x%v 0x%v\n" + +#~ msgid " %s%s %s\n" +#~ msgstr " %s%s %s\n" + +#~ msgid "%B(%A+0x" +#~ msgstr "%B(%A+0x" + +#~ msgid "%P: %H: automatic multiple TOCs not supported using your crt files; recompile with -mminimal-toc or upgrade gcc\n" +#~ msgstr "%P: %H: автоматичеÑкие множеÑтвенные TOC не поддерживаютÑÑ Ñ‡ÐµÑ€ÐµÐ· ваши файлы crt; перекомпилируйте Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ -mminimal-toc или обновите gcc\n" + +#~ msgid "%P: %H: sibling call optimization to `%s' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `%s' extern\n" +#~ msgstr "%P: %H: Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¾Ð´Ð½Ð¾ÑƒÑ€Ð¾Ð²Ð½ÐµÐ²Ñ‹Ñ… вызовов к «%s» не позволÑет автоматичеÑкие множеÑтвенные TOC; перекомпилируйте Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ -mminimal-toc или -fno-optimize-sibling-calls, или Ñоздайте внешний «%s»\n" + +#~ msgid "%B: relocation %s against undefined %s `%s' can not be used when making a shared object%s" +#~ msgstr "%B: перемещение %s Ð´Ð»Ñ Ð½ÐµÐ¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð¾Ð³Ð¾ %s «%s» не может иÑпользоватьÑÑ Ð¿Ñ€Ð¸ Ñоздании общего объекта(ов)" + +#~ msgid "note: '%s' is defined in DSO %B so try adding it to the linker command line" +#~ msgstr "замечание: «%s» определён в DSO %B, попробуйте добавить его в командную Ñтроку компоновщика" + +#~ msgid "Warning: %B uses -msingle-float, %B uses -mips32r2 -mfp64" +#~ msgstr "Предупреждение: %B иÑпользует -msingle-float, %B иÑпользует -mips32r2 -mfp64" + +#~ msgid "Warning: %B uses -mdouble-float, %B uses -mips32r2 -mfp64" +#~ msgstr "Предупреждение: %B иÑпользует -mdouble-float, %B иÑпользует -mips32r2 -mfp64" + +#~ msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" is unsupported 'indirect' reference: setting to undefined" +#~ msgstr "bfd_mach_o_read_symtab_symbol: Ñимвол «%s» ÑвлÑетÑÑ Ð½ÐµÐ¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÐµÐ¼Ð¾Ð¹ «неÑвной» ÑÑылкой: наÑтройка не определена" + +#~ msgid "bfd_mach_o_read_dysymtab_symbol: unable to read %lu bytes at %lu" +#~ msgstr "bfd_mach_o_read_dysymtab_symbol: невозможно прочитать %lu байт из %lu" + +#~ msgid "Mach-O header:\n" +#~ msgstr "заголовок Mach-O:\n" + +#~ msgid " magic : %08lx\n" +#~ msgstr " отл.призн : %08lx\n" + +#~ msgid " cputype : %08lx (%s)\n" +#~ msgstr " тип ЦП : %08lx (%s)\n" + +#~ msgid " filetype : %08lx (%s)\n" +#~ msgstr " тип файла : %08lx (%s)\n" + +#~ msgid " ncmds : %08lx (%lu)\n" +#~ msgstr " ч_кмнд : %08lx (%lu)\n" + +#~ msgid " sizeofcmds: %08lx\n" +#~ msgstr " разм_кмнд : %08lx\n" + +#~ msgid " flags : %08lx (" +#~ msgstr " флаги : %08lx (" + +#~ msgid " reserved : %08x\n" +#~ msgstr " зарезерв : %08x\n" + +#~ msgid "Segments and Sections:\n" +#~ msgstr "Сегменты и разделы:\n" + +#~ msgid " #: Segment name Section name Address\n" +#~ msgstr "" +#~ " #: Segment name Section name Address\n" +#~ " #: Ðазвание Ñегм Ðазвание раздела ÐдреÑ\n" + +#~ msgid "Symbol %s replaced by %s\n" +#~ msgstr "Символ %s заменён на %s\n" + +#~ msgid "[%u]: %u\n" +#~ msgstr "[%u]: %u\n" + +#~ msgid ": %u.%u\n" +#~ msgstr ": %u.%u\n" #~ msgid "%B: warning: duplicate section `%A' has different size\n" #~ msgstr "%B: предупреждение: повторÑющийÑÑ Ñ€Ð°Ð·Ð´ÐµÐ» «%A» имеет другой размер\n" @@ -6263,9 +8913,6 @@ #~ msgid "relocation references a different segment" #~ msgstr "перемещение указывает на другой Ñегмент" -#~ msgid "%B: relocation type %d not implemented" -#~ msgstr "%B: тип Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Â«%s» не реализован" - #~ msgid "warning: %B and %B differ in position-dependence of data addressing" #~ msgstr "предупреждение: в %B и %B различаетÑÑ Ð°Ð´Ñ€ÐµÑÐ°Ñ†Ð¸Ñ Ð½ÐµÐ·Ð°Ð²Ð¸Ñимых по Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…" Binary files /tmp/tmp2enahulf/tIHkpyh4Fz/gdb-8.1/bfd/po/rw.gmo and /tmp/tmp2enahulf/I6n3Ljszco/gdb-8.2/bfd/po/rw.gmo differ diff -Nru gdb-8.1/bfd/po/SRC-POTFILES.in gdb-8.2/bfd/po/SRC-POTFILES.in --- gdb-8.1/bfd/po/SRC-POTFILES.in 2017-09-07 14:55:33.000000000 +0000 +++ gdb-8.2/bfd/po/SRC-POTFILES.in 2018-09-05 07:44:28.000000000 +0000 @@ -1,56 +1,34 @@ aix386-core.c aix5ppc-core.c -aout-adobe.c -aout-arm.c aout-cris.c 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 archures.c -armnetbsd.c bfd.c bfdio.c bfdwin.c binary.c -bout.c cache.c cf-i386lynx.c -cf-sparclynx.c cisco-core.c coff-alpha.c -coff-apollo.c -coff-arm.c -coff-aux.c coff-bfd.c coff-go32.c -coff-h8300.c -coff-h8500.c coff-i386.c -coff-i860.c -coff-i960.c -coff-m68k.c -coff-m88k.c coff-mips.c coff-rs6000.c coff-sh.c -coff-sparc.c coff-stgo32.c -coff-svm68k.c coff-tic30.c coff-tic4x.c coff-tic54x.c coff-tic80.c -coff-u68k.c -coff-w65.c -coff-we32k.c coff-x86_64.c coff-z80.c coff-z8k.c @@ -79,12 +57,8 @@ cpu-frv.c cpu-ft32.c cpu-h8300.c -cpu-h8500.c cpu-hppa.c -cpu-i370.c cpu-i386.c -cpu-i860.c -cpu-i960.c cpu-ia64.c cpu-iamcu.c cpu-ip2k.c @@ -99,7 +73,6 @@ cpu-m68hc11.c cpu-m68hc12.c cpu-m68k.c -cpu-m88k.c cpu-m9s12x.c cpu-m9s12xg.c cpu-mcore.c @@ -112,6 +85,7 @@ cpu-msp430.c cpu-mt.c cpu-nds32.c +cpu-nfp.c cpu-nios2.c cpu-ns32k.c cpu-or1k.c @@ -124,6 +98,7 @@ cpu-rl78.c cpu-rs6000.c cpu-rx.c +cpu-s12z.c cpu-s390.c cpu-score.c cpu-sh.c @@ -140,16 +115,13 @@ cpu-v850_rh850.c cpu-vax.c cpu-visium.c -cpu-w65.c cpu-wasm32.c -cpu-we32k.c cpu-xc16x.c cpu-xgate.c cpu-xstormy16.c cpu-xtensa.c cpu-z80.c cpu-z8k.c -demo64.c dwarf1.c dwarf2.c ecoff.c @@ -188,10 +160,7 @@ elf32-h8300.c elf32-hppa.c elf32-hppa.h -elf32-i370.c elf32-i386.c -elf32-i860.c -elf32-i960.c elf32-ip2k.c elf32-iq2000.c elf32-lm32.c @@ -201,7 +170,6 @@ elf32-m68hc12.c elf32-m68hc1x.c elf32-m68k.c -elf32-m88k.c elf32-mcore.c elf32-mep.c elf32-metag.c @@ -218,13 +186,11 @@ elf32-pru.c elf32-rl78.c elf32-rx.c +elf32-s12z.c elf32-s390.c elf32-score.c elf32-score7.c -elf32-sh-symbian.c elf32-sh.c -elf32-sh64-com.c -elf32-sh64.c elf32-sparc.c elf32-spu.c elf32-tic6x.c @@ -246,9 +212,9 @@ elf64-ia64-vms.c elf64-mips.c elf64-mmix.c +elf64-nfp.c elf64-ppc.c elf64-s390.c -elf64-sh64.c elf64-sparc.c elf64-tilegx.c elf64-x86-64.c @@ -265,27 +231,15 @@ elfxx-tilegx.c elfxx-x86.c elfxx-x86.c -epoc-pe-arm.c -epoc-pei-arm.c format.c -freebsd.h genlink.h go32stub.h hash.c -hp300bsd.c -hp300hpux.c hpux-core.c i386aout.c i386bsd.c -i386dynix.c -i386freebsd.c -i386linux.c i386lynx.c -i386mach3.c i386msdos.c -i386netbsd.c -i386os9k.c -ieee.c ihex.c init.c irix-core.c @@ -295,18 +249,10 @@ libcoff.h libecoff.h libhppa.h -libieee.h -libnlm.h -liboasys.h libpei.h libxcoff.h linker.c lynx-core.c -m68k4knetbsd.c -m68klinux.c -m68knetbsd.c -m88kmach3.c -m88kopenbsd.c mach-o-aarch64.c mach-o-arm.c mach-o-i386.c @@ -314,24 +260,11 @@ mach-o.c mach-o.h merge.c -mipsbsd.c mmo.c netbsd-core.c netbsd.h -newsos3.c -nlm-target.h -nlm.c -nlm32-alpha.c -nlm32-i386.c -nlm32-ppc.c -nlm32-sparc.c -nlm32.c -nlm64.c -nlmcode.h -nlmswap.h ns32k.h ns32knetbsd.c -oasys.c opncls.c osf-core.c pc532-mach.c @@ -340,7 +273,6 @@ pe-arm.c pe-i386.c pe-mcore.c -pe-mips.c pe-ppc.c pe-sh.c pe-x86_64.c @@ -352,7 +284,6 @@ pei-i386.c pei-ia64.c pei-mcore.c -pei-mips.c pei-ppc.c pei-sh.c pei-x86_64.c @@ -361,29 +292,22 @@ ppcboot.c reloc.c reloc16.c -riscix.c rs6000-core.c sco5-core.c section.c simple.c som.c som.h -sparclinux.c -sparclynx.c -sparcnetbsd.c srec.c stab-syms.c stabs.c -sunos.c syms.c targets.c tekhex.c trad-core.c vax1knetbsd.c -vaxbsd.c vaxnetbsd.c verilog.c -versados.c version.h vms-alpha.c vms-lib.c Binary files /tmp/tmp2enahulf/tIHkpyh4Fz/gdb-8.1/bfd/po/sr.gmo and /tmp/tmp2enahulf/I6n3Ljszco/gdb-8.2/bfd/po/sr.gmo differ Binary files /tmp/tmp2enahulf/tIHkpyh4Fz/gdb-8.1/bfd/po/sv.gmo and /tmp/tmp2enahulf/I6n3Ljszco/gdb-8.2/bfd/po/sv.gmo differ Binary files /tmp/tmp2enahulf/tIHkpyh4Fz/gdb-8.1/bfd/po/tr.gmo and /tmp/tmp2enahulf/I6n3Ljszco/gdb-8.2/bfd/po/tr.gmo differ Binary files /tmp/tmp2enahulf/tIHkpyh4Fz/gdb-8.1/bfd/po/uk.gmo and /tmp/tmp2enahulf/I6n3Ljszco/gdb-8.2/bfd/po/uk.gmo differ diff -Nru gdb-8.1/bfd/po/uk.po gdb-8.2/bfd/po/uk.po --- gdb-8.1/bfd/po/uk.po 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/bfd/po/uk.po 2018-09-05 07:27:13.000000000 +0000 @@ -2,13 +2,13 @@ # Copyright (C) 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the binutils package. # -# Yuri Chornoivan , 2012, 2014, 2017. +# Yuri Chornoivan , 2012, 2014, 2017, 2018. msgid "" msgstr "" -"Project-Id-Version: bfd 2.28.90\n" +"Project-Id-Version: bfd 2.30.90\n" "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n" -"POT-Creation-Date: 2017-07-03 16:54+0200\n" -"PO-Revision-Date: 2017-07-07 21:57+0300\n" +"POT-Creation-Date: 2018-06-24 19:41+0100\n" +"PO-Revision-Date: 2018-06-25 15:46+0200\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" @@ -16,177 +16,217 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Lokalize 1.5\n" - -#: aout-adobe.c:126 -#, c-format -msgid "%B: Unknown section type in a.out.adobe file: %x\n" -msgstr "%B: невідомий тип розділу у файлі a.out.adobe: %x\n" +"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Lokalize 2.0\n" #: aout-cris.c:200 #, c-format -msgid "%B: Invalid relocation type exported: %d" -msgstr "%B: екÑпортовано некоректний тип переÑуваннÑ: %d" +msgid "%pB: unsupported relocation type exported: %#x" +msgstr "%pB: екÑпортовано непідтримуваний тип переÑуваннÑ: %#x" #: aout-cris.c:244 #, c-format -msgid "%B: Invalid relocation type imported: %d" -msgstr "%B: імпортовано некоректний тип переÑуваннÑ: %d" +msgid "%pB: unsupported relocation type imported: %#x" +msgstr "%pB: імпортовано непідтримуваний тип переÑуваннÑ: %#x" #: aout-cris.c:256 #, c-format -msgid "%B: Bad relocation record imported: %d" -msgstr "%B: імпортовано помилковий Ð·Ð°Ð¿Ð¸Ñ Ð¿ÐµÑ€ÐµÑуваннÑ: %d" +msgid "%pB: bad relocation record imported: %d" +msgstr "%pB: імпортовано помилковий Ð·Ð°Ð¿Ð¸Ñ Ð¿ÐµÑ€ÐµÑуваннÑ: %d" -#: aoutx.h:1284 aoutx.h:1621 pdp11.c:1152 pdp11.c:1413 +#: aoutx.h:1264 aoutx.h:1617 pdp11.c:1138 pdp11.c:1399 #, c-format -msgid "%B: can not represent section `%A' in a.out object file format" -msgstr "%B: Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ «%A» у форматі об’єктних файлів a.out неможливе" +msgid "%pB: can not represent section `%pA' in a.out object file format" +msgstr "%pB: Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ «%pA» у форматі об’єктних файлів a.out неможливе" -#: aoutx.h:1585 pdp11.c:1385 +#: aoutx.h:1581 pdp11.c:1371 #, c-format -msgid "%B: can not represent section for symbol `%s' in a.out object file format" -msgstr "%B: Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð´Ð»Ñ Ñимволу «%s» у форматі об’єктних файлів a.out неможливе" +msgid "%pB: can not represent section for symbol `%s' in a.out object file format" +msgstr "%pB: Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð´Ð»Ñ Ñимволу «%s» у форматі об’єктних файлів a.out неможливе" -#: aoutx.h:1588 vms-alpha.c:7776 +#: aoutx.h:1584 vms-alpha.c:7854 msgid "*unknown*" msgstr "*невідомо*" -#: aoutx.h:2407 aoutx.h:2425 -msgid "%B: attempt to write out unknown reloc type" -msgstr "%B: Ñпроба випиÑати невідомий тип переÑуваннÑ" +#: aoutx.h:1720 +#, c-format +msgid "%pB: invalid string offset % >= %" +msgstr "%pB: некоректний зÑув Ñ€Ñдка, % >= %" -#: aoutx.h:4077 aoutx.h:4398 -msgid "%P: %B: unexpected relocation type\n" -msgstr "%P: %B: неочікуваний тип переÑуваннÑ\n" +#: aoutx.h:2411 aoutx.h:2429 +#, c-format +msgid "%pB: attempt to write out unknown reloc type" +msgstr "%pB: Ñпроба випиÑати невідомий тип переÑуваннÑ" -#: aoutx.h:5424 pdp11.c:3708 +#: aoutx.h:4084 #, c-format -msgid "%B: relocatable link from %s to %s not supported" -msgstr "%B: підтримки придатних до переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñилань з %s до %s не передбачено" +msgid "%pB: unsupported relocation type" +msgstr "%pB: непідтримуваний тип переÑуваннÑ" -#: archive.c:2293 -msgid "Warning: writing archive was slow: rewriting timestamp\n" -msgstr "ПопередженнÑ: запиÑÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ñ€Ñ…Ñ–Ð²Ñƒ було повільним: перезапиÑуємо чаÑову позначку\n" +#. Unknown relocation. +#: aoutx.h:4405 coff-alpha.c:601 coff-alpha.c:1514 coff-rs6000.c:2773 +#: coff-sh.c:504 coff-tic4x.c:184 coff-tic54x.c:279 elf-hppa.h:1040 +#: elf-hppa.h:1068 elf-m10200.c:226 elf-m10300.c:812 elf32-arc.c:519 +#: elf32-arm.c:1944 elf32-avr.c:959 elf32-bfin.c:1061 elf32-bfin.c:4698 +#: elf32-cr16.c:653 elf32-cr16.c:683 elf32-cr16c.c:186 elf32-cris.c:467 +#: elf32-crx.c:429 elf32-d10v.c:234 elf32-d30v.c:522 elf32-d30v.c:544 +#: elf32-dlx.c:548 elf32-epiphany.c:376 elf32-fr30.c:381 elf32-frv.c:2558 +#: elf32-frv.c:6262 elf32-ft32.c:306 elf32-h8300.c:302 elf32-i386.c:401 +#: elf32-ip2k.c:1245 elf32-iq2000.c:442 elf32-lm32.c:539 elf32-m32c.c:305 +#: elf32-m32r.c:1286 elf32-m32r.c:1311 elf32-m32r.c:2417 elf32-m68hc11.c:390 +#: elf32-m68hc12.c:510 elf32-m68k.c:352 elf32-mcore.c:354 elf32-mcore.c:440 +#: elf32-mep.c:389 elf32-metag.c:878 elf32-microblaze.c:692 +#: elf32-microblaze.c:969 elf32-mips.c:2229 elf32-moxie.c:137 +#: elf32-msp430.c:648 elf32-msp430.c:658 elf32-mt.c:241 elf32-nds32.c:2880 +#: elf32-nds32.c:2904 elf32-nds32.c:4423 elf32-nios2.c:3015 elf32-or1k.c:715 +#: elf32-pj.c:325 elf32-ppc.c:2061 elf32-ppc.c:2074 elf32-pru.c:420 +#: elf32-rl78.c:292 elf32-rx.c:314 elf32-rx.c:323 elf32-s12z.c:238 +#: elf32-s390.c:347 elf32-sh.c:438 elf32-spu.c:160 elf32-tic6x.c:1508 +#: elf32-tic6x.c:1518 elf32-tic6x.c:1537 elf32-tic6x.c:1547 elf32-tic6x.c:2642 +#: elf32-tilepro.c:803 elf32-v850.c:1899 elf32-v850.c:1921 elf32-v850.c:4270 +#: elf32-vax.c:290 elf32-visium.c:482 elf32-wasm32.c:106 elf32-xc16x.c:241 +#: elf32-xgate.c:428 elf32-xstormy16.c:395 elf32-xtensa.c:459 +#: elf32-xtensa.c:493 elf64-alpha.c:1112 elf64-alpha.c:4101 elf64-alpha.c:4249 +#: elf64-ia64-vms.c:254 elf64-ia64-vms.c:3440 elf64-mips.c:3623 +#: elf64-mips.c:3639 elf64-mmix.c:1264 elf64-nfp.c:239 elf64-ppc.c:2281 +#: elf64-ppc.c:2555 elf64-ppc.c:2564 elf64-s390.c:328 elf64-s390.c:378 +#: elf64-x86-64.c:285 elfn32-mips.c:3451 elfxx-ia64.c:325 elfxx-riscv.c:955 +#: elfxx-sparc.c:589 elfxx-sparc.c:639 elfxx-sparc.c:661 elfxx-tilegx.c:912 +#: elfxx-tilegx.c:952 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-aarch64.c:2126 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-aarch64.c:2224 +#: elf32-ia64.c:211 elf32-ia64.c:3863 elf64-ia64.c:211 elf64-ia64.c:3863 +#, c-format +msgid "%pB: unsupported relocation type %#x" +msgstr "%pB: непідтримуваний тип переÑÑƒÐ²Ð°Ð½Ð½Ñ %#x" + +#: aoutx.h:5432 pdp11.c:3694 +#, c-format +msgid "%pB: relocatable link from %s to %s not supported" +msgstr "%pB: підтримки придатних до переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñилань з %s до %s не передбачено" + +#: archive.c:2216 +msgid "warning: writing archive was slow: rewriting timestamp" +msgstr "попередженнÑ: запиÑÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ñ€Ñ…Ñ–Ð²Ñƒ було повільним: перезапиÑуємо чаÑову позначку" -#: archive.c:2405 linker.c:1408 -msgid "%B: plugin needed to handle lto object" -msgstr "%B: Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ об'єкта lto потрібен додаток" +#: archive.c:2332 linker.c:1416 +#, c-format +msgid "%pB: plugin needed to handle lto object" +msgstr "%pB: Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ об'єкта lto потрібен додаток" -#: archive.c:2634 +#: archive.c:2561 msgid "Reading archive file mod timestamp" msgstr "Ð§Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ‡Ð°Ñової позначки mod архівного файла" -#: archive.c:2658 +#: archive.c:2585 msgid "Writing updated armap timestamp" msgstr "ЗапиÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾Ñ— чаÑової позначки armap" +#: bfd.c:449 +msgid "no error" +msgstr "без помилок" + +#: bfd.c:450 +msgid "system call error" +msgstr "помилка ÑиÑтемного виклику" + +#: bfd.c:451 +msgid "invalid bfd target" +msgstr "некоректне Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ bfd" + +#: bfd.c:452 +msgid "file in wrong format" +msgstr "файл у помилковому форматі" + +#: bfd.c:453 +msgid "archive object file in wrong format" +msgstr "архівний об’єктний файл у помилковому форматі" + #: bfd.c:454 -msgid "No error" -msgstr "Ðемає помилок" +msgid "invalid operation" +msgstr "некоректна діÑ" #: bfd.c:455 -msgid "System call error" -msgstr "Помилка ÑиÑтемного виклику" +msgid "memory exhausted" +msgstr "пам'ÑÑ‚ÑŒ вичерпано" #: bfd.c:456 -msgid "Invalid bfd target" -msgstr "Ðекоректне Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ bfd" +msgid "no symbols" +msgstr "немає Ñимволів" #: bfd.c:457 -msgid "File in wrong format" -msgstr "Файл у помилковому форматі" +msgid "archive has no index; run ranlib to add one" +msgstr "у архіві немає покажчика; запуÑÑ‚Ñ–Ñ‚ÑŒ ranlib, щоб його додати" #: bfd.c:458 -msgid "Archive object file in wrong format" -msgstr "Ðрхівний об’єктний файл у помилковому форматі" +msgid "no more archived files" +msgstr "більше архівованих файлів немає" #: bfd.c:459 -msgid "Invalid operation" -msgstr "Ðекоректна діÑ" +msgid "malformed archive" +msgstr "архів з пошкодженим форматуваннÑм" #: bfd.c:460 -msgid "Memory exhausted" -msgstr "Пам’ÑÑ‚ÑŒ вичерпано" +msgid "DSO missing from command line" +msgstr "у командному Ñ€Ñдку пропущено DSO" #: bfd.c:461 -msgid "No symbols" -msgstr "Ðемає Ñимволів" +msgid "file format not recognized" +msgstr "формат файла не розпізнано" #: bfd.c:462 -msgid "Archive has no index; run ranlib to add one" -msgstr "У архіві немає покажчика; запуÑÑ‚Ñ–Ñ‚ÑŒ ranlib, щоб його додати" +msgid "file format is ambiguous" +msgstr "формат файла Ñ” неоднозначним" #: bfd.c:463 -msgid "No more archived files" -msgstr "Більше архівованих файлів немає" +msgid "section has no contents" +msgstr "розділ не має вміÑту" #: bfd.c:464 -msgid "Malformed archive" -msgstr "Ðрхів з пошкодженим форматуваннÑм" +msgid "nonrepresentable section on output" +msgstr "розділ, непридатний Ð´Ð»Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…" #: bfd.c:465 -msgid "DSO missing from command line" -msgstr "у командному Ñ€Ñдку пропущено DSO" +msgid "symbol needs debug section which does not exist" +msgstr "Ñимвол потребує розділу діагноÑтики, Ñкого не Ñ–Ñнує" #: bfd.c:466 -msgid "File format not recognized" -msgstr "Формат файла не розпізнано" +msgid "bad value" +msgstr "помилкове значеннÑ" #: bfd.c:467 -msgid "File format is ambiguous" -msgstr "Формат файла Ñ” неоднозначним" +msgid "file truncated" +msgstr "файл обрізано" #: bfd.c:468 -msgid "Section has no contents" -msgstr "Розділ не має вміÑту" +msgid "file too big" +msgstr "файл Ñ” надто великим" #: bfd.c:469 -msgid "Nonrepresentable section on output" -msgstr "Розділ, непридатний Ð´Ð»Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…" - -#: bfd.c:470 -msgid "Symbol needs debug section which does not exist" -msgstr "Символ потребує розділу діагноÑтики, Ñкого не Ñ–Ñнує" - -#: bfd.c:471 -msgid "Bad value" -msgstr "помилкове значеннÑ" - -#: bfd.c:472 -msgid "File truncated" -msgstr "Файл обрізано" - -#: bfd.c:473 -msgid "File too big" -msgstr "Файл Ñ” надто великим" - -#: bfd.c:474 #, c-format -msgid "Error reading %s: %s" -msgstr "Помилка під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ %s: %s" +msgid "error reading %s: %s" +msgstr "помилка під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ %s: %s" -#: bfd.c:475 -msgid "#" +#: bfd.c:470 +msgid "#" msgstr "#<некоректний код помилки>" -#: bfd.c:1138 +#: bfd.c:1429 #, c-format msgid "BFD %s assertion fail %s:%d" msgstr "Оператором контролю BFD %s виÑвлено помилку %s:%d" -#: bfd.c:1151 +#: bfd.c:1442 #, c-format msgid "BFD %s internal error, aborting at %s:%d in %s\n" msgstr "Ð’Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° BFD %s, перериваємо роботу у %s:%d у %s\n" -#: bfd.c:1156 +#: bfd.c:1447 #, c-format msgid "BFD %s internal error, aborting at %s:%d\n" msgstr "Ð’Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° BFD %s, перериваємо роботу у %s:%d\n" -#: bfd.c:1158 +#: bfd.c:1449 msgid "Please report this bug.\n" msgstr "Будь лаÑка, повідомте про цю ваду.\n" @@ -202,567 +242,443 @@ #: binary.c:276 #, c-format -msgid "warning: writing section `%A' at huge (ie negative) file offset 0x%lx." -msgstr "попередженнÑ: виконуєтьÑÑ Ð·Ð°Ð¿Ð¸Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ «%A» за надто великим (тобто від’ємним) відÑтупом у файлі, 0x%lx." - -#: bout.c:1142 elf-m10300.c:2651 elf32-avr.c:2484 elf32-frv.c:5633 -#: elf64-ia64-vms.c:353 elfxx-sparc.c:2989 reloc.c:8017 reloc16.c:156 -#: elf32-ia64.c:351 elf64-ia64.c:351 -msgid "%P%F: --relax and -r may not be used together\n" -msgstr "%P%F: --relax Ñ– -r не можна викориÑтовувати одночаÑно\n" +msgid "warning: writing section `%pA' at huge (ie negative) file offset" +msgstr "попередженнÑ: виконуєтьÑÑ Ð·Ð°Ð¿Ð¸Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ «%pA» за надто великим (тобто від’ємним) відÑтупом у файлі" -#: cache.c:273 +#: cache.c:272 #, c-format -msgid "reopening %B: %s\n" -msgstr "повторне Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ %B: %s\n" +msgid "reopening %pB: %s\n" +msgstr "повторне Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ %pB: %s\n" #: coff-alpha.c:450 -msgid "" -"%B: Cannot handle compressed Alpha binaries.\n" -" Use compiler flags, or objZ, to generate uncompressed binaries." -msgstr "" -"%B: обробка ÑтиÑнутих двійкових файлів Alpha неможлива.\n" -" СкориÑтайтеÑÑ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñми компілÑтора або objZ Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½ÐµÑтиÑнених двійкових файлів." - -#: coff-alpha.c:602 -msgid "%B: unknown/unsupported relocation type %d" -msgstr "%B: невідомий або непідтримуваний тип переÑÑƒÐ²Ð°Ð½Ð½Ñ %d" +#, c-format +msgid "%pB: cannot handle compressed Alpha binaries; use compiler flags, or objZ, to generate uncompressed binaries" +msgstr "%pB: обробка ÑтиÑнутих двійкових файлів Alpha неможлива. СкориÑтайтеÑÑ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñми компілÑтора або objZ Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½ÐµÑтиÑнених двійкових файлів." -#: coff-alpha.c:851 coff-alpha.c:888 coff-alpha.c:1961 coff-mips.c:944 +#: coff-alpha.c:850 coff-alpha.c:887 coff-alpha.c:1957 coff-mips.c:950 msgid "GP relative relocation used when GP not defined" msgstr "ВикориÑтано відноÑне переÑÑƒÐ²Ð°Ð½Ð½Ñ GP, втім, GP не визначено" -#: coff-alpha.c:1444 +#: coff-alpha.c:1443 msgid "using multiple gp values" msgstr "викориÑтовуєтьÑÑ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ° значень gp" -#: coff-alpha.c:1503 -msgid "%B: unsupported relocation: ALPHA_R_GPRELHIGH" -msgstr "%B: переÑуваннÑ, підтримки Ñкого не передбачено: ALPHA_R_GPRELHIGH" - -#: coff-alpha.c:1510 -msgid "%B: unsupported relocation: ALPHA_R_GPRELLOW" -msgstr "%B: переÑуваннÑ, підтримки Ñкого не передбачено: ALPHA_R_GPRELLOW" - -#: coff-alpha.c:1518 elf32-i370.c:1085 elf32-m32r.c:2418 -#: elf32-microblaze.c:952 elf64-alpha.c:4167 elf64-alpha.c:4315 -#: elf64-ia64-vms.c:3431 elf32-ia64.c:3839 elf64-ia64.c:3839 -#, c-format -msgid "%B: unknown relocation type %d" -msgstr "%B: невідомий тип переÑÑƒÐ²Ð°Ð½Ð½Ñ %d" - -#: coff-arm.c:1032 -#, c-format -msgid "%B: unable to find THUMB glue '%s' for `%s'" -msgstr "%B: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñклейку THUMB «%s» Ð´Ð»Ñ Â«%s»" - -#: coff-arm.c:1061 -#, c-format -msgid "%B: unable to find ARM glue '%s' for `%s'" -msgstr "%B: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñклейку ARM «%s» Ð´Ð»Ñ Â«%s»" - -#: coff-arm.c:1363 elf32-arm.c:8896 -#, c-format -msgid "" -"%B(%s): warning: interworking not enabled.\n" -" first occurrence: %B: arm call to thumb" -msgstr "" -"%B(%s): попередженнÑ: ÑуміÑну роботу не увімкнено.\n" -" перша згадка: %B: виклик arm до thumb" - -#: coff-arm.c:1453 -#, c-format -msgid "" -"%B(%s): warning: interworking not enabled.\n" -" first occurrence: %B: thumb call to arm\n" -" consider relinking with --support-old-code enabled" -msgstr "" -"%B(%s): попередженнÑ: ÑуміÑну роботу не увімкнено.\n" -" перша згадка: %B: виклик arm до arm\n" -" Ñпробуйте повторне Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· увімкненим --support-old-code" - -#: coff-arm.c:1746 coff-tic80.c:670 cofflink.c:3123 -#, c-format -msgid "%B: bad reloc address 0x%lx in section `%A'" -msgstr "%B: помилкова адреÑа переÑÑƒÐ²Ð°Ð½Ð½Ñ 0x%lx у розділі «%A»" - -#: coff-arm.c:2071 -#, c-format -msgid "%B: illegal symbol index in reloc: %d" -msgstr "%B: некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñимволу у переÑуванні: %d" - -#: coff-arm.c:2203 -#, c-format -msgid "error: %B is compiled for APCS-%d, whereas %B is compiled for APCS-%d" -msgstr "помилка: %B зібрано Ð´Ð»Ñ APCS-%d, а %B зібрано Ð´Ð»Ñ APCS-%d" - -#: coff-arm.c:2216 elf32-arm.c:19756 -#, c-format -msgid "error: %B passes floats in float registers, whereas %B passes them in integer registers" -msgstr "помилка: %B передає чиÑла з рухомою комою до регіÑтрів, а %B передає Ñ—Ñ… у цілочиÑельні регіÑтри" - -#: coff-arm.c:2221 elf32-arm.c:19760 -#, c-format -msgid "error: %B passes floats in integer registers, whereas %B passes them in float registers" -msgstr "помилка: %B передає цілі чиÑла до регіÑтрів, а %B передає Ñ—Ñ… у регіÑтри чиÑел з рухомою комою" - -#: coff-arm.c:2233 -#, c-format -msgid "error: %B is compiled as position independent code, whereas target %B is absolute position" -msgstr "помилка: %B зібрано Ñк код з незалежним позиціюваннÑм, а Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %B визначено у форматі абÑолютної позиції" - -#: coff-arm.c:2238 -#, c-format -msgid "error: %B is compiled as absolute position code, whereas target %B is position independent" -msgstr "помилка: %B зібрано Ñк код з абÑолютним позиціюваннÑм, а Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %B визначено у форматі незалежної позиції" - -#: coff-arm.c:2265 elf32-arm.c:19825 -#, c-format -msgid "Warning: %B supports interworking, whereas %B does not" -msgstr "ПопередженнÑ: у %B передбачено ÑуміÑну роботу, а у %B не передбачено" - -#: coff-arm.c:2270 elf32-arm.c:19831 -#, c-format -msgid "Warning: %B does not support interworking, whereas %B does" -msgstr "ПопередженнÑ: у %B не передбачено ÑуміÑної роботи, а у %B передбачено" - -#: coff-arm.c:2293 -#, c-format -msgid "private flags = %x:" -msgstr "закриті прапорці = %x:" - -#: coff-arm.c:2301 elf32-arm.c:14156 +#: coff-alpha.c:1501 coff-alpha.c:1507 elf.c:8983 elf32-mcore.c:100 +#: elf32-mcore.c:455 elf32-ppc.c:8755 elf32-ppc.c:9887 elf64-ppc.c:14936 #, c-format -msgid " [floats passed in float registers]" -msgstr " [чиÑла з рухомою комою передано до регіÑтрів чиÑел з рухомою комою]" +msgid "%pB: %s unsupported" +msgstr "%pB: підтримки %s не передбачено" -#: coff-arm.c:2303 -#, c-format -msgid " [floats passed in integer registers]" -msgstr " [чиÑла з рухомою комою передано до цілочиÑельних регіÑтрів]" +#: coff-mips.c:640 elf32-mips.c:1742 elf32-score.c:430 elf32-score7.c:330 +#: elf64-mips.c:3131 elfn32-mips.c:2956 +msgid "GP relative relocation when _gp not defined" +msgstr "відноÑне переÑÑƒÐ²Ð°Ð½Ð½Ñ GP, але _gp не визначено" -#: coff-arm.c:2306 elf32-arm.c:14159 +#: coff-rs6000.c:2859 #, c-format -msgid " [position independent]" -msgstr " [незалежний від позиції]" +msgid "%pB: TOC reloc at %# to symbol `%s' with no TOC entry" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ TOC за адреÑою %# до Ñимволу «%s», Ñкий немає запиÑу у TOC" -#: coff-arm.c:2308 +#: coff-rs6000.c:3605 coff64-rs6000.c:2150 #, c-format -msgid " [absolute position]" -msgstr " [з абÑолютним позиціюваннÑм]" +msgid "%pB: symbol `%s' has unrecognized smclas %d" +msgstr "%pB: Ñимвол «%s» належить до нерозпізнаного smclas %d" -#: coff-arm.c:2312 +#: coff-sh.c:780 elf32-sh.c:521 #, c-format -msgid " [interworking flag not initialised]" -msgstr " [прапорець ÑуміÑної роботи не ініціалізовано]" +msgid "%pB: %#: warning: bad R_SH_USES offset" +msgstr "%pB: %#: попередженнÑ: помилковий відÑтуп R_SH_USES" -#: coff-arm.c:2314 +#: coff-sh.c:791 #, c-format -msgid " [interworking supported]" -msgstr " [підтримуєтьÑÑ ÑуміÑна робота]" +msgid "%pB: %#: warning: R_SH_USES points to unrecognized insn %#x" +msgstr "%pB: %#: попередженнÑ: R_SH_USES вказує на нерозпізнану інÑтрукцію %#x" -#: coff-arm.c:2316 +#: coff-sh.c:809 elf32-sh.c:552 #, c-format -msgid " [interworking not supported]" -msgstr " [ÑуміÑна робота не підтримуєтьÑÑ]" - -#: coff-arm.c:2361 elf32-arm.c:13017 -msgid "Warning: Not setting interworking flag of %B since it has already been specified as non-interworking" -msgstr "ПопередженнÑ: прапорець ÑуміÑної роботи у %B не вÑтановлено, оÑкільки його вже було визначено так, щоб він заборонÑв ÑуміÑну роботу" - -#: coff-arm.c:2364 elf32-arm.c:13021 -msgid "Warning: Clearing the interworking flag of %B due to outside request" -msgstr "ПопередженнÑ: знÑто прапорець ÑуміÑної роботи у %B у відповідь на запит ззовні" +msgid "%pB: %#: warning: bad R_SH_USES load offset" +msgstr "%pB: %#: попередженнÑ: помилковий відÑтуп Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ R_SH_USES" -#: coff-arm.c:2421 elf32-arm.c:13066 +#: coff-sh.c:834 elf32-sh.c:568 #, c-format -msgid "Warning: Clearing the interworking flag of %B because non-interworking code in %B has been linked with it" -msgstr "ПопередженнÑ: знÑто прапорець ÑуміÑної роботи у %B, оÑкільки з ним компонуєтьÑÑ ÐºÐ¾Ð´, Ñкий непридатний до Ñпільної роботи, у %B" +msgid "%pB: %#: warning: could not find expected reloc" +msgstr "%pB: %#: попередженнÑ: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ очікуване переÑуваннÑ" -#: coff-h8300.c:1068 +#: coff-sh.c:851 elf32-sh.c:597 #, c-format -msgid "cannot handle R_MEM_INDIRECT reloc when using %s output" -msgstr "переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ обробити R_MEM_INDIRECT, Ñкщо викориÑтано Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð¾ %s" +msgid "%pB: %#: warning: symbol in unexpected section" +msgstr "%pB: %#: попередженнÑ: Ñимвол у неочікуваному розділі" -#: coff-i860.c:146 +#: coff-sh.c:977 elf32-sh.c:727 #, c-format -msgid "relocation `%s' not yet implemented" -msgstr "переÑÑƒÐ²Ð°Ð½Ð½Ñ Â«%s» ще не реалізовано" +msgid "%pB: %#: warning: could not find expected COUNT reloc" +msgstr "%pB: %#: попередженнÑ: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ очікуване переÑÑƒÐ²Ð°Ð½Ð½Ñ COUNT" -#: coff-i860.c:608 coff-tic4x.c:227 coff-tic54x.c:365 coffcode.h:5314 +#: coff-sh.c:987 elf32-sh.c:738 #, c-format -msgid "%B: warning: illegal symbol index %ld in relocs" -msgstr "%B: попередженнÑ: некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñимволу %ld у переÑуваннÑÑ…" +msgid "%pB: %#: warning: bad count" +msgstr "%pB: %#: попередженнÑ: помилковий лічильник" -#: coff-i960.c:122 coff-i960.c:475 -msgid "uncertain calling convention for non-COFF symbol" -msgstr "непевні правила виклику Ð´Ð»Ñ Ñимволу поза COFF" - -#: coff-m68k.c:483 elf32-bfin.c:5530 elf32-cr16.c:2817 elf32-m68k.c:4574 -msgid "unsupported reloc type" -msgstr "непідтримуваний тип переÑуваннÑ" - -#: coff-mips.c:634 elf32-mips.c:1744 elf32-score.c:430 elf32-score7.c:330 -#: elf64-mips.c:3135 elfn32-mips.c:2954 -msgid "GP relative relocation when _gp not defined" -msgstr "відноÑне переÑÑƒÐ²Ð°Ð½Ð½Ñ GP, але _gp не визначено" - -#: coff-rs6000.c:2747 -#, c-format -msgid "%B: unsupported relocation type 0x%02x" -msgstr "%B: непідтримуваний тип переÑÑƒÐ²Ð°Ð½Ð½Ñ 0x%02x" - -#: coff-rs6000.c:2833 -#, c-format -msgid "%B: TOC reloc at 0x%x to symbol `%s' with no TOC entry" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ TOC за адреÑою 0x%x до Ñимволу «%s», Ñкий немає запиÑу у TOC" - -#: coff-rs6000.c:3579 coff64-rs6000.c:2110 +#: coff-sh.c:1359 coff-sh.c:2647 elf32-sh.c:1142 elf32-sh.c:1512 #, c-format -msgid "%B: symbol `%s' has unrecognized smclas %d" -msgstr "%B: Ñимвол «%s» належить до нерозпізнаного smclas %d" +msgid "%pB: %#: fatal: reloc overflow while relaxing" +msgstr "%pB: %#: критична помилка: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ñ— розміру" -#: coff-sh.c:504 +#: coff-sh.c:1454 #, c-format -msgid "SH Error: unknown reloc type %d" -msgstr "Помилка SH: невідомий тип переÑуваннÑ, %d" +msgid "%pB: fatal: generic symbols retrieved before relaxing" +msgstr "%pB: критична помилка: отримано загальні Ñимволи до оптимізації розміру" -#: coff-sh.c:778 elf32-sh.c:580 +#: coff-sh.c:2785 cofflink.c:2965 #, c-format -msgid "%B: 0x%lx: warning: bad R_SH_USES offset" -msgstr "%B: 0x%lx: попередженнÑ: помилковий відÑтуп R_SH_USES" +msgid "%pB: illegal symbol index %ld in relocs" +msgstr "%pB: некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñимволу %ld у переÑуваннÑÑ…" -#: coff-sh.c:789 elf32-sh.c:592 +#: coff-tic4x.c:228 coff-tic54x.c:366 coffcode.h:5010 #, c-format -msgid "%B: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x" -msgstr "%B: 0x%lx: попередженнÑ: R_SH_USES вказує на нерозпізнану інÑтрукцію 0x%x" +msgid "%pB: warning: illegal symbol index %ld in relocs" +msgstr "%pB: попередженнÑ: некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñимволу %ld у переÑуваннÑÑ…" -#: coff-sh.c:807 elf32-sh.c:610 +#: coff-tic80.c:441 #, c-format -msgid "%B: 0x%lx: warning: bad R_SH_USES load offset" -msgstr "%B: 0x%lx: попередженнÑ: помилковий відÑтуп Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ R_SH_USES" +msgid "unsupported relocation type %#x" +msgstr "непідтримуваний тип переÑÑƒÐ²Ð°Ð½Ð½Ñ %#x" -#: coff-sh.c:832 elf32-sh.c:626 +#: coff-tic80.c:672 cofflink.c:3127 #, c-format -msgid "%B: 0x%lx: warning: could not find expected reloc" -msgstr "%B: 0x%lx: попередженнÑ: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ очікуване переÑуваннÑ" +msgid "%pB: bad reloc address %# in section `%pA'" +msgstr "%pB: помилкова адреÑа переÑÑƒÐ²Ð°Ð½Ð½Ñ %# у розділі «%pA»" -#: coff-sh.c:849 elf32-sh.c:655 +#: coffcode.h:954 #, c-format -msgid "%B: 0x%lx: warning: symbol in unexpected section" -msgstr "%B: 0x%lx: попередженнÑ: Ñимвол у неочікуваному розділі" +msgid "%pB: unable to load COMDAT section name" +msgstr "%pB: не вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ назву розділу COMDAT" -#: coff-sh.c:975 elf32-sh.c:785 +#. Malformed input files can trigger this test. +#. cf PR 21781. +#: coffcode.h:989 #, c-format -msgid "%B: 0x%lx: warning: could not find expected COUNT reloc" -msgstr "%B: 0x%lx: попередженнÑ: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ очікуване переÑÑƒÐ²Ð°Ð½Ð½Ñ COUNT" +msgid "%pB: error: unexpected symbol '%s' in COMDAT section" +msgstr "%pB: помилка: неочікуваний Ñимвол «%s» у розділі COMDAT" -#: coff-sh.c:985 elf32-sh.c:795 +#: coffcode.h:1001 #, c-format -msgid "%B: 0x%lx: warning: bad count" -msgstr "%B: 0x%lx: попередженнÑ: помилковий лічильник" +msgid "%pB: warning: COMDAT symbol '%s' does not match section name '%s'" +msgstr "%pB: попередженнÑ: Ñимвол COMDAT «%s» не відповідає назві розділу «%s»" -#: coff-sh.c:1357 coff-sh.c:2645 elf32-sh.c:1199 elf32-sh.c:1570 +#: coffcode.h:1011 #, c-format -msgid "%B: 0x%lx: fatal: reloc overflow while relaxing" -msgstr "%B: 0x%lx: критична помилка: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ñ— розміру" +msgid "%pB: warning: no symbol for section '%s' found" +msgstr "%pB: попередженнÑ: не знайдено Ñимволу Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ «%s»" -#: coff-sh.c:1452 -msgid "%B: fatal: generic symbols retrieved before relaxing" -msgstr "%B: критична помилка: отримано загальні Ñимволи до оптимізації розміру" - -#: coff-sh.c:2783 cofflink.c:2961 +#. Generate a warning message rather using the 'unhandled' +#. variable as this will allow some .sys files generate by +#. other toolchains to be processed. See bugzilla issue 196. +#: coffcode.h:1237 #, c-format -msgid "%B: illegal symbol index %ld in relocs" -msgstr "%B: некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñимволу %ld у переÑуваннÑÑ…" +msgid "%pB: warning: ignoring section flag %s in section %s" +msgstr "%pB: попередженнÑ: ігноруємо прапорець розділу %s у розділі %s" -#: coff-tic4x.c:183 coff-tic54x.c:278 coff-tic80.c:439 +#: coffcode.h:1306 #, c-format -msgid "Unrecognized reloc type 0x%x" -msgstr "Ðерозпізнаний тип переÑÑƒÐ²Ð°Ð½Ð½Ñ 0x%x" +msgid "%pB (%s): section flag %s (%#lx) ignored" +msgstr "%pB (%s): прапорець розділу %s (%#lx) проігноровано" -#: coff-w65.c:352 +#: coffcode.h:1917 #, c-format -msgid "ignoring reloc %s\n" -msgstr "ігноруємо переÑÑƒÐ²Ð°Ð½Ð½Ñ %s\n" - -#: coffcode.h:968 -msgid "%B: unable to load COMDAT section name" -msgstr "%B: не вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ назву розділу COMDAT" +msgid "%pB: warning: claims to have 0xffff relocs, without overflow" +msgstr "%pB: попередженнÑ: вимога щодо 0xffff переÑувань без переповненнÑ" -#: coffcode.h:1009 +#: coffcode.h:2315 #, c-format -msgid "%B: warning: COMDAT symbol '%s' does not match section name '%s'" -msgstr "%B: попередженнÑ: Ñимвол COMDAT «%s» не відповідає назві розділу «%s»" +msgid "unrecognized TI COFF target id '0x%x'" +msgstr "нерозпізнаний ідентифікатор Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ TI COFF, «0x%x»" -#: coffcode.h:1019 +#: coffcode.h:2599 #, c-format -msgid "%B: warning: No symbol for section '%s' found" -msgstr "%B: попередженнÑ: не знайдено Ñимволу Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ «%s»" +msgid "%pB: reloc against a non-existent symbol index: %ld" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° неÑтвореним індекÑом Ñимволу: %ld" -#. Generate a warning message rather using the 'unhandled' -#. variable as this will allow some .sys files generate by -#. other toolchains to be processed. See bugzilla issue 196. -#: coffcode.h:1245 +#: coffcode.h:2910 #, c-format -msgid "%B: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section %s" -msgstr "%B: попередженнÑ: ігноруємо прапорець розділу IMAGE_SCN_MEM_NOT_PAGED у розділі %s" +msgid "%pB: page size is too large (0x%x)" +msgstr "%pB: надто великий розмір Ñторінки (0x%x)" -#: coffcode.h:1314 +#: coffcode.h:3070 #, c-format -msgid "%B (%s): Section flag %s (0x%x) ignored" -msgstr "%B (%s): прапорець розділу %s (0x%x) проігноровано" +msgid "%pB: too many sections (%d)" +msgstr "%pB: занадто багато розділів (%d)" -#: coffcode.h:1949 -msgid "%B: warning: claims to have 0xffff relocs, without overflow" -msgstr "%B: попередженнÑ: вимога щодо 0xffff переÑувань без переповненнÑ" - -#: coffcode.h:2465 +#: coffcode.h:3489 #, c-format -msgid "Unrecognized TI COFF target id '0x%x'" -msgstr "Ðерозпізнаний ідентифікатор Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ TI COFF, «0x%x»" +msgid "%pB: section %pA: string table overflow at offset %ld" +msgstr "%pB: розділ %pA: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ€Ñдків за відÑтупом %ld" -#: coffcode.h:2783 +#: coffcode.h:3589 #, c-format -msgid "%B: reloc against a non-existent symbol index: %ld" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° неÑтвореним індекÑом Ñимволу: %ld" +msgid "%pB:%s section %s: alignment 2**%u not representable" +msgstr "%pB:%s розділ %s: Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ 2**%u не придатне Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´ÑтавленнÑ" -#: coffcode.h:3186 +#: coffcode.h:4276 #, c-format -msgid "%B: page size is too large (0x%x)" -msgstr "%B: надто великий розмір Ñторінки (0x%x)" +msgid "%pB: warning: line number count (%#lx) exceeds section size (%#lx)" +msgstr "%pB: попередженнÑ: лічильник кількоÑÑ‚Ñ– Ñ€Ñдків (%#lx) вказує на міÑце за межами розмірів розділу (%#lx)" -#: coffcode.h:3346 +#: coffcode.h:4291 #, c-format -msgid "%B: too many sections (%d)" -msgstr "%B: занадто багато розділів (%d)" +msgid "%pB: warning: line number table read failed" +msgstr "%pB: попередженнÑ: помилка Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð· таблиці номерів Ñ€Ñдків" -#: coffcode.h:3767 +#: coffcode.h:4325 coffcode.h:4339 #, c-format -msgid "%B: section %A: string table overflow at offset %ld" -msgstr "%B: розділ %A: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ€Ñдків за відÑтупом %ld" - -#: coffcode.h:4585 -msgid "%B: warning: line number table read failed" -msgstr "%B: попередженнÑ: помилка Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð· таблиці номерів Ñ€Ñдків" +msgid "%pB: warning: illegal symbol index 0x%lx in line number entry %d" +msgstr "%pB: попередженнÑ: некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñимволу 0x%lx у запиÑÑ– номера Ñ€Ñдка %d" -#: coffcode.h:4619 coffcode.h:4633 +#: coffcode.h:4353 #, c-format -msgid "%B: warning: illegal symbol index 0x%lx in line number entry %d" -msgstr "%B: попередженнÑ: некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñимволу 0x%lx у запиÑÑ– номера Ñ€Ñдка %d" +msgid "%pB: warning: illegal symbol in line number entry %d" +msgstr "%pB: попередженнÑ: некоректний Ñимвол у запиÑÑ– номера Ñ€Ñдка %d" -#: coffcode.h:4647 +#: coffcode.h:4366 #, c-format -msgid "%B: warning: illegal symbol in line number entry %d" -msgstr "%B: попередженнÑ: некоректний Ñимвол у запиÑÑ– номера Ñ€Ñдка %d" +msgid "%pB: warning: duplicate line number information for `%s'" +msgstr "%pB: попередженнÑ: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… щодо номерів Ñ€Ñдків Ð´Ð»Ñ Â«%s»" -#: coffcode.h:4660 +#: coffcode.h:4774 #, c-format -msgid "%B: warning: duplicate line number information for `%s'" -msgstr "%B: попередженнÑ: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… щодо номерів Ñ€Ñдків Ð´Ð»Ñ Â«%s»" +msgid "%pB: unrecognized storage class %d for %s symbol `%s'" +msgstr "%pB: невідомий ÐºÐ»Ð°Ñ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… %d Ð´Ð»Ñ Ñимволу %s «%s»" -#: coffcode.h:5074 +#: coffcode.h:4904 #, c-format -msgid "%B: Unrecognized storage class %d for %s symbol `%s'" -msgstr "%B: невідомий ÐºÐ»Ð°Ñ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… %d Ð´Ð»Ñ Ñимволу %s «%s»" +msgid "warning: %pB: local symbol `%s' has no section" +msgstr "попередженнÑ: %pB: локальний Ñимвол «%s» не має розділу" -#: coffcode.h:5207 +#: coffcode.h:5050 #, c-format -msgid "warning: %B: local symbol `%s' has no section" -msgstr "попередженнÑ: %B: локальний Ñимвол «%s» не має розділу" +msgid "%pB: illegal relocation type %d at address %#" +msgstr "%pB: некоректний тип переÑÑƒÐ²Ð°Ð½Ð½Ñ %d за адреÑою %#" -#: coffcode.h:5354 +#: coffgen.c:178 elf.c:1214 #, c-format -msgid "%B: illegal relocation type %d at address 0x%lx" -msgstr "%B: некоректний тип переÑÑƒÐ²Ð°Ð½Ð½Ñ %d за адреÑою 0x%lx" +msgid "%pB: unable to initialize compress status for section %s" +msgstr "%pB: не вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ Ñтан ÑтиÑÐºÐ°Ð½Ð½Ñ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s" -#: coffgen.c:178 elf.c:1181 +#: coffgen.c:202 elf.c:1225 #, c-format -msgid "%B: unable to initialize compress status for section %s" -msgstr "%B: не вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ Ñтан ÑтиÑÐºÐ°Ð½Ð½Ñ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s" +msgid "%pB: unable to initialize decompress status for section %s" +msgstr "%pB: не вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ Ñтан Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s" -#: coffgen.c:202 elf.c:1192 +#: coffgen.c:1652 #, c-format -msgid "%B: unable to initialize decompress status for section %s" -msgstr "%B: не вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ Ñтан Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s" +msgid "%pB: corrupt symbol count: %#" +msgstr "%pB: пошкоджено лічильник Ñимволів: %#" #. PR 21013: Provide an error message when the alloc fails. -#: coffgen.c:1648 -msgid "%B: Not enough memory to allocate space for %lu symbols" -msgstr "%B: недоÑтатньо пам'ÑÑ‚Ñ– Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¼Ñ–ÑÑ†Ñ Ð´Ð»Ñ %lu Ñимволів" +#: coffgen.c:1661 +#, c-format +msgid "%pB: not enough memory to allocate space for %# symbols of size %#" +msgstr "%pB: недоÑтатньо пам'ÑÑ‚Ñ– Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¼Ñ–ÑÑ†Ñ Ð´Ð»Ñ %# Ñимволів розміру %#" -#: coffgen.c:1716 +#: coffgen.c:1730 #, c-format -msgid "%B: bad string table size %lu" -msgstr "%B: помилковий розмір таблиці Ñ€Ñдків %lu" +msgid "%pB: bad string table size %" +msgstr "%pB: помилковий розмір таблиці Ñ€Ñдків %" -#: coffgen.c:1885 coffgen.c:1945 coffgen.c:1963 cofflink.c:2041 -#: xcofflink.c:4507 +#: coffgen.c:1907 coffgen.c:1967 coffgen.c:1985 cofflink.c:2045 +#: xcofflink.c:4508 msgid "" msgstr "<пошкоджено>" -#: coffgen.c:2087 +#: coffgen.c:2109 #, c-format msgid " %s" msgstr "<пошкоджені дані> %s" -#: coffgen.c:2666 elflink.c:14044 linker.c:2931 +#: coffgen.c:2688 elflink.c:14290 linker.c:2946 msgid "%F%P: already_linked_table: %E\n" msgstr "%F%P: already_linked_table: %E\n" -#: coffgen.c:3007 elflink.c:13059 +#: coffgen.c:3029 elflink.c:13292 #, c-format -msgid "Removing unused section '%A' in file '%B'" -msgstr "Вилучаємо невикориÑтовуваний розділ «%A» у файлі «%B»" +msgid "removing unused section '%pA' in file '%pB'" +msgstr "вилучаємо невикориÑтовуваний розділ «%pA» у файлі «%pB»" -#: coffgen.c:3084 elflink.c:13304 -msgid "Warning: gc-sections option ignored" -msgstr "ПопередженнÑ: параметр gc-sections проігноровано" +#: coffgen.c:3106 elflink.c:13510 +msgid "warning: gc-sections option ignored" +msgstr "попередженнÑ: параметр gc-sections проігноровано" -#: cofflink.c:348 +#: cofflink.c:352 #, c-format -msgid "Warning: symbol `%s' is both section and non-section" -msgstr "ПопередженнÑ: Ñимвол «%s» Ñ” у розділі Ñ– поза розділом" +msgid "warning: symbol `%s' is both section and non-section" +msgstr "попередженнÑ: Ñимвол «%s» Ñ” у розділі Ñ– поза розділом" -#: cofflink.c:450 elf64-ia64-vms.c:5188 elflink.c:4788 +#: cofflink.c:454 elf64-ia64-vms.c:5203 elflink.c:4934 #, c-format -msgid "Warning: type of symbol `%s' changed from %d to %d in %B" -msgstr "ПопередженнÑ: тип Ñимволу «%s» змінено з %d на %d у %B" +msgid "warning: type of symbol `%s' changed from %d to %d in %pB" +msgstr "попередженнÑ: тип Ñимволу «%s» змінено з %d на %d у %pB" -#: cofflink.c:2369 +#: cofflink.c:2373 #, c-format -msgid "%B: relocs in section `%A', but it has no contents" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ розділі «%A», але у цьому розділі немає зміÑту" +msgid "%pB: relocs in section `%pA', but it has no contents" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ розділі «%pA», але у цьому розділі немає зміÑту" -#: cofflink.c:2432 elflink.c:10567 +#: cofflink.c:2436 elflink.c:10787 #, c-format -msgid "%X`%s' referenced in section `%A' of %B: defined in discarded section `%A' of %B\n" -msgstr "Ðа %X«%s» поÑилаєтьÑÑ Ñ€Ð¾Ð·Ð´Ñ–Ð» «%A» %B: визначено у відкинутому розділі «%A» %B\n" +msgid "%X`%s' referenced in section `%pA' of %pB: defined in discarded section `%pA' of %pB\n" +msgstr "Ðа %X«%s» поÑилаєтьÑÑ Ñ€Ð¾Ð·Ð´Ñ–Ð» «%pA» %pB: визначено у відкинутому розділі «%pA» %pB\n" -#: cofflink.c:2730 +#: cofflink.c:2734 #, c-format -msgid "%B: %A: reloc overflow: 0x%lx > 0xffff" -msgstr "%B: %A: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÑуваннÑ: 0x%lx > 0xffff" +msgid "%pB: %pA: reloc overflow: %#x > 0xffff" +msgstr "%pB: %pA: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÑуваннÑ: %#x > 0xffff" -#: cofflink.c:2738 +#: cofflink.c:2742 #, c-format -msgid "%B: warning: %A: line number overflow: 0x%lx > 0xffff" -msgstr "%B: попередженнÑ: %A: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð½Ð¾Ð¼ÐµÑ€Ð° Ñ€Ñдка: 0x%lx > 0xffff" +msgid "%pB: warning: %pA: line number overflow: %#x > 0xffff" +msgstr "%pB: попередженнÑ: %pA: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð½Ð¾Ð¼ÐµÑ€Ð° Ñ€Ñдка: %#x > 0xffff" -#: coffswap.h:811 +#: coffswap.h:789 #, c-format -msgid "%B: warning: %s: line number overflow: 0x%lx > 0xffff" -msgstr "%B: попередженнÑ: %s: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð½Ð¾Ð¼ÐµÑ€Ð° Ñ€Ñдка: 0x%lx > 0xffff" +msgid "%pB: warning: %s: line number overflow: 0x%lx > 0xffff" +msgstr "%pB: попередженнÑ: %s: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð½Ð¾Ð¼ÐµÑ€Ð° Ñ€Ñдка: 0x%lx > 0xffff" -#: coffswap.h:825 +#: coffswap.h:803 #, c-format -msgid "%B: %s: reloc overflow: 0x%lx > 0xffff" -msgstr "%B: %s: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÑуваннÑ: 0x%lx > 0xffff" +msgid "%pB: %s: reloc overflow: 0x%lx > 0xffff" +msgstr "%pB: %s: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÑуваннÑ: 0x%lx > 0xffff" #: compress.c:255 #, c-format -msgid "error: %B(%A) is too large (%#lx bytes)" -msgstr "помилка: %B(%A) Ñ” надто великим (%#lx байтів)" +msgid "error: %pB(%pA) is too large (%# bytes)" +msgstr "помилка: %pB(%pA) Ñ” надто великим (%# байтів)" #: cpu-arm.c:192 cpu-arm.c:204 #, c-format -msgid "error: %B is compiled for the EP9312, whereas %B is compiled for XScale" -msgstr "помилка: B зібрано Ð´Ð»Ñ EP9312, а %B зібрано Ð´Ð»Ñ XScale" +msgid "error: %pB is compiled for the EP9312, whereas %pB is compiled for XScale" +msgstr "помилка: %pB зібрано Ð´Ð»Ñ EP9312, а %pB зібрано Ð´Ð»Ñ XScale" #: cpu-arm.c:338 #, c-format -msgid "warning: unable to update contents of %s section in %B" -msgstr "попередженнÑ: не вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ зміÑÑ‚ розділу %s у %B" +msgid "warning: unable to update contents of %s section in %pB" +msgstr "попередженнÑ: не вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ зміÑÑ‚ розділу %s у %pB" -#: dwarf2.c:532 +#: dwarf2.c:543 #, c-format -msgid "Dwarf Error: Can't find %s section." -msgstr "Помилка dwarf: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ розділ %s." +msgid "DWARF error: can't find %s section." +msgstr "Помилка DWARF: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ розділ %s." -#: dwarf2.c:562 +#: dwarf2.c:572 #, c-format -msgid "Dwarf Error: Offset (%lu) greater than or equal to %s size (%lu)." -msgstr "Помилка dwarf: відÑтуп (%lu) Ñ” більшим або рівним за розмір %s (%lu)." +msgid "DWARF error: offset (%) greater than or equal to %s size (%)" +msgstr "Помилка DWARF: відÑтуп (%) Ñ” більшим або рівним за розмір %s (%)." -#: dwarf2.c:1028 -msgid "Dwarf Error: Info pointer extends beyond end of attributes" -msgstr "Помилка dwarf: вказівник на дані виходить за кінець атрибутів" +#: dwarf2.c:1100 +msgid "DWARF error: info pointer extends beyond end of attributes" +msgstr "Помилка DWARF: вказівник на дані виходить за кінець атрибутів" -#: dwarf2.c:1185 +#: dwarf2.c:1268 #, c-format -msgid "Dwarf Error: Invalid or unhandled FORM value: %#x." -msgstr "Помилка dwarf: некоректне або непридатне до обробки Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ FORM: %#x." +msgid "DWARF error: invalid or unhandled FORM value: %#x" +msgstr "Помилка DWARF: некоректне або непридатне до обробки Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ FORM: %#x" -#: dwarf2.c:1491 -msgid "Dwarf Error: mangled line number section (bad file number)." -msgstr "Помилка dwarf: пошкоджений розділ номерів Ñ€Ñдків (помилковий номер файла)." +#: dwarf2.c:1574 +msgid "DWARF error: mangled line number section (bad file number)" +msgstr "Помилка DWARF: пошкоджений розділ номерів Ñ€Ñдків (помилковий номер файла)" -#: dwarf2.c:1779 +#: dwarf2.c:1919 +msgid "DWARF error: zero format count" +msgstr "Помилка DWARF: нульовий лічильник формату" + +#: dwarf2.c:1929 #, c-format -msgid "Dwarf Error: Line info section is too small (%ld)" -msgstr "Помилка dwarf: розділ даних щодо Ñ€Ñдків Ñ” надто малим (%ld)" +msgid "DWARF error: data count (%) larger than buffer size" +msgstr "Помилка DWARF: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð»Ñ–Ñ‡Ð¸Ð»ÑŒÐ½Ð¸ÐºÐ° даних (%) перевищує розмір буфера" -#: dwarf2.c:1809 +#: dwarf2.c:1970 #, c-format -msgid "Dwarf Error: Line info data is bigger (0x%lx) than the section (0x%lx)" -msgstr "Помилка dwarf: дані щодо Ñ€Ñдків Ñ” більшими (0x%lx) за розділ (0x%lx)" +msgid "DWARF error: unknown format content type %" +msgstr "Помилка DWARF: невідомий тип вміÑту формату %" -#: dwarf2.c:1821 +#: dwarf2.c:2050 #, c-format -msgid "Dwarf Error: Unhandled .debug_line version %d." -msgstr "Помилка dwarf: непридатна до обробки верÑÑ–Ñ .debug_line, %d." +msgid "DWARF error: line info section is too small (%)" +msgstr "Помилка DWARF: розділ даних щодо Ñ€Ñдків Ñ” надто малим (%)" -#: dwarf2.c:1830 -msgid "Dwarf Error: Ran out of room reading prologue" -msgstr "Помилка dwarf: вихід за межі облаÑÑ‚Ñ– під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð²Ñтупу" +#: dwarf2.c:2080 +#, c-format +msgid "DWARF error: line info data is bigger (%#) than the space remaining in the section (%#lx)" +msgstr "Помилка DWARF: дані щодо Ñ€Ñдків Ñ” більшими (%#) за міÑце, Ñке лишилоÑÑ Ñƒ розділі (%#lx)" -#: dwarf2.c:1855 -msgid "Dwarf Error: Invalid maximum operations per instruction." -msgstr "Помилка dwarf: некоректна макÑимальна кількіÑÑ‚ÑŒ дій на команду." +#: dwarf2.c:2093 +#, c-format +msgid "DWARF error: unhandled .debug_line version %d" +msgstr "Помилка DWARF: непридатна до обробки верÑÑ–Ñ .debug_line, %d" + +#: dwarf2.c:2103 +msgid "DWARF error: ran out of room reading prologue" +msgstr "Помилка DWARF: вихід за межі облаÑÑ‚Ñ– під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð²Ñтупу" + +#: dwarf2.c:2121 +#, c-format +msgid "DWARF error: line info unsupported segment selector size %u" +msgstr "Помилка DWARF: непідтримуваний розмір варіанта Ñегментів %u у даних щодо Ñ€Ñдка" + +#: dwarf2.c:2148 +msgid "DWARF error: invalid maximum operations per instruction" +msgstr "Помилка DWARF: некоректна макÑимальна кількіÑÑ‚ÑŒ дій на команду" -#: dwarf2.c:1874 -msgid "Dwarf Error: Ran out of room reading opcodes" -msgstr "Помилка dwarf: вихід за межі облаÑÑ‚Ñ– під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ ÐºÐ¾Ð´Ñ–Ð² операцій" +#: dwarf2.c:2167 +msgid "DWARF error: ran out of room reading opcodes" +msgstr "Помилка DWARF: вихід за межі облаÑÑ‚Ñ– під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ ÐºÐ¾Ð´Ñ–Ð² операцій" -#: dwarf2.c:2069 -msgid "Dwarf Error: mangled line number section." -msgstr "Помилка dwarf: пошкоджений розділ номерів Ñ€Ñдків." +#: dwarf2.c:2340 +msgid "DWARF error: mangled line number section" +msgstr "Помилка DWARF: пошкоджений розділ номерів Ñ€Ñдків" -#: dwarf2.c:2575 +#: dwarf2.c:2843 dwarf2.c:2904 +msgid "DWARF error: invalid abstract instance DIE ref" +msgstr "Помилка DWARF: некоректне поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° абÑтрактний екземплÑÑ€ DIE" + +#: dwarf2.c:2880 #, c-format -msgid "Dwarf Error: Unable to read alt ref %u." -msgstr "Помилка Dwarf: не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ альтернативне поÑÐ¸Ð»Ð°Ð½Ð½Ñ %u." +msgid "DWARF error: unable to read alt ref %" +msgstr "Помилка DWARF: не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ альтернативне поÑÐ¸Ð»Ð°Ð½Ð½Ñ %" -#: dwarf2.c:2600 dwarf2.c:2750 dwarf2.c:3071 +#: dwarf2.c:2921 dwarf2.c:3094 dwarf2.c:3448 #, c-format -msgid "Dwarf Error: Could not find abbrev number %u." -msgstr "Помилка dwarf: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñкорочений номер %u." +msgid "DWARF error: could not find abbrev number %u" +msgstr "Помилка DWARF: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñкорочений номер %u" + +#: dwarf2.c:2938 +msgid "DWARF error: abstract instance recursion detected" +msgstr "Помилка DWARF: виÑвлено рекурÑÑ–ÑŽ абÑтрактним екземплÑром" -#: dwarf2.c:3023 +#: dwarf2.c:3367 #, c-format -msgid "Dwarf Error: found dwarf version '%u', this reader only handles version 2, 3 and 4 information." -msgstr "Помилка dwarf: виÑвлено верÑÑ–ÑŽ dwarf «%u», але у цій функції Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ обробку лише верÑій даних 2, 3 Ñ– 4." +msgid "DWARF error: found dwarf version '%u', this reader only handles version 2, 3, 4 and 5 information" +msgstr "Помилка DWARF: виÑвлено верÑÑ–ÑŽ DWARF «%u», але у цій функції Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ обробку лише верÑій даних 2, 3 Ñ– 4" -#: dwarf2.c:3034 +#: dwarf2.c:3411 #, c-format -msgid "Dwarf Error: found address size '%u', this reader can not handle sizes greater than '%u'." -msgstr "Помилка у dwarf: виÑвлено розмір адреÑи «%u», втім у функції Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð½Ðµ передбачено розмірів, що перевищують «%u»." +msgid "DWARF error: found address size '%u', this reader can not handle sizes greater than '%u'" +msgstr "Помилка у DWARF: виÑвлено розмір адреÑи «%u», втім у функції Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð½Ðµ передбачено розмірів, що перевищують «%u»" -#: dwarf2.c:3137 -msgid "Dwarf Error: DW_AT_comp_dir attribute encountered with a non-string form." -msgstr "Помилка dwarf: виÑвлено атрибут DW_AT_comp_dir із нерÑдковою формою." +#: dwarf2.c:3514 +msgid "DWARF error: DW_AT_comp_dir attribute encountered with a non-string form" +msgstr "Помилка DWARF: виÑвлено атрибут DW_AT_comp_dir із нерÑдковою формою" -#: ecoff.c:964 +#: ecoff.c:971 #, c-format -msgid "%B: warning: isymMax (%ld) is greater than ifdMax (%d)\n" -msgstr "%B: попередженнÑ: isymMax (%ld) перевищує ifdMax (%d)\n" +msgid "%pB: warning: isymMax (%ld) is greater than ifdMax (%ld)" +msgstr "%pB: попередженнÑ: isymMax (%ld) перевищує ifdMax (%ld)" -#: ecoff.c:1261 +#: ecoff.c:1268 #, c-format -msgid "Unknown basic type %d" -msgstr "Ðевідомий оÑновний тип %d" +msgid "unknown basic type %d" +msgstr "невідомий оÑновний тип %d" -#: ecoff.c:1518 +#: ecoff.c:1525 #, c-format msgid "" "\n" @@ -771,7 +687,7 @@ "\n" " Символ за кінцем: %ld" -#: ecoff.c:1525 ecoff.c:1528 +#: ecoff.c:1532 ecoff.c:1535 #, c-format msgid "" "\n" @@ -780,7 +696,7 @@ "\n" " Перший Ñимвол: %ld" -#: ecoff.c:1541 +#: ecoff.c:1548 #, c-format msgid "" "\n" @@ -789,7 +705,7 @@ "\n" " Символ за кінцем: %-7ld Тип: %s" -#: ecoff.c:1548 +#: ecoff.c:1555 #, c-format msgid "" "\n" @@ -798,7 +714,7 @@ "\n" " Локальний Ñимвол: %ld" -#: ecoff.c:1556 +#: ecoff.c:1563 #, c-format msgid "" "\n" @@ -807,7 +723,7 @@ "\n" " struct; Ñимвол за кінцем: %ld" -#: ecoff.c:1561 +#: ecoff.c:1568 #, c-format msgid "" "\n" @@ -816,7 +732,7 @@ "\n" " union; Ñимвол за кінцем: %ld" -#: ecoff.c:1566 +#: ecoff.c:1573 #, c-format msgid "" "\n" @@ -825,7 +741,7 @@ "\n" " enum; Ñимвол за кінцем: %ld" -#: ecoff.c:1572 +#: ecoff.c:1579 #, c-format msgid "" "\n" @@ -834,269 +750,291 @@ "\n" " Тип: %s" -#: elf-attrs.c:595 +#: elf-attrs.c:444 +#, c-format +msgid "%pB: error: attribute section '%pA' too big: %#llx" +msgstr "%pB: помилка: довжина розділу атрибутів «%pA» Ñ” надто великою: %#llx" + +#: elf-attrs.c:485 +#, c-format +msgid "%pB: error: attribute section length too small: %" +msgstr "%pB: помилка: довжина розділу атрибутів Ñ” надто малою: %" + +#: elf-attrs.c:613 #, c-format -msgid "error: %B: Object has vendor-specific contents that must be processed by the '%s' toolchain" -msgstr "помилка: %B: у об’єкті міÑÑ‚ÑÑ‚ÑŒÑÑ Ð´Ð°Ð½Ñ– у Ñпецифічному форматі, ці дані має бути оброблено набором інÑтрументів «%s»" +msgid "error: %pB: object has vendor-specific contents that must be processed by the '%s' toolchain" +msgstr "помилка: %pB: у об’єкті міÑÑ‚ÑÑ‚ÑŒÑÑ Ð´Ð°Ð½Ñ– у Ñпецифічному форматі, ці дані має бути оброблено набором інÑтрументів «%s»" -#: elf-attrs.c:605 +#: elf-attrs.c:623 #, c-format -msgid "error: %B: Object tag '%d, %s' is incompatible with tag '%d, %s'" -msgstr "помилка: %B: мітка об’єкта «%d, %s» неÑуміÑна з міткою «%d, %s»" +msgid "error: %pB: object tag '%d, %s' is incompatible with tag '%d, %s'" +msgstr "помилка: %pB: мітка об’єкта «%d, %s» неÑуміÑна з міткою «%d, %s»" -#: elf-eh-frame.c:946 +#: elf-eh-frame.c:942 #, c-format -msgid "discarding zero address range FDE in %B(%A).\n" -msgstr "відкидаємо FDE нульового діапазону Ð°Ð´Ñ€ÐµÑ Ñƒ %B(%A).\n" +msgid "discarding zero address range FDE in %pB(%pA).\n" +msgstr "відкидаємо FDE нульового діапазону Ð°Ð´Ñ€ÐµÑ Ñƒ %pB(%pA).\n" -#: elf-eh-frame.c:1051 +#: elf-eh-frame.c:1047 #, c-format -msgid "%P: error in %B(%A); no .eh_frame_hdr table will be created.\n" -msgstr "%P: помилка у %B(%A); таблицю .eh_frame_hdr не буде Ñтворено.\n" +msgid "error in %pB(%pA); no .eh_frame_hdr table will be created" +msgstr " помилка у %pB(%pA); таблицю .eh_frame_hdr не буде Ñтворено" -#: elf-eh-frame.c:1541 +#: elf-eh-frame.c:1537 #, c-format -msgid "%P: FDE encoding in %B(%A) prevents .eh_frame_hdr table being created.\n" -msgstr "%P: ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ FDE у %B(%A) перешкоджає Ñтворенню таблиці .eh_frame_hdr.\n" +msgid "FDE encoding in %pB(%pA) prevents .eh_frame_hdr table being created" +msgstr "ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ FDE у %pB(%pA) перешкоджає Ñтворенню таблиці .eh_frame_hdr" -#: elf-eh-frame.c:1548 -msgid "%P: Further warnings about FDE encoding preventing .eh_frame_hdr generation dropped.\n" -msgstr "%P: подальші Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ FDE, Ñке заважає Ñтворенню .eh_frame_hdr, пропущено.\n" +#: elf-eh-frame.c:1544 +msgid "further warnings about FDE encoding preventing .eh_frame_hdr generation dropped" +msgstr "подальші Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ FDE, Ñке заважає Ñтворенню .eh_frame_hdr, пропущено" -#: elf-eh-frame.c:1879 +#: elf-eh-frame.c:1866 #, c-format -msgid "%B: %A not in order" -msgstr "%B: %A Ñ” невпорÑдкованим" +msgid "%pB: %pA not in order" +msgstr "%pB: %pA Ñ” невпорÑдкованим" -#: elf-eh-frame.c:1893 +#: elf-eh-frame.c:1880 #, c-format -msgid "%B: %A invalid input section size" -msgstr "%B: %A некоректних розмір розділу вхідних даних" +msgid "%pB: %pA invalid input section size" +msgstr "%pB: %pA некоректних розмір розділу вхідних даних" -#: elf-eh-frame.c:1901 +#: elf-eh-frame.c:1888 #, c-format -msgid "%B: %A points past end of text section" -msgstr "%B: %A вказує на адреÑу за кінцем текÑтового розділу" +msgid "%pB: %pA points past end of text section" +msgstr "%pB: %pA вказує на адреÑу за кінцем текÑтового розділу" -#: elf-eh-frame.c:2150 -msgid "%P: DW_EH_PE_datarel unspecified for this architecture.\n" -msgstr "%P: DW_EH_PE_datarel не визначено Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— архітектури.\n" +#: elf-eh-frame.c:2137 +msgid "DW_EH_PE_datarel unspecified for this architecture" +msgstr "DW_EH_PE_datarel не визначено Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— архітектури" -#: elf-eh-frame.c:2320 +#: elf-eh-frame.c:2307 #, c-format -msgid "Invalid output section for .eh_frame_entry: %A" -msgstr "Ðекоректний роздInvalid output section for .eh_frame_entry: %A" +msgid "invalid output section for .eh_frame_entry: %pA" +msgstr "некоректний розділ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу .eh_frame_entry: %pA" -#: elf-eh-frame.c:2343 +#: elf-eh-frame.c:2330 #, c-format -msgid "Invalid contents in %A section" -msgstr "Ðекоректний вміÑÑ‚ у розділі %A" +msgid "invalid contents in %pA section" +msgstr "некоректний вміÑÑ‚ у розділі %pA" -#: elf-eh-frame.c:2499 -msgid "%P: .eh_frame_hdr entry overflow.\n" -msgstr "%P: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу .eh_frame_hdr.\n" +#: elf-eh-frame.c:2486 +msgid ".eh_frame_hdr entry overflow" +msgstr "Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу .eh_frame_hdr" -#: elf-eh-frame.c:2502 -msgid "%P: .eh_frame_hdr refers to overlapping FDEs.\n" -msgstr "%P: .eh_frame_hdr поÑилаєтьÑÑ Ð½Ð° FDE, Ñкі перекриваютьÑÑ.\n" +#: elf-eh-frame.c:2488 +msgid ".eh_frame_hdr refers to overlapping FDEs" +msgstr ".eh_frame_hdr поÑилаєтьÑÑ Ð½Ð° FDE, Ñкі перекриваютьÑÑ" -#: elf-ifunc.c:142 +#: elf-ifunc.c:149 #, c-format -msgid "%F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%B' can not be used when making an executable; recompile with -fPIE and relink with -pie\n" -msgstr "%F%P: динамічний Ñимвол STT_GNU_IFUNC «%s» з рівніÑÑ‚ÑŽ вказівників у «%B» не можна викориÑтовувати під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¾Ð³Ð¾ файла; виконайте повторну компілÑцію з -fPIE Ñ– повторне ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ -pie\n" +msgid "%F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%pB' can not be used when making an executable; recompile with -fPIE and relink with -pie\n" +msgstr "%F%P: динамічний Ñимвол STT_GNU_IFUNC «%s» з рівніÑÑ‚ÑŽ вказівників у «%pB» не можна викориÑтовувати під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¾Ð³Ð¾ файла; виконайте повторну компілÑцію з -fPIE Ñ– повторне ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ -pie\n" -#: elf-m10200.c:425 elf-m10300.c:2149 elf32-avr.c:1502 elf32-bfin.c:3194 -#: elf32-cr16.c:1466 elf32-cr16c.c:780 elf32-cris.c:2025 elf32-crx.c:924 -#: elf32-d10v.c:513 elf32-epiphany.c:563 elf32-fr30.c:591 elf32-frv.c:4041 -#: elf32-ft32.c:334 elf32-h8300.c:522 elf32-i860.c:1210 elf32-ip2k.c:1475 -#: elf32-iq2000.c:693 elf32-lm32.c:1126 elf32-m32c.c:621 elf32-m32r.c:3044 -#: elf32-m68hc1x.c:1269 elf32-mep.c:524 elf32-metag.c:2001 -#: elf32-microblaze.c:1570 elf32-moxie.c:285 elf32-mt.c:400 elf32-nds32.c:5402 -#: elf32-or1k.c:1258 elf32-score.c:2731 elf32-score7.c:2540 elf32-spu.c:5076 -#: elf32-tilepro.c:3665 elf32-v850.c:2287 elf32-visium.c:677 -#: elf32-xstormy16.c:927 elf64-mmix.c:1540 elfxx-tilegx.c:4052 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2267 +#: elf-m10200.c:434 elf-m10300.c:2147 elf32-avr.c:1505 elf32-bfin.c:3127 +#: elf32-cr16.c:1464 elf32-cr16c.c:783 elf32-cris.c:2033 elf32-crx.c:925 +#: elf32-d10v.c:512 elf32-epiphany.c:566 elf32-fr30.c:594 elf32-frv.c:4049 +#: elf32-ft32.c:494 elf32-h8300.c:523 elf32-ip2k.c:1482 elf32-iq2000.c:693 +#: elf32-lm32.c:1112 elf32-m32c.c:624 elf32-m32r.c:3045 elf32-m68hc1x.c:1266 +#: elf32-mep.c:526 elf32-metag.c:1990 elf32-microblaze.c:1631 +#: elf32-moxie.c:288 elf32-mt.c:402 elf32-nds32.c:5300 elf32-or1k.c:1242 +#: elf32-score.c:2733 elf32-score7.c:2542 elf32-spu.c:5078 +#: elf32-tilepro.c:3506 elf32-v850.c:2291 elf32-visium.c:681 +#: elf32-xstormy16.c:931 elf64-mmix.c:1541 elfxx-tilegx.c:3870 msgid "internal error: out of range error" msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: вихід за межі діапазону" -#: elf-m10200.c:429 elf-m10300.c:2153 elf32-avr.c:1506 elf32-bfin.c:3198 -#: elf32-cr16.c:1470 elf32-cr16c.c:784 elf32-cris.c:2029 elf32-crx.c:928 -#: elf32-d10v.c:517 elf32-fr30.c:595 elf32-frv.c:4045 elf32-ft32.c:338 -#: elf32-h8300.c:526 elf32-i860.c:1214 elf32-iq2000.c:697 elf32-lm32.c:1130 -#: elf32-m32c.c:625 elf32-m32r.c:3048 elf32-m68hc1x.c:1273 elf32-mep.c:528 -#: elf32-metag.c:2005 elf32-microblaze.c:1574 elf32-moxie.c:289 -#: elf32-msp430.c:1361 elf32-nds32.c:5406 elf32-or1k.c:1262 elf32-score.c:2735 -#: elf32-score7.c:2544 elf32-spu.c:5080 elf32-tilepro.c:3669 elf32-v850.c:2291 -#: elf32-visium.c:681 elf32-xstormy16.c:931 elf64-mmix.c:1544 -#: elfxx-mips.c:10258 elfxx-tilegx.c:4056 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2271 +#: elf-m10200.c:438 elf-m10300.c:2151 elf32-avr.c:1509 elf32-bfin.c:3131 +#: elf32-cr16.c:1468 elf32-cr16c.c:787 elf32-cris.c:2037 elf32-crx.c:929 +#: elf32-d10v.c:516 elf32-fr30.c:598 elf32-frv.c:4053 elf32-ft32.c:498 +#: elf32-h8300.c:527 elf32-iq2000.c:697 elf32-lm32.c:1116 elf32-m32c.c:628 +#: elf32-m32r.c:3049 elf32-m68hc1x.c:1270 elf32-mep.c:530 elf32-metag.c:1994 +#: elf32-microblaze.c:1635 elf32-moxie.c:292 elf32-msp430.c:1362 +#: elf32-nds32.c:5304 elf32-or1k.c:1246 elf32-score.c:2737 elf32-score7.c:2546 +#: elf32-spu.c:5082 elf32-tilepro.c:3510 elf32-v850.c:2295 elf32-visium.c:685 +#: elf32-xstormy16.c:935 elf64-mmix.c:1545 elfxx-mips.c:10283 +#: elfxx-tilegx.c:3874 msgid "internal error: unsupported relocation error" msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: непідтримувана помилка переÑуваннÑ" -#: elf-m10200.c:433 elf32-cr16.c:1474 elf32-cr16c.c:788 elf32-crx.c:932 -#: elf32-d10v.c:521 elf32-h8300.c:530 elf32-lm32.c:1134 elf32-m32r.c:3052 -#: elf32-m68hc1x.c:1277 elf32-microblaze.c:1578 elf32-nds32.c:5410 -#: elf32-score.c:2739 elf32-score7.c:2548 elf32-spu.c:5084 +#: elf-m10200.c:442 elf32-cr16.c:1472 elf32-cr16c.c:791 elf32-crx.c:933 +#: elf32-d10v.c:520 elf32-h8300.c:531 elf32-lm32.c:1120 elf32-m32r.c:3053 +#: elf32-m68hc1x.c:1274 elf32-microblaze.c:1639 elf32-nds32.c:5308 +#: elf32-score.c:2741 elf32-score7.c:2550 elf32-spu.c:5086 msgid "internal error: dangerous error" msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: небезпечна помилка" -#: elf-m10200.c:437 elf-m10300.c:2170 elf32-avr.c:1514 elf32-bfin.c:3206 -#: elf32-cr16.c:1478 elf32-cr16c.c:792 elf32-cris.c:2037 elf32-crx.c:936 -#: elf32-d10v.c:525 elf32-epiphany.c:578 elf32-fr30.c:603 elf32-frv.c:4053 -#: elf32-ft32.c:346 elf32-h8300.c:534 elf32-i860.c:1222 elf32-ip2k.c:1490 -#: elf32-iq2000.c:705 elf32-lm32.c:1138 elf32-m32c.c:633 elf32-m32r.c:3056 -#: elf32-m68hc1x.c:1281 elf32-mep.c:536 elf32-metag.c:2013 -#: elf32-microblaze.c:1582 elf32-moxie.c:297 elf32-msp430.c:1369 -#: elf32-mt.c:408 elf32-nds32.c:5414 elf32-or1k.c:1270 elf32-score.c:2748 -#: elf32-score7.c:2552 elf32-spu.c:5088 elf32-tilepro.c:3677 elf32-v850.c:2311 -#: elf32-visium.c:689 elf32-xstormy16.c:939 elf64-mmix.c:1552 -#: elfxx-tilegx.c:4064 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2279 +#: elf-m10200.c:446 elf-m10300.c:2168 elf32-avr.c:1517 elf32-bfin.c:3139 +#: elf32-cr16.c:1476 elf32-cr16c.c:795 elf32-cris.c:2045 elf32-crx.c:937 +#: elf32-d10v.c:524 elf32-epiphany.c:581 elf32-fr30.c:606 elf32-frv.c:4061 +#: elf32-ft32.c:506 elf32-h8300.c:535 elf32-ip2k.c:1497 elf32-iq2000.c:705 +#: elf32-lm32.c:1124 elf32-m32c.c:636 elf32-m32r.c:3057 elf32-m68hc1x.c:1278 +#: elf32-mep.c:538 elf32-metag.c:2002 elf32-microblaze.c:1643 +#: elf32-moxie.c:300 elf32-msp430.c:1370 elf32-mt.c:410 elf32-nds32.c:5312 +#: elf32-or1k.c:1254 elf32-score.c:2750 elf32-score7.c:2554 elf32-spu.c:5090 +#: elf32-tilepro.c:3518 elf32-v850.c:2315 elf32-visium.c:693 +#: elf32-xstormy16.c:943 elf64-mmix.c:1553 elfxx-tilegx.c:3882 msgid "internal error: unknown error" msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: невідома помилка" -#: elf-m10300.c:812 +#: elf-m10300.c:1029 #, c-format -msgid "%B: unrecognised MN10300 reloc number: %d" -msgstr "%B: невідоме чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ MN10300: %d" +msgid "%pB: unsupported transition from %s to %s" +msgstr "%pB: непідтримуваний перехід з %s до %s" -#: elf-m10300.c:1028 +#: elf-m10300.c:1198 #, c-format -msgid "%B: Unsupported transition from %s to %s" -msgstr "%B: непідтримуваний перехід з %s до %s" +msgid "%pB: %s' accessed both as normal and thread local symbol" +msgstr "%pB: доÑтуп до «%s» виконуєтьÑÑ Ñк до звичайного Ñимволу та локального Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñимволу" -#: elf-m10300.c:1201 +#: elf-m10300.c:2094 elf32-arm.c:13234 elf32-i386.c:3410 elf32-m32r.c:2539 +#: elf32-m68k.c:3899 elf32-s390.c:3208 elf32-sh.c:3796 elf32-tilepro.c:3409 +#: elf32-xtensa.c:2952 elf64-s390.c:3125 elf64-x86-64.c:3843 +#: elfxx-sparc.c:3908 elfxx-tilegx.c:3793 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-aarch64.c:5258 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-aarch64.c:6738 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-riscv.c:2249 #, c-format -msgid "%B: %s' accessed both as normal and thread local symbol" -msgstr "%B: доÑтуп до «%s» виконуєтьÑÑ Ñк до звичайного Ñимволу та локального Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñимволу" +msgid "%pB(%pA+%#): unresolvable %s relocation against symbol `%s'" +msgstr "%pB(%pA+%#): нерозв’Ñзне переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо Ñимволу «%s»" -#: elf-m10300.c:2097 elf32-arm.c:12532 elf32-i386.c:5372 elf32-m32r.c:2540 -#: elf32-m68k.c:4084 elf32-s390.c:3372 elf32-sh.c:4127 elf32-tilepro.c:3569 -#: elf32-xtensa.c:3074 elf64-s390.c:3296 elf64-sh64.c:1636 elf64-x86-64.c:5753 -#: elfxx-sparc.c:4086 elfxx-tilegx.c:3976 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6437 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2236 -#, c-format -msgid "%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'" -msgstr "%B(%A+0x%lx): нерозв’Ñзне переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо Ñимволу «%s»" - -#: elf-m10300.c:2158 +#: elf-m10300.c:2156 msgid "error: inappropriate relocation type for shared library (did you forget -fpic?)" msgstr "помилка: невідповідний тип переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸ Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ (забули -fpic?)" -#: elf-m10300.c:2162 +#: elf-m10300.c:2160 #, c-format -msgid "%B: taking the address of protected function '%s' cannot be done when making a shared library" -msgstr "%B: не можна виконувати Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð°Ð´Ñ€ÐµÑи захищеної функції «%s» під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸ Ñпільного викориÑтаннÑ" +msgid "%pB: taking the address of protected function '%s' cannot be done when making a shared library" +msgstr "%pB: не можна виконувати Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð°Ð´Ñ€ÐµÑи захищеної функції «%s» під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸ Ñпільного викориÑтаннÑ" -#: elf-m10300.c:2165 +#: elf-m10300.c:2163 msgid "internal error: suspicious relocation type used in shared library" msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: підозріливий тип переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ бібліотеці Ñпільного викориÑтаннÑ" +#: elf-m10300.c:2649 elf32-avr.c:2487 elf32-frv.c:5641 elf64-ia64-vms.c:364 +#: elfxx-sparc.c:2797 reloc.c:8116 reloc16.c:155 elf32-ia64.c:362 +#: elf64-ia64.c:362 +msgid "%P%F: --relax and -r may not be used together\n" +msgstr "%P%F: --relax Ñ– -r не можна викориÑтовувати одночаÑно\n" + #: elf-properties.c:65 -msgid "%B: out of memory in _bfd_elf_get_property" -msgstr "%B: вихід за межі ділÑнки пам'ÑÑ‚Ñ– у _bfd_elf_get_property" +#, c-format +msgid "%pB: out of memory in _bfd_elf_get_property" +msgstr "%pB: вихід за межі ділÑнки пам'ÑÑ‚Ñ– у _bfd_elf_get_property" #: elf-properties.c:91 -msgid "warning: %B: corrupt GNU_PROPERTY_TYPE (%ld) size: %#lx" -msgstr "попередженнÑ: %B: пошкоджено GNU_PROPERTY_TYPE (%ld), розмір: %#lx" +#, c-format +msgid "warning: %pB: corrupt GNU_PROPERTY_TYPE (%ld) size: %#lx" +msgstr "попередженнÑ: %pB: пошкоджено GNU_PROPERTY_TYPE (%ld), розмір: %#lx" -#: elf-properties.c:107 -msgid "warning: %B: corrupt GNU_PROPERTY_TYPE (%ld) type (0x%x) datasz: 0x%x" -msgstr "попередженнÑ: %B: пошкоджено GNU_PROPERTY_TYPE (%ld), тип (0x%x), обÑÑг даних: 0x%x" - -#: elf-properties.c:146 -msgid "warning: %B: corrupt stack size: 0x%x" -msgstr "попередженнÑ: %B: пошкоджено розмір Ñтека: 0x%x" - -#: elf-properties.c:164 -msgid "warning: %B: corrupt no copy on protected size: 0x%x" -msgstr "попередженнÑ: %B: пошкоджено «не копіювати захищене», розмір: 0x%x" - -#: elf-properties.c:180 -msgid "warning: %B: unsupported GNU_PROPERTY_TYPE (%ld) type: 0x%x" -msgstr "попередженнÑ: %B: непідтримуваний тип GNU_PROPERTY_TYPE (%ld): 0x%x" +#: elf-properties.c:112 +#, c-format +msgid "warning: %pB: corrupt GNU_PROPERTY_TYPE (%ld) type (0x%x) datasz: 0x%x" +msgstr "попередженнÑ: %pB: пошкоджено GNU_PROPERTY_TYPE (%ld), тип (0x%x), обÑÑг даних: 0x%x" + +#: elf-properties.c:151 +#, c-format +msgid "warning: %pB: corrupt stack size: 0x%x" +msgstr "попередженнÑ: %pB: пошкоджено розмір Ñтека: 0x%x" + +#: elf-properties.c:169 +#, c-format +msgid "warning: %pB: corrupt no copy on protected size: 0x%x" +msgstr "попередженнÑ: %pB: пошкоджено «не копіювати захищене», розмір: 0x%x" + +#: elf-properties.c:186 +#, c-format +msgid "warning: %pB: unsupported GNU_PROPERTY_TYPE (%ld) type: 0x%x" +msgstr "попередженнÑ: %pB: непідтримуваний тип GNU_PROPERTY_TYPE (%ld): 0x%x" #. PR 17512: file: f057ec89. -#: elf.c:342 +#: elf.c:344 #, c-format -msgid "%B: attempt to load strings from a non-string section (number %d)" -msgstr "%B: Ñпроба Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ€Ñдків із нерÑдкового розділу (номер %d)" +msgid "%pB: attempt to load strings from a non-string section (number %d)" +msgstr "%pB: Ñпроба Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ€Ñдків із нерÑдкового розділу (номер %d)" -#: elf.c:357 +#: elf.c:359 #, c-format -msgid "%B: invalid string offset %u >= %lu for section `%s'" -msgstr "%B: некоректний відÑтуп Ñ€Ñдка, %u >= %lu, Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ «%s»" +msgid "%pB: invalid string offset %u >= % for section `%s'" +msgstr "%pB: некоректний відÑтуп Ñ€Ñдка, %u >= %, Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ «%s»" -#: elf.c:496 +#: elf.c:498 /work/sources/binutils/branches/2.31/bfd/elfnn-aarch64.c:7826 #, c-format -msgid "%B symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section" -msgstr "%B номер Ñимволу %lu поÑилаєтьÑÑ Ð½Ð° розділ SHT_SYMTAB_SHNDX, Ñкого не Ñ–Ñнує" +msgid "%pB symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section" +msgstr "%pB номер Ñимволу %lu поÑилаєтьÑÑ Ð½Ð° розділ SHT_SYMTAB_SHNDX, Ñкого не Ñ–Ñнує" -#: elf.c:660 +#: elf.c:663 #, c-format -msgid "%B: corrupt size field in group section header: %#Lx" -msgstr "%B: пошкоджені дані Ð¿Ð¾Ð»Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ у заголовку розділу груп: %#Lx" +msgid "%pB: corrupt size field in group section header: %#" +msgstr "%pB: пошкоджені дані Ð¿Ð¾Ð»Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ у заголовку розділу груп: %#" -#: elf.c:675 +#: elf.c:679 #, c-format -msgid "%B: invalid size field in group section header: %#Lx" -msgstr "%B: некоректні дані Ð¿Ð¾Ð»Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ у заголовку розділу груп: %#Lx" +msgid "%pB: invalid size field in group section header: %#" +msgstr "%pB: некоректні дані Ð¿Ð¾Ð»Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ у заголовку розділу груп: %#" -#: elf.c:711 -msgid "%B: invalid SHT_GROUP entry" -msgstr "%B: некоректний Ð·Ð°Ð¿Ð¸Ñ SHT_GROUP" +#: elf.c:727 +#, c-format +msgid "%pB: invalid entry in SHT_GROUP section [%u]" +msgstr "%pB: некоректний Ð·Ð°Ð¿Ð¸Ñ Ñƒ розділі SHT_GROUP [%u]" -#: elf.c:730 -msgid "%B: no valid group sections found" -msgstr "%B: не знайдено коректних розділів групи" +#: elf.c:746 +#, c-format +msgid "%pB: no valid group sections found" +msgstr "%pB: не знайдено коректних розділів групи" + +#. See PR 21957 for a reproducer. +#: elf.c:775 +#, c-format +msgid "%pB: group section '%pA' has no contents" +msgstr "%pB: груповий розділ «%pA» не міÑтить даних" -#: elf.c:804 +#: elf.c:836 #, c-format -msgid "%B: no group info for section %A" -msgstr "%B: немає даних щодо групи Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %A" +msgid "%pB: no group info for section '%pA'" +msgstr "%pB: немає даних щодо групи Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ «%pA»" -#: elf.c:835 elf.c:3819 elflink.c:11155 +#: elf.c:867 elf.c:3881 elflink.c:11375 #, c-format -msgid "%B: warning: sh_link not set for section `%A'" -msgstr "%B: попередженнÑ: не вÑтановлено sh_link Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ «%A»" +msgid "%pB: warning: sh_link not set for section `%pA'" +msgstr "%pB: попередженнÑ: не вÑтановлено sh_link Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ «%pA»" -#: elf.c:855 +#: elf.c:887 #, c-format -msgid "%B: sh_link [%d] in section `%A' is incorrect" -msgstr "%B: sh_link [%d] у розділі «%A» Ñ” некоректним" +msgid "%pB: sh_link [%d] in section `%pA' is incorrect" +msgstr "%pB: sh_link [%d] у розділі «%pA» Ñ” некоректним" -#: elf.c:868 +#: elf.c:900 #, c-format -msgid "%B: SHT_GROUP section [index %d] has no SHF_GROUP sections" -msgstr "%B: розділ SHT_GROUP [Ñ–Ð½Ð´ÐµÐºÑ %d] не має розділів SHF_GROUP" +msgid "%pB: SHT_GROUP section [index %d] has no SHF_GROUP sections" +msgstr "%pB: розділ SHT_GROUP [Ñ–Ð½Ð´ÐµÐºÑ %d] не має розділів SHF_GROUP" -#: elf.c:889 +#: elf.c:921 #, c-format -msgid "%B: section group entry number %u is corrupt" -msgstr "%B: Ð·Ð°Ð¿Ð¸Ñ Ð³Ñ€ÑƒÐ¿Ð¸ розділів із номером %u пошкоджено" +msgid "%pB: section group entry number %u is corrupt" +msgstr "%pB: Ð·Ð°Ð¿Ð¸Ñ Ð³Ñ€ÑƒÐ¿Ð¸ розділів із номером %u пошкоджено" -#: elf.c:914 +#: elf.c:944 #, c-format -msgid "%B: unknown type [%#x] section `%s' in group [%A]" -msgstr "%B: невідомий тип, [%#x], розділу «%s» у групі [%A]" +msgid "%pB: unknown type [%#x] section `%s' in group [%pA]" +msgstr "%pB: невідомий тип, [%#x], розділу «%s» у групі [%pA]" -#: elf.c:1373 +#: elf.c:1406 #, c-format -msgid "%B: Invalid sh_link field (%d) in section number %d" -msgstr "%B: некоректне поле sh_link (%d) у розділі з номером %d" +msgid "%pB: invalid sh_link field (%d) in section number %d" +msgstr "%pB: некоректне поле sh_link (%d) у розділі з номером %d" -#: elf.c:1389 +#: elf.c:1422 #, c-format -msgid "%B: Failed to find link section for section %d" -msgstr "%B: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ розділ зв’Ñзків Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %d" +msgid "%pB: failed to find link section for section %d" +msgstr "%pB: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ розділ зв’Ñзків Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %d" -#: elf.c:1416 +#: elf.c:1449 #, c-format -msgid "%B: Failed to find info section for section %d" -msgstr "%B: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ інформації Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %d" +msgid "%pB: failed to find info section for section %d" +msgstr "%pB: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ інформації Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %d" -#: elf.c:1588 +#: elf.c:1621 #, c-format msgid "" "\n" @@ -1105,7 +1043,7 @@ "\n" "Заголовок програми:\n" -#: elf.c:1630 +#: elf.c:1663 #, c-format msgid "" "\n" @@ -1114,7 +1052,7 @@ "\n" "Динамічний розділ:\n" -#: elf.c:1771 +#: elf.c:1804 #, c-format msgid "" "\n" @@ -1123,7 +1061,7 @@ "\n" "Ð’Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²ÐµÑ€Ñій:\n" -#: elf.c:1796 +#: elf.c:1829 #, c-format msgid "" "\n" @@ -1132,791 +1070,852 @@ "\n" "ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° верÑÑ–Ñ—:\n" -#: elf.c:1801 +#: elf.c:1834 #, c-format msgid " required from %s:\n" msgstr " потрібні %s:\n" -#: elf.c:1999 -msgid "%B: warning: loop in section dependencies detected" -msgstr "%B: попередженнÑ: виÑвлено зацикленіÑÑ‚ÑŒ залежноÑтей розділу" +#: elf.c:2035 +#, c-format +msgid "%pB: warning: loop in section dependencies detected" +msgstr "%pB: попередженнÑ: виÑвлено зацикленіÑÑ‚ÑŒ залежноÑтей розділу" -#: elf.c:2107 +#: elf.c:2143 #, c-format -msgid "%B: warning: multiple symbol tables detected - ignoring the table in section %u" -msgstr "%B: попередженнÑ: виÑвлено декілька таблиць Ñимволів — ігноруємо таблицю у розділі %u" +msgid "%pB: warning: multiple symbol tables detected - ignoring the table in section %u" +msgstr "%pB: попередженнÑ: виÑвлено декілька таблиць Ñимволів — ігноруємо таблицю у розділі %u" -#: elf.c:2191 +#: elf.c:2227 #, c-format -msgid "%B: warning: multiple dynamic symbol tables detected - ignoring the table in section %u" -msgstr "%B: попередженнÑ: виÑвлено декілька таблиць динамічних Ñимволів — ігноруємо таблицю у розділі %u" +msgid "%pB: warning: multiple dynamic symbol tables detected - ignoring the table in section %u" +msgstr "%pB: попередженнÑ: виÑвлено декілька таблиць динамічних Ñимволів — ігноруємо таблицю у розділі %u" -#: elf.c:2304 +#: elf.c:2340 #, c-format -msgid "%B: invalid link %u for reloc section %s (index %u)" -msgstr "%B: некоректне поÑÐ¸Ð»Ð°Ð½Ð½Ñ %u Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ переÑÑƒÐ²Ð°Ð½Ð½Ñ %s (Ñ–Ð½Ð´ÐµÐºÑ %u)" +msgid "%pB: invalid link %u for reloc section %s (index %u)" +msgstr "%pB: некоректне поÑÐ¸Ð»Ð°Ð½Ð½Ñ %u Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ переÑÑƒÐ²Ð°Ð½Ð½Ñ %s (Ñ–Ð½Ð´ÐµÐºÑ %u)" -#: elf.c:2463 elf.c:2478 elf.c:2489 elf.c:2502 +#: elf.c:2499 elf.c:2514 elf.c:2525 elf.c:2538 #, c-format -msgid "%B: unknown type [%#x] section `%s'" -msgstr "%B: розділ невідомого типу [%#x], «%s»" +msgid "%pB: unknown type [%#x] section `%s'" +msgstr "%pB: розділ невідомого типу [%#x], «%s»" -#: elf.c:3206 +#: elf.c:3243 #, c-format -msgid "%B: error: Alignment power %d of section `%A' is too big" -msgstr "%B: помилка: Ñтепінь Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ %d розділу «%A» Ñ” надто великою" +msgid "%pB: error: alignment power %d of section `%pA' is too big" +msgstr "%pB: помилка: Ñтепінь Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ %d розділу «%pA» Ñ” надто великою" -#: elf.c:3236 +#: elf.c:3273 #, c-format -msgid "warning: section `%A' type changed to PROGBITS" -msgstr "попередженнÑ: тип розділу «%A» змінено на PROGBITS" +msgid "warning: section `%pA' type changed to PROGBITS" +msgstr "попередженнÑ: тип розділу «%pA» змінено на PROGBITS" -#: elf.c:3687 +#: elf.c:3749 #, c-format -msgid "%B: too many sections: %u" -msgstr "%B: занадто багато розділів %u" +msgid "%pB: too many sections: %u" +msgstr "%pB: занадто багато розділів %u" -#: elf.c:3772 +#: elf.c:3834 #, c-format -msgid "%B: sh_link of section `%A' points to discarded section `%A' of `%B'" -msgstr "%B: sh_link розділу «%A» вказує на відкинутий розділ «%A» «%B»" +msgid "%pB: sh_link of section `%pA' points to discarded section `%pA' of `%pB'" +msgstr "%pB: sh_link розділу «%pA» вказує на відкинутий розділ «%pA» «%pB»" -#: elf.c:3797 +#: elf.c:3859 #, c-format -msgid "%B: sh_link of section `%A' points to removed section `%A' of `%B'" -msgstr "%B: sh_link розділу «%A» вказує на вилучений розділ «%A» «%B»" +msgid "%pB: sh_link of section `%pA' points to removed section `%pA' of `%pB'" +msgstr "%pB: sh_link розділу «%pA» вказує на вилучений розділ «%pA» «%pB»" -#: elf.c:4349 +#: elf.c:4418 #, c-format -msgid "%B: GNU_MBIN section `%A' has invalid sh_info field: %d" -msgstr "%B: у розділі GNU_MBIN «%A» міÑтитьÑÑ Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ поле sh_info: %d" +msgid "%pB: GNU_MBIN section `%pA' has invalid sh_info field: %d" +msgstr "%pB: у розділі GNU_MBIN «%pA» міÑтитьÑÑ Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ поле sh_info: %d" -#: elf.c:4891 -msgid "%B: TLS sections are not adjacent:" -msgstr "%B: розділи TLS не Ñ” ÑуÑідніми:" +#: elf.c:4964 +#, c-format +msgid "%pB: TLS sections are not adjacent:" +msgstr "%pB: розділи TLS не Ñ” ÑуÑідніми:" -#: elf.c:4898 +#: elf.c:4971 #, c-format -msgid "\t TLS: %A" -msgstr "\t TLS: %A" +msgid "\t TLS: %pA" +msgstr "\t TLS: %pA" -#: elf.c:4902 +#: elf.c:4975 #, c-format -msgid "\tnon-TLS: %A" -msgstr "\tне-TLS: %A" +msgid "\tnon-TLS: %pA" +msgstr "\tне-TLS: %pA" -#: elf.c:5398 -msgid "%B: The first section in the PT_DYNAMIC segment is not the .dynamic section" -msgstr "%B: перший розділ у Ñегменті PT_DYNAMIC не Ñ” розділом .dynamic" +#: elf.c:5471 +#, c-format +msgid "%pB: The first section in the PT_DYNAMIC segment is not the .dynamic section" +msgstr "%pB: перший розділ у Ñегменті PT_DYNAMIC не Ñ” розділом .dynamic" -#: elf.c:5426 -msgid "%B: Not enough room for program headers, try linking with -N" -msgstr "%B: недоÑтатньо міÑÑ†Ñ Ð´Ð»Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÑ–Ð² програми, Ñпробуйте виконати ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð· -N" +#: elf.c:5499 +#, c-format +msgid "%pB: not enough room for program headers, try linking with -N" +msgstr "%pB: недоÑтатньо міÑÑ†Ñ Ð´Ð»Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÑ–Ð² програми, Ñпробуйте виконати ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð· -N" -#: elf.c:5514 +#: elf.c:5587 #, c-format -msgid "%B: section %A lma %#Lx adjusted to %#Lx" -msgstr "%B: lma %#Lx розділу %A Ñкориговано до %#Lx" +msgid "%pB: section %pA lma %# adjusted to %#" +msgstr "%pB: (розділ %pA) lma %# Ñкориговано до %#" -#: elf.c:5651 +#: elf.c:5724 #, c-format -msgid "%B: section `%A' can't be allocated in segment %d" -msgstr "%B: розділ «%A» не може бути розподілено у Ñегменті %d" +msgid "%pB: section `%pA' can't be allocated in segment %d" +msgstr "%pB: розділ «%pA» не може бути розподілено у Ñегменті %d" -#: elf.c:5699 +#: elf.c:5772 #, c-format -msgid "%B: warning: allocated section `%s' not in segment" -msgstr "%B: попередженнÑ: розподілений розділ «%s» перебуває за межами Ñегмента" +msgid "%pB: warning: allocated section `%s' not in segment" +msgstr "%pB: попередженнÑ: розподілений розділ «%s» перебуває за межами Ñегмента" -#: elf.c:5897 -msgid "%B: error: non-load segment %d includes file header and/or program header" -msgstr "%B: помилка: незавантажуваний Ñегмент %d включає заголовок файла Ñ–/або заголовок програми" +#: elf.c:6005 +#, c-format +msgid "%pB: error: non-load segment %d includes file header and/or program header" +msgstr "%pB: помилка: незавантажуваний Ñегмент %d включає заголовок файла Ñ–/або заголовок програми" #. The fix for this error is usually to edit the linker script being #. used and set up the program headers manually. Either that or #. leave room for the headers at the start of the SECTIONS. -#: elf.c:6074 -msgid "%B: error: PHDR segment not covered by LOAD segment" -msgstr "%B: помилка: Ñегмент PHDR не покриваєтьÑÑ Ñегментом LOAD" - -#: elf.c:6418 +#: elf.c:6182 #, c-format -msgid "%B: symbol `%s' required but not present" -msgstr "%B: потрібен Ñимвол «%s», але його немає" +msgid "%pB: error: PHDR segment not covered by LOAD segment" +msgstr "%pB: помилка: Ñегмент PHDR не покриваєтьÑÑ Ñегментом LOAD" -#: elf.c:6761 +#: elf.c:6527 #, c-format -msgid "%B: warning: Empty loadable segment detected at vaddr=%#Lx, is this intentional?" -msgstr "%B: попередженнÑ: виÑвлено порожній завантажувальний Ñегмент за vaddr=%#Lx, так Ñ– треба?" +msgid "%pB: symbol `%s' required but not present" +msgstr "%pB: потрібен Ñимвол «%s», але його немає" -#: elf.c:7375 +#: elf.c:6869 #, c-format -msgid "%B: warning: segment alignment of %#Lx is too large" -msgstr "%B: попередженнÑ: Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñегмента %#Lx Ñ” надто великим" +msgid "%pB: warning: empty loadable segment detected at vaddr=%#, is this intentional?" +msgstr "%pB: попередженнÑ: виÑвлено порожній завантажувальний Ñегмент за vaddr=%#, так Ñ– треба?" -#: elf.c:7856 +#: elf.c:7472 #, c-format -msgid "Unable to find equivalent output section for symbol '%s' from section '%s'" -msgstr "Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ рівноцінний розділ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… Ð´Ð»Ñ Ñимволу «%s» з розділу «%s»" +msgid "%pB: warning: segment alignment of %# is too large" +msgstr "%pB: попередженнÑ: Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñегмента %# Ñ” надто великим" -#: elf.c:8188 -msgid "%B: .gnu.version_r invalid entry" -msgstr "%B: некоректний Ð·Ð°Ð¿Ð¸Ñ .gnu.version_r" +#: elf.c:7971 +#, c-format +msgid "unable to find equivalent output section for symbol '%s' from section '%s'" +msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ рівноцінний розділ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… Ð´Ð»Ñ Ñимволу «%s» з розділу «%s»" -#: elf.c:8315 -msgid "%B: .gnu.version_d invalid entry" -msgstr "%B: некоректний Ð·Ð°Ð¿Ð¸Ñ .gnu.version_d" +#: elf.c:8304 +#, c-format +msgid "%pB: .gnu.version_r invalid entry" +msgstr "%pB: некоректний Ð·Ð°Ð¿Ð¸Ñ .gnu.version_r" -#: elf.c:8867 +#: elf.c:8431 #, c-format -msgid "%B: unsupported relocation type %s" -msgstr "%B: непідтримуваний тип переÑÑƒÐ²Ð°Ð½Ð½Ñ %s" +msgid "%pB: .gnu.version_d invalid entry" +msgstr "%pB: некоректний Ð·Ð°Ð¿Ð¸Ñ .gnu.version_d" -#: elf32-arc.c:433 elf32-frv.c:6626 elf32-iq2000.c:870 elf32-m32c.c:915 -#: elf32-mt.c:564 elf32-rl78.c:1256 elf32-rx.c:3177 elf32-visium.c:837 -#: elf64-ppc.c:6078 +#: elf32-arc.c:442 elf32-frv.c:6630 elf32-iq2000.c:870 elf32-m32c.c:914 +#: elf32-mt.c:562 elf32-rl78.c:1261 elf32-rx.c:3200 elf32-visium.c:841 +#: elf64-ppc.c:6198 #, c-format msgid "private flags = 0x%lx:" msgstr "закриті прапорці = 0x%lx:" -#: elf32-arc.c:611 -msgid "Warning: %B: Conflicting platform configuration %s with %s.\n" -msgstr "ПопередженнÑ: %B: конфлікт налаштувань платформ, %s з %s.\n" +#: elf32-arc.c:629 +#, c-format +msgid "warning: %pB: conflicting platform configuration %s with %s" +msgstr "попередженнÑ: %pB: конфлікт налаштувань платформ, %s з %s" -#: elf32-arc.c:630 -msgid "error: %B: unable to merge CPU base attributes %s with %s.\n" -msgstr "помилка: %B: не вдалоÑÑ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ базові атрибути процеÑора %s з %s.\n" +#: elf32-arc.c:648 +#, c-format +msgid "error: %pB: unable to merge CPU base attributes %s with %s" +msgstr "помилка: %pB: не вдалоÑÑ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ базові атрибути процеÑора %s з %s" -#: elf32-arc.c:667 -msgid "error: %B: unable to merge ISA extension attributes %s.\n" -msgstr "помилка: %B: не вдалоÑÑ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ атрибути Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ ISA %s.\n" +#: elf32-arc.c:685 +#, c-format +msgid "error: %pB: unable to merge ISA extension attributes %s" +msgstr "помилка: %pB: не вдалоÑÑ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ атрибути Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ ISA %s" -#: elf32-arc.c:691 -msgid "error: %B: conflicting ISA extension attributes %s with %s.\n" -msgstr "помилка: %B: конфлікт атрибутів Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ ISA, %s з %s.\n" +#: elf32-arc.c:709 +#, c-format +msgid "error: %pB: conflicting ISA extension attributes %s with %s" +msgstr "помилка: %pB: конфлікт атрибутів Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ ISA, %s з %s" -#: elf32-arc.c:726 -msgid "error: %B: cannot mix rf16 with full register set %B.\n" -msgstr "помилка: %B: не можна одночаÑно викориÑтовувати rf16 Ñ– повний набір регіÑтрів %B.\n" +#: elf32-arc.c:744 +#, c-format +msgid "error: %pB: cannot mix rf16 with full register set %pB" +msgstr "помилка: %pB: не можна одночаÑно викориÑтовувати rf16 Ñ– повний набір регіÑтрів %pB" -#: elf32-arc.c:752 -msgid "error: %B: conflicting attributes %s: %s with %s.\n" -msgstr "помилка: %B: конфлікт атрибутів %s: %s з %s.\n" +#: elf32-arc.c:770 +#, c-format +msgid "error: %pB: conflicting attributes %s: %s with %s" +msgstr "помилка: %pB: конфлікт атрибутів %s: %s з %s" -#: elf32-arc.c:777 -msgid "error: %B: conflicting attributes %s.\n" -msgstr "помилка: %B: конфлікт атрибутів %s.\n" +#: elf32-arc.c:795 +#, c-format +msgid "error: %pB: conflicting attributes %s" +msgstr "помилка: %pB: конфлікт атрибутів %s" -#: elf32-arc.c:877 +#: elf32-arc.c:895 #, c-format -msgid "ERROR: Attempting to link %B with a binary %B of different architecture" -msgstr "ПОМИЛКÐ: Ñпроба ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ %B зі виконуваним файлом %B іншої архітектури" +msgid "error: attempting to link %pB with a binary %pB of different architecture" +msgstr "помилка: Ñпроба ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ %pB зі виконуваним файлом %pB іншої архітектури" -#: elf32-arc.c:891 elf32-i370.c:359 elf32-iq2000.c:846 elf32-m32c.c:890 -#: elf32-m68hc1x.c:1388 elf64-sparc.c:727 elfxx-mips.c:15127 +#: elf32-arc.c:909 elf32-iq2000.c:846 elf32-m32c.c:889 elf32-m68hc1x.c:1385 +#: elf32-ppc.c:4962 elf64-sparc.c:726 elfxx-mips.c:15135 #, c-format -msgid "%B: uses different e_flags (0x%lx) fields than previous modules (0x%lx)" -msgstr "%B: викориÑтовуютьÑÑ Ñ–Ð½ÑˆÑ– Ð¿Ð¾Ð»Ñ e_flags (0x%lx) ніж у попередніх модулÑÑ… (0x%lx)" +msgid "%pB: uses different e_flags (%#x) fields than previous modules (%#x)" +msgstr "%pB: викориÑтовуютьÑÑ Ñ–Ð½ÑˆÑ– Ð¿Ð¾Ð»Ñ e_flags (%#x) ніж у попередніх модулÑÑ… (%#x)" -#: elf32-arc.c:980 -msgid "Error: The ARC4 architecture is no longer supported.\n" -msgstr "Помилка: підтримку архітектури ARC4 припинено.\n" +#: elf32-arc.c:998 +msgid "error: the ARC4 architecture is no longer supported" +msgstr "помилка: підтримку архітектури ARC4 припинено" -#: elf32-arc.c:986 -msgid "" -"Warning: unset or old architecture flags. \n" -"\t Use default machine.\n" -msgstr "" -"ПопередженнÑ: не вÑтановлено прапорці архітектури або вÑтановлено заÑтарілі. \n" -"\t ВикориÑтовуємо типову архітектуру.\n" +#: elf32-arc.c:1004 +msgid "warning: unset or old architecture flags; use default machine" +msgstr "попередженнÑ: не вÑтановлено прапорці архітектури або вÑтановлено заÑтарілі; викориÑтовуємо типову архітектуру" -#: elf32-arc.c:1119 +#: elf32-arc.c:1137 #, c-format -msgid "%B(%A+0x%lx): CMEM relocation to `%s' is invalid, 16 MSB should be 0x%04x (value is 0x%lx)" -msgstr "%B(%A+0x%lx): переÑÑƒÐ²Ð°Ð½Ð½Ñ CMEM до «%s» Ñ” некоректним, 16 MSB має бути 0x%04x (Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ 0x%lx)" +msgid "%pB(%pA+%#): CMEM relocation to `%s' is invalid, 16 MSB should be %#x (value is %#)" +msgstr "%pB(%pA+%#): переÑÑƒÐ²Ð°Ð½Ð½Ñ CMEM до «%s» Ñ” некоректним, 16 MSB має бути %#x (Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %#)" -#: elf32-arc.c:1130 +#: elf32-arc.c:1148 #, c-format -msgid "%B(%A+0x%lx): CMEM relocation to `%s+0x%lx' is invalid, 16 MSB should be 0x%04x (value is 0x%lx)" -msgstr "%B(%A+0x%lx): переÑÑƒÐ²Ð°Ð½Ð½Ñ CMEM до «%s+0x%lx» Ñ” некоректним, 16 MSB має бути 0x%04x (Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ 0x%lx)" +msgid "%pB(%pA+%#): CMEM relocation to `%s+%#' is invalid, 16 MSB should be %#x (value is %#)" +msgstr "%pB(%pA+%#): переÑÑƒÐ²Ð°Ð½Ð½Ñ CMEM до «%s+%#» Ñ” некоректним, 16 MSB має бути %#x (Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %#)" -#: elf32-arc.c:1835 -msgid "GOT and PLT relocations cannot be fixed with a non dynamic linker." -msgstr "ПереÑÑƒÐ²Ð°Ð½Ð½Ñ GOT Ñ– PLT не може бути виправлено, Ñкщо компонувальник Ñ” нединамічним." +#: elf32-arc.c:1853 +msgid "GOT and PLT relocations cannot be fixed with a non dynamic linker" +msgstr "ПереÑÑƒÐ²Ð°Ð½Ð½Ñ GOT Ñ– PLT не може бути виправлено, Ñкщо компонувальник Ñ” нединамічним" -#: elf32-arc.c:1859 elf32-rl78.c:1094 elf32-rx.c:1448 +#: elf32-arc.c:1877 elf32-rl78.c:1099 elf32-rx.c:1471 #, c-format -msgid "%B(%A): warning: unaligned access to symbol '%s' in the small data area" -msgstr "%B(%A): попередженнÑ: невирівнÑний доÑтуп до Ñимволу «%s» у малій облаÑÑ‚Ñ– даних" +msgid "%pB(%pA): warning: unaligned access to symbol '%s' in the small data area" +msgstr "%pB(%pA): попередженнÑ: невирівнÑний доÑтуп до Ñимволу «%s» у малій облаÑÑ‚Ñ– даних" -#: elf32-arc.c:1864 elf32-rl78.c:1099 elf32-rx.c:1453 +#: elf32-arc.c:1882 elf32-rl78.c:1104 elf32-rx.c:1476 #, c-format -msgid "%B(%A): internal error: out of range error" -msgstr "%B(%A): Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: вихід за межі діапазону" +msgid "%pB(%pA): internal error: out of range error" +msgstr "%pB(%pA): Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: вихід за межі діапазону" -#: elf32-arc.c:1869 elf32-rl78.c:1104 elf32-rx.c:1458 +#: elf32-arc.c:1887 elf32-rl78.c:1109 elf32-rx.c:1481 #, c-format -msgid "%B(%A): internal error: unsupported relocation error" -msgstr "%B(%A): Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: непідтримувана помилка переÑуваннÑ" +msgid "%pB(%pA): internal error: unsupported relocation error" +msgstr "%pB(%pA): Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: непідтримувана помилка переÑуваннÑ" -#: elf32-arc.c:1874 elf32-rl78.c:1109 elf32-rx.c:1463 +#: elf32-arc.c:1892 elf32-rl78.c:1114 elf32-rx.c:1486 #, c-format -msgid "%B(%A): internal error: dangerous relocation" -msgstr "%B(%A): Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: небезпечне переÑуваннÑ" +msgid "%pB(%pA): internal error: dangerous relocation" +msgstr "%pB(%pA): Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: небезпечне переÑуваннÑ" -#: elf32-arc.c:1879 elf32-rl78.c:1114 elf32-rx.c:1468 +#: elf32-arc.c:1897 elf32-rl78.c:1119 elf32-rx.c:1491 #, c-format -msgid "%B(%A): internal error: unknown error" -msgstr "%B(%A): Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: невідома помилка" +msgid "%pB(%pA): internal error: unknown error" +msgstr "%pB(%pA): Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: невідома помилка" -#: elf32-arc.c:1967 elf32-arm.c:14714 elf32-metag.c:2272 elfxx-mips.c:8883 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:7224 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:484 +#: elf32-arc.c:1985 elf32-arm.c:15279 elf32-metag.c:2257 elfxx-mips.c:8900 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-aarch64.c:7394 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-riscv.c:474 #, c-format -msgid "%B: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо «%s» не можна викориÑтовувати під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñпільного викориÑтаннÑ; повторно зберіть з -fPIC" - -#: elf32-arc.c:2859 -msgid "%B: Unknown mandatory ARC object attribute %d." -msgstr "%B: невідомий обов’Ñзковий атрибути об’єкта ARC %d" - -#: elf32-arc.c:2867 -msgid "Warning: %B: Unknown ARC object attribute %d." -msgstr "ПопередженнÑ: %B: невідомий атрибут об’єкта ARC %d" +msgid "%pB: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо «%s» не можна викориÑтовувати під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñпільного викориÑтаннÑ; повторно зберіть з -fPIC" -#: elf32-arm.c:4022 elf32-arm.c:4056 elf32-arm.c:4075 elf32-arm.c:4127 -msgid "%B(%A): warning: long branch veneers used in section with SHF_ARM_PURECODE section attribute is only supported for M-profile targets that implement the movw instruction." -msgstr "%B(%A): попередженнÑ: викориÑÑ‚Ð°Ð½Ð½Ñ Ð´Ð¾Ð²Ð³Ð¸Ñ… зовнішніх гілок у розділах із атрибутом розділу SHF_ARM_PURECODE передбачено лише Ð´Ð»Ñ Ñ†Ñ–Ð»ÐµÐ¹ з профілем M, у Ñких реалізовано інÑтрукцію movw." - -#: elf32-arm.c:4087 elf32-arm.c:8806 -msgid "" -"%B(%s): warning: interworking not enabled.\n" -" first occurrence: %B: Thumb call to ARM" -msgstr "" -"%B(%s): попередженнÑ: ÑуміÑну роботу не увімкнено.\n" -" перша згадка: %B: виклик thumb до ARM" +#: elf32-arc.c:2857 +#, c-format +msgid "%pB: unknown mandatory ARC object attribute %d" +msgstr "%pB: невідомий обов’Ñзковий атрибути об’єкта ARC %d" -#: elf32-arm.c:4141 -msgid "" -"%B(%s): warning: interworking not enabled.\n" -" first occurrence: %B: ARM call to Thumb" -msgstr "" -"%B(%s): попередженнÑ: ÑуміÑну роботу не увімкнено.\n" -" перша згадка: %B: виклик ARM до Thumb" +#: elf32-arc.c:2865 +#, c-format +msgid "warning: %pB: unknown ARC object attribute %d" +msgstr "попередженнÑ: %pB: невідомий атрибут об’єкта ARC %d" -#: elf32-arm.c:4415 +#: elf32-arm.c:4303 elf32-arm.c:4337 elf32-arm.c:4356 elf32-arm.c:4408 #, c-format -msgid "No address assigned to the veneers output section %s" -msgstr "Із розділом Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð¾Ð²Ð½Ñ– %s не пов’Ñзано адреÑи" +msgid "%pB(%pA): warning: long branch veneers used in section with SHF_ARM_PURECODE section attribute is only supported for M-profile targets that implement the movw instruction" +msgstr "%pB(%pA): попередженнÑ: викориÑÑ‚Ð°Ð½Ð½Ñ Ð´Ð¾Ð²Ð³Ð¸Ñ… зовнішніх гілок у розділах із атрибутом розділу SHF_ARM_PURECODE передбачено лише Ð´Ð»Ñ Ñ†Ñ–Ð»ÐµÐ¹ з профілем M, у Ñких реалізовано інÑтрукцію movw." -#: elf32-arm.c:4490 elf32-arm.c:6627 elf32-hppa.c:587 elf32-m68hc1x.c:165 -#: elf32-metag.c:1198 elf32-nios2.c:2227 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:2852 +#: elf32-arm.c:4368 elf32-arm.c:4422 elf32-arm.c:9091 elf32-arm.c:9181 #, c-format -msgid "%B: cannot create stub entry %s" -msgstr "%B: не вдалоÑÑ Ñтворити шаблонний Ð·Ð°Ð¿Ð¸Ñ %s" +msgid "%pB(%s): warning: interworking not enabled; first occurrence: %pB: %s call to %s" +msgstr "%pB(%s): попередженнÑ: ÑуміÑну роботу не увімкнено; перша згадка: %pB: виклик %s до %s" -#: elf32-arm.c:5675 -msgid "%B: Special symbol `%s' only allowed for ARMv8-M architecture or later." -msgstr "%B: Ñпеціальний Ñимвол «%s» можна викориÑтовувати лише Ð´Ð»Ñ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ ARMv8-M Ñ– новіших архітектур." +#: elf32-arm.c:4696 +#, c-format +msgid "no address assigned to the veneers output section %s" +msgstr "із розділом Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð¾Ð²Ð½Ñ– %s не пов’Ñзано адреÑи" -#: elf32-arm.c:5684 -msgid "%B: invalid special symbol `%s'." -msgstr "%B: некоректний Ñпеціальний Ñимвол «%s»." +#: elf32-arm.c:4771 elf32-arm.c:6907 elf32-hppa.c:579 elf32-m68hc1x.c:165 +#: elf32-metag.c:1186 elf32-nios2.c:2208 elf64-ppc.c:4756 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-aarch64.c:3099 +#, c-format +msgid "%pB: cannot create stub entry %s" +msgstr "%pB: не вдалоÑÑ Ñтворити шаблонний Ð·Ð°Ð¿Ð¸Ñ %s" -#: elf32-arm.c:5686 elf32-arm.c:5726 -msgid "It must be a global or weak function symbol." -msgstr "Це має бути загальний (global) або Ñлабкий (weak) Ñимвол функції." +#: elf32-arm.c:5956 +#, c-format +msgid "%pB: special symbol `%s' only allowed for ARMv8-M architecture or later" +msgstr "%pB: Ñпеціальний Ñимвол «%s» можна викориÑтовувати лише Ð´Ð»Ñ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ ARMv8-M Ñ– новіших архітектур" -#: elf32-arm.c:5724 -msgid "%B: invalid standard symbol `%s'." -msgstr "%B: некоректний Ñтандартний Ñимвол «%s»." +#: elf32-arm.c:5965 +#, c-format +msgid "%pB: invalid special symbol `%s'; it must be a global or weak function symbol" +msgstr "%pB: некоректний Ñпеціальний Ñимвол «%s»; це має бути Ñимвол загальної або Ñлабкої функції" -#: elf32-arm.c:5730 -msgid "%B: absent standard symbol `%s'." -msgstr "%B: немає Ñтандартного Ñимволу «%s»." +#: elf32-arm.c:6004 +#, c-format +msgid "%pB: invalid standard symbol `%s'; it must be a global or weak function symbol" +msgstr "%pB: некоректний Ñтандартний Ñимвол «%s»; це має бути загальний (global) або Ñлабкий (weak) Ñимвол функції." -#: elf32-arm.c:5742 -msgid "%B: `%s' and its special symbol are in different sections." -msgstr "%B: «%s» Ñ– Ñ—Ñ— Ñпеціальний Ñимвол перебувають у різних розділах." +#: elf32-arm.c:6010 +#, c-format +msgid "%pB: absent standard symbol `%s'" +msgstr "%pB: немає Ñтандартного Ñимволу «%s»." -#: elf32-arm.c:5754 -msgid "%B: entry function `%s' not output." -msgstr "%B: вхідна Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Â«%s» не виводить даних." +#: elf32-arm.c:6022 +#, c-format +msgid "%pB: `%s' and its special symbol are in different sections" +msgstr "%pB: «%s» Ñ– Ñ—Ñ— Ñпеціальний Ñимвол перебувають у різних розділах." -#: elf32-arm.c:5761 -msgid "%B: entry function `%s' is empty." -msgstr "%B: вхідна Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Â«%s» Ñ” порожньою." +#: elf32-arm.c:6034 +#, c-format +msgid "%pB: entry function `%s' not output" +msgstr "%pB: вхідна Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Â«%s» не виводить даних" -#: elf32-arm.c:5890 -msgid "%B: --in-implib only supported for Secure Gateway import libraries." -msgstr "%B: підтримку --in-implib передбачено лише Ð´Ð»Ñ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐº Secure Gateway." +#: elf32-arm.c:6041 +#, c-format +msgid "%pB: entry function `%s' is empty" +msgstr "%pB: вхідна Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Â«%s» Ñ” порожньою" -#: elf32-arm.c:5936 -msgid "%B: invalid import library entry: `%s'." -msgstr "%B: некоректний вхід до імпортованої бібліотеки: «%s»." +#: elf32-arm.c:6170 +#, c-format +msgid "%pB: --in-implib only supported for Secure Gateway import libraries" +msgstr "%pB: підтримку --in-implib передбачено лише Ð´Ð»Ñ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐº Secure Gateway" -#: elf32-arm.c:5938 -msgid "Symbol should be absolute, global and refer to Thumb functions." -msgstr "Символ має бути абÑолютним, загальним Ñ– поÑилатиÑÑ Ð½Ð° функції Thumb." +#: elf32-arm.c:6216 +#, c-format +msgid "%pB: invalid import library entry: `%s'; symbol should be absolute, global and refer to Thumb functions" +msgstr "%pB: некоректний Ð·Ð°Ð¿Ð¸Ñ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸: «%s»; Ñимвол має бути абÑолютним, загальним Ñ– поÑилатиÑÑ Ð½Ð° функції Thumb." -#: elf32-arm.c:5958 +#: elf32-arm.c:6238 #, c-format -msgid "Entry function `%s' disappeared from secure code." -msgstr "Вхідна Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Â«%s» зникла з безпечного коду." +msgid "entry function `%s' disappeared from secure code" +msgstr "вхідна Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Â«%s» зникла з безпечного коду" -#: elf32-arm.c:5982 +#: elf32-arm.c:6262 #, c-format -msgid "`%s' refers to a non entry function." -msgstr "«%s» поÑилаєтьÑÑ Ð½Ð° функцію без входу." +msgid "`%s' refers to a non entry function" +msgstr "«%s» поÑилаєтьÑÑ Ð½Ð° функцію без входу" -#: elf32-arm.c:5997 -msgid "%B: visibility of symbol `%s' has changed." -msgstr "%B: змінено видиміÑÑ‚ÑŒ Ñимволу «%s»." +#: elf32-arm.c:6277 +#, c-format +msgid "%pB: visibility of symbol `%s' has changed" +msgstr "%pB: змінено видиміÑÑ‚ÑŒ Ñимволу «%s»" -#: elf32-arm.c:6006 -msgid "%B: incorrect size for symbol `%s'." -msgstr "%B: некоректний розмір Ñимволу «%s»." +#: elf32-arm.c:6286 +#, c-format +msgid "%pB: incorrect size for symbol `%s'" +msgstr "%pB: некоректний розмір Ñимволу «%s»" -#: elf32-arm.c:6025 +#: elf32-arm.c:6305 #, c-format -msgid "Offset of veneer for entry function `%s' not a multiple of its size." -msgstr "ЗÑув обгортки Ð´Ð»Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¾Ñ— функції «%s» не Ñ” кратним до Ñ—Ñ— розміру." +msgid "offset of veneer for entry function `%s' not a multiple of its size" +msgstr "зÑув обгортки Ð´Ð»Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¾Ñ— функції «%s» не Ñ” кратним до Ñ—Ñ— розміру" -#: elf32-arm.c:6045 +#: elf32-arm.c:6325 msgid "new entry function(s) introduced but no output import library specified:" msgstr "впроваджено нові вхідні функції, але не вказано бібліотеки Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…:" -#: elf32-arm.c:6053 +#: elf32-arm.c:6333 #, c-format -msgid "Start address of `%s' is different from previous link." -msgstr "Початкова адреÑа «%s» Ñ” іншою з попереднього поÑиланнÑ." +msgid "start address of `%s' is different from previous link" +msgstr "початкова адреÑа «%s» Ñ” іншою з попереднього поÑиланнÑ" -#: elf32-arm.c:6760 +#: elf32-arm.c:7040 elf32-arm.c:7076 #, c-format -msgid "unable to find THUMB glue '%s' for '%s'" -msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñклейку THUMB «%s» Ð´Ð»Ñ Â«%s»" +msgid "unable to find %s glue '%s' for '%s'" +msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñклейку %s «%s» Ð´Ð»Ñ Â«%s»" -#: elf32-arm.c:6796 +#: elf32-arm.c:7791 #, c-format -msgid "unable to find ARM glue '%s' for '%s'" -msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñклейку ARM «%s» Ð´Ð»Ñ Â«%s»" - -#: elf32-arm.c:7511 -msgid "%B: BE8 images only valid in big-endian mode." -msgstr "%B: образи BE8 Ñ” чинними лише у режимі big-endian." +msgid "%pB: BE8 images only valid in big-endian mode" +msgstr "%pB: образи BE8 Ñ” чинними лише у режимі big-endian" #. Give a warning, but do as the user requests anyway. -#: elf32-arm.c:7742 -msgid "%B: warning: selected VFP11 erratum workaround is not necessary for target architecture" -msgstr "%B: попередженнÑ: вибраний ÑпоÑіб ÑƒÐ½Ð¸ÐºÐ½ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ VFP11 не Ñ” необхідним Ð´Ð»Ñ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ призначеннÑ" - -#: elf32-arm.c:7769 -msgid "%B: warning: selected STM32L4XX erratum workaround is not necessary for target architecture" -msgstr "%B: попередженнÑ: вибраний ÑпоÑіб ÑƒÐ½Ð¸ÐºÐ½ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ STM32L4XX не Ñ” необхідним Ð´Ð»Ñ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ призначеннÑ" +#: elf32-arm.c:8022 +#, c-format +msgid "%pB: warning: selected VFP11 erratum workaround is not necessary for target architecture" +msgstr "%pB: попередженнÑ: вибраний ÑпоÑіб ÑƒÐ½Ð¸ÐºÐ½ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ VFP11 не Ñ” необхідним Ð´Ð»Ñ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ призначеннÑ" -#: elf32-arm.c:8306 elf32-arm.c:8326 -msgid "%B: unable to find VFP11 veneer `%s'" -msgstr "%B: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ обгортку VFP11 «%s»" +#: elf32-arm.c:8049 +#, c-format +msgid "%pB: warning: selected STM32L4XX erratum workaround is not necessary for target architecture" +msgstr "%pB: попередженнÑ: вибраний ÑпоÑіб ÑƒÐ½Ð¸ÐºÐ½ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ STM32L4XX не Ñ” необхідним Ð´Ð»Ñ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ призначеннÑ" -#: elf32-arm.c:8392 elf32-arm.c:8411 -msgid "%B: unable to find STM32L4XX veneer `%s'" -msgstr "%B: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ обгортку STM32L4XX «%s»" +#: elf32-arm.c:8586 elf32-arm.c:8606 elf32-arm.c:8672 elf32-arm.c:8691 +#, c-format +msgid "%pB: unable to find %s veneer `%s'" +msgstr "%pB: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ обгортку %s «%s»" -#: elf32-arm.c:8618 +#: elf32-arm.c:8898 #, c-format -msgid "" -"%B(%A+0x%lx): error: multiple load detected in non-last IT block instruction : STM32L4XX veneer cannot be generated.\n" -"Use gcc option -mrestrict-it to generate only one instruction per IT block.\n" -msgstr "" -"%B(%A+0x%lx): помилка: виÑвлено декілька завантажень у неоÑтанній інÑтрукції блоку IT: обгортку STM32L4XX не може бути Ñтворено.\n" -"СкориÑтайтеÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ gcc -mrestrict-it, щоб Ñтворювати лише одну інÑтрукцію на блок IT.\n" +msgid "%pB(%pA+%#x): error: multiple load detected in non-last IT block instruction: STM32L4XX veneer cannot be generated; use gcc option -mrestrict-it to generate only one instruction per IT block" +msgstr "%pB(%pA+%#x): помилка: виÑвлено декілька завантажень у неоÑтанній інÑтрукції блоку IT: обгортку STM32L4XX не може бути Ñтворено. СкориÑтайтеÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ gcc -mrestrict-it, щоб Ñтворювати лише одну інÑтрукцію на блок IT." -#: elf32-arm.c:8716 +#: elf32-arm.c:8998 #, c-format -msgid "Invalid TARGET2 relocation type '%s'." -msgstr "Ðекоректний тип переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ TARGET2, «%s»." +msgid "invalid TARGET2 relocation type '%s'" +msgstr "некоректний тип переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ TARGET2, «%s»" #. FIXME: We ought to be able to generate thumb-1 PLT #. instructions... -#: elf32-arm.c:9458 -msgid "%B: Warning: thumb-1 mode PLT generation not currently supported" -msgstr "%B: попередженнÑ: у поточній верÑÑ–Ñ— не передбачено підтримки ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ PLT у режимі thumb-1" - -#: elf32-arm.c:9723 +#: elf32-arm.c:9800 #, c-format -msgid "%B(%A+0x%lx): unexpected Thumb instruction '0x%x' in TLS trampoline" -msgstr "%B(%A+0x%lx): неочікувана команда Thumb, «0x%x», у трампліні TLS" +msgid "%pB: warning: thumb-1 mode PLT generation not currently supported" +msgstr "%pB: попередженнÑ: у поточній верÑÑ–Ñ— не передбачено підтримки ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ PLT у режимі thumb-1" -#: elf32-arm.c:9763 +#: elf32-arm.c:10104 elf32-arm.c:10146 #, c-format -msgid "%B(%A+0x%lx): unexpected ARM instruction '0x%x' in TLS trampoline" -msgstr "%B(%A+0x%lx): неочікувана команда ARM, «0x%x», у трампліні TLS" +msgid "%pB(%pA+%#): unexpected %s instruction '%#lx' in TLS trampoline" +msgstr "%pB(%pA+%#): неочікувана команда %s, «%#lx», у трампліні TLS" -#: elf32-arm.c:10097 +#: elf32-arm.c:10490 msgid "shared object" msgstr "Ñпільний об'єкт" -#: elf32-arm.c:10100 +#: elf32-arm.c:10493 msgid "PIE executable" msgstr "Виконуваний файл PIE" -#: elf32-arm.c:10103 -msgid "%B: relocation %s against external or undefined symbol `%s' can not be used when making a %s; recompile with -fPIC" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо зовнішнього або невизначено Ñимволу «%s» не можна викориÑтовувати під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ %s; повторно зберіть з -fPIC" - -#: elf32-arm.c:10234 -msgid "\\%B: Warning: Arm BLX instruction targets Arm function '%s'." -msgstr "\\%B: попередженнÑ: команда Arm BLX вказує на функцію Arm «%s»." - -#: elf32-arm.c:10660 -msgid "%B: Warning: Thumb BLX instruction targets thumb function '%s'." -msgstr "%B: попередженнÑ: команда Thumb BLX вказує на функцію Arm «%s»." +#: elf32-arm.c:10496 +#, c-format +msgid "%pB: relocation %s against external or undefined symbol `%s' can not be used when making a %s; recompile with -fPIC" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо зовнішнього або невизначено Ñимволу «%s» не можна викориÑтовувати під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ %s; повторно зберіть з -fPIC" -#: elf32-arm.c:11527 +#: elf32-arm.c:10633 elf32-arm.c:11060 #, c-format -msgid "%B(%A+0x%lx): unexpected Thumb instruction '0x%x' referenced by TLS_GOTDESC" -msgstr "%B(%A+0x%lx): неочікувана команда Thumb, «0x%x», на Ñку поÑилаєтьÑÑ TLS_GOTDESC" +msgid "%pB: warning: %s BLX instruction targets %s function '%s'" +msgstr "%pB: попередженнÑ: команда %s BLX вказує на функцію %s «%s»." -#: elf32-arm.c:11551 +#: elf32-arm.c:11963 elf32-arm.c:11989 #, c-format -msgid "%B(%A+0x%lx): unexpected ARM instruction '0x%x' referenced by TLS_GOTDESC" -msgstr "%B(%A+0x%lx): неочікувана команда ARM, «0x%x», на Ñку поÑилаєтьÑÑ TLS_GOTDESC" +msgid "%pB(%pA+%#): unexpected %s instruction '%#lx' referenced by TLS_GOTDESC" +msgstr "%pB(%pA+%#): неочікувана команда %s, «%#lx», на Ñку поÑилаєтьÑÑ TLS_GOTDESC" -#: elf32-arm.c:11581 +#: elf32-arm.c:12035 elf32-m68k.c:3703 elf32-metag.c:1919 elf32-nios2.c:4366 #, c-format -msgid "%B(%A+0x%lx): R_ARM_TLS_LE32 relocation not permitted in shared object" -msgstr "%B(%A+0x%lx): переÑÑƒÐ²Ð°Ð½Ð½Ñ R_ARM_TLS_LE32 у об’єкті Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð¾" +msgid "%pB(%pA+%#): %s relocation not permitted in shared object" +msgstr "%pB(%pA+%#): переÑÑƒÐ²Ð°Ð½Ð½Ñ %s у об’єкті Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð¾" -#: elf32-arm.c:11795 +#: elf32-arm.c:12249 #, c-format -msgid "%B(%A+0x%lx): Only ADD or SUB instructions are allowed for ALU group relocations" -msgstr "%B(%A+0x%lx): Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑувань груп ALU можна викориÑтовувати лише команди ADD або SUB" +msgid "%pB(%pA+%#): only ADD or SUB instructions are allowed for ALU group relocations" +msgstr "%pB(%pA+%#): Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑувань груп ALU можна викориÑтовувати лише команди ADD або SUB" -#: elf32-arm.c:11836 elf32-arm.c:11927 elf32-arm.c:12013 elf32-arm.c:12101 +#: elf32-arm.c:12290 elf32-arm.c:12382 elf32-arm.c:12470 elf32-arm.c:12560 #, c-format -msgid "%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s" -msgstr "%B(%A+0x%lx): Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ñпроби поділу 0x%lx з метою групового переÑÑƒÐ²Ð°Ð½Ð½Ñ %s" +msgid "%pB(%pA+%#): overflow whilst splitting %# for group relocation %s" +msgstr "%pB(%pA+%#): Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ñпроби поділу %# з метою групового переÑÑƒÐ²Ð°Ð½Ð½Ñ %s" -#: elf32-arm.c:12365 elf32-sh.c:4009 elf64-sh64.c:1539 +#: elf32-arm.c:13066 elf32-sh.c:3685 #, c-format -msgid "%B(%A+0x%lx): %s relocation against SEC_MERGE section" -msgstr "%B(%A+0x%lx): переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо розділу SEC_MERGE" +msgid "%pB(%pA+%#): %s relocation against SEC_MERGE section" +msgstr "%pB(%pA+%#): переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо розділу SEC_MERGE" -#: elf32-arm.c:12477 elf32-m68k.c:4120 elf32-xtensa.c:2816 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6165 +#: elf32-arm.c:13179 elf32-m68k.c:3936 elf32-xtensa.c:2694 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-aarch64.c:6466 #, c-format -msgid "%B(%A+0x%lx): %s used with TLS symbol %s" -msgstr "%B(%A+0x%lx): %s викориÑтовуєтьÑÑ Ð· Ñимволом TLS %s" +msgid "%pB(%pA+%#): %s used with TLS symbol %s" +msgstr "%pB(%pA+%#): %s викориÑтовуєтьÑÑ Ð· Ñимволом TLS %s" -#: elf32-arm.c:12479 elf32-m68k.c:4122 elf32-xtensa.c:2818 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6167 +#: elf32-arm.c:13181 elf32-m68k.c:3938 elf32-xtensa.c:2696 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-aarch64.c:6468 #, c-format -msgid "%B(%A+0x%lx): %s used with non-TLS symbol %s" -msgstr "%B(%A+0x%lx): %s викориÑтовуєтьÑÑ Ð· Ñимволом поза TLS %s" +msgid "%pB(%pA+%#): %s used with non-TLS symbol %s" +msgstr "%pB(%pA+%#): %s викориÑтовуєтьÑÑ Ð· Ñимволом поза TLS %s" -#: elf32-arm.c:12561 elf32-tic6x.c:2739 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6500 +#: elf32-arm.c:13264 elf32-tic6x.c:2708 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-aarch64.c:6802 msgid "out of range" msgstr "поза діапазоном" -#: elf32-arm.c:12565 elf32-nios2.c:4505 elf32-pru.c:821 elf32-tic6x.c:2743 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6504 +#: elf32-arm.c:13268 elf32-nios2.c:4500 elf32-pru.c:933 elf32-tic6x.c:2712 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-aarch64.c:6806 msgid "unsupported relocation" msgstr "непідтримуване переÑуваннÑ" -#: elf32-arm.c:12573 elf32-nios2.c:4515 elf32-pru.c:831 elf32-tic6x.c:2751 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6512 +#: elf32-arm.c:13276 elf32-nios2.c:4510 elf32-pru.c:943 elf32-tic6x.c:2720 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-aarch64.c:6814 msgid "unknown error" msgstr "невідома помилка" -#: elf32-arm.c:13153 -msgid "%B: Unknown mandatory EABI object attribute %d" -msgstr "%B: невідомий обов’Ñзковий атрибути об’єкта EABI %d" - -#: elf32-arm.c:13161 -msgid "Warning: %B: Unknown EABI object attribute %d" -msgstr "ПопередженнÑ: %B: невідомий атрибут об’єкта EABI %d" - -#: elf32-arm.c:13428 -msgid "error: %B: Unknown CPU architecture" -msgstr "помилка: %B: невідома архітектура процеÑора" - -#: elf32-arm.c:13466 elf32-nios2.c:2965 -#, c-format -msgid "error: %B: Conflicting CPU architectures %d/%d" -msgstr "помилка: %B: конфлікт архітектур процеÑорів %d/%d" - -#: elf32-arm.c:13563 -msgid "Error: %B has both the current and legacy Tag_MPextension_use attributes" -msgstr "Помилка: Ð´Ð»Ñ %B визначено одразу обидва атрибути Tag_MPextension_use, current Ñ– legacy" - -#: elf32-arm.c:13592 -msgid "error: %B uses VFP register arguments, %B does not" -msgstr "помилка: у %B викориÑтовуютьÑÑ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ð¸ регіÑтри VFP, а у %B — ні" - -#: elf32-arm.c:13750 -msgid "error: %B: unable to merge virtualization attributes with %B" -msgstr "помилка: %B: Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ–Ð² віртуалізації з %B неможливе" - -#: elf32-arm.c:13776 -msgid "error: %B: Conflicting architecture profiles %c/%c" -msgstr "помилка: %B: конфлікт профілів архітектур, %c/%c" - -#: elf32-arm.c:13915 -msgid "Warning: %B: Conflicting platform configuration" -msgstr "ПопередженнÑ: %B: конфлікт налаштувань платформ" - -#: elf32-arm.c:13924 -msgid "error: %B: Conflicting use of R9" -msgstr "помилка: %B: конфлікт у викориÑтанні R9" - -#: elf32-arm.c:13936 -msgid "error: %B: SB relative addressing conflicts with use of R9" -msgstr "помилка: %B: викориÑÑ‚Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð½Ð¾Ñної адреÑації SB конфліктує з викориÑтаннÑм R9" - -#: elf32-arm.c:13949 -msgid "warning: %B uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may fail" -msgstr "попередженнÑ: у %B викориÑтовуєтьÑÑ %u-байтовий wchar_t, хоча у виведенні викориÑтовуєтьÑÑ %u-байтовий wchar_t; викориÑÑ‚Ð°Ð½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ wchar_t між об’єктами може зазнати невдачі" - -#: elf32-arm.c:13980 -msgid "warning: %B uses %s enums yet the output is to use %s enums; use of enum values across objects may fail" -msgstr "попередженнÑ: у %B викориÑтовуютьÑÑ Ð¿ÐµÑ€ÐµÐ»Ñ–ÐºÐ¸ %s, хоча у виведенні викориÑтовуютьÑÑ Ð¿ÐµÑ€ÐµÐ»Ñ–ÐºÐ¸ %s; викориÑÑ‚Ð°Ð½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ переліків між об’єктами може зазнати невдачі" - -#: elf32-arm.c:13992 -msgid "error: %B uses iWMMXt register arguments, %B does not" -msgstr "помилка: у %B викориÑтовуютьÑÑ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ð¸-регіÑтри iWMMXt, а у %B — ні" - -#: elf32-arm.c:14009 -msgid "error: fp16 format mismatch between %B and %B" -msgstr "помилка: розбіжноÑÑ‚Ñ– у визначенні Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ fp16 між %B та %B" - -#: elf32-arm.c:14045 -msgid "%B has has both the current and legacy Tag_MPextension_use attributes" -msgstr "Ð´Ð»Ñ %B визначено одразу обидва атрибути Tag_MPextension_use, current Ñ– legacy" +#: elf32-arm.c:13720 +#, c-format +msgid "warning: not setting interworking flag of %pB since it has already been specified as non-interworking" +msgstr "попередженнÑ: прапорець ÑуміÑної роботи у %pB не вÑтановлено, оÑкільки його вже було визначено так, щоб він заборонÑв ÑуміÑну роботу" + +#: elf32-arm.c:13724 +#, c-format +msgid "warning: clearing the interworking flag of %pB due to outside request" +msgstr "попередженнÑ: знÑто прапорець ÑуміÑної роботи у %pB у відповідь на запит ззовні" + +#: elf32-arm.c:13769 +#, c-format +msgid "warning: clearing the interworking flag of %pB because non-interworking code in %pB has been linked with it" +msgstr "попередженнÑ: знÑто прапорець ÑуміÑної роботи у %pB, оÑкільки з ним компонуєтьÑÑ ÐºÐ¾Ð´, Ñкий непридатний до Ñпільної роботи, у %pB" + +#: elf32-arm.c:13856 +#, c-format +msgid "%pB: unknown mandatory EABI object attribute %d" +msgstr "%pB: невідомий обов’Ñзковий атрибути об’єкта EABI %d" + +#: elf32-arm.c:13864 +#, c-format +msgid "warning: %pB: unknown EABI object attribute %d" +msgstr "попередженнÑ: %pB: невідомий атрибут об’єкта EABI %d" + +#: elf32-arm.c:14131 +#, c-format +msgid "error: %pB: unknown CPU architecture" +msgstr "помилка: %pB: невідома архітектура процеÑора" + +#: elf32-arm.c:14169 elf32-nios2.c:2946 +#, c-format +msgid "error: %pB: conflicting CPU architectures %d/%d" +msgstr "помилка: %pB: конфлікт архітектур процеÑорів %d/%d" + +#: elf32-arm.c:14266 +#, c-format +msgid "Error: %pB has both the current and legacy Tag_MPextension_use attributes" +msgstr "Помилка: Ð´Ð»Ñ %pB визначено одразу обидва атрибути Tag_MPextension_use, current Ñ– legacy" + +#: elf32-arm.c:14295 +#, c-format +msgid "error: %pB uses VFP register arguments, %pB does not" +msgstr "помилка: у %pB викориÑтовуютьÑÑ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ð¸ регіÑтри VFP, а у %pB — ні" + +#: elf32-arm.c:14453 +#, c-format +msgid "error: %pB: unable to merge virtualization attributes with %pB" +msgstr "помилка: %pB: Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ–Ð² віртуалізації з %pB неможливе" + +#: elf32-arm.c:14479 +#, c-format +msgid "error: %pB: conflicting architecture profiles %c/%c" +msgstr "помилка: %pB: конфлікт профілів архітектур, %c/%c" + +#: elf32-arm.c:14618 +#, c-format +msgid "warning: %pB: conflicting platform configuration" +msgstr "попередженнÑ: %pB: конфлікт налаштувань платформ" + +#: elf32-arm.c:14627 +#, c-format +msgid "error: %pB: conflicting use of R9" +msgstr "помилка: %pB: конфлікт у викориÑтанні R9" + +#: elf32-arm.c:14639 +#, c-format +msgid "error: %pB: SB relative addressing conflicts with use of R9" +msgstr "помилка: %pB: викориÑÑ‚Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð½Ð¾Ñної адреÑації SB конфліктує з викориÑтаннÑм R9" + +#: elf32-arm.c:14652 +#, c-format +msgid "warning: %pB uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may fail" +msgstr "попередженнÑ: у %pB викориÑтовуєтьÑÑ %u-байтовий wchar_t, хоча у виведенні викориÑтовуєтьÑÑ %u-байтовий wchar_t; викориÑÑ‚Ð°Ð½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ wchar_t між об’єктами може зазнати невдачі" + +#: elf32-arm.c:14683 +#, c-format +msgid "warning: %pB uses %s enums yet the output is to use %s enums; use of enum values across objects may fail" +msgstr "попередженнÑ: у %pB викориÑтовуютьÑÑ Ð¿ÐµÑ€ÐµÐ»Ñ–ÐºÐ¸ %s, хоча у виведенні викориÑтовуютьÑÑ Ð¿ÐµÑ€ÐµÐ»Ñ–ÐºÐ¸ %s; викориÑÑ‚Ð°Ð½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ переліків між об’єктами може зазнати невдачі" + +#: elf32-arm.c:14695 +#, c-format +msgid "error: %pB uses iWMMXt register arguments, %pB does not" +msgstr "помилка: у %pB викориÑтовуютьÑÑ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ð¸-регіÑтри iWMMXt, а у %pB — ні" + +#: elf32-arm.c:14712 +#, c-format +msgid "error: fp16 format mismatch between %pB and %pB" +msgstr "помилка: розбіжноÑÑ‚Ñ– у визначенні Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ fp16 між %pB та %pB" + +#: elf32-arm.c:14748 +#, c-format +msgid "%pB has both the current and legacy Tag_MPextension_use attributes" +msgstr "Ð´Ð»Ñ %pB визначено одразу обидва атрибути Tag_MPextension_use, current Ñ– legacy" #. Ignore init flag - it may not be set, despite the flags field #. containing valid data. #. Ignore init flag - it may not be set, despite the flags field containing valid data. #. Ignore init flag - it may not be set, despite the flags field #. containing valid data. -#: elf32-arm.c:14132 elf32-bfin.c:4919 elf32-cris.c:4089 elf32-m68hc1x.c:1413 -#: elf32-m68k.c:1200 elf32-score.c:4002 elf32-score7.c:3807 elf32-vax.c:536 -#: elf32-xgate.c:669 elfxx-mips.c:15802 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6666 +#: elf32-arm.c:14835 elf32-bfin.c:4740 elf32-cris.c:3908 elf32-m68hc1x.c:1410 +#: elf32-m68k.c:1201 elf32-score.c:4000 elf32-score7.c:3805 elf32-vax.c:537 +#: elf32-xgate.c:672 elfxx-mips.c:15813 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-aarch64.c:6968 #, c-format msgid "private flags = %lx:" msgstr "закриті прапорці = %lx:" -#: elf32-arm.c:14141 +#: elf32-arm.c:14844 #, c-format msgid " [interworking enabled]" msgstr " [увімкнено ÑуміÑну роботу]" -#: elf32-arm.c:14149 +#: elf32-arm.c:14852 #, c-format msgid " [VFP float format]" msgstr " [формат float VFP]" -#: elf32-arm.c:14151 +#: elf32-arm.c:14854 #, c-format msgid " [Maverick float format]" msgstr " [формат float Maverick]" -#: elf32-arm.c:14153 +#: elf32-arm.c:14856 #, c-format msgid " [FPA float format]" msgstr " [формат float FPA]" -#: elf32-arm.c:14162 +#: elf32-arm.c:14859 +#, c-format +msgid " [floats passed in float registers]" +msgstr " [чиÑла з рухомою комою передано до регіÑтрів чиÑел з рухомою комою]" + +#: elf32-arm.c:14862 elf32-arm.c:14948 +#, c-format +msgid " [position independent]" +msgstr " [незалежний від позиції]" + +#: elf32-arm.c:14865 #, c-format msgid " [new ABI]" msgstr " [новий ABI]" -#: elf32-arm.c:14165 +#: elf32-arm.c:14868 #, c-format msgid " [old ABI]" msgstr " [Ñтарий ABI]" -#: elf32-arm.c:14168 +#: elf32-arm.c:14871 #, c-format msgid " [software FP]" msgstr " [програмна FP]" -#: elf32-arm.c:14177 +#: elf32-arm.c:14880 #, c-format msgid " [Version1 EABI]" msgstr " [ВерÑÑ–Ñ1 EABI]" -#: elf32-arm.c:14180 elf32-arm.c:14191 +#: elf32-arm.c:14883 elf32-arm.c:14894 #, c-format msgid " [sorted symbol table]" msgstr " [впорÑдкована Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів]" -#: elf32-arm.c:14182 elf32-arm.c:14193 +#: elf32-arm.c:14885 elf32-arm.c:14896 #, c-format msgid " [unsorted symbol table]" msgstr " [невпорÑдкована Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів]" -#: elf32-arm.c:14188 +#: elf32-arm.c:14891 #, c-format msgid " [Version2 EABI]" msgstr " [ВерÑÑ–Ñ2 EABI]" -#: elf32-arm.c:14196 +#: elf32-arm.c:14899 #, c-format msgid " [dynamic symbols use segment index]" msgstr " [динамічні Ñимволи викориÑтовують Ñ–Ð½Ð´ÐµÐºÑ Ñегмента]" -#: elf32-arm.c:14199 +#: elf32-arm.c:14902 #, c-format msgid " [mapping symbols precede others]" msgstr " [Ñимволи Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÐ´ÑƒÑŽÑ‚ÑŒ іншим]" -#: elf32-arm.c:14206 +#: elf32-arm.c:14909 #, c-format msgid " [Version3 EABI]" msgstr " [ВерÑÑ–Ñ3 EABI]" -#: elf32-arm.c:14210 +#: elf32-arm.c:14913 #, c-format msgid " [Version4 EABI]" msgstr " [ВерÑÑ–Ñ4 EABI]" -#: elf32-arm.c:14214 +#: elf32-arm.c:14917 #, c-format msgid " [Version5 EABI]" msgstr " [ВерÑÑ–Ñ5 EABI]" -#: elf32-arm.c:14217 +#: elf32-arm.c:14920 #, c-format msgid " [soft-float ABI]" msgstr " [ABI програмної рухомої крапки]" -#: elf32-arm.c:14220 +#: elf32-arm.c:14923 #, c-format msgid " [hard-float ABI]" msgstr " [ABI апаратної рухомої крапки]" -#: elf32-arm.c:14226 +#: elf32-arm.c:14929 #, c-format msgid " [BE8]" msgstr " [BE8]" -#: elf32-arm.c:14229 +#: elf32-arm.c:14932 #, c-format msgid " [LE8]" msgstr " [LE8]" -#: elf32-arm.c:14235 +#: elf32-arm.c:14938 #, c-format msgid " " msgstr " <нерозпізнана верÑÑ–Ñ EABI>" -#: elf32-arm.c:14242 +#: elf32-arm.c:14945 #, c-format msgid " [relocatable executable]" msgstr " [придатний до переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ð¹ файл]" -#: elf32-arm.c:14247 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6669 +#: elf32-arm.c:14951 +#, c-format +msgid " [FDPIC ABI supplement]" +msgstr " [Ð´Ð¾Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ ABI FDPIC]" + +#: elf32-arm.c:14956 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-aarch64.c:6971 #, c-format msgid "" msgstr "<Ðерозпізнаний набір бітів прапорців>" -#: elf32-arm.c:14557 elf32-i386.c:2053 elf32-s390.c:956 elf32-tic6x.c:2814 -#: elf32-tilepro.c:1491 elf32-xtensa.c:1018 elf64-s390.c:875 -#: elf64-x86-64.c:2444 elfxx-sparc.c:1440 elfxx-tilegx.c:1708 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:7115 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:526 -#, c-format -msgid "%B: bad symbol index: %d" -msgstr "%B: помилковий Ñ–Ð½Ð´ÐµÐºÑ Ñимволу: %d" - -#: elf32-arm.c:16055 -msgid "Errors encountered processing file %B" -msgstr "Під Ñ‡Ð°Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ файла ÑталиÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸, %B" +#: elf32-arm.c:15073 elf32-i386.c:1529 elf32-s390.c:960 elf32-tic6x.c:2783 +#: elf32-tilepro.c:1479 elf32-xtensa.c:1029 elf64-s390.c:882 +#: elf64-x86-64.c:1865 elfxx-sparc.c:1424 elfxx-tilegx.c:1700 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-aarch64.c:7260 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-riscv.c:516 +#, c-format +msgid "%pB: bad symbol index: %d" +msgstr "%pB: помилковий Ñ–Ð½Ð´ÐµÐºÑ Ñимволу: %d" + +#: elf32-arm.c:15464 +#, c-format +msgid "FDPIC does not yet support %s relocation to become dynamic for executable" +msgstr "У FDPIC ще не передбачено підтримки Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ %s на динамічне Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ñ… файлів" + +#: elf32-arm.c:16514 elf32-hppa.c:2090 elf32-lm32.c:1998 elf32-m32r.c:2110 +#: elf32-metag.c:2797 elf32-nds32.c:3840 elf32-or1k.c:2285 elf32-ppc.c:6554 +#: elf32-s390.c:1855 elf32-sh.c:2975 elf32-tic6x.c:3252 elf32-tilepro.c:2245 +#: elf64-ppc.c:10263 elf64-s390.c:1792 elfxx-sparc.c:2437 elfxx-tilegx.c:2491 +#: elfxx-x86.c:571 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-aarch64.c:8610 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-riscv.c:1119 +#, c-format +msgid "%pB: dynamic relocation against `%pT' in read-only section `%pA'\n" +msgstr "%pB: динамічне переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ «%pT» у розділі «%pA», призначеному лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ\n" + +#: elf32-arm.c:16810 +#, c-format +msgid "errors encountered processing file %pB" +msgstr "під Ñ‡Ð°Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ файла ÑталиÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸, %pB" -#: elf32-arm.c:16493 elflink.c:12297 elflink.c:12344 +#: elf32-arm.c:17257 elflink.c:12524 elflink.c:12571 #, c-format msgid "could not find section %s" msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ розділ %s" -#: elf32-arm.c:17669 -msgid "%B: error: Cortex-A8 erratum stub is allocated in unsafe location" -msgstr "%B: помилка: замінник Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±Ð½Ð¸ÐºÐ° помилки Cortex-A8 розташовано за небезпечною адреÑою" +#: elf32-arm.c:18468 +#, c-format +msgid "%pB: error: Cortex-A8 erratum stub is allocated in unsafe location" +msgstr "%pB: помилка: замінник Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±Ð½Ð¸ÐºÐ° помилки Cortex-A8 розташовано за небезпечною адреÑою" #. There's not much we can do apart from complain if this #. happens. -#: elf32-arm.c:17696 -msgid "%B: error: Cortex-A8 erratum stub out of range (input file too large)" -msgstr "%B: помилка: замінник Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±Ð½Ð¸ÐºÐ° помилки Cortex-A8 перебуває поза доÑтупним діапазоном (файл вхідних даних Ñ” надто великим)" - -#: elf32-arm.c:18523 elf32-arm.c:18545 -msgid "%B: error: VFP11 veneer out of range" -msgstr "%B: помилка: обгортка VFP11 поза діапазоном" - -#: elf32-arm.c:18596 -msgid "%B(%#x): error: Cannot create STM32L4XX veneer. Jump out of range by %ld bytes. Cannot encode branch instruction. " -msgstr "%B(%#x): помилка: не вдалоÑÑ Ñтворити обгортку STM32L4XX. Перехід за межі припуÑтимого діапазону на %ld байтів. ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ð½Ñтрукції Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ. " - -#: elf32-arm.c:18634 -msgid "%B: error: Cannot create STM32L4XX veneer." -msgstr "%B: помилка: не вдалоÑÑ Ñтворити обгортку STM32L4XX." - -#: elf32-arm.c:19655 -msgid "error: %B is already in final BE8 format" -msgstr "помилка: %B вже зберігаєтьÑÑ Ñƒ оÑтаточному форматі BE8" - -#: elf32-arm.c:19731 -msgid "error: Source object %B has EABI version %d, but target %B has EABI version %d" -msgstr "помилка: об’єкт-джерело, %B, викориÑтовує верÑÑ–ÑŽ EABI %d, а призначеннÑ, %B, викориÑтовує верÑÑ–ÑŽ EABI %d" - -#: elf32-arm.c:19746 -msgid "error: %B is compiled for APCS-%d, whereas target %B uses APCS-%d" -msgstr "помилка: %B зібрано Ð´Ð»Ñ APCS-%d, тоді Ñк %B викориÑтовує APCS-%d" - -#: elf32-arm.c:19770 -msgid "error: %B uses VFP instructions, whereas %B does not" -msgstr "помилка: у %B викориÑтовуютьÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ VFP, а у %B — ні" - -#: elf32-arm.c:19774 -msgid "error: %B uses FPA instructions, whereas %B does not" -msgstr "помилка: у %B викориÑтовуютьÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ FPA, а у %B — ні" - -#: elf32-arm.c:19784 -msgid "error: %B uses Maverick instructions, whereas %B does not" -msgstr "помилка: у %B викориÑтовуютьÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ Maverick, а у %B — ні" - -#: elf32-arm.c:19788 -msgid "error: %B does not use Maverick instructions, whereas %B does" -msgstr "помилка: у %B не викориÑтовуютьÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ Maverick, а у %B — так" - -#: elf32-arm.c:19807 -msgid "error: %B uses software FP, whereas %B uses hardware FP" -msgstr "помилка: у %B викориÑтовуютьÑÑ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ñ– FP, а у %B — апаратні FP" - -#: elf32-arm.c:19811 -msgid "error: %B uses hardware FP, whereas %B uses software FP" -msgstr "помилка: у %B викориÑтовуютьÑÑ Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ñ– FP, а у %B — програмні FP" - -#: elf32-avr.c:959 -#, c-format -msgid "%B: invalid AVR reloc number: %d" -msgstr "%B: некоректний номер переÑÑƒÐ²Ð°Ð½Ð½Ñ AVR: %d" - -#: elf32-avr.c:1510 elf32-bfin.c:3202 elf32-cris.c:2033 elf32-epiphany.c:574 -#: elf32-fr30.c:599 elf32-frv.c:4049 elf32-ft32.c:342 elf32-i860.c:1218 -#: elf32-ip2k.c:1486 elf32-iq2000.c:701 elf32-m32c.c:629 elf32-mep.c:532 -#: elf32-metag.c:2009 elf32-moxie.c:293 elf32-msp430.c:1365 elf32-mt.c:404 -#: elf32-or1k.c:1266 elf32-tilepro.c:3673 elf32-v850.c:2295 elf32-visium.c:685 -#: elf32-xstormy16.c:935 elf64-mmix.c:1548 elfxx-tilegx.c:4060 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2275 +#: elf32-arm.c:18495 +#, c-format +msgid "%pB: error: Cortex-A8 erratum stub out of range (input file too large)" +msgstr "%pB: помилка: замінник Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±Ð½Ð¸ÐºÐ° помилки Cortex-A8 перебуває поза доÑтупним діапазоном (файл вхідних даних Ñ” надто великим)" + +#: elf32-arm.c:19322 elf32-arm.c:19344 +#, c-format +msgid "%pB: error: VFP11 veneer out of range" +msgstr "%pB: помилка: обгортка VFP11 поза діапазоном" + +#: elf32-arm.c:19395 +#, c-format +msgid "%pB(%#): error: cannot create STM32L4XX veneer; jump out of range by % bytes; cannot encode branch instruction" +msgstr "%pB(%#): помилка: не вдалоÑÑ Ñтворити обгортку STM32L4XX. Перехід за межі припуÑтимого діапазону на % байтів. ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ð½Ñтрукції Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ." + +#: elf32-arm.c:19434 +#, c-format +msgid "%pB: error: cannot create STM32L4XX veneer" +msgstr "%pB: помилка: не вдалоÑÑ Ñтворити обгортку STM32L4XX" + +#: elf32-arm.c:20523 +#, c-format +msgid "error: %pB is already in final BE8 format" +msgstr "помилка: %pB вже зберігаєтьÑÑ Ñƒ оÑтаточному форматі BE8" + +#: elf32-arm.c:20599 +#, c-format +msgid "error: source object %pB has EABI version %d, but target %pB has EABI version %d" +msgstr "помилка: об’єкт-джерело, %pB, викориÑтовує верÑÑ–ÑŽ EABI %d, а призначеннÑ, %pB, викориÑтовує верÑÑ–ÑŽ EABI %d" + +#: elf32-arm.c:20614 +#, c-format +msgid "error: %pB is compiled for APCS-%d, whereas target %pB uses APCS-%d" +msgstr "помилка: %pB зібрано Ð´Ð»Ñ APCS-%d, тоді Ñк %pB викориÑтовує APCS-%d" + +#: elf32-arm.c:20624 +#, c-format +msgid "error: %pB passes floats in float registers, whereas %pB passes them in integer registers" +msgstr "помилка: %pB передає чиÑла з рухомою комою до регіÑтрів, а %pB передає Ñ—Ñ… у цілочиÑельні регіÑтри" + +#: elf32-arm.c:20628 +#, c-format +msgid "error: %pB passes floats in integer registers, whereas %pB passes them in float registers" +msgstr "помилка: %pB передає цілі чиÑла до регіÑтрів, а %pB передає Ñ—Ñ… у регіÑтри чиÑел з рухомою комою" + +#: elf32-arm.c:20638 elf32-arm.c:20642 elf32-arm.c:20652 +#, c-format +msgid "error: %pB uses %s instructions, whereas %pB does not" +msgstr "помилка: у %pB викориÑтовуютьÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ %s, а у %pB — ні" + +#: elf32-arm.c:20656 +#, c-format +msgid "error: %pB does not use %s instructions, whereas %pB does" +msgstr "помилка: у %pB не викориÑтовуютьÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ %s, а у %pB — так" + +#: elf32-arm.c:20675 +#, c-format +msgid "error: %pB uses software FP, whereas %pB uses hardware FP" +msgstr "помилка: у %pB викориÑтовуютьÑÑ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ñ– FP, а у %pB — апаратні FP" + +#: elf32-arm.c:20679 +#, c-format +msgid "error: %pB uses hardware FP, whereas %pB uses software FP" +msgstr "помилка: у %pB викориÑтовуютьÑÑ Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ñ– FP, а у %pB — програмні FP" + +#: elf32-arm.c:20693 +#, c-format +msgid "warning: %pB supports interworking, whereas %pB does not" +msgstr "попередженнÑ: у %pB передбачено ÑуміÑну роботу, а у %pB не передбачено" + +#: elf32-arm.c:20699 +#, c-format +msgid "warning: %pB does not support interworking, whereas %pB does" +msgstr "попередженнÑ: у %pB не передбачено ÑуміÑної роботи, а у %pB передбачено" + +#: elf32-avr.c:1513 elf32-bfin.c:3135 elf32-cris.c:2041 elf32-epiphany.c:577 +#: elf32-fr30.c:602 elf32-frv.c:4057 elf32-ft32.c:502 elf32-ip2k.c:1493 +#: elf32-iq2000.c:701 elf32-m32c.c:632 elf32-mep.c:534 elf32-metag.c:1998 +#: elf32-moxie.c:296 elf32-msp430.c:1366 elf32-mt.c:406 elf32-or1k.c:1250 +#: elf32-tilepro.c:3514 elf32-v850.c:2299 elf32-visium.c:689 +#: elf32-xstormy16.c:939 elf64-mmix.c:1549 elfxx-tilegx.c:3878 msgid "internal error: dangerous relocation" msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: небезпечне переÑуваннÑ" -#: elf32-avr.c:3319 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:2880 +#: elf32-avr.c:3322 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-aarch64.c:3127 #, c-format msgid "cannot create stub entry %s" msgstr "не вдалоÑÑ Ñтворити шаблонний Ð·Ð°Ð¿Ð¸Ñ %s" @@ -1925,594 +1924,428 @@ msgid "relocation should be even number" msgstr "переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð°Ñ” бути вказано парним чиÑлом" -#: elf32-bfin.c:1581 +#: elf32-bfin.c:1585 #, c-format -msgid "%B(%A+0x%lx): unresolvable relocation against symbol `%s'" -msgstr "B(%A+0x%lx): нерозв’Ñзне переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ Ñимволу «%s»" +msgid "%pB(%pA+%#): unresolvable relocation against symbol `%s'" +msgstr "%pB(%pA+%#): нерозв’Ñзне переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ Ñимволу «%s»" -#: elf32-bfin.c:1612 elf32-i386.c:5412 elf32-m68k.c:4160 elf32-s390.c:3429 -#: elf64-s390.c:3353 elf64-x86-64.c:5793 +#: elf32-bfin.c:1617 elf32-i386.c:3450 elf32-m68k.c:3976 elf32-s390.c:3266 +#: elf64-s390.c:3183 elf64-x86-64.c:3893 #, c-format -msgid "%B(%A+0x%lx): reloc against `%s': error %d" -msgstr "%B(%A+0x%lx): переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ «%s»: помилка %d" +msgid "%pB(%pA+%#): reloc against `%s': error %d" +msgstr "%pB(%pA+%#): переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ «%s»: помилка %d" -#: elf32-bfin.c:2706 +#: elf32-bfin.c:2638 #, c-format -msgid "%B: relocation at `%A+0x%x' references symbol `%s' with nonzero addend" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ «%A+0x%x» поÑилаєтьÑÑ Ð½Ð° Ñимвол «%s» з ненульовим доданком" +msgid "%pB: relocation at `%pA+%#' references symbol `%s' with nonzero addend" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ «%pA+%#» поÑилаєтьÑÑ Ð½Ð° Ñимвол «%s» з ненульовим доданком" -#: elf32-bfin.c:2722 +#: elf32-bfin.c:2655 msgid "relocation references symbol not defined in the module" msgstr "переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾ÑилаєтьÑÑ Ð½Ð° Ñимвол, Ñкий не визначено у модулі" -#: elf32-bfin.c:2819 +#: elf32-bfin.c:2752 msgid "R_BFIN_FUNCDESC references dynamic symbol with nonzero addend" msgstr "R_BFIN_FUNCDESC поÑилаєтьÑÑ Ð½Ð° динамічний Ñимвол з ненульовим доданком" -#: elf32-bfin.c:2860 elf32-bfin.c:2983 +#: elf32-bfin.c:2793 elf32-bfin.c:2916 msgid "cannot emit fixups in read-only section" msgstr "не можна викориÑтовувати адреÑну прив’Ñзку у розділі, придатному лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ" -#: elf32-bfin.c:2891 elf32-bfin.c:3021 elf32-lm32.c:1064 elf32-sh.c:4930 +#: elf32-bfin.c:2824 elf32-bfin.c:2954 elf32-lm32.c:1049 elf32-sh.c:4507 msgid "cannot emit dynamic relocations in read-only section" msgstr "не можна викориÑтовувати динамічні переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ розділі, призначеному лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ" -#: elf32-bfin.c:2941 +#: elf32-bfin.c:2874 msgid "R_BFIN_FUNCDESC_VALUE references dynamic symbol with nonzero addend" msgstr "R_BFIN_FUNCDESC_VALUE поÑилаєтьÑÑ Ð½Ð° динамічний Ñимвол з ненульовим доданком" -#: elf32-bfin.c:3106 +#: elf32-bfin.c:3039 msgid "relocations between different segments are not supported" msgstr "підтримки переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ñ–Ð¶ різними Ñегментами не передбачено" -#: elf32-bfin.c:3107 +#: elf32-bfin.c:3040 msgid "warning: relocation references a different segment" msgstr "попередженнÑ: у переÑуванні виÑвлено поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° інший Ñегмент" -#: elf32-bfin.c:4877 +#: elf32-bfin.c:4787 elf32-frv.c:6603 #, c-format -msgid "%B: unsupported relocation type %i" -msgstr "%B: непідтримуваний тип переÑÑƒÐ²Ð°Ð½Ð½Ñ %i" +msgid "%pB: cannot link non-fdpic object file into fdpic executable" +msgstr "%pB: не можна компонувати об’єктний файл не-fdpic до виконуваного файла fdpic" -#: elf32-bfin.c:4966 elf32-frv.c:6599 -msgid "%B: cannot link non-fdpic object file into fdpic executable" -msgstr "%B: не можна компонувати об’єктний файл не-fdpic до виконуваного файла fdpic" - -#: elf32-bfin.c:4970 elf32-frv.c:6603 -msgid "%B: cannot link fdpic object file into non-fdpic executable" -msgstr "%B: не можна компонувати об’єктний файл fdpic до виконуваного файла не-fdpic" +#: elf32-bfin.c:4791 elf32-frv.c:6607 +#, c-format +msgid "%pB: cannot link fdpic object file into non-fdpic executable" +msgstr "%pB: не можна компонувати об’єктний файл fdpic до виконуваного файла не-fdpic" -#: elf32-bfin.c:5120 +#: elf32-bfin.c:4941 #, c-format msgid "*** check this relocation %s" msgstr "*** перевірте це переÑуваннÑ: %s" -#: elf32-bfin.c:5236 +#: elf32-bfin.c:5057 msgid "the bfin target does not currently support the generation of copy relocations" msgstr "у поточній верÑÑ–Ñ— не передбачено Ð´Ð»Ñ Ñ†Ñ–Ð»Ñ– bfin ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÑувань копіюваннÑ" -#: elf32-cr16.c:653 -#, c-format -msgid "Unsupported CR16 relocation type: 0x%x\n" -msgstr "Ðепідтримуваний тип переÑÑƒÐ²Ð°Ð½Ð½Ñ CR16: 0x%x\n" - -#: elf32-cr16.c:682 -#, c-format -msgid "%B: unrecognised CR16 reloc number: %d" -msgstr "%B: невідоме чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ CR16: %d" - -#: elf32-cr16c.c:186 -#, c-format -msgid "%B: invalid CR16C reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ CR16C: %d" - -#: elf32-cris.c:467 -#, c-format -msgid "%B: invalid CRIS reloc number: %d" -msgstr "%B: некоректний номер переÑÑƒÐ²Ð°Ð½Ð½Ñ CRIS: %d" +#: elf32-bfin.c:5351 elf32-cr16.c:2803 elf32-m68k.c:4390 +msgid "unsupported relocation type" +msgstr "непідтримуваний тип переÑуваннÑ" -#: elf32-cris.c:1115 +#: elf32-cris.c:1119 #, c-format -msgid "%B, section %A: unresolvable relocation %s against symbol `%s'" -msgstr "%B, розділ %A: нерозв’Ñзне переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо Ñимволу «%s»" +msgid "%pB, section %pA: unresolvable relocation %s against symbol `%s'" +msgstr "%pB, розділ %pA: нерозв’Ñзне переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо Ñимволу «%s»" -#: elf32-cris.c:1177 +#: elf32-cris.c:1184 #, c-format -msgid "%B, section %A: No PLT nor GOT for relocation %s against symbol `%s'" -msgstr "%B, розділ %A: немає ні PLT, ні GOT Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо Ñимволу «%s»" +msgid "%pB, section %pA: no PLT nor GOT for relocation %s against symbol `%s'" +msgstr "%pB, розділ %pA: немає ні PLT, ні GOT Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо Ñимволу «%s»" -#: elf32-cris.c:1180 +#: elf32-cris.c:1187 #, c-format -msgid "%B, section %A: No PLT for relocation %s against symbol `%s'" -msgstr "%B, розділ %A: немає PLT Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо Ñимволу «%s»" +msgid "%pB, section %pA: no PLT for relocation %s against symbol `%s'" +msgstr "%pB, розділ %pA: немає PLT Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо Ñимволу «%s»" -#: elf32-cris.c:1186 elf32-cris.c:1319 elf32-cris.c:1583 elf32-cris.c:1666 -#: elf32-cris.c:1819 elf32-tic6x.c:2651 +#: elf32-cris.c:1193 elf32-cris.c:1326 elf32-cris.c:1591 elf32-cris.c:1674 +#: elf32-cris.c:1827 elf32-tic6x.c:2619 msgid "[whose name is lost]" msgstr "[чию назву втрачено]" -#: elf32-cris.c:1304 elf32-tic6x.c:2635 +#: elf32-cris.c:1311 elf32-tic6x.c:2603 #, c-format -msgid "%B, section %A: relocation %s with non-zero addend %d against local symbol" -msgstr "%B, розділ %A: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s з ненульовим доданком, %d, щодо локального Ñимволу" +msgid "%pB, section %pA: relocation %s with non-zero addend % against local symbol" +msgstr "%pB, розділ %pA: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s з ненульовим доданком, %, щодо локального Ñимволу" -#: elf32-cris.c:1313 elf32-cris.c:1660 elf32-cris.c:1813 elf32-tic6x.c:2644 +#: elf32-cris.c:1320 elf32-cris.c:1668 elf32-cris.c:1821 elf32-tic6x.c:2612 #, c-format -msgid "%B, section %A: relocation %s with non-zero addend %d against symbol `%s'" -msgstr "%B, розділ %A: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s з ненульовим доданком, %d, щодо Ñимволу «%s»" +msgid "%pB, section %pA: relocation %s with non-zero addend % against symbol `%s'" +msgstr "%pB, розділ %pA: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s з ненульовим доданком, %, щодо Ñимволу «%s»" -#: elf32-cris.c:1340 +#: elf32-cris.c:1347 #, c-format -msgid "%B, section %A: relocation %s is not allowed for global symbol: `%s'" -msgstr "%B, розділ %A: не можна виконувати переÑÑƒÐ²Ð°Ð½Ð½Ñ %s Ð´Ð»Ñ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñимволу: «%s»" +msgid "%pB, section %pA: relocation %s is not allowed for global symbol: `%s'" +msgstr "%pB, розділ %pA: не можна виконувати переÑÑƒÐ²Ð°Ð½Ð½Ñ %s Ð´Ð»Ñ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñимволу: «%s»" -#: elf32-cris.c:1357 +#: elf32-cris.c:1364 #, c-format -msgid "%B, section %A: relocation %s with no GOT created" -msgstr "%B, розділ %A: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s без Ñтвореного GOT" +msgid "%pB, section %pA: relocation %s with no GOT created" +msgstr "%pB, розділ %pA: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s без Ñтвореного GOT" #. We shouldn't get here for GCC-emitted code. -#: elf32-cris.c:1573 +#: elf32-cris.c:1581 #, c-format -msgid "%B, section %A: relocation %s has an undefined reference to `%s', perhaps a declaration mixup?" -msgstr "%B, розділ %A: у переÑуванні %s Ñ” невизначене поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° «%s», можливо, адреÑна прив’Ñзка оголошеннÑ?" +msgid "%pB, section %pA: relocation %s has an undefined reference to `%s', perhaps a declaration mixup?" +msgstr "%pB, розділ %pA: у переÑуванні %s Ñ” невизначене поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° «%s», можливо, адреÑна прив’Ñзка оголошеннÑ?" -#: elf32-cris.c:1576 +#: elf32-cris.c:1584 #, c-format -msgid "%B, section %A: relocation %s is not allowed for `%s', a global symbol with default visibility, perhaps a declaration mixup?" -msgstr "%B, розділ %A: не можна виконувати переÑÑƒÐ²Ð°Ð½Ð½Ñ %s Ð´Ð»Ñ Ñимволу «%s», загального Ñимволу із типовою видиміÑÑ‚ÑŽ. Можливо, помилка у оголошенні?" +msgid "%pB, section %pA: relocation %s is not allowed for `%s', a global symbol with default visibility, perhaps a declaration mixup?" +msgstr "%pB, розділ %pA: не можна виконувати переÑÑƒÐ²Ð°Ð½Ð½Ñ %s Ð´Ð»Ñ Ñимволу «%s», загального Ñимволу із типовою видиміÑÑ‚ÑŽ. Можливо, помилка у оголошенні?" -#: elf32-cris.c:1947 +#: elf32-cris.c:1955 #, c-format -msgid "%B, section %A: relocation %s is not allowed for symbol: `%s' which is defined outside the program, perhaps a declaration mixup?" -msgstr "%B, розділ %A: не можна виконувати переÑÑƒÐ²Ð°Ð½Ð½Ñ %s Ð´Ð»Ñ Ñимволу «%s», Ñкий визначено поза програмою. Можливо, помилка у оголошенні?" +msgid "%pB, section %pA: relocation %s is not allowed for symbol: `%s' which is defined outside the program, perhaps a declaration mixup?" +msgstr "%pB, розділ %pA: не можна виконувати переÑÑƒÐ²Ð°Ð½Ð½Ñ %s Ð´Ð»Ñ Ñимволу «%s», Ñкий визначено поза програмою. Можливо, помилка у оголошенні?" -#: elf32-cris.c:2000 +#: elf32-cris.c:2008 msgid "(too many global variables for -fpic: recompile with -fPIC)" msgstr "(забагато загальних змінних Ð´Ð»Ñ -fpic: виконайте повторне Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð· -fPIC)" -#: elf32-cris.c:2007 +#: elf32-cris.c:2015 msgid "(thread-local data too big for -fpic or -msmall-tls: recompile with -fPIC or -mno-small-tls)" msgstr "(дані локального потоку Ñ” надто великими Ð´Ð»Ñ -fpic або -msmall-tls: повторно зберіть з -fPIC або -mno-small-tls)" -#: elf32-cris.c:3233 +#: elf32-cris.c:3050 #, c-format -msgid "" -"%B, section %A:\n" -" v10/v32 compatible object %s must not contain a PIC relocation" -msgstr "" -"%B, розділ %A:\n" -" об’єкт верÑÑ–Ñ— 10/32, %s, не повинен міÑтити переÑÑƒÐ²Ð°Ð½Ð½Ñ PIC" +msgid "%pB, section %pA: v10/v32 compatible object must not contain a PIC relocation" +msgstr "%pB, розділ %pA: об’єкт верÑÑ–Ñ— 10/32 не повинен міÑтити переÑÑƒÐ²Ð°Ð½Ð½Ñ PIC" -#: elf32-cris.c:3287 +#: elf32-cris.c:3104 #, c-format msgid "" -"%B, section %A:\n" +"%pB, section %pA:\n" " relocation %s not valid in a shared object; typically an option mixup, recompile with -fPIC" msgstr "" -"%B, розділ %A:\n" +"%pB, розділ %pA:\n" " переÑÑƒÐ²Ð°Ð½Ð½Ñ %s не Ñ” коректним у Ñпільному об’єкті; типовою причиною Ñ” конфлікт параметрів, перекомпілюйте з -fPIC" -#: elf32-cris.c:3505 +#: elf32-cris.c:3322 #, c-format -msgid "" -"%B, section %A:\n" -" relocation %s should not be used in a shared object; recompile with -fPIC" +msgid "%pB, section %pA: relocation %s should not be used in a shared object; recompile with -fPIC" msgstr "" -"%B, розділ %A:\n" +"%pB, розділ %pA:\n" " переÑÑƒÐ²Ð°Ð½Ð½Ñ %s не Ñлід викориÑтовувати у Ñпільному об’єкті; перекомпілюйте з -fPIC" -#: elf32-cris.c:3929 +#: elf32-cris.c:3747 #, c-format -msgid "" -"%B, section `%A', to symbol `%s':\n" -" relocation %s should not be used in a shared object; recompile with -fPIC" -msgstr "" -"%B, розділ «%A» до Ñимволу «%s»:\n" -" переÑÑƒÐ²Ð°Ð½Ð½Ñ %s не Ñлід викориÑтовувати у Ñпільному об’єкті; перекомпілюйте з -fPIC" +msgid "%pB, section `%pA', to symbol `%s': relocation %s should not be used in a shared object; recompile with -fPIC" +msgstr "%pB, розділ «%pA» до Ñимволу «%s»: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s не Ñлід викориÑтовувати у Ñпільному об’єкті; перекомпілюйте з -fPIC" -#: elf32-cris.c:4041 -msgid "Unexpected machine number" -msgstr "Ðеочікуваний номер машини" +#: elf32-cris.c:3860 +msgid "unexpected machine number" +msgstr "неочікуваний номер машини" -#: elf32-cris.c:4092 +#: elf32-cris.c:3911 #, c-format msgid " [symbols have a _ prefix]" msgstr " [Ñимволи міÑÑ‚ÑÑ‚ÑŒ Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ _]" -#: elf32-cris.c:4095 +#: elf32-cris.c:3914 #, c-format msgid " [v10 and v32]" msgstr " [v10 та v32]" -#: elf32-cris.c:4098 +#: elf32-cris.c:3917 #, c-format msgid " [v32]" msgstr " [v32]" -#: elf32-cris.c:4142 -msgid "%B: uses _-prefixed symbols, but writing file with non-prefixed symbols" -msgstr "%B: викориÑтовуютьÑÑ Ñимволи з префікÑом «_», але виконуєтьÑÑ Ð·Ð°Ð¿Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° з Ñимволами без префікÑів" - -#: elf32-cris.c:4143 -msgid "%B: uses non-prefixed symbols, but writing file with _-prefixed symbols" -msgstr "%B: викориÑтовуютьÑÑ Ñимволи без префікÑа «_», але виконуєтьÑÑ Ð·Ð°Ð¿Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° з Ñимволами з префікÑами «_»" - -#: elf32-cris.c:4162 -msgid "%B contains CRIS v32 code, incompatible with previous objects" -msgstr "у %B міÑтитьÑÑ ÐºÐ¾Ð´ v32 CRIS, неÑуміÑний з попередніми об’єктами" - -#: elf32-cris.c:4164 -msgid "%B contains non-CRIS-v32 code, incompatible with previous objects" -msgstr "у %B міÑтитьÑÑ ÐºÐ¾Ð´, Ñкий не Ñ” кодом v32 CRIS, неÑуміÑний з попередніми об’єктами" +#: elf32-cris.c:3961 +#, c-format +msgid "%pB: uses _-prefixed symbols, but writing file with non-prefixed symbols" +msgstr "%pB: викориÑтовуютьÑÑ Ñимволи з префікÑом «_», але виконуєтьÑÑ Ð·Ð°Ð¿Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° з Ñимволами без префікÑів" -#: elf32-crx.c:429 +#: elf32-cris.c:3962 #, c-format -msgid "%B: unrecognised CRX reloc number: %d" -msgstr "%B: невідоме чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ CRX: %d" +msgid "%pB: uses non-prefixed symbols, but writing file with _-prefixed symbols" +msgstr "%pB: викориÑтовуютьÑÑ Ñимволи без префікÑа «_», але виконуєтьÑÑ Ð·Ð°Ð¿Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° з Ñимволами з префікÑами «_»" -#: elf32-d10v.c:234 +#: elf32-cris.c:3981 #, c-format -msgid "%B: invalid D10V reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ D10V: %d" +msgid "%pB contains CRIS v32 code, incompatible with previous objects" +msgstr "у %pB міÑтитьÑÑ ÐºÐ¾Ð´ v32 CRIS, неÑуміÑний з попередніми об’єктами" -#: elf32-d30v.c:522 elf32-d30v.c:541 +#: elf32-cris.c:3983 #, c-format -msgid "%B: invalid D30V reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ D30V: %d" +msgid "%pB contains non-CRIS-v32 code, incompatible with previous objects" +msgstr "у %pB міÑтитьÑÑ ÐºÐ¾Ð´, Ñкий не Ñ” кодом v32 CRIS, неÑуміÑний з попередніми об’єктами" #: elf32-dlx.c:141 #, c-format -msgid "BFD Link Error: branch (PC rel16) to section (%s) not supported" -msgstr "Помилка ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ BFD: Ð²Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ (PC rel16) до розділу (%s) не підтримуєтьÑÑ" +msgid "branch (PC rel16) to section (%s) not supported" +msgstr "Ð²Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ (PC rel16) до розділу (%s) не підтримуєтьÑÑ" #: elf32-dlx.c:204 #, c-format -msgid "BFD Link Error: jump (PC rel26) to section (%s) not supported" -msgstr "Помилка ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ BFD: не передбачено підтримки переходу (PC rel26) до розділу (%s)" - -#: elf32-dlx.c:552 -#, c-format -msgid "Invalid DLX reloc number: %d" -msgstr "Ðекоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ DLX: %d" - -#: elf32-epiphany.c:376 -#, c-format -msgid "%B: invalid Epiphany reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ Epiphany: %d" +msgid "jump (PC rel26) to section (%s) not supported" +msgstr "не передбачено підтримки переходу (PC rel26) до розділу (%s)" #. Only if it's not an unresolved symbol. -#: elf32-epiphany.c:570 elf32-ip2k.c:1482 +#: elf32-epiphany.c:573 elf32-ip2k.c:1489 msgid "unsupported relocation between data/insn address spaces" msgstr "непідтримуване переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ñ–Ð¶ проÑторами Ð°Ð´Ñ€ÐµÑ data та insn" -#: elf32-fr30.c:381 -#, c-format -msgid "%B: invalid FR30 reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ FR30: %d" - -#: elf32-frv.c:1451 elf32-frv.c:1602 +#: elf32-frv.c:1452 elf32-frv.c:1603 msgid "relocation requires zero addend" msgstr "Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±ÐµÐ½ нульовий доданок" -#: elf32-frv.c:2557 -#, c-format -msgid "%B: invalid FRV reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ FRV: %d" - -#: elf32-frv.c:2823 +#: elf32-frv.c:2829 #, c-format msgid "%H: relocation to `%s+%v' may have caused the error above\n" msgstr "%H: Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилку, наведене вище, можливо Ñпричинене переÑуваннÑм до «%s+%v»\n" -#: elf32-frv.c:2840 +#: elf32-frv.c:2846 msgid "%H: relocation references symbol not defined in the module\n" msgstr "%H: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾ÑилаєтьÑÑ Ð½Ð° Ñимвол, Ñкий не визначено у модулі\n" -#: elf32-frv.c:2916 +#: elf32-frv.c:2922 msgid "%H: R_FRV_GETTLSOFF not applied to a call instruction\n" msgstr "%H: R_FRV_GETTLSOFF Ñ” незаÑтоÑовним до команди виклику (call)\n" -#: elf32-frv.c:2957 +#: elf32-frv.c:2963 msgid "%H: R_FRV_GOTTLSDESC12 not applied to an lddi instruction\n" msgstr "%H: R_FRV_GOTTLSDESC12 Ñ” незаÑтоÑовним до команди lddi\n" -#: elf32-frv.c:3028 +#: elf32-frv.c:3034 msgid "%H: R_FRV_GOTTLSDESCHI not applied to a sethi instruction\n" msgstr "%H: R_FRV_GOTTLSDESCHI Ñ” незаÑтоÑовним до команди sethi\n" -#: elf32-frv.c:3065 +#: elf32-frv.c:3071 msgid "%H: R_FRV_GOTTLSDESCLO not applied to a setlo or setlos instruction\n" msgstr "%H: R_FRV_GOTTLSDESCLO Ñ” незаÑтоÑовним до команди setlo або setlos\n" -#: elf32-frv.c:3112 +#: elf32-frv.c:3118 msgid "%H: R_FRV_TLSDESC_RELAX not applied to an ldd instruction\n" msgstr "%H: R_FRV_TLSDESC_RELAX Ñ” незаÑтоÑовним до команди ldd\n" -#: elf32-frv.c:3196 +#: elf32-frv.c:3202 msgid "%H: R_FRV_GETTLSOFF_RELAX not applied to a calll instruction\n" msgstr "%H: R_FRV_GETTLSOFF_RELAX Ñ” незаÑтоÑовним до команди calll\n" -#: elf32-frv.c:3250 +#: elf32-frv.c:3256 msgid "%H: R_FRV_GOTTLSOFF12 not applied to an ldi instruction\n" msgstr "%H: R_FRV_GOTTLSOFF12 Ñ” незаÑтоÑовним до команди ldi\n" -#: elf32-frv.c:3280 +#: elf32-frv.c:3286 msgid "%H: R_FRV_GOTTLSOFFHI not applied to a sethi instruction\n" msgstr "%H: R_FRV_GOTTLSOFFHI Ñ” незаÑтоÑовним до команди sethi\n" -#: elf32-frv.c:3309 +#: elf32-frv.c:3315 msgid "%H: R_FRV_GOTTLSOFFLO not applied to a setlo or setlos instruction\n" msgstr "%H: R_FRV_GOTTLSOFFLO Ñ” незаÑтоÑовним до команди setlo або setlos\n" -#: elf32-frv.c:3339 +#: elf32-frv.c:3345 msgid "%H: R_FRV_TLSOFF_RELAX not applied to an ld instruction\n" msgstr "%H: R_FRV_TLSOFF_RELAX Ñ” незаÑтоÑовним до команди ld\n" -#: elf32-frv.c:3384 +#: elf32-frv.c:3390 msgid "%H: R_FRV_TLSMOFFHI not applied to a sethi instruction\n" msgstr "%H: R_FRV_TLSMOFFHI Ñ” незаÑтоÑовним до команди sethi\n" -#: elf32-frv.c:3411 +#: elf32-frv.c:3417 msgid "R_FRV_TLSMOFFLO not applied to a setlo or setlos instruction\n" msgstr "R_FRV_TLSMOFFLO Ñ” незаÑтоÑовним до команди setlo або setlos\n" -#: elf32-frv.c:3532 -msgid "%H: R_FRV_FUNCDESC references dynamic symbol with nonzero addend\n" -msgstr "%H: R_FRV_FUNCDESC поÑилаєтьÑÑ Ð½Ð° динамічний Ñимвол з ненульовим доданком\n" +#: elf32-frv.c:3538 elf32-frv.c:3660 +msgid "%H: %s references dynamic symbol with nonzero addend\n" +msgstr "%H: %s поÑилаєтьÑÑ Ð½Ð° динамічний Ñимвол з ненульовим доданком\n" -#: elf32-frv.c:3573 elf32-frv.c:3695 +#: elf32-frv.c:3580 elf32-frv.c:3703 msgid "%H: cannot emit fixups in read-only section\n" msgstr "%H: не можна викориÑтовувати адреÑну прив’Ñзку у розділі, придатному лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ\n" -#: elf32-frv.c:3604 elf32-frv.c:3738 +#: elf32-frv.c:3611 elf32-frv.c:3746 msgid "%H: cannot emit dynamic relocations in read-only section\n" msgstr "%H: не можна викориÑтовувати динамічні переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ розділі, призначеному лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ\n" -#: elf32-frv.c:3653 -msgid "%H: R_FRV_FUNCDESC_VALUE references dynamic symbol with nonzero addend\n" -msgstr "%H: R_FRV_FUNCDESC_VALUE поÑилаєтьÑÑ Ð½Ð° динамічний Ñимвол з ненульовим доданком\n" - -#: elf32-frv.c:3910 +#: elf32-frv.c:3918 #, c-format msgid "%H: reloc against `%s' references a different segment\n" msgstr "%H: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ «%s» поÑилаєтьÑÑ Ð½Ð° інший Ñегмент\n" -#: elf32-frv.c:4061 +#: elf32-frv.c:4069 #, c-format msgid "%H: reloc against `%s': %s\n" msgstr "%H: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ «%s»: %s\n" -#: elf32-frv.c:6258 +#: elf32-frv.c:6514 #, c-format -msgid "%B: unsupported relocation type %i\n" -msgstr "%B: непідтримуваний тип переÑÑƒÐ²Ð°Ð½Ð½Ñ %i\n" +msgid "%pB: compiled with %s and linked with modules that use non-pic relocations" +msgstr "%pB: зібрано з %s Ñ– Ñкомпоновано з модулÑми, у Ñких викориÑтовуютьÑÑ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ-pic" -#: elf32-frv.c:6510 +#: elf32-frv.c:6568 elf32-iq2000.c:832 elf32-m32c.c:876 #, c-format -msgid "%B: compiled with %s and linked with modules that use non-pic relocations" -msgstr "%B: зібрано з %s Ñ– Ñкомпоновано з модулÑми, у Ñких викориÑтовуютьÑÑ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ-pic" +msgid "%pB: compiled with %s and linked with modules compiled with %s" +msgstr "%pB: зібрано з %s Ñ– Ñкомпоновано з модулÑми, зібраними з %s" -#: elf32-frv.c:6564 elf32-iq2000.c:832 elf32-m32c.c:877 +#: elf32-frv.c:6581 #, c-format -msgid "%B: compiled with %s and linked with modules compiled with %s" -msgstr "%B: зібрано з %s Ñ– Ñкомпоновано з модулÑми, зібраними з %s" +msgid "%pB: uses different unknown e_flags (%#x) fields than previous modules (%#x)" +msgstr "%pB: викориÑтовуютьÑÑ Ñ–Ð½ÑˆÑ– невідомі Ð¿Ð¾Ð»Ñ e_flags (%#x) ніж у попередніх модулÑÑ… (%#x)" -#: elf32-frv.c:6577 +#: elf32-gen.c:71 #, c-format -msgid "%B: uses different unknown e_flags (0x%lx) fields than previous modules (0x%lx)" -msgstr "%B: викориÑтовуютьÑÑ Ñ–Ð½ÑˆÑ– невідомі Ð¿Ð¾Ð»Ñ e_flags (0x%lx) ніж у попередніх модулÑÑ… (0x%lx)" +msgid "%pB: relocations in generic ELF (EM: %d)" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ типовому ELF (EM: %d)" -#: elf32-gen.c:69 elf64-gen.c:69 +#: elf32-hppa.c:834 elf32-hppa.c:3511 #, c-format -msgid "%B: Relocations in generic ELF (EM: %d)" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ типовому ELF (EM: %d)" +msgid "%pB(%pA+%#): cannot reach %s, recompile with -ffunction-sections" +msgstr "%pB(%pA+%#): не вдалоÑÑ Ð´Ð¾ÑÑгти %s, повторно зберіть з -ffunction-sections" -#: elf32-hppa.c:839 elf32-hppa.c:3599 +#: elf32-hppa.c:1248 #, c-format -msgid "%B(%A+0x%lx): cannot reach %s, recompile with -ffunction-sections" -msgstr "%B(%A+0x%lx): не вдалоÑÑ Ð´Ð¾ÑÑгти %s, повторно зберіть з -ffunction-sections" +msgid "%pB: relocation %s can not be used when making a shared object; recompile with -fPIC" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s не можна викориÑтовувати під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñпільного викориÑтаннÑ; повторно зберіть з -fPIC" -#: elf32-hppa.c:1270 +#: elf32-hppa.c:2688 #, c-format -msgid "%B: relocation %s can not be used when making a shared object; recompile with -fPIC" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s не можна викориÑтовувати під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñпільного викориÑтаннÑ; повторно зберіть з -fPIC" +msgid "%pB: duplicate export stub %s" +msgstr "%pB: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð° екÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ %s" -#: elf32-hppa.c:2778 +#: elf32-hppa.c:3344 #, c-format -msgid "%B: duplicate export stub %s" -msgstr "%B: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð° екÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ %s" +msgid "%pB(%pA+%#): %s fixup for insn %#x is not supported in a non-shared link" +msgstr "%pB(%pA+%#): підтримки адреÑної прив’Ñзки %s Ð´Ð»Ñ Ñ–Ð½Ñтрукції %#x не передбачено у поÑиланні неÑпільного викориÑтаннÑ" -#: elf32-hppa.c:3433 +#: elf32-hppa.c:4140 #, c-format -msgid "%B(%A+0x%lx): %s fixup for insn 0x%x is not supported in a non-shared link" -msgstr "%B(%A+0x%lx): підтримки адреÑної прив’Ñзки %s Ð´Ð»Ñ Ñ–Ð½Ñтрукції 0x%x не передбачено у поÑиланні неÑпільного викориÑтаннÑ" +msgid "%s has both normal and TLS relocs" +msgstr "%s міÑтить одразу звичайні переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ– переÑÑƒÐ²Ð°Ð½Ð½Ñ TLS" -#: elf32-hppa.c:4290 +#: elf32-hppa.c:4158 #, c-format -msgid "%B(%A+0x%lx): cannot handle %s for %s" -msgstr "%B(%A+0x%lx): не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ %s Ð´Ð»Ñ %s" +msgid "%pB:%s has both normal and TLS relocs" +msgstr "%pB:%s міÑтить одразу звичайні переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ– переÑÑƒÐ²Ð°Ð½Ð½Ñ TLS" -#: elf32-hppa.c:4588 -msgid ".got section not immediately after .plt section" -msgstr "Розділ .got не перебуває одразу за розділом .plt" - -#: elf32-i370.c:307 -#, c-format -msgid "%B: unrecognised I370 reloc number: %d" -msgstr "%B: невідоме чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ I370: %d" - -#: elf32-i370.c:1168 -msgid "%B: unknown relocation type %d for symbol %s" -msgstr "%B: невідомий тип переÑÑƒÐ²Ð°Ð½Ð½Ñ %d Ð´Ð»Ñ Ñимволу %s" - -#: elf32-i370.c:1310 +#: elf32-hppa.c:4217 #, c-format -msgid "%B: Relocation %s is not yet supported for symbol %s." -msgstr "%B: підтримки переÑÑƒÐ²Ð°Ð½Ð½Ñ %s Ð´Ð»Ñ Ñимволу %s ще не передбачено." +msgid "%pB(%pA+%#): cannot handle %s for %s" +msgstr "%pB(%pA+%#): не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ %s Ð´Ð»Ñ %s" -#. Unknown relocation. -#: elf32-i386.c:387 elf32-m68k.c:352 elf32-ppc.c:2074 elf32-s390.c:346 -#: elf32-tic6x.c:2674 elf32-wasm32.c:106 elf64-ppc.c:2516 elf64-s390.c:373 -#: elf64-x86-64.c:289 -#, c-format -msgid "%B: invalid relocation type %d" -msgstr "%B: некоректний тип переÑÑƒÐ²Ð°Ð½Ð½Ñ %d" +#: elf32-hppa.c:4521 +msgid ".got section not immediately after .plt section" +msgstr "Розділ .got не перебуває одразу за розділом .plt" -#: elf32-i386.c:1711 elf64-x86-64.c:1888 +#: elf32-i386.c:351 #, c-format -msgid "%B: TLS transition from %s to %s against `%s' at 0x%lx in section `%A' failed" -msgstr "%B: перенеÑÐµÐ½Ð½Ñ TLS з %s до %s щодо «%s» у 0x%lx у розділі «%A» зазнало невдачі" +msgid "%pB: unsupported relocation type: %#x" +msgstr "%pB: непідтримуваний тип переÑÑƒÐ²Ð°Ð½Ð½Ñ %#x" -#: elf32-i386.c:1799 +#: elf32-i386.c:1178 elf64-x86-64.c:1377 #, c-format -msgid "%B: direct GOT relocation R_386_GOT32X against `%s' without base register can not be used when making a shared object" -msgstr "%B: безпоÑереднє переÑÑƒÐ²Ð°Ð½Ð½Ñ GOT R_386_GOT32X щодо «%s» без базового регіÑтра не можна викориÑтовувати під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñпільного викориÑтаннÑ" +msgid "%pB: TLS transition from %s to %s against `%s' at %# in section `%pA' failed" +msgstr "%pB: перенеÑÐµÐ½Ð½Ñ TLS з %s до %s щодо «%s» у %# у розділі «%pA» зазнало невдачі" -#: elf32-i386.c:2237 elf32-s390.c:1188 elf32-sh.c:6056 elf32-tilepro.c:1608 -#: elf32-xtensa.c:1196 elf64-s390.c:1117 elfxx-sparc.c:1625 -#: elfxx-tilegx.c:1817 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:440 +#: elf32-i386.c:1269 #, c-format -msgid "%B: `%s' accessed both as normal and thread local symbol" -msgstr "%B: доÑтуп до «%s» виконуєтьÑÑ Ñк до звичайного Ñимволу, так Ñ– до локального Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñимволу" +msgid "%pB: direct GOT relocation R_386_GOT32X against `%s' without base register can not be used when making a shared object" +msgstr "%pB: безпоÑереднє переÑÑƒÐ²Ð°Ð½Ð½Ñ GOT R_386_GOT32X щодо «%s» без базового регіÑтра не можна викориÑтовувати під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñпільного викориÑтаннÑ" -#: elf32-i386.c:2314 +#: elf32-i386.c:1726 elf32-s390.c:1188 elf32-sh.c:5570 elf32-tilepro.c:1592 +#: elf32-xtensa.c:1203 elf64-s390.c:1120 elfxx-sparc.c:1593 +#: elfxx-tilegx.c:1805 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-riscv.c:428 #, c-format -msgid "%B: unsupported non-PIC call to IFUNC `%s'" -msgstr "%B: непідтримуваний виклик без PIC IFUNC «%s»" +msgid "%pB: `%s' accessed both as normal and thread local symbol" +msgstr "%pB: доÑтуп до «%s» виконуєтьÑÑ Ñк до звичайного Ñимволу, так Ñ– до локального Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñимволу" -#: elf32-i386.c:3189 elf64-x86-64.c:3589 +#: elf32-i386.c:1798 #, c-format -msgid "%P: %B: warning: relocation against `%s' in readonly section `%A'\n" -msgstr "%P: %B: попередженнÑ: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ «%s» у придатному лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– «%A»\n" +msgid "%pB: unsupported non-PIC call to IFUNC `%s'" +msgstr "%pB: непідтримуваний виклик без PIC IFUNC «%s»" -#: elf32-i386.c:3402 elf64-x86-64.c:3798 +#: elf32-i386.c:2380 elf64-x86-64.c:2667 #, c-format -msgid "%P: %B: warning: relocation in readonly section `%A'\n" -msgstr "%P: %B: попередженнÑ: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ розділі, придатному лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Â«%A»\n" - -#: elf32-i386.c:3705 elf64-x86-64.c:4114 -msgid "%P%X: read-only segment has dynamic IFUNC relocations; recompile with -fPIC\n" -msgstr "%P%X: Ñегмент, призначений лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ, міÑтить динамічні переÑÑƒÐ²Ð°Ð½Ð½Ñ IFUNC. Спробуйте зібрати з -fPIC\n" +msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' isn't supported" +msgstr "%pB: підтримки переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо Ñимволу STT_GNU_IFUNC «%s» не передбачено" -#: elf32-i386.c:3945 elf32-tilepro.c:2868 elf64-x86-64.c:4321 -#: elfxx-tilegx.c:3167 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6082 +#: elf32-i386.c:2413 elf32-i386.c:3661 elf32-i386.c:3802 elf64-x86-64.c:2724 +#: elf64-x86-64.c:4066 elf64-x86-64.c:4222 #, c-format -msgid "%B: unrecognized relocation (0x%x) in section `%A'" -msgstr "%B: нерозпізнане переÑÑƒÐ²Ð°Ð½Ð½Ñ (0x%x) у розділі «%A»" +msgid "Local IFUNC function `%s' in %pB\n" +msgstr "Локальна Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ IFUNC «%s» у %pB\n" -#: elf32-i386.c:4240 elf64-x86-64.c:4550 +#: elf32-i386.c:2570 #, c-format -msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't supported" -msgstr "%B: підтримки переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо Ñимволу STT_GNU_IFUNC «%s» не передбачено" +msgid "%pB: direct GOT relocation %s against `%s' without base register can not be used when making a shared object" +msgstr "%pB: безпоÑереднє переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо «%s» без базового регіÑтра не можна викориÑтовувати під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñпільного викориÑтаннÑ" -#: elf32-i386.c:4275 elf32-i386.c:5642 elf32-i386.c:5781 elf64-x86-64.c:4609 -#: elf64-x86-64.c:5982 elf64-x86-64.c:6136 -msgid "Local IFUNC function `%s' in %B\n" -msgstr "Локальна Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ IFUNC «%s» у %B\n" - -#: elf32-i386.c:4508 -#, c-format -msgid "%B: direct GOT relocation %s against `%s' without base register can not be used when making a shared object" -msgstr "%B: безпоÑереднє переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо «%s» без базового регіÑтра не можна викориÑтовувати під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñпільного викориÑтаннÑ" - -#: elf32-i386.c:4543 elf64-x86-64.c:4816 +#: elf32-i386.c:2605 elf64-x86-64.c:2916 msgid "hidden symbol" msgstr "прихованого Ñимволу" -#: elf32-i386.c:4546 elf64-x86-64.c:4819 +#: elf32-i386.c:2608 elf64-x86-64.c:2919 msgid "internal symbol" msgstr "внутрішнього Ñимволу" -#: elf32-i386.c:4549 elf64-x86-64.c:4822 +#: elf32-i386.c:2611 elf64-x86-64.c:2922 msgid "protected symbol" -msgstr "захищеного Ñимволу" - -#: elf32-i386.c:4552 elf64-x86-64.c:4825 -msgid "symbol" -msgstr "Ñимволу" - -#: elf32-i386.c:4558 -#, c-format -msgid "%B: relocation R_386_GOTOFF against undefined %s `%s' can not be used when making a shared object" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ R_386_GOTOFF щодо невизначеного %s, «%s», не можна викориÑтовувати під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñпільного викориÑтаннÑ" - -#: elf32-i386.c:4571 -#, c-format -msgid "%B: relocation R_386_GOTOFF against protected %s `%s' can not be used when making a shared object" -msgstr "%B: не можна викориÑтовувати R_386_GOTOFF переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ захищеної %s «%s» під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñпільного викориÑтаннÑ" - -#: elf32-i386.c:6116 elf32-tilepro.c:3920 elf64-x86-64.c:6483 -#: elfxx-tilegx.c:4327 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:9261 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2522 -#, c-format -msgid "discarded output section: `%A'" -msgstr "відкинуто розділ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…: «%A»" - -#: elf32-i386.c:6693 elf64-x86-64.c:7228 -msgid "error: %B: " -msgstr "помилка: %B: <пошкоджений розмір викориÑтаного ISA x86: 0x%x>" - -#: elf32-i386.c:6695 elf64-x86-64.c:7230 -msgid "error: %B: " -msgstr "помилка: %B: <пошкоджений розмір потрібного ISA x86: 0x%x>" - -#: elf32-i386.c:6696 elf64-x86-64.c:7231 -msgid "error: %B: " -msgstr "помилка: %B: <пошкоджений розмір можливоÑÑ‚Ñ– x86: 0x%x>" - -#: elf32-i386.c:6873 elf64-x86-64.c:7408 -#, c-format -msgid "%F: failed to create GNU property section\n" -msgstr "%F: не вдалоÑÑ Ñтворити розділ влаÑтивоÑтей GNU\n" - -#: elf32-i386.c:6959 -#, c-format -msgid "%F: failed to create VxWorks dynamic sections\n" -msgstr "%F: не вдалоÑÑ Ñтворити динамічні розділи VxWorks\n" - -#: elf32-i386.c:7026 elf64-x86-64.c:7568 -#, c-format -msgid "%F: failed to create GOT sections\n" -msgstr "%F: не вдалоÑÑ Ñтворити розділи GOT\n" - -#: elf32-i386.c:7031 elf64-x86-64.c:7584 -#, c-format -msgid "%F: failed to create ifunc sections\n" -msgstr "%F: не вдалоÑÑ Ñтворити розділи ifunc\n" - -#: elf32-i386.c:7074 elf64-x86-64.c:7627 -#, c-format -msgid "%F: failed to create GOT PLT section\n" -msgstr "%F: не вдалоÑÑ Ñтворити розділ PLT GOT\n" - -#: elf32-i386.c:7095 elf64-x86-64.c:7648 -#, c-format -msgid "%F: failed to create IBT-enabled PLT section\n" -msgstr "%F: не вдалоÑÑ Ñтворити розділ PLT із увімкненим IBT\n" - -#: elf32-i386.c:7116 elf64-x86-64.c:7684 -#, c-format -msgid "%F: failed to create PLT .eh_frame section\n" -msgstr "%F: не вдалоÑÑ Ñтворити розділ .eh_frame PLT\n" +msgstr "захищеного Ñимволу" -#: elf32-i386.c:7129 elf64-x86-64.c:7698 -#, c-format -msgid "%F: failed to create GOT PLT .eh_frame section\n" -msgstr "%F: не вдалоÑÑ Ñтворити розділ .eh_frame PLT GOT\n" +#: elf32-i386.c:2614 elf64-x86-64.c:2925 +msgid "symbol" +msgstr "Ñимволу" -#: elf32-i386.c:7149 elf64-x86-64.c:7414 +#: elf32-i386.c:2620 #, c-format -msgid "%F%A: failed to align section\n" -msgstr "%F%A: не вдалоÑÑ Ð²Ð¸Ñ€Ñ–Ð²Ð½Ñти розмір\n" +msgid "%pB: relocation R_386_GOTOFF against undefined %s `%s' can not be used when making a shared object" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ R_386_GOTOFF щодо невизначеного %s, «%s», не можна викориÑтовувати під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñпільного викориÑтаннÑ" -#: elf32-i960.c:140 +#: elf32-i386.c:2633 #, c-format -msgid "%B: invalid i960 reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ i960: %d" +msgid "%pB: relocation R_386_GOTOFF against protected %s `%s' can not be used when making a shared object" +msgstr "%pB: не можна викориÑтовувати R_386_GOTOFF переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ захищеної %s «%s» під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñпільного викориÑтаннÑ" #: elf32-ip2k.c:856 elf32-ip2k.c:862 elf32-ip2k.c:929 elf32-ip2k.c:935 msgid "ip2k relaxer: switch table without complete matching relocation information." @@ -2522,218 +2355,166 @@ msgid "ip2k relaxer: switch table header corrupt." msgstr "Оптимізатор розміру ip2k: пошкоджено заголовок таблиці перемикань" -#: elf32-ip2k.c:1245 -#, c-format -msgid "%B: invalid IP2K reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ IP2K: %d" - -#: elf32-ip2k.c:1298 -#, c-format -msgid "ip2k linker: missing page instruction at 0x%08lx (dest = 0x%08lx)." -msgstr "компонувальник ip2k: не виÑтачає інÑтрукції щодо Ñторінки у 0x%08lx (Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ = 0x%08lx)." - -#: elf32-ip2k.c:1315 +#: elf32-ip2k.c:1302 #, c-format -msgid "ip2k linker: redundant page instruction at 0x%08lx (dest = 0x%08lx)." -msgstr "компонувальник ip2k: зайва інÑÑ‚Ñ€ÑƒÐºÑ†Ñ–Ñ Ñ‰Ð¾Ð´Ð¾ Ñторінки у 0x%08lx (Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ = 0x%08lx)." +msgid "ip2k linker: missing page instruction at %# (dest = %#)" +msgstr "компонувальник ip2k: не виÑтачає інÑтрукції щодо Ñторінки у %# (Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ = %#)." -#: elf32-iq2000.c:441 +#: elf32-ip2k.c:1321 #, c-format -msgid "%B: invalid IQ2000 reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ IQ2000: %d" +msgid "ip2k linker: redundant page instruction at %# (dest = %#)" +msgstr "компонувальник ip2k: зайва інÑÑ‚Ñ€ÑƒÐºÑ†Ñ–Ñ Ñ‰Ð¾Ð´Ð¾ Ñторінки у %# (Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ = %#)." -#: elf32-lm32.c:559 -#, c-format -msgid "%B: invalid LM32 reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ LM32: %d" - -#: elf32-lm32.c:668 elf32-nios2.c:3153 +#: elf32-lm32.c:651 elf32-nios2.c:3141 msgid "global pointer relative relocation when _gp not defined" msgstr "відноÑне перенеÑÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ вказівника без Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ _gp" -#: elf32-lm32.c:723 elf32-nios2.c:3590 +#: elf32-lm32.c:706 elf32-nios2.c:3578 msgid "global pointer relative address out of range" msgstr "відноÑна адреÑа загального вказівника лежить за межами дозволеного діапазону" -#: elf32-lm32.c:1018 -msgid "internal error: addend should be zero for R_LM32_16_GOT" -msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: доданок має бути нульовим Ð´Ð»Ñ R_LM32_16_GOT" - -#: elf32-m32c.c:305 -#, c-format -msgid "%B: invalid M32C reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ M32C: %d" - -#: elf32-m32r.c:1286 +#: elf32-lm32.c:1002 elf32-or1k.c:968 #, c-format -msgid "%B: invalid M32R reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ M32R: %d" +msgid "internal error: addend should be zero for %s" +msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: доданок має бути нульовим Ð´Ð»Ñ %s" -#: elf32-m32r.c:1458 +#: elf32-m32r.c:1471 msgid "SDA relocation when _SDA_BASE_ not defined" msgstr "перенеÑÐµÐ½Ð½Ñ SDA без Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ _SDA_BASE_" -#: elf32-m32r.c:2984 elf32-microblaze.c:1080 elf32-microblaze.c:1128 +#: elf32-m32r.c:2984 elf32-microblaze.c:1101 elf32-microblaze.c:1149 #, c-format -msgid "%B: The target (%s) of an %s relocation is in the wrong section (%A)" -msgstr "" -"%B: Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ (%s) переÑÑƒÐ²Ð°Ð½Ð½Ñ %s перебуває у помилковому розділі (%A)\n" -")" +msgid "%pB: the target (%s) of an %s relocation is in the wrong section (%pA)" +msgstr "%pB: Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ (%s) переÑÑƒÐ²Ð°Ð½Ð½Ñ %s перебуває у помилковому розділі (%pA)" -#: elf32-m32r.c:3486 -msgid "%B: Instruction set mismatch with previous modules" -msgstr "%B: невідповідніÑÑ‚ÑŒ набору команду цього Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð½Ð°Ð±Ð¾Ñ€Ð°Ð¼ команд попередніх модулів" +#: elf32-m32r.c:3487 +#, c-format +msgid "%pB: instruction set mismatch with previous modules" +msgstr "%pB: невідповідніÑÑ‚ÑŒ набору команду цього Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð½Ð°Ð±Ð¾Ñ€Ð°Ð¼ команд попередніх модулів" -#: elf32-m32r.c:3507 elf32-nds32.c:6111 +#: elf32-m32r.c:3508 elf32-nds32.c:6010 #, c-format msgid "private flags = %lx" msgstr "закриті прапорці = %lx" -#: elf32-m32r.c:3512 +#: elf32-m32r.c:3513 #, c-format msgid ": m32r instructions" msgstr ": команди m32r" -#: elf32-m32r.c:3513 +#: elf32-m32r.c:3514 #, c-format msgid ": m32rx instructions" msgstr ": команди m32rx" -#: elf32-m32r.c:3514 +#: elf32-m32r.c:3515 #, c-format msgid ": m32r2 instructions" msgstr ": команди m32r2" -#: elf32-m68hc11.c:390 -#, c-format -msgid "%B: invalid M68HC11 reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ M68HC11: %d" - -#: elf32-m68hc12.c:510 -#, c-format -msgid "%B: invalid M68HC12 reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ M68HC12: %d" - -#: elf32-m68hc1x.c:1119 +#: elf32-m68hc1x.c:1116 #, c-format -msgid "Reference to the far symbol `%s' using a wrong relocation may result in incorrect execution" -msgstr "ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° віддалений Ñимвол «%s», що викориÑтовує помилкове переÑуваннÑ, може призвеÑти до помилок у виконанні." +msgid "reference to the far symbol `%s' using a wrong relocation may result in incorrect execution" +msgstr "поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° віддалений Ñимвол «%s», що викориÑтовує помилкове переÑуваннÑ, може призвеÑти до помилок у виконанні." -#: elf32-m68hc1x.c:1153 +#: elf32-m68hc1x.c:1150 #, c-format msgid "XGATE address (%lx) is not within shared RAM(0xE000-0xFFFF), therefore you must manually offset the address, and possibly manage the page, in your code." msgstr "ÐдреÑа XGATE (%lx) розташована поза RAM Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ (0xE000-0xFFFF), тому вам Ñлід вручну вÑтановити відÑтуп адреÑи Ñ–, ймовірно, керувати Ñторінкою пам’ÑÑ‚Ñ– у вашому коді." -#: elf32-m68hc1x.c:1171 +#: elf32-m68hc1x.c:1168 #, c-format msgid "banked address [%lx:%04lx] (%lx) is not in the same bank as current banked address [%lx:%04lx] (%lx)" msgstr "занеÑена до банку адреÑа [%lx:%04lx] (%lx) не перебуває у одному банку з поточною адреÑою, занеÑеною до банку, [%lx:%04lx] (%lx)" -#: elf32-m68hc1x.c:1187 +#: elf32-m68hc1x.c:1184 #, c-format msgid "reference to a banked address [%lx:%04lx] in the normal address space at %04lx" msgstr "поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° занеÑену до банку адреÑу [%lx:%04lx] у звичайному проÑторі адреÑ, %04lx" -#: elf32-m68hc1x.c:1228 +#: elf32-m68hc1x.c:1225 #, c-format msgid "S12 address (%lx) is not within shared RAM(0x2000-0x4000), therefore you must manually offset the address in your code" msgstr "ÐдреÑа S12 (%lx) розташована поза RAM Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ (0x2000-x4000), тому вам Ñлід вручну вÑтановити відÑтуп адреÑи у вашому коді" -#: elf32-m68hc1x.c:1355 -msgid "%B: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers" -msgstr "%B: компоновані файли зібрано Ð´Ð»Ñ 16-бітових цілих (-mshort), а решту файлів — Ð´Ð»Ñ 32-бітових цілих чиÑел" - -#: elf32-m68hc1x.c:1362 -msgid "%B: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double" -msgstr "%B: компоновані файли зібрано Ð´Ð»Ñ 32-бітових дійÑних чиÑел з подвійною точніÑÑ‚ÑŽ (-fshort-double), а інші — Ð´Ð»Ñ 64-бітових дійÑних чиÑел з подвійною точніÑÑ‚ÑŽ." - -#: elf32-m68hc1x.c:1371 -msgid "%B: linking files compiled for HCS12 with others compiled for HC12" -msgstr "%B: компоновані файли зібрано Ð´Ð»Ñ HCS12, інші ж — Ð´Ð»Ñ HC12" +#: elf32-m68hc1x.c:1352 +#, c-format +msgid "%pB: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers" +msgstr "%pB: компоновані файли зібрано Ð´Ð»Ñ 16-бітових цілих (-mshort), а решту файлів — Ð´Ð»Ñ 32-бітових цілих чиÑел" + +#: elf32-m68hc1x.c:1359 +#, c-format +msgid "%pB: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double" +msgstr "%pB: компоновані файли зібрано Ð´Ð»Ñ 32-бітових дійÑних чиÑел з подвійною точніÑÑ‚ÑŽ (-fshort-double), а інші — Ð´Ð»Ñ 64-бітових дійÑних чиÑел з подвійною точніÑÑ‚ÑŽ." + +#: elf32-m68hc1x.c:1368 +#, c-format +msgid "%pB: linking files compiled for HCS12 with others compiled for HC12" +msgstr "%pB: компоновані файли зібрано Ð´Ð»Ñ HCS12, інші ж — Ð´Ð»Ñ HC12" -#: elf32-m68hc1x.c:1416 elf32-xgate.c:672 +#: elf32-m68hc1x.c:1413 elf32-xgate.c:675 #, c-format msgid "[abi=32-bit int, " msgstr "[abi=32-бітове ціле, " -#: elf32-m68hc1x.c:1418 elf32-xgate.c:674 +#: elf32-m68hc1x.c:1415 elf32-xgate.c:677 #, c-format msgid "[abi=16-bit int, " msgstr "[abi=16-бітове ціле, " -#: elf32-m68hc1x.c:1421 elf32-xgate.c:677 +#: elf32-m68hc1x.c:1418 elf32-xgate.c:680 #, c-format msgid "64-bit double, " msgstr "64-бітове double, " -#: elf32-m68hc1x.c:1423 elf32-xgate.c:679 +#: elf32-m68hc1x.c:1420 elf32-xgate.c:682 #, c-format msgid "32-bit double, " msgstr "32-бітове double, " -#: elf32-m68hc1x.c:1426 +#: elf32-m68hc1x.c:1423 #, c-format msgid "cpu=HC11]" msgstr "процеÑор=HC11]" -#: elf32-m68hc1x.c:1428 +#: elf32-m68hc1x.c:1425 #, c-format msgid "cpu=HCS12]" msgstr "процеÑор=HCS12]" -#: elf32-m68hc1x.c:1430 +#: elf32-m68hc1x.c:1427 #, c-format msgid "cpu=HC12]" msgstr "процеÑор=HC12]" -#: elf32-m68hc1x.c:1433 +#: elf32-m68hc1x.c:1430 #, c-format msgid " [memory=bank-model]" msgstr " [пам’ÑÑ‚ÑŒ=модель з банками]" -#: elf32-m68hc1x.c:1435 +#: elf32-m68hc1x.c:1432 #, c-format msgid " [memory=flat]" msgstr " [пам’ÑÑ‚ÑŒ=плоÑка модель]" -#: elf32-m68hc1x.c:1438 +#: elf32-m68hc1x.c:1435 #, c-format msgid " [XGATE RAM offsetting]" msgstr " [вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ñтупу RAM XGATE]" -#: elf32-m68k.c:1215 elf32-m68k.c:1216 vms-alpha.c:7400 vms-alpha.c:7416 +#: elf32-m68k.c:1216 elf32-m68k.c:1217 vms-alpha.c:7478 vms-alpha.c:7494 msgid "unknown" msgstr "невідомо" -#: elf32-m68k.c:1680 +#: elf32-m68k.c:1660 #, c-format -msgid "%B: GOT overflow: Number of relocations with 8-bit offset > %d" -msgstr "%B: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ GOT: кількіÑÑ‚ÑŒ переÑувань з 8-бітовим відÑтупом > %d" +msgid "%pB: GOT overflow: number of relocations with 8-bit offset > %d" +msgstr "%pB: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ GOT: кількіÑÑ‚ÑŒ переÑувань з 8-бітовим відÑтупом > %d" -#: elf32-m68k.c:1687 +#: elf32-m68k.c:1667 #, c-format -msgid "%B: GOT overflow: Number of relocations with 8- or 16-bit offset > %d" -msgstr "%B: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ GOT: кількіÑÑ‚ÑŒ переÑувань з 8- або 16-бітовим відÑтупом > %d" - -#: elf32-m68k.c:3890 -#, c-format -msgid "%B(%A+0x%lx): R_68K_TLS_LE32 relocation not permitted in shared object" -msgstr "%B(%A+0x%lx): переÑÑƒÐ²Ð°Ð½Ð½Ñ R_68K_TLS_LE32 у об’єкті Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð¾" - -#: elf32-mcore.c:100 elf32-mcore.c:455 -#, c-format -msgid "%B: Relocation %s (%d) is not currently supported.\n" -msgstr "%B: підтримки переÑÑƒÐ²Ð°Ð½Ð½Ñ %s (%d) у поточній верÑÑ–Ñ— не передбачено.\n" - -#: elf32-mcore.c:355 -#, c-format -msgid "%B: unrecognised MCore reloc number: %d" -msgstr "%B: невідоме чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ MCore: %d" - -#: elf32-mcore.c:440 -#, c-format -msgid "%B: Unknown relocation type %d\n" -msgstr "%B: невідомий тип переÑÑƒÐ²Ð°Ð½Ð½Ñ %d\n" +msgid "%pB: GOT overflow: number of relocations with 8- or 16-bit offset > %d" +msgstr "%pB: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ GOT: кількіÑÑ‚ÑŒ переÑувань з 8- або 16-бітовим відÑтупом > %d" #. Pacify gcc -Wall. #: elf32-mep.c:139 @@ -2746,451 +2527,361 @@ msgid "MeP: howto %d has type %d" msgstr "MeP: howto %d належить до типу %d" -#: elf32-mep.c:390 +#: elf32-mep.c:622 #, c-format -msgid "%B: invalid MEP reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ MEP: %d" +msgid "%pB and %pB are for different cores" +msgstr "%pB Ñ– %pB призначено Ð´Ð»Ñ Ñ€Ñ–Ð·Ð½Ð¸Ñ… Ñдер" -#: elf32-mep.c:620 +#: elf32-mep.c:641 #, c-format -msgid "%B and %B are for different cores" -msgstr "%B Ñ– %B призначено Ð´Ð»Ñ Ñ€Ñ–Ð·Ð½Ð¸Ñ… Ñдер" +msgid "%pB and %pB are for different configurations" +msgstr "%pB Ñ– %pB призначено Ð´Ð»Ñ Ñ€Ñ–Ð·Ð½Ð¸Ñ… конфігурацій" -#: elf32-mep.c:639 -#, c-format -msgid "%B and %B are for different configurations" -msgstr "%B Ñ– %B призначено Ð´Ð»Ñ Ñ€Ñ–Ð·Ð½Ð¸Ñ… конфігурацій" - -#: elf32-mep.c:677 +#: elf32-mep.c:679 #, c-format msgid "private flags = 0x%lx" msgstr "закриті прапорці = 0x%lx" -#: elf32-metag.c:893 +#: elf32-metag.c:1863 #, c-format -msgid "%B: invalid METAG reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ METAG: %d" - -#: elf32-metag.c:1875 -msgid "%B(%A): multiple TLS models are not supported" -msgstr "%B(%A): підтримки декількох моделей TLS не передбачено" - -#: elf32-metag.c:1878 -msgid "%B(%A): shared library symbol %s encountered whilst performing a static link" -msgstr "%B(%A): під Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñтатичного ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ñвлено Ñимвол бібліотеки Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ %s" +msgid "%pB(%pA): multiple TLS models are not supported" +msgstr "%pB(%pA): підтримки декількох моделей TLS не передбачено" -#: elf32-metag.c:1931 +#: elf32-metag.c:1866 #, c-format -msgid "%B(%A+0x%lx): R_METAG_TLS_LE/IENONPIC relocation not permitted in shared object" -msgstr "%B(%A+0x%lx): переÑÑƒÐ²Ð°Ð½Ð½Ñ R_METAG_TLS_LE/IENONPIC у об’єкті Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð¾" +msgid "%pB(%pA): shared library symbol %s encountered whilst performing a static link" +msgstr "%pB(%pA): під Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñтатичного ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ñвлено Ñимвол бібліотеки Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ %s" -#: elf32-microblaze.c:656 +#: elf32-microblaze.c:1544 elf32-or1k.c:1056 elf32-tilepro.c:3155 +#: elfxx-sparc.c:3540 elfxx-tilegx.c:3543 #, c-format -msgid "%B: unrecognised MicroBlaze reloc number: %d" -msgstr "%B: невідоме чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ MicroBlaze: %d" +msgid "%pB: probably compiled without -fPIC?" +msgstr "%pB: ймовірно зібрано без -fPIC?" -#: elf32-microblaze.c:1496 elf32-or1k.c:1072 elf32-tilepro.c:3317 -#: elfxx-sparc.c:3705 elfxx-tilegx.c:3726 -msgid "%B: probably compiled without -fPIC?" -msgstr "%B: ймовірно зібрано без -fPIC?" - -#: elf32-mips.c:1777 elf64-mips.c:3200 elfn32-mips.c:3010 +#: elf32-mips.c:1775 elf64-mips.c:3196 elfn32-mips.c:3012 msgid "literal relocation occurs for an external symbol" msgstr "відбуваєтьÑÑ Ð±ÑƒÐºÐ²Ð°Ð»ÑŒÐ½Ðµ переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½ÑŒÐ¾Ð³Ð¾ Ñимволу" -#: elf32-mips.c:1824 elf32-score.c:569 elf32-score7.c:469 elf64-mips.c:3243 -#: elfn32-mips.c:3051 +#: elf32-mips.c:1822 elf32-score.c:569 elf32-score7.c:469 elf64-mips.c:3239 +#: elfn32-mips.c:3053 msgid "32bits gp relative relocation occurs for an external symbol" msgstr "відбуваєтьÑÑ 32-бітове відноÑне gp-переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½ÑŒÐ¾Ð³Ð¾ Ñимволу" -#: elf32-mips.c:2225 -#, c-format -msgid "Unrecognised MIPS reloc number: %d" -msgstr "Ðевідоме чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ MIPS: %d" - -#: elf32-moxie.c:137 -#, c-format -msgid "%B: invalid Moxie reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ Moxie: %d" - -#: elf32-msp430.c:648 -#, c-format -msgid "%B: invalid MSP430X reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ MSP430X: %d" - -#: elf32-msp430.c:658 -#, c-format -msgid "%B: invalid MSP430 reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ MSP430: %d" - -#: elf32-msp430.c:836 elf32-msp430.c:1150 -msgid "Try enabling relaxation to avoid relocation truncations" -msgstr "Спробуйте увімкнути оптимізацію розміру Ð´Ð»Ñ ÑƒÐ½Ð¸ÐºÐ½ÐµÐ½Ð½Ñ Ð¾Ð±Ñ€Ñ–Ð·Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÑувань" +#: elf32-msp430.c:837 elf32-msp430.c:1151 +msgid "try enabling relaxation to avoid relocation truncations" +msgstr "Ñпробуйте увімкнути оптимізацію розміру Ð´Ð»Ñ ÑƒÐ½Ð¸ÐºÐ½ÐµÐ½Ð½Ñ Ð¾Ð±Ñ€Ñ–Ð·Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÑувань" -#: elf32-msp430.c:1357 +#: elf32-msp430.c:1358 msgid "internal error: branch/jump to an odd address detected" msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: виÑвлено Ð²Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ перехід до непарної адреÑи" -#: elf32-msp430.c:2354 +#: elf32-msp430.c:2357 #, c-format -msgid "Warning: %B: Unknown MSPABI object attribute %d" -msgstr "ПопередженнÑ: %B: невідомий атрибут об’єкта MSPABI %d" +msgid "warning: %pB: unknown MSPABI object attribute %d" +msgstr "попередженнÑ: %pB: невідомий атрибут об’єкта MSPABI %d" -#: elf32-msp430.c:2447 +#: elf32-msp430.c:2450 #, c-format -msgid "error: %B uses %s instructions but %B uses %s" -msgstr "помилка: %B викориÑтовує інÑтрукції %s, але %B викориÑтовує %s" +msgid "error: %pB uses %s instructions but %pB uses %s" +msgstr "помилка: %pB викориÑтовує інÑтрукції %s, але %pB викориÑтовує %s" -#: elf32-msp430.c:2459 +#: elf32-msp430.c:2462 #, c-format -msgid "error: %B uses the %s code model whereas %B uses the %s code model" -msgstr "помилка: %B викориÑтовує модель коду %s, тоді Ñк %B викориÑтовує модель коду %s" +msgid "error: %pB uses the %s code model whereas %pB uses the %s code model" +msgstr "помилка: %pB викориÑтовує модель коду %s, тоді Ñк %pB викориÑтовує модель коду %s" -#: elf32-msp430.c:2471 +#: elf32-msp430.c:2474 #, c-format -msgid "error: %B uses the large code model but %B uses MSP430 instructions" -msgstr "помилка: %B викориÑтовує модель великого коду, а %B викориÑтовує інÑтрукції MSP430" +msgid "error: %pB uses the large code model but %pB uses MSP430 instructions" +msgstr "помилка: %pB викориÑтовує модель великого коду, а %pB викориÑтовує інÑтрукції MSP430" -#: elf32-msp430.c:2482 +#: elf32-msp430.c:2485 #, c-format -msgid "error: %B uses the %s data model whereas %B uses the %s data model" -msgstr "помилка: %B викориÑтовує модель даних %s, тоді Ñк %B викориÑтовує модель даних %s" +msgid "error: %pB uses the %s data model whereas %pB uses the %s data model" +msgstr "помилка: %pB викориÑтовує модель даних %s, тоді Ñк %pB викориÑтовує модель даних %s" -#: elf32-msp430.c:2494 +#: elf32-msp430.c:2497 #, c-format -msgid "error: %B uses the small code model but %B uses the %s data model" -msgstr "помилка: %B викориÑтовує модель малого коду, а %B викориÑтовує модель даних %s" +msgid "error: %pB uses the small code model but %pB uses the %s data model" +msgstr "помилка: %pB викориÑтовує модель малого коду, а %pB викориÑтовує модель даних %s" -#: elf32-msp430.c:2506 +#: elf32-msp430.c:2509 #, c-format -msgid "error: %B uses the %s data model but %B only uses MSP430 instructions" -msgstr "помилка: %B викориÑтовує модель даних %s, а у %B викориÑтовуютьÑÑ Ð»Ð¸ÑˆÐµ інÑтрукції MSP430" +msgid "error: %pB uses the %s data model but %pB only uses MSP430 instructions" +msgstr "помилка: %pB викориÑтовує модель даних %s, а у %pB викориÑтовуютьÑÑ Ð»Ð¸ÑˆÐµ інÑтрукції MSP430" -#: elf32-mt.c:242 +#: elf32-nds32.c:3228 #, c-format -msgid "%B: invalid MT reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ MT: %d" +msgid "error: can't find symbol: %s" +msgstr "помилка: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñимвол: %s" -#: elf32-nds32.c:2974 +#: elf32-nds32.c:4869 #, c-format -msgid "%B: invalid NDS32 reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ NDS32: %d" - -#: elf32-nds32.c:3309 -msgid "error: Can't find symbol: _SDA_BASE_." -msgstr "помилка: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñимвол _SDA_BASE_." - -#: elf32-nds32.c:4484 elf32-nds32.c:11978 -msgid "%B: error: Cannot set _ITB_BASE_" -msgstr "%B: помилка: не вдалоÑÑ Ð²Ñтановити _ITB_BASE_" - -#: elf32-nds32.c:4492 -msgid "error: IFC relocation error." -msgstr "помилка: помилка переÑÑƒÐ²Ð°Ð½Ð½Ñ IFC." +msgid "%pB: warning: %s unsupported in shared mode" +msgstr "%pB: попередженнÑ: підтримки %s у Ñпільному режимі не передбачено" -#: elf32-nds32.c:4526 +#: elf32-nds32.c:5003 #, c-format -msgid "%B: error: unknown relocation type %d." -msgstr "%B: помилка: невідомий тип переÑÑƒÐ²Ð°Ð½Ð½Ñ %d." +msgid "%pB: warning: unaligned access to GOT entry" +msgstr "%pB: попередженнÑ: невирівнÑний доÑтуп до запиÑу GOT" -#: elf32-nds32.c:4972 -msgid "%B: warning: cannot deal R_NDS32_25_ABS_RELA in shared mode." -msgstr "%B: попередженнÑ: обробка R_NDS32_25_ABS_RELA у режимі Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð°." - -#: elf32-nds32.c:5106 -msgid "%B: warning: unaligned access to GOT entry." -msgstr "%B: попередженнÑ: невирівнÑний доÑтуп до запиÑу GOT." - -#: elf32-nds32.c:5148 -msgid "%B: warning: relocate SDA_BASE failed." -msgstr "%B: попередженнÑ: помилка переÑÑƒÐ²Ð°Ð½Ð½Ñ SDA_BASE." +#: elf32-nds32.c:5045 +#, c-format +msgid "%pB: warning: relocate SDA_BASE failed" +msgstr "%pB: попередженнÑ: помилка переÑÑƒÐ²Ð°Ð½Ð½Ñ SDA_BASE" -#: elf32-nds32.c:5170 +#: elf32-nds32.c:5067 #, c-format -msgid "%B(%A): warning: unaligned small data access of type %d." -msgstr "%B(%A): попередженнÑ: невирівнÑний доÑтуп до малих даних типу %d." +msgid "%pB(%pA): warning: unaligned small data access of type %d" +msgstr "%pB(%pA): попередженнÑ: невирівнÑний доÑтуп до малих даних типу %d" -#: elf32-nds32.c:5918 +#: elf32-nds32.c:5816 #, c-format -msgid "%B: ISR vector size mismatch with previous modules, previous %u-byte, current %u-byte" -msgstr "%B: невідповідніÑÑ‚ÑŒ розмірів векторів ISR із попередніми модулÑми, попередні Ñ” %u-байтовими, поточні Ñ” %u-байтовими" +msgid "%pB: ISR vector size mismatch with previous modules, previous %u-byte, current %u-byte" +msgstr "%pB: невідповідніÑÑ‚ÑŒ розмірів векторів ISR із попередніми модулÑми, попередні Ñ” %u-байтовими, поточні Ñ” %u-байтовими" -#: elf32-nds32.c:5962 -msgid "%B: warning: Endian mismatch with previous modules." -msgstr "%B: попередженнÑ: невідповідніÑÑ‚ÑŒ порÑдку байтів із попередніми модулÑми." +#: elf32-nds32.c:5860 +#, c-format +msgid "%pB: warning: endian mismatch with previous modules" +msgstr "%pB: попередженнÑ: невідповідніÑÑ‚ÑŒ порÑдку байтів із попередніми модулÑми" -#: elf32-nds32.c:5972 -msgid "%B: warning: Older version of object file encountered, Please recompile with current tool chain." -msgstr "%B: попередженнÑ: виÑвлено Ñтарішу верÑÑ–ÑŽ об’єктного файла. Будь лаÑка, виконайте повторне Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð· поточним набором інÑтрументів." +#: elf32-nds32.c:5870 +#, c-format +msgid "%pB: warning: older version of object file encountered, please recompile with current tool chain" +msgstr "%pB: попередженнÑ: виÑвлено Ñтарішу верÑÑ–ÑŽ об’єктного файла. Будь лаÑка, виконайте повторне Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð· поточним набором інÑтрументів." -#: elf32-nds32.c:6050 -msgid "%B: error: ABI mismatch with previous modules." -msgstr "%B: помилка: невідповідніÑÑ‚ÑŒ ABI з попередніми модулÑми." +#: elf32-nds32.c:5948 +#, c-format +msgid "%pB: error: ABI mismatch with previous modules" +msgstr "%pB: помилка: невідповідніÑÑ‚ÑŒ ABI з попередніми модулÑми" -#: elf32-nds32.c:6061 -msgid "%B: error: Instruction set mismatch with previous modules." -msgstr "%B: помилка: невідповідніÑÑ‚ÑŒ набору команду цього Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð½Ð°Ð±Ð¾Ñ€Ð°Ð¼ команд попередніх модулів." +#: elf32-nds32.c:5959 +#, c-format +msgid "%pB: error: instruction set mismatch with previous modules" +msgstr "%pB: помилка: невідповідніÑÑ‚ÑŒ набору команду цього Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð½Ð°Ð±Ð¾Ñ€Ð°Ð¼ команд попередніх модулів" -#: elf32-nds32.c:6087 +#: elf32-nds32.c:5986 #, c-format -msgid "%B: warning: Incompatible elf-versions %s and %s." -msgstr "%B: попередженнÑ: неÑуміÑні верÑÑ–Ñ— elf, %s та %s." +msgid "%pB: warning: incompatible elf-versions %s and %s" +msgstr "%pB: попередженнÑ: неÑуміÑні верÑÑ–Ñ— elf, %s та %s" -#: elf32-nds32.c:6117 +#: elf32-nds32.c:6016 #, c-format msgid ": n1 instructions" msgstr ": інÑтрукції n1" -#: elf32-nds32.c:6120 +#: elf32-nds32.c:6019 #, c-format msgid ": n1h instructions" msgstr ": інÑтрукції n1h" -#: elf32-nds32.c:8730 -msgid "%B: Error: search_nds32_elf_blank reports wrong node\n" -msgstr "%B: помилка: search_nds32_elf_blank повідомлÑÑ” про помилковий вузол\n" - -#: elf32-nds32.c:8989 +#: elf32-nds32.c:8508 #, c-format -msgid "%B: warning: %s points to unrecognized reloc at 0x%lx." -msgstr "%B: попередженнÑ: %s вказує на невідоме переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ 0x%lx." +msgid "%pB: error: search_nds32_elf_blank reports wrong node" +msgstr "%pB: помилка: search_nds32_elf_blank повідомлÑÑ” про помилковий вузол" -#: elf32-nds32.c:11850 elf32-nds32.c:11867 -msgid "error: Jump IFC Fail." -msgstr "помилка: помилка переходу IFC." - -#: elf32-nds32.c:12724 +#: elf32-nds32.c:8768 #, c-format -msgid "%B: Nested OMIT_FP in %A." -msgstr "%B: вкладене OMIT_FP у %A." +msgid "%pB: warning: %s points to unrecognized reloc at %#" +msgstr "%pB: попередженнÑ: %s вказує на невідоме переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ %#." -#: elf32-nds32.c:12743 +#: elf32-nds32.c:12339 #, c-format -msgid "%B: Unmatched OMIT_FP in %A." -msgstr "%B: OMIT_FP без відповідника у %A." +msgid "%pB: nested OMIT_FP in %pA" +msgstr "%pB: вкладене OMIT_FP у %pA." -#: elf32-nds32.c:13026 reloc.c:8231 +#: elf32-nds32.c:12358 #, c-format -msgid "%X%P: %B(%A): relocation \"%R\" goes out of range\n" -msgstr "%X%P: %B(%A): переÑÑƒÐ²Ð°Ð½Ð½Ñ Â«%R» виводить за межі припуÑтимого діапазону\n" - -#: elf32-nds32.c:14802 -msgid "Linker: cannot init ex9 hash table error \n" -msgstr "Компонувальник: не вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ ex9, помилка у таблиці хешів \n" +msgid "%pB: unmatched OMIT_FP in %pA" +msgstr "%pB: OMIT_FP без відповідника у %pA." -#: elf32-nds32.c:15211 elf32-nds32.c:15225 -msgid "Linker: error cannot fixed ex9 relocation \n" -msgstr "Компонувальник: помилка, не вдалоÑÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ñ–ÐºÑованого ex9 \n" - -#: elf32-nds32.c:15436 +#: elf32-nds32.c:12642 reloc.c:8330 #, c-format -msgid "%B: warning: unaligned small data access. For entry: {%d, %d, %d}, addr = 0x%x, align = 0x%x." -msgstr "%B: попередженнÑ: невирівнÑний доÑтуп до малих даних. ЗапиÑ: {%d, %d, %d}, адреÑа = 0x%x, Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ = 0x%x." - -#: elf32-nds32.c:15469 -msgid "%P%F: failed creating ex9.it %s hash table: %E\n" -msgstr "%P%F: не вдалоÑÑ Ñтворити таблицю хешів ex9.it %s: %E\n" +msgid "%X%P: %pB(%pA): relocation \"%pR\" goes out of range\n" +msgstr "%X%P: %pB(%pA): переÑÑƒÐ²Ð°Ð½Ð½Ñ Â«%pR» виводить за межі припуÑтимого діапазону\n" -#: elf32-nios2.c:2949 -msgid "error: %B: Big-endian R2 is not supported." -msgstr "помилка: %B: підтримки зворотного порÑдку байтів R2 не передбачено." +#: elf32-nios2.c:2930 +#, c-format +msgid "error: %pB: big-endian R2 is not supported" +msgstr "помилка: %pB: підтримки зворотного порÑдку байтів R2 не передбачено" -#: elf32-nios2.c:3830 +#: elf32-nios2.c:3822 #, c-format msgid "global pointer relative relocation at address 0x%08x when _gp not defined\n" msgstr "відноÑне переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ вказівника за адреÑою 0x%08x, втім, _gp не визначено\n" -#: elf32-nios2.c:3850 -#, c-format -msgid "Unable to reach %s (at 0x%08x) from the global pointer (at 0x%08x) because the offset (%d) is out of the allowed range, -32678 to 32767.\n" -msgstr "Ðеможливо доÑÑгти %s (за адреÑою 0x%08x) із загального вказівника (за адреÑою 0x%08x), оÑкільки Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ (%d) лежить поза межами дозволеного діапазону, від -32678 до 32767.\n" - -#: elf32-nios2.c:4372 +#: elf32-nios2.c:3842 #, c-format -msgid "%B(%A+0x%lx): R_NIOS2_TLS_LE16 relocation not permitted in shared object" -msgstr "%B(%A+0x%lx): переÑÑƒÐ²Ð°Ð½Ð½Ñ R_NIOS2_TLS_LE16 у об’єкті Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð¾" +msgid "unable to reach %s (at 0x%08x) from the global pointer (at 0x%08x) because the offset (%d) is out of the allowed range, -32678 to 32767\n" +msgstr "неможливо доÑÑгти %s (за адреÑою 0x%08x) із загального вказівника (за адреÑою 0x%08x), оÑкільки Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ (%d) лежить поза межами дозволеного діапазону, від -32678 до 32767.\n" -#: elf32-nios2.c:4500 elf32-pru.c:816 +#: elf32-nios2.c:4495 elf32-pru.c:928 msgid "relocation out of range" msgstr "переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° межі діапазону" -#: elf32-nios2.c:4510 elf32-pru.c:826 elf32-tic6x.c:2747 +#: elf32-nios2.c:4505 elf32-pru.c:938 elf32-tic6x.c:2716 msgid "dangerous relocation" msgstr "небезпечне переÑуваннÑ" -#: elf32-nios2.c:5491 +#: elf32-nios2.c:5378 #, c-format msgid "dynamic variable `%s' is zero size" msgstr "динамічна змінна «%s» має нульовий розмір" -#: elf32-or1k.c:735 +#: elf32-or1k.c:1078 #, c-format -msgid "%B: invalid OR1K reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ OR1K: %d" - -#: elf32-or1k.c:985 -msgid "internal error: addend should be zero for R_OR1K_GOT16" -msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: доданок має бути нульовим Ð´Ð»Ñ R_OR1K_GOT16" +msgid "%pB: support for local dynamic not implemented" +msgstr "%pB: підтримку Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ñ— динаміки не реалізовано" -#: elf32-or1k.c:1094 -msgid "%B: support for local dynamic not implemented" -msgstr "%B: підтримку Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ñ— динаміки не реалізовано" - -#: elf32-or1k.c:1229 -msgid "%B: will not resolve runtime TLS relocation" -msgstr "%B: не буде визначено переÑÑƒÐ²Ð°Ð½Ð½Ñ TLS у динамічному режимі" - -#: elf32-or1k.c:1599 +#: elf32-or1k.c:1213 #, c-format -msgid "%B: bad relocation section name `%s'" -msgstr "%B: помилкова назва розділу Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ Â«%s»" +msgid "%pB: will not resolve runtime TLS relocation" +msgstr "%pB: не буде визначено переÑÑƒÐ²Ð°Ð½Ð½Ñ TLS у динамічному режимі" -#: elf32-or1k.c:2704 -msgid "%B: EF_OR1K_NODELAY flag mismatch with previous modules" -msgstr "%B: невідповідніÑÑ‚ÑŒ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ EF_OR1K_NODELAY попереднім модулÑм" - -#: elf32-pj.c:325 +#: elf32-or1k.c:1533 #, c-format -msgid "%B: unrecognised PicoJava reloc number: %d" -msgstr "%B: невідоме чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ PicoJava: %d" +msgid "%pB: bad relocation section name `%s'" +msgstr "%pB: помилкова назва розділу Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ Â«%s»" -#: elf32-ppc.c:2062 +#: elf32-or1k.c:2645 #, c-format -msgid "%B: unrecognised PPC reloc number: %d" -msgstr "%B: невідоме чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ PPC: %d" +msgid "%pB: %s flag mismatch with previous modules" +msgstr "%pB: невідповідніÑÑ‚ÑŒ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ %s попереднім модулÑм" -#: elf32-ppc.c:2147 +#: elf32-ppc.c:2149 #, c-format msgid "generic linker can't handle %s" msgstr "типовий компонувальник не може оброблÑти %s" -#: elf32-ppc.c:2781 +#: elf32-ppc.c:2778 #, c-format -msgid "corrupt %s section in %B" -msgstr "пошкоджений розділ %s у %B" +msgid "corrupt %s section in %pB" +msgstr "пошкоджений розділ %s у %pB" -#: elf32-ppc.c:2801 +#: elf32-ppc.c:2798 #, c-format -msgid "unable to read in %s section from %B" -msgstr "Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñƒ розділі %s неможливе з %B" +msgid "unable to read in %s section from %pB" +msgstr "Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñƒ розділі %s неможливе з %pB" -#: elf32-ppc.c:2843 +#: elf32-ppc.c:2840 #, c-format -msgid "warning: unable to set size of %s section in %B" -msgstr "попередженнÑ: не вдалоÑÑ Ð²Ñтановити Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ розділу %s Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %B" +msgid "warning: unable to set size of %s section in %pB" +msgstr "попередженнÑ: не вдалоÑÑ Ð²Ñтановити Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ розділу %s Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %pB" -#: elf32-ppc.c:2893 -msgid "failed to allocate space for new APUinfo section." -msgstr "не вдалоÑÑ Ñ€Ð¾Ð·Ð¼Ñ–Ñтити новий розділ APUinfo." +#: elf32-ppc.c:2890 +msgid "failed to allocate space for new APUinfo section" +msgstr "не вдалоÑÑ Ñ€Ð¾Ð·Ð¼Ñ–Ñтити новий розділ APUinfo" -#: elf32-ppc.c:2912 -msgid "failed to compute new APUinfo section." -msgstr "не вдалоÑÑ Ð¾Ð±Ñ‡Ð¸Ñлити новий розділ APUinfo." +#: elf32-ppc.c:2909 +msgid "failed to compute new APUinfo section" +msgstr "не вдалоÑÑ Ð¾Ð±Ñ‡Ð¸Ñлити новий розділ APUinfo" -#: elf32-ppc.c:2915 -msgid "failed to install new APUinfo section." -msgstr "не вдалоÑÑ Ð²Ñтановити новий розділ APUinfo." +#: elf32-ppc.c:2912 +msgid "failed to install new APUinfo section" +msgstr "не вдалоÑÑ Ð²Ñтановити новий розділ APUinfo" -#: elf32-ppc.c:3975 +#: elf32-ppc.c:4014 #, c-format -msgid "%B: relocation %s cannot be used when making a shared object" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s не можна викориÑтовувати під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñпільного викориÑтаннÑ" +msgid "%pB: relocation %s cannot be used when making a shared object" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s не можна викориÑтовувати під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñпільного викориÑтаннÑ" -#: elf32-ppc.c:4329 elf64-ppc.c:5591 +#: elf32-ppc.c:4744 elf32-ppc.c:4748 #, c-format -msgid "%H: %s reloc against local symbol\n" -msgstr "%H: %s переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° локальним Ñимволом\n" +msgid "warning: %pB uses hard float, %pB uses soft float" +msgstr "попередженнÑ: у %pB викориÑтовуєтьÑÑ Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° підтримка дійÑних чиÑел, а у %pB — програмна" -#: elf32-ppc.c:4691 elf32-ppc.c:4695 +#: elf32-ppc.c:4752 elf32-ppc.c:4757 #, c-format -msgid "Warning: %B uses hard float, %B uses soft float" -msgstr "ПопередженнÑ: у %B викориÑтовуєтьÑÑ Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° підтримка дійÑних чиÑел, а у %B — програмна" +msgid "warning: %pB uses double-precision hard float, %pB uses single-precision hard float" +msgstr "попередженнÑ: у %pB викориÑтовуєтьÑÑ Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° підтримка дійÑних чиÑел з подвійною точніÑÑ‚ÑŽ, а у %pB — апаратна підтримка Ð´Ð»Ñ Ð´Ñ–Ð¹Ñних чиÑел з одинарною точніÑÑ‚ÑŽ" -#: elf32-ppc.c:4699 elf32-ppc.c:4704 +#: elf32-ppc.c:4772 elf32-ppc.c:4777 #, c-format -msgid "Warning: %B uses double-precision hard float, %B uses single-precision hard float" -msgstr "ПопередженнÑ: у %B викориÑтовуєтьÑÑ Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° підтримка дійÑних чиÑел з подвійною точніÑÑ‚ÑŽ, а у %B — апаратна підтримка Ð´Ð»Ñ Ð´Ñ–Ð¹Ñних чиÑел з одинарною точніÑÑ‚ÑŽ" +msgid "warning: %pB uses 64-bit long double, %pB uses 128-bit long double" +msgstr "попередженнÑ: у %pB викориÑтано 64-бітові довгі цілі Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ–Ð· подвійною точніÑÑ‚ÑŽ, а у %pB — 128-бітові" -#: elf32-ppc.c:4719 elf32-ppc.c:4724 +#: elf32-ppc.c:4782 elf32-ppc.c:4787 #, c-format -msgid "Warning: %B uses 64-bit long double, %B uses 128-bit long double" -msgstr "ПопередженнÑ: у %B викориÑтано 64-бітові довгі цілі Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ–Ð· подвійною точніÑÑ‚ÑŽ, а у %B — 128-бітові" +msgid "warning: %pB uses IBM long double, %pB uses IEEE long double" +msgstr "попередженнÑ: у %pB викориÑтано довгі цілі Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ–Ð· подвійною точніÑÑ‚ÑŽ IBM, а у %pB — IEEE" -#: elf32-ppc.c:4729 elf32-ppc.c:4734 +#: elf32-ppc.c:4838 elf32-ppc.c:4843 #, c-format -msgid "Warning: %B uses IBM long double, %B uses IEEE long double" -msgstr "ПопередженнÑ: у %B викориÑтано довгі цілі Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ–Ð· подвійною точніÑÑ‚ÑŽ IBM, а у %B — IEEE" +msgid "warning: %pB uses AltiVec vector ABI, %pB uses SPE vector ABI" +msgstr "попередженнÑ: %pB викориÑтовує векторний ABI AltiVec, %pB викориÑтовує векторний ABI SPE" -#: elf32-ppc.c:4785 elf32-ppc.c:4790 +#: elf32-ppc.c:4866 elf32-ppc.c:4871 #, c-format -msgid "Warning: %B uses AltiVec vector ABI, %B uses SPE vector ABI" -msgstr "ПопередженнÑ: %B викориÑтовує векторний ABI AltiVec, %B викориÑтовує векторний ABI SPE" +msgid "warning: %pB uses r3/r4 for small structure returns, %pB uses memory" +msgstr "попередженнÑ: у %pB r3/r4 викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð¼Ð°Ð»Ð¸Ñ… Ñтруктур, а у %pB Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ викориÑтовуєтьÑÑ Ð¿Ð°Ð¼â€™ÑÑ‚ÑŒ" -#: elf32-ppc.c:4813 elf32-ppc.c:4818 +#: elf32-ppc.c:4926 #, c-format -msgid "Warning: %B uses r3/r4 for small structure returns, %B uses memory" -msgstr "ПопередженнÑ: у %B r3/r4 викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð¼Ð°Ð»Ð¸Ñ… Ñтруктур, а у %B Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ викориÑтовуєтьÑÑ Ð¿Ð°Ð¼â€™ÑÑ‚ÑŒ" - -#: elf32-ppc.c:4873 -msgid "%B: compiled with -mrelocatable and linked with modules compiled normally" -msgstr "%B: зібрано з -mrelocatable Ñ– Ñкомпоновано з модулÑми, зібраними у звичайному режимі" +msgid "%pB: compiled with -mrelocatable and linked with modules compiled normally" +msgstr "%pB: зібрано з -mrelocatable Ñ– Ñкомпоновано з модулÑми, зібраними у звичайному режимі" -#: elf32-ppc.c:4881 -msgid "%B: compiled normally and linked with modules compiled with -mrelocatable" -msgstr "%B: зібрано у звичайному режимі Ñ– Ñкомпоновано з модулÑми, зібраними з -mrelocatable" - -#: elf32-ppc.c:4909 +#: elf32-ppc.c:4934 #, c-format -msgid "%B: uses different e_flags (%#x) fields than previous modules (%#x)" -msgstr "%B: викориÑтовуютьÑÑ Ñ–Ð½ÑˆÑ– Ð¿Ð¾Ð»Ñ e_flags (%#x) ніж у попередніх модулÑÑ… (%#x)" +msgid "%pB: compiled normally and linked with modules compiled with -mrelocatable" +msgstr "%pB: зібрано у звичайному режимі Ñ– Ñкомпоновано з модулÑми, зібраними з -mrelocatable" -#: elf32-ppc.c:4950 +#: elf32-ppc.c:5003 #, c-format -msgid "%B(%A+0x%lx): expected 16A style relocation on 0x%08x insn" -msgstr "%B(%A+0x%lx): очікувалоÑÑ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ Ñтилю 16A на інÑтрукції 0x%08x" +msgid "%pB(%pA+0x%lx): expected 16A style relocation on 0x%08x insn" +msgstr "%pB(%pA+0x%lx): очікувалоÑÑ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ Ñтилю 16A на інÑтрукції 0x%08x" -#: elf32-ppc.c:4969 +#: elf32-ppc.c:5022 #, c-format -msgid "%B(%A+0x%lx): expected 16D style relocation on 0x%08x insn" -msgstr "%B(%A+0x%lx): очікувалоÑÑ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ Ñтилю 16D на інÑтрукції 0x%08x" +msgid "%pB(%pA+0x%lx): expected 16D style relocation on 0x%08x insn" +msgstr "%pB(%pA+0x%lx): очікувалоÑÑ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ Ñтилю 16D на інÑтрукції 0x%08x" -#: elf32-ppc.c:5043 -msgid "%P: bss-plt forced due to %B\n" -msgstr "%P: примуÑово викориÑтано bss-plt через %B\n" +#: elf32-ppc.c:5113 +#, c-format +msgid "bss-plt forced due to %pB" +msgstr "примуÑово викориÑтано bss-plt через %pB" -#: elf32-ppc.c:5046 -msgid "%P: bss-plt forced by profiling\n" -msgstr "%P: профілюваннÑм примуÑово визначено bss-plt\n" +#: elf32-ppc.c:5115 +msgid "bss-plt forced by profiling" +msgstr "профілюваннÑм примуÑово визначено bss-plt" #. Uh oh, we didn't find the expected call. We #. could just mark this symbol to exclude it #. from tls optimization but it's safer to skip #. the entire optimization. -#: elf32-ppc.c:5544 elf64-ppc.c:8798 +#: elf32-ppc.c:5691 elf64-ppc.c:8963 #, c-format msgid "%H arg lost __tls_get_addr, TLS optimization disabled\n" msgstr "%H: у аргументів не виÑтачає __tls_get_addr, оптимізацію TLS вимкнено.\n" -#: elf32-ppc.c:8249 +#: elf32-ppc.c:6662 elf32-sh.c:3078 elf32-tilepro.c:2339 elfxx-sparc.c:2536 +#: elfxx-tilegx.c:2579 +#, c-format +msgid "%pB: dynamic relocation in read-only section `%pA'\n" +msgstr "%pB: динамічне переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ розділі «%pA», призначеному лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ\n" + +#: elf32-ppc.c:8515 +msgid "%P: %H: error: %s with unexpected instruction %x\n" +msgstr "%P: %H: помилка: %s із неочікуваною інÑтрукцією %x\n" + +#: elf32-ppc.c:8552 msgid "%H: fixup branch overflow\n" msgstr "%H: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ Ñ–Ð· адреÑною прив’Ñзкою\n" -#: elf32-ppc.c:8289 elf32-ppc.c:8324 +#: elf32-ppc.c:8592 elf32-ppc.c:8628 #, c-format -msgid "%H: error: %s with unexpected instruction %x\n" -msgstr "%H: помилка: %s із неочікуваною інÑтрукцією %x\n" +msgid "%pB(%pA+%#): error: %s with unexpected instruction %#x" +msgstr "%pB(%pA+%#): помилка: %s із неочікуваною інÑтрукцією %#x" -#: elf32-ppc.c:8380 +#: elf32-ppc.c:8692 #, c-format msgid "%X%H: unsupported bss-plt -fPIC ifunc %s\n" msgstr "%X%H: непідтримувана bss-plt -fPIC ifunc %s\n" -#: elf32-ppc.c:8434 -#, c-format -msgid "%P: %B: unknown relocation type %d for symbol %s\n" -msgstr "%P: %B: невідомий тип переÑÑƒÐ²Ð°Ð½Ð½Ñ %d Ð´Ð»Ñ Ñимволу %s\n" +#: elf32-ppc.c:8731 elf64-ppc.c:15738 +msgid "%H: warning: %s unexpected insn %#x.\n" +msgstr "%H: попередженнÑ: %s, неочікувана інÑÑ‚Ñ€ÑƒÐºÑ†Ñ–Ñ %#x.\n" -#: elf32-ppc.c:8723 +#: elf32-ppc.c:9043 #, c-format msgid "%H: non-zero addend on %s reloc against `%s'\n" msgstr "%H: ненульовий додаток до переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо «%s»\n" @@ -3203,469 +2894,401 @@ #. local won't have the +32k reloc addend trick marking #. -fPIC code, so the linker won't know whether r30 is #. _GLOBAL_OFFSET_TABLE_ or pointing into a .got2 section. -#: elf32-ppc.c:8755 +#: elf32-ppc.c:9075 #, c-format msgid "%X%H: @local call to ifunc %s\n" msgstr "%X%H: виклик @local ifunc %s\n" -#: elf32-ppc.c:8935 +#: elf32-ppc.c:9245 #, c-format msgid "%H: relocation %s for indirect function %s unsupported\n" msgstr "%H: підтримки переÑÑƒÐ²Ð°Ð½Ð½Ñ %s опоÑередкованої функції %s не передбачено\n" -#: elf32-ppc.c:9232 elf32-ppc.c:9263 elf32-ppc.c:9354 +#: elf32-ppc.c:9573 elf32-ppc.c:9604 elf32-ppc.c:9695 elf32-ppc.c:9783 #, c-format -msgid "%P: %B: the target (%s) of a %s relocation is in the wrong output section (%s)\n" -msgstr "%P: %B: Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ (%s) переÑÑƒÐ²Ð°Ð½Ð½Ñ %s перебуває у помилковому розділі Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ (%s)\n" +msgid "%pB: the target (%s) of a %s relocation is in the wrong output section (%s)" +msgstr "%pB: Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ (%s) переÑÑƒÐ²Ð°Ð½Ð½Ñ %s перебуває у помилковому розділі Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ (%s)" -#: elf32-ppc.c:9442 -#, c-format -msgid "%B: the target (%s) of a %s relocation is in the wrong output section (%s)" -msgstr "%B: Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ (%s) переÑÑƒÐ²Ð°Ð½Ð½Ñ %s перебуває у помилковому розділі Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ (%s)" - -#: elf32-ppc.c:9546 -#, c-format -msgid "%P: %B: relocation %s is not yet supported for symbol %s\n" -msgstr "%P: %B: підтримки переÑÑƒÐ²Ð°Ð½Ð½Ñ %s Ð´Ð»Ñ Ñимволу %s ще не передбачено\n" +#: elf32-ppc.c:9913 elf32-ppc.c:9931 +msgid "%P: %H: %s relocation unsupported for bss-plt\n" +msgstr "%P: %H: підтримки переÑÑƒÐ²Ð°Ð½Ð½Ñ %s Ð´Ð»Ñ bss-plt не передбачено\n" -#: elf32-ppc.c:9631 +#: elf32-ppc.c:10012 #, c-format msgid "%H: error: %s against `%s' not a multiple of %u\n" msgstr "%H: помилка: %s Ð´Ð»Ñ Â«%s» не Ñ” кратним до %u\n" -#: elf32-ppc.c:9660 +#: elf32-ppc.c:10041 #, c-format msgid "%H: unresolvable %s relocation against symbol `%s'\n" msgstr "%H: нерозв’Ñзне переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо Ñимволу «%s»\n" -#: elf32-ppc.c:9741 +#: elf32-ppc.c:10122 #, c-format msgid "%H: %s reloc against `%s': error %d\n" msgstr "%H: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо «%s»: помилка %d\n" -#: elf32-ppc.c:10505 elf64-ppc.c:15719 +#: elf32-ppc.c:11017 elf64-ppc.c:16230 msgid "%X%P: text relocations and GNU indirect functions will result in a segfault at runtime\n" msgstr "%X%P: Ð¿Ð¾Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÐºÑту Ñ– опоÑередкованих функцій GNU призведе до помилки Ñегментації під Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑку\n" -#: elf32-ppc.c:10509 elf64-ppc.c:15723 +#: elf32-ppc.c:11021 elf64-ppc.c:16234 msgid "%P: warning: text relocations and GNU indirect functions may result in a segfault at runtime\n" msgstr "%P: попередженнÑ: Ð¿Ð¾Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÐºÑту Ñ– опоÑередкованих функцій GNU може призвеÑти до помилки Ñегментації під Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑку\n" -#: elf32-ppc.c:10554 +#: elf32-ppc.c:11066 #, c-format -msgid "%P: %s not defined in linker created %s\n" -msgstr "%P: %s не визначено у компонувальнику, Ñтвореному %s\n" +msgid "%s not defined in linker created %pA" +msgstr "%s не визначено у компонувальнику, Ñтвореному %pA" -#: elf32-rl78.c:291 +#: elf32-pru.c:579 elf32-pru.c:1472 #, c-format -msgid "%B: invalid RL78 reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ RL78: %d" +msgid "error: %pB: old incompatible object file detected" +msgstr "помилка: %pB: виÑвлено заÑтарілий неÑуміÑний об'єктний файл" -#: elf32-rl78.c:369 -msgid "Internal Error: RL78 reloc stack overflow" -msgstr "Ð’Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñтека переÑувань RL78" +#: elf32-rl78.c:373 +msgid "internal error: RL78 reloc stack overflow" +msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñтека переÑувань RL78" -#: elf32-rl78.c:380 -msgid "Internal Error: RL78 reloc stack underflow" -msgstr "Ð’Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð²Ð¸Ñ‡ÐµÑ€Ð¿Ð°Ð½Ð½Ñ Ñтека переÑувань RL78" +#: elf32-rl78.c:384 +msgid "internal error: RL78 reloc stack underflow" +msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð²Ð¸Ñ‡ÐµÑ€Ð¿Ð°Ð½Ð½Ñ Ñтека переÑувань RL78" -#: elf32-rl78.c:1049 -msgid "Warning: RL78_SYM reloc with an unknown symbol" -msgstr "ПопередженнÑ: переÑÑƒÐ²Ð°Ð½Ð½Ñ RL78_SYM з невідомим Ñимволом" +#: elf32-rl78.c:1054 +msgid "warning: RL78_SYM reloc with an unknown symbol" +msgstr "попередженнÑ: переÑÑƒÐ²Ð°Ð½Ð½Ñ RL78_SYM з невідомим Ñимволом" -#: elf32-rl78.c:1080 elf32-rx.c:1434 +#: elf32-rl78.c:1085 elf32-rx.c:1457 #, c-format -msgid "%B(%A): error: call to undefined function '%s'" -msgstr "%B(%A): помилка: виклик невизначеної функції «%s»" +msgid "%pB(%pA): error: call to undefined function '%s'" +msgstr "%pB(%pA): помилка: виклик невизначеної функції «%s»" -#: elf32-rl78.c:1201 +#: elf32-rl78.c:1206 #, c-format -msgid "RL78 ABI conflict: G10 file %B cannot be linked with %s file %B" -msgstr "Конфлікт ABI RL78: файл G10 %B не можна компонувати з %s, файл %B" +msgid "RL78 ABI conflict: G10 file %pB cannot be linked with %s file %pB" +msgstr "Конфлікт ABI RL78: файл G10 %pB не можна компонувати з %s, файл %pB" -#: elf32-rl78.c:1218 +#: elf32-rl78.c:1223 #, c-format -msgid "RL78 ABI conflict: cannot link %s file %B with %s file %B" -msgstr "Конфлікт ABI RL78: не можна компонувати %s, файл %B з %s, файл %B" +msgid "RL78 ABI conflict: cannot link %s file %pB with %s file %pB" +msgstr "Конфлікт ABI RL78: не можна компонувати %s, файл %pB з %s, файл %pB" -#: elf32-rl78.c:1227 +#: elf32-rl78.c:1232 msgid "RL78 merge conflict: cannot link 32-bit and 64-bit objects together" msgstr "Конфлікт Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ RL78: не можна компонувати 32-бітові Ñ– 64-бітові об’єкти" -#: elf32-rl78.c:1231 elf32-rl78.c:1235 +#: elf32-rl78.c:1236 elf32-rl78.c:1240 #, c-format -msgid "- %B is 64-bit, %B is not" -msgstr "- %B Ñ” 64-бітовим, а %B — ні" +msgid "- %pB is 64-bit, %pB is not" +msgstr "- %pB Ñ” 64-бітовим, а %pB — ні" -#: elf32-rl78.c:1262 +#: elf32-rl78.c:1267 #, c-format msgid " [64-bit doubles]" msgstr " [64-бітові double]" -#: elf32-rx.c:313 -#, c-format -msgid "%B: invalid RX reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ RX: %d" - -#: elf32-rx.c:594 +#: elf32-rx.c:606 #, c-format -msgid "%B:%A: table entry %s outside table" -msgstr "%B:%A: Ð·Ð°Ð¿Ð¸Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– %s поза таблицею" +msgid "%pB:%pA: table entry %s outside table" +msgstr "%pB:%pA: Ð·Ð°Ð¿Ð¸Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– %s поза таблицею" -#: elf32-rx.c:601 +#: elf32-rx.c:613 #, c-format -msgid "%B:%A: table entry %s not word-aligned within table" -msgstr "%B:%A: Ð·Ð°Ð¿Ð¸Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– %s не вирівнÑно на межу Ñлова вÑередині таблиці" +msgid "%pB:%pA: table entry %s not word-aligned within table" +msgstr "%pB:%pA: Ð·Ð°Ð¿Ð¸Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– %s не вирівнÑно на межу Ñлова вÑередині таблиці" -#: elf32-rx.c:667 +#: elf32-rx.c:685 #, c-format -msgid "%B:%A: Warning: deprecated Red Hat reloc " -msgstr "%B:%A: попередженнÑ: заÑтарілий формат переÑÑƒÐ²Ð°Ð½Ð½Ñ Red Hat " +msgid "%pB:%pA: warning: deprecated Red Hat reloc %s detected against: %s" +msgstr "%pB:%pA: попередженнÑ: заÑтарілий формат переÑÑƒÐ²Ð°Ð½Ð½Ñ Red Hat %s, виÑвлено Ð´Ð»Ñ %s" #. Check for unsafe relocs in PID mode. These are any relocs where #. an absolute address is being computed. There are special cases #. for relocs against symbols that are known to be referenced in #. crt0.o before the PID base address register has been initialised. -#: elf32-rx.c:686 +#: elf32-rx.c:705 #, c-format -msgid "%B(%A): unsafe PID relocation %s at 0x%08lx (against %s in %s)" -msgstr "%B(%A): небезпечне Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ PID %s до 0x%08lx (щодо %s у %s)" +msgid "%pB(%pA): unsafe PID relocation %s at %# (against %s in %s)" +msgstr "%pB(%pA): небезпечне переÑÑƒÐ²Ð°Ð½Ð½Ñ PID %s до %# (щодо %s у %s)" -#: elf32-rx.c:1266 -msgid "Warning: RX_SYM reloc with an unknown symbol" -msgstr "ПопередженнÑ: переÑÑƒÐ²Ð°Ð½Ð½Ñ RX_SYM з невідомим Ñимволом" +#: elf32-rx.c:1289 +msgid "warning: RX_SYM reloc with an unknown symbol" +msgstr "попередженнÑ: переÑÑƒÐ²Ð°Ð½Ð½Ñ RX_SYM з невідомим Ñимволом" -#: elf32-rx.c:3145 -msgid "There is a conflict merging the ELF header flags from %B" -msgstr "Під Ñ‡Ð°Ñ Ñпроби Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–Ð² заголовка ELF з %B виник конфлікт" +#: elf32-rx.c:3168 +#, c-format +msgid "there is a conflict merging the ELF header flags from %pB" +msgstr "під Ñ‡Ð°Ñ Ñпроби Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–Ð² заголовка ELF з %pB виник конфлікт" -#: elf32-rx.c:3148 +#: elf32-rx.c:3171 #, c-format msgid " the input file's flags: %s" msgstr " прапорці файла вхідних даних: %s" -#: elf32-rx.c:3150 +#: elf32-rx.c:3173 #, c-format msgid " the output file's flags: %s" msgstr " прапорці файла результатів: %s" -#: elf32-rx.c:3757 +#: elf32-rx.c:3780 #, c-format -msgid "%B:%A: table %s missing corresponding %s" -msgstr "%B:%A: у таблиці %s немає відповідного %s" +msgid "%pB:%pA: table %s missing corresponding %s" +msgstr "%pB:%pA: у таблиці %s немає відповідного %s" -#: elf32-rx.c:3765 +#: elf32-rx.c:3788 #, c-format -msgid "%B:%A: %s and %s must be in the same input section" -msgstr "%B:%A: %s Ñ– %s мають перебувати у одному розділі вхідних даних" +msgid "%pB:%pA: %s and %s must be in the same input section" +msgstr "%pB:%pA: %s Ñ– %s мають перебувати у одному розділі вхідних даних" -#: elf32-s390.c:2310 elf64-s390.c:2257 +#: elf32-s390.c:2141 elf64-s390.c:2082 #, c-format -msgid "%B(%A+0x%lx): invalid instruction for TLS relocation %s" -msgstr "%B(%A+0x%lx): некоректна інÑÑ‚Ñ€ÑƒÐºÑ†Ñ–Ñ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ TLS %s" +msgid "%pB(%pA+%#): invalid instruction for TLS relocation %s" +msgstr "%pB(%pA+%#): некоректна інÑÑ‚Ñ€ÑƒÐºÑ†Ñ–Ñ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ TLS %s" -#: elf32-score.c:1521 elf32-score7.c:1382 elfxx-mips.c:3756 +#: elf32-score.c:1521 elf32-score7.c:1382 elfxx-mips.c:3750 msgid "not enough GOT space for local GOT entries" msgstr "недоÑтатньо проÑтору GOT Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ñ… запиÑів GOT" -#: elf32-score.c:2744 -msgid "address not word align" +#: elf32-score.c:2746 +msgid "address not word aligned" msgstr "адреÑу не вирівнÑно за межею Ñлова" -#: elf32-score.c:2825 elf32-score7.c:2630 +#: elf32-score.c:2827 elf32-score7.c:2632 #, c-format -msgid "%B: Malformed reloc detected for section %A" -msgstr "%B: Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %A виÑвлено помилку у форматуванні перенеÑеннÑ" +msgid "%pB: malformed reloc detected for section %pA" +msgstr "%pB: Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %pA виÑвлено помилку у форматуванні перенеÑеннÑ" -#: elf32-score.c:2883 elf32-score7.c:2688 +#: elf32-score.c:2881 elf32-score7.c:2686 #, c-format -msgid "%B: CALL15 reloc at 0x%lx not against global symbol" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ CALL15 у 0x%lx не відноÑно загального Ñимволу" +msgid "%pB: CALL15 reloc at %# not against global symbol" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ CALL15 у %# не відноÑно загального Ñимволу" -#: elf32-score.c:4005 elf32-score7.c:3810 +#: elf32-score.c:4003 elf32-score7.c:3808 #, c-format msgid " [pic]" msgstr " [pic]" -#: elf32-score.c:4009 elf32-score7.c:3814 +#: elf32-score.c:4007 elf32-score7.c:3812 #, c-format msgid " [fix dep]" msgstr " [фікÑ. розт.]" -#: elf32-score.c:4052 elf32-score7.c:3857 -msgid "%B: warning: linking PIC files with non-PIC files" -msgstr "%B: попередженнÑ: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² PIC з файлами, Ñкі не Ñ” файлами PIC" - -#: elf32-sh-symbian.c:130 -#, c-format -msgid "%B: IMPORT AS directive for %s conceals previous IMPORT AS" -msgstr "%B: директива IMPORT AS Ð´Ð»Ñ %s приховує попередню директиву IMPORT AS" - -#: elf32-sh-symbian.c:384 -#, c-format -msgid "%B: Unrecognised .directive command: %s" -msgstr "%B: нерозпізнана команда .directive: %s" - -#: elf32-sh-symbian.c:502 +#: elf32-score.c:4050 elf32-score7.c:3855 #, c-format -msgid "%B: Failed to add renamed symbol %s" -msgstr "%B: не вдалоÑÑ Ð´Ð¾Ð´Ð°Ñ‚Ð¸ перейменований Ñимвол %s" +msgid "%pB: warning: linking PIC files with non-PIC files" +msgstr "%pB: попередженнÑ: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² PIC з файлами, Ñкі не Ñ” файлами PIC" -#: elf32-sh.c:491 +#: elf32-sh.c:533 #, c-format -msgid "%B: unrecognised SH reloc number: %d" -msgstr "%B: невідоме чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ SH: %d" +msgid "%pB: %#: warning: R_SH_USES points to unrecognized insn 0x%x" +msgstr "%pB: %#: попередженнÑ: R_SH_USES вказує на нерозпізнану інÑтрукцію 0x%x" -#: elf32-sh.c:3953 elf64-sh64.c:1508 -msgid "Unexpected STO_SH5_ISA32 on local symbol is not handled" -msgstr "Ðеочікувану команду STO_SH5_ISA32 над локальним Ñимволом не оброблено" +#: elf32-sh.c:3629 +msgid "unexpected STO_SH5_ISA32 on local symbol is not handled" +msgstr "неочікувану команду STO_SH5_ISA32 над локальним Ñимволом не оброблено" -#: elf32-sh.c:4206 +#: elf32-sh.c:3876 #, c-format -msgid "%B: 0x%lx: fatal: unaligned branch target for relax-support relocation" -msgstr "%B: 0x%lx: критична помилка: невирівнÑне розгалужене Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ Ð· підтримкою оптимізації розміру" +msgid "%pB: %#: fatal: unaligned branch target for relax-support relocation" +msgstr "%pB: %#: критична помилка: невирівнÑне розгалужене Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ Ð· підтримкою оптимізації розміру" -#: elf32-sh.c:4240 elf32-sh.c:4256 +#: elf32-sh.c:3906 elf32-sh.c:3922 #, c-format -msgid "%B: 0x%lx: fatal: unaligned %s relocation 0x%lx" -msgstr "%B: 0x%lx: критична помилка: невирівнÑне переÑÑƒÐ²Ð°Ð½Ð½Ñ %s, 0x%lx" +msgid "%pB: %#: fatal: unaligned %s relocation %#" +msgstr "%pB: %#: критична помилка: невирівнÑне переÑÑƒÐ²Ð°Ð½Ð½Ñ %s, %#" -#: elf32-sh.c:4271 +#: elf32-sh.c:3938 #, c-format -msgid "%B: 0x%lx: fatal: R_SH_PSHA relocation %d not in range -32..32" -msgstr "%B: 0x%lx: критична помилка: переÑÑƒÐ²Ð°Ð½Ð½Ñ R_SH_PSHA %d не у діапазоні -32..32" +msgid "%pB: %#: fatal: R_SH_PSHA relocation % not in range -32..32" +msgstr "%pB: %#: критична помилка: переÑÑƒÐ²Ð°Ð½Ð½Ñ R_SH_PSHA % не у діапазоні -32..32" -#: elf32-sh.c:4286 +#: elf32-sh.c:3954 #, c-format -msgid "%B: 0x%lx: fatal: R_SH_PSHL relocation %d not in range -32..32" -msgstr "%B: 0x%lx: критична помилка: переÑÑƒÐ²Ð°Ð½Ð½Ñ R_SH_PSHL %d не у діапазоні -32..32" +msgid "%pB: %#: fatal: R_SH_PSHL relocation % not in range -32..32" +msgstr "%pB: %#: критична помилка: переÑÑƒÐ²Ð°Ð½Ð½Ñ R_SH_PSHL % не у діапазоні -32..32" -#: elf32-sh.c:4431 elf32-sh.c:4903 +#: elf32-sh.c:4084 elf32-sh.c:4479 #, c-format -msgid "%B(%A+0x%lx): cannot emit fixup to `%s' in read-only section" -msgstr "%B(%A+0x%lx): не можна викориÑтовувати адреÑну прив’Ñзку до «%s» у розділі, придатному лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ" +msgid "%pB(%pA+%#): cannot emit fixup to `%s' in read-only section" +msgstr "%pB(%pA+%#): не можна викориÑтовувати адреÑну прив’Ñзку до «%s» у розділі, придатному лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ" -#: elf32-sh.c:5005 +#: elf32-sh.c:4582 #, c-format -msgid "%B(%A+0x%lx): %s relocation against external symbol \"%s\"" -msgstr "%B(%A+0x%lx): переÑÑƒÐ²Ð°Ð½Ð½Ñ %s за зовнішнім Ñимволом «%s»" +msgid "%pB(%pA+%#): %s relocation against external symbol \"%s\"" +msgstr "%pB(%pA+%#): переÑÑƒÐ²Ð°Ð½Ð½Ñ %s за зовнішнім Ñимволом «%s»" -#: elf32-sh.c:5469 +#: elf32-sh.c:5047 #, c-format msgid "%X%C: relocation to \"%s\" references a different segment\n" msgstr "%X%C: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° «%s» поÑилаєтьÑÑ Ð½Ð° інший Ñегмент\n" -#: elf32-sh.c:5476 +#: elf32-sh.c:5054 #, c-format msgid "%C: warning: relocation to \"%s\" references a different segment\n" msgstr "%C: попередженнÑ: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° «%s» поÑилаєтьÑÑ Ð½Ð° інший Ñегмент\n" -#: elf32-sh.c:6045 elf32-sh.c:6131 +#: elf32-sh.c:5559 elf32-sh.c:5641 #, c-format -msgid "%B: `%s' accessed both as normal and FDPIC symbol" -msgstr "%B: доÑтуп до «%s» виконуєтьÑÑ Ñк до звичайного Ñимволу та Ñимволу FDPIC" +msgid "%pB: `%s' accessed both as normal and FDPIC symbol" +msgstr "%pB: доÑтуп до «%s» виконуєтьÑÑ Ñк до звичайного Ñимволу та Ñимволу FDPIC" -#: elf32-sh.c:6051 elf32-sh.c:6136 +#: elf32-sh.c:5565 elf32-sh.c:5646 #, c-format -msgid "%B: `%s' accessed both as FDPIC and thread local symbol" -msgstr "%B: доÑтуп до «%s» виконуєтьÑÑ Ñк до Ñимволу FDPIC, так Ñ– до локального Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñимволу" +msgid "%pB: `%s' accessed both as FDPIC and thread local symbol" +msgstr "%pB: доÑтуп до «%s» виконуєтьÑÑ Ñк до Ñимволу FDPIC, так Ñ– до локального Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñимволу" -#: elf32-sh.c:6082 -msgid "%B: Function descriptor relocation with non-zero addend" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´ÐµÑкриптора функції з ненульовим доданком" +#: elf32-sh.c:5596 +#, c-format +msgid "%pB: Function descriptor relocation with non-zero addend" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´ÐµÑкриптора функції з ненульовим доданком" -#: elf32-sh.c:6320 elf64-alpha.c:4757 +#: elf32-sh.c:5803 elf64-alpha.c:4691 #, c-format -msgid "%B: TLS local exec code cannot be linked into shared objects" -msgstr "%B: виконуваний код локального TLS не можна компонувати у об’єкти Ñпільного викориÑтаннÑ" +msgid "%pB: TLS local exec code cannot be linked into shared objects" +msgstr "%pB: виконуваний код локального TLS не можна компонувати у об’єкти Ñпільного викориÑтаннÑ" -#: elf32-sh.c:6435 +#: elf32-sh.c:5918 #, c-format -msgid "%B: uses %s instructions while previous modules use %s instructions" -msgstr "%B: викориÑтовує інÑтрукції %s, хоча у попередніх модулÑÑ… викориÑтовуютьÑÑ Ñ–Ð½Ñтрукції %s" +msgid "%pB: uses %s instructions while previous modules use %s instructions" +msgstr "%pB: викориÑтовує інÑтрукції %s, хоча у попередніх модулÑÑ… викориÑтовуютьÑÑ Ñ–Ð½Ñтрукції %s" -#: elf32-sh.c:6447 +#: elf32-sh.c:5930 #, c-format msgid "internal error: merge of architecture '%s' with architecture '%s' produced unknown architecture" msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ «%s» з архітектурою «%s» призвело до ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¾Ñ— архітектури" -#: elf32-sh.c:6484 -msgid "%B: uses instructions which are incompatible with instructions used in previous modules" -msgstr "%B: викориÑтовуютьÑÑ Ñ–Ð½Ñтрукції, Ñкі неÑуміÑні із інÑтрукціÑми, викориÑтаними у попередніх модулÑÑ…" - -#: elf32-sh.c:6497 -msgid "%B: attempt to mix FDPIC and non-FDPIC objects" -msgstr "%B: Ñпроба Ñтворити Ñуміш об’єктів FDPIC Ñ– не-FDPIC" - -#: elf32-sh64.c:225 elf64-sh64.c:2277 -#, c-format -msgid "%B: compiled as 32-bit object and %B is 64-bit" -msgstr "%B: зібрано Ñк 32- бітовий об’єкт, а %B Ñ” 64-бітовим" - -#: elf32-sh64.c:229 elf64-sh64.c:2281 +#: elf32-sh.c:5967 #, c-format -msgid "%B: compiled as 64-bit object and %B is 32-bit" -msgstr "%B: зібрано Ñк 64-бітовий об’єкт, а %B Ñ” 32-бітовим" - -#: elf32-sh64.c:232 elf64-sh64.c:2284 -#, c-format -msgid "%B: object size does not match that of target %B" -msgstr "%B: розмір об’єкта не збігаєтьÑÑ Ð· розміром Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %B" - -#: elf32-sh64.c:455 elf64-sh64.c:2776 -msgid "%B: encountered datalabel symbol in input" -msgstr "%B: виÑвлено Ñимвол мітки даних у вхідних даних" - -#: elf32-sh64.c:531 -msgid "PTB mismatch: a SHmedia address (bit 0 == 1)" -msgstr "ÐевідповідніÑÑ‚ÑŒ PTB: адреÑа SHmedia (біт 0 == 1)" +msgid "%pB: uses instructions which are incompatible with instructions used in previous modules" +msgstr "%pB: викориÑтовуютьÑÑ Ñ–Ð½Ñтрукції, Ñкі неÑуміÑні із інÑтрукціÑми, викориÑтаними у попередніх модулÑÑ…" -#: elf32-sh64.c:534 -msgid "PTA mismatch: a SHcompact address (bit 0 == 0)" -msgstr "ÐевідповідніÑÑ‚ÑŒ PTA: адреÑа SHcompact (біт 0 == 0)" - -#: elf32-sh64.c:550 -msgid "%B: GAS error: unexpected PTB insn with R_SH_PT_16" -msgstr "%B: помилка GAS: неочікувана інÑÑ‚Ñ€ÑƒÐºÑ†Ñ–Ñ PTB з R_SH_PT_16" - -#: elf32-sh64.c:600 +#: elf32-sh.c:5980 #, c-format -msgid "%B: error: unaligned relocation type %d at %08x reloc %p\n" -msgstr "%B: помилка: невирівнÑний тип переÑÑƒÐ²Ð°Ð½Ð½Ñ %d у %08x, переÑÑƒÐ²Ð°Ð½Ð½Ñ %p\n" - -#: elf32-sh64.c:676 -msgid "%B: could not write out added .cranges entries" -msgstr "%B: не вдалоÑÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾Ð´Ð°Ð½Ð¸Ñ… запиÑів .cranges" - -#: elf32-sh64.c:735 -msgid "%B: could not write out sorted .cranges entries" -msgstr "%B: не вдалоÑÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ Ð²Ð¿Ð¾Ñ€Ñдкованих запиÑів .cranges" +msgid "%pB: attempt to mix FDPIC and non-FDPIC objects" +msgstr "%pB: Ñпроба Ñтворити Ñуміш об’єктів FDPIC Ñ– не-FDPIC" #: elf32-sparc.c:89 -msgid "%B: compiled for a 64 bit system and target is 32 bit" -msgstr "%B: зібрано Ð´Ð»Ñ 64-бітової ÑиÑтеми, ÑиÑтемою ж Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ” 32-бітова" +#, c-format +msgid "%pB: compiled for a 64 bit system and target is 32 bit" +msgstr "%pB: зібрано Ð´Ð»Ñ 64-бітової ÑиÑтеми, ÑиÑтемою ж Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ” 32-бітова" #: elf32-sparc.c:102 -msgid "%B: linking little endian files with big endian files" -msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² зі зворотним порÑдком байтів з файлами з прÑмим порÑдком байтів" - -#: elf32-spu.c:160 #, c-format -msgid "%B: unrecognised SPU reloc number: %d" -msgstr "%B: невідоме чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ SPU: %d" +msgid "%pB: linking little endian files with big endian files" +msgstr "%pB: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² зі зворотним порÑдком байтів з файлами з прÑмим порÑдком байтів" -#: elf32-spu.c:726 -msgid "%X%P: overlay section %A does not start on a cache line.\n" -msgstr "%X%P: розділ накладки %A не починаєтьÑÑ Ð· Ñ€Ñдка кешуваннÑ.\n" +#: elf32-spu.c:727 +msgid "%X%P: overlay section %pA does not start on a cache line\n" +msgstr "%X%P: розділ накладки %pA не починаєтьÑÑ Ð· Ñ€Ñдка кешуваннÑ\n" -#: elf32-spu.c:734 -msgid "%X%P: overlay section %A is larger than a cache line.\n" -msgstr "%X%P: розділ накладки %A Ñ” більшим за Ñ€Ñдок кешуваннÑ.\n" +#: elf32-spu.c:735 +msgid "%X%P: overlay section %pA is larger than a cache line\n" +msgstr "%X%P: розділ накладки %pA Ñ” більшим за Ñ€Ñдок кешуваннÑ\n" -#: elf32-spu.c:754 -msgid "%X%P: overlay section %A is not in cache area.\n" -msgstr "%X%P: розділ накладки %A не перебуває у облаÑÑ‚Ñ– кешуваннÑ.\n" +#: elf32-spu.c:755 +msgid "%X%P: overlay section %pA is not in cache area\n" +msgstr "%X%P: розділ накладки %pA не перебуває у облаÑÑ‚Ñ– кешуваннÑ\n" -#: elf32-spu.c:795 +#: elf32-spu.c:796 #, c-format -msgid "%X%P: overlay sections %A and %A do not start at the same address.\n" -msgstr "%X%P: розділи, що накладаютьÑÑ, %A Ñ– %A, не починаютьÑÑ Ð·Ð° одною адреÑою.\n" +msgid "%X%P: overlay sections %pA and %pA do not start at the same address\n" +msgstr "%X%P: розділи, що накладаютьÑÑ, %pA Ñ– %pA, не починаютьÑÑ Ð·Ð° одною адреÑою\n" -#: elf32-spu.c:1021 +#: elf32-spu.c:1022 #, c-format -msgid "warning: call to non-function symbol %s defined in %B" -msgstr "попередженнÑ: виклик нефункціонального Ñимволу, %s, визначеного у %B" +msgid "warning: call to non-function symbol %s defined in %pB" +msgstr "попередженнÑ: виклик нефункціонального Ñимволу, %s, визначеного у %pB" -#: elf32-spu.c:1371 +#: elf32-spu.c:1372 #, c-format -msgid "%A:0x%v lrlive .brinfo (%u) differs from analysis (%u)\n" -msgstr "%A:0x%v .brinfo lrlive (%u) відрізнÑєтьÑÑ Ð²Ñ–Ð´ визначеного шлÑхом аналізу (%u)\n" +msgid "%pA:0x%v lrlive .brinfo (%u) differs from analysis (%u)\n" +msgstr "%pA:0x%v .brinfo lrlive (%u) відрізнÑєтьÑÑ Ð²Ñ–Ð´ визначеного шлÑхом аналізу (%u)\n" -#: elf32-spu.c:1903 +#: elf32-spu.c:1904 #, c-format -msgid "%B is not allowed to define %s" -msgstr "%B не може визначати %s" +msgid "%pB is not allowed to define %s" +msgstr "%pB не може визначати %s" -#: elf32-spu.c:1911 +#: elf32-spu.c:1912 #, c-format msgid "you are not allowed to define %s in a script" msgstr "не можна визначати %s у Ñкрипті" -#: elf32-spu.c:1945 +#: elf32-spu.c:1946 #, c-format msgid "%s in overlay section" msgstr "%s у розділі накладки" -#: elf32-spu.c:1974 +#: elf32-spu.c:1975 msgid "overlay stub relocation overflow" msgstr "Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð° накладки" -#: elf32-spu.c:1983 +#: elf32-spu.c:1984 elf64-ppc.c:13819 msgid "stubs don't match calculated size" msgstr "шаблони не відповідають обчиÑленому розміру" -#: elf32-spu.c:2566 +#: elf32-spu.c:2567 #, c-format msgid "warning: %s overlaps %s\n" msgstr "попередженнÑ: %s перекриває %s\n" -#: elf32-spu.c:2582 +#: elf32-spu.c:2583 #, c-format msgid "warning: %s exceeds section size\n" msgstr "попередженнÑ: %s перевищує розмір розділу\n" -#: elf32-spu.c:2614 +#: elf32-spu.c:2615 #, c-format -msgid "%A:0x%v not found in function table\n" -msgstr "%A:0x%v не знайдено у таблиці функцій\n" +msgid "%pA:0x%v not found in function table\n" +msgstr "%pA:0x%v не знайдено у таблиці функцій\n" -#: elf32-spu.c:2755 +#: elf32-spu.c:2756 #, c-format -msgid "%B(%A+0x%v): call to non-code section %B(%A), analysis incomplete\n" -msgstr "%B(%A+0x%v): виклик розділу, Ñкий не міÑтить код, %B(%A), аналіз Ñ” неповним\n" +msgid "%pB(%pA+0x%v): call to non-code section %pB(%pA), analysis incomplete\n" +msgstr "%pB(%pA+0x%v): виклик розділу, Ñкий не міÑтить код, %pB(%pA), аналіз Ñ” неповним\n" -#: elf32-spu.c:3324 +#: elf32-spu.c:3325 #, c-format -msgid "Stack analysis will ignore the call from %s to %s\n" -msgstr "Під Ñ‡Ð°Ñ Ð°Ð½Ð°Ð»Ñ–Ð·Ñƒ Ñтека буде проігноровано виклик з %s до %s\n" +msgid "stack analysis will ignore the call from %s to %s\n" +msgstr "під Ñ‡Ð°Ñ Ð°Ð½Ð°Ð»Ñ–Ð·Ñƒ Ñтека буде проігноровано виклик з %s до %s\n" -#: elf32-spu.c:4021 +#: elf32-spu.c:4022 msgid " calls:\n" msgstr " виклики:\n" -#: elf32-spu.c:4335 +#: elf32-spu.c:4336 #, c-format msgid "%s duplicated in %s\n" msgstr "%s повторюєтьÑÑ Ñƒ %s\n" -#: elf32-spu.c:4339 +#: elf32-spu.c:4340 #, c-format msgid "%s duplicated\n" msgstr "%s дубльовано\n" -#: elf32-spu.c:4346 +#: elf32-spu.c:4347 msgid "sorry, no support for duplicate object files in auto-overlay script\n" msgstr "вибачте, у Ñкрипті автоматичного Ð½Ð°ÐºÐ»Ð°Ð´Ð°Ð½Ð½Ñ Ð½Ðµ передбачено підтримки Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ñ… файлів.\n" -#: elf32-spu.c:4388 +#: elf32-spu.c:4389 #, c-format msgid "non-overlay size of 0x%v plus maximum overlay size of 0x%v exceeds local store\n" msgstr "Ñума розміру 0x%v без оверлею та макÑимального розміру оверлею 0x%v перевищують міÑткіÑÑ‚ÑŒ локального Ñховища даних\n" -#: elf32-spu.c:4544 +#: elf32-spu.c:4545 #, c-format -msgid "%B:%A%s exceeds overlay size\n" -msgstr "%B:%A%s перевищує розмір накладки\n" +msgid "%pB:%pA%s exceeds overlay size\n" +msgstr "%pB:%pA%s перевищує розмір накладки\n" -#: elf32-spu.c:4685 +#: elf32-spu.c:4686 msgid "%F%P: auto overlay error: %E\n" msgstr "%F%P: помилка автонакладаннÑ: %E\n" -#: elf32-spu.c:4706 +#: elf32-spu.c:4707 msgid "Stack size for call graph root nodes.\n" msgstr "Розмір Ñтека Ð´Ð»Ñ ÐºÐ¾Ñ€ÐµÐ½ÐµÐ²Ð¸Ñ… вузлів графу викликів.\n" -#: elf32-spu.c:4707 +#: elf32-spu.c:4708 msgid "" "\n" "Stack size for functions. Annotations: '*' max stack, 't' tail call\n" @@ -3673,816 +3296,780 @@ "\n" "Розмір Ñтека Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹. ПозначеннÑ: «*» макÑимальна Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ Ñƒ Ñтеку, «t» хвоÑтовий виклик\n" -#: elf32-spu.c:4717 +#: elf32-spu.c:4718 msgid "Maximum stack required is 0x%v\n" msgstr "МакÑимальний потрібний розмір Ñтека — 0x%v\n" -#: elf32-spu.c:4736 +#: elf32-spu.c:4737 msgid "%X%P: stack/lrlive analysis error: %E\n" msgstr "%X%P: помилка аналізу Ñтека/lrlive: %E\n" -#: elf32-spu.c:4739 +#: elf32-spu.c:4740 msgid "%F%P: can not build overlay stubs: %E\n" msgstr "%F%P: не вдалоÑÑ Ð·Ñ–Ð±Ñ€Ð°Ñ‚Ð¸ накладні шаблони: %E\n" -#: elf32-spu.c:4808 +#: elf32-spu.c:4809 msgid "fatal error while creating .fixup" msgstr "критична помилка під Ñ‡Ð°Ñ Ñпроби ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ .fixup" -#: elf32-spu.c:5043 +#: elf32-spu.c:5044 #, c-format -msgid "%B(%s+0x%lx): unresolvable %s relocation against symbol `%s'" -msgstr "%B(%s+0x%lx): нерозв’Ñзне переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо Ñимволу «%s»" +msgid "%pB(%s+%#): unresolvable %s relocation against symbol `%s'" +msgstr "%pB(%s+%#): нерозв’Ñзне переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо Ñимволу «%s»" -#: elf32-tic6x.c:1596 +#: elf32-tic6x.c:1628 msgid "warning: generating a shared library containing non-PIC code" msgstr "попередженнÑ: ÑтворюєтьÑÑ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ° Ñпільного викориÑтаннÑ, Ñка міÑтить код, неÑуміÑний з PIC" -#: elf32-tic6x.c:1601 +#: elf32-tic6x.c:1633 msgid "warning: generating a shared library containing non-PID code" msgstr "попередженнÑ: ÑтворюєтьÑÑ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ° Ñпільного викориÑтаннÑ, Ñка міÑтить код, неÑуміÑний з PID" -#: elf32-tic6x.c:2525 -msgid "%B: SB-relative relocation but __c6xabi_DSBT_BASE not defined" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð½Ð¾Ñно SB, але __c6xabi_DSBT_BASE не визначено" - -#: elf32-tic6x.c:3651 +#: elf32-tic6x.c:2493 #, c-format -msgid "%B: error: unknown mandatory EABI object attribute %d" -msgstr "%B: помилка: невідомий обов’Ñзковий атрибути об’єкта EABI, %d" +msgid "%pB: SB-relative relocation but __c6xabi_DSBT_BASE not defined" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð½Ð¾Ñно SB, але __c6xabi_DSBT_BASE не визначено" -#: elf32-tic6x.c:3660 +#: elf32-tic6x.c:3629 #, c-format -msgid "%B: warning: unknown EABI object attribute %d" -msgstr "%B: попередженнÑ: невідомий атрибут об’єкта EABI, %d" +msgid "%pB: error: unknown mandatory EABI object attribute %d" +msgstr "%pB: помилка: невідомий обов’Ñзковий атрибути об’єкта EABI, %d" -#: elf32-tic6x.c:3774 elf32-tic6x.c:3783 +#: elf32-tic6x.c:3638 #, c-format -msgid "error: %B requires more stack alignment than %B preserves" -msgstr "помилка: %B потребує більшого Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñтека, ніж збережено у %B" +msgid "%pB: warning: unknown EABI object attribute %d" +msgstr "%pB: попередженнÑ: невідомий атрибут об’єкта EABI, %d" -#: elf32-tic6x.c:3793 elf32-tic6x.c:3802 -msgid "error: unknown Tag_ABI_array_object_alignment value in %B" -msgstr "помилка: невідоме Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Tag_ABI_array_object_alignment у %B" +#: elf32-tic6x.c:3752 elf32-tic6x.c:3761 +#, c-format +msgid "error: %pB requires more stack alignment than %pB preserves" +msgstr "помилка: %pB потребує більшого Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñтека, ніж збережено у %pB" -#: elf32-tic6x.c:3811 elf32-tic6x.c:3820 -msgid "error: unknown Tag_ABI_array_object_align_expected value in %B" -msgstr "помилка: невідоме Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Tag_ABI_array_object_align_expected у %B" +#: elf32-tic6x.c:3771 elf32-tic6x.c:3780 +#, c-format +msgid "error: unknown Tag_ABI_array_object_alignment value in %pB" +msgstr "помилка: невідоме Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Tag_ABI_array_object_alignment у %pB" -#: elf32-tic6x.c:3829 elf32-tic6x.c:3837 +#: elf32-tic6x.c:3789 elf32-tic6x.c:3798 #, c-format -msgid "error: %B requires more array alignment than %B preserves" -msgstr "помилка: %B потребує більшого Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð¼Ð°Ñиву, ніж збережено у %B" +msgid "error: unknown Tag_ABI_array_object_align_expected value in %pB" +msgstr "помилка: невідоме Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Tag_ABI_array_object_align_expected у %pB" -#: elf32-tic6x.c:3860 +#: elf32-tic6x.c:3807 elf32-tic6x.c:3815 #, c-format -msgid "warning: %B and %B differ in wchar_t size" -msgstr "попередженнÑ: %B Ñ– %B відрізнÑÑŽÑ‚ÑŒÑÑ Ð·Ð° розміром wchar_t" +msgid "error: %pB requires more array alignment than %pB preserves" +msgstr "помилка: %pB потребує більшого Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð¼Ð°Ñиву, ніж збережено у %pB" -#: elf32-tic6x.c:3879 +#: elf32-tic6x.c:3838 #, c-format -msgid "warning: %B and %B differ in whether code is compiled for DSBT" -msgstr "попередженнÑ: %B Ñ– %B відрізнÑÑŽÑ‚ÑŒÑÑ Ð·Ð° тим, чи було Ñ—Ñ… зібрано Ð´Ð»Ñ DSBT" +msgid "warning: %pB and %pB differ in wchar_t size" +msgstr "попередженнÑ: %pB Ñ– %pB відрізнÑÑŽÑ‚ÑŒÑÑ Ð·Ð° розміром wchar_t" -#: elf32-v850.c:157 +#: elf32-tic6x.c:3857 #, c-format -msgid "Variable `%s' cannot occupy in multiple small data regions" -msgstr "Змінна «%s» не може займати декілька малих облаÑтей даних" +msgid "warning: %pB and %pB differ in whether code is compiled for DSBT" +msgstr "попередженнÑ: %pB Ñ– %pB відрізнÑÑŽÑ‚ÑŒÑÑ Ð·Ð° тим, чи було Ñ—Ñ… зібрано Ð´Ð»Ñ DSBT" -#: elf32-v850.c:160 +#: elf32-tilepro.c:3761 elfxx-tilegx.c:4145 elfxx-x86.c:1424 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-aarch64.c:9463 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-riscv.c:2543 #, c-format -msgid "Variable `%s' can only be in one of the small, zero, and tiny data regions" -msgstr "Змінну «%s» можна зберігати лише у одній з малих, нульових Ñ– малюÑіньких облаÑтей даних" +msgid "discarded output section: `%pA'" +msgstr "відкинуто розділ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…: «%pA»" -#: elf32-v850.c:163 +#: elf32-v850.c:153 #, c-format -msgid "Variable `%s' cannot be in both small and zero data regions simultaneously" -msgstr "Змінна «%s» не може зберігатиÑÑ Ñƒ малій Ñ– нульовій облаÑÑ‚Ñ– даних одночаÑно" +msgid "variable `%s' cannot occupy in multiple small data regions" +msgstr "змінна «%s» не може займати декілька малих облаÑтей даних" -#: elf32-v850.c:166 +#: elf32-v850.c:156 #, c-format -msgid "Variable `%s' cannot be in both small and tiny data regions simultaneously" -msgstr "Змінна «%s» не може зберігатиÑÑ Ñƒ малій Ñ– малюÑінькій облаÑÑ‚Ñ– даних одночаÑно" +msgid "variable `%s' can only be in one of the small, zero, and tiny data regions" +msgstr "змінну «%s» можна зберігати лише у одній з малих, нульових Ñ– малюÑіньких облаÑтей даних" -#: elf32-v850.c:169 +#: elf32-v850.c:159 #, c-format -msgid "Variable `%s' cannot be in both zero and tiny data regions simultaneously" -msgstr "Змінна «%s» не може зберігатиÑÑ Ñƒ нульовій Ñ– малюÑінькій облаÑÑ‚Ñ– даних одночаÑно" +msgid "variable `%s' cannot be in both small and zero data regions simultaneously" +msgstr "змінна «%s» не може зберігатиÑÑ Ñƒ малій Ñ– нульовій облаÑÑ‚Ñ– даних одночаÑно" -#: elf32-v850.c:467 -msgid "FAILED to find previous HI16 reloc" -msgstr "ÐЕ ВДÐЛОСЯ знайти попереднє переÑÑƒÐ²Ð°Ð½Ð½Ñ HI16" +#: elf32-v850.c:162 +#, c-format +msgid "variable `%s' cannot be in both small and tiny data regions simultaneously" +msgstr "змінна «%s» не може зберігатиÑÑ Ñƒ малій Ñ– малюÑінькій облаÑÑ‚Ñ– даних одночаÑно" -#: elf32-v850.c:1902 elf32-v850.c:1921 +#: elf32-v850.c:165 #, c-format -msgid "%B: invalid V850 reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ V850: %d" +msgid "variable `%s' cannot be in both zero and tiny data regions simultaneously" +msgstr "змінна «%s» не може зберігатиÑÑ Ñƒ нульовій Ñ– малюÑінькій облаÑÑ‚Ñ– даних одночаÑно" -#: elf32-v850.c:2299 +#: elf32-v850.c:463 +msgid "failed to find previous HI16 reloc" +msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ попереднє переÑÑƒÐ²Ð°Ð½Ð½Ñ HI16" + +#: elf32-v850.c:2303 msgid "could not locate special linker symbol __gp" msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñпеціальний Ñимвол компонувальника __gp" -#: elf32-v850.c:2303 +#: elf32-v850.c:2307 msgid "could not locate special linker symbol __ep" msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñпеціальний Ñимвол компонувальника __ep" -#: elf32-v850.c:2307 +#: elf32-v850.c:2311 msgid "could not locate special linker symbol __ctbp" msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñпеціальний Ñимвол компонувальника __ctbp" -#: elf32-v850.c:2528 +#: elf32-v850.c:2532 #, c-format -msgid "error: %B needs 8-byte aligment but %B is set for 4-byte alignment" -msgstr "помилка: %B потребує 8-байтового вирівнюваннÑ, але %B налаштовано на 4-байтове вирівнюваннÑ" +msgid "error: %pB needs 8-byte alignment but %pB is set for 4-byte alignment" +msgstr "помилка: %pB потребує 8-байтового вирівнюваннÑ, але %pB налаштовано на 4-байтове вирівнюваннÑ" -#: elf32-v850.c:2544 +#: elf32-v850.c:2548 #, c-format -msgid "error: %B uses 64-bit doubles but %B uses 32-bit doubles" -msgstr "помилка: у %B викориÑтано 64-бітові дійÑні чиÑла подвійної точноÑÑ‚Ñ–, а у %B — 32-бітові" +msgid "error: %pB uses 64-bit doubles but %pB uses 32-bit doubles" +msgstr "помилка: у %pB викориÑтано 64-бітові дійÑні чиÑла подвійної точноÑÑ‚Ñ–, а у %pB — 32-бітові" -#: elf32-v850.c:2559 +#: elf32-v850.c:2563 #, c-format -msgid "error: %B uses FPU-3.0 but %B only supports FPU-2.0" -msgstr "помилка: у %B викориÑтано FPU-3.0, але у %B викориÑтовуєтьÑÑ Ð»Ð¸ÑˆÐµ FPU-2.0" +msgid "error: %pB uses FPU-3.0 but %pB only supports FPU-2.0" +msgstr "помилка: у %pB викориÑтано FPU-3.0, але у %pB викориÑтовуєтьÑÑ Ð»Ð¸ÑˆÐµ FPU-2.0" -#: elf32-v850.c:2591 +#: elf32-v850.c:2595 #, c-format msgid " alignment of 8-byte entities: " msgstr " Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ 8-байтових запиÑів: " -#: elf32-v850.c:2594 +#: elf32-v850.c:2598 #, c-format msgid "4-byte" msgstr "4-байтовий" -#: elf32-v850.c:2595 +#: elf32-v850.c:2599 #, c-format msgid "8-byte" msgstr "8-байтовий" -#: elf32-v850.c:2596 elf32-v850.c:2608 +#: elf32-v850.c:2600 elf32-v850.c:2612 #, c-format msgid "not set" msgstr "не вÑтановлено" -#: elf32-v850.c:2597 elf32-v850.c:2609 elf32-v850.c:2621 elf32-v850.c:2632 -#: elf32-v850.c:2643 elf32-v850.c:2654 +#: elf32-v850.c:2601 elf32-v850.c:2613 elf32-v850.c:2625 elf32-v850.c:2636 +#: elf32-v850.c:2647 elf32-v850.c:2658 #, c-format msgid "unknown: %x" msgstr "невідомо: %x" -#: elf32-v850.c:2603 +#: elf32-v850.c:2607 #, c-format msgid " size of doubles: " msgstr " розмір double: " -#: elf32-v850.c:2606 +#: elf32-v850.c:2610 #, c-format msgid "4-bytes" msgstr "4-байтові" -#: elf32-v850.c:2607 +#: elf32-v850.c:2611 #, c-format msgid "8-bytes" msgstr "8-байтові" -#: elf32-v850.c:2615 +#: elf32-v850.c:2619 #, c-format msgid " FPU support required: " msgstr " Потрібна підтримка FPU: " -#: elf32-v850.c:2618 +#: elf32-v850.c:2622 #, c-format msgid "FPU-2.0" msgstr "FPU-2.0" -#: elf32-v850.c:2619 +#: elf32-v850.c:2623 #, c-format msgid "FPU-3.0" msgstr "FPU-3.0" -#: elf32-v850.c:2620 +#: elf32-v850.c:2624 #, c-format msgid "none" msgstr "немає" -#: elf32-v850.c:2627 +#: elf32-v850.c:2631 #, c-format msgid "SIMD use: " msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ SIMD: " -#: elf32-v850.c:2630 elf32-v850.c:2641 elf32-v850.c:2652 +#: elf32-v850.c:2634 elf32-v850.c:2645 elf32-v850.c:2656 #, c-format msgid "yes" msgstr "так" -#: elf32-v850.c:2631 elf32-v850.c:2642 elf32-v850.c:2653 +#: elf32-v850.c:2635 elf32-v850.c:2646 elf32-v850.c:2657 #, c-format msgid "no" msgstr "ні" -#: elf32-v850.c:2638 +#: elf32-v850.c:2642 #, c-format msgid "CACHE use: " msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ CACHE: " -#: elf32-v850.c:2649 +#: elf32-v850.c:2653 #, c-format msgid "MMU use: " msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ MMU: " -#: elf32-v850.c:2816 elf32-v850.c:2872 -msgid "%B: Architecture mismatch with previous modules" -msgstr "%B: невідповідніÑÑ‚ÑŒ архітектур з попередніми модулÑми" +#: elf32-v850.c:2820 elf32-v850.c:2876 +#, c-format +msgid "%pB: architecture mismatch with previous modules" +msgstr "%pB: невідповідніÑÑ‚ÑŒ архітектур з попередніми модулÑми" #. xgettext:c-format. -#: elf32-v850.c:2890 +#: elf32-v850.c:2894 #, c-format msgid "private flags = %lx: " msgstr "закриті прапорці = %lx: " -#: elf32-v850.c:2895 +#: elf32-v850.c:2899 #, c-format msgid "unknown v850 architecture" msgstr "невідома архітектура v850" -#: elf32-v850.c:2897 +#: elf32-v850.c:2901 #, c-format msgid "v850 E3 architecture" msgstr "архітектура v850 E3" -#: elf32-v850.c:2899 elf32-v850.c:2906 +#: elf32-v850.c:2903 elf32-v850.c:2910 #, c-format msgid "v850 architecture" msgstr "архітектура v850" -#: elf32-v850.c:2907 +#: elf32-v850.c:2911 #, c-format msgid "v850e architecture" msgstr "архітектура v850e" -#: elf32-v850.c:2908 +#: elf32-v850.c:2912 #, c-format msgid "v850e1 architecture" msgstr "архітектура v850e1" -#: elf32-v850.c:2909 +#: elf32-v850.c:2913 #, c-format msgid "v850e2 architecture" msgstr "архітектура v850e2" -#: elf32-v850.c:2910 +#: elf32-v850.c:2914 #, c-format msgid "v850e2v3 architecture" msgstr "архітектура v850e2v3" -#: elf32-v850.c:2911 +#: elf32-v850.c:2915 #, c-format msgid "v850e3v5 architecture" msgstr "архітектура v850e3v5" -#: elf32-v850.c:3605 -#, c-format -msgid "%B: 0x%lx: warning: R_V850_LONGCALL points to unrecognized insns" -msgstr "%B: 0x%lx: попередженнÑ: R_V850_LONGCALL вказує на нерозпізнані інÑтрукції" - -#: elf32-v850.c:3615 -#, c-format -msgid "%B: 0x%lx: warning: R_V850_LONGCALL points to unrecognized insn 0x%x" -msgstr "%B: 0x%lx: попередженнÑ: R_V850_LONGCALL вказує на нерозпізнану інÑтрукцію 0x%x" - -#: elf32-v850.c:3660 -#, c-format -msgid "%B: 0x%lx: warning: R_V850_LONGCALL points to unrecognized reloc" -msgstr "%B: 0x%lx: попередженнÑ: R_V850_LONGCALL вказує на нерозпізнане переÑуваннÑ" - -#: elf32-v850.c:3700 +#: elf32-v850.c:3609 elf32-v850.c:3848 #, c-format -msgid "%B: 0x%lx: warning: R_V850_LONGCALL points to unrecognized reloc 0x%lx" -msgstr "%B: 0x%lx: попередженнÑ: R_V850_LONGCALL вказує на нерозпізнане переÑÑƒÐ²Ð°Ð½Ð½Ñ 0x%lx" +msgid "%pB: %#: warning: %s points to unrecognized insns" +msgstr "%pB: %#: попередженнÑ: %s вказує на нерозпізнані інÑтрукції" -#: elf32-v850.c:3843 +#: elf32-v850.c:3619 elf32-v850.c:3858 #, c-format -msgid "%B: 0x%lx: warning: R_V850_LONGJUMP points to unrecognized insns" -msgstr "%B: 0x%lx: попередженнÑ: R_V850_LONGJUMP вказує на нерозпізнані інÑтрукції" +msgid "%pB: %#: warning: %s points to unrecognized insn %#x" +msgstr "%pB: %#: попередженнÑ: %s вказує на нерозпізнану інÑтрукцію %#x" -#: elf32-v850.c:3853 +#: elf32-v850.c:3665 elf32-v850.c:3893 #, c-format -msgid "%B: 0x%lx: warning: R_V850_LONGJUMP points to unrecognized insn 0x%x" -msgstr "%B: 0x%lx: попередженнÑ: R_V850_LONGJUMP вказує на нерозпізнану інÑтрукцію 0x%x" +msgid "%pB: %#: warning: %s points to unrecognized reloc" +msgstr "%pB: %#: попередженнÑ: %s вказує на невідоме переÑуваннÑ" -#: elf32-v850.c:3887 +#: elf32-v850.c:3705 #, c-format -msgid "%B: 0x%lx: warning: R_V850_LONGJUMP points to unrecognized reloc" -msgstr "%B: 0x%lx: попередженнÑ: R_V850_LONGJUMP вказує на нерозпізнане переÑуваннÑ" +msgid "%pB: %#: warning: %s points to unrecognized reloc %#" +msgstr "%pB: %#: попередженнÑ: %s вказує на невідоме переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ %#" -#: elf32-vax.c:290 -#, c-format -msgid "%B: unrecognised VAX reloc number: %d" -msgstr "%B: невідоме чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ VAX: %d" - -#: elf32-vax.c:539 +#: elf32-vax.c:540 #, c-format msgid " [nonpic]" msgstr " [не-pic]" -#: elf32-vax.c:542 +#: elf32-vax.c:543 #, c-format msgid " [d-float]" msgstr " [d-float]" -#: elf32-vax.c:545 +#: elf32-vax.c:546 #, c-format msgid " [g-float]" msgstr " [g-float]" -#: elf32-vax.c:635 -#, c-format -msgid "%B: warning: GOT addend of %ld to `%s' does not match previous GOT addend of %ld" -msgstr "%B: попередженнÑ: доданок GOT %ld до «%s» не відповідає попередньому доданку GOT %ld" - -#: elf32-vax.c:1511 +#: elf32-vax.c:632 #, c-format -msgid "%B: warning: PLT addend of %d to `%s' from %A section ignored" -msgstr "%B: попередженнÑ: доданок PLT %d до «%s» з розділу %A проігноровано" +msgid "%pB: warning: GOT addend of % to `%s' does not match previous GOT addend of %" +msgstr "%pB: попередженнÑ: доданок GOT % до «%s» не відповідає попередньому доданку GOT %" -#: elf32-vax.c:1636 +#: elf32-vax.c:1446 #, c-format -msgid "%B: warning: %s relocation against symbol `%s' from %A section" -msgstr "%B: попередженнÑ: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s відноÑно Ñимволу «%s» з розділу %A" +msgid "%pB: warning: PLT addend of % to `%s' from %pA section ignored" +msgstr "%pB: попередженнÑ: доданок PLT % до «%s» з розділу %pA проігноровано" -#: elf32-vax.c:1643 +#: elf32-vax.c:1572 #, c-format -msgid "%B: warning: %s relocation to 0x%x from %A section" -msgstr "%B: попередженнÑ: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s до 0x%x з розділу %A" +msgid "%pB: warning: %s relocation against symbol `%s' from %pA section" +msgstr "%pB: попередженнÑ: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s відноÑно Ñимволу «%s» з розділу %pA" -#: elf32-visium.c:481 +#: elf32-vax.c:1579 #, c-format -msgid "%B: invalid Visium reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ Visium: %d" +msgid "%pB: warning: %s relocation to %# from %pA section" +msgstr "%pB: попередженнÑ: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s до %# з розділу %pA" -#: elf32-visium.c:817 +#: elf32-visium.c:821 #, c-format -msgid "%B: compiled %s -mtune=%s and linked with modules compiled %s -mtune=%s" -msgstr "%B: зібрано %s -mtune=%s Ñ– Ñкомпоновано з модулÑми, зібраними %s -mtune=%s" +msgid "%pB: compiled %s -mtune=%s and linked with modules compiled %s -mtune=%s" +msgstr "%pB: зібрано %s -mtune=%s Ñ– Ñкомпоновано з модулÑми, зібраними %s -mtune=%s" -#: elf32-xgate.c:428 -#, c-format -msgid "%B: invalid XGate reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ XGate: %d" - -#: elf32-xgate.c:681 +#: elf32-xgate.c:684 #, c-format msgid "cpu=XGATE]" msgstr "процеÑор=XGATE]" -#: elf32-xgate.c:683 +#: elf32-xgate.c:686 #, c-format msgid "error reading cpu type from elf private data" msgstr "помилка під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… щодо типу процеÑора з приватних даних elf" -#: elf32-xstormy16.c:453 elf64-ia64-vms.c:2074 elf32-ia64.c:2334 -#: elf64-ia64.c:2334 +#: elf32-xstormy16.c:457 elf64-ia64-vms.c:2085 elf32-ia64.c:2354 +#: elf64-ia64.c:2354 msgid "non-zero addend in @fptr reloc" msgstr "ненульовий доданок у переÑуванні @fptr" -#: elf32-xtensa.c:485 -#, c-format -msgid "%B: invalid XTENSA reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ XTENSA: %d" - -#: elf32-xtensa.c:926 +#: elf32-xtensa.c:937 #, c-format -msgid "%B(%A): invalid property table" -msgstr "%B(%A): некоректна Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ð²Ð»Ð°ÑтивоÑтей" +msgid "%pB(%pA): invalid property table" +msgstr "%pB(%pA): некоректна Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ð²Ð»Ð°ÑтивоÑтей" -#: elf32-xtensa.c:2790 +#: elf32-xtensa.c:2666 #, c-format -msgid "%B(%A+0x%lx): relocation offset out of range (size=0x%x)" -msgstr "%B(%A+0x%lx): відÑтуп переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð·Ð° діапазоном (розмір=0x%x)" +msgid "%pB(%pA+%#): relocation offset out of range (size=%#)" +msgstr "%pB(%pA+%#): відÑтуп переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð·Ð° діапазоном (розмір=%#)" -#: elf32-xtensa.c:2871 elf32-xtensa.c:2990 +#: elf32-xtensa.c:2749 elf32-xtensa.c:2868 msgid "dynamic relocation in read-only section" msgstr "динамічне переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ розділі, призначеному лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ" -#: elf32-xtensa.c:2967 +#: elf32-xtensa.c:2845 msgid "TLS relocation invalid without dynamic sections" msgstr "ПереÑÑƒÐ²Ð°Ð½Ð½Ñ TLS Ñ” некоректним без динамічних розділів" -#: elf32-xtensa.c:3178 +#: elf32-xtensa.c:3057 msgid "internal inconsistency in size of .got.loc section" msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð½ÐµÐ¿Ð¾ÑлідовніÑÑ‚ÑŒ у розмірах розділу .got.loc" -#: elf32-xtensa.c:3485 +#: elf32-xtensa.c:3364 #, c-format -msgid "%B: incompatible machine type. Output is 0x%x. Input is 0x%x" -msgstr "%B: неÑуміÑні типи архітектур. Ð’Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ â€” 0x%x. Вхідні дані — 0x%x" +msgid "%pB: incompatible machine type; output is 0x%x; input is 0x%x" +msgstr "%pB: неÑуміÑні типи архітектур. Ð’Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ â€” 0x%x. Вхідні дані — 0x%x" -#: elf32-xtensa.c:4716 elf32-xtensa.c:4724 -msgid "Attempt to convert L32R/CALLX to CALL failed" -msgstr "Спроба Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ L32R/CALLX на CALL зазнала невдачі" +#: elf32-xtensa.c:4595 elf32-xtensa.c:4603 +msgid "attempt to convert L32R/CALLX to CALL failed" +msgstr "Ñпроба Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ L32R/CALLX на CALL зазнала невдачі" -#: elf32-xtensa.c:6552 elf32-xtensa.c:6629 elf32-xtensa.c:8002 +#: elf32-xtensa.c:6431 elf32-xtensa.c:6510 elf32-xtensa.c:7886 #, c-format -msgid "%B(%A+0x%lx): could not decode instruction; possible configuration mismatch" -msgstr "%B(%A+0x%lx): не вдалоÑÑ Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ñ‚Ð¸ інÑтрукцію, можлива невідповідніÑÑ‚ÑŒ конфігурацій" +msgid "%pB(%pA+%#): could not decode instruction; possible configuration mismatch" +msgstr "%pB(%pA+%#): не вдалоÑÑ Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ñ‚Ð¸ інÑтрукцію, можлива невідповідніÑÑ‚ÑŒ конфігурацій" -#: elf32-xtensa.c:7743 +#: elf32-xtensa.c:7625 #, c-format -msgid "%B(%A+0x%lx): could not decode instruction for XTENSA_ASM_SIMPLIFY relocation; possible configuration mismatch" -msgstr "%B(%A+0x%lx): не вдалоÑÑ Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ñ‚Ð¸ інÑтрукцію Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ XTENSA_ASM_SIMPLIFY, можлива невідповідніÑÑ‚ÑŒ конфігурацій" +msgid "%pB(%pA+%#): could not decode instruction for XTENSA_ASM_SIMPLIFY relocation; possible configuration mismatch" +msgstr "%pB(%pA+%#): не вдалоÑÑ Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ñ‚Ð¸ інÑтрукцію Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ XTENSA_ASM_SIMPLIFY, можлива невідповідніÑÑ‚ÑŒ конфігурацій" -#: elf32-xtensa.c:9585 +#: elf32-xtensa.c:9480 msgid "invalid relocation address" msgstr "некоректна адреÑа переÑуваннÑ" -#: elf32-xtensa.c:9635 +#: elf32-xtensa.c:9530 msgid "overflow after relaxation" msgstr "Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð¿Ñ–ÑÐ»Ñ Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ñ— розміру" -#: elf32-xtensa.c:10779 +#: elf32-xtensa.c:10674 #, c-format -msgid "%B(%A+0x%lx): unexpected fix for %s relocation" -msgstr "%B(%A+0x%lx): неочікуване Ð²Ð¸Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ %s" +msgid "%pB(%pA+%#): unexpected fix for %s relocation" +msgstr "%pB(%pA+%#): неочікуване Ð²Ð¸Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ %s" #: elf64-alpha.c:472 msgid "GPDISP relocation did not find ldah and lda instructions" msgstr "ПереÑуваннÑм GPDISP не знайдено інÑтрукції ldah Ñ– lda" -#: elf64-alpha.c:1112 +#: elf64-alpha.c:2463 #, c-format -msgid "%B: unrecognised Alpha reloc number: %d" -msgstr "%B: невідоме чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ Alpha: %d" +msgid "%pB: .got subsegment exceeds 64K (size %d)" +msgstr "%pB: розмір підÑегмента .got перевищує 64кБ (розмір — %d)" -#: elf64-alpha.c:2529 +#: elf64-alpha.c:3018 elf64-alpha.c:3214 #, c-format -msgid "%B: .got subsegment exceeds 64K (size %d)" -msgstr "%B: розмір підÑегмента .got перевищує 64кБ (розмір — %d)" +msgid "%pB: %pA+%#: warning: %s relocation against unexpected insn" +msgstr "%pB: %pA+%#: попередженнÑ: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо неочікуваної інÑтрукції" -#: elf64-alpha.c:3084 +#: elf64-alpha.c:4415 elf64-alpha.c:4428 #, c-format -msgid "%B: %A+0x%lx: warning: %s relocation against unexpected insn" -msgstr "%B: %A+0x%lx: попередженнÑ: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо неочікуваної інÑтрукції" +msgid "%pB: gp-relative relocation against dynamic symbol %s" +msgstr "%pB: gp-відноÑне переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ динамічного Ñимволу %s" -#: elf64-alpha.c:3280 +#: elf64-alpha.c:4455 elf64-alpha.c:4599 #, c-format -msgid "%B: %A+0x%lx: warning: LITERAL relocation against unexpected insn" -msgstr "%B: %A+0x%lx: попередженнÑ: переÑÑƒÐ²Ð°Ð½Ð½Ñ LITERAL щодо неочікуваної інÑтрукції" +msgid "%pB: pc-relative relocation against dynamic symbol %s" +msgstr "%pB: pc-відноÑне переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ динамічного Ñимволу %s" -#: elf64-alpha.c:4481 elf64-alpha.c:4494 +#: elf64-alpha.c:4484 #, c-format -msgid "%B: gp-relative relocation against dynamic symbol %s" -msgstr "%B: gp-відноÑне переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ динамічного Ñимволу %s" +msgid "%pB: change in gp: BRSGP %s" +msgstr "%pB: зміна у gp: BRSGP %s" -#: elf64-alpha.c:4521 elf64-alpha.c:4665 -#, c-format -msgid "%B: pc-relative relocation against dynamic symbol %s" -msgstr "%B: pc-відноÑне переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ динамічного Ñимволу %s" - -#: elf64-alpha.c:4550 -#, c-format -msgid "%B: change in gp: BRSGP %s" -msgstr "%B: зміна у gp: BRSGP %s" - -#: elf64-alpha.c:4575 +#: elf64-alpha.c:4509 mach-o.c:615 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-riscv.c:476 msgid "" msgstr "<невідома>" -#: elf64-alpha.c:4581 +#: elf64-alpha.c:4515 #, c-format -msgid "%B: !samegp reloc against symbol without .prologue: %s" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ !samegp щодо Ñимволу без .prologue: %s" +msgid "%pB: !samegp reloc against symbol without .prologue: %s" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ !samegp щодо Ñимволу без .prologue: %s" -#: elf64-alpha.c:4639 +#: elf64-alpha.c:4573 #, c-format -msgid "%B: unhandled dynamic relocation against %s" -msgstr "%B: непридатне до обробки динамічне переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ %s" +msgid "%pB: unhandled dynamic relocation against %s" +msgstr "%pB: непридатне до обробки динамічне переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ %s" + +#: elf64-alpha.c:4608 +#, c-format +msgid "%pB: pc-relative relocation against undefined weak symbol %s" +msgstr "%pB: pc-відноÑне переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ невизначеного Ñлабкого Ñимволу %s" #: elf64-alpha.c:4674 #, c-format -msgid "%B: pc-relative relocation against undefined weak symbol %s" -msgstr "%B: pc-відноÑне переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ невизначеного Ñлабкого Ñимволу %s" +msgid "%pB: dtp-relative relocation against dynamic symbol %s" +msgstr "%pB: dtp-відноÑне переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ динамічного Ñимволу %s" -#: elf64-alpha.c:4740 +#: elf64-alpha.c:4699 #, c-format -msgid "%B: dtp-relative relocation against dynamic symbol %s" -msgstr "%B: dtp-відноÑне переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ динамічного Ñимволу %s" +msgid "%pB: tp-relative relocation against dynamic symbol %s" +msgstr "%pB: tp-відноÑне переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ динамічного Ñимволу %s" -#: elf64-alpha.c:4765 +#: elf64-gen.c:71 #, c-format -msgid "%B: tp-relative relocation against dynamic symbol %s" -msgstr "%B: tp-відноÑне переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ динамічного Ñимволу %s" +msgid "%pB: Relocations in generic ELF (EM: %d)" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ типовому ELF (EM: %d)" -#: elf64-hppa.c:2082 +#: elf64-hppa.c:2081 #, c-format -msgid "stub entry for %s cannot load .plt, dp offset = %ld" -msgstr "шаблон запиÑу Ð´Ð»Ñ %s не можна завантажувати .plt, відÑтуп dp = %ld" +msgid "stub entry for %s cannot load .plt, dp offset = %" +msgstr "шаблон запиÑу Ð´Ð»Ñ %s не можна завантажувати .plt, відÑтуп dp = %" -#: elf64-hppa.c:3287 +#: elf64-hppa.c:3286 #, c-format -msgid "%B(%A+0x%" -msgstr "%B(%A+0x%" +msgid "%pB(%pA+%#): cannot reach %s" +msgstr "%pB(%pA+%#): не вдалоÑÑ Ð´Ð¾ÑÑгти %s" -#: elf64-ia64-vms.c:587 elf32-ia64.c:620 elf64-ia64.c:620 +#: elf64-ia64-vms.c:598 elf32-ia64.c:637 elf64-ia64.c:637 #, c-format -msgid "%B: Can't relax br at 0x%lx in section `%A'. Please use brl or indirect branch." -msgstr "%B: не вдалоÑÑ Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ br за адреÑою 0x%lx у розділі «%A». Будь лаÑка, ÑкориÑтайтеÑÑ brl або непрÑмим відгалуженнÑм." +msgid "%pB: can't relax br at %# in section `%pA'; please use brl or indirect branch" +msgstr "%pB: не вдалоÑÑ Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ br за адреÑою %# у розділі «%pA». Будь лаÑка, ÑкориÑтайтеÑÑ brl або непрÑмим відгалуженнÑм." -#: elf64-ia64-vms.c:2029 elf32-ia64.c:2282 elf64-ia64.c:2282 +#: elf64-ia64-vms.c:2040 elf32-ia64.c:2302 elf64-ia64.c:2302 msgid "@pltoff reloc against local symbol" msgstr "переÑÑƒÐ²Ð°Ð½Ð½Ñ @pltoff щодо локального Ñимволу" -#: elf64-ia64-vms.c:3282 elf32-ia64.c:3688 elf64-ia64.c:3688 +#: elf64-ia64-vms.c:3292 elf32-ia64.c:3713 elf64-ia64.c:3713 #, c-format -msgid "%B: short data segment overflowed (0x%lx >= 0x400000)" -msgstr "%B: переповнено короткий Ñегмент даних (0x%lx >= 0x400000)" +msgid "%pB: short data segment overflowed (%# >= 0x400000)" +msgstr "%pB: переповнено короткий Ñегмент даних (%# >= 0x400000)" -#: elf64-ia64-vms.c:3292 elf32-ia64.c:3698 elf64-ia64.c:3698 -msgid "%B: __gp does not cover short data segment" -msgstr "%B: __gp не вкриває короткого Ñегмента даних" +#: elf64-ia64-vms.c:3302 elf32-ia64.c:3723 elf64-ia64.c:3723 +#, c-format +msgid "%pB: __gp does not cover short data segment" +msgstr "%pB: __gp не вкриває короткого Ñегмента даних" -#: elf64-ia64-vms.c:3558 elf32-ia64.c:3965 elf64-ia64.c:3965 +#: elf64-ia64-vms.c:3572 elf32-ia64.c:3997 elf64-ia64.c:3997 #, c-format -msgid "%B: non-pic code with imm relocation against dynamic symbol `%s'" -msgstr "%B: не-pic код з переÑуваннÑм imm щодо динамічного Ñимволу «%s»" +msgid "%pB: non-pic code with imm relocation against dynamic symbol `%s'" +msgstr "%pB: не-pic код з переÑуваннÑм imm щодо динамічного Ñимволу «%s»" -#: elf64-ia64-vms.c:3622 elf32-ia64.c:4033 elf64-ia64.c:4033 +#: elf64-ia64-vms.c:3636 elf32-ia64.c:4065 elf64-ia64.c:4065 #, c-format -msgid "%B: @gprel relocation against dynamic symbol %s" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ @gprel щодо динамічного Ñимволу %s" +msgid "%pB: @gprel relocation against dynamic symbol %s" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ @gprel щодо динамічного Ñимволу %s" -#: elf64-ia64-vms.c:3681 elf32-ia64.c:4096 elf64-ia64.c:4096 -msgid "%B: linking non-pic code in a position independent executable" -msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ-pic коду у виконуваному файлі з незалежним позиціюваннÑм" +#: elf64-ia64-vms.c:3695 elf32-ia64.c:4128 elf64-ia64.c:4128 +#, c-format +msgid "%pB: linking non-pic code in a position independent executable" +msgstr "%pB: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ-pic коду у виконуваному файлі з незалежним позиціюваннÑм" -#: elf64-ia64-vms.c:3783 elf32-ia64.c:4234 elf64-ia64.c:4234 +#: elf64-ia64-vms.c:3797 elf32-ia64.c:4266 elf64-ia64.c:4266 #, c-format -msgid "%B: @internal branch to dynamic symbol %s" -msgstr "%B: Ð²Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ @internal до динамічного Ñимволу %s" +msgid "%pB: @internal branch to dynamic symbol %s" +msgstr "%pB: Ð²Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ @internal до динамічного Ñимволу %s" -#: elf64-ia64-vms.c:3786 elf32-ia64.c:4237 elf64-ia64.c:4237 +#: elf64-ia64-vms.c:3800 elf32-ia64.c:4269 elf64-ia64.c:4269 #, c-format -msgid "%B: speculation fixup to dynamic symbol %s" -msgstr "%B: здогадка щодо адреÑної прив’Ñзки до динамічного Ñимволу %s" +msgid "%pB: speculation fixup to dynamic symbol %s" +msgstr "%pB: здогадка щодо адреÑної прив’Ñзки до динамічного Ñимволу %s" -#: elf64-ia64-vms.c:3789 elf32-ia64.c:4240 elf64-ia64.c:4240 +#: elf64-ia64-vms.c:3803 elf32-ia64.c:4272 elf64-ia64.c:4272 #, c-format -msgid "%B: @pcrel relocation against dynamic symbol %s" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ @pcrel щодо динамічного Ñимволу %s" +msgid "%pB: @pcrel relocation against dynamic symbol %s" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ @pcrel щодо динамічного Ñимволу %s" -#: elf64-ia64-vms.c:3913 elf32-ia64.c:4437 elf64-ia64.c:4437 +#: elf64-ia64-vms.c:3927 elf32-ia64.c:4469 elf64-ia64.c:4469 msgid "unsupported reloc" msgstr "непідтримуване переÑуваннÑ" -#: elf64-ia64-vms.c:3950 elf32-ia64.c:4475 elf64-ia64.c:4475 +#: elf64-ia64-vms.c:3964 elf32-ia64.c:4507 elf64-ia64.c:4507 #, c-format -msgid "%B: missing TLS section for relocation %s against `%s' at 0x%lx in section `%A'." -msgstr "%B: не виÑтачає розділу TLS Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо «%s» за адреÑою 0x%lx у розділі «%A»." +msgid "%pB: missing TLS section for relocation %s against `%s' at %# in section `%pA'." +msgstr "%pB: не виÑтачає розділу TLS Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо «%s» за адреÑою %# у розділі «%pA»." -#: elf64-ia64-vms.c:3967 elf32-ia64.c:4492 elf64-ia64.c:4492 +#: elf64-ia64-vms.c:3981 elf32-ia64.c:4524 elf64-ia64.c:4524 #, c-format -msgid "%B: Can't relax br (%s) to `%s' at 0x%lx in section `%A' with size 0x%lx (> 0x1000000)." -msgstr "%B: не вдалоÑÑ Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ br (%s) до «%s» за адреÑою 0x%lx у розділі «%A» з розміром 0x%lx (> 0x1000000)." +msgid "%pB: Can't relax br (%s) to `%s' at %# in section `%pA' with size %# (> 0x1000000)." +msgstr "%pB: не вдалоÑÑ Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ br (%s) до «%s» за адреÑою %# у розділі «%pA» з розміром %# (> 0x1000000)." -#: elf64-ia64-vms.c:4258 elf32-ia64.c:4749 elf64-ia64.c:4749 -msgid "%B: linking trap-on-NULL-dereference with non-trapping files" -msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ trap-on-NULL-dereference з файлами без Ð·Ð°Ñ…Ð¾Ð¿Ð»ÐµÐ½Ð½Ñ (trapping)" +#: elf64-ia64-vms.c:4273 elf32-ia64.c:4782 elf64-ia64.c:4782 +#, c-format +msgid "%pB: linking trap-on-NULL-dereference with non-trapping files" +msgstr "%pB: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ trap-on-NULL-dereference з файлами без Ð·Ð°Ñ…Ð¾Ð¿Ð»ÐµÐ½Ð½Ñ (trapping)" -#: elf64-ia64-vms.c:4267 elf32-ia64.c:4758 elf64-ia64.c:4758 -msgid "%B: linking big-endian files with little-endian files" -msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² зі прÑмим порÑдком байтів з файлами зі зворотним порÑдком байтів" +#: elf64-ia64-vms.c:4282 elf32-ia64.c:4791 elf64-ia64.c:4791 +#, c-format +msgid "%pB: linking big-endian files with little-endian files" +msgstr "%pB: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² зі прÑмим порÑдком байтів з файлами зі зворотним порÑдком байтів" -#: elf64-ia64-vms.c:4276 elf32-ia64.c:4767 elf64-ia64.c:4767 -msgid "%B: linking 64-bit files with 32-bit files" -msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ 64-бітових файлів з 32-бітовими файлами" +#: elf64-ia64-vms.c:4291 elf32-ia64.c:4800 elf64-ia64.c:4800 +#, c-format +msgid "%pB: linking 64-bit files with 32-bit files" +msgstr "%pB: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ 64-бітових файлів з 32-бітовими файлами" -#: elf64-ia64-vms.c:4285 elf32-ia64.c:4776 elf64-ia64.c:4776 -msgid "%B: linking constant-gp files with non-constant-gp files" -msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² зі Ñталим gp з файлами зі змінним gp" +#: elf64-ia64-vms.c:4300 elf32-ia64.c:4809 elf64-ia64.c:4809 +#, c-format +msgid "%pB: linking constant-gp files with non-constant-gp files" +msgstr "%pB: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² зі Ñталим gp з файлами зі змінним gp" -#: elf64-ia64-vms.c:4295 elf32-ia64.c:4786 elf64-ia64.c:4786 -msgid "%B: linking auto-pic files with non-auto-pic files" -msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² з автоматичним pic з файлами без автоматичного pic" +#: elf64-ia64-vms.c:4310 elf32-ia64.c:4819 elf64-ia64.c:4819 +#, c-format +msgid "%pB: linking auto-pic files with non-auto-pic files" +msgstr "%pB: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² з автоматичним pic з файлами без автоматичного pic" -#: elf64-ia64-vms.c:5138 elflink.c:4730 +#: elf64-ia64-vms.c:5153 elflink.c:4875 #, c-format -msgid "Warning: alignment %u of common symbol `%s' in %B is greater than the alignment (%u) of its section %A" -msgstr "ПопередженнÑ: Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ %u загального Ñимволу «%s» у %B перевищує Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ (%u) його розділу %A" +msgid "warning: alignment %u of common symbol `%s' in %pB is greater than the alignment (%u) of its section %pA" +msgstr "попередженнÑ: Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ %u загального Ñимволу «%s» у %pB перевищує Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ (%u) його розділу %pA" -#: elf64-ia64-vms.c:5145 elflink.c:4737 +#: elf64-ia64-vms.c:5160 elflink.c:4882 #, c-format -msgid "Warning: alignment %u of symbol `%s' in %B is smaller than %u in %B" -msgstr "ПопередженнÑ: Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ %u Ñимволу «%s» у %B Ñ” меншим за %u у %B" +msgid "warning: alignment %u of symbol `%s' in %pB is smaller than %u in %pB" +msgstr "попередженнÑ: Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ %u Ñимволу «%s» у %pB Ñ” меншим за %u у %pB" -#: elf64-ia64-vms.c:5161 +#: elf64-ia64-vms.c:5176 elflink.c:4899 #, c-format -msgid "Warning: size of symbol `%s' changed from %lu in %B to %lu in %B" -msgstr "ПопередженнÑ: розмір Ñимволу «%s» змінено з %lu у %B на %lu у %B" +msgid "warning: size of symbol `%s' changed from % in %pB to % in %pB" +msgstr "попередженнÑ: розмір Ñимволу «%s» змінено з % у %pB на % у %pB" -#: elf64-mips.c:3615 elfn32-mips.c:3439 +#: elf64-mips.c:3763 #, c-format -msgid "unrecognised MIPS reloc number: %d" -msgstr "невідоме чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ MIPS: %d" +msgid "%pB(%pA): relocation % has invalid symbol index %ld" +msgstr "%pB(%pA): переÑÑƒÐ²Ð°Ð½Ð½Ñ % міÑтить некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñимволу, %ld" #: elf64-mmix.c:984 -msgid "" -"invalid input relocation when producing non-ELF, non-mmo format output.\n" -" Please use the objcopy program to convert from ELF or mmo,\n" -" or assemble using \"-no-expand\" (for gcc, \"-Wa,-no-expand\"" -msgstr "" -"некоректне вхідне переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… не у\n" -" форматі ELF Ñ– Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… не у форматі mmo.\n" -" Будь лаÑка, ÑкориÑтайтеÑÑ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¾ÑŽ objcopy Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ\n" -" даних з ELF або mmo або зберіть з викориÑтаннÑм «-no-expand»\n" -" (Ð´Ð»Ñ gcc «-Wa,-no-expand»)" +msgid "invalid input relocation when producing non-ELF, non-mmo format output; please use the objcopy program to convert from ELF or mmo, or assemble using \"-no-expand\" (for gcc, \"-Wa,-no-expand\"" +msgstr "некоректне вхідне переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… не у форматі ELF Ñ– Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… не у форматі mmo. Будь лаÑка, ÑкориÑтайтеÑÑ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¾ÑŽ objcopy Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… з ELF або mmo або зберіть з викориÑтаннÑм «-no-expand» (Ð´Ð»Ñ gcc «-Wa,-no-expand»)" #: elf64-mmix.c:1168 -msgid "" -"invalid input relocation when producing non-ELF, non-mmo format output.\n" -" Please use the objcopy program to convert from ELF or mmo,\n" -" or compile using the gcc-option \"-mno-base-addresses\"." -msgstr "" -"некоректне вхідне переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… не у\n" -" форматі ELF Ñ– Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… не у форматі mmo.\n" -" Будь лаÑка, ÑкориÑтайтеÑÑ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¾ÑŽ objcopy Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ\n" -" даних з ELF або mmo або зберіть з викориÑтаннÑм параметра gcc\n" -" «-mno-base-addresses»." +msgid "invalid input relocation when producing non-ELF, non-mmo format output; please use the objcopy program to convert from ELF or mmo, or compile using the gcc-option \"-mno-base-addresses\"." +msgstr "некоректне вхідне переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… не у форматі ELF Ñ– Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… не у форматі mmo. Будь лаÑка, ÑкориÑтайтеÑÑ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¾ÑŽ objcopy Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… з ELF або mmo або зберіть з викориÑтаннÑм параметра gcc «-mno-base-addresses»." #: elf64-mmix.c:1195 #, c-format msgid "" -"%B: Internal inconsistency error for value for\n" -" linker-allocated global register: linked: 0x%lx%08lx != relaxed: 0x%lx%08lx\n" +"%pB: Internal inconsistency error for value for\n" +" linker-allocated global register: linked: %# != relaxed: %#" msgstr "" -"%B: помилка через внутрішню непоÑлідовніÑÑ‚ÑŒ Ð´Ð»Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ\n" -" розміщеного компонувальником загального регіÑтра: компоновано: 0x%lx%08lx != розміщено: 0x%lx%08lx\n" +"%pB: помилка через внутрішню непоÑлідовніÑÑ‚ÑŒ Ð´Ð»Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ\n" +" розміщеного компонувальником загального регіÑтра: компоновано: %# != оптимізовано: %#" -#: elf64-mmix.c:1266 +#: elf64-mmix.c:1619 #, c-format -msgid "%B: invalid MMIX reloc number: %d" -msgstr "%B: некоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ MMIX: %d" +msgid "%pB: base-plus-offset relocation against register symbol: (unknown) in %pA" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ñнова-плюÑ-відÑтуп щодо Ñимволу регіÑтру: (невідоме) у %pA" -#: elf64-mmix.c:1618 +#: elf64-mmix.c:1625 #, c-format -msgid "%B: base-plus-offset relocation against register symbol: (unknown) in %A" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ñнова-плюÑ-відÑтуп щодо Ñимволу регіÑтру: (невідоме) у %A" +msgid "%pB: base-plus-offset relocation against register symbol: %s in %pA" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ñнова-плюÑ-відÑтуп щодо Ñимволу регіÑтру: %s у %pA" -#: elf64-mmix.c:1624 +#: elf64-mmix.c:1670 #, c-format -msgid "%B: base-plus-offset relocation against register symbol: %s in %A" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ñнова-плюÑ-відÑтуп щодо Ñимволу регіÑтру: %s у %A" +msgid "%pB: register relocation against non-register symbol: (unknown) in %pA" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÐ³Ñ–Ñтрів щодо Ñимволу, Ñкий не перебуває у регіÑтрі: (невідоме) у %pA" -#: elf64-mmix.c:1669 +#: elf64-mmix.c:1676 #, c-format -msgid "%B: register relocation against non-register symbol: (unknown) in %A" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÐ³Ñ–Ñтрів щодо Ñимволу, Ñкий не перебуває у регіÑтрі: (невідоме) у %A" +msgid "%pB: register relocation against non-register symbol: %s in %pA" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÐ³Ñ–Ñтрів щодо Ñимволу, Ñкий не перебуває у регіÑтрі: %s у %pA" -#: elf64-mmix.c:1675 +#: elf64-mmix.c:1713 #, c-format -msgid "%B: register relocation against non-register symbol: %s in %A" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÐ³Ñ–Ñтрів щодо Ñимволу, Ñкий не перебуває у регіÑтрі: %s у %A" - -#: elf64-mmix.c:1712 -msgid "%B: directive LOCAL valid only with a register or absolute value" -msgstr "%B: директиву LOCAL можна викориÑтовувати лише зі значеннÑми у регіÑтрах або абÑолютними значеннÑми" +msgid "%pB: directive LOCAL valid only with a register or absolute value" +msgstr "%pB: директиву LOCAL можна викориÑтовувати лише зі значеннÑми у регіÑтрах або абÑолютними значеннÑми" -#: elf64-mmix.c:1743 +#: elf64-mmix.c:1744 #, c-format -msgid "%B: LOCAL directive: Register $%ld is not a local register. First global register is $%ld." -msgstr "%B: директива LOCAL: регіÑÑ‚Ñ€ $%ld не Ñ” локальним регіÑтром. Першим загальним регіÑтром Ñ” $%ld." +msgid "%pB: LOCAL directive: register $% is not a local register; first global register is $%" +msgstr "%pB: директива LOCAL: регіÑÑ‚Ñ€ $% не Ñ” локальним регіÑтром. Першим загальним регіÑтром Ñ” $%." -#: elf64-mmix.c:2202 +#: elf64-mmix.c:2173 #, c-format -msgid "%B: Error: multiple definition of `%s'; start of %s is set in a earlier linked file\n" -msgstr "%B: помилка: декілька визначень «%s»; початок %s вÑтановлено у раніше Ñкомпонований файл\n" +msgid "%pB: error: multiple definition of `%s'; start of %s is set in a earlier linked file" +msgstr "%pB: помилка: декілька визначень «%s»; початок %s вÑтановлено у раніше Ñкомпонований файл" -#: elf64-mmix.c:2257 -msgid "Register section has contents\n" -msgstr "У розділі регіÑтрів міÑÑ‚ÑÑ‚ÑŒÑÑ Ð´Ð°Ð½Ñ–\n" +#: elf64-mmix.c:2228 +msgid "register section has contents\n" +msgstr "у розділі регіÑтрів міÑÑ‚ÑÑ‚ÑŒÑÑ Ð´Ð°Ð½Ñ–\n" -#: elf64-mmix.c:2447 +#: elf64-mmix.c:2418 #, c-format -msgid "" -"Internal inconsistency: remaining %u != max %u.\n" -" Please report this bug." -msgstr "" -"Ð’Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð½ÐµÑƒÐ·Ð³Ð¾Ð´Ð¶ÐµÐ½Ñ–ÑÑ‚ÑŒ: залишилоÑÑ %u != макÑ. %u.\n" -" Будь лаÑка, повідомте про цю ваду." +msgid "internal inconsistency: remaining %lu != max %lu; please report this bug" +msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð½ÐµÑƒÐ·Ð³Ð¾Ð´Ð¶ÐµÐ½Ñ–ÑÑ‚ÑŒ: залишилоÑÑ %lu != макÑ. %lu; будь лаÑка, повідомте про цю ваду" -#: elf64-ppc.c:4625 +#: elf64-ppc.c:5082 #, c-format -msgid "%P: %B: cannot create stub entry %s\n" -msgstr "%P: %B: не вдалоÑÑ Ñтворити шаблонний Ð·Ð°Ð¿Ð¸Ñ %s\n" +msgid "symbol '%s' has invalid st_other for ABI version 1" +msgstr "Ñимвол «%s» має некоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ st_other Ð´Ð»Ñ Ð²ÐµÑ€ÑÑ–Ñ— ABI 1" -#: elf64-ppc.c:4993 -msgid "%P: symbol '%s' has invalid st_other for ABI version 1\n" -msgstr "%P: Ñимвол «%s» має некоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ st_other Ð´Ð»Ñ Ð²ÐµÑ€ÑÑ–Ñ— ABI 1\n" - -#: elf64-ppc.c:5163 +#: elf64-ppc.c:5257 #, c-format -msgid "%P: %B .opd not allowed in ABI version %d\n" -msgstr "%P: .opd %B не можна викориÑтовувати у верÑÑ–Ñ— ABI %d\n" +msgid "%pB .opd not allowed in ABI version %d" +msgstr ".opd %pB не можна викориÑтовувати у верÑÑ–Ñ— ABI %d" -#: elf64-ppc.c:5639 +#: elf64-ppc.c:5771 #, c-format -msgid "%H: %s reloc unsupported in shared libraries and PIEs.\n" -msgstr "%H: підтримки переÑÑƒÐ²Ð°Ð½Ð½Ñ %s не передбачено у бібліотеках Ñпільного кориÑÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ– PIE.\n" +msgid "%H: %s reloc unsupported in shared libraries and PIEs\n" +msgstr "%H: підтримки переÑÑƒÐ²Ð°Ð½Ð½Ñ %s не передбачено у бібліотеках Ñпільного кориÑÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ– PIE\n" -#: elf64-ppc.c:6046 +#: elf64-ppc.c:6166 #, c-format -msgid "%B uses unknown e_flags 0x%lx" -msgstr "%B викориÑтовує невідоме Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ e_flags 0x%lx" +msgid "%pB uses unknown e_flags 0x%lx" +msgstr "%pB викориÑтовує невідоме Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ e_flags 0x%lx" -#: elf64-ppc.c:6054 +#: elf64-ppc.c:6174 #, c-format -msgid "%B: ABI version %ld is not compatible with ABI version %ld output" -msgstr "%B: верÑÑ–Ñ ABI %ld Ñ” неÑуміÑною з верÑією ABI %ld результату" +msgid "%pB: ABI version %ld is not compatible with ABI version %ld output" +msgstr "%pB: верÑÑ–Ñ ABI %ld Ñ” неÑуміÑною з верÑією ABI %ld результату" -#: elf64-ppc.c:6082 +#: elf64-ppc.c:6202 #, c-format msgid " [abiv%ld]" msgstr " [abiv%ld]" -#: elf64-ppc.c:7413 -msgid "%P: copy reloc against `%T' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc\n" -msgstr "%P: ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ «%T» потребує відкладеного ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ plt; не вÑтановлюйте LD_BIND_NOW=1 або оновіть gcc\n" +#: elf64-ppc.c:7390 +msgid "%P: copy reloc against `%pT' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc\n" +msgstr "%P: ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ «%pT» потребує відкладеного ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ plt; не вÑтановлюйте LD_BIND_NOW=1 або оновіть gcc\n" -#: elf64-ppc.c:7680 -msgid "%B: undefined symbol on R_PPC64_TOCSAVE relocation" -msgstr "%B: невизначений Ñимвол у переÑуванні R_PPC64_TOCSAVE" +#: elf64-ppc.c:7659 +#, c-format +msgid "%pB: undefined symbol on R_PPC64_TOCSAVE relocation" +msgstr "%pB: невизначений Ñимвол у переÑуванні R_PPC64_TOCSAVE" -#: elf64-ppc.c:7910 +#: elf64-ppc.c:7886 #, c-format -msgid "%P: dynreloc miscount for %B, section %A\n" -msgstr "%P: помилки у обчиÑленні динамічного переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ %B, розділ %A\n" +msgid "dynreloc miscount for %pB, section %pA" +msgstr "помилки у обчиÑленні динамічного переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ %pB, розділ %pA" -#: elf64-ppc.c:7999 -msgid "%B: .opd is not a regular array of opd entries" -msgstr "%B: .opd не Ñ” звичайним маÑивом запиÑів opd" +#: elf64-ppc.c:7975 +#, c-format +msgid "%pB: .opd is not a regular array of opd entries" +msgstr "%pB: .opd не Ñ” звичайним маÑивом запиÑів opd" -#: elf64-ppc.c:8009 +#: elf64-ppc.c:7985 #, c-format -msgid "%B: unexpected reloc type %u in .opd section" -msgstr "%B: неочікуваний тип переÑуваннÑ, %u, у розділі .opd" +msgid "%pB: unexpected reloc type %u in .opd section" +msgstr "%pB: неочікуваний тип переÑуваннÑ, %u, у розділі .opd" -#: elf64-ppc.c:8031 +#: elf64-ppc.c:8007 #, c-format -msgid "%B: undefined sym `%s' in .opd section" -msgstr "%B: невизначений Ñимвол, «%s» у розділі .opd" +msgid "%pB: undefined sym `%s' in .opd section" +msgstr "%pB: невизначений Ñимвол, «%s» у розділі .opd" + +#: elf64-ppc.c:8491 +msgid "warning: --plt-localentry is especially dangerous without ld.so support to detect ABI violations" +msgstr "попередженнÑ: --plt-localentry оÑобливо небезпечний, Ñкщо у ld.so не передбачено підтримки виÑÐ²Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ€ÑƒÑˆÐµÐ½ÑŒ ABI" -#: elf64-ppc.c:8600 +#: elf64-ppc.c:8740 msgid "%H __tls_get_addr lost arg, TLS optimization disabled\n" msgstr "%H __tls_get_addr втрачено аргумент, оптимізацію TLS вимкнено\n" -#: elf64-ppc.c:8943 elf64-ppc.c:9580 +#: elf64-ppc.c:9115 elf64-ppc.c:9752 #, c-format msgid "%s defined on removed toc entry" msgstr "%s визначено у вилученому запиÑÑ– toc" -#: elf64-ppc.c:9308 +#: elf64-ppc.c:9480 #, c-format -msgid "%H: toc optimization is not supported for %s instruction.\n" -msgstr "%H: Ð´Ð»Ñ Ñ–Ð½Ñтрукції %s не передбачено підтримки оптимізації toc.\n" +msgid "%H: toc optimization is not supported for %s instruction\n" +msgstr "%H: Ð´Ð»Ñ Ñ–Ð½Ñтрукції %s не передбачено підтримки оптимізації toc\n" -#: elf64-ppc.c:9537 +#: elf64-ppc.c:9709 #, c-format msgid "%H: %s references optimized away TOC entry\n" msgstr "%H: %s поÑилаєтьÑÑ Ð½Ð° уÑунутий у результаті оптимізації Ð·Ð°Ð¿Ð¸Ñ TOC\n" -#: elf64-ppc.c:10878 -msgid "%P: cannot find opd entry toc for `%T'\n" -msgstr "`%P: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ opd у toc Ð´Ð»Ñ Â«%T»\n" +#: elf64-ppc.c:10540 +#, c-format +msgid "warning: discarding dynamic section %s" +msgstr "попередженнÑ: відкидаємо динамічний розділ %s" + +#: elf64-ppc.c:11127 +msgid "%P: cannot find opd entry toc for `%pT'\n" +msgstr "`%P: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ opd у toc Ð´Ð»Ñ Â«%pT»\n" -#: elf64-ppc.c:10969 -msgid "%P: long branch stub `%s' offset overflow\n" -msgstr "%P: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ñтупу шаблона довгої гілки, «%s»\n" +#: elf64-ppc.c:11215 +#, c-format +msgid "long branch stub `%s' offset overflow" +msgstr "Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ñтупу шаблона довгої гілки, «%s»" -#: elf64-ppc.c:11028 -msgid "%P: can't find branch stub `%s'\n" -msgstr "%P: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ шаблон Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ Â«%s»\n" +#: elf64-ppc.c:11274 +#, c-format +msgid "can't find branch stub `%s'" +msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ шаблон Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ Â«%s»" -#: elf64-ppc.c:11092 elf64-ppc.c:11244 elf64-ppc.c:13052 +#: elf64-ppc.c:11338 elf64-ppc.c:11466 elf64-ppc.c:13435 #, c-format -msgid "%P: linkage table error against `%T'\n" -msgstr "%P: помилка у таблиці ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ «%T»\n" +msgid "%P: linkage table error against `%pT'\n" +msgstr "%P: помилка у таблиці ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ «%pT»\n" -#: elf64-ppc.c:11454 -msgid "%P: can't build branch stub `%s'\n" -msgstr "%P: не вдалоÑÑ Ð¿Ð¾Ð±ÑƒÐ´ÑƒÐ²Ð°Ñ‚Ð¸ шаблон Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ Â«%s»\n" +#: elf64-ppc.c:11689 +#, c-format +msgid "can't build branch stub `%s'" +msgstr "не вдалоÑÑ Ð¿Ð¾Ð±ÑƒÐ´ÑƒÐ²Ð°Ñ‚Ð¸ шаблон Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ Â«%s»" -#: elf64-ppc.c:12227 +#: elf64-ppc.c:12465 #, c-format -msgid "%B section %A exceeds stub group size" -msgstr "Розділ %B, %A, перевищує розміри групи шаблонів" +msgid "%pB section %pA exceeds stub group size" +msgstr "Розділ %pB, %pA, перевищує розміри групи шаблонів" -#: elf64-ppc.c:13331 -msgid "%P: stubs don't match calculated size\n" -msgstr "%P: шаблони не відповідають обчиÑленому розміру\n" +#: elf64-ppc.c:13833 +#, c-format +msgid "linker stubs in %u group\n" +msgid_plural "linker stubs in %u groups\n" +msgstr[0] "компонувальник не зміг виконати роботу у %u групі\n" +msgstr[1] "компонувальник не зміг виконати роботу у %u групах\n" +msgstr[2] "компонувальник не зміг виконати роботу у %u групах\n" +msgstr[3] "компонувальник не зміг виконати роботу у %u групі\n" -#: elf64-ppc.c:13343 +#: elf64-ppc.c:13837 #, c-format msgid "" -"linker stubs in %u group%s\n" " branch %lu\n" " toc adjust %lu\n" " long branch %lu\n" @@ -4491,7 +4078,6 @@ " plt call toc %lu\n" " global entry %lu" msgstr "" -"шаблони компонувальника у %u групах %s\n" " гілка %lu\n" " кориг. toc %lu\n" " довга гілка %lu\n" @@ -4500,1193 +4086,1271 @@ " toc вик. plt %lu\n" " заг. Ð·Ð°Ð¿Ð¸Ñ %lu" -#: elf64-ppc.c:13665 +#: elf64-ppc.c:14156 #, c-format -msgid "%H: %s used with TLS symbol `%T'\n" -msgstr "%H: %s викориÑтовуєтьÑÑ Ð· Ñимволом TLS «%T»\n" +msgid "%H: %s used with TLS symbol `%pT'\n" +msgstr "%H: %s викориÑтовуєтьÑÑ Ð· Ñимволом TLS «%pT»\n" -#: elf64-ppc.c:13667 +#: elf64-ppc.c:14158 #, c-format -msgid "%H: %s used with non-TLS symbol `%T'\n" -msgstr "%H: %s викориÑтовуєтьÑÑ Ð· Ñимволом поза TLS «%T»\n" +msgid "%H: %s used with non-TLS symbol `%pT'\n" +msgstr "%H: %s викориÑтовуєтьÑÑ Ð· Ñимволом поза TLS «%pT»\n" -#: elf64-ppc.c:14306 +#: elf64-ppc.c:14802 #, c-format -msgid "%H: call to `%T' lacks nop, can't restore toc; recompile with -fPIC\n" -msgstr "%H: у виклику «%T» не виÑтачає nop, Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ toc неможливе; зберіть повторно з -fPIC\n" +msgid "%H: call to `%pT' lacks nop, can't restore toc; recompile with -fPIC\n" +msgstr "%H: у виклику «%pT» не виÑтачає nop, Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ toc неможливе; зберіть повторно з -fPIC\n" -#: elf64-ppc.c:14312 +#: elf64-ppc.c:14808 #, c-format -msgid "%H: call to `%T' lacks nop, can't restore toc; (-mcmodel=small toc adjust stub)\n" -msgstr "%P: %H: у виклику «%T» не виÑтачає nop, Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ toc неможливе (-mcmodel=small Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ð³ÑƒÐ²Ð°Ð½Ð½Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð°)\n" +msgid "%H: call to `%pT' lacks nop, can't restore toc; (-mcmodel=small toc adjust stub)\n" +msgstr "%P: %H: у виклику «%pT» не виÑтачає nop, Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ toc неможливе (-mcmodel=small Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ð³ÑƒÐ²Ð°Ð½Ð½Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð°)\n" -#: elf64-ppc.c:14440 +#: elf64-ppc.c:15503 #, c-format -msgid "%P: %B: unknown relocation type %d for `%T'\n" -msgstr "%P: %B: невідомий тип переÑуваннÑ, %d, Ð´Ð»Ñ Â«%T»\n" +msgid "%H: %s for indirect function `%pT' unsupported\n" +msgstr "%H: підтримки %s Ð´Ð»Ñ Ð¾Ð¿Ð¾Ñередкованої функції «%pT» не передбачено\n" -#: elf64-ppc.c:14994 +#: elf64-ppc.c:15615 #, c-format -msgid "%H: %s for indirect function `%T' unsupported\n" -msgstr "%H: підтримки %s Ð´Ð»Ñ Ð¾Ð¿Ð¾Ñередкованої функції «%T» не передбачено\n" +msgid "%P: %pB: %s is not supported for `%pT'\n" +msgstr "%P: %pB: підтримки %s Ð´Ð»Ñ Â«%pT» не передбачено\n" -#: elf64-ppc.c:15132 -#, c-format -msgid "%P: %B: %s is not supported for `%T'\n" -msgstr "%P: %B: підтримки %s Ð´Ð»Ñ Â«%T» не передбачено\n" - -#: elf64-ppc.c:15287 +#: elf64-ppc.c:15841 #, c-format msgid "%H: error: %s not a multiple of %u\n" msgstr "%H: помилка: %s не Ñ” кратним до %u\n" -#: elf64-ppc.c:15309 +#: elf64-ppc.c:15864 #, c-format -msgid "%H: unresolvable %s against `%T'\n" -msgstr "%H: нерозв’Ñзне %s щодо «%T»\n" +msgid "%H: unresolvable %s against `%pT'\n" +msgstr "%H: нерозв’Ñзне %s щодо «%pT»\n" -#: elf64-ppc.c:15406 +#: elf64-ppc.c:15961 #, c-format -msgid "%H: %s against `%T': error %d\n" -msgstr "%H: %s щодо «%T»: помилка %d\n" +msgid "%H: %s against `%pT': error %d\n" +msgstr "%H: %s щодо «%pT»: помилка %d\n" -#: elf64-ppc.c:15801 elf64-ppc.c:15830 -msgid "%P: %s offset too large for .eh_frame sdata4 encoding" -msgstr "%P: відÑтуп %s Ñ” надто великим Ð´Ð»Ñ ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ sdata4 .eh_frame" - -#: elf64-s390.c:2712 -msgid "%B: `%s' non-PLT reloc for symbol defined in shared library and accessed from executable (rebuild file with -fPIC ?)" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ-PLT «%s» Ð´Ð»Ñ Ñимволу, визначеного у бібліотеці Ñпільного викориÑтаннÑ, Ñ– доÑтупного з виконуваного файла (Ñлід повторно зібрати файл із -fPIC ?)" +#: elf64-ppc.c:16307 elf64-ppc.c:16326 +#, c-format +msgid "%s offset too large for .eh_frame sdata4 encoding" +msgstr "відÑтуп %s Ñ” надто великим Ð´Ð»Ñ ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ sdata4 .eh_frame" -#: elf64-sh64.c:1680 +#: elf64-s390.c:2540 #, c-format -msgid "%B: error: unaligned relocation type %d at %08x reloc %08x\n" -msgstr "%B: помилка: невирівнÑний тип переÑÑƒÐ²Ð°Ð½Ð½Ñ %d у %08x, переÑÑƒÐ²Ð°Ð½Ð½Ñ %08x\n" +msgid "%pB: `%s' non-PLT reloc for symbol defined in shared library and accessed from executable (rebuild file with -fPIC ?)" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ-PLT «%s» Ð´Ð»Ñ Ñимволу, визначеного у бібліотеці Ñпільного викориÑтаннÑ, Ñ– доÑтупного з виконуваного файла (Ñлід повторно зібрати файл із -fPIC ?)" -#: elf64-sparc.c:460 -msgid "%B: Only registers %%g[2367] can be declared using STT_REGISTER" -msgstr "%B: за допомогою STT_REGISTER можна оголошувати лише регіÑтри %%g[2367]" +#: elf64-sparc.c:459 +#, c-format +msgid "%pB: only registers %%g[2367] can be declared using STT_REGISTER" +msgstr "%pB: за допомогою STT_REGISTER можна оголошувати лише регіÑтри %%g[2367]" -#: elf64-sparc.c:481 +#: elf64-sparc.c:480 #, c-format -msgid "Register %%g%d used incompatibly: %s in %B, previously %s in %B" -msgstr "ÐеÑуміÑне викориÑÑ‚Ð°Ð½Ð½Ñ Ñ€ÐµÐ³Ñ–Ñтру %%g%d: %s у %B, раніше викориÑтано %s у %B" +msgid "register %%g%d used incompatibly: %s in %pB, previously %s in %pB" +msgstr "неÑуміÑне викориÑÑ‚Ð°Ð½Ð½Ñ Ñ€ÐµÐ³Ñ–Ñтру %%g%d: %s у %pB, раніше викориÑтано %s у %pB" -#: elf64-sparc.c:505 +#: elf64-sparc.c:504 #, c-format -msgid "Symbol `%s' has differing types: REGISTER in %B, previously %s in %B" -msgstr "Символ «%s» належить до різних типів: REGISTER у %B Ñ– %s раніше у %B" +msgid "symbol `%s' has differing types: REGISTER in %pB, previously %s in %pB" +msgstr "Ñимвол «%s» належить до різних типів: REGISTER у %pB Ñ– %s раніше у %pB" -#: elf64-sparc.c:552 +#: elf64-sparc.c:551 #, c-format -msgid "Symbol `%s' has differing types: %s in %B, previously REGISTER in %B" -msgstr "Символ «s» належить до різних типів: %s у %B Ñ– REGISTER раніше у %B" +msgid "Symbol `%s' has differing types: %s in %pB, previously REGISTER in %pB" +msgstr "Символ «%s» належить до різних типів: %s у %pB Ñ– REGISTER раніше у %pB" -#: elf64-sparc.c:707 -msgid "%B: linking UltraSPARC specific with HAL specific code" -msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ UltraSPARC-Ñпецифічного та HAL-Ñпецифічного коду" +#: elf64-sparc.c:706 +#, c-format +msgid "%pB: linking UltraSPARC specific with HAL specific code" +msgstr "%pB: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ UltraSPARC-Ñпецифічного та HAL-Ñпецифічного коду" -#: elf64-x86-64.c:1923 +#: elf64-x86-64.c:1412 msgid "hidden symbol " msgstr "прихований Ñимвол " -#: elf64-x86-64.c:1926 +#: elf64-x86-64.c:1415 msgid "internal symbol " msgstr "внутрішній Ñимвол " -#: elf64-x86-64.c:1929 +#: elf64-x86-64.c:1418 elf64-x86-64.c:1422 msgid "protected symbol " msgstr "захищений Ñимвол " -#: elf64-x86-64.c:1932 +#: elf64-x86-64.c:1424 msgid "symbol " msgstr "Ñимвол " -#: elf64-x86-64.c:1933 elf64-x86-64.c:1943 +#: elf64-x86-64.c:1425 elf64-x86-64.c:1435 msgid "; recompile with -fPIC" msgstr "; виконайте повторне Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð· -fPIC" -#: elf64-x86-64.c:1938 +#: elf64-x86-64.c:1430 msgid "undefined " msgstr "невизначений " -#: elf64-x86-64.c:1947 -#, c-format -msgid "%B: relocation %s against %s%s`%s' can not be used when making a shared object%s" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо %s%s«%s», не можна викориÑтовувати під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñпільного викориÑтаннÑ%s" +#: elf64-x86-64.c:1439 +msgid "a shared object" +msgstr "Ñпільний об'єкт" -#: elf64-x86-64.c:2510 -#, c-format -msgid "%B: relocation %s against symbol `%s' isn't supported in x32 mode" -msgstr "%B: підтримки переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо Ñимволу «%s» у режимі x32 не передбачено" +#: elf64-x86-64.c:1441 +msgid "a PIE object" +msgstr "об'єкт PIE" -#: elf64-x86-64.c:2633 -#, c-format -msgid "%B: '%s' accessed both as normal and thread local symbol" -msgstr "'%B: доÑтуп до «%s» виконуєтьÑÑ Ñк до звичайного Ñимволу та локального Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñимволу" +#: elf64-x86-64.c:1443 +msgid "a PDE object" +msgstr "об'єкт PDE" -#: elf64-x86-64.c:4576 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:5018 +#: elf64-x86-64.c:1446 #, c-format -msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %d" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо Ñимволу STT_GNU_IFUNC, «%s», міÑтить ненульовий доданок: %d" +msgid "%pB: relocation %s against %s%s`%s' can not be used when making %s%s" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо %s%s«%s», не можна викориÑтовувати під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ %s%s" -#: elf64-x86-64.c:4831 +#: elf64-x86-64.c:1931 #, c-format -msgid "%B: relocation R_X86_64_GOTOFF64 against undefined %s `%s' can not be used when making a shared object" -msgstr "B: переÑÑƒÐ²Ð°Ð½Ð½Ñ R_X86_64_GOTOFF64 щодо невизначеного %s, «%s», не можна викориÑтовувати під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñпільного викориÑтаннÑ" +msgid "%pB: relocation %s against symbol `%s' isn't supported in x32 mode" +msgstr "%pB: підтримки переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо Ñимволу «%s» у режимі x32 не передбачено" -#: elf64-x86-64.c:4845 +#: elf64-x86-64.c:2073 #, c-format -msgid "%B: relocation R_X86_64_GOTOFF64 against protected %s `%s' can not be used when making a shared object" -msgstr "%B: не можна викориÑтовувати R_X86_64_GOTOFF64 переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ захищеної %s «%s» під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñпільного викориÑтаннÑ" +msgid "%pB: '%s' accessed both as normal and thread local symbol" +msgstr "'%pB: доÑтуп до «%s» виконуєтьÑÑ Ñк до звичайного Ñимволу та локального Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñимволу" -#: elf64-x86-64.c:5122 +#: elf64-x86-64.c:2693 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-aarch64.c:5299 #, c-format -msgid "%B: addend -0x%x in relocation %s against symbol `%s' at 0x%lx in section `%A' is out of range" -msgstr "%B: доданок -0x%x у переÑуванні %s щодо Ñимволу «%s» за адреÑою 0x%lx у розділі «%A» перебуває поза межами припуÑтимого діапазону" +msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо Ñимволу STT_GNU_IFUNC, «%s», міÑтить ненульовий доданок: %" -#: elf64-x86-64.c:5130 +#: elf64-x86-64.c:2931 #, c-format -msgid "%B: addend 0x%x in relocation %s against symbol `%s' at 0x%lx in section `%A' is out of range" -msgstr "%B: доданок 0x%x у переÑуванні %s щодо Ñимволу «%s» за адреÑою 0x%lx у розділі «%A» перебуває поза межами припуÑтимого діапазону" +msgid "%pB: relocation R_X86_64_GOTOFF64 against undefined %s `%s' can not be used when making a shared object" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ R_X86_64_GOTOFF64 щодо невизначеного %s, «%s», не можна викориÑтовувати під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñпільного викориÑтаннÑ" -#: elf64-x86-64.c:5952 +#: elf64-x86-64.c:2945 #, c-format -msgid "%F%B: PC-relative offset overflow in PLT entry for `%s'\n" -msgstr "%F%B: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð·Ñуву відноÑно PC у запиÑÑ– PLT Ð´Ð»Ñ Â«%s»\n" +msgid "%pB: relocation R_X86_64_GOTOFF64 against protected %s `%s' can not be used when making a shared object" +msgstr "%pB: не можна викориÑтовувати R_X86_64_GOTOFF64 переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ захищеної %s «%s» під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñпільного викориÑтаннÑ" -#: elf64-x86-64.c:6019 +#: elf64-x86-64.c:3205 #, c-format -msgid "%F%B: branch displacement overflow in PLT entry for `%s'\n" -msgstr "%F%B: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð³Ñ–Ð»Ð¾Ðº у запиÑÑ– PLT Ð´Ð»Ñ Â«%s»\n" +msgid "%pB: addend %s%#x in relocation %s against symbol `%s' at %# in section `%pA' is out of range" +msgstr "%pB: доданок %s%#x у переÑуванні %s щодо Ñимволу «%s» за адреÑою %# у розділі «%pA» перебуває поза межами припуÑтимого діапазону" -#: elf64-x86-64.c:6072 +#: elf64-x86-64.c:3882 +msgid "%F%P: failed to convert GOTPCREL relocation; relink with --no-relax\n" +msgstr "%F%P: не вдалоÑÑ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ переÑÑƒÐ²Ð°Ð½Ð½Ñ GOTPCREL; повторно Ñкомпонуйте з --no-relax\n" + +#: elf64-x86-64.c:4040 #, c-format -msgid "%F%B: PC-relative offset overflow in GOT PLT entry for `%s'\n" -msgstr "%F%B: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð·Ñуву відноÑно PC у запиÑÑ– PLT GOT Ð´Ð»Ñ Â«%s»\n" +msgid "%F%pB: PC-relative offset overflow in PLT entry for `%s'\n" +msgstr "%F%pB: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð·Ñуву відноÑно PC у запиÑÑ– PLT Ð´Ð»Ñ Â«%s»\n" -#: elf64-x86-64.c:7663 +#: elf64-x86-64.c:4103 #, c-format -msgid "%F: failed to create BND PLT section\n" -msgstr "%F: не вдалоÑÑ Ñтворити розділ PLT BND\n" +msgid "%F%pB: branch displacement overflow in PLT entry for `%s'\n" +msgstr "%F%pB: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð³Ñ–Ð»Ð¾Ðº у запиÑÑ– PLT Ð´Ð»Ñ Â«%s»\n" -#: elf64-x86-64.c:7713 +#: elf64-x86-64.c:4156 #, c-format -msgid "%F: failed to create BND PLT .eh_frame section\n" -msgstr "%F: не вдалоÑÑ Ñтворити розділ .eh_frame PLT BND\n" +msgid "%F%pB: PC-relative offset overflow in GOT PLT entry for `%s'\n" +msgstr "%F%pB: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð·Ñуву відноÑно PC у запиÑÑ– PLT GOT Ð´Ð»Ñ Â«%s»\n" #: elfcode.h:760 -msgid "warning: %B has a corrupt string table index - ignoring" -msgstr "попередженнÑ: покажчик таблиці Ñ€Ñдків %B пошкоджено — ігноруєтьÑÑ" +#, c-format +msgid "warning: %pB has a corrupt string table index - ignoring" +msgstr "попередженнÑ: покажчик таблиці Ñ€Ñдків %pB пошкоджено — ігноруєтьÑÑ" -#: elfcode.h:1193 +#: elfcode.h:1199 #, c-format -msgid "%B: version count (%ld) does not match symbol count (%ld)" -msgstr "%B: лічильник верÑÑ–Ñ— (%ld) не збігаєтьÑÑ Ð· лічильником Ñимволу (%ld)" +msgid "%pB: version count (%) does not match symbol count (%ld)" +msgstr "%pB: лічильник верÑÑ–Ñ— (%) не збігаєтьÑÑ Ð· лічильником Ñимволу (%ld)" -#: elfcode.h:1448 +#: elfcode.h:1458 #, c-format -msgid "%B(%A): relocation %d has invalid symbol index %ld" -msgstr "%B(%A): переÑÑƒÐ²Ð°Ð½Ð½Ñ %d міÑтить некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñимволу, %ld" +msgid "%pB(%pA): relocation %d has invalid symbol index %ld" +msgstr "%pB(%pA): переÑÑƒÐ²Ð°Ð½Ð½Ñ %d міÑтить некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñимволу, %ld" #: elfcore.h:300 #, c-format -msgid "Warning: %B is truncated: expected core file size >= %lu, found: %lu." -msgstr "ПопередженнÑ: %B обрізано: очікуваний розмір оÑновного файла >= %lu, виÑвлено: %lu." +msgid "warning: %pB is truncated: expected core file size >= %, found: %" +msgstr "попередженнÑ: %pB обрізано: очікуваний розмір оÑновного файла >= %, виÑвлено: %." -#: elflink.c:1336 +#: elflink.c:1369 #, c-format -msgid "%s: TLS definition in %B section %A mismatches non-TLS definition in %B section %A" -msgstr "%s: Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ TLS у %B, розділ %A, не збігаєтьÑÑ Ð· визначеннÑм не-TLS у розділі %B %A" +msgid "%s: TLS definition in %pB section %pA mismatches non-TLS definition in %pB section %pA" +msgstr "%s: Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ TLS у %pB, розділ %pA, не збігаєтьÑÑ Ð· визначеннÑм не-TLS у розділі %pB %pA" -#: elflink.c:1342 +#: elflink.c:1375 #, c-format -msgid "%s: TLS reference in %B mismatches non-TLS reference in %B" -msgstr "%s: поÑÐ¸Ð»Ð°Ð½Ð½Ñ TLS у %B не збігаєтьÑÑ Ð· поÑиланнÑм не-TLS у %B" +msgid "%s: TLS reference in %pB mismatches non-TLS reference in %pB" +msgstr "%s: поÑÐ¸Ð»Ð°Ð½Ð½Ñ TLS у %pB не збігаєтьÑÑ Ð· поÑиланнÑм не-TLS у %pB" -#: elflink.c:1348 +#: elflink.c:1381 #, c-format -msgid "%s: TLS definition in %B section %A mismatches non-TLS reference in %B" -msgstr "%s: Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ TLS у %B, розділ %A, не збігаєтьÑÑ Ð· поÑиланнÑм не-TLS у розділі %B, %A" +msgid "%s: TLS definition in %pB section %pA mismatches non-TLS reference in %pB" +msgstr "%s: Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ TLS у %pB, розділ %pA, не збігаєтьÑÑ Ð· поÑиланнÑм не-TLS у %pB" -#: elflink.c:1354 +#: elflink.c:1387 #, c-format -msgid "%s: TLS reference in %B mismatches non-TLS definition in %B section %A" -msgstr "%s: поÑÐ¸Ð»Ð°Ð½Ð½Ñ TLS у %B не збігаєтьÑÑ Ð· визначеннÑм не-TLS у розділі %B %A" +msgid "%s: TLS reference in %pB mismatches non-TLS definition in %pB section %pA" +msgstr "%s: поÑÐ¸Ð»Ð°Ð½Ð½Ñ TLS у %pB не збігаєтьÑÑ Ð· визначеннÑм не-TLS у розділі %pB %pA" -#: elflink.c:2015 +#: elflink.c:2068 #, c-format -msgid "%B: unexpected redefinition of indirect versioned symbol `%s'" -msgstr "%B: неочікуване Ð¿ÐµÑ€ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñимволу з непрÑмим визначеннÑм верÑÑ–Ñ—, «%s»" +msgid "%pB: unexpected redefinition of indirect versioned symbol `%s'" +msgstr "%pB: неочікуване Ð¿ÐµÑ€ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñимволу з непрÑмим визначеннÑм верÑÑ–Ñ—, «%s»" -#: elflink.c:2308 +#: elflink.c:2437 #, c-format -msgid "%B: version node not found for symbol %s" -msgstr "%B: не знайдено вузла верÑÑ–Ñ— Ð´Ð»Ñ Ñимволу %s" +msgid "%pB: version node not found for symbol %s" +msgstr "%pB: не знайдено вузла верÑÑ–Ñ— Ð´Ð»Ñ Ñимволу %s" -#: elflink.c:2397 +#: elflink.c:2526 #, c-format -msgid "%B: bad reloc symbol index (%#lx >= %#lx) for offset %#Lx in section `%A'" -msgstr "%B: помилковий Ñ–Ð½Ð´ÐµÐºÑ Ñимволу переÑÑƒÐ²Ð°Ð½Ð½Ñ (%#lx >= %#lx) Ð´Ð»Ñ Ð²Ñ–Ð´Ñтупу %#Lx у розділі «%A»" +msgid "%pB: bad reloc symbol index (%# >= %#lx) for offset %# in section `%pA'" +msgstr "%pB: помилковий Ñ–Ð½Ð´ÐµÐºÑ Ñимволу переÑÑƒÐ²Ð°Ð½Ð½Ñ (%# >= %#lx) Ð´Ð»Ñ Ð²Ñ–Ð´Ñтупу %# у розділі «%pA»" -#: elflink.c:2409 +#: elflink.c:2538 #, c-format -msgid "%B: non-zero symbol index (%#lx) for offset %#Lx in section `%A' when the object file has no symbol table" -msgstr "%B: ненульовий Ñ–Ð½Ð´ÐµÐºÑ Ñимволу (%#lx) Ð´Ð»Ñ Ð²Ñ–Ð´Ñтупу %#Lx у розділі «%A», але у об’єктному файлі немає таблиці Ñимволів" +msgid "%pB: non-zero symbol index (%#) for offset %# in section `%pA' when the object file has no symbol table" +msgstr "%pB: ненульовий Ñ–Ð½Ð´ÐµÐºÑ Ñимволу (%#) Ð´Ð»Ñ Ð²Ñ–Ð´Ñтупу %# у розділі «%pA», але у об’єктному файлі немає таблиці Ñимволів" -#: elflink.c:2600 +#: elflink.c:2729 #, c-format -msgid "%B: relocation size mismatch in %B section %A" -msgstr "%B: невідповідніÑÑ‚ÑŒ розміру переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ розділі %B %A" +msgid "%pB: relocation size mismatch in %pB section %pA" +msgstr "%pB: невідповідніÑÑ‚ÑŒ розміру переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ розділі %pB %pA" -#: elflink.c:2911 +#: elflink.c:3047 #, c-format msgid "warning: type and size of dynamic symbol `%s' are not defined" msgstr "попередженнÑ: тип Ñ– розмір динамічного Ñимволу «%s» не визначено" -#: elflink.c:2976 -msgid "%P: copy reloc against protected `%T' is dangerous\n" -msgstr "%P: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð· копіюваннÑм щодо захищеного «%T» Ñ” небезпечним\n" +#: elflink.c:3109 +msgid "%P: copy reloc against protected `%pT' is dangerous\n" +msgstr "%P: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð· копіюваннÑм щодо захищеного «%pT» Ñ” небезпечним\n" -#: elflink.c:3777 +#: elflink.c:3913 #, c-format -msgid "%P: alternate ELF machine code found (%d) in %B, expecting %d\n" -msgstr "%P: виÑвлено альтернативний машинний код ELF (%d) у %B, очікувалоÑÑ %d\n" +msgid "alternate ELF machine code found (%d) in %pB, expecting %d" +msgstr "виÑвлено альтернативний машинний код ELF (%d) у %pB, очікувалоÑÑ %d" -#: elflink.c:4438 +#: elflink.c:4579 #, c-format -msgid "%B: %s: invalid version %u (max %d)" -msgstr "%B: %s: некоректна верÑÑ–Ñ, %u (макÑимум — %d)" +msgid "%pB: %s: invalid version %u (max %d)" +msgstr "%pB: %s: некоректна верÑÑ–Ñ, %u (макÑимум — %d)" -#: elflink.c:4475 +#: elflink.c:4616 #, c-format -msgid "%B: %s: invalid needed version %d" -msgstr "%B: %s: некоректний Ð·Ð°Ð¿Ð¸Ñ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð¾Ñ— верÑÑ–Ñ— %d" +msgid "%pB: %s: invalid needed version %d" +msgstr "%pB: %s: некоректний Ð·Ð°Ð¿Ð¸Ñ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð¾Ñ— верÑÑ–Ñ— %d" -#: elflink.c:4754 +#: elflink.c:5035 #, c-format -msgid "Warning: size of symbol `%s' changed from %Lu in %B to %Lu in %B" -msgstr "ПопередженнÑ: розмір Ñимволу «%s» змінено з %Lu у %B на %Lu у %B" +msgid "%pB: undefined reference to symbol '%s'" +msgstr "%pB: невизначене поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° Ñимвол «%s»" -#: elflink.c:4890 +#: elflink.c:6111 #, c-format -msgid "%B: undefined reference to symbol '%s'" -msgstr "%B: невизначене поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° Ñимвол «%s»" +msgid "%pB: stack size specified and %s set" +msgstr "%pB: вказано розміри Ñтека Ñ– вÑтановлено %s" -#: elflink.c:5903 +#: elflink.c:6115 #, c-format -msgid "%B: stack size specified and %s set" -msgstr "%B: вказано розміри Ñтека Ñ– вÑтановлено %s" +msgid "%pB: %s not absolute" +msgstr "%pB: %s не Ñ” абÑолютним" -#: elflink.c:5907 -#, c-format -msgid "%B: %s not absolute" -msgstr "%B: %s не Ñ” абÑолютним" - -#: elflink.c:6105 +#: elflink.c:6312 #, c-format msgid "%s: undefined version: %s" msgstr "%s: невизначена верÑÑ–Ñ: %s" -#: elflink.c:6682 -msgid "%B: .preinit_array section is not allowed in DSO" -msgstr "%B: не можна викориÑтовувати розділ .preinit_array у DSO" +#: elflink.c:6883 +#, c-format +msgid "%pB: .preinit_array section is not allowed in DSO" +msgstr "%pB: не можна викориÑтовувати розділ .preinit_array у DSO" -#: elflink.c:8122 +#: elflink.c:8340 #, c-format msgid "undefined %s reference in complex symbol: %s" msgstr "невизначене поÑиланнÑ, %s, у Ñкладеному Ñимволі: %s" -#: elflink.c:8277 +#: elflink.c:8495 #, c-format msgid "unknown operator '%c' in complex symbol" msgstr "невідомий оператор, «%c», у Ñкладеному Ñимволі" #. PR 21524: Let the user know if a symbol was removed by garbage collection. -#: elflink.c:8615 -msgid "%B:%A: error: relocation references symbol %s which was removed by garbage collection." -msgstr "%B:%A: помилка: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾ÑилаєтьÑÑ Ð½Ð° Ñимвол %s, Ñкий було вилучено заÑобом Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ ÑміттÑ." - -#: elflink.c:8618 -msgid "%B:%A: error: try relinking with --gc-keep-exported enabled." -msgstr "%B:%A: помилка: Ñпробуйте виконати повторне ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð· увімкненим --gc-keep-exported." - -#: elflink.c:8855 elflink.c:8873 elflink.c:8912 elflink.c:8930 -msgid "%B: Unable to sort relocs - they are in more than one size" -msgstr "%B: не вдалоÑÑ Ð²Ð¿Ð¾Ñ€Ñдкувати переÑуваннÑ: їхні розміри не Ñ” однаковими" +#: elflink.c:8833 +#, c-format +msgid "%pB:%pA: error: relocation references symbol %s which was removed by garbage collection" +msgstr "%pB:%pA: помилка: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾ÑилаєтьÑÑ Ð½Ð° Ñимвол %s, Ñкий було вилучено заÑобом Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ ÑміттÑ" + +#: elflink.c:8836 +#, c-format +msgid "%pB:%pA: error: try relinking with --gc-keep-exported enabled" +msgstr "%pB:%pA: помилка: Ñпробуйте виконати повторне ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð· увімкненим --gc-keep-exported" + +#: elflink.c:9072 elflink.c:9090 elflink.c:9129 elflink.c:9147 +#, c-format +msgid "%pB: unable to sort relocs - they are in more than one size" +msgstr "%pB: не вдалоÑÑ Ð²Ð¿Ð¾Ñ€Ñдкувати переÑуваннÑ: їхні розміри не Ñ” однаковими" #. The section size is not divisible by either - #. something is wrong. -#: elflink.c:8889 elflink.c:8946 -msgid "%B: Unable to sort relocs - they are of an unknown size" -msgstr "%B: не вдалоÑÑ Ð²Ð¿Ð¾Ñ€Ñдкувати переÑуваннÑ: їхні розміри невідомі" +#: elflink.c:9106 elflink.c:9163 +#, c-format +msgid "%pB: unable to sort relocs - they are of an unknown size" +msgstr "%pB: не вдалоÑÑ Ð²Ð¿Ð¾Ñ€Ñдкувати переÑуваннÑ: їхні розміри невідомі" -#: elflink.c:8998 -msgid "Not enough memory to sort relocations" -msgstr "ÐедоÑтатньо пам’ÑÑ‚Ñ– Ð´Ð»Ñ Ð²Ð¿Ð¾Ñ€ÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÑувань" +#: elflink.c:9215 +msgid "not enough memory to sort relocations" +msgstr "недоÑтатньо пам’ÑÑ‚Ñ– Ð´Ð»Ñ Ð²Ð¿Ð¾Ñ€ÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÑувань" -#: elflink.c:9266 +#: elflink.c:9483 #, c-format -msgid "%B: Too many sections: %d (>= %d)" -msgstr "%B: забагато розділів: %d (>= %d)" +msgid "%pB: too many sections: %d (>= %d)" +msgstr "%pB: забагато розділів: %d (>= %d)" -#: elflink.c:9546 +#: elflink.c:9763 #, c-format -msgid "%B: internal symbol `%s' in %B is referenced by DSO" -msgstr "%B: на внутрішній Ñимвол «%s» у %B Ñ–Ñнує поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð· DSO" +msgid "%pB: internal symbol `%s' in %pB is referenced by DSO" +msgstr "%pB: на внутрішній Ñимвол «%s» у %pB Ñ–Ñнує поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð· DSO" -#: elflink.c:9549 +#: elflink.c:9766 #, c-format -msgid "%B: hidden symbol `%s' in %B is referenced by DSO" -msgstr "%B: на прихований Ñимвол «%s» у %B Ñ–Ñнує поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð· DSO" +msgid "%pB: hidden symbol `%s' in %pB is referenced by DSO" +msgstr "%pB: на прихований Ñимвол «%s» у %pB Ñ–Ñнує поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð· DSO" -#: elflink.c:9552 +#: elflink.c:9769 #, c-format -msgid "%B: local symbol `%s' in %B is referenced by DSO" -msgstr "%B: на локальний Ñимвол «%s» у %B Ñ–Ñнує поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð· DSO" +msgid "%pB: local symbol `%s' in %pB is referenced by DSO" +msgstr "%pB: на локальний Ñимвол «%s» у %pB Ñ–Ñнує поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð· DSO" -#: elflink.c:9638 +#: elflink.c:9855 #, c-format -msgid "%B: could not find output section %A for input section %A" -msgstr "%B: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ розділ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… %A Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… %A" +msgid "%pB: could not find output section %pA for input section %pA" +msgstr "%pB: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ розділ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… %pA Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… %pA" -#: elflink.c:9792 +#: elflink.c:10009 #, c-format -msgid "%B: protected symbol `%s' isn't defined" -msgstr "%B: захищений Ñимвол «%s» не визначено" +msgid "%pB: protected symbol `%s' isn't defined" +msgstr "%pB: захищений Ñимвол «%s» не визначено" -#: elflink.c:9795 +#: elflink.c:10012 #, c-format -msgid "%B: internal symbol `%s' isn't defined" -msgstr "%B: внутрішній Ñимвол «%s» не визначено" +msgid "%pB: internal symbol `%s' isn't defined" +msgstr "%pB: внутрішній Ñимвол «%s» не визначено" -#: elflink.c:9798 +#: elflink.c:10015 #, c-format -msgid "%B: hidden symbol `%s' isn't defined" -msgstr "%B: прихований Ñимвол «%s» не визначено" +msgid "%pB: hidden symbol `%s' isn't defined" +msgstr "%pB: прихований Ñимвол «%s» не визначено" -#: elflink.c:9829 +#: elflink.c:10046 #, c-format -msgid "%B: No symbol version section for versioned symbol `%s'" -msgstr "%B: немає розділу верÑÑ–Ñ— Ñимволів Ð´Ð»Ñ Ñимволу з верÑією «%s»" +msgid "%pB: no symbol version section for versioned symbol `%s'" +msgstr "%pB: немає розділу верÑÑ–Ñ— Ñимволів Ð´Ð»Ñ Ñимволу з верÑією «%s»" -#: elflink.c:10436 +#: elflink.c:10656 #, c-format -msgid "error: %B: size of section %A is not multiple of address size" -msgstr "помилка: %B: розмір розділу %A не Ñ” кратним до розміру адреÑи" +msgid "error: %pB: size of section %pA is not multiple of address size" +msgstr "помилка: %pB: розмір розділу %pA не Ñ” кратним до розміру адреÑи" -#: elflink.c:10481 +#: elflink.c:10701 #, c-format -msgid "error: %B contains a reloc (%#Lx) for section %A that references a non-existent global symbol" -msgstr "помилка: %B міÑтить переÑÑƒÐ²Ð°Ð½Ð½Ñ (%#Lx) Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %A, Ñке поÑилаєтьÑÑ Ð½Ð° загальний Ñимвол, Ñкого не Ñ–Ñнує" +msgid "error: %pB contains a reloc (%#) for section %pA that references a non-existent global symbol" +msgstr "помилка: %pB міÑтить переÑÑƒÐ²Ð°Ð½Ð½Ñ (%#) Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %pA, Ñке поÑилаєтьÑÑ Ð½Ð° загальний Ñимвол, Ñкого не Ñ–Ñнує" -#: elflink.c:11236 +#: elflink.c:11456 #, c-format -msgid "%A has both ordered [`%A' in %B] and unordered [`%A' in %B] sections" -msgstr "%A міÑтить одразу впорÑдкований [«%A» у %B] Ñ– невпорÑдкований [«%A» у %B] розділи" +msgid "%pA has both ordered [`%pA' in %pB] and unordered [`%pA' in %pB] sections" +msgstr "%pA міÑтить одразу впорÑдкований [«%pA» у %pB] Ñ– невпорÑдкований [«%pA» у %pB] розділи" -#: elflink.c:11242 +#: elflink.c:11462 #, c-format -msgid "%A has both ordered and unordered sections" -msgstr "%A міÑтить одразу впорÑдкований Ñ– невпорÑдкований розділи" +msgid "%pA has both ordered and unordered sections" +msgstr "%pA міÑтить одразу впорÑдкований Ñ– невпорÑдкований розділи" -#: elflink.c:11344 -msgid "%B: no symbol found for import library" -msgstr "%B: не знайдено Ñимволів Ð´Ð»Ñ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸ імпортуваннÑ" +#: elflink.c:11564 +#, c-format +msgid "%pB: no symbol found for import library" +msgstr "%pB: не знайдено Ñимволів Ð´Ð»Ñ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸ імпортуваннÑ" -#: elflink.c:11966 +#: elflink.c:12193 #, c-format -msgid "%B: file class %s incompatible with %s" -msgstr "%B: ÐºÐ»Ð°Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² %s Ñ” неÑуміÑним з %s" +msgid "%pB: file class %s incompatible with %s" +msgstr "%pB: ÐºÐ»Ð°Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² %s Ñ” неÑуміÑним з %s" -#: elflink.c:12183 -msgid "%B: failed to generate import library" -msgstr "%B: не вдалоÑÑ Ñтворити бібліотеку імпортуваннÑ" +#: elflink.c:12410 +#, c-format +msgid "%pB: failed to generate import library" +msgstr "%pB: не вдалоÑÑ Ñтворити бібліотеку імпортуваннÑ" -#: elflink.c:12302 +#: elflink.c:12529 #, c-format msgid "warning: %s section has zero size" msgstr "попередженнÑ: розмір розділу %s Ñ” нульовим" -#: elflink.c:12350 +#: elflink.c:12577 #, c-format msgid "warning: section '%s' is being made into a note" msgstr "попередженнÑ: розділ «%s» перетворено на нотатку" -#: elflink.c:12442 -msgid "%P%X: read-only segment has dynamic relocations.\n" -msgstr "%P%X: Ñегмент, призначений лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ, міÑтить динамічні переÑуваннÑ.\n" - -#: elflink.c:12445 -msgid "%P: warning: creating a DT_TEXTREL in a shared object.\n" -msgstr "%P: попередженнÑ: Ñтворюємо DT_TEXTREL у об’єкті Ñпільного викориÑтаннÑ.\n" +#: elflink.c:12669 +msgid "%P%X: read-only segment has dynamic relocations\n" +msgstr "%P%X: Ñегмент, призначений лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ, міÑтить динамічні переÑуваннÑ\n" + +#: elflink.c:12672 +msgid "%P: warning: creating a DT_TEXTREL in a shared object\n" +msgstr "%P: попередженнÑ: Ñтворюємо DT_TEXTREL у об’єкті Ñпільного викориÑтаннÑ\n" -#: elflink.c:12570 +#: elflink.c:12797 msgid "%P%X: can not read symbols: %E\n" msgstr "%P%X: не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ñимволи: %E\n" -#: elflink.c:12732 -msgid "%F%P: corrupt input: %B\n" -msgstr "%F%P: пошкоджені вхідні дані: %B\n" +#: elflink.c:12970 +msgid "%F%P: corrupt input: %pB\n" +msgstr "%F%P: пошкоджені вхідні дані: %pB\n" -#: elflink.c:13421 +#: elflink.c:13636 #, c-format -msgid "%B: %A+%#Lx: No symbol found for INHERIT" -msgstr "%B: %A+%#Lx: не знайдено Ñимволу Ð´Ð»Ñ INHERIT" +msgid "%pB: %pA+%#: no symbol found for INHERIT" +msgstr "%pB: %pA+%#: не знайдено Ñимволу Ð´Ð»Ñ INHERIT" -#: elflink.c:13597 +#: elflink.c:13812 #, c-format -msgid "Unrecognized INPUT_SECTION_FLAG %s\n" -msgstr "Ðерозпізнаний INPUT_SECTION_FLAG, %s\n" +msgid "unrecognized INPUT_SECTION_FLAG %s\n" +msgstr "нерозпізнаний INPUT_SECTION_FLAG, %s\n" #: elfxx-mips.c:1444 msgid "static procedure (no name)" msgstr "Ñтатична процедура (без назви)" -#: elfxx-mips.c:5627 +#: elfxx-mips.c:5629 msgid "MIPS16 and microMIPS functions cannot call each other" msgstr "Функції MIPS16 Ñ– microMIPS не можуть викликати одна одну" -#: elfxx-mips.c:6370 -msgid "%X%H: Unsupported JALX to the same ISA mode\n" +#: elfxx-mips.c:6377 +msgid "%X%H: unsupported JALX to the same ISA mode\n" msgstr "%X%H: непідтримуваний JALX до того Ñамого режиму ISA\n" -#: elfxx-mips.c:6403 -msgid "%X%H: Unsupported jump between ISA modes; consider recompiling with interlinking enabled\n" +#: elfxx-mips.c:6410 +msgid "%X%H: unsupported jump between ISA modes; consider recompiling with interlinking enabled\n" msgstr "%X%H: непідтримуваний перехід між режимами ISA; Ñпробуйте повторно зібрати з увімкненим взаємним компонуваннÑм\n" -#: elfxx-mips.c:6444 -msgid "%X%H: Cannot convert branch between ISA modes to JALX: relocation out of range\n" +#: elfxx-mips.c:6455 +msgid "%X%H: cannot convert branch between ISA modes to JALX: relocation out of range\n" msgstr "%X%H: не можна перетворювати Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ Ð¼Ñ–Ð¶ режимами ISA на JALX: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° межі припуÑтимого діапазону\n" -#: elfxx-mips.c:6456 -msgid "%X%H: Unsupported branch between ISA modes\n" +#: elfxx-mips.c:6467 +msgid "%X%H: unsupported branch between ISA modes\n" msgstr "%X%H: непідтримуване Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ Ð¼Ñ–Ð¶ режимами ISA\n" -#: elfxx-mips.c:7134 elfxx-mips.c:7369 +#: elfxx-mips.c:7111 +#, c-format +msgid "%pB: incorrect `.reginfo' section size; expected %, got %" +msgstr "%pB: помилковий розмір розділу «.reginfo»; мав бути %, маємо %" + +#: elfxx-mips.c:7155 elfxx-mips.c:7390 #, c-format -msgid "%B: Warning: bad `%s' option size %u smaller than its header" -msgstr "%B: попередженнÑ: помилковий розмір «%s», %u, менший за його заголовок" +msgid "%pB: warning: bad `%s' option size %u smaller than its header" +msgstr "%pB: попередженнÑ: помилковий розмір «%s», %u, менший за його заголовок" -#: elfxx-mips.c:8125 elfxx-mips.c:8251 +#: elfxx-mips.c:8146 elfxx-mips.c:8272 #, c-format -msgid "%B: Warning: cannot determine the target function for stub section `%s'" -msgstr "%B: попередженнÑ: не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ функцію Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ шаблона, «%s»" +msgid "%pB: warning: cannot determine the target function for stub section `%s'" +msgstr "%pB: попередженнÑ: не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ функцію Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ шаблона, «%s»" -#: elfxx-mips.c:8383 +#: elfxx-mips.c:8404 #, c-format -msgid "%B: Malformed reloc detected for section %s" -msgstr "%B: Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s виÑвлено помилку у форматуванні перенеÑеннÑ" +msgid "%pB: malformed reloc detected for section %s" +msgstr "%pB: Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s виÑвлено помилку у форматуванні перенеÑеннÑ" -#: elfxx-mips.c:8459 +#: elfxx-mips.c:8476 #, c-format -msgid "%B: GOT reloc at 0x%lx not expected in executables" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ GOT у 0x%lx Ñ” неочікуваним у виконуваних файлах" +msgid "%pB: GOT reloc at %# not expected in executables" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ GOT у %# Ñ” неочікуваним у виконуваних файлах" -#: elfxx-mips.c:8597 +#: elfxx-mips.c:8614 #, c-format -msgid "%B: CALL16 reloc at 0x%lx not against global symbol" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ CALL16 у 0x%lx не відноÑно загального Ñимволу" +msgid "%pB: CALL16 reloc at %# not against global symbol" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ CALL16 у %# не відноÑно загального Ñимволу" -#: elfxx-mips.c:9219 +#: elfxx-mips.c:9237 #, c-format msgid "non-dynamic relocations refer to dynamic symbol %s" msgstr "нединамічні переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾ÑилаютьÑÑ Ð½Ð° динамічний Ñимвол, %s" -#: elfxx-mips.c:10139 +#: elfxx-mips.c:10164 #, c-format -msgid "%B: Can't find matching LO16 reloc against `%s' for %s at 0x%lx in section `%A'" -msgstr "%B: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ відповідне переÑÑƒÐ²Ð°Ð½Ð½Ñ LO16 щодо «%s» Ð´Ð»Ñ %s у 0x%lx у розділі «%A»" +msgid "%pB: can't find matching LO16 reloc against `%s' for %s at %# in section `%pA'" +msgstr "%pB: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ відповідне переÑÑƒÐ²Ð°Ð½Ð½Ñ LO16 щодо «%s» Ð´Ð»Ñ %s у %# у розділі «%pA»" -#: elfxx-mips.c:10279 +#: elfxx-mips.c:10304 msgid "small-data section exceeds 64KB; lower small-data size limit (see option -G)" msgstr "розділ малих даних перевищує 64 кБ; нижчий за Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ малих даних (див. параметр -G)" -#: elfxx-mips.c:10298 -msgid "Cannot convert a jump to JALX for a non-word-aligned address" -msgstr "Ðеможливо перетворити перехід на JALX Ð´Ð»Ñ Ð°Ð´Ñ€ÐµÑи, Ñку не вирівнÑно на межу Ñлова" - -#: elfxx-mips.c:10301 -msgid "Jump to a non-word-aligned address" -msgstr "Перехід до не вирівнÑної за Ñловом адреÑи" - -#: elfxx-mips.c:10302 -msgid "Jump to a non-instruction-aligned address" -msgstr "JALX до не вирівнÑної за інÑтрукцією адреÑи" - -#: elfxx-mips.c:10305 -msgid "Cannot convert a branch to JALX for a non-word-aligned address" -msgstr "Ðеможливо перетворити Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ Ð½Ð° JALX Ð´Ð»Ñ Ð°Ð´Ñ€ÐµÑи, Ñку не вирівнÑно на межу Ñлова" - -#: elfxx-mips.c:10307 -msgid "Branch to a non-instruction-aligned address" -msgstr "Ð Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ Ð´Ð¾ не вирівнÑної за інÑтрукцією адреÑи" +#: elfxx-mips.c:10323 +msgid "cannot convert a jump to JALX for a non-word-aligned address" +msgstr "неможливо перетворити перехід на JALX Ð´Ð»Ñ Ð°Ð´Ñ€ÐµÑи, Ñку не вирівнÑно на межу Ñлова" + +#: elfxx-mips.c:10326 +msgid "jump to a non-word-aligned address" +msgstr "перехід до не вирівнÑної за Ñловом адреÑи" + +#: elfxx-mips.c:10327 +msgid "jump to a non-instruction-aligned address" +msgstr "перехід до не вирівнÑної за інÑтрукцією адреÑи" + +#: elfxx-mips.c:10330 +msgid "cannot convert a branch to JALX for a non-word-aligned address" +msgstr "неможливо перетворити Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ Ð½Ð° JALX Ð´Ð»Ñ Ð°Ð´Ñ€ÐµÑи, Ñку не вирівнÑно на межу Ñлова" + +#: elfxx-mips.c:10332 +msgid "branch to a non-instruction-aligned address" +msgstr "Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ Ð´Ð¾ не вирівнÑної за інÑтрукцією адреÑи" -#: elfxx-mips.c:10309 +#: elfxx-mips.c:10334 msgid "PC-relative load from unaligned address" msgstr "Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð½Ð¾Ñно PC з невирівнÑної адреÑи" -#: elfxx-mips.c:10683 elfxx-mips.c:11251 +#: elfxx-mips.c:10612 +#, c-format +msgid "%pB: `%pA' entry VMA of %# outside the 32-bit range supported; consider using `-Ttext-segment=...'" +msgstr "%pB: Ð·Ð°Ð¿Ð¸Ñ Â«%pA» VMA %# лежить поза підтримуваним 32-бітовим діапазоном; Ñпробуйте ÑкориÑтатиÑÑ Â«-Ttext-segment=...»" + +#: elfxx-mips.c:10725 elfxx-mips.c:11298 #, c-format -msgid "%B: `%A' offset of %ld from `%A' beyond the range of ADDIUPC" -msgstr "%B: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Â«%A» %ld з «%A» перебуває поза межами діапазону ADDIUPC" +msgid "%pB: `%pA' offset of % from `%pA' beyond the range of ADDIUPC" +msgstr "%pB: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Â«%pA» % з «%pA» перебуває поза межами діапазону ADDIUPC" -#: elfxx-mips.c:14174 +#: elfxx-mips.c:11270 #, c-format -msgid "%B: Unknown architecture %s" -msgstr "%B: невідома архітектура %s" +msgid "%pB: `%pA' start VMA of %# outside the 32-bit range supported; consider using `-Ttext-segment=...'" +msgstr "%pB: початок «%pA» VMA %# лежить поза підтримуваним 32-бітовим діапазоном; Ñпробуйте ÑкориÑтатиÑÑ Â«-Ttext-segment=...»" -#: elfxx-mips.c:14704 +#: elfxx-mips.c:14178 #, c-format -msgid "%B: illegal section name `%A'" -msgstr "%B: некоректна назва розділу, «%A»" +msgid "%pB: unknown architecture %s" +msgstr "%pB: невідома архітектура %s" -#: elfxx-mips.c:14981 -msgid "%B: warning: linking abicalls files with non-abicalls files" -msgstr "%B: попередженнÑ: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² abicalls з файлами без abicalls" +#: elfxx-mips.c:14712 +#, c-format +msgid "%pB: illegal section name `%pA'" +msgstr "%pB: некоректна назва розділу, «%pA»" -#: elfxx-mips.c:14998 -msgid "%B: linking 32-bit code with 64-bit code" -msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ 32-бітового коду з 64-бітовим кодом" +#: elfxx-mips.c:14989 +#, c-format +msgid "%pB: warning: linking abicalls files with non-abicalls files" +msgstr "%pB: попередженнÑ: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² abicalls з файлами без abicalls" -#: elfxx-mips.c:15030 elfxx-mips.c:15096 elfxx-mips.c:15111 +#: elfxx-mips.c:15006 #, c-format -msgid "%B: linking %s module with previous %s modules" -msgstr "%B: компонуємо модуль %s з попередніми модулÑми %s" +msgid "%pB: linking 32-bit code with 64-bit code" +msgstr "%pB: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ 32-бітового коду з 64-бітовим кодом" -#: elfxx-mips.c:15054 +#: elfxx-mips.c:15038 elfxx-mips.c:15104 elfxx-mips.c:15119 #, c-format -msgid "%B: ABI mismatch: linking %s module with previous %s modules" -msgstr "%B: невідповідніÑÑ‚ÑŒ ABI: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ %s з попередніми модулÑми %s" +msgid "%pB: linking %s module with previous %s modules" +msgstr "%pB: компонуємо модуль %s з попередніми модулÑми %s" -#: elfxx-mips.c:15079 +#: elfxx-mips.c:15062 #, c-format -msgid "%B: ASE mismatch: linking %s module with previous %s modules" -msgstr "%B: невідповідніÑÑ‚ÑŒ ASE: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ %s з попередніми модулÑми %s" +msgid "%pB: ABI mismatch: linking %s module with previous %s modules" +msgstr "%pB: невідповідніÑÑ‚ÑŒ ABI: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ %s з попередніми модулÑми %s" -#: elfxx-mips.c:15214 -msgid "Warning: %B uses unknown floating point ABI %d (set by %B), %B uses unknown floating point ABI %d" -msgstr "ПопередженнÑ: %B викориÑтовує невідомий ABI роботи з чиÑлами з рухомою крапкою, %d, (вÑтановлено %B), а %B викориÑтовує невідомий ABI Ð´Ð»Ñ Ñ‡Ð¸Ñел з рухомою крапкою, %d" +#: elfxx-mips.c:15087 +#, c-format +msgid "%pB: ASE mismatch: linking %s module with previous %s modules" +msgstr "%pB: невідповідніÑÑ‚ÑŒ ASE: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ %s з попередніми модулÑми %s" -#: elfxx-mips.c:15220 +#: elfxx-mips.c:15221 #, c-format -msgid "Warning: %B uses unknown floating point ABI %d (set by %B), %B uses %s" -msgstr "ПопередженнÑ: %B викориÑтовує невідомий ABI роботи з чиÑлами з рухомою крапкою, %d, (вÑтановлено %B), а %B викориÑтовує %s" +msgid "warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses unknown floating point ABI %d" +msgstr "попередженнÑ: %pB викориÑтовує невідомий ABI роботи з чиÑлами з рухомою крапкою, %d, (вÑтановлено %pB), а %pB викориÑтовує невідомий ABI Ð´Ð»Ñ Ñ‡Ð¸Ñел з рухомою крапкою, %d" -#: elfxx-mips.c:15226 +#: elfxx-mips.c:15227 #, c-format -msgid "Warning: %B uses %s (set by %B), %B uses unknown floating point ABI %d" -msgstr "ПопередженнÑ: %B викориÑтовує %s (вÑтановлено %B), а %B викориÑтовує невідомий ABI Ð´Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ з чиÑлами з рухомою крапкою, %d" +msgid "warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses %s" +msgstr "попередженнÑ: %pB викориÑтовує невідомий ABI роботи з чиÑлами з рухомою крапкою, %d, (вÑтановлено %pB), а %pB викориÑтовує %s" -#: elfxx-mips.c:15240 +#: elfxx-mips.c:15233 #, c-format -msgid "Warning: %B uses %s (set by %B), %B uses %s" -msgstr "ПопередженнÑ: %B викориÑтовує %s (вÑтановлено %B), а %B викориÑтовує %s" +msgid "warning: %pB uses %s (set by %pB), %pB uses unknown floating point ABI %d" +msgstr "попередженнÑ: %pB викориÑтовує %s (вÑтановлено %pB), а %pB викориÑтовує невідомий ABI Ð´Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ з чиÑлами з рухомою крапкою, %d" -#: elfxx-mips.c:15259 +#: elfxx-mips.c:15247 #, c-format -msgid "Warning: %B uses %s (set by %B), %B uses unknown MSA ABI %d" -msgstr "ПопередженнÑ: %B викориÑтовує %s (вÑтановлено %B), а %B викориÑтовує невідомий ABI MSA, %d" +msgid "warning: %pB uses %s (set by %pB), %pB uses %s" +msgstr "попередженнÑ: %pB викориÑтовує %s (вÑтановлено %pB), а %pB викориÑтовує %s" -#: elfxx-mips.c:15271 +#: elfxx-mips.c:15266 #, c-format -msgid "Warning: %B uses unknown MSA ABI %d (set by %B), %B uses %s" -msgstr "ПопередженнÑ: %B викориÑтовує невідомий ABI MSA, %d, (вÑтановлено %B), а %B викориÑтовує %s" +msgid "warning: %pB uses %s (set by %pB), %pB uses unknown MSA ABI %d" +msgstr "попередженнÑ: %pB викориÑтовує %s (вÑтановлено %pB), а %pB викориÑтовує невідомий ABI MSA, %d" -#: elfxx-mips.c:15280 +#: elfxx-mips.c:15278 #, c-format -msgid "Warning: %B uses unknown MSA ABI %d (set by %B), %B uses unknown MSA ABI %d" -msgstr "ПопередженнÑ: %B викориÑтовує невідомий ABI MSA %d (вÑтановлено %B), а %B викориÑтовує невідомий ABI MSA, %d" +msgid "warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses %s" +msgstr "попередженнÑ: %pB викориÑтовує невідомий ABI MSA, %d, (вÑтановлено %pB), а %pB викориÑтовує %s" -#: elfxx-mips.c:15342 -msgid "%B: endianness incompatible with that of the selected emulation" -msgstr "%B: порÑдок байтів Ñ” неÑуміÑним з порÑдком байтів вибраної емулÑції" +#: elfxx-mips.c:15287 +#, c-format +msgid "warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses unknown MSA ABI %d" +msgstr "попередженнÑ: %pB викориÑтовує невідомий ABI MSA %d (вÑтановлено %pB), а %pB викориÑтовує невідомий ABI MSA, %d" -#: elfxx-mips.c:15356 -msgid "%B: ABI is incompatible with that of the selected emulation" -msgstr "%B: ABI Ñ” неÑуміÑним з ABI вибраної емулÑції" +#: elfxx-mips.c:15349 +#, c-format +msgid "%pB: endianness incompatible with that of the selected emulation" +msgstr "%pB: порÑдок байтів Ñ” неÑуміÑним з порÑдком байтів вибраної емулÑції" -#: elfxx-mips.c:15408 -msgid "%B: warning: Inconsistent ISA between e_flags and .MIPS.abiflags" -msgstr "%B: попередженнÑ: неÑуміÑніÑÑ‚ÑŒ ISA між e_flags Ñ– .MIPS.abiflags" +#: elfxx-mips.c:15363 +#, c-format +msgid "%pB: ABI is incompatible with that of the selected emulation" +msgstr "%pB: ABI Ñ” неÑуміÑним з ABI вибраної емулÑції" -#: elfxx-mips.c:15413 -msgid "%B: warning: Inconsistent FP ABI between .gnu.attributes and .MIPS.abiflags" -msgstr "%B: попередженнÑ: неÑуміÑніÑÑ‚ÑŒ ABI FP між .gnu.attributes Ñ– .MIPS.abiflags" +#: elfxx-mips.c:15415 +#, c-format +msgid "%pB: warning: inconsistent ISA between e_flags and .MIPS.abiflags" +msgstr "%pB: попередженнÑ: неÑуміÑніÑÑ‚ÑŒ ISA між e_flags Ñ– .MIPS.abiflags" -#: elfxx-mips.c:15417 -msgid "%B: warning: Inconsistent ASEs between e_flags and .MIPS.abiflags" -msgstr "%B: попередженнÑ: неÑуміÑніÑÑ‚ÑŒ ASE між e_flags Ñ– .MIPS.abiflags" +#: elfxx-mips.c:15420 +#, c-format +msgid "%pB: warning: inconsistent FP ABI between .gnu.attributes and .MIPS.abiflags" +msgstr "%pB: попередженнÑ: неÑуміÑніÑÑ‚ÑŒ ABI FP між .gnu.attributes Ñ– .MIPS.abiflags" #: elfxx-mips.c:15424 -msgid "%B: warning: Inconsistent ISA extensions between e_flags and .MIPS.abiflags" -msgstr "%B: попередженнÑ: неÑуміÑніÑÑ‚ÑŒ розширень ISA між e_flags Ñ– .MIPS.abiflags" +#, c-format +msgid "%pB: warning: inconsistent ASEs between e_flags and .MIPS.abiflags" +msgstr "%pB: попередженнÑ: неÑуміÑніÑÑ‚ÑŒ ASE між e_flags Ñ– .MIPS.abiflags" -#: elfxx-mips.c:15428 -msgid "%B: warning: Unexpected flag in the flags2 field of .MIPS.abiflags (0x%lx)" -msgstr "%B: попередженнÑ: неочікуваний прапорець у полі flags2 .MIPS.abiflags (0x%lx)" +#: elfxx-mips.c:15431 +#, c-format +msgid "%pB: warning: inconsistent ISA extensions between e_flags and .MIPS.abiflags" +msgstr "%pB: попередженнÑ: неÑуміÑніÑÑ‚ÑŒ розширень ISA між e_flags Ñ– .MIPS.abiflags" + +#: elfxx-mips.c:15435 +#, c-format +msgid "%pB: warning: unexpected flag in the flags2 field of .MIPS.abiflags (0x%lx)" +msgstr "%pB: попередженнÑ: неочікуваний прапорець у полі flags2 .MIPS.abiflags (0x%lx)" -#: elfxx-mips.c:15617 +#: elfxx-mips.c:15624 msgid "-mips32r2 -mfp64 (12 callee-saved)" msgstr "-mips32r2 -mfp64 (12 безпечних Ð´Ð»Ñ Ð²Ð¸ÐºÐ»Ð¸ÐºÑ–Ð² регіÑтрів)" -#: elfxx-mips.c:15667 elfxx-mips.c:15678 +#: elfxx-mips.c:15678 elfxx-mips.c:15689 msgid "None" msgstr "Ðемає" -#: elfxx-mips.c:15669 elfxx-mips.c:15741 +#: elfxx-mips.c:15680 elfxx-mips.c:15752 msgid "Unknown" msgstr "Ðевідомий" -#: elfxx-mips.c:15752 +#: elfxx-mips.c:15763 #, c-format msgid "Hard or soft float\n" msgstr "Ðпаратна або програмна рухома крапка\n" -#: elfxx-mips.c:15755 +#: elfxx-mips.c:15766 #, c-format msgid "Hard float (double precision)\n" msgstr "Ðпаратна рухома крапка (подвійна точніÑÑ‚ÑŒ)\n" -#: elfxx-mips.c:15758 +#: elfxx-mips.c:15769 #, c-format msgid "Hard float (single precision)\n" msgstr "Ðпаратна рухома крапка (одинарна точніÑÑ‚ÑŒ)\n" -#: elfxx-mips.c:15761 +#: elfxx-mips.c:15772 #, c-format msgid "Soft float\n" msgstr "Програма рухома крапка\n" -#: elfxx-mips.c:15764 +#: elfxx-mips.c:15775 #, c-format msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n" msgstr "Ðпаратна рухома крапка (64-бітовий ÑпівпроцеÑор MIPS32r2, 12 безпечних Ð´Ð»Ñ Ð²Ð¸ÐºÐ»Ð¸ÐºÑ–Ð² регіÑтрів)\n" -#: elfxx-mips.c:15767 +#: elfxx-mips.c:15778 #, c-format msgid "Hard float (32-bit CPU, Any FPU)\n" msgstr "Ðпаратна рухома крапка (32-бітовий процеÑор, будь-Ñкий FPU)\n" -#: elfxx-mips.c:15770 +#: elfxx-mips.c:15781 #, c-format msgid "Hard float (32-bit CPU, 64-bit FPU)\n" msgstr "Ðпаратна рухома крапка (32-бітовий процеÑор, 64-бітовий FPU)\n" -#: elfxx-mips.c:15773 +#: elfxx-mips.c:15784 #, c-format msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n" msgstr "СуміÑніÑÑ‚ÑŒ апаратної рухомої крапки (32-бітовий процеÑор, 64-бітовий FPU)\n" -#: elfxx-mips.c:15805 +#: elfxx-mips.c:15816 #, c-format msgid " [abi=O32]" msgstr " [abi=O32]" -#: elfxx-mips.c:15807 +#: elfxx-mips.c:15818 #, c-format msgid " [abi=O64]" msgstr " [abi=O64]" -#: elfxx-mips.c:15809 +#: elfxx-mips.c:15820 #, c-format msgid " [abi=EABI32]" msgstr " [abi=EABI32]" -#: elfxx-mips.c:15811 +#: elfxx-mips.c:15822 #, c-format msgid " [abi=EABI64]" msgstr " [abi=EABI64]" -#: elfxx-mips.c:15813 +#: elfxx-mips.c:15824 #, c-format msgid " [abi unknown]" msgstr " [невідомий abi]" -#: elfxx-mips.c:15815 +#: elfxx-mips.c:15826 #, c-format msgid " [abi=N32]" msgstr " [abi=N32]" -#: elfxx-mips.c:15817 +#: elfxx-mips.c:15828 #, c-format msgid " [abi=64]" msgstr " [abi=64]" -#: elfxx-mips.c:15819 +#: elfxx-mips.c:15830 #, c-format msgid " [no abi set]" msgstr " [не вÑтановлено abi]" -#: elfxx-mips.c:15844 +#: elfxx-mips.c:15855 #, c-format msgid " [unknown ISA]" msgstr " [невідомий ISA]" -#: elfxx-mips.c:15864 +#: elfxx-mips.c:15875 #, c-format msgid " [not 32bitmode]" msgstr " [не 32-біт.режим]" -#: elfxx-riscv.c:948 +#: elfxx-sparc.c:3115 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-aarch64.c:5283 #, c-format -msgid "unrecognized relocation (0x%x)" -msgstr "нерозпізнане переÑÑƒÐ²Ð°Ð½Ð½Ñ (0x%x)" +msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо Ñимволу STT_GNU_IFUNC «%s» не оброблÑєтьÑÑ %s" -#: elfxx-sparc.c:639 +#: elfxx-tilegx.c:4254 #, c-format -msgid "invalid relocation type %d" -msgstr "некоректний тип переÑÑƒÐ²Ð°Ð½Ð½Ñ %d" +msgid "%pB: cannot link together %s and %s objects" +msgstr "%pB: не вдалоÑÑ Ñкомпонувати об’єкти %s та %s" -#: elfxx-sparc.c:3301 -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:5002 +#: elfxx-x86.c:578 #, c-format -msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо Ñимволу STT_GNU_IFUNC «%s» не оброблÑєтьÑÑ %s" +msgid "%P: %pB: warning: relocation against `%s' in read-only section `%pA'\n" +msgstr "%P: %pB: попередженнÑ: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ «%s» у придатному лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– «%pA»\n" -#: elfxx-tilegx.c:4436 -#, c-format -msgid "%B: Cannot link together %s and %s objects." -msgstr "%B: не вдалоÑÑ Ñкомпонувати об’єкти %s та %s." +#: elfxx-x86.c:1027 +msgid "%P: %pB: warning: relocation in read-only section `%pA'\n" +msgstr "%P: %pB: попередженнÑ: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ розділі, придатному лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Â«%pA»\n" -#: i386linux.c:416 m68klinux.c:419 sparclinux.c:412 +#: elfxx-x86.c:1375 +msgid "%P%X: read-only segment has dynamic IFUNC relocations; recompile with -fPIC\n" +msgstr "%P%X: Ñегмент, призначений лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ, міÑтить динамічні переÑÑƒÐ²Ð°Ð½Ð½Ñ IFUNC. Спробуйте зібрати з -fPIC\n" + +#: elfxx-x86.c:2373 #, c-format -msgid "Output file requires shared library `%s'\n" -msgstr "Файлу-результату потрібна бібліотека Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ Â«%s»\n" +msgid "error: %pB: " +msgstr "помилка: %pB: <пошкоджений розмір викориÑтаного ISA x86: 0x%x>" -#: i386linux.c:424 m68klinux.c:428 sparclinux.c:421 +#: elfxx-x86.c:2375 #, c-format -msgid "Output file requires shared library `%s.so.%s'\n" -msgstr "Файлу-результату потрібна бібліотека Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ Â«%s.so.%s»\n" +msgid "error: %pB: " +msgstr "помилка: %pB: <пошкоджений розмір потрібного ISA x86: 0x%x>" -#: i386linux.c:611 i386linux.c:661 m68klinux.c:617 m68klinux.c:665 -#: sparclinux.c:608 sparclinux.c:658 +#: elfxx-x86.c:2376 #, c-format -msgid "Symbol %s not defined for fixups\n" -msgstr "Символ %s не визначено Ð´Ð»Ñ Ð°Ð´Ñ€ÐµÑних прив’Ñзок\n" +msgid "error: %pB: " +msgstr "помилка: %pB: <пошкоджений розмір можливоÑÑ‚Ñ– x86: 0x%x>" -#: i386linux.c:685 m68klinux.c:689 sparclinux.c:682 -msgid "Warning: fixup count mismatch\n" -msgstr "ПопередженнÑ: невідповідніÑÑ‚ÑŒ кількоÑÑ‚Ñ– адреÑних прив’Ñзок\n" +#: elfxx-x86.c:2548 +msgid "%F%P: failed to create GNU property section\n" +msgstr "%F%P: не вдалоÑÑ Ñтворити розділ влаÑтивоÑтей GNU\n" -#: ieee.c:159 +#: elfxx-x86.c:2553 #, c-format -msgid "%B: string too long (%d chars, max 65535)" -msgstr "%B: занадто довгий Ñ€Ñдок (%d Ñимволів, макÑ. к-Ñ‚ÑŒ — 65535)" +msgid "%F%pA: failed to align section\n" +msgstr "%F%pA: не вдалоÑÑ Ð²Ð¸Ñ€Ñ–Ð²Ð½Ñти розмір\n" -#: ieee.c:226 -#, c-format -msgid "IEEE parser: string length: %#lx longer than buffer: %#lx" -msgstr "обробник IEEE: довжина Ñ€Ñдка: %#lx довший за буфер: %#lx" +#: elfxx-x86.c:2705 +msgid "%F%P: failed to create VxWorks dynamic sections\n" +msgstr "%F%P: не вдалоÑÑ Ñтворити динамічні розділи VxWorks\n" -#: ieee.c:302 -#, c-format -msgid "%B: unrecognized symbol `%s' flags 0x%x" -msgstr "%B: нерозпізнані прапорці Ñимволу «%s», 0x%x" +#: elfxx-x86.c:2714 +msgid "%F%P: failed to create GOT sections\n" +msgstr "%F%P: не вдалоÑÑ Ñтворити розділи GOT\n" -#: ieee.c:837 -#, c-format -msgid "%B: unimplemented ATI record %u for symbol %u" -msgstr "%B: нереалізований Ð·Ð°Ð¿Ð¸Ñ ATI, %u, Ð´Ð»Ñ Ñимволу %u" +#: elfxx-x86.c:2732 +msgid "%F%P: failed to create ifunc sections\n" +msgstr "%F%P: не вдалоÑÑ Ñтворити розділи ifunc\n" -#: ieee.c:862 -#, c-format -msgid "%B: unexpected ATN type %d in external part" -msgstr "%B: неочікуваний тип ATN, %d, у зовнішній чаÑтині" +#: elfxx-x86.c:2773 +msgid "%F%P: failed to create GOT PLT section\n" +msgstr "%F%P: не вдалоÑÑ Ñтворити розділ PLT GOT\n" + +#: elfxx-x86.c:2794 +msgid "%F%P: failed to create IBT-enabled PLT section\n" +msgstr "%F%P: не вдалоÑÑ Ñтворити розділ PLT із увімкненим IBT\n" -#: ieee.c:884 -msgid "%B: unexpected type after ATN" -msgstr "%B: неочікуваний тип піÑÐ»Ñ ATN" +#: elfxx-x86.c:2809 +msgid "%F%P: failed to create BND PLT section\n" +msgstr "%F%P: не вдалоÑÑ Ñтворити розділ PLT BND\n" + +#: elfxx-x86.c:2830 +msgid "%F%P: failed to create PLT .eh_frame section\n" +msgstr "%F%P: не вдалоÑÑ Ñтворити розділ .eh_frame PLT\n" + +#: elfxx-x86.c:2843 +msgid "%F%P: failed to create GOT PLT .eh_frame section\n" +msgstr "%F%P: не вдалоÑÑ Ñтворити розділ .eh_frame PLT GOT\n" + +#: elfxx-x86.c:2857 +msgid "%F%P: failed to create the second PLT .eh_frame section\n" +msgstr "%F%P: не вдалоÑÑ Ñтворити другий розділ .eh_frame PLT\n" #: ihex.c:230 #, c-format -msgid "%B:%d: unexpected character `%s' in Intel Hex file" -msgstr "%B:%d: неочікуваний Ñимвол «%s» у шіÑтнадцÑтковому файлі Intel" +msgid "%pB:%d: unexpected character `%s' in Intel Hex file" +msgstr "%pB:%d: неочікуваний Ñимвол «%s» у шіÑтнадцÑтковому файлі Intel" #: ihex.c:338 #, c-format -msgid "%B:%u: bad checksum in Intel Hex file (expected %u, found %u)" -msgstr "%B:%u: помилкова контрольна Ñума у шіÑтнадцÑтковому файлі Intel (очікувалоÑÑ %u, виÑвлено %u)" +msgid "%pB:%u: bad checksum in Intel Hex file (expected %u, found %u)" +msgstr "%pB:%u: помилкова контрольна Ñума у шіÑтнадцÑтковому файлі Intel (очікувалоÑÑ %u, виÑвлено %u)" #: ihex.c:394 #, c-format -msgid "%B:%u: bad extended address record length in Intel Hex file" -msgstr "%B:%u: помилкова довжина запиÑу розширеної адреÑи у шіÑтнадцÑтковому файлі Intel" +msgid "%pB:%u: bad extended address record length in Intel Hex file" +msgstr "%pB:%u: помилкова довжина запиÑу розширеної адреÑи у шіÑтнадцÑтковому файлі Intel" #: ihex.c:412 #, c-format -msgid "%B:%u: bad extended start address length in Intel Hex file" -msgstr "%B:%u: помилкова довжина розширеної початкової адреÑи у шіÑтнадцÑтковому файлі Intel" +msgid "%pB:%u: bad extended start address length in Intel Hex file" +msgstr "%pB:%u: помилкова довжина розширеної початкової адреÑи у шіÑтнадцÑтковому файлі Intel" #: ihex.c:430 #, c-format -msgid "%B:%u: bad extended linear address record length in Intel Hex file" -msgstr "%B:%u: помилкова довжина запиÑу розширеної лінійної адреÑи у шіÑтнадцÑтковому файлі Intel" +msgid "%pB:%u: bad extended linear address record length in Intel Hex file" +msgstr "%pB:%u: помилкова довжина запиÑу розширеної лінійної адреÑи у шіÑтнадцÑтковому файлі Intel" #: ihex.c:448 #, c-format -msgid "%B:%u: bad extended linear start address length in Intel Hex file" -msgstr "%B:%u: помилкова довжина розширеної лінійної початкової адреÑи у шіÑтнадцÑтковому файлі Intel" +msgid "%pB:%u: bad extended linear start address length in Intel Hex file" +msgstr "%pB:%u: помилкова довжина розширеної лінійної початкової адреÑи у шіÑтнадцÑтковому файлі Intel" #: ihex.c:466 #, c-format -msgid "%B:%u: unrecognized ihex type %u in Intel Hex file" -msgstr "%B:%u: невідомий тип ihex %u у шіÑтнадцÑтковому файлі Intel" +msgid "%pB:%u: unrecognized ihex type %u in Intel Hex file" +msgstr "%pB:%u: невідомий тип ihex %u у шіÑтнадцÑтковому файлі Intel" #: ihex.c:585 -msgid "%B: internal error in ihex_read_section" -msgstr "%B: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° у ihex_read_section" +#, c-format +msgid "%pB: internal error in ihex_read_section" +msgstr "%pB: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° у ihex_read_section" #: ihex.c:619 -msgid "%B: bad section length in ihex_read_section" -msgstr "%B: помилкова довжина розділу у ihex_read_section" +#, c-format +msgid "%pB: bad section length in ihex_read_section" +msgstr "%pB: помилкова довжина розділу у ihex_read_section" -#: ihex.c:833 +#: ihex.c:830 #, c-format -msgid "%B: address 0x%s out of range for Intel Hex file" -msgstr "%B: адреÑа 0x%s перебуває за межами шіÑтнадцÑткового файла Intel" +msgid "%pB: address %# out of range for Intel Hex file" +msgstr "%pB: адреÑа %# перебуває за межами шіÑтнадцÑткового файла Intel" -#: libbfd.c:799 +#: libbfd.c:898 #, c-format -msgid "%B: unable to get decompressed section %A" -msgstr "%B: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ розпакований розділ %A" +msgid "%pB: unable to get decompressed section %pA" +msgstr "%pB: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ розпакований розділ %pA" -#: libbfd.c:963 +#: libbfd.c:1062 #, c-format msgid "Deprecated %s called at %s line %d in %s\n" msgstr "Викликано заÑтарілу %s у %s, Ñ€Ñдок %d у %s\n" -#: libbfd.c:966 +#: libbfd.c:1065 #, c-format msgid "Deprecated %s called\n" msgstr "Викликано заÑтарілу %s\n" -#: linker.c:1669 +#: linker.c:1684 +#, c-format +msgid "%pB: indirect symbol `%s' to `%s' is a loop" +msgstr "%pB: опоÑередкований Ñимвол «%s» Ð´Ð»Ñ Â«%s» Ñ” циклом" + +#: linker.c:2554 +#, c-format +msgid "attempt to do relocatable link with %s input and %s output" +msgstr "Ñпроба ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð²â€™Ñзку переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð· вхідним %s Ñ– вихідним %s" + +#: linker.c:2840 +#, c-format +msgid "%pB: ignoring duplicate section `%pA'\n" +msgstr "%pB: ігноруємо дублікат розділу «%pA»\n" + +#: linker.c:2850 linker.c:2860 +#, c-format +msgid "%pB: duplicate section `%pA' has different size\n" +msgstr "%pB: дублікат розділу «%pA» має інший розмір\n" + +#: linker.c:2869 linker.c:2875 +#, c-format +msgid "%pB: could not read contents of section `%pA'\n" +msgstr "%pB: не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ вміÑÑ‚ розділу «%pA»\n" + +#: linker.c:2880 +#, c-format +msgid "%pB: duplicate section `%pA' has different contents\n" +msgstr "%pB: дублікат розділу «%pA» має інший вміÑÑ‚\n" + +#: linker.c:3394 +#, c-format +msgid "%pB: compiled for a big endian system and target is little endian" +msgstr "%pB: зібрано Ð´Ð»Ñ ÑиÑтеми з прÑмим порÑдком байтів, а призначеннÑм Ñ” ÑиÑтема зі зворотним порÑдком байтів" + +#: linker.c:3397 +#, c-format +msgid "%pB: compiled for a little endian system and target is big endian" +msgstr "%pB: зібрано Ð´Ð»Ñ ÑиÑтеми зі зворотним порÑдком байтів, а призначеннÑм Ñ” ÑиÑтема зі прÑмим порÑдком байтів" + +#: mach-o.c:632 +#, c-format +msgid "" +msgstr "<невідомі прапорці маÑкуваннÑ>" + +#: mach-o.c:687 +msgid " ()" +msgstr " (<невідомо>)" + +#: mach-o.c:698 +#, c-format +msgid " MACH-O header:\n" +msgstr "заголовок MACH-O:\n" + +#: mach-o.c:699 +#, c-format +msgid " magic: %#lx\n" +msgstr " magic: %#lx\n" + +#: mach-o.c:700 #, c-format -msgid "%B: indirect symbol `%s' to `%s' is a loop" -msgstr "%B: опоÑередкований Ñимвол «%s» Ð´Ð»Ñ Â«%s» Ñ” циклом" +msgid " cputype: %#lx (%s)\n" +msgstr " тип проц. : %#lx (%s)\n" -#: linker.c:2539 +#: mach-o.c:702 #, c-format -msgid "Attempt to do relocatable link with %s input and %s output" -msgstr "Спроба ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð²â€™Ñзку переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð· вхідним %s Ñ– вихідним %s" +msgid " cpusubtype: %#lx%s\n" +msgstr " підтип проц.: %#lx (%s)\n" -#: linker.c:2825 +#: mach-o.c:704 #, c-format -msgid "%B: ignoring duplicate section `%A'\n" -msgstr "%B: ігноруємо дублікат розділу «%A»\n" +msgid " filetype: %#lx\n" +msgstr " тип файла : %#lx\n" -#: linker.c:2835 linker.c:2845 +#: mach-o.c:705 #, c-format -msgid "%B: duplicate section `%A' has different size\n" -msgstr "%B: дублікат розділу «%A» має інший розмір\n" +msgid " ncmds: %#lx\n" +msgstr " кть_команд: %#lx\n" -#: linker.c:2854 linker.c:2860 +#: mach-o.c:706 #, c-format -msgid "%B: could not read contents of section `%A'\n" -msgstr "%B: не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ вміÑÑ‚ розділу «%A»\n" +msgid " sizeocmds: %#lx\n" +msgstr " розмір_кмд: %#lx\n" -#: linker.c:2865 +#: mach-o.c:707 #, c-format -msgid "%B: duplicate section `%A' has different contents\n" -msgstr "%B: дублікат розділу «%A» має інший вміÑÑ‚\n" +msgid " flags: %#lx\n" +msgstr " прапорці: %lx\n" -#: linker.c:3353 -msgid "%B: compiled for a big endian system and target is little endian" -msgstr "%B: зібрано Ð´Ð»Ñ ÑиÑтеми з прÑмим порÑдком байтів, а призначеннÑм Ñ” ÑиÑтема зі зворотним порÑдком байтів" +#: mach-o.c:708 +#, c-format +msgid " version: %x\n" +msgstr " верÑÑ–Ñ: %x\n" -#: linker.c:3356 -msgid "%B: compiled for a little endian system and target is big endian" -msgstr "%B: зібрано Ð´Ð»Ñ ÑиÑтеми зі зворотним порÑдком байтів, а призначеннÑм Ñ” ÑиÑтема зі прÑмим порÑдком байтів" +#. Urg - what has happened ? +#: mach-o.c:743 +#, c-format +msgid "incompatible cputypes in mach-o files: %ld vs %ld" +msgstr "неÑуміÑні типи процеÑорів у файлах mach-o: %ld Ñ– %ld" -#: mach-o.c:779 +#: mach-o.c:912 msgid "bfd_mach_o_canonicalize_symtab: unable to load symbols" msgstr "bfd_mach_o_canonicalize_symtab: не вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ Ñимволи" -#: mach-o.c:1981 +#: mach-o.c:2108 msgid "sorry: modtab, toc and extrefsyms are not yet implemented for dysymtab commands." msgstr "вибечте, modtab, toc та extrefsyms Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ dysymtab у поточній верÑÑ–Ñ— ще не реалізовано." -#: mach-o.c:2424 +#: mach-o.c:2551 #, c-format msgid "mach-o: there are too many sections (%u) maximum is 255,\n" msgstr "mach-o: надто багато розділів (%u), макÑимальна кількіÑÑ‚ÑŒ розділів дорівнює 255,\n" -#: mach-o.c:2531 +#: mach-o.c:2658 #, c-format -msgid "unable to allocate data for load command 0x%lx" -msgstr "не вдалоÑÑ Ñ€Ð¾Ð·Ð¼Ñ–Ñтити дані Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ 0x%lx" +msgid "unable to allocate data for load command %#x" +msgstr "не вдалоÑÑ Ñ€Ð¾Ð·Ð¼Ñ–Ñтити дані Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ %#x" -#: mach-o.c:2636 +#: mach-o.c:2763 #, c-format -msgid "unable to write unknown load command 0x%lx" -msgstr "не вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати невідому команду завантаженнÑ, 0x%lx" +msgid "unable to write unknown load command %#x" +msgstr "не вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати невідому команду завантаженнÑ, %#x" -#: mach-o.c:2820 +#: mach-o.c:2947 #, c-format -msgid "section address (%lx) below start of segment (%lx)" -msgstr "адреÑа розділу (%lx) нижче за початок Ñегмента (%lx)" +msgid "section address (%#) below start of segment (%#)" +msgstr "адреÑа розділу (%) нижче за початок Ñегмента (%)" -#: mach-o.c:2961 +#: mach-o.c:3089 #, c-format -msgid "unable to layout unknown load command 0x%lx" -msgstr "не вдалоÑÑ Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ñ‚Ð¸ невідому команду завантаженнÑ, 0x%lx" +msgid "unable to layout unknown load command %#x" +msgstr "не вдалоÑÑ Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ñ‚Ð¸ невідому команду завантаженнÑ, %#x" -#: mach-o.c:3497 +#: mach-o.c:3625 #, c-format -msgid "bfd_mach_o_read_section_32: overlarge alignment value: 0x%x, using 32 instead" -msgstr "bfd_mach_o_read_section_32: надто велике Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ: 0x%x, викориÑтовуємо заміÑÑ‚ÑŒ нього 32" +msgid "bfd_mach_o_read_section_32: overlarge alignment value: %#lx, using 32 instead" +msgstr "bfd_mach_o_read_section_32: надто велике Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ: %#lx, викориÑтовуємо заміÑÑ‚ÑŒ нього 32" -#: mach-o.c:3540 +#: mach-o.c:3668 #, c-format -msgid "bfd_mach_o_read_section_64: overlarge alignment value: 0x%x, using 32 instead" -msgstr "bfd_mach_o_read_section_64: надто велике Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ: 0x%x, викориÑтовуємо заміÑÑ‚ÑŒ нього 32" +msgid "bfd_mach_o_read_section_64: overlarge alignment value: %#lx, using 32 instead" +msgstr "bfd_mach_o_read_section_32: надто велике Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ: %#lx, викориÑтовуємо заміÑÑ‚ÑŒ нього 32" -#: mach-o.c:3591 +#: mach-o.c:3719 #, c-format -msgid "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %lu" -msgstr "bfd_mach_o_read_symtab_symbol: не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ %d байтів у %lu" +msgid "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %u" +msgstr "bfd_mach_o_read_symtab_symbol: не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ %d байтів у %u" -#: mach-o.c:3610 +#: mach-o.c:3738 #, c-format -msgid "bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %lu)" -msgstr "bfd_mach_o_read_symtab_symbol: назва за межами доÑтупного діапазону (%lu >= %lu)" +msgid "bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %u)" +msgstr "bfd_mach_o_read_symtab_symbol: назва за межами доÑтупного діапазону (%lu >= %u)" -#: mach-o.c:3693 +#: mach-o.c:3821 #, c-format msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid section %d (max %lu): setting to undefined" msgstr "bfd_mach_o_read_symtab_symbol: Ñимвол «%s» визначає некоректний розділ %d (max %lu): вÑтановлюємо у невизначене значеннÑ" -#: mach-o.c:3712 +#: mach-o.c:3840 #, c-format msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid type field 0x%x: setting to undefined" msgstr "bfd_mach_o_read_symtab_symbol: Ñимвол «%s» визначає некоректний тип Ð¿Ð¾Ð»Ñ 0x%x: вÑтановлюємо у невизначене значеннÑ" -#: mach-o.c:3786 +#: mach-o.c:3917 msgid "bfd_mach_o_read_symtab_symbols: unable to allocate memory for symbols" msgstr "bfd_mach_o_read_symtab_symbols: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ облаÑÑ‚ÑŒ пам’ÑÑ‚Ñ– Ð´Ð»Ñ Ñимволів" -#: mach-o.c:4759 -msgid "%B: unknown load command 0x%lx" -msgstr "%B: невідома команда завантаженнÑ, 0x%lx" +#: mach-o.c:4890 +#, c-format +msgid "%pB: unknown load command %#x" +msgstr "%pB: невідома команда завантаженнÑ, %#x" -#: mach-o.c:4950 +#: mach-o.c:5081 #, c-format msgid "bfd_mach_o_scan: unknown architecture 0x%lx/0x%lx" msgstr "bfd_mach_o_scan: невідома архітектура, 0x%lx/0x%lx" -#: mach-o.c:5055 +#: mach-o.c:5186 #, c-format -msgid "unknown header byte-order value 0x%lx" -msgstr "невідоме Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ€Ñдку байтів у заголовку, 0x%lx" +msgid "unknown header byte-order value %#x" +msgstr "невідоме Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ€Ñдку байтів у заголовку, %#x" -#: merge.c:864 +#: merge.c:868 #, c-format -msgid "%B: access beyond end of merged section (%ld)" -msgstr "%B: доÑтуп за кінцем об’єднаного розділу (%ld)" +msgid "%pB: access beyond end of merged section (%)" +msgstr "%pB: доÑтуп за кінцем об’єднаного розділу (%)" #: mmo.c:468 #, c-format -msgid "%B: No core to allocate section name %s\n" -msgstr "%B: немає оÑнови Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸ розділу %s\n" +msgid "%pB: no core to allocate section name %s" +msgstr "%pB: немає оÑнови Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸ розділу %s" #: mmo.c:544 #, c-format -msgid "%B: No core to allocate a symbol %d bytes long\n" -msgstr "%B: немає оÑнови Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñимволу довжиною %d байтів\n" +msgid "%pB: no core to allocate a symbol %d bytes long" +msgstr "%pB: немає оÑнови Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñимволу довжиною %d байтів" #: mmo.c:958 #, c-format -msgid "%B: attempt to emit contents at non-multiple-of-4 address 0x%lx\n" -msgstr "%B: Ñпроба надіÑлати дані на некратну до 4 адреÑу 0x%lx\n" +msgid "%pB: attempt to emit contents at non-multiple-of-4 address %#" +msgstr "%pB: Ñпроба надіÑлати дані на некратну до 4 адреÑу %#" #: mmo.c:1255 -msgid "%B: invalid mmo file: initialization value for $255 is not `Main'\n" -msgstr "%B: некоректний файл mmo: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ð´Ð»Ñ $255 не дорівнює «Main»\n" +#, c-format +msgid "%pB: invalid mmo file: initialization value for $255 is not `Main'\n" +msgstr "%pB: некоректний файл mmo: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ð´Ð»Ñ $255 не дорівнює «Main»\n" #: mmo.c:1402 #, c-format -msgid "%B: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'\n" -msgstr "%B: непідтримувана широка поÑлідовніÑÑ‚ÑŒ Ñимволів 0x%02X 0x%02X піÑÐ»Ñ Ð½Ð°Ð·Ð²Ð¸ Ñимволу, починаючи з «%s»\n" +msgid "%pB: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'\n" +msgstr "%pB: непідтримувана широка поÑлідовніÑÑ‚ÑŒ Ñимволів 0x%02X 0x%02X піÑÐ»Ñ Ð½Ð°Ð·Ð²Ð¸ Ñимволу, починаючи з «%s»\n" #: mmo.c:1636 #, c-format -msgid "%B: invalid mmo file: unsupported lopcode `%d'\n" -msgstr "%B: некоректний файл mmo: непідтримуване Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ lopcode, «%d»\n" +msgid "%pB: invalid mmo file: unsupported lopcode `%d'\n" +msgstr "%pB: некоректний файл mmo: непідтримуване Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ lopcode, «%d»\n" #: mmo.c:1647 #, c-format -msgid "%B: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n" -msgstr "%B: некоректний файл mmo: очікувалоÑÑ YZ = 1, отримано YZ = %d Ð´Ð»Ñ lop_quote\n" +msgid "%pB: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n" +msgstr "%pB: некоректний файл mmo: очікувалоÑÑ YZ = 1, отримано YZ = %d Ð´Ð»Ñ lop_quote\n" #: mmo.c:1685 #, c-format -msgid "%B: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n" -msgstr "%B: некоректний файл mmo: очікувалоÑÑ z = 1 або z = 2, отримано z = %d Ð´Ð»Ñ lop_loc\n" +msgid "%pB: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n" +msgstr "%pB: некоректний файл mmo: очікувалоÑÑ z = 1 або z = 2, отримано z = %d Ð´Ð»Ñ lop_loc\n" #: mmo.c:1736 #, c-format -msgid "%B: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n" -msgstr "%B: некоректний файл mmo: очікувалоÑÑ z = 1 або z = 2, отримано z = %d Ð´Ð»Ñ lop_fixo\n" +msgid "%pB: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n" +msgstr "%pB: некоректний файл mmo: очікувалоÑÑ z = 1 або z = 2, отримано z = %d Ð´Ð»Ñ lop_fixo\n" #: mmo.c:1777 #, c-format -msgid "%B: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n" -msgstr "%B: некоректний файл mmo: очікувалоÑÑ y=0, отримано y = %d Ð´Ð»Ñ lop_fixrx\n" +msgid "%pB: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n" +msgstr "%pB: некоректний файл mmo: очікувалоÑÑ y=0, отримано y = %d Ð´Ð»Ñ lop_fixrx\n" #: mmo.c:1788 #, c-format -msgid "%B: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n" -msgstr "%B: некоректний файл mmo: очікувалоÑÑ z = 16 або z = 24, отримано z = %d Ð´Ð»Ñ lop_fixrx\n" +msgid "%pB: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n" +msgstr "%pB: некоректний файл mmo: очікувалоÑÑ z = 16 або z = 24, отримано z = %d Ð´Ð»Ñ lop_fixrx\n" #: mmo.c:1813 #, c-format -msgid "%B: invalid mmo file: leading byte of operand word must be 0 or 1, got %d for lop_fixrx\n" -msgstr "%B: некоректний файл mmo: початковим байтом Ñлова оператора має бути 0 або 1, отримано ж %d Ð´Ð»Ñ lop_fixrx\n" +msgid "%pB: invalid mmo file: leading byte of operand word must be 0 or 1, got %d for lop_fixrx\n" +msgstr "%pB: некоректний файл mmo: початковим байтом Ñлова оператора має бути 0 або 1, отримано ж %d Ð´Ð»Ñ lop_fixrx\n" #: mmo.c:1838 #, c-format -msgid "%B: cannot allocate file name for file number %d, %d bytes\n" -msgstr "%B: не вдалоÑÑ Ñ€Ð¾Ð·Ð¼Ñ–Ñтити назву файла Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð° з номером %d, %d байтів\n" +msgid "%pB: cannot allocate file name for file number %d, %d bytes\n" +msgstr "%pB: не вдалоÑÑ Ñ€Ð¾Ð·Ð¼Ñ–Ñтити назву файла Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð° з номером %d, %d байтів\n" #: mmo.c:1860 #, c-format -msgid "%B: invalid mmo file: file number %d `%s', was already entered as `%s'\n" -msgstr "%B: некоректний файл mmo: номер файла %d, «%s», уже здійÑнено вхід Ñк у «%s»\n" +msgid "%pB: invalid mmo file: file number %d `%s', was already entered as `%s'\n" +msgstr "%pB: некоректний файл mmo: номер файла %d, «%s», уже здійÑнено вхід Ñк у «%s»\n" #: mmo.c:1874 #, c-format -msgid "%B: invalid mmo file: file name for number %d was not specified before use\n" -msgstr "%B: некоректний файл mmo: назву файла Ð´Ð»Ñ Ð½Ð¾Ð¼ÐµÑ€Ð° %d не було вказано до викориÑтаннÑ\n" +msgid "%pB: invalid mmo file: file name for number %d was not specified before use\n" +msgstr "%pB: некоректний файл mmo: назву файла Ð´Ð»Ñ Ð½Ð¾Ð¼ÐµÑ€Ð° %d не було вказано до викориÑтаннÑ\n" #: mmo.c:1981 #, c-format -msgid "%B: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n" -msgstr "%B: некоректний файл mmo: Ð¿Ð¾Ð»Ñ y Ñ– z lop_stab Ñ” ненульовими, y: %d, z: %d\n" +msgid "%pB: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n" +msgstr "%pB: некоректний файл mmo: Ð¿Ð¾Ð»Ñ y Ñ– z lop_stab Ñ” ненульовими, y: %d, z: %d\n" #: mmo.c:2018 #, c-format -msgid "%B: invalid mmo file: lop_end not last item in file\n" -msgstr "%B: некоректний файл mmo: lop_end не Ñ” оÑтаннім запиÑом у файлі\n" +msgid "%pB: invalid mmo file: lop_end not last item in file\n" +msgstr "%pB: некоректний файл mmo: lop_end не Ñ” оÑтаннім запиÑом у файлі\n" #: mmo.c:2032 #, c-format -msgid "%B: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)\n" -msgstr "%B: некоректний файл mmo: YZ lop_end (%ld) не дорівнює кількоÑÑ‚Ñ– тетрад до попереднього lop_stab (%ld)\n" +msgid "%pB: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)\n" +msgstr "%pB: некоректний файл mmo: YZ lop_end (%ld) не дорівнює кількоÑÑ‚Ñ– тетрад до попереднього lop_stab (%ld)\n" #: mmo.c:2743 #, c-format -msgid "%B: invalid symbol table: duplicate symbol `%s'\n" -msgstr "%B: некоректна Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ñимволу «%s»\n" +msgid "%pB: invalid symbol table: duplicate symbol `%s'\n" +msgstr "%pB: некоректна Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ñимволу «%s»\n" #: mmo.c:2986 #, c-format -msgid "%B: Bad symbol definition: `Main' set to %s rather than the start address %s\n" -msgstr "%B: помилкове Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñимволу: «Main» вÑтановлено у %s, а не у початкову адреÑу %s\n" +msgid "%pB: bad symbol definition: `Main' set to %s rather than the start address %s\n" +msgstr "%pB: помилкове Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñимволу: «Main» вÑтановлено у %s, а не у початкову адреÑу %s\n" #: mmo.c:3085 #, c-format -msgid "%B: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d. Only `Main' will be emitted.\n" -msgstr "%B: попередженнÑ: Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів Ñ” надто великою Ð´Ð»Ñ mmo, Ñ—Ñ— розмір перевищує 65535 32-бітових Ñлова: %d. Буде випущено лише «Main».\n" +msgid "%pB: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d. Only `Main' will be emitted.\n" +msgstr "%pB: попередженнÑ: Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів Ñ” надто великою Ð´Ð»Ñ mmo, Ñ—Ñ— розмір перевищує 65535 32-бітових Ñлова: %d. Буде випущено лише «Main».\n" #: mmo.c:3131 #, c-format -msgid "%B: internal error, symbol table changed size from %d to %d words\n" -msgstr "%B: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°, змінено розмір таблиці Ñимволів з %d до %d Ñлів\n" +msgid "%pB: internal error, symbol table changed size from %d to %d words\n" +msgstr "%pB: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°, змінено розмір таблиці Ñимволів з %d до %d Ñлів\n" #: mmo.c:3184 #, c-format -msgid "%B: internal error, internal register section %A had contents\n" -msgstr "%B: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°, внутрішній розділ регіÑтрів, %A, міÑтив дані\n" +msgid "%pB: internal error, internal register section %pA had contents\n" +msgstr "%pB: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°, внутрішній розділ регіÑтрів, %pA, міÑтив дані\n" #: mmo.c:3235 -msgid "%B: no initialized registers; section length 0\n" -msgstr "%B: немає ініціалізованих регіÑтрів, довжина розділу дорівнює 0\n" +#, c-format +msgid "%pB: no initialized registers; section length 0\n" +msgstr "%pB: немає ініціалізованих регіÑтрів, довжина розділу дорівнює 0\n" #: mmo.c:3242 #, c-format -msgid "%B: too many initialized registers; section length %ld\n" -msgstr "%B: занадто багато ініціалізованих регіÑтрів; довжина розділу — %ld\n" +msgid "%pB: too many initialized registers; section length %" +msgstr "%pB: занадто багато ініціалізованих регіÑтрів; довжина розділу — %" #: mmo.c:3247 #, c-format -msgid "%B: invalid start address for initialized registers of length %ld: 0x%lx%08lx\n" -msgstr "%B: некоректна початкова адреÑа Ð´Ð»Ñ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ… регіÑтрів довжини %ld: 0x%lx%08lx\n" - -#: oasys.c:881 -#, c-format -msgid "%B: can not represent section `%A' in oasys" -msgstr "%B: Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ «%A» у форматі oasys неможливе" +msgid "%pB: invalid start address for initialized registers of length %: %#" +msgstr "%pB: некоректна початкова адреÑа Ð´Ð»Ñ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ… регіÑтрів довжини %: %#" #: osf-core.c:127 #, c-format -msgid "Unhandled OSF/1 core file section type %d\n" -msgstr "Ðепридатни до обробки тип розділу файла core OSF/1, %d\n" - -#: pe-mips.c:609 -msgid "%B: `ld -r' not supported with PE MIPS objects\n" -msgstr "%B: підтримки «ld -r» з об’єктами PE MIPS не передбачено\n" - -#. OK, at this point the following variables are set up: -#. src = VMA of the memory we're fixing up -#. mem = pointer to memory we're fixing up -#. val = VMA of what we need to refer to. -#: pe-mips.c:720 -#, c-format -msgid "%B: unimplemented %s\n" -msgstr "%B: нереалізований %s\n" - -#: pe-mips.c:746 -msgid "%B: jump too far away\n" -msgstr "%B: занадто далекий перехід\n" - -#: pe-mips.c:772 -msgid "%B: bad pair/reflo after refhi\n" -msgstr "%B: помилкове pair/reflo піÑÐ»Ñ refhi\n" +msgid "unhandled OSF/1 core file section type %d" +msgstr "непридатний до обробки тип розділу файла core OSF/1, %d" -#: pef.c:526 +#: pef.c:527 #, c-format msgid "bfd_pef_scan: unknown architecture 0x%lx" msgstr "bfd_pef_scan: невідома архітектура, 0x%lx" +#: pei-x86_64.c:177 pei-x86_64.c:191 pei-x86_64.c:220 +#, c-format +msgid "warning: corrupt unwind data\n" +msgstr "попередженнÑ: пошкоджено дані розгортаннÑ\n" + #. PR 17512: file: 2245-7442-0.004. -#: pei-x86_64.c:281 +#: pei-x86_64.c:315 #, c-format msgid "Unknown: %x" msgstr "Ðевідомий: %x" -#: pei-x86_64.c:331 +#: pei-x86_64.c:365 pei-x86_64.c:375 pei-x86_64.c:384 #, c-format msgid "warning: xdata section corrupt\n" msgstr "попередженнÑ: пошкоджено розділ xdata\n" -#: pei-x86_64.c:341 -#, c-format -msgid "warning: xdata section corrupt" -msgstr "попередженнÑ: пошкоджено розділ xdata" - -#: pei-x86_64.c:401 +#: pei-x86_64.c:439 #, c-format msgid "Too many unwind codes (%ld)\n" msgstr "Забагато кодів Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ (%ld)\n" -#: pei-x86_64.c:491 +#: pei-x86_64.c:529 #, c-format msgid "Warning: %s section size (%ld) is not a multiple of %d\n" msgstr "ПопередженнÑ: розмір розділу %s (%ld) не Ñ” кратним до %d\n" -#: pei-x86_64.c:498 +#: pei-x86_64.c:536 #, c-format msgid "Warning: %s section size is zero\n" msgstr "ПопередженнÑ: розмір розділу %s Ñ” нульовим\n" -#: pei-x86_64.c:513 +#: pei-x86_64.c:551 #, c-format msgid "Warning: %s section size (%ld) is smaller than virtual size (%ld)\n" msgstr "ПопередженнÑ: розмір розділу %s (%ld) Ñ” меншим за віртуальний розмір (%ld)\n" -#: pei-x86_64.c:522 +#: pei-x86_64.c:560 #, c-format msgid "" "\n" @@ -5695,12 +5359,12 @@ "\n" "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹ (оброблений вміÑÑ‚ розділу %s)\n" -#: pei-x86_64.c:525 +#: pei-x86_64.c:563 #, c-format msgid "vma:\t\t\tBeginAddress\t EndAddress\t UnwindData\n" msgstr "vma:\t\t\tПочаткÐдреÑа\t КінцÐдреÑаs\t ДаніUnwind\n" -#: pei-x86_64.c:654 +#: pei-x86_64.c:692 #, c-format msgid "" "\n" @@ -5712,42 +5376,45 @@ #. XXX code yet to be written. #: peicode.h:775 #, c-format -msgid "%B: Unhandled import type; %x" -msgstr "%B: непридатний до обробки тип імпортуваннÑ; %x" +msgid "%pB: unhandled import type; %x" +msgstr "%pB: непридатний до обробки тип імпортуваннÑ; %x" #: peicode.h:781 #, c-format -msgid "%B: Unrecognised import type; %x" -msgstr "%B: нерозпізнаний тип імпортуваннÑ; %x" +msgid "%pB: unrecognized import type; %x" +msgstr "%pB: нерозпізнаний тип імпортуваннÑ; %x" #: peicode.h:796 #, c-format -msgid "%B: Unrecognised import name type; %x" -msgstr "%B: нерозпізнана назва імпортуваннÑ; %x" +msgid "%pB: unrecognized import name type; %x" +msgstr "%pB: нерозпізнана назва імпортуваннÑ; %x" -#: peicode.h:1217 +#: peicode.h:1211 #, c-format -msgid "%B: Unrecognised machine type (0x%x) in Import Library Format archive" -msgstr "%B: нерозпізнаний тип архітектури (0x%x) у архіві Import Library Format" +msgid "%pB: unrecognised machine type (0x%x) in Import Library Format archive" +msgstr "%pB: нерозпізнаний тип архітектури (0x%x) у архіві Import Library Format" -#: peicode.h:1230 +#: peicode.h:1224 #, c-format -msgid "%B: Recognised but unhandled machine type (0x%x) in Import Library Format archive" -msgstr "%B: розпізнаний, але непридатний до обробки тип архітектури (0x%x) у архіві Import Library Format" +msgid "%pB: recognised but unhandled machine type (0x%x) in Import Library Format archive" +msgstr "%pB: розпізнаний, але непридатний до обробки тип архітектури (0x%x) у архіві Import Library Format" -#: peicode.h:1248 -msgid "%B: size field is zero in Import Library Format header" -msgstr "%B: у заголовку Import Library Format поле розміру Ñ” нульовим" +#: peicode.h:1242 +#, c-format +msgid "%pB: size field is zero in Import Library Format header" +msgstr "%pB: у заголовку Import Library Format поле розміру Ñ” нульовим" -#: peicode.h:1280 -msgid "%B: string not null terminated in ILF object file." -msgstr "%B: у об’єктному файлі ILF Ñ€Ñдок не завершуєтьÑÑ Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ñимволом." +#: peicode.h:1274 +#, c-format +msgid "%pB: string not null terminated in ILF object file" +msgstr "%pB: у об’єктному файлі ILF Ñ€Ñдок не завершуєтьÑÑ Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ñимволом" -#: peicode.h:1333 -msgid "%B: Error: Debug Data ends beyond end of debug directory." -msgstr "%B: помилка: діагноÑтичні дані завершуютьÑÑ Ð·Ð° кінцем діагноÑтичного каталогу." +#: peicode.h:1330 +#, c-format +msgid "%pB: error: debug data ends beyond end of debug directory" +msgstr "%pB: помилка: діагноÑтичні дані завершуютьÑÑ Ð·Ð° кінцем діагноÑтичного каталогу" -#: ppcboot.c:393 +#: ppcboot.c:392 #, c-format msgid "" "\n" @@ -5756,27 +5423,27 @@ "\n" "Заголовок ppcboot:\n" -#: ppcboot.c:394 +#: ppcboot.c:393 #, c-format msgid "Entry offset = 0x%.8lx (%ld)\n" msgstr "ВідÑтуп входу = 0x%.8lx (%ld)\n" -#: ppcboot.c:396 +#: ppcboot.c:395 #, c-format msgid "Length = 0x%.8lx (%ld)\n" msgstr "Довжина = 0x%.8lx (%ld)\n" -#: ppcboot.c:400 +#: ppcboot.c:399 #, c-format msgid "Flag field = 0x%.2x\n" msgstr "Поле прапорців = 0x%.2x\n" -#: ppcboot.c:406 +#: ppcboot.c:405 #, c-format msgid "Partition name = \"%s\"\n" msgstr "Ðазва розділу = \"%s\"\n" -#: ppcboot.c:426 +#: ppcboot.c:425 #, c-format msgid "" "\n" @@ -5785,43 +5452,55 @@ "\n" "Початок розділу[%d] = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" -#: ppcboot.c:433 +#: ppcboot.c:432 #, c-format msgid "Partition[%d] end = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" msgstr "Кінець розділу[%d] = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n" -#: ppcboot.c:440 +#: ppcboot.c:439 #, c-format msgid "Partition[%d] sector = 0x%.8lx (%ld)\n" msgstr "Сектор розділу[%d] = 0x%.8lx (%ld)\n" -#: ppcboot.c:444 +#: ppcboot.c:443 #, c-format msgid "Partition[%d] length = 0x%.8lx (%ld)\n" msgstr "Довжина розділу[%d] = 0x%.8lx (%ld)\n" -#: reloc.c:8064 -msgid "INPUT_SECTION_FLAGS are not supported.\n" -msgstr "Підтримки INPUT_SECTION_FLAGS не передбачено.\n" +#: reloc.c:8163 +msgid "INPUT_SECTION_FLAGS are not supported" +msgstr "Підтримки INPUT_SECTION_FLAGS не передбачено" + +#: reloc.c:8264 +#, c-format +msgid "%X%P: %pB(%pA): error: relocation for offset %V has no value\n" +msgstr "%X%P: %pB(%pA): помилка: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð·Ñуву %V не має значеннÑ\n" + +#: reloc.c:8340 +#, c-format +msgid "%X%P: %pB(%pA): relocation \"%pR\" is not supported\n" +msgstr "%X%P: %pB(%pA): підтримки переÑÑƒÐ²Ð°Ð½Ð½Ñ Â«%pR» не передбачено\n" -#: reloc.c:8165 +#: reloc.c:8349 #, c-format -msgid "%X%P: %B(%A): error: relocation for offset %V has no value\n" -msgstr "%X%P: %B(%A): помилка: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð·Ñуву %V не має значеннÑ\n" +msgid "%X%P: %pB(%pA): relocation \"%pR\" returns an unrecognized value %x\n" +msgstr "%X%P: %pB(%pA): переÑÑƒÐ²Ð°Ð½Ð½Ñ Â«%pR» повертає нерозпізнане Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %x\n" -#: reloc.c:8241 +#: reloc.c:8411 #, c-format -msgid "%X%P: %B(%A): relocation \"%R\" is not supported\n" -msgstr "%X%P: %B(%A): підтримки переÑÑƒÐ²Ð°Ð½Ð½Ñ Â«%R» не передбачено\n" +msgid "%pB: unrecognized relocation type %#x in section `%pA'" +msgstr "%pB: нерозпізнане переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð¸Ð¿Ñƒ %#x у розділі «%pA»" -#: reloc.c:8250 +#. PR 21803: Suggest the most likely cause of this error. +#: reloc.c:8415 #, c-format -msgid "%X%P: %B(%A): relocation \"%R\" returns an unrecognized value %x\n" -msgstr "%X%P: %B(%A): переÑÑƒÐ²Ð°Ð½Ð½Ñ Â«%R» повертає нерозпізнане Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %x\n" +msgid "is this version of the linker - %s - out of date ?" +msgstr "можливо, Ñ†Ñ Ð²ÐµÑ€ÑÑ–Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ° - %s - Ñ” заÑтарілою?" #: rs6000-core.c:471 -msgid "%B: warning core file truncated" -msgstr "%B: попередженнÑ: файл core обрізано" +#, c-format +msgid "%pB: warning core file truncated" +msgstr "%pB: попередженнÑ: файл core обрізано" #: som.c:5478 #, c-format @@ -5838,82 +5517,91 @@ #: srec.c:260 #, c-format -msgid "%B:%d: Unexpected character `%s' in S-record file\n" -msgstr "%B:%d: неочікуваний Ñимвол «%s» у файлі запиÑів S\n" +msgid "%pB:%d: unexpected character `%s' in S-record file" +msgstr "%pB:%d: неочікуваний Ñимвол «%s» у файлі запиÑів S" #: srec.c:488 #, c-format -msgid "%B:%d: byte count %d too small\n" -msgstr "%B:%d: кількіÑÑ‚ÑŒ байтів %d Ñ” надто малою\n" +msgid "%pB:%d: byte count %d too small" +msgstr "%pB:%d: кількіÑÑ‚ÑŒ байтів %d Ñ” надто малою" #: srec.c:581 srec.c:615 #, c-format -msgid "%B:%d: Bad checksum in S-record file\n" -msgstr "%B:%d: помилкова контрольна Ñума у файлі запиÑів S\n" +msgid "%pB:%d: bad checksum in S-record file" +msgstr "%pB:%d: помилкова контрольна Ñума у файлі запиÑів S" #: stabs.c:279 #, c-format -msgid "%B(%A+0x%lx): Stabs entry has invalid string index." -msgstr "%B(%A+0x%lx): Ð·Ð°Ð¿Ð¸Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– stabs міÑтить некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñ€Ñдка." +msgid "%pB(%pA+%#lx): stabs entry has invalid string index" +msgstr "%pB(%pA+%#lx): Ð·Ð°Ð¿Ð¸Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– stabs міÑтить некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñ€Ñдка" #: syms.c:1079 -msgid "Unsupported .stab relocation" -msgstr "Ðепідтримуване переÑÑƒÐ²Ð°Ð½Ð½Ñ .stab" +msgid "unsupported .stab relocation" +msgstr "непідтримуване переÑÑƒÐ²Ð°Ð½Ð½Ñ .stab" + +#: vms-alpha.c:479 +msgid "corrupt EIHD record - size is too small" +msgstr "пошкоджений Ð·Ð°Ð¿Ð¸Ñ EIHD: розмір Ñ” надто малим" + +#: vms-alpha.c:660 +#, c-format +msgid "unable to read EIHS record at offset %#x" +msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ EIHS зі зÑувом %#x" -#: vms-alpha.c:652 +#: vms-alpha.c:1173 #, c-format -msgid "Unable to read EIHS record at offset %#x" -msgstr "Ðе вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ EIHS зі зÑувом %#x" +msgid "corrupt EGSD record: its size (%#x) is too small" +msgstr "пошкоджений Ð·Ð°Ð¿Ð¸Ñ EGSD: його розмір (%#x) Ñ” надто малим" -#: vms-alpha.c:1164 +#: vms-alpha.c:1197 #, c-format -msgid "Corrupt EGSD record: its size (%#x) is too small" -msgstr "Пошкоджений Ð·Ð°Ð¿Ð¸Ñ EGSD: його розмір (%#x) Ñ” надто малим" +msgid "corrupt EGSD record: size (%#x) is larger than remaining space (%#x)" +msgstr "пошкоджений Ð·Ð°Ð¿Ð¸Ñ EGSD: розмір (%#x) Ñ” більшим за залишок міÑÑ†Ñ (%#x)" -#: vms-alpha.c:1188 +#: vms-alpha.c:1205 #, c-format -msgid "Corrupt EGSD record: size (%#x) is larger than remaining space (%#x)" -msgstr "Пошкоджений Ð·Ð°Ð¿Ð¸Ñ EGSD: розмір (%#x) Ñ” більшим за залишок міÑÑ†Ñ (%#x)" +msgid "corrupt EGSD record: size (%#x) is too small" +msgstr "пошкоджений Ð·Ð°Ð¿Ð¸Ñ EGSD: розмір (%#x) Ñ” надто малим" -#: vms-alpha.c:1196 +#: vms-alpha.c:1334 vms-alpha.c:1350 vms-alpha.c:1390 #, c-format -msgid "Corrupt EGSD record: size (%#x) is too small" -msgstr "Пошкоджений Ð·Ð°Ð¿Ð¸Ñ EGSD: розмір (%#x) Ñ” надто малим" +msgid "corrupt EGSD record: its psindx field is too big (%#lx)" +msgstr "пошкоджений Ð·Ð°Ð¿Ð¸Ñ EGSD: вміÑÑ‚ його Ð¿Ð¾Ð»Ñ psindx Ñ” надто великим (%#lx)" -#: vms-alpha.c:1380 +#: vms-alpha.c:1419 #, c-format -msgid "Unknown EGSD subtype %d" -msgstr "Ðевідомий підтип EGSD, %d" +msgid "unknown EGSD subtype %d" +msgstr "невідомий підтип EGSD, %d" -#: vms-alpha.c:1413 +#: vms-alpha.c:1452 #, c-format -msgid "Stack overflow (%d) in _bfd_vms_push" -msgstr "ÐŸÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñтека (%d) у _bfd_vms_push" +msgid "stack overflow (%d) in _bfd_vms_push" +msgstr "Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñтека (%d) у _bfd_vms_push" -#: vms-alpha.c:1426 -msgid "Stack underflow in _bfd_vms_pop" -msgstr "ÐŸÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñтека у _bfd_vms_pop" +#: vms-alpha.c:1465 +msgid "stack underflow in _bfd_vms_pop" +msgstr "Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñтека у _bfd_vms_pop" #. These names have not yet been added to this switch statement. -#: vms-alpha.c:1665 +#: vms-alpha.c:1707 #, c-format msgid "unknown ETIR command %d" msgstr "невідома команда ETIR, %d" -#: vms-alpha.c:1696 -msgid "Corrupt vms value" -msgstr "Пошкоджене Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ vms" - -#: vms-alpha.c:1824 -msgid "Corrupt ETIR record encountered" -msgstr "ВиÑвлено пошкоджений Ð·Ð°Ð¿Ð¸Ñ ETIR" +#: vms-alpha.c:1738 +msgid "corrupt vms value" +msgstr "пошкоджене Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ vms" + +#: vms-alpha.c:1866 +msgid "corrupt ETIR record encountered" +msgstr "виÑвлено пошкоджений Ð·Ð°Ð¿Ð¸Ñ ETIR" -#: vms-alpha.c:1881 +#: vms-alpha.c:1923 #, c-format msgid "bad section index in %s" msgstr "помилковий номер розділу у %s" -#: vms-alpha.c:1894 +#: vms-alpha.c:1936 #, c-format msgid "unsupported STA cmd %s" msgstr "непідтримувана команда STA, %s" @@ -5923,1463 +5611,1468 @@ #. Rotate. #. Redefine symbol to current location. #. Define a literal. -#: vms-alpha.c:2074 vms-alpha.c:2105 vms-alpha.c:2196 vms-alpha.c:2354 +#: vms-alpha.c:2116 vms-alpha.c:2147 vms-alpha.c:2238 vms-alpha.c:2396 #, c-format msgid "%s: not supported" msgstr "%s: підтримки не передбачено" -#: vms-alpha.c:2080 +#: vms-alpha.c:2122 #, c-format msgid "%s: not implemented" msgstr "%s: не реалізовано" -#: vms-alpha.c:2338 +#: vms-alpha.c:2380 #, c-format msgid "invalid use of %s with contexts" msgstr "некоректне викориÑÑ‚Ð°Ð½Ð½Ñ %s з контекÑтами" -#: vms-alpha.c:2372 +#: vms-alpha.c:2414 #, c-format msgid "reserved cmd %d" msgstr "зарезервована команда %d" -#: vms-alpha.c:2457 -msgid "Object module NOT error-free !\n" -msgstr "У об’єктному модулі міÑÑ‚ÑÑ‚ÑŒÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸!\n" +#: vms-alpha.c:2498 +msgid "corrupt EEOM record - size is too small" +msgstr "пошкоджений Ð·Ð°Ð¿Ð¸Ñ EEOM: розмір Ñ” надто малим" + +#: vms-alpha.c:2507 +msgid "object module not error-free !" +msgstr "у об’єктному модулі міÑÑ‚ÑÑ‚ÑŒÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸!" -#: vms-alpha.c:3778 +#: vms-alpha.c:3831 #, c-format -msgid "SEC_RELOC with no relocs in section %A" -msgstr "SEC_RELOC без переÑувань у розділі %A" +msgid "SEC_RELOC with no relocs in section %pA" +msgstr "SEC_RELOC без переÑувань у розділі %pA" -#: vms-alpha.c:3830 vms-alpha.c:4043 +#: vms-alpha.c:3883 vms-alpha.c:4096 #, c-format -msgid "Size error in section %A" -msgstr "Помилка у розмірі у розділі %A" +msgid "size error in section %pA" +msgstr "помилка у розмірі у розділі %pA" -#: vms-alpha.c:3989 -msgid "Spurious ALPHA_R_BSR reloc" -msgstr "Фальшиве переÑÑƒÐ²Ð°Ð½Ð½Ñ ALPHA_R_BSR" +#: vms-alpha.c:4042 +msgid "spurious ALPHA_R_BSR reloc" +msgstr "фальшиве переÑÑƒÐ²Ð°Ð½Ð½Ñ ALPHA_R_BSR" -#: vms-alpha.c:4030 +#: vms-alpha.c:4083 #, c-format -msgid "Unhandled relocation %s" -msgstr "Ðепридатне до обробки переÑÑƒÐ²Ð°Ð½Ð½Ñ %s" +msgid "unhandled relocation %s" +msgstr "непридатне до обробки переÑÑƒÐ²Ð°Ð½Ð½Ñ %s" -#: vms-alpha.c:4323 +#: vms-alpha.c:4376 #, c-format msgid "unknown source command %d" msgstr "невідома початкова команда %d" -#: vms-alpha.c:4384 -msgid "DST__K_SET_LINUM_INCR not implemented" -msgstr "DST__K_SET_LINUM_INCR не реалізовано" - -#: vms-alpha.c:4390 -msgid "DST__K_SET_LINUM_INCR_W not implemented" -msgstr "DST__K_SET_LINUM_INCR_W не реалізовано" - -#: vms-alpha.c:4396 -msgid "DST__K_RESET_LINUM_INCR not implemented" -msgstr "DST__K_RESET_LINUM_INCR не реалізовано" - -#: vms-alpha.c:4402 -msgid "DST__K_BEG_STMT_MODE not implemented" -msgstr "DST__K_BEG_STMT_MODE не реалізовано" - -#: vms-alpha.c:4408 -msgid "DST__K_END_STMT_MODE not implemented" -msgstr "DST__K_END_STMT_MODE не реалізовано" - -#: vms-alpha.c:4435 -msgid "DST__K_SET_PC not implemented" -msgstr "DST__K_SET_PC не реалізовано" - -#: vms-alpha.c:4441 -msgid "DST__K_SET_PC_W not implemented" -msgstr "DST__K_SET_PC_W не реалізовано" - -#: vms-alpha.c:4447 -msgid "DST__K_SET_PC_L not implemented" -msgstr "DST__K_SET_PC_L не реалізовано" - -#: vms-alpha.c:4453 -msgid "DST__K_SET_STMTNUM not implemented" -msgstr "DST__K_SET_STMTNUM не реалізовано" +#: vms-alpha.c:4437 vms-alpha.c:4443 vms-alpha.c:4449 vms-alpha.c:4455 +#: vms-alpha.c:4461 vms-alpha.c:4488 vms-alpha.c:4494 vms-alpha.c:4500 +#: vms-alpha.c:4506 +#, c-format +msgid "%s not implemented" +msgstr "%s не реалізовано" -#: vms-alpha.c:4496 +#: vms-alpha.c:4549 #, c-format msgid "unknown line command %d" msgstr "невідома Ñ€Ñдкова команда %d" -#: vms-alpha.c:4956 vms-alpha.c:4974 vms-alpha.c:4989 vms-alpha.c:5005 -#: vms-alpha.c:5018 vms-alpha.c:5030 vms-alpha.c:5043 +#: vms-alpha.c:5009 vms-alpha.c:5027 vms-alpha.c:5042 vms-alpha.c:5058 +#: vms-alpha.c:5071 vms-alpha.c:5083 vms-alpha.c:5096 #, c-format -msgid "Unknown reloc %s + %s" -msgstr "Ðевідоме переÑÑƒÐ²Ð°Ð½Ð½Ñ %s + %s" +msgid "unknown reloc %s + %s" +msgstr "невідоме переÑÑƒÐ²Ð°Ð½Ð½Ñ %s + %s" -#: vms-alpha.c:5098 +#: vms-alpha.c:5151 #, c-format -msgid "Unknown reloc %s" -msgstr "Ðевідоме переÑÑƒÐ²Ð°Ð½Ð½Ñ %s" +msgid "unknown reloc %s" +msgstr "невідоме переÑÑƒÐ²Ð°Ð½Ð½Ñ %s" -#: vms-alpha.c:5111 -msgid "Invalid section index in ETIR" -msgstr "Ðекоректний номер розділу у ETIR" +#: vms-alpha.c:5164 +msgid "invalid section index in ETIR" +msgstr "некоректний номер розділу у ETIR" -#: vms-alpha.c:5120 -msgid "Relocation for non-REL psect" -msgstr "ПереÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ psect, Ñкий не Ñ” REL" +#: vms-alpha.c:5173 +msgid "relocation for non-REL psect" +msgstr "переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ psect, Ñкий не Ñ” REL" -#: vms-alpha.c:5167 +#: vms-alpha.c:5220 #, c-format -msgid "Unknown symbol in command %s" -msgstr "Ðевідомий Ñимвол у команді %s" +msgid "unknown symbol in command %s" +msgstr "невідомий Ñимвол у команді %s" -#: vms-alpha.c:5577 +#: vms-alpha.c:5630 #, c-format msgid "reloc (%d) is *UNKNOWN*" msgstr "переÑÑƒÐ²Ð°Ð½Ð½Ñ (%d) Ñ” *ÐЕВІДОМИМ*" -#: vms-alpha.c:5692 +#: vms-alpha.c:5746 #, c-format msgid " EMH %u (len=%u): " msgstr " EMH %u (довж=%u): " -#: vms-alpha.c:5697 +#: vms-alpha.c:5751 #, c-format msgid " Error: The length is less than the length of an EMH record\n" msgstr " Помилка: довжина Ñ” меншою за довжину запиÑу EMH\n" -#: vms-alpha.c:5708 +#: vms-alpha.c:5768 +#, c-format +msgid " Error: The record length is less than the size of an EMH_MHD record\n" +msgstr " Помилка: довжина запиÑу Ñ” меншою за розмір запиÑу EMH_MHD\n" + +#: vms-alpha.c:5771 #, c-format msgid "Module header\n" msgstr "Заголовок модулÑ\n" -#: vms-alpha.c:5709 +#: vms-alpha.c:5772 #, c-format msgid " structure level: %u\n" msgstr " рівень Ñтрукт. : %u\n" -#: vms-alpha.c:5710 +#: vms-alpha.c:5773 #, c-format msgid " max record size: %u\n" msgstr " макÑ. розм. запиÑу: %u\n" -#: vms-alpha.c:5713 +#: vms-alpha.c:5779 +#, c-format +msgid " Error: The module name is missing\n" +msgstr " Помилка: не вказано назви модулÑ\n" + +#: vms-alpha.c:5785 +#, c-format +msgid " Error: The module name is too long\n" +msgstr " Помилка: назва Ð¼Ð¾Ð´ÑƒÐ»Ñ Ñ” надто довгою\n" + +#: vms-alpha.c:5788 #, c-format msgid " module name : %.*s\n" msgstr " назва Ð¼Ð¾Ð´ÑƒÐ»Ñ : %.*s\n" -#: vms-alpha.c:5715 +#: vms-alpha.c:5792 +#, c-format +msgid " Error: The module version is missing\n" +msgstr " Помилка: не вказано верÑÑ–ÑŽ модулÑ\n" + +#: vms-alpha.c:5798 +#, c-format +msgid " Error: The module version is too long\n" +msgstr " Помилка: верÑÑ–Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ Ñ” надто довгою\n" + +#: vms-alpha.c:5801 #, c-format msgid " module version : %.*s\n" msgstr " верÑÑ–Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ : %.*s\n" -#: vms-alpha.c:5717 +#: vms-alpha.c:5804 +#, c-format +msgid " Error: The compile date is truncated\n" +msgstr " Помилка: дату Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð¾Ð±Ñ€Ñ–Ð·Ð°Ð½Ð¾\n" + +#: vms-alpha.c:5806 #, c-format msgid " compile date : %.17s\n" msgstr " дата Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ : %.17s\n" -#: vms-alpha.c:5722 +#: vms-alpha.c:5811 #, c-format msgid "Language Processor Name\n" msgstr "Ðазва обробника мови\n" -#: vms-alpha.c:5723 +#: vms-alpha.c:5812 #, c-format msgid " language name: %.*s\n" msgstr " назва мови : %.*s\n" -#: vms-alpha.c:5730 +#: vms-alpha.c:5816 #, c-format msgid "Source Files Header\n" msgstr "Заголовок файлів коду\n" -#: vms-alpha.c:5731 +#: vms-alpha.c:5817 #, c-format msgid " file: %.*s\n" msgstr " файл: %.*s\n" -#: vms-alpha.c:5738 +#: vms-alpha.c:5821 #, c-format msgid "Title Text Header\n" msgstr "Заголовок титульного текÑту\n" -#: vms-alpha.c:5739 +#: vms-alpha.c:5822 #, c-format msgid " title: %.*s\n" msgstr " заголовок: %.*s\n" -#: vms-alpha.c:5746 +#: vms-alpha.c:5826 #, c-format msgid "Copyright Header\n" msgstr "Заголовок авторÑьких прав\n" -#: vms-alpha.c:5747 +#: vms-alpha.c:5827 #, c-format msgid " copyright: %.*s\n" msgstr " авторÑькі права: %.*s\n" -#: vms-alpha.c:5753 +#: vms-alpha.c:5831 #, c-format msgid "unhandled emh subtype %u\n" msgstr "непридатний до обробки підтип emh, %u\n" -#: vms-alpha.c:5763 +#: vms-alpha.c:5841 #, c-format msgid " EEOM (len=%u):\n" msgstr " EEOM (довж=%u):\n" -#: vms-alpha.c:5768 +#: vms-alpha.c:5846 #, c-format msgid " Error: The length is less than the length of an EEOM record\n" msgstr " Помилка: довжина Ñ” меншою за довжину запиÑу EEOM\n" -#: vms-alpha.c:5772 +#: vms-alpha.c:5850 #, c-format msgid " number of cond linkage pairs: %u\n" msgstr " кількіÑÑ‚ÑŒ пар умовного компонуваннÑ: %u\n" -#: vms-alpha.c:5774 +#: vms-alpha.c:5852 #, c-format msgid " completion code: %u\n" msgstr " код завершеннÑ: %u\n" -#: vms-alpha.c:5778 +#: vms-alpha.c:5856 #, c-format msgid " transfer addr flags: 0x%02x\n" msgstr " прапорці Ð¿ÐµÑ€ÐµÐ´Ð°Ð²Ð°Ð½Ð½Ñ Ð°Ð´Ñ€ÐµÑи: 0x%02x\n" -#: vms-alpha.c:5779 +#: vms-alpha.c:5857 #, c-format msgid " transfer addr psect: %u\n" msgstr " psect Ð¿ÐµÑ€ÐµÐ´Ð°Ð²Ð°Ð½Ð½Ñ Ð°Ð´Ñ€ÐµÑи: %u\n" -#: vms-alpha.c:5781 +#: vms-alpha.c:5859 #, c-format msgid " transfer address : 0x%08x\n" msgstr " адреÑа перенеÑÐµÐ½Ð½Ñ : 0x%08x\n" -#: vms-alpha.c:5790 +#: vms-alpha.c:5868 msgid " WEAK" msgstr " WEAK" -#: vms-alpha.c:5792 +#: vms-alpha.c:5870 msgid " DEF" msgstr " DEF" -#: vms-alpha.c:5794 +#: vms-alpha.c:5872 msgid " UNI" msgstr " UNI" -#: vms-alpha.c:5796 vms-alpha.c:5817 +#: vms-alpha.c:5874 vms-alpha.c:5895 msgid " REL" msgstr " REL" -#: vms-alpha.c:5798 +#: vms-alpha.c:5876 msgid " COMM" msgstr " COMM" -#: vms-alpha.c:5800 +#: vms-alpha.c:5878 msgid " VECEP" msgstr " VECEP" -#: vms-alpha.c:5802 +#: vms-alpha.c:5880 msgid " NORM" msgstr " NORM" -#: vms-alpha.c:5804 +#: vms-alpha.c:5882 msgid " QVAL" msgstr " QVAL" -#: vms-alpha.c:5811 +#: vms-alpha.c:5889 msgid " PIC" msgstr " PIC" -#: vms-alpha.c:5813 +#: vms-alpha.c:5891 msgid " LIB" msgstr " LIB" -#: vms-alpha.c:5815 +#: vms-alpha.c:5893 msgid " OVR" msgstr " OVR" -#: vms-alpha.c:5819 +#: vms-alpha.c:5897 msgid " GBL" msgstr " GBL" -#: vms-alpha.c:5821 +#: vms-alpha.c:5899 msgid " SHR" msgstr " SHR" -#: vms-alpha.c:5823 +#: vms-alpha.c:5901 msgid " EXE" msgstr " EXE" -#: vms-alpha.c:5825 +#: vms-alpha.c:5903 msgid " RD" msgstr " RD" -#: vms-alpha.c:5827 +#: vms-alpha.c:5905 msgid " WRT" msgstr " WRT" -#: vms-alpha.c:5829 +#: vms-alpha.c:5907 msgid " VEC" msgstr " VEC" -#: vms-alpha.c:5831 +#: vms-alpha.c:5909 msgid " NOMOD" msgstr " NOMOD" -#: vms-alpha.c:5833 +#: vms-alpha.c:5911 msgid " COM" msgstr " COM" -#: vms-alpha.c:5835 +#: vms-alpha.c:5913 msgid " 64B" msgstr " 64B" -#: vms-alpha.c:5844 +#: vms-alpha.c:5922 #, c-format msgid " EGSD (len=%u):\n" msgstr " EGSD (довж=%u):\n" -#: vms-alpha.c:5857 +#: vms-alpha.c:5935 #, c-format msgid " EGSD entry %2u (type: %u, len: %u): " msgstr " Ð·Ð°Ð¿Ð¸Ñ EGSD %2u (тип: %u, довж: %u): " -#: vms-alpha.c:5863 vms-alpha.c:6114 +#: vms-alpha.c:5941 vms-alpha.c:6192 #, c-format msgid " Error: length larger than remaining space in record\n" msgstr " Помилка: довжина перевищує міÑце, Ñке лишилоÑÑ Ñƒ запиÑÑ–\n" -#: vms-alpha.c:5875 +#: vms-alpha.c:5953 #, c-format msgid "PSC - Program section definition\n" msgstr "PSC — Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ програми\n" -#: vms-alpha.c:5876 vms-alpha.c:5893 +#: vms-alpha.c:5954 vms-alpha.c:5971 #, c-format msgid " alignment : 2**%u\n" msgstr " вирівнюваннÑ: 2**%u\n" -#: vms-alpha.c:5877 vms-alpha.c:5894 +#: vms-alpha.c:5955 vms-alpha.c:5972 #, c-format msgid " flags : 0x%04x" msgstr " прапорці : 0x%04x" -#: vms-alpha.c:5881 +#: vms-alpha.c:5959 #, c-format msgid " alloc (len): %u (0x%08x)\n" msgstr " alloc (довжина): %u (0x%08x)\n" -#: vms-alpha.c:5882 vms-alpha.c:5939 vms-alpha.c:5988 +#: vms-alpha.c:5960 vms-alpha.c:6017 vms-alpha.c:6066 #, c-format msgid " name : %.*s\n" msgstr " назва : %.*s\n" -#: vms-alpha.c:5892 +#: vms-alpha.c:5970 #, c-format msgid "SPSC - Shared Image Program section def\n" msgstr "SPSC — Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð¾Ð³Ð¾ розділу Ñпільного образу\n" -#: vms-alpha.c:5898 +#: vms-alpha.c:5976 #, c-format msgid " alloc (len) : %u (0x%08x)\n" msgstr " alloc (довжина): %u (0x%08x)\n" -#: vms-alpha.c:5899 +#: vms-alpha.c:5977 #, c-format msgid " image offset : 0x%08x\n" msgstr " відÑтуп образу: 0x%08x\n" -#: vms-alpha.c:5901 +#: vms-alpha.c:5979 #, c-format msgid " symvec offset : 0x%08x\n" msgstr " зÑув symvec : 0x%08x\n" -#: vms-alpha.c:5903 +#: vms-alpha.c:5981 #, c-format msgid " name : %.*s\n" msgstr " назва : %.*s\n" -#: vms-alpha.c:5916 +#: vms-alpha.c:5994 #, c-format msgid "SYM - Global symbol definition\n" msgstr "SYM — Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ñ… Ñимволів\n" -#: vms-alpha.c:5917 vms-alpha.c:5977 vms-alpha.c:5998 vms-alpha.c:6017 +#: vms-alpha.c:5995 vms-alpha.c:6055 vms-alpha.c:6076 vms-alpha.c:6095 #, c-format msgid " flags: 0x%04x" msgstr " прапорці: 0x%04x" -#: vms-alpha.c:5920 +#: vms-alpha.c:5998 #, c-format msgid " psect offset: 0x%08x\n" msgstr " відÑтуп psect: 0x%08x\n" -#: vms-alpha.c:5924 +#: vms-alpha.c:6002 #, c-format msgid " code address: 0x%08x\n" msgstr " адреÑа коду: 0x%08x\n" -#: vms-alpha.c:5926 +#: vms-alpha.c:6004 #, c-format msgid " psect index for entry point : %u\n" msgstr " Ñ–Ð½Ð´ÐµÐºÑ psect Ð´Ð»Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ входженнÑ: %u\n" -#: vms-alpha.c:5929 vms-alpha.c:6005 vms-alpha.c:6024 +#: vms-alpha.c:6007 vms-alpha.c:6083 vms-alpha.c:6102 #, c-format msgid " psect index : %u\n" msgstr " Ñ–Ð½Ð´ÐµÐºÑ psect: %u\n" -#: vms-alpha.c:5931 vms-alpha.c:6007 vms-alpha.c:6026 +#: vms-alpha.c:6009 vms-alpha.c:6085 vms-alpha.c:6104 #, c-format msgid " name : %.*s\n" msgstr " назва : %.*s\n" -#: vms-alpha.c:5938 +#: vms-alpha.c:6016 #, c-format msgid "SYM - Global symbol reference\n" msgstr "SYM — поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° загальні Ñимволи\n" -#: vms-alpha.c:5950 +#: vms-alpha.c:6028 #, c-format msgid "IDC - Ident Consistency check\n" msgstr "IDC — перевірка коректноÑÑ‚Ñ– ідентифікаторів\n" -#: vms-alpha.c:5951 +#: vms-alpha.c:6029 #, c-format msgid " flags : 0x%08x" msgstr " прапорці : 0x%08x" -#: vms-alpha.c:5955 +#: vms-alpha.c:6033 #, c-format msgid " id match : %x\n" msgstr " ід. відповідноÑÑ‚Ñ–: %x\n" -#: vms-alpha.c:5957 +#: vms-alpha.c:6035 #, c-format msgid " error severity: %x\n" msgstr " критичніÑÑ‚ÑŒ помилки: %x\n" -#: vms-alpha.c:5960 +#: vms-alpha.c:6038 #, c-format msgid " entity name : %.*s\n" msgstr " назва елемента: %.*s\n" -#: vms-alpha.c:5962 +#: vms-alpha.c:6040 #, c-format msgid " object name : %.*s\n" msgstr " назва об’єкта : %.*s\n" -#: vms-alpha.c:5965 +#: vms-alpha.c:6043 #, c-format msgid " binary ident : 0x%08x\n" msgstr " двійк. ідент. : 0x%08x\n" -#: vms-alpha.c:5968 +#: vms-alpha.c:6046 #, c-format msgid " ascii ident : %.*s\n" msgstr " ідент. ascii : %.*s\n" -#: vms-alpha.c:5976 +#: vms-alpha.c:6054 #, c-format msgid "SYMG - Universal symbol definition\n" msgstr "SYMG — УніверÑальне Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñимволів\n" -#: vms-alpha.c:5980 +#: vms-alpha.c:6058 #, c-format msgid " symbol vector offset: 0x%08x\n" msgstr " зÑув вектора Ñимволів: 0x%08x\n" -#: vms-alpha.c:5982 +#: vms-alpha.c:6060 #, c-format msgid " entry point: 0x%08x\n" msgstr " точка входу: 0x%08x\n" -#: vms-alpha.c:5984 +#: vms-alpha.c:6062 #, c-format msgid " proc descr : 0x%08x\n" msgstr " деÑкр. процеÑу: 0x%08x\n" -#: vms-alpha.c:5986 +#: vms-alpha.c:6064 #, c-format msgid " psect index: %u\n" msgstr " Ñ–Ð½Ð´ÐµÐºÑ psect: %u\n" -#: vms-alpha.c:5997 +#: vms-alpha.c:6075 #, c-format msgid "SYMV - Vectored symbol definition\n" msgstr "SYMV — Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€Ð¸Ð·Ð¾Ð²Ð°Ð½Ð¾Ð³Ð¾ Ñимволу\n" -#: vms-alpha.c:6001 +#: vms-alpha.c:6079 #, c-format msgid " vector : 0x%08x\n" msgstr " вектор : 0x%08x\n" -#: vms-alpha.c:6003 vms-alpha.c:6022 +#: vms-alpha.c:6081 vms-alpha.c:6100 #, c-format msgid " psect offset: %u\n" msgstr " відÑтуп psect: %u\n" -#: vms-alpha.c:6016 +#: vms-alpha.c:6094 #, c-format msgid "SYMM - Global symbol definition with version\n" msgstr "SYMM — Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñимволу з верÑією\n" -#: vms-alpha.c:6020 +#: vms-alpha.c:6098 #, c-format msgid " version mask: 0x%08x\n" msgstr " маÑка верÑÑ–Ñ—: 0x%08x\n" -#: vms-alpha.c:6031 +#: vms-alpha.c:6109 #, c-format msgid "unhandled egsd entry type %u\n" msgstr "непридатний до обробки тип запиÑу egsd, %u\n" -#: vms-alpha.c:6066 +#: vms-alpha.c:6144 #, c-format msgid " linkage index: %u, replacement insn: 0x%08x\n" msgstr " Ñ–Ð½Ð´ÐµÐºÑ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ: %u, інÑтрукціÑ-замінник: 0x%08x\n" -#: vms-alpha.c:6070 +#: vms-alpha.c:6148 #, c-format msgid " psect idx 1: %u, offset 1: 0x%08x %08x\n" msgstr " інд. psect 1: %u, відÑтуп 1: 0x%08x %08x\n" -#: vms-alpha.c:6075 +#: vms-alpha.c:6153 #, c-format msgid " psect idx 2: %u, offset 2: 0x%08x %08x\n" msgstr " інд. psect 2: %u, відÑтуп 2: 0x%08x %08x\n" -#: vms-alpha.c:6081 +#: vms-alpha.c:6159 #, c-format msgid " psect idx 3: %u, offset 3: 0x%08x %08x\n" msgstr " інд. psect 3: %u, відÑтуп 3: 0x%08x %08x\n" -#: vms-alpha.c:6086 +#: vms-alpha.c:6164 #, c-format msgid " global name: %.*s\n" msgstr " загальна назва: %.*s\n" -#: vms-alpha.c:6097 +#: vms-alpha.c:6175 #, c-format msgid " %s (len=%u+%u):\n" msgstr " %s (довж=%u+%u):\n" -#: vms-alpha.c:6119 +#: vms-alpha.c:6197 #, c-format msgid " (type: %3u, size: 4+%3u): " msgstr " (тип: %3u, розмір: 4+%3u): " -#: vms-alpha.c:6123 +#: vms-alpha.c:6201 #, c-format msgid "STA_GBL (stack global) %.*s\n" msgstr "STA_GBL (загальний Ñтек) %.*s\n" -#: vms-alpha.c:6127 +#: vms-alpha.c:6205 #, c-format msgid "STA_LW (stack longword) 0x%08x\n" msgstr "STA_LW (Ñтек довгих Ñлів) 0x%08x\n" -#: vms-alpha.c:6131 +#: vms-alpha.c:6209 #, c-format msgid "STA_QW (stack quadword) 0x%08x %08x\n" msgstr "STA_QW (Ñтек четверних Ñлів) 0x%08x %08x\n" -#: vms-alpha.c:6136 +#: vms-alpha.c:6214 #, c-format msgid "STA_PQ (stack psect base + offset)\n" msgstr "STA_PQ (Ñтек оÑнови psect + зÑув)\n" -#: vms-alpha.c:6138 +#: vms-alpha.c:6216 #, c-format msgid " psect: %u, offset: 0x%08x %08x\n" msgstr " psect: %u, зÑув: 0x%08x %08x\n" -#: vms-alpha.c:6144 +#: vms-alpha.c:6222 #, c-format msgid "STA_LI (stack literal)\n" msgstr "STA_LI (Ñтек літералів)\n" -#: vms-alpha.c:6147 +#: vms-alpha.c:6225 #, c-format msgid "STA_MOD (stack module)\n" msgstr "STA_MOD (Ñтек модулів)\n" -#: vms-alpha.c:6150 +#: vms-alpha.c:6228 #, c-format msgid "STA_CKARG (compare procedure argument)\n" msgstr "STA_CKARG (аргумент процедури порівнÑннÑ)\n" -#: vms-alpha.c:6154 +#: vms-alpha.c:6232 #, c-format msgid "STO_B (store byte)\n" msgstr "STO_B (збережений байт)\n" -#: vms-alpha.c:6157 +#: vms-alpha.c:6235 #, c-format msgid "STO_W (store word)\n" msgstr "STO_W (збережене Ñлово)\n" -#: vms-alpha.c:6160 +#: vms-alpha.c:6238 #, c-format msgid "STO_LW (store longword)\n" msgstr "STO_LW (збережене longword)\n" -#: vms-alpha.c:6163 +#: vms-alpha.c:6241 #, c-format msgid "STO_QW (store quadword)\n" msgstr "STO_QW (збережене quadword)\n" -#: vms-alpha.c:6169 +#: vms-alpha.c:6247 #, c-format msgid "STO_IMMR (store immediate repeat) %u bytes\n" msgstr "STO_IMMR (збережене негайне повтореннÑ) %u байтів\n" -#: vms-alpha.c:6176 +#: vms-alpha.c:6254 #, c-format msgid "STO_GBL (store global) %.*s\n" msgstr "STO_GBL (загальне збереженнÑ) %.*s\n" -#: vms-alpha.c:6180 +#: vms-alpha.c:6258 #, c-format msgid "STO_CA (store code address) %.*s\n" msgstr "STO_CA (збережена адреÑа коду) %.*s\n" -#: vms-alpha.c:6184 +#: vms-alpha.c:6262 #, c-format msgid "STO_RB (store relative branch)\n" msgstr "STO_RB (збережене відноÑне відгалуженнÑ)\n" -#: vms-alpha.c:6187 +#: vms-alpha.c:6265 #, c-format msgid "STO_AB (store absolute branch)\n" msgstr "STO_AB (збережене абÑолютне відгалуженнÑ)\n" -#: vms-alpha.c:6190 +#: vms-alpha.c:6268 #, c-format msgid "STO_OFF (store offset to psect)\n" msgstr "STO_OFF (збережений зÑув щодо psect)\n" -#: vms-alpha.c:6196 +#: vms-alpha.c:6274 #, c-format msgid "STO_IMM (store immediate) %u bytes\n" msgstr "STO_IMM (негайне збереженнÑ) %u байт\n" -#: vms-alpha.c:6203 +#: vms-alpha.c:6281 #, c-format msgid "STO_GBL_LW (store global longword) %.*s\n" msgstr "STO_GBL_LW (збережене загальне longword) %.*s\n" -#: vms-alpha.c:6207 +#: vms-alpha.c:6285 #, c-format msgid "STO_OFF (store LP with procedure signature)\n" msgstr "STO_OFF (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ LP з підпиÑом підпрограми)\n" -#: vms-alpha.c:6210 +#: vms-alpha.c:6288 #, c-format msgid "STO_BR_GBL (store branch global) *todo*\n" msgstr "STO_BR_GBL (збережене загальне відгалуженнÑ) *ще не реалізовано*\n" -#: vms-alpha.c:6213 +#: vms-alpha.c:6291 #, c-format msgid "STO_BR_PS (store branch psect + offset) *todo*\n" msgstr "STO_BR_PS (збережений psect Ð²Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ + зÑув) *ще не реалізовано*\n" -#: vms-alpha.c:6217 +#: vms-alpha.c:6295 #, c-format msgid "OPR_NOP (no-operation)\n" msgstr "OPR_NOP (без операції)\n" -#: vms-alpha.c:6220 +#: vms-alpha.c:6298 #, c-format msgid "OPR_ADD (add)\n" msgstr "OPR_ADD (додаваннÑ)\n" -#: vms-alpha.c:6223 +#: vms-alpha.c:6301 #, c-format -msgid "OPR_SUB (substract)\n" +msgid "OPR_SUB (subtract)\n" msgstr "OPR_SUB (відніманнÑ)\n" -#: vms-alpha.c:6226 +#: vms-alpha.c:6304 #, c-format msgid "OPR_MUL (multiply)\n" msgstr "OPR_MUL (множеннÑ)\n" -#: vms-alpha.c:6229 +#: vms-alpha.c:6307 #, c-format msgid "OPR_DIV (divide)\n" msgstr "OPR_DIV (діленнÑ)\n" -#: vms-alpha.c:6232 +#: vms-alpha.c:6310 #, c-format msgid "OPR_AND (logical and)\n" msgstr "OPR_AND (логічне «І»)\n" -#: vms-alpha.c:6235 +#: vms-alpha.c:6313 #, c-format msgid "OPR_IOR (logical inclusive or)\n" msgstr "OPR_IOR (логічне включне «ÐБО»)\n" -#: vms-alpha.c:6238 +#: vms-alpha.c:6316 #, c-format msgid "OPR_EOR (logical exclusive or)\n" msgstr "OPR_EOR (логічне виключне «ÐБО»)\n" -#: vms-alpha.c:6241 +#: vms-alpha.c:6319 #, c-format msgid "OPR_NEG (negate)\n" msgstr "OPR_NEG (запереченнÑ)\n" -#: vms-alpha.c:6244 +#: vms-alpha.c:6322 #, c-format msgid "OPR_COM (complement)\n" msgstr "OPR_COM (доповненнÑ)\n" -#: vms-alpha.c:6247 +#: vms-alpha.c:6325 #, c-format msgid "OPR_INSV (insert field)\n" msgstr "OPR_INSV (вÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ð»Ñ)\n" -#: vms-alpha.c:6250 +#: vms-alpha.c:6328 #, c-format msgid "OPR_ASH (arithmetic shift)\n" msgstr "OPR_ASH (арифметичний зÑув)\n" -#: vms-alpha.c:6253 +#: vms-alpha.c:6331 #, c-format msgid "OPR_USH (unsigned shift)\n" msgstr "OPR_USH (беззнаковий зÑув)\n" -#: vms-alpha.c:6256 +#: vms-alpha.c:6334 #, c-format msgid "OPR_ROT (rotate)\n" msgstr "OPR_ROT (циклічний зÑув)\n" -#: vms-alpha.c:6259 +#: vms-alpha.c:6337 #, c-format msgid "OPR_SEL (select)\n" msgstr "OPR_SEL (вибір)\n" -#: vms-alpha.c:6262 +#: vms-alpha.c:6340 #, c-format msgid "OPR_REDEF (redefine symbol to curr location)\n" msgstr "OPR_REDEF (Ð¿ÐµÑ€ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñимволу до поточної позиції)\n" -#: vms-alpha.c:6265 +#: vms-alpha.c:6343 #, c-format msgid "OPR_REDEF (define a literal)\n" msgstr "OPR_REDEF (Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð»Ñ–Ñ‚ÐµÑ€Ð°Ð»Ð°)\n" -#: vms-alpha.c:6269 +#: vms-alpha.c:6347 #, c-format msgid "STC_LP (store cond linkage pair)\n" msgstr "STC_LP (збережена пара умовного компонуваннÑ)\n" -#: vms-alpha.c:6273 +#: vms-alpha.c:6351 #, c-format msgid "STC_LP_PSB (store cond linkage pair + signature)\n" msgstr "STC_LP_PSB (збережена пара умовного ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ + підпиÑ)\n" -#: vms-alpha.c:6275 +#: vms-alpha.c:6353 #, c-format msgid " linkage index: %u, procedure: %.*s\n" msgstr " Ñ–Ð½Ð´ÐµÐºÑ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ: %u, процедура: %.*s\n" -#: vms-alpha.c:6278 +#: vms-alpha.c:6356 #, c-format msgid " signature: %.*s\n" msgstr " підпиÑ: %.*s\n" -#: vms-alpha.c:6281 +#: vms-alpha.c:6359 #, c-format msgid "STC_GBL (store cond global)\n" msgstr "STC_GBL (збережена загальна умова)\n" -#: vms-alpha.c:6283 +#: vms-alpha.c:6361 #, c-format msgid " linkage index: %u, global: %.*s\n" msgstr " Ñ–Ð½Ð´ÐµÐºÑ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ: %u, загальний: %.*s\n" -#: vms-alpha.c:6287 +#: vms-alpha.c:6365 #, c-format msgid "STC_GCA (store cond code address)\n" msgstr "STC_GCA (збережена адреÑа умовного коду)\n" -#: vms-alpha.c:6289 +#: vms-alpha.c:6367 #, c-format msgid " linkage index: %u, procedure name: %.*s\n" msgstr " Ñ–Ð½Ð´ÐµÐºÑ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ: %u, назва підпрограми: %.*s\n" -#: vms-alpha.c:6293 +#: vms-alpha.c:6371 #, c-format msgid "STC_PS (store cond psect + offset)\n" msgstr "STC_PS (збережений умовний psect + зÑув)\n" -#: vms-alpha.c:6296 +#: vms-alpha.c:6374 #, c-format msgid " linkage index: %u, psect: %u, offset: 0x%08x %08x\n" msgstr " Ñ–Ð½Ð´ÐµÐºÑ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ: %u, psect: %u, зÑув: 0x%08x %08x\n" -#: vms-alpha.c:6303 +#: vms-alpha.c:6381 #, c-format msgid "STC_NOP_GBL (store cond NOP at global addr)\n" msgstr "STC_NOP_GBL (збережений умовний NOP за загальною адреÑою)\n" -#: vms-alpha.c:6307 +#: vms-alpha.c:6385 #, c-format msgid "STC_NOP_PS (store cond NOP at psect + offset)\n" msgstr "STC_NOP_PS (збережений умовний NOP за psect + зÑув)\n" -#: vms-alpha.c:6311 +#: vms-alpha.c:6389 #, c-format msgid "STC_BSR_GBL (store cond BSR at global addr)\n" msgstr "STC_BSR_GBL (збережений умовний BSR за загальною адреÑою)\n" -#: vms-alpha.c:6315 +#: vms-alpha.c:6393 #, c-format msgid "STC_BSR_PS (store cond BSR at psect + offset)\n" msgstr "STC_BSR_PS (збережений умовний BSR за psect + зÑув)\n" -#: vms-alpha.c:6319 +#: vms-alpha.c:6397 #, c-format msgid "STC_LDA_GBL (store cond LDA at global addr)\n" msgstr "STC_LDA_GBL (збережений умовний LDA за загальною адреÑою)\n" -#: vms-alpha.c:6323 +#: vms-alpha.c:6401 #, c-format msgid "STC_LDA_PS (store cond LDA at psect + offset)\n" msgstr "STC_LDA_PS (збережена умовна LDA за psect + зÑув)\n" -#: vms-alpha.c:6327 +#: vms-alpha.c:6405 #, c-format msgid "STC_BOH_GBL (store cond BOH at global addr)\n" msgstr "STC_BOH_GBL (збережений умовний BOH за загальною адреÑою)\n" -#: vms-alpha.c:6331 +#: vms-alpha.c:6409 #, c-format msgid "STC_BOH_PS (store cond BOH at psect + offset)\n" msgstr "STC_BOH_PS (збережений умовний BOH за psect + зÑув)\n" -#: vms-alpha.c:6336 +#: vms-alpha.c:6414 #, c-format msgid "STC_NBH_GBL (store cond or hint at global addr)\n" msgstr "STC_NBH_GBL (збережена умова або вказівка за загальною адреÑою)\n" -#: vms-alpha.c:6340 +#: vms-alpha.c:6418 #, c-format msgid "STC_NBH_PS (store cond or hint at psect + offset)\n" msgstr "STC_NBH_PS (збережена умова або вказівка за psect + зÑув)\n" -#: vms-alpha.c:6344 +#: vms-alpha.c:6422 #, c-format msgid "CTL_SETRB (set relocation base)\n" msgstr "CTL_SETRB (вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¾Ñнови переÑуваннÑ)\n" -#: vms-alpha.c:6350 +#: vms-alpha.c:6428 #, c-format msgid "CTL_AUGRB (augment relocation base) %u\n" msgstr "CTL_AUGRB (Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ð¾Ñнови переÑуваннÑ) %u\n" -#: vms-alpha.c:6354 +#: vms-alpha.c:6432 #, c-format msgid "CTL_DFLOC (define location)\n" msgstr "CTL_DFLOC (визначити розташуваннÑ)\n" -#: vms-alpha.c:6357 +#: vms-alpha.c:6435 #, c-format msgid "CTL_STLOC (set location)\n" msgstr "CTL_STLOC (вказати розташуваннÑ)\n" -#: vms-alpha.c:6360 +#: vms-alpha.c:6438 #, c-format msgid "CTL_STKDL (stack defined location)\n" msgstr "CTL_STKDL (розташуваннÑ, визначене Ñтеком)\n" -#: vms-alpha.c:6363 vms-alpha.c:6787 vms-alpha.c:6913 +#: vms-alpha.c:6441 vms-alpha.c:6865 vms-alpha.c:6991 #, c-format msgid "*unhandled*\n" msgstr "*не оброблено*\n" -#: vms-alpha.c:6393 vms-alpha.c:6432 +#: vms-alpha.c:6471 vms-alpha.c:6510 #, c-format msgid "cannot read GST record length\n" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ довжину запиÑу GST\n" #. Ill-formed. -#: vms-alpha.c:6414 +#: vms-alpha.c:6492 #, c-format msgid "cannot find EMH in first GST record\n" msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ EMH у першому запиÑÑ– GST\n" -#: vms-alpha.c:6440 +#: vms-alpha.c:6518 #, c-format msgid "cannot read GST record header\n" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ заголовок запиÑу GST\n" -#: vms-alpha.c:6453 +#: vms-alpha.c:6531 #, c-format msgid " corrupted GST\n" msgstr " пошкоджений GST\n" -#: vms-alpha.c:6461 +#: vms-alpha.c:6539 #, c-format msgid "cannot read GST record\n" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ GST\n" -#: vms-alpha.c:6490 +#: vms-alpha.c:6568 #, c-format msgid " unhandled EOBJ record type %u\n" msgstr " непридатний до обробки тип запиÑу EOBJ, %u\n" -#: vms-alpha.c:6514 +#: vms-alpha.c:6592 #, c-format msgid " bitcount: %u, base addr: 0x%08x\n" msgstr " кількіÑÑ‚ÑŒ бітів: %u, базова адреÑа: 0x%08x\n" -#: vms-alpha.c:6528 +#: vms-alpha.c:6606 #, c-format msgid " bitmap: 0x%08x (count: %u):\n" msgstr " бітовий образ: 0x%08x (лічильник: %u):\n" -#: vms-alpha.c:6535 +#: vms-alpha.c:6613 #, c-format msgid " %08x" msgstr " %08x" -#: vms-alpha.c:6561 +#: vms-alpha.c:6639 #, c-format msgid " image %u (%u entries)\n" msgstr " образ %u (%u запиÑів)\n" -#: vms-alpha.c:6567 +#: vms-alpha.c:6645 #, c-format msgid " offset: 0x%08x, val: 0x%08x\n" msgstr " відÑтуп: 0x%08x, значеннÑ: 0x%08x\n" -#: vms-alpha.c:6589 +#: vms-alpha.c:6667 #, c-format msgid " image %u (%u entries), offsets:\n" msgstr " образ %u (%u запиÑів), відÑтупи:\n" -#: vms-alpha.c:6596 +#: vms-alpha.c:6674 #, c-format msgid " 0x%08x" msgstr " 0x%08x" #. 64 bits. -#: vms-alpha.c:6718 +#: vms-alpha.c:6796 #, c-format msgid "64 bits *unhandled*\n" msgstr "64 біти *не оброблÑєтьÑÑ*\n" -#: vms-alpha.c:6723 +#: vms-alpha.c:6801 #, c-format msgid "class: %u, dtype: %u, length: %u, pointer: 0x%08x\n" msgstr "клаÑ: %u, dtype: %u, довжина: %u, вказівник: 0x%08x\n" -#: vms-alpha.c:6734 +#: vms-alpha.c:6812 #, c-format msgid "non-contiguous array of %s\n" msgstr "розривний маÑив %s\n" -#: vms-alpha.c:6739 +#: vms-alpha.c:6817 #, c-format msgid "dimct: %u, aflags: 0x%02x, digits: %u, scale: %u\n" msgstr "dimct: %u, aflags: 0x%02x, цифр: %u, шкала: %u\n" -#: vms-alpha.c:6744 +#: vms-alpha.c:6822 #, c-format msgid "arsize: %u, a0: 0x%08x\n" msgstr "arsize: %u, a0: 0x%08x\n" -#: vms-alpha.c:6748 +#: vms-alpha.c:6826 #, c-format msgid "Strides:\n" msgstr "Кроки:\n" -#: vms-alpha.c:6758 +#: vms-alpha.c:6836 #, c-format msgid "Bounds:\n" msgstr "Межі:\n" -#: vms-alpha.c:6764 +#: vms-alpha.c:6842 #, c-format msgid "[%u]: Lower: %u, upper: %u\n" msgstr "[%u]: нижнÑ: %u, верхнÑ: %u\n" -#: vms-alpha.c:6776 +#: vms-alpha.c:6854 #, c-format msgid "unaligned bit-string of %s\n" msgstr "невирівнÑний бітовий Ñ€Ñдок %s\n" -#: vms-alpha.c:6781 +#: vms-alpha.c:6859 #, c-format msgid "base: %u, pos: %u\n" msgstr "оÑнова: %u, позиціÑ: %u\n" -#: vms-alpha.c:6802 +#: vms-alpha.c:6880 #, c-format msgid "vflags: 0x%02x, value: 0x%08x " msgstr "vflags: 0x%02x, значеннÑ: 0x%08x " -#: vms-alpha.c:6808 +#: vms-alpha.c:6886 #, c-format msgid "(no value)\n" msgstr "(нема значеннÑ)\n" -#: vms-alpha.c:6811 +#: vms-alpha.c:6889 #, c-format msgid "(not active)\n" msgstr "(неактивне)\n" -#: vms-alpha.c:6814 +#: vms-alpha.c:6892 #, c-format msgid "(not allocated)\n" msgstr "(не розміщено)\n" -#: vms-alpha.c:6817 +#: vms-alpha.c:6895 #, c-format msgid "(descriptor)\n" msgstr "(деÑкриптор)\n" -#: vms-alpha.c:6821 +#: vms-alpha.c:6899 #, c-format msgid "(trailing value)\n" msgstr "(хвоÑтове значеннÑ)\n" -#: vms-alpha.c:6824 +#: vms-alpha.c:6902 #, c-format msgid "(value spec follows)\n" msgstr "(далі ÑÐ¿ÐµÑ†Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ)\n" -#: vms-alpha.c:6827 +#: vms-alpha.c:6905 #, c-format msgid "(at bit offset %u)\n" msgstr "(за відÑтупом у бітах %u)\n" -#: vms-alpha.c:6831 +#: vms-alpha.c:6909 #, c-format msgid "(reg: %u, disp: %u, indir: %u, kind: " msgstr "(рег: %u, disp: %u, indir: %u, тип: " -#: vms-alpha.c:6838 +#: vms-alpha.c:6916 msgid "literal" msgstr "літерал" -#: vms-alpha.c:6841 +#: vms-alpha.c:6919 msgid "address" msgstr "адреÑа" -#: vms-alpha.c:6844 +#: vms-alpha.c:6922 msgid "desc" msgstr "деÑк" -#: vms-alpha.c:6847 +#: vms-alpha.c:6925 msgid "reg" msgstr "рег" -#: vms-alpha.c:6864 +#: vms-alpha.c:6942 #, c-format msgid "len: %2u, kind: %2u " msgstr "довж.: %2u, тип: %2u " -#: vms-alpha.c:6870 +#: vms-alpha.c:6948 #, c-format msgid "atomic, type=0x%02x %s\n" msgstr "атомарний, тип=0x%02x %s\n" -#: vms-alpha.c:6874 +#: vms-alpha.c:6952 #, c-format msgid "indirect, defined at 0x%08x\n" msgstr "опоÑередкований, визначено тут: 0x%08x\n" -#: vms-alpha.c:6878 +#: vms-alpha.c:6956 #, c-format msgid "typed pointer\n" msgstr "типізований вказівник\n" -#: vms-alpha.c:6882 +#: vms-alpha.c:6960 #, c-format msgid "pointer\n" msgstr "вказівник\n" -#: vms-alpha.c:6890 +#: vms-alpha.c:6968 #, c-format msgid "array, dim: %u, bitmap: " msgstr "маÑив, розмірніÑÑ‚ÑŒ: %u, бітова карта: " -#: vms-alpha.c:6897 +#: vms-alpha.c:6975 #, c-format msgid "array descriptor:\n" msgstr "деÑкриптор маÑиву:\n" -#: vms-alpha.c:6904 +#: vms-alpha.c:6982 #, c-format msgid "type spec for element:\n" msgstr "ÑÐ¿ÐµÑ†Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ Ñ‚Ð¸Ð¿Ñƒ елемента:\n" -#: vms-alpha.c:6906 +#: vms-alpha.c:6984 #, c-format msgid "type spec for subscript %u:\n" msgstr "ÑÐ¿ÐµÑ†Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ Ñ‚Ð¸Ð¿Ñƒ Ð´Ð»Ñ ÑпиÑку індекÑів %u:\n" -#: vms-alpha.c:6924 +#: vms-alpha.c:7002 #, c-format msgid "Debug symbol table:\n" msgstr "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів зневаджуваннÑ:\n" -#: vms-alpha.c:6935 +#: vms-alpha.c:7013 #, c-format msgid "cannot read DST header\n" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ заголовок DST\n" -#: vms-alpha.c:6941 +#: vms-alpha.c:7019 #, c-format msgid " type: %3u, len: %3u (at 0x%08x): " msgstr " тип: %3u, довжина: %3u (за 0x%08x): " -#: vms-alpha.c:6955 +#: vms-alpha.c:7033 #, c-format msgid "cannot read DST symbol\n" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ñимвол DST\n" -#: vms-alpha.c:6998 +#: vms-alpha.c:7076 #, c-format msgid "standard data: %s\n" msgstr "Ñтандартні дані: %s\n" -#: vms-alpha.c:7001 vms-alpha.c:7089 +#: vms-alpha.c:7079 vms-alpha.c:7167 #, c-format msgid " name: %.*s\n" msgstr " назва: %.*s\n" -#: vms-alpha.c:7008 +#: vms-alpha.c:7086 #, c-format msgid "modbeg\n" msgstr "modbeg\n" -#: vms-alpha.c:7010 +#: vms-alpha.c:7088 #, c-format msgid " flags: %d, language: %u, major: %u, minor: %u\n" msgstr " прапорці: %d, мова: %u, Ñтарший: %u, молодший: %u\n" -#: vms-alpha.c:7016 vms-alpha.c:7290 +#: vms-alpha.c:7094 vms-alpha.c:7368 #, c-format msgid " module name: %.*s\n" msgstr " назва модулÑ: %.*s\n" -#: vms-alpha.c:7019 +#: vms-alpha.c:7097 #, c-format msgid " compiler : %.*s\n" msgstr " компілÑтор : %.*s\n" -#: vms-alpha.c:7024 +#: vms-alpha.c:7102 #, c-format msgid "modend\n" msgstr "modend\n" -#: vms-alpha.c:7031 +#: vms-alpha.c:7109 msgid "rtnbeg\n" msgstr "rtnbeg\n" -#: vms-alpha.c:7033 +#: vms-alpha.c:7111 #, c-format msgid " flags: %u, address: 0x%08x, pd-address: 0x%08x\n" msgstr " прапорці: %u, адреÑа: 0x%08x, pd-адреÑа: 0x%08x\n" -#: vms-alpha.c:7038 +#: vms-alpha.c:7116 #, c-format msgid " routine name: %.*s\n" msgstr " назва процедури: %.*s\n" -#: vms-alpha.c:7046 +#: vms-alpha.c:7124 #, c-format msgid "rtnend: size 0x%08x\n" msgstr "rtnend: розмір 0x%08x\n" -#: vms-alpha.c:7054 +#: vms-alpha.c:7132 #, c-format msgid "prolog: bkpt address 0x%08x\n" msgstr "пролог: адреÑа bkpt 0x%08x\n" -#: vms-alpha.c:7063 +#: vms-alpha.c:7141 #, c-format msgid "epilog: flags: %u, count: %u\n" msgstr "епілог: прапорці: %u, лічильник: %u\n" -#: vms-alpha.c:7073 +#: vms-alpha.c:7151 #, c-format msgid "blkbeg: address: 0x%08x, name: %.*s\n" msgstr "blkbeg: адреÑа: 0x%08x, назва: %.*s\n" -#: vms-alpha.c:7082 +#: vms-alpha.c:7160 #, c-format msgid "blkend: size: 0x%08x\n" msgstr "blkend: розмір: 0x%08x\n" -#: vms-alpha.c:7088 +#: vms-alpha.c:7166 #, c-format msgid "typspec (len: %u)\n" msgstr "typspec (довж.: %u)\n" -#: vms-alpha.c:7095 +#: vms-alpha.c:7173 #, c-format msgid "septyp, name: %.*s\n" msgstr "septyp, назва: %.*s\n" -#: vms-alpha.c:7104 +#: vms-alpha.c:7182 #, c-format msgid "recbeg: name: %.*s\n" msgstr "recbeg: назва: %.*s\n" -#: vms-alpha.c:7106 +#: vms-alpha.c:7184 #, c-format msgid " len: %u bits\n" msgstr " довжина: %u бітів\n" -#: vms-alpha.c:7111 +#: vms-alpha.c:7189 #, c-format msgid "recend\n" msgstr "recend\n" -#: vms-alpha.c:7115 +#: vms-alpha.c:7193 #, c-format msgid "enumbeg, len: %u, name: %.*s\n" msgstr "enumbeg, довжина: %u, назва: %.*s\n" -#: vms-alpha.c:7119 +#: vms-alpha.c:7197 #, c-format msgid "enumelt, name: %.*s\n" msgstr "enumelt, назва: %.*s\n" -#: vms-alpha.c:7123 +#: vms-alpha.c:7201 #, c-format msgid "enumend\n" msgstr "enumend\n" -#: vms-alpha.c:7128 +#: vms-alpha.c:7206 #, c-format msgid "label, name: %.*s\n" msgstr "мітка, назва: %.*s\n" -#: vms-alpha.c:7130 +#: vms-alpha.c:7208 #, c-format msgid " address: 0x%08x\n" msgstr " адреÑа: 0x%08x\n" -#: vms-alpha.c:7140 +#: vms-alpha.c:7218 #, c-format msgid "discontiguous range (nbr: %u)\n" msgstr "розривний діапазон (nbr: %u)\n" -#: vms-alpha.c:7143 +#: vms-alpha.c:7221 #, c-format msgid " address: 0x%08x, size: %u\n" msgstr " адреÑа: 0x%08x, розмір: %u\n" -#: vms-alpha.c:7153 +#: vms-alpha.c:7231 #, c-format msgid "line num (len: %u)\n" msgstr "номер Ñ€Ñдка (довжина: %u)\n" -#: vms-alpha.c:7170 +#: vms-alpha.c:7248 #, c-format msgid "delta_pc_w %u\n" msgstr "delta_pc_w %u\n" -#: vms-alpha.c:7177 +#: vms-alpha.c:7255 #, c-format msgid "incr_linum(b): +%u\n" msgstr "incr_linum(b): +%u\n" -#: vms-alpha.c:7183 +#: vms-alpha.c:7261 #, c-format msgid "incr_linum_w: +%u\n" msgstr "incr_linum_w: +%u\n" -#: vms-alpha.c:7189 +#: vms-alpha.c:7267 #, c-format msgid "incr_linum_l: +%u\n" msgstr "incr_linum_l: +%u\n" -#: vms-alpha.c:7195 +#: vms-alpha.c:7273 #, c-format msgid "set_line_num(w) %u\n" msgstr "set_line_num(w) %u\n" -#: vms-alpha.c:7200 +#: vms-alpha.c:7278 #, c-format msgid "set_line_num_b %u\n" msgstr "set_line_num_b %u\n" -#: vms-alpha.c:7205 +#: vms-alpha.c:7283 #, c-format msgid "set_line_num_l %u\n" msgstr "set_line_num_l %u\n" -#: vms-alpha.c:7210 +#: vms-alpha.c:7288 #, c-format msgid "set_abs_pc: 0x%08x\n" msgstr "set_abs_pc: 0x%08x\n" -#: vms-alpha.c:7214 +#: vms-alpha.c:7292 #, c-format msgid "delta_pc_l: +0x%08x\n" msgstr "delta_pc_l: +0x%08x\n" -#: vms-alpha.c:7219 +#: vms-alpha.c:7297 #, c-format msgid "term(b): 0x%02x" msgstr "term(b): 0x%02x" -#: vms-alpha.c:7221 +#: vms-alpha.c:7299 #, c-format msgid " pc: 0x%08x\n" msgstr " pc: 0x%08x\n" -#: vms-alpha.c:7226 +#: vms-alpha.c:7304 #, c-format msgid "term_w: 0x%04x" msgstr "term_w: 0x%04x" -#: vms-alpha.c:7228 +#: vms-alpha.c:7306 #, c-format msgid " pc: 0x%08x\n" msgstr " pc: 0x%08x\n" -#: vms-alpha.c:7234 +#: vms-alpha.c:7312 #, c-format msgid "delta pc +%-4d" msgstr "приріÑÑ‚ pc +%-4d" -#: vms-alpha.c:7238 +#: vms-alpha.c:7316 #, c-format msgid " pc: 0x%08x line: %5u\n" msgstr " pc: 0x%08x Ñ€Ñдок: %5u\n" -#: vms-alpha.c:7243 +#: vms-alpha.c:7321 #, c-format msgid " *unhandled* cmd %u\n" msgstr " *непридатна* команда %u\n" -#: vms-alpha.c:7258 +#: vms-alpha.c:7336 #, c-format msgid "source (len: %u)\n" msgstr "джерело (довжина: %u)\n" -#: vms-alpha.c:7273 +#: vms-alpha.c:7351 #, c-format msgid " declfile: len: %u, flags: %u, fileid: %u\n" msgstr " declfile: довжина: %u, прапорці: %u, ід. файла: %u\n" -#: vms-alpha.c:7278 +#: vms-alpha.c:7356 #, c-format msgid " rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n" msgstr " rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n" -#: vms-alpha.c:7287 +#: vms-alpha.c:7365 #, c-format msgid " filename : %.*s\n" msgstr " назва файла: %.*s\n" -#: vms-alpha.c:7296 +#: vms-alpha.c:7374 #, c-format msgid " setfile %u\n" msgstr " setfile %u\n" -#: vms-alpha.c:7301 vms-alpha.c:7306 +#: vms-alpha.c:7379 vms-alpha.c:7384 #, c-format msgid " setrec %u\n" msgstr " setrec %u\n" -#: vms-alpha.c:7311 vms-alpha.c:7316 +#: vms-alpha.c:7389 vms-alpha.c:7394 #, c-format msgid " setlnum %u\n" msgstr " setlnum %u\n" -#: vms-alpha.c:7321 vms-alpha.c:7326 +#: vms-alpha.c:7399 vms-alpha.c:7404 #, c-format msgid " deflines %u\n" msgstr " deflines %u\n" -#: vms-alpha.c:7330 +#: vms-alpha.c:7408 #, c-format msgid " formfeed\n" msgstr " formfeed\n" -#: vms-alpha.c:7334 +#: vms-alpha.c:7412 #, c-format msgid " *unhandled* cmd %u\n" msgstr " *непридатна* команда %u\n" -#: vms-alpha.c:7346 +#: vms-alpha.c:7424 #, c-format msgid "*unhandled* dst type %u\n" msgstr "*непридатний* тип призначеннÑ, %u\n" -#: vms-alpha.c:7378 +#: vms-alpha.c:7456 #, c-format msgid "cannot read EIHD\n" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ EIHD\n" -#: vms-alpha.c:7382 +#: vms-alpha.c:7460 #, c-format msgid "EIHD: (size: %u, nbr blocks: %u)\n" msgstr "EIHD: (розмір: %u, кількіÑÑ‚ÑŒ блоків: %u)\n" -#: vms-alpha.c:7386 +#: vms-alpha.c:7464 #, c-format msgid " majorid: %u, minorid: %u\n" msgstr " majorid: %u, minorid: %u\n" -#: vms-alpha.c:7394 +#: vms-alpha.c:7472 msgid "executable" msgstr "виконуваний" -#: vms-alpha.c:7397 +#: vms-alpha.c:7475 msgid "linkable image" msgstr "компонований образ" -#: vms-alpha.c:7404 +#: vms-alpha.c:7482 #, c-format msgid " image type: %u (%s)" msgstr " тип образу: %u (%s)" -#: vms-alpha.c:7410 +#: vms-alpha.c:7488 msgid "native" msgstr "Ñтандартний" -#: vms-alpha.c:7413 +#: vms-alpha.c:7491 msgid "CLI" msgstr "CLI" -#: vms-alpha.c:7420 +#: vms-alpha.c:7498 #, c-format msgid ", subtype: %u (%s)\n" msgstr ", підтип: %u (%s)\n" -#: vms-alpha.c:7427 +#: vms-alpha.c:7505 #, c-format msgid " offsets: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n" msgstr " зÑуви: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n" -#: vms-alpha.c:7431 +#: vms-alpha.c:7509 #, c-format msgid " fixup info rva: " msgstr " дані щодо прив’Ñзки rva: " -#: vms-alpha.c:7433 +#: vms-alpha.c:7511 #, c-format msgid ", symbol vector rva: " msgstr ", вектор Ñимволів rva: " -#: vms-alpha.c:7436 +#: vms-alpha.c:7514 #, c-format msgid "" "\n" @@ -7388,463 +7081,463 @@ "\n" " відÑтуп маÑиву верÑÑ–Ñ—: %u\n" -#: vms-alpha.c:7441 +#: vms-alpha.c:7519 #, c-format msgid " img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n" msgstr " лічильник введеннÑ-Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¾Ð±Ñ€Ð°Ð·Ñƒ: %u, к-Ñ‚ÑŒ каналів: %u, пріоритетніÑÑ‚ÑŒ: %08x%08x\n" -#: vms-alpha.c:7447 +#: vms-alpha.c:7525 #, c-format msgid " linker flags: %08x:" msgstr " прапорці компонувальника: %08x:" -#: vms-alpha.c:7478 +#: vms-alpha.c:7556 #, c-format msgid " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n" msgstr " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n" -#: vms-alpha.c:7484 +#: vms-alpha.c:7562 #, c-format msgid " BPAGE: %u" msgstr " BPAGE: %u" -#: vms-alpha.c:7491 +#: vms-alpha.c:7569 #, c-format msgid ", ext fixup offset: %u, no_opt psect off: %u" msgstr ", зÑув розшир. прив’зÑки: %u, зÑув psect no_opt: %u" -#: vms-alpha.c:7494 +#: vms-alpha.c:7572 #, c-format msgid ", alias: %u\n" msgstr ", пÑевдонім: %u\n" -#: vms-alpha.c:7502 +#: vms-alpha.c:7580 #, c-format msgid "system version array information:\n" msgstr "маÑив даних щодо верÑÑ–Ñ— ÑиÑтеми:\n" -#: vms-alpha.c:7506 +#: vms-alpha.c:7584 #, c-format msgid "cannot read EIHVN header\n" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ заголовок EIHVN\n" -#: vms-alpha.c:7516 +#: vms-alpha.c:7594 #, c-format msgid "cannot read EIHVN version\n" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ верÑÑ–ÑŽ EIHVN\n" -#: vms-alpha.c:7519 +#: vms-alpha.c:7597 #, c-format msgid " %02u " msgstr " %02u " -#: vms-alpha.c:7523 +#: vms-alpha.c:7601 msgid "BASE_IMAGE " msgstr "BASE_IMAGE " -#: vms-alpha.c:7526 +#: vms-alpha.c:7604 msgid "MEMORY_MANAGEMENT" msgstr "MEMORY_MANAGEMENT" -#: vms-alpha.c:7529 +#: vms-alpha.c:7607 msgid "IO " msgstr "IO " -#: vms-alpha.c:7532 +#: vms-alpha.c:7610 msgid "FILES_VOLUMES " msgstr "FILES_VOLUMES " -#: vms-alpha.c:7535 +#: vms-alpha.c:7613 msgid "PROCESS_SCHED " msgstr "PROCESS_SCHED " -#: vms-alpha.c:7538 +#: vms-alpha.c:7616 msgid "SYSGEN " msgstr "SYSGEN " -#: vms-alpha.c:7541 +#: vms-alpha.c:7619 msgid "CLUSTERS_LOCKMGR " msgstr "CLUSTERS_LOCKMGR " -#: vms-alpha.c:7544 +#: vms-alpha.c:7622 msgid "LOGICAL_NAMES " msgstr "LOGICAL_NAMES " -#: vms-alpha.c:7547 +#: vms-alpha.c:7625 msgid "SECURITY " msgstr "SECURITY " -#: vms-alpha.c:7550 +#: vms-alpha.c:7628 msgid "IMAGE_ACTIVATOR " msgstr "IMAGE_ACTIVATOR " -#: vms-alpha.c:7553 +#: vms-alpha.c:7631 msgid "NETWORKS " msgstr "NETWORKS " -#: vms-alpha.c:7556 +#: vms-alpha.c:7634 msgid "COUNTERS " msgstr "COUNTERS " -#: vms-alpha.c:7559 +#: vms-alpha.c:7637 msgid "STABLE " msgstr "STABLE " -#: vms-alpha.c:7562 +#: vms-alpha.c:7640 msgid "MISC " msgstr "MISC " -#: vms-alpha.c:7565 +#: vms-alpha.c:7643 msgid "CPU " msgstr "CPU " -#: vms-alpha.c:7568 +#: vms-alpha.c:7646 msgid "VOLATILE " msgstr "VOLATILE " -#: vms-alpha.c:7571 +#: vms-alpha.c:7649 msgid "SHELL " msgstr "SHELL " -#: vms-alpha.c:7574 +#: vms-alpha.c:7652 msgid "POSIX " msgstr "POSIX " -#: vms-alpha.c:7577 +#: vms-alpha.c:7655 msgid "MULTI_PROCESSING " msgstr "MULTI_PROCESSING " -#: vms-alpha.c:7580 +#: vms-alpha.c:7658 msgid "GALAXY " msgstr "GALAXY " -#: vms-alpha.c:7583 +#: vms-alpha.c:7661 msgid "*unknown* " msgstr "*невідомо* " -#: vms-alpha.c:7599 vms-alpha.c:7874 +#: vms-alpha.c:7677 vms-alpha.c:7952 #, c-format msgid "cannot read EIHA\n" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ EIHA\n" -#: vms-alpha.c:7602 +#: vms-alpha.c:7680 #, c-format msgid "Image activation: (size=%u)\n" msgstr "ÐÐºÑ‚Ð¸Ð²Ð°Ñ†Ñ–Ñ Ð¾Ð±Ñ€Ð°Ð·Ñƒ: (розмір=%u)\n" -#: vms-alpha.c:7605 +#: vms-alpha.c:7683 #, c-format msgid " First address : 0x%08x 0x%08x\n" msgstr " Перша адреÑа: 0x%08x 0x%08x\n" -#: vms-alpha.c:7609 +#: vms-alpha.c:7687 #, c-format msgid " Second address: 0x%08x 0x%08x\n" msgstr " Друга адреÑа: 0x%08x 0x%08x\n" -#: vms-alpha.c:7613 +#: vms-alpha.c:7691 #, c-format msgid " Third address : 0x%08x 0x%08x\n" msgstr " Ð¢Ñ€ÐµÑ‚Ñ Ð°Ð´Ñ€ÐµÑа: 0x%08x 0x%08x\n" -#: vms-alpha.c:7617 +#: vms-alpha.c:7695 #, c-format msgid " Fourth address: 0x%08x 0x%08x\n" msgstr " Четверта адреÑа: 0x%08x 0x%08x\n" -#: vms-alpha.c:7621 +#: vms-alpha.c:7699 #, c-format msgid " Shared image : 0x%08x 0x%08x\n" msgstr " Спільний образ: 0x%08x 0x%08x\n" -#: vms-alpha.c:7632 +#: vms-alpha.c:7710 #, c-format msgid "cannot read EIHI\n" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ EIHI\n" -#: vms-alpha.c:7636 +#: vms-alpha.c:7714 #, c-format msgid "Image identification: (major: %u, minor: %u)\n" msgstr "Ð†Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ Ð¾Ð±Ñ€Ð°Ð·Ñƒ: (Ñтарший: %u, молодший: %u)\n" -#: vms-alpha.c:7639 +#: vms-alpha.c:7717 #, c-format msgid " image name : %.*s\n" msgstr " назва образу : %.*s\n" -#: vms-alpha.c:7641 +#: vms-alpha.c:7719 #, c-format msgid " link time : %s\n" msgstr " Ñ‡Ð°Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ : %s\n" -#: vms-alpha.c:7643 +#: vms-alpha.c:7721 #, c-format msgid " image ident : %.*s\n" msgstr " ід. образу : %.*s\n" -#: vms-alpha.c:7645 +#: vms-alpha.c:7723 #, c-format msgid " linker ident : %.*s\n" msgstr " ід. компонувальника: %.*s\n" -#: vms-alpha.c:7647 +#: vms-alpha.c:7725 #, c-format msgid " image build ident: %.*s\n" msgstr " ідентифікатор Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð¾Ð±Ñ€Ð°Ð·Ñƒ: %.*s\n" -#: vms-alpha.c:7657 +#: vms-alpha.c:7735 #, c-format msgid "cannot read EIHS\n" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ EIHS\n" -#: vms-alpha.c:7661 +#: vms-alpha.c:7739 #, c-format msgid "Image symbol & debug table: (major: %u, minor: %u)\n" msgstr "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів Ñ– діагноÑтики образу (оÑновна: %u, модифікаціÑ: %u)\n" -#: vms-alpha.c:7667 +#: vms-alpha.c:7745 #, c-format msgid " debug symbol table : vbn: %u, size: %u (0x%x)\n" msgstr " Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñтичних Ñимволів: vbn: %u, розмір: %u (0x%x)\n" -#: vms-alpha.c:7672 +#: vms-alpha.c:7750 #, c-format msgid " global symbol table: vbn: %u, records: %u\n" msgstr " Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ñ… Ñимволів: vbn: %u, запиÑів: %u\n" -#: vms-alpha.c:7677 +#: vms-alpha.c:7755 #, c-format msgid " debug module table : vbn: %u, size: %u\n" msgstr " Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñтики модулів: vbn: %u, розмір: %u\n" -#: vms-alpha.c:7690 +#: vms-alpha.c:7768 #, c-format msgid "cannot read EISD\n" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ EISD\n" -#: vms-alpha.c:7701 +#: vms-alpha.c:7779 #, c-format msgid "Image section descriptor: (major: %u, minor: %u, size: %u, offset: %u)\n" msgstr "ДеÑкриптор розділу образу: (оÑновна: %u, модифікаціÑ: %u, розмір: %u, відÑтуп: %u)\n" -#: vms-alpha.c:7709 +#: vms-alpha.c:7787 #, c-format msgid " section: base: 0x%08x%08x size: 0x%08x\n" msgstr " розділ: оÑнова: 0x%08x%08x розмір: 0x%08x\n" -#: vms-alpha.c:7714 +#: vms-alpha.c:7792 #, c-format msgid " flags: 0x%04x" msgstr " прапорці: 0x%04x" -#: vms-alpha.c:7752 +#: vms-alpha.c:7830 #, c-format msgid " vbn: %u, pfc: %u, matchctl: %u type: %u (" msgstr " vbn: %u, pfc: %u, matchctl: %u тип: %u (" -#: vms-alpha.c:7758 +#: vms-alpha.c:7836 msgid "NORMAL" msgstr "NORMAL" -#: vms-alpha.c:7761 +#: vms-alpha.c:7839 msgid "SHRFXD" msgstr "SHRFXD" -#: vms-alpha.c:7764 +#: vms-alpha.c:7842 msgid "PRVFXD" msgstr "PRVFXD" -#: vms-alpha.c:7767 +#: vms-alpha.c:7845 msgid "SHRPIC" msgstr "SHRPIC" -#: vms-alpha.c:7770 +#: vms-alpha.c:7848 msgid "PRVPIC" msgstr "PRVPIC" -#: vms-alpha.c:7773 +#: vms-alpha.c:7851 msgid "USRSTACK" msgstr "USRSTACK" -#: vms-alpha.c:7779 +#: vms-alpha.c:7857 msgid ")\n" msgstr ")\n" -#: vms-alpha.c:7782 +#: vms-alpha.c:7860 #, c-format msgid " ident: 0x%08x, name: %.*s\n" msgstr " ідентифікатор: 0x%08x, назва: %.*s\n" -#: vms-alpha.c:7792 +#: vms-alpha.c:7870 #, c-format msgid "cannot read DMT\n" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ DMT\n" -#: vms-alpha.c:7796 +#: vms-alpha.c:7874 #, c-format msgid "Debug module table:\n" msgstr "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñтичних Ñимволів:\n" -#: vms-alpha.c:7805 +#: vms-alpha.c:7883 #, c-format msgid "cannot read DMT header\n" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ заголовок DMT\n" -#: vms-alpha.c:7811 +#: vms-alpha.c:7889 #, c-format msgid " module offset: 0x%08x, size: 0x%08x, (%u psects)\n" msgstr " відÑтуп модулÑ: 0x%08x, розмір: 0x%08x, (%u psect)\n" -#: vms-alpha.c:7821 +#: vms-alpha.c:7899 #, c-format msgid "cannot read DMT psect\n" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ psect DMT\n" -#: vms-alpha.c:7825 +#: vms-alpha.c:7903 #, c-format msgid " psect start: 0x%08x, length: %u\n" msgstr " початок psect: 0x%08x, довжина: %u\n" -#: vms-alpha.c:7838 +#: vms-alpha.c:7916 #, c-format msgid "cannot read DST\n" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ DST\n" -#: vms-alpha.c:7848 +#: vms-alpha.c:7926 #, c-format msgid "cannot read GST\n" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ GST\n" -#: vms-alpha.c:7852 +#: vms-alpha.c:7930 #, c-format msgid "Global symbol table:\n" msgstr "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ñ… Ñимволів:\n" -#: vms-alpha.c:7881 +#: vms-alpha.c:7959 #, c-format msgid "Image activator fixup: (major: %u, minor: %u)\n" msgstr "Прив’Ñзка адреÑи активатора образу: (оÑновна: %u, модифікаціÑ: %u)\n" -#: vms-alpha.c:7885 +#: vms-alpha.c:7963 #, c-format msgid " iaflink : 0x%08x %08x\n" msgstr " iaflink : 0x%08x %08x\n" -#: vms-alpha.c:7889 +#: vms-alpha.c:7967 #, c-format msgid " fixuplnk: 0x%08x %08x\n" msgstr " fixuplnk: 0x%08x %08x\n" -#: vms-alpha.c:7892 +#: vms-alpha.c:7970 #, c-format msgid " size : %u\n" msgstr " розмір: %u\n" -#: vms-alpha.c:7894 +#: vms-alpha.c:7972 #, c-format msgid " flags: 0x%08x\n" msgstr " прапорці: 0x%08x\n" -#: vms-alpha.c:7899 +#: vms-alpha.c:7977 #, c-format msgid " qrelfixoff: %5u, lrelfixoff: %5u\n" msgstr " qrelfixoff: %5u, lrelfixoff: %5u\n" -#: vms-alpha.c:7904 +#: vms-alpha.c:7982 #, c-format msgid " qdotadroff: %5u, ldotadroff: %5u\n" msgstr " qdotadroff: %5u, ldotadroff: %5u\n" -#: vms-alpha.c:7909 +#: vms-alpha.c:7987 #, c-format msgid " codeadroff: %5u, lpfixoff : %5u\n" msgstr " codeadroff: %5u, lpfixoff : %5u\n" -#: vms-alpha.c:7912 +#: vms-alpha.c:7990 #, c-format msgid " chgprtoff : %5u\n" msgstr " chgprtoff : %5u\n" -#: vms-alpha.c:7916 +#: vms-alpha.c:7994 #, c-format msgid " shlstoff : %5u, shrimgcnt : %5u\n" msgstr " shlstoff : %5u, shrimgcnt : %5u\n" -#: vms-alpha.c:7919 +#: vms-alpha.c:7997 #, c-format msgid " shlextra : %5u, permctx : %5u\n" msgstr " shlextra : %5u, permctx : %5u\n" -#: vms-alpha.c:7922 +#: vms-alpha.c:8000 #, c-format msgid " base_va : 0x%08x\n" msgstr " base_va : 0x%08x\n" -#: vms-alpha.c:7924 +#: vms-alpha.c:8002 #, c-format msgid " lppsbfixoff: %5u\n" msgstr " lppsbfixoff: %5u\n" -#: vms-alpha.c:7932 +#: vms-alpha.c:8010 #, c-format msgid " Shareable images:\n" msgstr " Образи Ñпільного викориÑтаннÑ:\n" -#: vms-alpha.c:7937 +#: vms-alpha.c:8015 #, c-format msgid " %u: size: %u, flags: 0x%02x, name: %.*s\n" msgstr " %u: розмір: %u, прапорці: 0x%02x, назва: %.*s\n" -#: vms-alpha.c:7944 +#: vms-alpha.c:8022 #, c-format msgid " quad-word relocation fixups:\n" msgstr " прив’Ñзки переÑувань у чотири Ñлова:\n" -#: vms-alpha.c:7949 +#: vms-alpha.c:8027 #, c-format msgid " long-word relocation fixups:\n" msgstr " прив’Ñзки переÑувань у довге Ñлово:\n" -#: vms-alpha.c:7954 +#: vms-alpha.c:8032 #, c-format msgid " quad-word .address reference fixups:\n" msgstr " прив’Ñзки поÑилань .address у чотири Ñлова:\n" -#: vms-alpha.c:7959 +#: vms-alpha.c:8037 #, c-format msgid " long-word .address reference fixups:\n" msgstr " прив’Ñзки поÑилань .address у довге Ñлово:\n" -#: vms-alpha.c:7964 +#: vms-alpha.c:8042 #, c-format msgid " Code Address Reference Fixups:\n" msgstr " Прив’Ñзки Ð°Ð´Ñ€ÐµÑ ÐºÐ¾Ð´Ñƒ:\n" -#: vms-alpha.c:7969 +#: vms-alpha.c:8047 #, c-format msgid " Linkage Pairs Reference Fixups:\n" msgstr " Прив’Ñзки поÑилань на пари компонуваннÑ:\n" -#: vms-alpha.c:7978 +#: vms-alpha.c:8056 #, c-format msgid " Change Protection (%u entries):\n" msgstr " Зміна захиÑту (%u запиÑи):\n" -#: vms-alpha.c:7984 +#: vms-alpha.c:8062 #, c-format msgid " base: 0x%08x %08x, size: 0x%08x, prot: 0x%08x " msgstr " оÑн.: 0x%08x %08x, розм: 0x%08x, зах.: 0x%08x " #. FIXME: we do not yet support relocatable link. It is not obvious #. how to do it for debug infos. -#: vms-alpha.c:8824 +#: vms-alpha.c:8902 msgid "%P: relocatable link is not supported\n" msgstr "%P: підтримки ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð· можливіÑÑ‚ÑŽ переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ передбачено\n" -#: vms-alpha.c:8895 +#: vms-alpha.c:8973 #, c-format -msgid "%P: multiple entry points: in modules %B and %B\n" -msgstr "%P: декілька точок входженнÑ: у модулÑÑ… %B Ñ– %B\n" +msgid "%P: multiple entry points: in modules %pB and %pB\n" +msgstr "%P: декілька точок входженнÑ: у модулÑÑ… %pB Ñ– %pB\n" #: vms-lib.c:1445 #, c-format @@ -7860,216 +7553,253 @@ msgstr "_bfd_vms_output_counted викликано Ð´Ð»Ñ Ð·Ð°Ð½Ð°Ð´Ñ‚Ð¾ великої кількоÑÑ‚Ñ– байтів" #: xcofflink.c:832 -msgid "%B: XCOFF shared object when not producing XCOFF output" -msgstr "%B: Ñпільний об’єкт XCOFF, хоча дані XCOFF не ÑтворюютьÑÑ" +#, c-format +msgid "%pB: XCOFF shared object when not producing XCOFF output" +msgstr "%pB: Ñпільний об’єкт XCOFF, хоча дані XCOFF не ÑтворюютьÑÑ" #: xcofflink.c:853 -msgid "%B: dynamic object with no .loader section" -msgstr "%B: динамічний об’єкт без розділу .loader" +#, c-format +msgid "%pB: dynamic object with no .loader section" +msgstr "%pB: динамічний об’єкт без розділу .loader" #: xcofflink.c:1413 #, c-format -msgid "%B: `%s' has line numbers but no enclosing section" -msgstr "%B: «%s» міÑтить номери Ñ€Ñдків, але не міÑтить завершального розділу" +msgid "%pB: `%s' has line numbers but no enclosing section" +msgstr "%pB: «%s» міÑтить номери Ñ€Ñдків, але не міÑтить завершального розділу" #: xcofflink.c:1466 #, c-format -msgid "%B: class %d symbol `%s' has no aux entries" -msgstr "%B: ÐºÐ»Ð°Ñ %d, Ñимвол «%s» не має допоміжних запиÑів" +msgid "%pB: class %d symbol `%s' has no aux entries" +msgstr "%pB: ÐºÐ»Ð°Ñ %d, Ñимвол «%s» не має допоміжних запиÑів" #: xcofflink.c:1489 #, c-format -msgid "%B: symbol `%s' has unrecognized csect type %d" -msgstr "B: Ñимвол «%s» належить до нерозпізнаного типу csect %d" +msgid "%pB: symbol `%s' has unrecognized csect type %d" +msgstr "%pB: Ñимвол «%s» належить до нерозпізнаного типу csect %d" #: xcofflink.c:1502 #, c-format -msgid "%B: bad XTY_ER symbol `%s': class %d scnum %d scnlen %d" -msgstr "%B: помилковий Ñимвол XTY_ER «%s»: ÐºÐ»Ð°Ñ %d, номер розділу %d, довжина розділу %d" +msgid "%pB: bad XTY_ER symbol `%s': class %d scnum %d scnlen %" +msgstr "%pB: помилковий Ñимвол XTY_ER «%s»: ÐºÐ»Ð°Ñ %d, номер розділу %d, довжина розділу %" -#: xcofflink.c:1532 +#: xcofflink.c:1533 #, c-format -msgid "%B: XMC_TC0 symbol `%s' is class %d scnlen %d" -msgstr "%B: Ñимвол XMC_TC0 «%s» Ñ” клаÑом %d, довжина розділу %d" +msgid "%pB: XMC_TC0 symbol `%s' is class %d scnlen %" +msgstr "%pB: Ñимвол XMC_TC0 «%s» Ñ” клаÑом %d, довжина розділу %" -#: xcofflink.c:1679 +#: xcofflink.c:1680 #, c-format -msgid "%B: csect `%s' not in enclosing section" -msgstr "%B: csect «%s» не у завершальному розділі" +msgid "%pB: csect `%s' not in enclosing section" +msgstr "%pB: csect «%s» не у завершальному розділі" -#: xcofflink.c:1787 +#: xcofflink.c:1788 #, c-format -msgid "%B: misplaced XTY_LD `%s'" -msgstr "%B: помилкове Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ XTY_LD «%s»" +msgid "%pB: misplaced XTY_LD `%s'" +msgstr "%pB: помилкове Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ XTY_LD «%s»" -#: xcofflink.c:2108 +#: xcofflink.c:2109 #, c-format -msgid "%B: reloc %s:%d not in csect" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s:%d не у csect" +msgid "%pB: reloc %s:% not in csect" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s:% не у csect" -#: xcofflink.c:3198 +#: xcofflink.c:3199 #, c-format msgid "%s: no such symbol" msgstr "%s: немає такого Ñимволу" -#: xcofflink.c:3303 +#: xcofflink.c:3304 #, c-format msgid "warning: attempt to export undefined symbol `%s'" msgstr "попередженнÑ: Ñпроба екÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ Ñимволу «%s»" -#: xcofflink.c:3682 +#: xcofflink.c:3683 msgid "error: undefined symbol __rtinit" msgstr "помилка: невизначений Ñимвол __rtinit" -#: xcofflink.c:4062 +#: xcofflink.c:4063 #, c-format -msgid "%B: loader reloc in unrecognized section `%s'" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÑƒÐ²Ð°Ñ‡Ð° у нерозпізнаному розділі «%s»" +msgid "%pB: loader reloc in unrecognized section `%s'" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÑƒÐ²Ð°Ñ‡Ð° у нерозпізнаному розділі «%s»" -#: xcofflink.c:4074 +#: xcofflink.c:4075 #, c-format -msgid "%B: `%s' in loader reloc but not loader sym" -msgstr "%B: «%s» у переÑуванні завантажувача, але не у Ñимволах завантаженнÑ" +msgid "%pB: `%s' in loader reloc but not loader sym" +msgstr "%pB: «%s» у переÑуванні завантажувача, але не у Ñимволах завантаженнÑ" -#: xcofflink.c:4091 +#: xcofflink.c:4092 #, c-format -msgid "%B: loader reloc in read-only section %A" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÑƒÐ²Ð°Ñ‡Ð° у розділі, призначеному лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ, %A" +msgid "%pB: loader reloc in read-only section %pA" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÑƒÐ²Ð°Ñ‡Ð° у розділі, призначеному лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ, %pA" -#: xcofflink.c:5115 +#: xcofflink.c:5116 #, c-format -msgid "TOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compiling" -msgstr "ÐŸÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ TOC: 0x%lx > 0x10000; Ñпробуйте параметр -mminimal-toc під Ñ‡Ð°Ñ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ" +msgid "TOC overflow: %# > 0x10000; try -mminimal-toc when compiling" +msgstr "ÐŸÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ TOC: %# > 0x10000; Ñпробуйте параметр -mminimal-toc під Ñ‡Ð°Ñ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ" -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:1890 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-aarch64.c:5027 #, c-format -msgid "Invalid AArch64 reloc number: %d" -msgstr "Ðекоректне чиÑло переÑÑƒÐ²Ð°Ð½Ð½Ñ AArch64: %d" +msgid "%pB: error: erratum 835769 stub out of range (input file too large)" +msgstr "%pB: помилка: замінник Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±Ð½Ð¸ÐºÐ° помилки 835769 перебуває поза доÑтупним діапазоном (файл вхідних даних Ñ” надто великим)" -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:4777 -msgid "%B: error: Erratum 835769 stub out of range (input file too large)" -msgstr "%B: помилка: замінник Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±Ð½Ð¸ÐºÐ° помилки 835769 перебуває поза доÑтупним діапазоном (файл вхідних даних Ñ” надто великим)" +#: /work/sources/binutils/branches/2.31/bfd/elfnn-aarch64.c:5108 +#, c-format +msgid "%pB: error: erratum 843419 stub out of range (input file too large)" +msgstr "%pB: помилка: замінник Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±Ð½Ð¸ÐºÐ° помилки 843419 перебуває поза доÑтупним діапазоном (файл вхідних даних Ñ” надто великим)" -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:4858 -msgid "%B: error: Erratum 843419 stub out of range (input file too large)" -msgstr "%B: помилка: замінник Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±Ð½Ð¸ÐºÐ° помилки 843419 перебуває поза доÑтупним діапазоном (файл вхідних даних Ñ” надто великим)" +#: /work/sources/binutils/branches/2.31/bfd/elfnn-aarch64.c:5638 +#, c-format +msgid "%pB: relocation %s against symbol `%s' which may bind externally can not be used when making a shared object; recompile with -fPIC" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо Ñимволу «%s», Ñкий може прив’ÑзуватиÑÑ Ð·Ð·Ð¾Ð²Ð½Ñ–, не можна викориÑтовувати під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñпільного викориÑтаннÑ; повторно зберіть з -fPIC" -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:5340 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-aarch64.c:5729 #, c-format -msgid "%B: relocation %s against symbol `%s' which may bind externally can not be used when making a shared object; recompile with -fPIC" -msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо Ñимволу «%s», Ñкий може прив’ÑзуватиÑÑ Ð·Ð·Ð¾Ð²Ð½Ñ–, не можна викориÑтовувати під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñпільного викориÑтаннÑ; повторно зберіть з -fPIC" +msgid "%pB: local symbol descriptor table be NULL when applying relocation %s against local symbol" +msgstr "%pB: локальна Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ð´ÐµÑкрипторів Ñимволів Ñ” NULL під Ñ‡Ð°Ñ Ð·Ð°ÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо локального Ñимволу" + +#: /work/sources/binutils/branches/2.31/bfd/elfnn-aarch64.c:6761 +msgid "too many GOT entries for -fpic, please recompile with -fPIC" +msgstr "забагато запиÑів GOT Ð´Ð»Ñ -fpic. Будь лаÑка, зберіть повторно з -fPIC" -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:5431 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-aarch64.c:6789 +msgid "one possible cause of this error is that the symbol is being referenced in the indicated code as if it had a larger alignment than was declared where it was defined" +msgstr "однією із можливих причин цієї помилки Ñ” те, що поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° Ñимвол у коді виконуєтьÑÑ Ñ‚Ð°Ðº, наче Ñимвол має більше вирівнюваннÑ, ніж було оголошено там, де його було визначено" + +#: /work/sources/binutils/branches/2.31/bfd/elfnn-aarch64.c:7375 #, c-format -msgid "%B: Local symbol descriptor table be NULL when applying relocation %s against local symbol" -msgstr "%B: локальна Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ð´ÐµÑкрипторів Ñимволів Ñ” NULL під Ñ‡Ð°Ñ Ð·Ð°ÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо локального Ñимволу" +msgid "%pB: relocation %s against `%s' can not be used when making a shared object" +msgstr "%pB: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо «%s», не можна викориÑтовувати під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñпільного викориÑтаннÑ" + +#: /work/sources/binutils/branches/2.31/bfd/elfnn-riscv.c:2281 +msgid "%X%P: internal error: out of range error\n" +msgstr "%X%P: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: вихід за межі діапазону\n" -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6459 -msgid "Too many GOT entries for -fpic, please recompile with -fPIC" -msgstr "Забагато запиÑів GOT Ð´Ð»Ñ -fpic. Будь лаÑка, зберіть повторно з -fPIC" +#: /work/sources/binutils/branches/2.31/bfd/elfnn-riscv.c:2285 +msgid "%X%P: internal error: unsupported relocation error\n" +msgstr "%X%P: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: непідтримувана помилка переÑуваннÑ\n" -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6487 -msgid "One possible cause of this error is that the symbol is being referenced in the indicated code as if it had a larger alignment than was declared where it was defined." -msgstr "Однією із можливих причин цієї помилки Ñ” те, що поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° Ñимвол у коді виконуєтьÑÑ Ñ‚Ð°Ðº, наче Ñимвол має більше вирівнюваннÑ, ніж було оголошено там, де його було визначено." +#: /work/sources/binutils/branches/2.31/bfd/elfnn-riscv.c:2295 +msgid "%X%P: internal error: unknown error\n" +msgstr "%X%P: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: невідома помилка\n" -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2600 +#: /work/sources/binutils/branches/2.31/bfd/elfnn-riscv.c:2621 +#, c-format msgid "" -"%B: ABI is incompatible with that of the selected emulation:\n" +"%pB: ABI is incompatible with that of the selected emulation:\n" " target emulation `%s' does not match `%s'" msgstr "" -"%B: ABI Ñ” неÑуміÑним із вибраною емулÑцією:\n" +"%pB: ABI Ñ” неÑуміÑним із вибраною емулÑцією:\n" " ціль емулÑції, «%s», не відповідає «%s»" -#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2620 -msgid "%B: can't link hard-float modules with soft-float modules" -msgstr "%B: не можна компонувати модулі із апаратною рухомою крапкою із модулÑми із програмною рухомою крапкою" +#: /work/sources/binutils/branches/2.31/bfd/elfnn-riscv.c:2641 +#, c-format +msgid "%pB: can't link hard-float modules with soft-float modules" +msgstr "%pB: не можна компонувати модулі із апаратною рухомою крапкою із модулÑми із програмною рухомою крапкою" + +#: /work/sources/binutils/branches/2.31/bfd/elfnn-riscv.c:2649 +#, c-format +msgid "%pB: can't link RVE with other target" +msgstr "%pB: не можна компонувати RVE із іншою ціллю" + +#: /work/sources/binutils/branches/2.31/bfd/elfnn-riscv.c:3167 +#, c-format +msgid "%pB(%pA+%#): % bytes required for alignment to %-byte boundary, but only % present" +msgstr "%pB(%pA+%#): потрібні % байтів Ð´Ð»Ñ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð½Ð° %-байтову межу, втім, маємо лише %" + +#: /work/sources/binutils/branches/2.31/bfd/elfnn-riscv.c:3235 +#, c-format +msgid "%pB(%pA+%#): Unable to clear RISCV_PCREL_HI20 reloc for corresponding RISCV_PCREL_LO12 reloc" +msgstr "%pB(%pA+%#): не вдалоÑÑ Ð¾Ñ‡Ð¸Ñтити RISCV_PCREL_HI20 relocfor, що відповідає переміщенню RISCV_PCREL_LO12" #: peigen.c:157 pepigen.c:157 pex64igen.c:157 -msgid "%B: unable to find name for empty section" -msgstr "%B: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ назву порожнього розділу" +#, c-format +msgid "%pB: unable to find name for empty section" +msgstr "%pB: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ назву порожнього розділу" #: peigen.c:183 pepigen.c:183 pex64igen.c:183 -msgid "%B: out of memory creating name for empty section" -msgstr "%B: вихід за межі облаÑÑ‚Ñ– пам’ÑÑ‚Ñ– під Ñ‡Ð°Ñ Ñпроби Ñтворити назву Ð´Ð»Ñ Ð¿Ð¾Ñ€Ð¾Ð¶Ð½ÑŒÐ¾Ð³Ð¾ розділу" +#, c-format +msgid "%pB: out of memory creating name for empty section" +msgstr "%pB: вихід за межі облаÑÑ‚Ñ– пам’ÑÑ‚Ñ– під Ñ‡Ð°Ñ Ñпроби Ñтворити назву Ð´Ð»Ñ Ð¿Ð¾Ñ€Ð¾Ð¶Ð½ÑŒÐ¾Ð³Ð¾ розділу" #: peigen.c:194 pepigen.c:194 pex64igen.c:194 -msgid "%B: unable to create fake empty section" -msgstr "%B: не вдалоÑÑ Ñтворити фіктивний порожній розділ" +#, c-format +msgid "%pB: unable to create fake empty section" +msgstr "%pB: не вдалоÑÑ Ñтворити фіктивний порожній розділ" #: peigen.c:532 pepigen.c:532 pex64igen.c:532 -msgid "%B: aout header specifies an invalid number of data-directory entries: %d" -msgstr "%B: заголовок aout вказує некоректну кількіÑÑ‚ÑŒ запиÑів каталогу даних: %d" +#, c-format +msgid "%pB: aout header specifies an invalid number of data-directory entries: %ld" +msgstr "%pB: заголовок aout вказує некоректну кількіÑÑ‚ÑŒ запиÑів каталогу даних: %ld" -#: peigen.c:1089 pepigen.c:1089 pex64igen.c:1089 +#: peigen.c:1090 pepigen.c:1090 pex64igen.c:1090 #, c-format -msgid "%B: line number overflow: 0x%lx > 0xffff" -msgstr "%B: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð² Ñ€Ñдків; 0x%lx > 0xffff" +msgid "%pB: line number overflow: 0x%lx > 0xffff" +msgstr "%pB: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð² Ñ€Ñдків; 0x%lx > 0xffff" -#: peigen.c:1233 pepigen.c:1233 pex64igen.c:1233 +#: peigen.c:1234 pepigen.c:1234 pex64igen.c:1234 msgid "Export Directory [.edata (or where ever we found it)]" msgstr "Каталог екÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ [.edata (або інше міÑце, де його знайдено)]" -#: peigen.c:1234 pepigen.c:1234 pex64igen.c:1234 +#: peigen.c:1235 pepigen.c:1235 pex64igen.c:1235 msgid "Import Directory [parts of .idata]" msgstr "Каталог Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ [чаÑтини .idata]" -#: peigen.c:1235 pepigen.c:1235 pex64igen.c:1235 +#: peigen.c:1236 pepigen.c:1236 pex64igen.c:1236 msgid "Resource Directory [.rsrc]" msgstr "Каталог реÑурÑів [.rsrc]" -#: peigen.c:1236 pepigen.c:1236 pex64igen.c:1236 +#: peigen.c:1237 pepigen.c:1237 pex64igen.c:1237 msgid "Exception Directory [.pdata]" msgstr "Каталог виключень [.pdata]" -#: peigen.c:1237 pepigen.c:1237 pex64igen.c:1237 +#: peigen.c:1238 pepigen.c:1238 pex64igen.c:1238 msgid "Security Directory" msgstr "Каталог захиÑту" -#: peigen.c:1238 pepigen.c:1238 pex64igen.c:1238 +#: peigen.c:1239 pepigen.c:1239 pex64igen.c:1239 msgid "Base Relocation Directory [.reloc]" msgstr "Каталог базового переÑÑƒÐ²Ð°Ð½Ð½Ñ [.reloc]" -#: peigen.c:1239 pepigen.c:1239 pex64igen.c:1239 +#: peigen.c:1240 pepigen.c:1240 pex64igen.c:1240 msgid "Debug Directory" msgstr "Каталог діагноÑтики" -#: peigen.c:1240 pepigen.c:1240 pex64igen.c:1240 +#: peigen.c:1241 pepigen.c:1241 pex64igen.c:1241 msgid "Description Directory" msgstr "Каталог опиÑів" -#: peigen.c:1241 pepigen.c:1241 pex64igen.c:1241 +#: peigen.c:1242 pepigen.c:1242 pex64igen.c:1242 msgid "Special Directory" msgstr "ОÑобливий каталог" -#: peigen.c:1242 pepigen.c:1242 pex64igen.c:1242 +#: peigen.c:1243 pepigen.c:1243 pex64igen.c:1243 msgid "Thread Storage Directory [.tls]" msgstr "Каталог Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑ–Ð² [.tls]" -#: peigen.c:1243 pepigen.c:1243 pex64igen.c:1243 +#: peigen.c:1244 pepigen.c:1244 pex64igen.c:1244 msgid "Load Configuration Directory" msgstr "Каталог Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½ÑŒ" -#: peigen.c:1244 pepigen.c:1244 pex64igen.c:1244 +#: peigen.c:1245 pepigen.c:1245 pex64igen.c:1245 msgid "Bound Import Directory" msgstr "Каталог вимушеного імпортуваннÑ" -#: peigen.c:1245 pepigen.c:1245 pex64igen.c:1245 +#: peigen.c:1246 pepigen.c:1246 pex64igen.c:1246 msgid "Import Address Table Directory" msgstr "Каталог Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– адреÑ" -#: peigen.c:1246 pepigen.c:1246 pex64igen.c:1246 +#: peigen.c:1247 pepigen.c:1247 pex64igen.c:1247 msgid "Delay Import Directory" msgstr "Каталог відкладеного імпортуваннÑ" -#: peigen.c:1247 pepigen.c:1247 pex64igen.c:1247 +#: peigen.c:1248 pepigen.c:1248 pex64igen.c:1248 msgid "CLR Runtime Header" msgstr "Динамічний заголовок CLR" -#: peigen.c:1248 pepigen.c:1248 pex64igen.c:1248 +#: peigen.c:1249 pepigen.c:1249 pex64igen.c:1249 msgid "Reserved" msgstr "Зарезервовано" -#: peigen.c:1308 pepigen.c:1308 pex64igen.c:1308 +#: peigen.c:1309 pepigen.c:1309 pex64igen.c:1309 #, c-format msgid "" "\n" @@ -8078,7 +7808,7 @@ "\n" "ІÑнує Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ, але розділу, що Ñ—Ñ— міÑтить не знайдено\n" -#: peigen.c:1314 pepigen.c:1314 pex64igen.c:1314 +#: peigen.c:1315 pepigen.c:1315 pex64igen.c:1315 #, c-format msgid "" "\n" @@ -8087,7 +7817,7 @@ "\n" "У %s Ñ” Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ, але у цьому розділі немає даних\n" -#: peigen.c:1321 pepigen.c:1321 pex64igen.c:1321 +#: peigen.c:1322 pepigen.c:1322 pex64igen.c:1322 #, c-format msgid "" "\n" @@ -8096,7 +7826,7 @@ "\n" "У %s зберігаєтьÑÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ 0x%lx\n" -#: peigen.c:1363 pepigen.c:1363 pex64igen.c:1363 +#: peigen.c:1364 pepigen.c:1364 pex64igen.c:1364 #, c-format msgid "" "\n" @@ -8105,12 +7835,12 @@ "\n" "ДеÑкриптор функції розташовано за початковою адреÑою %04lx\n" -#: peigen.c:1367 pepigen.c:1367 pex64igen.c:1367 +#: peigen.c:1368 pepigen.c:1368 pex64igen.c:1368 #, c-format msgid "\tcode-base %08lx toc (loadable/actual) %08lx/%08lx\n" msgstr "\ttoc оÑнови коду %08lx (завантажуваний/дійÑний) %08lx/%08lx\n" -#: peigen.c:1375 pepigen.c:1375 pex64igen.c:1375 +#: peigen.c:1376 pepigen.c:1376 pex64igen.c:1376 #, c-format msgid "" "\n" @@ -8119,7 +7849,7 @@ "\n" "Ðемає розділу reldata! ДеÑкриптор функції не розшифровано.\n" -#: peigen.c:1380 pepigen.c:1380 pex64igen.c:1380 +#: peigen.c:1381 pepigen.c:1381 pex64igen.c:1381 #, c-format msgid "" "\n" @@ -8128,7 +7858,7 @@ "\n" "Таблиці Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ (оброблений вміÑÑ‚ розділу %s)\n" -#: peigen.c:1383 pepigen.c:1383 pex64igen.c:1383 +#: peigen.c:1384 pepigen.c:1384 pex64igen.c:1384 #, c-format msgid "" " vma: Hint Time Forward DLL First\n" @@ -8137,7 +7867,7 @@ " vma: Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð§Ð°Ñова Ланцюжок Ðазва Перший\n" " вказ. Позначка ÑпрÑм. DLL шлюз\n" -#: peigen.c:1433 pepigen.c:1433 pex64igen.c:1433 +#: peigen.c:1434 pepigen.c:1434 pex64igen.c:1434 #, c-format msgid "" "\n" @@ -8146,12 +7876,12 @@ "\n" "\tÐазва DLL: %.*s\n" -#: peigen.c:1449 pepigen.c:1449 pex64igen.c:1449 +#: peigen.c:1450 pepigen.c:1450 pex64igen.c:1450 #, c-format msgid "\tvma: Hint/Ord Member-Name Bound-To\n" msgstr "\tvma: Вказ/Пор Ðазва-елемента Прив’Ñзано-до\n" -#: peigen.c:1474 pepigen.c:1474 pex64igen.c:1474 +#: peigen.c:1475 pepigen.c:1475 pex64igen.c:1475 #, c-format msgid "" "\n" @@ -8160,13 +7890,13 @@ "\n" "ІÑнує Ð·Ð°Ð¿Ð¸Ñ Ð¿ÐµÑ€ÑˆÐ¾Ð³Ð¾ переходу, але розділу, що його міÑтить не знайдено\n" -#: peigen.c:1518 peigen.c:1556 pepigen.c:1518 pepigen.c:1556 pex64igen.c:1518 -#: pex64igen.c:1556 +#: peigen.c:1519 peigen.c:1558 pepigen.c:1519 pepigen.c:1558 pex64igen.c:1519 +#: pex64igen.c:1558 #, c-format msgid "\t" msgstr "\t<пошкоджено: 0x%04lx>" -#: peigen.c:1649 pepigen.c:1649 pex64igen.c:1649 +#: peigen.c:1651 pepigen.c:1651 pex64igen.c:1651 #, c-format msgid "" "\n" @@ -8175,7 +7905,7 @@ "\n" "ІÑнує Ð·Ð°Ð¿Ð¸Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– екÑпортуваннÑ, але розділу, що Ñ—Ñ— міÑтить не знайдено\n" -#: peigen.c:1655 pepigen.c:1655 pex64igen.c:1655 +#: peigen.c:1657 pepigen.c:1657 pex64igen.c:1657 #, c-format msgid "" "\n" @@ -8184,7 +7914,7 @@ "\n" "У %s Ñ” Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ ÐµÐºÑпортуваннÑ, але у цьому розділі немає даних\n" -#: peigen.c:1665 pepigen.c:1665 pex64igen.c:1665 +#: peigen.c:1667 pepigen.c:1667 pex64igen.c:1667 #, c-format msgid "" "\n" @@ -8193,7 +7923,7 @@ "\n" "У %s зберігаєтьÑÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ ÐµÐºÑпортуваннÑ, але Ñ—Ñ— не можна вміÑтити у цьому розділі\n" -#: peigen.c:1676 pepigen.c:1676 pex64igen.c:1676 +#: peigen.c:1678 pepigen.c:1678 pex64igen.c:1678 #, c-format msgid "" "\n" @@ -8202,7 +7932,7 @@ "\n" "У %s зберігаєтьÑÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ ÐµÐºÑпортуваннÑ, але вона Ñ” надто малою (%d)\n" -#: peigen.c:1682 pepigen.c:1682 pex64igen.c:1682 +#: peigen.c:1684 pepigen.c:1684 pex64igen.c:1684 #, c-format msgid "" "\n" @@ -8211,7 +7941,7 @@ "\n" "У %s зберігаєтьÑÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ ÐµÐºÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ 0x%lx\n" -#: peigen.c:1710 pepigen.c:1710 pex64igen.c:1710 +#: peigen.c:1712 pepigen.c:1712 pex64igen.c:1712 #, c-format msgid "" "\n" @@ -8221,67 +7951,67 @@ "\n" "Таблиці екÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ (оброблений вміÑÑ‚ розділу %s)\n" -#: peigen.c:1714 pepigen.c:1714 pex64igen.c:1714 +#: peigen.c:1716 pepigen.c:1716 pex64igen.c:1716 #, c-format msgid "Export Flags \t\t\t%lx\n" msgstr "Прапорці екÑпортуваннÑ\t\t%lx\n" -#: peigen.c:1717 pepigen.c:1717 pex64igen.c:1717 +#: peigen.c:1719 pepigen.c:1719 pex64igen.c:1719 #, c-format msgid "Time/Date stamp \t\t%lx\n" msgstr "Позначка чаÑу/дати\t\t%lx\n" -#: peigen.c:1721 pepigen.c:1721 pex64igen.c:1721 +#: peigen.c:1723 pepigen.c:1723 pex64igen.c:1723 #, c-format msgid "Major/Minor \t\t\t%d/%d\n" msgstr "ОÑновна/ÐœÐ¾Ð´Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ \t\t\t%d/%d\n" -#: peigen.c:1724 pepigen.c:1724 pex64igen.c:1724 +#: peigen.c:1726 pepigen.c:1726 pex64igen.c:1726 #, c-format msgid "Name \t\t\t\t" msgstr "Ðазва\t\t\t\t" -#: peigen.c:1735 pepigen.c:1735 pex64igen.c:1735 +#: peigen.c:1737 pepigen.c:1737 pex64igen.c:1737 #, c-format msgid "Ordinal Base \t\t\t%ld\n" msgstr "ОÑнова впорÑдковуваннÑ\t\t%ld\n" -#: peigen.c:1738 pepigen.c:1738 pex64igen.c:1738 +#: peigen.c:1740 pepigen.c:1740 pex64igen.c:1740 #, c-format msgid "Number in:\n" msgstr "Ðомер у:\n" -#: peigen.c:1741 pepigen.c:1741 pex64igen.c:1741 +#: peigen.c:1743 pepigen.c:1743 pex64igen.c:1743 #, c-format msgid "\tExport Address Table \t\t%08lx\n" msgstr "\tÐ¢Ð°Ð±Ð»Ð¸Ñ†Ñ ÐµÐºÑпортованих Ð°Ð´Ñ€ÐµÑ \t\t%08lx\n" -#: peigen.c:1745 pepigen.c:1745 pex64igen.c:1745 +#: peigen.c:1747 pepigen.c:1747 pex64igen.c:1747 #, c-format msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n" msgstr "\tÐ¢Ð°Ð±Ð»Ð¸Ñ†Ñ [вказівників назв/порÑдкових номерів]\t%08lx\n" -#: peigen.c:1748 pepigen.c:1748 pex64igen.c:1748 +#: peigen.c:1750 pepigen.c:1750 pex64igen.c:1750 #, c-format msgid "Table Addresses\n" msgstr "Табличні адреÑи\n" -#: peigen.c:1751 pepigen.c:1751 pex64igen.c:1751 +#: peigen.c:1753 pepigen.c:1753 pex64igen.c:1753 #, c-format msgid "\tExport Address Table \t\t" msgstr "\tÐ¢Ð°Ð±Ð»Ð¸Ñ†Ñ ÐµÐºÑпортованих Ð°Ð´Ñ€ÐµÑ \t\t" -#: peigen.c:1756 pepigen.c:1756 pex64igen.c:1756 +#: peigen.c:1758 pepigen.c:1758 pex64igen.c:1758 #, c-format msgid "\tName Pointer Table \t\t" msgstr "\tÐ¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÑ–Ð² на назви \t\t" -#: peigen.c:1761 pepigen.c:1761 pex64igen.c:1761 +#: peigen.c:1763 pepigen.c:1763 pex64igen.c:1763 #, c-format msgid "\tOrdinal Table \t\t\t" msgstr "\tÐ¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð² \t\t\t" -#: peigen.c:1775 pepigen.c:1775 pex64igen.c:1775 +#: peigen.c:1777 pepigen.c:1777 pex64igen.c:1777 #, c-format msgid "" "\n" @@ -8290,20 +8020,20 @@ "\n" "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ ÐµÐºÑпортованих Ð°Ð´Ñ€ÐµÑ â€” оÑнова порÑдкових номерів: %ld\n" -#: peigen.c:1784 pepigen.c:1784 pex64igen.c:1784 +#: peigen.c:1786 pepigen.c:1786 pex64igen.c:1786 #, c-format msgid "\tInvalid Export Address Table rva (0x%lx) or entry count (0x%lx)\n" msgstr "\tÐекоректне rva (0x%lx) або кількіÑÑ‚ÑŒ запиÑів (0x%lx) таблиці Ð°Ð´Ñ€ÐµÑ ÐµÐºÑпортуваннÑ\n" -#: peigen.c:1803 pepigen.c:1803 pex64igen.c:1803 +#: peigen.c:1805 pepigen.c:1805 pex64igen.c:1805 msgid "Forwarder RVA" msgstr "ПереÑпрÑмовний RVA" -#: peigen.c:1815 pepigen.c:1815 pex64igen.c:1815 +#: peigen.c:1817 pepigen.c:1817 pex64igen.c:1817 msgid "Export RVA" msgstr "ЕкÑпортований RVA" -#: peigen.c:1822 pepigen.c:1822 pex64igen.c:1822 +#: peigen.c:1824 pepigen.c:1824 pex64igen.c:1824 #, c-format msgid "" "\n" @@ -8312,29 +8042,29 @@ "\n" "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ [порÑдкових номерів/вказівників на назви]\n" -#: peigen.c:1830 pepigen.c:1830 pex64igen.c:1830 +#: peigen.c:1832 pepigen.c:1832 pex64igen.c:1832 #, c-format msgid "\tInvalid Name Pointer Table rva (0x%lx) or entry count (0x%lx)\n" msgstr "\tÐекоректне rva (0x%lx) або кількіÑÑ‚ÑŒ запиÑів (0x%lx) таблиці вказівників на назви\n" -#: peigen.c:1837 pepigen.c:1837 pex64igen.c:1837 +#: peigen.c:1839 pepigen.c:1839 pex64igen.c:1839 #, c-format msgid "\tInvalid Ordinal Table rva (0x%lx) or entry count (0x%lx)\n" msgstr "\tÐекоректне rva (0x%lx) або кількіÑÑ‚ÑŒ запиÑів (0x%lx) таблиці порÑдкових даних\n" -#: peigen.c:1851 pepigen.c:1851 pex64igen.c:1851 +#: peigen.c:1853 pepigen.c:1853 pex64igen.c:1853 #, c-format msgid "\t[%4ld] \n" msgstr "\t[%4ld] <пошкоджений зÑув: %lx>\n" -#: peigen.c:1905 peigen.c:2102 pepigen.c:1905 pepigen.c:2102 pex64igen.c:1905 -#: pex64igen.c:2102 +#: peigen.c:1907 peigen.c:2104 pepigen.c:1907 pepigen.c:2104 pex64igen.c:1907 +#: pex64igen.c:2104 #, c-format -msgid "Warning, .pdata section size (%ld) is not a multiple of %d\n" -msgstr "ПопередженнÑ: розмір розділу .pdata (%ld) не Ñ” кратним до %d\n" +msgid "warning, .pdata section size (%ld) is not a multiple of %d\n" +msgstr "попередженнÑ: розмір розділу .pdata (%ld) не Ñ” кратним до %d\n" -#: peigen.c:1909 peigen.c:2106 pepigen.c:1909 pepigen.c:2106 pex64igen.c:1909 -#: pex64igen.c:2106 +#: peigen.c:1911 peigen.c:2108 pepigen.c:1911 pepigen.c:2108 pex64igen.c:1911 +#: pex64igen.c:2108 #, c-format msgid "" "\n" @@ -8343,12 +8073,12 @@ "\n" "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹ (оброблений вміÑÑ‚ розділу .pdata)\n" -#: peigen.c:1912 pepigen.c:1912 pex64igen.c:1912 +#: peigen.c:1914 pepigen.c:1914 pex64igen.c:1914 #, c-format msgid " vma:\t\t\tBegin Address End Address Unwind Info\n" msgstr " vma:\t\t\tПочат. адреÑа Кінц. адреÑа Дані unwind\n" -#: peigen.c:1914 pepigen.c:1914 pex64igen.c:1914 +#: peigen.c:1916 pepigen.c:1916 pex64igen.c:1916 #, c-format msgid "" " vma:\t\tBegin End EH EH PrologEnd Exception\n" @@ -8357,27 +8087,27 @@ " vma:\t\tПоч. Кінц. Обробник Дані ÐдреÑа МаÑка\n" " \t\tадреÑа адреÑа EH EH кінц. прол.виключеннÑ\n" -#: peigen.c:1927 pepigen.c:1927 pex64igen.c:1927 +#: peigen.c:1929 pepigen.c:1929 pex64igen.c:1929 #, c-format msgid "Virtual size of .pdata section (%ld) larger than real size (%ld)\n" msgstr "Віртуальний розмір розділу .pdata (%ld) перевищує реальний розмір (%ld)\n" -#: peigen.c:1997 pepigen.c:1997 pex64igen.c:1997 +#: peigen.c:1999 pepigen.c:1999 pex64igen.c:1999 #, c-format msgid " Register save millicode" msgstr " Мілікод Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ€ÐµÐ³Ñ–Ñтра" -#: peigen.c:2000 pepigen.c:2000 pex64igen.c:2000 +#: peigen.c:2002 pepigen.c:2002 pex64igen.c:2002 #, c-format msgid " Register restore millicode" msgstr " Мілікод Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ€ÐµÐ³Ñ–Ñтра" -#: peigen.c:2003 pepigen.c:2003 pex64igen.c:2003 +#: peigen.c:2005 pepigen.c:2005 pex64igen.c:2005 #, c-format msgid " Glue code sequence" msgstr " ПоÑлідовніÑÑ‚ÑŒ з’єднувального коду" -#: peigen.c:2108 pepigen.c:2108 pex64igen.c:2108 +#: peigen.c:2110 pepigen.c:2110 pex64igen.c:2110 #, c-format msgid "" " vma:\t\tBegin Prolog Function Flags Exception EH\n" @@ -8386,7 +8116,7 @@ " vma:\t\tПоч. Довжина Довжина Прапорці Обробник Дані\n" " \t\tадреÑа прологу функції 32б вик. виключень EH\n" -#: peigen.c:2230 pepigen.c:2230 pex64igen.c:2230 +#: peigen.c:2232 pepigen.c:2232 pex64igen.c:2232 #, c-format msgid "" "\n" @@ -8397,7 +8127,7 @@ "\n" "ПереÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ оÑнови файла PE (оброблений вміÑÑ‚ розділу .reloc)\n" -#: peigen.c:2260 pepigen.c:2260 pex64igen.c:2260 +#: peigen.c:2262 pepigen.c:2262 pex64igen.c:2262 #, c-format msgid "" "\n" @@ -8406,62 +8136,62 @@ "\n" "Віртуальна адреÑа: %08lx, розмір фрагмента: %ld (0x%lx), кількіÑÑ‚ÑŒ прив’Ñзок: %ld\n" -#: peigen.c:2278 pepigen.c:2278 pex64igen.c:2278 +#: peigen.c:2280 pepigen.c:2280 pex64igen.c:2280 #, c-format msgid "\treloc %4d offset %4x [%4lx] %s" msgstr "\tпереÑÑƒÐ²Ð°Ð½Ð½Ñ %4d відÑтуп %4x [%4lx] %s" -#: peigen.c:2339 pepigen.c:2339 pex64igen.c:2339 +#: peigen.c:2341 pepigen.c:2341 pex64igen.c:2341 #, c-format msgid "%03x %*.s Entry: " msgstr "Вхід до %03x %*.s: " -#: peigen.c:2363 pepigen.c:2363 pex64igen.c:2363 +#: peigen.c:2365 pepigen.c:2365 pex64igen.c:2365 #, c-format msgid "name: [val: %08lx len %d]: " msgstr "назва: [значеннÑ: %08lx довжина %d]: " -#: peigen.c:2383 pepigen.c:2383 pex64igen.c:2383 +#: peigen.c:2385 pepigen.c:2385 pex64igen.c:2385 #, c-format msgid "\n" msgstr "<довжина пошкодженого Ñ€Ñдка: %#x>\n" -#: peigen.c:2393 pepigen.c:2393 pex64igen.c:2393 +#: peigen.c:2395 pepigen.c:2395 pex64igen.c:2395 #, c-format msgid "\n" msgstr "<відÑтуп пошкодженого Ñ€Ñдка: %#lx>\n" -#: peigen.c:2398 pepigen.c:2398 pex64igen.c:2398 +#: peigen.c:2400 pepigen.c:2400 pex64igen.c:2400 #, c-format msgid "ID: %#08lx" msgstr "Ід.: %#08lx" -#: peigen.c:2401 pepigen.c:2401 pex64igen.c:2401 +#: peigen.c:2403 pepigen.c:2403 pex64igen.c:2403 #, c-format msgid ", Value: %#08lx\n" msgstr ", ЗначеннÑ: %#08lx\n" -#: peigen.c:2423 pepigen.c:2423 pex64igen.c:2423 +#: peigen.c:2425 pepigen.c:2425 pex64igen.c:2425 #, c-format msgid "%03x %*.s Leaf: Addr: %#08lx, Size: %#08lx, Codepage: %d\n" msgstr "%03x ЛиÑток %*.s: адреÑа: %#08lx, розмір: %#08lx, кодова Ñторінка: %d\n" -#: peigen.c:2465 pepigen.c:2465 pex64igen.c:2465 +#: peigen.c:2467 pepigen.c:2467 pex64igen.c:2467 #, c-format msgid "\n" msgstr "<невідомий тип каталогу: %d>\n" -#: peigen.c:2473 pepigen.c:2473 pex64igen.c:2473 +#: peigen.c:2475 pepigen.c:2475 pex64igen.c:2475 #, c-format msgid " Table: Char: %d, Time: %08lx, Ver: %d/%d, Num Names: %d, IDs: %d\n" msgstr " ТаблицÑ: хар.: %d, чаÑ: %08lx, верÑÑ–Ñ: %d/%d, чиÑлові назви: %d, ід.: %d\n" -#: peigen.c:2562 pepigen.c:2562 pex64igen.c:2562 +#: peigen.c:2564 pepigen.c:2564 pex64igen.c:2564 #, c-format msgid "Corrupt .rsrc section detected!\n" msgstr "ВиÑвлено пошкоджений розділ .rsrc!\n" -#: peigen.c:2586 pepigen.c:2586 pex64igen.c:2586 +#: peigen.c:2588 pepigen.c:2588 pex64igen.c:2588 #, c-format msgid "" "\n" @@ -8470,17 +8200,17 @@ "\n" "ПОПЕРЕДЖЕÐÐЯ: зайві дані у розділі .rsrc — Ñ—Ñ… буде проігноровано Windows:\n" -#: peigen.c:2592 pepigen.c:2592 pex64igen.c:2592 +#: peigen.c:2594 pepigen.c:2594 pex64igen.c:2594 #, c-format msgid " String table starts at offset: %#03x\n" msgstr " Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñ€Ñдків починаєтьÑÑ Ð· таким зÑувом: %#03x\n" -#: peigen.c:2595 pepigen.c:2595 pex64igen.c:2595 +#: peigen.c:2597 pepigen.c:2597 pex64igen.c:2597 #, c-format msgid " Resources start at offset: %#03x\n" msgstr " РеÑурÑи починаютьÑÑ Ð· таким зÑувом: %#03x\n" -#: peigen.c:2647 pepigen.c:2647 pex64igen.c:2647 +#: peigen.c:2649 pepigen.c:2649 pex64igen.c:2649 #, c-format msgid "" "\n" @@ -8489,7 +8219,7 @@ "\n" "ІÑнує каталог діагноÑтики, але розділу, що його міÑтить не знайдено\n" -#: peigen.c:2653 pepigen.c:2653 pex64igen.c:2653 +#: peigen.c:2655 pepigen.c:2655 pex64igen.c:2655 #, c-format msgid "" "\n" @@ -8498,7 +8228,7 @@ "\n" "У %s Ñ” каталог діагноÑтики, але у цьому розділі немає даних\n" -#: peigen.c:2660 pepigen.c:2660 pex64igen.c:2660 +#: peigen.c:2662 pepigen.c:2662 pex64igen.c:2662 #, c-format msgid "" "\n" @@ -8507,7 +8237,7 @@ "\n" "Помилка: у розділі %s міÑтитьÑÑ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð° адреÑа діагноÑтичних даних, але вона Ñ” надто малою\n" -#: peigen.c:2665 pepigen.c:2665 pex64igen.c:2665 +#: peigen.c:2667 pepigen.c:2667 pex64igen.c:2667 #, c-format msgid "" "\n" @@ -8518,22 +8248,22 @@ "ВиÑвлено каталог діагноÑтики у %s за адреÑою 0x%lx\n" "\n" -#: peigen.c:2672 pepigen.c:2672 pex64igen.c:2672 +#: peigen.c:2674 pepigen.c:2674 pex64igen.c:2674 #, c-format msgid "The debug data size field in the data directory is too big for the section" msgstr "Поле розміру діагноÑтичних даних у каталозі діагноÑтики Ñ” надто великим Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ розділу" -#: peigen.c:2677 pepigen.c:2677 pex64igen.c:2677 +#: peigen.c:2679 pepigen.c:2679 pex64igen.c:2679 #, c-format msgid "Type Size Rva Offset\n" msgstr "Тип Розм Rva ЗÑув\n" -#: peigen.c:2725 pepigen.c:2725 pex64igen.c:2725 +#: peigen.c:2727 pepigen.c:2727 pex64igen.c:2727 #, c-format msgid "(format %c%c%c%c signature %s age %ld)\n" msgstr "(формат %c%c%c%c Ð¿Ñ–Ð´Ð¿Ð¸Ñ %s вік %ld)\n" -#: peigen.c:2733 pepigen.c:2733 pex64igen.c:2733 +#: peigen.c:2735 pepigen.c:2735 pex64igen.c:2735 #, c-format msgid "The debug directory size is not a multiple of the debug directory entry size\n" msgstr "Розмір каталогу діагноÑтики не Ñ” кратним до розміру запиÑу каталогу діагноÑтики\n" @@ -8541,7 +8271,7 @@ #. The MS dumpbin program reportedly ands with 0xff0f before #. printing the characteristics field. Not sure why. No reason to #. emulate it here. -#: peigen.c:2753 pepigen.c:2753 pex64igen.c:2753 +#: peigen.c:2755 pepigen.c:2755 pex64igen.c:2755 #, c-format msgid "" "\n" @@ -8550,231 +8280,92 @@ "\n" "ХарактериÑтики 0x%x\n" -#: peigen.c:2988 pepigen.c:2988 pex64igen.c:2988 +#: peigen.c:2991 pepigen.c:2991 pex64igen.c:2991 #, c-format -msgid "%B: Data Directory size (%lx) exceeds space left in section (%lx)" -msgstr "%B: розмір каталогу даних (%lx) перевищує розмір міÑцÑ, Ñке лишилоÑÑ Ñƒ розділі (%lx)" +msgid "%pB: Data Directory size (%lx) exceeds space left in section (%)" +msgstr "%pB: розмір каталогу даних (%lx) перевищує розмір міÑцÑ, Ñке лишилоÑÑ Ñƒ розділі (%)" -#: peigen.c:3018 pepigen.c:3018 pex64igen.c:3018 -msgid "Failed to update file offsets in debug directory" -msgstr "Ðе вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ зÑуви файлів у каталозі діагноÑтики" +#: peigen.c:3002 pepigen.c:3002 pex64igen.c:3002 +#, c-format +msgid "%pB: Data Directory size (%#lx) is negative" +msgstr "%pB: розмір каталогу даних (%#lx) Ñ” від'ємним" + +#: peigen.c:3031 pepigen.c:3031 pex64igen.c:3031 +msgid "failed to update file offsets in debug directory" +msgstr "не вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ зÑуви файлів у каталозі діагноÑтики" -#: peigen.c:3024 pepigen.c:3024 pex64igen.c:3024 -msgid "%B: Failed to read debug data section" -msgstr "%B: не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ розділ діагноÑтичних даних" +#: peigen.c:3037 pepigen.c:3037 pex64igen.c:3037 +#, c-format +msgid "%pB: failed to read debug data section" +msgstr "%pB: не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ розділ діагноÑтичних даних" -#: peigen.c:3840 pepigen.c:3840 pex64igen.c:3840 +#: peigen.c:3853 pepigen.c:3853 pex64igen.c:3853 #, c-format msgid ".rsrc merge failure: duplicate string resource: %d" msgstr "не вдалоÑÑ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: реÑÑƒÑ€Ñ Ð· дублюваннÑм Ñ€Ñдків: %d" -#: peigen.c:3975 pepigen.c:3975 pex64igen.c:3975 +#: peigen.c:3988 pepigen.c:3988 pex64igen.c:3988 msgid ".rsrc merge failure: multiple non-default manifests" msgstr "не вдалоÑÑ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: декілька нетипових маніфеÑтів" -#: peigen.c:3993 pepigen.c:3993 pex64igen.c:3993 +#: peigen.c:4006 pepigen.c:4006 pex64igen.c:4006 msgid ".rsrc merge failure: a directory matches a leaf" msgstr "не вдалоÑÑ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: каталогу відповідає лиÑток" -#: peigen.c:4035 pepigen.c:4035 pex64igen.c:4035 +#: peigen.c:4048 pepigen.c:4048 pex64igen.c:4048 msgid ".rsrc merge failure: duplicate leaf" msgstr "не вдалоÑÑ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð»Ð¸Ñтків" -#: peigen.c:4037 pepigen.c:4037 pex64igen.c:4037 +#: peigen.c:4050 pepigen.c:4050 pex64igen.c:4050 #, c-format msgid ".rsrc merge failure: duplicate leaf: %s" msgstr "не вдалоÑÑ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð»Ð¸Ñтків: %s" -#: peigen.c:4103 pepigen.c:4103 pex64igen.c:4103 -msgid ".rsrc merge failure: dirs with differing characteristics\n" -msgstr "не вдалоÑÑ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: каталоги з різними характериÑтиками\n" - -#: peigen.c:4110 pepigen.c:4110 pex64igen.c:4110 -msgid ".rsrc merge failure: differing directory versions\n" -msgstr "не вдалоÑÑ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: відмінноÑÑ‚Ñ– у верÑÑ–ÑÑ… каталогів\n" +#: peigen.c:4116 pepigen.c:4116 pex64igen.c:4116 +msgid ".rsrc merge failure: dirs with differing characteristics" +msgstr "не вдалоÑÑ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: каталоги з різними характериÑтиками" + +#: peigen.c:4123 pepigen.c:4123 pex64igen.c:4123 +msgid ".rsrc merge failure: differing directory versions" +msgstr "не вдалоÑÑ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: відмінноÑÑ‚Ñ– у верÑÑ–ÑÑ… каталогів" #. Corrupted .rsrc section - cannot merge. -#: peigen.c:4227 pepigen.c:4227 pex64igen.c:4227 -msgid "%B: .rsrc merge failure: corrupt .rsrc section" -msgstr "%B: не вдалоÑÑ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: пошкоджений розділ .rsrc" - -#: peigen.c:4235 pepigen.c:4235 pex64igen.c:4235 -msgid "%B: .rsrc merge failure: unexpected .rsrc size" -msgstr "%B: не вдалоÑÑ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: неочікуваний розмір .rsrc" - -#: peigen.c:4374 pepigen.c:4374 pex64igen.c:4374 -msgid "%B: unable to fill in DataDictionary[1] because .idata$2 is missing" -msgstr "%B: не вдалоÑÑ Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[1], оÑкільки не виÑтачає .idata$2" - -#: peigen.c:4394 pepigen.c:4394 pex64igen.c:4394 -msgid "%B: unable to fill in DataDictionary[1] because .idata$4 is missing" -msgstr "%B: не вдалоÑÑ Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[1], оÑкільки не виÑтачає .idata$4" - -#: peigen.c:4415 pepigen.c:4415 pex64igen.c:4415 -msgid "%B: unable to fill in DataDictionary[12] because .idata$5 is missing" -msgstr "%B: не вдалоÑÑ Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[12], оÑкільки не виÑтачає .idata$5" - -#: peigen.c:4435 pepigen.c:4435 pex64igen.c:4435 -msgid "%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing" -msgstr "%B: не вдалоÑÑ Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)], оÑкільки не виÑтачає .idata$6" - -#: peigen.c:4477 pepigen.c:4477 pex64igen.c:4477 -msgid "%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because .idata$6 is missing" -msgstr "%B: не вдалоÑÑ Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)], оÑкільки .idata$6 не виÑтачає" - -#: peigen.c:4502 pepigen.c:4502 pex64igen.c:4502 -msgid "%B: unable to fill in DataDictionary[9] because __tls_used is missing" -msgstr "%B: не вдалоÑÑ Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[9], оÑкільки не виÑтачає __tls_used" - -#~ msgid "Unrecognized reloc" -#~ msgstr "Ðерозпізнане переÑуваннÑ" - -#~ msgid "%s: warning: illegal symbol index %ld in relocs" -#~ msgstr "%s: попередженнÑ: некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñимволу %ld у переÑуваннÑÑ…" - -#~ msgid "Dwarf Error: Bad abbrev number: %u." -#~ msgstr "Помилка dwarf: помилковий Ñкорочений номер: %u." - -#~ msgid "%B: don't know how to handle allocated, application specific section `%s' [0x%8x]" -#~ msgstr "%B: ÑпоÑіб обробки розміщеного невідомий, Ñпецифічний Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ розділ «%s» [0x%8x]" - -#~ msgid "%B: don't know how to handle processor specific section `%s' [0x%8x]" -#~ msgstr "%B: ÑпоÑіб обробки Ñпецифічного Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора розділу `%s' [0x%8x] невідомий" - -#~ msgid "%B: don't know how to handle OS specific section `%s' [0x%8x]" -#~ msgstr "%B: ÑпоÑіб обробки Ñпецифічного Ð´Ð»Ñ ÐžÐ¡ розділу «%s» [0x%8x] невідомий" - -#~ msgid "%B: don't know how to handle section `%s' [0x%8x]" -#~ msgstr "%B: ÑпоÑіб обробки розділу «%s» [0x%8x] невідомий" - -#~ msgid " [has entry point]" -#~ msgstr " [має вхідну точку]" - -#~ msgid "error: required section '%s' not found in the linker script" -#~ msgstr "помилка: у Ñкрипті ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ знайдено обов’Ñзкового розділу «%s»" - -#~ msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)" -#~ msgstr "%s: викориÑтовуютьÑÑ Ñ–Ð½ÑˆÑ– Ð¿Ð¾Ð»Ñ e_flags (0x%lx) ніж у попередніх модулÑÑ… (0x%lx)" - -#~ msgid "%s: unknown relocation type %d" -#~ msgstr "%s: невідомий тип переÑÑƒÐ²Ð°Ð½Ð½Ñ %d" - -#~ msgid "%s: The target (%s) of an %s relocation is in the wrong section (%s)" -#~ msgstr "" -#~ "%s: Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ (%s) переÑÑƒÐ²Ð°Ð½Ð½Ñ %s перебуває у помилковому розділі (%s)\n" -#~ ")" - -#~ msgid "%B: %s\n" -#~ msgstr "%B: %s\n" - -#~ msgid "%B(%A): warning: relax is suppressed for sections of alignment %d-bytes > 4-byte." -#~ msgstr "%B(%A): попередженнÑ: оптимізацію придушено Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð² Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ %d-байтовий > 4-байтовий." - -#~ msgid "Warning: %B uses soft float, %B uses single-precision hard float" -#~ msgstr "ПопередженнÑ: у %B викориÑтовуєтьÑÑ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð° підтримка дійÑних чиÑел, а у %B — апаратна підтримка Ð´Ð»Ñ Ð´Ñ–Ð¹Ñних чиÑел з одинарною точніÑÑ‚ÑŽ" - -#~ msgid "Warning: %B uses unknown floating point ABI %d" -#~ msgstr "ПопередженнÑ: %B викориÑтовує невідомий ABI роботи з чиÑлами з рухомою крапкою, %d" - -#~ msgid "Warning: %B uses unknown vector ABI %d" -#~ msgstr "ПопередженнÑ: %B викориÑтовує невідомий векторний ABI %d" - -#~ msgid "Warning: %B uses unknown small structure return convention %d" -#~ msgstr "ПопередженнÑ: у %B викориÑтано невідому угоду, %d, щодо Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð¼Ð°Ð»ÐµÐ½ÑŒÐºÐ¸Ñ… Ñтруктур" - -#~ msgid " [G10]" -#~ msgstr " [G10]" - -#~ msgid "%s: Malformed reloc detected for section %s" -#~ msgstr "%s: Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s виÑвлено помилку у форматуванні перенеÑеннÑ" - -#~ msgid " %s: 0x%v\n" -#~ msgstr " %s: 0x%v\n" - -#~ msgid "%s: 0x%v 0x%v\n" -#~ msgstr "%s: 0x%v 0x%v\n" - -#~ msgid " %s%s %s\n" -#~ msgstr " %s%s %s\n" - -#~ msgid ", 8-byte data alignment" -#~ msgstr ", 8-байтове Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…" - -#~ msgid "%B: relocation %s against undefined %s `%s' can not be used when making a shared object%s" -#~ msgstr "%B: переÑÑƒÐ²Ð°Ð½Ð½Ñ %s щодо невизначеного %s, «%s», не можна викориÑтовувати під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñпільного викориÑтаннÑ%s" - -#~ msgid "[%u]: %u\n" -#~ msgstr "[%u]: %u\n" - -#~ msgid ": %u.%u\n" -#~ msgstr ": %u.%u\n" - -#~ msgid "" -#~ "%B(%s): warning: interworking not enabled.\n" -#~ " first occurrence: %B: thumb call to arm" -#~ msgstr "" -#~ "%B(%s): попередженнÑ: ÑуміÑну роботу не увімкнено.\n" -#~ " перша згадка: %B: виклик thumb до arm" - -#~ msgid "DIV usage mismatch between %B and %B" -#~ msgstr "розбіжноÑÑ‚Ñ– у викориÑтанні DIV між %B та %B" - -#~ msgid "%P: dynamic variable `%s' is zero size\n" -#~ msgstr "%P: динамічна змінна «%s» має нульовий розмір\n" - -#~ msgid " [dsp]" -#~ msgstr " [dsp]" - -#~ msgid "%P: %H: automatic multiple TOCs not supported using your crt files; recompile with -mminimal-toc or upgrade gcc\n" -#~ msgstr "%P: %H: автоматичне ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ñ… TOC не можна виконати на оÑнові ваших файлів crt; виконайте повторне Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð· -mminimal-toc або оновіть gcc\n" - -#~ msgid "%P: %H: sibling call optimization to `%s' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `%s' extern\n" -#~ msgstr "%P: %H: у разі викориÑÑ‚Ð°Ð½Ð½Ñ Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ñ— викликів однакових функцій Ð´Ð»Ñ Â«%s» не даÑÑ‚ÑŒ змоги Ñтворити декілька TOC; виконайте повторне Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð· -mminimal-toc або -fno-optimize-sibling-calls чи зробіть «%s» зовнішньою (extern)\n" - -#~ msgid "note: '%s' is defined in DSO %B so try adding it to the linker command line" -#~ msgstr "зауваженнÑ: «%s» визначено у %B DSO, отже Ñпробуємо додати його до командного Ñ€Ñдка компонувальника" - -#~ msgid "Warning: %B uses -msingle-float, %B uses -mips32r2 -mfp64" -#~ msgstr "ПопередженнÑ: у %B викориÑтано -msingle-float, а у %B — -mips32r2 -mfp64" - -#~ msgid "Warning: %B uses -mdouble-float, %B uses -mips32r2 -mfp64" -#~ msgstr "ПопередженнÑ: у %B викориÑтано -mdouble-float, а у %B — -mips32r2 -mfp64" - -#~ msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" is unsupported 'indirect' reference: setting to undefined" -#~ msgstr "bfd_mach_o_read_symtab_symbol: Ñимвол «%s» Ñ” непідтримуваним поÑиланнÑм «indirect»: вÑтановлюємо у невизначене значеннÑ" - -#~ msgid "bfd_mach_o_read_dysymtab_symbol: unable to read %lu bytes at %lu" -#~ msgstr "bfd_mach_o_read_dysymtab_symbol: не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ %lu байтів з %lu" - -#~ msgid "Mach-O header:\n" -#~ msgstr "заголовок Mach-O:\n" - -#~ msgid " magic : %08lx\n" -#~ msgstr " magic : %08lx\n" - -#~ msgid " cputype : %08lx (%s)\n" -#~ msgstr " тип проц. : %08lx (%s)\n" - -#~ msgid " filetype : %08lx (%s)\n" -#~ msgstr " тип файла : %08lx (%s)\n" +#: peigen.c:4240 pepigen.c:4240 pex64igen.c:4240 +#, c-format +msgid "%pB: .rsrc merge failure: corrupt .rsrc section" +msgstr "%pB: не вдалоÑÑ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: пошкоджений розділ .rsrc" -#~ msgid " ncmds : %08lx (%lu)\n" -#~ msgstr " кть_команд: %08lx (%lu)\n" +#: peigen.c:4248 pepigen.c:4248 pex64igen.c:4248 +#, c-format +msgid "%pB: .rsrc merge failure: unexpected .rsrc size" +msgstr "%pB: не вдалоÑÑ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: неочікуваний розмір .rsrc" -#~ msgid " sizeofcmds: %08lx\n" -#~ msgstr " розмір_кмд: %08lx\n" +#: peigen.c:4387 pepigen.c:4387 pex64igen.c:4387 +#, c-format +msgid "%pB: unable to fill in DataDictionary[1] because .idata$2 is missing" +msgstr "%pB: не вдалоÑÑ Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[1], оÑкільки не виÑтачає .idata$2" -#~ msgid " flags : %08lx (" -#~ msgstr " прапорці : %08lx (" +#: peigen.c:4407 pepigen.c:4407 pex64igen.c:4407 +#, c-format +msgid "%pB: unable to fill in DataDictionary[1] because .idata$4 is missing" +msgstr "%pB: не вдалоÑÑ Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[1], оÑкільки не виÑтачає .idata$4" -#~ msgid " reserved : %08x\n" -#~ msgstr " зарезерв. : %08x\n" +#: peigen.c:4428 pepigen.c:4428 pex64igen.c:4428 +#, c-format +msgid "%pB: unable to fill in DataDictionary[12] because .idata$5 is missing" +msgstr "%pB: не вдалоÑÑ Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[12], оÑкільки не виÑтачає .idata$5" -#~ msgid "Segments and Sections:\n" -#~ msgstr "Сегменти Ñ– розділи:\n" +#: peigen.c:4448 pepigen.c:4448 pex64igen.c:4448 +#, c-format +msgid "%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing" +msgstr "%pB: не вдалоÑÑ Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)], оÑкільки не виÑтачає .idata$6" -#~ msgid " #: Segment name Section name Address\n" -#~ msgstr " #: Ðазва Ñегмента Ðазва розділу ÐдреÑа\n" +#: peigen.c:4490 pepigen.c:4490 pex64igen.c:4490 +#, c-format +msgid "%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because .idata$6 is missing" +msgstr "%pB: не вдалоÑÑ Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)], оÑкільки .idata$6 не виÑтачає" -#~ msgid "Symbol %s replaced by %s\n" -#~ msgstr "Символ %s замінено на %s\n" +#: peigen.c:4515 pepigen.c:4515 pex64igen.c:4515 +#, c-format +msgid "%pB: unable to fill in DataDictionary[9] because __tls_used is missing" +msgstr "%pB: не вдалоÑÑ Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[9], оÑкільки не виÑтачає __tls_used" Binary files /tmp/tmp2enahulf/tIHkpyh4Fz/gdb-8.1/bfd/po/vi.gmo and /tmp/tmp2enahulf/I6n3Ljszco/gdb-8.2/bfd/po/vi.gmo differ Binary files /tmp/tmp2enahulf/tIHkpyh4Fz/gdb-8.1/bfd/po/zh_CN.gmo and /tmp/tmp2enahulf/I6n3Ljszco/gdb-8.2/bfd/po/zh_CN.gmo differ diff -Nru gdb-8.1/bfd/ppcboot.c gdb-8.2/bfd/ppcboot.c --- gdb-8.1/bfd/ppcboot.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/ppcboot.c 2018-09-05 07:27:13.000000000 +0000 @@ -328,8 +328,7 @@ #define ppcboot_get_symbol_version_string \ _bfd_nosymbols_get_symbol_version_string -#define ppcboot_bfd_is_target_special_symbol \ - ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) +#define ppcboot_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false #define ppcboot_bfd_is_local_label_name bfd_generic_is_local_label_name #define ppcboot_get_lineno _bfd_nosymbols_get_lineno #define ppcboot_find_nearest_line _bfd_nosymbols_find_nearest_line @@ -461,6 +460,7 @@ #define ppcboot_section_already_linked \ _bfd_generic_section_already_linked #define ppcboot_bfd_define_common_symbol bfd_generic_define_common_symbol +#define ppcboot_bfd_link_hide_symbol _bfd_generic_link_hide_symbol #define ppcboot_bfd_define_start_stop bfd_generic_define_start_stop #define ppcboot_bfd_link_hash_table_create _bfd_generic_link_hash_table_create #define ppcboot_bfd_link_add_symbols _bfd_generic_link_add_symbols @@ -507,16 +507,16 @@ _bfd_dummy_target, }, { /* bfd_set_format */ - bfd_false, + _bfd_bool_bfd_false_error, ppcboot_mkobject, - bfd_false, - bfd_false, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, }, { /* bfd_write_contents */ - bfd_false, - bfd_true, - bfd_false, - bfd_false, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_true, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, }, BFD_JUMP_TABLE_GENERIC (ppcboot), diff -Nru gdb-8.1/bfd/ptrace-core.c gdb-8.2/bfd/ptrace-core.c --- gdb-8.1/bfd/ptrace-core.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/ptrace-core.c 2018-09-05 07:27:13.000000000 +0000 @@ -191,12 +191,12 @@ ptrace_unix_core_file_p /* a core file */ }, { /* bfd_set_format */ - bfd_false, bfd_false, - bfd_false, bfd_false + _bfd_bool_bfd_false_error, bfd_false, + _bfd_bool_bfd_false_error, bfd_false }, { /* bfd_write_contents */ - bfd_false, bfd_false, - bfd_false, bfd_false + _bfd_bool_bfd_false_error, bfd_false, + _bfd_bool_bfd_false_error, bfd_false }, BFD_JUMP_TABLE_GENERIC (_bfd_generic), diff -Nru gdb-8.1/bfd/reloc16.c gdb-8.2/bfd/reloc16.c --- gdb-8.1/bfd/reloc16.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/reloc16.c 2018-09-05 07:27:13.000000000 +0000 @@ -22,8 +22,7 @@ /* Most of this hacked by Steve Chamberlain . */ -/* These routines are used by coff-h8300 and coff-z8k to do - relocation. +/* These routines are used by coff-z8k to do relocation. FIXME: This code should be rewritten to support the new COFF linker. Basically, they need to deal with COFF relocs rather than diff -Nru gdb-8.1/bfd/reloc.c gdb-8.2/bfd/reloc.c --- gdb-8.1/bfd/reloc.c 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/bfd/reloc.c 2018-09-05 07:44:28.000000000 +0000 @@ -87,10 +87,9 @@ . {* The symbol to relocate against was undefined. *} . bfd_reloc_undefined, . -. {* The relocation was performed, but may not be ok - presently -. generated only when linking i960 coff files with i960 b.out -. symbols. If this type is returned, the error_message argument -. to bfd_perform_relocation will be set. *} +. {* The relocation was performed, but may not be ok. If this type is +. returned, the error_message argument to bfd_perform_relocation +. will be set. *} . bfd_reloc_dangerous . } . bfd_reloc_status_type; @@ -318,8 +317,7 @@ . . {* If this field is non null, then the supplied function is . called rather than the normal function. This allows really -. strange relocation methods to be accommodated (e.g., i960 callj -. instructions). *} +. strange relocation methods to be accommodated. *} . bfd_reloc_status_type (*special_function) . (bfd *, arelent *, struct bfd_symbol *, void *, asection *, . bfd *, char **); @@ -363,7 +361,7 @@ . slot of the instruction, so that a PC relative relocation can . be made just by adding in an ordinary offset (e.g., sun3 a.out). . Some formats leave the displacement part of an instruction -. empty (e.g., m88k bcs); this flag signals the fact. *} +. empty (e.g., ELF); this flag signals the fact. *} . bfd_boolean pcrel_offset; .}; . @@ -433,6 +431,7 @@ { switch (howto->size) { + case 5: return 3; case 0: return 1; case 1: return 2; case 2: return 4; @@ -706,8 +705,8 @@ the addend to be the negative of the position of the location within the section; for example, i386-aout does this. For i386-aout, pcrel_offset is FALSE. Some other targets do not - include the position of the location; for example, m88kbcs, - or ELF. For those targets, pcrel_offset is TRUE. + include the position of the location; for example, ELF. + For those targets, pcrel_offset is TRUE. If we are producing relocatable output, then we must ensure that this reloc will be correctly computed when the final @@ -919,6 +918,16 @@ switch (howto->size) { + case 5: + { + long x = bfd_get_32 (abfd, (bfd_byte *) data + octets); + x >>= 8; + DOIT (x); + bfd_put_16 (abfd, (bfd_vma) (x >> 8), (bfd_byte *) data + octets); + bfd_put_8 (abfd, (x & 0xFF), (unsigned char *) data + 2 + octets); + } + break; + case 0: { char x = bfd_get_8 (abfd, (char *) data + octets); @@ -1097,8 +1106,8 @@ the addend to be the negative of the position of the location within the section; for example, i386-aout does this. For i386-aout, pcrel_offset is FALSE. Some other targets do not - include the position of the location; for example, m88kbcs, - or ELF. For those targets, pcrel_offset is TRUE. + include the position of the location; for example, ELF. + For those targets, pcrel_offset is TRUE. If we are producing relocatable output, then we must ensure that this reloc will be correctly computed when the final @@ -1407,11 +1416,11 @@ location we are relocating. Some targets (e.g., i386-aout) arrange for the contents of the section to be the negative of the offset of the location within the section; for such targets - pcrel_offset is FALSE. Other targets (e.g., m88kbcs or ELF) - simply leave the contents of the section as zero; for such - targets pcrel_offset is TRUE. If pcrel_offset is FALSE we do not - need to subtract out the offset of the location within the - section (which is just ADDRESS). */ + pcrel_offset is FALSE. Other targets (e.g., ELF) simply leave + the contents of the section as zero; for such targets + pcrel_offset is TRUE. If pcrel_offset is FALSE we do not need to + subtract out the offset of the location within the section (which + is just ADDRESS). */ if (howto->pc_relative) { relocation -= (input_section->output_section->vma @@ -1739,8 +1748,6 @@ of the relocation itself; sometimes they are relative to the start of the section containing the relocation. It depends on the specific target. -The 24-bit relocation is used in some Intel 960 configurations. - ENUM BFD_RELOC_32_SECREL ENUMDOC @@ -1892,11 +1899,6 @@ decided relatively late. ENUM - BFD_RELOC_I960_CALLJ -ENUMDOC - Reloc types used for i960/b.out. - -ENUM BFD_RELOC_NONE ENUMX BFD_RELOC_SPARC_WDISP22 @@ -3217,6 +3219,23 @@ Low and High halfword relocations for MOVW and MOVT instructions. ENUM + BFD_RELOC_ARM_GOTFUNCDESC +ENUMX + BFD_RELOC_ARM_GOTOFFFUNCDESC +ENUMX + BFD_RELOC_ARM_FUNCDESC +ENUMX + BFD_RELOC_ARM_FUNCDESC_VALUE +ENUMX + BFD_RELOC_ARM_TLS_GD32_FDPIC +ENUMX + BFD_RELOC_ARM_TLS_LDM32_FDPIC +ENUMX + BFD_RELOC_ARM_TLS_IE32_FDPIC +ENUMDOC + ARM FDPIC specific relocations. + +ENUM BFD_RELOC_ARM_JUMP_SLOT ENUMX BFD_RELOC_ARM_GLOB_DAT @@ -5941,6 +5960,12 @@ This is the 8 bit high part of an absolute address and immediately follows a matching LO8XG part. ENUM + BFD_RELOC_S12Z_15_PCREL +ENUMDOC + Freescale S12Z reloc. + This is a 15 bit relative address. If the most significant bits are all zero + then it may be truncated to 8 bits. +ENUM BFD_RELOC_16C_NUM08 ENUMX BFD_RELOC_16C_NUM08_C @@ -6225,73 +6250,6 @@ Relocs used in TLS code for CRIS. ENUM - BFD_RELOC_860_COPY -ENUMX - BFD_RELOC_860_GLOB_DAT -ENUMX - BFD_RELOC_860_JUMP_SLOT -ENUMX - BFD_RELOC_860_RELATIVE -ENUMX - BFD_RELOC_860_PC26 -ENUMX - BFD_RELOC_860_PLT26 -ENUMX - BFD_RELOC_860_PC16 -ENUMX - BFD_RELOC_860_LOW0 -ENUMX - BFD_RELOC_860_SPLIT0 -ENUMX - BFD_RELOC_860_LOW1 -ENUMX - BFD_RELOC_860_SPLIT1 -ENUMX - BFD_RELOC_860_LOW2 -ENUMX - BFD_RELOC_860_SPLIT2 -ENUMX - BFD_RELOC_860_LOW3 -ENUMX - BFD_RELOC_860_LOGOT0 -ENUMX - BFD_RELOC_860_SPGOT0 -ENUMX - BFD_RELOC_860_LOGOT1 -ENUMX - BFD_RELOC_860_SPGOT1 -ENUMX - BFD_RELOC_860_LOGOTOFF0 -ENUMX - BFD_RELOC_860_SPGOTOFF0 -ENUMX - BFD_RELOC_860_LOGOTOFF1 -ENUMX - BFD_RELOC_860_SPGOTOFF1 -ENUMX - BFD_RELOC_860_LOGOTOFF2 -ENUMX - BFD_RELOC_860_LOGOTOFF3 -ENUMX - BFD_RELOC_860_LOPC -ENUMX - BFD_RELOC_860_HIGHADJ -ENUMX - BFD_RELOC_860_HAGOT -ENUMX - BFD_RELOC_860_HAGOTOFF -ENUMX - BFD_RELOC_860_HAPC -ENUMX - BFD_RELOC_860_HIGH -ENUMX - BFD_RELOC_860_HIGOT -ENUMX - BFD_RELOC_860_HIGOTOFF -ENUMDOC - Intel i860 Relocations. - -ENUM BFD_RELOC_OR1K_REL_26 ENUMX BFD_RELOC_OR1K_GOTPC_HI16 @@ -6858,6 +6816,10 @@ BFD_RELOC_MACH_O_X86_64_PCREL32_4 ENUMDOC Same as BFD_RELOC_32_PCREL but with an implicit -4 addend. +ENUM + BFD_RELOC_MACH_O_X86_64_TLV +ENUMDOC + Used when referencing a TLV entry. ENUM @@ -6982,6 +6944,18 @@ ENUMDOC This is a 64 bit reloc that stores 32-bit thread pointer relative offset to two words (uses imm instruction). +ENUM + BFD_RELOC_MICROBLAZE_64_TEXTPCREL +ENUMDOC + This is a 64 bit reloc that stores the 32 bit pc relative + value in two words (with an imm instruction). The relocation is + PC-relative offset from start of TEXT. +ENUM + BFD_RELOC_MICROBLAZE_64_TEXTREL +ENUMDOC + This is a 64 bit reloc that stores the 32 bit offset + value in two words (with an imm instruction). The relocation is + relative offset from start of TEXT. ENUM BFD_RELOC_AARCH64_RELOC_START @@ -7071,6 +7045,43 @@ of a signed value. Changes instruction to MOVZ or MOVN depending on the value's sign. ENUM + BFD_RELOC_AARCH64_MOVW_PREL_G0 +ENUMDOC + AArch64 MOV[NZ] instruction with most significant bits 0 to 15 + of a signed value. Changes instruction to MOVZ or MOVN depending on the + value's sign. +ENUM + BFD_RELOC_AARCH64_MOVW_PREL_G0_NC +ENUMDOC + AArch64 MOV[NZ] instruction with most significant bits 0 to 15 + of a signed value. Changes instruction to MOVZ or MOVN depending on the + value's sign. +ENUM + BFD_RELOC_AARCH64_MOVW_PREL_G1 +ENUMDOC + AArch64 MOVK instruction with most significant bits 16 to 31 + of a signed value. +ENUM + BFD_RELOC_AARCH64_MOVW_PREL_G1_NC +ENUMDOC + AArch64 MOVK instruction with most significant bits 16 to 31 + of a signed value. +ENUM + BFD_RELOC_AARCH64_MOVW_PREL_G2 +ENUMDOC + AArch64 MOVK instruction with most significant bits 32 to 47 + of a signed value. +ENUM + BFD_RELOC_AARCH64_MOVW_PREL_G2_NC +ENUMDOC + AArch64 MOVK instruction with most significant bits 32 to 47 + of a signed value. +ENUM + BFD_RELOC_AARCH64_MOVW_PREL_G3 +ENUMDOC + AArch64 MOVK instruction with most significant bits 47 to 63 + of a signed value. +ENUM BFD_RELOC_AARCH64_LD_LO19_PCREL ENUMDOC AArch64 Load Literal instruction, holding a 19 bit pc-relative word @@ -7359,6 +7370,42 @@ ENUMDOC AArch64 TLS LOCAL EXEC relocation. ENUM + BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12 +ENUMDOC + bit[11:1] of byte offset to module TLS base address, encoded in ldst + instructions. +ENUM + BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12_NC +ENUMDOC + Similar as BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12, but no overflow check. +ENUM + BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12 +ENUMDOC + bit[11:2] of byte offset to module TLS base address, encoded in ldst + instructions. +ENUM + BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12_NC +ENUMDOC + Similar as BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12, but no overflow check. +ENUM + BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12 +ENUMDOC + bit[11:3] of byte offset to module TLS base address, encoded in ldst + instructions. +ENUM + BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12_NC +ENUMDOC + Similar as BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12, but no overflow check. +ENUM + BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12 +ENUMDOC + bit[11:0] of byte offset to module TLS base address, encoded in ldst + instructions. +ENUM + BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12_NC +ENUMDOC + Similar as BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12, but no overflow check. +ENUM BFD_RELOC_AARCH64_TLSDESC_LD_PREL19 ENUMDOC AArch64 TLS DESC relocation. @@ -7467,6 +7514,16 @@ ENUMDOC Similar as BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12, but no overflow check. ENUM + BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12 +ENUMDOC + AArch64 pseudo relocation code for TLS local exec mode. It's to be + used internally by the AArch64 assembler and not (currently) written to + any object files. +ENUM + BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12_NC +ENUMDOC + Similar as BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12, but no overflow check. +ENUM BFD_RELOC_AARCH64_LD_GOT_LO12_NC ENUMDOC AArch64 pseudo relocation code to be used internally by the AArch64 @@ -8103,7 +8160,7 @@ { if (flaginfo != NULL) { - _bfd_error_handler (_("INPUT_SECTION_FLAGS are not supported.\n")); + _bfd_error_handler (_("INPUT_SECTION_FLAGS are not supported")); return FALSE; } return TRUE; @@ -8204,7 +8261,7 @@ { link_info->callbacks->einfo /* xgettext:c-format */ - (_("%X%P: %B(%A): error: relocation for offset %V has no value\n"), + (_("%X%P: %pB(%pA): error: relocation for offset %V has no value\n"), abfd, input_section, (* parent)->address); goto error_return; } @@ -8270,7 +8327,7 @@ message instead. */ link_info->callbacks->einfo /* xgettext:c-format */ - (_("%X%P: %B(%A): relocation \"%R\" goes out of range\n"), + (_("%X%P: %pB(%pA): relocation \"%pR\" goes out of range\n"), abfd, input_section, * parent); goto error_return; @@ -8280,7 +8337,7 @@ Do not abort. Issue an error message instead. */ link_info->callbacks->einfo /* xgettext:c-format */ - (_("%X%P: %B(%A): relocation \"%R\" is not supported\n"), + (_("%X%P: %pB(%pA): relocation \"%pR\" is not supported\n"), abfd, input_section, * parent); goto error_return; @@ -8289,7 +8346,7 @@ Report unexpected results, without aborting. */ link_info->callbacks->einfo /* xgettext:c-format */ - (_("%X%P: %B(%A): relocation \"%R\" returns an unrecognized value %x\n"), + (_("%X%P: %pB(%pA): relocation \"%pR\" returns an unrecognized value %x\n"), abfd, input_section, * parent, r); break; } @@ -8351,13 +8408,36 @@ _bfd_unrecognized_reloc (bfd * abfd, sec_ptr section, unsigned int r_type) { /* xgettext:c-format */ - _bfd_error_handler (_("%B: unrecognized relocation (%#x) in section `%A'"), + _bfd_error_handler (_("%pB: unrecognized relocation type %#x in section `%pA'"), abfd, r_type, section); /* PR 21803: Suggest the most likely cause of this error. */ - _bfd_error_handler (_("Is this version of the linker - %s - out of date ?"), + _bfd_error_handler (_("is this version of the linker - %s - out of date ?"), BFD_VERSION_STRING); bfd_set_error (bfd_error_bad_value); return FALSE; } + +reloc_howto_type * +_bfd_norelocs_bfd_reloc_type_lookup + (bfd *abfd, + bfd_reloc_code_real_type code ATTRIBUTE_UNUSED) +{ + return (reloc_howto_type *) _bfd_ptr_bfd_null_error (abfd); +} + +reloc_howto_type * +_bfd_norelocs_bfd_reloc_name_lookup (bfd *abfd, + const char *reloc_name ATTRIBUTE_UNUSED) +{ + return (reloc_howto_type *) _bfd_ptr_bfd_null_error (abfd); +} + +long +_bfd_nodynamic_canonicalize_dynamic_reloc (bfd *abfd, + arelent **relp ATTRIBUTE_UNUSED, + asymbol **symp ATTRIBUTE_UNUSED) +{ + return _bfd_long_bfd_n1_error (abfd); +} diff -Nru gdb-8.1/bfd/riscix.c gdb-8.2/bfd/riscix.c --- gdb-8.1/bfd/riscix.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/riscix.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,652 +0,0 @@ -/* BFD back-end for RISC iX (Acorn, arm) binaries. - Copyright (C) 1994-2018 Free Software Foundation, Inc. - Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org) - - This file is part of BFD, the Binary File Descriptor library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - - -/* RISC iX overloads the MAGIC field to indicate more than just the usual - [ZNO]MAGIC values. Also included are squeezing information and - shared library usage. */ - -/* The following come from the man page. */ -#define SHLIBLEN 60 - -#define MF_IMPURE 00200 -#define MF_SQUEEZED 01000 -#define MF_USES_SL 02000 -#define MF_IS_SL 04000 - -/* Common combinations. */ - -/* Demand load (impure text). */ -#define IMAGIC (MF_IMPURE | ZMAGIC) - -/* OMAGIC with large header. - May contain a ref to a shared lib required by the object. */ -#define SPOMAGIC (MF_USES_SL | OMAGIC) - -/* A reference to a shared library. - The text portion of the object contains "overflow text" from - the shared library to be linked in with an object. */ -#define SLOMAGIC (MF_IS_SL | OMAGIC) - -/* Sqeezed demand paged. - NOTE: This interpretation of QMAGIC seems to be at variance - with that used on other architectures. */ -#define QMAGIC (MF_SQUEEZED | ZMAGIC) - -/* Program which uses sl. */ -#define SPZMAGIC (MF_USES_SL | ZMAGIC) - -/* Sqeezed ditto. */ -#define SPQMAGIC (MF_USES_SL | QMAGIC) - -/* Shared lib part of prog. */ -#define SLZMAGIC (MF_IS_SL | ZMAGIC) - -/* Sl which uses another. */ -#define SLPZMAGIC (MF_USES_SL | SLZMAGIC) - -#define N_SHARED_LIB(x) ((x)->a_info & MF_USES_SL) - -/* Only a pure OMAGIC file has the minimal header. */ -#define N_TXTOFF(x) \ - ((x)->a_info == OMAGIC \ - ? 32 \ - : (N_MAGIC(x) == ZMAGIC \ - ? TARGET_PAGE_SIZE \ - : 999)) - -#define N_TXTADDR(x) \ - (N_MAGIC(x) != ZMAGIC \ - ? (bfd_vma) 0 /* object file or NMAGIC */ \ - /* Programs with shared libs are loaded at the first page after all the \ - text segments of the shared library programs. Without looking this \ - up we can't know exactly what the address will be. A reasonable guess \ - is that a_entry will be in the first page of the executable. */ \ - : (N_SHARED_LIB(x) \ - ? ((x)->a_entry & ~(bfd_vma) (TARGET_PAGE_SIZE - 1)) \ - : (bfd_vma) TEXT_START_ADDR)) - -#define N_SYMOFF(x) \ - (N_TXTOFF (x) + (x)->a_text + (x)->a_data + (x)->a_trsize + (x)->a_drsize) - -#define N_STROFF(x) (N_SYMOFF (x) + (x)->a_syms) - -#define TEXT_START_ADDR 32768 -#define TARGET_PAGE_SIZE 32768 -#define SEGMENT_SIZE TARGET_PAGE_SIZE -#define DEFAULT_ARCH bfd_arch_arm - -/* Do not "beautify" the CONCAT* macro args. Traditional C will not - remove whitespace added here, and thus will fail to concatenate - the tokens. */ -#define MY(OP) CONCAT2 (arm_aout_riscix_,OP) -#define TARGETNAME "a.out-riscix" -#define N_BADMAG(x) ((((x)->a_info & ~007200) != ZMAGIC) \ - && (((x)->a_info & ~006000) != OMAGIC) \ - && ((x)->a_info != NMAGIC)) -#define N_MAGIC(x) ((x)->a_info & ~07200) - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" - -#define WRITE_HEADERS(abfd, execp) \ - { \ - if (adata (abfd).magic == undecided_magic) \ - NAME (aout, adjust_sizes_and_vmas) (abfd); \ - \ - execp->a_syms = bfd_get_symcount (abfd) * EXTERNAL_NLIST_SIZE; \ - execp->a_entry = bfd_get_start_address (abfd); \ - \ - execp->a_trsize = ((obj_textsec (abfd)->reloc_count) * \ - obj_reloc_entry_size (abfd)); \ - execp->a_drsize = ((obj_datasec (abfd)->reloc_count) * \ - obj_reloc_entry_size (abfd)); \ - NAME (aout, swap_exec_header_out) (abfd, execp, & exec_bytes); \ - \ - if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0 \ - || bfd_bwrite ((void *) & exec_bytes, (bfd_size_type) EXEC_BYTES_SIZE, \ - abfd) != EXEC_BYTES_SIZE) \ - return FALSE; \ - /* Now write out reloc info, followed by syms and strings. */ \ - \ - if (bfd_get_outsymbols (abfd) != NULL \ - && bfd_get_symcount (abfd) != 0) \ - { \ - if (bfd_seek (abfd, (file_ptr) (N_SYMOFF (execp)), SEEK_SET) != 0) \ - return FALSE; \ - \ - if (! NAME (aout, write_syms) (abfd)) \ - return FALSE; \ - \ - if (bfd_seek (abfd, (file_ptr) (N_TRELOFF (execp)), SEEK_SET) != 0) \ - return FALSE; \ - \ - if (! riscix_squirt_out_relocs (abfd, obj_textsec (abfd))) \ - return FALSE; \ - if (bfd_seek (abfd, (file_ptr) (N_DRELOFF (execp)), SEEK_SET) != 0) \ - return FALSE; \ - \ - if (!NAME (aout, squirt_out_relocs) (abfd, obj_datasec (abfd))) \ - return FALSE; \ - } \ - } - -#include "libaout.h" -#include "aout/aout64.h" - -static bfd_reloc_status_type -riscix_fix_pcrel_26_done (bfd *abfd ATTRIBUTE_UNUSED, - arelent *reloc_entry ATTRIBUTE_UNUSED, - asymbol *symbol ATTRIBUTE_UNUSED, - void * data ATTRIBUTE_UNUSED, - asection *input_section ATTRIBUTE_UNUSED, - bfd *output_bfd ATTRIBUTE_UNUSED, - char **error_message ATTRIBUTE_UNUSED) -{ - /* This is dead simple at present. */ - return bfd_reloc_ok; -} - -static bfd_reloc_status_type riscix_fix_pcrel_26 (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); -static const bfd_target *arm_aout_riscix_callback (bfd *); - -static reloc_howto_type riscix_std_reloc_howto[] = -{ - /* Type rs size bsz pcrel bitpos ovrf sf name part_inpl readmask setmask pcdone */ - HOWTO( 0, 0, 0, 8, FALSE, 0, complain_overflow_bitfield,0,"8", TRUE, 0x000000ff,0x000000ff, FALSE), - HOWTO( 1, 0, 1, 16, FALSE, 0, complain_overflow_bitfield,0,"16", TRUE, 0x0000ffff,0x0000ffff, FALSE), - HOWTO( 2, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,0,"32", TRUE, 0xffffffff,0xffffffff, FALSE), - HOWTO( 3, 2, 3, 26, TRUE, 0, complain_overflow_signed, riscix_fix_pcrel_26 , "ARM26", TRUE, 0x00ffffff,0x00ffffff, FALSE), - HOWTO( 4, 0, 0, 8, TRUE, 0, complain_overflow_signed, 0,"DISP8", TRUE, 0x000000ff,0x000000ff, TRUE), - HOWTO( 5, 0, 1, 16, TRUE, 0, complain_overflow_signed, 0,"DISP16", TRUE, 0x0000ffff,0x0000ffff, TRUE), - HOWTO( 6, 0, 2, 32, TRUE, 0, complain_overflow_signed, 0,"DISP32", TRUE, 0xffffffff,0xffffffff, TRUE), - HOWTO( 7, 2, 3, 26, FALSE, 0, complain_overflow_signed, riscix_fix_pcrel_26_done, "ARM26D",TRUE,0x00ffffff,0x00ffffff, FALSE), - EMPTY_HOWTO (-1), - HOWTO( 9, 0, -1, 16, FALSE, 0, complain_overflow_bitfield,0,"NEG16", TRUE, 0x0000ffff,0x0000ffff, FALSE), - HOWTO( 10, 0, -2, 32, FALSE, 0, complain_overflow_bitfield,0,"NEG32", TRUE, 0xffffffff,0xffffffff, FALSE) -}; - -#define RISCIX_TABLE_SIZE \ - (sizeof (riscix_std_reloc_howto) / sizeof (reloc_howto_type)) - -static bfd_reloc_status_type -riscix_fix_pcrel_26 (bfd *abfd, - arelent *reloc_entry, - asymbol *symbol, - void * data, - asection *input_section, - bfd *output_bfd, - char **error_message ATTRIBUTE_UNUSED) -{ - bfd_vma relocation; - bfd_size_type addr = reloc_entry->address; - long target = bfd_get_32 (abfd, (bfd_byte *) data + addr); - bfd_reloc_status_type flag = bfd_reloc_ok; - - /* If this is an undefined symbol, return error. */ - if (bfd_is_und_section (symbol->section) - && (symbol->flags & BSF_WEAK) == 0) - return output_bfd ? bfd_reloc_continue : bfd_reloc_undefined; - - /* If the sections are different, and we are doing a partial relocation, - just ignore it for now. */ - if (symbol->section->name != input_section->name - && output_bfd != NULL) - return bfd_reloc_continue; - - relocation = (target & 0x00ffffff) << 2; - relocation = (relocation ^ 0x02000000) - 0x02000000; /* Sign extend. */ - relocation += symbol->value; - relocation += symbol->section->output_section->vma; - relocation += symbol->section->output_offset; - relocation += reloc_entry->addend; - relocation -= input_section->output_section->vma; - relocation -= input_section->output_offset; - relocation -= addr; - if (relocation & 3) - return bfd_reloc_overflow; - - /* Check for overflow. */ - if (relocation & 0x02000000) - { - if ((relocation & ~ (bfd_vma) 0x03ffffff) != ~ (bfd_vma) 0x03ffffff) - flag = bfd_reloc_overflow; - } - else if (relocation & ~ (bfd_vma) 0x03ffffff) - flag = bfd_reloc_overflow; - - target &= ~0x00ffffff; - target |= (relocation >> 2) & 0x00ffffff; - bfd_put_32 (abfd, (bfd_vma) target, (bfd_byte *) data + addr); - - /* Now the ARM magic... Change the reloc type so that it is marked as done. - Strictly this is only necessary if we are doing a partial relocation. */ - reloc_entry->howto = &riscix_std_reloc_howto[7]; - - return flag; -} - -static reloc_howto_type * -riscix_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code) -{ -#define ASTD(i,j) case i: return &riscix_std_reloc_howto[j] - if (code == BFD_RELOC_CTOR) - switch (bfd_arch_bits_per_address (abfd)) - { - case 32: - code = BFD_RELOC_32; - break; - default: - return NULL; - } - - switch (code) - { - ASTD (BFD_RELOC_16, 1); - ASTD (BFD_RELOC_32, 2); - ASTD (BFD_RELOC_ARM_PCREL_BRANCH, 3); - ASTD (BFD_RELOC_8_PCREL, 4); - ASTD (BFD_RELOC_16_PCREL, 5); - ASTD (BFD_RELOC_32_PCREL, 6); - default: - return NULL; - } -} - -static reloc_howto_type * -riscix_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, - const char *r_name) -{ - unsigned int i; - - for (i = 0; - i < sizeof (riscix_std_reloc_howto) / sizeof (riscix_std_reloc_howto[0]); - i++) - if (riscix_std_reloc_howto[i].name != NULL - && strcasecmp (riscix_std_reloc_howto[i].name, r_name) == 0) - return &riscix_std_reloc_howto[i]; - - return NULL; -} - -#define MY_bfd_link_hash_table_create _bfd_generic_link_hash_table_create -#define MY_bfd_link_add_symbols _bfd_generic_link_add_symbols -#define MY_final_link_callback should_not_be_used -#define MY_bfd_final_link _bfd_generic_final_link - -#define MY_bfd_reloc_type_lookup riscix_reloc_type_lookup -#define MY_bfd_reloc_name_lookup riscix_reloc_name_lookup -#define MY_canonicalize_reloc arm_aout_riscix_canonicalize_reloc -#define MY_object_p arm_aout_riscix_object_p - -static void -riscix_swap_std_reloc_out (bfd *abfd, - arelent *g, - struct reloc_std_external *natptr) -{ - int r_index; - asymbol *sym = *(g->sym_ptr_ptr); - int r_extern; - int r_length; - int r_pcrel; - int r_neg = 0; /* Negative relocs use the BASEREL bit. */ - asection *output_section = sym->section->output_section; - - PUT_WORD(abfd, g->address, natptr->r_address); - - r_length = g->howto->size ; /* Size as a power of two. */ - if (r_length < 0) - { - r_length = -r_length; - r_neg = 1; - } - - r_pcrel = (int) g->howto->pc_relative; /* Relative to PC? */ - - /* For RISC iX, in pc-relative relocs the r_pcrel bit means that the - relocation has been done already (Only for the 26-bit one I think)? */ - if (r_length == 3) - r_pcrel = r_pcrel ? 0 : 1; - - /* Name was clobbered by aout_write_syms to be symbol index. */ - - /* If this relocation is relative to a symbol then set the - r_index to the symbols index, and the r_extern bit. - - Absolute symbols can come in in two ways, either as an offset - from the abs section, or as a symbol which has an abs value. - check for that here. */ - - if (bfd_is_com_section (output_section) - || bfd_is_abs_section (output_section) - || bfd_is_und_section (output_section)) - { - if (bfd_abs_section_ptr->symbol == sym) - { - /* Whoops, looked like an abs symbol, but is really an offset - from the abs section. */ - r_index = 0; - r_extern = 0; - } - else - { - /* Fill in symbol. */ - r_extern = 1; - r_index = (*g->sym_ptr_ptr)->udata.i; - } - } - else - { - /* Just an ordinary section. */ - r_extern = 0; - r_index = output_section->target_index; - } - - /* Now the fun stuff. */ - if (bfd_header_big_endian (abfd)) - { - natptr->r_index[0] = r_index >> 16; - natptr->r_index[1] = r_index >> 8; - natptr->r_index[2] = r_index; - natptr->r_type[0] = - ( (r_extern ? RELOC_STD_BITS_EXTERN_BIG: 0) - | (r_pcrel ? RELOC_STD_BITS_PCREL_BIG: 0) - | (r_neg ? RELOC_STD_BITS_BASEREL_BIG: 0) - | (r_length << RELOC_STD_BITS_LENGTH_SH_BIG)); - } - else - { - natptr->r_index[2] = r_index >> 16; - natptr->r_index[1] = r_index >> 8; - natptr->r_index[0] = r_index; - natptr->r_type[0] = - ( (r_extern ? RELOC_STD_BITS_EXTERN_LITTLE: 0) - | (r_pcrel ? RELOC_STD_BITS_PCREL_LITTLE: 0) - | (r_neg ? RELOC_STD_BITS_BASEREL_LITTLE: 0) - | (r_length << RELOC_STD_BITS_LENGTH_SH_LITTLE)); - } -} - -static bfd_boolean -riscix_squirt_out_relocs (bfd *abfd, asection *section) -{ - arelent **generic; - unsigned char *native, *natptr; - size_t each_size; - unsigned int count = section->reloc_count; - bfd_size_type natsize; - - if (count == 0) - return TRUE; - - each_size = obj_reloc_entry_size (abfd); - natsize = each_size; - natsize *= count; - native = bfd_zalloc (abfd, natsize); - if (!native) - return FALSE; - - generic = section->orelocation; - - for (natptr = native; - count != 0; - --count, natptr += each_size, ++generic) - riscix_swap_std_reloc_out (abfd, *generic, - (struct reloc_std_external *) natptr); - - if (bfd_bwrite ((void *) native, natsize, abfd) != natsize) - { - bfd_release (abfd, native); - return FALSE; - } - - bfd_release (abfd, native); - return TRUE; -} - -/* This is just like the standard aoutx.h version but we need to do our - own mapping of external reloc type values to howto entries. */ - -static long -MY (canonicalize_reloc) (bfd *abfd, - sec_ptr section, - arelent **relptr, - asymbol **symbols) -{ - arelent *tblptr = section->relocation; - unsigned int count, c; - extern reloc_howto_type NAME (aout, std_howto_table)[]; - - /* If we have already read in the relocation table, return the values. */ - if (section->flags & SEC_CONSTRUCTOR) - { - arelent_chain *chain = section->constructor_chain; - - for (count = 0; count < section->reloc_count; count++) - { - *relptr++ = &chain->relent; - chain = chain->next; - } - *relptr = 0; - return section->reloc_count; - } - - if (tblptr && section->reloc_count) - { - for (count = 0; count++ < section->reloc_count;) - *relptr++ = tblptr++; - *relptr = 0; - return section->reloc_count; - } - - if (!NAME (aout, slurp_reloc_table) (abfd, section, symbols)) - return -1; - tblptr = section->relocation; - - /* Fix up howto entries. */ - for (count = 0; count++ < section->reloc_count;) - { - c = tblptr->howto - NAME(aout,std_howto_table); - BFD_ASSERT (c < RISCIX_TABLE_SIZE); - tblptr->howto = &riscix_std_reloc_howto[c]; - - *relptr++ = tblptr++; - } - *relptr = 0; - return section->reloc_count; -} - -/* This is the same as NAME(aout,some_aout_object_p), but has different - expansions of the macro definitions. */ - -static const bfd_target * -riscix_some_aout_object_p (bfd *abfd, - struct internal_exec *execp, - const bfd_target *(*callback_to_real_object_p) (bfd *)) -{ - struct aout_data_struct *rawptr, *oldrawptr; - const bfd_target *result; - bfd_size_type amt = sizeof (struct aout_data_struct); - - rawptr = bfd_zalloc (abfd, amt); - - if (rawptr == NULL) - return NULL; - - oldrawptr = abfd->tdata.aout_data; - abfd->tdata.aout_data = rawptr; - - /* Copy the contents of the old tdata struct. - In particular, we want the subformat, since for hpux it was set in - hp300hpux.c:swap_exec_header_in and will be used in - hp300hpux.c:callback. */ - if (oldrawptr != NULL) - *abfd->tdata.aout_data = *oldrawptr; - - abfd->tdata.aout_data->a.hdr = &rawptr->e; - /* Copy in the internal_exec struct. */ - *(abfd->tdata.aout_data->a.hdr) = *execp; - execp = abfd->tdata.aout_data->a.hdr; - - /* Set the file flags. */ - abfd->flags = BFD_NO_FLAGS; - if (execp->a_drsize || execp->a_trsize) - abfd->flags |= HAS_RELOC; - /* Setting of EXEC_P has been deferred to the bottom of this function. */ - if (execp->a_syms) - abfd->flags |= HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS; - if (N_DYNAMIC (execp)) - abfd->flags |= DYNAMIC; - - /* Squeezed files aren't supported (yet)! */ - if ((execp->a_info & MF_SQUEEZED) != 0) - { - bfd_set_error (bfd_error_wrong_format); - return NULL; - } - else if ((execp->a_info & MF_IS_SL) != 0) - { - /* Nor are shared libraries. */ - bfd_set_error (bfd_error_wrong_format); - return NULL; - } - else if (N_MAGIC (execp) == ZMAGIC) - { - abfd->flags |= D_PAGED | WP_TEXT; - adata (abfd).magic = z_magic; - } - else if (N_MAGIC (execp) == NMAGIC) - { - abfd->flags |= WP_TEXT; - adata (abfd).magic = n_magic; - } - else if (N_MAGIC (execp) == OMAGIC) - adata (abfd).magic = o_magic; - else - /* Should have been checked with N_BADMAG before this routine - was called. */ - abort (); - - bfd_get_start_address (abfd) = execp->a_entry; - - obj_aout_symbols (abfd) = NULL; - bfd_get_symcount (abfd) = execp->a_syms / sizeof (struct external_nlist); - - /* The default relocation entry size is that of traditional V7 Unix. */ - obj_reloc_entry_size (abfd) = RELOC_STD_SIZE; - - /* The default symbol entry size is that of traditional Unix. */ - obj_symbol_entry_size (abfd) = EXTERNAL_NLIST_SIZE; - - obj_aout_external_syms (abfd) = NULL; - obj_aout_external_strings (abfd) = NULL; - obj_aout_sym_hashes (abfd) = NULL; - - if (! NAME (aout, make_sections) (abfd)) - return NULL; - - obj_datasec (abfd)->size = execp->a_data; - obj_bsssec (abfd)->size = execp->a_bss; - - obj_textsec (abfd)->flags = - (execp->a_trsize != 0 - ? (SEC_ALLOC | SEC_LOAD | SEC_CODE | SEC_HAS_CONTENTS | SEC_RELOC) - : (SEC_ALLOC | SEC_LOAD | SEC_CODE | SEC_HAS_CONTENTS)); - obj_datasec (abfd)->flags = - (execp->a_drsize != 0 - ? (SEC_ALLOC | SEC_LOAD | SEC_DATA | SEC_HAS_CONTENTS | SEC_RELOC) - : (SEC_ALLOC | SEC_LOAD | SEC_DATA | SEC_HAS_CONTENTS)); - obj_bsssec (abfd)->flags = SEC_ALLOC; - - result = (*callback_to_real_object_p) (abfd); - -#if defined(MACH) || defined(STAT_FOR_EXEC) - /* The original heuristic doesn't work in some important cases. The - a.out file has no information about the text start address. For - files (like kernels) linked to non-standard addresses (ld -Ttext - nnn) the entry point may not be between the default text start - (obj_textsec(abfd)->vma) and (obj_textsec(abfd)->vma) + text size - This is not just a mach issue. Many kernels are loaded at non - standard addresses. */ - { - struct stat stat_buf; - - if (abfd->iostream != NULL - && (abfd->flags & BFD_IN_MEMORY) == 0 - && (fstat(fileno((FILE *) (abfd->iostream)), &stat_buf) == 0) - && ((stat_buf.st_mode & 0111) != 0)) - abfd->flags |= EXEC_P; - } -#else /* ! MACH */ - /* Now that the segment addresses have been worked out, take a better - guess at whether the file is executable. If the entry point - is within the text segment, assume it is. (This makes files - executable even if their entry point address is 0, as long as - their text starts at zero.) - - At some point we should probably break down and stat the file and - declare it executable if (one of) its 'x' bits are on... */ - if ((execp->a_entry >= obj_textsec(abfd)->vma) && - (execp->a_entry < obj_textsec(abfd)->vma + obj_textsec(abfd)->size)) - abfd->flags |= EXEC_P; -#endif /* MACH */ - if (result == NULL) - { - free (rawptr); - abfd->tdata.aout_data = oldrawptr; - } - return result; -} - -static const bfd_target * -MY (object_p) (bfd *abfd) -{ - struct external_exec exec_bytes; /* Raw exec header from file. */ - struct internal_exec exec; /* Cleaned-up exec header. */ - const bfd_target *target; - - if (bfd_bread ((void *) &exec_bytes, (bfd_size_type) EXEC_BYTES_SIZE, abfd) - != EXEC_BYTES_SIZE) - { - if (bfd_get_error () != bfd_error_system_call) - bfd_set_error (bfd_error_wrong_format); - return NULL; - } - - exec.a_info = H_GET_32 (abfd, exec_bytes.e_info); - - if (N_BADMAG (&exec)) - return NULL; - -#ifdef MACHTYPE_OK - if (!(MACHTYPE_OK (N_MACHTYPE (&exec)))) - return NULL; -#endif - - NAME (aout, swap_exec_header_in) (abfd, & exec_bytes, & exec); - - target = riscix_some_aout_object_p (abfd, & exec, MY (callback)); - - return target; -} - -#include "aout-target.h" diff -Nru gdb-8.1/bfd/rs6000-core.c gdb-8.2/bfd/rs6000-core.c --- gdb-8.1/bfd/rs6000-core.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/rs6000-core.c 2018-09-05 07:44:28.000000000 +0000 @@ -468,7 +468,7 @@ /* Issue warning if the core file was truncated during writing. */ if (c_flag & CORE_TRUNC) - _bfd_error_handler (_("%B: warning core file truncated"), abfd); + _bfd_error_handler (_("%pB: warning core file truncated"), abfd); /* Allocate core file header. */ #ifndef BFD64 diff -Nru gdb-8.1/bfd/sco5-core.c gdb-8.2/bfd/sco5-core.c --- gdb-8.1/bfd/sco5-core.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/sco5-core.c 2018-09-05 07:27:13.000000000 +0000 @@ -372,12 +372,12 @@ sco5_core_file_p /* a core file */ }, { /* bfd_set_format */ - bfd_false, bfd_false, - bfd_false, bfd_false + _bfd_bool_bfd_false_error, bfd_false, + _bfd_bool_bfd_false_error, bfd_false }, { /* bfd_write_contents */ - bfd_false, bfd_false, - bfd_false, bfd_false + _bfd_bool_bfd_false_error, bfd_false, + _bfd_bool_bfd_false_error, bfd_false }, BFD_JUMP_TABLE_GENERIC (_bfd_generic), diff -Nru gdb-8.1/bfd/section.c gdb-8.2/bfd/section.c --- gdb-8.1/bfd/section.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/section.c 2018-09-05 07:27:13.000000000 +0000 @@ -65,10 +65,7 @@ data in place until a <> call is made. Other back ends may read in all the data at once. For example, an S-record file has to be read once to determine the - size of the data. An IEEE-695 file doesn't contain raw data in - sections, but data and relocation expressions intermixed, so - the data area has to be parsed to get out the data and - relocations. + size of the data. INODE Section Output, typedef asection, Section Input, Sections @@ -221,13 +218,10 @@ . {* The section contains thread local data. *} .#define SEC_THREAD_LOCAL 0x400 . -. {* The section has GOT references. This flag is only for the -. linker, and is currently only used by the elf32-hppa back end. -. It will be set if global offset table references were detected -. in this section, which indicate to the linker that the section -. contains PIC code, and must be handled specially when doing a -. static link. *} -.#define SEC_HAS_GOT_REF 0x800 +. {* The section's size is fixed. Generic linker code will not +. recalculate it and it is up to whoever has set this flag to +. get the size right. *} +.#define SEC_FIXED_SIZE 0x800 . . {* The section contains common symbols (symbols may be defined . multiple times, the value of a symbol is the amount of @@ -826,21 +820,21 @@ return TRUE; } -static unsigned int section_id = 0x10; /* id 0 to 3 used by STD_SECTION. */ +unsigned int _bfd_section_id = 0x10; /* id 0 to 3 used by STD_SECTION. */ /* Initializes a new section. NEWSECT->NAME is already set. */ static asection * bfd_section_init (bfd *abfd, asection *newsect) { - newsect->id = section_id; + newsect->id = _bfd_section_id; newsect->index = abfd->section_count; newsect->owner = abfd; if (! BFD_SEND (abfd, _new_section_hook, (abfd, newsect))) return NULL; - section_id++; + _bfd_section_id++; abfd->section_count++; bfd_section_list_append (abfd, newsect); return newsect; @@ -1292,23 +1286,6 @@ /* FUNCTION - bfd_get_next_section_id - -SYNOPSIS - int bfd_get_next_section_id (void); - -DESCRIPTION - Returns the id that the next section created will have. -*/ - -int -bfd_get_next_section_id (void) -{ - return section_id; -} - -/* -FUNCTION bfd_set_section_flags SYNOPSIS @@ -1698,3 +1675,13 @@ { return TRUE; } + +bfd_boolean +_bfd_nowrite_set_section_contents (bfd *abfd, + sec_ptr section ATTRIBUTE_UNUSED, + const void *location ATTRIBUTE_UNUSED, + file_ptr offset ATTRIBUTE_UNUSED, + bfd_size_type count ATTRIBUTE_UNUSED) +{ + return _bfd_bool_bfd_false_error (abfd); +} diff -Nru gdb-8.1/bfd/som.c gdb-8.2/bfd/som.c --- gdb-8.1/bfd/som.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/som.c 2018-09-05 07:27:13.000000000 +0000 @@ -6737,8 +6737,8 @@ #define som_truncate_arname bfd_bsd_truncate_arname #define som_slurp_extended_name_table _bfd_slurp_extended_name_table #define som_construct_extended_name_table _bfd_archive_coff_construct_extended_name_table -#define som_update_armap_timestamp bfd_true -#define som_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) +#define som_update_armap_timestamp _bfd_bool_bfd_true +#define som_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false #define som_get_lineno _bfd_nosymbols_get_lineno #define som_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol #define som_read_minisymbols _bfd_generic_read_minisymbols @@ -6759,6 +6759,7 @@ #define som_bfd_discard_group bfd_generic_discard_group #define som_section_already_linked _bfd_generic_section_already_linked #define som_bfd_define_common_symbol bfd_generic_define_common_symbol +#define som_bfd_link_hide_symbol _bfd_generic_link_hide_symbol #define som_bfd_define_start_stop bfd_generic_define_start_stop #define som_bfd_merge_private_bfd_data _bfd_generic_bfd_merge_private_bfd_data #define som_bfd_copy_private_header_data _bfd_generic_bfd_copy_private_header_data @@ -6797,16 +6798,16 @@ _bfd_dummy_target }, { - bfd_false, + _bfd_bool_bfd_false_error, som_mkobject, _bfd_generic_mkarchive, - bfd_false + _bfd_bool_bfd_false_error }, { - bfd_false, + _bfd_bool_bfd_false_error, som_write_object_contents, _bfd_write_archive_contents, - bfd_false, + _bfd_bool_bfd_false_error, }, #undef som diff -Nru gdb-8.1/bfd/sparclinux.c gdb-8.2/bfd/sparclinux.c --- gdb-8.1/bfd/sparclinux.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/sparclinux.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,730 +0,0 @@ -/* BFD back-end for linux flavored sparc a.out binaries. - Copyright (C) 1992-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define TARGET_PAGE_SIZE 4096 -#define ZMAGIC_DISK_BLOCK_SIZE 1024 -#define SEGMENT_SIZE TARGET_PAGE_SIZE -#define TEXT_START_ADDR 0x0 - -#define MACHTYPE_OK(mtype) ((mtype) == M_SPARC || (mtype) == M_UNKNOWN) - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "aout/aout64.h" -#include "aout/stab_gnu.h" -#include "aout/ar.h" -#include "libaout.h" /* BFD a.out internal data structures */ - -#define DEFAULT_ARCH bfd_arch_sparc -/* Do not "beautify" the CONCAT* macro args. Traditional C will not - remove whitespace added here, and thus will fail to concatenate - the tokens. */ -#define MY(OP) CONCAT2 (sparc_aout_linux_,OP) -#define TARGETNAME "a.out-sparc-linux" - -extern const bfd_target MY(vec); - -/* We always generate QMAGIC files in preference to ZMAGIC files. It - would be possible to make this a linker option, if that ever - becomes important. */ - -static void MY_final_link_callback - (bfd *, file_ptr *, file_ptr *, file_ptr *); - -static bfd_boolean -sparclinux_bfd_final_link (bfd *abfd, struct bfd_link_info *info) -{ - obj_aout_subformat (abfd) = q_magic_format; - return NAME(aout,final_link) (abfd, info, MY_final_link_callback); -} - -#define MY_bfd_final_link sparclinux_bfd_final_link - -/* Set the machine type correctly. */ - -static bfd_boolean -sparclinux_write_object_contents (bfd *abfd) -{ - struct external_exec exec_bytes; - struct internal_exec *execp = exec_hdr (abfd); - - N_SET_MACHTYPE (execp, M_SPARC); - - obj_reloc_entry_size (abfd) = RELOC_STD_SIZE; - - WRITE_HEADERS (abfd, execp); - - return TRUE; -} - -#define MY_write_object_contents sparclinux_write_object_contents -/* Code to link against Linux a.out shared libraries. */ - -/* See if a symbol name is a reference to the global offset table. */ - -#ifndef GOT_REF_PREFIX -#define GOT_REF_PREFIX "__GOT_" -#endif - -#define IS_GOT_SYM(name) (CONST_STRNEQ (name, GOT_REF_PREFIX)) - -/* See if a symbol name is a reference to the procedure linkage table. */ - -#ifndef PLT_REF_PREFIX -#define PLT_REF_PREFIX "__PLT_" -#endif - -#define IS_PLT_SYM(name) (CONST_STRNEQ (name, PLT_REF_PREFIX)) - -/* This string is used to generate specialized error messages. */ - -#ifndef NEEDS_SHRLIB -#define NEEDS_SHRLIB "__NEEDS_SHRLIB_" -#endif - -/* This special symbol is a set vector that contains a list of - pointers to fixup tables. It will be present in any dynamically - linked file. The linker generated fixup table should also be added - to the list, and it should always appear in the second slot (the - first one is a dummy with a magic number that is defined in - crt0.o). */ - -#ifndef SHARABLE_CONFLICTS -#define SHARABLE_CONFLICTS "__SHARABLE_CONFLICTS__" -#endif - -/* We keep a list of fixups. The terminology is a bit strange, but - each fixup contains two 32 bit numbers. A regular fixup contains - an address and a pointer, and at runtime we should store the - address at the location pointed to by the pointer. A builtin fixup - contains two pointers, and we should read the address using one - pointer and store it at the location pointed to by the other - pointer. Builtin fixups come into play when we have duplicate - __GOT__ symbols for the same variable. The builtin fixup will copy - the GOT pointer from one over into the other. */ - -struct fixup -{ - struct fixup *next; - struct linux_link_hash_entry *h; - bfd_vma value; - - /* Nonzero if this is a jump instruction that needs to be fixed, - zero if this is just a pointer */ - char jump; - - char builtin; -}; - -/* We don't need a special hash table entry structure, but we do need - to keep some information between linker passes, so we use a special - hash table. */ - -struct linux_link_hash_entry -{ - struct aout_link_hash_entry root; -}; - -struct linux_link_hash_table -{ - struct aout_link_hash_table root; - - /* First dynamic object found in link. */ - bfd *dynobj; - - /* Number of fixups. */ - size_t fixup_count; - - /* Number of builtin fixups. */ - size_t local_builtins; - - /* List of fixups. */ - struct fixup *fixup_list; -}; - - -/* Routine to create an entry in an Linux link hash table. */ - -static struct bfd_hash_entry * -linux_link_hash_newfunc (struct bfd_hash_entry *entry, - struct bfd_hash_table *table, - const char *string) -{ - struct linux_link_hash_entry *ret = (struct linux_link_hash_entry *) entry; - - /* Allocate the structure if it has not already been allocated by a - subclass. */ - if (ret == (struct linux_link_hash_entry *) NULL) - ret = ((struct linux_link_hash_entry *) - bfd_hash_allocate (table, sizeof (struct linux_link_hash_entry))); - if (ret == NULL) - return (struct bfd_hash_entry *) ret; - - /* Call the allocation method of the superclass. */ - ret = ((struct linux_link_hash_entry *) - NAME(aout,link_hash_newfunc) ((struct bfd_hash_entry *) ret, - table, string)); - if (ret != NULL) - { - /* Set local fields; there aren't any. */ - } - - return (struct bfd_hash_entry *) ret; -} - -/* Create a Linux link hash table. */ - -static struct bfd_link_hash_table * -linux_link_hash_table_create (bfd *abfd) -{ - struct linux_link_hash_table *ret; - bfd_size_type amt = sizeof (struct linux_link_hash_table); - - ret = (struct linux_link_hash_table *) bfd_zmalloc (amt); - if (ret == (struct linux_link_hash_table *) NULL) - return (struct bfd_link_hash_table *) NULL; - if (!NAME(aout,link_hash_table_init) (&ret->root, abfd, - linux_link_hash_newfunc, - sizeof (struct linux_link_hash_entry))) - { - free (ret); - return (struct bfd_link_hash_table *) NULL; - } - - return &ret->root.root; -} - -/* Look up an entry in a Linux link hash table. */ - -#define linux_link_hash_lookup(table, string, create, copy, follow) \ - ((struct linux_link_hash_entry *) \ - aout_link_hash_lookup (&(table)->root, (string), (create), (copy),\ - (follow))) - -/* Traverse a Linux link hash table. */ - -#define linux_link_hash_traverse(table, func, info) \ - (aout_link_hash_traverse \ - (&(table)->root, \ - (bfd_boolean (*) (struct aout_link_hash_entry *, void *)) (func), \ - (info))) - -/* Get the Linux link hash table from the info structure. This is - just a cast. */ - -#define linux_hash_table(p) ((struct linux_link_hash_table *) ((p)->hash)) - -/* Store the information for a new fixup. */ - -static struct fixup * -new_fixup (struct bfd_link_info *info, - struct linux_link_hash_entry *h, - bfd_vma value, - int builtin) -{ - struct fixup *f; - - f = (struct fixup *) bfd_hash_allocate (&info->hash->table, - sizeof (struct fixup)); - if (f == NULL) - return f; - f->next = linux_hash_table (info)->fixup_list; - linux_hash_table (info)->fixup_list = f; - f->h = h; - f->value = value; - f->builtin = builtin; - f->jump = 0; - ++linux_hash_table (info)->fixup_count; - return f; -} - -/* We come here once we realize that we are going to link to a shared - library. We need to create a special section that contains the - fixup table, and we ultimately need to add a pointer to this into - the set vector for SHARABLE_CONFLICTS. At this point we do not - know the size of the section, but that's OK - we just need to - create it for now. */ - -static bfd_boolean -linux_link_create_dynamic_sections (bfd *abfd, - struct bfd_link_info *info ATTRIBUTE_UNUSED) -{ - flagword flags; - asection *s; - - /* Note that we set the SEC_IN_MEMORY flag. */ - flags = SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY; - - /* We choose to use the name ".linux-dynamic" for the fixup table. - Why not? */ - s = bfd_make_section_with_flags (abfd, ".linux-dynamic", flags); - if (s == NULL - || ! bfd_set_section_alignment (abfd, s, 2)) - return FALSE; - s->size = 0; - s->contents = 0; - - return TRUE; -} - -/* Function to add a single symbol to the linker hash table. This is - a wrapper around _bfd_generic_link_add_one_symbol which handles the - tweaking needed for dynamic linking support. */ - -static bfd_boolean -linux_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) -{ - struct linux_link_hash_entry *h; - bfd_boolean insert; - - /* Look up and see if we already have this symbol in the hash table. - If we do, and the defining entry is from a shared library, we - need to create the dynamic sections. - - FIXME: What if abfd->xvec != info->output_bfd->xvec? We may - want to be able to link Linux a.out and ELF objects together, - but serious confusion is possible. */ - - insert = FALSE; - - if (! bfd_link_relocatable (info) - && linux_hash_table (info)->dynobj == NULL - && strcmp (name, SHARABLE_CONFLICTS) == 0 - && (flags & BSF_CONSTRUCTOR) != 0 - && abfd->xvec == info->output_bfd->xvec) - { - if (! linux_link_create_dynamic_sections (abfd, info)) - return FALSE; - linux_hash_table (info)->dynobj = abfd; - insert = TRUE; - } - - if (bfd_is_abs_section (section) - && abfd->xvec == info->output_bfd->xvec) - { - h = linux_link_hash_lookup (linux_hash_table (info), name, FALSE, - FALSE, FALSE); - if (h != NULL - && (h->root.root.type == bfd_link_hash_defined - || h->root.root.type == bfd_link_hash_defweak)) - { - struct fixup *f; - - if (hashp != NULL) - *hashp = (struct bfd_link_hash_entry *) h; - - f = new_fixup (info, h, value, ! IS_PLT_SYM (name)); - if (f == NULL) - return FALSE; - f->jump = IS_PLT_SYM (name); - - return TRUE; - } - } - - /* Do the usual procedure for adding a symbol. */ - if (! _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, - value, string, copy, collect, - hashp)) - return FALSE; - - /* Insert a pointer to our table in the set vector. The dynamic - linker requires this information. */ - if (insert) - { - asection *s; - - /* Here we do our special thing to add the pointer to the - dynamic section in the SHARABLE_CONFLICTS set vector. */ - s = bfd_get_section_by_name (linux_hash_table (info)->dynobj, - ".linux-dynamic"); - BFD_ASSERT (s != NULL); - - if (! (_bfd_generic_link_add_one_symbol - (info, linux_hash_table (info)->dynobj, SHARABLE_CONFLICTS, - BSF_GLOBAL | BSF_CONSTRUCTOR, s, (bfd_vma) 0, NULL, - FALSE, FALSE, NULL))) - return FALSE; - } - - return TRUE; -} - -/* We will crawl the hash table and come here for every global symbol. - We will examine each entry and see if there are indications that we - need to add a fixup. There are two possible cases - one is where - you have duplicate definitions of PLT or GOT symbols - these will - have already been caught and added as "builtin" fixups. If we find - that the corresponding non PLT/GOT symbol is also present, we - convert it to a regular fixup instead. - - This function is called via linux_link_hash_traverse. */ - -static bfd_boolean -linux_tally_symbols (struct linux_link_hash_entry *h, void * data) -{ - struct bfd_link_info *info = (struct bfd_link_info *) data; - struct fixup *f, *f1; - int is_plt; - struct linux_link_hash_entry *h1, *h2; - bfd_boolean exists; - - if (h->root.root.type == bfd_link_hash_undefined - && CONST_STRNEQ (h->root.root.root.string, NEEDS_SHRLIB)) - { - const char *name; - char *p; - char *alloc = NULL; - - name = h->root.root.root.string + sizeof NEEDS_SHRLIB - 1; - p = strrchr (name, '_'); - if (p != NULL) - alloc = (char *) bfd_malloc ((bfd_size_type) strlen (name) + 1); - - if (p == NULL || alloc == NULL) - _bfd_error_handler (_("Output file requires shared library `%s'\n"), - name); - else - { - strcpy (alloc, name); - p = strrchr (alloc, '_'); - *p++ = '\0'; - _bfd_error_handler - /* xgettext:c-format */ - (_("Output file requires shared library `%s.so.%s'\n"), - alloc, p); - free (alloc); - } - - abort (); - } - - /* If this symbol is not a PLT/GOT, we do not even need to look at - it. */ - is_plt = IS_PLT_SYM (h->root.root.root.string); - - if (is_plt || IS_GOT_SYM (h->root.root.root.string)) - { - /* Look up this symbol twice. Once just as a regular lookup, - and then again following all of the indirect links until we - reach a real symbol. */ - h1 = linux_link_hash_lookup (linux_hash_table (info), - (h->root.root.root.string - + sizeof PLT_REF_PREFIX - 1), - FALSE, FALSE, TRUE); - /* h2 does not follow indirect symbols. */ - h2 = linux_link_hash_lookup (linux_hash_table (info), - (h->root.root.root.string - + sizeof PLT_REF_PREFIX - 1), - FALSE, FALSE, FALSE); - - /* The real symbol must exist but if it is also an ABS symbol, - there is no need to have a fixup. This is because they both - came from the same library. If on the other hand, we had to - use an indirect symbol to get to the real symbol, we add the - fixup anyway, since there are cases where these symbols come - from different shared libraries */ - if (h1 != NULL - && (((h1->root.root.type == bfd_link_hash_defined - || h1->root.root.type == bfd_link_hash_defweak) - && ! bfd_is_abs_section (h1->root.root.u.def.section)) - || h2->root.root.type == bfd_link_hash_indirect)) - { - /* See if there is a "builtin" fixup already present - involving this symbol. If so, convert it to a regular - fixup. In the end, this relaxes some of the requirements - about the order of performing fixups. */ - exists = FALSE; - for (f1 = linux_hash_table (info)->fixup_list; - f1 != NULL; - f1 = f1->next) - { - if ((f1->h != h && f1->h != h1) - || (! f1->builtin && ! f1->jump)) - continue; - if (f1->h == h1) - exists = TRUE; - if (! exists - && bfd_is_abs_section (h->root.root.u.def.section)) - { - f = new_fixup (info, h1, f1->h->root.root.u.def.value, 0); - f->jump = is_plt; - } - f1->h = h1; - f1->jump = is_plt; - f1->builtin = 0; - exists = TRUE; - } - if (! exists - && bfd_is_abs_section (h->root.root.u.def.section)) - { - f = new_fixup (info, h1, h->root.root.u.def.value, 0); - if (f == NULL) - { - /* FIXME: No way to return error. */ - abort (); - } - f->jump = is_plt; - } - } - - /* Quick and dirty way of stripping these symbols from the - symtab. */ - if (bfd_is_abs_section (h->root.root.u.def.section)) - h->root.written = TRUE; - } - - return TRUE; -} - -/* This is called to set the size of the .linux-dynamic section is. - It is called by the Linux linker emulation before_allocation - routine. We have finished reading all of the input files, and now - we just scan the hash tables to find out how many additional fixups - are required. */ - -bfd_boolean -bfd_sparclinux_size_dynamic_sections (bfd *output_bfd, - struct bfd_link_info *info) -{ - struct fixup *f; - asection *s; - - if (output_bfd->xvec != &MY(vec)) - return TRUE; - - /* First find the fixups... */ - linux_link_hash_traverse (linux_hash_table (info), - linux_tally_symbols, - info); - - /* If there are builtin fixups, leave room for a marker. This is - used by the dynamic linker so that it knows that all that follow - are builtin fixups instead of regular fixups. */ - for (f = linux_hash_table (info)->fixup_list; f != NULL; f = f->next) - { - if (f->builtin) - { - ++linux_hash_table (info)->fixup_count; - ++linux_hash_table (info)->local_builtins; - break; - } - } - - if (linux_hash_table (info)->dynobj == NULL) - { - if (linux_hash_table (info)->fixup_count > 0) - abort (); - return TRUE; - } - - /* Allocate memory for our fixup table. We will fill it in later. */ - s = bfd_get_section_by_name (linux_hash_table (info)->dynobj, - ".linux-dynamic"); - if (s != NULL) - { - s->size = linux_hash_table (info)->fixup_count + 1; - s->size *= 8; - s->contents = (bfd_byte *) bfd_zalloc (output_bfd, s->size); - if (s->contents == NULL) - return FALSE; - } - - return TRUE; -} - -/* We come here once we are ready to actually write the fixup table to - the output file. Scan the fixup tables and so forth and generate - the stuff we need. */ - -static bfd_boolean -linux_finish_dynamic_link (bfd *output_bfd, struct bfd_link_info *info) -{ - asection *s, *os, *is; - bfd_byte *fixup_table; - struct linux_link_hash_entry *h; - struct fixup *f; - unsigned int new_addr; - int section_offset; - unsigned int fixups_written; - - if (linux_hash_table (info)->dynobj == NULL) - return TRUE; - - s = bfd_get_section_by_name (linux_hash_table (info)->dynobj, - ".linux-dynamic"); - BFD_ASSERT (s != NULL); - os = s->output_section; - fixups_written = 0; - -#ifdef LINUX_LINK_DEBUG - printf ("Fixup table file offset: %x VMA: %x\n", - os->filepos + s->output_offset, - os->vma + s->output_offset); -#endif - - fixup_table = s->contents; - bfd_put_32 (output_bfd, - (bfd_vma) linux_hash_table (info)->fixup_count, fixup_table); - fixup_table += 4; - - /* Fill in fixup table. */ - for (f = linux_hash_table (info)->fixup_list; f != NULL; f = f->next) - { - if (f->builtin) - continue; - - if (f->h->root.root.type != bfd_link_hash_defined - && f->h->root.root.type != bfd_link_hash_defweak) - { - _bfd_error_handler - (_("Symbol %s not defined for fixups\n"), - f->h->root.root.root.string); - continue; - } - - is = f->h->root.root.u.def.section; - section_offset = is->output_section->vma + is->output_offset; - new_addr = f->h->root.root.u.def.value + section_offset; - -#ifdef LINUX_LINK_DEBUG - printf ("Fixup(%d) %s: %x %x\n",f->jump, f->h->root.root.string, - new_addr, f->value); -#endif - - if (f->jump) - { - /* Relative address */ - new_addr = new_addr - (f->value + 5); - bfd_put_32 (output_bfd, (bfd_vma) new_addr, fixup_table); - fixup_table += 4; - bfd_put_32 (output_bfd, f->value + 1, fixup_table); - fixup_table += 4; - } - else - { - bfd_put_32 (output_bfd, (bfd_vma) new_addr, fixup_table); - fixup_table += 4; - bfd_put_32 (output_bfd, f->value, fixup_table); - fixup_table += 4; - } - ++fixups_written; - } - - if (linux_hash_table (info)->local_builtins != 0) - { - /* Special marker so we know to switch to the other type of fixup */ - bfd_put_32 (output_bfd, (bfd_vma) 0, fixup_table); - fixup_table += 4; - bfd_put_32 (output_bfd, (bfd_vma) 0, fixup_table); - fixup_table += 4; - ++fixups_written; - for (f = linux_hash_table (info)->fixup_list; f != NULL; f = f->next) - { - if (! f->builtin) - continue; - - if (f->h->root.root.type != bfd_link_hash_defined - && f->h->root.root.type != bfd_link_hash_defweak) - { - _bfd_error_handler - (_("Symbol %s not defined for fixups\n"), - f->h->root.root.root.string); - continue; - } - - is = f->h->root.root.u.def.section; - section_offset = is->output_section->vma + is->output_offset; - new_addr = f->h->root.root.u.def.value + section_offset; - -#ifdef LINUX_LINK_DEBUG - printf ("Fixup(B) %s: %x %x\n", f->h->root.root.string, - new_addr, f->value); -#endif - - bfd_put_32 (output_bfd, (bfd_vma) new_addr, fixup_table); - fixup_table += 4; - bfd_put_32 (output_bfd, f->value, fixup_table); - fixup_table += 4; - ++fixups_written; - } - } - - if (linux_hash_table (info)->fixup_count != fixups_written) - { - _bfd_error_handler (_("Warning: fixup count mismatch\n")); - while (linux_hash_table (info)->fixup_count > fixups_written) - { - bfd_put_32 (output_bfd, (bfd_vma) 0, fixup_table); - fixup_table += 4; - bfd_put_32 (output_bfd, (bfd_vma) 0, fixup_table); - fixup_table += 4; - ++fixups_written; - } - } - - h = linux_link_hash_lookup (linux_hash_table (info), - "__BUILTIN_FIXUPS__", - FALSE, FALSE, FALSE); - - if (h != NULL - && (h->root.root.type == bfd_link_hash_defined - || h->root.root.type == bfd_link_hash_defweak)) - { - is = h->root.root.u.def.section; - section_offset = is->output_section->vma + is->output_offset; - new_addr = h->root.root.u.def.value + section_offset; - -#ifdef LINUX_LINK_DEBUG - printf ("Builtin fixup table at %x\n", new_addr); -#endif - - bfd_put_32 (output_bfd, (bfd_vma) new_addr, fixup_table); - } - else - bfd_put_32 (output_bfd, (bfd_vma) 0, fixup_table); - - if (bfd_seek (output_bfd, (file_ptr) (os->filepos + s->output_offset), - SEEK_SET) != 0) - return FALSE; - - if (bfd_bwrite (s->contents, s->size, output_bfd) != s->size) - return FALSE; - - return TRUE; -} - -#define MY_bfd_link_hash_table_create linux_link_hash_table_create -#define MY_add_one_symbol linux_add_one_symbol -#define MY_finish_dynamic_link linux_finish_dynamic_link - -#define MY_zmagic_contiguous 1 - -#include "aout-target.h" diff -Nru gdb-8.1/bfd/sparclynx.c gdb-8.2/bfd/sparclynx.c --- gdb-8.1/bfd/sparclynx.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/sparclynx.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,246 +0,0 @@ -/* BFD support for Sparc binaries under LynxOS. - Copyright (C) 1990-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - - -/* Do not "beautify" the CONCAT* macro args. Traditional C will not - remove whitespace added here, and thus will fail to concatenate - the tokens. */ -#define MY(OP) CONCAT2 (sparc_aout_lynx_,OP) -#define TARGETNAME "a.out-sparc-lynx" - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" - -#include "aout/sun4.h" -#include "libaout.h" /* BFD a.out internal data structures */ - -#include "aout/aout64.h" -#include "aout/stab_gnu.h" -#include "aout/ar.h" - -void NAME (lynx,set_arch_mach) (bfd *, unsigned long); -static void choose_reloc_size (bfd *); -static bfd_boolean NAME (aout,sparclynx_write_object_contents) (bfd *); - -/* This is needed to reject a NewsOS file, e.g. in - gdb/testsuite/gdb.t10/crossload.exp. - I needed to add M_UNKNOWN to recognize a 68000 object, so this will - probably no longer reject a NewsOS object. . */ -#define MACHTYPE_OK(mtype) ( (mtype) == M_UNKNOWN \ - || (mtype) == M_68010 \ - || (mtype) == M_68020 \ - || (mtype) == M_SPARC) - -/* The file @code{aoutf1.h} contains the code for BFD's - a.out back end. Control over the generated back end is given by these - two preprocessor names: - @table @code - @item ARCH_SIZE - This value should be either 32 or 64, depending upon the size of an - int in the target format. It changes the sizes of the structs which - perform the memory/disk mapping of structures. - - The 64 bit backend may only be used if the host compiler supports 64 - ints (eg long long with gcc), by defining the name @code{BFD_HOST_64_BIT} in @code{bfd.h}. - With this name defined, @emph{all} bfd operations are performed with 64bit - arithmetic, not just those to a 64bit target. - - @item TARGETNAME - The name put into the target vector. - @item - @end table */ - -void -NAME(lynx,set_arch_mach) (bfd *abfd, unsigned long machtype) -{ - /* Determine the architecture and machine type of the object file. */ - enum bfd_architecture arch; - unsigned long machine; - - switch (machtype) - { - case M_UNKNOWN: - /* Some Sun3s make magic numbers without cpu types in them, so - we'll default to the 68000. */ - arch = bfd_arch_m68k; - machine = bfd_mach_m68000; - break; - - case M_68010: - case M_HP200: - arch = bfd_arch_m68k; - machine = bfd_mach_m68010; - break; - - case M_68020: - case M_HP300: - arch = bfd_arch_m68k; - machine = bfd_mach_m68020; - break; - - case M_SPARC: - arch = bfd_arch_sparc; - machine = 0; - break; - - case M_386: - case M_386_DYNIX: - arch = bfd_arch_i386; - machine = 0; - break; - - case M_HPUX: - arch = bfd_arch_m68k; - machine = 0; - break; - - default: - arch = bfd_arch_obscure; - machine = 0; - break; - } - bfd_set_arch_mach (abfd, arch, machine); -} - -#define SET_ARCH_MACH(ABFD, EXECP) \ - NAME(lynx,set_arch_mach) (ABFD, N_MACHTYPE (EXECP)); \ - choose_reloc_size(ABFD); - -/* Determine the size of a relocation entry, based on the architecture. */ - -static void -choose_reloc_size (bfd *abfd) -{ - switch (bfd_get_arch (abfd)) - { - case bfd_arch_sparc: - obj_reloc_entry_size (abfd) = RELOC_EXT_SIZE; - break; - default: - obj_reloc_entry_size (abfd) = RELOC_STD_SIZE; - break; - } -} - -/* Write an object file in LynxOS format. - Section contents have already been written. We write the - file header, symbols, and relocation. */ - -static bfd_boolean -NAME(aout,sparclynx_write_object_contents) (bfd *abfd) -{ - struct external_exec exec_bytes; - struct internal_exec *execp = exec_hdr (abfd); - - /* Magic number, maestro, please! */ - switch (bfd_get_arch (abfd)) - { - case bfd_arch_m68k: - switch (bfd_get_mach (abfd)) - { - case bfd_mach_m68010: - N_SET_MACHTYPE (execp, M_68010); - break; - default: - case bfd_mach_m68020: - N_SET_MACHTYPE (execp, M_68020); - break; - } - break; - case bfd_arch_sparc: - N_SET_MACHTYPE (execp, M_SPARC); - break; - case bfd_arch_i386: - N_SET_MACHTYPE (execp, M_386); - break; - default: - N_SET_MACHTYPE (execp, M_UNKNOWN); - } - - choose_reloc_size (abfd); - - N_SET_FLAGS (execp, aout_backend_info (abfd)->exec_hdr_flags); - - WRITE_HEADERS (abfd, execp); - - return TRUE; -} - -#define MY_set_sizes sparclynx_set_sizes -static bfd_boolean sparclynx_set_sizes (bfd *); - -static bfd_boolean -sparclynx_set_sizes (bfd *abfd) -{ - switch (bfd_get_arch (abfd)) - { - default: - return FALSE; - case bfd_arch_sparc: - adata (abfd).page_size = 0x2000; - adata (abfd).segment_size = 0x2000; - adata (abfd).exec_bytes_size = EXEC_BYTES_SIZE; - return TRUE; - case bfd_arch_m68k: - adata (abfd).page_size = 0x2000; - adata (abfd).segment_size = 0x20000; - adata (abfd).exec_bytes_size = EXEC_BYTES_SIZE; - return TRUE; - } -} - -static const struct aout_backend_data sparclynx_aout_backend = - { - 0, 1, 0, 1, 0, sparclynx_set_sizes, 0, - 0, /* add_dynamic_symbols */ - 0, /* add_one_symbol */ - 0, /* link_dynamic_object */ - 0, /* write_dynamic_symbol */ - 0, /* check_dynamic_reloc */ - 0 /* finish_dynamic_link */ - }; - - -#define MY_bfd_debug_info_start bfd_void -#define MY_bfd_debug_info_end bfd_void -#define MY_bfd_debug_info_accumulate \ - (void (*) (bfd *, struct bfd_section *)) bfd_void - -#define MY_write_object_contents NAME(aout,sparclynx_write_object_contents) -#define MY_backend_data &sparclynx_aout_backend - -#define TARGET_IS_BIG_ENDIAN_P - -#ifdef LYNX_CORE - -char * lynx_core_file_failing_command (); -int lynx_core_file_failing_signal (); -bfd_boolean lynx_core_file_matches_executable_p (); -const bfd_target * lynx_core_file_p (); - -#define MY_core_file_failing_command lynx_core_file_failing_command -#define MY_core_file_failing_signal lynx_core_file_failing_signal -#define MY_core_file_matches_executable_p lynx_core_file_matches_executable_p -#define MY_core_file_p lynx_core_file_p - -#endif /* LYNX_CORE */ - -#include "aout-target.h" diff -Nru gdb-8.1/bfd/sparcnetbsd.c gdb-8.2/bfd/sparcnetbsd.c --- gdb-8.1/bfd/sparcnetbsd.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/sparcnetbsd.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,39 +0,0 @@ -/* BFD back-end for NetBSD/sparc a.out-ish binaries. - Copyright (C) 1990-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - - -#define TARGET_IS_BIG_ENDIAN_P - -/* SPARC chips use either 4K or 8K pages, but object files always - assume 8K page alignment so they will work on either one. */ -#define TARGET_PAGE_SIZE 0x2000 - -#define DEFAULT_ARCH bfd_arch_sparc -#define DEFAULT_MID M_SPARC_NETBSD - -/* Do not "beautify" the CONCAT* macro args. Traditional C will not - remove whitespace added here, and thus will fail to concatenate - the tokens. */ -#define MY(OP) CONCAT2 (sparc_aout_nbsd_,OP) - -/* This needs to start with a.out so GDB knows it is an a.out variant. */ -#define TARGETNAME "a.out-sparc-netbsd" - -#include "netbsd.h" diff -Nru gdb-8.1/bfd/srec.c gdb-8.2/bfd/srec.c --- gdb-8.1/bfd/srec.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/srec.c 2018-09-05 07:27:13.000000000 +0000 @@ -257,7 +257,7 @@ } _bfd_error_handler /* xgettext:c-format */ - (_("%B:%d: Unexpected character `%s' in S-record file\n"), + (_("%pB:%d: unexpected character `%s' in S-record file"), abfd, lineno, buf); bfd_set_error (bfd_error_bad_value); } @@ -485,7 +485,7 @@ if (bytes < min_bytes) { /* xgettext:c-format */ - _bfd_error_handler (_("%B:%d: byte count %d too small\n"), + _bfd_error_handler (_("%pB:%d: byte count %d too small"), abfd, lineno, bytes); bfd_set_error (bfd_error_bad_value); goto error_return; @@ -578,7 +578,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B:%d: Bad checksum in S-record file\n"), + (_("%pB:%d: bad checksum in S-record file"), abfd, lineno); bfd_set_error (bfd_error_bad_value); goto error_return; @@ -612,7 +612,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B:%d: Bad checksum in S-record file\n"), + (_("%pB:%d: bad checksum in S-record file"), abfd, lineno); bfd_set_error (bfd_error_bad_value); goto error_return; @@ -1257,7 +1257,7 @@ #define srec_close_and_cleanup _bfd_generic_close_and_cleanup #define srec_bfd_free_cached_info _bfd_generic_bfd_free_cached_info #define srec_new_section_hook _bfd_generic_new_section_hook -#define srec_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) +#define srec_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false #define srec_bfd_is_local_label_name bfd_generic_is_local_label_name #define srec_get_lineno _bfd_nosymbols_get_lineno #define srec_find_nearest_line _bfd_nosymbols_find_nearest_line @@ -1278,6 +1278,7 @@ #define srec_bfd_discard_group bfd_generic_discard_group #define srec_section_already_linked _bfd_generic_section_already_linked #define srec_bfd_define_common_symbol bfd_generic_define_common_symbol +#define srec_bfd_link_hide_symbol _bfd_generic_link_hide_symbol #define srec_bfd_define_start_stop bfd_generic_define_start_stop #define srec_bfd_link_hash_table_create _bfd_generic_link_hash_table_create #define srec_bfd_link_add_symbols _bfd_generic_link_add_symbols @@ -1316,16 +1317,16 @@ _bfd_dummy_target, }, { - bfd_false, + _bfd_bool_bfd_false_error, srec_mkobject, _bfd_generic_mkarchive, - bfd_false, + _bfd_bool_bfd_false_error, }, { /* bfd_write_contents. */ - bfd_false, + _bfd_bool_bfd_false_error, srec_write_object_contents, _bfd_write_archive_contents, - bfd_false, + _bfd_bool_bfd_false_error, }, BFD_JUMP_TABLE_GENERIC (srec), @@ -1372,16 +1373,16 @@ _bfd_dummy_target, }, { - bfd_false, + _bfd_bool_bfd_false_error, srec_mkobject, _bfd_generic_mkarchive, - bfd_false, + _bfd_bool_bfd_false_error, }, { /* bfd_write_contents. */ - bfd_false, + _bfd_bool_bfd_false_error, symbolsrec_write_object_contents, _bfd_write_archive_contents, - bfd_false, + _bfd_bool_bfd_false_error, }, BFD_JUMP_TABLE_GENERIC (srec), diff -Nru gdb-8.1/bfd/stabs.c gdb-8.2/bfd/stabs.c --- gdb-8.1/bfd/stabs.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/stabs.c 2018-09-05 07:27:13.000000000 +0000 @@ -276,7 +276,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B(%A+%#lx): Stabs entry has invalid string index."), + (_("%pB(%pA+%#lx): stabs entry has invalid string index"), abfd, stabsec, (long) (sym - stabbuf)); bfd_set_error (bfd_error_bad_value); goto error_return; diff -Nru gdb-8.1/bfd/sunos.c gdb-8.2/bfd/sunos.c --- gdb-8.1/bfd/sunos.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/sunos.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,2845 +0,0 @@ -/* BFD backend for SunOS binaries. - Copyright (C) 1990-2018 Free Software Foundation, Inc. - Written by Cygnus Support. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define TARGETNAME "a.out-sunos-big" - -/* Do not "beautify" the CONCAT* macro args. Traditional C will not - remove whitespace added here, and thus will fail to concatenate - the tokens. */ -#define MY(OP) CONCAT2 (sparc_aout_sunos_be_,OP) - -#include "sysdep.h" -#include "bfd.h" -#include "bfdlink.h" -#include "libaout.h" - -/* ??? Where should this go? */ -#define MACHTYPE_OK(mtype) \ - (((mtype) == M_SPARC && bfd_lookup_arch (bfd_arch_sparc, 0) != NULL) \ - || ((mtype) == M_SPARCLET \ - && bfd_lookup_arch (bfd_arch_sparc, bfd_mach_sparc_sparclet) != NULL) \ - || ((mtype) == M_SPARCLITE_LE \ - && bfd_lookup_arch (bfd_arch_sparc, bfd_mach_sparc_sparclet) != NULL) \ - || (((mtype) == M_UNKNOWN || (mtype) == M_68010 || (mtype) == M_68020) \ - && bfd_lookup_arch (bfd_arch_m68k, 0) != NULL)) - -#define MY_get_dynamic_symtab_upper_bound sunos_get_dynamic_symtab_upper_bound -#define MY_canonicalize_dynamic_symtab sunos_canonicalize_dynamic_symtab -#define MY_get_synthetic_symtab _bfd_nodynamic_get_synthetic_symtab -#define MY_get_dynamic_reloc_upper_bound sunos_get_dynamic_reloc_upper_bound -#define MY_canonicalize_dynamic_reloc sunos_canonicalize_dynamic_reloc -#define MY_bfd_link_hash_table_create sunos_link_hash_table_create -#define MY_add_dynamic_symbols sunos_add_dynamic_symbols -#define MY_add_one_symbol sunos_add_one_symbol -#define MY_link_dynamic_object sunos_link_dynamic_object -#define MY_write_dynamic_symbol sunos_write_dynamic_symbol -#define MY_check_dynamic_reloc sunos_check_dynamic_reloc -#define MY_finish_dynamic_link sunos_finish_dynamic_link - -static bfd_boolean sunos_add_dynamic_symbols (bfd *, struct bfd_link_info *, struct external_nlist **, bfd_size_type *, char **); -static bfd_boolean sunos_add_one_symbol (struct bfd_link_info *, bfd *, const char *, flagword, asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean, struct bfd_link_hash_entry **); -static bfd_boolean sunos_link_dynamic_object (struct bfd_link_info *, bfd *); -static bfd_boolean sunos_write_dynamic_symbol (bfd *, struct bfd_link_info *, struct aout_link_hash_entry *); -static bfd_boolean sunos_check_dynamic_reloc (struct bfd_link_info *, bfd *, asection *, struct aout_link_hash_entry *, void *, bfd_byte *, bfd_boolean *, bfd_vma *); -static bfd_boolean sunos_finish_dynamic_link (bfd *, struct bfd_link_info *); -static struct bfd_link_hash_table *sunos_link_hash_table_create (bfd *); -static long sunos_get_dynamic_symtab_upper_bound (bfd *); -static long sunos_canonicalize_dynamic_symtab (bfd *, asymbol **); -static long sunos_get_dynamic_reloc_upper_bound (bfd *); -static long sunos_canonicalize_dynamic_reloc (bfd *, arelent **, asymbol **); - -/* Include the usual a.out support. */ -#include "aoutf1.h" - -/* The SunOS 4.1.4 /usr/include/locale.h defines valid as a macro. */ -#undef valid - -/* SunOS shared library support. We store a pointer to this structure - in obj_aout_dynamic_info (abfd). */ - -struct sunos_dynamic_info -{ - /* Whether we found any dynamic information. */ - bfd_boolean valid; - /* Dynamic information. */ - struct internal_sun4_dynamic_link dyninfo; - /* Number of dynamic symbols. */ - unsigned long dynsym_count; - /* Read in nlists for dynamic symbols. */ - struct external_nlist *dynsym; - /* asymbol structures for dynamic symbols. */ - aout_symbol_type *canonical_dynsym; - /* Read in dynamic string table. */ - char *dynstr; - /* Number of dynamic relocs. */ - unsigned long dynrel_count; - /* Read in dynamic relocs. This may be reloc_std_external or - reloc_ext_external. */ - void * dynrel; - /* arelent structures for dynamic relocs. */ - arelent *canonical_dynrel; -}; - -/* The hash table of dynamic symbols is composed of two word entries. - See include/aout/sun4.h for details. */ - -#define HASH_ENTRY_SIZE (2 * BYTES_IN_WORD) - -/* Read in the basic dynamic information. This locates the __DYNAMIC - structure and uses it to find the dynamic_link structure. It - creates and saves a sunos_dynamic_info structure. If it can't find - __DYNAMIC, it sets the valid field of the sunos_dynamic_info - structure to FALSE to avoid doing this work again. */ - -static bfd_boolean -sunos_read_dynamic_info (bfd *abfd) -{ - struct sunos_dynamic_info *info; - asection *dynsec; - bfd_vma dynoff; - struct external_sun4_dynamic dyninfo; - unsigned long dynver; - struct external_sun4_dynamic_link linkinfo; - bfd_size_type amt; - - if (obj_aout_dynamic_info (abfd) != NULL) - return TRUE; - - if ((abfd->flags & DYNAMIC) == 0) - { - bfd_set_error (bfd_error_invalid_operation); - return FALSE; - } - - amt = sizeof (struct sunos_dynamic_info); - info = bfd_zalloc (abfd, amt); - if (!info) - return FALSE; - info->valid = FALSE; - info->dynsym = NULL; - info->dynstr = NULL; - info->canonical_dynsym = NULL; - info->dynrel = NULL; - info->canonical_dynrel = NULL; - obj_aout_dynamic_info (abfd) = (void *) info; - - /* This code used to look for the __DYNAMIC symbol to locate the dynamic - linking information. - However this inhibits recovering the dynamic symbols from a - stripped object file, so blindly assume that the dynamic linking - information is located at the start of the data section. - We could verify this assumption later by looking through the dynamic - symbols for the __DYNAMIC symbol. */ - if ((abfd->flags & DYNAMIC) == 0) - return TRUE; - if (! bfd_get_section_contents (abfd, obj_datasec (abfd), (void *) &dyninfo, - (file_ptr) 0, - (bfd_size_type) sizeof dyninfo)) - return TRUE; - - dynver = GET_WORD (abfd, dyninfo.ld_version); - if (dynver != 2 && dynver != 3) - return TRUE; - - dynoff = GET_WORD (abfd, dyninfo.ld); - - /* dynoff is a virtual address. It is probably always in the .data - section, but this code should work even if it moves. */ - if (dynoff < bfd_get_section_vma (abfd, obj_datasec (abfd))) - dynsec = obj_textsec (abfd); - else - dynsec = obj_datasec (abfd); - dynoff -= bfd_get_section_vma (abfd, dynsec); - if (dynoff > dynsec->size) - return TRUE; - - /* This executable appears to be dynamically linked in a way that we - can understand. */ - if (! bfd_get_section_contents (abfd, dynsec, (void *) &linkinfo, - (file_ptr) dynoff, - (bfd_size_type) sizeof linkinfo)) - return TRUE; - - /* Swap in the dynamic link information. */ - info->dyninfo.ld_loaded = GET_WORD (abfd, linkinfo.ld_loaded); - info->dyninfo.ld_need = GET_WORD (abfd, linkinfo.ld_need); - info->dyninfo.ld_rules = GET_WORD (abfd, linkinfo.ld_rules); - info->dyninfo.ld_got = GET_WORD (abfd, linkinfo.ld_got); - info->dyninfo.ld_plt = GET_WORD (abfd, linkinfo.ld_plt); - info->dyninfo.ld_rel = GET_WORD (abfd, linkinfo.ld_rel); - info->dyninfo.ld_hash = GET_WORD (abfd, linkinfo.ld_hash); - info->dyninfo.ld_stab = GET_WORD (abfd, linkinfo.ld_stab); - info->dyninfo.ld_stab_hash = GET_WORD (abfd, linkinfo.ld_stab_hash); - info->dyninfo.ld_buckets = GET_WORD (abfd, linkinfo.ld_buckets); - info->dyninfo.ld_symbols = GET_WORD (abfd, linkinfo.ld_symbols); - info->dyninfo.ld_symb_size = GET_WORD (abfd, linkinfo.ld_symb_size); - info->dyninfo.ld_text = GET_WORD (abfd, linkinfo.ld_text); - info->dyninfo.ld_plt_sz = GET_WORD (abfd, linkinfo.ld_plt_sz); - - /* Reportedly the addresses need to be offset by the size of the - exec header in an NMAGIC file. */ - if (adata (abfd).magic == n_magic) - { - unsigned long exec_bytes_size = adata (abfd).exec_bytes_size; - - info->dyninfo.ld_need += exec_bytes_size; - info->dyninfo.ld_rules += exec_bytes_size; - info->dyninfo.ld_rel += exec_bytes_size; - info->dyninfo.ld_hash += exec_bytes_size; - info->dyninfo.ld_stab += exec_bytes_size; - info->dyninfo.ld_symbols += exec_bytes_size; - } - - /* The only way to get the size of the symbol information appears to - be to determine the distance between it and the string table. */ - info->dynsym_count = ((info->dyninfo.ld_symbols - info->dyninfo.ld_stab) - / EXTERNAL_NLIST_SIZE); - BFD_ASSERT (info->dynsym_count * EXTERNAL_NLIST_SIZE - == (unsigned long) (info->dyninfo.ld_symbols - - info->dyninfo.ld_stab)); - - /* Similarly, the relocs end at the hash table. */ - info->dynrel_count = ((info->dyninfo.ld_hash - info->dyninfo.ld_rel) - / obj_reloc_entry_size (abfd)); - BFD_ASSERT (info->dynrel_count * obj_reloc_entry_size (abfd) - == (unsigned long) (info->dyninfo.ld_hash - - info->dyninfo.ld_rel)); - - info->valid = TRUE; - - return TRUE; -} - -/* Return the amount of memory required for the dynamic symbols. */ - -static long -sunos_get_dynamic_symtab_upper_bound (bfd *abfd) -{ - struct sunos_dynamic_info *info; - - if (! sunos_read_dynamic_info (abfd)) - return -1; - - info = (struct sunos_dynamic_info *) obj_aout_dynamic_info (abfd); - if (! info->valid) - { - bfd_set_error (bfd_error_no_symbols); - return -1; - } - - return (info->dynsym_count + 1) * sizeof (asymbol *); -} - -/* Read the external dynamic symbols. */ - -static bfd_boolean -sunos_slurp_dynamic_symtab (bfd *abfd) -{ - struct sunos_dynamic_info *info; - bfd_size_type amt; - - /* Get the general dynamic information. */ - if (obj_aout_dynamic_info (abfd) == NULL) - { - if (! sunos_read_dynamic_info (abfd)) - return FALSE; - } - - info = (struct sunos_dynamic_info *) obj_aout_dynamic_info (abfd); - if (! info->valid) - { - bfd_set_error (bfd_error_no_symbols); - return FALSE; - } - - /* Get the dynamic nlist structures. */ - if (info->dynsym == NULL) - { - amt = (bfd_size_type) info->dynsym_count * EXTERNAL_NLIST_SIZE; - info->dynsym = bfd_alloc (abfd, amt); - if (info->dynsym == NULL && info->dynsym_count != 0) - return FALSE; - if (bfd_seek (abfd, (file_ptr) info->dyninfo.ld_stab, SEEK_SET) != 0 - || bfd_bread ((void *) info->dynsym, amt, abfd) != amt) - { - if (info->dynsym != NULL) - { - bfd_release (abfd, info->dynsym); - info->dynsym = NULL; - } - return FALSE; - } - } - - /* Get the dynamic strings. */ - if (info->dynstr == NULL) - { - amt = info->dyninfo.ld_symb_size; - info->dynstr = bfd_alloc (abfd, amt); - if (info->dynstr == NULL && info->dyninfo.ld_symb_size != 0) - return FALSE; - if (bfd_seek (abfd, (file_ptr) info->dyninfo.ld_symbols, SEEK_SET) != 0 - || bfd_bread ((void *) info->dynstr, amt, abfd) != amt) - { - if (info->dynstr != NULL) - { - bfd_release (abfd, info->dynstr); - info->dynstr = NULL; - } - return FALSE; - } - } - - return TRUE; -} - -/* Read in the dynamic symbols. */ - -static long -sunos_canonicalize_dynamic_symtab (bfd *abfd, asymbol **storage) -{ - struct sunos_dynamic_info *info; - unsigned long i; - - if (! sunos_slurp_dynamic_symtab (abfd)) - return -1; - - info = (struct sunos_dynamic_info *) obj_aout_dynamic_info (abfd); - -#ifdef CHECK_DYNAMIC_HASH - /* Check my understanding of the dynamic hash table by making sure - that each symbol can be located in the hash table. */ - { - bfd_size_type table_size; - bfd_byte *table; - bfd_size_type i; - - if (info->dyninfo.ld_buckets > info->dynsym_count) - abort (); - table_size = info->dyninfo.ld_stab - info->dyninfo.ld_hash; - table = bfd_malloc (table_size); - if (table == NULL && table_size != 0) - abort (); - if (bfd_seek (abfd, (file_ptr) info->dyninfo.ld_hash, SEEK_SET) != 0 - || bfd_bread ((void *) table, table_size, abfd) != table_size) - abort (); - for (i = 0; i < info->dynsym_count; i++) - { - unsigned char *name; - unsigned long hash; - - name = ((unsigned char *) info->dynstr - + GET_WORD (abfd, info->dynsym[i].e_strx)); - hash = 0; - while (*name != '\0') - hash = (hash << 1) + *name++; - hash &= 0x7fffffff; - hash %= info->dyninfo.ld_buckets; - while (GET_WORD (abfd, table + hash * HASH_ENTRY_SIZE) != i) - { - hash = GET_WORD (abfd, - table + hash * HASH_ENTRY_SIZE + BYTES_IN_WORD); - if (hash == 0 || hash >= table_size / HASH_ENTRY_SIZE) - abort (); - } - } - free (table); - } -#endif /* CHECK_DYNAMIC_HASH */ - - /* Get the asymbol structures corresponding to the dynamic nlist - structures. */ - if (info->canonical_dynsym == NULL) - { - bfd_size_type size; - bfd_size_type strsize = info->dyninfo.ld_symb_size; - - size = (bfd_size_type) info->dynsym_count * sizeof (aout_symbol_type); - info->canonical_dynsym = bfd_alloc (abfd, size); - if (info->canonical_dynsym == NULL && info->dynsym_count != 0) - return -1; - - if (! aout_32_translate_symbol_table (abfd, info->canonical_dynsym, - info->dynsym, - (bfd_size_type) info->dynsym_count, - info->dynstr, strsize, TRUE)) - { - if (info->canonical_dynsym != NULL) - { - bfd_release (abfd, info->canonical_dynsym); - info->canonical_dynsym = NULL; - } - return -1; - } - } - - /* Return pointers to the dynamic asymbol structures. */ - for (i = 0; i < info->dynsym_count; i++) - *storage++ = (asymbol *) (info->canonical_dynsym + i); - *storage = NULL; - - return info->dynsym_count; -} - -/* Return the amount of memory required for the dynamic relocs. */ - -static long -sunos_get_dynamic_reloc_upper_bound (bfd *abfd) -{ - struct sunos_dynamic_info *info; - - if (! sunos_read_dynamic_info (abfd)) - return -1; - - info = (struct sunos_dynamic_info *) obj_aout_dynamic_info (abfd); - if (! info->valid) - { - bfd_set_error (bfd_error_no_symbols); - return -1; - } - - return (info->dynrel_count + 1) * sizeof (arelent *); -} - -/* Read in the dynamic relocs. */ - -static long -sunos_canonicalize_dynamic_reloc (bfd *abfd, arelent **storage, asymbol **syms) -{ - struct sunos_dynamic_info *info; - unsigned long i; - bfd_size_type size; - - /* Get the general dynamic information. */ - if (obj_aout_dynamic_info (abfd) == NULL) - { - if (! sunos_read_dynamic_info (abfd)) - return -1; - } - - info = (struct sunos_dynamic_info *) obj_aout_dynamic_info (abfd); - if (! info->valid) - { - bfd_set_error (bfd_error_no_symbols); - return -1; - } - - /* Get the dynamic reloc information. */ - if (info->dynrel == NULL) - { - size = (bfd_size_type) info->dynrel_count * obj_reloc_entry_size (abfd); - info->dynrel = bfd_alloc (abfd, size); - if (info->dynrel == NULL && size != 0) - return -1; - if (bfd_seek (abfd, (file_ptr) info->dyninfo.ld_rel, SEEK_SET) != 0 - || bfd_bread ((void *) info->dynrel, size, abfd) != size) - { - if (info->dynrel != NULL) - { - bfd_release (abfd, info->dynrel); - info->dynrel = NULL; - } - return -1; - } - } - - /* Get the arelent structures corresponding to the dynamic reloc - information. */ - if (info->canonical_dynrel == NULL) - { - arelent *to; - - size = (bfd_size_type) info->dynrel_count * sizeof (arelent); - info->canonical_dynrel = bfd_alloc (abfd, size); - if (info->canonical_dynrel == NULL && info->dynrel_count != 0) - return -1; - - to = info->canonical_dynrel; - - if (obj_reloc_entry_size (abfd) == RELOC_EXT_SIZE) - { - struct reloc_ext_external *p; - struct reloc_ext_external *pend; - - p = (struct reloc_ext_external *) info->dynrel; - pend = p + info->dynrel_count; - for (; p < pend; p++, to++) - NAME (aout, swap_ext_reloc_in) (abfd, p, to, syms, - (bfd_size_type) info->dynsym_count); - } - else - { - struct reloc_std_external *p; - struct reloc_std_external *pend; - - p = (struct reloc_std_external *) info->dynrel; - pend = p + info->dynrel_count; - for (; p < pend; p++, to++) - NAME (aout, swap_std_reloc_in) (abfd, p, to, syms, - (bfd_size_type) info->dynsym_count); - } - } - - /* Return pointers to the dynamic arelent structures. */ - for (i = 0; i < info->dynrel_count; i++) - *storage++ = info->canonical_dynrel + i; - *storage = NULL; - - return info->dynrel_count; -} - -/* Code to handle linking of SunOS shared libraries. */ - -/* A SPARC procedure linkage table entry is 12 bytes. The first entry - in the table is a jump which is filled in by the runtime linker. - The remaining entries are branches back to the first entry, - followed by an index into the relocation table encoded to look like - a sethi of %g0. */ - -#define SPARC_PLT_ENTRY_SIZE (12) - -static const bfd_byte sparc_plt_first_entry[SPARC_PLT_ENTRY_SIZE] = -{ - /* sethi %hi(0),%g1; address filled in by runtime linker. */ - 0x3, 0, 0, 0, - /* jmp %g1; offset filled in by runtime linker. */ - 0x81, 0xc0, 0x60, 0, - /* nop */ - 0x1, 0, 0, 0 -}; - -/* save %sp, -96, %sp */ -#define SPARC_PLT_ENTRY_WORD0 ((bfd_vma) 0x9de3bfa0) -/* call; address filled in later. */ -#define SPARC_PLT_ENTRY_WORD1 ((bfd_vma) 0x40000000) -/* sethi; reloc index filled in later. */ -#define SPARC_PLT_ENTRY_WORD2 ((bfd_vma) 0x01000000) - -/* This sequence is used when for the jump table entry to a defined - symbol in a complete executable. It is used when linking PIC - compiled code which is not being put into a shared library. */ -/* sethi
, %g1 */ -#define SPARC_PLT_PIC_WORD0 ((bfd_vma) 0x03000000) -/* jmp %g1 +
*/ -#define SPARC_PLT_PIC_WORD1 ((bfd_vma) 0x81c06000) -/* nop */ -#define SPARC_PLT_PIC_WORD2 ((bfd_vma) 0x01000000) - -/* An m68k procedure linkage table entry is 8 bytes. The first entry - in the table is a jump which is filled in the by the runtime - linker. The remaining entries are branches back to the first - entry, followed by a two byte index into the relocation table. */ - -#define M68K_PLT_ENTRY_SIZE (8) - -static const bfd_byte m68k_plt_first_entry[M68K_PLT_ENTRY_SIZE] = -{ - /* jmps @# */ - 0x4e, 0xf9, - /* Filled in by runtime linker with a magic address. */ - 0, 0, 0, 0, - /* Not used? */ - 0, 0 -}; - -/* bsrl */ -#define M68K_PLT_ENTRY_WORD0 ((bfd_vma) 0x61ff) -/* Remaining words filled in later. */ - -/* An entry in the SunOS linker hash table. */ - -struct sunos_link_hash_entry -{ - struct aout_link_hash_entry root; - - /* If this is a dynamic symbol, this is its index into the dynamic - symbol table. This is initialized to -1. As the linker looks at - the input files, it changes this to -2 if it will be added to the - dynamic symbol table. After all the input files have been seen, - the linker will know whether to build a dynamic symbol table; if - it does build one, this becomes the index into the table. */ - long dynindx; - - /* If this is a dynamic symbol, this is the index of the name in the - dynamic symbol string table. */ - long dynstr_index; - - /* The offset into the global offset table used for this symbol. If - the symbol does not require a GOT entry, this is 0. */ - bfd_vma got_offset; - - /* The offset into the procedure linkage table used for this symbol. - If the symbol does not require a PLT entry, this is 0. */ - bfd_vma plt_offset; - - /* Some linker flags. */ - unsigned char flags; - /* Symbol is referenced by a regular object. */ -#define SUNOS_REF_REGULAR 01 - /* Symbol is defined by a regular object. */ -#define SUNOS_DEF_REGULAR 02 - /* Symbol is referenced by a dynamic object. */ -#define SUNOS_REF_DYNAMIC 04 - /* Symbol is defined by a dynamic object. */ -#define SUNOS_DEF_DYNAMIC 010 - /* Symbol is a constructor symbol in a regular object. */ -#define SUNOS_CONSTRUCTOR 020 -}; - -/* The SunOS linker hash table. */ - -struct sunos_link_hash_table -{ - struct aout_link_hash_table root; - - /* The object which holds the dynamic sections. */ - bfd *dynobj; - - /* Whether we have created the dynamic sections. */ - bfd_boolean dynamic_sections_created; - - /* Whether we need the dynamic sections. */ - bfd_boolean dynamic_sections_needed; - - /* Whether we need the .got table. */ - bfd_boolean got_needed; - - /* The number of dynamic symbols. */ - size_t dynsymcount; - - /* The number of buckets in the hash table. */ - size_t bucketcount; - - /* The list of dynamic objects needed by dynamic objects included in - the link. */ - struct bfd_link_needed_list *needed; - - /* The offset of __GLOBAL_OFFSET_TABLE_ into the .got section. */ - bfd_vma got_base; -}; - -/* Routine to create an entry in an SunOS link hash table. */ - -static struct bfd_hash_entry * -sunos_link_hash_newfunc (struct bfd_hash_entry *entry, - struct bfd_hash_table *table, - const char *string) -{ - struct sunos_link_hash_entry *ret = (struct sunos_link_hash_entry *) entry; - - /* Allocate the structure if it has not already been allocated by a - subclass. */ - if (ret == NULL) - ret = bfd_hash_allocate (table, sizeof (* ret)); - if (ret == NULL) - return NULL; - - /* Call the allocation method of the superclass. */ - ret = ((struct sunos_link_hash_entry *) - NAME (aout, link_hash_newfunc) ((struct bfd_hash_entry *) ret, - table, string)); - if (ret != NULL) - { - /* Set local fields. */ - ret->dynindx = -1; - ret->dynstr_index = -1; - ret->got_offset = 0; - ret->plt_offset = 0; - ret->flags = 0; - } - - return (struct bfd_hash_entry *) ret; -} - -/* Create a SunOS link hash table. */ - -static struct bfd_link_hash_table * -sunos_link_hash_table_create (bfd *abfd) -{ - struct sunos_link_hash_table *ret; - bfd_size_type amt = sizeof (struct sunos_link_hash_table); - - ret = bfd_zmalloc (amt); - if (ret == NULL) - return NULL; - if (!NAME (aout, link_hash_table_init) (&ret->root, abfd, - sunos_link_hash_newfunc, - sizeof (struct sunos_link_hash_entry))) - { - free (ret); - return NULL; - } - - return &ret->root.root; -} - -/* Look up an entry in an SunOS link hash table. */ - -#define sunos_link_hash_lookup(table, string, create, copy, follow) \ - ((struct sunos_link_hash_entry *) \ - aout_link_hash_lookup (&(table)->root, (string), (create), (copy),\ - (follow))) - -/* Traverse a SunOS link hash table. */ - -#define sunos_link_hash_traverse(table, func, info) \ - (aout_link_hash_traverse \ - (&(table)->root, \ - (bfd_boolean (*) (struct aout_link_hash_entry *, void *)) (func), \ - (info))) - -/* Get the SunOS link hash table from the info structure. This is - just a cast. */ - -#define sunos_hash_table(p) ((struct sunos_link_hash_table *) ((p)->hash)) - -/* Create the dynamic sections needed if we are linking against a - dynamic object, or if we are linking PIC compiled code. ABFD is a - bfd we can attach the dynamic sections to. The linker script will - look for these special sections names and put them in the right - place in the output file. See include/aout/sun4.h for more details - of the dynamic linking information. */ - -static bfd_boolean -sunos_create_dynamic_sections (bfd *abfd, - struct bfd_link_info *info, - bfd_boolean needed) -{ - asection *s; - - if (! sunos_hash_table (info)->dynamic_sections_created) - { - flagword flags; - - sunos_hash_table (info)->dynobj = abfd; - - flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY - | SEC_LINKER_CREATED); - - /* The .dynamic section holds the basic dynamic information: the - sun4_dynamic structure, the dynamic debugger information, and - the sun4_dynamic_link structure. */ - s = bfd_make_section_anyway_with_flags (abfd, ".dynamic", flags); - if (s == NULL - || ! bfd_set_section_alignment (abfd, s, 2)) - return FALSE; - - /* The .got section holds the global offset table. The address - is put in the ld_got field. */ - s = bfd_make_section_anyway_with_flags (abfd, ".got", flags); - if (s == NULL - || ! bfd_set_section_alignment (abfd, s, 2)) - return FALSE; - - /* The .plt section holds the procedure linkage table. The - address is put in the ld_plt field. */ - s = bfd_make_section_anyway_with_flags (abfd, ".plt", flags | SEC_CODE); - if (s == NULL - || ! bfd_set_section_alignment (abfd, s, 2)) - return FALSE; - - /* The .dynrel section holds the dynamic relocs. The address is - put in the ld_rel field. */ - s = bfd_make_section_anyway_with_flags (abfd, ".dynrel", - flags | SEC_READONLY); - if (s == NULL - || ! bfd_set_section_alignment (abfd, s, 2)) - return FALSE; - - /* The .hash section holds the dynamic hash table. The address - is put in the ld_hash field. */ - s = bfd_make_section_anyway_with_flags (abfd, ".hash", - flags | SEC_READONLY); - if (s == NULL - || ! bfd_set_section_alignment (abfd, s, 2)) - return FALSE; - - /* The .dynsym section holds the dynamic symbols. The address - is put in the ld_stab field. */ - s = bfd_make_section_anyway_with_flags (abfd, ".dynsym", - flags | SEC_READONLY); - if (s == NULL - || ! bfd_set_section_alignment (abfd, s, 2)) - return FALSE; - - /* The .dynstr section holds the dynamic symbol string table. - The address is put in the ld_symbols field. */ - s = bfd_make_section_anyway_with_flags (abfd, ".dynstr", - flags | SEC_READONLY); - if (s == NULL - || ! bfd_set_section_alignment (abfd, s, 2)) - return FALSE; - - sunos_hash_table (info)->dynamic_sections_created = TRUE; - } - - if ((needed && ! sunos_hash_table (info)->dynamic_sections_needed) - || bfd_link_pic (info)) - { - bfd *dynobj; - - dynobj = sunos_hash_table (info)->dynobj; - - s = bfd_get_linker_section (dynobj, ".got"); - if (s->size == 0) - s->size = BYTES_IN_WORD; - - sunos_hash_table (info)->dynamic_sections_needed = TRUE; - sunos_hash_table (info)->got_needed = TRUE; - } - - return TRUE; -} - -/* Add dynamic symbols during a link. This is called by the a.out - backend linker for each object it encounters. */ - -static bfd_boolean -sunos_add_dynamic_symbols (bfd *abfd, - struct bfd_link_info *info, - struct external_nlist **symsp, - bfd_size_type *sym_countp, - char **stringsp) -{ - bfd *dynobj; - struct sunos_dynamic_info *dinfo; - unsigned long need; - - /* Make sure we have all the required sections. */ - if (info->output_bfd->xvec == abfd->xvec) - { - if (! sunos_create_dynamic_sections (abfd, info, - ((abfd->flags & DYNAMIC) != 0 - && !bfd_link_relocatable (info)))) - return FALSE; - } - - /* There is nothing else to do for a normal object. */ - if ((abfd->flags & DYNAMIC) == 0) - return TRUE; - - dynobj = sunos_hash_table (info)->dynobj; - - /* We do not want to include the sections in a dynamic object in the - output file. We hack by simply clobbering the list of sections - in the BFD. This could be handled more cleanly by, say, a new - section flag; the existing SEC_NEVER_LOAD flag is not the one we - want, because that one still implies that the section takes up - space in the output file. If this is the first object we have - seen, we must preserve the dynamic sections we just created. */ - if (abfd != dynobj) - abfd->sections = NULL; - else - { - asection *s; - - for (s = abfd->sections; s != NULL; s = s->next) - { - if ((s->flags & SEC_LINKER_CREATED) == 0) - bfd_section_list_remove (abfd, s); - } - } - - /* The native linker seems to just ignore dynamic objects when -r is - used. */ - if (bfd_link_relocatable (info)) - return TRUE; - - /* There's no hope of using a dynamic object which does not exactly - match the format of the output file. */ - if (info->output_bfd->xvec != abfd->xvec) - { - bfd_set_error (bfd_error_invalid_operation); - return FALSE; - } - - /* Make sure we have a .need and a .rules sections. These are only - needed if there really is a dynamic object in the link, so they - are not added by sunos_create_dynamic_sections. */ - if (bfd_get_section_by_name (dynobj, ".need") == NULL) - { - /* The .need section holds the list of names of shared objets - which must be included at runtime. The address of this - section is put in the ld_need field. */ - flagword flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS - | SEC_IN_MEMORY | SEC_READONLY); - asection *s = bfd_make_section_with_flags (dynobj, ".need", flags); - if (s == NULL - || ! bfd_set_section_alignment (dynobj, s, 2)) - return FALSE; - } - - if (bfd_get_section_by_name (dynobj, ".rules") == NULL) - { - /* The .rules section holds the path to search for shared - objects. The address of this section is put in the ld_rules - field. */ - flagword flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS - | SEC_IN_MEMORY | SEC_READONLY); - asection *s = bfd_make_section_with_flags (dynobj, ".rules", flags); - if (s == NULL - || ! bfd_set_section_alignment (dynobj, s, 2)) - return FALSE; - } - - /* Pick up the dynamic symbols and return them to the caller. */ - if (! sunos_slurp_dynamic_symtab (abfd)) - return FALSE; - - dinfo = (struct sunos_dynamic_info *) obj_aout_dynamic_info (abfd); - *symsp = dinfo->dynsym; - *sym_countp = dinfo->dynsym_count; - *stringsp = dinfo->dynstr; - - /* Record information about any other objects needed by this one. */ - need = dinfo->dyninfo.ld_need; - while (need != 0) - { - bfd_byte buf[16]; - unsigned long name, flags; - unsigned short major_vno, minor_vno; - struct bfd_link_needed_list *needed, **pp; - char *namebuf, *p; - bfd_size_type alc; - bfd_byte b; - char *namecopy; - - if (bfd_seek (abfd, (file_ptr) need, SEEK_SET) != 0 - || bfd_bread (buf, (bfd_size_type) 16, abfd) != 16) - return FALSE; - - /* For the format of an ld_need entry, see aout/sun4.h. We - should probably define structs for this manipulation. */ - name = bfd_get_32 (abfd, buf); - flags = bfd_get_32 (abfd, buf + 4); - major_vno = (unsigned short) bfd_get_16 (abfd, buf + 8); - minor_vno = (unsigned short) bfd_get_16 (abfd, buf + 10); - need = bfd_get_32 (abfd, buf + 12); - - alc = sizeof (struct bfd_link_needed_list); - needed = bfd_alloc (abfd, alc); - if (needed == NULL) - return FALSE; - needed->by = abfd; - - /* We return the name as [-l]name[.maj][.min]. */ - alc = 30; - namebuf = bfd_malloc (alc + 1); - if (namebuf == NULL) - return FALSE; - p = namebuf; - - if ((flags & 0x80000000) != 0) - { - *p++ = '-'; - *p++ = 'l'; - } - if (bfd_seek (abfd, (file_ptr) name, SEEK_SET) != 0) - { - free (namebuf); - return FALSE; - } - - do - { - if (bfd_bread (&b, (bfd_size_type) 1, abfd) != 1) - { - free (namebuf); - return FALSE; - } - - if ((bfd_size_type) (p - namebuf) >= alc) - { - char *n; - - alc *= 2; - n = bfd_realloc (namebuf, alc + 1); - if (n == NULL) - { - free (namebuf); - return FALSE; - } - p = n + (p - namebuf); - namebuf = n; - } - - *p++ = b; - } - while (b != '\0'); - - if (major_vno == 0) - *p = '\0'; - else - { - char majbuf[30]; - char minbuf[30]; - - sprintf (majbuf, ".%d", major_vno); - if (minor_vno == 0) - minbuf[0] = '\0'; - else - sprintf (minbuf, ".%d", minor_vno); - - if ((p - namebuf) + strlen (majbuf) + strlen (minbuf) >= alc) - { - char *n; - - alc = (p - namebuf) + strlen (majbuf) + strlen (minbuf); - n = bfd_realloc (namebuf, alc + 1); - if (n == NULL) - { - free (namebuf); - return FALSE; - } - p = n + (p - namebuf); - namebuf = n; - } - - strcpy (p, majbuf); - strcat (p, minbuf); - } - - namecopy = bfd_alloc (abfd, (bfd_size_type) strlen (namebuf) + 1); - if (namecopy == NULL) - { - free (namebuf); - return FALSE; - } - strcpy (namecopy, namebuf); - free (namebuf); - needed->name = namecopy; - - needed->next = NULL; - - for (pp = &sunos_hash_table (info)->needed; - *pp != NULL; - pp = &(*pp)->next) - ; - *pp = needed; - } - - return TRUE; -} - -/* Function to add a single symbol to the linker hash table. This is - a wrapper around _bfd_generic_link_add_one_symbol which handles the - tweaking needed for dynamic linking support. */ - -static bfd_boolean -sunos_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) -{ - struct sunos_link_hash_entry *h; - int new_flag; - - if ((flags & (BSF_INDIRECT | BSF_WARNING | BSF_CONSTRUCTOR)) != 0 - || ! bfd_is_und_section (section)) - h = sunos_link_hash_lookup (sunos_hash_table (info), name, TRUE, copy, - FALSE); - else - h = ((struct sunos_link_hash_entry *) - bfd_wrapped_link_hash_lookup (abfd, info, name, TRUE, copy, FALSE)); - if (h == NULL) - return FALSE; - - if (hashp != NULL) - *hashp = (struct bfd_link_hash_entry *) h; - - /* Treat a common symbol in a dynamic object as defined in the .bss - section of the dynamic object. We don't want to allocate space - for it in our process image. */ - if ((abfd->flags & DYNAMIC) != 0 - && bfd_is_com_section (section)) - section = obj_bsssec (abfd); - - if (! bfd_is_und_section (section) - && h->root.root.type != bfd_link_hash_new - && h->root.root.type != bfd_link_hash_undefined - && h->root.root.type != bfd_link_hash_defweak) - { - /* We are defining the symbol, and it is already defined. This - is a potential multiple definition error. */ - if ((abfd->flags & DYNAMIC) != 0) - { - /* The definition we are adding is from a dynamic object. - We do not want this new definition to override the - existing definition, so we pretend it is just a - reference. */ - section = bfd_und_section_ptr; - } - else if (h->root.root.type == bfd_link_hash_defined - && h->root.root.u.def.section->owner != NULL - && (h->root.root.u.def.section->owner->flags & DYNAMIC) != 0) - { - /* The existing definition is from a dynamic object. We - want to override it with the definition we just found. - Clobber the existing definition. */ - h->root.root.type = bfd_link_hash_undefined; - h->root.root.u.undef.abfd = h->root.root.u.def.section->owner; - } - else if (h->root.root.type == bfd_link_hash_common - && (h->root.root.u.c.p->section->owner->flags & DYNAMIC) != 0) - { - /* The existing definition is from a dynamic object. We - want to override it with the definition we just found. - Clobber the existing definition. We can't set it to new, - because it is on the undefined list. */ - h->root.root.type = bfd_link_hash_undefined; - h->root.root.u.undef.abfd = h->root.root.u.c.p->section->owner; - } - } - - if ((abfd->flags & DYNAMIC) != 0 - && abfd->xvec == info->output_bfd->xvec - && (h->flags & SUNOS_CONSTRUCTOR) != 0) - /* The existing symbol is a constructor symbol, and this symbol - is from a dynamic object. A constructor symbol is actually a - definition, although the type will be bfd_link_hash_undefined - at this point. We want to ignore the definition from the - dynamic object. */ - section = bfd_und_section_ptr; - else if ((flags & BSF_CONSTRUCTOR) != 0 - && (abfd->flags & DYNAMIC) == 0 - && h->root.root.type == bfd_link_hash_defined - && h->root.root.u.def.section->owner != NULL - && (h->root.root.u.def.section->owner->flags & DYNAMIC) != 0) - /* The existing symbol is defined by a dynamic object, and this - is a constructor symbol. As above, we want to force the use - of the constructor symbol from the regular object. */ - h->root.root.type = bfd_link_hash_new; - - /* Do the usual procedure for adding a symbol. */ - if (! _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, - value, string, copy, collect, - hashp)) - return FALSE; - - if (abfd->xvec == info->output_bfd->xvec) - { - /* Set a flag in the hash table entry indicating the type of - reference or definition we just found. Keep a count of the - number of dynamic symbols we find. A dynamic symbol is one - which is referenced or defined by both a regular object and a - shared object. */ - if ((abfd->flags & DYNAMIC) == 0) - { - if (bfd_is_und_section (section)) - new_flag = SUNOS_REF_REGULAR; - else - new_flag = SUNOS_DEF_REGULAR; - } - else - { - if (bfd_is_und_section (section)) - new_flag = SUNOS_REF_DYNAMIC; - else - new_flag = SUNOS_DEF_DYNAMIC; - } - h->flags |= new_flag; - - if (h->dynindx == -1 - && (h->flags & (SUNOS_DEF_REGULAR | SUNOS_REF_REGULAR)) != 0) - { - ++sunos_hash_table (info)->dynsymcount; - h->dynindx = -2; - } - - if ((flags & BSF_CONSTRUCTOR) != 0 - && (abfd->flags & DYNAMIC) == 0) - h->flags |= SUNOS_CONSTRUCTOR; - } - - return TRUE; -} - -extern const bfd_target MY (vec); - -/* Return the list of objects needed by BFD. */ - -struct bfd_link_needed_list * -bfd_sunos_get_needed_list (bfd *abfd ATTRIBUTE_UNUSED, - struct bfd_link_info *info) -{ - if (info->output_bfd->xvec != &MY (vec)) - return NULL; - return sunos_hash_table (info)->needed; -} - -/* Record an assignment made to a symbol by a linker script. We need - this in case some dynamic object refers to this symbol. */ - -bfd_boolean -bfd_sunos_record_link_assignment (bfd *output_bfd, - struct bfd_link_info *info, - const char *name) -{ - struct sunos_link_hash_entry *h; - - if (output_bfd->xvec != &MY(vec)) - return TRUE; - - /* This is called after we have examined all the input objects. If - the symbol does not exist, it merely means that no object refers - to it, and we can just ignore it at this point. */ - h = sunos_link_hash_lookup (sunos_hash_table (info), name, - FALSE, FALSE, FALSE); - if (h == NULL) - return TRUE; - - /* In a shared library, the __DYNAMIC symbol does not appear in the - dynamic symbol table. */ - if (! bfd_link_pic (info) || strcmp (name, "__DYNAMIC") != 0) - { - h->flags |= SUNOS_DEF_REGULAR; - - if (h->dynindx == -1) - { - ++sunos_hash_table (info)->dynsymcount; - h->dynindx = -2; - } - } - - return TRUE; -} - -/* Scan the relocs for an input section using standard relocs. We - need to figure out what to do for each reloc against a dynamic - symbol. If the symbol is in the .text section, an entry is made in - the procedure linkage table. Note that this will do the wrong - thing if the symbol is actually data; I don't think the Sun 3 - native linker handles this case correctly either. If the symbol is - not in the .text section, we must preserve the reloc as a dynamic - reloc. FIXME: We should also handle the PIC relocs here by - building global offset table entries. */ - -static bfd_boolean -sunos_scan_std_relocs (struct bfd_link_info *info, - bfd *abfd, - asection *sec ATTRIBUTE_UNUSED, - const struct reloc_std_external *relocs, - bfd_size_type rel_size) -{ - bfd *dynobj; - asection *splt = NULL; - asection *srel = NULL; - struct sunos_link_hash_entry **sym_hashes; - const struct reloc_std_external *rel, *relend; - - /* We only know how to handle m68k plt entries. */ - if (bfd_get_arch (abfd) != bfd_arch_m68k) - { - bfd_set_error (bfd_error_invalid_target); - return FALSE; - } - - dynobj = NULL; - - sym_hashes = (struct sunos_link_hash_entry **) obj_aout_sym_hashes (abfd); - - relend = relocs + rel_size / RELOC_STD_SIZE; - for (rel = relocs; rel < relend; rel++) - { - int r_index; - struct sunos_link_hash_entry *h; - - /* We only want relocs against external symbols. */ - if (bfd_header_big_endian (abfd)) - { - if ((rel->r_type[0] & RELOC_STD_BITS_EXTERN_BIG) == 0) - continue; - } - else - { - if ((rel->r_type[0] & RELOC_STD_BITS_EXTERN_LITTLE) == 0) - continue; - } - - /* Get the symbol index. */ - if (bfd_header_big_endian (abfd)) - r_index = ((rel->r_index[0] << 16) - | (rel->r_index[1] << 8) - | rel->r_index[2]); - else - r_index = ((rel->r_index[2] << 16) - | (rel->r_index[1] << 8) - | rel->r_index[0]); - - /* Get the hash table entry. */ - h = sym_hashes[r_index]; - if (h == NULL) - /* This should not normally happen, but it will in any case - be caught in the relocation phase. */ - continue; - - /* At this point common symbols have already been allocated, so - we don't have to worry about them. We need to consider that - we may have already seen this symbol and marked it undefined; - if the symbol is really undefined, then SUNOS_DEF_DYNAMIC - will be zero. */ - if (h->root.root.type != bfd_link_hash_defined - && h->root.root.type != bfd_link_hash_defweak - && h->root.root.type != bfd_link_hash_undefined) - continue; - - if ((h->flags & SUNOS_DEF_DYNAMIC) == 0 - || (h->flags & SUNOS_DEF_REGULAR) != 0) - continue; - - if (dynobj == NULL) - { - asection *sgot; - - if (! sunos_create_dynamic_sections (abfd, info, FALSE)) - return FALSE; - dynobj = sunos_hash_table (info)->dynobj; - splt = bfd_get_linker_section (dynobj, ".plt"); - srel = bfd_get_linker_section (dynobj, ".dynrel"); - BFD_ASSERT (splt != NULL && srel != NULL); - - sgot = bfd_get_linker_section (dynobj, ".got"); - BFD_ASSERT (sgot != NULL); - if (sgot->size == 0) - sgot->size = BYTES_IN_WORD; - sunos_hash_table (info)->got_needed = TRUE; - } - - BFD_ASSERT ((h->flags & SUNOS_REF_REGULAR) != 0); - BFD_ASSERT (h->plt_offset != 0 - || ((h->root.root.type == bfd_link_hash_defined - || h->root.root.type == bfd_link_hash_defweak) - ? (h->root.root.u.def.section->owner->flags - & DYNAMIC) != 0 - : (h->root.root.u.undef.abfd->flags & DYNAMIC) != 0)); - - /* This reloc is against a symbol defined only by a dynamic - object. */ - if (h->root.root.type == bfd_link_hash_undefined) - /* Presumably this symbol was marked as being undefined by - an earlier reloc. */ - srel->size += RELOC_STD_SIZE; - else if ((h->root.root.u.def.section->flags & SEC_CODE) == 0) - { - bfd *sub; - - /* This reloc is not in the .text section. It must be - copied into the dynamic relocs. We mark the symbol as - being undefined. */ - srel->size += RELOC_STD_SIZE; - sub = h->root.root.u.def.section->owner; - h->root.root.type = bfd_link_hash_undefined; - h->root.root.u.undef.abfd = sub; - } - else - { - /* This symbol is in the .text section. We must give it an - entry in the procedure linkage table, if we have not - already done so. We change the definition of the symbol - to the .plt section; this will cause relocs against it to - be handled correctly. */ - if (h->plt_offset == 0) - { - if (splt->size == 0) - splt->size = M68K_PLT_ENTRY_SIZE; - h->plt_offset = splt->size; - - if ((h->flags & SUNOS_DEF_REGULAR) == 0) - { - h->root.root.u.def.section = splt; - h->root.root.u.def.value = splt->size; - } - - splt->size += M68K_PLT_ENTRY_SIZE; - - /* We may also need a dynamic reloc entry. */ - if ((h->flags & SUNOS_DEF_REGULAR) == 0) - srel->size += RELOC_STD_SIZE; - } - } - } - - return TRUE; -} - -/* Scan the relocs for an input section using extended relocs. We - need to figure out what to do for each reloc against a dynamic - symbol. If the reloc is a WDISP30, and the symbol is in the .text - section, an entry is made in the procedure linkage table. - Otherwise, we must preserve the reloc as a dynamic reloc. */ - -static bfd_boolean -sunos_scan_ext_relocs (struct bfd_link_info *info, - bfd *abfd, - asection *sec ATTRIBUTE_UNUSED, - const struct reloc_ext_external *relocs, - bfd_size_type rel_size) -{ - bfd *dynobj; - struct sunos_link_hash_entry **sym_hashes; - const struct reloc_ext_external *rel, *relend; - asection *splt = NULL; - asection *sgot = NULL; - asection *srel = NULL; - bfd_size_type amt; - - /* We only know how to handle SPARC plt entries. */ - if (bfd_get_arch (abfd) != bfd_arch_sparc) - { - bfd_set_error (bfd_error_invalid_target); - return FALSE; - } - - dynobj = NULL; - - sym_hashes = (struct sunos_link_hash_entry **) obj_aout_sym_hashes (abfd); - - relend = relocs + rel_size / RELOC_EXT_SIZE; - for (rel = relocs; rel < relend; rel++) - { - unsigned int r_index; - int r_extern; - int r_type; - struct sunos_link_hash_entry *h = NULL; - - /* Swap in the reloc information. */ - if (bfd_header_big_endian (abfd)) - { - r_index = ((rel->r_index[0] << 16) - | (rel->r_index[1] << 8) - | rel->r_index[2]); - r_extern = (0 != (rel->r_type[0] & RELOC_EXT_BITS_EXTERN_BIG)); - r_type = ((rel->r_type[0] & RELOC_EXT_BITS_TYPE_BIG) - >> RELOC_EXT_BITS_TYPE_SH_BIG); - } - else - { - r_index = ((rel->r_index[2] << 16) - | (rel->r_index[1] << 8) - | rel->r_index[0]); - r_extern = (0 != (rel->r_type[0] & RELOC_EXT_BITS_EXTERN_LITTLE)); - r_type = ((rel->r_type[0] & RELOC_EXT_BITS_TYPE_LITTLE) - >> RELOC_EXT_BITS_TYPE_SH_LITTLE); - } - - if (r_extern) - { - h = sym_hashes[r_index]; - if (h == NULL) - { - /* This should not normally happen, but it will in any - case be caught in the relocation phase. */ - continue; - } - } - - /* If this is a base relative reloc, we need to make an entry in - the .got section. */ - if (r_type == RELOC_BASE10 - || r_type == RELOC_BASE13 - || r_type == RELOC_BASE22) - { - if (dynobj == NULL) - { - if (! sunos_create_dynamic_sections (abfd, info, FALSE)) - return FALSE; - dynobj = sunos_hash_table (info)->dynobj; - splt = bfd_get_linker_section (dynobj, ".plt"); - sgot = bfd_get_linker_section (dynobj, ".got"); - srel = bfd_get_linker_section (dynobj, ".dynrel"); - BFD_ASSERT (splt != NULL && sgot != NULL && srel != NULL); - - /* Make sure we have an initial entry in the .got table. */ - if (sgot->size == 0) - sgot->size = BYTES_IN_WORD; - sunos_hash_table (info)->got_needed = TRUE; - } - - if (r_extern) - { - if (h->got_offset != 0) - continue; - - h->got_offset = sgot->size; - } - else - { - if (r_index >= bfd_get_symcount (abfd)) - /* This is abnormal, but should be caught in the - relocation phase. */ - continue; - - if (adata (abfd).local_got_offsets == NULL) - { - amt = bfd_get_symcount (abfd); - amt *= sizeof (bfd_vma); - adata (abfd).local_got_offsets = bfd_zalloc (abfd, amt); - if (adata (abfd).local_got_offsets == NULL) - return FALSE; - } - - if (adata (abfd).local_got_offsets[r_index] != 0) - continue; - - adata (abfd).local_got_offsets[r_index] = sgot->size; - } - - sgot->size += BYTES_IN_WORD; - - /* If we are making a shared library, or if the symbol is - defined by a dynamic object, we will need a dynamic reloc - entry. */ - if (bfd_link_pic (info) - || (h != NULL - && (h->flags & SUNOS_DEF_DYNAMIC) != 0 - && (h->flags & SUNOS_DEF_REGULAR) == 0)) - srel->size += RELOC_EXT_SIZE; - - continue; - } - - /* Otherwise, we are only interested in relocs against symbols - defined in dynamic objects but not in regular objects. We - only need to consider relocs against external symbols. */ - if (! r_extern) - { - /* But, if we are creating a shared library, we need to - generate an absolute reloc. */ - if (bfd_link_pic (info)) - { - if (dynobj == NULL) - { - if (! sunos_create_dynamic_sections (abfd, info, TRUE)) - return FALSE; - dynobj = sunos_hash_table (info)->dynobj; - splt = bfd_get_linker_section (dynobj, ".plt"); - sgot = bfd_get_linker_section (dynobj, ".got"); - srel = bfd_get_linker_section (dynobj, ".dynrel"); - BFD_ASSERT (splt != NULL && sgot != NULL && srel != NULL); - } - - srel->size += RELOC_EXT_SIZE; - } - - continue; - } - - /* At this point common symbols have already been allocated, so - we don't have to worry about them. We need to consider that - we may have already seen this symbol and marked it undefined; - if the symbol is really undefined, then SUNOS_DEF_DYNAMIC - will be zero. */ - if (h->root.root.type != bfd_link_hash_defined - && h->root.root.type != bfd_link_hash_defweak - && h->root.root.type != bfd_link_hash_undefined) - continue; - - if (r_type != RELOC_JMP_TBL - && ! bfd_link_pic (info) - && ((h->flags & SUNOS_DEF_DYNAMIC) == 0 - || (h->flags & SUNOS_DEF_REGULAR) != 0)) - continue; - - if (r_type == RELOC_JMP_TBL - && ! bfd_link_pic (info) - && (h->flags & SUNOS_DEF_DYNAMIC) == 0 - && (h->flags & SUNOS_DEF_REGULAR) == 0) - { - /* This symbol is apparently undefined. Don't do anything - here; just let the relocation routine report an undefined - symbol. */ - continue; - } - - if (strcmp (h->root.root.root.string, "__GLOBAL_OFFSET_TABLE_") == 0) - continue; - - if (dynobj == NULL) - { - if (! sunos_create_dynamic_sections (abfd, info, FALSE)) - return FALSE; - dynobj = sunos_hash_table (info)->dynobj; - splt = bfd_get_linker_section (dynobj, ".plt"); - sgot = bfd_get_linker_section (dynobj, ".got"); - srel = bfd_get_linker_section (dynobj, ".dynrel"); - BFD_ASSERT (splt != NULL && sgot != NULL && srel != NULL); - - /* Make sure we have an initial entry in the .got table. */ - if (sgot->size == 0) - sgot->size = BYTES_IN_WORD; - sunos_hash_table (info)->got_needed = TRUE; - } - - BFD_ASSERT (r_type == RELOC_JMP_TBL - || bfd_link_pic (info) - || (h->flags & SUNOS_REF_REGULAR) != 0); - BFD_ASSERT (r_type == RELOC_JMP_TBL - || bfd_link_pic (info) - || h->plt_offset != 0 - || ((h->root.root.type == bfd_link_hash_defined - || h->root.root.type == bfd_link_hash_defweak) - ? (h->root.root.u.def.section->owner->flags - & DYNAMIC) != 0 - : (h->root.root.u.undef.abfd->flags & DYNAMIC) != 0)); - - /* This reloc is against a symbol defined only by a dynamic - object, or it is a jump table reloc from PIC compiled code. */ - - if (r_type != RELOC_JMP_TBL - && h->root.root.type == bfd_link_hash_undefined) - /* Presumably this symbol was marked as being undefined by - an earlier reloc. */ - srel->size += RELOC_EXT_SIZE; - - else if (r_type != RELOC_JMP_TBL - && (h->root.root.u.def.section->flags & SEC_CODE) == 0) - { - bfd *sub; - - /* This reloc is not in the .text section. It must be - copied into the dynamic relocs. We mark the symbol as - being undefined. */ - srel->size += RELOC_EXT_SIZE; - if ((h->flags & SUNOS_DEF_REGULAR) == 0) - { - sub = h->root.root.u.def.section->owner; - h->root.root.type = bfd_link_hash_undefined; - h->root.root.u.undef.abfd = sub; - } - } - else - { - /* This symbol is in the .text section. We must give it an - entry in the procedure linkage table, if we have not - already done so. We change the definition of the symbol - to the .plt section; this will cause relocs against it to - be handled correctly. */ - if (h->plt_offset == 0) - { - if (splt->size == 0) - splt->size = SPARC_PLT_ENTRY_SIZE; - h->plt_offset = splt->size; - - if ((h->flags & SUNOS_DEF_REGULAR) == 0) - { - if (h->root.root.type == bfd_link_hash_undefined) - h->root.root.type = bfd_link_hash_defined; - h->root.root.u.def.section = splt; - h->root.root.u.def.value = splt->size; - } - - splt->size += SPARC_PLT_ENTRY_SIZE; - - /* We will also need a dynamic reloc entry, unless this - is a JMP_TBL reloc produced by linking PIC compiled - code, and we are not making a shared library. */ - if (bfd_link_pic (info) || (h->flags & SUNOS_DEF_REGULAR) == 0) - srel->size += RELOC_EXT_SIZE; - } - - /* If we are creating a shared library, we need to copy over - any reloc other than a jump table reloc. */ - if (bfd_link_pic (info) && r_type != RELOC_JMP_TBL) - srel->size += RELOC_EXT_SIZE; - } - } - - return TRUE; -} - -/* Scan the relocs for an input section. */ - -static bfd_boolean -sunos_scan_relocs (struct bfd_link_info *info, - bfd *abfd, - asection *sec, - bfd_size_type rel_size) -{ - void * relocs; - void * free_relocs = NULL; - - if (rel_size == 0) - return TRUE; - - if (! info->keep_memory) - relocs = free_relocs = bfd_malloc (rel_size); - else - { - struct aout_section_data_struct *n; - bfd_size_type amt = sizeof (struct aout_section_data_struct); - - n = bfd_alloc (abfd, amt); - if (n == NULL) - relocs = NULL; - else - { - set_aout_section_data (sec, n); - relocs = bfd_malloc (rel_size); - aout_section_data (sec)->relocs = relocs; - } - } - if (relocs == NULL) - return FALSE; - - if (bfd_seek (abfd, sec->rel_filepos, SEEK_SET) != 0 - || bfd_bread (relocs, rel_size, abfd) != rel_size) - goto error_return; - - if (obj_reloc_entry_size (abfd) == RELOC_STD_SIZE) - { - if (! sunos_scan_std_relocs (info, abfd, sec, - (struct reloc_std_external *) relocs, - rel_size)) - goto error_return; - } - else - { - if (! sunos_scan_ext_relocs (info, abfd, sec, - (struct reloc_ext_external *) relocs, - rel_size)) - goto error_return; - } - - if (free_relocs != NULL) - free (free_relocs); - - return TRUE; - - error_return: - if (free_relocs != NULL) - free (free_relocs); - return FALSE; -} - -/* Build the hash table of dynamic symbols, and to mark as written all - symbols from dynamic objects which we do not plan to write out. */ - -static bfd_boolean -sunos_scan_dynamic_symbol (struct sunos_link_hash_entry *h, void * data) -{ - struct bfd_link_info *info = (struct bfd_link_info *) data; - - /* Set the written flag for symbols we do not want to write out as - part of the regular symbol table. This is all symbols which are - not defined in a regular object file. For some reason symbols - which are referenced by a regular object and defined by a dynamic - object do not seem to show up in the regular symbol table. It is - possible for a symbol to have only SUNOS_REF_REGULAR set here, it - is an undefined symbol which was turned into a common symbol - because it was found in an archive object which was not included - in the link. */ - if ((h->flags & SUNOS_DEF_REGULAR) == 0 - && (h->flags & SUNOS_DEF_DYNAMIC) != 0 - && strcmp (h->root.root.root.string, "__DYNAMIC") != 0) - h->root.written = TRUE; - - /* If this symbol is defined by a dynamic object and referenced by a - regular object, see whether we gave it a reasonable value while - scanning the relocs. */ - if ((h->flags & SUNOS_DEF_REGULAR) == 0 - && (h->flags & SUNOS_DEF_DYNAMIC) != 0 - && (h->flags & SUNOS_REF_REGULAR) != 0) - { - if ((h->root.root.type == bfd_link_hash_defined - || h->root.root.type == bfd_link_hash_defweak) - && ((h->root.root.u.def.section->owner->flags & DYNAMIC) != 0) - && h->root.root.u.def.section->output_section == NULL) - { - bfd *sub; - - /* This symbol is currently defined in a dynamic section - which is not being put into the output file. This - implies that there is no reloc against the symbol. I'm - not sure why this case would ever occur. In any case, we - change the symbol to be undefined. */ - sub = h->root.root.u.def.section->owner; - h->root.root.type = bfd_link_hash_undefined; - h->root.root.u.undef.abfd = sub; - } - } - - /* If this symbol is defined or referenced by a regular file, add it - to the dynamic symbols. */ - if ((h->flags & (SUNOS_DEF_REGULAR | SUNOS_REF_REGULAR)) != 0) - { - asection *s; - size_t len; - bfd_byte *contents; - unsigned char *name; - unsigned long hash; - bfd *dynobj; - - BFD_ASSERT (h->dynindx == -2); - - dynobj = sunos_hash_table (info)->dynobj; - - h->dynindx = sunos_hash_table (info)->dynsymcount; - ++sunos_hash_table (info)->dynsymcount; - - len = strlen (h->root.root.root.string); - - /* We don't bother to construct a BFD hash table for the strings - which are the names of the dynamic symbols. Using a hash - table for the regular symbols is beneficial, because the - regular symbols includes the debugging symbols, which have - long names and are often duplicated in several object files. - There are no debugging symbols in the dynamic symbols. */ - s = bfd_get_linker_section (dynobj, ".dynstr"); - BFD_ASSERT (s != NULL); - contents = bfd_realloc (s->contents, s->size + len + 1); - if (contents == NULL) - return FALSE; - s->contents = contents; - - h->dynstr_index = s->size; - strcpy ((char *) contents + s->size, h->root.root.root.string); - s->size += len + 1; - - /* Add it to the dynamic hash table. */ - name = (unsigned char *) h->root.root.root.string; - hash = 0; - while (*name != '\0') - hash = (hash << 1) + *name++; - hash &= 0x7fffffff; - hash %= sunos_hash_table (info)->bucketcount; - - s = bfd_get_linker_section (dynobj, ".hash"); - BFD_ASSERT (s != NULL); - - if (GET_SWORD (dynobj, s->contents + hash * HASH_ENTRY_SIZE) == -1) - PUT_WORD (dynobj, h->dynindx, s->contents + hash * HASH_ENTRY_SIZE); - else - { - bfd_vma next; - - next = GET_WORD (dynobj, - (s->contents - + hash * HASH_ENTRY_SIZE - + BYTES_IN_WORD)); - PUT_WORD (dynobj, s->size / HASH_ENTRY_SIZE, - s->contents + hash * HASH_ENTRY_SIZE + BYTES_IN_WORD); - PUT_WORD (dynobj, h->dynindx, s->contents + s->size); - PUT_WORD (dynobj, next, s->contents + s->size + BYTES_IN_WORD); - s->size += HASH_ENTRY_SIZE; - } - } - - return TRUE; -} - -/* Set up the sizes and contents of the dynamic sections created in - sunos_add_dynamic_symbols. This is called by the SunOS linker - emulation before_allocation routine. We must set the sizes of the - sections before the linker sets the addresses of the various - sections. This unfortunately requires reading all the relocs so - that we can work out which ones need to become dynamic relocs. If - info->keep_memory is TRUE, we keep the relocs in memory; otherwise, - we discard them, and will read them again later. */ - -bfd_boolean -bfd_sunos_size_dynamic_sections (bfd *output_bfd, - struct bfd_link_info *info, - asection **sdynptr, - asection **sneedptr, - asection **srulesptr) -{ - bfd *dynobj; - bfd_size_type dynsymcount; - struct sunos_link_hash_entry *h; - asection *s; - size_t bucketcount; - bfd_size_type hashalloc; - size_t i; - bfd *sub; - - *sdynptr = NULL; - *sneedptr = NULL; - *srulesptr = NULL; - - if (bfd_link_relocatable (info)) - return TRUE; - - if (output_bfd->xvec != &MY(vec)) - return TRUE; - - /* Look through all the input BFD's and read their relocs. It would - be better if we didn't have to do this, but there is no other way - to determine the number of dynamic relocs we need, and, more - importantly, there is no other way to know which symbols should - get an entry in the procedure linkage table. */ - for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) - { - if ((sub->flags & DYNAMIC) == 0 - && sub->xvec == output_bfd->xvec) - { - if (! sunos_scan_relocs (info, sub, obj_textsec (sub), - exec_hdr (sub)->a_trsize) - || ! sunos_scan_relocs (info, sub, obj_datasec (sub), - exec_hdr (sub)->a_drsize)) - return FALSE; - } - } - - dynobj = sunos_hash_table (info)->dynobj; - dynsymcount = sunos_hash_table (info)->dynsymcount; - - /* If there were no dynamic objects in the link, and we don't need - to build a global offset table, there is nothing to do here. */ - if (! sunos_hash_table (info)->dynamic_sections_needed - && ! sunos_hash_table (info)->got_needed) - return TRUE; - - /* If __GLOBAL_OFFSET_TABLE_ was mentioned, define it. */ - h = sunos_link_hash_lookup (sunos_hash_table (info), - "__GLOBAL_OFFSET_TABLE_", FALSE, FALSE, FALSE); - if (h != NULL && (h->flags & SUNOS_REF_REGULAR) != 0) - { - h->flags |= SUNOS_DEF_REGULAR; - if (h->dynindx == -1) - { - ++sunos_hash_table (info)->dynsymcount; - h->dynindx = -2; - } - s = bfd_get_linker_section (dynobj, ".got"); - BFD_ASSERT (s != NULL); - h->root.root.type = bfd_link_hash_defined; - h->root.root.u.def.section = s; - - /* If the .got section is more than 0x1000 bytes, we set - __GLOBAL_OFFSET_TABLE_ to be 0x1000 bytes into the section, - so that 13 bit relocations have a greater chance of working. */ - if (s->size >= 0x1000) - h->root.root.u.def.value = 0x1000; - else - h->root.root.u.def.value = 0; - - sunos_hash_table (info)->got_base = h->root.root.u.def.value; - } - - /* If there are any shared objects in the link, then we need to set - up the dynamic linking information. */ - if (sunos_hash_table (info)->dynamic_sections_needed) - { - *sdynptr = bfd_get_linker_section (dynobj, ".dynamic"); - - /* The .dynamic section is always the same size. */ - s = *sdynptr; - BFD_ASSERT (s != NULL); - s->size = (sizeof (struct external_sun4_dynamic) - + EXTERNAL_SUN4_DYNAMIC_DEBUGGER_SIZE - + sizeof (struct external_sun4_dynamic_link)); - - /* Set the size of the .dynsym and .hash sections. We counted - the number of dynamic symbols as we read the input files. We - will build the dynamic symbol table (.dynsym) and the hash - table (.hash) when we build the final symbol table, because - until then we do not know the correct value to give the - symbols. We build the dynamic symbol string table (.dynstr) - in a traversal of the symbol table using - sunos_scan_dynamic_symbol. */ - s = bfd_get_linker_section (dynobj, ".dynsym"); - BFD_ASSERT (s != NULL); - s->size = dynsymcount * sizeof (struct external_nlist); - s->contents = bfd_alloc (output_bfd, s->size); - if (s->contents == NULL && s->size != 0) - return FALSE; - - /* The number of buckets is just the number of symbols divided - by four. To compute the final size of the hash table, we - must actually compute the hash table. Normally we need - exactly as many entries in the hash table as there are - dynamic symbols, but if some of the buckets are not used we - will need additional entries. In the worst case, every - symbol will hash to the same bucket, and we will need - BUCKETCOUNT - 1 extra entries. */ - if (dynsymcount >= 4) - bucketcount = dynsymcount / 4; - else if (dynsymcount > 0) - bucketcount = dynsymcount; - else - bucketcount = 1; - s = bfd_get_linker_section (dynobj, ".hash"); - BFD_ASSERT (s != NULL); - hashalloc = (dynsymcount + bucketcount - 1) * HASH_ENTRY_SIZE; - s->contents = bfd_zalloc (dynobj, hashalloc); - if (s->contents == NULL && dynsymcount > 0) - return FALSE; - for (i = 0; i < bucketcount; i++) - PUT_WORD (output_bfd, (bfd_vma) -1, s->contents + i * HASH_ENTRY_SIZE); - s->size = bucketcount * HASH_ENTRY_SIZE; - - sunos_hash_table (info)->bucketcount = bucketcount; - - /* Scan all the symbols, place them in the dynamic symbol table, - and build the dynamic hash table. We reuse dynsymcount as a - counter for the number of symbols we have added so far. */ - sunos_hash_table (info)->dynsymcount = 0; - sunos_link_hash_traverse (sunos_hash_table (info), - sunos_scan_dynamic_symbol, - (void *) info); - BFD_ASSERT (sunos_hash_table (info)->dynsymcount == dynsymcount); - - /* The SunOS native linker seems to align the total size of the - symbol strings to a multiple of 8. I don't know if this is - important, but it can't hurt much. */ - s = bfd_get_linker_section (dynobj, ".dynstr"); - BFD_ASSERT (s != NULL); - if ((s->size & 7) != 0) - { - bfd_size_type add; - bfd_byte *contents; - - add = 8 - (s->size & 7); - contents = bfd_realloc (s->contents, s->size + add); - if (contents == NULL) - return FALSE; - memset (contents + s->size, 0, (size_t) add); - s->contents = contents; - s->size += add; - } - } - - /* Now that we have worked out the sizes of the procedure linkage - table and the dynamic relocs, allocate storage for them. */ - s = bfd_get_linker_section (dynobj, ".plt"); - BFD_ASSERT (s != NULL); - if (s->size != 0) - { - s->contents = bfd_alloc (dynobj, s->size); - if (s->contents == NULL) - return FALSE; - - /* Fill in the first entry in the table. */ - switch (bfd_get_arch (dynobj)) - { - case bfd_arch_sparc: - memcpy (s->contents, sparc_plt_first_entry, SPARC_PLT_ENTRY_SIZE); - break; - - case bfd_arch_m68k: - memcpy (s->contents, m68k_plt_first_entry, M68K_PLT_ENTRY_SIZE); - break; - - default: - abort (); - } - } - - s = bfd_get_linker_section (dynobj, ".dynrel"); - if (s->size != 0) - { - s->contents = bfd_alloc (dynobj, s->size); - if (s->contents == NULL) - return FALSE; - } - /* We use the reloc_count field to keep track of how many of the - relocs we have output so far. */ - s->reloc_count = 0; - - /* Make space for the global offset table. */ - s = bfd_get_linker_section (dynobj, ".got"); - s->contents = bfd_alloc (dynobj, s->size); - if (s->contents == NULL) - return FALSE; - - *sneedptr = bfd_get_section_by_name (dynobj, ".need"); - *srulesptr = bfd_get_section_by_name (dynobj, ".rules"); - - return TRUE; -} - -/* Link a dynamic object. We actually don't have anything to do at - this point. This entry point exists to prevent the regular linker - code from doing anything with the object. */ - -static bfd_boolean -sunos_link_dynamic_object (struct bfd_link_info *info ATTRIBUTE_UNUSED, - bfd *abfd ATTRIBUTE_UNUSED) -{ - return TRUE; -} - -/* Write out a dynamic symbol. This is called by the final traversal - over the symbol table. */ - -static bfd_boolean -sunos_write_dynamic_symbol (bfd *output_bfd, - struct bfd_link_info *info, - struct aout_link_hash_entry *harg) -{ - struct sunos_link_hash_entry *h = (struct sunos_link_hash_entry *) harg; - int type; - bfd_vma val; - asection *s; - struct external_nlist *outsym; - - /* If this symbol is in the procedure linkage table, fill in the - table entry. */ - if (h->plt_offset != 0) - { - bfd *dynobj; - asection *splt; - bfd_byte *p; - bfd_vma r_address; - - dynobj = sunos_hash_table (info)->dynobj; - splt = bfd_get_linker_section (dynobj, ".plt"); - p = splt->contents + h->plt_offset; - - s = bfd_get_linker_section (dynobj, ".dynrel"); - - r_address = (splt->output_section->vma - + splt->output_offset - + h->plt_offset); - - switch (bfd_get_arch (output_bfd)) - { - case bfd_arch_sparc: - if (bfd_link_pic (info) || (h->flags & SUNOS_DEF_REGULAR) == 0) - { - bfd_put_32 (output_bfd, SPARC_PLT_ENTRY_WORD0, p); - bfd_put_32 (output_bfd, - (SPARC_PLT_ENTRY_WORD1 - + (((- (h->plt_offset + 4) >> 2) - & 0x3fffffff))), - p + 4); - bfd_put_32 (output_bfd, SPARC_PLT_ENTRY_WORD2 + s->reloc_count, - p + 8); - } - else - { - val = (h->root.root.u.def.section->output_section->vma - + h->root.root.u.def.section->output_offset - + h->root.root.u.def.value); - bfd_put_32 (output_bfd, - SPARC_PLT_PIC_WORD0 + ((val >> 10) & 0x3fffff), - p); - bfd_put_32 (output_bfd, - SPARC_PLT_PIC_WORD1 + (val & 0x3ff), - p + 4); - bfd_put_32 (output_bfd, SPARC_PLT_PIC_WORD2, p + 8); - } - break; - - case bfd_arch_m68k: - if (! bfd_link_pic (info) && (h->flags & SUNOS_DEF_REGULAR) != 0) - abort (); - bfd_put_16 (output_bfd, M68K_PLT_ENTRY_WORD0, p); - bfd_put_32 (output_bfd, (- (h->plt_offset + 2)), p + 2); - bfd_put_16 (output_bfd, (bfd_vma) s->reloc_count, p + 6); - r_address += 2; - break; - - default: - abort (); - } - - /* We also need to add a jump table reloc, unless this is the - result of a JMP_TBL reloc from PIC compiled code. */ - if (bfd_link_pic (info) || (h->flags & SUNOS_DEF_REGULAR) == 0) - { - BFD_ASSERT (h->dynindx >= 0); - BFD_ASSERT (s->reloc_count * obj_reloc_entry_size (dynobj) - < s->size); - p = s->contents + s->reloc_count * obj_reloc_entry_size (output_bfd); - if (obj_reloc_entry_size (output_bfd) == RELOC_STD_SIZE) - { - struct reloc_std_external *srel; - - srel = (struct reloc_std_external *) p; - PUT_WORD (output_bfd, r_address, srel->r_address); - if (bfd_header_big_endian (output_bfd)) - { - srel->r_index[0] = (bfd_byte) (h->dynindx >> 16); - srel->r_index[1] = (bfd_byte) (h->dynindx >> 8); - srel->r_index[2] = (bfd_byte) (h->dynindx); - srel->r_type[0] = (RELOC_STD_BITS_EXTERN_BIG - | RELOC_STD_BITS_JMPTABLE_BIG); - } - else - { - srel->r_index[2] = (bfd_byte) (h->dynindx >> 16); - srel->r_index[1] = (bfd_byte) (h->dynindx >> 8); - srel->r_index[0] = (bfd_byte)h->dynindx; - srel->r_type[0] = (RELOC_STD_BITS_EXTERN_LITTLE - | RELOC_STD_BITS_JMPTABLE_LITTLE); - } - } - else - { - struct reloc_ext_external *erel; - - erel = (struct reloc_ext_external *) p; - PUT_WORD (output_bfd, r_address, erel->r_address); - if (bfd_header_big_endian (output_bfd)) - { - erel->r_index[0] = (bfd_byte) (h->dynindx >> 16); - erel->r_index[1] = (bfd_byte) (h->dynindx >> 8); - erel->r_index[2] = (bfd_byte)h->dynindx; - erel->r_type[0] = - (RELOC_EXT_BITS_EXTERN_BIG - | (RELOC_JMP_SLOT << RELOC_EXT_BITS_TYPE_SH_BIG)); - } - else - { - erel->r_index[2] = (bfd_byte) (h->dynindx >> 16); - erel->r_index[1] = (bfd_byte) (h->dynindx >> 8); - erel->r_index[0] = (bfd_byte)h->dynindx; - erel->r_type[0] = - (RELOC_EXT_BITS_EXTERN_LITTLE - | (RELOC_JMP_SLOT << RELOC_EXT_BITS_TYPE_SH_LITTLE)); - } - PUT_WORD (output_bfd, (bfd_vma) 0, erel->r_addend); - } - - ++s->reloc_count; - } - } - - /* If this is not a dynamic symbol, we don't have to do anything - else. We only check this after handling the PLT entry, because - we can have a PLT entry for a nondynamic symbol when linking PIC - compiled code from a regular object. */ - if (h->dynindx < 0) - return TRUE; - - switch (h->root.root.type) - { - default: - case bfd_link_hash_new: - abort (); - /* Avoid variable not initialized warnings. */ - return TRUE; - case bfd_link_hash_undefined: - type = N_UNDF | N_EXT; - val = 0; - break; - case bfd_link_hash_defined: - case bfd_link_hash_defweak: - { - asection *sec; - asection *output_section; - - sec = h->root.root.u.def.section; - output_section = sec->output_section; - BFD_ASSERT (bfd_is_abs_section (output_section) - || output_section->owner == output_bfd); - if (h->plt_offset != 0 - && (h->flags & SUNOS_DEF_REGULAR) == 0) - { - type = N_UNDF | N_EXT; - val = 0; - } - else - { - if (output_section == obj_textsec (output_bfd)) - type = (h->root.root.type == bfd_link_hash_defined - ? N_TEXT - : N_WEAKT); - else if (output_section == obj_datasec (output_bfd)) - type = (h->root.root.type == bfd_link_hash_defined - ? N_DATA - : N_WEAKD); - else if (output_section == obj_bsssec (output_bfd)) - type = (h->root.root.type == bfd_link_hash_defined - ? N_BSS - : N_WEAKB); - else - type = (h->root.root.type == bfd_link_hash_defined - ? N_ABS - : N_WEAKA); - type |= N_EXT; - val = (h->root.root.u.def.value - + output_section->vma - + sec->output_offset); - } - } - break; - case bfd_link_hash_common: - type = N_UNDF | N_EXT; - val = h->root.root.u.c.size; - break; - case bfd_link_hash_undefweak: - type = N_WEAKU; - val = 0; - break; - case bfd_link_hash_indirect: - case bfd_link_hash_warning: - /* FIXME: Ignore these for now. The circumstances under which - they should be written out are not clear to me. */ - return TRUE; - } - - s = bfd_get_linker_section (sunos_hash_table (info)->dynobj, ".dynsym"); - BFD_ASSERT (s != NULL); - outsym = ((struct external_nlist *) - (s->contents + h->dynindx * EXTERNAL_NLIST_SIZE)); - - H_PUT_8 (output_bfd, type, outsym->e_type); - H_PUT_8 (output_bfd, 0, outsym->e_other); - - /* FIXME: The native linker doesn't use 0 for desc. It seems to use - one less than the desc value in the shared library, although that - seems unlikely. */ - H_PUT_16 (output_bfd, 0, outsym->e_desc); - - PUT_WORD (output_bfd, h->dynstr_index, outsym->e_strx); - PUT_WORD (output_bfd, val, outsym->e_value); - - return TRUE; -} - -/* This is called for each reloc against an external symbol. If this - is a reloc which are going to copy as a dynamic reloc, then - copy it over, and tell the caller to not bother processing this - reloc. */ - -static bfd_boolean -sunos_check_dynamic_reloc (struct bfd_link_info *info, - bfd *input_bfd, - asection *input_section, - struct aout_link_hash_entry *harg, - void * reloc, - bfd_byte *contents ATTRIBUTE_UNUSED, - bfd_boolean *skip, - bfd_vma *relocationp) -{ - struct sunos_link_hash_entry *h = (struct sunos_link_hash_entry *) harg; - bfd *dynobj; - bfd_boolean baserel; - bfd_boolean jmptbl; - bfd_boolean pcrel; - asection *s; - bfd_byte *p; - long indx; - - *skip = FALSE; - - dynobj = sunos_hash_table (info)->dynobj; - - if (h != NULL - && h->plt_offset != 0 - && (bfd_link_pic (info) - || (h->flags & SUNOS_DEF_REGULAR) == 0)) - { - asection *splt; - - /* Redirect the relocation to the PLT entry. */ - splt = bfd_get_linker_section (dynobj, ".plt"); - *relocationp = (splt->output_section->vma - + splt->output_offset - + h->plt_offset); - } - - if (obj_reloc_entry_size (input_bfd) == RELOC_STD_SIZE) - { - struct reloc_std_external *srel; - - srel = (struct reloc_std_external *) reloc; - if (bfd_header_big_endian (input_bfd)) - { - baserel = (0 != (srel->r_type[0] & RELOC_STD_BITS_BASEREL_BIG)); - jmptbl = (0 != (srel->r_type[0] & RELOC_STD_BITS_JMPTABLE_BIG)); - pcrel = (0 != (srel->r_type[0] & RELOC_STD_BITS_PCREL_BIG)); - } - else - { - baserel = (0 != (srel->r_type[0] & RELOC_STD_BITS_BASEREL_LITTLE)); - jmptbl = (0 != (srel->r_type[0] & RELOC_STD_BITS_JMPTABLE_LITTLE)); - pcrel = (0 != (srel->r_type[0] & RELOC_STD_BITS_PCREL_LITTLE)); - } - } - else - { - struct reloc_ext_external *erel; - int r_type; - - erel = (struct reloc_ext_external *) reloc; - if (bfd_header_big_endian (input_bfd)) - r_type = ((erel->r_type[0] & RELOC_EXT_BITS_TYPE_BIG) - >> RELOC_EXT_BITS_TYPE_SH_BIG); - else - r_type = ((erel->r_type[0] & RELOC_EXT_BITS_TYPE_LITTLE) - >> RELOC_EXT_BITS_TYPE_SH_LITTLE); - baserel = (r_type == RELOC_BASE10 - || r_type == RELOC_BASE13 - || r_type == RELOC_BASE22); - jmptbl = r_type == RELOC_JMP_TBL; - pcrel = (r_type == RELOC_DISP8 - || r_type == RELOC_DISP16 - || r_type == RELOC_DISP32 - || r_type == RELOC_WDISP30 - || r_type == RELOC_WDISP22); - /* We don't consider the PC10 and PC22 types to be PC relative, - because they are pcrel_offset. */ - } - - if (baserel) - { - bfd_vma *got_offsetp; - asection *sgot; - - if (h != NULL) - got_offsetp = &h->got_offset; - else if (adata (input_bfd).local_got_offsets == NULL) - got_offsetp = NULL; - else - { - struct reloc_std_external *srel; - int r_index; - - srel = (struct reloc_std_external *) reloc; - if (obj_reloc_entry_size (input_bfd) == RELOC_STD_SIZE) - { - if (bfd_header_big_endian (input_bfd)) - r_index = ((srel->r_index[0] << 16) - | (srel->r_index[1] << 8) - | srel->r_index[2]); - else - r_index = ((srel->r_index[2] << 16) - | (srel->r_index[1] << 8) - | srel->r_index[0]); - } - else - { - struct reloc_ext_external *erel; - - erel = (struct reloc_ext_external *) reloc; - if (bfd_header_big_endian (input_bfd)) - r_index = ((erel->r_index[0] << 16) - | (erel->r_index[1] << 8) - | erel->r_index[2]); - else - r_index = ((erel->r_index[2] << 16) - | (erel->r_index[1] << 8) - | erel->r_index[0]); - } - - got_offsetp = adata (input_bfd).local_got_offsets + r_index; - } - - BFD_ASSERT (got_offsetp != NULL && *got_offsetp != 0); - - sgot = bfd_get_linker_section (dynobj, ".got"); - - /* We set the least significant bit to indicate whether we have - already initialized the GOT entry. */ - if ((*got_offsetp & 1) == 0) - { - if (h == NULL - || (! bfd_link_pic (info) - && ((h->flags & SUNOS_DEF_DYNAMIC) == 0 - || (h->flags & SUNOS_DEF_REGULAR) != 0))) - PUT_WORD (dynobj, *relocationp, sgot->contents + *got_offsetp); - else - PUT_WORD (dynobj, 0, sgot->contents + *got_offsetp); - - if (bfd_link_pic (info) - || (h != NULL - && (h->flags & SUNOS_DEF_DYNAMIC) != 0 - && (h->flags & SUNOS_DEF_REGULAR) == 0)) - { - /* We need to create a GLOB_DAT or 32 reloc to tell the - dynamic linker to fill in this entry in the table. */ - - s = bfd_get_linker_section (dynobj, ".dynrel"); - BFD_ASSERT (s != NULL); - BFD_ASSERT (s->reloc_count * obj_reloc_entry_size (dynobj) - < s->size); - - p = (s->contents - + s->reloc_count * obj_reloc_entry_size (dynobj)); - - if (h != NULL) - indx = h->dynindx; - else - indx = 0; - - if (obj_reloc_entry_size (dynobj) == RELOC_STD_SIZE) - { - struct reloc_std_external *srel; - - srel = (struct reloc_std_external *) p; - PUT_WORD (dynobj, - (*got_offsetp - + sgot->output_section->vma - + sgot->output_offset), - srel->r_address); - if (bfd_header_big_endian (dynobj)) - { - srel->r_index[0] = (bfd_byte) (indx >> 16); - srel->r_index[1] = (bfd_byte) (indx >> 8); - srel->r_index[2] = (bfd_byte)indx; - if (h == NULL) - srel->r_type[0] = 2 << RELOC_STD_BITS_LENGTH_SH_BIG; - else - srel->r_type[0] = - (RELOC_STD_BITS_EXTERN_BIG - | RELOC_STD_BITS_BASEREL_BIG - | RELOC_STD_BITS_RELATIVE_BIG - | (2 << RELOC_STD_BITS_LENGTH_SH_BIG)); - } - else - { - srel->r_index[2] = (bfd_byte) (indx >> 16); - srel->r_index[1] = (bfd_byte) (indx >> 8); - srel->r_index[0] = (bfd_byte)indx; - if (h == NULL) - srel->r_type[0] = 2 << RELOC_STD_BITS_LENGTH_SH_LITTLE; - else - srel->r_type[0] = - (RELOC_STD_BITS_EXTERN_LITTLE - | RELOC_STD_BITS_BASEREL_LITTLE - | RELOC_STD_BITS_RELATIVE_LITTLE - | (2 << RELOC_STD_BITS_LENGTH_SH_LITTLE)); - } - } - else - { - struct reloc_ext_external *erel; - - erel = (struct reloc_ext_external *) p; - PUT_WORD (dynobj, - (*got_offsetp - + sgot->output_section->vma - + sgot->output_offset), - erel->r_address); - if (bfd_header_big_endian (dynobj)) - { - erel->r_index[0] = (bfd_byte) (indx >> 16); - erel->r_index[1] = (bfd_byte) (indx >> 8); - erel->r_index[2] = (bfd_byte)indx; - if (h == NULL) - erel->r_type[0] = - RELOC_32 << RELOC_EXT_BITS_TYPE_SH_BIG; - else - erel->r_type[0] = - (RELOC_EXT_BITS_EXTERN_BIG - | (RELOC_GLOB_DAT << RELOC_EXT_BITS_TYPE_SH_BIG)); - } - else - { - erel->r_index[2] = (bfd_byte) (indx >> 16); - erel->r_index[1] = (bfd_byte) (indx >> 8); - erel->r_index[0] = (bfd_byte)indx; - if (h == NULL) - erel->r_type[0] = - RELOC_32 << RELOC_EXT_BITS_TYPE_SH_LITTLE; - else - erel->r_type[0] = - (RELOC_EXT_BITS_EXTERN_LITTLE - | (RELOC_GLOB_DAT - << RELOC_EXT_BITS_TYPE_SH_LITTLE)); - } - PUT_WORD (dynobj, 0, erel->r_addend); - } - - ++s->reloc_count; - } - - *got_offsetp |= 1; - } - - *relocationp = (sgot->vma - + (*got_offsetp &~ (bfd_vma) 1) - - sunos_hash_table (info)->got_base); - - /* There is nothing else to do for a base relative reloc. */ - return TRUE; - } - - if (! sunos_hash_table (info)->dynamic_sections_needed) - return TRUE; - if (! bfd_link_pic (info)) - { - if (h == NULL - || h->dynindx == -1 - || h->root.root.type != bfd_link_hash_undefined - || (h->flags & SUNOS_DEF_REGULAR) != 0 - || (h->flags & SUNOS_DEF_DYNAMIC) == 0 - || (h->root.root.u.undef.abfd->flags & DYNAMIC) == 0) - return TRUE; - } - else - { - if (h != NULL - && (h->dynindx == -1 - || jmptbl - || strcmp (h->root.root.root.string, - "__GLOBAL_OFFSET_TABLE_") == 0)) - return TRUE; - } - - /* It looks like this is a reloc we are supposed to copy. */ - - s = bfd_get_linker_section (dynobj, ".dynrel"); - BFD_ASSERT (s != NULL); - BFD_ASSERT (s->reloc_count * obj_reloc_entry_size (dynobj) < s->size); - - p = s->contents + s->reloc_count * obj_reloc_entry_size (dynobj); - - /* Copy the reloc over. */ - memcpy (p, reloc, obj_reloc_entry_size (dynobj)); - - if (h != NULL) - indx = h->dynindx; - else - indx = 0; - - /* Adjust the address and symbol index. */ - if (obj_reloc_entry_size (dynobj) == RELOC_STD_SIZE) - { - struct reloc_std_external *srel; - - srel = (struct reloc_std_external *) p; - PUT_WORD (dynobj, - (GET_WORD (dynobj, srel->r_address) - + input_section->output_section->vma - + input_section->output_offset), - srel->r_address); - if (bfd_header_big_endian (dynobj)) - { - srel->r_index[0] = (bfd_byte) (indx >> 16); - srel->r_index[1] = (bfd_byte) (indx >> 8); - srel->r_index[2] = (bfd_byte)indx; - } - else - { - srel->r_index[2] = (bfd_byte) (indx >> 16); - srel->r_index[1] = (bfd_byte) (indx >> 8); - srel->r_index[0] = (bfd_byte)indx; - } - /* FIXME: We may have to change the addend for a PC relative - reloc. */ - } - else - { - struct reloc_ext_external *erel; - - erel = (struct reloc_ext_external *) p; - PUT_WORD (dynobj, - (GET_WORD (dynobj, erel->r_address) - + input_section->output_section->vma - + input_section->output_offset), - erel->r_address); - if (bfd_header_big_endian (dynobj)) - { - erel->r_index[0] = (bfd_byte) (indx >> 16); - erel->r_index[1] = (bfd_byte) (indx >> 8); - erel->r_index[2] = (bfd_byte)indx; - } - else - { - erel->r_index[2] = (bfd_byte) (indx >> 16); - erel->r_index[1] = (bfd_byte) (indx >> 8); - erel->r_index[0] = (bfd_byte)indx; - } - if (pcrel && h != NULL) - { - /* Adjust the addend for the change in address. */ - PUT_WORD (dynobj, - (GET_WORD (dynobj, erel->r_addend) - - (input_section->output_section->vma - + input_section->output_offset - - input_section->vma)), - erel->r_addend); - } - } - - ++s->reloc_count; - - if (h != NULL) - *skip = TRUE; - - return TRUE; -} - -/* Finish up the dynamic linking information. */ - -static bfd_boolean -sunos_finish_dynamic_link (bfd *abfd, struct bfd_link_info *info) -{ - bfd *dynobj; - asection *o; - asection *s; - asection *sdyn; - - if (! sunos_hash_table (info)->dynamic_sections_needed - && ! sunos_hash_table (info)->got_needed) - return TRUE; - - dynobj = sunos_hash_table (info)->dynobj; - - sdyn = bfd_get_linker_section (dynobj, ".dynamic"); - BFD_ASSERT (sdyn != NULL); - - /* Finish up the .need section. The linker emulation code filled it - in, but with offsets from the start of the section instead of - real addresses. Now that we know the section location, we can - fill in the final values. */ - s = bfd_get_section_by_name (dynobj, ".need"); - if (s != NULL && s->size != 0) - { - file_ptr filepos; - bfd_byte *p; - - filepos = s->output_section->filepos + s->output_offset; - p = s->contents; - while (1) - { - bfd_vma val; - - PUT_WORD (dynobj, GET_WORD (dynobj, p) + filepos, p); - val = GET_WORD (dynobj, p + 12); - if (val == 0) - break; - PUT_WORD (dynobj, val + filepos, p + 12); - p += 16; - } - } - - /* The first entry in the .got section is the address of the - dynamic information, unless this is a shared library. */ - s = bfd_get_linker_section (dynobj, ".got"); - BFD_ASSERT (s != NULL); - if (bfd_link_pic (info) || sdyn->size == 0) - PUT_WORD (dynobj, 0, s->contents); - else - PUT_WORD (dynobj, sdyn->output_section->vma + sdyn->output_offset, - s->contents); - - for (o = dynobj->sections; o != NULL; o = o->next) - { - if ((o->flags & SEC_HAS_CONTENTS) != 0 - && o->contents != NULL) - { - BFD_ASSERT (o->output_section != NULL - && o->output_section->owner == abfd); - if (! bfd_set_section_contents (abfd, o->output_section, - o->contents, - (file_ptr) o->output_offset, - o->size)) - return FALSE; - } - } - - if (sdyn->size > 0) - { - struct external_sun4_dynamic esd; - struct external_sun4_dynamic_link esdl; - file_ptr pos; - - /* Finish up the dynamic link information. */ - PUT_WORD (dynobj, (bfd_vma) 3, esd.ld_version); - PUT_WORD (dynobj, - sdyn->output_section->vma + sdyn->output_offset + sizeof esd, - esd.ldd); - PUT_WORD (dynobj, - (sdyn->output_section->vma - + sdyn->output_offset - + sizeof esd - + EXTERNAL_SUN4_DYNAMIC_DEBUGGER_SIZE), - esd.ld); - - if (! bfd_set_section_contents (abfd, sdyn->output_section, &esd, - (file_ptr) sdyn->output_offset, - (bfd_size_type) sizeof esd)) - return FALSE; - - PUT_WORD (dynobj, (bfd_vma) 0, esdl.ld_loaded); - - s = bfd_get_section_by_name (dynobj, ".need"); - if (s == NULL || s->size == 0) - PUT_WORD (dynobj, (bfd_vma) 0, esdl.ld_need); - else - PUT_WORD (dynobj, s->output_section->filepos + s->output_offset, - esdl.ld_need); - - s = bfd_get_section_by_name (dynobj, ".rules"); - if (s == NULL || s->size == 0) - PUT_WORD (dynobj, (bfd_vma) 0, esdl.ld_rules); - else - PUT_WORD (dynobj, s->output_section->filepos + s->output_offset, - esdl.ld_rules); - - s = bfd_get_linker_section (dynobj, ".got"); - BFD_ASSERT (s != NULL); - PUT_WORD (dynobj, s->output_section->vma + s->output_offset, - esdl.ld_got); - - s = bfd_get_linker_section (dynobj, ".plt"); - BFD_ASSERT (s != NULL); - PUT_WORD (dynobj, s->output_section->vma + s->output_offset, - esdl.ld_plt); - PUT_WORD (dynobj, s->size, esdl.ld_plt_sz); - - s = bfd_get_linker_section (dynobj, ".dynrel"); - BFD_ASSERT (s != NULL); - BFD_ASSERT (s->reloc_count * obj_reloc_entry_size (dynobj) - == s->size); - PUT_WORD (dynobj, s->output_section->filepos + s->output_offset, - esdl.ld_rel); - - s = bfd_get_linker_section (dynobj, ".hash"); - BFD_ASSERT (s != NULL); - PUT_WORD (dynobj, s->output_section->filepos + s->output_offset, - esdl.ld_hash); - - s = bfd_get_linker_section (dynobj, ".dynsym"); - BFD_ASSERT (s != NULL); - PUT_WORD (dynobj, s->output_section->filepos + s->output_offset, - esdl.ld_stab); - - PUT_WORD (dynobj, (bfd_vma) 0, esdl.ld_stab_hash); - - PUT_WORD (dynobj, (bfd_vma) sunos_hash_table (info)->bucketcount, - esdl.ld_buckets); - - s = bfd_get_linker_section (dynobj, ".dynstr"); - BFD_ASSERT (s != NULL); - PUT_WORD (dynobj, s->output_section->filepos + s->output_offset, - esdl.ld_symbols); - PUT_WORD (dynobj, s->size, esdl.ld_symb_size); - - /* The size of the text area is the size of the .text section - rounded up to a page boundary. FIXME: Should the page size be - conditional on something? */ - PUT_WORD (dynobj, - BFD_ALIGN (obj_textsec (abfd)->size, 0x2000), - esdl.ld_text); - - pos = sdyn->output_offset; - pos += sizeof esd + EXTERNAL_SUN4_DYNAMIC_DEBUGGER_SIZE; - if (! bfd_set_section_contents (abfd, sdyn->output_section, &esdl, - pos, (bfd_size_type) sizeof esdl)) - return FALSE; - - abfd->flags |= DYNAMIC; - } - - return TRUE; -} diff -Nru gdb-8.1/bfd/syms.c gdb-8.2/bfd/syms.c --- gdb-8.1/bfd/syms.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/syms.c 2018-09-05 07:27:13.000000000 +0000 @@ -1076,7 +1076,7 @@ || r->howto->dst_mask != 0xffffffff) { _bfd_error_handler - (_("Unsupported .stab relocation")); + (_("unsupported .stab relocation")); bfd_set_error (bfd_error_invalid_operation); if (reloc_vector != NULL) free (reloc_vector); @@ -1427,3 +1427,117 @@ return TRUE; } + +long +_bfd_nosymbols_canonicalize_symtab (bfd *abfd ATTRIBUTE_UNUSED, + asymbol **location ATTRIBUTE_UNUSED) +{ + return 0; +} + +void +_bfd_nosymbols_print_symbol (bfd *abfd ATTRIBUTE_UNUSED, + void *afile ATTRIBUTE_UNUSED, + asymbol *symbol ATTRIBUTE_UNUSED, + bfd_print_symbol_type how ATTRIBUTE_UNUSED) +{ +} + +void +_bfd_nosymbols_get_symbol_info (bfd *abfd ATTRIBUTE_UNUSED, + asymbol *sym ATTRIBUTE_UNUSED, + symbol_info *ret ATTRIBUTE_UNUSED) +{ +} + +const char * +_bfd_nosymbols_get_symbol_version_string (bfd *abfd, + asymbol *symbol ATTRIBUTE_UNUSED, + bfd_boolean *hidden ATTRIBUTE_UNUSED) +{ + return (const char *) _bfd_ptr_bfd_null_error (abfd); +} + +bfd_boolean +_bfd_nosymbols_bfd_is_local_label_name (bfd *abfd ATTRIBUTE_UNUSED, + const char *name ATTRIBUTE_UNUSED) +{ + return FALSE; +} + +alent * +_bfd_nosymbols_get_lineno (bfd *abfd, asymbol *sym ATTRIBUTE_UNUSED) +{ + return (alent *) _bfd_ptr_bfd_null_error (abfd); +} + +bfd_boolean +_bfd_nosymbols_find_nearest_line + (bfd *abfd, + asymbol **symbols ATTRIBUTE_UNUSED, + asection *section ATTRIBUTE_UNUSED, + bfd_vma offset ATTRIBUTE_UNUSED, + const char **filename_ptr ATTRIBUTE_UNUSED, + const char **functionname_ptr ATTRIBUTE_UNUSED, + unsigned int *line_ptr ATTRIBUTE_UNUSED, + unsigned int *discriminator_ptr ATTRIBUTE_UNUSED) +{ + return _bfd_bool_bfd_false_error (abfd); +} + +bfd_boolean +_bfd_nosymbols_find_line (bfd *abfd, + asymbol **symbols ATTRIBUTE_UNUSED, + asymbol *symbol ATTRIBUTE_UNUSED, + const char **filename_ptr ATTRIBUTE_UNUSED, + unsigned int *line_ptr ATTRIBUTE_UNUSED) +{ + return _bfd_bool_bfd_false_error (abfd); +} + +bfd_boolean +_bfd_nosymbols_find_inliner_info + (bfd *abfd, + const char **filename_ptr ATTRIBUTE_UNUSED, + const char **functionname_ptr ATTRIBUTE_UNUSED, + unsigned int *line_ptr ATTRIBUTE_UNUSED) +{ + return _bfd_bool_bfd_false_error (abfd); +} + +asymbol * +_bfd_nosymbols_bfd_make_debug_symbol (bfd *abfd, + void *ptr ATTRIBUTE_UNUSED, + unsigned long sz ATTRIBUTE_UNUSED) +{ + return (asymbol *) _bfd_ptr_bfd_null_error (abfd); +} + +long +_bfd_nosymbols_read_minisymbols (bfd *abfd, + bfd_boolean dynamic ATTRIBUTE_UNUSED, + void **minisymsp ATTRIBUTE_UNUSED, + unsigned int *sizep ATTRIBUTE_UNUSED) +{ + return _bfd_long_bfd_n1_error (abfd); +} + +asymbol * +_bfd_nosymbols_minisymbol_to_symbol (bfd *abfd, + bfd_boolean dynamic ATTRIBUTE_UNUSED, + const void *minisym ATTRIBUTE_UNUSED, + asymbol *sym ATTRIBUTE_UNUSED) +{ + return (asymbol *) _bfd_ptr_bfd_null_error (abfd); +} + +long +_bfd_nodynamic_get_synthetic_symtab (bfd *abfd, + long symcount ATTRIBUTE_UNUSED, + asymbol **syms ATTRIBUTE_UNUSED, + long dynsymcount ATTRIBUTE_UNUSED, + asymbol **dynsyms ATTRIBUTE_UNUSED, + asymbol **ret ATTRIBUTE_UNUSED) +{ + return _bfd_long_bfd_n1_error (abfd); +} diff -Nru gdb-8.1/bfd/sysdep.h gdb-8.2/bfd/sysdep.h --- gdb-8.1/bfd/sysdep.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/sysdep.h 2018-09-05 07:27:13.000000000 +0000 @@ -108,6 +108,10 @@ #ifndef O_ACCMODE #define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR) #endif +/* Systems that don't already define this, don't need it. */ +#ifndef O_BINARY +#define O_BINARY 0 +#endif #ifndef SEEK_SET #define SEEK_SET 0 diff -Nru gdb-8.1/bfd/targets.c gdb-8.2/bfd/targets.c --- gdb-8.1/bfd/targets.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/targets.c 2018-09-05 07:44:28.000000000 +0000 @@ -151,9 +151,6 @@ . bfd_target_ecoff_flavour, . bfd_target_xcoff_flavour, . bfd_target_elf_flavour, -. bfd_target_ieee_flavour, -. bfd_target_nlm_flavour, -. bfd_target_oasys_flavour, . bfd_target_tekhex_flavour, . bfd_target_srec_flavour, . bfd_target_verilog_flavour, @@ -468,6 +465,7 @@ . NAME##_bfd_discard_group, \ . NAME##_section_already_linked, \ . NAME##_bfd_define_common_symbol, \ +. NAME##_bfd_link_hide_symbol, \ . NAME##_bfd_define_start_stop . . int (*_bfd_sizeof_headers) (bfd *, struct bfd_link_info *); @@ -534,6 +532,10 @@ . bfd_boolean (*_bfd_define_common_symbol) (bfd *, struct bfd_link_info *, . struct bfd_link_hash_entry *); . +. {* Hide a symbol. *} +. void (*_bfd_link_hide_symbol) (bfd *, struct bfd_link_info *, +. struct bfd_link_hash_entry *); +. . {* Define a __start, __stop, .startof. or .sizeof. symbol. *} . struct bfd_link_hash_entry * . (*_bfd_define_start_stop) (struct bfd_link_info *, const char *, @@ -594,24 +596,16 @@ extern const bfd_target alpha_ecoff_le_vec; extern const bfd_target alpha_elf64_vec; extern const bfd_target alpha_elf64_fbsd_vec; -extern const bfd_target alpha_nlm32_vec; extern const bfd_target alpha_vms_vec; extern const bfd_target alpha_vms_lib_txt_vec; extern const bfd_target am33_elf32_linux_vec; -extern const bfd_target aout0_be_vec; -extern const bfd_target aout64_vec; extern const bfd_target aout_vec; -extern const bfd_target aout_adobe_vec; extern const bfd_target arc_elf32_be_vec; extern const bfd_target arc_elf32_le_vec; -extern const bfd_target arm_aout_be_vec; -extern const bfd_target arm_aout_le_vec; -extern const bfd_target arm_aout_nbsd_vec; -extern const bfd_target arm_aout_riscix_vec; -extern const bfd_target arm_coff_be_vec; -extern const bfd_target arm_coff_le_vec; extern const bfd_target arm_elf32_be_vec; extern const bfd_target arm_elf32_le_vec; +extern const bfd_target arm_elf32_fdpic_be_vec; +extern const bfd_target arm_elf32_fdpic_le_vec; extern const bfd_target arm_elf32_nacl_be_vec; extern const bfd_target arm_elf32_nacl_le_vec; extern const bfd_target arm_elf32_symbian_be_vec; @@ -621,21 +615,15 @@ extern const bfd_target arm_mach_o_vec; extern const bfd_target arm_pe_be_vec; extern const bfd_target arm_pe_le_vec; -extern const bfd_target arm_pe_epoc_be_vec; -extern const bfd_target arm_pe_epoc_le_vec; extern const bfd_target arm_pe_wince_be_vec; extern const bfd_target arm_pe_wince_le_vec; extern const bfd_target arm_pei_be_vec; extern const bfd_target arm_pei_le_vec; -extern const bfd_target arm_pei_epoc_be_vec; -extern const bfd_target arm_pei_epoc_le_vec; extern const bfd_target arm_pei_wince_be_vec; extern const bfd_target arm_pei_wince_le_vec; extern const bfd_target avr_elf32_vec; extern const bfd_target bfin_elf32_vec; extern const bfd_target bfin_elf32_fdpic_vec; -extern const bfd_target bout_be_vec; -extern const bfd_target bout_le_vec; extern const bfd_target cr16_elf32_vec; extern const bfd_target cr16c_elf32_vec; extern const bfd_target cris_aout_vec; @@ -653,26 +641,17 @@ extern const bfd_target fr30_elf32_vec; extern const bfd_target frv_elf32_vec; extern const bfd_target frv_elf32_fdpic_vec; -extern const bfd_target h8300_coff_vec; extern const bfd_target h8300_elf32_vec; extern const bfd_target h8300_elf32_linux_vec; -extern const bfd_target h8500_coff_vec; extern const bfd_target hppa_elf32_vec; extern const bfd_target hppa_elf32_linux_vec; extern const bfd_target hppa_elf32_nbsd_vec; extern const bfd_target hppa_elf64_vec; extern const bfd_target hppa_elf64_linux_vec; extern const bfd_target hppa_som_vec; -extern const bfd_target i370_elf32_vec; extern const bfd_target i386_aout_vec; extern const bfd_target i386_aout_bsd_vec; -extern const bfd_target i386_aout_dynix_vec; -extern const bfd_target i386_aout_fbsd_vec; -extern const bfd_target i386_aout_linux_vec; extern const bfd_target i386_aout_lynx_vec; -extern const bfd_target i386_aout_mach3_vec; -extern const bfd_target i386_aout_nbsd_vec; -extern const bfd_target i386_aout_os9k_vec; extern const bfd_target i386_coff_vec; extern const bfd_target i386_coff_go32_vec; extern const bfd_target i386_coff_go32stubbed_vec; @@ -684,14 +663,9 @@ extern const bfd_target i386_elf32_vxworks_vec; extern const bfd_target i386_mach_o_vec; extern const bfd_target i386_msdos_vec; -extern const bfd_target i386_nlm32_vec; extern const bfd_target i386_pe_vec; extern const bfd_target i386_pei_vec; extern const bfd_target iamcu_elf32_vec; -extern const bfd_target i860_coff_vec; -extern const bfd_target i860_elf32_vec; -extern const bfd_target i860_elf32_le_vec; -extern const bfd_target i960_elf32_vec; extern const bfd_target ia64_elf32_be_vec; extern const bfd_target ia64_elf32_hpux_be_vec; extern const bfd_target ia64_elf64_be_vec; @@ -699,9 +673,6 @@ extern const bfd_target ia64_elf64_hpux_be_vec; extern const bfd_target ia64_elf64_vms_vec; extern const bfd_target ia64_pei_vec; -extern const bfd_target icoff_be_vec; -extern const bfd_target icoff_le_vec; -extern const bfd_target ieee_vec; extern const bfd_target ip2k_elf32_vec; extern const bfd_target iq2000_elf32_vec; extern const bfd_target k1om_elf64_vec; @@ -717,23 +688,8 @@ extern const bfd_target m32r_elf32_linux_le_vec; extern const bfd_target m68hc11_elf32_vec; extern const bfd_target m68hc12_elf32_vec; -extern const bfd_target m68k_aout_4knbsd_vec; -extern const bfd_target m68k_aout_hp300bsd_vec; -extern const bfd_target m68k_aout_hp300hpux_vec; -extern const bfd_target m68k_aout_linux_vec; -extern const bfd_target m68k_aout_nbsd_vec; -extern const bfd_target m68k_aout_newsos3_vec; -extern const bfd_target m68k_coff_vec; -extern const bfd_target m68k_coff_apollo_vec; -extern const bfd_target m68k_coff_aux_vec; -extern const bfd_target m68k_coff_sysv_vec; -extern const bfd_target m68k_coff_un_vec; extern const bfd_target m68k_elf32_vec; -extern const bfd_target m68k_versados_vec; -extern const bfd_target m88k_aout_mach3_vec; -extern const bfd_target m88k_aout_obsd_vec; -extern const bfd_target m88k_coff_bcs_vec; -extern const bfd_target m88k_elf32_vec; +extern const bfd_target s12z_elf32_vec; extern const bfd_target mach_o_be_vec; extern const bfd_target mach_o_le_vec; extern const bfd_target mach_o_fat_vec; @@ -748,8 +704,6 @@ extern const bfd_target metag_elf32_vec; extern const bfd_target microblaze_elf32_vec; extern const bfd_target microblaze_elf32_le_vec; -extern const bfd_target mips_aout_be_vec; -extern const bfd_target mips_aout_le_vec; extern const bfd_target mips_ecoff_be_vec; extern const bfd_target mips_ecoff_le_vec; extern const bfd_target mips_ecoff_bele_vec; @@ -773,8 +727,6 @@ extern const bfd_target mips_elf64_trad_le_vec; extern const bfd_target mips_elf64_tradfbsd_be_vec; extern const bfd_target mips_elf64_tradfbsd_le_vec; -extern const bfd_target mips_pe_le_vec; -extern const bfd_target mips_pei_le_vec; extern const bfd_target mmix_elf64_vec; extern const bfd_target mmix_mmo_vec; extern const bfd_target mn10200_elf32_vec; @@ -788,11 +740,11 @@ extern const bfd_target nds32_elf32_le_vec; extern const bfd_target nds32_elf32_linux_be_vec; extern const bfd_target nds32_elf32_linux_le_vec; +extern const bfd_target nfp_elf64_vec; extern const bfd_target nios2_elf32_be_vec; extern const bfd_target nios2_elf32_le_vec; extern const bfd_target ns32k_aout_pc532mach_vec; extern const bfd_target ns32k_aout_pc532nbsd_vec; -extern const bfd_target oasys_vec; extern const bfd_target or1k_elf32_vec; extern const bfd_target pdp11_aout_vec; extern const bfd_target pef_vec; @@ -808,7 +760,6 @@ extern const bfd_target powerpc_elf64_vec; extern const bfd_target powerpc_elf64_le_vec; extern const bfd_target powerpc_elf64_fbsd_vec; -extern const bfd_target powerpc_nlm32_vec; extern const bfd_target powerpc_pe_vec; extern const bfd_target powerpc_pe_le_vec; extern const bfd_target powerpc_pei_vec; @@ -828,18 +779,6 @@ extern const bfd_target s390_elf64_vec; extern const bfd_target score_elf32_be_vec; extern const bfd_target score_elf32_le_vec; -extern const bfd_target sh64_elf32_vec; -extern const bfd_target sh64_elf32_le_vec; -extern const bfd_target sh64_elf32_linux_vec; -extern const bfd_target sh64_elf32_linux_be_vec; -extern const bfd_target sh64_elf32_nbsd_vec; -extern const bfd_target sh64_elf32_nbsd_le_vec; -extern const bfd_target sh64_elf64_vec; -extern const bfd_target sh64_elf64_le_vec; -extern const bfd_target sh64_elf64_linux_vec; -extern const bfd_target sh64_elf64_linux_be_vec; -extern const bfd_target sh64_elf64_nbsd_vec; -extern const bfd_target sh64_elf64_nbsd_le_vec; extern const bfd_target sh_coff_vec; extern const bfd_target sh_coff_le_vec; extern const bfd_target sh_coff_small_vec; @@ -852,25 +791,16 @@ extern const bfd_target sh_elf32_linux_be_vec; extern const bfd_target sh_elf32_nbsd_vec; extern const bfd_target sh_elf32_nbsd_le_vec; -extern const bfd_target sh_elf32_symbian_le_vec; extern const bfd_target sh_elf32_vxworks_vec; extern const bfd_target sh_elf32_vxworks_le_vec; extern const bfd_target sh_pe_le_vec; extern const bfd_target sh_pei_le_vec; -extern const bfd_target sparc_aout_le_vec; -extern const bfd_target sparc_aout_linux_vec; -extern const bfd_target sparc_aout_lynx_vec; -extern const bfd_target sparc_aout_nbsd_vec; -extern const bfd_target sparc_aout_sunos_be_vec; -extern const bfd_target sparc_coff_vec; -extern const bfd_target sparc_coff_lynx_vec; extern const bfd_target sparc_elf32_vec; extern const bfd_target sparc_elf32_sol2_vec; extern const bfd_target sparc_elf32_vxworks_vec; extern const bfd_target sparc_elf64_vec; extern const bfd_target sparc_elf64_fbsd_vec; extern const bfd_target sparc_elf64_sol2_vec; -extern const bfd_target sparc_nlm32_vec; extern const bfd_target spu_elf32_vec; extern const bfd_target sym_vec; extern const bfd_target tic30_aout_vec; @@ -903,14 +833,11 @@ extern const bfd_target v850_elf32_vec; extern const bfd_target ft32_elf32_vec; extern const bfd_target vax_aout_1knbsd_vec; -extern const bfd_target vax_aout_bsd_vec; extern const bfd_target vax_aout_nbsd_vec; extern const bfd_target vax_elf32_vec; extern const bfd_target visium_elf32_vec; -extern const bfd_target w65_coff_vec; extern const bfd_target wasm_vec; extern const bfd_target wasm32_elf32_vec; -extern const bfd_target we32k_coff_vec; extern const bfd_target x86_64_coff_vec; extern const bfd_target x86_64_elf32_vec; extern const bfd_target x86_64_elf32_nacl_vec; @@ -986,41 +913,25 @@ &alpha_ecoff_le_vec, &alpha_elf64_vec, &alpha_elf64_fbsd_vec, - &alpha_nlm32_vec, &alpha_vms_vec, #endif &alpha_vms_lib_txt_vec, &am33_elf32_linux_vec, - &aout0_be_vec, -#ifdef BFD64 - &aout64_vec, /* Only compiled if host has long-long support. */ -#endif #if 0 /* Since a.out files lack decent magic numbers, no way to recognize which kind of a.out file it is. */ &aout_vec, #endif - &aout_adobe_vec, &arc_elf32_be_vec, &arc_elf32_le_vec, -#if 0 - /* We have no way of distinguishing these from other a.out variants. */ - &arm_aout_be_vec, - &arm_aout_le_vec, -#endif - &arm_aout_nbsd_vec, -#if 0 - /* We have no way of distinguishing these from other a.out variants. */ - &arm_aout_riscix_vec, -#endif - &arm_coff_be_vec, - &arm_coff_le_vec, &arm_elf32_be_vec, &arm_elf32_le_vec, + &arm_elf32_fdpic_be_vec, + &arm_elf32_fdpic_le_vec, &arm_elf32_symbian_be_vec, &arm_elf32_symbian_le_vec, &arm_elf32_vxworks_be_vec, @@ -1028,14 +939,10 @@ &arm_mach_o_vec, &arm_pe_be_vec, &arm_pe_le_vec, - &arm_pe_epoc_be_vec, - &arm_pe_epoc_le_vec, &arm_pe_wince_be_vec, &arm_pe_wince_le_vec, &arm_pei_be_vec, &arm_pei_le_vec, - &arm_pei_epoc_be_vec, - &arm_pei_epoc_le_vec, &arm_pei_wince_be_vec, &arm_pei_wince_le_vec, @@ -1044,9 +951,6 @@ &bfin_elf32_vec, &bfin_elf32_fdpic_vec, - &bout_be_vec, - &bout_le_vec, - &cr16_elf32_vec, &cr16c_elf32_vec, @@ -1079,10 +983,8 @@ &frv_elf32_vec, &frv_elf32_fdpic_vec, - &h8300_coff_vec, &h8300_elf32_vec, &h8300_elf32_linux_vec, - &h8500_coff_vec, &hppa_elf32_vec, &hppa_elf32_linux_vec, @@ -1093,26 +995,9 @@ #endif &hppa_som_vec, - &i370_elf32_vec, - &i386_aout_vec, &i386_aout_bsd_vec, -#if 0 - &i386_aout_dynix_vec, -#endif - &i386_aout_fbsd_vec, -#if 0 - /* Since a.out files lack decent magic numbers, no way to recognize - which kind of a.out file it is. */ - &i386_aout_linux_vec, -#endif &i386_aout_lynx_vec, -#if 0 - /* No distinguishing features for Mach 3 executables. */ - &i386_aout_mach3_vec, -#endif - &i386_aout_nbsd_vec, - &i386_aout_os9k_vec, &i386_coff_vec, &i386_coff_go32_vec, &i386_coff_go32stubbed_vec, @@ -1124,18 +1009,11 @@ &i386_elf32_vxworks_vec, &i386_mach_o_vec, &i386_msdos_vec, - &i386_nlm32_vec, &i386_pe_vec, &i386_pei_vec, &iamcu_elf32_vec, - &i860_coff_vec, - &i860_elf32_vec, - &i860_elf32_le_vec, - - &i960_elf32_vec, - #ifdef BFD64 #if 0 &ia64_elf32_be_vec, @@ -1148,11 +1026,6 @@ &ia64_pei_vec, #endif - &icoff_be_vec, - &icoff_le_vec, - - &ieee_vec, - &ip2k_elf32_vec, &iq2000_elf32_vec, @@ -1175,33 +1048,9 @@ &m68hc11_elf32_vec, &m68hc12_elf32_vec, -#if 0 - &m68k_aout_4knbsd_vec, - /* Clashes with sparc_aout_sunos_be_vec magic no. */ - &m68k_aout_hp300bsd_vec, -#endif - &m68k_aout_hp300hpux_vec, -#if 0 - /* Since a.out files lack decent magic numbers, no way to recognize - which kind of a.out file it is. */ - &m68k_aout_linux_vec, -#endif - &m68k_aout_nbsd_vec, - &m68k_aout_newsos3_vec, - &m68k_coff_vec, -#if 0 - &m68k_coff_apollo_vec, - &m68k_coff_aux_vec, -#endif - &m68k_coff_sysv_vec, - &m68k_coff_un_vec, &m68k_elf32_vec, - &m68k_versados_vec, - &m88k_aout_mach3_vec, - &m88k_aout_obsd_vec, - &m88k_coff_bcs_vec, - &m88k_elf32_vec, + &s12z_elf32_vec, &mach_o_be_vec, &mach_o_le_vec, @@ -1220,11 +1069,6 @@ µblaze_elf32_vec, -#if 0 - /* No one seems to use this. */ - &mips_aout_be_vec, -#endif - &mips_aout_le_vec, &mips_ecoff_be_vec, &mips_ecoff_le_vec, &mips_ecoff_bele_vec, @@ -1250,8 +1094,6 @@ &mips_elf64_tradfbsd_be_vec, &mips_elf64_tradfbsd_le_vec, #endif - &mips_pe_le_vec, - &mips_pei_le_vec, #ifdef BFD64 &mmix_elf64_vec, @@ -1274,21 +1116,16 @@ &nds32_elf32_linux_be_vec, &nds32_elf32_linux_le_vec, +#ifdef BFD64 + &nfp_elf64_vec, +#endif + &nios2_elf32_be_vec, &nios2_elf32_le_vec, &ns32k_aout_pc532mach_vec, &ns32k_aout_pc532nbsd_vec, -#if 0 - /* We have no oasys tools anymore, so we can't test any of this - anymore. If you want to test the stuff yourself, go ahead... - steve@cygnus.com - Worse, since there is no magic number for archives, there - can be annoying target mis-matches. */ - &oasys_vec, -#endif - &or1k_elf32_vec, &pdp11_aout_vec, @@ -1313,7 +1150,6 @@ &powerpc_elf64_le_vec, &powerpc_elf64_fbsd_vec, #endif - &powerpc_nlm32_vec, &powerpc_pe_vec, &powerpc_pe_le_vec, &powerpc_pei_vec, @@ -1351,20 +1187,6 @@ &score_elf32_le_vec, #endif -#ifdef BFD64 - &sh64_elf32_vec, - &sh64_elf32_le_vec, - &sh64_elf32_linux_vec, - &sh64_elf32_linux_be_vec, - &sh64_elf32_nbsd_vec, - &sh64_elf32_nbsd_le_vec, - &sh64_elf64_vec, - &sh64_elf64_le_vec, - &sh64_elf64_linux_vec, - &sh64_elf64_linux_be_vec, - &sh64_elf64_nbsd_vec, - &sh64_elf64_nbsd_le_vec, -#endif &sh_coff_vec, &sh_coff_le_vec, &sh_coff_small_vec, @@ -1377,19 +1199,11 @@ &sh_elf32_linux_be_vec, &sh_elf32_nbsd_vec, &sh_elf32_nbsd_le_vec, - &sh_elf32_symbian_le_vec, &sh_elf32_vxworks_vec, &sh_elf32_vxworks_le_vec, &sh_pe_le_vec, &sh_pei_le_vec, - &sparc_aout_le_vec, - &sparc_aout_linux_vec, - &sparc_aout_lynx_vec, - &sparc_aout_nbsd_vec, - &sparc_aout_sunos_be_vec, - &sparc_coff_vec, - &sparc_coff_lynx_vec, &sparc_elf32_vec, &sparc_elf32_sol2_vec, &sparc_elf32_vxworks_vec, @@ -1398,7 +1212,6 @@ &sparc_elf64_fbsd_vec, &sparc_elf64_sol2_vec, #endif - &sparc_nlm32_vec, &spu_elf32_vec, @@ -1430,19 +1243,14 @@ &v850_elf32_vec, &vax_aout_1knbsd_vec, - &vax_aout_bsd_vec, &vax_aout_nbsd_vec, &vax_elf32_vec, &visium_elf32_vec, - &w65_coff_vec, - &wasm_vec, &wasm32_elf32_vec, - &we32k_coff_vec, - #ifdef BFD64 &x86_64_coff_vec, &x86_64_elf32_vec, @@ -1893,9 +1701,6 @@ case bfd_target_ecoff_flavour: return "ECOFF"; case bfd_target_xcoff_flavour: return "XCOFF"; case bfd_target_elf_flavour: return "ELF"; - case bfd_target_ieee_flavour: return "IEEE"; - case bfd_target_nlm_flavour: return "NLM"; - case bfd_target_oasys_flavour: return "Oasys"; case bfd_target_tekhex_flavour: return "Tekhex"; case bfd_target_srec_flavour: return "Srec"; case bfd_target_verilog_flavour: return "Verilog"; diff -Nru gdb-8.1/bfd/tekhex.c gdb-8.2/bfd/tekhex.c --- gdb-8.1/bfd/tekhex.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/tekhex.c 2018-09-05 07:27:13.000000000 +0000 @@ -962,7 +962,7 @@ #define tekhex_close_and_cleanup _bfd_generic_close_and_cleanup #define tekhex_bfd_free_cached_info _bfd_generic_bfd_free_cached_info #define tekhex_new_section_hook _bfd_generic_new_section_hook -#define tekhex_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) +#define tekhex_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false #define tekhex_bfd_is_local_label_name bfd_generic_is_local_label_name #define tekhex_get_lineno _bfd_nosymbols_get_lineno #define tekhex_find_nearest_line _bfd_nosymbols_find_nearest_line @@ -981,6 +981,7 @@ #define tekhex_bfd_discard_group bfd_generic_discard_group #define tekhex_section_already_linked _bfd_generic_section_already_linked #define tekhex_bfd_define_common_symbol bfd_generic_define_common_symbol +#define tekhex_bfd_link_hide_symbol _bfd_generic_link_hide_symbol #define tekhex_bfd_define_start_stop bfd_generic_define_start_stop #define tekhex_bfd_link_hash_table_create _bfd_generic_link_hash_table_create #define tekhex_bfd_link_add_symbols _bfd_generic_link_add_symbols @@ -1020,16 +1021,16 @@ _bfd_dummy_target, }, { - bfd_false, + _bfd_bool_bfd_false_error, tekhex_mkobject, _bfd_generic_mkarchive, - bfd_false, + _bfd_bool_bfd_false_error, }, { /* bfd_write_contents. */ - bfd_false, + _bfd_bool_bfd_false_error, tekhex_write_object_contents, _bfd_write_archive_contents, - bfd_false, + _bfd_bool_bfd_false_error, }, BFD_JUMP_TABLE_GENERIC (tekhex), diff -Nru gdb-8.1/bfd/trad-core.c gdb-8.2/bfd/trad-core.c --- gdb-8.1/bfd/trad-core.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/trad-core.c 2018-09-05 07:27:13.000000000 +0000 @@ -293,12 +293,16 @@ trad_unix_core_file_p /* a core file */ }, { /* bfd_set_format */ - bfd_false, bfd_false, - bfd_false, bfd_false + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error }, { /* bfd_write_contents */ - bfd_false, bfd_false, - bfd_false, bfd_false + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error }, BFD_JUMP_TABLE_GENERIC (_bfd_generic), diff -Nru gdb-8.1/bfd/vaxbsd.c gdb-8.2/bfd/vaxbsd.c --- gdb-8.1/bfd/vaxbsd.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/vaxbsd.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,40 +0,0 @@ -/* BFD back-end for BSD and Ultrix/VAX (1K page size) a.out-ish binaries. - Copyright (C) 2002-2018 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#define N_HEADER_IN_TEXT(x) 0 -#define ENTRY_CAN_BE_ZERO -#define TEXT_START_ADDR 0 -#define TARGET_PAGE_SIZE 1024 -#define SEGMENT_SIZE TARGET_PAGE_SIZE -#define DEFAULT_ARCH bfd_arch_vax - -/* Do not "beautify" the CONCAT* macro args. Traditional C will not - remove whitespace added here, and thus will fail to concatenate the - tokens. */ -#define MY(OP) CONCAT2 (vax_aout_bsd_,OP) - -#define TARGETNAME "a.out-vax-bsd" - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "libaout.h" - -#include "aout-target.h" diff -Nru gdb-8.1/bfd/verilog.c gdb-8.2/bfd/verilog.c --- gdb-8.1/bfd/verilog.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/verilog.c 2018-09-05 07:27:13.000000000 +0000 @@ -293,7 +293,7 @@ #define verilog_close_and_cleanup _bfd_generic_close_and_cleanup #define verilog_bfd_free_cached_info _bfd_generic_bfd_free_cached_info #define verilog_new_section_hook _bfd_generic_new_section_hook -#define verilog_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) +#define verilog_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false #define verilog_bfd_is_local_label_name bfd_generic_is_local_label_name #define verilog_get_lineno _bfd_nosymbols_get_lineno #define verilog_find_nearest_line _bfd_nosymbols_find_nearest_line @@ -345,16 +345,16 @@ _bfd_dummy_target, }, { - bfd_false, + _bfd_bool_bfd_false_error, verilog_mkobject, - bfd_false, - bfd_false, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, }, { /* bfd_write_contents. */ - bfd_false, + _bfd_bool_bfd_false_error, verilog_write_object_contents, - bfd_false, - bfd_false, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, }, BFD_JUMP_TABLE_GENERIC (_bfd_generic), diff -Nru gdb-8.1/bfd/versados.c gdb-8.2/bfd/versados.c --- gdb-8.1/bfd/versados.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/versados.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,939 +0,0 @@ -/* BFD back-end for VERSAdos-E objects. - Copyright (C) 1995-2018 Free Software Foundation, Inc. - Written by Steve Chamberlain of Cygnus Support . - - Versados is a Motorola trademark. - - 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 3 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., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* - SUBSECTION - VERSAdos-E relocatable object file format - - DESCRIPTION - - This module supports reading of VERSAdos relocatable - object files. - - A VERSAdos file looks like contains - - o Identification Record - o External Symbol Definition Record - o Object Text Record - o End Record. */ - -#include "sysdep.h" -#include "bfd.h" -#include "libbfd.h" -#include "libiberty.h" - - -#define VHEADER '1' -#define VESTDEF '2' -#define VOTR '3' -#define VEND '4' - -#define ES_BASE 17 /* First symbol has esdid 17. */ - -/* Per file target dependent information. */ - -/* One for each section. */ -struct esdid -{ - asection *section; /* Ptr to bfd version. */ - unsigned char *contents; /* Used to build image. */ - bfd_size_type content_size; /* The size of the contents buffer. */ - int pc; - int relocs; /* Reloc count, valid end of pass 1. */ - int donerel; /* Have relocs been translated. */ -}; - -typedef struct versados_data_struct -{ - int es_done; /* Count of symbol index, starts at ES_BASE. */ - asymbol *symbols; /* Pointer to local symbols. */ - char *strings; /* Strings of all the above. */ - int stringlen; /* Len of string table (valid end of pass1). */ - int nsecsyms; /* Number of sections. */ - - int ndefs; /* Number of exported symbols (they dont get esdids). */ - int nrefs; /* Number of imported symbols (valid end of pass1). */ - - int ref_idx; /* Current processed value of the above. */ - int def_idx; - - int pass_2_done; - - struct esdid e[16]; /* Per section info. */ - int alert; /* To see if we're trampling. */ - asymbol *rest[256 - 16]; /* Per symbol info. */ -} -tdata_type; - -#define VDATA(abfd) (abfd->tdata.versados_data) -#define EDATA(abfd, n) (abfd->tdata.versados_data->e[(n) < 16 ? (n) : 0]) -#define RDATA(abfd, n) (abfd->tdata.versados_data->rest[(n) < 240 ? (n) : 0]) - -struct ext_otr -{ - unsigned char size; - char type; - unsigned char map[4]; - unsigned char esdid; - unsigned char data[200]; -}; - -struct ext_vheader -{ - unsigned char size; - char type; /* Record type. */ - char name[10]; /* Module name. */ - char rev; /* Module rev number. */ - char lang; - char vol[4]; - char user[2]; - char cat[8]; - char fname[8]; - char ext[2]; - char time[3]; - char date[3]; - char rest[211]; -}; - -struct ext_esd -{ - unsigned char size; - char type; - unsigned char esd_entries[1]; -}; - -#define ESD_ABS 0 -#define ESD_COMMON 1 -#define ESD_STD_REL_SEC 2 -#define ESD_SHRT_REL_SEC 3 -#define ESD_XDEF_IN_SEC 4 -#define ESD_XDEF_IN_ABS 5 -#define ESD_XREF_SEC 6 -#define ESD_XREF_SYM 7 - -union ext_any -{ - unsigned char size; - struct ext_vheader header; - struct ext_esd esd; - struct ext_otr otr; -}; - -/* Initialize by filling in the hex conversion array. */ - -/* Set up the tdata information. */ - -static bfd_boolean -versados_mkobject (bfd *abfd) -{ - if (abfd->tdata.versados_data == NULL) - { - bfd_size_type amt = sizeof (tdata_type); - tdata_type *tdata = bfd_zalloc (abfd, amt); - - if (tdata == NULL) - return FALSE; - abfd->tdata.versados_data = tdata; - tdata->symbols = NULL; - VDATA (abfd)->alert = 0x12345678; - } - - bfd_default_set_arch_mach (abfd, bfd_arch_m68k, 0); - return TRUE; -} - -/* Report a problem in an S record file. FIXME: This probably should - not call fprintf, but we really do need some mechanism for printing - error messages. */ - -static asymbol * -versados_new_symbol (bfd *abfd, - int snum, - const char *name, - bfd_vma val, - asection *sec) -{ - asymbol *n = VDATA (abfd)->symbols + snum; - n->name = name; - n->value = val; - n->section = sec; - n->the_bfd = abfd; - n->flags = 0; - return n; -} - -static bfd_boolean -get_record (bfd *abfd, union ext_any *ptr) -{ - if (bfd_bread (&ptr->size, (bfd_size_type) 1, abfd) != 1 - || (bfd_bread ((char *) ptr + 1, (bfd_size_type) ptr->size, abfd) - != ptr->size)) - return FALSE; - - { - bfd_size_type amt = ptr->size + 1; - - if (amt < sizeof (* ptr)) - memset ((char *) ptr + amt, 0, sizeof (* ptr) - amt); - } - - return TRUE; -} - -static int -get_4 (unsigned char **pp) -{ - unsigned char *p = *pp; - - *pp += 4; - return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | (p[3] << 0); -} - -static void -get_10 (unsigned char **pp, char *name) -{ - char *p = (char *) *pp; - int len = 10; - - *pp += len; - while (*p != ' ' && len) - { - *name++ = *p++; - len--; - } - *name = 0; -} - -static char * -new_symbol_string (bfd *abfd, const char *name) -{ - char *n = VDATA (abfd)->strings; - - strcpy (VDATA (abfd)->strings, name); - VDATA (abfd)->strings += strlen (VDATA (abfd)->strings) + 1; - return n; -} - -static void -process_esd (bfd *abfd, struct ext_esd *esd, int pass) -{ - /* Read through the ext def for the est entries. */ - int togo = esd->size - 2; - bfd_vma size; - bfd_vma start; - asection *sec; - char name[11]; - unsigned char *ptr = esd->esd_entries; - unsigned char *end = ptr + togo; - - while (ptr < end) - { - int scn = *ptr & 0xf; - int typ = (*ptr >> 4) & 0xf; - - /* Declare this section. */ - sprintf (name, "%d", scn); - sec = bfd_make_section_old_way (abfd, strdup (name)); - sec->target_index = scn; - EDATA (abfd, scn).section = sec; - ptr++; - - switch (typ) - { - default: - abort (); - case ESD_XREF_SEC: - case ESD_XREF_SYM: - { - int snum = VDATA (abfd)->ref_idx++; - get_10 (&ptr, name); - if (pass == 1) - VDATA (abfd)->stringlen += strlen (name) + 1; - else - { - int esidx; - asymbol *s; - char *n = new_symbol_string (abfd, name); - - s = versados_new_symbol (abfd, snum, n, (bfd_vma) 0, - bfd_und_section_ptr); - esidx = VDATA (abfd)->es_done++; - RDATA (abfd, esidx - ES_BASE) = s; - } - } - break; - - case ESD_ABS: - size = get_4 (&ptr); - (void) size; - start = get_4 (&ptr); - (void) start; - break; - case ESD_STD_REL_SEC: - case ESD_SHRT_REL_SEC: - sec->size = get_4 (&ptr); - sec->flags |= SEC_ALLOC; - break; - case ESD_XDEF_IN_ABS: - sec = bfd_abs_section_ptr; - /* Fall through. */ - case ESD_XDEF_IN_SEC: - { - int snum = VDATA (abfd)->def_idx++; - bfd_vma val; - - get_10 (&ptr, name); - val = get_4 (&ptr); - if (pass == 1) - /* Just remember the symbol. */ - VDATA (abfd)->stringlen += strlen (name) + 1; - else - { - asymbol *s; - char *n = new_symbol_string (abfd, name); - - s = versados_new_symbol (abfd, snum + VDATA (abfd)->nrefs, n, - val, sec); - s->flags |= BSF_GLOBAL; - } - } - break; - } - } -} - -#define R_RELWORD 1 -#define R_RELLONG 2 -#define R_RELWORD_NEG 3 -#define R_RELLONG_NEG 4 - -reloc_howto_type versados_howto_table[] = -{ - HOWTO (R_RELWORD, 0, 1, 16, FALSE, - 0, complain_overflow_dont, 0, - "+v16", TRUE, 0x0000ffff, 0x0000ffff, FALSE), - HOWTO (R_RELLONG, 0, 2, 32, FALSE, - 0, complain_overflow_dont, 0, - "+v32", TRUE, 0xffffffff, 0xffffffff, FALSE), - - HOWTO (R_RELWORD_NEG, 0, -1, 16, FALSE, - 0, complain_overflow_dont, 0, - "-v16", TRUE, 0x0000ffff, 0x0000ffff, FALSE), - HOWTO (R_RELLONG_NEG, 0, -2, 32, FALSE, - 0, complain_overflow_dont, 0, - "-v32", TRUE, 0xffffffff, 0xffffffff, FALSE), -}; - -static int -get_offset (unsigned int len, unsigned char *ptr) -{ - int val = 0; - - if (len) - { - unsigned int i; - - val = *ptr++; - if (val & 0x80) - val |= ~0xff; - for (i = 1; i < len; i++) - val = (val << 8) | *ptr++; - } - - return val; -} - -static void -process_otr (bfd *abfd, struct ext_otr *otr, int pass) -{ - unsigned long shift; - unsigned char *srcp = otr->data; - unsigned char *endp = (unsigned char *) otr + otr->size; - unsigned int bits = (otr->map[0] << 24) - | (otr->map[1] << 16) - | (otr->map[2] << 8) - | (otr->map[3] << 0); - - struct esdid *esdid; - unsigned char *contents; - bfd_boolean need_contents = FALSE; - unsigned int dst_idx; - - /* PR 17512: file: ac7da425. */ - if (otr->esdid == 0) - return; - - esdid = &EDATA (abfd, otr->esdid - 1); - contents = esdid->contents; - dst_idx = esdid->pc; - - for (shift = ((unsigned long) 1 << 31); shift && srcp < endp; shift >>= 1) - { - if (bits & shift) - { - int flag = *srcp++; - int esdids = (flag >> 5) & 0x7; - int sizeinwords = ((flag >> 3) & 1) ? 2 : 1; - unsigned int offsetlen = flag & 0x7; - int j; - - /* PR 21591: Check for invalid lengths. */ - if (srcp + esdids + offsetlen >= endp) - return; - - if (esdids == 0) - { - /* A zero esdid means the new pc is the offset given. */ - dst_idx += get_offset (offsetlen, srcp); - srcp += offsetlen; - } - else - { - int val = get_offset (offsetlen, srcp + esdids); - - if (pass == 1) - need_contents = TRUE; - else if (contents && dst_idx < esdid->content_size - sizeinwords * 2) - for (j = 0; j < sizeinwords * 2; j++) - { - contents[dst_idx + (sizeinwords * 2) - j - 1] = val; - val >>= 8; - } - - for (j = 0; j < esdids; j++) - { - int id = *srcp++; - - if (id) - { - int rn = EDATA (abfd, otr->esdid - 1).relocs++; - - if (pass == 1) - { - /* This is the first pass over the data, - just remember that we need a reloc. */ - } - else - { - arelent *n; - - /* PR 17512: file: 54f733e0. */ - if (EDATA (abfd, otr->esdid - 1).section == NULL) - continue; - n = EDATA (abfd, otr->esdid - 1).section->relocation + rn; - n->address = dst_idx; - n->sym_ptr_ptr = (asymbol **) (size_t) id; - n->addend = 0; - n->howto = versados_howto_table + ((j & 1) * 2) + (sizeinwords - 1); - } - } - } - srcp += offsetlen; - dst_idx += sizeinwords * 2; - } - } - else - { - need_contents = TRUE; - - if (esdid->section && contents && dst_idx < esdid->content_size - 1) - if (pass == 2) - { - /* Absolute code, comes in 16 bit lumps. */ - contents[dst_idx] = srcp[0]; - contents[dst_idx + 1] = srcp[1]; - } - - dst_idx += 2; - srcp += 2; - } - } - - EDATA (abfd, otr->esdid - 1).pc = dst_idx; - - if (!contents && need_contents) - { - if (esdid->section) - { - bfd_size_type size; - - size = esdid->section->size; - esdid->contents = bfd_alloc (abfd, size); - esdid->content_size = size; - } - else - esdid->contents = NULL; - } -} - -static bfd_boolean -versados_scan (bfd *abfd) -{ - bfd_boolean loop = TRUE; - int i; - int j; - int nsecs = 0; - bfd_size_type amt; - - VDATA (abfd)->stringlen = 0; - VDATA (abfd)->nrefs = 0; - VDATA (abfd)->ndefs = 0; - VDATA (abfd)->ref_idx = 0; - VDATA (abfd)->def_idx = 0; - VDATA (abfd)->pass_2_done = 0; - - while (loop) - { - union ext_any any; - - if (!get_record (abfd, &any)) - return FALSE; - switch (any.header.type) - { - case VHEADER: - break; - case VEND: - loop = FALSE; - break; - case VESTDEF: - process_esd (abfd, &any.esd, 1); - break; - case VOTR: - process_otr (abfd, &any.otr, 1); - break; - } - } - - /* Now allocate space for the relocs and sections. */ - VDATA (abfd)->nrefs = VDATA (abfd)->ref_idx; - VDATA (abfd)->ndefs = VDATA (abfd)->def_idx; - VDATA (abfd)->ref_idx = 0; - VDATA (abfd)->def_idx = 0; - - abfd->symcount = VDATA (abfd)->nrefs + VDATA (abfd)->ndefs; - - for (i = 0; i < 16; i++) - { - struct esdid *esdid = &EDATA (abfd, i); - - if (esdid->section) - { - amt = (bfd_size_type) esdid->relocs * sizeof (arelent); - esdid->section->relocation = bfd_alloc (abfd, amt); - esdid->pc = 0; - - if (esdid->contents) - esdid->section->flags |= SEC_HAS_CONTENTS | SEC_LOAD; - - esdid->section->reloc_count = esdid->relocs; - if (esdid->relocs) - esdid->section->flags |= SEC_RELOC; - - esdid->relocs = 0; - - /* Add an entry into the symbol table for it. */ - nsecs++; - VDATA (abfd)->stringlen += strlen (esdid->section->name) + 1; - } - } - - abfd->symcount += nsecs; - - amt = abfd->symcount; - amt *= sizeof (asymbol); - VDATA (abfd)->symbols = bfd_alloc (abfd, amt); - - amt = VDATA (abfd)->stringlen; - VDATA (abfd)->strings = bfd_alloc (abfd, amt); - - if ((VDATA (abfd)->symbols == NULL && abfd->symcount > 0) - || (VDATA (abfd)->strings == NULL && VDATA (abfd)->stringlen > 0)) - return FALSE; - - /* Actually fill in the section symbols, - we stick them at the end of the table. */ - for (j = VDATA (abfd)->nrefs + VDATA (abfd)->ndefs, i = 0; i < 16; i++) - { - struct esdid *esdid = &EDATA (abfd, i); - asection *sec = esdid->section; - - if (sec) - { - asymbol *s = VDATA (abfd)->symbols + j; - s->name = new_symbol_string (abfd, sec->name); - s->section = sec; - s->flags = BSF_LOCAL; - s->value = 0; - s->the_bfd = abfd; - j++; - } - } - - if (abfd->symcount) - abfd->flags |= HAS_SYMS; - - /* Set this to nsecs - since we've already planted the section - symbols. */ - VDATA (abfd)->nsecsyms = nsecs; - - VDATA (abfd)->ref_idx = 0; - - return TRUE; -} - -/* Check whether an existing file is a versados file. */ - -static const bfd_target * -versados_object_p (bfd *abfd) -{ - struct ext_vheader ext; - unsigned char len; - tdata_type *tdata_save; - - if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) - return NULL; - - if (bfd_bread (&len, (bfd_size_type) 1, abfd) != 1) - { - if (bfd_get_error () != bfd_error_system_call) - bfd_set_error (bfd_error_wrong_format); - return NULL; - } - - /* PR 17512: file: 726-2128-0.004. */ - if (len < 13) - { - bfd_set_error (bfd_error_wrong_format); - return NULL; - } - - if (bfd_bread (&ext.type, (bfd_size_type) len, abfd) != len) - { - if (bfd_get_error () != bfd_error_system_call) - bfd_set_error (bfd_error_wrong_format); - return NULL; - } - - /* We guess that the language field will never be larger than 10. - In sample files, it is always either 0 or 1. Checking for this - prevents confusion with Intel Hex files. */ - if (ext.type != VHEADER - || ext.lang > 10) - { - bfd_set_error (bfd_error_wrong_format); - return NULL; - } - - /* OK, looks like a record, build the tdata and read in. */ - tdata_save = abfd->tdata.versados_data; - if (!versados_mkobject (abfd) || !versados_scan (abfd)) - { - abfd->tdata.versados_data = tdata_save; - return NULL; - } - - return abfd->xvec; -} - -static bfd_boolean -versados_pass_2 (bfd *abfd) -{ - union ext_any any; - - if (VDATA (abfd)->pass_2_done) - return 1; - - if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) - return 0; - - VDATA (abfd)->es_done = ES_BASE; - - /* Read records till we get to where we want to be. */ - while (1) - { - get_record (abfd, &any); - switch (any.header.type) - { - case VEND: - VDATA (abfd)->pass_2_done = 1; - return 1; - case VESTDEF: - process_esd (abfd, &any.esd, 2); - break; - case VOTR: - process_otr (abfd, &any.otr, 2); - break; - } - } -} - -static bfd_boolean -versados_get_section_contents (bfd *abfd, - asection *section, - void * location, - file_ptr offset, - bfd_size_type count) -{ - struct esdid *esdid; - - if (!versados_pass_2 (abfd)) - return FALSE; - - esdid = &EDATA (abfd, section->target_index); - - if (esdid->contents == NULL - || offset < 0 - || (bfd_size_type) offset > esdid->content_size - || offset + count > esdid->content_size) - return FALSE; - - memcpy (location, esdid->contents + offset, (size_t) count); - - return TRUE; -} - -#define versados_get_section_contents_in_window \ - _bfd_generic_get_section_contents_in_window - -static bfd_boolean -versados_set_section_contents (bfd *abfd ATTRIBUTE_UNUSED, - sec_ptr section ATTRIBUTE_UNUSED, - const void * location ATTRIBUTE_UNUSED, - file_ptr offset ATTRIBUTE_UNUSED, - bfd_size_type bytes_to_do ATTRIBUTE_UNUSED) -{ - return FALSE; -} - -static int -versados_sizeof_headers (bfd *abfd ATTRIBUTE_UNUSED, - struct bfd_link_info *info ATTRIBUTE_UNUSED) -{ - return 0; -} - -/* Return the amount of memory needed to read the symbol table. */ - -static long -versados_get_symtab_upper_bound (bfd *abfd) -{ - return (bfd_get_symcount (abfd) + 1) * sizeof (asymbol *); -} - -/* Return the symbol table. */ - -static long -versados_canonicalize_symtab (bfd *abfd, asymbol **alocation) -{ - unsigned int symcount = bfd_get_symcount (abfd); - unsigned int i; - asymbol *s; - - versados_pass_2 (abfd); - - for (i = 0, s = VDATA (abfd)->symbols; - i < symcount; - s++, i++) - *alocation++ = s; - - *alocation = NULL; - - return symcount; -} - -static void -versados_get_symbol_info (bfd *abfd ATTRIBUTE_UNUSED, - asymbol *symbol, - symbol_info *ret) -{ - bfd_symbol_info (symbol, ret); -} - -static void -versados_print_symbol (bfd *abfd, - void * afile, - asymbol *symbol, - bfd_print_symbol_type how) -{ - FILE *file = (FILE *) afile; - - switch (how) - { - case bfd_print_symbol_name: - fprintf (file, "%s", symbol->name); - break; - default: - bfd_print_symbol_vandf (abfd, (void *) file, symbol); - fprintf (file, " %-5s %s", - symbol->section->name, - symbol->name); - } -} - -static long -versados_get_reloc_upper_bound (bfd *abfd ATTRIBUTE_UNUSED, - sec_ptr asect) -{ - return (asect->reloc_count + 1) * sizeof (arelent *); -} - -static long -versados_canonicalize_reloc (bfd *abfd, - sec_ptr section, - arelent **relptr, - asymbol **symbols) -{ - unsigned int count; - arelent *src; - - versados_pass_2 (abfd); - src = section->relocation; - - if (!EDATA (abfd, section->target_index).donerel) - { - EDATA (abfd, section->target_index).donerel = 1; - /* Translate from indexes to symptr ptrs. */ - for (count = 0; count < section->reloc_count; count++) - { - int esdid = (int) (size_t) src[count].sym_ptr_ptr; - - if (esdid == 0) - src[count].sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; - else if (esdid < ES_BASE) - { - /* Section relative thing. */ - struct esdid *e = &EDATA (abfd, esdid - 1); - - /* PR 17512: file:cd92277c. */ - if (e->section) - src[count].sym_ptr_ptr = e->section->symbol_ptr_ptr; - else - src[count].sym_ptr_ptr = bfd_und_section_ptr->symbol_ptr_ptr; - } - /* PR 17512: file:3757-2936-0.004. */ - else if ((unsigned) (esdid - ES_BASE) >= bfd_get_symcount (abfd)) - src[count].sym_ptr_ptr = bfd_und_section_ptr->symbol_ptr_ptr; - else - src[count].sym_ptr_ptr = symbols + esdid - ES_BASE; - } - } - - for (count = 0; count < section->reloc_count; count++) - *relptr++ = src++; - - *relptr = 0; - return section->reloc_count; -} - -#define versados_close_and_cleanup _bfd_generic_close_and_cleanup -#define versados_bfd_free_cached_info _bfd_generic_bfd_free_cached_info -#define versados_new_section_hook _bfd_generic_new_section_hook -#define versados_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) -#define versados_bfd_is_local_label_name bfd_generic_is_local_label_name -#define versados_get_lineno _bfd_nosymbols_get_lineno -#define versados_find_nearest_line _bfd_nosymbols_find_nearest_line -#define versados_find_line _bfd_nosymbols_find_line -#define versados_find_inliner_info _bfd_nosymbols_find_inliner_info -#define versados_get_symbol_version_string _bfd_nosymbols_get_symbol_version_string -#define versados_make_empty_symbol _bfd_generic_make_empty_symbol -#define versados_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol -#define versados_read_minisymbols _bfd_generic_read_minisymbols -#define versados_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol -#define versados_bfd_reloc_type_lookup _bfd_norelocs_bfd_reloc_type_lookup -#define versados_bfd_reloc_name_lookup _bfd_norelocs_bfd_reloc_name_lookup -#define versados_set_arch_mach bfd_default_set_arch_mach -#define versados_bfd_get_relocated_section_contents bfd_generic_get_relocated_section_contents -#define versados_bfd_relax_section bfd_generic_relax_section -#define versados_bfd_gc_sections bfd_generic_gc_sections -#define versados_bfd_lookup_section_flags bfd_generic_lookup_section_flags -#define versados_bfd_merge_sections bfd_generic_merge_sections -#define versados_bfd_is_group_section bfd_generic_is_group_section -#define versados_bfd_discard_group bfd_generic_discard_group -#define versados_section_already_linked _bfd_generic_section_already_linked -#define versados_bfd_define_common_symbol bfd_generic_define_common_symbol -#define versados_bfd_define_start_stop bfd_generic_define_start_stop -#define versados_bfd_link_hash_table_create _bfd_generic_link_hash_table_create -#define versados_bfd_link_add_symbols _bfd_generic_link_add_symbols -#define versados_bfd_link_just_syms _bfd_generic_link_just_syms -#define versados_bfd_copy_link_hash_symbol_type \ - _bfd_generic_copy_link_hash_symbol_type -#define versados_bfd_final_link _bfd_generic_final_link -#define versados_bfd_link_split_section _bfd_generic_link_split_section -#define versados_bfd_link_check_relocs _bfd_generic_link_check_relocs -#define versados_set_reloc _bfd_generic_set_reloc - -const bfd_target m68k_versados_vec = -{ - "versados", /* Name. */ - bfd_target_versados_flavour, - BFD_ENDIAN_BIG, /* Target byte order. */ - BFD_ENDIAN_BIG, /* Target headers byte order. */ - (HAS_RELOC | EXEC_P | /* Object flags. */ - HAS_LINENO | HAS_DEBUG | - HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED), - (SEC_CODE | SEC_DATA | SEC_ROM | SEC_HAS_CONTENTS - | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* Section flags. */ - 0, /* Leading underscore. */ - ' ', /* AR_pad_char. */ - 16, /* AR_max_namelen. */ - 0, /* match priority. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* Data. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* Headers. */ - - { - _bfd_dummy_target, - versados_object_p, /* bfd_check_format. */ - _bfd_dummy_target, - _bfd_dummy_target, - }, - { - bfd_false, - versados_mkobject, - _bfd_generic_mkarchive, - bfd_false, - }, - { /* bfd_write_contents. */ - bfd_false, - bfd_false, - _bfd_write_archive_contents, - bfd_false, - }, - - BFD_JUMP_TABLE_GENERIC (versados), - BFD_JUMP_TABLE_COPY (_bfd_generic), - BFD_JUMP_TABLE_CORE (_bfd_nocore), - BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive), - BFD_JUMP_TABLE_SYMBOLS (versados), - BFD_JUMP_TABLE_RELOCS (versados), - BFD_JUMP_TABLE_WRITE (versados), - BFD_JUMP_TABLE_LINK (versados), - BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), - - NULL, - - NULL -}; diff -Nru gdb-8.1/bfd/version.h gdb-8.2/bfd/version.h --- gdb-8.1/bfd/version.h 2018-01-31 02:57:26.000000000 +0000 +++ gdb-8.2/bfd/version.h 2018-09-05 07:27:32.000000000 +0000 @@ -16,7 +16,7 @@ In releases, the date is not included in either version strings or sonames. */ -#define BFD_VERSION_DATE 20180131 +#define BFD_VERSION_DATE 20180905 #define BFD_VERSION @bfd_version@ #define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@ #define REPORT_BUGS_TO @report_bugs_to@ diff -Nru gdb-8.1/bfd/version.m4 gdb-8.2/bfd/version.m4 --- gdb-8.1/bfd/version.m4 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/bfd/version.m4 2018-09-05 07:27:13.000000000 +0000 @@ -1 +1 @@ -m4_define([BFD_VERSION], [2.29.51]) +m4_define([BFD_VERSION], [2.31.51]) diff -Nru gdb-8.1/bfd/vms-alpha.c gdb-8.2/bfd/vms-alpha.c --- gdb-8.1/bfd/vms-alpha.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/vms-alpha.c 2018-09-05 07:44:28.000000000 +0000 @@ -476,7 +476,7 @@ /* PR 21813: Check for an undersized record. */ if (PRIV (recrd.buf_size) < sizeof (* eihd)) { - _bfd_error_handler (_("Corrupt EIHD record - size is too small")); + _bfd_error_handler (_("corrupt EIHD record - size is too small")); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -657,7 +657,8 @@ /* PR 21611: Check that offset is valid. */ if (offset > PRIV (recrd.rec_size) - (EIHS__L_DMTBYTES + 4)) { - _bfd_error_handler (_("Unable to read EIHS record at offset %#x"), offset); + _bfd_error_handler (_("unable to read EIHS record at offset %#x"), + offset); bfd_set_error (bfd_error_file_truncated); return FALSE; } @@ -1169,7 +1170,7 @@ if (PRIV (recrd.rec_size) < 8) { - _bfd_error_handler (_("Corrupt EGSD record: its size (%#x) is too small"), + _bfd_error_handler (_("corrupt EGSD record: its size (%#x) is too small"), PRIV (recrd.rec_size)); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -1193,7 +1194,7 @@ /* PR 21615: Check for size overflow. */ if (PRIV (recrd.rec_size) < gsd_size) { - _bfd_error_handler (_("Corrupt EGSD record: size (%#x) is larger than remaining space (%#x)"), + _bfd_error_handler (_("corrupt EGSD record: size (%#x) is larger than remaining space (%#x)"), gsd_size, PRIV (recrd.rec_size)); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -1201,7 +1202,7 @@ if (gsd_size < 4) { - _bfd_error_handler (_("Corrupt EGSD record: size (%#x) is too small"), + _bfd_error_handler (_("corrupt EGSD record: size (%#x) is too small"), gsd_size); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -1330,7 +1331,7 @@ /* PR 21813: Check for an out of range index. */ if (psindx < 0 || psindx >= (int) PRIV (section_count)) { - _bfd_error_handler (_("Corrupt EGSD record: its psindx field is too big (%#lx)"), + _bfd_error_handler (_("corrupt EGSD record: its psindx field is too big (%#lx)"), psindx); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -1346,7 +1347,7 @@ /* PR 21813: Check for an out of range index. */ if (psindx < 0 || psindx >= (int) PRIV (section_count)) { - _bfd_error_handler (_("Corrupt EGSD record: its psindx field is too big (%#lx)"), + _bfd_error_handler (_("corrupt EGSD record: its psindx field is too big (%#lx)"), psindx); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -1386,7 +1387,7 @@ /* PR 21813: Check for an out of range index. */ if (psindx < 0 || psindx >= (int) PRIV (section_count)) { - _bfd_error_handler (_("Corrupt EGSD record: its psindx field is too big (%#lx)"), + _bfd_error_handler (_("corrupt EGSD record: its psindx field is too big (%#lx)"), psindx); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -1415,7 +1416,7 @@ case EGSD__C_SYMM: case EGSD__C_SYMV: default: - _bfd_error_handler (_("Unknown EGSD subtype %d"), gsd_type); + _bfd_error_handler (_("unknown EGSD subtype %d"), gsd_type); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -1448,7 +1449,7 @@ if (PRIV (stackptr) >= STACKSIZE) { bfd_set_error (bfd_error_bad_value); - _bfd_error_handler (_("Stack overflow (%d) in _bfd_vms_push"), PRIV (stackptr)); + _bfd_error_handler (_("stack overflow (%d) in _bfd_vms_push"), PRIV (stackptr)); exit (1); } } @@ -1461,7 +1462,7 @@ if (PRIV (stackptr) == 0) { bfd_set_error (bfd_error_bad_value); - _bfd_error_handler (_("Stack underflow in _bfd_vms_pop")); + _bfd_error_handler (_("stack underflow in _bfd_vms_pop")); exit (1); } PRIV (stackptr)--; @@ -1734,7 +1735,7 @@ len = *ascic; if (ascic + len >= max_ascic) { - _bfd_error_handler (_("Corrupt vms value")); + _bfd_error_handler (_("corrupt vms value")); *vma = 0; *hp = NULL; return; @@ -1862,7 +1863,7 @@ if (cmd_length < 4 || (ptr + cmd_length > maxptr + 4)) { corrupt_etir: - _bfd_error_handler (_("Corrupt ETIR record encountered")); + _bfd_error_handler (_("corrupt ETIR record encountered")); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -2494,7 +2495,7 @@ /* PR 21813: Check for an undersized record. */ if (PRIV (recrd.buf_size) < sizeof (* eeom)) { - _bfd_error_handler (_("Corrupt EEOM record - size is too small")); + _bfd_error_handler (_("corrupt EEOM record - size is too small")); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -2503,7 +2504,7 @@ PRIV (eom_data).eom_w_comcod = bfd_getl16 (eeom->comcod); if (PRIV (eom_data).eom_w_comcod > 1) { - _bfd_error_handler (_("Object module NOT error-free !\n")); + _bfd_error_handler (_("object module not error-free !")); bfd_set_error (bfd_error_bad_value); return FALSE; } @@ -3827,7 +3828,7 @@ if (section->reloc_count == 0) _bfd_error_handler - (_("SEC_RELOC with no relocs in section %A"), section); + (_("SEC_RELOC with no relocs in section %pA"), section); #if VMS_DEBUG else @@ -3879,7 +3880,7 @@ /* Regular relocs are intertwined with binary data. */ if (curr_addr > addr) - _bfd_error_handler (_("Size error in section %A"), + _bfd_error_handler (_("size error in section %pA"), section); size = addr - curr_addr; sto_imm (abfd, section, size, curr_data, curr_addr); @@ -4038,7 +4039,7 @@ break; case ALPHA_R_BSR: - _bfd_error_handler (_("Spurious ALPHA_R_BSR reloc")); + _bfd_error_handler (_("spurious ALPHA_R_BSR reloc")); break; case ALPHA_R_LDA: @@ -4079,7 +4080,7 @@ break; default: - _bfd_error_handler (_("Unhandled relocation %s"), + _bfd_error_handler (_("unhandled relocation %s"), rptr->howto->name); break; } @@ -4092,7 +4093,7 @@ { /* Output rest of section. */ if (curr_addr > section->size) - _bfd_error_handler (_("Size error in section %A"), section); + _bfd_error_handler (_("size error in section %pA"), section); size = section->size - curr_addr; sto_imm (abfd, section, size, curr_data, curr_addr); curr_data += size; @@ -4433,31 +4434,31 @@ case DST__K_SET_LINUM_INCR: _bfd_error_handler - (_("DST__K_SET_LINUM_INCR not implemented")); + (_("%s not implemented"), "DST__K_SET_LINUM_INCR"); cmd_length = 2; break; case DST__K_SET_LINUM_INCR_W: _bfd_error_handler - (_("DST__K_SET_LINUM_INCR_W not implemented")); + (_("%s not implemented"), "DST__K_SET_LINUM_INCR_W"); cmd_length = 3; break; case DST__K_RESET_LINUM_INCR: _bfd_error_handler - (_("DST__K_RESET_LINUM_INCR not implemented")); + (_("%s not implemented"), "DST__K_RESET_LINUM_INCR"); cmd_length = 1; break; case DST__K_BEG_STMT_MODE: _bfd_error_handler - (_("DST__K_BEG_STMT_MODE not implemented")); + (_("%s not implemented"), "DST__K_BEG_STMT_MODE"); cmd_length = 1; break; case DST__K_END_STMT_MODE: _bfd_error_handler - (_("DST__K_END_STMT_MODE not implemented")); + (_("%s not implemented"), "DST__K_END_STMT_MODE"); cmd_length = 1; break; @@ -4484,25 +4485,25 @@ case DST__K_SET_PC: _bfd_error_handler - (_("DST__K_SET_PC not implemented")); + (_("%s not implemented"), "DST__K_SET_PC"); cmd_length = 2; break; case DST__K_SET_PC_W: _bfd_error_handler - (_("DST__K_SET_PC_W not implemented")); + (_("%s not implemented"), "DST__K_SET_PC_W"); cmd_length = 3; break; case DST__K_SET_PC_L: _bfd_error_handler - (_("DST__K_SET_PC_L not implemented")); + (_("%s not implemented"), "DST__K_SET_PC_L"); cmd_length = 5; break; case DST__K_SET_STMTNUM: _bfd_error_handler - (_("DST__K_SET_STMTNUM not implemented")); + (_("%s not implemented"), "DST__K_SET_STMTNUM"); cmd_length = 2; break; @@ -5005,7 +5006,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("Unknown reloc %s + %s"), _bfd_vms_etir_name (prev_cmd), + (_("unknown reloc %s + %s"), _bfd_vms_etir_name (prev_cmd), _bfd_vms_etir_name (cmd)); return FALSE; } @@ -5023,7 +5024,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("Unknown reloc %s + %s"), _bfd_vms_etir_name (cmd), + (_("unknown reloc %s + %s"), _bfd_vms_etir_name (cmd), _bfd_vms_etir_name (ETIR__C_STA_LW)); return FALSE; } @@ -5038,7 +5039,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("Unknown reloc %s + %s"), _bfd_vms_etir_name (cmd), + (_("unknown reloc %s + %s"), _bfd_vms_etir_name (cmd), _bfd_vms_etir_name (ETIR__C_STA_QW)); return FALSE; } @@ -5054,7 +5055,7 @@ && prev_cmd != ETIR__C_STA_PQ) { /* xgettext:c-format */ - _bfd_error_handler (_("Unknown reloc %s + %s"), + _bfd_error_handler (_("unknown reloc %s + %s"), _bfd_vms_etir_name (prev_cmd), _bfd_vms_etir_name (ETIR__C_STO_LW)); return FALSE; @@ -5067,7 +5068,7 @@ if (prev_cmd != ETIR__C_OPR_ADD && prev_cmd != ETIR__C_STA_QW) { /* xgettext:c-format */ - _bfd_error_handler (_("Unknown reloc %s + %s"), + _bfd_error_handler (_("unknown reloc %s + %s"), _bfd_vms_etir_name (prev_cmd), _bfd_vms_etir_name (ETIR__C_STO_QW)); return FALSE; @@ -5079,7 +5080,7 @@ if (prev_cmd != ETIR__C_STA_PQ) { /* xgettext:c-format */ - _bfd_error_handler (_("Unknown reloc %s + %s"), + _bfd_error_handler (_("unknown reloc %s + %s"), _bfd_vms_etir_name (prev_cmd), _bfd_vms_etir_name (ETIR__C_STO_OFF)); return FALSE; @@ -5092,7 +5093,7 @@ if (prev_cmd != ETIR__C_STA_LW && prev_cmd != ETIR__C_STA_QW) { /* xgettext:c-format */ - _bfd_error_handler (_("Unknown reloc %s + %s"), + _bfd_error_handler (_("unknown reloc %s + %s"), _bfd_vms_etir_name (prev_cmd), _bfd_vms_etir_name (ETIR__C_OPR_ADD)); return FALSE; @@ -5147,7 +5148,7 @@ continue; default: - _bfd_error_handler (_("Unknown reloc %s"), + _bfd_error_handler (_("unknown reloc %s"), _bfd_vms_etir_name (cmd)); return FALSE; } @@ -5160,7 +5161,7 @@ /* Get section to which the relocation applies. */ if (cur_psect < 0 || cur_psect > (int)PRIV (section_count)) { - _bfd_error_handler (_("Invalid section index in ETIR")); + _bfd_error_handler (_("invalid section index in ETIR")); return FALSE; } @@ -5169,7 +5170,7 @@ sec = PRIV (sections)[cur_psect]; if (sec == bfd_abs_section_ptr) { - _bfd_error_handler (_("Relocation for non-REL psect")); + _bfd_error_handler (_("relocation for non-REL psect")); return FALSE; } @@ -5216,7 +5217,7 @@ } if (sym == NULL) { - _bfd_error_handler (_("Unknown symbol in command %s"), + _bfd_error_handler (_("unknown symbol in command %s"), _bfd_vms_etir_name (cmd)); reloc->sym_ptr_ptr = NULL; } @@ -8969,7 +8970,7 @@ { (*info->callbacks->einfo) /* xgettext:c-format */ - (_("%P: multiple entry points: in modules %B and %B\n"), + (_("%P: multiple entry points: in modules %pB and %pB\n"), startbfd, sub); continue; } @@ -9489,7 +9490,7 @@ return (struct vms_private_data_struct *)abfd->tdata.any; } -#define vms_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) +#define vms_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false #define vms_bfd_link_just_syms _bfd_generic_link_just_syms #define vms_bfd_copy_link_hash_symbol_type \ _bfd_generic_copy_link_hash_symbol_type @@ -9497,7 +9498,8 @@ #define vms_bfd_discard_group bfd_generic_discard_group #define vms_section_already_linked _bfd_generic_section_already_linked #define vms_bfd_define_common_symbol bfd_generic_define_common_symbol -#define vms_bfd_define_start_stop bfd_generic_define_start_stop +#define vms_bfd_link_hide_symbol _bfd_generic_link_hide_symbol +#define vms_bfd_define_start_stop bfd_generic_define_start_stop #define vms_bfd_copy_private_header_data _bfd_generic_bfd_copy_private_header_data #define vms_bfd_copy_private_bfd_data _bfd_generic_bfd_copy_private_bfd_data @@ -9509,8 +9511,7 @@ /* Symbols table. */ #define alpha_vms_make_empty_symbol _bfd_generic_make_empty_symbol -#define alpha_vms_bfd_is_target_special_symbol \ - ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) +#define alpha_vms_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false #define alpha_vms_print_symbol vms_print_symbol #define alpha_vms_get_symbol_info vms_get_symbol_info #define alpha_vms_get_symbol_version_string \ @@ -9545,6 +9546,7 @@ _bfd_generic_section_already_linked #define alpha_vms_bfd_define_common_symbol bfd_generic_define_common_symbol +#define alpha_vms_bfd_link_hide_symbol _bfd_generic_link_hide_symbol #define alpha_vms_bfd_define_start_stop bfd_generic_define_start_stop #define alpha_vms_bfd_link_just_syms _bfd_generic_link_just_syms #define alpha_vms_bfd_copy_link_hash_symbol_type \ @@ -9585,12 +9587,24 @@ bfd_getl32, bfd_getl_signed_32, bfd_putl32, bfd_getl16, bfd_getl_signed_16, bfd_putl16, - {_bfd_dummy_target, alpha_vms_object_p, /* bfd_check_format. */ - _bfd_vms_lib_alpha_archive_p, _bfd_dummy_target}, - {bfd_false, alpha_vms_mkobject, /* bfd_set_format. */ - _bfd_vms_lib_alpha_mkarchive, bfd_false}, - {bfd_false, alpha_vms_write_object_contents, /* bfd_write_contents. */ - _bfd_vms_lib_write_archive_contents, bfd_false}, + { /* bfd_check_format. */ + _bfd_dummy_target, + alpha_vms_object_p, + _bfd_vms_lib_alpha_archive_p, + _bfd_dummy_target + }, + { /* bfd_set_format. */ + _bfd_bool_bfd_false_error, + alpha_vms_mkobject, + _bfd_vms_lib_alpha_mkarchive, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents. */ + _bfd_bool_bfd_false_error, + alpha_vms_write_object_contents, + _bfd_vms_lib_write_archive_contents, + _bfd_bool_bfd_false_error + }, BFD_JUMP_TABLE_GENERIC (alpha_vms), BFD_JUMP_TABLE_COPY (vms), diff -Nru gdb-8.1/bfd/vms-lib.c gdb-8.2/bfd/vms-lib.c --- gdb-8.1/bfd/vms-lib.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/vms-lib.c 2018-09-05 07:27:13.000000000 +0000 @@ -2330,12 +2330,24 @@ bfd_getl64, bfd_getl_signed_64, bfd_putl64, bfd_getl32, bfd_getl_signed_32, bfd_putl32, bfd_getl16, bfd_getl_signed_16, bfd_putl16, - - {_bfd_dummy_target, _bfd_dummy_target, /* bfd_check_format. */ - _bfd_vms_lib_txt_archive_p, _bfd_dummy_target}, - {bfd_false, bfd_false, bfd_false, bfd_false}, /* bfd_set_format. */ - {bfd_false, bfd_false, bfd_false, bfd_false}, /* bfd_write_contents. */ - + { /* bfd_check_format. */ + _bfd_dummy_target, + _bfd_dummy_target, + _bfd_vms_lib_txt_archive_p, + _bfd_dummy_target + }, + { /* bfd_set_format. */ + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error + }, + { /* bfd_write_contents. */ + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error + }, BFD_JUMP_TABLE_GENERIC (_bfd_generic), BFD_JUMP_TABLE_COPY (_bfd_generic), BFD_JUMP_TABLE_CORE (_bfd_nocore), diff -Nru gdb-8.1/bfd/wasm-module.c gdb-8.2/bfd/wasm-module.c --- gdb-8.1/bfd/wasm-module.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/wasm-module.c 2018-09-05 07:27:13.000000000 +0000 @@ -309,12 +309,12 @@ for (symcount = 0; p < end && symcount < tdata->symcount; symcount++) { - bfd_vma index; + bfd_vma idx; bfd_vma len; char *name; asymbol *sym; - READ_LEB128 (index, p, end); + READ_LEB128 (idx, p, end); READ_LEB128 (len, p, end); if (p + len < p || p + len > end) @@ -330,7 +330,7 @@ sym = &symbols[symcount]; sym->the_bfd = abfd; sym->name = name; - sym->value = index; + sym->value = idx; sym->flags = BSF_GLOBAL | BSF_FUNCTION; sym->section = space_function_index; sym->udata.p = NULL; @@ -491,12 +491,12 @@ void *fsarg) { sec_ptr *numbered_sections = fsarg; - int index = wasm_section_name_to_code (asect->name); + int idx = wasm_section_name_to_code (asect->name); - if (index == 0) + if (idx == 0) return; - numbered_sections[index] = asect; + numbered_sections[idx] = asect; } struct compute_section_arg @@ -520,14 +520,14 @@ void *fsarg) { struct compute_section_arg *fs = fsarg; - int index; + int idx; if (fs->failed) return; - index = wasm_section_name_to_code (asect->name); + idx = wasm_section_name_to_code (asect->name); - if (index != 0) + if (idx != 0) return; if (CONST_STRNEQ (asect->name, WASM_SECTION_PREFIX)) @@ -773,7 +773,7 @@ /* BFD_JUMP_TABLE_SYMBOLS */ #define wasm_get_symbol_version_string _bfd_nosymbols_get_symbol_version_string #define wasm_bfd_is_local_label_name bfd_generic_is_local_label_name -#define wasm_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) +#define wasm_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false #define wasm_get_lineno _bfd_nosymbols_get_lineno #define wasm_find_nearest_line _bfd_nosymbols_find_nearest_line #define wasm_find_line _bfd_nosymbols_find_line @@ -811,16 +811,16 @@ _bfd_dummy_target, }, { - bfd_false, + _bfd_bool_bfd_false_error, wasm_mkobject, _bfd_generic_mkarchive, - bfd_false, + _bfd_bool_bfd_false_error, }, { /* bfd_write_contents. */ - bfd_false, + _bfd_bool_bfd_false_error, wasm_write_object_contents, _bfd_write_archive_contents, - bfd_false, + _bfd_bool_bfd_false_error, }, BFD_JUMP_TABLE_GENERIC (_bfd_generic), diff -Nru gdb-8.1/bfd/xcofflink.c gdb-8.2/bfd/xcofflink.c --- gdb-8.1/bfd/xcofflink.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/xcofflink.c 2018-09-05 07:44:28.000000000 +0000 @@ -829,7 +829,7 @@ if (info->output_bfd->xvec != abfd->xvec) { _bfd_error_handler - (_("%B: XCOFF shared object when not producing XCOFF output"), + (_("%pB: XCOFF shared object when not producing XCOFF output"), abfd); bfd_set_error (bfd_error_invalid_operation); return FALSE; @@ -850,7 +850,7 @@ if (lsec == NULL) { _bfd_error_handler - (_("%B: dynamic object with no .loader section"), + (_("%pB: dynamic object with no .loader section"), abfd); bfd_set_error (bfd_error_no_symbols); return FALSE; @@ -1410,7 +1410,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: `%s' has line numbers but no enclosing section"), + (_("%pB: `%s' has line numbers but no enclosing section"), abfd, name); bfd_set_error (bfd_error_bad_value); goto error_return; @@ -1463,7 +1463,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: class %d symbol `%s' has no aux entries"), + (_("%pB: class %d symbol `%s' has no aux entries"), abfd, sym.n_sclass, name); bfd_set_error (bfd_error_bad_value); goto error_return; @@ -1486,7 +1486,7 @@ default: _bfd_error_handler /* xgettext:c-format */ - (_("%B: symbol `%s' has unrecognized csect type %d"), + (_("%pB: symbol `%s' has unrecognized csect type %d"), abfd, name, smtyp); bfd_set_error (bfd_error_bad_value); goto error_return; @@ -1499,9 +1499,10 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: bad XTY_ER symbol `%s': class %d scnum %d scnlen %Ld"), + (_("%pB: bad XTY_ER symbol `%s': class %d scnum %d " + "scnlen %" PRId64), abfd, name, sym.n_sclass, sym.n_scnum, - aux.x_csect.x_scnlen.l); + (int64_t) aux.x_csect.x_scnlen.l); bfd_set_error (bfd_error_bad_value); goto error_return; } @@ -1529,8 +1530,8 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: XMC_TC0 symbol `%s' is class %d scnlen %Ld"), - abfd, name, sym.n_sclass, aux.x_csect.x_scnlen.l); + (_("%pB: XMC_TC0 symbol `%s' is class %d scnlen %" PRId64), + abfd, name, sym.n_sclass, (int64_t) aux.x_csect.x_scnlen.l); bfd_set_error (bfd_error_bad_value); goto error_return; } @@ -1676,7 +1677,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: csect `%s' not in enclosing section"), + (_("%pB: csect `%s' not in enclosing section"), abfd, name); bfd_set_error (bfd_error_bad_value); goto error_return; @@ -1784,7 +1785,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: misplaced XTY_LD `%s'"), + (_("%pB: misplaced XTY_LD `%s'"), abfd, name); bfd_set_error (bfd_error_bad_value); goto error_return; @@ -2105,8 +2106,8 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: reloc %s:%Ld not in csect"), - abfd, o->name, i); + (_("%pB: reloc %s:%" PRId64 " not in csect"), + abfd, o->name, (int64_t) i); bfd_set_error (bfd_error_bad_value); goto error_return; } @@ -4059,7 +4060,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: loader reloc in unrecognized section `%s'"), + (_("%pB: loader reloc in unrecognized section `%s'"), reference_bfd, secname); bfd_set_error (bfd_error_nonrepresentable_section); return FALSE; @@ -4071,7 +4072,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: `%s' in loader reloc but not loader sym"), + (_("%pB: `%s' in loader reloc but not loader sym"), reference_bfd, h->root.root.string); bfd_set_error (bfd_error_bad_value); return FALSE; @@ -4088,7 +4089,7 @@ { _bfd_error_handler /* xgettext:c-format */ - (_("%B: loader reloc in read-only section %A"), + (_("%pB: loader reloc in read-only section %pA"), reference_bfd, output_section); bfd_set_error (bfd_error_invalid_operation); return FALSE; @@ -5112,9 +5113,9 @@ if (best_address > toc_start + 0x8000) { _bfd_error_handler - (_("TOC overflow: %#Lx > 0x10000; try -mminimal-toc " + (_("TOC overflow: %#" PRIx64 " > 0x10000; try -mminimal-toc " "when compiling"), - toc_end - toc_start); + (uint64_t) (toc_end - toc_start)); bfd_set_error (bfd_error_file_too_big); return FALSE; } diff -Nru gdb-8.1/bfd/xsym.c gdb-8.2/bfd/xsym.c --- gdb-8.1/bfd/xsym.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/bfd/xsym.c 2018-09-05 07:27:13.000000000 +0000 @@ -30,7 +30,7 @@ #define bfd_sym_bfd_free_cached_info _bfd_generic_bfd_free_cached_info #define bfd_sym_new_section_hook _bfd_generic_new_section_hook #define bfd_sym_bfd_is_local_label_name bfd_generic_is_local_label_name -#define bfd_sym_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) +#define bfd_sym_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false #define bfd_sym_get_lineno _bfd_nosymbols_get_lineno #define bfd_sym_find_nearest_line _bfd_nosymbols_find_nearest_line #define bfd_sym_find_line _bfd_nosymbols_find_line @@ -51,6 +51,7 @@ #define bfd_sym_bfd_discard_group bfd_generic_discard_group #define bfd_sym_section_already_linked _bfd_generic_section_already_linked #define bfd_sym_bfd_define_common_symbol bfd_generic_define_common_symbol +#define bfd_sym_bfd_link_hide_symbol _bfd_generic_link_hide_symbol #define bfd_sym_bfd_define_start_stop bfd_generic_define_start_stop #define bfd_sym_bfd_link_hash_table_create _bfd_generic_link_hash_table_create #define bfd_sym_bfd_link_add_symbols _bfd_generic_link_add_symbols @@ -2332,16 +2333,16 @@ _bfd_dummy_target, }, { /* bfd_set_format. */ - bfd_false, + _bfd_bool_bfd_false_error, bfd_sym_mkobject, - bfd_false, - bfd_false, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, }, { /* bfd_write_contents. */ - bfd_false, - bfd_true, - bfd_false, - bfd_false, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_true, + _bfd_bool_bfd_false_error, + _bfd_bool_bfd_false_error, }, BFD_JUMP_TABLE_GENERIC (bfd_sym), diff -Nru gdb-8.1/ChangeLog gdb-8.2/ChangeLog --- gdb-8.1/ChangeLog 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/ChangeLog 2018-09-05 07:44:28.000000000 +0000 @@ -1,3 +1,78 @@ +2018-06-29 Alexandre Oliva + + * configure.ac: Introduce support for @unless/@endunless. + * Makefile.tpl (dep-kind): Rewrite with cond; return + postbootstrap in some cases. + (make-postboot-dep, postboot-targets): New. + (dependencies): Do not output postbootstrap dependencies at + first. Output non-target ones changed for configure to depend + on stage_last @if gcc-bootstrap, and the original deps @unless + gcc-bootstrap. + * configure.in, Makefile.in: Rebuilt. + +2018-06-24 Nick Clifton + + * configure: Regenerate. + +2018-06-19 Simon Marchi + + * libtool.m4: Use AC_LANG_SOURCE. + * configure.ac: Remove AC_PREREQ, use AC_LANG_SOURCE. + * README-maintainer-mode: Update version requirements. + * ar-lib: New file. + * test-driver: New file. + * configure: Re-generate. + +2018-06-18 Eric Botcazou + + * Makefile.def (fortran): Add check-target-libgomp-fortran. + * Makefile.tpl (check-target-libgomp-fortran): New phony target. + * Makefile.in: Regenerate. + + * configure: Regenerate. + +2018-06-18 Simon Marchi + + * configure.ac: Sync with GCC, remove MPX-related things. + +2018-05-01 Nick Clifton + + * config.guess: Synchronize with config project master sources. + * config.sub: Likewise. + +2018-05-01 Francois H. Theron + + * configure.ac: Added "nfp" target. + * configure: Regenerate. + +2018-02-13 Maciej W. Rozycki + + * configure.ac (noconfigdirs): Add `ld'. + * configure: Regenerate. + +2018-01-30 Nick Clifton + + * src-release.sh (do_proto_toplev): Add patterns for more junk files + to delete before creating the tarball. + +2018-01-29 Nick Clifton + + * src-release.sh (do_proto_toplev): Strip patch remnant files from + the sources before creating the tarball. + +2018-01-13 Nick Clifton + + * src-release.sh: Update copyright notice. Change reference to devo + to be a reference to root. + +2018-01-10 Nick Clifton + + * config-ml.in: Sync with gcc sources. + * config.guess: Likewise. + * config.sub: Likewise. + * configure.ac: Likewise. + * configure: Regenerate. + 2017-12-14 Nick Clifton * COPYING.LIBGLOSS: Update address of FSF in copyright notice. diff -Nru gdb-8.1/config/acx.m4 gdb-8.2/config/acx.m4 --- gdb-8.1/config/acx.m4 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/config/acx.m4 2018-09-05 07:27:13.000000000 +0000 @@ -235,8 +235,28 @@ ]) +dnl #### +dnl # GCC_BASE_VER +dnl # Determine GCC version number to use in compiler directories. + +AC_DEFUN([GCC_BASE_VER], +[ + get_gcc_base_ver="cat" + AC_ARG_WITH(gcc-major-version-only, + [AS_HELP_STRING([--with-gcc-major-version-only], [use only GCC major number in filesystem paths])], + [if test x$with_gcc_major_version_only = xyes ; then + changequote(,)dnl + get_gcc_base_ver="sed -e 's/^\([0-9]*\).*/\1/'" + changequote([,])dnl + fi + ]) + AC_SUBST(get_gcc_base_ver) +]) + + AC_DEFUN([ACX_TOOL_DIRS], [ AC_REQUIRE([ACX_PATH_SEP]) +AC_REQUIRE([GCC_BASE_VER]) if test "x$exec_prefix" = xNONE; then if test "x$prefix" = xNONE; then gcc_cv_tool_prefix=$ac_default_prefix @@ -251,7 +271,13 @@ # case, if there is no compiler in the tree nobody should use # AS_FOR_TARGET and LD_FOR_TARGET. if test x$host = x$build && test -f $srcdir/gcc/BASE-VER; then - gcc_version=`cat $srcdir/gcc/BASE-VER` + if test x$with_gcc_major_version_only = xyes ; then + changequote(,)dnl + gcc_version=`sed -e 's/^\([0-9]*\).*$/\1/' $srcdir/gcc/BASE-VER` + changequote([,])dnl + else + gcc_version=`cat $srcdir/gcc/BASE-VER` + fi gcc_cv_tool_dirs="$gcc_cv_tool_prefix/libexec/gcc/$target_noncanonical/$gcc_version$PATH_SEPARATOR" gcc_cv_tool_dirs="$gcc_cv_tool_dirs$gcc_cv_tool_prefix/libexec/gcc/$target_noncanonical$PATH_SEPARATOR" gcc_cv_tool_dirs="$gcc_cv_tool_dirs/usr/lib/gcc/$target_noncanonical/$gcc_version$PATH_SEPARATOR" diff -Nru gdb-8.1/config/ax_check_define.m4 gdb-8.2/config/ax_check_define.m4 --- gdb-8.1/config/ax_check_define.m4 1970-01-01 00:00:00.000000000 +0000 +++ gdb-8.2/config/ax_check_define.m4 2018-09-05 07:27:13.000000000 +0000 @@ -0,0 +1,92 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_check_define.html +# =========================================================================== +# +# SYNOPSIS +# +# AC_CHECK_DEFINE([symbol], [ACTION-IF-FOUND], [ACTION-IF-NOT]) +# AX_CHECK_DEFINE([includes],[symbol], [ACTION-IF-FOUND], [ACTION-IF-NOT]) +# +# DESCRIPTION +# +# Complements AC_CHECK_FUNC but it does not check for a function but for a +# define to exist. Consider a usage like: +# +# AC_CHECK_DEFINE(__STRICT_ANSI__, CFLAGS="$CFLAGS -D_XOPEN_SOURCE=500") +# +# LICENSE +# +# Copyright (c) 2008 Guido U. Draheim +# +# 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 3 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, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 8 + +AU_ALIAS([AC_CHECK_DEFINED], [AC_CHECK_DEFINE]) +AC_DEFUN([AC_CHECK_DEFINE],[ +AS_VAR_PUSHDEF([ac_var],[ac_cv_defined_$1])dnl +AC_CACHE_CHECK([for $1 defined], ac_var, +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[ + #ifdef $1 + int ok; + #else + choke me + #endif +]])],[AS_VAR_SET(ac_var, yes)],[AS_VAR_SET(ac_var, no)])) +AS_IF([test AS_VAR_GET(ac_var) != "no"], [$2], [$3])dnl +AS_VAR_POPDEF([ac_var])dnl +]) + +AU_ALIAS([AX_CHECK_DEFINED], [AX_CHECK_DEFINE]) +AC_DEFUN([AX_CHECK_DEFINE],[ +AS_VAR_PUSHDEF([ac_var],[ac_cv_defined_$2_$1])dnl +AC_CACHE_CHECK([for $2 defined in $1], ac_var, +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <$1>]], [[ + #ifdef $2 + int ok; + #else + choke me + #endif +]])],[AS_VAR_SET(ac_var, yes)],[AS_VAR_SET(ac_var, no)])) +AS_IF([test AS_VAR_GET(ac_var) != "no"], [$3], [$4])dnl +AS_VAR_POPDEF([ac_var])dnl +]) + +AC_DEFUN([AX_CHECK_FUNC], +[AS_VAR_PUSHDEF([ac_var], [ac_cv_func_$2])dnl +AC_CACHE_CHECK([for $2], ac_var, +dnl AC_LANG_FUNC_LINK_TRY +[AC_LINK_IFELSE([AC_LANG_PROGRAM([$1 + #undef $2 + char $2 ();],[ + char (*f) () = $2; + return f != $2; ])], + [AS_VAR_SET(ac_var, yes)], + [AS_VAR_SET(ac_var, no)])]) +AS_IF([test AS_VAR_GET(ac_var) = yes], [$3], [$4])dnl +AS_VAR_POPDEF([ac_var])dnl +])# AC_CHECK_FUNC diff -Nru gdb-8.1/config/ax_pthread.m4 gdb-8.2/config/ax_pthread.m4 --- gdb-8.1/config/ax_pthread.m4 1970-01-01 00:00:00.000000000 +0000 +++ gdb-8.2/config/ax_pthread.m4 2018-09-05 07:27:13.000000000 +0000 @@ -0,0 +1,485 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_pthread.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) +# +# DESCRIPTION +# +# This macro figures out how to build C programs using POSIX threads. It +# sets the PTHREAD_LIBS output variable to the threads library and linker +# flags, and the PTHREAD_CFLAGS output variable to any special C compiler +# flags that are needed. (The user can also force certain compiler +# flags/libs to be tested by setting these environment variables.) +# +# Also sets PTHREAD_CC to any special C compiler that is needed for +# multi-threaded programs (defaults to the value of CC otherwise). (This +# is necessary on AIX to use the special cc_r compiler alias.) +# +# NOTE: You are assumed to not only compile your program with these flags, +# but also to link with them as well. For example, you might link with +# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS +# +# If you are only building threaded programs, you may wish to use these +# variables in your default LIBS, CFLAGS, and CC: +# +# LIBS="$PTHREAD_LIBS $LIBS" +# CFLAGS="$CFLAGS $PTHREAD_CFLAGS" +# CC="$PTHREAD_CC" +# +# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant +# has a nonstandard name, this macro defines PTHREAD_CREATE_JOINABLE to +# that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX). +# +# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the +# PTHREAD_PRIO_INHERIT symbol is defined when compiling with +# PTHREAD_CFLAGS. +# +# ACTION-IF-FOUND is a list of shell commands to run if a threads library +# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it +# is not found. If ACTION-IF-FOUND is not specified, the default action +# will define HAVE_PTHREAD. +# +# Please let the authors know if this macro fails on any platform, or if +# you have any other suggestions or comments. This macro was based on work +# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help +# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by +# Alejandro Forero Cuervo to the autoconf macro repository. We are also +# grateful for the helpful feedback of numerous users. +# +# Updated for Autoconf 2.68 by Daniel Richard G. +# +# LICENSE +# +# Copyright (c) 2008 Steven G. Johnson +# Copyright (c) 2011 Daniel Richard G. +# +# 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 3 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, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 24 + +AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD]) +AC_DEFUN([AX_PTHREAD], [ +AC_REQUIRE([AC_CANONICAL_HOST]) +AC_REQUIRE([AC_PROG_CC]) +AC_REQUIRE([AC_PROG_SED]) +AC_LANG_PUSH([C]) +ax_pthread_ok=no + +# We used to check for pthread.h first, but this fails if pthread.h +# requires special compiler flags (e.g. on Tru64 or Sequent). +# It gets checked for in the link test anyway. + +# First of all, check if the user has set any of the PTHREAD_LIBS, +# etcetera environment variables, and if threads linking works using +# them: +if test "x$PTHREAD_CFLAGS$PTHREAD_LIBS" != "x"; then + ax_pthread_save_CC="$CC" + ax_pthread_save_CFLAGS="$CFLAGS" + ax_pthread_save_LIBS="$LIBS" + AS_IF([test "x$PTHREAD_CC" != "x"], [CC="$PTHREAD_CC"]) + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + AC_MSG_CHECKING([for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS]) + AC_LINK_IFELSE([AC_LANG_CALL([], [pthread_join])], [ax_pthread_ok=yes]) + AC_MSG_RESULT([$ax_pthread_ok]) + if test "x$ax_pthread_ok" = "xno"; then + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" + fi + CC="$ax_pthread_save_CC" + CFLAGS="$ax_pthread_save_CFLAGS" + LIBS="$ax_pthread_save_LIBS" +fi + +# We must check for the threads library under a number of different +# names; the ordering is very important because some systems +# (e.g. DEC) have both -lpthread and -lpthreads, where one of the +# libraries is broken (non-POSIX). + +# Create a list of thread flags to try. Items starting with a "-" are +# C compiler flags, and other items are library names, except for "none" +# which indicates that we try without any flags at all, and "pthread-config" +# which is a program returning the flags for the Pth emulation library. + +ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" + +# The ordering *is* (sometimes) important. Some notes on the +# individual items follow: + +# pthreads: AIX (must check this before -lpthread) +# none: in case threads are in libc; should be tried before -Kthread and +# other compiler flags to prevent continual compiler warnings +# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64 +# (Note: HP C rejects this with "bad form for `-t' option") +# -pthreads: Solaris/gcc (Note: HP C also rejects) +# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it +# doesn't hurt to check since this sometimes defines pthreads and +# -D_REENTRANT too), HP C (must be checked before -lpthread, which +# is present but should not be used directly; and before -mthreads, +# because the compiler interprets this as "-mt" + "-hreads") +# -mthreads: Mingw32/gcc, Lynx/gcc +# pthread: Linux, etcetera +# --thread-safe: KAI C++ +# pthread-config: use pthread-config program (for GNU Pth library) + +case $host_os in + + freebsd*) + + # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) + # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) + + ax_pthread_flags="-kthread lthread $ax_pthread_flags" + ;; + + hpux*) + + # From the cc(1) man page: "[-mt] Sets various -D flags to enable + # multi-threading and also sets -lpthread." + + ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags" + ;; + + openedition*) + + # IBM z/OS requires a feature-test macro to be defined in order to + # enable POSIX threads at all, so give the user a hint if this is + # not set. (We don't define these ourselves, as they can affect + # other portions of the system API in unpredictable ways.) + + AC_EGREP_CPP([AX_PTHREAD_ZOS_MISSING], + [ +# if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS) + AX_PTHREAD_ZOS_MISSING +# endif + ], + [AC_MSG_WARN([IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support.])]) + ;; + + solaris*) + + # On Solaris (at least, for some versions), libc contains stubbed + # (non-functional) versions of the pthreads routines, so link-based + # tests will erroneously succeed. (N.B.: The stubs are missing + # pthread_cleanup_push, or rather a function called by this macro, + # so we could check for that, but who knows whether they'll stub + # that too in a future libc.) So we'll check first for the + # standard Solaris way of linking pthreads (-mt -lpthread). + + ax_pthread_flags="-mt,pthread pthread $ax_pthread_flags" + ;; +esac + +# GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC) + +AS_IF([test "x$GCC" = "xyes"], + [ax_pthread_flags="-pthread -pthreads $ax_pthread_flags"]) + +# The presence of a feature test macro requesting re-entrant function +# definitions is, on some systems, a strong hint that pthreads support is +# correctly enabled + +case $host_os in + darwin* | hpux* | linux* | osf* | solaris*) + ax_pthread_check_macro="_REENTRANT" + ;; + + aix*) + ax_pthread_check_macro="_THREAD_SAFE" + ;; + + *) + ax_pthread_check_macro="--" + ;; +esac +AS_IF([test "x$ax_pthread_check_macro" = "x--"], + [ax_pthread_check_cond=0], + [ax_pthread_check_cond="!defined($ax_pthread_check_macro)"]) + +# Are we compiling with Clang? + +AC_CACHE_CHECK([whether $CC is Clang], + [ax_cv_PTHREAD_CLANG], + [ax_cv_PTHREAD_CLANG=no + # Note that Autoconf sets GCC=yes for Clang as well as GCC + if test "x$GCC" = "xyes"; then + AC_EGREP_CPP([AX_PTHREAD_CC_IS_CLANG], + [/* Note: Clang 2.7 lacks __clang_[a-z]+__ */ +# if defined(__clang__) && defined(__llvm__) + AX_PTHREAD_CC_IS_CLANG +# endif + ], + [ax_cv_PTHREAD_CLANG=yes]) + fi + ]) +ax_pthread_clang="$ax_cv_PTHREAD_CLANG" + +ax_pthread_clang_warning=no + +# Clang needs special handling, because older versions handle the -pthread +# option in a rather... idiosyncratic way + +if test "x$ax_pthread_clang" = "xyes"; then + + # Clang takes -pthread; it has never supported any other flag + + # (Note 1: This will need to be revisited if a system that Clang + # supports has POSIX threads in a separate library. This tends not + # to be the way of modern systems, but it's conceivable.) + + # (Note 2: On some systems, notably Darwin, -pthread is not needed + # to get POSIX threads support; the API is always present and + # active. We could reasonably leave PTHREAD_CFLAGS empty. But + # -pthread does define _REENTRANT, and while the Darwin headers + # ignore this macro, third-party headers might not.) + + PTHREAD_CFLAGS="-pthread" + PTHREAD_LIBS= + + ax_pthread_ok=yes + + # However, older versions of Clang make a point of warning the user + # that, in an invocation where only linking and no compilation is + # taking place, the -pthread option has no effect ("argument unused + # during compilation"). They expect -pthread to be passed in only + # when source code is being compiled. + # + # Problem is, this is at odds with the way Automake and most other + # C build frameworks function, which is that the same flags used in + # compilation (CFLAGS) are also used in linking. Many systems + # supported by AX_PTHREAD require exactly this for POSIX threads + # support, and in fact it is often not straightforward to specify a + # flag that is used only in the compilation phase and not in + # linking. Such a scenario is extremely rare in practice. + # + # Even though use of the -pthread flag in linking would only print + # a warning, this can be a nuisance for well-run software projects + # that build with -Werror. So if the active version of Clang has + # this misfeature, we search for an option to squash it. + + AC_CACHE_CHECK([whether Clang needs flag to prevent "argument unused" warning when linking with -pthread], + [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG], + [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown + # Create an alternate version of $ac_link that compiles and + # links in two steps (.c -> .o, .o -> exe) instead of one + # (.c -> exe), because the warning occurs only in the second + # step + ax_pthread_save_ac_link="$ac_link" + ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g' + ax_pthread_link_step=`$as_echo "$ac_link" | sed "$ax_pthread_sed"` + ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)" + ax_pthread_save_CFLAGS="$CFLAGS" + for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do + AS_IF([test "x$ax_pthread_try" = "xunknown"], [break]) + CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS" + ac_link="$ax_pthread_save_ac_link" + AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])], + [ac_link="$ax_pthread_2step_ac_link" + AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])], + [break]) + ]) + done + ac_link="$ax_pthread_save_ac_link" + CFLAGS="$ax_pthread_save_CFLAGS" + AS_IF([test "x$ax_pthread_try" = "x"], [ax_pthread_try=no]) + ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try" + ]) + + case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in + no | unknown) ;; + *) PTHREAD_CFLAGS="$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG $PTHREAD_CFLAGS" ;; + esac + +fi # $ax_pthread_clang = yes + +if test "x$ax_pthread_ok" = "xno"; then +for ax_pthread_try_flag in $ax_pthread_flags; do + + case $ax_pthread_try_flag in + none) + AC_MSG_CHECKING([whether pthreads work without any flags]) + ;; + + -mt,pthread) + AC_MSG_CHECKING([whether pthreads work with -mt -lpthread]) + PTHREAD_CFLAGS="-mt" + PTHREAD_LIBS="-lpthread" + ;; + + -*) + AC_MSG_CHECKING([whether pthreads work with $ax_pthread_try_flag]) + PTHREAD_CFLAGS="$ax_pthread_try_flag" + ;; + + pthread-config) + AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no]) + AS_IF([test "x$ax_pthread_config" = "xno"], [continue]) + PTHREAD_CFLAGS="`pthread-config --cflags`" + PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" + ;; + + *) + AC_MSG_CHECKING([for the pthreads library -l$ax_pthread_try_flag]) + PTHREAD_LIBS="-l$ax_pthread_try_flag" + ;; + esac + + ax_pthread_save_CFLAGS="$CFLAGS" + ax_pthread_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + + # Check for various functions. We must include pthread.h, + # since some functions may be macros. (On the Sequent, we + # need a special flag -Kthread to make this header compile.) + # We check for pthread_join because it is in -lpthread on IRIX + # while pthread_create is in libc. We check for pthread_attr_init + # due to DEC craziness with -lpthreads. We check for + # pthread_cleanup_push because it is one of the few pthread + # functions on Solaris that doesn't have a non-functional libc stub. + # We try pthread_create on general principles. + + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include +# if $ax_pthread_check_cond +# error "$ax_pthread_check_macro must be defined" +# endif + static void routine(void *a) { a = 0; } + static void *start_routine(void *a) { return a; }], + [pthread_t th; pthread_attr_t attr; + pthread_create(&th, 0, start_routine, 0); + pthread_join(th, 0); + pthread_attr_init(&attr); + pthread_cleanup_push(routine, 0); + pthread_cleanup_pop(0) /* ; */])], + [ax_pthread_ok=yes], + []) + + CFLAGS="$ax_pthread_save_CFLAGS" + LIBS="$ax_pthread_save_LIBS" + + AC_MSG_RESULT([$ax_pthread_ok]) + AS_IF([test "x$ax_pthread_ok" = "xyes"], [break]) + + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" +done +fi + +# Various other checks: +if test "x$ax_pthread_ok" = "xyes"; then + ax_pthread_save_CFLAGS="$CFLAGS" + ax_pthread_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + + # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. + AC_CACHE_CHECK([for joinable pthread attribute], + [ax_cv_PTHREAD_JOINABLE_ATTR], + [ax_cv_PTHREAD_JOINABLE_ATTR=unknown + for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], + [int attr = $ax_pthread_attr; return attr /* ; */])], + [ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break], + []) + done + ]) + AS_IF([test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \ + test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \ + test "x$ax_pthread_joinable_attr_defined" != "xyes"], + [AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE], + [$ax_cv_PTHREAD_JOINABLE_ATTR], + [Define to necessary symbol if this constant + uses a non-standard name on your system.]) + ax_pthread_joinable_attr_defined=yes + ]) + + AC_CACHE_CHECK([whether more special flags are required for pthreads], + [ax_cv_PTHREAD_SPECIAL_FLAGS], + [ax_cv_PTHREAD_SPECIAL_FLAGS=no + case $host_os in + solaris*) + ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS" + ;; + esac + ]) + AS_IF([test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \ + test "x$ax_pthread_special_flags_added" != "xyes"], + [PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS" + ax_pthread_special_flags_added=yes]) + + AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT], + [ax_cv_PTHREAD_PRIO_INHERIT], + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], + [[int i = PTHREAD_PRIO_INHERIT;]])], + [ax_cv_PTHREAD_PRIO_INHERIT=yes], + [ax_cv_PTHREAD_PRIO_INHERIT=no]) + ]) + AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \ + test "x$ax_pthread_prio_inherit_defined" != "xyes"], + [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.]) + ax_pthread_prio_inherit_defined=yes + ]) + + CFLAGS="$ax_pthread_save_CFLAGS" + LIBS="$ax_pthread_save_LIBS" + + # More AIX lossage: compile with *_r variant + if test "x$GCC" != "xyes"; then + case $host_os in + aix*) + AS_CASE(["x/$CC"], + [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6], + [#handle absolute path differently from PATH based program lookup + AS_CASE(["x$CC"], + [x/*], + [AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])], + [AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])])]) + ;; + esac + fi +fi + +test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" + +AC_SUBST([PTHREAD_LIBS]) +AC_SUBST([PTHREAD_CFLAGS]) +AC_SUBST([PTHREAD_CC]) + +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: +if test "x$ax_pthread_ok" = "xyes"; then + ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1]) + : +else + ax_pthread_ok=no + $2 +fi +AC_LANG_POP +])dnl AX_PTHREAD diff -Nru gdb-8.1/config/bootstrap-cet.mk gdb-8.2/config/bootstrap-cet.mk --- gdb-8.1/config/bootstrap-cet.mk 1970-01-01 00:00:00.000000000 +0000 +++ gdb-8.2/config/bootstrap-cet.mk 2018-09-05 07:27:13.000000000 +0000 @@ -0,0 +1,5 @@ +# This option enables -fcf-protection for stage2, stage3 and stage4. + +STAGE2_CFLAGS += -fcf-protection +STAGE3_CFLAGS += -fcf-protection +STAGE4_CFLAGS += -fcf-protection diff -Nru gdb-8.1/config/bootstrap-debug-lean.mk gdb-8.2/config/bootstrap-debug-lean.mk --- gdb-8.1/config/bootstrap-debug-lean.mk 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/config/bootstrap-debug-lean.mk 2018-09-05 07:27:13.000000000 +0000 @@ -9,3 +9,4 @@ STAGE2_CFLAGS += -fcompare-debug= STAGE3_CFLAGS += -fcompare-debug +do-compare = $(SHELL) $(srcdir)/contrib/compare-debug $$f1 $$f2 diff -Nru gdb-8.1/config/bootstrap-lto.mk gdb-8.2/config/bootstrap-lto.mk --- gdb-8.1/config/bootstrap-lto.mk 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/config/bootstrap-lto.mk 2018-09-05 07:27:13.000000000 +0000 @@ -2,7 +2,9 @@ STAGE2_CFLAGS += -flto=jobserver -frandom-seed=1 STAGE3_CFLAGS += -flto=jobserver -frandom-seed=1 -STAGEprofile_CFLAGS += -fno-lto +STAGEprofile_CFLAGS += -flto=jobserver -frandom-seed=1 +STAGEtrain_CFLAGS += -flto=jobserver -frandom-seed=1 +STAGEfeedback_CFLAGS += -flto=jobserver -frandom-seed=1 # assumes the host supports the linker plugin LTO_AR = $$r/$(HOST_SUBDIR)/prev-gcc/gcc-ar$(exeext) -B$$r/$(HOST_SUBDIR)/prev-gcc/ @@ -11,3 +13,5 @@ LTO_EXPORTS = AR="$(LTO_AR)"; export AR; \ RANLIB="$(LTO_RANLIB)"; export RANLIB; LTO_FLAGS_TO_PASS = AR="$(LTO_AR)" RANLIB="$(LTO_RANLIB)" + +do-compare = $(SHELL) $(srcdir)/contrib/compare-lto $$f1 $$f2 diff -Nru gdb-8.1/config/bootstrap-lto-noplugin.mk gdb-8.2/config/bootstrap-lto-noplugin.mk --- gdb-8.1/config/bootstrap-lto-noplugin.mk 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/config/bootstrap-lto-noplugin.mk 2018-09-05 07:27:13.000000000 +0000 @@ -3,4 +3,7 @@ STAGE2_CFLAGS += -flto=jobserver -frandom-seed=1 -ffat-lto-objects STAGE3_CFLAGS += -flto=jobserver -frandom-seed=1 -ffat-lto-objects -STAGEprofile_CFLAGS += -fno-lto +STAGEprofile_CFLAGS += -flto=jobserver -frandom-seed=1 +STAGEtrain_CFLAGS += -flto=jobserver -frandom-seed=1 +STAGEfeedback_CFLAGS += -flto=jobserver -frandom-seed=1 +do-compare = /bin/true diff -Nru gdb-8.1/config/bootstrap-mpx.mk gdb-8.2/config/bootstrap-mpx.mk --- gdb-8.1/config/bootstrap-mpx.mk 2017-06-04 15:51:26.000000000 +0000 +++ gdb-8.2/config/bootstrap-mpx.mk 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ -# This option enables -fcheck-pointer-bounds -mmpx for stage2 and stage3. - -STAGE2_CFLAGS += -fcheck-pointer-bounds -mmpx -frandom-seed=1 -STAGE3_CFLAGS += -fcheck-pointer-bounds -mmpx -frandom-seed=1 -POSTSTAGE1_LDFLAGS += -fcheck-pointer-bounds -mmpx -frandom-seed=1 \ - -static-libmpx -static-libmpxwrappers \ - -B$$r/prev-$(TARGET_SUBDIR)/libmpx \ - -B$$r/prev-$(TARGET_SUBDIR)/libmpx/mpxrt/.libs \ - -B$$r/prev-$(TARGET_SUBDIR)/libmpx/mpxwrap/.libs diff -Nru gdb-8.1/config/bootstrap-ubsan.mk gdb-8.2/config/bootstrap-ubsan.mk --- gdb-8.1/config/bootstrap-ubsan.mk 2017-06-04 15:51:26.000000000 +0000 +++ gdb-8.2/config/bootstrap-ubsan.mk 2018-09-05 07:27:13.000000000 +0000 @@ -1,8 +1,8 @@ # This option enables -fsanitize=undefined for stage2 and stage3. -STAGE2_CFLAGS += -fsanitize=undefined -STAGE3_CFLAGS += -fsanitize=undefined -POSTSTAGE1_LDFLAGS += -fsanitize=undefined -static-libubsan \ +STAGE2_CFLAGS += -fsanitize=undefined -DUBSAN_BOOTSTRAP +STAGE3_CFLAGS += -fsanitize=undefined -DUBSAN_BOOTSTRAP +POSTSTAGE1_LDFLAGS += -fsanitize=undefined -static-libubsan -DUBSAN_BOOTSTRAP \ -B$$r/prev-$(TARGET_SUBDIR)/libsanitizer/ \ -B$$r/prev-$(TARGET_SUBDIR)/libsanitizer/ubsan/ \ -B$$r/prev-$(TARGET_SUBDIR)/libsanitizer/ubsan/.libs diff -Nru gdb-8.1/config/cet.m4 gdb-8.2/config/cet.m4 --- gdb-8.1/config/cet.m4 1970-01-01 00:00:00.000000000 +0000 +++ gdb-8.2/config/cet.m4 2018-09-05 07:27:13.000000000 +0000 @@ -0,0 +1,50 @@ +dnl +dnl GCC_CET_FLAGS +dnl (SHELL-CODE_HANDLER) +dnl +AC_DEFUN([GCC_CET_FLAGS],[dnl +GCC_ENABLE(cet, no, ,[enable Intel CET in target libraries], + permit yes|no|auto) +AC_MSG_CHECKING([for CET support]) + +case "$host" in + i[[34567]]86-*-linux* | x86_64-*-linux*) + case "$enable_cet" in + auto) + # Check if target supports multi-byte NOPs + # and if assembler supports CET insn. + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [], + [ +#if !defined(__SSE2__) +#error target does not support multi-byte NOPs +#else +asm ("setssbsy"); +#endif + ])], + [enable_cet=yes], + [enable_cet=no]) + ;; + yes) + # Check if assembler supports CET. + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [], + [asm ("setssbsy");])], + [], + [AC_MSG_ERROR([assembler with CET support is required for --enable-cet])]) + ;; + esac + ;; + *) + enable_cet=no + ;; +esac +if test x$enable_cet = xyes; then + $1="-fcf-protection -mshstk" + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([no]) +fi +]) diff -Nru gdb-8.1/config/ChangeLog gdb-8.2/config/ChangeLog --- gdb-8.1/config/ChangeLog 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/config/ChangeLog 2018-09-05 07:27:13.000000000 +0000 @@ -1,3 +1,123 @@ +2018-06-19 Simon Marchi + + * override.m4 (_GCC_AUTOCONF_VERSION): Bump from 2.64 to 2.69. + +2018-06-18 Simon Marchi + + Sync with GCC + 2018-06-08 Martin Liska + + * bootstrap-mpx.mk: Remove. + + 2018-05-10 Martin Liska + + PR bootstrap/64914 + * bootstrap-ubsan.mk: Define UBSAN_BOOTSTRAP. + + 2018-05-09 Joshua Watt + + * ax_pthread.m4: Add file. + + 2018-05-08 Richard Biener + + PR bootstrap/85571 + * bootstrap-lto-noplugin.mk: Disable compare. + * bootstrap-lto.mk: Supply contrib/compare-lto for do-compare. + + 2018-04-24 H.J. Lu + + PR bootstrap/85490 + * bootstrap-cet.mk (STAGE4_CFLAGS): New. + + 2018-04-24 H.J. Lu + + PR target/85485 + * bootstrap-cet.mk (STAGE2_CFLAGS): Remove -mcet. + (STAGE3_CFLAGS): Likewise. + + 2018-04-24 H.J. Lu + + PR target/85485 + * cet.m4 (GCC_CET_FLAGS): Replace -mcet with -mshstk. + + 2018-04-19 Jakub Jelinek + + * cet.m4 (GCC_CET_FLAGS): Default to --disable-cet, replace + --enable-cet=default with --enable-cet=auto. + + 2018-04-18 David Malcolm + + PR jit/85384 + * acx.m4 (GCC_BASE_VER): Remove \$\$ from sed expression. + +2018-04-05 H.J. Lu + + Sync with GCC + 2018-04-05 H.J. Lu + + PR gas/22318 + * plugins.m4 (AC_PLUGINS): Use dlsym to check if libdl is needed. + + 2018-02-14 Igor Tsimbalist + + PR target/84148 + * cet.m4: Check if target support multi-byte NOPS (SSE). + +2018-02-06 Eric Botcazou + + * gcc-plugin.m4 (GCC_ENABLE_PLUGINS): Remove -q option passed to grep. + +2018-01-10 Nick Clifton + + * Sync with GCC sources: + + 2017-11-14 Boris Kolpackov + + * gcc-plugin.m4: Add support for MinGW. + + 2017-11-17 Igor Tsimbalist + + * cet.m4: New file. + + 2017-11-15 Alexandre Oliva + + * bootstrap-debug-lean.mk (do-compare): Use the + contrib/compare-debug script. + + 2017-10-24 H.J. Lu + + * bootstrap-cet.mk: New file. + + 2017-06-19 Martin Liska + + * bootstrap-lto-noplugin.mk: Enable -flto in all PGO stages. + * bootstrap-lto.mk: Likewise. + + 2017-06-03 Eric Botcazou + + * mt-android: New file. + + 2017-02-13 Richard Biener + + * isl.m4: Remove support for ISL 0.14. + + 2017-01-19 Uros Bizjak + + PR target/78478 + * ax_check_define.m4: New file. + + 2017-01-17 Jakub Jelinek + + PR other/79046 + * acx.m4 (GCC_BASE_VER): New m4 function. + (ACX_TOOL_DIRS): Require GCC_BASE_VER, for + --with-gcc-major-version-only use just major number from BASE-VER. + + 2017-01-06 Rainer Orth + + PR go/78978 + * hwcaps.m4 (GCC_CHECK_ASSEMBLER_HWCAP): New macro. + 2017-01-05 Alan Modra * picflag.m4: Import from gcc. diff -Nru gdb-8.1/config/gcc-plugin.m4 gdb-8.2/config/gcc-plugin.m4 --- gdb-8.1/config/gcc-plugin.m4 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/config/gcc-plugin.m4 2018-09-05 07:27:13.000000000 +0000 @@ -19,8 +19,21 @@ enable_plugin=yes; default_plugin=yes) pluginlibs= + plugin_check=yes case "${host}" in + *-*-mingw*) + # Since plugin support under MinGW is not as straightforward as on + # other platforms (e.g., we have to link import library, etc), we + # only enable it if explicitly requested. + if test x"$default_plugin" = x"yes"; then + enable_plugin=no + elif test x"$enable_plugin" = x"yes"; then + # Use make's target variable to derive import library name. + pluginlibs='-Wl,--export-all-symbols -Wl,--out-implib=[$]@.a' + plugin_check=no + fi + ;; *-*-darwin*) if test x$build = x$host; then export_sym_check="nm${exeext} -g" @@ -41,20 +54,20 @@ ;; esac - if test x"$enable_plugin" = x"yes"; then + if test x"$enable_plugin" = x"yes" -a x"$plugin_check" = x"yes"; then AC_MSG_CHECKING([for exported symbols]) if test "x$export_sym_check" != x; then echo "int main() {return 0;} int foobar() {return 0;}" > conftest.c ${CC} ${CFLAGS} ${LDFLAGS} conftest.c -o conftest$ac_exeext > /dev/null 2>&1 - if $export_sym_check conftest$ac_exeext | grep -q foobar > /dev/null; then + if $export_sym_check conftest$ac_exeext | grep foobar > /dev/null; then : # No need to use a flag AC_MSG_RESULT([yes]) else AC_MSG_RESULT([yes]) AC_MSG_CHECKING([for -rdynamic]) ${CC} ${CFLAGS} ${LDFLAGS} -rdynamic conftest.c -o conftest$ac_exeext > /dev/null 2>&1 - if $export_sym_check conftest$ac_exeext | grep -q foobar > /dev/null; then + if $export_sym_check conftest$ac_exeext | grep foobar > /dev/null; then plugin_rdynamic=yes pluginlibs="-rdynamic" else diff -Nru gdb-8.1/config/hwcaps.m4 gdb-8.2/config/hwcaps.m4 --- gdb-8.1/config/hwcaps.m4 1970-01-01 00:00:00.000000000 +0000 +++ gdb-8.2/config/hwcaps.m4 2018-09-05 07:27:13.000000000 +0000 @@ -0,0 +1,60 @@ +dnl +dnl Check if the assembler used supports disabling generation of hardware +dnl capabilities. This is only supported by Solaris as at the moment. +dnl +dnl Defines: +dnl HWCAP_CFLAGS='-Wa,-nH' if possible. +dnl +AC_DEFUN([GCC_CHECK_ASSEMBLER_HWCAP], [ + test -z "$HWCAP_CFLAGS" && HWCAP_CFLAGS='' + + # Restrict the test to Solaris, other assemblers (e.g. AIX as) have -nH + # with a different meaning. + case ${target_os} in + solaris2*) + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Wa,-nH" + + AC_MSG_CHECKING([for as that supports -Wa,-nH]) + AC_TRY_COMPILE([], [return 0;], [ac_hwcap_flags=yes],[ac_hwcap_flags=no]) + if test "$ac_hwcap_flags" = "yes"; then + HWCAP_CFLAGS="-Wa,-nH $HWCAP_CFLAGS" + fi + AC_MSG_RESULT($ac_hwcap_flags) + + CFLAGS="$ac_save_CFLAGS" + ;; + esac + + AC_SUBST(HWCAP_CFLAGS) +]) + + +dnl +dnl Check if the linker used supports linker maps to clear hardware +dnl capabilities. This is only supported on Solaris at the moment. +dnl +dnl Defines: +dnl HWCAP_LDFLAGS=-mclear-hwcap if possible +dnl LD (as a side effect of testing) +dnl +AC_DEFUN([GCC_CHECK_LINKER_HWCAP], [ + test -z "$HWCAP_LDFLAGS" && HWCAP_LDFLAGS='' + AC_REQUIRE([AC_PROG_LD]) + + ac_save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LFLAGS -mclear-hwcap" + + AC_MSG_CHECKING([for -mclear-hwcap]) + AC_TRY_LINK([], [return 0;], [ac_hwcap_ldflags=yes],[ac_hwcap_ldflags=no]) + if test "$ac_hwcap_ldflags" = "yes"; then + HWCAP_LDFLAGS="-mclear-hwcap $HWCAP_LDFLAGS" + fi + AC_MSG_RESULT($ac_hwcap_ldflags) + + LDFLAGS="$ac_save_LDFLAGS" + + AC_SUBST(HWCAP_LDFLAGS) + + AM_CONDITIONAL(HAVE_HWCAP, test $ac_hwcap_ldflags != no) +]) diff -Nru gdb-8.1/config/isl.m4 gdb-8.2/config/isl.m4 --- gdb-8.1/config/isl.m4 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/config/isl.m4 2018-09-05 07:27:13.000000000 +0000 @@ -106,27 +106,15 @@ LDFLAGS="${_isl_saved_LDFLAGS} ${isllibs} ${gmplibs}" LIBS="${_isl_saved_LIBS} -lisl -lgmp" - AC_MSG_CHECKING([for isl 0.16, 0.15, or deprecated 0.14]) - AC_TRY_LINK([#include ], - [isl_ctx_get_max_operations (isl_ctx_alloc ());], + AC_MSG_CHECKING([for isl 0.15 or later]) + AC_TRY_LINK([#include ], + [isl_options_set_schedule_serialize_sccs (NULL, 0);], [gcc_cv_isl=yes], [gcc_cv_isl=no]) AC_MSG_RESULT([$gcc_cv_isl]) if test "${gcc_cv_isl}" = no ; then - AC_MSG_RESULT([recommended isl version is 0.16 or 0.15, the minimum required isl version 0.14 is deprecated]) - fi - - AC_MSG_CHECKING([for isl 0.16 or 0.15]) - AC_TRY_LINK([#include ], - [isl_options_set_schedule_serialize_sccs (NULL, 0);], - [ac_has_isl_options_set_schedule_serialize_sccs=yes], - [ac_has_isl_options_set_schedule_serialize_sccs=no]) - AC_MSG_RESULT($ac_has_isl_options_set_schedule_serialize_sccs) - - if test x"$ac_has_isl_options_set_schedule_serialize_sccs" = x"yes"; then - islver="0.15" - AC_SUBST([islver]) + AC_MSG_RESULT([required isl version is 0.15 or later]) fi CFLAGS=$_isl_saved_CFLAGS diff -Nru gdb-8.1/config/mt-android gdb-8.2/config/mt-android --- gdb-8.1/config/mt-android 1970-01-01 00:00:00.000000000 +0000 +++ gdb-8.2/config/mt-android 2018-09-05 07:27:13.000000000 +0000 @@ -0,0 +1 @@ +CXXFLAGS_FOR_TARGET += -D_GNU_SOURCE -fexceptions -frtti diff -Nru gdb-8.1/config/override.m4 gdb-8.2/config/override.m4 --- gdb-8.1/config/override.m4 2017-06-04 15:51:26.000000000 +0000 +++ gdb-8.2/config/override.m4 2018-09-05 07:27:13.000000000 +0000 @@ -29,7 +29,7 @@ dnl Ensure exactly this Autoconf version is used m4_ifndef([_GCC_AUTOCONF_VERSION], - [m4_define([_GCC_AUTOCONF_VERSION], [2.64])]) + [m4_define([_GCC_AUTOCONF_VERSION], [2.69])]) dnl Test for the exact version when AC_INIT is expanded. dnl This allows to update the tree in steps (for testing) diff -Nru gdb-8.1/config/plugins.m4 gdb-8.2/config/plugins.m4 --- gdb-8.1/config/plugins.m4 2017-06-04 15:51:26.000000000 +0000 +++ gdb-8.2/config/plugins.m4 2018-09-05 07:27:13.000000000 +0000 @@ -16,6 +16,6 @@ [plugins=$maybe_plugins] ) if test "$plugins" = "yes"; then - AC_SEARCH_LIBS([dlopen], [dl]) + AC_SEARCH_LIBS([dlsym], [dl]) fi ]) diff -Nru gdb-8.1/config.guess gdb-8.2/config.guess --- gdb-8.1/config.guess 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/config.guess 2018-09-05 07:44:28.000000000 +0000 @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2017 Free Software Foundation, Inc. +# Copyright 1992-2018 Free Software Foundation, Inc. -timestamp='2017-03-22' +timestamp='2018-05-01' # 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 @@ -15,7 +15,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, see . +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -27,7 +27,7 @@ # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # # Please send patches to . @@ -39,7 +39,7 @@ Output the configuration name of the system \`$me' is run on. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -50,7 +50,7 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2017 Free Software Foundation, Inc. +Copyright 1992-2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -107,9 +107,9 @@ dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; + ,,) echo "int x;" > "$dummy.c" ; for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; @@ -132,14 +132,14 @@ UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -case "${UNAME_SYSTEM}" in +case "$UNAME_SYSTEM" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu - eval $set_cc_for_build - cat <<-EOF > $dummy.c + eval "$set_cc_for_build" + cat <<-EOF > "$dummy.c" #include #if defined(__UCLIBC__) LIBC=uclibc @@ -149,13 +149,20 @@ LIBC=gnu #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" + + # If ldd exists, use it to detect musl libc. + if command -v ldd >/dev/null && \ + ldd --version 2>&1 | grep -q ^musl + then + LIBC=musl + fi ;; esac # Note: order is significant - the case branches are not exclusive. -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in +case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, @@ -169,30 +176,30 @@ # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ - /sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || \ + "/sbin/$sysctl" 2>/dev/null || \ + "/usr/sbin/$sysctl" 2>/dev/null || \ echo unknown)` - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; earmv*) - arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` - endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` - machine=${arch}${endian}-unknown + arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine="${arch}${endian}"-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + *) machine="$UNAME_MACHINE_ARCH"-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently (or will in the future) and ABI. - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in earm*) os=netbsdelf ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build + eval "$set_cc_for_build" if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then @@ -208,10 +215,10 @@ ;; esac # Determine ABI tags. - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in earm*) expr='s/^earmv[0-9]/-eabi/;s/eb$//' - abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` ;; esac # The OS release @@ -219,46 +226,55 @@ # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in + case "$UNAME_VERSION" in Debian*) release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` + release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}${abi}" + echo "$machine-${os}${release}${abi}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" exit ;; *:LibertyBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" + exit ;; + *:MidnightBSD:*:*) + echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" exit ;; *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" exit ;; *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" exit ;; macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} + echo powerpc-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:Sortix:*:*) - echo ${UNAME_MACHINE}-unknown-sortix + echo "$UNAME_MACHINE"-unknown-sortix + exit ;; + *:Redox:*:*) + echo "$UNAME_MACHINE"-unknown-redox exit ;; + mips:OSF1:*.*) + echo mips-dec-osf1 + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -310,28 +326,19 @@ # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; - 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 - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos + echo "$UNAME_MACHINE"-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos + echo "$UNAME_MACHINE"-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition @@ -343,7 +350,7 @@ echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} + echo arm-acorn-riscix"$UNAME_RELEASE" exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos @@ -370,19 +377,19 @@ sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) - echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" exit ;; sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux${UNAME_RELEASE} + echo i386-pc-auroraux"$UNAME_RELEASE" exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build + eval "$set_cc_for_build" SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. @@ -395,13 +402,13 @@ SUN_ARCH=x86_64 fi fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in @@ -410,25 +417,25 @@ ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" exit ;; sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" ;; sun4) - echo sparc-sun-sunos${UNAME_RELEASE} + echo sparc-sun-sunos"$UNAME_RELEASE" ;; esac exit ;; aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} + echo sparc-auspex-sunos"$UNAME_RELEASE" exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not @@ -439,44 +446,44 @@ # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} + echo m68k-milan-mint"$UNAME_RELEASE" exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} + echo m68k-hades-mint"$UNAME_RELEASE" exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} + echo m68k-unknown-mint"$UNAME_RELEASE" exit ;; m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} + echo m68k-apple-machten"$UNAME_RELEASE" exit ;; powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} + echo powerpc-apple-machten"$UNAME_RELEASE" exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} + echo mips-dec-ultrix"$UNAME_RELEASE" exit ;; VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} + echo vax-dec-ultrix"$UNAME_RELEASE" exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} + echo clipper-intergraph-clix"$UNAME_RELEASE" exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { @@ -485,23 +492,23 @@ #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`"$dummy" "$dummyarg"` && { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} + echo mips-mips-riscos"$UNAME_RELEASE" exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax @@ -527,17 +534,17 @@ AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] + if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ + [ "$TARGET_BINARY_INTERFACE"x = x ] then - echo m88k-dg-dgux${UNAME_RELEASE} + echo m88k-dg-dgux"$UNAME_RELEASE" else - echo m88k-dg-dguxbcs${UNAME_RELEASE} + echo m88k-dg-dguxbcs"$UNAME_RELEASE" fi else - echo i586-dg-dgux${UNAME_RELEASE} + echo i586-dg-dgux"$UNAME_RELEASE" fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) @@ -554,7 +561,7 @@ echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id @@ -566,14 +573,14 @@ if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #include main() @@ -584,7 +591,7 @@ exit(0); } EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` then echo "$SYSTEM_NAME" else @@ -598,7 +605,7 @@ exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc @@ -607,18 +614,18 @@ IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} + echo "$IBM_ARCH"-ibm-aix"$IBM_REV" exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx @@ -633,28 +640,28 @@ echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + case "$UNAME_MACHINE" in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in + case "$sc_cpu_version" in 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in + case "$sc_kernel_bits" in 32) HP_ARCH=hppa2.0n ;; 64) HP_ARCH=hppa2.0w ;; '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + if [ "$HP_ARCH" = "" ]; then + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #define _HPUX_SOURCE #include @@ -687,13 +694,13 @@ exit (0); } EOF - (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = hppa2.0w ] + if [ "$HP_ARCH" = hppa2.0w ] then - eval $set_cc_for_build + eval "$set_cc_for_build" # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler @@ -712,15 +719,15 @@ HP_ARCH=hppa64 fi fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} + echo "$HP_ARCH"-hp-hpux"$HPUX_REV" exit ;; ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux"$HPUX_REV" exit ;; 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #include int main () @@ -745,11 +752,11 @@ exit (0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) @@ -758,7 +765,7 @@ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) @@ -766,9 +773,9 @@ exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk + echo "$UNAME_MACHINE"-unknown-osf1mk else - echo ${UNAME_MACHINE}-unknown-osf1 + echo "$UNAME_MACHINE"-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) @@ -793,128 +800,109 @@ echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" exit ;; sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} + echo sparc-unknown-bsdi"$UNAME_RELEASE" exit ;; *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` - case ${UNAME_PROCESSOR} in + case "$UNAME_PROCESSOR" in amd64) - UNAME_PROCESSOR=x86_64 ;; + UNAME_PROCESSOR=x86_64 ;; i386) UNAME_PROCESSOR=i586 ;; esac - echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" exit ;; i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin + echo "$UNAME_MACHINE"-pc-cygwin exit ;; *:MINGW64*:*) - echo ${UNAME_MACHINE}-pc-mingw64 + echo "$UNAME_MACHINE"-pc-mingw64 exit ;; *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 + echo "$UNAME_MACHINE"-pc-mingw32 exit ;; *:MSYS*:*) - echo ${UNAME_MACHINE}-pc-msys - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 + echo "$UNAME_MACHINE"-pc-msys exit ;; i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 + echo "$UNAME_MACHINE"-pc-pw32 exit ;; *:Interix*:*) - case ${UNAME_MACHINE} in + case "$UNAME_MACHINE" in x86) - echo i586-pc-interix${UNAME_RELEASE} + echo i586-pc-interix"$UNAME_RELEASE" exit ;; authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix${UNAME_RELEASE} + echo x86_64-unknown-interix"$UNAME_RELEASE" exit ;; IA64) - echo ia64-unknown-interix${UNAME_RELEASE} + echo ia64-unknown-interix"$UNAME_RELEASE" exit ;; esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - 8664:Windows_NT:*) - echo x86_64-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin + echo "$UNAME_MACHINE"-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; *:GNU:*:*) # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" exit ;; i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix + echo "$UNAME_MACHINE"-pc-minix exit ;; aarch64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in @@ -928,63 +916,63 @@ esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arc:Linux:*:* | arceb:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arm*:Linux:*:*) - eval $set_cc_for_build + eval "$set_cc_for_build" if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi else - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf fi fi exit ;; avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; cris:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" exit ;; crisv32:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" exit ;; e2k:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; frv:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; hexagon:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" exit ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; k1om:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el @@ -998,70 +986,70 @@ #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`" + test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; } ;; mips64el:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; openrisc*:Linux:*:*) - echo or1k-unknown-linux-${LIBC} + echo or1k-unknown-linux-"$LIBC" exit ;; or32:Linux:*:* | or1k*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; padre:Linux:*:*) - echo sparc-unknown-linux-${LIBC} + echo sparc-unknown-linux-"$LIBC" exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-${LIBC} + echo hppa64-unknown-linux-"$LIBC" exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; - PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; - *) echo hppa-unknown-linux-${LIBC} ;; + PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; + PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; + *) echo hppa-unknown-linux-"$LIBC" ;; esac exit ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-${LIBC} + echo powerpc64-unknown-linux-"$LIBC" exit ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-${LIBC} + echo powerpc-unknown-linux-"$LIBC" exit ;; ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-${LIBC} + echo powerpc64le-unknown-linux-"$LIBC" exit ;; ppcle:Linux:*:*) - echo powerpcle-unknown-linux-${LIBC} + echo powerpcle-unknown-linux-"$LIBC" exit ;; riscv32:Linux:*:* | riscv64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; tile*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-${LIBC} + echo "$UNAME_MACHINE"-dec-linux-"$LIBC" exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" exit ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. @@ -1075,34 +1063,34 @@ # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx + echo "$UNAME_MACHINE"-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop + echo "$UNAME_MACHINE"-unknown-stop exit ;; i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos + echo "$UNAME_MACHINE"-unknown-atheos exit ;; i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable + echo "$UNAME_MACHINE"-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} + echo i386-unknown-lynxos"$UNAME_RELEASE" exit ;; i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp + echo "$UNAME_MACHINE"-pc-msdosdjgpp exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + i*86:*:4.*:*) + UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" fi exit ;; i*86:*:5:[678]*) @@ -1112,12 +1100,12 @@ *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 @@ -1127,9 +1115,9 @@ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv32 + echo "$UNAME_MACHINE"-pc-sysv32 fi exit ;; pc:*:*:*) @@ -1149,9 +1137,9 @@ exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) @@ -1171,9 +1159,9 @@ test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; @@ -1182,28 +1170,28 @@ test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} + echo m68k-unknown-lynxos"$UNAME_RELEASE" exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} + echo sparc-unknown-lynxos"$UNAME_RELEASE" exit ;; rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} + echo rs6000-unknown-lynxos"$UNAME_RELEASE" exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} + echo powerpc-unknown-lynxos"$UNAME_RELEASE" exit ;; SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} + echo mips-dde-sysv"$UNAME_RELEASE" exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 @@ -1214,7 +1202,7 @@ *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 + echo "$UNAME_MACHINE"-sni-sysv4 else echo ns32k-sni-sysv fi @@ -1234,23 +1222,23 @@ exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos + echo "$UNAME_MACHINE"-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} + echo m68k-apple-aux"$UNAME_RELEASE" exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} + echo mips-nec-sysv"$UNAME_RELEASE" else - echo mips-unknown-sysv${UNAME_RELEASE} + echo mips-unknown-sysv"$UNAME_RELEASE" fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. @@ -1269,49 +1257,56 @@ echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} + echo sx4-nec-superux"$UNAME_RELEASE" exit ;; SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} + echo sx5-nec-superux"$UNAME_RELEASE" exit ;; SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} + echo sx6-nec-superux"$UNAME_RELEASE" exit ;; SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} + echo sx7-nec-superux"$UNAME_RELEASE" exit ;; SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} + echo sx8-nec-superux"$UNAME_RELEASE" exit ;; SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} + echo sx8r-nec-superux"$UNAME_RELEASE" exit ;; SX-ACE:SUPER-UX:*:*) - echo sxace-nec-superux${UNAME_RELEASE} + echo sxace-nec-superux"$UNAME_RELEASE" exit ;; Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} + echo powerpc-apple-rhapsody"$UNAME_RELEASE" exit ;; *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - eval $set_cc_for_build + eval "$set_cc_for_build" if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi - if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi fi elif test "$UNAME_PROCESSOR" = i386 ; then # Avoid executing cc on OS X 10.9, as it ships with a stub @@ -1322,7 +1317,7 @@ # that Apple uses in portable devices. UNAME_PROCESSOR=x86_64 fi - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` @@ -1330,22 +1325,25 @@ UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; - NEO-?:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk${UNAME_RELEASE} + NEO-*:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk"$UNAME_RELEASE" exit ;; NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} + echo nse-tandem-nsk"$UNAME_RELEASE" exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} + NSR-*:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk"$UNAME_RELEASE" exit ;; - NSX-?:NONSTOP_KERNEL:*:*) - echo nsx-tandem-nsk${UNAME_RELEASE} + NSV-*:NONSTOP_KERNEL:*:*) + echo nsv-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSX-*:NONSTOP_KERNEL:*:*) + echo nsx-tandem-nsk"$UNAME_RELEASE" exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux @@ -1354,7 +1352,7 @@ echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 @@ -1365,7 +1363,7 @@ else UNAME_MACHINE="$cputype" fi - echo ${UNAME_MACHINE}-unknown-plan9 + echo "$UNAME_MACHINE"-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 @@ -1386,14 +1384,14 @@ echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} + echo mips-sei-seiux"$UNAME_RELEASE" exit ;; *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in + case "$UNAME_MACHINE" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; @@ -1402,32 +1400,44 @@ echo i386-pc-xenix exit ;; i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` + echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" exit ;; i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos + echo "$UNAME_MACHINE"-pc-rdos exit ;; i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros + echo "$UNAME_MACHINE"-pc-aros exit ;; x86_64:VMkernel:*:*) - echo ${UNAME_MACHINE}-unknown-esx + echo "$UNAME_MACHINE"-unknown-esx exit ;; amd64:Isilon\ OneFS:*:*) echo x86_64-unknown-onefs exit ;; esac +echo "$0: unable to guess system type" >&2 + +case "$UNAME_MACHINE:$UNAME_SYSTEM" in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&2 </dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" EOF exit 1 # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff -Nru gdb-8.1/config-ml.in gdb-8.2/config-ml.in --- gdb-8.1/config-ml.in 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/config-ml.in 2018-09-05 07:27:13.000000000 +0000 @@ -511,7 +511,6 @@ ADAFLAGS="$(ADAFLAGS) $${flags}" \ prefix="$(prefix)" \ exec_prefix="$(exec_prefix)" \ - GCJFLAGS="$(GCJFLAGS) $${flags}" \ GOCFLAGS="$(GOCFLAGS) $${flags}" \ CXXFLAGS="$(CXXFLAGS) $${flags}" \ LIBCFLAGS="$(LIBCFLAGS) $${flags}" \ @@ -746,13 +745,12 @@ break fi done - ml_config_env='CC="${CC_}$flags" CXX="${CXX_}$flags" F77="${F77_}$flags" GCJ="${GCJ_}$flags" GFORTRAN="${GFORTRAN_}$flags" GOC="${GOC_}$flags"' + ml_config_env='CC="${CC_}$flags" CXX="${CXX_}$flags" F77="${F77_}$flags" GFORTRAN="${GFORTRAN_}$flags" GOC="${GOC_}$flags"' if [ "${with_target_subdir}" = "." ]; then CC_=$CC' ' CXX_=$CXX' ' F77_=$F77' ' - GCJ_=$GCJ' ' GFORTRAN_=$GFORTRAN' ' GOC_=$GOC' ' else @@ -795,18 +793,6 @@ esac done - GCJ_= - for arg in ${GCJ}; do - case $arg in - -[BIL]"${ML_POPDIR}"/*) - GCJ_="${GCJ_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; - "${ML_POPDIR}"/*) - GCJ_="${GCJ_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; - *) - GCJ_="${GCJ_}${arg} " ;; - esac - done - GFORTRAN_= for arg in ${GFORTRAN}; do case $arg in diff -Nru gdb-8.1/config.sub gdb-8.2/config.sub --- gdb-8.1/config.sub 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/config.sub 2018-09-05 07:44:28.000000000 +0000 @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2017 Free Software Foundation, Inc. +# Copyright 1992-2018 Free Software Foundation, Inc. -timestamp='2017-04-02' +timestamp='2018-05-01' # 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 @@ -15,7 +15,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, see . +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -33,7 +33,7 @@ # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases @@ -57,7 +57,7 @@ Canonicalize a configuration name. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -67,7 +67,7 @@ version="\ GNU config.sub ($timestamp) -Copyright 1992-2017 Free Software Foundation, Inc. +Copyright 1992-2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -94,7 +94,7 @@ *local*) # First pass through any local machine types. - echo $1 + echo "$1" exit ;; * ) @@ -112,26 +112,31 @@ # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in - nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ - kopensolaris*-gnu* | cloudabi*-eabi* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - android-linux) - os=-linux-android - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ + kopensolaris*-gnu* | cloudabi*-eabi* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + android-linux) + os=-linux-android + basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; + *) + basic_machine=`echo "$1" | sed 's/-[^-]*$//'` + case $1 in + *-*) + os=`echo "$1" | sed 's/.*-/-/'` + ;; + *) + os= + ;; + esac + ;; esac ### Let's recognize common machines as not being operating systems so @@ -178,44 +183,44 @@ ;; -sco6) os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -lynx*178) os=-lynxos178 @@ -227,10 +232,7 @@ os=-lynxos ;; -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'` ;; -psos*) os=-psos @@ -252,12 +254,12 @@ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arceb \ - | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv6m | armv[78][arm] \ | avr | avr32 \ | ba \ | be32 | be64 \ | bfin \ - | c4x | c8051 | clipper \ + | c4x | c8051 | clipper | csky \ | d10v | d30v | dlx | dsp16xx \ | e2k | epiphany \ | fido | fr30 | frv | ft32 \ @@ -296,10 +298,11 @@ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ + | nfp \ | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ | open8 | or1k | or1knd | or32 \ - | pdp10 | pdp11 | pj | pjl \ + | pdp10 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pru \ | pyramid \ @@ -316,7 +319,6 @@ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | visium \ | wasm32 \ - | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown @@ -337,7 +339,11 @@ basic_machine=$basic_machine-unknown os=-none ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65) + ;; + m9s12z | m68hcs12z | hcs12z | s12z) + basic_machine=s12z-unknown + os=-none ;; ms1) basic_machine=mt-unknown @@ -366,7 +372,7 @@ ;; # Object if more than one company name word. *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. @@ -382,7 +388,7 @@ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | c8051-* | clipper-* | craynv-* | cydra-* \ + | c8051-* | clipper-* | craynv-* | csky-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | e2k-* | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ @@ -423,6 +429,7 @@ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ + | nfp-* \ | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ @@ -461,7 +468,7 @@ # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) - basic_machine=i386-unknown + basic_machine=i386-pc os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) @@ -495,7 +502,7 @@ basic_machine=x86_64-pc ;; amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl @@ -540,7 +547,7 @@ os=-linux ;; blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) @@ -548,13 +555,13 @@ os=-cnk ;; c54x-*) - basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; c55x-*) - basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; c6x-*) - basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray @@ -643,7 +650,7 @@ basic_machine=rs6000-bull os=-bosx ;; - dpx2* | dpx2*-bull) + dpx2*) basic_machine=m68k-bull os=-sysv3 ;; @@ -652,7 +659,7 @@ os=$os"spe" ;; e500v[12]-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=$os"spe" ;; ebmon29k) @@ -744,9 +751,6 @@ hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; - hppa-next) - os=-nextstep3 - ;; hppaosf) basic_machine=hppa1.1-hp os=-osf @@ -759,26 +763,26 @@ basic_machine=i370-ibm ;; i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; - i386-vsta | vsta) + vsta) basic_machine=i386-unknown os=-vsta ;; @@ -797,19 +801,16 @@ os=-sysv ;; leon-*|leon[3-9]-*) - basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` + basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'` ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=-linux ;; - m88k-omron*) - basic_machine=m88k-omron - ;; magnum | m3230) basic_machine=mips-mips os=-sysv @@ -841,10 +842,10 @@ os=-mint ;; mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'` ;; mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k @@ -863,7 +864,7 @@ os=-msdos ;; ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i686-pc @@ -905,7 +906,7 @@ basic_machine=v70-nec os=-sysv ;; - next | m*-next ) + next | m*-next) basic_machine=m68k-next case $os in -nextstep* ) @@ -950,6 +951,9 @@ nsr-tandem) basic_machine=nsr-tandem ;; + nsv-tandem) + basic_machine=nsv-tandem + ;; nsx-tandem) basic_machine=nsx-tandem ;; @@ -985,7 +989,7 @@ os=-linux ;; parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=-linux ;; pbd) @@ -1001,7 +1005,7 @@ basic_machine=i386-pc ;; pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc @@ -1016,16 +1020,16 @@ basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould @@ -1035,23 +1039,23 @@ ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm @@ -1105,17 +1109,10 @@ sequent) basic_machine=i386-sequent ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; sh5el) basic_machine=sh5le-unknown ;; - sh64) - basic_machine=sh64-unknown - ;; - sparclite-wrs | simso-wrs) + simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; @@ -1134,7 +1131,7 @@ os=-sysv4 ;; strongarm-* | thumb-*) - basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun @@ -1248,9 +1245,6 @@ basic_machine=a29k-wrs os=-vxworks ;; - wasm32) - basic_machine=wasm32-unknown - ;; w65*) basic_machine=w65-wdc os=-none @@ -1259,6 +1253,9 @@ basic_machine=hppa1.1-winbond os=-proelf ;; + x64) + basic_machine=x86_64-pc + ;; xbox) basic_machine=i686-pc os=-mingw32 @@ -1267,20 +1264,12 @@ basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) - basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - z80-*-coff) - basic_machine=z80-unknown - os=-sim - ;; none) basic_machine=none-none os=-none @@ -1309,10 +1298,6 @@ vax) basic_machine=vax-dec ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; pdp11) basic_machine=pdp11-dec ;; @@ -1322,9 +1307,6 @@ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; cydra) basic_machine=cydra-cydrome ;; @@ -1344,7 +1326,7 @@ # Make sure to match an already-canonicalized machine name. ;; *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 exit 1 ;; esac @@ -1352,10 +1334,10 @@ # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'` ;; *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'` ;; *) ;; @@ -1366,8 +1348,8 @@ if [ x"$os" != x"" ] then case $os in - # First match some system type aliases - # that might get confused with valid system types. + # First match some system type aliases that might get confused + # with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux @@ -1378,18 +1360,19 @@ -solaris) os=-solaris2 ;; - -svr4*) - os=-sysv4 - ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; - # First accept the basic system types. + # es1800 is here to avoid being matched by es* (a different OS) + -es1800*) + os=-ose + ;; + # Now accept the basic system types. # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. + # Each alternative MUST end in a * to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ @@ -1399,25 +1382,26 @@ | -aos* | -aros* | -cloudabi* | -sortix* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \ | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* | -hcos* \ | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -morphos* | -superux* | -rtmk* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ - | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*) + | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \ + | -midnightbsd*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1434,12 +1418,12 @@ -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + -sim | -xray | -os68k* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) - os=`echo $os | sed -e 's|mac|macos|'` + os=`echo "$os" | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc @@ -1448,10 +1432,10 @@ os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` + os=`echo "$os" | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` + os=`echo "$os" | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition @@ -1462,12 +1446,6 @@ -wince*) os=-wince ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; -utek*) os=-bsd ;; @@ -1492,7 +1470,7 @@ -nova*) os=-rtmk-nova ;; - -ns2 ) + -ns2) os=-nextstep2 ;; -nsk*) @@ -1514,7 +1492,7 @@ -oss*) os=-sysv3 ;; - -svr4) + -svr4*) os=-sysv4 ;; -svr3) @@ -1529,24 +1507,28 @@ -ose*) os=-ose ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; - -aros*) - os=-aros - ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; + -pikeos*) + # Until real need of OS specific support for + # particular features comes up, bare metal + # configurations are quite functional. + case $basic_machine in + arm*) + os=-eabi + ;; + *) + os=-elf + ;; + esac + ;; -nacl*) ;; -ios) @@ -1556,7 +1538,7 @@ *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 exit 1 ;; esac @@ -1652,9 +1634,6 @@ *-be) os=-beos ;; - *-haiku) - os=-haiku - ;; *-ibm) os=-aix ;; @@ -1694,7 +1673,7 @@ m88k-omron*) os=-luna ;; - *-next ) + *-next) os=-nextstep ;; *-sequent) @@ -1709,9 +1688,6 @@ i370-*) os=-mvs ;; - *-next) - os=-nextstep3 - ;; *-gould) os=-sysv ;; @@ -1821,15 +1797,15 @@ vendor=stratus ;; esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"` ;; esac -echo $basic_machine$os +echo "$basic_machine$os" exit # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff -Nru gdb-8.1/configure gdb-8.2/configure --- gdb-8.1/configure 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/configure 2018-09-05 07:27:13.000000000 +0000 @@ -1,10 +1,10 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.64. +# Generated by GNU Autoconf 2.69. +# +# +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software -# Foundation, Inc. # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. @@ -87,6 +87,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -131,6 +132,31 @@ # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh @@ -164,7 +190,8 @@ else exitcode=1; echo positional parameters were not saved. fi -test x\$exitcode = x0 || exit 1" +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && @@ -209,14 +236,25 @@ if test "x$CONFIG_SHELL" != x; then : - # We cannot yet assume a decent shell, so we have to provide a - # neutralization value for shells without unset; and this also - # works around shells that cannot unset nonexistent variables. - BASH_ENV=/dev/null - ENV=/dev/null - (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 fi if test x$as_have_required = xno; then : @@ -314,10 +352,18 @@ test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take @@ -354,19 +400,19 @@ fi # as_fn_arith -# as_fn_error ERROR [LINENO LOG_FD] -# --------------------------------- +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with status $?, using 1 if that was 0. +# script with STATUS, using 1 if that was 0. as_fn_error () { - as_status=$?; test $as_status -eq 0 && as_status=1 - if test "$3"; then - as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $1" >&2 + $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error @@ -439,6 +485,10 @@ chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). @@ -473,16 +523,16 @@ # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -494,28 +544,8 @@ as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -524,10 +554,11 @@ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" -exec 7<&0 &1 +test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` @@ -556,7 +587,6 @@ ac_subst_vars='LTLIBOBJS LIBOBJS compare_exclusions -host_shared stage2_werror_flag stage1_checking stage1_cflags @@ -641,14 +671,15 @@ CFLAGS_FOR_TARGET DEBUG_PREFIX_CFLAGS_FOR_TARGET SYSROOT_CFLAGS_FOR_TARGET +get_gcc_base_ver extra_host_zlib_configure_flags extra_host_libiberty_configure_flags stage1_languages +host_shared extra_linker_plugin_flags extra_linker_plugin_configure_flags islinc isllibs -islver poststage1_ldflags poststage1_libs stage1_ldflags @@ -781,11 +812,13 @@ enable_lto enable_linker_plugin_configure_flags enable_linker_plugin_flags +enable_host_shared enable_stage1_languages enable_objc_gc with_target_bdw_gc with_target_bdw_gc_include with_target_bdw_gc_lib +with_gcc_major_version_only with_build_sysroot with_debug_prefix_map with_build_config @@ -795,7 +828,6 @@ enable_maintainer_mode enable_stage1_checking enable_werror -enable_host_shared ' ac_precious_vars='build_alias host_alias @@ -904,8 +936,9 @@ fi case $ac_option in - *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *) ac_optarg=yes ;; + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. @@ -950,7 +983,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid feature name: $ac_useropt" + as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -976,7 +1009,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid feature name: $ac_useropt" + as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1180,7 +1213,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid package name: $ac_useropt" + as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1196,7 +1229,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid package name: $ac_useropt" + as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1226,8 +1259,8 @@ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; - -*) as_fn_error "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information." + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" ;; *=*) @@ -1235,7 +1268,7 @@ # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error "invalid variable name: \`$ac_envvar'" ;; + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; @@ -1245,7 +1278,7 @@ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac @@ -1253,13 +1286,13 @@ if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error "missing argument to $ac_option" + as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; - fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi @@ -1282,7 +1315,7 @@ [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac - as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' @@ -1296,8 +1329,6 @@ if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1312,9 +1343,9 @@ ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error "working directory cannot be determined" + as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error "pwd does not report name of working directory" + as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. @@ -1353,11 +1384,11 @@ fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error "cannot find sources ($ac_unique_file) in $srcdir" + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg" + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then @@ -1371,7 +1402,7 @@ esac case $srcdir in *" "*) - as_fn_error "path to source, $srcdir, contains spaces" + as_fn_error $? "path to source, $srcdir, contains spaces" ;; esac ac_subdirs_all=`cd $srcdir && echo */configure | sed 's,/configure,,g'` @@ -1404,7 +1435,7 @@ --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages + -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files @@ -1497,6 +1528,7 @@ --enable-linker-plugin-flags=FLAGS additional flags for configuring and building linker plugins [none] + --enable-host-shared build host code as shared libraries --enable-stage1-languages[=all] choose additional languages to build during stage1. Mostly useful for compiler development @@ -1514,7 +1546,6 @@ choose additional checking for stage1 of the compiler --enable-werror enable -Werror in bootstrap stage2 and later - --enable-host-shared build host code as shared libraries Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -1562,6 +1593,8 @@ files --with-target-bdw-gc-lib=PATHLIST specify directories for installed bdw-gc library + --with-gcc-major-version-only + use only GCC major number in filesystem paths --with-build-sysroot=SYSROOT use sysroot as the system root during the build --with-debug-prefix-map='A=B C=D ...' @@ -1577,7 +1610,7 @@ LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CXX C++ compiler command CXXFLAGS C++ compiler flags @@ -1704,9 +1737,9 @@ if $ac_init_version; then cat <<\_ACEOF configure -generated by GNU Autoconf 2.64 +generated by GNU Autoconf 2.69 -Copyright (C) 2009 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1750,8 +1783,8 @@ ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - return $ac_retval + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval } # ac_fn_c_try_compile @@ -1788,8 +1821,8 @@ ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - return $ac_retval + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile @@ -1820,7 +1853,7 @@ test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext + test -x conftest$ac_exeext }; then : ac_retval=0 else @@ -1834,8 +1867,8 @@ # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - return $ac_retval + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval } # ac_fn_cxx_try_link @@ -1866,7 +1899,7 @@ test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext + test -x conftest$ac_exeext }; then : ac_retval=0 else @@ -1880,8 +1913,8 @@ # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - return $ac_retval + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval } # ac_fn_c_try_link cat >config.log <<_ACEOF @@ -1889,7 +1922,7 @@ running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was -generated by GNU Autoconf 2.64. Invocation command line was +generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -1999,11 +2032,9 @@ { echo - cat <<\_ASBOX -## ---------------- ## + $as_echo "## ---------------- ## ## Cache variables. ## -## ---------------- ## -_ASBOX +## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( @@ -2037,11 +2068,9 @@ ) echo - cat <<\_ASBOX -## ----------------- ## + $as_echo "## ----------------- ## ## Output variables. ## -## ----------------- ## -_ASBOX +## ----------------- ##" echo for ac_var in $ac_subst_vars do @@ -2054,11 +2083,9 @@ echo if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------------- ## + $as_echo "## ------------------- ## ## File substitutions. ## -## ------------------- ## -_ASBOX +## ------------------- ##" echo for ac_var in $ac_subst_files do @@ -2072,11 +2099,9 @@ fi if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## + $as_echo "## ----------- ## ## confdefs.h. ## -## ----------- ## -_ASBOX +## ----------- ##" echo cat confdefs.h echo @@ -2131,7 +2156,12 @@ ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then - ac_site_file1=$CONFIG_SITE + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site @@ -2142,18 +2172,22 @@ for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue - if test -r "$ac_site_file"; then + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in @@ -2222,7 +2256,7 @@ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## @@ -2241,7 +2275,6 @@ - progname=$0 # if PWD already has a value, it is probably wrong. if test -n "$PWD" ; then PWD=`${PWDCMD-pwd}`; fi @@ -2273,16 +2306,22 @@ # Find the build, host, and target systems. ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - for ac_t in install-sh install.sh shtool; do - if test -f "$ac_dir/$ac_t"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/$ac_t -c" - break 2 - fi - done + 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 + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi done if test -z "$ac_aux_dir"; then - as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 + as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, @@ -2296,27 +2335,27 @@ # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } -if test "${ac_cv_build+set}" = set; then : +if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && - as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5 + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; -*) as_fn_error "invalid value of canonical build" "$LINENO" 5;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' @@ -2361,14 +2400,14 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } -if test "${ac_cv_host+set}" = set; then : +if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi @@ -2376,7 +2415,7 @@ $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; -*) as_fn_error "invalid value of canonical host" "$LINENO" 5;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' @@ -2394,14 +2433,14 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 $as_echo_n "checking target system type... " >&6; } -if test "${ac_cv_target+set}" = set; then : +if ${ac_cv_target+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$target_alias" = x; then ac_cv_target=$ac_cv_host else ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || - as_fn_error "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 fi fi @@ -2409,7 +2448,7 @@ $as_echo "$ac_cv_target" >&6; } case $ac_cv_target in *-*-*) ;; -*) as_fn_error "invalid value of canonical target" "$LINENO" 5;; +*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; esac target=$ac_cv_target ac_save_IFS=$IFS; IFS='-' @@ -2462,7 +2501,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then : +if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -2482,7 +2521,7 @@ # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. @@ -2540,7 +2579,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln works" >&5 $as_echo_n "checking whether ln works... " >&6; } -if test "${acx_cv_prog_LN+set}" = set; then : +if ${acx_cv_prog_LN+:} false; then : $as_echo_n "(cached) " >&6 else rm -f conftestdata_t @@ -2577,7 +2616,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } -if test "${ac_cv_path_SED+set}" = set; then : +if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ @@ -2597,7 +2636,7 @@ for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue + as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in @@ -2632,7 +2671,7 @@ done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then - as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5 + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED @@ -2650,7 +2689,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AWK+set}" = set; then : +if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then @@ -2662,7 +2701,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2748,14 +2787,13 @@ target-libgloss \ target-newlib \ target-libgomp \ - target-libcilkrts \ target-liboffloadmic \ + target-libhsail-rt \ target-libatomic \ target-libitm \ target-libstdc++-v3 \ target-libsanitizer \ target-libvtv \ - target-libmpx \ target-libssp \ target-libquadmath \ target-libgfortran \ @@ -2833,7 +2871,7 @@ # Be sure to cover against remnants of an in-tree build. if test $srcdir != . && test -d $srcdir/host-${host_noncanonical}; then - as_fn_error "building out of tree but $srcdir contains host-${host_noncanonical}. + as_fn_error $? "building out of tree but $srcdir contains host-${host_noncanonical}. Use a pristine source tree when building in a separate tree" "$LINENO" 5 fi @@ -2915,7 +2953,7 @@ if test "${enable_offload_targets+set}" = set; then : enableval=$enable_offload_targets; if test x"$enable_offload_targets" = x; then - as_fn_error "no offload targets specified" "$LINENO" 5 + as_fn_error $? "no offload targets specified" "$LINENO" 5 fi else @@ -2957,7 +2995,7 @@ *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \ | *-*-linux* | *-*-gnu* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \ | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* \ - | *-*-solaris2* | *-*-nto* | *-*-nacl* | *-*-fuchsia*) + | *-*-solaris2* | *-*-nto* | *-*-nacl*) case "${target}" in *-*-linux*aout* | *-*-linux*oldld*) ;; @@ -2984,7 +3022,7 @@ no) ;; *) - as_fn_error "invalid --enable-gold argument" "$LINENO" 5 + as_fn_error $? "invalid --enable-gold argument" "$LINENO" 5 ;; esac @@ -2999,7 +3037,7 @@ case "${ENABLE_LD}" in default) if test x${default_ld} != x; then - as_fn_error "either gold or ld can be the default ld" "$LINENO" 5 + as_fn_error $? "either gold or ld can be the default ld" "$LINENO" 5 fi ;; yes) @@ -3012,7 +3050,7 @@ configdirs=`echo " ${configdirs} " | sed -e 's/ ld / /'` ;; *) - as_fn_error "invalid --enable-ld argument" "$LINENO" 5 + as_fn_error $? "invalid --enable-ld argument" "$LINENO" 5 ;; esac @@ -3023,7 +3061,7 @@ if test "${enable_compressed_debug_sections+set}" = set; then : enableval=$enable_compressed_debug_sections; if test x"$enable_compressed_debug_sections" = xyes; then - as_fn_error "no program with compressed debug sections specified" "$LINENO" 5 + as_fn_error $? "no program with compressed debug sections specified" "$LINENO" 5 fi else @@ -3118,7 +3156,7 @@ no | host | target) enable_liboffloadmic=$enableval ;; *) - as_fn_error "--enable-liboffloadmic=no/host/target" "$LINENO" 5 ;; + as_fn_error $? "--enable-liboffloadmic=no/host/target" "$LINENO" 5 ;; esac else if test x"$enable_as_accelerator_for" != x; then @@ -3184,25 +3222,6 @@ fi fi -# Disable libcilkrts on unsupported systems. -if test -d ${srcdir}/libcilkrts; then - if test x$enable_libcilkrts = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libcilkrts support" >&5 -$as_echo_n "checking for libcilkrts support... " >&6; } - if (srcdir=${srcdir}/libcilkrts; \ - . ${srcdir}/configure.tgt; \ - test -n "$UNSUPPORTED") - then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - noconfigdirs="$noconfigdirs target-libcilkrts" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - fi - fi -fi - # Disable liboffloadmic on unsupported systems. if test -d ${srcdir}/liboffloadmic; then if test x$enable_liboffloadmic != xno; then @@ -3280,27 +3299,28 @@ fi -# Enable libmpx on supported systems by request. -if test -d ${srcdir}/libmpx; then - if test x$enable_libmpx = x; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libmpx support" >&5 -$as_echo_n "checking for libmpx support... " >&6; } - if (srcdir=${srcdir}/libmpx; \ - . ${srcdir}/configure.tgt; \ - test "$LIBMPX_SUPPORTED" != "yes") - then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - noconfigdirs="$noconfigdirs target-libmpx" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +# Disable libhsail-rt on unsupported systems. +if test -d ${srcdir}/libhsail-rt; then + if test x$enable_libhsail_rt = x; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libhsail-rt support" >&5 +$as_echo_n "checking for libhsail-rt support... " >&6; } + if (srcdir=${srcdir}/libhsail-rt; \ + . ${srcdir}/configure.tgt; \ + test -n "$UNSUPPORTED") + then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + unsupported_languages="$unsupported_languages brig" + # This implicitly disables also target-libhsail-rt as it won't + # get added to the build without BRIG FE. + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - fi + fi fi fi - # Disable libquadmath for some systems. case "${target}" in avr-*-*) @@ -3439,11 +3459,8 @@ noconfigdirs="$noconfigdirs target-libffi" ;; powerpc-*-aix*) - # copied from rs6000-*-* entry - noconfigdirs="$noconfigdirs target-libffi" ;; rs6000-*-aix*) - noconfigdirs="$noconfigdirs target-libffi" ;; ft32-*-*) noconfigdirs="$noconfigdirs target-libffi" @@ -3456,7 +3473,7 @@ # Disable the go frontend on systems where it is known to not work. Please keep # this in sync with contrib/config-list.mk. case "${target}" in -*-*-darwin* | *-*-cygwin* | *-*-mingw* | *-*-aix*) +*-*-darwin* | *-*-cygwin* | *-*-mingw*) unsupported_languages="$unsupported_languages go" ;; esac @@ -3472,9 +3489,6 @@ *-*-cygwin* | *-*-mingw*) noconfigdirs="$noconfigdirs target-libgo" ;; - *-*-aix*) - noconfigdirs="$noconfigdirs target-libgo" - ;; esac fi @@ -3779,6 +3793,10 @@ mt-*-*) noconfigdirs="$noconfigdirs sim" ;; + nfp-*-*) + noconfigdirs="$noconfigdirs ld gas gdb gprof sim" + noconfigdirs="$noconfigdirs $target_libraries" + ;; powerpc-*-aix*) # copied from rs6000-*-* entry noconfigdirs="$noconfigdirs gprof" @@ -3862,6 +3880,9 @@ vax-*-*) noconfigdirs="$noconfigdirs target-newlib target-libgloss" ;; + wasm32-*-*) + noconfigdirs="$noconfigdirs ld" + ;; esac # If we aren't building newlib, then don't build libgloss, since libgloss @@ -3891,7 +3912,7 @@ rm cygwin-cat-check { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - as_fn_error "The cat command does not ignore carriage return characters. + as_fn_error $? "The cat command does not ignore carriage return characters. Please either mount the build directory in binary mode or run the following commands before running any configure script: set -o igncr @@ -3966,7 +3987,7 @@ set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3978,7 +3999,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4006,7 +4027,7 @@ set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -4018,7 +4039,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4059,7 +4080,7 @@ set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -4071,7 +4092,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4099,7 +4120,7 @@ set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -4112,7 +4133,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue @@ -4158,7 +4179,7 @@ set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -4170,7 +4191,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4202,7 +4223,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -4214,7 +4235,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4256,8 +4277,8 @@ test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "no acceptable C compiler found in \$PATH -See \`config.log' for more details." "$LINENO" 5; } +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 @@ -4278,8 +4299,8 @@ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 - rm -f conftest.er1 conftest.err fi + rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done @@ -4296,12 +4317,12 @@ } _ACEOF ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out conftest.out" +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: @@ -4363,62 +4384,28 @@ else ac_file='' fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } if test -z "$ac_file"; then : - $as_echo "$as_me: failed program was:" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "C compiler cannot create executables -See \`config.log' for more details." "$LINENO" 5; }; } +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out conftest.out +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" @@ -4448,19 +4435,78 @@ else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." "$LINENO" 5; } +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } fi -rm -f conftest$ac_cv_exeext +rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } -if test "${ac_cv_objext+set}" = set; then : +if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -4500,8 +4546,8 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot compute suffix of object files: cannot compile -See \`config.log' for more details." "$LINENO" 5; } +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi @@ -4511,7 +4557,7 @@ ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then : +if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -4548,7 +4594,7 @@ ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then : +if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag @@ -4626,7 +4672,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then : +if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no @@ -4635,8 +4681,7 @@ /* end confdefs.h. */ #include #include -#include -#include +struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -4737,7 +4782,7 @@ set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CXX+set}" = set; then : +if ${ac_cv_prog_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then @@ -4749,7 +4794,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4781,7 +4826,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : +if ${ac_cv_prog_ac_ct_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then @@ -4793,7 +4838,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4851,15 +4896,15 @@ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 - rm -f conftest.er1 conftest.err fi + rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } -if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : +if ${ac_cv_cxx_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -4896,7 +4941,7 @@ ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } -if test "${ac_cv_prog_cxx_g+set}" = set; then : +if ${ac_cv_prog_cxx_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag @@ -5048,7 +5093,7 @@ set dummy ${ac_tool_prefix}gnatbind; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_GNATBIND+set}" = set; then : +if ${ac_cv_prog_GNATBIND+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$GNATBIND"; then @@ -5060,7 +5105,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_GNATBIND="${ac_tool_prefix}gnatbind" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5088,7 +5133,7 @@ set dummy gnatbind; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_GNATBIND+set}" = set; then : +if ${ac_cv_prog_ac_ct_GNATBIND+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_GNATBIND"; then @@ -5100,7 +5145,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_GNATBIND="gnatbind" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5140,7 +5185,7 @@ set dummy ${ac_tool_prefix}gnatmake; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_GNATMAKE+set}" = set; then : +if ${ac_cv_prog_GNATMAKE+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$GNATMAKE"; then @@ -5152,7 +5197,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_GNATMAKE="${ac_tool_prefix}gnatmake" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5180,7 +5225,7 @@ set dummy gnatmake; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_GNATMAKE+set}" = set; then : +if ${ac_cv_prog_ac_ct_GNATMAKE+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_GNATMAKE"; then @@ -5192,7 +5237,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_GNATMAKE="gnatmake" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5229,7 +5274,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether compiler driver understands Ada" >&5 $as_echo_n "checking whether compiler driver understands Ada... " >&6; } -if test "${acx_cv_cc_gcc_supports_ada+set}" = set; then : +if ${acx_cv_cc_gcc_supports_ada+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.adb <&5 $as_echo_n "checking how to compare bootstrapped objects... " >&6; } -if test "${gcc_cv_prog_cmp_skip+set}" = set; then : +if ${gcc_cv_prog_cmp_skip+:} false; then : $as_echo_n "(cached) " >&6 else echo abfoo >t1 @@ -5329,11 +5374,11 @@ # No compiler: if they passed --enable-bootstrap explicitly, fail no:*:*:yes) - as_fn_error "cannot bootstrap without a compiler" "$LINENO" 5 ;; + as_fn_error $? "cannot bootstrap without a compiler" "$LINENO" 5 ;; # Fail if wrong command line *) - as_fn_error "invalid option for --enable-bootstrap" "$LINENO" 5 + as_fn_error $? "invalid option for --enable-bootstrap" "$LINENO" 5 ;; esac @@ -5346,7 +5391,7 @@ # Used for setting $lt_cv_objdir { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } -if test "${lt_cv_objdir+set}" = set; then : +if ${lt_cv_objdir+:} false; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null @@ -5424,7 +5469,7 @@ # Check whether --with-mpfr-dir was given. if test "${with_mpfr_dir+set}" = set; then : - withval=$with_mpfr_dir; as_fn_error "The --with-mpfr-dir=PATH option has been removed. + withval=$with_mpfr_dir; as_fn_error $? "The --with-mpfr-dir=PATH option has been removed. Use --with-mpfr=PATH or --with-mpfr-include=PATH plus --with-mpfr-lib=PATH" "$LINENO" 5 fi @@ -5461,7 +5506,7 @@ if test "x$with_mpfr$with_mpfr_include$with_mpfr_lib" = x && test -d ${srcdir}/mpfr; then # MPFR v3.1.0 moved the sources into a src sub-directory. if ! test -d ${srcdir}/mpfr/src; then - as_fn_error "Building GCC with MPFR in the source tree is only handled for MPFR 3.1.0+." "$LINENO" 5 + as_fn_error $? "Building GCC with MPFR in the source tree is only handled for MPFR 3.1.0+." "$LINENO" 5 fi gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr/src/'"$lt_cv_objdir $gmplibs" gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr/src -I$$s/mpfr/src '"$gmpinc" @@ -5477,7 +5522,7 @@ # Check whether --with-gmp-dir was given. if test "${with_gmp_dir+set}" = set; then : - withval=$with_gmp_dir; as_fn_error "The --with-gmp-dir=PATH option has been removed. + withval=$with_gmp_dir; as_fn_error $? "The --with-gmp-dir=PATH option has been removed. Use --with-gmp=PATH or --with-gmp-include=PATH plus --with-gmp-lib=PATH" "$LINENO" 5 fi @@ -5738,7 +5783,7 @@ # The library versions listed in the error message below should match # the HARD-minimums enforced above. if test x$have_gmp != xyes; then - as_fn_error "Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+. + as_fn_error $? "Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+. Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify their locations. Source code for these libraries can be found at their respective hosting sites as well as at @@ -5907,15 +5952,15 @@ LDFLAGS="${_isl_saved_LDFLAGS} ${isllibs} ${gmplibs}" LIBS="${_isl_saved_LIBS} -lisl -lgmp" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isl 0.16, 0.15, or deprecated 0.14" >&5 -$as_echo_n "checking for isl 0.16, 0.15, or deprecated 0.14... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isl 0.15 or later" >&5 +$as_echo_n "checking for isl 0.15 or later... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include +#include int main () { -isl_ctx_get_max_operations (isl_ctx_alloc ()); +isl_options_set_schedule_serialize_sccs (NULL, 0); ; return 0; } @@ -5931,36 +5976,8 @@ $as_echo "$gcc_cv_isl" >&6; } if test "${gcc_cv_isl}" = no ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: recommended isl version is 0.16 or 0.15, the minimum required isl version 0.14 is deprecated" >&5 -$as_echo "recommended isl version is 0.16 or 0.15, the minimum required isl version 0.14 is deprecated" >&6; } - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isl 0.16 or 0.15" >&5 -$as_echo_n "checking for isl 0.16 or 0.15... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -isl_options_set_schedule_serialize_sccs (NULL, 0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_has_isl_options_set_schedule_serialize_sccs=yes -else - ac_has_isl_options_set_schedule_serialize_sccs=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_has_isl_options_set_schedule_serialize_sccs" >&5 -$as_echo "$ac_has_isl_options_set_schedule_serialize_sccs" >&6; } - - if test x"$ac_has_isl_options_set_schedule_serialize_sccs" = x"yes"; then - islver="0.15" - + { $as_echo "$as_me:${as_lineno-$LINENO}: result: required isl version is 0.15 or later" >&5 +$as_echo "required isl version is 0.15 or later" >&6; } fi CFLAGS=$_isl_saved_CFLAGS @@ -5994,7 +6011,7 @@ && test "x${isllibs}" = x \ && test "x${islinc}" = x ; then - as_fn_error "Unable to find a usable isl. See config.log for details." "$LINENO" 5 + as_fn_error $? "Unable to find a usable isl. See config.log for details." "$LINENO" 5 fi @@ -6042,7 +6059,7 @@ else if test x"$default_enable_lto" = x"yes" ; then case $target in - *-apple-darwin9* | *-cygwin* | *-mingw* | *djgpp*) ;; + *-apple-darwin[912]* | *-cygwin* | *-mingw* | *djgpp*) ;; # On other non-ELF platforms, LTO has yet to be validated. *) enable_lto=no ;; esac @@ -6055,7 +6072,7 @@ case $target in *-cygwin* | *-mingw* | *-apple-darwin* | *djgpp*) ;; *) if test x"$enable_lto" = x"yes"; then - as_fn_error "LTO support is not enabled for this target." "$LINENO" 5 + as_fn_error $? "LTO support is not enabled for this target." "$LINENO" 5 fi ;; esac @@ -6087,6 +6104,16 @@ +# Enable --enable-host-shared. +# Checked early to determine whether jit is an 'all' language +# Check whether --enable-host-shared was given. +if test "${enable_host_shared+set}" = set; then : + enableval=$enable_host_shared; host_shared=$enableval +else + host_shared=no +fi + + # By default, C and C++ are the only stage 1 languages. stage1_languages=,c, @@ -6105,7 +6132,7 @@ enable_languages="${LANGUAGES}" echo configure.ac: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2 else - enable_languages=all + enable_languages=default fi else if test x"${enable_languages}" = x || @@ -6133,7 +6160,7 @@ if test -f ${srcdir}/gcc/cp/config-lang.in; then enable_languages="${enable_languages},c++" else - as_fn_error "bootstrapping requires c++ sources" "$LINENO" 5 + as_fn_error $? "bootstrapping requires c++ sources" "$LINENO" 5 fi ;; esac @@ -6153,10 +6180,16 @@ language= lang_requires= lang_requires_boot_languages= - . ${lang_frag} + # set srcdir during sourcing lang_frag to the gcc dir. + # Sadly overriding srcdir on the . line doesn't work in plain sh as it + # polutes this shell + saved_srcdir=${srcdir} + srcdir=${srcdir}/gcc . ${lang_frag} + srcdir=${saved_srcdir} for other in ${lang_requires} ${lang_requires_boot_languages}; do case ,${enable_languages}, in *,$other,*) ;; + *,default,*) ;; *,all,*) ;; *,$language,*) echo " \`$other' language required by \`$language'; enabling" 1>&2 @@ -6168,6 +6201,7 @@ if test "$other" != "c"; then case ,${enable_stage1_languages}, in *,$other,*) ;; + *,default,*) ;; *,all,*) ;; *) case ,${enable_languages}, in @@ -6205,7 +6239,7 @@ esac fi - missing_languages=`echo ",$enable_languages," | sed -e s/,all,/,/ -e s/,c,/,/ ` + missing_languages=`echo ",$enable_languages," | sed -e s/,default,/,/ -e s/,all,/,/ -e s/,c,/,/ ` potential_languages=,c, enabled_target_libs= @@ -6226,7 +6260,10 @@ subdir_requires= boot_language=no build_by_default=yes - . ${lang_frag} + # set srcdir during sourcing. See above about save & restore + saved_srcdir=${srcdir} + srcdir=${srcdir}/gcc . ${lang_frag} + srcdir=${saved_srcdir} if test x${language} = x; then echo "${lang_frag} doesn't set \$language." 1>&2 exit 1 @@ -6237,29 +6274,36 @@ fi add_this_lang=no - case ,${enable_languages}, in - *,${language},*) - # Language was explicitly selected; include it - # unless it is C, which is enabled by default. - if test "$language" != "c"; then + # C is always enabled, so no need to add it again + if test "$language" != "c"; then + case ,${enable_languages}, in + *,${language},*) + # Language was explicitly selected; include it add_this_lang=yes - fi - ;; - *,all,*) - # 'all' was selected, select it if it is a default language - if test "$language" != "c"; then + ;; + *,all,*) + # All languages are enabled + add_this_lang=all + ;; + *,default,*) + # 'default' was selected, select it if it is a default language add_this_lang=${build_by_default} - fi - ;; - esac + ;; + esac + fi # Disable languages that need other directories if these aren't available. for i in $subdir_requires; do test -f "$srcdir/gcc/$i/config-lang.in" && continue - case ,${enable_languages}, in - *,${language},*) + case ${add_this_lang} in + yes) # Specifically requested language; tell them. - as_fn_error "The gcc/$i directory contains parts of $language but is missing" "$LINENO" 5 + as_fn_error $? "The gcc/$i directory contains parts of $language but is missing" "$LINENO" 5 + ;; + all) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The gcc/$i directory contains parts of $language but is missing" >&5 +$as_echo "$as_me: WARNING: The gcc/$i directory contains parts of $language but is missing" >&2;} + add_this_lang=unsupported ;; *) # Silently disable. @@ -6269,10 +6313,15 @@ done # Disable Ada if no preexisting GNAT is available. - case ,${enable_languages},:${language}:${have_gnat} in - *,${language},*:ada:no) + case ${add_this_lang}:${language}:${have_gnat} in + yes:ada:no) # Specifically requested language; tell them. - as_fn_error "GNAT is required to build $language" "$LINENO" 5 + as_fn_error $? "GNAT is required to build $language" "$LINENO" 5 + ;; + all:ada:no) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: GNAT is required to build $language" >&5 +$as_echo "$as_me: WARNING: GNAT is required to build $language" >&2;} + add_this_lang=unsupported ;; *:ada:no) # Silently disable. @@ -6280,9 +6329,39 @@ ;; esac - # Disable a language that is unsupported by the target. - case " $unsupported_languages " in - *" $language "*) + # Disable jit if -enable-host-shared not specified + case ${add_this_lang}:${language}:${host_shared} in + yes:jit:no) + # PR jit/64780: explicitly specify --enable-host-shared + as_fn_error $? " +Enabling language \"jit\" requires --enable-host-shared. + +--enable-host-shared typically slows the rest of the compiler down by +a few %, so you must explicitly enable it. + +If you want to build both the jit and the regular compiler, it is often +best to do this via two separate configure/builds, in separate +directories, to avoid imposing the performance cost of +--enable-host-shared on the regular compiler." "$LINENO" 5 + ;; + all:jit:no) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --enable-host-shared required to build $language" >&5 +$as_echo "$as_me: WARNING: --enable-host-shared required to build $language" >&2;} + add_this_lang=unsupported + ;; + *:jit:no) + # Silently disable. + add_this_lang=unsupported + ;; + esac + + # Disable a language that is unsupported by the target. + case "${add_this_lang}: $unsupported_languages " in + no:*) ;; + unsupported:*) ;; + *:*" $language "*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ${language} not supported for this target" >&5 +$as_echo "$as_me: WARNING: ${language} not supported for this target" >&2;} add_this_lang=unsupported ;; esac @@ -6299,7 +6378,7 @@ noconfigdirs="$noconfigdirs $lang_dirs" potential_languages="${potential_languages}${language}," ;; - yes) + all|yes) new_enable_languages="${new_enable_languages}${language}," potential_languages="${potential_languages}${language}," missing_languages=`echo "$missing_languages" | sed "s/,$language,/,/"` @@ -6372,7 +6451,7 @@ new_enable_languages=`echo "$new_enable_languages" | sed -e "s/^,//" -e "s/,$//"` if test "x$missing_languages" != x; then - as_fn_error " + as_fn_error $? " The following requested languages could not be built: ${missing_languages} Supported languages are: ${potential_languages}" "$LINENO" 5 fi @@ -6427,9 +6506,9 @@ $as_echo "using bdw-gc in default locations" >&6; } else if test "x$with_target_bdw_gc_include" = x && test "x$with_target_bdw_gc_lib" != x; then - as_fn_error "found --with-target-bdw-gc-lib but --with-target-bdw-gc-include missing" "$LINENO" 5 + as_fn_error $? "found --with-target-bdw-gc-lib but --with-target-bdw-gc-include missing" "$LINENO" 5 elif test "x$with_target_bdw_gc_include" != x && test "x$with_target_bdw_gc_lib" = x; then - as_fn_error "found --with-target-bdw-gc-include but --with-target-bdw-gc-lib missing" "$LINENO" 5 + as_fn_error $? "found --with-target-bdw-gc-include but --with-target-bdw-gc-lib missing" "$LINENO" 5 else { $as_echo "$as_me:${as_lineno-$LINENO}: result: using paths configured with --with-target-bdw-gc options" >&5 $as_echo "using paths configured with --with-target-bdw-gc options" >&6; } @@ -6437,19 +6516,19 @@ fi esac -# Disable libcilkrts, libitm, libsanitizer, libvtv, liboffloadmic if we're not building C++ +# Disable libitm, libsanitizer, libvtv, liboffloadmic if we're not building C++ case ,${enable_languages}, in *,c++,*) - # Disable libcilkrts, libitm, libsanitizer if we're not building libstdc++ + # Disable libitm, libsanitizer if we're not building libstdc++ case "${noconfigdirs}" in *target-libstdc++-v3*) - noconfigdirs="$noconfigdirs target-libcilkrts target-libitm target-libsanitizer" + noconfigdirs="$noconfigdirs target-libitm target-libsanitizer" ;; *) ;; esac ;; *) - noconfigdirs="$noconfigdirs target-libcilkrts target-liboffloadmic target-libitm target-libsanitizer target-libvtv" + noconfigdirs="$noconfigdirs target-liboffloadmic target-libitm target-libsanitizer target-libvtv" ;; esac @@ -6532,7 +6611,7 @@ extra_linker_plugin_configure_flags="$extra_linker_plugin_configure_flags \ --with-libiberty=../libiberty-linker-plugin";; *) - as_fn_error "libiberty missing" "$LINENO" 5;; + as_fn_error $? "libiberty missing" "$LINENO" 5;; esac fi @@ -6612,6 +6691,20 @@ fi + get_gcc_base_ver="cat" + +# Check whether --with-gcc-major-version-only was given. +if test "${with_gcc_major_version_only+set}" = set; then : + withval=$with_gcc_major_version_only; if test x$with_gcc_major_version_only = xyes ; then + get_gcc_base_ver="sed -e 's/^\([0-9]*\).*/\1/'" + fi + +fi + + + + + if test "x$exec_prefix" = xNONE; then if test "x$prefix" = xNONE; then @@ -6627,7 +6720,11 @@ # case, if there is no compiler in the tree nobody should use # AS_FOR_TARGET and LD_FOR_TARGET. if test x$host = x$build && test -f $srcdir/gcc/BASE-VER; then - gcc_version=`cat $srcdir/gcc/BASE-VER` + if test x$with_gcc_major_version_only = xyes ; then + gcc_version=`sed -e 's/^\([0-9]*\).*$/\1/' $srcdir/gcc/BASE-VER` + else + gcc_version=`cat $srcdir/gcc/BASE-VER` + fi gcc_cv_tool_dirs="$gcc_cv_tool_prefix/libexec/gcc/$target_noncanonical/$gcc_version$PATH_SEPARATOR" gcc_cv_tool_dirs="$gcc_cv_tool_dirs$gcc_cv_tool_prefix/libexec/gcc/$target_noncanonical$PATH_SEPARATOR" gcc_cv_tool_dirs="$gcc_cv_tool_dirs/usr/lib/gcc/$target_noncanonical/$gcc_version$PATH_SEPARATOR" @@ -6855,6 +6952,9 @@ nios2-*-elf*) target_makefile_frag="config/mt-nios2-elf" ;; + *-*-linux-android*) + target_makefile_frag="config/mt-android" + ;; *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu) target_makefile_frag="config/mt-gnu" ;; @@ -7050,16 +7150,6 @@ bootstrap_target_libs=${bootstrap_target_libs}target-libvtv, fi -# If we are building libmpx and $BUILD_CONFIG contains bootstrap-mpx, -# bootstrap it. -if echo " ${target_configdirs} " | grep " libmpx " > /dev/null 2>&1; then - case "$BUILD_CONFIG" in - *bootstrap-mpx* ) - bootstrap_target_libs=${bootstrap_target_libs}target-libmpx, - ;; - esac -fi - # Determine whether gdb needs tk/tcl or not. # Use 'maybe' since enable_gdbtk might be true even if tk isn't available # and in that case we want gdb to be built without tk. Ugh! @@ -7100,12 +7190,14 @@ # extrasub-{build,host,target} not because there is any reason to split # the substitutions up that way, but only to remain below the limit of # 99 commands in a script, for HP-UX sed. -# Do not nest @if/@endif pairs, because configure will not warn you at all. + +# Do not nest @if/@endif or @unless/@endunless pairs, because +# configure will not warn you at all. case "$enable_bootstrap:$ENABLE_GOLD: $configdirs :,$stage1_languages," in yes:yes:*\ gold\ *:*,c++,*) ;; yes:yes:*\ gold\ *:*) - as_fn_error "in a combined tree, bootstrapping with --enable-gold requires c++ in stage1_languages" "$LINENO" 5 + as_fn_error $? "in a combined tree, bootstrapping with --enable-gold requires c++ in stage1_languages" "$LINENO" 5 ;; esac @@ -7119,8 +7211,10 @@ extrasub_build="$extrasub_build /^@if build-$module\$/d /^@endif build-$module\$/d +/^@unless build-$module\$/,/^@endunless build-$module\$/d /^@if build-$module-$bootstrap_suffix\$/d -/^@endif build-$module-$bootstrap_suffix\$/d" +/^@endif build-$module-$bootstrap_suffix\$/d +/^@unless build-$module-$bootstrap_suffix\$/,/^@endunless build-$module-$bootstrap_suffix\$/d" done extrasub_host= for module in ${configdirs} ; do @@ -7139,8 +7233,10 @@ extrasub_host="$extrasub_host /^@if $module\$/d /^@endif $module\$/d +/^@unless $module\$/,/^@endunless $module\$/d /^@if $module-$host_bootstrap_suffix\$/d -/^@endif $module-$host_bootstrap_suffix\$/d" +/^@endif $module-$host_bootstrap_suffix\$/d +/^@unless $module-$host_bootstrap_suffix\$/,/^@endunless $module-$host_bootstrap_suffix\$/d" done extrasub_target= for module in ${target_configdirs} ; do @@ -7159,13 +7255,17 @@ extrasub_target="$extrasub_target /^@if target-$module\$/d /^@endif target-$module\$/d +/^@unless target-$module\$/,/^@endunless target-$module\$/d /^@if target-$module-$target_bootstrap_suffix\$/d -/^@endif target-$module-$target_bootstrap_suffix\$/d" +/^@endif target-$module-$target_bootstrap_suffix\$/d +/^@unless target-$module-$target_bootstrap_suffix\$/,/^@endunless target-$module-$target_bootstrap_suffix\$/d" done # Do the final fixup along with target modules. extrasub_target="$extrasub_target -/^@if /,/^@endif /d" +/^@if /,/^@endif /d +/^@unless /d +/^@endunless /d" # Create the serialization dependencies. This uses a temporary file. @@ -7421,7 +7521,7 @@ fi rm -f conftest* if test x${dev64} != xyes ; then - as_fn_error "I suspect your system does not have 32-bit development libraries (libc and headers). If you have them, rerun configure with --enable-multilib. If you do not have them, and want to build a 64-bit-only compiler, rerun configure with --disable-multilib." "$LINENO" 5 + as_fn_error $? "I suspect your system does not have 32-bit development libraries (libc and headers). If you have them, rerun configure with --enable-multilib. If you do not have them, and want to build a 64-bit-only compiler, rerun configure with --disable-multilib." "$LINENO" 5 fi ;; esac @@ -7621,7 +7721,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_YACC+set}" = set; then : +if ${ac_cv_prog_YACC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$YACC"; then @@ -7633,7 +7733,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_YACC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7668,7 +7768,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_BISON+set}" = set; then : +if ${ac_cv_prog_BISON+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$BISON"; then @@ -7680,7 +7780,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_BISON="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7715,7 +7815,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_M4+set}" = set; then : +if ${ac_cv_prog_M4+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$M4"; then @@ -7727,7 +7827,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_M4="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7762,7 +7862,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_LEX+set}" = set; then : +if ${ac_cv_prog_LEX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LEX"; then @@ -7774,7 +7874,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LEX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7810,7 +7910,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_FLEX+set}" = set; then : +if ${ac_cv_prog_FLEX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$FLEX"; then @@ -7822,7 +7922,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_FLEX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7857,7 +7957,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_MAKEINFO+set}" = set; then : +if ${ac_cv_prog_MAKEINFO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MAKEINFO"; then @@ -7869,7 +7969,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MAKEINFO="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7918,7 +8018,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_EXPECT+set}" = set; then : +if ${ac_cv_prog_EXPECT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$EXPECT"; then @@ -7930,7 +8030,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_EXPECT="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7967,7 +8067,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_RUNTEST+set}" = set; then : +if ${ac_cv_prog_RUNTEST+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RUNTEST"; then @@ -7979,7 +8079,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RUNTEST="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8031,7 +8131,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AR+set}" = set; then : +if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then @@ -8043,7 +8143,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8073,7 +8173,7 @@ set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AR+set}" = set; then : +if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then @@ -8085,7 +8185,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ncn_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8112,7 +8212,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AR+set}" = set; then : +if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then @@ -8124,7 +8224,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8172,7 +8272,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AS+set}" = set; then : +if ${ac_cv_prog_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AS"; then @@ -8184,7 +8284,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AS="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8214,7 +8314,7 @@ set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AS+set}" = set; then : +if ${ac_cv_prog_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AS"; then @@ -8226,7 +8326,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AS="${ncn_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8253,7 +8353,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AS+set}" = set; then : +if ${ac_cv_prog_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AS"; then @@ -8265,7 +8365,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AS="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8313,7 +8413,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_DLLTOOL+set}" = set; then : +if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then @@ -8325,7 +8425,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8355,7 +8455,7 @@ set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_DLLTOOL+set}" = set; then : +if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then @@ -8367,7 +8467,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ncn_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8394,7 +8494,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_DLLTOOL+set}" = set; then : +if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then @@ -8406,7 +8506,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8454,7 +8554,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_LD+set}" = set; then : +if ${ac_cv_prog_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LD"; then @@ -8466,7 +8566,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LD="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8496,7 +8596,7 @@ set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_LD+set}" = set; then : +if ${ac_cv_prog_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LD"; then @@ -8508,7 +8608,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LD="${ncn_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8535,7 +8635,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_LD+set}" = set; then : +if ${ac_cv_prog_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LD"; then @@ -8547,7 +8647,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LD="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8595,7 +8695,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_LIPO+set}" = set; then : +if ${ac_cv_prog_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then @@ -8607,7 +8707,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8637,7 +8737,7 @@ set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_LIPO+set}" = set; then : +if ${ac_cv_prog_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then @@ -8649,7 +8749,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO="${ncn_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8676,7 +8776,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_LIPO+set}" = set; then : +if ${ac_cv_prog_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then @@ -8688,7 +8788,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8736,7 +8836,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_NM+set}" = set; then : +if ${ac_cv_prog_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then @@ -8748,7 +8848,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_NM="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8778,7 +8878,7 @@ set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_NM+set}" = set; then : +if ${ac_cv_prog_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then @@ -8790,7 +8890,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_NM="${ncn_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8817,7 +8917,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_NM+set}" = set; then : +if ${ac_cv_prog_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then @@ -8829,7 +8929,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_NM="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8877,7 +8977,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_RANLIB+set}" = set; then : +if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then @@ -8889,7 +8989,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8919,7 +9019,7 @@ set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_RANLIB+set}" = set; then : +if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then @@ -8931,7 +9031,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ncn_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8958,7 +9058,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_RANLIB+set}" = set; then : +if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then @@ -8970,7 +9070,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9013,7 +9113,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then : +if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then @@ -9025,7 +9125,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9055,7 +9155,7 @@ set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then : +if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then @@ -9067,7 +9167,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ncn_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9094,7 +9194,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then : +if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then @@ -9106,7 +9206,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9149,7 +9249,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_WINDRES+set}" = set; then : +if ${ac_cv_prog_WINDRES+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$WINDRES"; then @@ -9161,7 +9261,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_WINDRES="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9191,7 +9291,7 @@ set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_WINDRES+set}" = set; then : +if ${ac_cv_prog_WINDRES+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$WINDRES"; then @@ -9203,7 +9303,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_WINDRES="${ncn_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9230,7 +9330,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_WINDRES+set}" = set; then : +if ${ac_cv_prog_WINDRES+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$WINDRES"; then @@ -9242,7 +9342,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_WINDRES="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9290,7 +9390,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_WINDMC+set}" = set; then : +if ${ac_cv_prog_WINDMC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$WINDMC"; then @@ -9302,7 +9402,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_WINDMC="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9332,7 +9432,7 @@ set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_WINDMC+set}" = set; then : +if ${ac_cv_prog_WINDMC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$WINDMC"; then @@ -9344,7 +9444,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_WINDMC="${ncn_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9371,7 +9471,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_WINDMC+set}" = set; then : +if ${ac_cv_prog_WINDMC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$WINDMC"; then @@ -9383,7 +9483,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_WINDMC="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9431,7 +9531,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OBJCOPY+set}" = set; then : +if ${ac_cv_prog_OBJCOPY+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJCOPY"; then @@ -9443,7 +9543,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJCOPY="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9473,7 +9573,7 @@ set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OBJCOPY+set}" = set; then : +if ${ac_cv_prog_OBJCOPY+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJCOPY"; then @@ -9485,7 +9585,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJCOPY="${ncn_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9512,7 +9612,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OBJCOPY+set}" = set; then : +if ${ac_cv_prog_OBJCOPY+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJCOPY"; then @@ -9524,7 +9624,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJCOPY="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9572,7 +9672,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OBJDUMP+set}" = set; then : +if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then @@ -9584,7 +9684,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9614,7 +9714,7 @@ set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OBJDUMP+set}" = set; then : +if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then @@ -9626,7 +9726,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ncn_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9653,7 +9753,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OBJDUMP+set}" = set; then : +if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then @@ -9665,7 +9765,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9713,7 +9813,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_READELF+set}" = set; then : +if ${ac_cv_prog_READELF+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$READELF"; then @@ -9725,7 +9825,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_READELF="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9755,7 +9855,7 @@ set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_READELF+set}" = set; then : +if ${ac_cv_prog_READELF+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$READELF"; then @@ -9767,7 +9867,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_READELF="${ncn_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9794,7 +9894,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_READELF+set}" = set; then : +if ${ac_cv_prog_READELF+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$READELF"; then @@ -9806,7 +9906,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_READELF="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9876,7 +9976,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_CC_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC_FOR_TARGET"; then @@ -9888,7 +9988,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9935,7 +10035,7 @@ set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_CC_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC_FOR_TARGET"; then @@ -9947,7 +10047,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC_FOR_TARGET="${ncn_target_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9974,7 +10074,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_CC_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC_FOR_TARGET"; then @@ -9986,7 +10086,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10037,7 +10137,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CXX_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_CXX_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX_FOR_TARGET"; then @@ -10049,7 +10149,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10096,7 +10196,7 @@ set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CXX_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_CXX_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX_FOR_TARGET"; then @@ -10108,7 +10208,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX_FOR_TARGET="${ncn_target_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10135,7 +10235,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CXX_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_CXX_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX_FOR_TARGET"; then @@ -10147,7 +10247,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10198,7 +10298,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_GCC_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_GCC_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$GCC_FOR_TARGET"; then @@ -10210,7 +10310,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_GCC_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10257,7 +10357,7 @@ set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_GCC_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_GCC_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$GCC_FOR_TARGET"; then @@ -10269,7 +10369,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_GCC_FOR_TARGET="${ncn_target_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10296,7 +10396,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_GCC_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_GCC_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$GCC_FOR_TARGET"; then @@ -10308,7 +10408,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_GCC_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10354,7 +10454,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_GFORTRAN_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_GFORTRAN_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$GFORTRAN_FOR_TARGET"; then @@ -10366,7 +10466,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_GFORTRAN_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10413,7 +10513,7 @@ set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_GFORTRAN_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_GFORTRAN_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$GFORTRAN_FOR_TARGET"; then @@ -10425,7 +10525,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_GFORTRAN_FOR_TARGET="${ncn_target_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10452,7 +10552,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_GFORTRAN_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_GFORTRAN_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$GFORTRAN_FOR_TARGET"; then @@ -10464,7 +10564,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_GFORTRAN_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10515,7 +10615,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_GOC_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_GOC_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$GOC_FOR_TARGET"; then @@ -10527,7 +10627,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_GOC_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10574,7 +10674,7 @@ set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_GOC_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_GOC_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$GOC_FOR_TARGET"; then @@ -10586,7 +10686,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_GOC_FOR_TARGET="${ncn_target_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10613,7 +10713,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_GOC_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_GOC_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$GOC_FOR_TARGET"; then @@ -10625,7 +10725,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_GOC_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10704,7 +10804,7 @@ set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_AR_FOR_TARGET+set}" = set; then : +if ${ac_cv_path_AR_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else case $AR_FOR_TARGET in @@ -10718,7 +10818,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_AR_FOR_TARGET="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10756,7 +10856,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AR_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_AR_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR_FOR_TARGET"; then @@ -10768,7 +10868,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10815,7 +10915,7 @@ set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AR_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_AR_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR_FOR_TARGET"; then @@ -10827,7 +10927,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR_FOR_TARGET="${ncn_target_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10854,7 +10954,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AR_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_AR_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR_FOR_TARGET"; then @@ -10866,7 +10966,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10934,7 +11034,7 @@ set dummy as; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_AS_FOR_TARGET+set}" = set; then : +if ${ac_cv_path_AS_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else case $AS_FOR_TARGET in @@ -10948,7 +11048,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_AS_FOR_TARGET="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10986,7 +11086,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AS_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_AS_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AS_FOR_TARGET"; then @@ -10998,7 +11098,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AS_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -11045,7 +11145,7 @@ set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AS_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_AS_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AS_FOR_TARGET"; then @@ -11057,7 +11157,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AS_FOR_TARGET="${ncn_target_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -11084,7 +11184,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AS_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_AS_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AS_FOR_TARGET"; then @@ -11096,7 +11196,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AS_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -11164,7 +11264,7 @@ set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_DLLTOOL_FOR_TARGET+set}" = set; then : +if ${ac_cv_path_DLLTOOL_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else case $DLLTOOL_FOR_TARGET in @@ -11178,7 +11278,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_DLLTOOL_FOR_TARGET="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -11216,7 +11316,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_DLLTOOL_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_DLLTOOL_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL_FOR_TARGET"; then @@ -11228,7 +11328,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -11275,7 +11375,7 @@ set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_DLLTOOL_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_DLLTOOL_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL_FOR_TARGET"; then @@ -11287,7 +11387,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL_FOR_TARGET="${ncn_target_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -11314,7 +11414,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_DLLTOOL_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_DLLTOOL_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL_FOR_TARGET"; then @@ -11326,7 +11426,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -11394,7 +11494,7 @@ set dummy ld; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_LD_FOR_TARGET+set}" = set; then : +if ${ac_cv_path_LD_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else case $LD_FOR_TARGET in @@ -11408,7 +11508,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_LD_FOR_TARGET="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -11446,7 +11546,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_LD_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_LD_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LD_FOR_TARGET"; then @@ -11458,7 +11558,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LD_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -11505,7 +11605,7 @@ set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_LD_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_LD_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LD_FOR_TARGET"; then @@ -11517,7 +11617,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LD_FOR_TARGET="${ncn_target_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -11544,7 +11644,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_LD_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_LD_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LD_FOR_TARGET"; then @@ -11556,7 +11656,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LD_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -11624,7 +11724,7 @@ set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_LIPO_FOR_TARGET+set}" = set; then : +if ${ac_cv_path_LIPO_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else case $LIPO_FOR_TARGET in @@ -11638,7 +11738,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_LIPO_FOR_TARGET="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -11676,7 +11776,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_LIPO_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_LIPO_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO_FOR_TARGET"; then @@ -11688,7 +11788,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -11735,7 +11835,7 @@ set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_LIPO_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_LIPO_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO_FOR_TARGET"; then @@ -11747,7 +11847,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO_FOR_TARGET="${ncn_target_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -11774,7 +11874,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_LIPO_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_LIPO_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO_FOR_TARGET"; then @@ -11786,7 +11886,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -11854,7 +11954,7 @@ set dummy nm; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_NM_FOR_TARGET+set}" = set; then : +if ${ac_cv_path_NM_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else case $NM_FOR_TARGET in @@ -11868,7 +11968,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_NM_FOR_TARGET="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -11906,7 +12006,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_NM_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_NM_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM_FOR_TARGET"; then @@ -11918,7 +12018,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_NM_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -11965,7 +12065,7 @@ set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_NM_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_NM_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM_FOR_TARGET"; then @@ -11977,7 +12077,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_NM_FOR_TARGET="${ncn_target_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -12004,7 +12104,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_NM_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_NM_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM_FOR_TARGET"; then @@ -12016,7 +12116,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_NM_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -12084,7 +12184,7 @@ set dummy objcopy; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_OBJCOPY_FOR_TARGET+set}" = set; then : +if ${ac_cv_path_OBJCOPY_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else case $OBJCOPY_FOR_TARGET in @@ -12098,7 +12198,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_OBJCOPY_FOR_TARGET="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -12136,7 +12236,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OBJCOPY_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_OBJCOPY_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJCOPY_FOR_TARGET"; then @@ -12148,7 +12248,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJCOPY_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -12195,7 +12295,7 @@ set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OBJCOPY_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_OBJCOPY_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJCOPY_FOR_TARGET"; then @@ -12207,7 +12307,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJCOPY_FOR_TARGET="${ncn_target_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -12234,7 +12334,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OBJCOPY_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_OBJCOPY_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJCOPY_FOR_TARGET"; then @@ -12246,7 +12346,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJCOPY_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -12314,7 +12414,7 @@ set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_OBJDUMP_FOR_TARGET+set}" = set; then : +if ${ac_cv_path_OBJDUMP_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else case $OBJDUMP_FOR_TARGET in @@ -12328,7 +12428,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_OBJDUMP_FOR_TARGET="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -12366,7 +12466,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OBJDUMP_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_OBJDUMP_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP_FOR_TARGET"; then @@ -12378,7 +12478,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -12425,7 +12525,7 @@ set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OBJDUMP_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_OBJDUMP_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP_FOR_TARGET"; then @@ -12437,7 +12537,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP_FOR_TARGET="${ncn_target_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -12464,7 +12564,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OBJDUMP_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_OBJDUMP_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP_FOR_TARGET"; then @@ -12476,7 +12576,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -12544,7 +12644,7 @@ set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_RANLIB_FOR_TARGET+set}" = set; then : +if ${ac_cv_path_RANLIB_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else case $RANLIB_FOR_TARGET in @@ -12558,7 +12658,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_RANLIB_FOR_TARGET="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -12596,7 +12696,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_RANLIB_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_RANLIB_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB_FOR_TARGET"; then @@ -12608,7 +12708,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -12655,7 +12755,7 @@ set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_RANLIB_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_RANLIB_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB_FOR_TARGET"; then @@ -12667,7 +12767,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB_FOR_TARGET="${ncn_target_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -12694,7 +12794,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_RANLIB_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_RANLIB_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB_FOR_TARGET"; then @@ -12706,7 +12806,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -12774,7 +12874,7 @@ set dummy readelf; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_READELF_FOR_TARGET+set}" = set; then : +if ${ac_cv_path_READELF_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else case $READELF_FOR_TARGET in @@ -12788,7 +12888,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_READELF_FOR_TARGET="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -12826,7 +12926,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_READELF_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_READELF_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$READELF_FOR_TARGET"; then @@ -12838,7 +12938,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_READELF_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -12885,7 +12985,7 @@ set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_READELF_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_READELF_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$READELF_FOR_TARGET"; then @@ -12897,7 +12997,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_READELF_FOR_TARGET="${ncn_target_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -12924,7 +13024,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_READELF_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_READELF_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$READELF_FOR_TARGET"; then @@ -12936,7 +13036,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_READELF_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -13004,7 +13104,7 @@ set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_STRIP_FOR_TARGET+set}" = set; then : +if ${ac_cv_path_STRIP_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else case $STRIP_FOR_TARGET in @@ -13018,7 +13118,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_STRIP_FOR_TARGET="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -13056,7 +13156,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_STRIP_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP_FOR_TARGET"; then @@ -13068,7 +13168,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -13115,7 +13215,7 @@ set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_STRIP_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP_FOR_TARGET"; then @@ -13127,7 +13227,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP_FOR_TARGET="${ncn_target_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -13154,7 +13254,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_STRIP_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP_FOR_TARGET"; then @@ -13166,7 +13266,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -13234,7 +13334,7 @@ set dummy windres; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_WINDRES_FOR_TARGET+set}" = set; then : +if ${ac_cv_path_WINDRES_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else case $WINDRES_FOR_TARGET in @@ -13248,7 +13348,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_WINDRES_FOR_TARGET="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -13286,7 +13386,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_WINDRES_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_WINDRES_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$WINDRES_FOR_TARGET"; then @@ -13298,7 +13398,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_WINDRES_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -13345,7 +13445,7 @@ set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_WINDRES_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_WINDRES_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$WINDRES_FOR_TARGET"; then @@ -13357,7 +13457,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_WINDRES_FOR_TARGET="${ncn_target_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -13384,7 +13484,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_WINDRES_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_WINDRES_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$WINDRES_FOR_TARGET"; then @@ -13396,7 +13496,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_WINDRES_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -13464,7 +13564,7 @@ set dummy windmc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_WINDMC_FOR_TARGET+set}" = set; then : +if ${ac_cv_path_WINDMC_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else case $WINDMC_FOR_TARGET in @@ -13478,7 +13578,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_WINDMC_FOR_TARGET="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -13516,7 +13616,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_WINDMC_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_WINDMC_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$WINDMC_FOR_TARGET"; then @@ -13528,7 +13628,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_WINDMC_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -13575,7 +13675,7 @@ set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_WINDMC_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_WINDMC_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$WINDMC_FOR_TARGET"; then @@ -13587,7 +13687,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_WINDMC_FOR_TARGET="${ncn_target_tool_prefix}${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -13614,7 +13714,7 @@ set dummy ${ncn_progname}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_WINDMC_FOR_TARGET+set}" = set; then : +if ${ac_cv_prog_WINDMC_FOR_TARGET+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$WINDMC_FOR_TARGET"; then @@ -13626,7 +13726,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_WINDMC_FOR_TARGET="${ncn_progname}" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -14566,60 +14666,33 @@ # Check whether --enable-werror was given. if test "${enable_werror+set}" = set; then : enableval=$enable_werror; -else - if test -d ${srcdir}/gcc && test x"`cat $srcdir/gcc/DEV-PHASE`" = xexperimental; then - enable_werror=yes -else - enable_werror=no -fi -fi - case ${enable_werror} in yes) stage2_werror_flag="--enable-werror-always" ;; *) stage2_werror_flag="" ;; esac - -# Enable --enable-host-shared. -# Check whether --enable-host-shared was given. -if test "${enable_host_shared+set}" = set; then : - enableval=$enable_host_shared; host_shared=$enableval else - host_shared=no -fi +if test -d ${srcdir}/gcc && test x"`cat $srcdir/gcc/DEV-PHASE`" = xexperimental; then + case $BUILD_CONFIG in + bootstrap-debug) + stage2_werror_flag="--enable-werror-always" ;; + "") + stage2_werror_flag="--enable-werror-always" ;; + esac +fi +fi -# PR jit/64780: Require the user to explicitly specify -# --enable-host-shared if the jit is enabled, hinting -# that they might want to do a separate configure/build of -# the jit, to avoid users from slowing down the rest of the -# compiler by enabling the jit. -if test ${host_shared} = "no" ; then - case "${enable_languages}" in - *jit*) - as_fn_error " -Enabling language \"jit\" requires --enable-host-shared. ---enable-host-shared typically slows the rest of the compiler down by -a few %, so you must explicitly enable it. -If you want to build both the jit and the regular compiler, it is often -best to do this via two separate configure/builds, in separate -directories, to avoid imposing the performance cost of ---enable-host-shared on the regular compiler." "$LINENO" 5 - ;; - *) - ;; - esac -fi # Specify what files to not compare during bootstrap. compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/*" case "$target" in hppa*64*-*-hpux*) ;; - hppa*-*-hpux*) compare_exclusions="gcc/cc*-checksum\$(objext) | */libgcc/lib2funcs* | gcc/ada/*tools/*" ;; + hppa*-*-hpux*) compare_exclusions="gcc/cc*-checksum\$(objext) | */libgcc/lib2funcs* | gcc/ada/*tools/* | gcc/function-tests.o" ;; powerpc*-ibm-aix*) compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/* | *libgomp*\$(objext)" ;; esac @@ -14690,10 +14763,21 @@ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then - test "x$cache_file" != "x/dev/null" && + if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} @@ -14745,6 +14829,7 @@ ac_libobjs= ac_ltlibobjs= +U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' @@ -14760,7 +14845,7 @@ -: ${CONFIG_STATUS=./config.status} +: "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" @@ -14861,6 +14946,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -14906,19 +14992,19 @@ (unset CDPATH) >/dev/null 2>&1 && unset CDPATH -# as_fn_error ERROR [LINENO LOG_FD] -# --------------------------------- +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with status $?, using 1 if that was 0. +# script with STATUS, using 1 if that was 0. as_fn_error () { - as_status=$?; test $as_status -eq 0 && as_status=1 - if test "$3"; then - as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $1" >&2 + $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error @@ -15056,16 +15142,16 @@ # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -15114,7 +15200,7 @@ test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p @@ -15125,28 +15211,16 @@ as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -15168,7 +15242,7 @@ # values after options handling. ac_log=" This file was extended by $as_me, which was -generated by GNU Autoconf 2.64. Invocation command line was +generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -15203,6 +15277,7 @@ -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit + --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files @@ -15217,12 +15292,13 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ config.status -configured by $0, generated by GNU Autoconf 2.64, - with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" +configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" -Copyright (C) 2009 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -15239,11 +15315,16 @@ while test $# != 0 do case $1 in - --*=*) + --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; *) ac_option=$1 ac_optarg=$2 @@ -15257,12 +15338,15 @@ ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; @@ -15273,7 +15357,7 @@ ac_cs_silent=: ;; # This is an error. - -*) as_fn_error "unrecognized option: \`$1' + -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" @@ -15293,7 +15377,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' @@ -15331,7 +15415,7 @@ case $ac_config_target in "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done @@ -15352,9 +15436,10 @@ # after its creation but before its name has been assigned to `$tmp'. $debug || { - tmp= + tmp= ac_tmp= trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } @@ -15362,12 +15447,13 @@ { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" + test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") -} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. @@ -15401,24 +15487,24 @@ fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\r' + ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi -echo 'BEGIN {' >"$tmp/subs1.awk" && +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF # Create commands to substitute file output variables. { echo "cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1" && - echo 'cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&' && + echo 'cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&' && echo "$ac_subst_files" | sed 's/.*/F["&"]="$&"/' && echo "_ACAWK" && echo "_ACEOF" } >conf$$files.sh && . ./conf$$files.sh || - as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 rm -f conf$$files.sh { @@ -15426,18 +15512,18 @@ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || - as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || - as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then - as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi @@ -15445,7 +15531,7 @@ rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h @@ -15459,7 +15545,7 @@ t delim :nl h -s/\(.\{148\}\).*/\1/ +s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p @@ -15473,7 +15559,7 @@ t nl :delim h -s/\(.\{148\}\).*/\1/ +s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p @@ -15493,7 +15579,7 @@ rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK -cat >>"\$tmp/subs1.awk" <<_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" \$ac_cs_awk_pipe_init @@ -15531,21 +15617,29 @@ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat -fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ - || as_fn_error "could not setup config files machinery" "$LINENO" 5 +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/ -s/:*\${srcdir}:*/:/ -s/:*@srcdir@:*/:/ -s/^\([^=]*=[ ]*\):*/\1/ + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// s/^[^=]*=[ ]*$// }' fi @@ -15563,7 +15657,7 @@ esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac @@ -15582,7 +15676,7 @@ for ac_f do case $ac_f in - -) ac_f="$tmp/stdin";; + -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. @@ -15591,7 +15685,7 @@ [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" @@ -15617,8 +15711,8 @@ esac case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin" \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac @@ -15750,26 +15844,27 @@ " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | if $ac_cs_awk_getline; then - $AWK -f "$tmp/subs.awk" + $AWK -f "$ac_tmp/subs.awk" else - $AWK -f "$tmp/subs.awk" | $SHELL -fi >$tmp/out \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 + $AWK -f "$ac_tmp/subs.awk" | $SHELL +fi \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&5 +which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&2;} +which seems to be undefined. Please make sure it is defined" >&2;} - rm -f "$tmp/stdin" + rm -f "$ac_tmp/stdin" case $ac_file in - -) cat "$tmp/out" && rm -f "$tmp/out";; - *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; @@ -15792,7 +15887,7 @@ ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || - as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. @@ -15813,7 +15908,7 @@ exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit $? + $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 diff -Nru gdb-8.1/configure.ac gdb-8.2/configure.ac --- gdb-8.1/configure.ac 2018-01-31 03:02:11.000000000 +0000 +++ gdb-8.2/configure.ac 2018-09-05 07:47:51.000000000 +0000 @@ -1,6 +1,6 @@ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, # 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, -# 2014, 2015, 2016, 2017 Free Software Foundation, Inc. +# 2014, 2015, 2016 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -31,7 +31,6 @@ m4_include([config/isl.m4]) AC_INIT(move-if-change) -AC_PREREQ(2.64) AC_DISABLE_OPTION_CHECKING progname=$0 @@ -150,14 +149,13 @@ target-libgloss \ target-newlib \ target-libgomp \ - target-libcilkrts \ target-liboffloadmic \ + target-libhsail-rt \ target-libatomic \ target-libitm \ target-libstdc++-v3 \ target-libsanitizer \ target-libvtv \ - target-libmpx \ target-libssp \ target-libquadmath \ target-libgfortran \ @@ -331,7 +329,7 @@ *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \ | *-*-linux* | *-*-gnu* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \ | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* \ - | *-*-solaris2* | *-*-nto* | *-*-nacl* | *-*-fuchsia*) + | *-*-solaris2* | *-*-nto* | *-*-nacl*) case "${target}" in *-*-linux*aout* | *-*-linux*oldld*) ;; @@ -536,22 +534,6 @@ fi fi -# Disable libcilkrts on unsupported systems. -if test -d ${srcdir}/libcilkrts; then - if test x$enable_libcilkrts = x; then - AC_MSG_CHECKING([for libcilkrts support]) - if (srcdir=${srcdir}/libcilkrts; \ - . ${srcdir}/configure.tgt; \ - test -n "$UNSUPPORTED") - then - AC_MSG_RESULT([no]) - noconfigdirs="$noconfigdirs target-libcilkrts" - else - AC_MSG_RESULT([yes]) - fi - fi -fi - # Disable liboffloadmic on unsupported systems. if test -d ${srcdir}/liboffloadmic; then if test x$enable_liboffloadmic != xno; then @@ -617,24 +599,25 @@ fi -# Enable libmpx on supported systems by request. -if test -d ${srcdir}/libmpx; then - if test x$enable_libmpx = x; then - AC_MSG_CHECKING([for libmpx support]) - if (srcdir=${srcdir}/libmpx; \ - . ${srcdir}/configure.tgt; \ - test "$LIBMPX_SUPPORTED" != "yes") - then - AC_MSG_RESULT([no]) - noconfigdirs="$noconfigdirs target-libmpx" - else - AC_MSG_RESULT([yes]) - fi +# Disable libhsail-rt on unsupported systems. +if test -d ${srcdir}/libhsail-rt; then + if test x$enable_libhsail_rt = x; then + AC_MSG_CHECKING([for libhsail-rt support]) + if (srcdir=${srcdir}/libhsail-rt; \ + . ${srcdir}/configure.tgt; \ + test -n "$UNSUPPORTED") + then + AC_MSG_RESULT([no]) + unsupported_languages="$unsupported_languages brig" + # This implicitly disables also target-libhsail-rt as it won't + # get added to the build without BRIG FE. + else + AC_MSG_RESULT([yes]) + fi fi fi - # Disable libquadmath for some systems. case "${target}" in avr-*-*) @@ -773,11 +756,8 @@ noconfigdirs="$noconfigdirs target-libffi" ;; powerpc-*-aix*) - # copied from rs6000-*-* entry - noconfigdirs="$noconfigdirs target-libffi" ;; rs6000-*-aix*) - noconfigdirs="$noconfigdirs target-libffi" ;; ft32-*-*) noconfigdirs="$noconfigdirs target-libffi" @@ -790,7 +770,7 @@ # Disable the go frontend on systems where it is known to not work. Please keep # this in sync with contrib/config-list.mk. case "${target}" in -*-*-darwin* | *-*-cygwin* | *-*-mingw* | *-*-aix*) +*-*-darwin* | *-*-cygwin* | *-*-mingw*) unsupported_languages="$unsupported_languages go" ;; esac @@ -806,9 +786,6 @@ *-*-cygwin* | *-*-mingw*) noconfigdirs="$noconfigdirs target-libgo" ;; - *-*-aix*) - noconfigdirs="$noconfigdirs target-libgo" - ;; esac fi @@ -1113,6 +1090,10 @@ mt-*-*) noconfigdirs="$noconfigdirs sim" ;; + nfp-*-*) + noconfigdirs="$noconfigdirs ld gas gdb gprof sim" + noconfigdirs="$noconfigdirs $target_libraries" + ;; powerpc-*-aix*) # copied from rs6000-*-* entry noconfigdirs="$noconfigdirs gprof" @@ -1196,6 +1177,9 @@ vax-*-*) noconfigdirs="$noconfigdirs target-newlib target-libgloss" ;; + wasm32-*-*) + noconfigdirs="$noconfigdirs ld" + ;; esac # If we aren't building newlib, then don't build libgloss, since libgloss @@ -1301,11 +1285,11 @@ LDFLAGS="$LDFLAGS -static-libstdc++ -static-libgcc" AC_MSG_CHECKING([whether g++ accepts -static-libstdc++ -static-libgcc]) AC_LANG_PUSH(C++) - AC_LINK_IFELSE([ + AC_LINK_IFELSE([AC_LANG_SOURCE([ #if (__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) #error -static-libstdc++ not implemented #endif -int main() {}], +int main() {}])], [AC_MSG_RESULT([yes]); have_static_libs=yes], [AC_MSG_RESULT([no])]) AC_LANG_POP(C++) @@ -1702,7 +1686,7 @@ build_lto_plugin=yes ],[if test x"$default_enable_lto" = x"yes" ; then case $target in - *-apple-darwin9* | *-cygwin* | *-mingw* | *djgpp*) ;; + *-apple-darwin[[912]]* | *-cygwin* | *-mingw* | *djgpp*) ;; # On other non-ELF platforms, LTO has yet to be validated. *) enable_lto=no ;; esac @@ -1741,6 +1725,13 @@ extra_linker_plugin_flags=) AC_SUBST(extra_linker_plugin_flags) +# Enable --enable-host-shared. +# Checked early to determine whether jit is an 'all' language +AC_ARG_ENABLE(host-shared, +[AS_HELP_STRING([--enable-host-shared], + [build host code as shared libraries])], +[host_shared=$enableval], [host_shared=no]) +AC_SUBST(host_shared) # By default, C and C++ are the only stage 1 languages. stage1_languages=,c, @@ -1759,7 +1750,7 @@ enable_languages="${LANGUAGES}" echo configure.ac: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2 else - enable_languages=all + enable_languages=default fi else if test x"${enable_languages}" = x || @@ -1807,10 +1798,16 @@ language= lang_requires= lang_requires_boot_languages= - . ${lang_frag} + # set srcdir during sourcing lang_frag to the gcc dir. + # Sadly overriding srcdir on the . line doesn't work in plain sh as it + # polutes this shell + saved_srcdir=${srcdir} + srcdir=${srcdir}/gcc . ${lang_frag} + srcdir=${saved_srcdir} for other in ${lang_requires} ${lang_requires_boot_languages}; do case ,${enable_languages}, in *,$other,*) ;; + *,default,*) ;; *,all,*) ;; *,$language,*) echo " \`$other' language required by \`$language'; enabling" 1>&2 @@ -1822,6 +1819,7 @@ if test "$other" != "c"; then case ,${enable_stage1_languages}, in *,$other,*) ;; + *,default,*) ;; *,all,*) ;; *) case ,${enable_languages}, in @@ -1859,7 +1857,7 @@ esac fi - missing_languages=`echo ",$enable_languages," | sed -e s/,all,/,/ -e s/,c,/,/ ` + missing_languages=`echo ",$enable_languages," | sed -e s/,default,/,/ -e s/,all,/,/ -e s/,c,/,/ ` potential_languages=,c, enabled_target_libs= @@ -1880,7 +1878,10 @@ subdir_requires= boot_language=no build_by_default=yes - . ${lang_frag} + # set srcdir during sourcing. See above about save & restore + saved_srcdir=${srcdir} + srcdir=${srcdir}/gcc . ${lang_frag} + srcdir=${saved_srcdir} if test x${language} = x; then echo "${lang_frag} doesn't set \$language." 1>&2 exit 1 @@ -1891,30 +1892,36 @@ fi add_this_lang=no - case ,${enable_languages}, in - *,${language},*) - # Language was explicitly selected; include it - # unless it is C, which is enabled by default. - if test "$language" != "c"; then + # C is always enabled, so no need to add it again + if test "$language" != "c"; then + case ,${enable_languages}, in + *,${language},*) + # Language was explicitly selected; include it add_this_lang=yes - fi - ;; - *,all,*) - # 'all' was selected, select it if it is a default language - if test "$language" != "c"; then + ;; + *,all,*) + # All languages are enabled + add_this_lang=all + ;; + *,default,*) + # 'default' was selected, select it if it is a default language add_this_lang=${build_by_default} - fi - ;; - esac + ;; + esac + fi # Disable languages that need other directories if these aren't available. for i in $subdir_requires; do test -f "$srcdir/gcc/$i/config-lang.in" && continue - case ,${enable_languages}, in - *,${language},*) + case ${add_this_lang} in + yes) # Specifically requested language; tell them. AC_MSG_ERROR([The gcc/$i directory contains parts of $language but is missing]) ;; + all) + AC_MSG_WARN([The gcc/$i directory contains parts of $language but is missing]) + add_this_lang=unsupported + ;; *) # Silently disable. add_this_lang=unsupported @@ -1923,20 +1930,52 @@ done # Disable Ada if no preexisting GNAT is available. - case ,${enable_languages},:${language}:${have_gnat} in - *,${language},*:ada:no) + case ${add_this_lang}:${language}:${have_gnat} in + yes:ada:no) # Specifically requested language; tell them. AC_MSG_ERROR([GNAT is required to build $language]) ;; + all:ada:no) + AC_MSG_WARN([GNAT is required to build $language]) + add_this_lang=unsupported + ;; *:ada:no) # Silently disable. add_this_lang=unsupported ;; esac - # Disable a language that is unsupported by the target. - case " $unsupported_languages " in - *" $language "*) + # Disable jit if -enable-host-shared not specified + case ${add_this_lang}:${language}:${host_shared} in + yes:jit:no) + # PR jit/64780: explicitly specify --enable-host-shared + AC_MSG_ERROR([ +Enabling language "jit" requires --enable-host-shared. + +--enable-host-shared typically slows the rest of the compiler down by +a few %, so you must explicitly enable it. + +If you want to build both the jit and the regular compiler, it is often +best to do this via two separate configure/builds, in separate +directories, to avoid imposing the performance cost of +--enable-host-shared on the regular compiler.]) + ;; + all:jit:no) + AC_MSG_WARN([--enable-host-shared required to build $language]) + add_this_lang=unsupported + ;; + *:jit:no) + # Silently disable. + add_this_lang=unsupported + ;; + esac + + # Disable a language that is unsupported by the target. + case "${add_this_lang}: $unsupported_languages " in + no:*) ;; + unsupported:*) ;; + *:*" $language "*) + AC_MSG_WARN([${language} not supported for this target]) add_this_lang=unsupported ;; esac @@ -1953,7 +1992,7 @@ noconfigdirs="$noconfigdirs $lang_dirs" potential_languages="${potential_languages}${language}," ;; - yes) + all|yes) new_enable_languages="${new_enable_languages}${language}," potential_languages="${potential_languages}${language}," missing_languages=`echo "$missing_languages" | sed "s/,$language,/,/"` @@ -2082,19 +2121,19 @@ fi esac -# Disable libcilkrts, libitm, libsanitizer, libvtv, liboffloadmic if we're not building C++ +# Disable libitm, libsanitizer, libvtv, liboffloadmic if we're not building C++ case ,${enable_languages}, in *,c++,*) - # Disable libcilkrts, libitm, libsanitizer if we're not building libstdc++ + # Disable libitm, libsanitizer if we're not building libstdc++ case "${noconfigdirs}" in *target-libstdc++-v3*) - noconfigdirs="$noconfigdirs target-libcilkrts target-libitm target-libsanitizer" + noconfigdirs="$noconfigdirs target-libitm target-libsanitizer" ;; *) ;; esac ;; *) - noconfigdirs="$noconfigdirs target-libcilkrts target-liboffloadmic target-libitm target-libsanitizer target-libvtv" + noconfigdirs="$noconfigdirs target-liboffloadmic target-libitm target-libsanitizer target-libvtv" ;; esac @@ -2449,6 +2488,9 @@ nios2-*-elf*) target_makefile_frag="config/mt-nios2-elf" ;; + *-*-linux-android*) + target_makefile_frag="config/mt-android" + ;; *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu) target_makefile_frag="config/mt-gnu" ;; @@ -2636,16 +2678,6 @@ bootstrap_target_libs=${bootstrap_target_libs}target-libvtv, fi -# If we are building libmpx and $BUILD_CONFIG contains bootstrap-mpx, -# bootstrap it. -if echo " ${target_configdirs} " | grep " libmpx " > /dev/null 2>&1; then - case "$BUILD_CONFIG" in - *bootstrap-mpx* ) - bootstrap_target_libs=${bootstrap_target_libs}target-libmpx, - ;; - esac -fi - # Determine whether gdb needs tk/tcl or not. # Use 'maybe' since enable_gdbtk might be true even if tk isn't available # and in that case we want gdb to be built without tk. Ugh! @@ -2686,7 +2718,9 @@ # extrasub-{build,host,target} not because there is any reason to split # the substitutions up that way, but only to remain below the limit of # 99 commands in a script, for HP-UX sed. -# Do not nest @if/@endif pairs, because configure will not warn you at all. + +# Do not nest @if/@endif or @unless/@endunless pairs, because +# configure will not warn you at all. case "$enable_bootstrap:$ENABLE_GOLD: $configdirs :,$stage1_languages," in yes:yes:*\ gold\ *:*,c++,*) ;; @@ -2705,8 +2739,10 @@ extrasub_build="$extrasub_build /^@if build-$module\$/d /^@endif build-$module\$/d +/^@unless build-$module\$/,/^@endunless build-$module\$/d /^@if build-$module-$bootstrap_suffix\$/d -/^@endif build-$module-$bootstrap_suffix\$/d" +/^@endif build-$module-$bootstrap_suffix\$/d +/^@unless build-$module-$bootstrap_suffix\$/,/^@endunless build-$module-$bootstrap_suffix\$/d" done extrasub_host= for module in ${configdirs} ; do @@ -2725,8 +2761,10 @@ extrasub_host="$extrasub_host /^@if $module\$/d /^@endif $module\$/d +/^@unless $module\$/,/^@endunless $module\$/d /^@if $module-$host_bootstrap_suffix\$/d -/^@endif $module-$host_bootstrap_suffix\$/d" +/^@endif $module-$host_bootstrap_suffix\$/d +/^@unless $module-$host_bootstrap_suffix\$/,/^@endunless $module-$host_bootstrap_suffix\$/d" done extrasub_target= for module in ${target_configdirs} ; do @@ -2745,13 +2783,17 @@ extrasub_target="$extrasub_target /^@if target-$module\$/d /^@endif target-$module\$/d +/^@unless target-$module\$/,/^@endunless target-$module\$/d /^@if target-$module-$target_bootstrap_suffix\$/d -/^@endif target-$module-$target_bootstrap_suffix\$/d" +/^@endif target-$module-$target_bootstrap_suffix\$/d +/^@unless target-$module-$target_bootstrap_suffix\$/,/^@endunless target-$module-$target_bootstrap_suffix\$/d" done # Do the final fixup along with target modules. extrasub_target="$extrasub_target -/^@if /,/^@endif /d" +/^@if /,/^@endif /d +/^@unless /d +/^@endunless /d" # Create the serialization dependencies. This uses a temporary file. @@ -3436,55 +3478,32 @@ # Enable -Werror in bootstrap stage2 and later. AC_ARG_ENABLE(werror, [AS_HELP_STRING([--enable-werror], - [enable -Werror in bootstrap stage2 and later])], [], -[if test -d ${srcdir}/gcc && test x"`cat $srcdir/gcc/DEV-PHASE`" = xexperimental; then - enable_werror=yes -else - enable_werror=no -fi]) + [enable -Werror in bootstrap stage2 and later])], +[ case ${enable_werror} in yes) stage2_werror_flag="--enable-werror-always" ;; *) stage2_werror_flag="" ;; esac -AC_SUBST(stage2_werror_flag) - -# Enable --enable-host-shared. -AC_ARG_ENABLE(host-shared, -[AS_HELP_STRING([--enable-host-shared], - [build host code as shared libraries])], -[host_shared=$enableval], [host_shared=no]) -AC_SUBST(host_shared) - -# PR jit/64780: Require the user to explicitly specify -# --enable-host-shared if the jit is enabled, hinting -# that they might want to do a separate configure/build of -# the jit, to avoid users from slowing down the rest of the -# compiler by enabling the jit. -if test ${host_shared} = "no" ; then - case "${enable_languages}" in - *jit*) - AC_MSG_ERROR([ -Enabling language "jit" requires --enable-host-shared. - ---enable-host-shared typically slows the rest of the compiler down by -a few %, so you must explicitly enable it. - -If you want to build both the jit and the regular compiler, it is often -best to do this via two separate configure/builds, in separate -directories, to avoid imposing the performance cost of ---enable-host-shared on the regular compiler.]) - ;; - *) - ;; +], +[ +if test -d ${srcdir}/gcc && test x"`cat $srcdir/gcc/DEV-PHASE`" = xexperimental; then + case $BUILD_CONFIG in + bootstrap-debug) + stage2_werror_flag="--enable-werror-always" ;; + "") + stage2_werror_flag="--enable-werror-always" ;; esac fi +]) + +AC_SUBST(stage2_werror_flag) # Specify what files to not compare during bootstrap. compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/*" case "$target" in hppa*64*-*-hpux*) ;; - hppa*-*-hpux*) compare_exclusions="gcc/cc*-checksum\$(objext) | */libgcc/lib2funcs* | gcc/ada/*tools/*" ;; + hppa*-*-hpux*) compare_exclusions="gcc/cc*-checksum\$(objext) | */libgcc/lib2funcs* | gcc/ada/*tools/* | gcc/function-tests.o" ;; powerpc*-ibm-aix*) compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/* | *libgomp*\$(objext)" ;; esac AC_SUBST(compare_exclusions) diff -Nru gdb-8.1/cpu/ChangeLog gdb-8.2/cpu/ChangeLog --- gdb-8.1/cpu/ChangeLog 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/cpu/ChangeLog 2018-09-05 07:44:28.000000000 +0000 @@ -1,3 +1,18 @@ +2018-05-09 Sebastian Rasmussen + + * or1kcommon.cpu (spr-reg-info): Typo fix. + +2018-03-03 Alan Modra + + * frv.opc: Include opintl.h. + (add_next_to_vliw): Use opcodes_error_handler to print error. + Standardize error message. + (fr500_check_insn_major_constraints, frv_vliw_add_insn): Likewise. + +2018-01-13 Nick Clifton + + 2.30 branch created. + 2017-03-15 Stafford Horne * or1kcommon.cpu: Add pc set semantics to also update ppc. diff -Nru gdb-8.1/cpu/frv.opc gdb-8.2/cpu/frv.opc --- gdb-8.1/cpu/frv.opc 2017-06-04 15:51:26.000000000 +0000 +++ gdb-8.2/cpu/frv.opc 2018-09-05 07:27:13.000000000 +0000 @@ -78,6 +78,7 @@ /* -- */ /* -- opc.c */ +#include "opintl.h" #include "elf/frv.h" #include @@ -500,9 +501,9 @@ if (next <= 0) { - fprintf (stderr, "frv-opc.c line %d: bad vliw->next_slot value.\n", - __LINE__); - abort (); /* Should never happen. */ + /* xgettext:c-format */ + opcodes_error_handler (_("internal error: bad vliw->next_slot value")); + abort (); } /* The table is sorted by units allowed within slots, so vliws with @@ -810,8 +811,8 @@ && ! find_major_in_vliw (vliw, FR500_MAJOR_F_6) && ! find_major_in_vliw (vliw, FR500_MAJOR_F_7); default: - fprintf (stderr, "frv-opc.c, line %d: bad major code, aborting.\n", - __LINE__); + /* xgettext:c-format */ + opcodes_error_handler (_("internal error: bad major code")); abort (); break; } @@ -860,9 +861,9 @@ unit = CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_UNIT); if (unit == UNIT_NIL) { - fprintf (stderr, "frv-opc.c line %d: bad insn unit.\n", - __LINE__); - abort (); /* No UNIT specified for this insn in frv.cpu. */ + /* xgettext:c-format */ + opcodes_error_handler (_("internal error: bad insn unit")); + abort (); } switch (vliw->mach) diff -Nru gdb-8.1/cpu/or1kcommon.cpu gdb-8.2/cpu/or1kcommon.cpu --- gdb-8.1/cpu/or1kcommon.cpu 2017-06-04 15:51:26.000000000 +0000 +++ gdb-8.2/cpu/or1kcommon.cpu 2018-09-05 07:44:28.000000000 +0000 @@ -170,7 +170,7 @@ (SYS DCFGR #x007 "Debug configuration register") (SYS PCCFGR #x008 "Performance counters configuration register") (SYS NPC #x010 "Next program counter") - (SYS SR #x011 "Supervision Regsiter") + (SYS SR #x011 "Supervision Register") (SYS PPC #x012 "Previous program counter") (SYS FPCSR #x014 "Floating point control status register") (.unsplice diff -Nru gdb-8.1/debian/changelog gdb-8.2/debian/changelog --- gdb-8.1/debian/changelog 2018-04-09 09:31:42.000000000 +0000 +++ gdb-8.2/debian/changelog 2021-12-12 02:46:13.000000000 +0000 @@ -1,3 +1,51 @@ +gdb (8.2-0ubuntu1~18.04.sav0) bionic; urgency=medium + + * No-change rebuild for ppa:savoury1/toolchain + + -- Rob Savoury Sat, 11 Dec 2021 18:46:13 -0800 + +gdb (8.2-0ubuntu1~18.04) bionic; urgency=medium + + * PPA upload. + + -- Matthias Klose Tue, 25 Sep 2018 21:43:52 +0200 + +gdb (8.2-0ubuntu1) cosmic; urgency=medium + + * gdb 8.2 release. + + -- Matthias Klose Wed, 12 Sep 2018 12:41:04 +0200 + +gdb (8.1.90.20180904-0ubuntu1) cosmic; urgency=medium + + * Snapshot, taken from the gdb-8.1-branch. + + -- Matthias Klose Tue, 04 Sep 2018 16:41:10 +0200 + +gdb (8.1-0ubuntu8) cosmic; urgency=medium + + * Enable Intel PT recording format on x86 architectures. Closes: #872800. + + -- Matthias Klose Fri, 20 Jul 2018 22:15:11 +0200 + +gdb (8.1-0ubuntu6) cosmic; urgency=medium + + * gdb: Provide gdb-minimal. + + -- Matthias Klose Sat, 12 May 2018 18:21:38 -0400 + +gdb (8.1-0ubuntu5) cosmic; urgency=medium + + * debian/control: Update libncurses build-deps to the new scheme. + + -- Adam Conrad Fri, 04 May 2018 09:58:50 -0600 + +gdb (8.1-0ubuntu4) cosmic; urgency=medium + + * No-change rebuild for ncurses soname changes. + + -- Matthias Klose Thu, 03 May 2018 15:19:42 +0000 + gdb (8.1-0ubuntu3) bionic; urgency=medium * Update, taken from the gdb-8.1-branch 20180409. diff -Nru gdb-8.1/debian/control gdb-8.2/debian/control --- gdb-8.1/debian/control 2018-03-26 01:19:06.000000000 +0000 +++ gdb-8.2/debian/control 2018-09-25 19:43:52.000000000 +0000 @@ -4,7 +4,7 @@ Uploaders: Luca Bruno , Samuel Bronson Section: devel Priority: optional -Standards-Version: 3.9.8 +Standards-Version: 4.2.1 Build-Depends: # Packaging deps cdbs (>= 0.4.90), @@ -34,6 +34,7 @@ liblzma-dev, libbabeltrace-dev, libbabeltrace-ctf-dev, + libipt-dev [amd64 i386 x32], python3-dev, libkvm-dev [kfreebsd-any], libunwind7-dev [ia64], @@ -56,6 +57,7 @@ Suggests: gdb-doc Conflicts: gdb Replaces: gdb, gdb-doc (<< 7.8-1~) +Provides: gdb-minimal (= ${binary:Version}) Description: GNU Debugger GDB is a source-level debugger, capable of breaking programs at any specific line, displaying variable values, and determining diff -Nru gdb-8.1/debian/control.in gdb-8.2/debian/control.in --- gdb-8.1/debian/control.in 2018-03-26 01:18:53.000000000 +0000 +++ gdb-8.2/debian/control.in 2018-09-25 19:43:52.000000000 +0000 @@ -4,7 +4,7 @@ Uploaders: Luca Bruno , Samuel Bronson Section: devel Priority: optional -Standards-Version: 3.9.8 +Standards-Version: 4.2.1 Build-Depends: # Packaging deps cdbs (>= 0.4.90), @@ -34,6 +34,7 @@ liblzma-dev, libbabeltrace-dev, libbabeltrace-ctf-dev, + libipt-dev [amd64 i386 x32], python3-dev, libkvm-dev [kfreebsd-any], libunwind7-dev [ia64], @@ -56,6 +57,7 @@ Suggests: gdb-doc Conflicts: gdb Replaces: gdb, gdb-doc (<< 7.8-1~) +Provides: gdb-minimal (= ${binary:Version}) Description: GNU Debugger GDB is a source-level debugger, capable of breaking programs at any specific line, displaying variable values, and determining diff -Nru gdb-8.1/debian/patches/branch-updates.diff gdb-8.2/debian/patches/branch-updates.diff --- gdb-8.1/debian/patches/branch-updates.diff 2018-04-09 09:31:42.000000000 +0000 +++ gdb-8.2/debian/patches/branch-updates.diff 2018-09-04 14:42:40.000000000 +0000 @@ -1,1233 +1,2 @@ git diff b755db3c98137baaff8a154d936d326d9a9c72a7 001bcd07e0cea1fd8b996e10f91325831db029c3 -diff --git a/bfd/version.h b/bfd/version.h -index 0dcd17cc75..eee3605d53 100644 ---- a/bfd/version.h -+++ b/bfd/version.h -@@ -16,7 +16,7 @@ - - In releases, the date is not included in either version strings or - sonames. */ --#define BFD_VERSION_DATE 20180131 -+#define BFD_VERSION_DATE 20180409 - #define BFD_VERSION @bfd_version@ - #define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@ - #define REPORT_BUGS_TO @report_bugs_to@ -diff --git a/gdb/ChangeLog b/gdb/ChangeLog -index 35f5e0893f..064780c6bd 100644 ---- a/gdb/ChangeLog -+++ b/gdb/ChangeLog -@@ -1,3 +1,72 @@ -+2018-03-01 Sergio Durigan Junior -+ -+ PR gdb/22907 -+ * common/pathstuff.c: Conditionally include "". -+ -+2018-02-28 Sergio Durigan Junior -+ Simon Marchi -+ -+ * common/common-utils.c: Include "sys/stat.h". -+ (is_regular_file): Move here from "source.c"; change return -+ type to "bool". -+ * common/common-utils.h (is_regular_file): New prototype. -+ * common/pathstuff.c (contains_dir_separator): New function. -+ * common/pathstuff.h (contains_dir_separator): New prototype. -+ * source.c: Don't include "sys/stat.h". -+ (is_regular_file): Move to "common/common-utils.c". -+ -+2018-02-28 Sergio Durigan Junior -+ -+ * Makefile.in (SFILES): Add "common/pathstuff.c". -+ (HFILES_NO_SRCDIR): Add "common/pathstuff.h". -+ (COMMON_OBS): Add "pathstuff.o". -+ * auto-load.c: Include "common/pathstuff.h". -+ * common/common-def.h (current_directory): Move here. -+ * common/gdb_tilde_expand.c (gdb_tilde_expand_up): New -+ function. -+ * common/gdb_tilde_expand.h (gdb_tilde_expand_up): New -+ prototype. -+ * common/pathstuff.c: New file. -+ * common/pathstuff.h: New file. -+ * compile/compile.c: Include "common/pathstuff.h". -+ * defs.h (current_directory): Move to "common/common-defs.h". -+ * dwarf2read.c: Include "common/pathstuff.h". -+ * exec.c: Likewise. -+ * guile/scm-safe-call.c: Likewise. -+ * linux-thread-db.c: Likewise. -+ * main.c: Likewise. -+ * nto-tdep.c: Likewise. -+ * objfiles.c: Likewise. -+ * source.c: Likewise. -+ * symtab.c: Likewise. -+ * utils.c: Include "common/pathstuff.h". -+ (gdb_realpath): Move to "common/pathstuff.c". -+ (gdb_realpath_keepfile): Likewise. -+ (gdb_abspath): Likewise. -+ * utils.h (gdb_realpath): Move to "common/pathstuff.h". -+ (gdb_realpath_keepfile): Likewise. -+ (gdb_abspath): Likewise. -+ -+2018-02-15 Yao Qi -+ -+ PR gdb/22849 -+ * inferior.c (exit_inferior_1): Reset inf->control. -+ -+2018-02-09 Joel Brobecker -+ -+ PR gdb/22824: -+ * NEWS : Clarify that "rbreak" is a new -+ Python function, rather than a new command. -+ -+2018-01-31 Joel Brobecker -+ -+ * version.in: Set GDB version number to 8.1.0.DATE-git. -+ * PROBLEMS: Likewise. -+ -+2018-01-31 Joel Brobecker -+ -+ GDB 8.1 released. -+ - 2018-01-31 Joel Brobecker - - * version.in: Set GDB version number to 8.1. -diff --git a/gdb/Makefile.in b/gdb/Makefile.in -index 17b71c6e7c..89ced887ac 100644 ---- a/gdb/Makefile.in -+++ b/gdb/Makefile.in -@@ -1134,6 +1134,7 @@ SFILES = \ - common/gdb_tilde_expand.c \ - common/gdb_vecs.c \ - common/new-op.c \ -+ common/pathstuff.c \ - common/print-utils.c \ - common/ptid.c \ - common/rsp-low.c \ -@@ -1424,6 +1425,7 @@ HFILES_NO_SRCDIR = \ - common/gdb_wait.h \ - common/common-inferior.h \ - common/host-defs.h \ -+ common/pathstuff.h \ - common/print-utils.h \ - common/ptid.h \ - common/queue.h \ -@@ -1549,6 +1551,7 @@ COMMON_OBS = $(DEPFILES) $(CONFIG_OBS) $(YYOBJ) \ - gdb_vecs.o \ - mi/mi-common.o \ - new-op.o \ -+ pathstuff.o \ - print-utils.o \ - ptid.o \ - rsp-low.o \ -diff --git a/gdb/NEWS b/gdb/NEWS -index 6c9a2ecefd..3815670461 100644 ---- a/gdb/NEWS -+++ b/gdb/NEWS -@@ -120,9 +120,9 @@ - gdb.new_thread are emitted. See the manual for further - description of these. - -- ** A new command, "rbreak" has been added to the Python API. This -- command allows the setting of a large number of breakpoints via a -- regex pattern in Python. See the manual for further details. -+ ** A new function, "gdb.rbreak" has been added to the Python API. -+ This function allows the setting of a large number of breakpoints -+ via a regex pattern in Python. See the manual for further details. - - ** Python breakpoints can now accept explicit locations. See the - manual for a further description of this feature. -diff --git a/gdb/PROBLEMS b/gdb/PROBLEMS -index 5a260b71df..5111f1803f 100644 ---- a/gdb/PROBLEMS -+++ b/gdb/PROBLEMS -@@ -1,5 +1,5 @@ - -- Known problems in GDB 8.1 -+ Known problems in GDB 8.1.0.DATE-git - - See also: http://www.gnu.org/software/gdb/bugs/ - -diff --git a/gdb/auto-load.c b/gdb/auto-load.c -index 30c8b89e8e..e9163c6f73 100644 ---- a/gdb/auto-load.c -+++ b/gdb/auto-load.c -@@ -40,6 +40,7 @@ - #include "extension.h" - #include "gdb/section-scripts.h" - #include -+#include "common/pathstuff.h" - - /* The section to look in for auto-loaded scripts (in file formats that - support sections). -diff --git a/gdb/common/common-defs.h b/gdb/common/common-defs.h -index acbc32ca69..881a4eaaff 100644 ---- a/gdb/common/common-defs.h -+++ b/gdb/common/common-defs.h -@@ -91,4 +91,7 @@ - /* Pull in gdb::unique_xmalloc_ptr. */ - #include "common/gdb_unique_ptr.h" - -+/* String containing the current directory (what getwd would return). */ -+extern char *current_directory; -+ - #endif /* COMMON_DEFS_H */ -diff --git a/gdb/common/common-utils.c b/gdb/common/common-utils.c -index ae2dd9db2b..80de826ba7 100644 ---- a/gdb/common/common-utils.c -+++ b/gdb/common/common-utils.c -@@ -20,6 +20,7 @@ - #include "common-defs.h" - #include "common-utils.h" - #include "host-defs.h" -+#include - #include - - /* The xmalloc() (libiberty.h) family of memory management routines. -@@ -408,3 +409,34 @@ stringify_argv (const std::vector &args) - - return ret; - } -+ -+/* See common/common-utils.h. */ -+ -+bool -+is_regular_file (const char *name, int *errno_ptr) -+{ -+ struct stat st; -+ const int status = stat (name, &st); -+ -+ /* Stat should never fail except when the file does not exist. -+ If stat fails, analyze the source of error and return true -+ unless the file does not exist, to avoid returning false results -+ on obscure systems where stat does not work as expected. */ -+ -+ if (status != 0) -+ { -+ if (errno != ENOENT) -+ return true; -+ *errno_ptr = ENOENT; -+ return false; -+ } -+ -+ if (S_ISREG (st.st_mode)) -+ return true; -+ -+ if (S_ISDIR (st.st_mode)) -+ *errno_ptr = EISDIR; -+ else -+ *errno_ptr = EINVAL; -+ return false; -+} -diff --git a/gdb/common/common-utils.h b/gdb/common/common-utils.h -index 2320318de7..5408c35469 100644 ---- a/gdb/common/common-utils.h -+++ b/gdb/common/common-utils.h -@@ -146,4 +146,9 @@ in_inclusive_range (T value, T low, T high) - return value >= low && value <= high; - } - -+/* Return true if the file NAME exists and is a regular file. -+ If the result is false then *ERRNO_PTR is set to a useful value assuming -+ we're expecting a regular file. */ -+extern bool is_regular_file (const char *name, int *errno_ptr); -+ - #endif -diff --git a/gdb/common/gdb_tilde_expand.c b/gdb/common/gdb_tilde_expand.c -index b4f371464d..fcb97961ac 100644 ---- a/gdb/common/gdb_tilde_expand.c -+++ b/gdb/common/gdb_tilde_expand.c -@@ -80,3 +80,16 @@ gdb_tilde_expand (const char *dir) - - return expanded_dir; - } -+ -+/* See common/gdb_tilde_expand.h. */ -+ -+gdb::unique_xmalloc_ptr -+gdb_tilde_expand_up (const char *dir) -+{ -+ gdb_glob glob (dir, GLOB_TILDE_CHECK, NULL); -+ -+ gdb_assert (glob.pathc () > 0); -+ /* "glob" may return more than one match to the path provided by the -+ user, but we are only interested in the first match. */ -+ return gdb::unique_xmalloc_ptr (xstrdup (glob.pathv ()[0])); -+} -diff --git a/gdb/common/gdb_tilde_expand.h b/gdb/common/gdb_tilde_expand.h -index d0dfb37857..22860d3969 100644 ---- a/gdb/common/gdb_tilde_expand.h -+++ b/gdb/common/gdb_tilde_expand.h -@@ -24,4 +24,8 @@ - the full path. */ - extern std::string gdb_tilde_expand (const char *dir); - -+/* Same as GDB_TILDE_EXPAND, but return the full path as a -+ gdb::unique_xmalloc_ptr. */ -+extern gdb::unique_xmalloc_ptr gdb_tilde_expand_up (const char *dir); -+ - #endif /* ! GDB_TILDE_EXPAND_H */ -diff --git a/gdb/common/pathstuff.c b/gdb/common/pathstuff.c -new file mode 100644 -index 0000000000..8c4093fc38 ---- /dev/null -+++ b/gdb/common/pathstuff.c -@@ -0,0 +1,160 @@ -+/* Path manipulation routines for GDB and gdbserver. -+ -+ Copyright (C) 1986-2018 Free Software Foundation, Inc. -+ -+ This file is part of GDB. -+ -+ 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 3 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, see . */ -+ -+#include "common-defs.h" -+#include "pathstuff.h" -+#include "host-defs.h" -+#include "filenames.h" -+#include "gdb_tilde_expand.h" -+ -+#ifdef USE_WIN32API -+#include -+#endif -+ -+/* See common/pathstuff.h. */ -+ -+gdb::unique_xmalloc_ptr -+gdb_realpath (const char *filename) -+{ -+/* On most hosts, we rely on canonicalize_file_name to compute -+ the FILENAME's realpath. -+ -+ But the situation is slightly more complex on Windows, due to some -+ versions of GCC which were reported to generate paths where -+ backlashes (the directory separator) were doubled. For instance: -+ c:\\some\\double\\slashes\\dir -+ ... instead of ... -+ c:\some\double\slashes\dir -+ Those double-slashes were getting in the way when comparing paths, -+ for instance when trying to insert a breakpoint as follow: -+ (gdb) b c:/some/double/slashes/dir/foo.c:4 -+ No source file named c:/some/double/slashes/dir/foo.c:4. -+ (gdb) b c:\some\double\slashes\dir\foo.c:4 -+ No source file named c:\some\double\slashes\dir\foo.c:4. -+ To prevent this from happening, we need this function to always -+ strip those extra backslashes. While canonicalize_file_name does -+ perform this simplification, it only works when the path is valid. -+ Since the simplification would be useful even if the path is not -+ valid (one can always set a breakpoint on a file, even if the file -+ does not exist locally), we rely instead on GetFullPathName to -+ perform the canonicalization. */ -+ -+#if defined (_WIN32) -+ { -+ char buf[MAX_PATH]; -+ DWORD len = GetFullPathName (filename, MAX_PATH, buf, NULL); -+ -+ /* The file system is case-insensitive but case-preserving. -+ So it is important we do not lowercase the path. Otherwise, -+ we might not be able to display the original casing in a given -+ path. */ -+ if (len > 0 && len < MAX_PATH) -+ return gdb::unique_xmalloc_ptr (xstrdup (buf)); -+ } -+#else -+ { -+ char *rp = canonicalize_file_name (filename); -+ -+ if (rp != NULL) -+ return gdb::unique_xmalloc_ptr (rp); -+ } -+#endif -+ -+ /* This system is a lost cause, just dup the buffer. */ -+ return gdb::unique_xmalloc_ptr (xstrdup (filename)); -+} -+ -+/* See common/pathstuff.h. */ -+ -+gdb::unique_xmalloc_ptr -+gdb_realpath_keepfile (const char *filename) -+{ -+ const char *base_name = lbasename (filename); -+ char *dir_name; -+ char *result; -+ -+ /* Extract the basename of filename, and return immediately -+ a copy of filename if it does not contain any directory prefix. */ -+ if (base_name == filename) -+ return gdb::unique_xmalloc_ptr (xstrdup (filename)); -+ -+ dir_name = (char *) alloca ((size_t) (base_name - filename + 2)); -+ /* Allocate enough space to store the dir_name + plus one extra -+ character sometimes needed under Windows (see below), and -+ then the closing \000 character. */ -+ strncpy (dir_name, filename, base_name - filename); -+ dir_name[base_name - filename] = '\000'; -+ -+#ifdef HAVE_DOS_BASED_FILE_SYSTEM -+ /* We need to be careful when filename is of the form 'd:foo', which -+ is equivalent of d:./foo, which is totally different from d:/foo. */ -+ if (strlen (dir_name) == 2 && isalpha (dir_name[0]) && dir_name[1] == ':') -+ { -+ dir_name[2] = '.'; -+ dir_name[3] = '\000'; -+ } -+#endif -+ -+ /* Canonicalize the directory prefix, and build the resulting -+ filename. If the dirname realpath already contains an ending -+ directory separator, avoid doubling it. */ -+ gdb::unique_xmalloc_ptr path_storage = gdb_realpath (dir_name); -+ const char *real_path = path_storage.get (); -+ if (IS_DIR_SEPARATOR (real_path[strlen (real_path) - 1])) -+ result = concat (real_path, base_name, (char *) NULL); -+ else -+ result = concat (real_path, SLASH_STRING, base_name, (char *) NULL); -+ -+ return gdb::unique_xmalloc_ptr (result); -+} -+ -+/* See common/pathstuff.h. */ -+ -+gdb::unique_xmalloc_ptr -+gdb_abspath (const char *path) -+{ -+ gdb_assert (path != NULL && path[0] != '\0'); -+ -+ if (path[0] == '~') -+ return gdb_tilde_expand_up (path); -+ -+ if (IS_ABSOLUTE_PATH (path)) -+ return gdb::unique_xmalloc_ptr (xstrdup (path)); -+ -+ /* Beware the // my son, the Emacs barfs, the botch that catch... */ -+ return gdb::unique_xmalloc_ptr -+ (concat (current_directory, -+ IS_DIR_SEPARATOR (current_directory[strlen (current_directory) - 1]) -+ ? "" : SLASH_STRING, -+ path, (char *) NULL)); -+} -+ -+/* See common/pathstuff.h. */ -+ -+bool -+contains_dir_separator (const char *path) -+{ -+ for (; *path != '\0'; path++) -+ { -+ if (IS_DIR_SEPARATOR (*path)) -+ return true; -+ } -+ -+ return false; -+} -diff --git a/gdb/common/pathstuff.h b/gdb/common/pathstuff.h -new file mode 100644 -index 0000000000..9f261273e6 ---- /dev/null -+++ b/gdb/common/pathstuff.h -@@ -0,0 +1,53 @@ -+/* Path manipulation routines for GDB and gdbserver. -+ -+ Copyright (C) 1986-2018 Free Software Foundation, Inc. -+ -+ This file is part of GDB. -+ -+ 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 3 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, see . */ -+ -+#ifndef PATHSTUFF_H -+#define PATHSTUFF_H -+ -+/* Path utilities. */ -+ -+/* Return the real path of FILENAME, expanding all the symbolic links. -+ -+ Contrary to "gdb_abspath", this function does not use -+ CURRENT_DIRECTORY for path expansion. Instead, it relies on the -+ current working directory (CWD) of GDB or gdbserver. */ -+ -+extern gdb::unique_xmalloc_ptr gdb_realpath (const char *filename); -+ -+/* Return a copy of FILENAME, with its directory prefix canonicalized -+ by gdb_realpath. */ -+ -+extern gdb::unique_xmalloc_ptr -+ gdb_realpath_keepfile (const char *filename); -+ -+/* Return PATH in absolute form, performing tilde-expansion if necessary. -+ PATH cannot be NULL or the empty string. -+ This does not resolve symlinks however, use gdb_realpath for that. -+ -+ Contrary to "gdb_realpath", this function uses CURRENT_DIRECTORY -+ for the path expansion. This may lead to scenarios the current -+ working directory (CWD) is different than CURRENT_DIRECTORY. */ -+ -+extern gdb::unique_xmalloc_ptr gdb_abspath (const char *path); -+ -+/* Return whether PATH contains a directory separator character. */ -+ -+extern bool contains_dir_separator (const char *path); -+ -+#endif /* PATHSTUFF_H */ -diff --git a/gdb/compile/compile.c b/gdb/compile/compile.c -index 82e63d895f..3a1bb987b2 100644 ---- a/gdb/compile/compile.c -+++ b/gdb/compile/compile.c -@@ -41,6 +41,7 @@ - #include "valprint.h" - #include "common/gdb_optional.h" - #include "common/gdb_unlinker.h" -+#include "common/pathstuff.h" - - - -diff --git a/gdb/defs.h b/gdb/defs.h -index 4fb2129b30..61be475858 100644 ---- a/gdb/defs.h -+++ b/gdb/defs.h -@@ -423,10 +423,6 @@ enum info_proc_what - IP_ALL - }; - --/* * String containing the current directory (what getwd would return). */ -- --extern char *current_directory; -- - /* * Default radixes for input and output. Only some values supported. */ - extern unsigned input_radix; - extern unsigned output_radix; -diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c -index 58da0fc1f9..59cbbaa577 100644 ---- a/gdb/dwarf2read.c -+++ b/gdb/dwarf2read.c -@@ -86,6 +86,7 @@ - #include - #include - #include -+#include "common/pathstuff.h" - - typedef struct symbol *symbolp; - DEF_VEC_P (symbolp); -diff --git a/gdb/exec.c b/gdb/exec.c -index c8c32ecc27..a5d071ec51 100644 ---- a/gdb/exec.c -+++ b/gdb/exec.c -@@ -44,6 +44,7 @@ - #include - #include "solist.h" - #include -+#include "common/pathstuff.h" - - void (*deprecated_file_changed_hook) (const char *); - -diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog -index 4029a5eb66..9647fdc44f 100644 ---- a/gdb/gdbserver/ChangeLog -+++ b/gdb/gdbserver/ChangeLog -@@ -1,3 +1,26 @@ -+2018-02-28 Sergio Durigan Junior -+ -+ * server.c (captured_main): Change order of error message printed -+ when the current working directory cannot be found. -+ -+2018-02-28 Sergio Durigan Junior -+ -+ * server.c: Include "filenames.h" and "pathstuff.h". -+ (program_name): Delete variable. -+ (program_path): New anonymous class. -+ (get_exec_wrapper): Use "program_path" instead of -+ "program_name". -+ (handle_v_run): Likewise. -+ (captured_main): Likewise. -+ (process_serial_event): Likewise. -+ -+2018-02-28 Sergio Durigan Junior -+ -+ * Makefile.in (SFILES): Add "$(srcdir)/common/pathstuff.c". -+ (OBJS): Add "pathstuff.o". -+ * server.c (current_directory): New global variable. -+ (captured_main): Initialize "current_directory". -+ - 2018-01-17 Eldar Abusalimov - - PR gdb/21559 -diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in -index 3ce086d70f..4ac068c6dd 100644 ---- a/gdb/gdbserver/Makefile.in -+++ b/gdb/gdbserver/Makefile.in -@@ -209,6 +209,7 @@ SFILES = \ - $(srcdir)/common/gdb_tilde_expand.c \ - $(srcdir)/common/gdb_vecs.c \ - $(srcdir)/common/new-op.c \ -+ $(srcdir)/common/pathstuff.c \ - $(srcdir)/common/print-utils.c \ - $(srcdir)/common/ptid.c \ - $(srcdir)/common/rsp-low.c \ -@@ -256,6 +257,7 @@ OBS = \ - mem-break.o \ - new-op.o \ - notif.o \ -+ pathstuff.o \ - print-utils.o \ - ptid.o \ - regcache.o \ -diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c -index 3a4661df7f..cb8cfe005d 100644 ---- a/gdb/gdbserver/server.c -+++ b/gdb/gdbserver/server.c -@@ -39,6 +39,8 @@ - #include "common-inferior.h" - #include "job-control.h" - #include "environ.h" -+#include "filenames.h" -+#include "pathstuff.h" - - #include "common/selftest.h" - -@@ -56,6 +58,10 @@ - break; \ - } - -+/* String containing the current directory (what getwd would return). */ -+ -+char *current_directory; -+ - /* The environment to pass to the inferior when creating it. */ - - static gdb_environ our_environ; -@@ -108,7 +114,35 @@ static int vCont_supported; - space randomization feature before starting an inferior. */ - int disable_randomization = 1; - --static char *program_name = NULL; -+static struct { -+ /* Set the PROGRAM_PATH. Here we adjust the path of the provided -+ binary if needed. */ -+ void set (gdb::unique_xmalloc_ptr &&path) -+ { -+ m_path = std::move (path); -+ -+ /* Make sure we're using the absolute path of the inferior when -+ creating it. */ -+ if (!contains_dir_separator (m_path.get ())) -+ { -+ int reg_file_errno; -+ -+ /* Check if the file is in our CWD. If it is, then we prefix -+ its name with CURRENT_DIRECTORY. Otherwise, we leave the -+ name as-is because we'll try searching for it in $PATH. */ -+ if (is_regular_file (m_path.get (), ®_file_errno)) -+ m_path = gdb_abspath (m_path.get ()); -+ } -+ } -+ -+ /* Return the PROGRAM_PATH. */ -+ char *get () -+ { return m_path.get (); } -+ -+private: -+ /* The program name, adjusted if needed. */ -+ gdb::unique_xmalloc_ptr m_path; -+} program_path; - static std::vector program_args; - static std::string wrapper_argv; - -@@ -265,10 +299,10 @@ get_exec_wrapper () - char * - get_exec_file (int err) - { -- if (err && program_name == NULL) -+ if (err && program_path.get () == NULL) - error (_("No executable file specified.")); - -- return program_name; -+ return program_path.get (); - } - - /* See server.h. */ -@@ -3024,7 +3058,7 @@ handle_v_run (char *own_buf) - { - /* GDB didn't specify a program to run. Use the program from the - last run with the new argument list. */ -- if (program_name == NULL) -+ if (program_path.get () == NULL) - { - write_enn (own_buf); - free_vector_argv (new_argv); -@@ -3032,16 +3066,13 @@ handle_v_run (char *own_buf) - } - } - else -- { -- xfree (program_name); -- program_name = new_program_name; -- } -+ program_path.set (gdb::unique_xmalloc_ptr (new_program_name)); - - /* Free the old argv and install the new one. */ - free_vector_argv (program_args); - program_args = new_argv; - -- create_inferior (program_name, program_args); -+ create_inferior (program_path.get (), program_args); - - if (last_status.kind == TARGET_WAITKIND_STOPPED) - { -@@ -3564,6 +3595,13 @@ captured_main (int argc, char *argv[]) - const char *selftest_filter = NULL; - #endif - -+ current_directory = getcwd (NULL, 0); -+ if (current_directory == NULL) -+ { -+ error (_("Could not find current working directory: %s"), -+ safe_strerror (errno)); -+ } -+ - while (*next_arg != NULL && **next_arg == '-') - { - if (strcmp (*next_arg, "--version") == 0) -@@ -3779,13 +3817,13 @@ captured_main (int argc, char *argv[]) - int i, n; - - n = argc - (next_arg - argv); -- program_name = xstrdup (next_arg[0]); -+ program_path.set (gdb::unique_xmalloc_ptr (xstrdup (next_arg[0]))); - for (i = 1; i < n; i++) - program_args.push_back (xstrdup (next_arg[i])); - program_args.push_back (NULL); - - /* Wait till we are at first instruction in program. */ -- create_inferior (program_name, program_args); -+ create_inferior (program_path.get (), program_args); - - /* We are now (hopefully) stopped at the first instruction of - the target process. This assumes that the target process was -@@ -4302,9 +4340,9 @@ process_serial_event (void) - fprintf (stderr, "GDBserver restarting\n"); - - /* Wait till we are at 1st instruction in prog. */ -- if (program_name != NULL) -+ if (program_path.get () != NULL) - { -- create_inferior (program_name, program_args); -+ create_inferior (program_path.get (), program_args); - - if (last_status.kind == TARGET_WAITKIND_STOPPED) - { -diff --git a/gdb/guile/scm-safe-call.c b/gdb/guile/scm-safe-call.c -index a9ce7b72c1..2cba399e23 100644 ---- a/gdb/guile/scm-safe-call.c -+++ b/gdb/guile/scm-safe-call.c -@@ -23,6 +23,7 @@ - #include "defs.h" - #include "filenames.h" - #include "guile-internal.h" -+#include "common/pathstuff.h" - - /* Struct to marshall args to scscm_safe_call_body. */ - -diff --git a/gdb/inferior.c b/gdb/inferior.c -index 0b8f340b63..70856ae2b1 100644 ---- a/gdb/inferior.c -+++ b/gdb/inferior.c -@@ -224,6 +224,8 @@ exit_inferior_1 (struct inferior *inftoex, int silent) - } - - inf->pending_detach = 0; -+ /* Reset it. */ -+ inf->control = {NO_STOP_QUIETLY}; - } - - void -diff --git a/gdb/linux-thread-db.c b/gdb/linux-thread-db.c -index 299c5ed34a..1a385a6008 100644 ---- a/gdb/linux-thread-db.c -+++ b/gdb/linux-thread-db.c -@@ -46,6 +46,7 @@ - #include - #include "nat/linux-namespaces.h" - #include -+#include "common/pathstuff.h" - - /* GNU/Linux libthread_db support. - -diff --git a/gdb/main.c b/gdb/main.c -index 3c98787edb..189266f90e 100644 ---- a/gdb/main.c -+++ b/gdb/main.c -@@ -46,6 +46,7 @@ - #include "infrun.h" - #include "signals-state-save-restore.h" - #include -+#include "common/pathstuff.h" - - /* The selected interpreter. This will be used as a set command - variable, so it should always be malloc'ed - since -diff --git a/gdb/nto-tdep.c b/gdb/nto-tdep.c -index 03b2d1e96d..ab0db19b48 100644 ---- a/gdb/nto-tdep.c -+++ b/gdb/nto-tdep.c -@@ -31,6 +31,7 @@ - #include "solib-svr4.h" - #include "gdbcore.h" - #include "objfiles.h" -+#include "common/pathstuff.h" - - #define QNX_NOTE_NAME "QNX" - #define QNX_INFO_SECT_NAME "QNX_info" -diff --git a/gdb/objfiles.c b/gdb/objfiles.c -index 7adaef119d..923e4babed 100644 ---- a/gdb/objfiles.c -+++ b/gdb/objfiles.c -@@ -52,6 +52,7 @@ - #include "solist.h" - #include "gdb_bfd.h" - #include "btrace.h" -+#include "common/pathstuff.h" - - #include - -diff --git a/gdb/source.c b/gdb/source.c -index 1f136f4cfb..0fa678c915 100644 ---- a/gdb/source.c -+++ b/gdb/source.c -@@ -29,7 +29,6 @@ - #include "filestuff.h" - - #include --#include - #include - #include "gdbcore.h" - #include "gdb_regex.h" -@@ -44,6 +43,7 @@ - #include "readline/readline.h" - #include "common/enum-flags.h" - #include -+#include "common/pathstuff.h" - - #define OPEN_MODE (O_RDONLY | O_BINARY) - #define FDOPEN_MODE FOPEN_RB -@@ -669,39 +669,6 @@ info_source_command (const char *ignore, int from_tty) - } - - --/* Return True if the file NAME exists and is a regular file. -- If the result is false then *ERRNO_PTR is set to a useful value assuming -- we're expecting a regular file. */ -- --static int --is_regular_file (const char *name, int *errno_ptr) --{ -- struct stat st; -- const int status = stat (name, &st); -- -- /* Stat should never fail except when the file does not exist. -- If stat fails, analyze the source of error and return True -- unless the file does not exist, to avoid returning false results -- on obscure systems where stat does not work as expected. */ -- -- if (status != 0) -- { -- if (errno != ENOENT) -- return 1; -- *errno_ptr = ENOENT; -- return 0; -- } -- -- if (S_ISREG (st.st_mode)) -- return 1; -- -- if (S_ISDIR (st.st_mode)) -- *errno_ptr = EISDIR; -- else -- *errno_ptr = EINVAL; -- return 0; --} -- - /* Open a file named STRING, searching path PATH (dir names sep by some char) - using mode MODE in the calls to open. You cannot use this function to - create files (O_CREAT). -diff --git a/gdb/symtab.c b/gdb/symtab.c -index 81f4fc9ec5..db92720872 100644 ---- a/gdb/symtab.c -+++ b/gdb/symtab.c -@@ -66,6 +66,7 @@ - #include "filename-seen-cache.h" - #include "arch-utils.h" - #include -+#include "common/pathstuff.h" - - /* Forward declarations for local functions. */ - -diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog -index ede93ae212..ead613ad1f 100644 ---- a/gdb/testsuite/ChangeLog -+++ b/gdb/testsuite/ChangeLog -@@ -1,3 +1,8 @@ -+2018-02-28 Sergio Durigan Junior -+ -+ * gdb.server/abspath.exp: New file. -+ * lib/gdb.exp (with_cwd): New procedure. -+ - 2018-01-22 Pedro Alves - Sergio Durigan Junior - -diff --git a/gdb/testsuite/gdb.server/abspath.exp b/gdb/testsuite/gdb.server/abspath.exp -new file mode 100644 -index 0000000000..726ff58da2 ---- /dev/null -+++ b/gdb/testsuite/gdb.server/abspath.exp -@@ -0,0 +1,58 @@ -+# This testcase is part of GDB, the GNU debugger. -+ -+# Copyright 2018 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 3 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, see . -+ -+# Test that gdbserver performs path expansion/adjustment when we -+# provide just a filename (without any path specifications) to it. -+ -+load_lib gdbserver-support.exp -+ -+standard_testfile normal.c -+ -+if { [skip_gdbserver_tests] } { -+ return 0 -+} -+ -+# Because we're relying on being able to change our CWD before -+# executing gdbserver, we just run if we're not testing with a remote -+# target. -+if { [is_remote target] } { -+ return 0 -+} -+ -+if { [prepare_for_testing "failed to prepare" $testfile $srcfile debug] } { -+ return -1 -+} -+ -+# Make sure we're disconnected, in case we're testing with an -+# extended-remote board, therefore already connected. -+gdb_test "disconnect" ".*" -+ -+set target_exec [gdbserver_download_current_prog] -+ -+# Switch to where $target_exec lives, and execute gdbserver from -+# there. -+with_cwd "[file dirname $target_exec]" { -+ set target_execname [file tail $target_exec] -+ set res [gdbserver_start "" $target_execname] -+ -+ set gdbserver_protocol [lindex $res 0] -+ set gdbserver_gdbport [lindex $res 1] -+ gdb_target_cmd $gdbserver_protocol $gdbserver_gdbport -+ -+ gdb_breakpoint main -+ gdb_test "continue" "Breakpoint $decimal.* main.*" "continue to main" -+} -diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp -index 7702d9c238..3c490e673b 100644 ---- a/gdb/testsuite/lib/gdb.exp -+++ b/gdb/testsuite/lib/gdb.exp -@@ -2054,6 +2054,30 @@ proc save_vars { vars body } { - } - } - -+# Run tests in BODY with the current working directory (CWD) set to -+# DIR. When BODY is finished, restore the original CWD. Return the -+# result of BODY. -+# -+# This procedure doesn't check if DIR is a valid directory, so you -+# have to make sure of that. -+ -+proc with_cwd { dir body } { -+ set saved_dir [pwd] -+ verbose -log "Switching to directory $dir (saved CWD: $saved_dir)." -+ cd $dir -+ -+ set code [catch {uplevel 1 $body} result] -+ -+ verbose -log "Switching back to $saved_dir." -+ cd $saved_dir -+ -+ if {$code == 1} { -+ global errorInfo errorCode -+ return -code $code -errorinfo $errorInfo -errorcode $errorCode $result -+ } else { -+ return -code $code $result -+ } -+} - - # Run tests in BODY with GDB prompt and variable $gdb_prompt set to - # PROMPT. When BODY is finished, restore GDB prompt and variable -diff --git a/gdb/utils.c b/gdb/utils.c -index c531748fe4..577f9df4ec 100644 ---- a/gdb/utils.c -+++ b/gdb/utils.c -@@ -70,6 +70,7 @@ - #include "common/gdb_optional.h" - #include "cp-support.h" - #include -+#include "common/pathstuff.h" - - #if !HAVE_DECL_MALLOC - extern PTR malloc (); /* ARI: PTR */ -@@ -2838,57 +2839,6 @@ string_to_core_addr (const char *my_string) - return addr; - } - --gdb::unique_xmalloc_ptr --gdb_realpath (const char *filename) --{ --/* On most hosts, we rely on canonicalize_file_name to compute -- the FILENAME's realpath. -- -- But the situation is slightly more complex on Windows, due to some -- versions of GCC which were reported to generate paths where -- backlashes (the directory separator) were doubled. For instance: -- c:\\some\\double\\slashes\\dir -- ... instead of ... -- c:\some\double\slashes\dir -- Those double-slashes were getting in the way when comparing paths, -- for instance when trying to insert a breakpoint as follow: -- (gdb) b c:/some/double/slashes/dir/foo.c:4 -- No source file named c:/some/double/slashes/dir/foo.c:4. -- (gdb) b c:\some\double\slashes\dir\foo.c:4 -- No source file named c:\some\double\slashes\dir\foo.c:4. -- To prevent this from happening, we need this function to always -- strip those extra backslashes. While canonicalize_file_name does -- perform this simplification, it only works when the path is valid. -- Since the simplification would be useful even if the path is not -- valid (one can always set a breakpoint on a file, even if the file -- does not exist locally), we rely instead on GetFullPathName to -- perform the canonicalization. */ -- --#if defined (_WIN32) -- { -- char buf[MAX_PATH]; -- DWORD len = GetFullPathName (filename, MAX_PATH, buf, NULL); -- -- /* The file system is case-insensitive but case-preserving. -- So it is important we do not lowercase the path. Otherwise, -- we might not be able to display the original casing in a given -- path. */ -- if (len > 0 && len < MAX_PATH) -- return gdb::unique_xmalloc_ptr (xstrdup (buf)); -- } --#else -- { -- char *rp = canonicalize_file_name (filename); -- -- if (rp != NULL) -- return gdb::unique_xmalloc_ptr (rp); -- } --#endif -- -- /* This system is a lost cause, just dup the buffer. */ -- return gdb::unique_xmalloc_ptr (xstrdup (filename)); --} -- - #if GDB_SELF_TEST - - static void -@@ -2925,74 +2875,6 @@ gdb_realpath_tests () - - #endif /* GDB_SELF_TEST */ - --/* Return a copy of FILENAME, with its directory prefix canonicalized -- by gdb_realpath. */ -- --gdb::unique_xmalloc_ptr --gdb_realpath_keepfile (const char *filename) --{ -- const char *base_name = lbasename (filename); -- char *dir_name; -- char *result; -- -- /* Extract the basename of filename, and return immediately -- a copy of filename if it does not contain any directory prefix. */ -- if (base_name == filename) -- return gdb::unique_xmalloc_ptr (xstrdup (filename)); -- -- dir_name = (char *) alloca ((size_t) (base_name - filename + 2)); -- /* Allocate enough space to store the dir_name + plus one extra -- character sometimes needed under Windows (see below), and -- then the closing \000 character. */ -- strncpy (dir_name, filename, base_name - filename); -- dir_name[base_name - filename] = '\000'; -- --#ifdef HAVE_DOS_BASED_FILE_SYSTEM -- /* We need to be careful when filename is of the form 'd:foo', which -- is equivalent of d:./foo, which is totally different from d:/foo. */ -- if (strlen (dir_name) == 2 && isalpha (dir_name[0]) && dir_name[1] == ':') -- { -- dir_name[2] = '.'; -- dir_name[3] = '\000'; -- } --#endif -- -- /* Canonicalize the directory prefix, and build the resulting -- filename. If the dirname realpath already contains an ending -- directory separator, avoid doubling it. */ -- gdb::unique_xmalloc_ptr path_storage = gdb_realpath (dir_name); -- const char *real_path = path_storage.get (); -- if (IS_DIR_SEPARATOR (real_path[strlen (real_path) - 1])) -- result = concat (real_path, base_name, (char *) NULL); -- else -- result = concat (real_path, SLASH_STRING, base_name, (char *) NULL); -- -- return gdb::unique_xmalloc_ptr (result); --} -- --/* Return PATH in absolute form, performing tilde-expansion if necessary. -- PATH cannot be NULL or the empty string. -- This does not resolve symlinks however, use gdb_realpath for that. */ -- --gdb::unique_xmalloc_ptr --gdb_abspath (const char *path) --{ -- gdb_assert (path != NULL && path[0] != '\0'); -- -- if (path[0] == '~') -- return gdb::unique_xmalloc_ptr (tilde_expand (path)); -- -- if (IS_ABSOLUTE_PATH (path)) -- return gdb::unique_xmalloc_ptr (xstrdup (path)); -- -- /* Beware the // my son, the Emacs barfs, the botch that catch... */ -- return gdb::unique_xmalloc_ptr -- (concat (current_directory, -- IS_DIR_SEPARATOR (current_directory[strlen (current_directory) - 1]) -- ? "" : SLASH_STRING, -- path, (char *) NULL)); --} -- - ULONGEST - align_up (ULONGEST v, int n) - { -diff --git a/gdb/utils.h b/gdb/utils.h -index b234762929..8ca3eb0369 100644 ---- a/gdb/utils.h -+++ b/gdb/utils.h -@@ -295,12 +295,6 @@ extern struct cleanup *make_bpstat_clear_actions_cleanup (void); - - /* Path utilities. */ - --extern gdb::unique_xmalloc_ptr gdb_realpath (const char *); -- --extern gdb::unique_xmalloc_ptr gdb_realpath_keepfile (const char *); -- --extern gdb::unique_xmalloc_ptr gdb_abspath (const char *); -- - extern int gdb_filename_fnmatch (const char *pattern, const char *string, - int flags); - -diff --git a/gdb/version.in b/gdb/version.in -index b8eb026350..d674dc328a 100644 ---- a/gdb/version.in -+++ b/gdb/version.in -@@ -1 +1 @@ --8.1 -+8.1.0.DATE-git -diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog -index 076cd149fb..bb26b93813 100644 ---- a/opcodes/ChangeLog -+++ b/opcodes/ChangeLog -@@ -1,3 +1,14 @@ -+2018-04-04 H.J. Lu -+ -+ Backport from master branch -+ 2018-04-04 H.J. Lu -+ -+ PR gdb/23028 -+ PR binutils/23025 -+ * i386-dis.c (get_valid_dis386): Don't set vex.prefix nor vex.w -+ to 0. -+ (print_insn): Clear vex instead of vex.evex. -+ - 2018-01-03 Alan Modra - - Update year range in copyright notice of all files. -diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c -index 86a2cdd022..a9874dec96 100644 ---- a/opcodes/i386-dis.c -+++ b/opcodes/i386-dis.c -@@ -12815,7 +12815,6 @@ get_valid_dis386 (const struct dis386 *dp, disassemble_info *info) - switch ((*codep & 0x3)) - { - case 0: -- vex.prefix = 0; - break; - case 1: - vex.prefix = DATA_PREFIX_OPCODE; -@@ -12880,7 +12879,6 @@ get_valid_dis386 (const struct dis386 *dp, disassemble_info *info) - switch ((*codep & 0x3)) - { - case 0: -- vex.prefix = 0; - break; - case 1: - vex.prefix = DATA_PREFIX_OPCODE; -@@ -12918,12 +12916,10 @@ get_valid_dis386 (const struct dis386 *dp, disassemble_info *info) - /* For the 2-byte VEX prefix in 32-bit mode, the highest bit in - VEX.vvvv is 1. */ - vex.register_specifier = (~(*codep >> 3)) & 0xf; -- vex.w = 0; - vex.length = (*codep & 0x4) ? 256 : 128; - switch ((*codep & 0x3)) - { - case 0: -- vex.prefix = 0; - break; - case 1: - vex.prefix = DATA_PREFIX_OPCODE; -@@ -12998,7 +12994,6 @@ get_valid_dis386 (const struct dis386 *dp, disassemble_info *info) - switch ((*codep & 0x3)) - { - case 0: -- vex.prefix = 0; - break; - case 1: - vex.prefix = DATA_PREFIX_OPCODE; -@@ -13356,7 +13351,7 @@ print_insn (bfd_vma pc, disassemble_info *info) - need_vex = 0; - need_vex_reg = 0; - vex_w_done = 0; -- vex.evex = 0; -+ memset (&vex, 0, sizeof (vex)); - - if (dp->name == NULL && dp->op[0].bytemode == FLOATCODE) - { diff -Nru gdb-8.1/debian/patches/gcore-bash.patch gdb-8.2/debian/patches/gcore-bash.patch --- gdb-8.1/debian/patches/gcore-bash.patch 2018-04-09 09:31:42.000000000 +0000 +++ gdb-8.2/debian/patches/gcore-bash.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ -Description: Use bash instead of /bin/sh for gcore - gcore uses arrays which require bash, this change is upstream but the same - commit made other changes to fix quoting issues which are not included here - -Origin: upstream, https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=e1e6f073a9f5d7c3183cb8096fb24a42c28ba36b -Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gdb/+bug/1762320 ---- a/gdb/gcore.in -+++ b/gdb/gcore.in -@@ -1,4 +1,4 @@ --#!/bin/sh -+#!/bin/bash - - # Copyright (C) 2003-2018 Free Software Foundation, Inc. - diff -Nru gdb-8.1/debian/patches/python-config.patch gdb-8.2/debian/patches/python-config.patch --- gdb-8.1/debian/patches/python-config.patch 2018-01-06 14:04:39.000000000 +0000 +++ gdb-8.2/debian/patches/python-config.patch 2018-09-04 14:44:22.000000000 +0000 @@ -11,7 +11,7 @@ =================================================================== --- a/gdb/configure +++ b/gdb/configure -@@ -681,6 +681,7 @@ HAVE_PYTHON_TRUE +@@ -713,6 +713,7 @@ HAVE_PYTHON_TRUE PYTHON_LIBS PYTHON_CPPFLAGS PYTHON_CFLAGS @@ -19,7 +19,101 @@ python_prog_path LTLIBMPFR LIBMPFR -@@ -10304,29 +10305,122 @@ fi +@@ -823,6 +824,7 @@ infodir + docdir + oldincludedir + includedir ++runstatedir + localstatedir + sharedstatedir + sysconfdir +@@ -956,6 +958,7 @@ datadir='${datarootdir}' + sysconfdir='${prefix}/etc' + sharedstatedir='${prefix}/com' + localstatedir='${prefix}/var' ++runstatedir='${localstatedir}/run' + includedir='${prefix}/include' + oldincludedir='/usr/include' + docdir='${datarootdir}/doc/${PACKAGE}' +@@ -1208,6 +1211,15 @@ do + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + ++ -runstatedir | --runstatedir | --runstatedi | --runstated \ ++ | --runstate | --runstat | --runsta | --runst | --runs \ ++ | --run | --ru | --r) ++ ac_prev=runstatedir ;; ++ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ ++ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ ++ | --run=* | --ru=* | --r=*) ++ runstatedir=$ac_optarg ;; ++ + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ +@@ -1345,7 +1357,7 @@ fi + for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ +- libdir localedir mandir ++ libdir localedir mandir runstatedir + do + eval ac_val=\$$ac_var + # Remove trailing slashes. +@@ -1498,6 +1510,7 @@ Fine tuning of the installation director + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] ++ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] +@@ -4635,7 +4648,7 @@ else + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) ++#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +@@ -4681,7 +4694,7 @@ else + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) ++#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +@@ -4705,7 +4718,7 @@ rm -f core conftest.err conftest.$ac_obj + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) ++#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +@@ -4750,7 +4763,7 @@ else + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) ++#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +@@ -4774,7 +4787,7 @@ rm -f core conftest.err conftest.$ac_obj + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) ++#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +@@ -10456,29 +10469,122 @@ fi esac esac @@ -30,7 +124,7 @@ +set dummy ${ac_tool_prefix}${python_prog}-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_python_config+set}" = set; then : ++if ${ac_cv_prog_python_config+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$python_config"; then @@ -42,7 +136,7 @@ + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_python_config="${ac_tool_prefix}${python_prog}-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 @@ -70,7 +164,7 @@ +set dummy ${python_prog}-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_ac_ct_python_config+set}" = set; then : ++if ${ac_cv_prog_ac_ct_python_config+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_python_config"; then @@ -82,7 +176,7 @@ + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do -+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_python_config="${python_prog}-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 @@ -125,8 +219,8 @@ if test $? != 0; then have_python_config=failed if test "${with_python}" != auto; then -- as_fn_error "failure running python-config --includes" "$LINENO" 5 -+ as_fn_error "failure running ${python_config} --includes" "$LINENO" 5 +- as_fn_error $? "failure running python-config --includes" "$LINENO" 5 ++ as_fn_error $? "failure running ${python_config} --includes" "$LINENO" 5 fi fi - python_libs=`${python_prog} ${srcdir}/python/python-config.py --ldflags` @@ -134,8 +228,8 @@ if test $? != 0; then have_python_config=failed if test "${with_python}" != auto; then -- as_fn_error "failure running python-config --ldflags" "$LINENO" 5 -+ as_fn_error "failure running ${python_config} --ldflags" "$LINENO" 5 +- as_fn_error $? "failure running python-config --ldflags" "$LINENO" 5 ++ as_fn_error $? "failure running ${python_config} --ldflags" "$LINENO" 5 fi fi - python_prefix=`${python_prog} ${srcdir}/python/python-config.py --exec-prefix` @@ -143,16 +237,25 @@ if test $? != 0; then have_python_config=failed if test "${with_python}" != auto; then -- as_fn_error "failure running python-config --exec-prefix" "$LINENO" 5 -+ as_fn_error "failure running ${python_config} --exec-prefix" "$LINENO" 5 +- as_fn_error $? "failure running python-config --exec-prefix" "$LINENO" 5 ++ as_fn_error $? "failure running ${python_config} --exec-prefix" "$LINENO" 5 fi fi else +@@ -13074,6 +13180,8 @@ main () + if (*(data + i) != *(data3 + i)) + return 14; + close (fd); ++ free (data); ++ free (data3); + return 0; + } + _ACEOF Index: b/gdb/configure.ac =================================================================== --- a/gdb/configure.ac +++ b/gdb/configure.ac -@@ -846,29 +846,31 @@ else +@@ -857,29 +857,31 @@ else esac esac diff -Nru gdb-8.1/debian/patches/series gdb-8.2/debian/patches/series --- gdb-8.1/debian/patches/series 2018-04-09 09:31:42.000000000 +0000 +++ gdb-8.2/debian/patches/series 2018-09-04 14:45:39.000000000 +0000 @@ -1,4 +1,4 @@ -branch-updates.diff +#branch-updates.diff gdb-fortran-main.patch linuxthreads_signal_handling.patch solve_PATH_MAX_issue.patch @@ -14,5 +14,3 @@ # experimental #infinity-notes.diff - -gcore-bash.patch diff -Nru gdb-8.1/debian/rules gdb-8.2/debian/rules --- gdb-8.1/debian/rules 2017-12-22 15:37:03.000000000 +0000 +++ gdb-8.2/debian/rules 2018-07-20 20:18:29.000000000 +0000 @@ -93,6 +93,11 @@ arch_config_args += --with-babeltrace +# Enable Intel Processor Trace (PT) on Linux x86 platform +ifneq (,$(filter $(DEB_HOST_ARCH),amd64 i386)) + arch_config_args += --with-intel-pt +endif + ifdef GDB_TARGET run_tests := no diff -Nru gdb-8.1/djunpack.bat gdb-8.2/djunpack.bat --- gdb-8.1/djunpack.bat 2018-01-31 03:02:16.000000000 +0000 +++ gdb-8.2/djunpack.bat 2018-09-05 07:47:56.000000000 +0000 @@ -17,8 +17,8 @@ Rem The following 2 lines need to be changed with each new GDB release, to Rem be identical to the name of the top-level directory where the GDB Rem distribution unpacks itself. -set GDBVER=$package-8.1 -if "%GDBVER%"=="$package-8.1" GoTo EnvOk +set GDBVER=$package-8.2 +if "%GDBVER%"=="$package-8.2" GoTo EnvOk Rem If their environment space is too small, re-exec with a larger one command.com /e:4096 /c %0 %1 GoTo End diff -Nru gdb-8.1/etc/ChangeLog gdb-8.2/etc/ChangeLog --- gdb-8.1/etc/ChangeLog 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/etc/ChangeLog 2018-09-05 07:27:13.000000000 +0000 @@ -1,3 +1,8 @@ +2018-06-19 Simon Marchi + + * configure.in: Remove AC_PREREQ. + * configure: Re-generate. + 2018-01-03 Alan Modra * add-log.el: Update copyright year range. diff -Nru gdb-8.1/etc/configure gdb-8.2/etc/configure --- gdb-8.1/etc/configure 2017-06-04 15:51:26.000000000 +0000 +++ gdb-8.2/etc/configure 2018-09-05 07:27:13.000000000 +0000 @@ -1,10 +1,10 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.64. +# Generated by GNU Autoconf 2.69. +# +# +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software -# Foundation, Inc. # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. @@ -87,6 +87,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -131,6 +132,31 @@ # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh @@ -164,7 +190,8 @@ else exitcode=1; echo positional parameters were not saved. fi -test x\$exitcode = x0 || exit 1" +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && @@ -208,14 +235,25 @@ if test "x$CONFIG_SHELL" != x; then : - # We cannot yet assume a decent shell, so we have to provide a - # neutralization value for shells without unset; and this also - # works around shells that cannot unset nonexistent variables. - BASH_ENV=/dev/null - ENV=/dev/null - (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 fi if test x$as_have_required = xno; then : @@ -313,10 +351,18 @@ test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take @@ -353,19 +399,19 @@ fi # as_fn_arith -# as_fn_error ERROR [LINENO LOG_FD] -# --------------------------------- +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with status $?, using 1 if that was 0. +# script with STATUS, using 1 if that was 0. as_fn_error () { - as_status=$?; test $as_status -eq 0 && as_status=1 - if test "$3"; then - as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $1" >&2 + $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error @@ -438,6 +484,10 @@ chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). @@ -472,16 +522,16 @@ # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -493,28 +543,8 @@ as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -523,10 +553,11 @@ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" -exec 7<&0 &1 +test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` @@ -665,8 +696,9 @@ fi case $ac_option in - *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *) ac_optarg=yes ;; + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. @@ -711,7 +743,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid feature name: $ac_useropt" + as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -737,7 +769,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid feature name: $ac_useropt" + as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -941,7 +973,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid package name: $ac_useropt" + as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -957,7 +989,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid package name: $ac_useropt" + as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -987,8 +1019,8 @@ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; - -*) as_fn_error "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information." + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" ;; *=*) @@ -996,7 +1028,7 @@ # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error "invalid variable name: \`$ac_envvar'" ;; + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; @@ -1006,7 +1038,7 @@ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac @@ -1014,13 +1046,13 @@ if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error "missing argument to $ac_option" + as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; - fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi @@ -1043,7 +1075,7 @@ [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac - as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' @@ -1057,8 +1089,6 @@ if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1073,9 +1103,9 @@ ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error "working directory cannot be determined" + as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error "pwd does not report name of working directory" + as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. @@ -1114,11 +1144,11 @@ fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error "cannot find sources ($ac_unique_file) in $srcdir" + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg" + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then @@ -1158,7 +1188,7 @@ --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages + -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files @@ -1279,9 +1309,9 @@ if $ac_init_version; then cat <<\_ACEOF configure -generated by GNU Autoconf 2.64 +generated by GNU Autoconf 2.69 -Copyright (C) 2009 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1296,7 +1326,7 @@ running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was -generated by GNU Autoconf 2.64. Invocation command line was +generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -1406,11 +1436,9 @@ { echo - cat <<\_ASBOX -## ---------------- ## + $as_echo "## ---------------- ## ## Cache variables. ## -## ---------------- ## -_ASBOX +## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( @@ -1444,11 +1472,9 @@ ) echo - cat <<\_ASBOX -## ----------------- ## + $as_echo "## ----------------- ## ## Output variables. ## -## ----------------- ## -_ASBOX +## ----------------- ##" echo for ac_var in $ac_subst_vars do @@ -1461,11 +1487,9 @@ echo if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------------- ## + $as_echo "## ------------------- ## ## File substitutions. ## -## ------------------- ## -_ASBOX +## ------------------- ##" echo for ac_var in $ac_subst_files do @@ -1479,11 +1503,9 @@ fi if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## + $as_echo "## ----------- ## ## confdefs.h. ## -## ----------- ## -_ASBOX +## ----------- ##" echo cat confdefs.h echo @@ -1538,7 +1560,12 @@ ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then - ac_site_file1=$CONFIG_SITE + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site @@ -1549,18 +1576,22 @@ for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue - if test -r "$ac_site_file"; then + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in @@ -1629,7 +1660,7 @@ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## @@ -1645,16 +1676,22 @@ ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - for ac_t in install-sh install.sh shtool; do - if test -f "$ac_dir/$ac_t"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/$ac_t -c" - break 2 - fi - done + 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 + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi done if test -z "$ac_aux_dir"; then - as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 + as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, @@ -1683,7 +1720,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then : +if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -1703,7 +1740,7 @@ # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. @@ -1767,7 +1804,7 @@ enableval=$enable_maintainer_mode; case ${enable_maintainer_mode} in yes) MAINT='' ;; no) MAINT='#' ;; - *) as_fn_error "--enable-maintainer-mode must be yes or no" "$LINENO" 5 ;; + *) as_fn_error $? "--enable-maintainer-mode must be yes or no" "$LINENO" 5 ;; esac maintainer_mode=${enableval} else @@ -1846,10 +1883,21 @@ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then - test "x$cache_file" != "x/dev/null" && + if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} @@ -1901,6 +1949,7 @@ ac_libobjs= ac_ltlibobjs= +U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' @@ -1916,7 +1965,7 @@ -: ${CONFIG_STATUS=./config.status} +: "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" @@ -2017,6 +2066,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -2062,19 +2112,19 @@ (unset CDPATH) >/dev/null 2>&1 && unset CDPATH -# as_fn_error ERROR [LINENO LOG_FD] -# --------------------------------- +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with status $?, using 1 if that was 0. +# script with STATUS, using 1 if that was 0. as_fn_error () { - as_status=$?; test $as_status -eq 0 && as_status=1 - if test "$3"; then - as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $1" >&2 + $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error @@ -2212,16 +2262,16 @@ # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -2270,7 +2320,7 @@ test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p @@ -2281,28 +2331,16 @@ as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -2324,7 +2362,7 @@ # values after options handling. ac_log=" This file was extended by $as_me, which was -generated by GNU Autoconf 2.64. Invocation command line was +generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -2359,6 +2397,7 @@ -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit + --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files @@ -2373,12 +2412,13 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ config.status -configured by $0, generated by GNU Autoconf 2.64, - with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" +configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" -Copyright (C) 2009 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -2394,11 +2434,16 @@ while test $# != 0 do case $1 in - --*=*) + --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; *) ac_option=$1 ac_optarg=$2 @@ -2412,12 +2457,15 @@ ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; @@ -2428,7 +2476,7 @@ ac_cs_silent=: ;; # This is an error. - -*) as_fn_error "unrecognized option: \`$1' + -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" @@ -2448,7 +2496,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' @@ -2479,7 +2527,7 @@ case $ac_config_target in "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done @@ -2500,9 +2548,10 @@ # after its creation but before its name has been assigned to `$tmp'. $debug || { - tmp= + tmp= ac_tmp= trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } @@ -2510,12 +2559,13 @@ { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" + test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") -} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. @@ -2532,12 +2582,12 @@ fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\r' + ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi -echo 'BEGIN {' >"$tmp/subs1.awk" && +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF @@ -2546,18 +2596,18 @@ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || - as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || - as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then - as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi @@ -2565,7 +2615,7 @@ rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h @@ -2579,7 +2629,7 @@ t delim :nl h -s/\(.\{148\}\).*/\1/ +s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p @@ -2593,7 +2643,7 @@ t nl :delim h -s/\(.\{148\}\).*/\1/ +s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p @@ -2613,7 +2663,7 @@ rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK -cat >>"\$tmp/subs1.awk" <<_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" @@ -2645,21 +2695,29 @@ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat -fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ - || as_fn_error "could not setup config files machinery" "$LINENO" 5 +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/ -s/:*\${srcdir}:*/:/ -s/:*@srcdir@:*/:/ -s/^\([^=]*=[ ]*\):*/\1/ + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// s/^[^=]*=[ ]*$// }' fi @@ -2677,7 +2735,7 @@ esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac @@ -2696,7 +2754,7 @@ for ac_f do case $ac_f in - -) ac_f="$tmp/stdin";; + -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. @@ -2705,7 +2763,7 @@ [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" @@ -2731,8 +2789,8 @@ esac case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin" \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac @@ -2862,23 +2920,24 @@ s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&5 +which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&2;} +which seems to be undefined. Please make sure it is defined" >&2;} - rm -f "$tmp/stdin" + rm -f "$ac_tmp/stdin" case $ac_file in - -) cat "$tmp/out" && rm -f "$tmp/out";; - *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; @@ -2893,7 +2952,7 @@ ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || - as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. @@ -2914,7 +2973,7 @@ exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit $? + $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 diff -Nru gdb-8.1/etc/configure.in gdb-8.2/etc/configure.in --- gdb-8.1/etc/configure.in 2017-06-04 15:51:26.000000000 +0000 +++ gdb-8.2/etc/configure.in 2018-09-05 07:27:13.000000000 +0000 @@ -1,5 +1,4 @@ dnl Process this file with autoconf to produce a configure script. -AC_PREREQ(2.5) AC_INIT(Makefile.in) AC_PROG_INSTALL diff -Nru gdb-8.1/gdb/aarch32-linux-nat.c gdb-8.2/gdb/aarch32-linux-nat.c --- gdb-8.1/gdb/aarch32-linux-nat.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/aarch32-linux-nat.c 2018-09-05 07:27:13.000000000 +0000 @@ -34,20 +34,20 @@ int regno; for (regno = ARM_A1_REGNUM; regno < ARM_PC_REGNUM; regno++) - regcache_raw_supply (regcache, regno, ®s[regno]); + regcache->raw_supply (regno, ®s[regno]); if (arm_apcs_32) { /* Clear reserved bits bit 20 to bit 23. */ regs[ARM_CPSR_GREGNUM] &= 0xff0fffff; - regcache_raw_supply (regcache, ARM_PS_REGNUM, ®s[ARM_CPSR_GREGNUM]); + regcache->raw_supply (ARM_PS_REGNUM, ®s[ARM_CPSR_GREGNUM]); } else - regcache_raw_supply (regcache, ARM_PS_REGNUM, ®s[ARM_PC_REGNUM]); + regcache->raw_supply (ARM_PS_REGNUM, ®s[ARM_PC_REGNUM]); regs[ARM_PC_REGNUM] = gdbarch_addr_bits_remove (regcache->arch (), regs[ARM_PC_REGNUM]); - regcache_raw_supply (regcache, ARM_PC_REGNUM, ®s[ARM_PC_REGNUM]); + regcache->raw_supply (ARM_PC_REGNUM, ®s[ARM_PC_REGNUM]); } /* Collect GP registers from REGCACHE to buffer REGS. ARM_APCS_32 is @@ -61,17 +61,16 @@ for (regno = ARM_A1_REGNUM; regno <= ARM_PC_REGNUM; regno++) { - if (REG_VALID == regcache_register_status (regcache, regno)) - regcache_raw_collect (regcache, regno, ®s[regno]); + if (REG_VALID == regcache->get_register_status (regno)) + regcache->raw_collect (regno, ®s[regno]); } if (arm_apcs_32 - && REG_VALID == regcache_register_status (regcache, ARM_PS_REGNUM)) + && REG_VALID == regcache->get_register_status (ARM_PS_REGNUM)) { uint32_t cpsr = regs[ARM_CPSR_GREGNUM]; - regcache_raw_collect (regcache, ARM_PS_REGNUM, - ®s[ARM_CPSR_GREGNUM]); + regcache->raw_collect (ARM_PS_REGNUM, ®s[ARM_CPSR_GREGNUM]); /* Keep reserved bits bit 20 to bit 23. */ regs[ARM_CPSR_GREGNUM] = ((regs[ARM_CPSR_GREGNUM] & 0xff0fffff) | (cpsr & 0x00f00000)); @@ -88,11 +87,9 @@ int regno; for (regno = 0; regno < vfp_register_count; regno++) - regcache_raw_supply (regcache, regno + ARM_D0_REGNUM, - regs + regno * 8); + regcache->raw_supply (regno + ARM_D0_REGNUM, regs + regno * 8); - regcache_raw_supply (regcache, ARM_FPSCR_REGNUM, - regs + 32 * 8); + regcache->raw_supply (ARM_FPSCR_REGNUM, regs + 32 * 8); } /* Collect VFP registers from REGCACHE to buffer REGS. @@ -105,7 +102,7 @@ int regno; for (regno = 0; regno < vfp_register_count; regno++) - regcache_raw_collect (regcache, regno + ARM_D0_REGNUM, regs + regno * 8); + regcache->raw_collect (regno + ARM_D0_REGNUM, regs + regno * 8); - regcache_raw_collect (regcache, ARM_FPSCR_REGNUM, regs + 32 * 8); + regcache->raw_collect (ARM_FPSCR_REGNUM, regs + 32 * 8); } diff -Nru gdb-8.1/gdb/aarch64-fbsd-nat.c gdb-8.2/gdb/aarch64-fbsd-nat.c --- gdb-8.1/gdb/aarch64-fbsd-nat.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/aarch64-fbsd-nat.c 2018-09-05 07:27:13.000000000 +0000 @@ -29,6 +29,14 @@ #include "aarch64-fbsd-tdep.h" #include "inf-ptrace.h" +struct aarch64_fbsd_nat_target final : public fbsd_nat_target +{ + void fetch_registers (struct regcache *, int) override; + void store_registers (struct regcache *, int) override; +}; + +static aarch64_fbsd_nat_target the_aarch64_fbsd_nat_target; + /* Determine if PT_GETREGS fetches REGNUM. */ static bool @@ -48,11 +56,11 @@ /* Fetch register REGNUM from the inferior. If REGNUM is -1, do this for all registers. */ -static void -aarch64_fbsd_fetch_inferior_registers (struct target_ops *ops, - struct regcache *regcache, int regnum) +void +aarch64_fbsd_nat_target::fetch_registers (struct regcache *regcache, + int regnum) { - pid_t pid = get_ptrace_pid (regcache_get_ptid (regcache)); + pid_t pid = get_ptrace_pid (regcache->ptid ()); struct gdbarch *gdbarch = regcache->arch (); if (regnum == -1 || getregs_supplies (gdbarch, regnum)) @@ -81,11 +89,11 @@ /* Store register REGNUM back into the inferior. If REGNUM is -1, do this for all registers. */ -static void -aarch64_fbsd_store_inferior_registers (struct target_ops *ops, - struct regcache *regcache, int regnum) +void +aarch64_fbsd_nat_target::store_registers (struct regcache *regcache, + int regnum) { - pid_t pid = get_ptrace_pid (regcache_get_ptid (regcache)); + pid_t pid = get_ptrace_pid (regcache->ptid ()); struct gdbarch *gdbarch = regcache->arch (); if (regnum == -1 || getregs_supplies (gdbarch, regnum)) @@ -120,10 +128,5 @@ void _initialize_aarch64_fbsd_nat (void) { - struct target_ops *t; - - t = inf_ptrace_target (); - t->to_fetch_registers = aarch64_fbsd_fetch_inferior_registers; - t->to_store_registers = aarch64_fbsd_store_inferior_registers; - fbsd_nat_add_target (t); + add_inf_child_target (&the_aarch64_fbsd_nat_target); } diff -Nru gdb-8.1/gdb/aarch64-fbsd-tdep.c gdb-8.2/gdb/aarch64-fbsd-tdep.c --- gdb-8.1/gdb/aarch64-fbsd-tdep.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/aarch64-fbsd-tdep.c 2018-09-05 07:44:28.000000000 +0000 @@ -169,10 +169,10 @@ void *cb_data, const struct regcache *regcache) { - cb (".reg", AARCH64_FBSD_SIZEOF_GREGSET, &aarch64_fbsd_gregset, - NULL, cb_data); - cb (".reg2", AARCH64_FBSD_SIZEOF_FPREGSET, &aarch64_fbsd_fpregset, - NULL, cb_data); + cb (".reg", AARCH64_FBSD_SIZEOF_GREGSET, AARCH64_FBSD_SIZEOF_GREGSET, + &aarch64_fbsd_gregset, NULL, cb_data); + cb (".reg2", AARCH64_FBSD_SIZEOF_FPREGSET, AARCH64_FBSD_SIZEOF_FPREGSET, + &aarch64_fbsd_fpregset, NULL, cb_data); } /* Implement the 'init_osabi' method of struct gdb_osabi_handler. */ diff -Nru gdb-8.1/gdb/aarch64-linux-nat.c gdb-8.2/gdb/aarch64-linux-nat.c --- gdb-8.1/gdb/aarch64-linux-nat.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/aarch64-linux-nat.c 2018-09-05 07:44:28.000000000 +0000 @@ -32,6 +32,7 @@ #include "aarch32-linux-nat.h" #include "nat/aarch64-linux.h" #include "nat/aarch64-linux-hw-point.h" +#include "nat/aarch64-sve-linux-ptrace.h" #include "elf/external.h" #include "elf/common.h" @@ -49,6 +50,54 @@ #define TRAP_HWBKPT 0x0004 #endif +class aarch64_linux_nat_target final : public linux_nat_target +{ +public: + /* Add our register access methods. */ + void fetch_registers (struct regcache *, int) override; + void store_registers (struct regcache *, int) override; + + const struct target_desc *read_description () override; + + /* Add our hardware breakpoint and watchpoint implementation. */ + int can_use_hw_breakpoint (enum bptype, int, int) override; + int insert_hw_breakpoint (struct gdbarch *, struct bp_target_info *) override; + int remove_hw_breakpoint (struct gdbarch *, struct bp_target_info *) override; + int region_ok_for_hw_watchpoint (CORE_ADDR, int) override; + int insert_watchpoint (CORE_ADDR, int, enum target_hw_bp_type, + struct expression *) override; + int remove_watchpoint (CORE_ADDR, int, enum target_hw_bp_type, + struct expression *) override; + bool stopped_by_watchpoint () override; + bool stopped_data_address (CORE_ADDR *) override; + bool watchpoint_addr_within_range (CORE_ADDR, CORE_ADDR, int) override; + + int can_do_single_step () override; + + /* Override the GNU/Linux inferior startup hook. */ + void post_startup_inferior (ptid_t) override; + + /* Override the GNU/Linux post attach hook. */ + void post_attach (int pid) override; + + /* These three defer to common nat/ code. */ + void low_new_thread (struct lwp_info *lp) override + { aarch64_linux_new_thread (lp); } + void low_delete_thread (struct arch_lwp_info *lp) override + { aarch64_linux_delete_thread (lp); } + void low_prepare_to_resume (struct lwp_info *lp) override + { aarch64_linux_prepare_to_resume (lp); } + + void low_new_fork (struct lwp_info *parent, pid_t child_pid) override; + void low_forget_process (pid_t pid) override; + + /* Add our siginfo layout converter. */ + bool low_siginfo_fixup (siginfo_t *ptrace, gdb_byte *inf, int direction) + override; +}; + +static aarch64_linux_nat_target the_aarch64_linux_nat_target; + /* Per-process data. We don't bind this to a per-inferior registry because of targets like x86 GNU/Linux that need to keep track of processes that aren't bound to any inferior (e.g., fork children, @@ -117,8 +166,8 @@ /* Called whenever GDB is no longer debugging process PID. It deletes data structures that keep track of debug register state. */ -static void -aarch64_forget_process (pid_t pid) +void +aarch64_linux_nat_target::low_forget_process (pid_t pid) { struct aarch64_process_info *proc, **proc_link; @@ -163,7 +212,7 @@ and arm. */ gdb_static_assert (sizeof (regs) >= 18 * 4); - tid = ptid_get_lwp (regcache_get_ptid (regcache)); + tid = regcache->ptid ().lwp (); iovec.iov_base = ®s; if (gdbarch_bfd_arch_info (gdbarch)->bits_per_word == 32) @@ -182,7 +231,7 @@ int regno; for (regno = AARCH64_X0_REGNUM; regno <= AARCH64_CPSR_REGNUM; regno++) - regcache_raw_supply (regcache, regno, ®s[regno - AARCH64_X0_REGNUM]); + regcache->raw_supply (regno, ®s[regno - AARCH64_X0_REGNUM]); } } @@ -200,7 +249,7 @@ /* Make sure REGS can hold all registers contents on both aarch64 and arm. */ gdb_static_assert (sizeof (regs) >= 18 * 4); - tid = ptid_get_lwp (regcache_get_ptid (regcache)); + tid = regcache->ptid ().lwp (); iovec.iov_base = ®s; if (gdbarch_bfd_arch_info (gdbarch)->bits_per_word == 32) @@ -219,9 +268,8 @@ int regno; for (regno = AARCH64_X0_REGNUM; regno <= AARCH64_CPSR_REGNUM; regno++) - if (REG_VALID == regcache_register_status (regcache, regno)) - regcache_raw_collect (regcache, regno, - ®s[regno - AARCH64_X0_REGNUM]); + if (REG_VALID == regcache->get_register_status (regno)) + regcache->raw_collect (regno, ®s[regno - AARCH64_X0_REGNUM]); } ret = ptrace (PTRACE_SETREGSET, tid, NT_PRSTATUS, &iovec); @@ -244,7 +292,7 @@ and arm. */ gdb_static_assert (sizeof regs >= VFP_REGS_SIZE); - tid = ptid_get_lwp (regcache_get_ptid (regcache)); + tid = regcache->ptid ().lwp (); iovec.iov_base = ®s; @@ -269,11 +317,10 @@ perror_with_name (_("Unable to fetch vFP/SIMD registers.")); for (regno = AARCH64_V0_REGNUM; regno <= AARCH64_V31_REGNUM; regno++) - regcache_raw_supply (regcache, regno, - ®s.vregs[regno - AARCH64_V0_REGNUM]); + regcache->raw_supply (regno, ®s.vregs[regno - AARCH64_V0_REGNUM]); - regcache_raw_supply (regcache, AARCH64_FPSR_REGNUM, ®s.fpsr); - regcache_raw_supply (regcache, AARCH64_FPCR_REGNUM, ®s.fpcr); + regcache->raw_supply (AARCH64_FPSR_REGNUM, ®s.fpsr); + regcache->raw_supply (AARCH64_FPCR_REGNUM, ®s.fpcr); } } @@ -291,7 +338,7 @@ /* Make sure REGS can hold all VFP registers contents on both aarch64 and arm. */ gdb_static_assert (sizeof regs >= VFP_REGS_SIZE); - tid = ptid_get_lwp (regcache_get_ptid (regcache)); + tid = regcache->ptid ().lwp (); iovec.iov_base = ®s; @@ -316,16 +363,14 @@ perror_with_name (_("Unable to fetch FP/SIMD registers.")); for (regno = AARCH64_V0_REGNUM; regno <= AARCH64_V31_REGNUM; regno++) - if (REG_VALID == regcache_register_status (regcache, regno)) - regcache_raw_collect (regcache, regno, - (char *) ®s.vregs[regno - AARCH64_V0_REGNUM]); - - if (REG_VALID == regcache_register_status (regcache, AARCH64_FPSR_REGNUM)) - regcache_raw_collect (regcache, AARCH64_FPSR_REGNUM, - (char *) ®s.fpsr); - if (REG_VALID == regcache_register_status (regcache, AARCH64_FPCR_REGNUM)) - regcache_raw_collect (regcache, AARCH64_FPCR_REGNUM, - (char *) ®s.fpcr); + if (REG_VALID == regcache->get_register_status (regno)) + regcache->raw_collect + (regno, (char *) ®s.vregs[regno - AARCH64_V0_REGNUM]); + + if (REG_VALID == regcache->get_register_status (AARCH64_FPSR_REGNUM)) + regcache->raw_collect (AARCH64_FPSR_REGNUM, (char *) ®s.fpsr); + if (REG_VALID == regcache->get_register_status (AARCH64_FPCR_REGNUM)) + regcache->raw_collect (AARCH64_FPCR_REGNUM, (char *) ®s.fpcr); } if (gdbarch_bfd_arch_info (gdbarch)->bits_per_word == 32) @@ -342,38 +387,86 @@ } } -/* Implement the "to_fetch_register" target_ops method. */ +/* Fill GDB's register array with the sve register values + from the current thread. */ static void -aarch64_linux_fetch_inferior_registers (struct target_ops *ops, - struct regcache *regcache, - int regno) +fetch_sveregs_from_thread (struct regcache *regcache) +{ + std::unique_ptr base + = aarch64_sve_get_sveregs (regcache->ptid ().lwp ()); + aarch64_sve_regs_copy_to_reg_buf (regcache, base.get ()); +} + +/* Store to the current thread the valid sve register + values in the GDB's register array. */ + +static void +store_sveregs_to_thread (struct regcache *regcache) +{ + int ret; + struct iovec iovec; + int tid = regcache->ptid ().lwp (); + + /* Obtain a dump of SVE registers from ptrace. */ + std::unique_ptr base = aarch64_sve_get_sveregs (tid); + + /* Overwrite with regcache state. */ + aarch64_sve_regs_copy_from_reg_buf (regcache, base.get ()); + + /* Write back to the kernel. */ + iovec.iov_base = base.get (); + iovec.iov_len = ((struct user_sve_header *) base.get ())->size; + ret = ptrace (PTRACE_SETREGSET, tid, NT_ARM_SVE, &iovec); + + if (ret < 0) + perror_with_name (_("Unable to store sve registers")); +} + +/* Implement the "fetch_registers" target_ops method. */ + +void +aarch64_linux_nat_target::fetch_registers (struct regcache *regcache, + int regno) { + struct gdbarch_tdep *tdep = gdbarch_tdep (regcache->arch ()); + if (regno == -1) { fetch_gregs_from_thread (regcache); - fetch_fpregs_from_thread (regcache); + if (tdep->has_sve ()) + fetch_sveregs_from_thread (regcache); + else + fetch_fpregs_from_thread (regcache); } else if (regno < AARCH64_V0_REGNUM) fetch_gregs_from_thread (regcache); + else if (tdep->has_sve ()) + fetch_sveregs_from_thread (regcache); else fetch_fpregs_from_thread (regcache); } -/* Implement the "to_store_register" target_ops method. */ +/* Implement the "store_registers" target_ops method. */ -static void -aarch64_linux_store_inferior_registers (struct target_ops *ops, - struct regcache *regcache, - int regno) +void +aarch64_linux_nat_target::store_registers (struct regcache *regcache, + int regno) { + struct gdbarch_tdep *tdep = gdbarch_tdep (regcache->arch ()); + if (regno == -1) { store_gregs_to_thread (regcache); - store_fpregs_to_thread (regcache); + if (tdep->has_sve ()) + store_sveregs_to_thread (regcache); + else + store_fpregs_to_thread (regcache); } else if (regno < AARCH64_V0_REGNUM) store_gregs_to_thread (regcache); + else if (tdep->has_sve ()) + store_sveregs_to_thread (regcache); else store_fpregs_to_thread (regcache); } @@ -428,8 +521,9 @@ /* linux_nat_new_fork hook. */ -static void -aarch64_linux_new_fork (struct lwp_info *parent, pid_t child_pid) +void +aarch64_linux_nat_target::low_new_fork (struct lwp_info *parent, + pid_t child_pid) { pid_t parent_pid; struct aarch64_debug_reg_state *parent_state; @@ -446,7 +540,7 @@ new process so that all breakpoints and watchpoints can be removed together. */ - parent_pid = ptid_get_pid (parent->ptid); + parent_pid = parent->ptid.pid (); parent_state = aarch64_get_debug_reg_state (parent_pid); child_state = aarch64_get_debug_reg_state (child_pid); *child_state = *parent_state; @@ -467,32 +561,43 @@ } -static void (*super_post_startup_inferior) (struct target_ops *self, - ptid_t ptid); +/* Implement the "post_startup_inferior" target_ops method. */ + +void +aarch64_linux_nat_target::post_startup_inferior (ptid_t ptid) +{ + low_forget_process (ptid.pid ()); + aarch64_linux_get_debug_reg_capacity (ptid.pid ()); + linux_nat_target::post_startup_inferior (ptid); +} -/* Implement the "to_post_startup_inferior" target_ops method. */ +/* Implement the "post_attach" target_ops method. */ -static void -aarch64_linux_child_post_startup_inferior (struct target_ops *self, - ptid_t ptid) +void +aarch64_linux_nat_target::post_attach (int pid) { - aarch64_forget_process (ptid_get_pid (ptid)); - aarch64_linux_get_debug_reg_capacity (ptid_get_pid (ptid)); - super_post_startup_inferior (self, ptid); + low_forget_process (pid); + /* Set the hardware debug register capacity. If + aarch64_linux_get_debug_reg_capacity is not called + (as it is in aarch64_linux_child_post_startup_inferior) then + software watchpoints will be used instead of hardware + watchpoints when attaching to a target. */ + aarch64_linux_get_debug_reg_capacity (pid); + linux_nat_target::post_attach (pid); } extern struct target_desc *tdesc_arm_with_neon; -/* Implement the "to_read_description" target_ops method. */ +/* Implement the "read_description" target_ops method. */ -static const struct target_desc * -aarch64_linux_read_description (struct target_ops *ops) +const struct target_desc * +aarch64_linux_nat_target::read_description () { int ret, tid; gdb_byte regbuf[VFP_REGS_SIZE]; struct iovec iovec; - tid = ptid_get_lwp (inferior_ptid); + tid = inferior_ptid.lwp (); iovec.iov_base = regbuf; iovec.iov_len = VFP_REGS_SIZE; @@ -501,7 +606,7 @@ if (ret == 0) return tdesc_arm_with_neon; else - return aarch64_read_description (); + return aarch64_read_description (aarch64_sve_get_vq (tid)); } /* Convert a native/host siginfo object, into/from the siginfo in the @@ -510,8 +615,9 @@ from INF to NATIVE. If DIRECTION is 0, copy from NATIVE to INF. */ -static int -aarch64_linux_siginfo_fixup (siginfo_t *native, gdb_byte *inf, int direction) +bool +aarch64_linux_nat_target::low_siginfo_fixup (siginfo_t *native, gdb_byte *inf, + int direction) { struct gdbarch *gdbarch = get_frame_arch (get_current_frame ()); @@ -526,10 +632,10 @@ aarch64_siginfo_from_compat_siginfo (native, (struct compat_siginfo *) inf); - return 1; + return true; } - return 0; + return false; } /* Returns the number of hardware watchpoints of type TYPE that we can @@ -542,10 +648,9 @@ one). OTHERTYPE is non-zero if other types of watchpoints are currently enabled. */ -static int -aarch64_linux_can_use_hw_breakpoint (struct target_ops *self, - enum bptype type, - int cnt, int othertype) +int +aarch64_linux_nat_target::can_use_hw_breakpoint (enum bptype type, + int cnt, int othertype) { if (type == bp_hardware_watchpoint || type == bp_read_watchpoint || type == bp_access_watchpoint || type == bp_watchpoint) @@ -573,17 +678,16 @@ /* Insert a hardware-assisted breakpoint at BP_TGT->reqstd_address. Return 0 on success, -1 on failure. */ -static int -aarch64_linux_insert_hw_breakpoint (struct target_ops *self, - struct gdbarch *gdbarch, - struct bp_target_info *bp_tgt) +int +aarch64_linux_nat_target::insert_hw_breakpoint (struct gdbarch *gdbarch, + struct bp_target_info *bp_tgt) { int ret; CORE_ADDR addr = bp_tgt->placed_address = bp_tgt->reqstd_address; int len; const enum target_hw_bp_type type = hw_execute; struct aarch64_debug_reg_state *state - = aarch64_get_debug_reg_state (ptid_get_pid (inferior_ptid)); + = aarch64_get_debug_reg_state (inferior_ptid.pid ()); gdbarch_breakpoint_from_pc (gdbarch, &addr, &len); @@ -607,17 +711,16 @@ /* Remove a hardware-assisted breakpoint at BP_TGT->placed_address. Return 0 on success, -1 on failure. */ -static int -aarch64_linux_remove_hw_breakpoint (struct target_ops *self, - struct gdbarch *gdbarch, - struct bp_target_info *bp_tgt) +int +aarch64_linux_nat_target::remove_hw_breakpoint (struct gdbarch *gdbarch, + struct bp_target_info *bp_tgt) { int ret; CORE_ADDR addr = bp_tgt->placed_address; int len = 4; const enum target_hw_bp_type type = hw_execute; struct aarch64_debug_reg_state *state - = aarch64_get_debug_reg_state (ptid_get_pid (inferior_ptid)); + = aarch64_get_debug_reg_state (inferior_ptid.pid ()); gdbarch_breakpoint_from_pc (gdbarch, &addr, &len); @@ -637,21 +740,20 @@ return ret; } -/* Implement the "to_insert_watchpoint" target_ops method. +/* Implement the "insert_watchpoint" target_ops method. Insert a watchpoint to watch a memory region which starts at address ADDR and whose length is LEN bytes. Watch memory accesses of the type TYPE. Return 0 on success, -1 on failure. */ -static int -aarch64_linux_insert_watchpoint (struct target_ops *self, - CORE_ADDR addr, int len, - enum target_hw_bp_type type, - struct expression *cond) +int +aarch64_linux_nat_target::insert_watchpoint (CORE_ADDR addr, int len, + enum target_hw_bp_type type, + struct expression *cond) { int ret; struct aarch64_debug_reg_state *state - = aarch64_get_debug_reg_state (ptid_get_pid (inferior_ptid)); + = aarch64_get_debug_reg_state (inferior_ptid.pid ()); if (show_debug_regs) fprintf_unfiltered (gdb_stdlog, @@ -671,20 +773,19 @@ return ret; } -/* Implement the "to_remove_watchpoint" target_ops method. +/* Implement the "remove_watchpoint" target_ops method. Remove a watchpoint that watched the memory region which starts at address ADDR, whose length is LEN bytes, and for accesses of the type TYPE. Return 0 on success, -1 on failure. */ -static int -aarch64_linux_remove_watchpoint (struct target_ops *self, - CORE_ADDR addr, int len, - enum target_hw_bp_type type, - struct expression *cond) +int +aarch64_linux_nat_target::remove_watchpoint (CORE_ADDR addr, int len, + enum target_hw_bp_type type, + struct expression *cond) { int ret; struct aarch64_debug_reg_state *state - = aarch64_get_debug_reg_state (ptid_get_pid (inferior_ptid)); + = aarch64_get_debug_reg_state (inferior_ptid.pid ()); if (show_debug_regs) fprintf_unfiltered (gdb_stdlog, @@ -704,78 +805,97 @@ return ret; } -/* Implement the "to_region_ok_for_hw_watchpoint" target_ops method. */ +/* Implement the "region_ok_for_hw_watchpoint" target_ops method. */ -static int -aarch64_linux_region_ok_for_hw_watchpoint (struct target_ops *self, - CORE_ADDR addr, int len) +int +aarch64_linux_nat_target::region_ok_for_hw_watchpoint (CORE_ADDR addr, int len) { return aarch64_linux_region_ok_for_watchpoint (addr, len); } -/* Implement the "to_stopped_data_address" target_ops method. */ +/* Implement the "stopped_data_address" target_ops method. */ -static int -aarch64_linux_stopped_data_address (struct target_ops *target, - CORE_ADDR *addr_p) +bool +aarch64_linux_nat_target::stopped_data_address (CORE_ADDR *addr_p) { siginfo_t siginfo; int i, tid; struct aarch64_debug_reg_state *state; if (!linux_nat_get_siginfo (inferior_ptid, &siginfo)) - return 0; + return false; /* This must be a hardware breakpoint. */ if (siginfo.si_signo != SIGTRAP || (siginfo.si_code & 0xffff) != TRAP_HWBKPT) - return 0; + return false; /* Check if the address matches any watched address. */ - state = aarch64_get_debug_reg_state (ptid_get_pid (inferior_ptid)); + state = aarch64_get_debug_reg_state (inferior_ptid.pid ()); for (i = aarch64_num_wp_regs - 1; i >= 0; --i) { + const unsigned int offset + = aarch64_watchpoint_offset (state->dr_ctrl_wp[i]); const unsigned int len = aarch64_watchpoint_length (state->dr_ctrl_wp[i]); const CORE_ADDR addr_trap = (CORE_ADDR) siginfo.si_addr; - const CORE_ADDR addr_watch = state->dr_addr_wp[i]; + const CORE_ADDR addr_watch = state->dr_addr_wp[i] + offset; + const CORE_ADDR addr_watch_aligned = align_down (state->dr_addr_wp[i], 8); + const CORE_ADDR addr_orig = state->dr_addr_orig_wp[i]; if (state->dr_ref_count_wp[i] && DR_CONTROL_ENABLED (state->dr_ctrl_wp[i]) - && addr_trap >= addr_watch + && addr_trap >= addr_watch_aligned && addr_trap < addr_watch + len) { - *addr_p = addr_trap; - return 1; + /* ADDR_TRAP reports the first address of the memory range + accessed by the CPU, regardless of what was the memory + range watched. Thus, a large CPU access that straddles + the ADDR_WATCH..ADDR_WATCH+LEN range may result in an + ADDR_TRAP that is lower than the + ADDR_WATCH..ADDR_WATCH+LEN range. E.g.: + + addr: | 4 | 5 | 6 | 7 | 8 | + |---- range watched ----| + |----------- range accessed ------------| + + In this case, ADDR_TRAP will be 4. + + To match a watchpoint known to GDB core, we must never + report *ADDR_P outside of any ADDR_WATCH..ADDR_WATCH+LEN + range. ADDR_WATCH <= ADDR_TRAP < ADDR_ORIG is a false + positive on kernels older than 4.10. See PR + external/20207. */ + *addr_p = addr_orig; + return true; } } - return 0; + return false; } -/* Implement the "to_stopped_by_watchpoint" target_ops method. */ +/* Implement the "stopped_by_watchpoint" target_ops method. */ -static int -aarch64_linux_stopped_by_watchpoint (struct target_ops *ops) +bool +aarch64_linux_nat_target::stopped_by_watchpoint () { CORE_ADDR addr; - return aarch64_linux_stopped_data_address (ops, &addr); + return stopped_data_address (&addr); } -/* Implement the "to_watchpoint_addr_within_range" target_ops method. */ +/* Implement the "watchpoint_addr_within_range" target_ops method. */ -static int -aarch64_linux_watchpoint_addr_within_range (struct target_ops *target, - CORE_ADDR addr, - CORE_ADDR start, int length) +bool +aarch64_linux_nat_target::watchpoint_addr_within_range (CORE_ADDR addr, + CORE_ADDR start, int length) { return start <= addr && start + length - 1 >= addr; } -/* Implement the "to_can_do_single_step" target_ops method. */ +/* Implement the "can_do_single_step" target_ops method. */ -static int -aarch64_linux_can_do_single_step (struct target_ops *target) +int +aarch64_linux_nat_target::can_do_single_step () { return 1; } @@ -804,44 +924,9 @@ void _initialize_aarch64_linux_nat (void) { - struct target_ops *t; - - /* Fill in the generic GNU/Linux methods. */ - t = linux_target (); - add_show_debug_regs_command (); - /* Add our register access methods. */ - t->to_fetch_registers = aarch64_linux_fetch_inferior_registers; - t->to_store_registers = aarch64_linux_store_inferior_registers; - - t->to_read_description = aarch64_linux_read_description; - - t->to_can_use_hw_breakpoint = aarch64_linux_can_use_hw_breakpoint; - t->to_insert_hw_breakpoint = aarch64_linux_insert_hw_breakpoint; - t->to_remove_hw_breakpoint = aarch64_linux_remove_hw_breakpoint; - t->to_region_ok_for_hw_watchpoint = - aarch64_linux_region_ok_for_hw_watchpoint; - t->to_insert_watchpoint = aarch64_linux_insert_watchpoint; - t->to_remove_watchpoint = aarch64_linux_remove_watchpoint; - t->to_stopped_by_watchpoint = aarch64_linux_stopped_by_watchpoint; - t->to_stopped_data_address = aarch64_linux_stopped_data_address; - t->to_watchpoint_addr_within_range = - aarch64_linux_watchpoint_addr_within_range; - t->to_can_do_single_step = aarch64_linux_can_do_single_step; - - /* Override the GNU/Linux inferior startup hook. */ - super_post_startup_inferior = t->to_post_startup_inferior; - t->to_post_startup_inferior = aarch64_linux_child_post_startup_inferior; - /* Register the target. */ - linux_nat_add_target (t); - linux_nat_set_new_thread (t, aarch64_linux_new_thread); - linux_nat_set_delete_thread (t, aarch64_linux_delete_thread); - linux_nat_set_new_fork (t, aarch64_linux_new_fork); - linux_nat_set_forget_process (t, aarch64_forget_process); - linux_nat_set_prepare_to_resume (t, aarch64_linux_prepare_to_resume); - - /* Add our siginfo layout converter. */ - linux_nat_set_siginfo_fixup (t, aarch64_linux_siginfo_fixup); + linux_target = &the_aarch64_linux_nat_target; + add_inf_child_target (&the_aarch64_linux_nat_target); } diff -Nru gdb-8.1/gdb/aarch64-linux-tdep.c gdb-8.2/gdb/aarch64-linux-tdep.c --- gdb-8.1/gdb/aarch64-linux-tdep.c 2018-01-31 02:57:26.000000000 +0000 +++ gdb-8.2/gdb/aarch64-linux-tdep.c 2018-09-05 07:44:28.000000000 +0000 @@ -219,6 +219,179 @@ regcache_supply_regset, regcache_collect_regset }; +/* The fields in an SVE header at the start of a SVE regset. */ + +#define SVE_HEADER_SIZE_LENGTH 4 +#define SVE_HEADER_MAX_SIZE_LENGTH 4 +#define SVE_HEADER_VL_LENGTH 2 +#define SVE_HEADER_MAX_VL_LENGTH 2 +#define SVE_HEADER_FLAGS_LENGTH 2 +#define SVE_HEADER_RESERVED_LENGTH 2 + +#define SVE_HEADER_SIZE_OFFSET 0 +#define SVE_HEADER_MAX_SIZE_OFFSET \ + (SVE_HEADER_SIZE_OFFSET + SVE_HEADER_SIZE_LENGTH) +#define SVE_HEADER_VL_OFFSET \ + (SVE_HEADER_MAX_SIZE_OFFSET + SVE_HEADER_MAX_SIZE_LENGTH) +#define SVE_HEADER_MAX_VL_OFFSET \ + (SVE_HEADER_VL_OFFSET + SVE_HEADER_VL_LENGTH) +#define SVE_HEADER_FLAGS_OFFSET \ + (SVE_HEADER_MAX_VL_OFFSET + SVE_HEADER_MAX_VL_LENGTH) +#define SVE_HEADER_RESERVED_OFFSET \ + (SVE_HEADER_FLAGS_OFFSET + SVE_HEADER_FLAGS_LENGTH) +#define SVE_HEADER_SIZE \ + (SVE_HEADER_RESERVED_OFFSET + SVE_HEADER_RESERVED_LENGTH) + +#define SVE_HEADER_FLAG_SVE 1 + +/* Get VQ value from SVE section in the core dump. */ + +static uint64_t +aarch64_linux_core_read_vq (struct gdbarch *gdbarch, bfd *abfd) +{ + gdb_byte header[SVE_HEADER_SIZE]; + enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); + asection *sve_section = bfd_get_section_by_name (abfd, ".reg-aarch-sve"); + + if (sve_section == nullptr) + { + /* No SVE state. */ + return 0; + } + + size_t size = bfd_section_size (abfd, sve_section); + + /* Check extended state size. */ + if (size < SVE_HEADER_SIZE) + { + warning (_("'.reg-aarch-sve' section in core file too small.")); + return 0; + } + + if (!bfd_get_section_contents (abfd, sve_section, header, 0, SVE_HEADER_SIZE)) + { + warning (_("Couldn't read sve header from " + "'.reg-aarch-sve' section in core file.")); + return 0; + } + + uint64_t vl = extract_unsigned_integer (header + SVE_HEADER_VL_OFFSET, + SVE_HEADER_VL_LENGTH, byte_order); + uint64_t vq = sve_vq_from_vl (vl); + + if (vq > AARCH64_MAX_SVE_VQ) + { + warning (_("SVE Vector length in core file not supported by this version" + " of GDB. (VQ=%ld)"), vq); + return 0; + } + else if (vq == 0) + { + warning (_("SVE Vector length in core file is invalid. (VQ=%ld"), vq); + return 0; + } + + return vq; +} + +/* Supply register REGNUM from BUF to REGCACHE, using the register map + in REGSET. If REGNUM is -1, do this for all registers in REGSET. + If BUF is NULL, set the registers to "unavailable" status. */ + +static void +aarch64_linux_supply_sve_regset (const struct regset *regset, + struct regcache *regcache, + int regnum, const void *buf, size_t size) +{ + gdb_byte *header = (gdb_byte *) buf; + struct gdbarch *gdbarch = regcache->arch (); + enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); + + if (buf == nullptr) + return regcache->supply_regset (regset, regnum, nullptr, size); + gdb_assert (size > SVE_HEADER_SIZE); + + /* BUF contains an SVE header followed by a register dump of either the + passed in SVE regset or a NEON fpregset. */ + + /* Extract required fields from the header. */ + uint64_t vl = extract_unsigned_integer (header + SVE_HEADER_VL_OFFSET, + SVE_HEADER_VL_LENGTH, byte_order); + uint16_t flags = extract_unsigned_integer (header + SVE_HEADER_FLAGS_OFFSET, + SVE_HEADER_FLAGS_LENGTH, + byte_order); + + if (regnum == -1 || regnum == AARCH64_SVE_VG_REGNUM) + { + gdb_byte vg_target[8]; + store_integer ((gdb_byte *)&vg_target, sizeof (uint64_t), byte_order, + sve_vg_from_vl (vl)); + regcache->raw_supply (AARCH64_SVE_VG_REGNUM, &vg_target); + } + + if (flags & SVE_HEADER_FLAG_SVE) + { + /* Register dump is a SVE structure. */ + regcache->supply_regset (regset, regnum, + (gdb_byte *) buf + SVE_HEADER_SIZE, + size - SVE_HEADER_SIZE); + } + else + { + /* Register dump is a fpsimd structure. First clear the SVE + registers. */ + for (int i = 0; i < AARCH64_SVE_Z_REGS_NUM; i++) + regcache->raw_supply_zeroed (AARCH64_SVE_Z0_REGNUM + i); + for (int i = 0; i < AARCH64_SVE_P_REGS_NUM; i++) + regcache->raw_supply_zeroed (AARCH64_SVE_P0_REGNUM + i); + regcache->raw_supply_zeroed (AARCH64_SVE_FFR_REGNUM); + + /* Then supply the fpsimd registers. */ + regcache->supply_regset (&aarch64_linux_fpregset, regnum, + (gdb_byte *) buf + SVE_HEADER_SIZE, + size - SVE_HEADER_SIZE); + } +} + +/* Collect register REGNUM from REGCACHE to BUF, using the register + map in REGSET. If REGNUM is -1, do this for all registers in + REGSET. */ + +static void +aarch64_linux_collect_sve_regset (const struct regset *regset, + const struct regcache *regcache, + int regnum, void *buf, size_t size) +{ + gdb_byte *header = (gdb_byte *) buf; + struct gdbarch *gdbarch = regcache->arch (); + enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); + uint64_t vq = gdbarch_tdep (gdbarch)->vq; + + gdb_assert (buf != NULL); + gdb_assert (size > SVE_HEADER_SIZE); + + /* BUF starts with a SVE header prior to the register dump. */ + + store_unsigned_integer (header + SVE_HEADER_SIZE_OFFSET, + SVE_HEADER_SIZE_LENGTH, byte_order, size); + store_unsigned_integer (header + SVE_HEADER_MAX_SIZE_OFFSET, + SVE_HEADER_MAX_SIZE_LENGTH, byte_order, size); + store_unsigned_integer (header + SVE_HEADER_VL_OFFSET, SVE_HEADER_VL_LENGTH, + byte_order, sve_vl_from_vq (vq)); + store_unsigned_integer (header + SVE_HEADER_MAX_VL_OFFSET, + SVE_HEADER_MAX_VL_LENGTH, byte_order, + sve_vl_from_vq (vq)); + store_unsigned_integer (header + SVE_HEADER_FLAGS_OFFSET, + SVE_HEADER_FLAGS_LENGTH, byte_order, + SVE_HEADER_FLAG_SVE); + store_unsigned_integer (header + SVE_HEADER_RESERVED_OFFSET, + SVE_HEADER_RESERVED_LENGTH, byte_order, 0); + + /* The SVE register dump follows. */ + regcache->collect_regset (regset, regnum, (gdb_byte *) buf + SVE_HEADER_SIZE, + size - SVE_HEADER_SIZE); +} + /* Implement the "regset_from_core_section" gdbarch method. */ static void @@ -227,10 +400,39 @@ void *cb_data, const struct regcache *regcache) { - cb (".reg", AARCH64_LINUX_SIZEOF_GREGSET, &aarch64_linux_gregset, - NULL, cb_data); - cb (".reg2", AARCH64_LINUX_SIZEOF_FPREGSET, &aarch64_linux_fpregset, - NULL, cb_data); + struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); + + cb (".reg", AARCH64_LINUX_SIZEOF_GREGSET, AARCH64_LINUX_SIZEOF_GREGSET, + &aarch64_linux_gregset, NULL, cb_data); + + if (tdep->has_sve ()) + { + /* Create this on the fly in order to handle vector register sizes. */ + const struct regcache_map_entry sve_regmap[] = + { + { 32, AARCH64_SVE_Z0_REGNUM, tdep->vq * 16 }, + { 16, AARCH64_SVE_P0_REGNUM, tdep->vq * 16 / 8 }, + { 1, AARCH64_SVE_FFR_REGNUM, 4 }, + { 1, AARCH64_FPSR_REGNUM, 4 }, + { 1, AARCH64_FPCR_REGNUM, 4 }, + { 0 } + }; + + const struct regset aarch64_linux_sve_regset = + { + sve_regmap, + aarch64_linux_supply_sve_regset, aarch64_linux_collect_sve_regset, + REGSET_VARIABLE_SIZE + }; + + cb (".reg-aarch-sve", + SVE_HEADER_SIZE + regcache_map_entry_size (aarch64_linux_fpregmap), + SVE_HEADER_SIZE + regcache_map_entry_size (sve_regmap), + &aarch64_linux_sve_regset, "SVE registers", cb_data); + } + else + cb (".reg2", AARCH64_LINUX_SIZEOF_FPREGSET, AARCH64_LINUX_SIZEOF_FPREGSET, + &aarch64_linux_fpregset, NULL, cb_data); } /* Implement the "core_read_description" gdbarch method. */ @@ -244,7 +446,7 @@ if (target_auxv_search (target, AT_HWCAP, &aarch64_hwcap) != 1) return NULL; - return aarch64_read_description (); + return aarch64_read_description (aarch64_linux_core_read_vq (gdbarch, abfd)); } /* Implementation of `gdbarch_stap_is_single_operand', as defined in @@ -365,9 +567,9 @@ static LONGEST aarch64_linux_get_syscall_number (struct gdbarch *gdbarch, - ptid_t ptid) + thread_info *thread) { - struct regcache *regs = get_thread_regcache (ptid); + struct regcache *regs = get_thread_regcache (thread); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); /* The content of register x8. */ @@ -376,7 +578,7 @@ LONGEST ret; /* Getting the system call number from the register x8. */ - regcache_cooked_read (regs, AARCH64_DWARF_X0 + 8, buf); + regs->cooked_read (AARCH64_DWARF_X0 + 8, buf); ret = extract_signed_integer (buf, X_REGISTER_SIZE, byte_order); @@ -1062,6 +1264,11 @@ /* Syscall record. */ tdep->aarch64_syscall_record = aarch64_linux_syscall_record; + /* The top byte of a user space address known as the "tag", + is ignored by the kernel and can be regarded as additional + data associated with the address. */ + set_gdbarch_significant_addr_bit (gdbarch, 56); + /* Initialize the aarch64_linux_record_tdep. */ /* These values are the size of the type that will be used in a system call. They are obtained from Linux Kernel source. */ diff -Nru gdb-8.1/gdb/aarch64-tdep.c gdb-8.2/gdb/aarch64-tdep.c --- gdb-8.1/gdb/aarch64-tdep.c 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/gdb/aarch64-tdep.c 2018-09-05 07:44:28.000000000 +0000 @@ -69,6 +69,10 @@ #define AARCH64_S0_REGNUM (AARCH64_D0_REGNUM + 32) #define AARCH64_H0_REGNUM (AARCH64_S0_REGNUM + 32) #define AARCH64_B0_REGNUM (AARCH64_H0_REGNUM + 32) +#define AARCH64_SVE_V0_REGNUM (AARCH64_B0_REGNUM + 32) + +/* All possible aarch64 target descriptors. */ +struct target_desc *tdesc_aarch64_list[AARCH64_MAX_SVE_VQ + 1]; /* The standard register names, and all the valid aliases for them. */ static const struct @@ -153,6 +157,27 @@ "fpcr" }; +/* The SVE 'Z' and 'P' registers. */ +static const char *const aarch64_sve_register_names[] = +{ + /* These registers must appear in consecutive RAW register number + order and they must begin with AARCH64_SVE_Z0_REGNUM! */ + "z0", "z1", "z2", "z3", + "z4", "z5", "z6", "z7", + "z8", "z9", "z10", "z11", + "z12", "z13", "z14", "z15", + "z16", "z17", "z18", "z19", + "z20", "z21", "z22", "z23", + "z24", "z25", "z26", "z27", + "z28", "z29", "z30", "z31", + "fpsr", "fpcr", + "p0", "p1", "p2", "p3", + "p4", "p5", "p6", "p7", + "p8", "p9", "p10", "p11", + "p12", "p13", "p14", "p15", + "ffr", "vg" +}; + /* AArch64 prologue cache structure. */ struct aarch64_prologue_cache { @@ -210,6 +235,7 @@ { public: ULONGEST read (CORE_ADDR memaddr, int len, enum bfd_endian byte_order) + override { return read_code_unsigned_integer (memaddr, len, byte_order); } @@ -243,7 +269,7 @@ insn = reader.read (start, 4, byte_order_for_code); - if (aarch64_decode_insn (insn, &inst, 1) != 0) + if (aarch64_decode_insn (insn, &inst, 1, NULL) != 0) break; if (inst.opcode->iclass == addsub_imm @@ -505,6 +531,7 @@ {} ULONGEST read (CORE_ADDR memaddr, int len, enum bfd_endian byte_order) + override { SELF_CHECK (len == 4); SELF_CHECK (memaddr % 4 == 0); @@ -1269,7 +1296,7 @@ /* PCS C.1, the argument is allocated to the least significant bits of V register. */ memcpy (reg, buf, len); - regcache_cooked_write (regcache, regnum, reg); + regcache->cooked_write (regnum, reg); if (aarch64_debug) { @@ -1740,6 +1767,30 @@ return tdep->vnb_type; } +/* Return the type for an AdvSISD V register. */ + +static struct type * +aarch64_vnv_type (struct gdbarch *gdbarch) +{ + struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); + + if (tdep->vnv_type == NULL) + { + struct type *t = arch_composite_type (gdbarch, "__gdb_builtin_type_vnv", + TYPE_CODE_UNION); + + append_composite_type_field (t, "d", aarch64_vnd_type (gdbarch)); + append_composite_type_field (t, "s", aarch64_vns_type (gdbarch)); + append_composite_type_field (t, "h", aarch64_vnh_type (gdbarch)); + append_composite_type_field (t, "b", aarch64_vnb_type (gdbarch)); + append_composite_type_field (t, "q", aarch64_vnq_type (gdbarch)); + + tdep->vnv_type = t; + } + + return tdep->vnv_type; +} + /* Implement the "dwarf2_reg_to_regnum" gdbarch method. */ static int @@ -1754,9 +1805,20 @@ if (reg >= AARCH64_DWARF_V0 && reg <= AARCH64_DWARF_V0 + 31) return AARCH64_V0_REGNUM + reg - AARCH64_DWARF_V0; + if (reg == AARCH64_DWARF_SVE_VG) + return AARCH64_SVE_VG_REGNUM; + + if (reg == AARCH64_DWARF_SVE_FFR) + return AARCH64_SVE_FFR_REGNUM; + + if (reg >= AARCH64_DWARF_SVE_P0 && reg <= AARCH64_DWARF_SVE_P0 + 15) + return AARCH64_SVE_P0_REGNUM + reg - AARCH64_DWARF_SVE_P0; + + if (reg >= AARCH64_DWARF_SVE_Z0 && reg <= AARCH64_DWARF_SVE_Z0 + 15) + return AARCH64_SVE_Z0_REGNUM + reg - AARCH64_DWARF_SVE_Z0; + return -1; } - /* Implement the "print_insn" gdbarch method. */ @@ -1790,7 +1852,7 @@ bfd_byte buf[V_REGISTER_SIZE]; int len = TYPE_LENGTH (type); - regcache_cooked_read (regs, AARCH64_V0_REGNUM, buf); + regs->cooked_read (AARCH64_V0_REGNUM, buf); memcpy (valbuf, buf, len); } else if (TYPE_CODE (type) == TYPE_CODE_INT @@ -1826,10 +1888,10 @@ struct type *target_type = check_typedef (TYPE_TARGET_TYPE (type)); int len = TYPE_LENGTH (target_type); - regcache_cooked_read (regs, regno, buf); + regs->cooked_read (regno, buf); memcpy (valbuf, buf, len); valbuf += len; - regcache_cooked_read (regs, regno + 1, buf); + regs->cooked_read (regno + 1, buf); memcpy (valbuf, buf, len); valbuf += len; } @@ -1851,7 +1913,7 @@ i + 1, gdbarch_register_name (gdbarch, regno)); } - regcache_cooked_read (regs, regno, buf); + regs->cooked_read (regno, buf); memcpy (valbuf, buf, len); valbuf += len; @@ -1863,7 +1925,7 @@ /* Short vector is returned in V register. */ gdb_byte buf[V_REGISTER_SIZE]; - regcache_cooked_read (regs, AARCH64_V0_REGNUM, buf); + regs->cooked_read (AARCH64_V0_REGNUM, buf); memcpy (valbuf, buf, TYPE_LENGTH (type)); } else @@ -1877,7 +1939,7 @@ while (len > 0) { - regcache_cooked_read (regs, regno++, buf); + regs->cooked_read (regno++, buf); memcpy (valbuf, buf, len > X_REGISTER_SIZE ? X_REGISTER_SIZE : len); len -= X_REGISTER_SIZE; valbuf += X_REGISTER_SIZE; @@ -1929,7 +1991,7 @@ int len = TYPE_LENGTH (type); memcpy (buf, valbuf, len > V_REGISTER_SIZE ? V_REGISTER_SIZE : len); - regcache_cooked_write (regs, AARCH64_V0_REGNUM, buf); + regs->cooked_write (AARCH64_V0_REGNUM, buf); } else if (TYPE_CODE (type) == TYPE_CODE_INT || TYPE_CODE (type) == TYPE_CODE_CHAR @@ -1946,7 +2008,7 @@ LONGEST val = unpack_long (type, valbuf); store_signed_integer (tmpbuf, X_REGISTER_SIZE, byte_order, val); - regcache_cooked_write (regs, AARCH64_X0_REGNUM, tmpbuf); + regs->cooked_write (AARCH64_X0_REGNUM, tmpbuf); } else { @@ -1958,7 +2020,7 @@ while (len > 0) { - regcache_cooked_write (regs, regno++, valbuf); + regs->cooked_write (regno++, valbuf); len -= X_REGISTER_SIZE; valbuf += X_REGISTER_SIZE; } @@ -1984,7 +2046,7 @@ } memcpy (tmpbuf, valbuf, len); - regcache_cooked_write (regs, regno, tmpbuf); + regs->cooked_write (regno, tmpbuf); valbuf += len; } } @@ -1995,7 +2057,7 @@ gdb_byte buf[V_REGISTER_SIZE]; memcpy (buf, valbuf, TYPE_LENGTH (type)); - regcache_cooked_write (regs, AARCH64_V0_REGNUM, buf); + regs->cooked_write (AARCH64_V0_REGNUM, buf); } else { @@ -2010,7 +2072,7 @@ { memcpy (tmpbuf, valbuf, len > X_REGISTER_SIZE ? X_REGISTER_SIZE : len); - regcache_cooked_write (regs, regno++, tmpbuf); + regs->cooked_write (regno++, tmpbuf); len -= X_REGISTER_SIZE; valbuf += X_REGISTER_SIZE; } @@ -2088,6 +2150,8 @@ static const char * aarch64_pseudo_register_name (struct gdbarch *gdbarch, int regnum) { + struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); + static const char *const q_name[] = { "q0", "q1", "q2", "q3", @@ -2165,6 +2229,25 @@ if (regnum >= AARCH64_B0_REGNUM && regnum < AARCH64_B0_REGNUM + 32) return b_name[regnum - AARCH64_B0_REGNUM]; + if (tdep->has_sve ()) + { + static const char *const sve_v_name[] = + { + "v0", "v1", "v2", "v3", + "v4", "v5", "v6", "v7", + "v8", "v9", "v10", "v11", + "v12", "v13", "v14", "v15", + "v16", "v17", "v18", "v19", + "v20", "v21", "v22", "v23", + "v24", "v25", "v26", "v27", + "v28", "v29", "v30", "v31", + }; + + if (regnum >= AARCH64_SVE_V0_REGNUM + && regnum < AARCH64_SVE_V0_REGNUM + AARCH64_V_REGS_NUM) + return sve_v_name[regnum - AARCH64_SVE_V0_REGNUM]; + } + internal_error (__FILE__, __LINE__, _("aarch64_pseudo_register_name: bad register number %d"), regnum); @@ -2175,6 +2258,8 @@ static struct type * aarch64_pseudo_register_type (struct gdbarch *gdbarch, int regnum) { + struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); + regnum -= gdbarch_num_regs (gdbarch); if (regnum >= AARCH64_Q0_REGNUM && regnum < AARCH64_Q0_REGNUM + 32) @@ -2192,6 +2277,10 @@ if (regnum >= AARCH64_B0_REGNUM && regnum < AARCH64_B0_REGNUM + 32) return aarch64_vnb_type (gdbarch); + if (tdep->has_sve () && regnum >= AARCH64_SVE_V0_REGNUM + && regnum < AARCH64_SVE_V0_REGNUM + AARCH64_V_REGS_NUM) + return aarch64_vnv_type (gdbarch); + internal_error (__FILE__, __LINE__, _("aarch64_pseudo_register_type: bad register number %d"), regnum); @@ -2203,6 +2292,8 @@ aarch64_pseudo_register_reggroup_p (struct gdbarch *gdbarch, int regnum, struct reggroup *group) { + struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); + regnum -= gdbarch_num_regs (gdbarch); if (regnum >= AARCH64_Q0_REGNUM && regnum < AARCH64_Q0_REGNUM + 32) @@ -2217,175 +2308,144 @@ return group == all_reggroup || group == vector_reggroup; else if (regnum >= AARCH64_B0_REGNUM && regnum < AARCH64_B0_REGNUM + 32) return group == all_reggroup || group == vector_reggroup; + else if (tdep->has_sve () && regnum >= AARCH64_SVE_V0_REGNUM + && regnum < AARCH64_SVE_V0_REGNUM + AARCH64_V_REGS_NUM) + return group == all_reggroup || group == vector_reggroup; return group == all_reggroup; } +/* Helper for aarch64_pseudo_read_value. */ + +static struct value * +aarch64_pseudo_read_value_1 (struct gdbarch *gdbarch, + readable_regcache *regcache, int regnum_offset, + int regsize, struct value *result_value) +{ + unsigned v_regnum = AARCH64_V0_REGNUM + regnum_offset; + + /* Enough space for a full vector register. */ + gdb_byte reg_buf[register_size (gdbarch, AARCH64_V0_REGNUM)]; + gdb_static_assert (AARCH64_V0_REGNUM == AARCH64_SVE_Z0_REGNUM); + + if (regcache->raw_read (v_regnum, reg_buf) != REG_VALID) + mark_value_bytes_unavailable (result_value, 0, + TYPE_LENGTH (value_type (result_value))); + else + memcpy (value_contents_raw (result_value), reg_buf, regsize); + + return result_value; + } + /* Implement the "pseudo_register_read_value" gdbarch method. */ static struct value * -aarch64_pseudo_read_value (struct gdbarch *gdbarch, - struct regcache *regcache, +aarch64_pseudo_read_value (struct gdbarch *gdbarch, readable_regcache *regcache, int regnum) { - gdb_byte reg_buf[V_REGISTER_SIZE]; - struct value *result_value; - gdb_byte *buf; + struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); + struct value *result_value = allocate_value (register_type (gdbarch, regnum)); - result_value = allocate_value (register_type (gdbarch, regnum)); VALUE_LVAL (result_value) = lval_register; VALUE_REGNUM (result_value) = regnum; - buf = value_contents_raw (result_value); regnum -= gdbarch_num_regs (gdbarch); if (regnum >= AARCH64_Q0_REGNUM && regnum < AARCH64_Q0_REGNUM + 32) - { - enum register_status status; - unsigned v_regnum; - - v_regnum = AARCH64_V0_REGNUM + regnum - AARCH64_Q0_REGNUM; - status = regcache_raw_read (regcache, v_regnum, reg_buf); - if (status != REG_VALID) - mark_value_bytes_unavailable (result_value, 0, - TYPE_LENGTH (value_type (result_value))); - else - memcpy (buf, reg_buf, Q_REGISTER_SIZE); - return result_value; - } + return aarch64_pseudo_read_value_1 (gdbarch, regcache, + regnum - AARCH64_Q0_REGNUM, + Q_REGISTER_SIZE, result_value); if (regnum >= AARCH64_D0_REGNUM && regnum < AARCH64_D0_REGNUM + 32) - { - enum register_status status; - unsigned v_regnum; - - v_regnum = AARCH64_V0_REGNUM + regnum - AARCH64_D0_REGNUM; - status = regcache_raw_read (regcache, v_regnum, reg_buf); - if (status != REG_VALID) - mark_value_bytes_unavailable (result_value, 0, - TYPE_LENGTH (value_type (result_value))); - else - memcpy (buf, reg_buf, D_REGISTER_SIZE); - return result_value; - } + return aarch64_pseudo_read_value_1 (gdbarch, regcache, + regnum - AARCH64_D0_REGNUM, + D_REGISTER_SIZE, result_value); if (regnum >= AARCH64_S0_REGNUM && regnum < AARCH64_S0_REGNUM + 32) - { - enum register_status status; - unsigned v_regnum; - - v_regnum = AARCH64_V0_REGNUM + regnum - AARCH64_S0_REGNUM; - status = regcache_raw_read (regcache, v_regnum, reg_buf); - if (status != REG_VALID) - mark_value_bytes_unavailable (result_value, 0, - TYPE_LENGTH (value_type (result_value))); - else - memcpy (buf, reg_buf, S_REGISTER_SIZE); - return result_value; - } + return aarch64_pseudo_read_value_1 (gdbarch, regcache, + regnum - AARCH64_S0_REGNUM, + S_REGISTER_SIZE, result_value); if (regnum >= AARCH64_H0_REGNUM && regnum < AARCH64_H0_REGNUM + 32) - { - enum register_status status; - unsigned v_regnum; - - v_regnum = AARCH64_V0_REGNUM + regnum - AARCH64_H0_REGNUM; - status = regcache_raw_read (regcache, v_regnum, reg_buf); - if (status != REG_VALID) - mark_value_bytes_unavailable (result_value, 0, - TYPE_LENGTH (value_type (result_value))); - else - memcpy (buf, reg_buf, H_REGISTER_SIZE); - return result_value; - } + return aarch64_pseudo_read_value_1 (gdbarch, regcache, + regnum - AARCH64_H0_REGNUM, + H_REGISTER_SIZE, result_value); if (regnum >= AARCH64_B0_REGNUM && regnum < AARCH64_B0_REGNUM + 32) - { - enum register_status status; - unsigned v_regnum; - - v_regnum = AARCH64_V0_REGNUM + regnum - AARCH64_B0_REGNUM; - status = regcache_raw_read (regcache, v_regnum, reg_buf); - if (status != REG_VALID) - mark_value_bytes_unavailable (result_value, 0, - TYPE_LENGTH (value_type (result_value))); - else - memcpy (buf, reg_buf, B_REGISTER_SIZE); - return result_value; - } + return aarch64_pseudo_read_value_1 (gdbarch, regcache, + regnum - AARCH64_B0_REGNUM, + B_REGISTER_SIZE, result_value); + + if (tdep->has_sve () && regnum >= AARCH64_SVE_V0_REGNUM + && regnum < AARCH64_SVE_V0_REGNUM + 32) + return aarch64_pseudo_read_value_1 (gdbarch, regcache, + regnum - AARCH64_SVE_V0_REGNUM, + V_REGISTER_SIZE, result_value); gdb_assert_not_reached ("regnum out of bound"); } -/* Implement the "pseudo_register_write" gdbarch method. */ +/* Helper for aarch64_pseudo_write. */ static void -aarch64_pseudo_write (struct gdbarch *gdbarch, struct regcache *regcache, - int regnum, const gdb_byte *buf) +aarch64_pseudo_write_1 (struct gdbarch *gdbarch, struct regcache *regcache, + int regnum_offset, int regsize, const gdb_byte *buf) { - gdb_byte reg_buf[V_REGISTER_SIZE]; + unsigned v_regnum = AARCH64_V0_REGNUM + regnum_offset; + + /* Enough space for a full vector register. */ + gdb_byte reg_buf[register_size (gdbarch, AARCH64_V0_REGNUM)]; + gdb_static_assert (AARCH64_V0_REGNUM == AARCH64_SVE_Z0_REGNUM); /* Ensure the register buffer is zero, we want gdb writes of the various 'scalar' pseudo registers to behavior like architectural writes, register width bytes are written the remainder are set to zero. */ - memset (reg_buf, 0, sizeof (reg_buf)); + memset (reg_buf, 0, register_size (gdbarch, AARCH64_V0_REGNUM)); + + memcpy (reg_buf, buf, regsize); + regcache->raw_write (v_regnum, reg_buf); +} +/* Implement the "pseudo_register_write" gdbarch method. */ + +static void +aarch64_pseudo_write (struct gdbarch *gdbarch, struct regcache *regcache, + int regnum, const gdb_byte *buf) +{ + struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); regnum -= gdbarch_num_regs (gdbarch); if (regnum >= AARCH64_Q0_REGNUM && regnum < AARCH64_Q0_REGNUM + 32) - { - /* pseudo Q registers */ - unsigned v_regnum; - - v_regnum = AARCH64_V0_REGNUM + regnum - AARCH64_Q0_REGNUM; - memcpy (reg_buf, buf, Q_REGISTER_SIZE); - regcache_raw_write (regcache, v_regnum, reg_buf); - return; - } + return aarch64_pseudo_write_1 (gdbarch, regcache, + regnum - AARCH64_Q0_REGNUM, Q_REGISTER_SIZE, + buf); if (regnum >= AARCH64_D0_REGNUM && regnum < AARCH64_D0_REGNUM + 32) - { - /* pseudo D registers */ - unsigned v_regnum; - - v_regnum = AARCH64_V0_REGNUM + regnum - AARCH64_D0_REGNUM; - memcpy (reg_buf, buf, D_REGISTER_SIZE); - regcache_raw_write (regcache, v_regnum, reg_buf); - return; - } + return aarch64_pseudo_write_1 (gdbarch, regcache, + regnum - AARCH64_D0_REGNUM, D_REGISTER_SIZE, + buf); if (regnum >= AARCH64_S0_REGNUM && regnum < AARCH64_S0_REGNUM + 32) - { - unsigned v_regnum; - - v_regnum = AARCH64_V0_REGNUM + regnum - AARCH64_S0_REGNUM; - memcpy (reg_buf, buf, S_REGISTER_SIZE); - regcache_raw_write (regcache, v_regnum, reg_buf); - return; - } + return aarch64_pseudo_write_1 (gdbarch, regcache, + regnum - AARCH64_S0_REGNUM, S_REGISTER_SIZE, + buf); if (regnum >= AARCH64_H0_REGNUM && regnum < AARCH64_H0_REGNUM + 32) - { - /* pseudo H registers */ - unsigned v_regnum; - - v_regnum = AARCH64_V0_REGNUM + regnum - AARCH64_H0_REGNUM; - memcpy (reg_buf, buf, H_REGISTER_SIZE); - regcache_raw_write (regcache, v_regnum, reg_buf); - return; - } + return aarch64_pseudo_write_1 (gdbarch, regcache, + regnum - AARCH64_H0_REGNUM, H_REGISTER_SIZE, + buf); if (regnum >= AARCH64_B0_REGNUM && regnum < AARCH64_B0_REGNUM + 32) - { - /* pseudo B registers */ - unsigned v_regnum; - - v_regnum = AARCH64_V0_REGNUM + regnum - AARCH64_B0_REGNUM; - memcpy (reg_buf, buf, B_REGISTER_SIZE); - regcache_raw_write (regcache, v_regnum, reg_buf); - return; - } + return aarch64_pseudo_write_1 (gdbarch, regcache, + regnum - AARCH64_B0_REGNUM, B_REGISTER_SIZE, + buf); + + if (tdep->has_sve () && regnum >= AARCH64_SVE_V0_REGNUM + && regnum < AARCH64_SVE_V0_REGNUM + 32) + return aarch64_pseudo_write_1 (gdbarch, regcache, + regnum - AARCH64_SVE_V0_REGNUM, + V_REGISTER_SIZE, buf); gdb_assert_not_reached ("regnum out of bound"); } @@ -2423,7 +2483,7 @@ int last_breakpoint = 0; /* Defaults to 0 (no breakpoints placed). */ aarch64_inst inst; - if (aarch64_decode_insn (insn, &inst, 1) != 0) + if (aarch64_decode_insn (insn, &inst, 1, NULL) != 0) return {}; /* Look for a Load Exclusive instruction which begins the sequence. */ @@ -2436,7 +2496,7 @@ insn = read_memory_unsigned_integer (loc, insn_size, byte_order_for_code); - if (aarch64_decode_insn (insn, &inst, 1) != 0) + if (aarch64_decode_insn (insn, &inst, 1, NULL) != 0) return {}; /* Check if the instruction is a conditional branch. */ if (inst.opcode->iclass == condbranch) @@ -2729,7 +2789,7 @@ struct aarch64_displaced_step_data dsd; aarch64_inst inst; - if (aarch64_decode_insn (insn, &inst, 1) != 0) + if (aarch64_decode_insn (insn, &inst, 1, NULL) != 0) return NULL; /* Look for a Load Exclusive instruction which begins the sequence. */ @@ -2825,20 +2885,49 @@ return 1; } -/* Get the correct target description. */ +/* Get the correct target description for the given VQ value. + If VQ is zero then it is assumed SVE is not supported. + (It is not possible to set VQ to zero on an SVE system). */ const target_desc * -aarch64_read_description () +aarch64_read_description (uint64_t vq) +{ + if (vq > AARCH64_MAX_SVE_VQ) + error (_("VQ is %" PRIu64 ", maximum supported value is %d"), vq, + AARCH64_MAX_SVE_VQ); + + struct target_desc *tdesc = tdesc_aarch64_list[vq]; + + if (tdesc == NULL) + { + tdesc = aarch64_create_target_description (vq); + tdesc_aarch64_list[vq] = tdesc; + } + + return tdesc; +} + +/* Return the VQ used when creating the target description TDESC. */ + +static uint64_t +aarch64_get_tdesc_vq (const struct target_desc *tdesc) { - static target_desc *aarch64_tdesc = NULL; - target_desc **tdesc = &aarch64_tdesc; + const struct tdesc_feature *feature_sve; + + if (!tdesc_has_registers (tdesc)) + return 0; - if (*tdesc == NULL) - *tdesc = aarch64_create_target_description (); + feature_sve = tdesc_find_feature (tdesc, "org.gnu.gdb.aarch64.sve"); + + if (feature_sve == nullptr) + return 0; - return *tdesc; + uint64_t vl = tdesc_register_bitsize (feature_sve, + aarch64_sve_register_names[0]) / 8; + return sve_vq_from_vl (vl); } + /* Initialize the current architecture based on INFO. If possible, re-use an architecture from ARCHES, which is a list of architectures already created during this debugging session. @@ -2856,45 +2945,67 @@ const struct target_desc *tdesc = info.target_desc; int i; int valid_p = 1; - const struct tdesc_feature *feature; + const struct tdesc_feature *feature_core; + const struct tdesc_feature *feature_fpu; + const struct tdesc_feature *feature_sve; int num_regs = 0; int num_pseudo_regs = 0; - /* Ensure we always have a target descriptor. */ + /* Ensure we always have a target description. */ if (!tdesc_has_registers (tdesc)) - tdesc = aarch64_read_description (); - + tdesc = aarch64_read_description (0); gdb_assert (tdesc); - feature = tdesc_find_feature (tdesc, "org.gnu.gdb.aarch64.core"); + feature_core = tdesc_find_feature (tdesc, "org.gnu.gdb.aarch64.core"); + feature_fpu = tdesc_find_feature (tdesc, "org.gnu.gdb.aarch64.fpu"); + feature_sve = tdesc_find_feature (tdesc, "org.gnu.gdb.aarch64.sve"); - if (feature == NULL) + if (feature_core == NULL) return NULL; tdesc_data = tdesc_data_alloc (); - /* Validate the descriptor provides the mandatory core R registers + /* Validate the description provides the mandatory core R registers and allocate their numbers. */ for (i = 0; i < ARRAY_SIZE (aarch64_r_register_names); i++) - valid_p &= - tdesc_numbered_register (feature, tdesc_data, AARCH64_X0_REGNUM + i, - aarch64_r_register_names[i]); + valid_p &= tdesc_numbered_register (feature_core, tdesc_data, + AARCH64_X0_REGNUM + i, + aarch64_r_register_names[i]); num_regs = AARCH64_X0_REGNUM + i; - /* Look for the V registers. */ - feature = tdesc_find_feature (tdesc, "org.gnu.gdb.aarch64.fpu"); - if (feature) + /* Add the V registers. */ + if (feature_fpu != NULL) { - /* Validate the descriptor provides the mandatory V registers - and allocate their numbers. */ + if (feature_sve != NULL) + error (_("Program contains both fpu and SVE features.")); + + /* Validate the description provides the mandatory V registers + and allocate their numbers. */ for (i = 0; i < ARRAY_SIZE (aarch64_v_register_names); i++) - valid_p &= - tdesc_numbered_register (feature, tdesc_data, AARCH64_V0_REGNUM + i, - aarch64_v_register_names[i]); + valid_p &= tdesc_numbered_register (feature_fpu, tdesc_data, + AARCH64_V0_REGNUM + i, + aarch64_v_register_names[i]); num_regs = AARCH64_V0_REGNUM + i; + } + + /* Add the SVE registers. */ + if (feature_sve != NULL) + { + /* Validate the description provides the mandatory SVE registers + and allocate their numbers. */ + for (i = 0; i < ARRAY_SIZE (aarch64_sve_register_names); i++) + valid_p &= tdesc_numbered_register (feature_sve, tdesc_data, + AARCH64_SVE_Z0_REGNUM + i, + aarch64_sve_register_names[i]); + num_regs = AARCH64_SVE_Z0_REGNUM + i; + num_pseudo_regs += 32; /* add the Vn register pseudos. */ + } + + if (feature_fpu != NULL || feature_sve != NULL) + { num_pseudo_regs += 32; /* add the Qn scalar register pseudos */ num_pseudo_regs += 32; /* add the Dn scalar register pseudos */ num_pseudo_regs += 32; /* add the Sn scalar register pseudos */ @@ -2934,6 +3045,7 @@ tdep->lowest_pc = 0x20; tdep->jb_pc = -1; /* Longjump support not enabled by default. */ tdep->jb_elt_size = 8; + tdep->vq = aarch64_get_tdesc_vq (tdesc); set_gdbarch_push_dummy_call (gdbarch, aarch64_push_dummy_call); set_gdbarch_frame_align (gdbarch, aarch64_frame_align); @@ -2970,11 +3082,6 @@ set_tdesc_pseudo_register_reggroup_p (gdbarch, aarch64_pseudo_register_reggroup_p); - /* The top byte of an address is known as the "tag" and is - ignored by the kernel, the hardware, etc. and can be regarded - as additional data associated with the address. */ - set_gdbarch_significant_addr_bit (gdbarch, 56); - /* ABI */ set_gdbarch_short_bit (gdbarch, 16); set_gdbarch_int_bit (gdbarch, 32); @@ -3075,7 +3182,7 @@ selftests::register_test ("aarch64-process-record", selftests::aarch64_process_record_test); selftests::record_xml_tdesc ("aarch64.xml", - aarch64_create_target_description ()); + aarch64_create_target_description (0)); #endif } diff -Nru gdb-8.1/gdb/aarch64-tdep.h gdb-8.2/gdb/aarch64-tdep.h --- gdb-8.1/gdb/aarch64-tdep.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/aarch64-tdep.h 2018-09-05 07:27:13.000000000 +0000 @@ -32,6 +32,10 @@ #define AARCH64_DWARF_X0 0 #define AARCH64_DWARF_SP 31 #define AARCH64_DWARF_V0 64 +#define AARCH64_DWARF_SVE_VG 46 +#define AARCH64_DWARF_SVE_FFR 47 +#define AARCH64_DWARF_SVE_P0 48 +#define AARCH64_DWARF_SVE_Z0 96 /* Size of integer registers. */ #define X_REGISTER_SIZE 8 @@ -70,12 +74,22 @@ struct type *vns_type; struct type *vnh_type; struct type *vnb_type; + struct type *vnv_type; /* syscall record. */ int (*aarch64_syscall_record) (struct regcache *regcache, unsigned long svc_number); + + /* The VQ value for SVE targets, or zero if SVE is not supported. */ + uint64_t vq; + + /* Returns true if the target supports SVE. */ + bool has_sve () const + { + return vq != 0; + } }; -const target_desc *aarch64_read_description (); +const target_desc *aarch64_read_description (uint64_t vq); extern int aarch64_process_record (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr); diff -Nru gdb-8.1/gdb/aclocal.m4 gdb-8.2/gdb/aclocal.m4 --- gdb-8.1/gdb/aclocal.m4 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/aclocal.m4 2018-09-05 07:27:13.000000000 +0000 @@ -1,8 +1,7 @@ -# generated automatically by aclocal 1.11.6 -*- Autoconf -*- +# generated automatically by aclocal 1.15.1 -*- Autoconf -*- + +# Copyright (C) 1996-2017 Free Software Foundation, Inc. -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, -# Inc. # This file 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. @@ -12,19 +11,18 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. +# Copyright (C) 2001-2017 Free Software Foundation, Inc. # # This file 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. -# serial 1 - # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to -# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to +# '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and @@ -43,7 +41,7 @@ # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is `.', but things will broke when you +# harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, @@ -61,30 +59,26 @@ # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], -[dnl Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50])dnl -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 -# Free Software Foundation, Inc. +# Copyright (C) 1997-2017 Free Software Foundation, Inc. # # This file 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. -# serial 9 - # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ(2.52)dnl - ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl @@ -103,21 +97,18 @@ Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation, -# Inc. +# Copyright (C) 2001-2017 Free Software Foundation, Inc. # # This file 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. -# serial 1 - # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -if test x"${install_sh}" != xset; then +if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; @@ -125,25 +116,22 @@ install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi -AC_SUBST(install_sh)]) +AC_SUBST([install_sh])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering -# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008, -# 2011 Free Software Foundation, Inc. +# Copyright (C) 1996-2017 Free Software Foundation, Inc. # # This file 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. -# serial 5 - # AM_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. -# Default is to disable them, unless `enable' is passed literally. -# For symmetry, `disable' may be passed as well. Anyway, the user +# Default is to disable them, unless 'enable' is passed literally. +# For symmetry, 'disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), @@ -154,10 +142,11 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], -[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful - (and sometimes confusing) to the casual installer], - [USE_MAINTAINER_MODE=$enableval], - [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) + [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], + am_maintainer_other[ make rules and dependencies not useful + (and sometimes confusing) to the casual installer])], + [USE_MAINTAINER_MODE=$enableval], + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE @@ -165,46 +154,40 @@ ] ) -AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) - -# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. +# Copyright (C) 2001-2017 Free Software Foundation, Inc. # # This file 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. -# serial 1 - # AM_PROG_INSTALL_STRIP # --------------------- -# One issue with vendor `install' (even GNU) is that you can't +# One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in `make install-strip', and initialize +# always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc. +# Copyright (C) 2006-2017 Free Software Foundation, Inc. # # This file 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. -# serial 3 - # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. diff -Nru gdb-8.1/gdb/ada-exp.c gdb-8.2/gdb/ada-exp.c --- gdb-8.1/gdb/ada-exp.c 2018-01-31 03:02:03.000000000 +0000 +++ gdb-8.2/gdb/ada-exp.c 2018-09-05 07:47:44.000000000 +0000 @@ -107,7 +107,7 @@ static int yylex (void); -void yyerror (const char *); +static void yyerror (const char *); static void write_int (struct parser_state *, LONGEST, struct type *); @@ -145,7 +145,7 @@ static struct type *type_system_address (struct parser_state *); -#line 149 "ada-exp.c" /* yacc.c:339 */ +#line 149 "ada-exp.c.tmp" /* yacc.c:339 */ # ifndef YY_NULLPTRPTR # if defined __cplusplus && 201103L <= __cplusplus @@ -295,7 +295,7 @@ struct internalvar *ivar; -#line 299 "ada-exp.c" /* yacc.c:355 */ +#line 299 "ada-exp.c.tmp" /* yacc.c:355 */ }; typedef union YYSTYPE YYSTYPE; @@ -312,7 +312,7 @@ /* Copy the second part of user declarations. */ -#line 316 "ada-exp.c" /* yacc.c:358 */ +#line 316 "ada-exp.c.tmp" /* yacc.c:358 */ #ifdef short # undef short @@ -1660,26 +1660,26 @@ case 4: #line 191 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_COMMA); } -#line 1665 "ada-exp.c" /* yacc.c:1646 */ +#line 1665 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 5: #line 193 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_ASSIGN); } -#line 1671 "ada-exp.c" /* yacc.c:1646 */ +#line 1671 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 6: #line 198 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_IND); } -#line 1677 "ada-exp.c" /* yacc.c:1646 */ +#line 1677 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 7: #line 202 "ada-exp.y" /* yacc.c:1646 */ { write_exp_op_with_string (pstate, STRUCTOP_STRUCT, (yyvsp[0].sval)); } -#line 1684 "ada-exp.c" /* yacc.c:1646 */ +#line 1684 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 8: @@ -1689,7 +1689,7 @@ write_exp_elt_longcst (pstate, (yyvsp[-1].lval)); write_exp_elt_opcode (pstate, OP_FUNCALL); } -#line 1694 "ada-exp.c" /* yacc.c:1646 */ +#line 1694 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 9: @@ -1710,13 +1710,13 @@ write_exp_elt_opcode (pstate, OP_FUNCALL); } } -#line 1715 "ada-exp.c" /* yacc.c:1646 */ +#line 1715 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 10: #line 231 "ada-exp.y" /* yacc.c:1646 */ { type_qualifier = (yyvsp[-2].tval); } -#line 1721 "ada-exp.c" /* yacc.c:1646 */ +#line 1721 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 11: @@ -1729,19 +1729,19 @@ write_exp_elt_opcode (pstate, UNOP_QUAL); type_qualifier = (yyvsp[-4].tval); } -#line 1734 "ada-exp.c" /* yacc.c:1646 */ +#line 1734 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 12: #line 243 "ada-exp.y" /* yacc.c:1646 */ { (yyval.tval) = type_qualifier; } -#line 1740 "ada-exp.c" /* yacc.c:1646 */ +#line 1740 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 13: #line 248 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, TERNOP_SLICE); } -#line 1746 "ada-exp.c" /* yacc.c:1646 */ +#line 1746 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 14: @@ -1751,13 +1751,13 @@ else error (_("Cannot slice a type")); } -#line 1756 "ada-exp.c" /* yacc.c:1646 */ +#line 1756 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 15: #line 257 "ada-exp.y" /* yacc.c:1646 */ { } -#line 1762 "ada-exp.c" /* yacc.c:1646 */ +#line 1762 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 16: @@ -1769,67 +1769,67 @@ write_exp_elt_opcode (pstate, OP_TYPE); } } -#line 1774 "ada-exp.c" /* yacc.c:1646 */ +#line 1774 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 17: #line 279 "ada-exp.y" /* yacc.c:1646 */ { write_dollar_variable (pstate, (yyvsp[0].sval)); } -#line 1780 "ada-exp.c" /* yacc.c:1646 */ +#line 1780 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 20: #line 289 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_NEG); } -#line 1786 "ada-exp.c" /* yacc.c:1646 */ +#line 1786 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 21: #line 293 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_PLUS); } -#line 1792 "ada-exp.c" /* yacc.c:1646 */ +#line 1792 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 22: #line 297 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_LOGICAL_NOT); } -#line 1798 "ada-exp.c" /* yacc.c:1646 */ +#line 1798 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 23: #line 301 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_ABS); } -#line 1804 "ada-exp.c" /* yacc.c:1646 */ +#line 1804 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 24: #line 304 "ada-exp.y" /* yacc.c:1646 */ { (yyval.lval) = 0; } -#line 1810 "ada-exp.c" /* yacc.c:1646 */ +#line 1810 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 25: #line 308 "ada-exp.y" /* yacc.c:1646 */ { (yyval.lval) = 1; } -#line 1816 "ada-exp.c" /* yacc.c:1646 */ +#line 1816 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 26: #line 310 "ada-exp.y" /* yacc.c:1646 */ { (yyval.lval) = 1; } -#line 1822 "ada-exp.c" /* yacc.c:1646 */ +#line 1822 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 27: #line 312 "ada-exp.y" /* yacc.c:1646 */ { (yyval.lval) = (yyvsp[-2].lval) + 1; } -#line 1828 "ada-exp.c" /* yacc.c:1646 */ +#line 1828 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 28: #line 314 "ada-exp.y" /* yacc.c:1646 */ { (yyval.lval) = (yyvsp[-4].lval) + 1; } -#line 1834 "ada-exp.c" /* yacc.c:1646 */ +#line 1834 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 29: @@ -1841,85 +1841,85 @@ write_exp_elt_type (pstate, (yyvsp[-2].tval)); write_exp_elt_opcode (pstate, UNOP_MEMVAL); } -#line 1846 "ada-exp.c" /* yacc.c:1646 */ +#line 1846 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 30: #line 331 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_EXP); } -#line 1852 "ada-exp.c" /* yacc.c:1646 */ +#line 1852 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 31: #line 335 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_MUL); } -#line 1858 "ada-exp.c" /* yacc.c:1646 */ +#line 1858 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 32: #line 339 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_DIV); } -#line 1864 "ada-exp.c" /* yacc.c:1646 */ +#line 1864 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 33: #line 343 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_REM); } -#line 1870 "ada-exp.c" /* yacc.c:1646 */ +#line 1870 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 34: #line 347 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_MOD); } -#line 1876 "ada-exp.c" /* yacc.c:1646 */ +#line 1876 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 35: #line 351 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_REPEAT); } -#line 1882 "ada-exp.c" /* yacc.c:1646 */ +#line 1882 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 36: #line 355 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_ADD); } -#line 1888 "ada-exp.c" /* yacc.c:1646 */ +#line 1888 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 37: #line 359 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_CONCAT); } -#line 1894 "ada-exp.c" /* yacc.c:1646 */ +#line 1894 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 38: #line 363 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_SUB); } -#line 1900 "ada-exp.c" /* yacc.c:1646 */ +#line 1900 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 40: #line 370 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_EQUAL); } -#line 1906 "ada-exp.c" /* yacc.c:1646 */ +#line 1906 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 41: #line 374 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_NOTEQUAL); } -#line 1912 "ada-exp.c" /* yacc.c:1646 */ +#line 1912 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 42: #line 378 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_LEQ); } -#line 1918 "ada-exp.c" /* yacc.c:1646 */ +#line 1918 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 43: #line 382 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, TERNOP_IN_RANGE); } -#line 1924 "ada-exp.c" /* yacc.c:1646 */ +#line 1924 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 44: @@ -1928,7 +1928,7 @@ write_exp_elt_longcst (pstate, (LONGEST) (yyvsp[0].lval)); write_exp_elt_opcode (pstate, BINOP_IN_BOUNDS); } -#line 1933 "ada-exp.c" /* yacc.c:1646 */ +#line 1933 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 45: @@ -1940,7 +1940,7 @@ write_exp_elt_type (pstate, (yyvsp[0].tval)); write_exp_elt_opcode (pstate, UNOP_IN_RANGE); } -#line 1945 "ada-exp.c" /* yacc.c:1646 */ +#line 1945 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 46: @@ -1948,7 +1948,7 @@ { write_exp_elt_opcode (pstate, TERNOP_IN_RANGE); write_exp_elt_opcode (pstate, UNOP_LOGICAL_NOT); } -#line 1953 "ada-exp.c" /* yacc.c:1646 */ +#line 1953 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 47: @@ -1958,7 +1958,7 @@ write_exp_elt_opcode (pstate, BINOP_IN_BOUNDS); write_exp_elt_opcode (pstate, UNOP_LOGICAL_NOT); } -#line 1963 "ada-exp.c" /* yacc.c:1646 */ +#line 1963 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 48: @@ -1971,91 +1971,91 @@ write_exp_elt_opcode (pstate, UNOP_IN_RANGE); write_exp_elt_opcode (pstate, UNOP_LOGICAL_NOT); } -#line 1976 "ada-exp.c" /* yacc.c:1646 */ +#line 1976 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 49: #line 418 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_GEQ); } -#line 1982 "ada-exp.c" /* yacc.c:1646 */ +#line 1982 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 50: #line 422 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_LESS); } -#line 1988 "ada-exp.c" /* yacc.c:1646 */ +#line 1988 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 51: #line 426 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_GTR); } -#line 1994 "ada-exp.c" /* yacc.c:1646 */ +#line 1994 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 58: #line 439 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_BITWISE_AND); } -#line 2000 "ada-exp.c" /* yacc.c:1646 */ +#line 2000 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 59: #line 441 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_BITWISE_AND); } -#line 2006 "ada-exp.c" /* yacc.c:1646 */ +#line 2006 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 60: #line 446 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_LOGICAL_AND); } -#line 2012 "ada-exp.c" /* yacc.c:1646 */ +#line 2012 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 61: #line 448 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_LOGICAL_AND); } -#line 2018 "ada-exp.c" /* yacc.c:1646 */ +#line 2018 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 62: #line 453 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_BITWISE_IOR); } -#line 2024 "ada-exp.c" /* yacc.c:1646 */ +#line 2024 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 63: #line 455 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_BITWISE_IOR); } -#line 2030 "ada-exp.c" /* yacc.c:1646 */ +#line 2030 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 64: #line 460 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_LOGICAL_OR); } -#line 2036 "ada-exp.c" /* yacc.c:1646 */ +#line 2036 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 65: #line 462 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_LOGICAL_OR); } -#line 2042 "ada-exp.c" /* yacc.c:1646 */ +#line 2042 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 66: #line 466 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_BITWISE_XOR); } -#line 2048 "ada-exp.c" /* yacc.c:1646 */ +#line 2048 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 67: #line 468 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_BITWISE_XOR); } -#line 2054 "ada-exp.c" /* yacc.c:1646 */ +#line 2054 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 68: #line 480 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_ADDR); } -#line 2060 "ada-exp.c" /* yacc.c:1646 */ +#line 2060 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 69: @@ -2066,82 +2066,82 @@ type_system_address (pstate)); write_exp_elt_opcode (pstate, UNOP_CAST); } -#line 2071 "ada-exp.c" /* yacc.c:1646 */ +#line 2071 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 70: #line 489 "ada-exp.y" /* yacc.c:1646 */ { write_int (pstate, (yyvsp[0].lval), type_int (pstate)); write_exp_elt_opcode (pstate, OP_ATR_FIRST); } -#line 2078 "ada-exp.c" /* yacc.c:1646 */ +#line 2078 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 71: #line 492 "ada-exp.y" /* yacc.c:1646 */ { write_int (pstate, (yyvsp[0].lval), type_int (pstate)); write_exp_elt_opcode (pstate, OP_ATR_LAST); } -#line 2085 "ada-exp.c" /* yacc.c:1646 */ +#line 2085 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 72: #line 495 "ada-exp.y" /* yacc.c:1646 */ { write_int (pstate, (yyvsp[0].lval), type_int (pstate)); write_exp_elt_opcode (pstate, OP_ATR_LENGTH); } -#line 2092 "ada-exp.c" /* yacc.c:1646 */ +#line 2092 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 73: #line 498 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_ATR_SIZE); } -#line 2098 "ada-exp.c" /* yacc.c:1646 */ +#line 2098 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 74: #line 500 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_ATR_TAG); } -#line 2104 "ada-exp.c" /* yacc.c:1646 */ +#line 2104 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 75: #line 502 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_ATR_MIN); } -#line 2110 "ada-exp.c" /* yacc.c:1646 */ +#line 2110 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 76: #line 504 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_ATR_MAX); } -#line 2116 "ada-exp.c" /* yacc.c:1646 */ +#line 2116 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 77: #line 506 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_ATR_POS); } -#line 2122 "ada-exp.c" /* yacc.c:1646 */ +#line 2122 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 78: #line 508 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_ATR_VAL); } -#line 2128 "ada-exp.c" /* yacc.c:1646 */ +#line 2128 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 79: #line 510 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_ATR_MODULUS); } -#line 2134 "ada-exp.c" /* yacc.c:1646 */ +#line 2134 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 80: #line 514 "ada-exp.y" /* yacc.c:1646 */ { (yyval.lval) = 1; } -#line 2140 "ada-exp.c" /* yacc.c:1646 */ +#line 2140 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 81: #line 516 "ada-exp.y" /* yacc.c:1646 */ { (yyval.lval) = (yyvsp[-1].typed_val).val; } -#line 2146 "ada-exp.c" /* yacc.c:1646 */ +#line 2146 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 82: @@ -2152,7 +2152,7 @@ write_exp_elt_opcode (pstate, OP_TYPE); write_exp_elt_type (pstate, (yyvsp[0].tval)); write_exp_elt_opcode (pstate, OP_TYPE); } -#line 2157 "ada-exp.c" /* yacc.c:1646 */ +#line 2157 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 84: @@ -2161,13 +2161,13 @@ write_exp_elt_type (pstate, parse_type (pstate)->builtin_void); write_exp_elt_opcode (pstate, OP_TYPE); } -#line 2166 "ada-exp.c" /* yacc.c:1646 */ +#line 2166 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 85: #line 540 "ada-exp.y" /* yacc.c:1646 */ { write_int (pstate, (LONGEST) (yyvsp[0].typed_val).val, (yyvsp[0].typed_val).type); } -#line 2172 "ada-exp.c" /* yacc.c:1646 */ +#line 2172 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 86: @@ -2177,7 +2177,7 @@ (type_qualifier == NULL) ? (yyvsp[0].typed_val).type : type_qualifier); } -#line 2182 "ada-exp.c" /* yacc.c:1646 */ +#line 2182 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 87: @@ -2187,13 +2187,13 @@ write_exp_elt_floatcst (pstate, (yyvsp[0].typed_val_float).val); write_exp_elt_opcode (pstate, OP_FLOAT); } -#line 2192 "ada-exp.c" /* yacc.c:1646 */ +#line 2192 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 88: #line 560 "ada-exp.y" /* yacc.c:1646 */ { write_int (pstate, 0, type_int (pstate)); } -#line 2198 "ada-exp.c" /* yacc.c:1646 */ +#line 2198 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 89: @@ -2201,37 +2201,37 @@ { write_exp_op_with_string (pstate, OP_STRING, (yyvsp[0].sval)); } -#line 2206 "ada-exp.c" /* yacc.c:1646 */ +#line 2206 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 90: #line 570 "ada-exp.y" /* yacc.c:1646 */ { write_int (pstate, 1, type_boolean (pstate)); } -#line 2212 "ada-exp.c" /* yacc.c:1646 */ +#line 2212 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 91: #line 572 "ada-exp.y" /* yacc.c:1646 */ { write_int (pstate, 0, type_boolean (pstate)); } -#line 2218 "ada-exp.c" /* yacc.c:1646 */ +#line 2218 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 92: #line 576 "ada-exp.y" /* yacc.c:1646 */ { error (_("NEW not implemented.")); } -#line 2224 "ada-exp.c" /* yacc.c:1646 */ +#line 2224 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 93: #line 580 "ada-exp.y" /* yacc.c:1646 */ { (yyval.tval) = write_var_or_type (pstate, NULL, (yyvsp[0].sval)); } -#line 2230 "ada-exp.c" /* yacc.c:1646 */ +#line 2230 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 94: #line 582 "ada-exp.y" /* yacc.c:1646 */ { (yyval.tval) = write_var_or_type (pstate, (yyvsp[-1].bval), (yyvsp[0].sval)); } -#line 2236 "ada-exp.c" /* yacc.c:1646 */ +#line 2236 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 95: @@ -2243,7 +2243,7 @@ else (yyval.tval) = lookup_pointer_type ((yyval.tval)); } -#line 2248 "ada-exp.c" /* yacc.c:1646 */ +#line 2248 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 96: @@ -2255,19 +2255,19 @@ else (yyval.tval) = lookup_pointer_type ((yyval.tval)); } -#line 2260 "ada-exp.c" /* yacc.c:1646 */ +#line 2260 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 97: #line 603 "ada-exp.y" /* yacc.c:1646 */ { (yyval.bval) = block_lookup (NULL, (yyvsp[-1].sval).ptr); } -#line 2266 "ada-exp.c" /* yacc.c:1646 */ +#line 2266 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 98: #line 605 "ada-exp.y" /* yacc.c:1646 */ { (yyval.bval) = block_lookup ((yyvsp[-2].bval), (yyvsp[-1].sval).ptr); } -#line 2272 "ada-exp.c" /* yacc.c:1646 */ +#line 2272 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 99: @@ -2277,13 +2277,13 @@ write_exp_elt_longcst (pstate, (yyvsp[-1].lval)); write_exp_elt_opcode (pstate, OP_AGGREGATE); } -#line 2282 "ada-exp.c" /* yacc.c:1646 */ +#line 2282 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 100: #line 618 "ada-exp.y" /* yacc.c:1646 */ { (yyval.lval) = (yyvsp[0].lval); } -#line 2288 "ada-exp.c" /* yacc.c:1646 */ +#line 2288 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 101: @@ -2293,13 +2293,13 @@ write_exp_elt_opcode (pstate, OP_POSITIONAL); (yyval.lval) = (yyvsp[-1].lval) + 1; } -#line 2298 "ada-exp.c" /* yacc.c:1646 */ +#line 2298 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 102: #line 626 "ada-exp.y" /* yacc.c:1646 */ { (yyval.lval) = (yyvsp[-1].lval) + (yyvsp[0].lval); } -#line 2304 "ada-exp.c" /* yacc.c:1646 */ +#line 2304 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 103: @@ -2309,7 +2309,7 @@ write_exp_elt_opcode (pstate, OP_POSITIONAL); (yyval.lval) = 1; } -#line 2314 "ada-exp.c" /* yacc.c:1646 */ +#line 2314 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 104: @@ -2319,31 +2319,31 @@ write_exp_elt_opcode (pstate, OP_POSITIONAL); (yyval.lval) = (yyvsp[-2].lval) + 1; } -#line 2324 "ada-exp.c" /* yacc.c:1646 */ +#line 2324 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 105: #line 645 "ada-exp.y" /* yacc.c:1646 */ { (yyval.lval) = 1; } -#line 2330 "ada-exp.c" /* yacc.c:1646 */ +#line 2330 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 106: #line 646 "ada-exp.y" /* yacc.c:1646 */ { (yyval.lval) = 1; } -#line 2336 "ada-exp.c" /* yacc.c:1646 */ +#line 2336 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 107: #line 648 "ada-exp.y" /* yacc.c:1646 */ { (yyval.lval) = (yyvsp[0].lval) + 1; } -#line 2342 "ada-exp.c" /* yacc.c:1646 */ +#line 2342 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 108: #line 652 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_OTHERS); } -#line 2348 "ada-exp.c" /* yacc.c:1646 */ +#line 2348 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 109: @@ -2353,25 +2353,25 @@ write_exp_elt_longcst (pstate, (yyvsp[0].lval)); write_exp_elt_opcode (pstate, OP_CHOICES); } -#line 2358 "ada-exp.c" /* yacc.c:1646 */ +#line 2358 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 110: #line 671 "ada-exp.y" /* yacc.c:1646 */ { write_name_assoc (pstate, (yyvsp[-1].sval)); } -#line 2364 "ada-exp.c" /* yacc.c:1646 */ +#line 2364 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 111: #line 672 "ada-exp.y" /* yacc.c:1646 */ { (yyval.lval) = 1; } -#line 2370 "ada-exp.c" /* yacc.c:1646 */ +#line 2370 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 112: #line 674 "ada-exp.y" /* yacc.c:1646 */ { (yyval.lval) = 1; } -#line 2376 "ada-exp.c" /* yacc.c:1646 */ +#line 2376 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 113: @@ -2380,65 +2380,65 @@ write_exp_op_with_string (pstate, OP_NAME, empty_stoken); } -#line 2385 "ada-exp.c" /* yacc.c:1646 */ +#line 2385 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 114: #line 680 "ada-exp.y" /* yacc.c:1646 */ { (yyval.lval) = 1; } -#line 2391 "ada-exp.c" /* yacc.c:1646 */ +#line 2391 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 115: #line 682 "ada-exp.y" /* yacc.c:1646 */ { write_name_assoc (pstate, (yyvsp[-1].sval)); } -#line 2397 "ada-exp.c" /* yacc.c:1646 */ +#line 2397 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 116: #line 683 "ada-exp.y" /* yacc.c:1646 */ { (yyval.lval) = (yyvsp[0].lval) + 1; } -#line 2403 "ada-exp.c" /* yacc.c:1646 */ +#line 2403 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 117: #line 685 "ada-exp.y" /* yacc.c:1646 */ { (yyval.lval) = (yyvsp[0].lval) + 1; } -#line 2409 "ada-exp.c" /* yacc.c:1646 */ +#line 2409 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 118: #line 687 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_DISCRETE_RANGE); } -#line 2415 "ada-exp.c" /* yacc.c:1646 */ +#line 2415 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 119: #line 688 "ada-exp.y" /* yacc.c:1646 */ { (yyval.lval) = (yyvsp[0].lval) + 1; } -#line 2421 "ada-exp.c" /* yacc.c:1646 */ +#line 2421 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 120: #line 695 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_IND); } -#line 2427 "ada-exp.c" /* yacc.c:1646 */ +#line 2427 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 121: #line 697 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_ADDR); } -#line 2433 "ada-exp.c" /* yacc.c:1646 */ +#line 2433 "ada-exp.c.tmp" /* yacc.c:1646 */ break; case 122: #line 699 "ada-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_SUBSCRIPT); } -#line 2439 "ada-exp.c" /* yacc.c:1646 */ +#line 2439 "ada-exp.c.tmp" /* yacc.c:1646 */ break; -#line 2443 "ada-exp.c" /* yacc.c:1646 */ +#line 2443 "ada-exp.c.tmp" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -2710,7 +2710,7 @@ return yyparse (); } -void +static void yyerror (const char *msg) { error (_("Error in expression, near `%s'."), lexptr); @@ -2725,11 +2725,7 @@ struct symbol *sym) { if (symbol_read_needs_frame (sym)) - { - if (innermost_block == 0 - || contained_in (block, innermost_block)) - innermost_block = block; - } + innermost_block.update (block, INNERMOST_BLOCK_FOR_SYMBOLS); write_exp_elt_opcode (par_state, OP_VAR_VALUE); write_exp_elt_block (par_state, block); @@ -2859,8 +2855,8 @@ end - renaming_expr); renaming_expr = end; - ada_lookup_encoded_symbol (index_name, NULL, VAR_DOMAIN, - &index_sym_info); + ada_lookup_encoded_symbol (index_name, orig_left_context, + VAR_DOMAIN, &index_sym_info); if (index_sym_info.symbol == NULL) error (_("Could not find %s"), index_name); else if (SYMBOL_CLASS (index_sym_info.symbol) == LOC_TYPEDEF) @@ -2922,10 +2918,9 @@ block_lookup (const struct block *context, const char *raw_name) { const char *name; - struct block_symbol *syms; + std::vector syms; int nsyms; struct symtab *symtab; - struct cleanup *old_chain; const struct block *result = NULL; if (raw_name[0] == '\'') @@ -2937,7 +2932,6 @@ name = ada_encode (raw_name); nsyms = ada_lookup_symbol_list (name, context, VAR_DOMAIN, &syms); - old_chain = make_cleanup (xfree, syms); if (context == NULL && (nsyms == 0 || SYMBOL_CLASS (syms[0].symbol) != LOC_BLOCK)) @@ -2961,19 +2955,18 @@ result = SYMBOL_BLOCK_VALUE (syms[0].symbol); } - do_cleanups (old_chain); return result; } static struct symbol* -select_possible_type_sym (struct block_symbol *syms, int nsyms) +select_possible_type_sym (const std::vector &syms) { int i; int preferred_index; struct type *preferred_type; preferred_index = -1; preferred_type = NULL; - for (i = 0; i < nsyms; i += 1) + for (i = 0; i < syms.size (); i += 1) switch (SYMBOL_CLASS (syms[i].symbol)) { case LOC_TYPEDEF: @@ -3176,7 +3169,6 @@ int depth; char *encoded_name; int name_len; - struct cleanup *old_chain = make_cleanup (null_cleanup, NULL); if (block == NULL) block = expression_context_block; @@ -3193,7 +3185,7 @@ while (tail_index > 0) { int nsyms; - struct block_symbol *syms; + std::vector syms; struct symbol *type_sym; struct symbol *renaming_sym; const char* renaming; @@ -3204,7 +3196,6 @@ encoded_name[tail_index] = '\0'; nsyms = ada_lookup_symbol_list (encoded_name, block, VAR_DOMAIN, &syms); - make_cleanup (xfree, syms); encoded_name[tail_index] = terminator; /* A single symbol may rename a package or object. */ @@ -3220,7 +3211,7 @@ syms[0].symbol = ren_sym; } - type_sym = select_possible_type_sym (syms, nsyms); + type_sym = select_possible_type_sym (syms); if (type_sym != NULL) renaming_sym = type_sym; @@ -3251,7 +3242,6 @@ write_object_renaming (par_state, block, renaming, renaming_len, renaming_expr, MAX_RENAMING_CHAIN_LENGTH); write_selectors (par_state, encoded_name + tail_index); - do_cleanups (old_chain); return NULL; default: internal_error (__FILE__, __LINE__, @@ -3263,10 +3253,7 @@ struct type *field_type; if (tail_index == name_len) - { - do_cleanups (old_chain); - return SYMBOL_TYPE (type_sym); - } + return SYMBOL_TYPE (type_sym); /* We have some extraneous characters after the type name. If this is an expression "TYPE_NAME.FIELD0.[...].FIELDN", @@ -3274,10 +3261,7 @@ field_type = get_symbol_field_type (type_sym, encoded_name + tail_index); if (field_type != NULL) - { - do_cleanups (old_chain); - return field_type; - } + return field_type; else error (_("Invalid attempt to select from type: \"%s\"."), name0.ptr); @@ -3288,17 +3272,13 @@ encoded_name); if (type != NULL) - { - do_cleanups (old_chain); - return type; - } + return type; } if (nsyms == 1) { write_var_from_sym (par_state, syms[0].block, syms[0].symbol); write_selectors (par_state, encoded_name + tail_index); - do_cleanups (old_chain); return NULL; } else if (nsyms == 0) @@ -3310,7 +3290,6 @@ write_exp_msymbol (par_state, msym); /* Maybe cause error here rather than later? FIXME? */ write_selectors (par_state, encoded_name + tail_index); - do_cleanups (old_chain); return NULL; } @@ -3326,7 +3305,6 @@ write_ambiguous_var (par_state, block, encoded_name, tail_index); write_selectors (par_state, encoded_name + tail_index); - do_cleanups (old_chain); return NULL; } } @@ -3365,17 +3343,14 @@ { if (strchr (name.ptr, '.') == NULL) { - struct block_symbol *syms; + std::vector syms; int nsyms = ada_lookup_symbol_list (name.ptr, expression_context_block, VAR_DOMAIN, &syms); - struct cleanup *old_chain = make_cleanup (xfree, syms); if (nsyms != 1 || SYMBOL_CLASS (syms[0].symbol) == LOC_TYPEDEF) write_exp_op_with_string (par_state, OP_NAME, name); else write_var_from_sym (par_state, syms[0].block, syms[0].symbol); - - do_cleanups (old_chain); } else if (write_var_or_type (par_state, NULL, name) != NULL) diff -Nru gdb-8.1/gdb/ada-exp.y gdb-8.2/gdb/ada-exp.y --- gdb-8.1/gdb/ada-exp.y 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/gdb/ada-exp.y 2018-09-05 07:27:13.000000000 +0000 @@ -77,7 +77,7 @@ static int yylex (void); -void yyerror (const char *); +static void yyerror (const char *); static void write_int (struct parser_state *, LONGEST, struct type *); @@ -742,7 +742,7 @@ return yyparse (); } -void +static void yyerror (const char *msg) { error (_("Error in expression, near `%s'."), lexptr); @@ -757,11 +757,7 @@ struct symbol *sym) { if (symbol_read_needs_frame (sym)) - { - if (innermost_block == 0 - || contained_in (block, innermost_block)) - innermost_block = block; - } + innermost_block.update (block, INNERMOST_BLOCK_FOR_SYMBOLS); write_exp_elt_opcode (par_state, OP_VAR_VALUE); write_exp_elt_block (par_state, block); @@ -891,8 +887,8 @@ end - renaming_expr); renaming_expr = end; - ada_lookup_encoded_symbol (index_name, NULL, VAR_DOMAIN, - &index_sym_info); + ada_lookup_encoded_symbol (index_name, orig_left_context, + VAR_DOMAIN, &index_sym_info); if (index_sym_info.symbol == NULL) error (_("Could not find %s"), index_name); else if (SYMBOL_CLASS (index_sym_info.symbol) == LOC_TYPEDEF) @@ -954,10 +950,9 @@ block_lookup (const struct block *context, const char *raw_name) { const char *name; - struct block_symbol *syms; + std::vector syms; int nsyms; struct symtab *symtab; - struct cleanup *old_chain; const struct block *result = NULL; if (raw_name[0] == '\'') @@ -969,7 +964,6 @@ name = ada_encode (raw_name); nsyms = ada_lookup_symbol_list (name, context, VAR_DOMAIN, &syms); - old_chain = make_cleanup (xfree, syms); if (context == NULL && (nsyms == 0 || SYMBOL_CLASS (syms[0].symbol) != LOC_BLOCK)) @@ -993,19 +987,18 @@ result = SYMBOL_BLOCK_VALUE (syms[0].symbol); } - do_cleanups (old_chain); return result; } static struct symbol* -select_possible_type_sym (struct block_symbol *syms, int nsyms) +select_possible_type_sym (const std::vector &syms) { int i; int preferred_index; struct type *preferred_type; preferred_index = -1; preferred_type = NULL; - for (i = 0; i < nsyms; i += 1) + for (i = 0; i < syms.size (); i += 1) switch (SYMBOL_CLASS (syms[i].symbol)) { case LOC_TYPEDEF: @@ -1208,7 +1201,6 @@ int depth; char *encoded_name; int name_len; - struct cleanup *old_chain = make_cleanup (null_cleanup, NULL); if (block == NULL) block = expression_context_block; @@ -1225,7 +1217,7 @@ while (tail_index > 0) { int nsyms; - struct block_symbol *syms; + std::vector syms; struct symbol *type_sym; struct symbol *renaming_sym; const char* renaming; @@ -1236,7 +1228,6 @@ encoded_name[tail_index] = '\0'; nsyms = ada_lookup_symbol_list (encoded_name, block, VAR_DOMAIN, &syms); - make_cleanup (xfree, syms); encoded_name[tail_index] = terminator; /* A single symbol may rename a package or object. */ @@ -1252,7 +1243,7 @@ syms[0].symbol = ren_sym; } - type_sym = select_possible_type_sym (syms, nsyms); + type_sym = select_possible_type_sym (syms); if (type_sym != NULL) renaming_sym = type_sym; @@ -1283,7 +1274,6 @@ write_object_renaming (par_state, block, renaming, renaming_len, renaming_expr, MAX_RENAMING_CHAIN_LENGTH); write_selectors (par_state, encoded_name + tail_index); - do_cleanups (old_chain); return NULL; default: internal_error (__FILE__, __LINE__, @@ -1295,10 +1285,7 @@ struct type *field_type; if (tail_index == name_len) - { - do_cleanups (old_chain); - return SYMBOL_TYPE (type_sym); - } + return SYMBOL_TYPE (type_sym); /* We have some extraneous characters after the type name. If this is an expression "TYPE_NAME.FIELD0.[...].FIELDN", @@ -1306,10 +1293,7 @@ field_type = get_symbol_field_type (type_sym, encoded_name + tail_index); if (field_type != NULL) - { - do_cleanups (old_chain); - return field_type; - } + return field_type; else error (_("Invalid attempt to select from type: \"%s\"."), name0.ptr); @@ -1320,17 +1304,13 @@ encoded_name); if (type != NULL) - { - do_cleanups (old_chain); - return type; - } + return type; } if (nsyms == 1) { write_var_from_sym (par_state, syms[0].block, syms[0].symbol); write_selectors (par_state, encoded_name + tail_index); - do_cleanups (old_chain); return NULL; } else if (nsyms == 0) @@ -1342,7 +1322,6 @@ write_exp_msymbol (par_state, msym); /* Maybe cause error here rather than later? FIXME? */ write_selectors (par_state, encoded_name + tail_index); - do_cleanups (old_chain); return NULL; } @@ -1358,7 +1337,6 @@ write_ambiguous_var (par_state, block, encoded_name, tail_index); write_selectors (par_state, encoded_name + tail_index); - do_cleanups (old_chain); return NULL; } } @@ -1397,17 +1375,14 @@ { if (strchr (name.ptr, '.') == NULL) { - struct block_symbol *syms; + std::vector syms; int nsyms = ada_lookup_symbol_list (name.ptr, expression_context_block, VAR_DOMAIN, &syms); - struct cleanup *old_chain = make_cleanup (xfree, syms); if (nsyms != 1 || SYMBOL_CLASS (syms[0].symbol) == LOC_TYPEDEF) write_exp_op_with_string (par_state, OP_NAME, name); else write_var_from_sym (par_state, syms[0].block, syms[0].symbol); - - do_cleanups (old_chain); } else if (write_var_or_type (par_state, NULL, name) != NULL) diff -Nru gdb-8.1/gdb/ada-lang.c gdb-8.2/gdb/ada-lang.c --- gdb-8.1/gdb/ada-lang.c 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/gdb/ada-lang.c 2018-09-05 07:44:28.000000000 +0000 @@ -48,7 +48,7 @@ #include "annotate.h" #include "valprint.h" #include "source.h" -#include "observer.h" +#include "observable.h" #include "vec.h" #include "stack.h" #include "gdb_vecs.h" @@ -225,9 +225,6 @@ static int find_struct_field (const char *, struct type *, int, struct type **, int *, int *, int *, int *); -static struct value *ada_to_fixed_value_create (struct type *, CORE_ADDR, - struct value *); - static int ada_resolve_function (struct block_symbol *, int, struct value **, int, const char *, struct type *); @@ -916,7 +913,7 @@ ada_main_name (void) { struct bound_minimal_symbol msym; - static char *main_program_name = NULL; + static gdb::unique_xmalloc_ptr main_program_name; /* For Ada, the name of the main procedure is stored in a specific string constant, generated by the binder. Look for that symbol, @@ -934,13 +931,12 @@ if (main_program_name_addr == 0) error (_("Invalid address for Ada main program name.")); - xfree (main_program_name); target_read_string (main_program_name_addr, &main_program_name, 1024, &err_code); if (err_code != 0) return NULL; - return main_program_name; + return main_program_name.get (); } /* The main procedure doesn't seem to be in Ada. */ @@ -3179,7 +3175,7 @@ } arr_type = check_typedef (arr_type); - index_type = TYPE_INDEX_TYPE (arr_type); + index_type = ada_index_type (arr_type, n, "length"); if (index_type != NULL) { struct type *base_type; @@ -3270,7 +3266,6 @@ struct value **argvec; /* Vector of operand types (alloca'ed). */ int nargs; /* Number of operands. */ int oplen; - struct cleanup *old_chain = make_cleanup (null_cleanup, NULL); argvec = NULL; nargs = 0; @@ -3435,7 +3430,7 @@ case OP_VAR_VALUE: if (SYMBOL_DOMAIN (exp->elts[pc + 2].symbol) == UNDEF_DOMAIN) { - struct block_symbol *candidates; + std::vector candidates; int n_candidates; n_candidates = @@ -3443,7 +3438,6 @@ (exp->elts[pc + 2].symbol), exp->elts[pc + 1].block, VAR_DOMAIN, &candidates); - make_cleanup (xfree, candidates); if (n_candidates > 1) { @@ -3487,10 +3481,10 @@ else if (n_candidates == 1) i = 0; else if (deprocedure_p - && !is_nonfunction (candidates, n_candidates)) + && !is_nonfunction (candidates.data (), n_candidates)) { i = ada_resolve_function - (candidates, n_candidates, NULL, 0, + (candidates.data (), n_candidates, NULL, 0, SYMBOL_LINKAGE_NAME (exp->elts[pc + 2].symbol), context_type); if (i < 0) @@ -3501,15 +3495,13 @@ { printf_filtered (_("Multiple matches for %s\n"), SYMBOL_PRINT_NAME (exp->elts[pc + 2].symbol)); - user_select_syms (candidates, n_candidates, 1); + user_select_syms (candidates.data (), n_candidates, 1); i = 0; } exp->elts[pc + 1].block = candidates[i].block; exp->elts[pc + 2].symbol = candidates[i].symbol; - if (innermost_block == NULL - || contained_in (candidates[i].block, innermost_block)) - innermost_block = candidates[i].block; + innermost_block.update (candidates[i]); } if (deprocedure_p @@ -3528,7 +3520,7 @@ if (exp->elts[pc + 3].opcode == OP_VAR_VALUE && SYMBOL_DOMAIN (exp->elts[pc + 5].symbol) == UNDEF_DOMAIN) { - struct block_symbol *candidates; + std::vector candidates; int n_candidates; n_candidates = @@ -3536,14 +3528,13 @@ (exp->elts[pc + 5].symbol), exp->elts[pc + 4].block, VAR_DOMAIN, &candidates); - make_cleanup (xfree, candidates); if (n_candidates == 1) i = 0; else { i = ada_resolve_function - (candidates, n_candidates, + (candidates.data (), n_candidates, argvec, nargs, SYMBOL_LINKAGE_NAME (exp->elts[pc + 5].symbol), context_type); @@ -3554,9 +3545,7 @@ exp->elts[pc + 4].block = candidates[i].block; exp->elts[pc + 5].symbol = candidates[i].symbol; - if (innermost_block == NULL - || contained_in (candidates[i].block, innermost_block)) - innermost_block = candidates[i].block; + innermost_block.update (candidates[i]); } } break; @@ -3583,17 +3572,16 @@ case UNOP_ABS: if (possible_user_operator_p (op, argvec)) { - struct block_symbol *candidates; + std::vector candidates; int n_candidates; n_candidates = ada_lookup_symbol_list (ada_decoded_op_name (op), (struct block *) NULL, VAR_DOMAIN, &candidates); - make_cleanup (xfree, candidates); - i = ada_resolve_function (candidates, n_candidates, argvec, nargs, - ada_decoded_op_name (op), NULL); + i = ada_resolve_function (candidates.data (), n_candidates, argvec, + nargs, ada_decoded_op_name (op), NULL); if (i < 0) break; @@ -3606,12 +3594,10 @@ case OP_TYPE: case OP_REGISTER: - do_cleanups (old_chain); return NULL; } *pos = pc; - do_cleanups (old_chain); if (exp->elts[pc].opcode == OP_VAR_MSYM_VALUE) return evaluate_var_msym_value (EVAL_AVOID_SIDE_EFFECTS, exp->elts[pc + 1].objfile, @@ -4055,7 +4041,7 @@ if (prompt == NULL) prompt = "> "; - args = command_line_input (prompt, 0, annotation_suffix); + args = command_line_input (prompt, annotation_suffix); if (args == NULL) error_no_arg (_("one or more choice numbers")); @@ -4407,7 +4393,7 @@ || TYPE_NFIELDS (type) != 1) return ADA_NOT_RENAMING; - name = type_name_no_tag (type); + name = TYPE_NAME (type); if (name == NULL) return ADA_NOT_RENAMING; @@ -4752,8 +4738,7 @@ return; h = msymbol_hash (name) % HASH_SIZE; - e = (struct cache_entry *) obstack_alloc (&sym_cache->cache_space, - sizeof (*e)); + e = XOBNEW (&sym_cache->cache_space, cache_entry); e->next = sym_cache->root[h]; sym_cache->root[h] = e; e->name = copy @@ -4770,7 +4755,7 @@ searching for all symbols matching LOOKUP_NAME. LOOKUP_NAME is expected to be a symbol name after transformation - for Ada lookups (see ada_name_for_lookup). */ + for Ada lookups. */ static symbol_name_match_type name_match_type_from_name (const char *lookup_name) @@ -5058,7 +5043,7 @@ So, for practical purposes, we consider them as the same. */ static int -symbols_are_identical_enums (struct block_symbol *syms, int nsyms) +symbols_are_identical_enums (const std::vector &syms) { int i; @@ -5070,17 +5055,17 @@ (see ada_identical_enum_types_p). */ /* Quick check: All symbols should have an enum type. */ - for (i = 0; i < nsyms; i++) + for (i = 0; i < syms.size (); i++) if (TYPE_CODE (SYMBOL_TYPE (syms[i].symbol)) != TYPE_CODE_ENUM) return 0; /* Quick check: They should all have the same value. */ - for (i = 1; i < nsyms; i++) + for (i = 1; i < syms.size (); i++) if (SYMBOL_VALUE (syms[i].symbol) != SYMBOL_VALUE (syms[0].symbol)) return 0; /* Quick check: They should all have the same number of enumerals. */ - for (i = 1; i < nsyms; i++) + for (i = 1; i < syms.size (); i++) if (TYPE_NFIELDS (SYMBOL_TYPE (syms[i].symbol)) != TYPE_NFIELDS (SYMBOL_TYPE (syms[0].symbol))) return 0; @@ -5088,7 +5073,7 @@ /* All the sanity checks passed, so we might have a set of identical enumeration types. Perform a more complete comparison of the type of each symbol. */ - for (i = 1; i < nsyms; i++) + for (i = 1; i < syms.size (); i++) if (!ada_identical_enum_types_p (SYMBOL_TYPE (syms[i].symbol), SYMBOL_TYPE (syms[0].symbol))) return 0; @@ -5096,7 +5081,7 @@ return 1; } -/* Remove any non-debugging symbols in SYMS[0 .. NSYMS-1] that definitely +/* Remove any non-debugging symbols in SYMS that definitely duplicate other symbols in the list (The only case I know of where this happens is when object files containing stabs-in-ecoff are linked with files containing ordinary ecoff debugging symbols (or no @@ -5104,34 +5089,34 @@ Returns the number of items in the modified list. */ static int -remove_extra_symbols (struct block_symbol *syms, int nsyms) +remove_extra_symbols (std::vector *syms) { int i, j; /* We should never be called with less than 2 symbols, as there cannot be any extra symbol in that case. But it's easy to handle, since we have nothing to do in that case. */ - if (nsyms < 2) - return nsyms; + if (syms->size () < 2) + return syms->size (); i = 0; - while (i < nsyms) + while (i < syms->size ()) { int remove_p = 0; /* If two symbols have the same name and one of them is a stub type, the get rid of the stub. */ - if (TYPE_STUB (SYMBOL_TYPE (syms[i].symbol)) - && SYMBOL_LINKAGE_NAME (syms[i].symbol) != NULL) + if (TYPE_STUB (SYMBOL_TYPE ((*syms)[i].symbol)) + && SYMBOL_LINKAGE_NAME ((*syms)[i].symbol) != NULL) { - for (j = 0; j < nsyms; j++) + for (j = 0; j < syms->size (); j++) { if (j != i - && !TYPE_STUB (SYMBOL_TYPE (syms[j].symbol)) - && SYMBOL_LINKAGE_NAME (syms[j].symbol) != NULL - && strcmp (SYMBOL_LINKAGE_NAME (syms[i].symbol), - SYMBOL_LINKAGE_NAME (syms[j].symbol)) == 0) + && !TYPE_STUB (SYMBOL_TYPE ((*syms)[j].symbol)) + && SYMBOL_LINKAGE_NAME ((*syms)[j].symbol) != NULL + && strcmp (SYMBOL_LINKAGE_NAME ((*syms)[i].symbol), + SYMBOL_LINKAGE_NAME ((*syms)[j].symbol)) == 0) remove_p = 1; } } @@ -5139,30 +5124,26 @@ /* Two symbols with the same name, same class and same address should be identical. */ - else if (SYMBOL_LINKAGE_NAME (syms[i].symbol) != NULL - && SYMBOL_CLASS (syms[i].symbol) == LOC_STATIC - && is_nondebugging_type (SYMBOL_TYPE (syms[i].symbol))) + else if (SYMBOL_LINKAGE_NAME ((*syms)[i].symbol) != NULL + && SYMBOL_CLASS ((*syms)[i].symbol) == LOC_STATIC + && is_nondebugging_type (SYMBOL_TYPE ((*syms)[i].symbol))) { - for (j = 0; j < nsyms; j += 1) + for (j = 0; j < syms->size (); j += 1) { if (i != j - && SYMBOL_LINKAGE_NAME (syms[j].symbol) != NULL - && strcmp (SYMBOL_LINKAGE_NAME (syms[i].symbol), - SYMBOL_LINKAGE_NAME (syms[j].symbol)) == 0 - && SYMBOL_CLASS (syms[i].symbol) - == SYMBOL_CLASS (syms[j].symbol) - && SYMBOL_VALUE_ADDRESS (syms[i].symbol) - == SYMBOL_VALUE_ADDRESS (syms[j].symbol)) + && SYMBOL_LINKAGE_NAME ((*syms)[j].symbol) != NULL + && strcmp (SYMBOL_LINKAGE_NAME ((*syms)[i].symbol), + SYMBOL_LINKAGE_NAME ((*syms)[j].symbol)) == 0 + && SYMBOL_CLASS ((*syms)[i].symbol) + == SYMBOL_CLASS ((*syms)[j].symbol) + && SYMBOL_VALUE_ADDRESS ((*syms)[i].symbol) + == SYMBOL_VALUE_ADDRESS ((*syms)[j].symbol)) remove_p = 1; } } if (remove_p) - { - for (j = i + 1; j < nsyms; j += 1) - syms[j - 1] = syms[j]; - nsyms -= 1; - } + syms->erase (syms->begin () + i); i += 1; } @@ -5179,18 +5160,18 @@ to ask the user to disambiguate anyways. And if we have to present a multiple-choice menu, it's less confusing if the list isn't missing some choices that were identical and yet distinct. */ - if (symbols_are_identical_enums (syms, nsyms)) - nsyms = 1; + if (symbols_are_identical_enums (*syms)) + syms->resize (1); - return nsyms; + return syms->size (); } /* Given a type that corresponds to a renaming entity, use the type name to extract the scope (package name or function name, fully qualified, and following the GNAT encoding convention) where this renaming has been - defined. The string returned needs to be deallocated after use. */ + defined. */ -static char * +static std::string xget_renaming_scope (struct type *renaming_type) { /* The renaming types adhere to the following convention: @@ -5198,11 +5179,9 @@ So, to extract the scope, we search for the "___XR" extension, and then backtrack until we find the first "__". */ - const char *name = type_name_no_tag (renaming_type); + const char *name = TYPE_NAME (renaming_type); const char *suffix = strstr (name, "___XR"); const char *last; - int scope_len; - char *scope; /* Now, backtrack a bit until we find the first "__". Start looking at suffix - 3, as the part is at least one character long. */ @@ -5212,14 +5191,7 @@ break; /* Make a copy of scope and return it. */ - - scope_len = last - name; - scope = (char *) xmalloc ((scope_len + 1) * sizeof (char)); - - strncpy (scope, name, scope_len); - scope[scope_len] = '\0'; - - return scope; + return std::string (name, last); } /* Return nonzero if NAME corresponds to a package name. */ @@ -5259,21 +5231,14 @@ static int old_renaming_is_invisible (const struct symbol *sym, const char *function_name) { - char *scope; - struct cleanup *old_chain; - if (SYMBOL_CLASS (sym) != LOC_TYPEDEF) return 0; - scope = xget_renaming_scope (SYMBOL_TYPE (sym)); - old_chain = make_cleanup (xfree, scope); + std::string scope = xget_renaming_scope (SYMBOL_TYPE (sym)); /* If the rename has been defined in a package, then it is visible. */ - if (is_package_name (scope)) - { - do_cleanups (old_chain); - return 0; - } + if (is_package_name (scope.c_str ())) + return 0; /* Check that the rename is in the current function scope by checking that its name starts with SCOPE. */ @@ -5285,12 +5250,7 @@ if (startswith (function_name, "_ada_")) function_name += 5; - { - int is_invisible = !startswith (function_name, scope); - - do_cleanups (old_chain); - return is_invisible; - } + return !startswith (function_name, scope.c_str ()); } /* Remove entries from SYMS that corresponds to a renaming entity that @@ -5331,8 +5291,8 @@ the user will be unable to print such rename entities. */ static int -remove_irrelevant_renamings (struct block_symbol *syms, - int nsyms, const struct block *current_block) +remove_irrelevant_renamings (std::vector *syms, + const struct block *current_block) { struct symbol *current_function; const char *current_function_name; @@ -5343,10 +5303,10 @@ a simple variable foo in the same block, discard the latter. First, zero out such symbols, then compress. */ is_new_style_renaming = 0; - for (i = 0; i < nsyms; i += 1) + for (i = 0; i < syms->size (); i += 1) { - struct symbol *sym = syms[i].symbol; - const struct block *block = syms[i].block; + struct symbol *sym = (*syms)[i].symbol; + const struct block *block = (*syms)[i].block; const char *name; const char *suffix; @@ -5361,22 +5321,22 @@ int j; is_new_style_renaming = 1; - for (j = 0; j < nsyms; j += 1) - if (i != j && syms[j].symbol != NULL - && strncmp (name, SYMBOL_LINKAGE_NAME (syms[j].symbol), + for (j = 0; j < syms->size (); j += 1) + if (i != j && (*syms)[j].symbol != NULL + && strncmp (name, SYMBOL_LINKAGE_NAME ((*syms)[j].symbol), name_len) == 0 - && block == syms[j].block) - syms[j].symbol = NULL; + && block == (*syms)[j].block) + (*syms)[j].symbol = NULL; } } if (is_new_style_renaming) { int j, k; - for (j = k = 0; j < nsyms; j += 1) - if (syms[j].symbol != NULL) + for (j = k = 0; j < syms->size (); j += 1) + if ((*syms)[j].symbol != NULL) { - syms[k] = syms[j]; + (*syms)[k] = (*syms)[j]; k += 1; } return k; @@ -5386,38 +5346,33 @@ Abort if unable to do so. */ if (current_block == NULL) - return nsyms; + return syms->size (); current_function = block_linkage_function (current_block); if (current_function == NULL) - return nsyms; + return syms->size (); current_function_name = SYMBOL_LINKAGE_NAME (current_function); if (current_function_name == NULL) - return nsyms; + return syms->size (); /* Check each of the symbols, and remove it from the list if it is a type corresponding to a renaming that is out of the scope of the current block. */ i = 0; - while (i < nsyms) + while (i < syms->size ()) { - if (ada_parse_renaming (syms[i].symbol, NULL, NULL, NULL) + if (ada_parse_renaming ((*syms)[i].symbol, NULL, NULL, NULL) == ADA_OBJECT_RENAMING - && old_renaming_is_invisible (syms[i].symbol, current_function_name)) - { - int j; - - for (j = i + 1; j < nsyms; j += 1) - syms[j - 1] = syms[j]; - nsyms -= 1; - } + && old_renaming_is_invisible ((*syms)[i].symbol, + current_function_name)) + syms->erase (syms->begin () + i); else i += 1; } - return nsyms; + return syms->size (); } /* Add to OBSTACKP all symbols from BLOCK (and its super-blocks) @@ -5809,10 +5764,9 @@ /* Find symbols in DOMAIN matching LOOKUP_NAME, in BLOCK and, if FULL_SEARCH is non-zero, enclosing scope and in global scopes, returning the number of matches. - Sets *RESULTS to point to a newly allocated vector of (SYM,BLOCK) tuples, - indicating the symbols found and the blocks and symbol tables (if - any) in which they were found. This vector should be freed when - no longer useful. + Fills *RESULTS with (SYM,BLOCK) tuples, indicating the symbols + found and the blocks and symbol tables (if any) in which they were + found. When full_search is non-zero, any non-function/non-enumeral symbol match within the nest of blocks whose innermost member is BLOCK, @@ -5827,7 +5781,7 @@ ada_lookup_symbol_list_worker (const lookup_name_info &lookup_name, const struct block *block, domain_enum domain, - struct block_symbol **results, + std::vector *results, int full_search) { int syms_from_global_search; @@ -5840,11 +5794,11 @@ ndefns = num_defns_collected (&obstack); - results_size = obstack_object_size (&obstack); - *results = (struct block_symbol *) malloc (results_size); - memcpy (*results, defns_collected (&obstack, 1), results_size); + struct block_symbol *base = defns_collected (&obstack, 1); + for (int i = 0; i < ndefns; ++i) + results->push_back (base[i]); - ndefns = remove_extra_symbols (*results, ndefns); + ndefns = remove_extra_symbols (results); if (ndefns == 0 && full_search && syms_from_global_search) cache_symbol (ada_lookup_name (lookup_name), domain, NULL, NULL); @@ -5853,21 +5807,21 @@ cache_symbol (ada_lookup_name (lookup_name), domain, (*results)[0].symbol, (*results)[0].block); - ndefns = remove_irrelevant_renamings (*results, ndefns, block); + ndefns = remove_irrelevant_renamings (results, block); return ndefns; } /* Find symbols in DOMAIN matching NAME, in BLOCK and enclosing scope and - in global scopes, returning the number of matches, and setting *RESULTS - to a newly-allocated vector of (SYM,BLOCK) tuples. This newly-allocated - vector should be freed when no longer useful. + in global scopes, returning the number of matches, and filling *RESULTS + with (SYM,BLOCK) tuples. See ada_lookup_symbol_list_worker for further details. */ int ada_lookup_symbol_list (const char *name, const struct block *block, - domain_enum domain, struct block_symbol **results) + domain_enum domain, + std::vector *results) { symbol_name_match_type name_match_type = name_match_type_from_name (name); lookup_name_info lookup_name (name, name_match_type); @@ -5884,19 +5838,15 @@ gdb::function_view callback) { int ndefs, i; - struct block_symbol *results; - struct cleanup *old_chain; + std::vector results; ndefs = ada_lookup_symbol_list_worker (name, block, domain, &results, 0); - old_chain = make_cleanup (xfree, results); for (i = 0; i < ndefs; ++i) { if (!callback (results[i].symbol)) break; } - - do_cleanups (old_chain); } /* The result is as for ada_lookup_symbol_list with FULL_SEARCH set @@ -5936,24 +5886,16 @@ if (is_a_field_of_this != NULL) *is_a_field_of_this = 0; - struct block_symbol *candidates; + std::vector candidates; int n_candidates; - struct cleanup *old_chain; n_candidates = ada_lookup_symbol_list (name, block0, domain, &candidates); - old_chain = make_cleanup (xfree, candidates); if (n_candidates == 0) - { - do_cleanups (old_chain); - return {}; - } + return {}; block_symbol info = candidates[0]; info.symbol = fixup_symbol_section (info.symbol, NULL); - - do_cleanups (old_chain); - return info; } @@ -6474,7 +6416,6 @@ struct objfile *objfile; const struct block *b, *surrounding_static_block = 0; struct block_iterator iter; - struct cleanup *old_chain = make_cleanup (null_cleanup, NULL); gdb_assert (code == TYPE_CODE_UNDEF); @@ -6579,8 +6520,6 @@ lookup_name, text, word); } } - - do_cleanups (old_chain); } /* Field Access */ @@ -8134,8 +8073,8 @@ return 1; else { - const char *type0_name = type_name_no_tag (type0); - const char *type1_name = type_name_no_tag (type1); + const char *type0_name = TYPE_NAME (type0); + const char *type1_name = TYPE_NAME (type1); if (type0_name != NULL && strstr (type0_name, "___XR") != NULL && (type1_name == NULL || strstr (type1_name, "___XR") == NULL)) @@ -8144,18 +8083,15 @@ return 0; } -/* The name of TYPE, which is either its TYPE_NAME, or, if that is - null, its TYPE_TAG_NAME. Null if TYPE is null. */ +/* The name of TYPE, which is its TYPE_NAME. Null if TYPE is + null. */ const char * ada_type_name (struct type *type) { if (type == NULL) return NULL; - else if (TYPE_NAME (type) != NULL) - return TYPE_NAME (type); - else - return TYPE_TAG_NAME (type); + return TYPE_NAME (type); } /* Search the list of "descriptive" types associated to TYPE for a type @@ -8324,7 +8260,6 @@ TYPE_FIELDS (type) = NULL; INIT_CPLUS_SPECIFIC (type); TYPE_NAME (type) = ""; - TYPE_TAG_NAME (type) = NULL; TYPE_LENGTH (type) = 0; return type; } @@ -8383,7 +8318,6 @@ TYPE_ALLOC (rtype, nfields * sizeof (struct field)); memset (TYPE_FIELDS (rtype), 0, sizeof (struct field) * nfields); TYPE_NAME (rtype) = ada_type_name (type); - TYPE_TAG_NAME (rtype) = NULL; TYPE_FIXED_INSTANCE (rtype) = 1; off = 0; @@ -8660,7 +8594,6 @@ memcpy (TYPE_FIELDS (type), TYPE_FIELDS (type0), sizeof (struct field) * nfields); TYPE_NAME (type) = ada_type_name (type0); - TYPE_TAG_NAME (type) = NULL; TYPE_FIXED_INSTANCE (type) = 1; TYPE_LENGTH (type) = 0; } @@ -8710,7 +8643,6 @@ memcpy (TYPE_FIELDS (rtype), TYPE_FIELDS (type), sizeof (struct field) * nfields); TYPE_NAME (rtype) = ada_type_name (type); - TYPE_TAG_NAME (rtype) = NULL; TYPE_FIXED_INSTANCE (rtype) = 1; TYPE_LENGTH (rtype) = TYPE_LENGTH (type); @@ -9321,11 +9253,11 @@ type = check_typedef (type); if (type == NULL || TYPE_CODE (type) != TYPE_CODE_ENUM || !TYPE_STUB (type) - || TYPE_TAG_NAME (type) == NULL) + || TYPE_NAME (type) == NULL) return type; else { - const char *name = TYPE_TAG_NAME (type); + const char *name = TYPE_NAME (type); struct type *type1 = ada_find_any_type (name); if (type1 == NULL) @@ -9356,8 +9288,16 @@ if (type == type0 && val0 != NULL) return val0; - else - return value_from_contents_and_address (type, 0, address); + + if (VALUE_LVAL (val0) != lval_memory) + { + /* Our value does not live in memory; it could be a convenience + variable, for instance. Create a not_lval value using val0's + contents. */ + return value_from_contents (type, value_contents (val0)); + } + + return value_from_contents_and_address (type, 0, address); } /* A value representing VAL, but with a standard (static-sized) type @@ -11798,24 +11738,20 @@ { lookup_name_info lookup_name (name, symbol_name_match_type::FULL); - struct block_symbol *syms; + std::vector syms; int nsyms = ada_lookup_symbol_list_worker (lookup_name, get_selected_block (0), VAR_DOMAIN, &syms, 1); - struct cleanup *old_chain = make_cleanup (xfree, syms); if (nsyms != 1) { - do_cleanups (old_chain); if (err_msg == NULL) return 0; else error (("%s"), err_msg); } - struct value *result = value_of_variable (syms[0].symbol, syms[0].block); - do_cleanups (old_chain); - return result; + return value_of_variable (syms[0].symbol, syms[0].block); } /* Value of integer variable named NAME in the current environment. @@ -12172,7 +12108,7 @@ loaded. If it is not started, this may mean that the symbol is in a shared library. */ - if (ptid_get_pid (inferior_ptid) == 0) + if (inferior_ptid.pid () == 0) error (_("Unable to insert catchpoint. Try to start the program first.")); /* At this point, we know that we are debugging an Ada program and @@ -12363,8 +12299,6 @@ return the message which was associated to the exception, if available. Return NULL if the message could not be retrieved. - The caller must xfree the string after use. - Note: The exception message can be associated to an exception either through the use of the Raise_Exception function, or more simply (Ada 2005 and later), via: @@ -12373,13 +12307,11 @@ */ -static char * +static gdb::unique_xmalloc_ptr ada_exception_message_1 (void) { struct value *e_msg_val; - char *e_msg = NULL; int e_msg_len; - struct cleanup *cleanups; /* For runtimes that support this feature, the exception message is passed as an unbounded string argument called "message". */ @@ -12396,22 +12328,20 @@ if (e_msg_len <= 0) return NULL; - e_msg = (char *) xmalloc (e_msg_len + 1); - cleanups = make_cleanup (xfree, e_msg); - read_memory_string (value_address (e_msg_val), e_msg, e_msg_len + 1); - e_msg[e_msg_len] = '\0'; + gdb::unique_xmalloc_ptr e_msg ((char *) xmalloc (e_msg_len + 1)); + read_memory_string (value_address (e_msg_val), e_msg.get (), e_msg_len + 1); + e_msg.get ()[e_msg_len] = '\0'; - discard_cleanups (cleanups); return e_msg; } /* Same as ada_exception_message_1, except that all exceptions are contained here (returning NULL instead). */ -static char * +static gdb::unique_xmalloc_ptr ada_exception_message (void) { - char *e_msg = NULL; /* Avoid a spurious uninitialized warning. */ + gdb::unique_xmalloc_ptr e_msg; TRY { @@ -12419,7 +12349,7 @@ } CATCH (e, RETURN_MASK_ERROR) { - e_msg = NULL; + e_msg.reset (nullptr); } END_CATCH @@ -12452,7 +12382,7 @@ return result; } -static char *ada_exception_catchpoint_cond_string +static std::string ada_exception_catchpoint_cond_string (const char *excep_string, enum ada_exception_catchpoint_kind ex); @@ -12507,10 +12437,8 @@ struct ada_catchpoint : public breakpoint { - ~ada_catchpoint () override; - /* The name of the specific exception the user specified. */ - char *excep_string; + std::string excep_string; }; /* Parse the exception condition string in the context of each of the @@ -12520,12 +12448,10 @@ create_excep_cond_exprs (struct ada_catchpoint *c, enum ada_exception_catchpoint_kind ex) { - struct cleanup *old_chain; struct bp_location *bl; - char *cond_string; /* Nothing to do if there's no specific exception to catch. */ - if (c->excep_string == NULL) + if (c->excep_string.empty ()) return; /* Same if there are no locations... */ @@ -12534,8 +12460,8 @@ /* Compute the condition expression in text form, from the specific expection we want to catch. */ - cond_string = ada_exception_catchpoint_cond_string (c->excep_string, ex); - old_chain = make_cleanup (xfree, cond_string); + std::string cond_string + = ada_exception_catchpoint_cond_string (c->excep_string.c_str (), ex); /* Iterate over all the catchpoint's locations, and parse an expression for each. */ @@ -12549,7 +12475,7 @@ { const char *s; - s = cond_string; + s = cond_string.c_str (); TRY { exp = parse_exp_1 (&s, bl->address, @@ -12567,15 +12493,6 @@ ada_loc->excep_cond_expr = std::move (exp); } - - do_cleanups (old_chain); -} - -/* ada_catchpoint destructor. */ - -ada_catchpoint::~ada_catchpoint () -{ - xfree (this->excep_string); } /* Implement the ALLOCATE_LOCATION method in the breakpoint_ops @@ -12618,7 +12535,7 @@ int stop; /* With no specific exception, should always stop. */ - if (c->excep_string == NULL) + if (c->excep_string.empty ()) return 1; if (ada_loc->excep_cond_expr == NULL) @@ -12664,7 +12581,6 @@ { struct ui_out *uiout = current_uiout; struct breakpoint *b = bs->breakpoint_at; - char *exception_message; annotate_catchpoint (b->number); @@ -12732,16 +12648,12 @@ break; } - exception_message = ada_exception_message (); + gdb::unique_xmalloc_ptr exception_message = ada_exception_message (); if (exception_message != NULL) { - struct cleanup *cleanups = make_cleanup (xfree, exception_message); - uiout->text (" ("); - uiout->field_string ("exception-message", exception_message); + uiout->field_string ("exception-message", exception_message.get ()); uiout->text (")"); - - do_cleanups (cleanups); } uiout->text (" at "); @@ -12773,12 +12685,12 @@ switch (ex) { case ada_catch_exception: - if (c->excep_string != NULL) + if (!c->excep_string.empty ()) { - char *msg = xstrprintf (_("`%s' Ada exception"), c->excep_string); + std::string msg = string_printf (_("`%s' Ada exception"), + c->excep_string.c_str ()); uiout->field_string ("what", msg); - xfree (msg); } else uiout->field_string ("what", "all Ada exceptions"); @@ -12790,11 +12702,11 @@ break; case ada_catch_handlers: - if (c->excep_string != NULL) + if (!c->excep_string.empty ()) { uiout->field_fmt ("what", _("`%s' Ada exception handlers"), - c->excep_string); + c->excep_string.c_str ()); } else uiout->field_string ("what", "all Ada exceptions handlers"); @@ -12828,13 +12740,11 @@ switch (ex) { case ada_catch_exception: - if (c->excep_string != NULL) + if (!c->excep_string.empty ()) { - char *info = xstrprintf (_("`%s' Ada exception"), c->excep_string); - struct cleanup *old_chain = make_cleanup (xfree, info); - - uiout->text (info); - do_cleanups (old_chain); + std::string info = string_printf (_("`%s' Ada exception"), + c->excep_string.c_str ()); + uiout->text (info.c_str ()); } else uiout->text (_("all Ada exceptions")); @@ -12845,11 +12755,11 @@ break; case ada_catch_handlers: - if (c->excep_string != NULL) + if (!c->excep_string.empty ()) { std::string info = string_printf (_("`%s' Ada exception handlers"), - c->excep_string); + c->excep_string.c_str ()); uiout->text (info.c_str ()); } else @@ -12879,8 +12789,8 @@ { case ada_catch_exception: fprintf_filtered (fp, "catch exception"); - if (c->excep_string != NULL) - fprintf_filtered (fp, " %s", c->excep_string); + if (!c->excep_string.empty ()) + fprintf_filtered (fp, " %s", c->excep_string.c_str ()); break; case ada_catch_exception_unhandled: @@ -13089,40 +12999,6 @@ static struct breakpoint_ops catch_handlers_breakpoint_ops; -/* Return a newly allocated copy of the first space-separated token - in ARGSP, and then adjust ARGSP to point immediately after that - token. - - Return NULL if ARGPS does not contain any more tokens. */ - -static char * -ada_get_next_arg (const char **argsp) -{ - const char *args = *argsp; - const char *end; - char *result; - - args = skip_spaces (args); - if (args[0] == '\0') - return NULL; /* No more arguments. */ - - /* Find the end of the current argument. */ - - end = skip_to_space (args); - - /* Adjust ARGSP to point to the start of the next argument. */ - - *argsp = end; - - /* Make a copy of the current argument and return it. */ - - result = (char *) xmalloc (end - args + 1); - strncpy (result, args, end - args); - result[end - args] = '\0'; - - return result; -} - /* Split the arguments specified in a "catch exception" command. Set EX to the appropriate catchpoint type. Set EXCEP_STRING to the name of the specific exception if @@ -13137,24 +13013,20 @@ catch_ada_exception_command_split (const char *args, bool is_catch_handlers_cmd, enum ada_exception_catchpoint_kind *ex, - char **excep_string, - char **cond_string) + std::string *excep_string, + std::string *cond_string) { - struct cleanup *old_chain = make_cleanup (null_cleanup, NULL); - char *exception_name; - char *cond = NULL; + std::string exception_name; - exception_name = ada_get_next_arg (&args); - if (exception_name != NULL && strcmp (exception_name, "if") == 0) + exception_name = extract_arg (&args); + if (exception_name == "if") { /* This is not an exception name; this is the start of a condition expression for a catchpoint on all exceptions. So, "un-get" this token, and set exception_name to NULL. */ - xfree (exception_name); - exception_name = NULL; + exception_name.clear (); args -= 2; } - make_cleanup (xfree, exception_name); /* Check to see if we have a condition. */ @@ -13167,8 +13039,7 @@ if (args[0] == '\0') error (_("Condition missing after `if' keyword")); - cond = xstrdup (args); - make_cleanup (xfree, cond); + *cond_string = args; args += strlen (args); } @@ -13179,25 +13050,23 @@ if (args[0] != '\0') error (_("Junk at end of expression")); - discard_cleanups (old_chain); - if (is_catch_handlers_cmd) { /* Catch handling of exceptions. */ *ex = ada_catch_handlers; *excep_string = exception_name; } - else if (exception_name == NULL) + else if (exception_name.empty ()) { /* Catch all exceptions. */ *ex = ada_catch_exception; - *excep_string = NULL; + excep_string->clear (); } - else if (strcmp (exception_name, "unhandled") == 0) + else if (exception_name == "unhandled") { /* Catch unhandled exceptions. */ *ex = ada_catch_exception_unhandled; - *excep_string = NULL; + excep_string->clear (); } else { @@ -13205,7 +13074,6 @@ *ex = ada_catch_exception; *excep_string = exception_name; } - *cond_string = cond; } /* Return the name of the symbol on which we should break in order to @@ -13268,29 +13136,25 @@ being raised with the exception that the user wants to catch. This assumes that this condition is used when the inferior just triggered an exception catchpoint. - EX: the type of catchpoints used for catching Ada exceptions. - - The string returned is a newly allocated string that needs to be - deallocated later. */ + EX: the type of catchpoints used for catching Ada exceptions. */ -static char * +static std::string ada_exception_catchpoint_cond_string (const char *excep_string, enum ada_exception_catchpoint_kind ex) { int i; bool is_standard_exc = false; - const char *actual_exc_expr; - char *ref_exc_expr; + std::string result; if (ex == ada_catch_handlers) { /* For exception handlers catchpoints, the condition string does not use the same parameter as for the other exceptions. */ - actual_exc_expr = ("long_integer (GNAT_GCC_exception_Access" - "(gcc_exception).all.occurrence.id)"); + result = ("long_integer (GNAT_GCC_exception_Access" + "(gcc_exception).all.occurrence.id)"); } else - actual_exc_expr = "long_integer (e)"; + result = "long_integer (e)"; /* The standard exceptions are a special case. They are defined in runtime units that have been compiled without debugging info; if @@ -13320,28 +13184,25 @@ } } + result += " = "; + if (is_standard_exc) - ref_exc_expr = xstrprintf ("long_integer (&standard.%s)", excep_string); + string_appendf (result, "long_integer (&standard.%s)", excep_string); else - ref_exc_expr = xstrprintf ("long_integer (&%s)", excep_string); + string_appendf (result, "long_integer (&%s)", excep_string); - char *result = xstrprintf ("%s = %s", actual_exc_expr, ref_exc_expr); - xfree (ref_exc_expr); return result; } /* Return the symtab_and_line that should be used to insert an exception catchpoint of the TYPE kind. - EXCEP_STRING should contain the name of a specific exception that - the catchpoint should catch, or NULL otherwise. - ADDR_STRING returns the name of the function where the real breakpoint that implements the catchpoints is set, depending on the type of catchpoint we need to create. */ static struct symtab_and_line -ada_exception_sal (enum ada_exception_catchpoint_kind ex, char *excep_string, +ada_exception_sal (enum ada_exception_catchpoint_kind ex, const char **addr_string, const struct breakpoint_ops **ops) { const char *sym_name; @@ -13377,15 +13238,11 @@ EX_KIND is the kind of exception catchpoint to be created. - If EXCEPT_STRING is NULL, this catchpoint is expected to trigger + If EXCEPT_STRING is empty, this catchpoint is expected to trigger for all exceptions. Otherwise, EXCEPT_STRING indicates the name - of the exception to which this catchpoint applies. When not NULL, - the string must be allocated on the heap, and its deallocation - is no longer the responsibility of the caller. - - COND_STRING, if not NULL, is the catchpoint condition. This string - must be allocated on the heap, and its deallocation is no longer - the responsibility of the caller. + of the exception to which this catchpoint applies. + + COND_STRING, if not empty, is the catchpoint condition. TEMPFLAG, if nonzero, means that the underlying breakpoint should be temporary. @@ -13395,24 +13252,23 @@ void create_ada_exception_catchpoint (struct gdbarch *gdbarch, enum ada_exception_catchpoint_kind ex_kind, - char *excep_string, - char *cond_string, + const std::string &excep_string, + const std::string &cond_string, int tempflag, int disabled, int from_tty) { const char *addr_string = NULL; const struct breakpoint_ops *ops = NULL; - struct symtab_and_line sal - = ada_exception_sal (ex_kind, excep_string, &addr_string, &ops); + struct symtab_and_line sal = ada_exception_sal (ex_kind, &addr_string, &ops); std::unique_ptr c (new ada_catchpoint ()); init_ada_exception_breakpoint (c.get (), gdbarch, sal, addr_string, ops, tempflag, disabled, from_tty); c->excep_string = excep_string; create_excep_cond_exprs (c.get (), ex_kind); - if (cond_string != NULL) - set_breakpoint_condition (c.get (), cond_string, from_tty); + if (!cond_string.empty ()) + set_breakpoint_condition (c.get (), cond_string.c_str (), from_tty); install_breakpoint (0, std::move (c), 1); } @@ -13426,8 +13282,8 @@ struct gdbarch *gdbarch = get_current_arch (); int tempflag; enum ada_exception_catchpoint_kind ex_kind; - char *excep_string = NULL; - char *cond_string = NULL; + std::string excep_string; + std::string cond_string; tempflag = get_cmd_context (command) == CATCH_TEMPORARY; @@ -13451,8 +13307,8 @@ struct gdbarch *gdbarch = get_current_arch (); int tempflag; enum ada_exception_catchpoint_kind ex_kind; - char *excep_string = NULL; - char *cond_string = NULL; + std::string excep_string; + std::string cond_string; tempflag = get_cmd_context (command) == CATCH_TEMPORARY; @@ -13475,7 +13331,7 @@ (the memory needs to be deallocated after use). */ static void -catch_ada_assert_command_split (const char *args, char **cond_string) +catch_ada_assert_command_split (const char *args, std::string &cond_string) { args = skip_spaces (args); @@ -13487,7 +13343,7 @@ args = skip_spaces (args); if (args[0] == '\0') error (_("condition missing after `if' keyword")); - *cond_string = xstrdup (args); + cond_string.assign (args); } /* Otherwise, there should be no other argument at the end of @@ -13505,15 +13361,15 @@ const char *arg = arg_entry; struct gdbarch *gdbarch = get_current_arch (); int tempflag; - char *cond_string = NULL; + std::string cond_string; tempflag = get_cmd_context (command) == CATCH_TEMPORARY; if (!arg) arg = ""; - catch_ada_assert_command_split (arg, &cond_string); + catch_ada_assert_command_split (arg, cond_string); create_ada_exception_catchpoint (gdbarch, ada_catch_assert, - NULL, cond_string, + "", cond_string, tempflag, 1 /* enabled */, from_tty); } @@ -13523,7 +13379,7 @@ static int ada_is_exception_sym (struct symbol *sym) { - const char *type_name = type_name_no_tag (SYMBOL_TYPE (sym)); + const char *type_name = TYPE_NAME (SYMBOL_TYPE (sym)); return (SYMBOL_CLASS (sym) != LOC_TYPEDEF && SYMBOL_CLASS (sym) != LOC_BLOCK @@ -14504,7 +14360,6 @@ ada_extensions, &ada_exp_descriptor, parse, - ada_yyerror, resolve, ada_printchar, /* Print a character constant */ ada_printstr, /* Function to print string constant */ @@ -14516,6 +14371,7 @@ ada_read_var_value, /* la_read_var_value */ NULL, /* Language specific skip_trampoline */ NULL, /* name_of_this */ + true, /* la_store_sym_names_in_linkage_form_p */ ada_lookup_symbol_nonlocal, /* Looking up non-local symbols. */ basic_lookup_transparent_type, /* lookup_transparent_type */ ada_la_decode, /* Language specific symbol demangler */ @@ -14686,6 +14542,13 @@ CATCH_TEMPORARY); varsize_limit = 65536; + add_setshow_uinteger_cmd ("varsize-limit", class_support, + &varsize_limit, _("\ +Set the maximum number of bytes allowed in a variable-size object."), _("\ +Show the maximum number of bytes allowed in a variable-size object."), _("\ +Attempts to access an object whose size is not a compile-time constant\n\ +and exceeds this limit will cause an error."), + NULL, NULL, &setlist, &showlist); add_info ("exceptions", info_exceptions_command, _("\ @@ -14713,14 +14576,13 @@ DWARF attribute."), NULL, NULL, &maint_set_ada_cmdlist, &maint_show_ada_cmdlist); - decoded_names_store = htab_create_alloc - (256, htab_hash_string, (int (*)(const void *, const void *)) streq, - NULL, xcalloc, xfree); + decoded_names_store = htab_create_alloc (256, htab_hash_string, streq_hash, + NULL, xcalloc, xfree); /* The ada-lang observers. */ - observer_attach_new_objfile (ada_new_objfile_observer); - observer_attach_free_objfile (ada_free_objfile_observer); - observer_attach_inferior_exit (ada_inferior_exit); + gdb::observers::new_objfile.attach (ada_new_objfile_observer); + gdb::observers::free_objfile.attach (ada_free_objfile_observer); + gdb::observers::inferior_exit.attach (ada_inferior_exit); /* Setup various context-specific data. */ ada_inferior_data diff -Nru gdb-8.1/gdb/ada-lang.h gdb-8.2/gdb/ada-lang.h --- gdb-8.1/gdb/ada-lang.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/ada-lang.h 2018-09-05 07:27:13.000000000 +0000 @@ -166,8 +166,6 @@ extern int ada_parse (struct parser_state *); /* Defined in ada-exp.y */ -extern void ada_yyerror (const char *); /* Defined in ada-exp.y */ - /* Defined in ada-typeprint.c */ extern void ada_print_type (struct type *, const char *, struct ui_file *, int, int, const struct type_print_options *); @@ -232,7 +230,8 @@ extern enum language ada_update_initial_language (enum language); extern int ada_lookup_symbol_list (const char *, const struct block *, - domain_enum, struct block_symbol**); + domain_enum, + std::vector *); extern char *ada_fold_name (const char *); @@ -375,12 +374,10 @@ extern char *ada_main_name (void); -extern std::string ada_name_for_lookup (const char *name); - extern void create_ada_exception_catchpoint (struct gdbarch *gdbarch, enum ada_exception_catchpoint_kind ex_kind, - char *excep_string, char *cond_string, int tempflag, int disabled, - int from_tty); + const std::string &excep_string, const std::string &cond_string, int tempflag, + int disabled, int from_tty); /* Some information about a given Ada exception. */ @@ -404,7 +401,7 @@ extern struct ada_task_info *ada_get_task_info_from_ptid (ptid_t ptid); -extern int ada_get_task_number (ptid_t); +extern int ada_get_task_number (thread_info *thread); typedef void (ada_task_list_iterator_ftype) (struct ada_task_info *task); extern void iterate_over_live_ada_tasks diff -Nru gdb-8.1/gdb/ada-lex.c gdb-8.2/gdb/ada-lex.c --- gdb-8.1/gdb/ada-lex.c 2018-01-31 03:02:03.000000000 +0000 +++ gdb-8.2/gdb/ada-lex.c 2018-09-05 07:47:44.000000000 +0000 @@ -1,6 +1,5 @@ -#line 2 "ada-lex.c" -#line 4 "ada-lex.c" +#line 3 "" #define YY_INT_ALIGNED short int @@ -9,7 +8,7 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 -#define YY_FLEX_SUBMINOR_VERSION 1 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -84,10 +83,16 @@ #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + #endif /* ! C99 */ #endif /* ! FLEXINT_H */ +/* begin standard C++ headers. */ + /* TODO: this is always defined, so inline it */ #define yyconst const @@ -100,32 +105,26 @@ /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * - /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START - /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - /* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE yyrestart(yyin ) - +#define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ @@ -162,7 +161,7 @@ #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) #define YY_LINENO_REWIND_TO(ptr) @@ -179,7 +178,6 @@ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -261,7 +259,6 @@ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ @@ -282,62 +279,56 @@ */ static int yy_did_buffer_switch_on_eof; -void yyrestart (FILE *input_file ); -void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); -YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ); -void yy_delete_buffer (YY_BUFFER_STATE b ); -void yy_flush_buffer (YY_BUFFER_STATE b ); -void yypush_buffer_state (YY_BUFFER_STATE new_buffer ); -void yypop_buffer_state (void ); - -static void yyensure_buffer_stack (void ); -static void yy_load_buffer_state (void ); -static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); - -#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) - -YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); -YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ); - -void *yyalloc (yy_size_t ); -void *yyxrealloc (void *,yy_size_t ); -void yyfree (void * ); +void yyrestart ( FILE *input_file ); +void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); +void yy_delete_buffer ( YY_BUFFER_STATE b ); +void yy_flush_buffer ( YY_BUFFER_STATE b ); +void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); +void yypop_buffer_state ( void ); + +static void yyensure_buffer_stack ( void ); +static void yy_load_buffer_state ( void ); +static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); +#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) + +YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); +YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); +YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); + +void *yyalloc ( yy_size_t ); +void *yyxrealloc ( void *, yy_size_t ); +void yyfree ( void * ); #define yy_new_buffer yy_create_buffer - #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer(yyin,YY_BUF_SIZE ); \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer(yyin,YY_BUF_SIZE ); \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ - -typedef unsigned char YY_CHAR; +typedef flex_uint8_t YY_CHAR; FILE *yyin = NULL, *yyout = NULL; typedef int yy_state_type; extern int yylineno; - int yylineno = 1; extern char *yytext; @@ -346,10 +337,10 @@ #endif #define yytext_ptr yytext -static yy_state_type yy_get_previous_state (void ); -static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); -static int yy_get_next_buffer (void ); -static void yynoreturn yy_fatal_error (yyconst char* msg ); +static yy_state_type yy_get_previous_state ( void ); +static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); +static int yy_get_next_buffer ( void ); +static void yynoreturn yy_fatal_error ( const char* msg ); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. @@ -360,7 +351,6 @@ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; - #define YY_NUM_RULES 55 #define YY_END_OF_BUFFER 56 /* This struct is not used in this scanner, @@ -370,7 +360,7 @@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[207] = +static const flex_int16_t yy_accept[207] = { 0, 0, 0, 0, 0, 56, 54, 1, 1, 15, 53, 43, 54, 45, 46, 43, 44, 43, 43, 43, 4, @@ -397,7 +387,7 @@ 13, 0, 18, 10, 10, 0 } ; -static yyconst YY_CHAR yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -429,7 +419,7 @@ 1, 1, 1, 1, 1 } ; -static yyconst YY_CHAR yy_meta[68] = +static const YY_CHAR yy_meta[68] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 5, 9, 5, 5, 5, 5, 5, 5, 10, 5, 11, 11, @@ -440,7 +430,7 @@ 16, 16, 16, 16, 16, 16, 16 } ; -static yyconst flex_uint16_t yy_base[229] = +static const flex_int16_t yy_base[229] = { 0, 0, 0, 649, 638, 646, 1252, 1252, 1252, 62, 0, 1252, 109, 1252, 1252, 623, 1252, 619, 175, 606, 174, @@ -469,7 +459,7 @@ 1186, 1197, 1200, 1216, 634, 645, 1223, 1234 } ; -static yyconst flex_int16_t yy_def[229] = +static const flex_int16_t yy_def[229] = { 0, 206, 1, 1, 1, 206, 206, 206, 206, 207, 208, 206, 206, 206, 206, 206, 206, 206, 209, 206, 206, @@ -498,7 +488,7 @@ 206, 206, 206, 206, 206, 206, 206, 206 } ; -static yyconst flex_uint16_t yy_nxt[1320] = +static const flex_int16_t yy_nxt[1320] = { 0, 6, 7, 8, 7, 6, 9, 6, 10, 11, 12, 13, 14, 15, 11, 16, 17, 18, 19, 20, 21, @@ -647,7 +637,7 @@ 206, 206, 206, 206, 206, 206, 206, 206, 206 } ; -static yyconst flex_int16_t yy_chk[1320] = +static const flex_int16_t yy_chk[1320] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -836,7 +826,7 @@ /* (ada-lval), defined by the parser. */ #line 43 "ada-lex.l" -#include "common/diagnostics.h" +#include "diagnostics.h" /* Some old versions of flex generate code that uses the "register" keyword, which clang warns about. This was observed for example with flex 2.5.35, @@ -879,8 +869,9 @@ static int find_dot_all (const char *); +#line 873 "" -#line 884 "ada-lex.c" +#line 875 "" #define INITIAL 0 #define BEFORE_QUAL_QUOTE 1 @@ -897,36 +888,36 @@ #define YY_EXTRA_TYPE void * #endif -static int yy_init_globals (void ); +static int yy_init_globals ( void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ -int yylex_destroy (void ); +int yylex_destroy ( void ); -int yyget_debug (void ); +int yyget_debug ( void ); -void yyset_debug (int debug_flag ); +void yyset_debug ( int debug_flag ); -YY_EXTRA_TYPE yyget_extra (void ); +YY_EXTRA_TYPE yyget_extra ( void ); -void yyset_extra (YY_EXTRA_TYPE user_defined ); +void yyset_extra ( YY_EXTRA_TYPE user_defined ); -FILE *yyget_in (void ); +FILE *yyget_in ( void ); -void yyset_in (FILE * _in_str ); +void yyset_in ( FILE * _in_str ); -FILE *yyget_out (void ); +FILE *yyget_out ( void ); -void yyset_out (FILE * _out_str ); +void yyset_out ( FILE * _out_str ); - int yyget_leng (void ); + int yyget_leng ( void ); -char *yyget_text (void ); +char *yyget_text ( void ); -int yyget_lineno (void ); +int yyget_lineno ( void ); -void yyset_lineno (int _line_number ); +void yyset_lineno ( int _line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. @@ -934,32 +925,31 @@ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int yywrap (void ); +extern "C" int yywrap ( void ); #else -extern int yywrap (void ); +extern int yywrap ( void ); #endif #endif #ifndef YY_NO_UNPUT - static void yyunput (int c,char *buf_ptr ); + static void yyunput ( int c, char *buf_ptr ); #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT - #ifdef __cplusplus -static int yyinput (void ); +static int yyinput ( void ); #else -static int input (void ); +static int input ( void ); #endif #endif @@ -990,7 +980,7 @@ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - size_t n; \ + int n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ @@ -1003,7 +993,7 @@ else \ { \ errno=0; \ - while ( (result = (int) fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ + while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ @@ -1092,17 +1082,17 @@ if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer(yyin,YY_BUF_SIZE ); + yy_create_buffer( yyin, YY_BUF_SIZE ); } - yy_load_buffer_state( ); + yy_load_buffer_state( ); } { #line 93 "ada-lex.l" -#line 1106 "ada-lex.c" +#line 1096 "" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -1130,9 +1120,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 207 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_base[yy_current_state] != 1252 ); @@ -1547,7 +1537,7 @@ #line 299 "ada-lex.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK -#line 1551 "ada-lex.c" +#line 1541 "" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(BEFORE_QUAL_QUOTE): yyterminate(); @@ -1626,7 +1616,7 @@ { (yy_did_buffer_switch_on_eof) = 0; - if ( yywrap( ) ) + if ( yywrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up @@ -1758,7 +1748,8 @@ b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - yyxrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyxrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ @@ -1790,7 +1781,7 @@ if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; - yyrestart(yyin ); + yyrestart( yyin ); } else @@ -1807,9 +1798,12 @@ if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyxrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyxrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -1842,9 +1836,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 207 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -1870,9 +1864,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 207 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 206); return yy_is_jam ? 0 : yy_current_state; @@ -1943,7 +1937,7 @@ else { /* need more input */ - int offset = (yy_c_buf_p) - (yytext_ptr); + int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) @@ -1960,13 +1954,13 @@ */ /* Reset buffer status. */ - yyrestart(yyin ); + yyrestart( yyin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { - if ( yywrap( ) ) + if ( yywrap( ) ) return 0; if ( ! (yy_did_buffer_switch_on_eof) ) @@ -2004,11 +1998,11 @@ if ( ! YY_CURRENT_BUFFER ){ yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer(yyin,YY_BUF_SIZE ); + yy_create_buffer( yyin, YY_BUF_SIZE ); } - yy_init_buffer(YY_CURRENT_BUFFER,input_file ); - yy_load_buffer_state( ); + yy_init_buffer( YY_CURRENT_BUFFER, input_file ); + yy_load_buffer_state( ); } /** Switch to a different input buffer. @@ -2036,7 +2030,7 @@ } YY_CURRENT_BUFFER_LVALUE = new_buffer; - yy_load_buffer_state( ); + yy_load_buffer_state( ); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag @@ -2064,22 +2058,22 @@ { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); - b->yy_buf_size = (yy_size_t)size; + b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; - yy_init_buffer(b,file ); + yy_init_buffer( b, file ); return b; } @@ -2098,9 +2092,9 @@ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - yyfree((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - yyfree((void *) b ); + yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. @@ -2112,7 +2106,7 @@ { int oerrno = errno; - yy_flush_buffer(b ); + yy_flush_buffer( b ); b->yy_input_file = file; b->yy_fill_buffer = 1; @@ -2155,7 +2149,7 @@ b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) - yy_load_buffer_state( ); + yy_load_buffer_state( ); } /** Pushes the new state onto the stack. The new state becomes @@ -2186,7 +2180,7 @@ YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from yy_switch_to_buffer. */ - yy_load_buffer_state( ); + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } @@ -2205,7 +2199,7 @@ --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { - yy_load_buffer_state( ); + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } @@ -2215,7 +2209,7 @@ */ static void yyensure_buffer_stack (void) { - int num_to_alloc; + yy_size_t num_to_alloc; if (!(yy_buffer_stack)) { @@ -2272,11 +2266,11 @@ /* They forgot to leave room for the EOB's. */ return NULL; - b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = NULL; @@ -2286,7 +2280,7 @@ b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; - yy_switch_to_buffer(b ); + yy_switch_to_buffer( b ); return b; } @@ -2299,10 +2293,10 @@ * @note If you want to scan bytes that may contain NUL values, then use * yy_scan_bytes() instead. */ -YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) +YY_BUFFER_STATE yy_scan_string (const char * yystr ) { - return yy_scan_bytes(yystr,(int) strlen(yystr) ); + return yy_scan_bytes( yystr, (int) strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to yylex() will @@ -2312,7 +2306,7 @@ * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) +YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; @@ -2321,7 +2315,7 @@ /* Get memory for full buffer, including space for trailing EOB's. */ n = (yy_size_t) (_yybytes_len + 2); - buf = (char *) yyalloc(n ); + buf = (char *) yyalloc( n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); @@ -2330,7 +2324,7 @@ buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - b = yy_scan_buffer(buf,n ); + b = yy_scan_buffer( buf, n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); @@ -2346,9 +2340,9 @@ #define YY_EXIT_FAILURE 2 #endif -static void yynoreturn yy_fatal_error (yyconst char* msg ) +static void yynoreturn yy_fatal_error (const char* msg ) { - (void) fprintf( stderr, "%s\n", msg ); + fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } @@ -2483,7 +2477,7 @@ /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ - yy_delete_buffer(YY_CURRENT_BUFFER ); + yy_delete_buffer( YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; yypop_buffer_state(); } @@ -2504,7 +2498,7 @@ */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { int i; @@ -2514,7 +2508,7 @@ #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { int n; for ( n = 0; s[n]; ++n ) @@ -2552,7 +2546,6 @@ #line 299 "ada-lex.l" - #include /* Initialize the lexer for processing new expression. */ diff -Nru gdb-8.1/gdb/ada-lex.l gdb-8.2/gdb/ada-lex.l --- gdb-8.1/gdb/ada-lex.l 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/ada-lex.l 2018-09-05 07:27:13.000000000 +0000 @@ -41,7 +41,7 @@ %{ -#include "common/diagnostics.h" +#include "diagnostics.h" /* Some old versions of flex generate code that uses the "register" keyword, which clang warns about. This was observed for example with flex 2.5.35, diff -Nru gdb-8.1/gdb/ada-tasks.c gdb-8.2/gdb/ada-tasks.c --- gdb-8.1/gdb/ada-tasks.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/ada-tasks.c 2018-09-05 07:44:28.000000000 +0000 @@ -16,7 +16,7 @@ along with this program. If not, see . */ #include "defs.h" -#include "observer.h" +#include "observable.h" #include "gdbcmd.h" #include "target.h" #include "ada-lang.h" @@ -288,22 +288,21 @@ return data; } -/* Return the task number of the task whose ptid is PTID, or zero +/* Return the task number of the task whose thread is THREAD, or zero if the task could not be found. */ int -ada_get_task_number (ptid_t ptid) +ada_get_task_number (thread_info *thread) { int i; - struct inferior *inf = find_inferior_ptid (ptid); + struct inferior *inf = thread->inf; struct ada_tasks_inferior_data *data; gdb_assert (inf != NULL); data = get_ada_tasks_inferior_data (inf); for (i = 0; i < VEC_length (ada_task_info_s, data->task_list); i++) - if (ptid_equal (VEC_index (ada_task_info_s, data->task_list, i)->ptid, - ptid)) + if (VEC_index (ada_task_info_s, data->task_list, i)->ptid == thread->ptid) return i + 1; return 0; /* No matching task found. */ @@ -370,7 +369,7 @@ for (i = 0; i < nb_tasks; i++) { task = VEC_index (ada_task_info_s, data->task_list, i); - if (ptid_equal (task->ptid, ptid)) + if (task->ptid == ptid) return task; } @@ -1111,7 +1110,7 @@ /* Print a star if this task is the current task (or the task currently selected). */ - if (ptid_equal (task_info->ptid, inferior_ptid)) + if (task_info->ptid == inferior_ptid) uiout->field_string ("current", "*"); else uiout->field_skip ("current"); @@ -1125,10 +1124,10 @@ /* Print the associated Thread ID. */ if (uiout->is_mi_like_p ()) { - const int thread_id = ptid_to_global_thread_id (task_info->ptid); + thread_info *thread = find_thread_ptid (task_info->ptid); - if (thread_id != 0) - uiout->field_int ("thread-id", thread_id); + if (thread != NULL) + uiout->field_int ("thread-id", thread->global_num); else /* This should never happen unless there is a bug somewhere, but be resilient when that happens. */ @@ -1203,8 +1202,8 @@ printf_filtered (_("\n")); /* Print the TID and LWP. */ - printf_filtered (_("Thread: %#lx\n"), ptid_get_tid (task_info->ptid)); - printf_filtered (_("LWP: %#lx\n"), ptid_get_lwp (task_info->ptid)); + printf_filtered (_("Thread: %#lx\n"), task_info->ptid.tid ()); + printf_filtered (_("LWP: %#lx\n"), task_info->ptid.lwp ()); /* If set, print the base CPU. */ if (task_info->base_cpu != 0) @@ -1284,7 +1283,7 @@ static void display_current_task_id (void) { - const int current_task = ada_get_task_number (inferior_ptid); + const int current_task = ada_get_task_number (inferior_thread ()); if (current_task == 0) printf_filtered (_("[Current task is unknown]\n")); @@ -1327,12 +1326,13 @@ computed if target_get_ada_task_ptid has not been implemented for our target (yet). Rather than cause an assertion error in that case, it's nicer for the user to just refuse to perform the task switch. */ - if (!find_thread_ptid (task_info->ptid)) + thread_info *tp = find_thread_ptid (task_info->ptid); + if (tp == NULL) error (_("Unable to compute thread ID for task %d.\n" "Cannot switch to this task."), taskno); - switch_to_thread (task_info->ptid); + switch_to_thread (tp); ada_find_printable_frame (get_selected_frame (NULL)); printf_filtered (_("[Switching to task %d]\n"), taskno); print_stack_frame (get_selected_frame (NULL), @@ -1444,8 +1444,8 @@ ada_tasks_inferior_data_handle = register_inferior_data (); /* Attach various observers. */ - observer_attach_normal_stop (ada_tasks_normal_stop_observer); - observer_attach_new_objfile (ada_tasks_new_objfile_observer); + gdb::observers::normal_stop.attach (ada_tasks_normal_stop_observer); + gdb::observers::new_objfile.attach (ada_tasks_new_objfile_observer); /* Some new commands provided by this module. */ add_info ("tasks", info_tasks_command, diff -Nru gdb-8.1/gdb/ada-valprint.c gdb-8.2/gdb/ada-valprint.c --- gdb-8.1/gdb/ada-valprint.c 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/gdb/ada-valprint.c 2018-09-05 07:27:13.000000000 +0000 @@ -88,9 +88,11 @@ index_type = TYPE_TARGET_TYPE (index_type); } + /* Don't print the lower bound if it's the default one. */ switch (TYPE_CODE (index_type)) { case TYPE_CODE_BOOL: + case TYPE_CODE_CHAR: if (low_bound == 0) return 0; break; @@ -139,11 +141,45 @@ { LONGEST high; + struct type *base_index_type; if (get_discrete_bounds (index_type, &low, &high) < 0) len = 1; else len = high - low + 1; + + if (TYPE_CODE (index_type) == TYPE_CODE_RANGE) + base_index_type = TYPE_TARGET_TYPE (index_type); + else + base_index_type = index_type; + + if (TYPE_CODE (base_index_type) == TYPE_CODE_ENUM) + { + LONGEST low_pos, high_pos; + + /* Non-contiguous enumerations types can by used as index types + so the array length is computed from the positions of the + first and last literal in the enumeration type, and not from + the values of these literals. */ + + if (!discrete_position (base_index_type, low, &low_pos) + || !discrete_position (base_index_type, high, &high_pos)) + { + warning (_("unable to get positions in array, use bounds instead")); + low_pos = low; + high_pos = high; + } + + /* The array length should normally be HIGH_POS - LOW_POS + 1. + But in Ada we allow LOW_POS to be greater than HIGH_POS for + empty arrays. In that situation, the array length is just zero, + not negative! */ + + if (low_pos > high_pos) + len = 0; + else + len = high_pos - low_pos + 1; + } } i = 0; diff -Nru gdb-8.1/gdb/ada-varobj.c gdb-8.2/gdb/ada-varobj.c --- gdb-8.1/gdb/ada-varobj.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/ada-varobj.c 2018-09-05 07:27:13.000000000 +0000 @@ -872,7 +872,7 @@ static int ada_number_of_children (const struct varobj *var) { - return ada_varobj_get_number_of_children (var->value, var->type); + return ada_varobj_get_number_of_children (var->value.get (), var->type); } static std::string @@ -884,7 +884,7 @@ static std::string ada_name_of_child (const struct varobj *parent, int index) { - return ada_varobj_get_name_of_child (parent->value, parent->type, + return ada_varobj_get_name_of_child (parent->value.get (), parent->type, parent->name.c_str (), index); } @@ -894,7 +894,7 @@ const struct varobj *parent = child->parent; const char *parent_path_expr = varobj_get_path_expr (parent); - return ada_varobj_get_path_expr_of_child (parent->value, + return ada_varobj_get_path_expr_of_child (parent->value.get (), parent->type, parent->name.c_str (), parent_path_expr, @@ -904,14 +904,14 @@ static struct value * ada_value_of_child (const struct varobj *parent, int index) { - return ada_varobj_get_value_of_child (parent->value, parent->type, + return ada_varobj_get_value_of_child (parent->value.get (), parent->type, parent->name.c_str (), index); } static struct type * ada_type_of_child (const struct varobj *parent, int index) { - return ada_varobj_get_type_of_child (parent->value, parent->type, + return ada_varobj_get_type_of_child (parent->value.get (), parent->type, index); } @@ -923,7 +923,8 @@ varobj_formatted_print_options (&opts, format); - return ada_varobj_get_value_of_variable (var->value, var->type, &opts); + return ada_varobj_get_value_of_variable (var->value.get (), var->type, + &opts); } /* Implement the "value_is_changeable_p" routine for Ada. */ @@ -931,7 +932,8 @@ static bool ada_value_is_changeable_p (const struct varobj *var) { - struct type *type = var->value ? value_type (var->value) : var->type; + struct type *type = (var->value != nullptr + ? value_type (var->value.get ()) : var->type); if (ada_is_array_descriptor_type (type) && TYPE_CODE (type) == TYPE_CODE_TYPEDEF) diff -Nru gdb-8.1/gdb/agent.c gdb-8.2/gdb/agent.c --- gdb-8.1/gdb/agent.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/agent.c 2018-09-05 07:27:13.000000000 +0000 @@ -51,7 +51,7 @@ can_use_agent = can_use_agent_off; } -#include "observer.h" +#include "observable.h" #include "objfiles.h" static void @@ -66,7 +66,7 @@ void _initialize_agent (void) { - observer_attach_new_objfile (agent_new_objfile); + gdb::observers::new_objfile.attach (agent_new_objfile); add_setshow_enum_cmd ("agent", class_run, can_use_agent_enum, diff -Nru gdb-8.1/gdb/aix-thread.c gdb-8.2/gdb/aix-thread.c --- gdb-8.1/gdb/aix-thread.c 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/gdb/aix-thread.c 2018-09-05 07:27:13.000000000 +0000 @@ -46,7 +46,7 @@ #include "regcache.h" #include "gdbcmd.h" #include "ppc-tdep.h" -#include "observer.h" +#include "observable.h" #include "objfiles.h" #include @@ -70,7 +70,7 @@ /* Return whether to treat PID as a debuggable thread id. */ -#define PD_TID(ptid) (pd_active && ptid_get_tid (ptid) != 0) +#define PD_TID(ptid) (pd_active && ptid.tid () != 0) /* pthdb_user_t value that we pass to pthdb functions. 0 causes PTHDB_BAD_USER errors, so use 1. */ @@ -108,7 +108,47 @@ /* This module's target-specific operations, active while pd_able is true. */ -static struct target_ops aix_thread_ops; +static const target_info aix_thread_target_info = { + "aix-threads", + N_("AIX pthread support"), + N_("AIX pthread support") +}; + +class aix_thread_target final : public target_ops +{ +public: + aix_thread_target () + { to_stratum = thread_stratum; } + + const target_info &info () const override + { return aix_thread_target_info; } + + void detach (inferior *, int) override; + void resume (ptid_t, int, enum gdb_signal) override; + ptid_t wait (ptid_t, struct target_waitstatus *, int) override; + + void fetch_registers (struct regcache *, int) override; + void store_registers (struct regcache *, int) override; + + enum target_xfer_status xfer_partial (enum target_object object, + const char *annex, + gdb_byte *readbuf, + const gdb_byte *writebuf, + ULONGEST offset, ULONGEST len, + ULONGEST *xfered_len) override; + + void mourn_inferior () override; + + bool thread_alive (ptid_t ptid) override; + + const char *pid_to_str (ptid_t) override; + + const char *extra_thread_info (struct thread_info *) override; + + ptid_t get_ada_task_ptid (long lwp, long thread) override; +}; + +static aix_thread_target aix_thread_ops; /* Address of the function that libpthread will call when libpthdebug is ready to be initialized. */ @@ -285,7 +325,7 @@ ptid = *ptidp; if (PD_TID (ptid)) - *ptidp = pid_to_ptid (ptid_get_pid (ptid)); + *ptidp = ptid_t (ptid.pid ()); } /* pthdb callback: for from 0 to COUNT, set SYMBOLS[].addr to @@ -633,17 +673,17 @@ { int pid1, pid2; - if (ptid_get_pid (ptid1) < ptid_get_pid (ptid2)) + if (ptid1.pid () < ptid2.pid ()) return -1; - else if (ptid_get_pid (ptid1) > ptid_get_pid (ptid2)) + else if (ptid1.pid () > ptid2.pid ()) return 1; - else if (ptid_get_tid (ptid1) < ptid_get_tid (ptid2)) + else if (ptid1.tid () < ptid2.tid ()) return -1; - else if (ptid_get_tid (ptid1) > ptid_get_tid (ptid2)) + else if (ptid1.tid () > ptid2.tid ()) return 1; - else if (ptid_get_lwp (ptid1) < ptid_get_lwp (ptid2)) + else if (ptid1.lwp () < ptid2.lwp ()) return -1; - else if (ptid_get_lwp (ptid1) > ptid_get_lwp (ptid2)) + else if (ptid1.lwp () > ptid2.lwp ()) return 1; else return 0; @@ -672,7 +712,7 @@ while (1) { - if (getthrds (ptid_get_pid (inferior_ptid), &thrinf, + if (getthrds (inferior_ptid.pid (), &thrinf, sizeof (thrinf), &ktid, 1) != 1) break; @@ -755,12 +795,12 @@ /* Apply differences between the two arrays to GDB's thread list. */ - infpid = ptid_get_pid (inferior_ptid); + infpid = inferior_ptid.pid (); for (pi = gi = 0; pi < pcount || gi < gcount;) { if (pi == pcount) { - delete_thread (gbuf[gi]->ptid); + delete_thread (gbuf[gi]); gi++; } else if (gi == gcount) @@ -778,7 +818,7 @@ ptid_t pptid, gptid; int cmp_result; - pptid = ptid_build (infpid, 0, pbuf[pi].pthid); + pptid = ptid_t (infpid, 0, pbuf[pi].pthid); gptid = gbuf[gi]->ptid; pdtid = pbuf[pi].pdtid; tid = pbuf[pi].tid; @@ -796,7 +836,7 @@ } else if (cmp_result > 0) { - delete_thread (gptid); + delete_thread (gbuf[gi]); gi++; } else @@ -980,21 +1020,20 @@ /* Detach from the process attached to by aix_thread_attach(). */ -static void -aix_thread_detach (struct target_ops *ops, const char *args, int from_tty) +void +aix_thread_target::detach (inferior *inf, int from_tty) { - struct target_ops *beneath = find_target_beneath (ops); + target_ops *beneath = this->beneath (); pd_disable (); - beneath->to_detach (beneath, args, from_tty); + beneath->detach (inf, from_tty); } /* Tell the inferior process to continue running thread PID if != -1 and all threads otherwise. */ -static void -aix_thread_resume (struct target_ops *ops, - ptid_t ptid, int step, enum gdb_signal sig) +void +aix_thread_target::resume (ptid_t ptid, int step, enum gdb_signal sig) { struct thread_info *thread; pthdb_tid_t tid[2]; @@ -1002,24 +1041,23 @@ if (!PD_TID (ptid)) { scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid); - struct target_ops *beneath = find_target_beneath (ops); - inferior_ptid = pid_to_ptid (ptid_get_pid (inferior_ptid)); - beneath->to_resume (beneath, ptid, step, sig); + inferior_ptid = ptid_t (inferior_ptid.pid ()); + beneath ()->resume (ptid, step, sig); } else { thread = find_thread_ptid (ptid); if (!thread) error (_("aix-thread resume: unknown pthread %ld"), - ptid_get_lwp (ptid)); + ptid.lwp ()); aix_thread_info *priv = get_aix_thread_info (thread); tid[0] = priv->tid; if (tid[0] == PTHDB_INVALID_TID) error (_("aix-thread resume: no tid for pthread %ld"), - ptid_get_lwp (ptid)); + ptid.lwp ()); tid[1] = 0; if (arch64) @@ -1035,23 +1073,21 @@ If an error occurs, return -1, else return the pid of the stopped thread. */ -static ptid_t -aix_thread_wait (struct target_ops *ops, - ptid_t ptid, struct target_waitstatus *status, int options) +ptid_t +aix_thread_target::wait (ptid_t ptid, struct target_waitstatus *status, + int options) { - struct target_ops *beneath = find_target_beneath (ops); - { scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid); pid_to_prc (&ptid); - inferior_ptid = pid_to_ptid (ptid_get_pid (inferior_ptid)); - ptid = beneath->to_wait (beneath, ptid, status, options); + inferior_ptid = ptid_t (inferior_ptid.pid ()); + ptid = beneath ()->wait (ptid, status, options); } - if (ptid_get_pid (ptid) == -1) - return pid_to_ptid (-1); + if (ptid.pid () == -1) + return ptid_t (-1); /* Check whether libpthdebug might be ready to be initialized. */ if (!pd_active && status->kind == TARGET_WAITKIND_STOPPED @@ -1077,8 +1113,8 @@ int regno; for (regno = 0; regno < ppc_num_gprs; regno++) - regcache_raw_supply (regcache, tdep->ppc_gp0_regnum + regno, - (char *) (vals + regno)); + regcache->raw_supply (tdep->ppc_gp0_regnum + regno, + (char *) (vals + regno)); } /* Record that 32-bit register REGNO contains VAL. */ @@ -1086,7 +1122,7 @@ static void supply_reg32 (struct regcache *regcache, int regno, uint32_t val) { - regcache_raw_supply (regcache, regno, (char *) &val); + regcache->raw_supply (regno, (char *) &val); } /* Record that the floating-point registers contain VALS. */ @@ -1105,8 +1141,8 @@ for (regno = tdep->ppc_fp0_regnum; regno < tdep->ppc_fp0_regnum + ppc_num_fprs; regno++) - regcache_raw_supply (regcache, regno, - (char *) (vals + regno - tdep->ppc_fp0_regnum)); + regcache->raw_supply (regno, + (char *) (vals + regno - tdep->ppc_fp0_regnum)); } /* Predicate to test whether given register number is a "special" register. */ @@ -1138,16 +1174,14 @@ struct gdbarch *gdbarch = regcache->arch (); struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); - regcache_raw_supply (regcache, gdbarch_pc_regnum (gdbarch), - (char *) &iar); - regcache_raw_supply (regcache, tdep->ppc_ps_regnum, (char *) &msr); - regcache_raw_supply (regcache, tdep->ppc_cr_regnum, (char *) &cr); - regcache_raw_supply (regcache, tdep->ppc_lr_regnum, (char *) &lr); - regcache_raw_supply (regcache, tdep->ppc_ctr_regnum, (char *) &ctr); - regcache_raw_supply (regcache, tdep->ppc_xer_regnum, (char *) &xer); + regcache->raw_supply (gdbarch_pc_regnum (gdbarch), (char *) &iar); + regcache->raw_supply (tdep->ppc_ps_regnum, (char *) &msr); + regcache->raw_supply (tdep->ppc_cr_regnum, (char *) &cr); + regcache->raw_supply (tdep->ppc_lr_regnum, (char *) &lr); + regcache->raw_supply (tdep->ppc_ctr_regnum, (char *) &ctr); + regcache->raw_supply (tdep->ppc_xer_regnum, (char *) &xer); if (tdep->ppc_fpscr_regnum >= 0) - regcache_raw_supply (regcache, tdep->ppc_fpscr_regnum, - (char *) &fpscr); + regcache->raw_supply (tdep->ppc_fpscr_regnum, (char *) &fpscr); } /* Record that the special registers contain the specified 32-bit @@ -1162,16 +1196,14 @@ struct gdbarch *gdbarch = regcache->arch (); struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); - regcache_raw_supply (regcache, gdbarch_pc_regnum (gdbarch), - (char *) &iar); - regcache_raw_supply (regcache, tdep->ppc_ps_regnum, (char *) &msr); - regcache_raw_supply (regcache, tdep->ppc_cr_regnum, (char *) &cr); - regcache_raw_supply (regcache, tdep->ppc_lr_regnum, (char *) &lr); - regcache_raw_supply (regcache, tdep->ppc_ctr_regnum, (char *) &ctr); - regcache_raw_supply (regcache, tdep->ppc_xer_regnum, (char *) &xer); + regcache->raw_supply (gdbarch_pc_regnum (gdbarch), (char *) &iar); + regcache->raw_supply (tdep->ppc_ps_regnum, (char *) &msr); + regcache->raw_supply (tdep->ppc_cr_regnum, (char *) &cr); + regcache->raw_supply (tdep->ppc_lr_regnum, (char *) &lr); + regcache->raw_supply (tdep->ppc_ctr_regnum, (char *) &ctr); + regcache->raw_supply (tdep->ppc_xer_regnum, (char *) &xer); if (tdep->ppc_fpscr_regnum >= 0) - regcache_raw_supply (regcache, tdep->ppc_fpscr_regnum, - (char *) &fpscr); + regcache->raw_supply (tdep->ppc_fpscr_regnum, (char *) &fpscr); } /* Fetch all registers from pthread PDTID, which doesn't have a kernel @@ -1310,8 +1342,7 @@ sprs32.pt_fpscr); if (tdep->ppc_mq_regnum >= 0) - regcache_raw_supply (regcache, tdep->ppc_mq_regnum, - (char *) &sprs32.pt_mq); + regcache->raw_supply (tdep->ppc_mq_regnum, (char *) &sprs32.pt_mq); } } } @@ -1319,19 +1350,17 @@ /* Fetch register REGNO if != -1 or all registers otherwise from the thread/process connected to REGCACHE. */ -static void -aix_thread_fetch_registers (struct target_ops *ops, - struct regcache *regcache, int regno) +void +aix_thread_target::fetch_registers (struct regcache *regcache, int regno) { struct thread_info *thread; pthdb_tid_t tid; - struct target_ops *beneath = find_target_beneath (ops); - if (!PD_TID (regcache_get_ptid (regcache))) - beneath->to_fetch_registers (beneath, regcache, regno); + if (!PD_TID (regcache->ptid ())) + beneath ()->fetch_registers (regcache, regno); else { - thread = find_thread_ptid (regcache_get_ptid (regcache)); + thread = find_thread_ptid (regcache->ptid ()); aix_thread_info *priv = get_aix_thread_info (thread); tid = priv->tid; @@ -1351,10 +1380,9 @@ int regno; for (regno = 0; regno < ppc_num_gprs; regno++) - if (REG_VALID == regcache_register_status (regcache, - tdep->ppc_gp0_regnum + regno)) - regcache_raw_collect (regcache, tdep->ppc_gp0_regnum + regno, - vals + regno); + if (REG_VALID == regcache->get_register_status + (tdep->ppc_gp0_regnum + regno)) + regcache->raw_collect (tdep->ppc_gp0_regnum + regno, vals + regno); } static void @@ -1364,10 +1392,9 @@ int regno; for (regno = 0; regno < ppc_num_gprs; regno++) - if (REG_VALID == regcache_register_status (regcache, - tdep->ppc_gp0_regnum + regno)) - regcache_raw_collect (regcache, tdep->ppc_gp0_regnum + regno, - vals + regno); + if (REG_VALID == regcache->get_register_status + (tdep->ppc_gp0_regnum + regno)) + regcache->raw_collect (tdep->ppc_gp0_regnum + regno, vals + regno); } /* Store the floating point registers into a double array. */ @@ -1385,9 +1412,8 @@ for (regno = tdep->ppc_fp0_regnum; regno < tdep->ppc_fp0_regnum + ppc_num_fprs; regno++) - if (REG_VALID == regcache_register_status (regcache, regno)) - regcache_raw_collect (regcache, regno, - vals + regno - tdep->ppc_fp0_regnum); + if (REG_VALID == regcache->get_register_status (regno)) + regcache->raw_collect (regno, vals + regno - tdep->ppc_fp0_regnum); } /* Store the special registers into the specified 64-bit and 32-bit @@ -1410,23 +1436,21 @@ gdb_assert (sizeof (*iar) == register_size (gdbarch, gdbarch_pc_regnum (gdbarch))); - if (REG_VALID == regcache_register_status (regcache, - gdbarch_pc_regnum (gdbarch))) - regcache_raw_collect (regcache, gdbarch_pc_regnum (gdbarch), iar); - if (REG_VALID == regcache_register_status (regcache, tdep->ppc_ps_regnum)) - regcache_raw_collect (regcache, tdep->ppc_ps_regnum, msr); - if (REG_VALID == regcache_register_status (regcache, tdep->ppc_cr_regnum)) - regcache_raw_collect (regcache, tdep->ppc_cr_regnum, cr); - if (REG_VALID == regcache_register_status (regcache, tdep->ppc_lr_regnum)) - regcache_raw_collect (regcache, tdep->ppc_lr_regnum, lr); - if (REG_VALID == regcache_register_status (regcache, tdep->ppc_ctr_regnum)) - regcache_raw_collect (regcache, tdep->ppc_ctr_regnum, ctr); - if (REG_VALID == regcache_register_status (regcache, tdep->ppc_xer_regnum)) - regcache_raw_collect (regcache, tdep->ppc_xer_regnum, xer); + if (REG_VALID == regcache->get_register_status (gdbarch_pc_regnum (gdbarch))) + regcache->raw_collect (gdbarch_pc_regnum (gdbarch), iar); + if (REG_VALID == regcache->get_register_status (tdep->ppc_ps_regnum)) + regcache->raw_collect (tdep->ppc_ps_regnum, msr); + if (REG_VALID == regcache->get_register_status (tdep->ppc_cr_regnum)) + regcache->raw_collect (tdep->ppc_cr_regnum, cr); + if (REG_VALID == regcache->get_register_status (tdep->ppc_lr_regnum)) + regcache->raw_collect (tdep->ppc_lr_regnum, lr); + if (REG_VALID == regcache->get_register_status (tdep->ppc_ctr_regnum)) + regcache->raw_collect (tdep->ppc_ctr_regnum, ctr); + if (REG_VALID == regcache->get_register_status (tdep->ppc_xer_regnum)) + regcache->raw_collect (tdep->ppc_xer_regnum, xer); if (tdep->ppc_fpscr_regnum >= 0 - && REG_VALID == regcache_register_status (regcache, - tdep->ppc_fpscr_regnum)) - regcache_raw_collect (regcache, tdep->ppc_fpscr_regnum, fpscr); + && REG_VALID == regcache->get_register_status (tdep->ppc_fpscr_regnum)) + regcache->raw_collect (tdep->ppc_fpscr_regnum, fpscr); } static void @@ -1446,22 +1470,21 @@ gdb_assert (sizeof (*iar) == register_size (gdbarch, gdbarch_pc_regnum (gdbarch))); - if (REG_VALID == regcache_register_status (regcache, - gdbarch_pc_regnum (gdbarch))) - regcache_raw_collect (regcache, gdbarch_pc_regnum (gdbarch), iar); - if (REG_VALID == regcache_register_status (regcache, tdep->ppc_ps_regnum)) - regcache_raw_collect (regcache, tdep->ppc_ps_regnum, msr); - if (REG_VALID == regcache_register_status (regcache, tdep->ppc_cr_regnum)) - regcache_raw_collect (regcache, tdep->ppc_cr_regnum, cr); - if (REG_VALID == regcache_register_status (regcache, tdep->ppc_lr_regnum)) - regcache_raw_collect (regcache, tdep->ppc_lr_regnum, lr); - if (REG_VALID == regcache_register_status (regcache, tdep->ppc_ctr_regnum)) - regcache_raw_collect (regcache, tdep->ppc_ctr_regnum, ctr); - if (REG_VALID == regcache_register_status (regcache, tdep->ppc_xer_regnum)) - regcache_raw_collect (regcache, tdep->ppc_xer_regnum, xer); + if (REG_VALID == regcache->get_register_status (gdbarch_pc_regnum (gdbarch))) + regcache->raw_collect (gdbarch_pc_regnum (gdbarch), iar); + if (REG_VALID == regcache->get_register_status (tdep->ppc_ps_regnum)) + regcache->raw_collect (tdep->ppc_ps_regnum, msr); + if (REG_VALID == regcache->get_register_status (tdep->ppc_cr_regnum)) + regcache->raw_collect (tdep->ppc_cr_regnum, cr); + if (REG_VALID == regcache->get_register_status (tdep->ppc_lr_regnum)) + regcache->raw_collect (tdep->ppc_lr_regnum, lr); + if (REG_VALID == regcache->get_register_status (tdep->ppc_ctr_regnum)) + regcache->raw_collect (tdep->ppc_ctr_regnum, ctr); + if (REG_VALID == regcache->get_register_status (tdep->ppc_xer_regnum)) + regcache->raw_collect (tdep->ppc_xer_regnum, xer); if (tdep->ppc_fpscr_regnum >= 0 - && REG_VALID == regcache_register_status (regcache, tdep->ppc_fpscr_regnum)) - regcache_raw_collect (regcache, tdep->ppc_fpscr_regnum, fpscr); + && REG_VALID == regcache->get_register_status (tdep->ppc_fpscr_regnum)) + regcache->raw_collect (tdep->ppc_fpscr_regnum, fpscr); } /* Store all registers into pthread PDTID, which doesn't have a kernel @@ -1495,19 +1518,16 @@ /* Collect general-purpose register values from the regcache. */ for (i = 0; i < ppc_num_gprs; i++) - if (REG_VALID == regcache_register_status (regcache, - tdep->ppc_gp0_regnum + i)) + if (REG_VALID == regcache->get_register_status (tdep->ppc_gp0_regnum + i)) { if (arch64) { - regcache_raw_collect (regcache, tdep->ppc_gp0_regnum + i, - (void *) &int64); + regcache->raw_collect (tdep->ppc_gp0_regnum + i, (void *) &int64); ctx.gpr[i] = int64; } else { - regcache_raw_collect (regcache, tdep->ppc_gp0_regnum + i, - (void *) &int32); + regcache->raw_collect (tdep->ppc_gp0_regnum + i, (void *) &int32); ctx.gpr[i] = int32; } } @@ -1531,23 +1551,20 @@ fill_sprs32 (regcache, &tmp_iar, &tmp_msr, &tmp_cr, &tmp_lr, &tmp_ctr, &tmp_xer, &tmp_fpscr); - if (REG_VALID == regcache_register_status (regcache, - gdbarch_pc_regnum (gdbarch))) + if (REG_VALID == regcache->get_register_status + (gdbarch_pc_regnum (gdbarch))) ctx.iar = tmp_iar; - if (REG_VALID == regcache_register_status (regcache, tdep->ppc_ps_regnum)) + if (REG_VALID == regcache->get_register_status (tdep->ppc_ps_regnum)) ctx.msr = tmp_msr; - if (REG_VALID == regcache_register_status (regcache, tdep->ppc_cr_regnum)) + if (REG_VALID == regcache->get_register_status (tdep->ppc_cr_regnum)) ctx.cr = tmp_cr; - if (REG_VALID == regcache_register_status (regcache, tdep->ppc_lr_regnum)) + if (REG_VALID == regcache->get_register_status (tdep->ppc_lr_regnum)) ctx.lr = tmp_lr; - if (REG_VALID == regcache_register_status (regcache, - tdep->ppc_ctr_regnum)) + if (REG_VALID == regcache->get_register_status (tdep->ppc_ctr_regnum)) ctx.ctr = tmp_ctr; - if (REG_VALID == regcache_register_status (regcache, - tdep->ppc_xer_regnum)) + if (REG_VALID == regcache->get_register_status (tdep->ppc_xer_regnum)) ctx.xer = tmp_xer; - if (REG_VALID == regcache_register_status (regcache, - tdep->ppc_xer_regnum)) + if (REG_VALID == regcache->get_register_status (tdep->ppc_xer_regnum)) ctx.fpscr = tmp_fpscr; } @@ -1661,10 +1678,9 @@ sprs32.pt_fpscr = tmp_fpscr; if (tdep->ppc_mq_regnum >= 0) - if (REG_VALID == regcache_register_status (regcache, - tdep->ppc_mq_regnum)) - regcache_raw_collect (regcache, tdep->ppc_mq_regnum, - &sprs32.pt_mq); + if (REG_VALID == regcache->get_register_status + (tdep->ppc_mq_regnum)) + regcache->raw_collect (tdep->ppc_mq_regnum, &sprs32.pt_mq); ptrace32 (PTT_WRITE_SPRS, tid, (uintptr_t) &sprs32, 0, NULL); } @@ -1674,19 +1690,17 @@ /* Store gdb's current view of the register set into the thread/process connected to REGCACHE. */ -static void -aix_thread_store_registers (struct target_ops *ops, - struct regcache *regcache, int regno) +void +aix_thread_target::store_registers (struct regcache *regcache, int regno) { struct thread_info *thread; pthdb_tid_t tid; - struct target_ops *beneath = find_target_beneath (ops); - if (!PD_TID (regcache_get_ptid (regcache))) - beneath->to_store_registers (beneath, regcache, regno); + if (!PD_TID (regcache->ptid ())) + beneath ()->store_registers (regcache, regno); else { - thread = find_thread_ptid (regcache_get_ptid (regcache)); + thread = find_thread_ptid (regcache->ptid ()); aix_thread_info *priv = get_aix_thread_info (thread); tid = priv->tid; @@ -1699,40 +1713,38 @@ /* Implement the to_xfer_partial target_ops method. */ -static enum target_xfer_status -aix_thread_xfer_partial (struct target_ops *ops, enum target_object object, - const char *annex, gdb_byte *readbuf, - const gdb_byte *writebuf, - ULONGEST offset, ULONGEST len, ULONGEST *xfered_len) +enum target_xfer_status +aix_thread_target::xfer_partial (enum target_object object, + const char *annex, gdb_byte *readbuf, + const gdb_byte *writebuf, + ULONGEST offset, ULONGEST len, + ULONGEST *xfered_len) { scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid); - struct target_ops *beneath = find_target_beneath (ops); - inferior_ptid = pid_to_ptid (ptid_get_pid (inferior_ptid)); - return beneath->to_xfer_partial (beneath, object, annex, readbuf, + inferior_ptid = ptid_t (inferior_ptid.pid ()); + return beneath ()->xfer_partial (object, annex, readbuf, writebuf, offset, len, xfered_len); } /* Clean up after the inferior exits. */ -static void -aix_thread_mourn_inferior (struct target_ops *ops) +void +aix_thread_target::mourn_inferior () { - struct target_ops *beneath = find_target_beneath (ops); + target_ops *beneath = this->beneath (); pd_deactivate (); - beneath->to_mourn_inferior (beneath); + beneath->mourn_inferior (); } /* Return whether thread PID is still valid. */ -static int -aix_thread_thread_alive (struct target_ops *ops, ptid_t ptid) +bool +aix_thread_target::thread_alive (ptid_t ptid) { - struct target_ops *beneath = find_target_beneath (ops); - if (!PD_TID (ptid)) - return beneath->to_thread_alive (beneath, ptid); + return beneath ()->thread_alive (ptid); /* We update the thread list every time the child stops, so all valid threads should be in the thread list. */ @@ -1742,29 +1754,27 @@ /* Return a printable representation of composite PID for use in "info threads" output. */ -static const char * -aix_thread_pid_to_str (struct target_ops *ops, ptid_t ptid) +const char * +aix_thread_target::pid_to_str (ptid_t ptid) { static char *ret = NULL; - struct target_ops *beneath = find_target_beneath (ops); if (!PD_TID (ptid)) - return beneath->to_pid_to_str (beneath, ptid); + return beneath ()->pid_to_str (ptid); /* Free previous return value; a new one will be allocated by xstrprintf(). */ xfree (ret); - ret = xstrprintf (_("Thread %ld"), ptid_get_tid (ptid)); + ret = xstrprintf (_("Thread %ld"), ptid.tid ()); return ret; } /* Return a printable representation of extra information about THREAD, for use in "info threads" output. */ -static const char * -aix_thread_extra_thread_info (struct target_ops *self, - struct thread_info *thread) +const char * +aix_thread_target::extra_thread_info (struct thread_info *thread) { int status; pthdb_pthread_t pdtid; @@ -1819,35 +1829,12 @@ return ret; } -static ptid_t -aix_thread_get_ada_task_ptid (struct target_ops *self, long lwp, long thread) +ptid_t +aix_thread_target::get_ada_task_ptid (long lwp, long thread) { - return ptid_build (ptid_get_pid (inferior_ptid), 0, thread); + return ptid_t (inferior_ptid.pid (), 0, thread); } -/* Initialize target aix_thread_ops. */ - -static void -init_aix_thread_ops (void) -{ - aix_thread_ops.to_shortname = "aix-threads"; - aix_thread_ops.to_longname = _("AIX pthread support"); - aix_thread_ops.to_doc = _("AIX pthread support"); - - aix_thread_ops.to_detach = aix_thread_detach; - aix_thread_ops.to_resume = aix_thread_resume; - aix_thread_ops.to_wait = aix_thread_wait; - aix_thread_ops.to_fetch_registers = aix_thread_fetch_registers; - aix_thread_ops.to_store_registers = aix_thread_store_registers; - aix_thread_ops.to_xfer_partial = aix_thread_xfer_partial; - aix_thread_ops.to_mourn_inferior = aix_thread_mourn_inferior; - aix_thread_ops.to_thread_alive = aix_thread_thread_alive; - aix_thread_ops.to_pid_to_str = aix_thread_pid_to_str; - aix_thread_ops.to_extra_thread_info = aix_thread_extra_thread_info; - aix_thread_ops.to_get_ada_task_ptid = aix_thread_get_ada_task_ptid; - aix_thread_ops.to_stratum = thread_stratum; - aix_thread_ops.to_magic = OPS_MAGIC; -} /* Module startup initialization function, automagically called by init.c. */ @@ -1855,15 +1842,12 @@ void _initialize_aix_thread (void) { - init_aix_thread_ops (); - complete_target_initialization (&aix_thread_ops); - /* Notice when object files get loaded and unloaded. */ - observer_attach_new_objfile (new_objfile); + gdb::observers::new_objfile.attach (new_objfile); /* Add ourselves to inferior_created event chain. This is needed to enable the thread target on "attach". */ - observer_attach_inferior_created (aix_thread_inferior_created); + gdb::observers::inferior_created.attach (aix_thread_inferior_created); add_setshow_boolean_cmd ("aix-thread", class_maintenance, &debug_aix_thread, _("Set debugging of AIX thread module."), diff -Nru gdb-8.1/gdb/alpha-bsd-nat.c gdb-8.2/gdb/alpha-bsd-nat.c --- gdb-8.1/gdb/alpha-bsd-nat.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/alpha-bsd-nat.c 2018-09-05 07:27:13.000000000 +0000 @@ -43,6 +43,14 @@ #include "gregset.h" +struct alpha_bsd_nat_target final : public inf_ptrace_target +{ + void fetch_registers (struct regcache *, int) override; + void store_registers (struct regcache *, int) override; +}; + +static alpha_bsd_nat_target the_alpha_bsd_nat_target; + /* Provide *regset() wrappers around the generic Alpha BSD register supply/fill routines. */ @@ -83,15 +91,14 @@ /* Fetch register REGNO from the inferior. If REGNO is -1, do this for all registers (including the floating point registers). */ -static void -alphabsd_fetch_inferior_registers (struct target_ops *ops, - struct regcache *regcache, int regno) +void +alpha_bsd_nat_target::fetch_registers (struct regcache *regcache, int regno) { if (regno == -1 || getregs_supplies (regno)) { struct reg gregs; - if (ptrace (PT_GETREGS, ptid_get_pid (regcache_get_ptid (regcache)), + if (ptrace (PT_GETREGS, regcache->ptid ().pid (), (PTRACE_TYPE_ARG3) &gregs, 0) == -1) perror_with_name (_("Couldn't get registers")); @@ -105,7 +112,7 @@ { struct fpreg fpregs; - if (ptrace (PT_GETFPREGS, ptid_get_pid (regcache_get_ptid (regcache)), + if (ptrace (PT_GETFPREGS, regcache->ptid ().pid (), (PTRACE_TYPE_ARG3) &fpregs, 0) == -1) perror_with_name (_("Couldn't get floating point status")); @@ -116,20 +123,19 @@ /* Store register REGNO back into the inferior. If REGNO is -1, do this for all registers (including the floating point registers). */ -static void -alphabsd_store_inferior_registers (struct target_ops *ops, - struct regcache *regcache, int regno) +void +alpha_bsd_nat_target::store_registers (struct regcache *regcache, int regno) { if (regno == -1 || getregs_supplies (regno)) { struct reg gregs; - if (ptrace (PT_GETREGS, ptid_get_pid (regcache_get_ptid (regcache)), + if (ptrace (PT_GETREGS, regcache->ptid ().pid (), (PTRACE_TYPE_ARG3) &gregs, 0) == -1) perror_with_name (_("Couldn't get registers")); alphabsd_fill_reg (regcache, (char *) &gregs, regno); - if (ptrace (PT_SETREGS, ptid_get_pid (regcache_get_ptid (regcache)), + if (ptrace (PT_SETREGS, regcache->ptid ().pid (), (PTRACE_TYPE_ARG3) &gregs, 0) == -1) perror_with_name (_("Couldn't write registers")); @@ -142,13 +148,13 @@ { struct fpreg fpregs; - if (ptrace (PT_GETFPREGS, ptid_get_pid (regcache_get_ptid (regcache)), + if (ptrace (PT_GETFPREGS, regcache->ptid ().pid (), (PTRACE_TYPE_ARG3) &fpregs, 0) == -1) perror_with_name (_("Couldn't get floating point status")); alphabsd_fill_fpreg (regcache, (char *) &fpregs, regno); - if (ptrace (PT_SETFPREGS, ptid_get_pid (regcache_get_ptid (regcache)), + if (ptrace (PT_SETFPREGS, regcache->ptid ().pid (), (PTRACE_TYPE_ARG3) &fpregs, 0) == -1) perror_with_name (_("Couldn't write floating point status")); } @@ -176,12 +182,11 @@ if (pcb->pcb_hw.apcb_ksp == 0) return 0; - regcache_raw_supply (regcache, ALPHA_SP_REGNUM, &pcb->pcb_hw.apcb_ksp); + regcache->raw_supply (ALPHA_SP_REGNUM, &pcb->pcb_hw.apcb_ksp); for (regnum = ALPHA_S0_REGNUM; regnum < ALPHA_A0_REGNUM; regnum++) - regcache_raw_supply (regcache, regnum, - &pcb->pcb_context[regnum - ALPHA_S0_REGNUM]); - regcache_raw_supply (regcache, ALPHA_RA_REGNUM, &pcb->pcb_context[7]); + regcache->raw_supply (regnum, &pcb->pcb_context[regnum - ALPHA_S0_REGNUM]); + regcache->raw_supply (ALPHA_RA_REGNUM, &pcb->pcb_context[7]); return 1; } @@ -190,12 +195,7 @@ void _initialize_alphabsd_nat (void) { - struct target_ops *t; - - t = inf_ptrace_target (); - t->to_fetch_registers = alphabsd_fetch_inferior_registers; - t->to_store_registers = alphabsd_store_inferior_registers; - add_target (t); + add_inf_child_target (&the_alpha_bsd_nat_target); /* Support debugging kernel virtual memory images. */ bsd_kvm_add_target (alphabsd_supply_pcb); diff -Nru gdb-8.1/gdb/alpha-linux-nat.c gdb-8.2/gdb/alpha-linux-nat.c --- gdb-8.1/gdb/alpha-linux-nat.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/alpha-linux-nat.c 2018-09-05 07:27:13.000000000 +0000 @@ -19,7 +19,7 @@ #include "defs.h" #include "target.h" #include "regcache.h" -#include "linux-nat.h" +#include "linux-nat-trad.h" #include "alpha-tdep.h" @@ -32,6 +32,15 @@ /* The address of UNIQUE for ptrace. */ #define ALPHA_UNIQUE_PTRACE_ADDR 65 +class alpha_linux_nat_target final : public linux_nat_trad_target +{ +protected: + /* Override linux_nat_trad_target methods. */ + CORE_ADDR register_u_offset (struct gdbarch *gdbarch, + int regno, int store_p) override; +}; + +static alpha_linux_nat_target the_alpha_linux_nat_target; /* See the comment in m68k-tdep.c regarding the utility of these functions. */ @@ -77,9 +86,9 @@ alpha_fill_fp_regs (regcache, regno, regp, regp + 31); } - -static CORE_ADDR -alpha_linux_register_u_offset (struct gdbarch *gdbarch, int regno, int store_p) +CORE_ADDR +alpha_linux_nat_target::register_u_offset (struct gdbarch *gdbarch, + int regno, int store_p) { if (regno == gdbarch_pc_regnum (gdbarch)) return PC; @@ -94,5 +103,6 @@ void _initialize_alpha_linux_nat (void) { - linux_nat_add_target (linux_trad_target (alpha_linux_register_u_offset)); + linux_target = &the_alpha_linux_nat_target; + add_inf_child_target (&the_alpha_linux_nat_target); } diff -Nru gdb-8.1/gdb/alpha-linux-tdep.c gdb-8.2/gdb/alpha-linux-tdep.c --- gdb-8.1/gdb/alpha-linux-tdep.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/alpha-linux-tdep.c 2018-09-05 07:27:32.000000000 +0000 @@ -238,8 +238,8 @@ void *cb_data, const struct regcache *regcache) { - cb (".reg", 32 * 8, &alpha_linux_gregset, NULL, cb_data); - cb (".reg2", 32 * 8, &alpha_linux_fpregset, NULL, cb_data); + cb (".reg", 32 * 8, 32 * 8, &alpha_linux_gregset, NULL, cb_data); + cb (".reg2", 32 * 8, 32 * 8, &alpha_linux_fpregset, NULL, cb_data); } /* Implementation of `gdbarch_gdb_signal_from_target', as defined in diff -Nru gdb-8.1/gdb/alpha-nbsd-tdep.c gdb-8.2/gdb/alpha-nbsd-tdep.c --- gdb-8.1/gdb/alpha-nbsd-tdep.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/alpha-nbsd-tdep.c 2018-09-05 07:27:32.000000000 +0000 @@ -58,11 +58,11 @@ for (i = ALPHA_FP0_REGNUM; i < ALPHA_FP0_REGNUM + 31; i++) { if (regnum == i || regnum == -1) - regcache_raw_supply (regcache, i, regs + (i - ALPHA_FP0_REGNUM) * 8); + regcache->raw_supply (i, regs + (i - ALPHA_FP0_REGNUM) * 8); } if (regnum == ALPHA_FPCR_REGNUM || regnum == -1) - regcache_raw_supply (regcache, ALPHA_FPCR_REGNUM, regs + 32 * 8); + regcache->raw_supply (ALPHA_FPCR_REGNUM, regs + 32 * 8); } /* Supply register REGNUM from the buffer specified by GREGS and LEN @@ -95,11 +95,11 @@ for (i = 0; i < ARRAY_SIZE(regmap); i++) { if (regnum == i || regnum == -1) - regcache_raw_supply (regcache, i, regs + regmap[i] * 8); + regcache->raw_supply (i, regs + regmap[i] * 8); } if (regnum == ALPHA_PC_REGNUM || regnum == -1) - regcache_raw_supply (regcache, ALPHA_PC_REGNUM, regs + 31 * 8); + regcache->raw_supply (ALPHA_PC_REGNUM, regs + 31 * 8); if (len >= ALPHANBSD_SIZEOF_GREGS + ALPHANBSD_SIZEOF_FPREGS) { @@ -130,11 +130,11 @@ for (i = 0; i < ALPHA_ZERO_REGNUM; i++) { if (regnum == i || regnum == -1) - regcache_raw_supply (regcache, i, regs + i * 8); + regcache->raw_supply (i, regs + i * 8); } if (regnum == ALPHA_PC_REGNUM || regnum == -1) - regcache_raw_supply (regcache, ALPHA_PC_REGNUM, regs + 31 * 8); + regcache->raw_supply (ALPHA_PC_REGNUM, regs + 31 * 8); } /* NetBSD/alpha register sets. */ @@ -161,8 +161,10 @@ void *cb_data, const struct regcache *regcache) { - cb (".reg", ALPHANBSD_SIZEOF_GREGS, &alphanbsd_gregset, NULL, cb_data); - cb (".reg2", ALPHANBSD_SIZEOF_FPREGS, &alphanbsd_fpregset, NULL, cb_data); + cb (".reg", ALPHANBSD_SIZEOF_GREGS, ALPHANBSD_SIZEOF_GREGS, + &alphanbsd_gregset, NULL, cb_data); + cb (".reg2", ALPHANBSD_SIZEOF_FPREGS, ALPHANBSD_SIZEOF_FPREGS, + &alphanbsd_fpregset, NULL, cb_data); } diff -Nru gdb-8.1/gdb/alpha-tdep.c gdb-8.2/gdb/alpha-tdep.c --- gdb-8.1/gdb/alpha-tdep.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/alpha-tdep.c 2018-09-05 07:44:28.000000000 +0000 @@ -252,7 +252,6 @@ if (*optimizedp || *unavailablep) { release_value (value); - value_free (value); return 0; } @@ -262,7 +261,6 @@ alpha_sts (gdbarch, out, value_contents_all (value)); release_value (value); - value_free (value); return 1; } @@ -455,10 +453,10 @@ /* Load the argument registers. */ for (i = 0; i < required_arg_regs; i++) { - regcache_cooked_write (regcache, ALPHA_A0_REGNUM + i, - arg_reg_buffer + i*ALPHA_REGISTER_SIZE); - regcache_cooked_write (regcache, ALPHA_FPA0_REGNUM + i, - arg_reg_buffer + i*ALPHA_REGISTER_SIZE); + regcache->cooked_write (ALPHA_A0_REGNUM + i, + arg_reg_buffer + i * ALPHA_REGISTER_SIZE); + regcache->cooked_write (ALPHA_FPA0_REGNUM + i, + arg_reg_buffer + i * ALPHA_REGISTER_SIZE); } /* Finally, update the stack pointer. */ @@ -485,12 +483,12 @@ switch (TYPE_LENGTH (valtype)) { case 4: - regcache_cooked_read (regcache, ALPHA_FP0_REGNUM, raw_buffer); + regcache->cooked_read (ALPHA_FP0_REGNUM, raw_buffer); alpha_sts (gdbarch, valbuf, raw_buffer); break; case 8: - regcache_cooked_read (regcache, ALPHA_FP0_REGNUM, valbuf); + regcache->cooked_read (ALPHA_FP0_REGNUM, valbuf); break; case 16: @@ -509,12 +507,12 @@ { case 8: /* ??? This isn't correct wrt the ABI, but it's what GCC does. */ - regcache_cooked_read (regcache, ALPHA_FP0_REGNUM, valbuf); + regcache->cooked_read (ALPHA_FP0_REGNUM, valbuf); break; case 16: - regcache_cooked_read (regcache, ALPHA_FP0_REGNUM, valbuf); - regcache_cooked_read (regcache, ALPHA_FP0_REGNUM + 1, valbuf + 8); + regcache->cooked_read (ALPHA_FP0_REGNUM, valbuf); + regcache->cooked_read (ALPHA_FP0_REGNUM + 1, valbuf + 8); break; case 32: @@ -554,11 +552,11 @@ { case 4: alpha_lds (gdbarch, raw_buffer, valbuf); - regcache_cooked_write (regcache, ALPHA_FP0_REGNUM, raw_buffer); + regcache->cooked_write (ALPHA_FP0_REGNUM, raw_buffer); break; case 8: - regcache_cooked_write (regcache, ALPHA_FP0_REGNUM, valbuf); + regcache->cooked_write (ALPHA_FP0_REGNUM, valbuf); break; case 16: @@ -578,12 +576,12 @@ { case 8: /* ??? This isn't correct wrt the ABI, but it's what GCC does. */ - regcache_cooked_write (regcache, ALPHA_FP0_REGNUM, valbuf); + regcache->cooked_write (ALPHA_FP0_REGNUM, valbuf); break; case 16: - regcache_cooked_write (regcache, ALPHA_FP0_REGNUM, valbuf); - regcache_cooked_write (regcache, ALPHA_FP0_REGNUM + 1, valbuf + 8); + regcache->cooked_write (ALPHA_FP0_REGNUM, valbuf); + regcache->cooked_write (ALPHA_FP0_REGNUM + 1, valbuf + 8); break; case 32: @@ -1501,20 +1499,20 @@ for (i = 0; i < 31; ++i) if (regno == i || regno == -1) - regcache_raw_supply (regcache, i, regs + i * 8); + regcache->raw_supply (i, regs + i * 8); if (regno == ALPHA_ZERO_REGNUM || regno == -1) { const gdb_byte zero[8] = { 0 }; - regcache_raw_supply (regcache, ALPHA_ZERO_REGNUM, zero); + regcache->raw_supply (ALPHA_ZERO_REGNUM, zero); } if (regno == ALPHA_PC_REGNUM || regno == -1) - regcache_raw_supply (regcache, ALPHA_PC_REGNUM, pc); + regcache->raw_supply (ALPHA_PC_REGNUM, pc); if (regno == ALPHA_UNIQUE_REGNUM || regno == -1) - regcache_raw_supply (regcache, ALPHA_UNIQUE_REGNUM, unique); + regcache->raw_supply (ALPHA_UNIQUE_REGNUM, unique); } void @@ -1526,13 +1524,13 @@ for (i = 0; i < 31; ++i) if (regno == i || regno == -1) - regcache_raw_collect (regcache, i, regs + i * 8); + regcache->raw_collect (i, regs + i * 8); if (regno == ALPHA_PC_REGNUM || regno == -1) - regcache_raw_collect (regcache, ALPHA_PC_REGNUM, pc); + regcache->raw_collect (ALPHA_PC_REGNUM, pc); if (unique && (regno == ALPHA_UNIQUE_REGNUM || regno == -1)) - regcache_raw_collect (regcache, ALPHA_UNIQUE_REGNUM, unique); + regcache->raw_collect (ALPHA_UNIQUE_REGNUM, unique); } void @@ -1544,11 +1542,10 @@ for (i = ALPHA_FP0_REGNUM; i < ALPHA_FP0_REGNUM + 31; ++i) if (regno == i || regno == -1) - regcache_raw_supply (regcache, i, - regs + (i - ALPHA_FP0_REGNUM) * 8); + regcache->raw_supply (i, regs + (i - ALPHA_FP0_REGNUM) * 8); if (regno == ALPHA_FPCR_REGNUM || regno == -1) - regcache_raw_supply (regcache, ALPHA_FPCR_REGNUM, fpcr); + regcache->raw_supply (ALPHA_FPCR_REGNUM, fpcr); } void @@ -1560,11 +1557,10 @@ for (i = ALPHA_FP0_REGNUM; i < ALPHA_FP0_REGNUM + 31; ++i) if (regno == i || regno == -1) - regcache_raw_collect (regcache, i, - regs + (i - ALPHA_FP0_REGNUM) * 8); + regcache->raw_collect (i, regs + (i - ALPHA_FP0_REGNUM) * 8); if (regno == ALPHA_FPCR_REGNUM || regno == -1) - regcache_raw_collect (regcache, ALPHA_FPCR_REGNUM, fpcr); + regcache->raw_collect (ALPHA_FPCR_REGNUM, fpcr); } diff -Nru gdb-8.1/gdb/amd64-bsd-nat.c gdb-8.2/gdb/amd64-bsd-nat.c --- gdb-8.1/gdb/amd64-bsd-nat.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/amd64-bsd-nat.c 2018-09-05 07:27:13.000000000 +0000 @@ -38,12 +38,11 @@ /* Fetch register REGNUM from the inferior. If REGNUM is -1, do this for all registers (including the floating-point registers). */ -static void -amd64bsd_fetch_inferior_registers (struct target_ops *ops, - struct regcache *regcache, int regnum) +void +amd64bsd_fetch_inferior_registers (struct regcache *regcache, int regnum) { struct gdbarch *gdbarch = regcache->arch (); - pid_t pid = get_ptrace_pid (regcache_get_ptid (regcache)); + pid_t pid = get_ptrace_pid (regcache->ptid ()); if (regnum == -1 || amd64_native_gregset_supplies_p (gdbarch, regnum)) { @@ -65,7 +64,7 @@ if (ptrace (PT_GETFSBASE, pid, (PTRACE_TYPE_ARG3) &base, 0) == -1) perror_with_name (_("Couldn't get segment register fs_base")); - regcache_raw_supply (regcache, AMD64_FSBASE_REGNUM, &base); + regcache->raw_supply (AMD64_FSBASE_REGNUM, &base); if (regnum != -1) return; } @@ -78,7 +77,7 @@ if (ptrace (PT_GETGSBASE, pid, (PTRACE_TYPE_ARG3) &base, 0) == -1) perror_with_name (_("Couldn't get segment register gs_base")); - regcache_raw_supply (regcache, AMD64_GSBASE_REGNUM, &base); + regcache->raw_supply (AMD64_GSBASE_REGNUM, &base); if (regnum != -1) return; } @@ -112,12 +111,11 @@ /* Store register REGNUM back into the inferior. If REGNUM is -1, do this for all registers (including the floating-point registers). */ -static void -amd64bsd_store_inferior_registers (struct target_ops *ops, - struct regcache *regcache, int regnum) +void +amd64bsd_store_inferior_registers (struct regcache *regcache, int regnum) { struct gdbarch *gdbarch = regcache->arch (); - pid_t pid = get_ptrace_pid (regcache_get_ptid (regcache)); + pid_t pid = get_ptrace_pid (regcache->ptid ()); if (regnum == -1 || amd64_native_gregset_supplies_p (gdbarch, regnum)) { @@ -140,7 +138,7 @@ { register_t base; - regcache_raw_collect (regcache, AMD64_FSBASE_REGNUM, &base); + regcache->raw_collect (AMD64_FSBASE_REGNUM, &base); if (ptrace (PT_SETFSBASE, pid, (PTRACE_TYPE_ARG3) &base, 0) == -1) perror_with_name (_("Couldn't write segment register fs_base")); @@ -153,7 +151,7 @@ { register_t base; - regcache_raw_collect (regcache, AMD64_GSBASE_REGNUM, &base); + regcache->raw_collect (AMD64_GSBASE_REGNUM, &base); if (ptrace (PT_SETGSBASE, pid, (PTRACE_TYPE_ARG3) &base, 0) == -1) perror_with_name (_("Couldn't write segment register gs_base")); @@ -193,17 +191,3 @@ perror_with_name (_("Couldn't write floating point status")); } } - -/* Create a prototype *BSD/amd64 target. The client can override it - with local methods. */ - -struct target_ops * -amd64bsd_target (void) -{ - struct target_ops *t; - - t = x86bsd_target (); - t->to_fetch_registers = amd64bsd_fetch_inferior_registers; - t->to_store_registers = amd64bsd_store_inferior_registers; - return t; -} diff -Nru gdb-8.1/gdb/amd64-bsd-nat.h gdb-8.2/gdb/amd64-bsd-nat.h --- gdb-8.1/gdb/amd64-bsd-nat.h 1970-01-01 00:00:00.000000000 +0000 +++ gdb-8.2/gdb/amd64-bsd-nat.h 2018-09-05 07:27:13.000000000 +0000 @@ -0,0 +1,44 @@ +/* Native-dependent code for modern AMD64 BSD's. + + Copyright (C) 2018 Free Software Foundation, Inc. + + This file is part of GDB. + + 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 3 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, see . */ + +#ifndef AMD64_BSD_NAT_H +#define AMD64_BSD_NAT_H + +#include "x86-bsd-nat.h" + +/* Helper functions. See definitions. */ +extern void amd64bsd_fetch_inferior_registers (struct regcache *regcache, + int regnum); +extern void amd64bsd_store_inferior_registers (struct regcache *regcache, + int regnum); + +/* A prototype *BSD/AMD64 target. */ + +template +class amd64_bsd_nat_target : public x86bsd_nat_target +{ +public: + void fetch_registers (struct regcache *regcache, int regnum) override + { amd64bsd_fetch_inferior_registers (regcache, regnum); } + + void store_registers (struct regcache *regcache, int regnum) override + { amd64bsd_store_inferior_registers (regcache, regnum); } +}; + +#endif /* i386-bsd-nat.h */ diff -Nru gdb-8.1/gdb/amd64-darwin-tdep.c gdb-8.2/gdb/amd64-darwin-tdep.c --- gdb-8.1/gdb/amd64-darwin-tdep.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/amd64-darwin-tdep.c 2018-09-05 07:27:13.000000000 +0000 @@ -100,7 +100,7 @@ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); amd64_init_abi (info, gdbarch, - amd64_target_description (X86_XSTATE_SSE_MASK)); + amd64_target_description (X86_XSTATE_SSE_MASK, true)); tdep->struct_return = reg_struct_return; diff -Nru gdb-8.1/gdb/amd64-dicos-tdep.c gdb-8.2/gdb/amd64-dicos-tdep.c --- gdb-8.1/gdb/amd64-dicos-tdep.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/amd64-dicos-tdep.c 2018-09-05 07:27:13.000000000 +0000 @@ -27,7 +27,7 @@ amd64_dicos_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { amd64_init_abi (info, gdbarch, - amd64_target_description (X86_XSTATE_SSE_MASK)); + amd64_target_description (X86_XSTATE_SSE_MASK, true)); dicos_init_abi (gdbarch); } diff -Nru gdb-8.1/gdb/amd64-fbsd-nat.c gdb-8.2/gdb/amd64-fbsd-nat.c --- gdb-8.1/gdb/amd64-fbsd-nat.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/amd64-fbsd-nat.c 2018-09-05 07:27:13.000000000 +0000 @@ -32,11 +32,25 @@ #include "fbsd-nat.h" #include "amd64-tdep.h" #include "amd64-nat.h" -#include "x86-bsd-nat.h" +#include "amd64-bsd-nat.h" #include "x86-nat.h" #include "x86-xstate.h" +class amd64_fbsd_nat_target final + : public amd64_bsd_nat_target +{ +public: + /* Add some extra features to the common *BSD/amd64 target. */ + const struct target_desc *read_description () override; + +#if defined(HAVE_PT_GETDBREGS) && defined(USE_SIGTRAP_SIGINFO) + bool supports_stopped_by_hw_breakpoint () override; +#endif +}; + +static amd64_fbsd_nat_target the_amd64_fbsd_nat_target; + /* Offset in `struct reg' where MEMBER is stored. */ #define REG_OFFSET(member) offsetof (struct reg, member) @@ -117,34 +131,34 @@ return 0; pcb->pcb_rsp += 8; - regcache_raw_supply (regcache, AMD64_RIP_REGNUM, &pcb->pcb_rip); - regcache_raw_supply (regcache, AMD64_RBX_REGNUM, &pcb->pcb_rbx); - regcache_raw_supply (regcache, AMD64_RSP_REGNUM, &pcb->pcb_rsp); - regcache_raw_supply (regcache, AMD64_RBP_REGNUM, &pcb->pcb_rbp); - regcache_raw_supply (regcache, 12, &pcb->pcb_r12); - regcache_raw_supply (regcache, 13, &pcb->pcb_r13); - regcache_raw_supply (regcache, 14, &pcb->pcb_r14); - regcache_raw_supply (regcache, 15, &pcb->pcb_r15); + regcache->raw_supply (AMD64_RIP_REGNUM, &pcb->pcb_rip); + regcache->raw_supply (AMD64_RBX_REGNUM, &pcb->pcb_rbx); + regcache->raw_supply (AMD64_RSP_REGNUM, &pcb->pcb_rsp); + regcache->raw_supply (AMD64_RBP_REGNUM, &pcb->pcb_rbp); + regcache->raw_supply (12, &pcb->pcb_r12); + regcache->raw_supply (13, &pcb->pcb_r13); + regcache->raw_supply (14, &pcb->pcb_r14); + regcache->raw_supply (15, &pcb->pcb_r15); #if (__FreeBSD_version < 800075) && (__FreeBSD_kernel_version < 800075) /* struct pcb provides the pcb_ds/pcb_es/pcb_fs/pcb_gs fields only up until __FreeBSD_version 800074: The removal of these fields occurred on 2009-04-01 while the __FreeBSD_version number was bumped to 800075 on 2009-04-06. So 800075 is the closest version number where we should not try to access these fields. */ - regcache_raw_supply (regcache, AMD64_DS_REGNUM, &pcb->pcb_ds); - regcache_raw_supply (regcache, AMD64_ES_REGNUM, &pcb->pcb_es); - regcache_raw_supply (regcache, AMD64_FS_REGNUM, &pcb->pcb_fs); - regcache_raw_supply (regcache, AMD64_GS_REGNUM, &pcb->pcb_gs); + regcache->raw_supply (AMD64_DS_REGNUM, &pcb->pcb_ds); + regcache->raw_supply (AMD64_ES_REGNUM, &pcb->pcb_es); + regcache->raw_supply (AMD64_FS_REGNUM, &pcb->pcb_fs); + regcache->raw_supply (AMD64_GS_REGNUM, &pcb->pcb_gs); #endif return 1; } -/* Implement the to_read_description method. */ +/* Implement the read_description method. */ -static const struct target_desc * -amd64fbsd_read_description (struct target_ops *ops) +const struct target_desc * +amd64_fbsd_nat_target::read_description () { #ifdef PT_GETXSTATE_INFO static int xsave_probed; @@ -153,7 +167,7 @@ struct reg regs; int is64; - if (ptrace (PT_GETREGS, ptid_get_pid (inferior_ptid), + if (ptrace (PT_GETREGS, inferior_ptid.pid (), (PTRACE_TYPE_ARG3) ®s, 0) == -1) perror_with_name (_("Couldn't get registers")); is64 = (regs.r_cs == GSEL (GUCODE_SEL, SEL_UPL)); @@ -162,7 +176,7 @@ { struct ptrace_xstate_info info; - if (ptrace (PT_GETXSTATE_INFO, ptid_get_pid (inferior_ptid), + if (ptrace (PT_GETXSTATE_INFO, inferior_ptid.pid (), (PTRACE_TYPE_ARG3) &info, sizeof (info)) == 0) { x86bsd_xsave_len = info.xsave_len; @@ -174,31 +188,36 @@ if (x86bsd_xsave_len != 0) { if (is64) - return amd64_target_description (xcr0); + return amd64_target_description (xcr0, true); else return i386_target_description (xcr0); } #endif if (is64) - return amd64_target_description (X86_XSTATE_SSE_MASK); + return amd64_target_description (X86_XSTATE_SSE_MASK, true); else return i386_target_description (X86_XSTATE_SSE_MASK); } +#if defined(HAVE_PT_GETDBREGS) && defined(USE_SIGTRAP_SIGINFO) +/* Implement the supports_stopped_by_hw_breakpoints method. */ + +bool +amd64_fbsd_nat_target::supports_stopped_by_hw_breakpoint () +{ + return true; +} +#endif + void _initialize_amd64fbsd_nat (void) { - struct target_ops *t; int offset; amd64_native_gregset32_reg_offset = amd64fbsd32_r_reg_offset; amd64_native_gregset64_reg_offset = amd64fbsd64_r_reg_offset; - /* Add some extra features to the common *BSD/i386 target. */ - t = amd64bsd_target (); - t->to_read_description = amd64fbsd_read_description; - - fbsd_nat_add_target (t); + add_inf_child_target (&the_amd64_fbsd_nat_target); /* Support debugging kernel virtual memory images. */ bsd_kvm_add_target (amd64fbsd_supply_pcb); diff -Nru gdb-8.1/gdb/amd64-fbsd-tdep.c gdb-8.2/gdb/amd64-fbsd-tdep.c --- gdb-8.1/gdb/amd64-fbsd-tdep.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/amd64-fbsd-tdep.c 2018-09-05 07:27:32.000000000 +0000 @@ -156,7 +156,7 @@ struct target_ops *target, bfd *abfd) { - return amd64_target_description (i386fbsd_core_read_xcr0 (abfd)); + return amd64_target_description (i386fbsd_core_read_xcr0 (abfd), true); } /* Similar to amd64_supply_fpregset, but use XSAVE extended state. */ @@ -196,9 +196,11 @@ { struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); - cb (".reg", tdep->sizeof_gregset, &i386_gregset, NULL, cb_data); - cb (".reg2", tdep->sizeof_fpregset, &amd64_fpregset, NULL, cb_data); - cb (".reg-xstate", X86_XSTATE_SIZE(tdep->xcr0), + cb (".reg", tdep->sizeof_gregset, tdep->sizeof_gregset, &i386_gregset, NULL, + cb_data); + cb (".reg2", tdep->sizeof_fpregset, tdep->sizeof_fpregset, &amd64_fpregset, + NULL, cb_data); + cb (".reg-xstate", X86_XSTATE_SIZE (tdep->xcr0), X86_XSTATE_SIZE (tdep->xcr0), &amd64fbsd_xstateregset, "XSAVE extended state", cb_data); } @@ -218,7 +220,7 @@ tdep->sizeof_gregset = 22 * 8; amd64_init_abi (info, gdbarch, - amd64_target_description (X86_XSTATE_SSE_MASK)); + amd64_target_description (X86_XSTATE_SSE_MASK, true)); tdep->sigtramp_p = amd64fbsd_sigtramp_p; tdep->sigtramp_start = amd64fbsd_sigtramp_start_addr; diff -Nru gdb-8.1/gdb/amd64-linux-nat.c gdb-8.2/gdb/amd64-linux-nat.c --- gdb-8.1/gdb/amd64-linux-nat.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/amd64-linux-nat.c 2018-09-05 07:27:13.000000000 +0000 @@ -30,7 +30,6 @@ #include "gdb_proc_service.h" #include "amd64-nat.h" -#include "linux-nat.h" #include "amd64-tdep.h" #include "amd64-linux-tdep.h" #include "i386-linux-tdep.h" @@ -46,6 +45,18 @@ #define PTRACE_ARCH_PRCTL 30 #endif +struct amd64_linux_nat_target final : public x86_linux_nat_target +{ + /* Add our register access methods. */ + void fetch_registers (struct regcache *, int) override; + void store_registers (struct regcache *, int) override; + + bool low_siginfo_fixup (siginfo_t *ptrace, gdb_byte *inf, int direction) + override; +}; + +static amd64_linux_nat_target the_amd64_linux_nat_target; + /* Mapping between the general-purpose registers in GNU/Linux x86-64 `struct user' format and GDB's register cache layout for GNU/Linux i386. @@ -130,17 +141,16 @@ this for all registers (including the floating point and SSE registers). */ -static void -amd64_linux_fetch_inferior_registers (struct target_ops *ops, - struct regcache *regcache, int regnum) +void +amd64_linux_nat_target::fetch_registers (struct regcache *regcache, int regnum) { struct gdbarch *gdbarch = regcache->arch (); int tid; /* GNU/Linux LWP ID's are process ID's. */ - tid = ptid_get_lwp (regcache_get_ptid (regcache)); + tid = regcache->ptid ().lwp (); if (tid == 0) - tid = ptid_get_pid (regcache_get_ptid (regcache)); /* Not a threaded program. */ + tid = regcache->ptid ().pid (); /* Not a threaded program. */ if (regnum == -1 || amd64_native_gregset_supplies_p (gdbarch, regnum)) { @@ -190,7 +200,7 @@ if (ptrace (PTRACE_ARCH_PRCTL, tid, &base, ARCH_GET_FS) < 0) perror_with_name (_("Couldn't get segment register fs_base")); - regcache_raw_supply (regcache, AMD64_FSBASE_REGNUM, &base); + regcache->raw_supply (AMD64_FSBASE_REGNUM, &base); } if (regnum == -1 || regnum == AMD64_GSBASE_REGNUM) @@ -198,7 +208,7 @@ if (ptrace (PTRACE_ARCH_PRCTL, tid, &base, ARCH_GET_GS) < 0) perror_with_name (_("Couldn't get segment register gs_base")); - regcache_raw_supply (regcache, AMD64_GSBASE_REGNUM, &base); + regcache->raw_supply (AMD64_GSBASE_REGNUM, &base); } } #endif @@ -209,17 +219,16 @@ -1, do this for all registers (including the floating-point and SSE registers). */ -static void -amd64_linux_store_inferior_registers (struct target_ops *ops, - struct regcache *regcache, int regnum) +void +amd64_linux_nat_target::store_registers (struct regcache *regcache, int regnum) { struct gdbarch *gdbarch = regcache->arch (); int tid; /* GNU/Linux LWP ID's are process ID's. */ - tid = ptid_get_lwp (regcache_get_ptid (regcache)); + tid = regcache->ptid ().lwp (); if (tid == 0) - tid = ptid_get_pid (regcache_get_ptid (regcache)); /* Not a threaded program. */ + tid = regcache->ptid ().pid (); /* Not a threaded program. */ if (regnum == -1 || amd64_native_gregset_supplies_p (gdbarch, regnum)) { @@ -278,7 +287,7 @@ if (regnum == -1 || regnum == AMD64_FSBASE_REGNUM) { - regcache_raw_collect (regcache, AMD64_FSBASE_REGNUM, &base); + regcache->raw_collect (AMD64_FSBASE_REGNUM, &base); if (ptrace (PTRACE_ARCH_PRCTL, tid, base, ARCH_SET_FS) < 0) perror_with_name (_("Couldn't write segment register fs_base")); @@ -286,7 +295,7 @@ if (regnum == -1 || regnum == AMD64_GSBASE_REGNUM) { - regcache_raw_collect (regcache, AMD64_GSBASE_REGNUM, &base); + regcache->raw_collect (AMD64_GSBASE_REGNUM, &base); if (ptrace (PTRACE_ARCH_PRCTL, tid, base, ARCH_SET_GS) < 0) perror_with_name (_("Couldn't write segment register gs_base")); } @@ -378,29 +387,29 @@ from INF to PTRACE. If DIRECTION is 0, copy from PTRACE to INF. */ -static int -amd64_linux_siginfo_fixup (siginfo_t *ptrace, gdb_byte *inf, int direction) +bool +amd64_linux_nat_target::low_siginfo_fixup (siginfo_t *ptrace, + gdb_byte *inf, + int direction) { struct gdbarch *gdbarch = get_frame_arch (get_current_frame ()); /* Is the inferior 32-bit? If so, then do fixup the siginfo object. */ if (gdbarch_bfd_arch_info (gdbarch)->bits_per_word == 32) - return amd64_linux_siginfo_fixup_common (ptrace, inf, direction, - FIXUP_32); + return amd64_linux_siginfo_fixup_common (ptrace, inf, direction, + FIXUP_32); /* No fixup for native x32 GDB. */ else if (gdbarch_addr_bit (gdbarch) == 32 && sizeof (void *) == 8) - return amd64_linux_siginfo_fixup_common (ptrace, inf, direction, - FIXUP_X32); + return amd64_linux_siginfo_fixup_common (ptrace, inf, direction, + FIXUP_X32); else - return 0; + return false; } void _initialize_amd64_linux_nat (void) { - struct target_ops *t; - amd64_native_gregset32_reg_offset = amd64_linux_gregset32_reg_offset; amd64_native_gregset32_num_regs = I386_LINUX_NUM_REGS; amd64_native_gregset64_reg_offset = amd64_linux_gregset_reg_offset; @@ -409,16 +418,8 @@ gdb_assert (ARRAY_SIZE (amd64_linux_gregset32_reg_offset) == amd64_native_gregset32_num_regs); - /* Create a generic x86 GNU/Linux target. */ - t = x86_linux_create_target (); - - /* Add our register access methods. */ - t->to_fetch_registers = amd64_linux_fetch_inferior_registers; - t->to_store_registers = amd64_linux_store_inferior_registers; + linux_target = &the_amd64_linux_nat_target; /* Add the target. */ - x86_linux_add_target (t); - - /* Add our siginfo layout converter. */ - linux_nat_set_siginfo_fixup (t, amd64_linux_siginfo_fixup); + add_inf_child_target (linux_target); } diff -Nru gdb-8.1/gdb/amd64-linux-tdep.c gdb-8.2/gdb/amd64-linux-tdep.c --- gdb-8.1/gdb/amd64-linux-tdep.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/amd64-linux-tdep.c 2018-09-05 07:27:32.000000000 +0000 @@ -222,9 +222,9 @@ static LONGEST amd64_linux_get_syscall_number (struct gdbarch *gdbarch, - ptid_t ptid) + thread_info *thread) { - struct regcache *regcache = get_thread_regcache (ptid); + struct regcache *regcache = get_thread_regcache (thread); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); /* The content of a register. */ gdb_byte buf[8]; @@ -234,7 +234,7 @@ /* Getting the system call number from the register. When dealing with x86_64 architecture, this information is stored at %rax register. */ - regcache_cooked_read (regcache, AMD64_LINUX_ORIG_RAX_REGNUM, buf); + regcache->cooked_read (AMD64_LINUX_ORIG_RAX_REGNUM, buf); ret = extract_signed_integer (buf, 8, byte_order); @@ -1594,7 +1594,8 @@ } if (*tdesc == NULL) - *tdesc = amd64_create_target_description (xcr0_features_bit, is_x32, true); + *tdesc = amd64_create_target_description (xcr0_features_bit, is_x32, + true, true); return *tdesc; } @@ -1650,9 +1651,9 @@ { struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); - cb (".reg", 27 * 8, &i386_gregset, NULL, cb_data); - cb (".reg2", 512, &amd64_fpregset, NULL, cb_data); - cb (".reg-xstate", X86_XSTATE_SIZE (tdep->xcr0), + cb (".reg", 27 * 8, 27 * 8, &i386_gregset, NULL, cb_data); + cb (".reg2", 512, 512, &amd64_fpregset, NULL, cb_data); + cb (".reg-xstate", X86_XSTATE_SIZE (tdep->xcr0), X86_XSTATE_SIZE (tdep->xcr0), &amd64_linux_xstateregset, "XSAVE extended state", cb_data); } diff -Nru gdb-8.1/gdb/amd64-nat.c gdb-8.2/gdb/amd64-nat.c --- gdb-8.1/gdb/amd64-nat.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/amd64-nat.c 2018-09-05 07:27:13.000000000 +0000 @@ -113,7 +113,7 @@ int offset = amd64_native_gregset_reg_offset (gdbarch, i); if (offset != -1) - regcache_raw_supply (regcache, i, regs + offset); + regcache->raw_supply (i, regs + offset); } } } @@ -160,7 +160,7 @@ int offset = amd64_native_gregset_reg_offset (gdbarch, i); if (offset != -1) - regcache_raw_collect (regcache, i, regs + offset); + regcache->raw_collect (i, regs + offset); } } } diff -Nru gdb-8.1/gdb/amd64-nat.h gdb-8.2/gdb/amd64-nat.h --- gdb-8.1/gdb/amd64-nat.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/amd64-nat.h 2018-09-05 07:27:13.000000000 +0000 @@ -49,9 +49,4 @@ extern void amd64_collect_native_gregset (const struct regcache *regcache, void *gregs, int regnum); -/* Create a prototype *BSD/amd64 target. The client can override it - with local methods. */ - -extern struct target_ops *amd64bsd_target (void); - #endif /* amd64-nat.h */ diff -Nru gdb-8.1/gdb/amd64-nbsd-nat.c gdb-8.2/gdb/amd64-nbsd-nat.c --- gdb-8.1/gdb/amd64-nbsd-nat.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/amd64-nbsd-nat.c 2018-09-05 07:27:13.000000000 +0000 @@ -22,6 +22,7 @@ #include "nbsd-nat.h" #include "amd64-tdep.h" +#include "amd64-bsd-nat.h" #include "amd64-nat.h" /* Mapping between the general-purpose registers in NetBSD/amd64 @@ -53,17 +54,14 @@ 15 * 8 /* %gs */ }; +static amd64_bsd_nat_target the_amd64_nbsd_nat_target; + void _initialize_amd64nbsd_nat (void) { - struct target_ops *t; - amd64_native_gregset32_reg_offset = amd64nbsd32_r_reg_offset; amd64_native_gregset32_num_regs = ARRAY_SIZE (amd64nbsd32_r_reg_offset); amd64_native_gregset64_reg_offset = amd64nbsd_r_reg_offset; - /* Add some extra features to the common *BSD/amd64 target. */ - t = amd64bsd_target (); - t->to_pid_to_exec_file = nbsd_pid_to_exec_file; - add_target (t); + add_inf_child_target (&the_amd64_nbsd_nat_target); } diff -Nru gdb-8.1/gdb/amd64-nbsd-tdep.c gdb-8.2/gdb/amd64-nbsd-tdep.c --- gdb-8.1/gdb/amd64-nbsd-tdep.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/amd64-nbsd-tdep.c 2018-09-05 07:27:13.000000000 +0000 @@ -105,7 +105,7 @@ tdep->sizeof_gregset = 26 * 8; amd64_init_abi (info, gdbarch, - amd64_target_description (X86_XSTATE_SSE_MASK)); + amd64_target_description (X86_XSTATE_SSE_MASK, true)); tdep->jb_pc_offset = 7 * 8; diff -Nru gdb-8.1/gdb/amd64-obsd-nat.c gdb-8.2/gdb/amd64-obsd-nat.c --- gdb-8.1/gdb/amd64-obsd-nat.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/amd64-obsd-nat.c 2018-09-05 07:27:13.000000000 +0000 @@ -23,6 +23,7 @@ #include "target.h" #include "amd64-tdep.h" +#include "amd64-bsd-nat.h" #include "amd64-nat.h" #include "obsd-nat.h" @@ -105,26 +106,28 @@ { /* Yes, we have a frame that matches cpu_switch(). */ pcb->pcb_rsp += sizeof (struct switchframe); - regcache_raw_supply (regcache, 12, &sf.sf_r12); - regcache_raw_supply (regcache, 13, &sf.sf_r13); - regcache_raw_supply (regcache, 14, &sf.sf_r14); - regcache_raw_supply (regcache, 15, &sf.sf_r15); - regcache_raw_supply (regcache, AMD64_RBX_REGNUM, &sf.sf_rbx); - regcache_raw_supply (regcache, AMD64_RIP_REGNUM, &sf.sf_rip); + regcache->raw_supply (12, &sf.sf_r12); + regcache->raw_supply (13, &sf.sf_r13); + regcache->raw_supply (14, &sf.sf_r14); + regcache->raw_supply (15, &sf.sf_r15); + regcache->raw_supply (AMD64_RBX_REGNUM, &sf.sf_rbx); + regcache->raw_supply (AMD64_RIP_REGNUM, &sf.sf_rip); } else { /* No, the pcb must have been last updated by savectx(). */ pcb->pcb_rsp += 8; - regcache_raw_supply (regcache, AMD64_RIP_REGNUM, &sf); + regcache->raw_supply (AMD64_RIP_REGNUM, &sf); } - regcache_raw_supply (regcache, AMD64_RSP_REGNUM, &pcb->pcb_rsp); - regcache_raw_supply (regcache, AMD64_RBP_REGNUM, &pcb->pcb_rbp); + regcache->raw_supply (AMD64_RSP_REGNUM, &pcb->pcb_rsp); + regcache->raw_supply (AMD64_RBP_REGNUM, &pcb->pcb_rbp); return 1; } +static amd64_bsd_nat_target the_amd64_obsd_nat_target; + void _initialize_amd64obsd_nat (void) { @@ -132,8 +135,7 @@ amd64_native_gregset32_num_regs = ARRAY_SIZE (amd64obsd32_r_reg_offset); amd64_native_gregset64_reg_offset = amd64obsd_r_reg_offset; - /* Add some extra features to the common *BSD/amd64 target. */ - obsd_add_target (amd64bsd_target ()); + add_inf_child_target (&the_amd64_obsd_nat_target); /* Support debugging kernel virtual memory images. */ bsd_kvm_add_target (amd64obsd_supply_pcb); diff -Nru gdb-8.1/gdb/amd64-obsd-tdep.c gdb-8.2/gdb/amd64-obsd-tdep.c --- gdb-8.1/gdb/amd64-obsd-tdep.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/amd64-obsd-tdep.c 2018-09-05 07:27:13.000000000 +0000 @@ -241,7 +241,7 @@ returned from _thread_machdep_switch. */ offset = amd64obsd_uthread_reg_offset[AMD64_RIP_REGNUM] + 8; store_unsigned_integer (buf, 8, byte_order, sp + offset); - regcache_raw_supply (regcache, AMD64_RSP_REGNUM, buf); + regcache->raw_supply (AMD64_RSP_REGNUM, buf); } for (i = 0; i < ARRAY_SIZE (amd64obsd_uthread_reg_offset); i++) @@ -256,7 +256,7 @@ /* Read the saved register from the stack frame. */ read_memory (sp + amd64obsd_uthread_reg_offset[i], buf, 8); - regcache_raw_supply (regcache, i, buf); + regcache->raw_supply (i, buf); } } } @@ -281,7 +281,7 @@ /* Calculate the stack pointer (frame pointer) that will be stored into the thread structure. */ offset = amd64obsd_uthread_reg_offset[AMD64_RIP_REGNUM] + 8; - regcache_raw_collect (regcache, AMD64_RSP_REGNUM, buf); + regcache->raw_collect (AMD64_RSP_REGNUM, buf); sp = extract_unsigned_integer (buf, 8, byte_order) - offset; /* Store the stack pointer. */ @@ -303,7 +303,7 @@ sp = read_memory_unsigned_integer (sp_addr, 8, byte_order); /* Write the register into the stack frame. */ - regcache_raw_collect (regcache, i, buf); + regcache->raw_collect (i, buf); write_memory (sp + amd64obsd_uthread_reg_offset[i], buf, 8); } } @@ -421,7 +421,7 @@ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); amd64_init_abi (info, gdbarch, - amd64_target_description (X86_XSTATE_SSE_MASK)); + amd64_target_description (X86_XSTATE_SSE_MASK, true)); obsd_init_abi (info, gdbarch); /* Initialize general-purpose register set details. */ diff -Nru gdb-8.1/gdb/amd64-sol2-tdep.c gdb-8.2/gdb/amd64-sol2-tdep.c --- gdb-8.1/gdb/amd64-sol2-tdep.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/amd64-sol2-tdep.c 2018-09-05 07:27:13.000000000 +0000 @@ -101,7 +101,7 @@ tdep->sizeof_gregset = 28 * 8; amd64_init_abi (info, gdbarch, - amd64_target_description (X86_XSTATE_SSE_MASK)); + amd64_target_description (X86_XSTATE_SSE_MASK, true)); tdep->sigtramp_p = amd64_sol2_sigtramp_p; tdep->sigcontext_addr = amd64_sol2_mcontext_addr; diff -Nru gdb-8.1/gdb/amd64-tdep.c gdb-8.2/gdb/amd64-tdep.c --- gdb-8.1/gdb/amd64-tdep.c 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/gdb/amd64-tdep.c 2018-09-05 07:44:28.000000000 +0000 @@ -47,6 +47,8 @@ #include "ax.h" #include "ax-gdb.h" #include "common/byte-vector.h" +#include "osabi.h" +#include "x86-tdep.h" /* Note that the AMD64 architecture was previously known as x86-64. The latter is (forever) engraved into the canonical system name as @@ -347,7 +349,7 @@ static struct value * amd64_pseudo_register_read_value (struct gdbarch *gdbarch, - struct regcache *regcache, + readable_regcache *regcache, int regnum) { gdb_byte *raw_buf = (gdb_byte *) alloca (register_size (gdbarch, regnum)); @@ -369,9 +371,8 @@ if (gpnum >= AMD64_NUM_LOWER_BYTE_REGS) { /* Special handling for AH, BH, CH, DH. */ - status = regcache_raw_read (regcache, - gpnum - AMD64_NUM_LOWER_BYTE_REGS, - raw_buf); + status = regcache->raw_read (gpnum - AMD64_NUM_LOWER_BYTE_REGS, + raw_buf); if (status == REG_VALID) memcpy (buf, raw_buf + 1, 1); else @@ -380,7 +381,7 @@ } else { - status = regcache_raw_read (regcache, gpnum, raw_buf); + status = regcache->raw_read (gpnum, raw_buf); if (status == REG_VALID) memcpy (buf, raw_buf, 1); else @@ -392,7 +393,7 @@ { int gpnum = regnum - tdep->eax_regnum; /* Extract (always little endian). */ - status = regcache_raw_read (regcache, gpnum, raw_buf); + status = regcache->raw_read (gpnum, raw_buf); if (status == REG_VALID) memcpy (buf, raw_buf, 4); else @@ -421,22 +422,20 @@ if (gpnum >= AMD64_NUM_LOWER_BYTE_REGS) { /* Read ... AH, BH, CH, DH. */ - regcache_raw_read (regcache, - gpnum - AMD64_NUM_LOWER_BYTE_REGS, raw_buf); + regcache->raw_read (gpnum - AMD64_NUM_LOWER_BYTE_REGS, raw_buf); /* ... Modify ... (always little endian). */ memcpy (raw_buf + 1, buf, 1); /* ... Write. */ - regcache_raw_write (regcache, - gpnum - AMD64_NUM_LOWER_BYTE_REGS, raw_buf); + regcache->raw_write (gpnum - AMD64_NUM_LOWER_BYTE_REGS, raw_buf); } else { /* Read ... */ - regcache_raw_read (regcache, gpnum, raw_buf); + regcache->raw_read (gpnum, raw_buf); /* ... Modify ... (always little endian). */ memcpy (raw_buf, buf, 1); /* ... Write. */ - regcache_raw_write (regcache, gpnum, raw_buf); + regcache->raw_write (gpnum, raw_buf); } } else if (i386_dword_regnum_p (gdbarch, regnum)) @@ -444,11 +443,11 @@ int gpnum = regnum - tdep->eax_regnum; /* Read ... */ - regcache_raw_read (regcache, gpnum, raw_buf); + regcache->raw_read (gpnum, raw_buf); /* ... Modify ... (always little endian). */ memcpy (raw_buf, buf, 4); /* ... Write. */ - regcache_raw_write (regcache, gpnum, raw_buf); + regcache->raw_write (gpnum, raw_buf); } else i386_pseudo_register_write (gdbarch, regcache, regnum, buf); @@ -602,8 +601,9 @@ bitsize = TYPE_LENGTH (subtype) * 8; endpos = (TYPE_FIELD_BITPOS (type, i) + bitsize - 1) / 64; - /* Ignore static fields. */ - if (field_is_static (&TYPE_FIELD (type, i))) + /* Ignore static fields, or empty fields, for example nested + empty structures.*/ + if (field_is_static (&TYPE_FIELD (type, i)) || bitsize == 0) continue; gdb_assert (pos == 0 || pos == 1); @@ -769,15 +769,15 @@ { if (readbuf) { - regcache_raw_read (regcache, AMD64_ST0_REGNUM, readbuf); - regcache_raw_read (regcache, AMD64_ST1_REGNUM, readbuf + 16); + regcache->raw_read (AMD64_ST0_REGNUM, readbuf); + regcache->raw_read (AMD64_ST1_REGNUM, readbuf + 16); } if (writebuf) { i387_return_value (gdbarch, regcache); - regcache_raw_write (regcache, AMD64_ST0_REGNUM, writebuf); - regcache_raw_write (regcache, AMD64_ST1_REGNUM, writebuf + 16); + regcache->raw_write (AMD64_ST0_REGNUM, writebuf); + regcache->raw_write (AMD64_ST1_REGNUM, writebuf + 16); /* Fix up the tag word such that both %st(0) and %st(1) are marked as valid. */ @@ -844,11 +844,11 @@ gdb_assert (regnum != -1); if (readbuf) - regcache_raw_read_part (regcache, regnum, offset, std::min (len, 8), - readbuf + i * 8); + regcache->raw_read_part (regnum, offset, std::min (len, 8), + readbuf + i * 8); if (writebuf) - regcache_raw_write_part (regcache, regnum, offset, std::min (len, 8), - writebuf + i * 8); + regcache->raw_write_part (regnum, offset, std::min (len, 8), + writebuf + i * 8); } return RETURN_VALUE_REGISTER_CONVENTION; @@ -956,7 +956,7 @@ gdb_assert (regnum != -1); memset (buf, 0, sizeof buf); memcpy (buf, valbuf + j * 8, std::min (len, 8)); - regcache_raw_write_part (regcache, regnum, offset, 8, buf); + regcache->raw_write_part (regnum, offset, 8, buf); } } } @@ -1010,7 +1010,7 @@ if (struct_return) { store_unsigned_integer (buf, 8, byte_order, struct_addr); - regcache_cooked_write (regcache, AMD64_RDI_REGNUM, buf); + regcache->cooked_write (AMD64_RDI_REGNUM, buf); } /* Store return address. */ @@ -1020,10 +1020,10 @@ /* Finally, update the stack pointer... */ store_unsigned_integer (buf, 8, byte_order, sp); - regcache_cooked_write (regcache, AMD64_RSP_REGNUM, buf); + regcache->cooked_write (AMD64_RSP_REGNUM, buf); /* ...and fake a frame pointer. */ - regcache_cooked_write (regcache, AMD64_RBP_REGNUM, buf); + regcache->cooked_write (AMD64_RBP_REGNUM, buf); return sp + 16; } @@ -3033,6 +3033,16 @@ AMD64_DS_REGNUM, AMD64_ES_REGNUM, AMD64_FS_REGNUM, AMD64_GS_REGNUM }; +/* Implement the "in_indirect_branch_thunk" gdbarch function. */ + +static bool +amd64_in_indirect_branch_thunk (struct gdbarch *gdbarch, CORE_ADDR pc) +{ + return x86_in_indirect_branch_thunk (pc, amd64_register_names, + AMD64_RAX_REGNUM, + AMD64_RIP_REGNUM); +} + void amd64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch, const target_desc *default_tdesc) @@ -3205,8 +3215,19 @@ set_gdbarch_insn_is_call (gdbarch, amd64_insn_is_call); set_gdbarch_insn_is_ret (gdbarch, amd64_insn_is_ret); set_gdbarch_insn_is_jump (gdbarch, amd64_insn_is_jump); + + set_gdbarch_in_indirect_branch_thunk (gdbarch, + amd64_in_indirect_branch_thunk); +} + +/* Initialize ARCH for x86-64, no osabi. */ + +static void +amd64_none_init_abi (gdbarch_info info, gdbarch *arch) +{ + amd64_init_abi (info, arch, amd64_target_description (X86_XSTATE_SSE_MASK, + true)); } - static struct type * amd64_x32_pseudo_register_type (struct gdbarch *gdbarch, int regnum) @@ -3240,22 +3261,33 @@ set_gdbarch_ptr_bit (gdbarch, 32); } +/* Initialize ARCH for x64-32, no osabi. */ + +static void +amd64_x32_none_init_abi (gdbarch_info info, gdbarch *arch) +{ + amd64_x32_init_abi (info, arch, + amd64_target_description (X86_XSTATE_SSE_MASK, true)); +} + /* Return the target description for a specified XSAVE feature mask. */ const struct target_desc * -amd64_target_description (uint64_t xcr0) +amd64_target_description (uint64_t xcr0, bool segments) { static target_desc *amd64_tdescs \ - [2/*AVX*/][2/*MPX*/][2/*AVX512*/][2/*PKRU*/] = {}; + [2/*AVX*/][2/*MPX*/][2/*AVX512*/][2/*PKRU*/][2/*segments*/] = {}; target_desc **tdesc; tdesc = &amd64_tdescs[(xcr0 & X86_XSTATE_AVX) ? 1 : 0] [(xcr0 & X86_XSTATE_MPX) ? 1 : 0] [(xcr0 & X86_XSTATE_AVX512) ? 1 : 0] - [(xcr0 & X86_XSTATE_PKRU) ? 1 : 0]; + [(xcr0 & X86_XSTATE_PKRU) ? 1 : 0] + [segments ? 1 : 0]; if (*tdesc == NULL) - *tdesc = amd64_create_target_description (xcr0, false, false); + *tdesc = amd64_create_target_description (xcr0, false, false, + segments); return *tdesc; } @@ -3263,6 +3295,11 @@ void _initialize_amd64_tdep (void) { + gdbarch_register_osabi (bfd_arch_i386, bfd_mach_x86_64, GDB_OSABI_NONE, + amd64_none_init_abi); + gdbarch_register_osabi (bfd_arch_i386, bfd_mach_x64_32, GDB_OSABI_NONE, + amd64_x32_none_init_abi); + #if GDB_SELF_TEST struct { @@ -3280,7 +3317,7 @@ for (auto &a : xml_masks) { - auto tdesc = amd64_target_description (a.mask); + auto tdesc = amd64_target_description (a.mask, true); selftests::record_xml_tdesc (a.xml, tdesc); } @@ -3315,9 +3352,9 @@ const gdb_byte *regs = (const gdb_byte *) fxsave; if (regnum == -1 || regnum == I387_FISEG_REGNUM (tdep)) - regcache_raw_supply (regcache, I387_FISEG_REGNUM (tdep), regs + 12); + regcache->raw_supply (I387_FISEG_REGNUM (tdep), regs + 12); if (regnum == -1 || regnum == I387_FOSEG_REGNUM (tdep)) - regcache_raw_supply (regcache, I387_FOSEG_REGNUM (tdep), regs + 20); + regcache->raw_supply (I387_FOSEG_REGNUM (tdep), regs + 20); } } @@ -3336,13 +3373,21 @@ && gdbarch_bfd_arch_info (gdbarch)->bits_per_word == 64) { const gdb_byte *regs = (const gdb_byte *) xsave; + static const gdb_byte zero[I386_MAX_REGISTER_SIZE] = { 0 }; + ULONGEST clear_bv; - if (regnum == -1 || regnum == I387_FISEG_REGNUM (tdep)) - regcache_raw_supply (regcache, I387_FISEG_REGNUM (tdep), - regs + 12); - if (regnum == -1 || regnum == I387_FOSEG_REGNUM (tdep)) - regcache_raw_supply (regcache, I387_FOSEG_REGNUM (tdep), - regs + 20); + clear_bv = i387_xsave_get_clear_bv (gdbarch, xsave); + + /* If the FISEG and FOSEG registers have not been initialised yet + (their CLEAR_BV bit is set) then their default values of zero will + have already been setup by I387_SUPPLY_XSAVE. */ + if (!(clear_bv & X86_XSTATE_X87)) + { + if (regnum == -1 || regnum == I387_FISEG_REGNUM (tdep)) + regcache->raw_supply (I387_FISEG_REGNUM (tdep), regs + 12); + if (regnum == -1 || regnum == I387_FOSEG_REGNUM (tdep)) + regcache->raw_supply (I387_FOSEG_REGNUM (tdep), regs + 20); + } } } @@ -3364,9 +3409,9 @@ if (gdbarch_bfd_arch_info (gdbarch)->bits_per_word == 64) { if (regnum == -1 || regnum == I387_FISEG_REGNUM (tdep)) - regcache_raw_collect (regcache, I387_FISEG_REGNUM (tdep), regs + 12); + regcache->raw_collect (I387_FISEG_REGNUM (tdep), regs + 12); if (regnum == -1 || regnum == I387_FOSEG_REGNUM (tdep)) - regcache_raw_collect (regcache, I387_FOSEG_REGNUM (tdep), regs + 20); + regcache->raw_collect (I387_FOSEG_REGNUM (tdep), regs + 20); } } @@ -3385,10 +3430,10 @@ if (gdbarch_bfd_arch_info (gdbarch)->bits_per_word == 64) { if (regnum == -1 || regnum == I387_FISEG_REGNUM (tdep)) - regcache_raw_collect (regcache, I387_FISEG_REGNUM (tdep), + regcache->raw_collect (I387_FISEG_REGNUM (tdep), regs + 12); if (regnum == -1 || regnum == I387_FOSEG_REGNUM (tdep)) - regcache_raw_collect (regcache, I387_FOSEG_REGNUM (tdep), + regcache->raw_collect (I387_FOSEG_REGNUM (tdep), regs + 20); } } diff -Nru gdb-8.1/gdb/amd64-tdep.h gdb-8.2/gdb/amd64-tdep.h --- gdb-8.1/gdb/amd64-tdep.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/amd64-tdep.h 2018-09-05 07:27:13.000000000 +0000 @@ -106,7 +106,8 @@ extern void amd64_x32_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch, const target_desc *default_tdesc); -extern const struct target_desc *amd64_target_description (uint64_t xcr0); +extern const struct target_desc *amd64_target_description (uint64_t xcr0, + bool segments); /* Fill register REGNUM in REGCACHE with the appropriate floating-point or SSE register value from *FXSAVE. If REGNUM is diff -Nru gdb-8.1/gdb/amd64-windows-tdep.c gdb-8.2/gdb/amd64-windows-tdep.c --- gdb-8.1/gdb/amd64-windows-tdep.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/amd64-windows-tdep.c 2018-09-05 07:27:13.000000000 +0000 @@ -145,7 +145,7 @@ gdb_assert (TYPE_LENGTH (type) <= 8); memset (buf, 0, sizeof buf); memcpy (buf, valbuf, std::min (TYPE_LENGTH (type), (unsigned int) 8)); - regcache_cooked_write (regcache, regno, buf); + regcache->cooked_write (regno, buf); } /* Push the arguments for an inferior function call, and return @@ -262,7 +262,7 @@ const int arg_regnum = amd64_windows_dummy_call_integer_regs[0]; store_unsigned_integer (buf, 8, byte_order, struct_addr); - regcache_cooked_write (regcache, arg_regnum, buf); + regcache->cooked_write (arg_regnum, buf); } /* Reserve some memory on the stack for the integer-parameter @@ -276,10 +276,10 @@ /* Update the stack pointer... */ store_unsigned_integer (buf, 8, byte_order, sp); - regcache_cooked_write (regcache, AMD64_RSP_REGNUM, buf); + regcache->cooked_write (AMD64_RSP_REGNUM, buf); /* ...and fake a frame pointer. */ - regcache_cooked_write (regcache, AMD64_RBP_REGNUM, buf); + regcache->cooked_write (AMD64_RBP_REGNUM, buf); return sp + 16; } @@ -329,9 +329,9 @@ { /* Extract the return value from the register where it was stored. */ if (readbuf) - regcache_raw_read_part (regcache, regnum, 0, len, readbuf); + regcache->raw_read_part (regnum, 0, len, readbuf); if (writebuf) - regcache_raw_write_part (regcache, regnum, 0, len, writebuf); + regcache->raw_write_part (regnum, 0, len, writebuf); return RETURN_VALUE_REGISTER_CONVENTION; } } @@ -1226,7 +1226,7 @@ frame_unwind_append_unwinder (gdbarch, &amd64_windows_frame_unwind); amd64_init_abi (info, gdbarch, - amd64_target_description (X86_XSTATE_SSE_MASK)); + amd64_target_description (X86_XSTATE_SSE_MASK, false)); windows_init_abi (info, gdbarch); diff -Nru gdb-8.1/gdb/annotate.c gdb-8.2/gdb/annotate.c --- gdb-8.1/gdb/annotate.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/annotate.c 2018-09-05 07:27:13.000000000 +0000 @@ -22,7 +22,7 @@ #include "target.h" #include "gdbtypes.h" #include "breakpoint.h" -#include "observer.h" +#include "observable.h" #include "inferior.h" #include "infrun.h" #include "top.h" @@ -592,7 +592,7 @@ void _initialize_annotate (void) { - observer_attach_breakpoint_created (breakpoint_changed); - observer_attach_breakpoint_deleted (breakpoint_changed); - observer_attach_breakpoint_modified (breakpoint_changed); + gdb::observers::breakpoint_created.attach (breakpoint_changed); + gdb::observers::breakpoint_deleted.attach (breakpoint_changed); + gdb::observers::breakpoint_modified.attach (breakpoint_changed); } diff -Nru gdb-8.1/gdb/arch/aarch64.c gdb-8.2/gdb/arch/aarch64.c --- gdb-8.1/gdb/arch/aarch64.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/arch/aarch64.c 2018-09-05 07:27:13.000000000 +0000 @@ -15,17 +15,18 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ - +#include "common-defs.h" #include "aarch64.h" #include #include "../features/aarch64-core.c" #include "../features/aarch64-fpu.c" +#include "../features/aarch64-sve.c" -/* Create the aarch64 target description. */ +/* See arch/aarch64.h. */ target_desc * -aarch64_create_target_description () +aarch64_create_target_description (uint64_t vq) { target_desc *tdesc = allocate_target_description (); @@ -36,7 +37,11 @@ long regnum = 0; regnum = create_feature_aarch64_core (tdesc, regnum); - regnum = create_feature_aarch64_fpu (tdesc, regnum); + + if (vq == 0) + regnum = create_feature_aarch64_fpu (tdesc, regnum); + else + regnum = create_feature_aarch64_sve (tdesc, regnum, vq); return tdesc; } diff -Nru gdb-8.1/gdb/arch/aarch64.h gdb-8.2/gdb/arch/aarch64.h --- gdb-8.1/gdb/arch/aarch64.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/arch/aarch64.h 2018-09-05 07:27:32.000000000 +0000 @@ -20,11 +20,17 @@ #ifndef ARCH_AARCH64_H #define ARCH_AARCH64_H -#include "tdesc.h" +#include "common/tdesc.h" -target_desc *aarch64_create_target_description (); +/* Create the aarch64 target description. A non zero VQ value indicates both + the presence of SVE and the Vector Quotient - the number of 128bit chunks in + an SVE Z register. */ -/* Register numbers of various important registers. */ +target_desc *aarch64_create_target_description (uint64_t vq); + +/* Register numbers of various important registers. + Note that on SVE, the Z registers reuse the V register numbers and the V + registers become pseudo registers. */ enum aarch64_regnum { AARCH64_X0_REGNUM, /* First integer register. */ @@ -35,8 +41,15 @@ AARCH64_CPSR_REGNUM, /* Current Program Status Register. */ AARCH64_V0_REGNUM, /* First fp/vec register. */ AARCH64_V31_REGNUM = AARCH64_V0_REGNUM + 31, /* Last fp/vec register. */ + AARCH64_SVE_Z0_REGNUM = AARCH64_V0_REGNUM, /* First SVE Z register. */ + AARCH64_SVE_Z31_REGNUM = AARCH64_V31_REGNUM, /* Last SVE Z register. */ AARCH64_FPSR_REGNUM, /* Floating Point Status Register. */ AARCH64_FPCR_REGNUM, /* Floating Point Control Register. */ + AARCH64_SVE_P0_REGNUM, /* First SVE predicate register. */ + AARCH64_SVE_P15_REGNUM = AARCH64_SVE_P0_REGNUM + 15, /* Last SVE predicate + register. */ + AARCH64_SVE_FFR_REGNUM, /* SVE First Fault Register. */ + AARCH64_SVE_VG_REGNUM, /* SVE Vector Granule. */ /* Other useful registers. */ AARCH64_LAST_X_ARG_REGNUM = AARCH64_X0_REGNUM + 7, @@ -46,6 +59,34 @@ #define AARCH64_X_REGS_NUM 31 #define AARCH64_V_REGS_NUM 32 +#define AARCH64_SVE_Z_REGS_NUM AARCH64_V_REGS_NUM +#define AARCH64_SVE_P_REGS_NUM 16 #define AARCH64_NUM_REGS AARCH64_FPCR_REGNUM + 1 +#define AARCH64_SVE_NUM_REGS AARCH64_SVE_VG_REGNUM + 1 + + +/* There are a number of ways of expressing the current SVE vector size: + + VL : Vector Length. + The number of bytes in an SVE Z register. + VQ : Vector Quotient. + The number of 128bit chunks in an SVE Z register. + VG : Vector Granule. + The number of 64bit chunks in an SVE Z register. */ + +#define sve_vg_from_vl(vl) ((vl) / 8) +#define sve_vl_from_vg(vg) ((vg) * 8) +#ifndef sve_vq_from_vl +#define sve_vq_from_vl(vl) ((vl) / 0x10) +#endif +#ifndef sve_vl_from_vq +#define sve_vl_from_vq(vq) ((vq) * 0x10) +#endif +#define sve_vq_from_vg(vg) (sve_vq_from_vl (sve_vl_from_vg (vg))) +#define sve_vg_from_vq(vq) (sve_vg_from_vl (sve_vl_from_vq (vq))) + + +/* Maximum supported VQ value. Increase if required. */ +#define AARCH64_MAX_SVE_VQ 16 #endif /* ARCH_AARCH64_H */ diff -Nru gdb-8.1/gdb/arch/amd64.c gdb-8.2/gdb/arch/amd64.c --- gdb-8.1/gdb/arch/amd64.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/arch/amd64.c 2018-09-05 07:27:13.000000000 +0000 @@ -15,6 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ +#include "common-defs.h" #include "amd64.h" #include "x86-xstate.h" #include @@ -32,10 +33,12 @@ /* Create amd64 target descriptions according to XCR0. If IS_X32 is true, create the x32 ones. If IS_LINUX is true, create target - descriptions for Linux. */ + descriptions for Linux. If SEGMENTS is true, then include + the "org.gnu.gdb.i386.segments" feature registers. */ target_desc * -amd64_create_target_description (uint64_t xcr0, bool is_x32, bool is_linux) +amd64_create_target_description (uint64_t xcr0, bool is_x32, bool is_linux, + bool segments) { target_desc *tdesc = allocate_target_description (); @@ -56,7 +59,8 @@ regnum = create_feature_i386_64bit_sse (tdesc, regnum); if (is_linux) regnum = create_feature_i386_64bit_linux (tdesc, regnum); - regnum = create_feature_i386_64bit_segments (tdesc, regnum); + if (segments) + regnum = create_feature_i386_64bit_segments (tdesc, regnum); if (xcr0 & X86_XSTATE_AVX) regnum = create_feature_i386_64bit_avx (tdesc, regnum); diff -Nru gdb-8.1/gdb/arch/amd64.h gdb-8.2/gdb/arch/amd64.h --- gdb-8.1/gdb/arch/amd64.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/arch/amd64.h 2018-09-05 07:27:13.000000000 +0000 @@ -15,8 +15,8 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "tdesc.h" +#include "common/tdesc.h" #include target_desc *amd64_create_target_description (uint64_t xcr0, bool is_x32, - bool is_linux); + bool is_linux, bool segments); diff -Nru gdb-8.1/gdb/arch/arm.c gdb-8.2/gdb/arch/arm.c --- gdb-8.1/gdb/arch/arm.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/arch/arm.c 2018-09-05 07:27:13.000000000 +0000 @@ -153,7 +153,8 @@ modify PC. */ return 0; } - /* Data processing instruction. Fall through. */ + /* Data processing instruction. */ + /* Fall through. */ case 0x1: if (bits (this_instr, 12, 15) == 15) diff -Nru gdb-8.1/gdb/arch/i386.c gdb-8.2/gdb/arch/i386.c --- gdb-8.1/gdb/arch/i386.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/arch/i386.c 2018-09-05 07:27:13.000000000 +0000 @@ -15,8 +15,9 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ +#include "common-defs.h" #include "i386.h" -#include "tdesc.h" +#include "common/tdesc.h" #include "x86-xstate.h" #include diff -Nru gdb-8.1/gdb/arch/i386.h gdb-8.2/gdb/arch/i386.h --- gdb-8.1/gdb/arch/i386.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/arch/i386.h 2018-09-05 07:27:13.000000000 +0000 @@ -15,7 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "tdesc.h" +#include "common/tdesc.h" #include target_desc *i386_create_target_description (uint64_t xcr0, bool is_linux); diff -Nru gdb-8.1/gdb/arch/ppc-linux-common.c gdb-8.2/gdb/arch/ppc-linux-common.c --- gdb-8.1/gdb/arch/ppc-linux-common.c 1970-01-01 00:00:00.000000000 +0000 +++ gdb-8.2/gdb/arch/ppc-linux-common.c 2018-09-05 07:27:13.000000000 +0000 @@ -0,0 +1,85 @@ +/* Common target dependent code for GNU/Linux on PPC systems. + + Copyright (C) 2018 Free Software Foundation, Inc. + + This file is part of GDB. + + 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 3 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, see . */ + +#include "common-defs.h" +#include "arch/ppc-linux-common.h" +#include "arch/ppc-linux-tdesc.h" + +/* Decimal Floating Point bit in AT_HWCAP. + + This file can be used by a host with another architecture, e.g. + when debugging core files, which might not provide this constant. */ + +#ifndef PPC_FEATURE_HAS_DFP +#define PPC_FEATURE_HAS_DFP 0x00000400 +#endif + +bool +ppc_linux_has_isa205 (CORE_ADDR hwcap) +{ + /* Power ISA 2.05 (implemented by Power 6 and newer processors) + increases the FPSCR from 32 bits to 64 bits. Even though Power 7 + supports this ISA version, it doesn't have PPC_FEATURE_ARCH_2_05 + set, only PPC_FEATURE_ARCH_2_06. Since for now the only bits + used in the higher half of the register are for Decimal Floating + Point, we check if that feature is available to decide the size + of the FPSCR. */ + return ((hwcap & PPC_FEATURE_HAS_DFP) != 0); +} + +const struct target_desc * +ppc_linux_match_description (struct ppc_linux_features features) +{ + struct target_desc *tdesc = NULL; + + if (features.wordsize == 8) + { + if (features.cell) + tdesc = tdesc_powerpc_cell64l; + else if (features.vsx) + tdesc = features.isa205 + ? tdesc_powerpc_isa205_vsx64l : tdesc_powerpc_vsx64l; + else if (features.altivec) + tdesc = features.isa205 + ? tdesc_powerpc_isa205_altivec64l : tdesc_powerpc_altivec64l; + else + tdesc = features.isa205? + tdesc_powerpc_isa205_64l : tdesc_powerpc_64l; + } + else + { + gdb_assert (features.wordsize == 4); + + if (features.cell) + tdesc = tdesc_powerpc_cell32l; + else if (features.vsx) + tdesc = features.isa205 + ? tdesc_powerpc_isa205_vsx32l : tdesc_powerpc_vsx32l; + else if (features.altivec) + tdesc = features.isa205 + ? tdesc_powerpc_isa205_altivec32l : tdesc_powerpc_altivec32l; + else + tdesc = features.isa205 + ? tdesc_powerpc_isa205_32l : tdesc_powerpc_32l; + } + + gdb_assert (tdesc != NULL); + + return tdesc; +} diff -Nru gdb-8.1/gdb/arch/ppc-linux-common.h gdb-8.2/gdb/arch/ppc-linux-common.h --- gdb-8.1/gdb/arch/ppc-linux-common.h 1970-01-01 00:00:00.000000000 +0000 +++ gdb-8.2/gdb/arch/ppc-linux-common.h 2018-09-05 07:27:13.000000000 +0000 @@ -0,0 +1,60 @@ +/* Common target dependent code for GNU/Linux on PPC systems. + + Copyright (C) 2018 Free Software Foundation, Inc. + + This file is part of GDB. + + 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 3 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, see . */ + +#ifndef ARCH_PPC_LINUX_COMMON_H +#define ARCH_PPC_LINUX_COMMON_H + +struct target_desc; + +/* The core file VMX regset has 34 16-byte fields (32 16-byte vector + registers, plus two fields containing 4-byte registers, VSCR and + VRSAVE), while the ptrace calls return or read 33 16-byte fields + plus a 4-byte field for VRSAVE. For simplicity we use the longer + length for both cases. */ +#define PPC_LINUX_SIZEOF_VRREGSET 544 + +#define PPC_LINUX_SIZEOF_VSXREGSET 256 + +/* Check if the hwcap auxv entry indicates that isa205 is supported. */ +bool ppc_linux_has_isa205 (CORE_ADDR hwcap); + +/* Features used to determine the target description. */ +struct ppc_linux_features +{ + unsigned int wordsize; + bool altivec; + bool vsx; + bool isa205; + bool cell; +}; + +/* Base value for ppc_linux_features variables. */ +const struct ppc_linux_features ppc_linux_no_features = { + 0, + false, + false, + false, + false, +}; + +/* Return a target description that matches FEATURES. */ +const struct target_desc * ppc_linux_match_description +(struct ppc_linux_features features); + +#endif /* ARCH_PPC_LINUX_COMMON_H */ diff -Nru gdb-8.1/gdb/arch/ppc-linux-tdesc.h gdb-8.2/gdb/arch/ppc-linux-tdesc.h --- gdb-8.1/gdb/arch/ppc-linux-tdesc.h 1970-01-01 00:00:00.000000000 +0000 +++ gdb-8.2/gdb/arch/ppc-linux-tdesc.h 2018-09-05 07:27:13.000000000 +0000 @@ -0,0 +1,42 @@ +/* Target description declarations shared between gdb, gdbserver and IPA. + + Copyright (C) 2018 Free Software Foundation, Inc. + + This file is part of GDB. + + 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 3 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, see . */ + +#ifndef ARCH_PPC_LINUX_TDESC_H +#define ARCH_PPC_LINUX_TDESC_H + +struct target_desc; + +extern struct target_desc *tdesc_powerpc_32l; +extern struct target_desc *tdesc_powerpc_altivec32l; +extern struct target_desc *tdesc_powerpc_cell32l; +extern struct target_desc *tdesc_powerpc_vsx32l; +extern struct target_desc *tdesc_powerpc_isa205_32l; +extern struct target_desc *tdesc_powerpc_isa205_altivec32l; +extern struct target_desc *tdesc_powerpc_isa205_vsx32l; +extern struct target_desc *tdesc_powerpc_e500l; + +extern struct target_desc *tdesc_powerpc_64l; +extern struct target_desc *tdesc_powerpc_altivec64l; +extern struct target_desc *tdesc_powerpc_cell64l; +extern struct target_desc *tdesc_powerpc_vsx64l; +extern struct target_desc *tdesc_powerpc_isa205_64l; +extern struct target_desc *tdesc_powerpc_isa205_altivec64l; +extern struct target_desc *tdesc_powerpc_isa205_vsx64l; + +#endif /* ARCH_PPC_LINUX_TDESC_H */ diff -Nru gdb-8.1/gdb/arch/tdesc.h gdb-8.2/gdb/arch/tdesc.h --- gdb-8.1/gdb/arch/tdesc.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/arch/tdesc.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ -/* Copyright (C) 2006-2018 Free Software Foundation, Inc. - - This file is part of GDB. - - 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 3 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, see . */ - -#ifndef ARCH_TDESC_H -#define ARCH_TDESC_H 1 - -struct tdesc_feature; -struct tdesc_type; -struct tdesc_type_builtin; -struct tdesc_type_vector; -struct tdesc_type_with_fields; -struct tdesc_reg; -struct target_desc; - -/* Allocate a new target_desc. */ -target_desc *allocate_target_description (void); - -/* Set TARGET_DESC's architecture by NAME. */ -void set_tdesc_architecture (target_desc *target_desc, - const char *name); - -/* Set TARGET_DESC's osabi by NAME. */ -void set_tdesc_osabi (target_desc *target_desc, const char *name); - -/* Return the type associated with ID in the context of FEATURE, or - NULL if none. */ -struct tdesc_type *tdesc_named_type (const struct tdesc_feature *feature, - const char *id); - -/* Return the created feature named NAME in target description TDESC. */ -struct tdesc_feature *tdesc_create_feature (struct target_desc *tdesc, - const char *name, - const char *xml = nullptr); - - -/* Return the created vector tdesc_type named NAME in FEATURE. */ -struct tdesc_type *tdesc_create_vector (struct tdesc_feature *feature, - const char *name, - struct tdesc_type *field_type, - int count); - -/* Return the created struct tdesc_type named NAME in FEATURE. */ -tdesc_type_with_fields *tdesc_create_struct (struct tdesc_feature *feature, - const char *name); - -/* Return the created union tdesc_type named NAME in FEATURE. */ -tdesc_type_with_fields *tdesc_create_union (struct tdesc_feature *feature, - const char *name); - -/* Return the created flags tdesc_type named NAME in FEATURE. */ -tdesc_type_with_fields *tdesc_create_flags (struct tdesc_feature *feature, - const char *name, - int size); - -/* Add a new field to TYPE. FIELD_NAME is its name, and FIELD_TYPE is - its type. */ -void tdesc_add_field (tdesc_type_with_fields *type, const char *field_name, - struct tdesc_type *field_type); - -/* Set the total length of TYPE. Structs which contain bitfields may - omit the reserved bits, so the end of the last field may not - suffice. */ -void tdesc_set_struct_size (tdesc_type_with_fields *type, int size); - -/* Add a new untyped bitfield to TYPE. - Untyped bitfields become either uint32 or uint64 depending on the size - of the underlying type. */ -void tdesc_add_bitfield (tdesc_type_with_fields *type, const char *field_name, - int start, int end); - -/* A flag is just a typed(bool) single-bit bitfield. - This function is kept to minimize changes in generated files. */ -void tdesc_add_flag (tdesc_type_with_fields *type, int start, - const char *flag_name); - -/* Create a register in feature FEATURE. */ -void tdesc_create_reg (struct tdesc_feature *feature, const char *name, - int regnum, int save_restore, const char *group, - int bitsize, const char *type); - -#endif /* ARCH_TDESC_H */ diff -Nru gdb-8.1/gdb/arch/tic6x.c gdb-8.2/gdb/arch/tic6x.c --- gdb-8.1/gdb/arch/tic6x.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/arch/tic6x.c 2018-09-05 07:27:13.000000000 +0000 @@ -15,7 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "tdesc.h" +#include "common/tdesc.h" #include "tic6x.h" #include "common/common-defs.h" diff -Nru gdb-8.1/gdb/arch-utils.c gdb-8.2/gdb/arch-utils.c --- gdb-8.1/gdb/arch-utils.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/arch-utils.c 2018-09-05 07:44:28.000000000 +0000 @@ -727,7 +727,6 @@ memset (info, 0, sizeof (struct gdbarch_info)); info->byte_order = BFD_ENDIAN_UNKNOWN; info->byte_order_for_code = info->byte_order; - info->osabi = GDB_OSABI_UNINITIALIZED; } /* Similar to init, but this time fill in the blanks. Information is @@ -769,12 +768,15 @@ if (info->byte_order == BFD_ENDIAN_UNKNOWN) info->byte_order = default_byte_order; info->byte_order_for_code = info->byte_order; + /* Wire the default to the last selected byte order. */ + default_byte_order = info->byte_order; /* "(gdb) set osabi ...". Handled by gdbarch_lookup_osabi. */ /* From the manual override, or from file. */ - if (info->osabi == GDB_OSABI_UNINITIALIZED) + if (info->osabi == GDB_OSABI_UNKNOWN) info->osabi = gdbarch_lookup_osabi (info->abfd); /* From the target. */ + if (info->osabi == GDB_OSABI_UNKNOWN && info->target_desc != NULL) info->osabi = tdesc_osabi (info->target_desc); /* From the configured default. */ @@ -782,6 +784,9 @@ if (info->osabi == GDB_OSABI_UNKNOWN) info->osabi = GDB_OSABI_DEFAULT; #endif + /* If we still don't know which osabi to pick, pick none. */ + if (info->osabi == GDB_OSABI_UNKNOWN) + info->osabi = GDB_OSABI_NONE; /* Must have at least filled in the architecture. */ gdb_assert (info->bfd_arch_info != NULL); @@ -813,12 +818,12 @@ int default_fast_tracepoint_valid_at (struct gdbarch *gdbarch, CORE_ADDR addr, - char **msg) + std::string *msg) { /* We don't know if maybe the target has some way to do fast tracepoints that doesn't need gdbarch, so always say yes. */ if (msg) - *msg = NULL; + msg->clear (); return 1; } @@ -943,7 +948,7 @@ regs = (gdb_byte *) alloca (register_size (gdbarch, pc_regno)); store_unsigned_integer (regs, register_size (gdbarch, pc_regno), gdbarch_byte_order (gdbarch), addr); - regcache_raw_supply (regcache, pc_regno, regs); + regcache->raw_supply (pc_regno, regs); } int @@ -976,6 +981,22 @@ return new_pc; } +/* See arch-utils.h. */ + +bool +default_in_indirect_branch_thunk (gdbarch *gdbarch, CORE_ADDR pc) +{ + return false; +} + +/* See arch-utils.h. */ + +ULONGEST +default_type_align (struct gdbarch *gdbarch, struct type *type) +{ + return type_length_units (check_typedef (type)); +} + void _initialize_gdbarch_utils (void) { diff -Nru gdb-8.1/gdb/arch-utils.h gdb-8.2/gdb/arch-utils.h --- gdb-8.1/gdb/arch-utils.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/arch-utils.h 2018-09-05 07:27:13.000000000 +0000 @@ -202,7 +202,7 @@ extern int default_has_shared_address_space (struct gdbarch *); extern int default_fast_tracepoint_valid_at (struct gdbarch *gdbarch, - CORE_ADDR addr, char **msg); + CORE_ADDR addr, std::string *msg); extern const gdb_byte *default_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, @@ -262,4 +262,13 @@ extern CORE_ADDR gdbarch_skip_prologue_noexcept (gdbarch *gdbarch, CORE_ADDR pc) noexcept; +/* Default implementation of gdbarch_in_indirect_branch_thunk that returns + false. */ +extern bool default_in_indirect_branch_thunk (gdbarch *gdbarch, + CORE_ADDR pc); + +/* Default implementation of gdbarch type_align method. */ +extern ULONGEST default_type_align (struct gdbarch *gdbarch, + struct type *type); + #endif diff -Nru gdb-8.1/gdb/arc-tdep.c gdb-8.2/gdb/arc-tdep.c --- gdb-8.1/gdb/arc-tdep.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/arc-tdep.c 2018-09-05 07:27:13.000000000 +0000 @@ -664,7 +664,7 @@ /* Note we don't use write_unsigned here, since that would convert the byte order, but we are already in the correct byte order. */ - regcache_cooked_write (regcache, arg_reg, data); + regcache->cooked_write (arg_reg, data); data += ARC_REGISTER_SIZE; total_space -= ARC_REGISTER_SIZE; @@ -1957,6 +1957,15 @@ return TRUE; } +/* Implement the type_align gdbarch function. */ + +static ULONGEST +arc_type_align (struct gdbarch *gdbarch, struct type *type) +{ + type = check_typedef (type); + return std::min (4, TYPE_LENGTH (type)); +} + /* Implement the "init" gdbarch method. */ static struct gdbarch * @@ -1982,7 +1991,7 @@ set_gdbarch_int_bit (gdbarch, 32); set_gdbarch_long_bit (gdbarch, 32); set_gdbarch_long_long_bit (gdbarch, 64); - set_gdbarch_long_long_align_bit (gdbarch, 32); + set_gdbarch_type_align (gdbarch, arc_type_align); set_gdbarch_float_bit (gdbarch, 32); set_gdbarch_float_format (gdbarch, floatformats_ieee_single); set_gdbarch_double_bit (gdbarch, 64); diff -Nru gdb-8.1/gdb/arm-bsd-tdep.c gdb-8.2/gdb/arm-bsd-tdep.c --- gdb-8.1/gdb/arm-bsd-tdep.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/arm-bsd-tdep.c 2018-09-05 07:27:32.000000000 +0000 @@ -58,7 +58,7 @@ for (i = ARM_F0_REGNUM; i <= ARM_FPS_REGNUM; i++) { if (regnum == i || regnum == -1) - regcache_raw_supply (regcache, i, regs + armbsd_fpreg_offset (i)); + regcache->raw_supply (i, regs + armbsd_fpreg_offset (i)); } } @@ -79,11 +79,11 @@ for (i = ARM_A1_REGNUM; i <= ARM_PC_REGNUM; i++) { if (regnum == i || regnum == -1) - regcache_raw_supply (regcache, i, regs + i * 4); + regcache->raw_supply (i, regs + i * 4); } if (regnum == ARM_PS_REGNUM || regnum == -1) - regcache_raw_supply (regcache, i, regs + 16 * 4); + regcache->raw_supply (i, regs + 16 * 4); if (len >= ARMBSD_SIZEOF_GREGS + ARMBSD_SIZEOF_FPREGS) { @@ -117,6 +117,8 @@ void *cb_data, const struct regcache *regcache) { - cb (".reg", ARMBSD_SIZEOF_GREGS, &armbsd_gregset, NULL, cb_data); - cb (".reg2", ARMBSD_SIZEOF_FPREGS, &armbsd_fpregset, NULL, cb_data); + cb (".reg", ARMBSD_SIZEOF_GREGS, ARMBSD_SIZEOF_GREGS, &armbsd_gregset, NULL, + cb_data); + cb (".reg2", ARMBSD_SIZEOF_FPREGS, ARMBSD_SIZEOF_FPREGS, &armbsd_fpregset, + NULL, cb_data); } diff -Nru gdb-8.1/gdb/arm-fbsd-nat.c gdb-8.2/gdb/arm-fbsd-nat.c --- gdb-8.1/gdb/arm-fbsd-nat.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/arm-fbsd-nat.c 2018-09-05 07:27:13.000000000 +0000 @@ -29,6 +29,15 @@ #include "arm-fbsd-tdep.h" #include "inf-ptrace.h" +struct arm_fbsd_nat_target : public fbsd_nat_target +{ + void fetch_registers (struct regcache *, int) override; + void store_registers (struct regcache *, int) override; + const struct target_desc *read_description () override; +}; + +static arm_fbsd_nat_target the_arm_fbsd_nat_target; + /* Determine if PT_GETREGS fetches REGNUM. */ static bool @@ -52,11 +61,10 @@ /* Fetch register REGNUM from the inferior. If REGNUM is -1, do this for all registers. */ -static void -arm_fbsd_fetch_inferior_registers (struct target_ops *ops, - struct regcache *regcache, int regnum) +void +arm_fbsd_nat_target::fetch_registers (struct regcache *regcache, int regnum) { - pid_t pid = get_ptrace_pid (regcache_get_ptid (regcache)); + pid_t pid = get_ptrace_pid (regcache->ptid ()); struct gdbarch *gdbarch = regcache->arch (); if (regnum == -1 || getregs_supplies (gdbarch, regnum)) @@ -87,11 +95,10 @@ /* Store register REGNUM back into the inferior. If REGNUM is -1, do this for all registers. */ -static void -arm_fbsd_store_inferior_registers (struct target_ops *ops, - struct regcache *regcache, int regnum) +void +arm_fbsd_nat_target::store_registers (struct regcache *regcache, int regnum) { - pid_t pid = get_ptrace_pid (regcache_get_ptid (regcache)); + pid_t pid = get_ptrace_pid (regcache->ptid ()); struct gdbarch *gdbarch = regcache->arch (); if (regnum == -1 || getregs_supplies (gdbarch, regnum)) @@ -127,25 +134,19 @@ /* Implement the to_read_description method. */ -static const struct target_desc * -arm_fbsd_read_description (struct target_ops *ops) +const struct target_desc * +arm_fbsd_nat_target::read_description () { const struct target_desc *desc; - desc = arm_fbsd_read_description_auxv (ops); + desc = arm_fbsd_read_description_auxv (this); if (desc == NULL) - desc = ops->beneath->to_read_description (ops->beneath); + desc = this->beneath ()->read_description (); return desc; } void _initialize_arm_fbsd_nat (void) { - struct target_ops *t; - - t = inf_ptrace_target (); - t->to_fetch_registers = arm_fbsd_fetch_inferior_registers; - t->to_store_registers = arm_fbsd_store_inferior_registers; - t->to_read_description = arm_fbsd_read_description; - fbsd_nat_add_target (t); + add_inf_child_target (&the_arm_fbsd_nat_target); } diff -Nru gdb-8.1/gdb/arm-fbsd-tdep.c gdb-8.2/gdb/arm-fbsd-tdep.c --- gdb-8.1/gdb/arm-fbsd-tdep.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/arm-fbsd-tdep.c 2018-09-05 07:44:28.000000000 +0000 @@ -175,14 +175,15 @@ { struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); - cb (".reg", ARM_FBSD_SIZEOF_GREGSET, &arm_fbsd_gregset, NULL, cb_data); + cb (".reg", ARM_FBSD_SIZEOF_GREGSET, ARM_FBSD_SIZEOF_GREGSET, + &arm_fbsd_gregset, NULL, cb_data); /* While FreeBSD/arm cores do contain a NT_FPREGSET / ".reg2" register set, it is not populated with register values by the kernel but just contains all zeroes. */ if (tdep->vfp_register_count > 0) - cb (".reg-arm-vfp", ARM_FBSD_SIZEOF_VFPREGSET, &arm_fbsd_vfpregset, - "VFP floating-point", cb_data); + cb (".reg-arm-vfp", ARM_FBSD_SIZEOF_VFPREGSET, ARM_FBSD_SIZEOF_VFPREGSET, + &arm_fbsd_vfpregset, "VFP floating-point", cb_data); } /* Lookup a target description from a target's AT_HWCAP auxiliary diff -Nru gdb-8.1/gdb/arm-linux-nat.c gdb-8.2/gdb/arm-linux-nat.c --- gdb-8.1/gdb/arm-linux-nat.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/arm-linux-nat.c 2018-09-05 07:44:28.000000000 +0000 @@ -24,7 +24,7 @@ #include "linux-nat.h" #include "target-descriptions.h" #include "auxv.h" -#include "observer.h" +#include "observable.h" #include "gdbthread.h" #include "arm-tdep.h" @@ -66,6 +66,49 @@ extern int arm_apcs_32; +class arm_linux_nat_target final : public linux_nat_target +{ +public: + /* Add our register access methods. */ + void fetch_registers (struct regcache *, int) override; + void store_registers (struct regcache *, int) override; + + /* Add our hardware breakpoint and watchpoint implementation. */ + int can_use_hw_breakpoint (enum bptype, int, int) override; + + int insert_hw_breakpoint (struct gdbarch *, struct bp_target_info *) override; + + int remove_hw_breakpoint (struct gdbarch *, struct bp_target_info *) override; + + int region_ok_for_hw_watchpoint (CORE_ADDR, int) override; + + int insert_watchpoint (CORE_ADDR, int, enum target_hw_bp_type, + struct expression *) override; + + int remove_watchpoint (CORE_ADDR, int, enum target_hw_bp_type, + struct expression *) override; + bool stopped_by_watchpoint () override; + + bool stopped_data_address (CORE_ADDR *) override; + + bool watchpoint_addr_within_range (CORE_ADDR, CORE_ADDR, int) override; + + const struct target_desc *read_description () override; + + /* Override linux_nat_target low methods. */ + + /* Handle thread creation and exit. */ + void low_new_thread (struct lwp_info *lp) override; + void low_delete_thread (struct arch_lwp_info *lp) override; + void low_prepare_to_resume (struct lwp_info *lp) override; + + /* Handle process creation and exit. */ + void low_new_fork (struct lwp_info *parent, pid_t child_pid) override; + void low_forget_process (pid_t pid) override; +}; + +static arm_linux_nat_target the_arm_linux_nat_target; + /* Get the whole floating point state of the process and store it into regcache. */ @@ -76,7 +119,7 @@ gdb_byte fp[ARM_LINUX_SIZEOF_NWFPE]; /* Get the thread id for the ptrace call. */ - tid = ptid_get_lwp (regcache_get_ptid (regcache)); + tid = regcache->ptid ().lwp (); /* Read the floating point state. */ if (have_ptrace_getregset == TRIBOOL_TRUE) @@ -95,8 +138,7 @@ perror_with_name (_("Unable to fetch the floating point registers.")); /* Fetch fpsr. */ - regcache_raw_supply (regcache, ARM_FPS_REGNUM, - fp + NWFPE_FPSR_OFFSET); + regcache->raw_supply (ARM_FPS_REGNUM, fp + NWFPE_FPSR_OFFSET); /* Fetch the floating point registers. */ for (regno = ARM_F0_REGNUM; regno <= ARM_F7_REGNUM; regno++) @@ -113,7 +155,7 @@ gdb_byte fp[ARM_LINUX_SIZEOF_NWFPE]; /* Get the thread id for the ptrace call. */ - tid = ptid_get_lwp (regcache_get_ptid (regcache)); + tid = regcache->ptid ().lwp (); /* Read the floating point state. */ if (have_ptrace_getregset == TRIBOOL_TRUE) @@ -133,12 +175,12 @@ perror_with_name (_("Unable to fetch the floating point registers.")); /* Store fpsr. */ - if (REG_VALID == regcache_register_status (regcache, ARM_FPS_REGNUM)) - regcache_raw_collect (regcache, ARM_FPS_REGNUM, fp + NWFPE_FPSR_OFFSET); + if (REG_VALID == regcache->get_register_status (ARM_FPS_REGNUM)) + regcache->raw_collect (ARM_FPS_REGNUM, fp + NWFPE_FPSR_OFFSET); /* Store the floating point registers. */ for (regno = ARM_F0_REGNUM; regno <= ARM_F7_REGNUM; regno++) - if (REG_VALID == regcache_register_status (regcache, regno)) + if (REG_VALID == regcache->get_register_status (regno)) collect_nwfpe_register (regcache, regno, fp); if (have_ptrace_getregset == TRIBOOL_TRUE) @@ -167,7 +209,7 @@ elf_gregset_t regs; /* Get the thread id for the ptrace call. */ - tid = ptid_get_lwp (regcache_get_ptid (regcache)); + tid = regcache->ptid ().lwp (); if (have_ptrace_getregset == TRIBOOL_TRUE) { @@ -194,7 +236,7 @@ elf_gregset_t regs; /* Get the thread id for the ptrace call. */ - tid = ptid_get_lwp (regcache_get_ptid (regcache)); + tid = regcache->ptid ().lwp (); /* Fetch the general registers. */ if (have_ptrace_getregset == TRIBOOL_TRUE) @@ -242,23 +284,22 @@ int ret, regno, tid; /* Get the thread id for the ptrace call. */ - tid = ptid_get_lwp (regcache_get_ptid (regcache)); + tid = regcache->ptid ().lwp (); ret = ptrace (PTRACE_GETWMMXREGS, tid, 0, regbuf); if (ret < 0) perror_with_name (_("Unable to fetch WMMX registers.")); for (regno = 0; regno < 16; regno++) - regcache_raw_supply (regcache, regno + ARM_WR0_REGNUM, - ®buf[regno * 8]); + regcache->raw_supply (regno + ARM_WR0_REGNUM, ®buf[regno * 8]); for (regno = 0; regno < 2; regno++) - regcache_raw_supply (regcache, regno + ARM_WCSSF_REGNUM, - ®buf[16 * 8 + regno * 4]); + regcache->raw_supply (regno + ARM_WCSSF_REGNUM, + ®buf[16 * 8 + regno * 4]); for (regno = 0; regno < 4; regno++) - regcache_raw_supply (regcache, regno + ARM_WCGR0_REGNUM, - ®buf[16 * 8 + 2 * 4 + regno * 4]); + regcache->raw_supply (regno + ARM_WCGR0_REGNUM, + ®buf[16 * 8 + 2 * 4 + regno * 4]); } static void @@ -268,29 +309,25 @@ int ret, regno, tid; /* Get the thread id for the ptrace call. */ - tid = ptid_get_lwp (regcache_get_ptid (regcache)); + tid = regcache->ptid ().lwp (); ret = ptrace (PTRACE_GETWMMXREGS, tid, 0, regbuf); if (ret < 0) perror_with_name (_("Unable to fetch WMMX registers.")); for (regno = 0; regno < 16; regno++) - if (REG_VALID == regcache_register_status (regcache, - regno + ARM_WR0_REGNUM)) - regcache_raw_collect (regcache, regno + ARM_WR0_REGNUM, - ®buf[regno * 8]); + if (REG_VALID == regcache->get_register_status (regno + ARM_WR0_REGNUM)) + regcache->raw_collect (regno + ARM_WR0_REGNUM, ®buf[regno * 8]); for (regno = 0; regno < 2; regno++) - if (REG_VALID == regcache_register_status (regcache, - regno + ARM_WCSSF_REGNUM)) - regcache_raw_collect (regcache, regno + ARM_WCSSF_REGNUM, - ®buf[16 * 8 + regno * 4]); + if (REG_VALID == regcache->get_register_status (regno + ARM_WCSSF_REGNUM)) + regcache->raw_collect (regno + ARM_WCSSF_REGNUM, + ®buf[16 * 8 + regno * 4]); for (regno = 0; regno < 4; regno++) - if (REG_VALID == regcache_register_status (regcache, - regno + ARM_WCGR0_REGNUM)) - regcache_raw_collect (regcache, regno + ARM_WCGR0_REGNUM, - ®buf[16 * 8 + 2 * 4 + regno * 4]); + if (REG_VALID == regcache->get_register_status (regno + ARM_WCGR0_REGNUM)) + regcache->raw_collect (regno + ARM_WCGR0_REGNUM, + ®buf[16 * 8 + 2 * 4 + regno * 4]); ret = ptrace (PTRACE_SETWMMXREGS, tid, 0, regbuf); @@ -307,7 +344,7 @@ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); /* Get the thread id for the ptrace call. */ - tid = ptid_get_lwp (regcache_get_ptid (regcache)); + tid = regcache->ptid ().lwp (); if (have_ptrace_getregset == TRIBOOL_TRUE) { @@ -336,7 +373,7 @@ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); /* Get the thread id for the ptrace call. */ - tid = ptid_get_lwp (regcache_get_ptid (regcache)); + tid = regcache->ptid ().lwp (); if (have_ptrace_getregset == TRIBOOL_TRUE) { @@ -374,9 +411,8 @@ regno == -1, otherwise fetch all general registers or all floating point registers depending upon the value of regno. */ -static void -arm_linux_fetch_inferior_registers (struct target_ops *ops, - struct regcache *regcache, int regno) +void +arm_linux_nat_target::fetch_registers (struct regcache *regcache, int regno) { struct gdbarch *gdbarch = regcache->arch (); struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); @@ -412,9 +448,8 @@ regno == -1, otherwise store all general registers or all floating point registers depending upon the value of regno. */ -static void -arm_linux_store_inferior_registers (struct target_ops *ops, - struct regcache *regcache, int regno) +void +arm_linux_nat_target::store_registers (struct regcache *regcache, int regno) { struct gdbarch *gdbarch = regcache->arch (); struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); @@ -495,8 +530,8 @@ return PS_OK; } -static const struct target_desc * -arm_linux_read_description (struct target_ops *ops) +const struct target_desc * +arm_linux_nat_target::read_description () { CORE_ADDR arm_hwcap = 0; @@ -504,7 +539,7 @@ { elf_gregset_t gpregs; struct iovec iov; - int tid = ptid_get_lwp (inferior_ptid); + int tid = inferior_ptid.lwp (); iov.iov_base = &gpregs; iov.iov_len = sizeof (gpregs); @@ -516,9 +551,9 @@ have_ptrace_getregset = TRIBOOL_TRUE; } - if (target_auxv_search (ops, AT_HWCAP, &arm_hwcap) != 1) + if (target_auxv_search (this, AT_HWCAP, &arm_hwcap) != 1) { - return ops->beneath->to_read_description (ops->beneath); + return this->beneath ()->read_description (); } if (arm_hwcap & HWCAP_IWMMXT) @@ -541,7 +576,7 @@ /* Now make sure that the kernel supports reading these registers. Support was added in 2.6.30. */ - pid = ptid_get_lwp (inferior_ptid); + pid = inferior_ptid.lwp (); errno = 0; buf = (char *) alloca (VFP_REGS_SIZE); if (ptrace (PTRACE_GETVFPREGS, pid, 0, buf) < 0 @@ -551,7 +586,7 @@ return result; } - return ops->beneath->to_read_description (ops->beneath); + return this->beneath ()->read_description (); } /* Information describing the hardware breakpoint capabilities. */ @@ -587,7 +622,7 @@ int tid; unsigned int val; - tid = ptid_get_lwp (inferior_ptid); + tid = inferior_ptid.lwp (); if (ptrace (PTRACE_GETHBPREGS, tid, 0, &val) < 0) available = 0; else @@ -635,10 +670,9 @@ /* Have we got a free break-/watch-point available for use? Returns -1 if there is not an appropriate resource available, otherwise returns 1. */ -static int -arm_linux_can_use_hw_breakpoint (struct target_ops *self, - enum bptype type, - int cnt, int ot) +int +arm_linux_nat_target::can_use_hw_breakpoint (enum bptype type, + int cnt, int ot) { if (type == bp_hardware_watchpoint || type == bp_read_watchpoint || type == bp_access_watchpoint || type == bp_watchpoint) @@ -786,8 +820,8 @@ /* Called whenever GDB is no longer debugging process PID. It deletes data structures that keep track of debug register state. */ -static void -arm_linux_forget_process (pid_t pid) +void +arm_linux_nat_target::low_forget_process (pid_t pid) { struct arm_linux_process_info *proc, **proc_link; @@ -959,8 +993,8 @@ struct arm_linux_hw_breakpoint* bpts; struct update_registers_data data; - pid = ptid_get_pid (inferior_ptid); - pid_ptid = pid_to_ptid (pid); + pid = inferior_ptid.pid (); + pid_ptid = ptid_t (pid); if (watchpoint) { @@ -998,8 +1032,8 @@ struct arm_linux_hw_breakpoint* bpts; struct update_registers_data data; - pid = ptid_get_pid (inferior_ptid); - pid_ptid = pid_to_ptid (pid); + pid = inferior_ptid.pid (); + pid_ptid = ptid_t (pid); if (watchpoint) { @@ -1026,10 +1060,9 @@ } /* Insert a Hardware breakpoint. */ -static int -arm_linux_insert_hw_breakpoint (struct target_ops *self, - struct gdbarch *gdbarch, - struct bp_target_info *bp_tgt) +int +arm_linux_nat_target::insert_hw_breakpoint (struct gdbarch *gdbarch, + struct bp_target_info *bp_tgt) { struct lwp_info *lp; struct arm_linux_hw_breakpoint p; @@ -1045,10 +1078,9 @@ } /* Remove a hardware breakpoint. */ -static int -arm_linux_remove_hw_breakpoint (struct target_ops *self, - struct gdbarch *gdbarch, - struct bp_target_info *bp_tgt) +int +arm_linux_nat_target::remove_hw_breakpoint (struct gdbarch *gdbarch, + struct bp_target_info *bp_tgt) { struct lwp_info *lp; struct arm_linux_hw_breakpoint p; @@ -1065,9 +1097,8 @@ /* Are we able to use a hardware watchpoint for the LEN bytes starting at ADDR? */ -static int -arm_linux_region_ok_for_hw_watchpoint (struct target_ops *self, - CORE_ADDR addr, int len) +int +arm_linux_nat_target::region_ok_for_hw_watchpoint (CORE_ADDR addr, int len) { const struct arm_linux_hwbp_cap *cap = arm_linux_get_hwbp_cap (); CORE_ADDR max_wp_length, aligned_addr; @@ -1098,11 +1129,10 @@ } /* Insert a Hardware breakpoint. */ -static int -arm_linux_insert_watchpoint (struct target_ops *self, - CORE_ADDR addr, int len, - enum target_hw_bp_type rw, - struct expression *cond) +int +arm_linux_nat_target::insert_watchpoint (CORE_ADDR addr, int len, + enum target_hw_bp_type rw, + struct expression *cond) { struct lwp_info *lp; struct arm_linux_hw_breakpoint p; @@ -1118,10 +1148,10 @@ } /* Remove a hardware breakpoint. */ -static int -arm_linux_remove_watchpoint (struct target_ops *self, CORE_ADDR addr, - int len, enum target_hw_bp_type rw, - struct expression *cond) +int +arm_linux_nat_target::remove_watchpoint (CORE_ADDR addr, + int len, enum target_hw_bp_type rw, + struct expression *cond) { struct lwp_info *lp; struct arm_linux_hw_breakpoint p; @@ -1137,19 +1167,19 @@ } /* What was the data address the target was stopped on accessing. */ -static int -arm_linux_stopped_data_address (struct target_ops *target, CORE_ADDR *addr_p) +bool +arm_linux_nat_target::stopped_data_address (CORE_ADDR *addr_p) { siginfo_t siginfo; int slot; if (!linux_nat_get_siginfo (inferior_ptid, &siginfo)) - return 0; + return false; /* This must be a hardware breakpoint. */ if (siginfo.si_signo != SIGTRAP || (siginfo.si_code & 0xffff) != 0x0004 /* TRAP_HWBKPT */) - return 0; + return false; /* We must be able to set hardware watchpoints. */ if (arm_linux_get_hw_watchpoint_count () == 0) @@ -1160,32 +1190,32 @@ /* If we are in a positive slot then we're looking at a breakpoint and not a watchpoint. */ if (slot >= 0) - return 0; + return false; *addr_p = (CORE_ADDR) (uintptr_t) siginfo.si_addr; - return 1; + return true; } /* Has the target been stopped by hitting a watchpoint? */ -static int -arm_linux_stopped_by_watchpoint (struct target_ops *ops) +bool +arm_linux_nat_target::stopped_by_watchpoint () { CORE_ADDR addr; - return arm_linux_stopped_data_address (ops, &addr); + return stopped_data_address (&addr); } -static int -arm_linux_watchpoint_addr_within_range (struct target_ops *target, - CORE_ADDR addr, - CORE_ADDR start, int length) +bool +arm_linux_nat_target::watchpoint_addr_within_range (CORE_ADDR addr, + CORE_ADDR start, + int length) { return start <= addr && start + length - 1 >= addr; } /* Handle thread creation. We need to copy the breakpoints and watchpoints in the parent thread to the child thread. */ -static void -arm_linux_new_thread (struct lwp_info *lp) +void +arm_linux_nat_target::low_new_thread (struct lwp_info *lp) { int i; struct arch_lwp_info *info = XCNEW (struct arch_lwp_info); @@ -1204,8 +1234,8 @@ /* Function to call when a thread is being deleted. */ -static void -arm_linux_delete_thread (struct arch_lwp_info *arch_lwp) +void +arm_linux_nat_target::low_delete_thread (struct arch_lwp_info *arch_lwp) { xfree (arch_lwp); } @@ -1213,16 +1243,16 @@ /* Called when resuming a thread. The hardware debug registers are updated when there is any change. */ -static void -arm_linux_prepare_to_resume (struct lwp_info *lwp) +void +arm_linux_nat_target::low_prepare_to_resume (struct lwp_info *lwp) { int pid, i; struct arm_linux_hw_breakpoint *bpts, *wpts; struct arch_lwp_info *arm_lwp_info = lwp->arch_private; - pid = ptid_get_lwp (lwp->ptid); - bpts = arm_linux_get_debug_reg_state (ptid_get_pid (lwp->ptid))->bpts; - wpts = arm_linux_get_debug_reg_state (ptid_get_pid (lwp->ptid))->wpts; + pid = lwp->ptid.lwp (); + bpts = arm_linux_get_debug_reg_state (lwp->ptid.pid ())->bpts; + wpts = arm_linux_get_debug_reg_state (lwp->ptid.pid ())->wpts; /* NULL means this is the main thread still going through the shell, or, no watchpoint has been set yet. In that case, there's @@ -1267,8 +1297,8 @@ /* linux_nat_new_fork hook. */ -static void -arm_linux_new_fork (struct lwp_info *parent, pid_t child_pid) +void +arm_linux_nat_target::low_new_fork (struct lwp_info *parent, pid_t child_pid) { pid_t parent_pid; struct arm_linux_debug_reg_state *parent_state; @@ -1285,7 +1315,7 @@ new process so that all breakpoints and watchpoints can be removed together. */ - parent_pid = ptid_get_pid (parent->ptid); + parent_pid = parent->ptid.pid (); parent_state = arm_linux_get_debug_reg_state (parent_pid); child_state = arm_linux_get_debug_reg_state (child_pid); *child_state = *parent_state; @@ -1294,37 +1324,7 @@ void _initialize_arm_linux_nat (void) { - struct target_ops *t; - - /* Fill in the generic GNU/Linux methods. */ - t = linux_target (); - - /* Add our register access methods. */ - t->to_fetch_registers = arm_linux_fetch_inferior_registers; - t->to_store_registers = arm_linux_store_inferior_registers; - - /* Add our hardware breakpoint and watchpoint implementation. */ - t->to_can_use_hw_breakpoint = arm_linux_can_use_hw_breakpoint; - t->to_insert_hw_breakpoint = arm_linux_insert_hw_breakpoint; - t->to_remove_hw_breakpoint = arm_linux_remove_hw_breakpoint; - t->to_region_ok_for_hw_watchpoint = arm_linux_region_ok_for_hw_watchpoint; - t->to_insert_watchpoint = arm_linux_insert_watchpoint; - t->to_remove_watchpoint = arm_linux_remove_watchpoint; - t->to_stopped_by_watchpoint = arm_linux_stopped_by_watchpoint; - t->to_stopped_data_address = arm_linux_stopped_data_address; - t->to_watchpoint_addr_within_range = arm_linux_watchpoint_addr_within_range; - - t->to_read_description = arm_linux_read_description; - /* Register the target. */ - linux_nat_add_target (t); - - /* Handle thread creation and exit. */ - linux_nat_set_new_thread (t, arm_linux_new_thread); - linux_nat_set_delete_thread (t, arm_linux_delete_thread); - linux_nat_set_prepare_to_resume (t, arm_linux_prepare_to_resume); - - /* Handle process creation and exit. */ - linux_nat_set_new_fork (t, arm_linux_new_fork); - linux_nat_set_forget_process (t, arm_linux_forget_process); + linux_target = &the_arm_linux_nat_target; + add_inf_child_target (&the_arm_linux_nat_target); } diff -Nru gdb-8.1/gdb/arm-linux-tdep.c gdb-8.2/gdb/arm-linux-tdep.c --- gdb-8.1/gdb/arm-linux-tdep.c 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/gdb/arm-linux-tdep.c 2018-09-05 07:44:28.000000000 +0000 @@ -487,16 +487,15 @@ for (regno = ARM_A1_REGNUM; regno < ARM_PC_REGNUM; regno++) if (regnum == -1 || regnum == regno) - regcache_raw_supply (regcache, regno, - gregs + INT_REGISTER_SIZE * regno); + regcache->raw_supply (regno, gregs + INT_REGISTER_SIZE * regno); if (regnum == ARM_PS_REGNUM || regnum == -1) { if (arm_apcs_32) - regcache_raw_supply (regcache, ARM_PS_REGNUM, - gregs + INT_REGISTER_SIZE * ARM_CPSR_GREGNUM); + regcache->raw_supply (ARM_PS_REGNUM, + gregs + INT_REGISTER_SIZE * ARM_CPSR_GREGNUM); else - regcache_raw_supply (regcache, ARM_PS_REGNUM, + regcache->raw_supply (ARM_PS_REGNUM, gregs + INT_REGISTER_SIZE * ARM_PC_REGNUM); } @@ -507,7 +506,7 @@ INT_REGISTER_SIZE, byte_order); reg_pc = gdbarch_addr_bits_remove (gdbarch, reg_pc); store_unsigned_integer (pc_buf, INT_REGISTER_SIZE, byte_order, reg_pc); - regcache_raw_supply (regcache, ARM_PC_REGNUM, pc_buf); + regcache->raw_supply (ARM_PC_REGNUM, pc_buf); } } @@ -521,22 +520,22 @@ for (regno = ARM_A1_REGNUM; regno < ARM_PC_REGNUM; regno++) if (regnum == -1 || regnum == regno) - regcache_raw_collect (regcache, regno, + regcache->raw_collect (regno, gregs + INT_REGISTER_SIZE * regno); if (regnum == ARM_PS_REGNUM || regnum == -1) { if (arm_apcs_32) - regcache_raw_collect (regcache, ARM_PS_REGNUM, + regcache->raw_collect (ARM_PS_REGNUM, gregs + INT_REGISTER_SIZE * ARM_CPSR_GREGNUM); else - regcache_raw_collect (regcache, ARM_PS_REGNUM, + regcache->raw_collect (ARM_PS_REGNUM, gregs + INT_REGISTER_SIZE * ARM_PC_REGNUM); } if (regnum == ARM_PC_REGNUM || regnum == -1) - regcache_raw_collect (regcache, ARM_PC_REGNUM, - gregs + INT_REGISTER_SIZE * ARM_PC_REGNUM); + regcache->raw_collect (ARM_PC_REGNUM, + gregs + INT_REGISTER_SIZE * ARM_PC_REGNUM); } /* Support for register format used by the NWFPE FPA emulator. */ @@ -578,7 +577,7 @@ break; } - regcache_raw_supply (regcache, regno, buf); + regcache->raw_supply (regno, buf); } void @@ -589,7 +588,7 @@ gdb_byte reg_tag; gdb_byte buf[FP_REGISTER_SIZE]; - regcache_raw_collect (regcache, regno, buf); + regcache->raw_collect (regno, buf); /* NOTE drow/2006-06-07: This code uses the tag already in the register buffer. I've preserved that when moving the code @@ -627,7 +626,7 @@ int regno; if (regnum == ARM_FPS_REGNUM || regnum == -1) - regcache_raw_supply (regcache, ARM_FPS_REGNUM, + regcache->raw_supply (ARM_FPS_REGNUM, regs + NWFPE_FPSR_OFFSET); for (regno = ARM_F0_REGNUM; regno <= ARM_F7_REGNUM; regno++) @@ -648,8 +647,8 @@ collect_nwfpe_register (regcache, regno, regs); if (regnum == ARM_FPS_REGNUM || regnum == -1) - regcache_raw_collect (regcache, ARM_FPS_REGNUM, - regs + INT_REGISTER_SIZE * ARM_FPS_REGNUM); + regcache->raw_collect (ARM_FPS_REGNUM, + regs + INT_REGISTER_SIZE * ARM_FPS_REGNUM); } /* Support VFP register format. */ @@ -665,12 +664,11 @@ int regno; if (regnum == ARM_FPSCR_REGNUM || regnum == -1) - regcache_raw_supply (regcache, ARM_FPSCR_REGNUM, regs + 32 * 8); + regcache->raw_supply (ARM_FPSCR_REGNUM, regs + 32 * 8); for (regno = ARM_D0_REGNUM; regno <= ARM_D31_REGNUM; regno++) if (regnum == -1 || regnum == regno) - regcache_raw_supply (regcache, regno, - regs + (regno - ARM_D0_REGNUM) * 8); + regcache->raw_supply (regno, regs + (regno - ARM_D0_REGNUM) * 8); } static void @@ -682,12 +680,11 @@ int regno; if (regnum == ARM_FPSCR_REGNUM || regnum == -1) - regcache_raw_collect (regcache, ARM_FPSCR_REGNUM, regs + 32 * 8); + regcache->raw_collect (ARM_FPSCR_REGNUM, regs + 32 * 8); for (regno = ARM_D0_REGNUM; regno <= ARM_D31_REGNUM; regno++) if (regnum == -1 || regnum == regno) - regcache_raw_collect (regcache, regno, - regs + (regno - ARM_D0_REGNUM) * 8); + regcache->raw_collect (regno, regs + (regno - ARM_D0_REGNUM) * 8); } static const struct regset arm_linux_gregset = @@ -715,14 +712,15 @@ { struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); - cb (".reg", ARM_LINUX_SIZEOF_GREGSET, &arm_linux_gregset, NULL, cb_data); + cb (".reg", ARM_LINUX_SIZEOF_GREGSET, ARM_LINUX_SIZEOF_GREGSET, + &arm_linux_gregset, NULL, cb_data); if (tdep->vfp_register_count > 0) - cb (".reg-arm-vfp", ARM_LINUX_SIZEOF_VFP, &arm_linux_vfpregset, - "VFP floating-point", cb_data); + cb (".reg-arm-vfp", ARM_LINUX_SIZEOF_VFP, ARM_LINUX_SIZEOF_VFP, + &arm_linux_vfpregset, "VFP floating-point", cb_data); else if (tdep->have_fpa_registers) - cb (".reg2", ARM_LINUX_SIZEOF_NWFPE, &arm_linux_fpregset, - "FPA floating-point", cb_data); + cb (".reg2", ARM_LINUX_SIZEOF_NWFPE, ARM_LINUX_SIZEOF_NWFPE, + &arm_linux_fpregset, "FPA floating-point", cb_data); } /* Determine target description from core file. */ @@ -822,9 +820,9 @@ static LONGEST arm_linux_get_syscall_number (struct gdbarch *gdbarch, - ptid_t ptid) + thread_info *thread) { - struct regcache *regs = get_thread_regcache (ptid); + struct regcache *regs = get_thread_regcache (thread); ULONGEST pc; ULONGEST cpsr; @@ -1712,6 +1710,15 @@ return find_solib_trampoline_target (frame, pc); } +/* Implement the gcc_target_options gdbarch method. */ + +static char * +arm_linux_gcc_target_options (struct gdbarch *gdbarch) +{ + /* GCC doesn't know "-m32". */ + return NULL; +} + static void arm_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) @@ -1992,6 +1999,8 @@ arm_linux_record_tdep.arg5 = ARM_A1_REGNUM + 4; arm_linux_record_tdep.arg6 = ARM_A1_REGNUM + 5; arm_linux_record_tdep.arg7 = ARM_A1_REGNUM + 6; + + set_gdbarch_gcc_target_options (gdbarch, arm_linux_gcc_target_options); } void diff -Nru gdb-8.1/gdb/arm-nbsd-nat.c gdb-8.2/gdb/arm-nbsd-nat.c --- gdb-8.1/gdb/arm-nbsd-nat.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/arm-nbsd-nat.c 2018-09-05 07:27:13.000000000 +0000 @@ -30,6 +30,16 @@ #include "arm-tdep.h" #include "inf-ptrace.h" +class arm_netbsd_nat_target final : public inf_ptrace_target +{ +public: + /* Add our register access methods. */ + void fetch_registers (struct regcache *, int) override; + void store_registers (struct regcache *, int) override; +}; + +static arm_netbsd_nat_target the_arm_netbsd_nat_target; + extern int arm_apcs_32; static void @@ -40,22 +50,18 @@ /* Integer registers. */ for (regno = ARM_A1_REGNUM; regno < ARM_SP_REGNUM; regno++) - regcache_raw_supply (regcache, regno, (char *) &gregset->r[regno]); + regcache->raw_supply (regno, (char *) &gregset->r[regno]); - regcache_raw_supply (regcache, ARM_SP_REGNUM, - (char *) &gregset->r_sp); - regcache_raw_supply (regcache, ARM_LR_REGNUM, - (char *) &gregset->r_lr); + regcache->raw_supply (ARM_SP_REGNUM, (char *) &gregset->r_sp); + regcache->raw_supply (ARM_LR_REGNUM, (char *) &gregset->r_lr); /* This is ok: we're running native... */ r_pc = gdbarch_addr_bits_remove (regcache->arch (), gregset->r_pc); - regcache_raw_supply (regcache, ARM_PC_REGNUM, (char *) &r_pc); + regcache->raw_supply (ARM_PC_REGNUM, (char *) &r_pc); if (arm_apcs_32) - regcache_raw_supply (regcache, ARM_PS_REGNUM, - (char *) &gregset->r_cpsr); + regcache->raw_supply (ARM_PS_REGNUM, (char *) &gregset->r_cpsr); else - regcache_raw_supply (regcache, ARM_PS_REGNUM, - (char *) &gregset->r_pc); + regcache->raw_supply (ARM_PS_REGNUM, (char *) &gregset->r_pc); } static void @@ -64,11 +70,10 @@ int regno; for (regno = ARM_F0_REGNUM; regno <= ARM_F7_REGNUM; regno++) - regcache_raw_supply (regcache, regno, - (char *) &fparegset->fpr[regno - ARM_F0_REGNUM]); + regcache->raw_supply (regno, + (char *) &fparegset->fpr[regno - ARM_F0_REGNUM]); - regcache_raw_supply (regcache, ARM_FPS_REGNUM, - (char *) &fparegset->fpr_fpsr); + regcache->raw_supply (ARM_FPS_REGNUM, (char *) &fparegset->fpr_fpsr); } static void @@ -77,7 +82,7 @@ struct reg inferior_registers; int ret; - ret = ptrace (PT_GETREGS, ptid_get_pid (regcache_get_ptid (regcache)), + ret = ptrace (PT_GETREGS, regcache->ptid ().pid (), (PTRACE_TYPE_ARG3) &inferior_registers, 0); if (ret < 0) @@ -89,13 +94,11 @@ switch (regno) { case ARM_SP_REGNUM: - regcache_raw_supply (regcache, ARM_SP_REGNUM, - (char *) &inferior_registers.r_sp); + regcache->raw_supply (ARM_SP_REGNUM, (char *) &inferior_registers.r_sp); break; case ARM_LR_REGNUM: - regcache_raw_supply (regcache, ARM_LR_REGNUM, - (char *) &inferior_registers.r_lr); + regcache->raw_supply (ARM_LR_REGNUM, (char *) &inferior_registers.r_lr); break; case ARM_PC_REGNUM: @@ -103,22 +106,20 @@ inferior_registers.r_pc = gdbarch_addr_bits_remove (regcache->arch (), inferior_registers.r_pc); - regcache_raw_supply (regcache, ARM_PC_REGNUM, - (char *) &inferior_registers.r_pc); + regcache->raw_supply (ARM_PC_REGNUM, (char *) &inferior_registers.r_pc); break; case ARM_PS_REGNUM: if (arm_apcs_32) - regcache_raw_supply (regcache, ARM_PS_REGNUM, - (char *) &inferior_registers.r_cpsr); + regcache->raw_supply (ARM_PS_REGNUM, + (char *) &inferior_registers.r_cpsr); else - regcache_raw_supply (regcache, ARM_PS_REGNUM, - (char *) &inferior_registers.r_pc); + regcache->raw_supply (ARM_PS_REGNUM, + (char *) &inferior_registers.r_pc); break; default: - regcache_raw_supply (regcache, regno, - (char *) &inferior_registers.r[regno]); + regcache->raw_supply (regno, (char *) &inferior_registers.r[regno]); break; } } @@ -130,7 +131,7 @@ int ret; int regno; - ret = ptrace (PT_GETREGS, ptid_get_pid (regcache_get_ptid (regcache)), + ret = ptrace (PT_GETREGS, regcache->ptid ().pid (), (PTRACE_TYPE_ARG3) &inferior_registers, 0); if (ret < 0) @@ -148,7 +149,7 @@ struct fpreg inferior_fp_registers; int ret; - ret = ptrace (PT_GETFPREGS, ptid_get_pid (regcache_get_ptid (regcache)), + ret = ptrace (PT_GETFPREGS, regcache->ptid ().pid (), (PTRACE_TYPE_ARG3) &inferior_fp_registers, 0); if (ret < 0) @@ -160,13 +161,13 @@ switch (regno) { case ARM_FPS_REGNUM: - regcache_raw_supply (regcache, ARM_FPS_REGNUM, - (char *) &inferior_fp_registers.fpr_fpsr); + regcache->raw_supply (ARM_FPS_REGNUM, + (char *) &inferior_fp_registers.fpr_fpsr); break; default: - regcache_raw_supply (regcache, regno, - (char *) &inferior_fp_registers.fpr[regno - ARM_F0_REGNUM]); + regcache->raw_supply + (regno, (char *) &inferior_fp_registers.fpr[regno - ARM_F0_REGNUM]); break; } } @@ -178,7 +179,7 @@ int ret; int regno; - ret = ptrace (PT_GETFPREGS, ptid_get_pid (regcache_get_ptid (regcache)), + ret = ptrace (PT_GETFPREGS, regcache->ptid ().pid (), (PTRACE_TYPE_ARG3) &inferior_fp_registers, 0); if (ret < 0) @@ -190,9 +191,8 @@ arm_supply_fparegset (regcache, &inferior_fp_registers); } -static void -armnbsd_fetch_registers (struct target_ops *ops, - struct regcache *regcache, int regno) +void +arm_nbsd_nat_target::fetch_registers (struct regcache *regcache, int regno) { if (regno >= 0) { @@ -216,7 +216,7 @@ struct reg inferior_registers; int ret; - ret = ptrace (PT_GETREGS, ptid_get_pid (regcache_get_ptid (regcache)), + ret = ptrace (PT_GETREGS, regcache->ptid ().pid (), (PTRACE_TYPE_ARG3) &inferior_registers, 0); if (ret < 0) @@ -228,25 +228,22 @@ switch (regno) { case ARM_SP_REGNUM: - regcache_raw_collect (regcache, ARM_SP_REGNUM, - (char *) &inferior_registers.r_sp); + regcache->raw_collect (ARM_SP_REGNUM, (char *) &inferior_registers.r_sp); break; case ARM_LR_REGNUM: - regcache_raw_collect (regcache, ARM_LR_REGNUM, - (char *) &inferior_registers.r_lr); + regcache->raw_collect (ARM_LR_REGNUM, (char *) &inferior_registers.r_lr); break; case ARM_PC_REGNUM: if (arm_apcs_32) - regcache_raw_collect (regcache, ARM_PC_REGNUM, - (char *) &inferior_registers.r_pc); + regcache->raw_collect (ARM_PC_REGNUM, + (char *) &inferior_registers.r_pc); else { unsigned pc_val; - regcache_raw_collect (regcache, ARM_PC_REGNUM, - (char *) &pc_val); + regcache->raw_collect (ARM_PC_REGNUM, (char *) &pc_val); pc_val = gdbarch_addr_bits_remove (gdbarch, pc_val); inferior_registers.r_pc ^= gdbarch_addr_bits_remove @@ -257,14 +254,13 @@ case ARM_PS_REGNUM: if (arm_apcs_32) - regcache_raw_collect (regcache, ARM_PS_REGNUM, - (char *) &inferior_registers.r_cpsr); + regcache->raw_collect (ARM_PS_REGNUM, + (char *) &inferior_registers.r_cpsr); else { unsigned psr_val; - regcache_raw_collect (regcache, ARM_PS_REGNUM, - (char *) &psr_val); + regcache->raw_collect (ARM_PS_REGNUM, (char *) &psr_val); psr_val ^= gdbarch_addr_bits_remove (gdbarch, psr_val); inferior_registers.r_pc = gdbarch_addr_bits_remove @@ -274,12 +270,11 @@ break; default: - regcache_raw_collect (regcache, regno, - (char *) &inferior_registers.r[regno]); + regcache->raw_collect (regno, (char *) &inferior_registers.r[regno]); break; } - ret = ptrace (PT_SETREGS, ptid_get_pid (regcache_get_ptid (regcache)), + ret = ptrace (PT_SETREGS, regcache->ptid ().pid (), (PTRACE_TYPE_ARG3) &inferior_registers, 0); if (ret < 0) @@ -296,30 +291,24 @@ for (regno = ARM_A1_REGNUM; regno < ARM_SP_REGNUM; regno++) - regcache_raw_collect (regcache, regno, - (char *) &inferior_registers.r[regno]); + regcache->raw_collect (regno, (char *) &inferior_registers.r[regno]); - regcache_raw_collect (regcache, ARM_SP_REGNUM, - (char *) &inferior_registers.r_sp); - regcache_raw_collect (regcache, ARM_LR_REGNUM, - (char *) &inferior_registers.r_lr); + regcache->raw_collect (ARM_SP_REGNUM, (char *) &inferior_registers.r_sp); + regcache->raw_collect (ARM_LR_REGNUM, (char *) &inferior_registers.r_lr); if (arm_apcs_32) { - regcache_raw_collect (regcache, ARM_PC_REGNUM, - (char *) &inferior_registers.r_pc); - regcache_raw_collect (regcache, ARM_PS_REGNUM, - (char *) &inferior_registers.r_cpsr); + regcache->raw_collect (ARM_PC_REGNUM, (char *) &inferior_registers.r_pc); + regcache->raw_collect (ARM_PS_REGNUM, + (char *) &inferior_registers.r_cpsr); } else { unsigned pc_val; unsigned psr_val; - regcache_raw_collect (regcache, ARM_PC_REGNUM, - (char *) &pc_val); - regcache_raw_collect (regcache, ARM_PS_REGNUM, - (char *) &psr_val); + regcache->raw_collect (ARM_PC_REGNUM, (char *) &pc_val); + regcache->raw_collect (ARM_PS_REGNUM, (char *) &psr_val); pc_val = gdbarch_addr_bits_remove (gdbarch, pc_val); psr_val ^= gdbarch_addr_bits_remove (gdbarch, psr_val); @@ -327,7 +316,7 @@ inferior_registers.r_pc = pc_val | psr_val; } - ret = ptrace (PT_SETREGS, ptid_get_pid (regcache_get_ptid (regcache)), + ret = ptrace (PT_SETREGS, regcache->ptid ().pid (), (PTRACE_TYPE_ARG3) &inferior_registers, 0); if (ret < 0) @@ -340,7 +329,7 @@ struct fpreg inferior_fp_registers; int ret; - ret = ptrace (PT_GETFPREGS, ptid_get_pid (regcache_get_ptid (regcache)), + ret = ptrace (PT_GETFPREGS, regcache->ptid ().pid (), (PTRACE_TYPE_ARG3) &inferior_fp_registers, 0); if (ret < 0) @@ -352,17 +341,17 @@ switch (regno) { case ARM_FPS_REGNUM: - regcache_raw_collect (regcache, ARM_FPS_REGNUM, - (char *) &inferior_fp_registers.fpr_fpsr); + regcache->raw_collect (ARM_FPS_REGNUM, + (char *) &inferior_fp_registers.fpr_fpsr); break; default: - regcache_raw_collect (regcache, regno, - (char *) &inferior_fp_registers.fpr[regno - ARM_F0_REGNUM]); + regcache->raw_collect + (regno, (char *) &inferior_fp_registers.fpr[regno - ARM_F0_REGNUM]); break; } - ret = ptrace (PT_SETFPREGS, ptid_get_pid (regcache_get_ptid (regcache)), + ret = ptrace (PT_SETFPREGS, regcache->ptid ().pid (), (PTRACE_TYPE_ARG3) &inferior_fp_registers, 0); if (ret < 0) @@ -378,22 +367,21 @@ for (regno = ARM_F0_REGNUM; regno <= ARM_F7_REGNUM; regno++) - regcache_raw_collect (regcache, regno, - (char *) &inferior_fp_registers.fpr[regno - ARM_F0_REGNUM]); + regcache->raw_collect + (regno, (char *) &inferior_fp_registers.fpr[regno - ARM_F0_REGNUM]); - regcache_raw_collect (regcache, ARM_FPS_REGNUM, - (char *) &inferior_fp_registers.fpr_fpsr); + regcache->raw_collect (ARM_FPS_REGNUM, + (char *) &inferior_fp_registers.fpr_fpsr); - ret = ptrace (PT_SETFPREGS, ptid_get_pid (regcache_get_ptid (regcache)), + ret = ptrace (PT_SETFPREGS, regcache->ptid ().pid (), (PTRACE_TYPE_ARG3) &inferior_fp_registers, 0); if (ret < 0) warning (_("unable to store floating-point registers")); } -static void -armnbsd_store_registers (struct target_ops *ops, - struct regcache *regcache, int regno) +void +arm_nbsd_nat_target::store_registers (struct regcache *regcache, int regno) { if (regno >= 0) { @@ -461,12 +449,7 @@ void _initialize_arm_netbsd_nat (void) { - struct target_ops *t; - - t = inf_ptrace_target (); - t->to_fetch_registers = armnbsd_fetch_registers; - t->to_store_registers = armnbsd_store_registers; - add_target (t); + add_inf_child_target (&the_arm_netbsd_nat_target); deprecated_add_core_fns (&arm_netbsd_elfcore_fns); } diff -Nru gdb-8.1/gdb/arm-tdep.c gdb-8.2/gdb/arm-tdep.c --- gdb-8.1/gdb/arm-tdep.c 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/gdb/arm-tdep.c 2018-09-05 07:44:28.000000000 +0000 @@ -44,7 +44,7 @@ #include "remote.h" #include "target-descriptions.h" #include "user-regs.h" -#include "observer.h" +#include "observable.h" #include "arch/arm.h" #include "arch/arm-get-next-pcs.h" @@ -227,7 +227,7 @@ const char *); static enum register_status arm_neon_quad_read (struct gdbarch *gdbarch, - struct regcache *regcache, + readable_regcache *regcache, int regnum, gdb_byte *buf); static void arm_neon_quad_write (struct gdbarch *gdbarch, struct regcache *regcache, @@ -2040,50 +2040,40 @@ static void arm_exidx_new_objfile (struct objfile *objfile) { - struct cleanup *cleanups; struct arm_exidx_data *data; asection *exidx, *extab; bfd_vma exidx_vma = 0, extab_vma = 0; - bfd_size_type exidx_size = 0, extab_size = 0; - gdb_byte *exidx_data = NULL, *extab_data = NULL; LONGEST i; /* If we've already touched this file, do nothing. */ if (!objfile || objfile_data (objfile, arm_exidx_data_key) != NULL) return; - cleanups = make_cleanup (null_cleanup, NULL); /* Read contents of exception table and index. */ exidx = bfd_get_section_by_name (objfile->obfd, ELF_STRING_ARM_unwind); + gdb::byte_vector exidx_data; if (exidx) { exidx_vma = bfd_section_vma (objfile->obfd, exidx); - exidx_size = bfd_get_section_size (exidx); - exidx_data = (gdb_byte *) xmalloc (exidx_size); - make_cleanup (xfree, exidx_data); + exidx_data.resize (bfd_get_section_size (exidx)); if (!bfd_get_section_contents (objfile->obfd, exidx, - exidx_data, 0, exidx_size)) - { - do_cleanups (cleanups); - return; - } + exidx_data.data (), 0, + exidx_data.size ())) + return; } extab = bfd_get_section_by_name (objfile->obfd, ".ARM.extab"); + gdb::byte_vector extab_data; if (extab) { extab_vma = bfd_section_vma (objfile->obfd, extab); - extab_size = bfd_get_section_size (extab); - extab_data = (gdb_byte *) xmalloc (extab_size); - make_cleanup (xfree, extab_data); + extab_data.resize (bfd_get_section_size (extab)); if (!bfd_get_section_contents (objfile->obfd, extab, - extab_data, 0, extab_size)) - { - do_cleanups (cleanups); - return; - } + extab_data.data (), 0, + extab_data.size ())) + return; } /* Allocate exception table data structure. */ @@ -2094,11 +2084,12 @@ VEC(arm_exidx_entry_s) *); /* Fill in exception table. */ - for (i = 0; i < exidx_size / 8; i++) + for (i = 0; i < exidx_data.size () / 8; i++) { struct arm_exidx_entry new_exidx_entry; - bfd_vma idx = bfd_h_get_32 (objfile->obfd, exidx_data + i * 8); - bfd_vma val = bfd_h_get_32 (objfile->obfd, exidx_data + i * 8 + 4); + bfd_vma idx = bfd_h_get_32 (objfile->obfd, exidx_data.data () + i * 8); + bfd_vma val = bfd_h_get_32 (objfile->obfd, + exidx_data.data () + i * 8 + 4); bfd_vma addr = 0, word = 0; int n_bytes = 0, n_words = 0; struct obj_section *sec; @@ -2132,10 +2123,10 @@ addr = ((val & 0x7fffffff) ^ 0x40000000) - 0x40000000; addr += exidx_vma + i * 8 + 4; - if (addr >= extab_vma && addr + 4 <= extab_vma + extab_size) + if (addr >= extab_vma && addr + 4 <= extab_vma + extab_data.size ()) { word = bfd_h_get_32 (objfile->obfd, - extab_data + addr - extab_vma); + extab_data.data () + addr - extab_vma); addr += 4; if ((word & 0xff000000) == 0x80000000) @@ -2190,10 +2181,11 @@ byte, followed by the same unwind instructions as the pre-defined forms. */ if (gnu_personality - && addr + 4 <= extab_vma + extab_size) + && addr + 4 <= extab_vma + extab_data.size ()) { word = bfd_h_get_32 (objfile->obfd, - extab_data + addr - extab_vma); + (extab_data.data () + + addr - extab_vma)); addr += 4; n_bytes = 3; n_words = ((word >> 24) & 0xff); @@ -2204,7 +2196,8 @@ /* Sanity check address. */ if (n_words) - if (addr < extab_vma || addr + 4 * n_words > extab_vma + extab_size) + if (addr < extab_vma + || addr + 4 * n_words > extab_vma + extab_data.size ()) n_words = n_bytes = 0; /* The unwind instructions reside in WORD (only the N_BYTES least @@ -2222,7 +2215,7 @@ while (n_words--) { word = bfd_h_get_32 (objfile->obfd, - extab_data + addr - extab_vma); + extab_data.data () + addr - extab_vma); addr += 4; *p++ = (gdb_byte) ((word >> 24) & 0xff); @@ -2243,8 +2236,6 @@ data->section_maps[sec->the_bfd_section->index], &new_exidx_entry); } - - do_cleanups (cleanups); } /* Search for the exception table entry covering MEMADDR. If one is found, @@ -3813,8 +3804,7 @@ reg_char, reg_scaled + i); regnum = user_reg_map_name_to_regnum (gdbarch, name_buf, strlen (name_buf)); - regcache_cooked_write (regcache, regnum, - val + i * unit_length); + regcache->cooked_write (regnum, val + i * unit_length); } } continue; @@ -6577,6 +6567,7 @@ else if (op == 0x3) /* Not really supported. */ return arm_copy_unmodified (gdbarch, insn, "smc", dsc); + /* Fall through. */ default: return arm_copy_undef (gdbarch, insn, dsc); @@ -7901,7 +7892,7 @@ internal type. */ bfd_byte tmpbuf[FP_REGISTER_SIZE]; - regcache_cooked_read (regs, ARM_F0_REGNUM, tmpbuf); + regs->cooked_read (ARM_F0_REGNUM, tmpbuf); target_float_convert (tmpbuf, arm_ext_type (gdbarch), valbuf, type); } @@ -7912,10 +7903,9 @@ /* ARM_FLOAT_VFP can arise if this is a variadic function so not using the VFP ABI code. */ case ARM_FLOAT_VFP: - regcache_cooked_read (regs, ARM_A1_REGNUM, valbuf); + regs->cooked_read (ARM_A1_REGNUM, valbuf); if (TYPE_LENGTH (type) > 4) - regcache_cooked_read (regs, ARM_A1_REGNUM + 1, - valbuf + INT_REGISTER_SIZE); + regs->cooked_read (ARM_A1_REGNUM + 1, valbuf + INT_REGISTER_SIZE); break; default: @@ -7963,7 +7953,7 @@ while (len > 0) { - regcache_cooked_read (regs, regno++, tmpbuf); + regs->cooked_read (regno++, tmpbuf); memcpy (valbuf, tmpbuf, len > INT_REGISTER_SIZE ? INT_REGISTER_SIZE : len); len -= INT_REGISTER_SIZE; @@ -8108,7 +8098,7 @@ case ARM_FLOAT_FPA: target_float_convert (valbuf, type, buf, arm_ext_type (gdbarch)); - regcache_cooked_write (regs, ARM_F0_REGNUM, buf); + regs->cooked_write (ARM_F0_REGNUM, buf); break; case ARM_FLOAT_SOFT_FPA: @@ -8116,10 +8106,9 @@ /* ARM_FLOAT_VFP can arise if this is a variadic function so not using the VFP ABI code. */ case ARM_FLOAT_VFP: - regcache_cooked_write (regs, ARM_A1_REGNUM, valbuf); + regs->cooked_write (ARM_A1_REGNUM, valbuf); if (TYPE_LENGTH (type) > 4) - regcache_cooked_write (regs, ARM_A1_REGNUM + 1, - valbuf + INT_REGISTER_SIZE); + regs->cooked_write (ARM_A1_REGNUM + 1, valbuf + INT_REGISTER_SIZE); break; default: @@ -8144,7 +8133,7 @@ LONGEST val = unpack_long (type, valbuf); store_signed_integer (tmpbuf, INT_REGISTER_SIZE, byte_order, val); - regcache_cooked_write (regs, ARM_A1_REGNUM, tmpbuf); + regs->cooked_write (ARM_A1_REGNUM, tmpbuf); } else { @@ -8156,7 +8145,7 @@ while (len > 0) { - regcache_cooked_write (regs, regno++, valbuf); + regs->cooked_write (regno++, valbuf); len -= INT_REGISTER_SIZE; valbuf += INT_REGISTER_SIZE; } @@ -8175,7 +8164,7 @@ { memcpy (tmpbuf, valbuf, len > INT_REGISTER_SIZE ? INT_REGISTER_SIZE : len); - regcache_cooked_write (regs, regno++, tmpbuf); + regs->cooked_write (regno++, tmpbuf); len -= INT_REGISTER_SIZE; valbuf += INT_REGISTER_SIZE; } @@ -8222,11 +8211,9 @@ regnum = user_reg_map_name_to_regnum (gdbarch, name_buf, strlen (name_buf)); if (writebuf) - regcache_cooked_write (regcache, regnum, - writebuf + i * unit_length); + regcache->cooked_write (regnum, writebuf + i * unit_length); if (readbuf) - regcache_cooked_read (regcache, regnum, - readbuf + i * unit_length); + regcache->cooked_read (regnum, readbuf + i * unit_length); } } return RETURN_VALUE_REGISTER_CONVENTION; @@ -8678,7 +8665,7 @@ the quad register, in [0, 15]. */ static enum register_status -arm_neon_quad_read (struct gdbarch *gdbarch, struct regcache *regcache, +arm_neon_quad_read (struct gdbarch *gdbarch, readable_regcache *regcache, int regnum, gdb_byte *buf) { char name_buf[4]; @@ -8696,13 +8683,13 @@ else offset = 0; - status = regcache_raw_read (regcache, double_regnum, reg_buf); + status = regcache->raw_read (double_regnum, reg_buf); if (status != REG_VALID) return status; memcpy (buf + offset, reg_buf, 8); offset = 8 - offset; - status = regcache_raw_read (regcache, double_regnum + 1, reg_buf); + status = regcache->raw_read (double_regnum + 1, reg_buf); if (status != REG_VALID) return status; memcpy (buf + offset, reg_buf, 8); @@ -8711,7 +8698,7 @@ } static enum register_status -arm_pseudo_read (struct gdbarch *gdbarch, struct regcache *regcache, +arm_pseudo_read (struct gdbarch *gdbarch, readable_regcache *regcache, int regnum, gdb_byte *buf) { const int num_regs = gdbarch_num_regs (gdbarch); @@ -8742,7 +8729,7 @@ double_regnum = user_reg_map_name_to_regnum (gdbarch, name_buf, strlen (name_buf)); - status = regcache_raw_read (regcache, double_regnum, reg_buf); + status = regcache->raw_read (double_regnum, reg_buf); if (status == REG_VALID) memcpy (buf, reg_buf + offset, 4); return status; @@ -8773,9 +8760,9 @@ else offset = 0; - regcache_raw_write (regcache, double_regnum, buf + offset); + regcache->raw_write (double_regnum, buf + offset); offset = 8 - offset; - regcache_raw_write (regcache, double_regnum + 1, buf + offset); + regcache->raw_write (double_regnum + 1, buf + offset); } static void @@ -8808,9 +8795,9 @@ double_regnum = user_reg_map_name_to_regnum (gdbarch, name_buf, strlen (name_buf)); - regcache_raw_read (regcache, double_regnum, reg_buf); + regcache->raw_read (double_regnum, reg_buf); memcpy (reg_buf + offset, buf, 4); - regcache_raw_write (regcache, double_regnum, reg_buf); + regcache->raw_write (double_regnum, reg_buf); } } @@ -9556,7 +9543,7 @@ = register_objfile_data_with_cleanup (NULL, arm_objfile_data_free); /* Add ourselves to objfile event chain. */ - observer_attach_new_objfile (arm_exidx_new_objfile); + gdb::observers::new_objfile.attach (arm_exidx_new_objfile); arm_exidx_data_key = register_objfile_data_with_cleanup (NULL, arm_exidx_data_free); @@ -9585,7 +9572,8 @@ arm_disassembler_options = xstrdup ("reg-names-std"); - const disasm_options_t *disasm_options = disassembler_options_arm (); + const disasm_options_t *disasm_options + = &disassembler_options_arm ()->options; int num_disassembly_styles = 0; for (i = 0; disasm_options->name[i] != NULL; i++) if (CONST_STRNEQ (disasm_options->name[i], "reg-names-")) @@ -9964,7 +9952,7 @@ static int arm_record_extension_space (insn_decode_record *arm_insn_r) { - uint32_t ret = 0; /* Return value: -1:record failure ; 0:success */ + int ret = 0; /* Return value: -1:record failure ; 0:success */ uint32_t opcode1 = 0, opcode2 = 0, insn_op1 = 0; uint32_t record_buf[8], record_buf_mem[8]; uint32_t reg_src1 = 0; @@ -10238,75 +10226,101 @@ arm_insn_r->decode = bits (arm_insn_r->arm_insn, 4, 7); opcode1 = bits (arm_insn_r->arm_insn, 20, 24); - /* Data processing insn /multiply insn. */ - if (9 == arm_insn_r->decode - && ((4 <= arm_insn_r->opcode && 7 >= arm_insn_r->opcode) - || (0 == arm_insn_r->opcode || 1 == arm_insn_r->opcode))) + if (!((opcode1 & 0x19) == 0x10)) { - /* Handle multiply instructions. */ - /* MLA, MUL, SMLAL, SMULL, UMLAL, UMULL. */ - if (0 == arm_insn_r->opcode || 1 == arm_insn_r->opcode) - { - /* Handle MLA and MUL. */ - record_buf[0] = bits (arm_insn_r->arm_insn, 16, 19); - record_buf[1] = ARM_PS_REGNUM; - arm_insn_r->reg_rec_count = 2; - } - else if (4 <= arm_insn_r->opcode && 7 >= arm_insn_r->opcode) - { - /* Handle SMLAL, SMULL, UMLAL, UMULL. */ - record_buf[0] = bits (arm_insn_r->arm_insn, 16, 19); - record_buf[1] = bits (arm_insn_r->arm_insn, 12, 15); - record_buf[2] = ARM_PS_REGNUM; - arm_insn_r->reg_rec_count = 3; - } + /* Data-processing (register) and Data-processing (register-shifted + register */ + /* Out of 11 shifter operands mode, all the insn modifies destination + register, which is specified by 13-16 decode. */ + record_buf[0] = bits (arm_insn_r->arm_insn, 12, 15); + record_buf[1] = ARM_PS_REGNUM; + arm_insn_r->reg_rec_count = 2; } - else if (bit (arm_insn_r->arm_insn, INSN_S_L_BIT_NUM) - && (11 == arm_insn_r->decode || 13 == arm_insn_r->decode)) + else if ((arm_insn_r->decode < 8) && ((opcode1 & 0x19) == 0x10)) { - /* Handle misc load insns, as 20th bit (L = 1). */ - /* LDR insn has a capability to do branching, if - MOV LR, PC is precceded by LDR insn having Rn as R15 - in that case, it emulates branch and link insn, and hence we - need to save CSPR and PC as well. I am not sure this is right - place; as opcode = 010 LDR insn make this happen, if R15 was - used. */ - reg_dest = bits (arm_insn_r->arm_insn, 12, 15); - if (15 != reg_dest) - { - record_buf[0] = bits (arm_insn_r->arm_insn, 12, 15); - arm_insn_r->reg_rec_count = 1; - } - else - { - record_buf[0] = reg_dest; - record_buf[1] = ARM_PS_REGNUM; - arm_insn_r->reg_rec_count = 2; - } + /* Miscellaneous instructions */ + + if (3 == arm_insn_r->decode && 0x12 == opcode1 + && sbo_sbz (arm_insn_r->arm_insn, 9, 12, 1)) + { + /* Handle BLX, branch and link/exchange. */ + if (9 == arm_insn_r->opcode) + { + /* Branch is chosen by setting T bit of CSPR, bitp[0] of Rm, + and R14 stores the return address. */ + record_buf[0] = ARM_PS_REGNUM; + record_buf[1] = ARM_LR_REGNUM; + arm_insn_r->reg_rec_count = 2; + } + } + else if (7 == arm_insn_r->decode && 0x12 == opcode1) + { + /* Handle enhanced software breakpoint insn, BKPT. */ + /* CPSR is changed to be executed in ARM state, disabling normal + interrupts, entering abort mode. */ + /* According to high vector configuration PC is set. */ + /* user hit breakpoint and type reverse, in + that case, we need to go back with previous CPSR and + Program Counter. */ + record_buf[0] = ARM_PS_REGNUM; + record_buf[1] = ARM_LR_REGNUM; + arm_insn_r->reg_rec_count = 2; + + /* Save SPSR also; how? */ + return -1; + } + else if (1 == arm_insn_r->decode && 0x12 == opcode1 + && sbo_sbz (arm_insn_r->arm_insn, 9, 12, 1)) + { + /* Handle BX, branch and link/exchange. */ + /* Branch is chosen by setting T bit of CSPR, bitp[0] of Rm. */ + record_buf[0] = ARM_PS_REGNUM; + arm_insn_r->reg_rec_count = 1; + } + else if (1 == arm_insn_r->decode && 0x16 == opcode1 + && sbo_sbz (arm_insn_r->arm_insn, 9, 4, 1) + && sbo_sbz (arm_insn_r->arm_insn, 17, 4, 1)) + { + /* Count leading zeros: CLZ. */ + record_buf[0] = bits (arm_insn_r->arm_insn, 12, 15); + arm_insn_r->reg_rec_count = 1; + } + else if (!bit (arm_insn_r->arm_insn, INSN_S_L_BIT_NUM) + && (8 == arm_insn_r->opcode || 10 == arm_insn_r->opcode) + && sbo_sbz (arm_insn_r->arm_insn, 17, 4, 1) + && sbo_sbz (arm_insn_r->arm_insn, 1, 12, 0)) + { + /* Handle MRS insn. */ + record_buf[0] = bits (arm_insn_r->arm_insn, 12, 15); + arm_insn_r->reg_rec_count = 1; + } } - else if ((9 == arm_insn_r->opcode || 11 == arm_insn_r->opcode) - && sbo_sbz (arm_insn_r->arm_insn, 5, 12, 0) - && sbo_sbz (arm_insn_r->arm_insn, 13, 4, 1) - && 2 == bits (arm_insn_r->arm_insn, 20, 21)) + else if (9 == arm_insn_r->decode && opcode1 < 0x10) { - /* Handle MSR insn. */ - if (9 == arm_insn_r->opcode) - { - /* CSPR is going to be changed. */ - record_buf[0] = ARM_PS_REGNUM; - arm_insn_r->reg_rec_count = 1; - } - else - { - /* SPSR is going to be changed. */ - /* How to read SPSR value? */ - return -1; - } + /* Multiply and multiply-accumulate */ + + /* Handle multiply instructions. */ + /* MLA, MUL, SMLAL, SMULL, UMLAL, UMULL. */ + if (0 == arm_insn_r->opcode || 1 == arm_insn_r->opcode) + { + /* Handle MLA and MUL. */ + record_buf[0] = bits (arm_insn_r->arm_insn, 16, 19); + record_buf[1] = ARM_PS_REGNUM; + arm_insn_r->reg_rec_count = 2; + } + else if (4 <= arm_insn_r->opcode && 7 >= arm_insn_r->opcode) + { + /* Handle SMLAL, SMULL, UMLAL, UMULL. */ + record_buf[0] = bits (arm_insn_r->arm_insn, 16, 19); + record_buf[1] = bits (arm_insn_r->arm_insn, 12, 15); + record_buf[2] = ARM_PS_REGNUM; + arm_insn_r->reg_rec_count = 3; + } } - else if (9 == arm_insn_r->decode - && (8 == arm_insn_r->opcode || 10 == arm_insn_r->opcode) - && !bit (arm_insn_r->arm_insn, INSN_S_L_BIT_NUM)) + else if (9 == arm_insn_r->decode && opcode1 > 0x10) { + /* Synchronization primitives */ + /* Handling SWP, SWPB. */ /* These insn, changes register and memory as well. */ /* SWP or SWPB insn. */ @@ -10315,91 +10329,169 @@ regcache_raw_read_unsigned (reg_cache, reg_src1, &u_regval[0]); /* SWP insn ?, swaps word. */ if (8 == arm_insn_r->opcode) - { - record_buf_mem[0] = 4; - } - else - { - /* SWPB insn, swaps only byte. */ - record_buf_mem[0] = 1; - } + { + record_buf_mem[0] = 4; + } + else + { + /* SWPB insn, swaps only byte. */ + record_buf_mem[0] = 1; + } record_buf_mem[1] = u_regval[0]; arm_insn_r->mem_rec_count = 1; record_buf[0] = bits (arm_insn_r->arm_insn, 12, 15); arm_insn_r->reg_rec_count = 1; } - else if (3 == arm_insn_r->decode && 0x12 == opcode1 - && sbo_sbz (arm_insn_r->arm_insn, 9, 12, 1)) - { - /* Handle BLX, branch and link/exchange. */ - if (9 == arm_insn_r->opcode) - { - /* Branch is chosen by setting T bit of CSPR, bitp[0] of Rm, - and R14 stores the return address. */ - record_buf[0] = ARM_PS_REGNUM; - record_buf[1] = ARM_LR_REGNUM; - arm_insn_r->reg_rec_count = 2; - } - } - else if (7 == arm_insn_r->decode && 0x12 == opcode1) + else if (11 == arm_insn_r->decode || 13 == arm_insn_r->decode + || 15 == arm_insn_r->decode) { - /* Handle enhanced software breakpoint insn, BKPT. */ - /* CPSR is changed to be executed in ARM state, disabling normal - interrupts, entering abort mode. */ - /* According to high vector configuration PC is set. */ - /* user hit breakpoint and type reverse, in - that case, we need to go back with previous CPSR and - Program Counter. */ - record_buf[0] = ARM_PS_REGNUM; - record_buf[1] = ARM_LR_REGNUM; - arm_insn_r->reg_rec_count = 2; + if ((opcode1 & 0x12) == 2) + { + /* Extra load/store (unprivileged) */ + return -1; + } + else + { + /* Extra load/store */ + switch (bits (arm_insn_r->arm_insn, 5, 6)) + { + case 1: + if ((opcode1 & 0x05) == 0x0 || (opcode1 & 0x05) == 0x4) + { + /* STRH (register), STRH (immediate) */ + arm_record_strx (arm_insn_r, &record_buf[0], + &record_buf_mem[0], ARM_RECORD_STRH); + } + else if ((opcode1 & 0x05) == 0x1) + { + /* LDRH (register) */ + record_buf[0] = bits (arm_insn_r->arm_insn, 12, 15); + arm_insn_r->reg_rec_count = 1; - /* Save SPSR also; how? */ - return -1; - } - else if (11 == arm_insn_r->decode - && !bit (arm_insn_r->arm_insn, INSN_S_L_BIT_NUM)) - { - /* Handle enhanced store insns and DSP insns (e.g. LDRD). */ + if (bit (arm_insn_r->arm_insn, 21)) + { + /* Write back to Rn. */ + record_buf[arm_insn_r->reg_rec_count++] + = bits (arm_insn_r->arm_insn, 16, 19); + } + } + else if ((opcode1 & 0x05) == 0x5) + { + /* LDRH (immediate), LDRH (literal) */ + int rn = bits (arm_insn_r->arm_insn, 16, 19); - /* Handle str(x) insn */ - arm_record_strx(arm_insn_r, &record_buf[0], &record_buf_mem[0], - ARM_RECORD_STRH); - } - else if (1 == arm_insn_r->decode && 0x12 == opcode1 - && sbo_sbz (arm_insn_r->arm_insn, 9, 12, 1)) - { - /* Handle BX, branch and link/exchange. */ - /* Branch is chosen by setting T bit of CSPR, bitp[0] of Rm. */ - record_buf[0] = ARM_PS_REGNUM; - arm_insn_r->reg_rec_count = 1; - } - else if (1 == arm_insn_r->decode && 0x16 == opcode1 - && sbo_sbz (arm_insn_r->arm_insn, 9, 4, 1) - && sbo_sbz (arm_insn_r->arm_insn, 17, 4, 1)) - { - /* Count leading zeros: CLZ. */ - record_buf[0] = bits (arm_insn_r->arm_insn, 12, 15); - arm_insn_r->reg_rec_count = 1; - } - else if (!bit (arm_insn_r->arm_insn, INSN_S_L_BIT_NUM) - && (8 == arm_insn_r->opcode || 10 == arm_insn_r->opcode) - && sbo_sbz (arm_insn_r->arm_insn, 17, 4, 1) - && sbo_sbz (arm_insn_r->arm_insn, 1, 12, 0) - ) - { - /* Handle MRS insn. */ - record_buf[0] = bits (arm_insn_r->arm_insn, 12, 15); - arm_insn_r->reg_rec_count = 1; - } - else if (arm_insn_r->opcode <= 15) - { - /* Normal data processing insns. */ - /* Out of 11 shifter operands mode, all the insn modifies destination - register, which is specified by 13-16 decode. */ - record_buf[0] = bits (arm_insn_r->arm_insn, 12, 15); - record_buf[1] = ARM_PS_REGNUM; - arm_insn_r->reg_rec_count = 2; + record_buf[0] = bits (arm_insn_r->arm_insn, 12, 15); + arm_insn_r->reg_rec_count = 1; + + if (rn != 15) + { + /*LDRH (immediate) */ + if (bit (arm_insn_r->arm_insn, 21)) + { + /* Write back to Rn. */ + record_buf[arm_insn_r->reg_rec_count++] = rn; + } + } + } + else + return -1; + break; + case 2: + if ((opcode1 & 0x05) == 0x0) + { + /* LDRD (register) */ + record_buf[0] = bits (arm_insn_r->arm_insn, 12, 15); + record_buf[1] = record_buf[0] + 1; + arm_insn_r->reg_rec_count = 2; + + if (bit (arm_insn_r->arm_insn, 21)) + { + /* Write back to Rn. */ + record_buf[arm_insn_r->reg_rec_count++] + = bits (arm_insn_r->arm_insn, 16, 19); + } + } + else if ((opcode1 & 0x05) == 0x1) + { + /* LDRSB (register) */ + record_buf[0] = bits (arm_insn_r->arm_insn, 12, 15); + arm_insn_r->reg_rec_count = 1; + + if (bit (arm_insn_r->arm_insn, 21)) + { + /* Write back to Rn. */ + record_buf[arm_insn_r->reg_rec_count++] + = bits (arm_insn_r->arm_insn, 16, 19); + } + } + else if ((opcode1 & 0x05) == 0x4 || (opcode1 & 0x05) == 0x5) + { + /* LDRD (immediate), LDRD (literal), LDRSB (immediate), + LDRSB (literal) */ + int rn = bits (arm_insn_r->arm_insn, 16, 19); + + record_buf[0] = bits (arm_insn_r->arm_insn, 12, 15); + arm_insn_r->reg_rec_count = 1; + + if (rn != 15) + { + /*LDRD (immediate), LDRSB (immediate) */ + if (bit (arm_insn_r->arm_insn, 21)) + { + /* Write back to Rn. */ + record_buf[arm_insn_r->reg_rec_count++] = rn; + } + } + } + else + return -1; + break; + case 3: + if ((opcode1 & 0x05) == 0x0) + { + /* STRD (register) */ + arm_record_strx (arm_insn_r, &record_buf[0], + &record_buf_mem[0], ARM_RECORD_STRD); + } + else if ((opcode1 & 0x05) == 0x1) + { + /* LDRSH (register) */ + record_buf[0] = bits (arm_insn_r->arm_insn, 12, 15); + arm_insn_r->reg_rec_count = 1; + + if (bit (arm_insn_r->arm_insn, 21)) + { + /* Write back to Rn. */ + record_buf[arm_insn_r->reg_rec_count++] + = bits (arm_insn_r->arm_insn, 16, 19); + } + } + else if ((opcode1 & 0x05) == 0x4) + { + /* STRD (immediate) */ + arm_record_strx (arm_insn_r, &record_buf[0], + &record_buf_mem[0], ARM_RECORD_STRD); + } + else if ((opcode1 & 0x05) == 0x5) + { + /* LDRSH (immediate), LDRSH (literal) */ + record_buf[0] = bits (arm_insn_r->arm_insn, 12, 15); + arm_insn_r->reg_rec_count = 1; + + if (bit (arm_insn_r->arm_insn, 21)) + { + /* Write back to Rn. */ + record_buf[arm_insn_r->reg_rec_count++] + = bits (arm_insn_r->arm_insn, 16, 19); + } + } + else + return -1; + break; + default: + return -1; + } + } } else { @@ -11325,7 +11417,8 @@ opc3 = bits (arm_insn_r->arm_insn, 6, 7); dp_op_sz = bit (arm_insn_r->arm_insn, 8); bit_d = bit (arm_insn_r->arm_insn, 22); - opc1 = opc1 & 0x04; + /* Mask off the "D" bit. */ + opc1 = opc1 & ~0x04; /* Handle VMLA, VMLS. */ if (opc1 == 0x00) @@ -11390,7 +11483,7 @@ } } /* Handle VDIV. */ - else if (opc1 == 0x0b) + else if (opc1 == 0x08) { if (dp_op_sz) curr_insn_type = INSN_T1; @@ -11579,18 +11672,18 @@ static int arm_record_coproc_data_proc (insn_decode_record *arm_insn_r) { - uint32_t op, op1_sbit, op1_ebit, coproc; + uint32_t op, op1_ebit, coproc, bits_24_25; struct gdbarch_tdep *tdep = gdbarch_tdep (arm_insn_r->gdbarch); struct regcache *reg_cache = arm_insn_r->regcache; arm_insn_r->opcode = bits (arm_insn_r->arm_insn, 24, 27); coproc = bits (arm_insn_r->arm_insn, 8, 11); - op1_sbit = bit (arm_insn_r->arm_insn, 24); op1_ebit = bit (arm_insn_r->arm_insn, 20); op = bit (arm_insn_r->arm_insn, 4); + bits_24_25 = bits (arm_insn_r->arm_insn, 24, 25); /* Handle arm SWI/SVC system call instructions. */ - if (op1_sbit) + if (bits_24_25 == 0x3) { if (tdep->arm_syscall_record != NULL) { @@ -11611,44 +11704,97 @@ return -1; } } - - if ((coproc & 0x0e) == 0x0a) + else if (bits_24_25 == 0x02) { - /* VFP data-processing instructions. */ - if (!op1_sbit && !op) - return arm_record_vfp_data_proc_insn (arm_insn_r); + if (op) + { + if ((coproc & 0x0e) == 0x0a) + { + /* 8, 16, and 32-bit transfer */ + return arm_record_vdata_transfer_insn (arm_insn_r); + } + else + { + if (op1_ebit) + { + /* MRC, MRC2 */ + uint32_t record_buf[1]; - /* Advanced SIMD, VFP instructions. */ - if (!op1_sbit && op) - return arm_record_vdata_transfer_insn (arm_insn_r); + record_buf[0] = bits (arm_insn_r->arm_insn, 12, 15); + if (record_buf[0] == 15) + record_buf[0] = ARM_PS_REGNUM; + + arm_insn_r->reg_rec_count = 1; + REG_ALLOC (arm_insn_r->arm_regs, arm_insn_r->reg_rec_count, + record_buf); + return 0; + } + else + { + /* MCR, MCR2 */ + return -1; + } + } + } + else + { + if ((coproc & 0x0e) == 0x0a) + { + /* VFP data-processing instructions. */ + return arm_record_vfp_data_proc_insn (arm_insn_r); + } + else + { + /* CDP, CDP2 */ + return -1; + } + } } else { - /* Coprocessor data operations. */ - if (!op1_sbit && !op) - return arm_record_unsupported_insn (arm_insn_r); - - /* Move to Coprocessor from ARM core register. */ - if (!op1_sbit && !op1_ebit && op) - return arm_record_unsupported_insn (arm_insn_r); - - /* Move to arm core register from coprocessor. */ - if (!op1_sbit && op1_ebit && op) - { - uint32_t record_buf[1]; - - record_buf[0] = bits (arm_insn_r->arm_insn, 12, 15); - if (record_buf[0] == 15) - record_buf[0] = ARM_PS_REGNUM; + unsigned int op1 = bits (arm_insn_r->arm_insn, 20, 25); - arm_insn_r->reg_rec_count = 1; - REG_ALLOC (arm_insn_r->arm_regs, arm_insn_r->reg_rec_count, - record_buf); - return 0; - } + if (op1 == 5) + { + if ((coproc & 0x0e) != 0x0a) + { + /* MRRC, MRRC2 */ + return -1; + } + } + else if (op1 == 4 || op1 == 5) + { + if ((coproc & 0x0e) == 0x0a) + { + /* 64-bit transfers between ARM core and extension */ + return -1; + } + else if (op1 == 4) + { + /* MCRR, MCRR2 */ + return -1; + } + } + else if (op1 == 0 || op1 == 1) + { + /* UNDEFINED */ + return -1; + } + else + { + if ((coproc & 0x0e) == 0x0a) + { + /* Extension register load/store */ + } + else + { + /* STC, STC2, LDC, LDC2 */ + } + return -1; + } } - return arm_record_unsupported_insn (arm_insn_r); + return -1; } /* Handling opcode 000 insns. */ @@ -12913,7 +13059,7 @@ class instruction_reader : public abstract_memory_reader { public: - bool read (CORE_ADDR memaddr, gdb_byte *buf, const size_t len) + bool read (CORE_ADDR memaddr, gdb_byte *buf, const size_t len) override { if (target_read_memory (memaddr, buf, len)) return false; @@ -13066,7 +13212,7 @@ : m_endian (endian), m_insns (insns), m_insns_size (SIZE) {} - bool read (CORE_ADDR memaddr, gdb_byte *buf, const size_t len) + bool read (CORE_ADDR memaddr, gdb_byte *buf, const size_t len) override { SELF_CHECK (len == 4 || len == 2); SELF_CHECK (memaddr % 2 == 0); diff -Nru gdb-8.1/gdb/auto-load.c gdb-8.2/gdb/auto-load.c --- gdb-8.1/gdb/auto-load.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/auto-load.c 2018-09-05 07:27:13.000000000 +0000 @@ -25,7 +25,7 @@ #include "ui-out.h" #include "filenames.h" #include "command.h" -#include "observer.h" +#include "observable.h" #include "objfiles.h" #include "cli/cli-script.h" #include "gdbcmd.h" @@ -40,6 +40,7 @@ #include "extension.h" #include "gdb/section-scripts.h" #include +#include "common/pathstuff.h" /* The section to look in for auto-loaded scripts (in file formats that support sections). @@ -168,19 +169,15 @@ /* Vector of directory elements of AUTO_LOAD_SAFE_PATH with each one normalized by tilde_expand and possibly each entries has added its gdb_realpath counterpart. */ -static VEC (char_ptr) *auto_load_safe_path_vec; +std::vector> auto_load_safe_path_vec; /* Expand $datadir and $debugdir in STRING according to the rules of - substitute_path_component. Return vector from dirnames_to_char_ptr_vec, - this vector must be freed by free_char_ptr_vec by the caller. */ + substitute_path_component. */ -static VEC (char_ptr) * +static std::vector> auto_load_expand_dir_vars (const char *string) { - VEC (char_ptr) *dir_vec; - char *s; - - s = xstrdup (string); + char *s = xstrdup (string); substitute_path_component (&s, "$datadir", gdb_datadir); substitute_path_component (&s, "$debugdir", debug_file_directory); @@ -188,7 +185,8 @@ fprintf_unfiltered (gdb_stdlog, _("auto-load: Expanded $-variables to \"%s\".\n"), s); - dir_vec = dirnames_to_char_ptr_vec (s); + std::vector> dir_vec + = dirnames_to_char_ptr_vec (s); xfree(s); return dir_vec; @@ -199,54 +197,49 @@ static void auto_load_safe_path_vec_update (void) { - unsigned len; - int ix; - if (debug_auto_load) fprintf_unfiltered (gdb_stdlog, _("auto-load: Updating directories of \"%s\".\n"), auto_load_safe_path); - free_char_ptr_vec (auto_load_safe_path_vec); - auto_load_safe_path_vec = auto_load_expand_dir_vars (auto_load_safe_path); - len = VEC_length (char_ptr, auto_load_safe_path_vec); + size_t len = auto_load_safe_path_vec.size (); /* Apply tilde_expand and gdb_realpath to each AUTO_LOAD_SAFE_PATH_VEC element. */ - for (ix = 0; ix < len; ix++) + for (size_t i = 0; i < len; i++) { - char *dir = VEC_index (char_ptr, auto_load_safe_path_vec, ix); - char *expanded = tilde_expand (dir); - gdb::unique_xmalloc_ptr real_path = gdb_realpath (expanded); - - /* Ensure the current entry is at least tilde_expand-ed. */ - VEC_replace (char_ptr, auto_load_safe_path_vec, ix, expanded); + gdb::unique_xmalloc_ptr &in_vec = auto_load_safe_path_vec[i]; + gdb::unique_xmalloc_ptr expanded (tilde_expand (in_vec.get ())); + gdb::unique_xmalloc_ptr real_path = gdb_realpath (expanded.get ()); + + /* Ensure the current entry is at least tilde_expand-ed. ORIGINAL makes + sure we free the original string. */ + gdb::unique_xmalloc_ptr original = std::move (in_vec); + in_vec = std::move (expanded); if (debug_auto_load) { - if (strcmp (expanded, dir) == 0) + if (strcmp (in_vec.get (), original.get ()) == 0) fprintf_unfiltered (gdb_stdlog, _("auto-load: Using directory \"%s\".\n"), - expanded); + in_vec.get ()); else fprintf_unfiltered (gdb_stdlog, _("auto-load: Resolved directory \"%s\" " "as \"%s\".\n"), - dir, expanded); + original.get (), in_vec.get ()); } - xfree (dir); /* If gdb_realpath returns a different content, append it. */ - if (strcmp (real_path.get (), expanded) != 0) + if (strcmp (real_path.get (), in_vec.get ()) != 0) { if (debug_auto_load) fprintf_unfiltered (gdb_stdlog, _("auto-load: And canonicalized as \"%s\".\n"), real_path.get ()); - VEC_safe_push (char_ptr, auto_load_safe_path_vec, - real_path.release ()); + auto_load_safe_path_vec.push_back (std::move (real_path)); } } } @@ -425,13 +418,14 @@ filename_is_in_auto_load_safe_path_vec (const char *filename, gdb::unique_xmalloc_ptr *filename_realp) { - char *pattern; - int ix; + const char *pattern = NULL; - for (ix = 0; VEC_iterate (char_ptr, auto_load_safe_path_vec, ix, pattern); - ++ix) - if (*filename_realp == NULL && filename_is_in_pattern (filename, pattern)) - break; + for (const gdb::unique_xmalloc_ptr &p : auto_load_safe_path_vec) + if (*filename_realp == NULL && filename_is_in_pattern (filename, p.get ())) + { + pattern = p.get (); + break; + } if (pattern == NULL) { @@ -446,10 +440,12 @@ } if (strcmp (filename_realp->get (), filename) != 0) - for (ix = 0; - VEC_iterate (char_ptr, auto_load_safe_path_vec, ix, pattern); ++ix) - if (filename_is_in_pattern (filename_realp->get (), pattern)) - break; + for (const gdb::unique_xmalloc_ptr &p : auto_load_safe_path_vec) + if (filename_is_in_pattern (filename_realp->get (), p.get ())) + { + pattern = p.get (); + break; + } } if (pattern != NULL) @@ -772,50 +768,38 @@ auto_load_objfile_script_1 (struct objfile *objfile, const char *realname, const struct extension_language_defn *language) { - char *filename, *debugfile; - int len, retval; - struct cleanup *cleanups; + const char *debugfile; + int retval; const char *suffix = ext_lang_auto_load_suffix (language); - len = strlen (realname); - filename = (char *) xmalloc (len + strlen (suffix) + 1); - memcpy (filename, realname, len); - strcpy (filename + len, suffix); - - cleanups = make_cleanup (xfree, filename); + std::string filename = std::string (realname) + suffix; - gdb_file_up input = gdb_fopen_cloexec (filename, "r"); - debugfile = filename; + gdb_file_up input = gdb_fopen_cloexec (filename.c_str (), "r"); + debugfile = filename.c_str (); if (debug_auto_load) fprintf_unfiltered (gdb_stdlog, _("auto-load: Attempted file \"%s\" %s.\n"), debugfile, input ? _("exists") : _("does not exist")); + std::string debugfile_holder; if (!input) { - VEC (char_ptr) *vec; - int ix; - char *dir; - /* Also try the same file in a subdirectory of gdb's data directory. */ - vec = auto_load_expand_dir_vars (auto_load_dir); - make_cleanup_free_char_ptr_vec (vec); + std::vector> vec + = auto_load_expand_dir_vars (auto_load_dir); if (debug_auto_load) fprintf_unfiltered (gdb_stdlog, _("auto-load: Searching 'set auto-load " "scripts-directory' path \"%s\".\n"), auto_load_dir); - for (ix = 0; VEC_iterate (char_ptr, vec, ix, dir); ++ix) + for (const gdb::unique_xmalloc_ptr &dir : vec) { - debugfile = (char *) xmalloc (strlen (dir) + strlen (filename) + 1); - strcpy (debugfile, dir); - /* FILENAME is absolute, so we don't need a "/" here. */ - strcat (debugfile, filename); + debugfile_holder = dir.get () + filename; + debugfile = debugfile_holder.c_str (); - make_cleanup (xfree, debugfile); input = gdb_fopen_cloexec (debugfile, "r"); if (debug_auto_load) fprintf_unfiltered (gdb_stdlog, _("auto-load: Attempted file " @@ -868,7 +852,6 @@ else retval = 0; - do_cleanups (cleanups); return retval; } @@ -989,23 +972,21 @@ { objfile_script_executor_func *executor; const char *newline, *script_text; - char *name; + const char *name; int is_safe, in_hash_table; - struct cleanup *cleanups; - - cleanups = make_cleanup (null_cleanup, NULL); /* The first line of the script is the name of the script. It must not contain any kind of space character. */ name = NULL; newline = strchr (script, '\n'); + std::string name_holder; if (newline != NULL) { - char *buf, *p; + const char *buf, *p; /* Put the name in a buffer and validate it. */ - buf = xstrndup (script, newline - script); - make_cleanup (xfree, buf); + name_holder = std::string (script, newline - script); + buf = name_holder.c_str (); for (p = buf; *p != '\0'; ++p) { if (isspace (*p)) @@ -1022,7 +1003,6 @@ Missing/bad script name in entry at offset %u in section %s\n\ of file %s."), offset, section_name, objfile_name (objfile)); - do_cleanups (cleanups); return; } script_text = newline + 1; @@ -1035,7 +1015,6 @@ maybe_print_unsupported_script_warning (pspace_info, objfile, language, section_name, offset); maybe_add_script_text (pspace_info, 0, name, language); - do_cleanups (cleanups); return; } @@ -1043,7 +1022,6 @@ if (!ext_lang_auto_load_enabled (language)) { /* No message is printed, just skip it. */ - do_cleanups (cleanups); return; } @@ -1059,8 +1037,6 @@ /* If this file is not currently loaded, load it. */ if (is_safe && !in_hash_table) executor (language, objfile, name, script_text); - - do_cleanups (cleanups); } /* Load scripts specified in OBJFILE. @@ -1160,13 +1136,11 @@ section_name, bfd_get_filename (abfd)); else { - struct cleanup *cleanups; - char *p = (char *) data; + gdb::unique_xmalloc_ptr data_holder (data); - cleanups = make_cleanup (xfree, p); + char *p = (char *) data; source_section_scripts (objfile, section_name, p, p + bfd_get_section_size (scripts_sect)); - do_cleanups (cleanups); } } @@ -1568,7 +1542,7 @@ = register_program_space_data_with_cleanup (NULL, auto_load_pspace_data_cleanup); - observer_attach_new_objfile (auto_load_new_objfile); + gdb::observers::new_objfile.attach (auto_load_new_objfile); add_setshow_boolean_cmd ("gdb-scripts", class_support, &auto_load_gdb_scripts, _("\ @@ -1678,7 +1652,7 @@ show_auto_load_safe_path, auto_load_set_cmdlist_get (), auto_load_show_cmdlist_get ()); - observer_attach_gdb_datadir_changed (auto_load_gdb_datadir_changed); + gdb::observers::gdb_datadir_changed.attach (auto_load_gdb_datadir_changed); cmd = add_cmd ("add-auto-load-safe-path", class_support, add_auto_load_safe_path, diff -Nru gdb-8.1/gdb/auxv.c gdb-8.2/gdb/auxv.c --- gdb-8.1/gdb/auxv.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/auxv.c 2018-09-05 07:44:28.000000000 +0000 @@ -24,7 +24,7 @@ #include "inferior.h" #include "valprint.h" #include "gdbcore.h" -#include "observer.h" +#include "observable.h" #include "filestuff.h" #include "objfiles.h" @@ -50,7 +50,7 @@ int fd; ssize_t l; - pathname = xstrprintf ("/proc/%d/auxv", ptid_get_pid (inferior_ptid)); + pathname = xstrprintf ("/proc/%d/auxv", inferior_ptid.pid ()); fd = gdb_open_cloexec (pathname, writebuf != NULL ? O_WRONLY : O_RDONLY, 0); xfree (pathname); if (fd < 0) @@ -283,16 +283,15 @@ Return -1 if there is insufficient buffer for a whole entry. Return 1 if an entry was read into *TYPEP and *VALP. */ int -target_auxv_parse (struct target_ops *ops, gdb_byte **readptr, - gdb_byte *endptr, CORE_ADDR *typep, CORE_ADDR *valp) +target_auxv_parse (gdb_byte **readptr, + gdb_byte *endptr, CORE_ADDR *typep, CORE_ADDR *valp) { struct gdbarch *gdbarch = target_gdbarch(); if (gdbarch_auxv_parse_p (gdbarch)) return gdbarch_auxv_parse (gdbarch, readptr, endptr, typep, valp); - return current_target.to_auxv_parse (¤t_target, readptr, endptr, - typep, valp); + return current_top_target ()->auxv_parse (readptr, endptr, typep, valp); } @@ -304,8 +303,7 @@ overhead of transfering data from a remote target to the local host. */ struct auxv_info { - LONGEST length; - gdb_byte *data; + gdb::optional data; }; /* Handles the cleanup of the auxv cache for inferior INF. ARG is ignored. @@ -323,8 +321,7 @@ info = (struct auxv_info *) inferior_data (inf, auxv_inferior_data); if (info != NULL) { - xfree (info->data); - xfree (info); + delete info; set_inferior_data (inf, auxv_inferior_data, NULL); } } @@ -358,9 +355,8 @@ info = (struct auxv_info *) inferior_data (inf, auxv_inferior_data); if (info == NULL) { - info = XCNEW (struct auxv_info); - info->length = target_read_alloc (ops, TARGET_OBJECT_AUXV, - NULL, &info->data); + info = new auxv_info; + info->data = target_read_alloc (ops, TARGET_OBJECT_AUXV, NULL); set_inferior_data (inf, auxv_inferior_data, info); } @@ -375,20 +371,17 @@ target_auxv_search (struct target_ops *ops, CORE_ADDR match, CORE_ADDR *valp) { CORE_ADDR type, val; - gdb_byte *data; - gdb_byte *ptr; - struct auxv_info *info; - - info = get_auxv_inferior_data (ops); + auxv_info *info = get_auxv_inferior_data (ops); - data = info->data; - ptr = data; + if (!info->data) + return -1; - if (info->length <= 0) - return info->length; + gdb_byte *data = info->data->data (); + gdb_byte *ptr = data; + size_t len = info->data->size (); while (1) - switch (target_auxv_parse (ops, &ptr, data + info->length, &type, &val)) + switch (target_auxv_parse (&ptr, data + len, &type, &val)) { case 1: /* Here's an entry, check it. */ if (type == match) @@ -528,19 +521,17 @@ { struct gdbarch *gdbarch = target_gdbarch (); CORE_ADDR type, val; - gdb_byte *data; - gdb_byte *ptr; - struct auxv_info *info; int ents = 0; + auxv_info *info = get_auxv_inferior_data (ops); - info = get_auxv_inferior_data (ops); + if (!info->data) + return -1; - data = info->data; - ptr = data; - if (info->length <= 0) - return info->length; + gdb_byte *data = info->data->data (); + gdb_byte *ptr = data; + size_t len = info->data->size (); - while (target_auxv_parse (ops, &ptr, data + info->length, &type, &val) > 0) + while (target_auxv_parse (&ptr, data + len, &type, &val) > 0) { gdbarch_print_auxv_entry (gdbarch, file, type, val); ++ents; @@ -558,7 +549,7 @@ error (_("The program has no auxiliary information now.")); else { - int ents = fprint_target_auxv (gdb_stdout, ¤t_target); + int ents = fprint_target_auxv (gdb_stdout, current_top_target ()); if (ents < 0) error (_("No auxiliary vector found, or failed reading it.")); @@ -579,7 +570,7 @@ = register_inferior_data_with_cleanup (NULL, auxv_inferior_data_cleanup); /* Observers used to invalidate the auxv cache when needed. */ - observer_attach_inferior_exit (invalidate_auxv_cache_inf); - observer_attach_inferior_appeared (invalidate_auxv_cache_inf); - observer_attach_executable_changed (invalidate_auxv_cache); + gdb::observers::inferior_exit.attach (invalidate_auxv_cache_inf); + gdb::observers::inferior_appeared.attach (invalidate_auxv_cache_inf); + gdb::observers::executable_changed.attach (invalidate_auxv_cache); } diff -Nru gdb-8.1/gdb/auxv.h gdb-8.2/gdb/auxv.h --- gdb-8.1/gdb/auxv.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/auxv.h 2018-09-05 07:27:13.000000000 +0000 @@ -35,8 +35,7 @@ Return 0 if *READPTR is already at the end of the buffer. Return -1 if there is insufficient buffer for a whole entry. Return 1 if an entry was read into *TYPEP and *VALP. */ -extern int target_auxv_parse (struct target_ops *ops, - gdb_byte **readptr, gdb_byte *endptr, +extern int target_auxv_parse (gdb_byte **readptr, gdb_byte *endptr, CORE_ADDR *typep, CORE_ADDR *valp); /* Extract the auxiliary vector entry with a_type matching MATCH. diff -Nru gdb-8.1/gdb/avr-tdep.c gdb-8.2/gdb/avr-tdep.c --- gdb-8.1/gdb/avr-tdep.c 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/gdb/avr-tdep.c 2018-09-05 07:27:13.000000000 +0000 @@ -367,10 +367,11 @@ } static CORE_ADDR -avr_read_pc (struct regcache *regcache) +avr_read_pc (readable_regcache *regcache) { ULONGEST pc; - regcache_cooked_read_unsigned (regcache, AVR_PC_REGNUM, &pc); + + regcache->cooked_read (AVR_PC_REGNUM, &pc); return avr_make_iaddr (pc); } @@ -382,7 +383,7 @@ } static enum register_status -avr_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache, +avr_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache, int regnum, gdb_byte *buf) { ULONGEST val; @@ -391,7 +392,7 @@ switch (regnum) { case AVR_PSEUDO_PC_REGNUM: - status = regcache_raw_read_unsigned (regcache, AVR_PC_REGNUM, &val); + status = regcache->raw_read (AVR_PC_REGNUM, &val); if (status != REG_VALID) return status; val >>= 1; @@ -952,13 +953,13 @@ if (writebuf != NULL) { for (i = 0; i < TYPE_LENGTH (valtype); i++) - regcache_cooked_write (regcache, lsb_reg + i, writebuf + i); + regcache->cooked_write (lsb_reg + i, writebuf + i); } if (readbuf != NULL) { for (i = 0; i < TYPE_LENGTH (valtype); i++) - regcache_cooked_read (regcache, lsb_reg + i, readbuf + i); + regcache->cooked_read (lsb_reg + i, readbuf + i); } return RETURN_VALUE_REGISTER_CONVENTION; @@ -1548,21 +1549,15 @@ static void avr_io_reg_read_command (const char *args, int from_tty) { - LONGEST bufsiz = 0; - gdb_byte *buf; - const char *bufstr; char query[400]; - const char *p; unsigned int nreg = 0; unsigned int val; - int i, j, k, step; /* Find out how many io registers the target has. */ - bufsiz = target_read_alloc (¤t_target, TARGET_OBJECT_AVR, - "avr.io_reg", &buf); - bufstr = (const char *) buf; + gdb::optional buf + = target_read_alloc (current_top_target (), TARGET_OBJECT_AVR, "avr.io_reg"); - if (bufsiz <= 0) + if (!buf) { fprintf_unfiltered (gdb_stderr, _("ERR: info io_registers NOT supported " @@ -1570,36 +1565,42 @@ return; } + const char *bufstr = (const char *) buf->data (); + if (sscanf (bufstr, "%x", &nreg) != 1) { fprintf_unfiltered (gdb_stderr, _("Error fetching number of io registers\n")); - xfree (buf); return; } - xfree (buf); - reinitialize_more_filter (); printf_unfiltered (_("Target has %u io registers:\n\n"), nreg); /* only fetch up to 8 registers at a time to keep the buffer small */ - step = 8; + int step = 8; - for (i = 0; i < nreg; i += step) + for (int i = 0; i < nreg; i += step) { /* how many registers this round? */ - j = step; + int j = step; if ((i+j) >= nreg) j = nreg - i; /* last block is less than 8 registers */ snprintf (query, sizeof (query) - 1, "avr.io_reg:%x,%x", i, j); - bufsiz = target_read_alloc (¤t_target, TARGET_OBJECT_AVR, - query, &buf); + buf = target_read_alloc (current_top_target (), TARGET_OBJECT_AVR, query); - p = (const char *) buf; - for (k = i; k < (i + j); k++) + if (!buf) + { + fprintf_unfiltered (gdb_stderr, + _("ERR: error reading avr.io_reg:%x,%x\n"), + i, j); + return; + } + + const char *p = (const char *) buf->data (); + for (int k = i; k < (i + j); k++) { if (sscanf (p, "%[^,],%x;", query, &val) == 2) { @@ -1611,8 +1612,6 @@ break; } } - - xfree (buf); } } diff -Nru gdb-8.1/gdb/ax_cxx_compile_stdcxx.m4 gdb-8.2/gdb/ax_cxx_compile_stdcxx.m4 --- gdb-8.1/gdb/ax_cxx_compile_stdcxx.m4 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/ax_cxx_compile_stdcxx.m4 2018-09-05 07:27:13.000000000 +0000 @@ -8,7 +8,7 @@ # - AC_SUBST CXX_DIALECT instead of changing CXX/CXXCPP. # # =========================================================================== -# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html +# https://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html # =========================================================================== # # SYNOPSIS @@ -42,21 +42,22 @@ # Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov # Copyright (c) 2015 Paul Norman # Copyright (c) 2015 Moritz Klammler +# Copyright (c) 2016 Krzesimir Nowak # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. -#serial 4 +#serial 8 dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro dnl (serial version number 13). AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl - m4_if([$1], [11], [], - [$1], [14], [], - [$1], [17], [m4_fatal([support for C++17 not yet implemented in AX_CXX_COMPILE_STDCXX])], + m4_if([$1], [11], [ax_cxx_compile_alternatives="11 0x"], + [$1], [14], [ax_cxx_compile_alternatives="14 1y"], + [$1], [17], [ax_cxx_compile_alternatives="17 1z"], [m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl m4_if([$2], [], [], [$2], [ext], [], @@ -80,7 +81,8 @@ m4_if([$2], [noext], [], [dnl if test x$ac_success = xno; then - for switch in -std=gnu++$1 -std=gnu++0x; do + for alternative in ${ax_cxx_compile_alternatives}; do + switch="-std=gnu++${alternative}" cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch]) AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, $cachevar, @@ -103,19 +105,24 @@ dnl HP's aCC needs +std=c++11 according to: dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf dnl Cray's crayCC needs "-h std=c++11" - for switch in -std=c++$1 -std=c++0x +std=c++$1 "-h std=c++$1"; do - cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch]) - AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, - $cachevar, - [ac_save_CXX="$CXX" - CXX="$CXX $switch" - AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], - [eval $cachevar=yes], - [eval $cachevar=no]) - CXX="$ac_save_CXX"]) - if eval test x\$$cachevar = xyes; then - CXX_DIALECT="$switch" - ac_success=yes + for alternative in ${ax_cxx_compile_alternatives}; do + for switch in -std=c++${alternative} +std=c++${alternative} "-h std=c++${alternative}"; do + cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch]) + AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, + $cachevar, + [ac_save_CXX="$CXX" + CXX="$CXX $switch" + AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], + [eval $cachevar=yes], + [eval $cachevar=no]) + CXX="$ac_save_CXX"]) + if eval test x\$$cachevar = xyes; then + CXX_DIALECT="$switch" + ac_success=yes + break + fi + done + if test x$ac_success = xyes; then break fi done @@ -153,6 +160,11 @@ _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 ) +m4_define([_AX_CXX_COMPILE_STDCXX_testbody_17], + _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 + _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 + _AX_CXX_COMPILE_STDCXX_testbody_new_in_17 +) dnl Tests for new features in C++11 @@ -523,7 +535,7 @@ } - namespace test_digit_seperators + namespace test_digit_separators { constexpr auto ten_million = 100'000'000; @@ -565,3 +577,409 @@ #endif // __cplusplus >= 201402L ]]) + + +dnl Tests for new features in C++17 + +m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_17], [[ + +// If the compiler admits that it is not ready for C++17, why torture it? +// Hopefully, this will speed up the test. + +#ifndef __cplusplus + +#error "This is not a C++ compiler" + +#elif __cplusplus <= 201402L + +#error "This is not a C++17 compiler" + +#else + +#if defined(__clang__) + #define REALLY_CLANG +#else + #if defined(__GNUC__) + #define REALLY_GCC + #endif +#endif + +#include +#include +#include + +namespace cxx17 +{ + +#if !defined(REALLY_CLANG) + namespace test_constexpr_lambdas + { + + // TODO: test it with clang++ from git + + constexpr int foo = [](){return 42;}(); + + } +#endif // !defined(REALLY_CLANG) + + namespace test::nested_namespace::definitions + { + + } + + namespace test_fold_expression + { + + template + int multiply(Args... args) + { + return (args * ... * 1); + } + + template + bool all(Args... args) + { + return (args && ...); + } + + } + + namespace test_extended_static_assert + { + + static_assert (true); + + } + + namespace test_auto_brace_init_list + { + + auto foo = {5}; + auto bar {5}; + + static_assert(std::is_same, decltype(foo)>::value); + static_assert(std::is_same::value); + } + + namespace test_typename_in_template_template_parameter + { + + template typename X> struct D; + + } + + namespace test_fallthrough_nodiscard_maybe_unused_attributes + { + + int f1() + { + return 42; + } + + [[nodiscard]] int f2() + { + [[maybe_unused]] auto unused = f1(); + + switch (f1()) + { + case 17: + f1(); + [[fallthrough]]; + case 42: + f1(); + } + return f1(); + } + + } + + namespace test_extended_aggregate_initialization + { + + struct base1 + { + int b1, b2 = 42; + }; + + struct base2 + { + base2() { + b3 = 42; + } + int b3; + }; + + struct derived : base1, base2 + { + int d; + }; + + derived d1 {{1, 2}, {}, 4}; // full initialization + derived d2 {{}, {}, 4}; // value-initialized bases + + } + + namespace test_general_range_based_for_loop + { + + struct iter + { + int i; + + int& operator* () + { + return i; + } + + const int& operator* () const + { + return i; + } + + iter& operator++() + { + ++i; + return *this; + } + }; + + struct sentinel + { + int i; + }; + + bool operator== (const iter& i, const sentinel& s) + { + return i.i == s.i; + } + + bool operator!= (const iter& i, const sentinel& s) + { + return !(i == s); + } + + struct range + { + iter begin() const + { + return {0}; + } + + sentinel end() const + { + return {5}; + } + }; + + void f() + { + range r {}; + + for (auto i : r) + { + [[maybe_unused]] auto v = i; + } + } + + } + + namespace test_lambda_capture_asterisk_this_by_value + { + + struct t + { + int i; + int foo() + { + return [*this]() + { + return i; + }(); + } + }; + + } + + namespace test_enum_class_construction + { + + enum class byte : unsigned char + {}; + + byte foo {42}; + + } + + namespace test_constexpr_if + { + + template + int f () + { + if constexpr(cond) + { + return 13; + } + else + { + return 42; + } + } + + } + + namespace test_selection_statement_with_initializer + { + + int f() + { + return 13; + } + + int f2() + { + if (auto i = f(); i > 0) + { + return 3; + } + + switch (auto i = f(); i + 4) + { + case 17: + return 2; + + default: + return 1; + } + } + + } + +#if !defined(REALLY_CLANG) + namespace test_template_argument_deduction_for_class_templates + { + + // TODO: test it with clang++ from git + + template + struct pair + { + pair (T1 p1, T2 p2) + : m1 {p1}, + m2 {p2} + {} + + T1 m1; + T2 m2; + }; + + void f() + { + [[maybe_unused]] auto p = pair{13, 42u}; + } + + } +#endif // !defined(REALLY_CLANG) + + namespace test_non_type_auto_template_parameters + { + + template + struct B + {}; + + B<5> b1; + B<'a'> b2; + + } + +#if !defined(REALLY_CLANG) + namespace test_structured_bindings + { + + // TODO: test it with clang++ from git + + int arr[2] = { 1, 2 }; + std::pair pr = { 1, 2 }; + + auto f1() -> int(&)[2] + { + return arr; + } + + auto f2() -> std::pair& + { + return pr; + } + + struct S + { + int x1 : 2; + volatile double y1; + }; + + S f3() + { + return {}; + } + + auto [ x1, y1 ] = f1(); + auto& [ xr1, yr1 ] = f1(); + auto [ x2, y2 ] = f2(); + auto& [ xr2, yr2 ] = f2(); + const auto [ x3, y3 ] = f3(); + + } +#endif // !defined(REALLY_CLANG) + +#if !defined(REALLY_CLANG) + namespace test_exception_spec_type_system + { + + // TODO: test it with clang++ from git + + struct Good {}; + struct Bad {}; + + void g1() noexcept; + void g2(); + + template + Bad + f(T*, T*); + + template + Good + f(T1*, T2*); + + static_assert (std::is_same_v); + + } +#endif // !defined(REALLY_CLANG) + + namespace test_inline_variables + { + + template void f(T) + {} + + template inline T g(T) + { + return T{}; + } + + template<> inline void f<>(int) + {} + + template<> int g<>(int) + { + return 5; + } + + } + +} // namespace cxx17 + +#endif // __cplusplus <= 201402L + +]]) diff -Nru gdb-8.1/gdb/ax-gdb.c gdb-8.2/gdb/ax-gdb.c --- gdb-8.1/gdb/ax-gdb.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/ax-gdb.c 2018-09-05 07:27:32.000000000 +0000 @@ -679,7 +679,7 @@ break; case LOC_BLOCK: - ax_const_l (ax, BLOCK_START (SYMBOL_BLOCK_VALUE (var))); + ax_const_l (ax, BLOCK_ENTRY_PC (SYMBOL_BLOCK_VALUE (var))); value->kind = axs_rvalue; break; @@ -1533,7 +1533,7 @@ if (!found) error (_("Couldn't find member named `%s' in struct/union/class `%s'"), - field, TYPE_TAG_NAME (type)); + field, TYPE_NAME (type)); } static int @@ -1629,7 +1629,7 @@ if (!found) error (_("No symbol \"%s\" in namespace \"%s\"."), - name, TYPE_TAG_NAME (curtype)); + name, TYPE_NAME (curtype)); return found; } @@ -1644,7 +1644,7 @@ gen_maybe_namespace_elt (struct agent_expr *ax, struct axs_value *value, const struct type *curtype, char *name) { - const char *namespace_name = TYPE_TAG_NAME (curtype); + const char *namespace_name = TYPE_NAME (curtype); struct block_symbol sym; sym = cp_lookup_symbol_namespace (namespace_name, name, diff -Nru gdb-8.1/gdb/bfd-target.c gdb-8.2/gdb/bfd-target.c --- gdb-8.1/gdb/bfd-target.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/bfd-target.c 2018-09-05 07:27:13.000000000 +0000 @@ -23,36 +23,59 @@ #include "exec.h" #include "gdb_bfd.h" -/* The object that is stored in the target_ops->to_data field has this - type. */ -struct target_bfd_data +/* A target that wraps a BFD. */ + +static const target_info target_bfd_target_info = { + "bfd", + N_("BFD backed target"), + N_("You should never see this") +}; + +class target_bfd : public target_ops { +public: + explicit target_bfd (struct bfd *bfd); + ~target_bfd () override; + + const target_info &info () const override + { return target_bfd_target_info; } + + void close () override; + + target_xfer_status + xfer_partial (target_object object, + const char *annex, gdb_byte *readbuf, + const gdb_byte *writebuf, + ULONGEST offset, ULONGEST len, + ULONGEST *xfered_len) override; + + target_section_table *get_section_table () override; + +private: /* The BFD we're wrapping. */ - struct bfd *bfd; + gdb_bfd_ref_ptr m_bfd; /* The section table build from the ALLOC sections in BFD. Note that we can't rely on extracting the BFD from a random section in the table, since the table can be legitimately empty. */ - struct target_section_table table; + struct target_section_table m_table; }; -static enum target_xfer_status -target_bfd_xfer_partial (struct target_ops *ops, - enum target_object object, - const char *annex, gdb_byte *readbuf, - const gdb_byte *writebuf, - ULONGEST offset, ULONGEST len, - ULONGEST *xfered_len) +target_xfer_status +target_bfd::xfer_partial (target_object object, + const char *annex, gdb_byte *readbuf, + const gdb_byte *writebuf, + ULONGEST offset, ULONGEST len, + ULONGEST *xfered_len) { switch (object) { case TARGET_OBJECT_MEMORY: { - struct target_bfd_data *data = (struct target_bfd_data *) ops->to_data; return section_table_xfer_memory_partial (readbuf, writebuf, offset, len, xfered_len, - data->table.sections, - data->table.sections_end, + m_table.sections, + m_table.sections_end, NULL); } default: @@ -60,44 +83,34 @@ } } -static struct target_section_table * -target_bfd_get_section_table (struct target_ops *ops) +target_section_table * +target_bfd::get_section_table () { - struct target_bfd_data *data = (struct target_bfd_data *) ops->to_data; - return &data->table; + return &m_table; } -static void -target_bfd_xclose (struct target_ops *t) +target_bfd::target_bfd (struct bfd *abfd) + : m_bfd (gdb_bfd_ref_ptr::new_reference (abfd)) { - struct target_bfd_data *data = (struct target_bfd_data *) t->to_data; + this->to_stratum = file_stratum; + m_table.sections = NULL; + m_table.sections_end = NULL; + build_section_table (abfd, &m_table.sections, &m_table.sections_end); +} - gdb_bfd_unref (data->bfd); - xfree (data->table.sections); - xfree (data); - xfree (t); +target_bfd::~target_bfd () +{ + xfree (m_table.sections); } -struct target_ops * +target_ops * target_bfd_reopen (struct bfd *abfd) { - struct target_ops *t; - struct target_bfd_data *data; - - data = XCNEW (struct target_bfd_data); - data->bfd = abfd; - gdb_bfd_ref (abfd); - build_section_table (abfd, &data->table.sections, &data->table.sections_end); - - t = XCNEW (struct target_ops); - t->to_shortname = "bfd"; - t->to_longname = _("BFD backed target"); - t->to_doc = _("You should never see this"); - t->to_get_section_table = target_bfd_get_section_table; - t->to_xfer_partial = target_bfd_xfer_partial; - t->to_xclose = target_bfd_xclose; - t->to_data = data; - t->to_magic = OPS_MAGIC; + return new target_bfd (abfd); +} - return t; +void +target_bfd::close () +{ + delete this; } diff -Nru gdb-8.1/gdb/bfin-linux-tdep.c gdb-8.2/gdb/bfin-linux-tdep.c --- gdb-8.1/gdb/bfin-linux-tdep.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/bfin-linux-tdep.c 2018-09-05 07:44:28.000000000 +0000 @@ -128,9 +128,9 @@ static LONGEST bfin_linux_get_syscall_number (struct gdbarch *gdbarch, - ptid_t ptid) + thread_info *thread) { - struct regcache *regcache = get_thread_regcache (ptid); + struct regcache *regcache = get_thread_regcache (thread); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); /* The content of a register. */ gdb_byte buf[4]; @@ -140,7 +140,7 @@ /* Getting the system call number from the register. When dealing with Blackfin architecture, this information is stored at %p0 register. */ - regcache_cooked_read (regcache, BFIN_P0_REGNUM, buf); + regcache->cooked_read (BFIN_P0_REGNUM, buf); ret = extract_signed_integer (buf, 4, byte_order); diff -Nru gdb-8.1/gdb/bfin-tdep.c gdb-8.2/gdb/bfin-tdep.c --- gdb-8.1/gdb/bfin-tdep.c 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/gdb/bfin-tdep.c 2018-09-05 07:44:28.000000000 +0000 @@ -647,7 +647,7 @@ while (len > 0) { - regcache_cooked_write (regs, regno++, valbuf); + regs->cooked_write (regno++, valbuf); len -= 4; valbuf += 4; } @@ -688,7 +688,7 @@ } static enum register_status -bfin_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache, +bfin_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache, int regnum, gdb_byte *buffer) { gdb_byte buf[BFIN_MAX_REGISTER_SIZE]; @@ -699,7 +699,7 @@ _("invalid register number %d"), regnum); /* Extract the CC bit from the ASTAT register. */ - status = regcache_raw_read (regcache, BFIN_ASTAT_REGNUM, buf); + status = regcache->raw_read (BFIN_ASTAT_REGNUM, buf); if (status == REG_VALID) { buffer[1] = buffer[2] = buffer[3] = 0; @@ -719,9 +719,9 @@ _("invalid register number %d"), regnum); /* Overlay the CC bit in the ASTAT register. */ - regcache_raw_read (regcache, BFIN_ASTAT_REGNUM, buf); + regcache->raw_read (BFIN_ASTAT_REGNUM, buf); buf[0] = (buf[0] & ~ASTAT_CC) | ((buffer[0] & 1) << ASTAT_CC_POS); - regcache_raw_write (regcache, BFIN_ASTAT_REGNUM, buf); + regcache->raw_write (BFIN_ASTAT_REGNUM, buf); } static CORE_ADDR diff -Nru gdb-8.1/gdb/block.c gdb-8.2/gdb/block.c --- gdb-8.1/gdb/block.c 2018-01-12 03:09:26.000000000 +0000 +++ gdb-8.2/gdb/block.c 2018-09-05 07:27:32.000000000 +0000 @@ -31,10 +31,10 @@ C++ files, namely using declarations and the current namespace in scope. */ -struct block_namespace_info +struct block_namespace_info : public allocate_on_obstack { - const char *scope; - struct using_direct *using_decl; + const char *scope = nullptr; + struct using_direct *using_decl = nullptr; }; static void block_initialize_namespace (struct block *block, @@ -350,11 +350,7 @@ block_initialize_namespace (struct block *block, struct obstack *obstack) { if (BLOCK_NAMESPACE (block) == NULL) - { - BLOCK_NAMESPACE (block) = XOBNEW (obstack, struct block_namespace_info); - BLOCK_NAMESPACE (block)->scope = NULL; - BLOCK_NAMESPACE (block)->using_decl = NULL; - } + BLOCK_NAMESPACE (block) = new (obstack) struct block_namespace_info (); } /* Return the static block associated to BLOCK. Return NULL if block @@ -811,3 +807,24 @@ *best = sym; return 0; } + +/* See block.h. */ + +struct blockranges * +make_blockranges (struct objfile *objfile, + const std::vector &rangevec) +{ + struct blockranges *blr; + size_t n = rangevec.size(); + + blr = (struct blockranges *) + obstack_alloc (&objfile->objfile_obstack, + sizeof (struct blockranges) + + (n - 1) * sizeof (struct blockrange)); + + blr->nranges = n; + for (int i = 0; i < n; i++) + blr->range[i] = rangevec[i]; + return blr; +} + diff -Nru gdb-8.1/gdb/blockframe.c gdb-8.2/gdb/blockframe.c --- gdb-8.1/gdb/blockframe.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/blockframe.c 2018-09-05 07:27:32.000000000 +0000 @@ -96,7 +96,7 @@ if (symbol) { bl = SYMBOL_BLOCK_VALUE (symbol); - return BLOCK_START (bl); + return BLOCK_ENTRY_PC (bl); } } @@ -152,14 +152,48 @@ return find_pc_sect_function (pc, find_pc_mapped_section (pc)); } -/* These variables are used to cache the most recent result - of find_pc_partial_function. */ +/* See symtab.h. */ + +struct symbol * +find_pc_sect_containing_function (CORE_ADDR pc, struct obj_section *section) +{ + const block *bl = block_for_pc_sect (pc, section); + + if (bl == nullptr) + return nullptr; + + return block_containing_function (bl); +} + +/* These variables are used to cache the most recent result of + find_pc_partial_function. + + The addresses cache_pc_function_low and cache_pc_function_high + record the range in which PC was found during the most recent + successful lookup. When the function occupies a single contiguous + address range, these values correspond to the low and high + addresses of the function. (The high address is actually one byte + beyond the last byte of the function.) For a function with more + than one (non-contiguous) range, the range in which PC was found is + used to set the cache bounds. + + When determining whether or not these cached values apply to a + particular PC value, PC must be within the range specified by + cache_pc_function_low and cache_pc_function_high. In addition to + PC being in that range, cache_pc_section must also match PC's + section. See find_pc_partial_function() for details on both the + comparison as well as how PC's section is determined. + + The other values aren't used for determining whether the cache + applies, but are used for setting the outputs from + find_pc_partial_function. cache_pc_function_low and + cache_pc_function_high are used to set outputs as well. */ static CORE_ADDR cache_pc_function_low = 0; static CORE_ADDR cache_pc_function_high = 0; static const char *cache_pc_function_name = 0; static struct obj_section *cache_pc_function_section = NULL; -static int cache_pc_function_is_gnu_ifunc = 0; +static const struct block *cache_pc_function_block = nullptr; /* Clear cache, e.g. when symbol table is discarded. */ @@ -170,27 +204,14 @@ cache_pc_function_high = 0; cache_pc_function_name = (char *) 0; cache_pc_function_section = NULL; - cache_pc_function_is_gnu_ifunc = 0; + cache_pc_function_block = nullptr; } -/* Finds the "function" (text symbol) that is smaller than PC but - greatest of all of the potential text symbols in SECTION. Sets - *NAME and/or *ADDRESS conditionally if that pointer is non-null. - If ENDADDR is non-null, then set *ENDADDR to be the end of the - function (exclusive), but passing ENDADDR as non-null means that - the function might cause symbols to be read. If IS_GNU_IFUNC_P is provided - *IS_GNU_IFUNC_P is set to 1 on return if the function is STT_GNU_IFUNC. - This function either succeeds or fails (not halfway succeeds). If it - succeeds, it sets *NAME, *ADDRESS, and *ENDADDR to real information and - returns 1. If it fails, it sets *NAME, *ADDRESS, *ENDADDR and - *IS_GNU_IFUNC_P to zero and returns 0. */ - -/* Backward compatibility, no section argument. */ +/* See symtab.h. */ int -find_pc_partial_function_gnu_ifunc (CORE_ADDR pc, const char **name, - CORE_ADDR *address, CORE_ADDR *endaddr, - int *is_gnu_ifunc_p) +find_pc_partial_function (CORE_ADDR pc, const char **name, CORE_ADDR *address, + CORE_ADDR *endaddr, const struct block **block) { struct obj_section *section; struct symbol *f; @@ -232,18 +253,62 @@ if (compunit_symtab != NULL) { /* Checking whether the msymbol has a larger value is for the - "pathological" case mentioned in print_frame_info. */ + "pathological" case mentioned in stack.c:find_frame_funname. + + We use BLOCK_ENTRY_PC instead of BLOCK_START_PC for this + comparison because the minimal symbol should refer to the + function's entry pc which is not necessarily the lowest + address of the function. This will happen when the function + has more than one range and the entry pc is not within the + lowest range of addresses. */ f = find_pc_sect_function (mapped_pc, section); if (f != NULL && (msymbol.minsym == NULL - || (BLOCK_START (SYMBOL_BLOCK_VALUE (f)) + || (BLOCK_ENTRY_PC (SYMBOL_BLOCK_VALUE (f)) >= BMSYMBOL_VALUE_ADDRESS (msymbol)))) { - cache_pc_function_low = BLOCK_START (SYMBOL_BLOCK_VALUE (f)); - cache_pc_function_high = BLOCK_END (SYMBOL_BLOCK_VALUE (f)); + const struct block *b = SYMBOL_BLOCK_VALUE (f); + cache_pc_function_name = SYMBOL_LINKAGE_NAME (f); cache_pc_function_section = section; - cache_pc_function_is_gnu_ifunc = TYPE_GNU_IFUNC (SYMBOL_TYPE (f)); + cache_pc_function_block = b; + + /* For blocks occupying contiguous addresses (i.e. no gaps), + the low and high cache addresses are simply the start + and end of the block. + + For blocks with non-contiguous ranges, we have to search + for the range containing mapped_pc and then use the start + and end of that range. + + This causes the returned *ADDRESS and *ENDADDR values to + be limited to the range in which mapped_pc is found. See + comment preceding declaration of find_pc_partial_function + in symtab.h for more information. */ + + if (BLOCK_CONTIGUOUS_P (b)) + { + cache_pc_function_low = BLOCK_START (b); + cache_pc_function_high = BLOCK_END (b); + } + else + { + int i; + for (i = 0; i < BLOCK_NRANGES (b); i++) + { + if (BLOCK_RANGE_START (b, i) <= mapped_pc + && mapped_pc < BLOCK_RANGE_END (b, i)) + { + cache_pc_function_low = BLOCK_RANGE_START (b, i); + cache_pc_function_high = BLOCK_RANGE_END (b, i); + break; + } + } + /* Above loop should exit via the break. */ + gdb_assert (i < BLOCK_NRANGES (b)); + } + + goto return_cached_value; } } @@ -266,17 +331,14 @@ *address = 0; if (endaddr != NULL) *endaddr = 0; - if (is_gnu_ifunc_p != NULL) - *is_gnu_ifunc_p = 0; return 0; } cache_pc_function_low = BMSYMBOL_VALUE_ADDRESS (msymbol); cache_pc_function_name = MSYMBOL_LINKAGE_NAME (msymbol.minsym); cache_pc_function_section = section; - cache_pc_function_is_gnu_ifunc = (MSYMBOL_TYPE (msymbol.minsym) - == mst_text_gnu_ifunc); cache_pc_function_high = minimal_symbol_upper_bound (msymbol); + cache_pc_function_block = nullptr; return_cached_value: @@ -307,20 +369,86 @@ *endaddr = cache_pc_function_high; } - if (is_gnu_ifunc_p) - *is_gnu_ifunc_p = cache_pc_function_is_gnu_ifunc; + if (block != nullptr) + *block = cache_pc_function_block; return 1; } -/* See find_pc_partial_function_gnu_ifunc, only the IS_GNU_IFUNC_P parameter - is omitted here for backward API compatibility. */ +/* See symtab.h. */ -int -find_pc_partial_function (CORE_ADDR pc, const char **name, CORE_ADDR *address, - CORE_ADDR *endaddr) +bool +find_function_entry_range_from_pc (CORE_ADDR pc, const char **name, + CORE_ADDR *address, CORE_ADDR *endaddr) { - return find_pc_partial_function_gnu_ifunc (pc, name, address, endaddr, NULL); + const struct block *block; + bool status = find_pc_partial_function (pc, name, address, endaddr, &block); + + if (status && block != nullptr && !BLOCK_CONTIGUOUS_P (block)) + { + CORE_ADDR entry_pc = BLOCK_ENTRY_PC (block); + + for (int i = 0; i < BLOCK_NRANGES (block); i++) + { + if (BLOCK_RANGE_START (block, i) <= entry_pc + && entry_pc < BLOCK_RANGE_END (block, i)) + { + if (address != nullptr) + *address = BLOCK_RANGE_START (block, i); + + if (endaddr != nullptr) + *endaddr = BLOCK_RANGE_END (block, i); + + return status; + } + } + + /* It's an internal error if we exit the above loop without finding + the range. */ + internal_error (__FILE__, __LINE__, + _("Entry block not found in find_function_entry_range_from_pc")); + } + + return status; +} + +/* See symtab.h. */ + +struct type * +find_function_type (CORE_ADDR pc) +{ + struct symbol *sym = find_pc_function (pc); + + if (sym != NULL && BLOCK_ENTRY_PC (SYMBOL_BLOCK_VALUE (sym)) == pc) + return SYMBOL_TYPE (sym); + + return NULL; +} + +/* See symtab.h. */ + +struct type * +find_gnu_ifunc_target_type (CORE_ADDR resolver_funaddr) +{ + struct type *resolver_type = find_function_type (resolver_funaddr); + if (resolver_type != NULL) + { + /* Get the return type of the resolver. */ + struct type *resolver_ret_type + = check_typedef (TYPE_TARGET_TYPE (resolver_type)); + + /* If we found a pointer to function, then the resolved type + is the type of the pointed-to function. */ + if (TYPE_CODE (resolver_ret_type) == TYPE_CODE_PTR) + { + struct type *resolved_type + = TYPE_TARGET_TYPE (resolver_ret_type); + if (TYPE_CODE (check_typedef (resolved_type)) == TYPE_CODE_FUNC) + return resolved_type; + } + } + + return NULL; } /* Return the innermost stack frame that is executing inside of BLOCK and is diff -Nru gdb-8.1/gdb/block.h gdb-8.2/gdb/block.h --- gdb-8.1/gdb/block.h 2018-01-12 03:09:26.000000000 +0000 +++ gdb-8.2/gdb/block.h 2018-09-05 07:27:32.000000000 +0000 @@ -31,6 +31,37 @@ struct obstack; struct addrmap; +/* Blocks can occupy non-contiguous address ranges. When this occurs, + startaddr and endaddr within struct block (still) specify the lowest + and highest addresses of all ranges, but each individual range is + specified by the addresses in struct blockrange. */ + +struct blockrange +{ + blockrange (CORE_ADDR startaddr_, CORE_ADDR endaddr_) + : startaddr (startaddr_), + endaddr (endaddr_) + { + } + + /* Lowest address in this range. */ + + CORE_ADDR startaddr; + + /* One past the highest address in the range. */ + + CORE_ADDR endaddr; +}; + +/* Two or more non-contiguous ranges in the same order as that provided + via the debug info. */ + +struct blockranges +{ + int nranges; + struct blockrange range[1]; +}; + /* All of the name-scope contours of the program are represented by `struct block' objects. All of these objects are pointed to by the blockvector. @@ -86,6 +117,12 @@ using directives and the current namespace scope. */ struct block_namespace_info *namespace_info; + + /* Address ranges for blocks with non-contiguous ranges. If this + is NULL, then there is only one range which is specified by + startaddr and endaddr above. */ + + struct blockranges *ranges; }; /* The global block is singled out so that we can provide a back-link @@ -109,6 +146,49 @@ #define BLOCK_DICT(bl) (bl)->dict #define BLOCK_NAMESPACE(bl) (bl)->namespace_info +/* Accessor for ranges field within block BL. */ + +#define BLOCK_RANGES(bl) (bl)->ranges + +/* Number of ranges within a block. */ + +#define BLOCK_NRANGES(bl) (bl)->ranges->nranges + +/* Access range array for block BL. */ + +#define BLOCK_RANGE(bl) (bl)->ranges->range + +/* Are all addresses within a block contiguous? */ + +#define BLOCK_CONTIGUOUS_P(bl) (BLOCK_RANGES (bl) == nullptr \ + || BLOCK_NRANGES (bl) <= 1) + +/* Obtain the start address of the Nth range for block BL. */ + +#define BLOCK_RANGE_START(bl,n) (BLOCK_RANGE (bl)[n].startaddr) + +/* Obtain the end address of the Nth range for block BL. */ + +#define BLOCK_RANGE_END(bl,n) (BLOCK_RANGE (bl)[n].endaddr) + +/* Define the "entry pc" for a block BL to be the lowest (start) address + for the block when all addresses within the block are contiguous. If + non-contiguous, then use the start address for the first range in the + block. + + At the moment, this almost matches what DWARF specifies as the entry + pc. (The missing bit is support for DW_AT_entry_pc which should be + preferred over range data and the low_pc.) + + Once support for DW_AT_entry_pc is added, I expect that an entry_pc + field will be added to one of these data structures. Once that's done, + the entry_pc field can be set from the dwarf reader (and other readers + too). BLOCK_ENTRY_PC can then be redefined to be less DWARF-centric. */ + +#define BLOCK_ENTRY_PC(bl) (BLOCK_CONTIGUOUS_P (bl) \ + ? BLOCK_START (bl) \ + : BLOCK_RANGE_START (bl,0)) + struct blockvector { /* Number of blocks in the list. */ @@ -322,4 +402,9 @@ (sym) != NULL; \ (sym) = block_iter_match_next ((name), &(iter))) +/* Given a vector of pairs, allocate and build an obstack allocated + blockranges struct for a block. */ +struct blockranges *make_blockranges (struct objfile *objfile, + const std::vector &rangevec); + #endif /* BLOCK_H */ diff -Nru gdb-8.1/gdb/break-catch-syscall.c gdb-8.2/gdb/break-catch-syscall.c --- gdb-8.1/gdb/break-catch-syscall.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/break-catch-syscall.c 2018-09-05 07:27:13.000000000 +0000 @@ -27,7 +27,7 @@ #include "mi/mi-common.h" #include "valprint.h" #include "arch-utils.h" -#include "observer.h" +#include "observable.h" #include "xml-syscall.h" /* An instance of this type is used to represent a syscall catchpoint. @@ -110,7 +110,7 @@ } } - return target_set_syscall_catchpoint (ptid_get_pid (inferior_ptid), + return target_set_syscall_catchpoint (inferior_ptid.pid (), inf_data->total_syscalls_count != 0, inf_data->any_syscall_count, inf_data->syscalls_counts); @@ -141,7 +141,7 @@ } } - return target_set_syscall_catchpoint (ptid_get_pid (inferior_ptid), + return target_set_syscall_catchpoint (inferior_ptid.pid (), inf_data->total_syscalls_count != 0, inf_data->any_syscall_count, inf_data->syscalls_counts); @@ -632,7 +632,7 @@ { initialize_syscall_catchpoint_ops (); - observer_attach_inferior_exit (clear_syscall_counts); + gdb::observers::inferior_exit.attach (clear_syscall_counts); catch_syscall_inferior_data = register_inferior_data_with_cleanup (NULL, catch_syscall_inferior_data_cleanup); diff -Nru gdb-8.1/gdb/break-catch-throw.c gdb-8.2/gdb/break-catch-throw.c --- gdb-8.1/gdb/break-catch-throw.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/break-catch-throw.c 2018-09-05 07:27:13.000000000 +0000 @@ -238,8 +238,7 @@ bp_temp = b->disposition == disp_del; uiout->text (bp_temp ? "Temporary catchpoint " : "Catchpoint "); - if (!uiout->is_mi_like_p ()) - uiout->field_int ("bkptno", b->number); + uiout->field_int ("bkptno", b->number); uiout->text ((kind == EX_EVENT_THROW ? " (exception thrown), " : (kind == EX_EVENT_CATCH ? " (exception caught), " : " (exception rethrown), "))); @@ -248,7 +247,6 @@ uiout->field_string ("reason", async_reason_lookup (EXEC_ASYNC_BREAKPOINT_HIT)); uiout->field_string ("disp", bpdisp_text (b->disposition)); - uiout->field_int ("bkptno", b->number); } return PRINT_SRC_AND_LOC; } diff -Nru gdb-8.1/gdb/breakpoint.c gdb-8.2/gdb/breakpoint.c --- gdb-8.1/gdb/breakpoint.c 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/gdb/breakpoint.c 2018-09-05 07:44:28.000000000 +0000 @@ -49,7 +49,7 @@ #include "block.h" #include "solib.h" #include "solist.h" -#include "observer.h" +#include "observable.h" #include "memattr.h" #include "ada-lang.h" #include "top.h" @@ -117,7 +117,8 @@ (struct breakpoint *b, const struct event_location *location, struct program_space *search_pspace); -static int can_use_hardware_watchpoint (struct value *); +static int can_use_hardware_watchpoint + (const std::vector &vals); static void mention (struct breakpoint *); @@ -879,12 +880,12 @@ { struct watchpoint *w = (struct watchpoint *) b; - innermost_block = NULL; + innermost_block.reset (); arg = exp; w->cond_exp = parse_exp_1 (&arg, 0, 0, 0); if (*arg) error (_("Junk at end of expression")); - w->cond_exp_valid_block = innermost_block; + w->cond_exp_valid_block = innermost_block.block (); } else { @@ -903,7 +904,7 @@ } mark_breakpoint_modified (b); - observer_notify_breakpoint_modified (b); + gdb::observers::breakpoint_modified.notify (b); } /* Completion for the "condition" command. */ @@ -1014,8 +1015,8 @@ error (_("The 'while-stepping' command can " "only be used for tracepoints")); - for (i = 0; i < c->body_count; ++i) - check_no_tracepoint_commands ((c->body_list)[i]); + check_no_tracepoint_commands (c->body_list_0.get ()); + check_no_tracepoint_commands (c->body_list_1.get ()); /* Not that command parsing removes leading whitespace and comment lines and also empty lines. So, we only need to check for @@ -1126,8 +1127,8 @@ { struct command_line *c2; - gdb_assert (while_stepping->body_count == 1); - c2 = while_stepping->body_list[0]; + gdb_assert (while_stepping->body_list_1 == nullptr); + c2 = while_stepping->body_list_0.get (); for (; c2; c2 = c2->next) { if (c2->control_type == while_stepping_control) @@ -1144,11 +1145,11 @@ /* Return a vector of all the static tracepoints set at ADDR. The caller is responsible for releasing the vector. */ -VEC(breakpoint_p) * +std::vector static_tracepoints_here (CORE_ADDR addr) { struct breakpoint *b; - VEC(breakpoint_p) *found = 0; + std::vector found; struct bp_location *loc; ALL_BREAKPOINTS (b) @@ -1156,7 +1157,7 @@ { for (loc = b->loc; loc; loc = loc->next) if (loc->address == addr) - VEC_safe_push(breakpoint_p, found, b); + found.push_back (b); } return found; @@ -1167,12 +1168,12 @@ void breakpoint_set_commands (struct breakpoint *b, - command_line_up &&commands) + counted_command_line &&commands) { validate_commands_for_breakpoint (b, commands.get ()); b->commands = std::move (commands); - observer_notify_breakpoint_modified (b); + gdb::observers::breakpoint_modified.notify (b); } /* Set the internal `silent' flag on the breakpoint. Note that this @@ -1186,7 +1187,7 @@ b->silent = silent; if (old_silent != silent) - observer_notify_breakpoint_modified (b); + gdb::observers::breakpoint_modified.notify (b); } /* Set the thread for this breakpoint. If THREAD is -1, make the @@ -1199,7 +1200,7 @@ b->thread = thread; if (old_thread != thread) - observer_notify_breakpoint_modified (b); + gdb::observers::breakpoint_modified.notify (b); } /* Set the task for this breakpoint. If TASK is 0, make the @@ -1212,15 +1213,7 @@ b->task = task; if (old_task != task) - observer_notify_breakpoint_modified (b); -} - -void -check_tracepoint_command (char *line, void *closure) -{ - struct breakpoint *b = (struct breakpoint *) closure; - - validate_actionline (line, b); + gdb::observers::breakpoint_modified.notify (b); } static void @@ -1228,6 +1221,10 @@ struct command_line *control) { counted_command_line cmd; + /* cmd_read will be true once we have read cmd. Note that cmd might still be + NULL after the call to read_command_lines if the user provides an empty + list of command by just typing "end". */ + bool cmd_read = false; std::string new_arg; @@ -1244,10 +1241,11 @@ map_breakpoint_numbers (arg, [&] (breakpoint *b) { - if (cmd == NULL) + if (!cmd_read) { + gdb_assert (cmd == NULL); if (control != NULL) - cmd = copy_command_lines (control->body_list[0]); + cmd = control->body_list_0; else { std::string str @@ -1255,12 +1253,17 @@ "%s, one per line."), arg); - cmd = read_command_lines (&str[0], - from_tty, 1, - (is_tracepoint (b) - ? check_tracepoint_command : 0), - b); + auto do_validate = [=] (const char *line) + { + validate_actionline (line, b); + }; + gdb::function_view validator; + if (is_tracepoint (b)) + validator = do_validate; + + cmd = read_command_lines (str.c_str (), from_tty, 1, validator); } + cmd_read = true; } /* If a breakpoint was on the list more than once, we don't need to @@ -1269,7 +1272,7 @@ { validate_commands_for_breakpoint (b, cmd.get ()); b->commands = cmd; - observer_notify_breakpoint_modified (b); + gdb::observers::breakpoint_modified.notify (b); } }); } @@ -1549,9 +1552,9 @@ watchpoint_in_thread_scope (struct watchpoint *b) { return (b->pspace == current_program_space - && (ptid_equal (b->watchpoint_thread, null_ptid) - || (ptid_equal (inferior_ptid, b->watchpoint_thread) - && !is_executing (inferior_ptid)))); + && (b->watchpoint_thread == null_ptid + || (inferior_ptid == b->watchpoint_thread + && !inferior_thread ()->executing))); } /* Set watchpoint B to disp_del_at_next_stop, even including its possible @@ -1740,7 +1743,6 @@ no longer relevant. We don't want to report a watchpoint hit to the user when the old value and the new value may actually be completely different objects. */ - value_free (b->val); b->val = NULL; b->val_valid = 0; @@ -1778,7 +1780,8 @@ else if (within_current_scope && b->exp) { int pc = 0; - struct value *val_chain, *v, *result, *next; + std::vector val_chain; + struct value *v, *result, *next; struct program_space *frame_pspace; fetch_subexp_value (b->exp.get (), &pc, &v, &result, &val_chain, 0); @@ -1792,27 +1795,26 @@ if (!b->val_valid && !is_masked_watchpoint (b)) { if (b->val_bitsize != 0) - { - v = extract_bitfield_from_watchpoint_value (b, v); - if (v != NULL) - release_value (v); - } - b->val = v; + v = extract_bitfield_from_watchpoint_value (b, v); + b->val = release_value (v); b->val_valid = 1; } frame_pspace = get_frame_program_space (get_selected_frame (NULL)); /* Look at each value on the value chain. */ - for (v = val_chain; v; v = value_next (v)) + gdb_assert (!val_chain.empty ()); + for (const value_ref_ptr &iter : val_chain) { + v = iter.get (); + /* If it's a memory location, and GDB actually needed its contents to evaluate the expression, then we must watch it. If the first value returned is still lazy, that means an error occurred reading it; watch it anyway in case it becomes readable. */ if (VALUE_LVAL (v) == lval_memory - && (v == val_chain || ! value_lazy (v))) + && (v == val_chain[0] || ! value_lazy (v))) { struct type *vtype = check_typedef (value_type (v)); @@ -1967,13 +1969,6 @@ bl->loc_type = loc_type; } - for (v = val_chain; v; v = next) - { - next = value_next (v); - if (v != b->val) - value_free (v); - } - /* If a software watchpoint is not watching any memory, then the above left it without any location set up. But, bpstat_stop_status requires a location to be able to report @@ -2419,7 +2414,7 @@ struct thread_info *thr = find_thread_global_id (bl->owner->thread); struct regcache *regcache; - regcache = get_thread_regcache (thr->ptid); + regcache = get_thread_regcache (thr); return gdbarch_breakpoint_kind_from_current_state (bl->gdbarch, regcache, addr); @@ -2655,7 +2650,7 @@ { /* See also: disable_breakpoints_in_shlibs. */ bl->shlib_disabled = 1; - observer_notify_breakpoint_modified (bl->owner); + gdb::observers::breakpoint_modified.notify (bl->owner); if (!*disabled_breaks) { fprintf_unfiltered (tmp_error_stream, @@ -2915,7 +2910,7 @@ if we aren't attached to any process yet, we should still insert breakpoints. */ if (!gdbarch_has_global_breakpoints (target_gdbarch ()) - && ptid_equal (inferior_ptid, null_ptid)) + && inferior_ptid == null_ptid) continue; val = insert_bp_location (bl, &tmp_error_stream, &disabled_breaks, @@ -2971,7 +2966,7 @@ if we aren't attached to any process yet, we should still insert breakpoints. */ if (!gdbarch_has_global_breakpoints (target_gdbarch ()) - && ptid_equal (inferior_ptid, null_ptid)) + && inferior_ptid == null_ptid) continue; val = insert_bp_location (bl, &tmp_error_stream, &disabled_breaks, @@ -3072,14 +3067,13 @@ } } -/* Remove breakpoints of process PID. */ +/* Remove breakpoints of inferior INF. */ int -remove_breakpoints_pid (int pid) +remove_breakpoints_inf (inferior *inf) { struct bp_location *bl, **blp_tmp; int val; - struct inferior *inf = find_inferior_pid (pid); ALL_BP_LOCATIONS (bl, blp_tmp) { @@ -3501,7 +3495,7 @@ addr = BMSYMBOL_VALUE_ADDRESS (bp_objfile_data->exception_msym); addr = gdbarch_convert_from_func_ptr_addr (gdbarch, addr, - ¤t_target); + current_top_target ()); b = create_internal_breakpoint (gdbarch, addr, bp_exception_master, &internal_breakpoint_ops); initialize_explicit_location (&explicit_loc); @@ -3649,7 +3643,7 @@ scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid); struct inferior *inf = current_inferior (); - if (ptid_get_pid (ptid) == ptid_get_pid (inferior_ptid)) + if (ptid.pid () == inferior_ptid.pid ()) error (_("Cannot detach breakpoints of inferior_ptid")); /* Set inferior_ptid; remove_breakpoint_1 uses this global. */ @@ -3951,9 +3945,7 @@ { /* Reset val field to force reread of starting value in insert_breakpoints. */ - if (w->val) - value_free (w->val); - w->val = NULL; + w->val.reset (nullptr); w->val_valid = 0; } } @@ -4199,8 +4191,6 @@ bpstats::~bpstats () { - if (old_val != NULL) - value_free (old_val); if (bp_location_at != NULL) decref_bp_location (&bp_location_at); } @@ -4231,16 +4221,12 @@ bp_location_at (other.bp_location_at), breakpoint_at (other.breakpoint_at), commands (other.commands), - old_val (other.old_val), print (other.print), stop (other.stop), print_it (other.print_it) { - if (old_val != NULL) - { - old_val = value_copy (old_val); - release_value (old_val); - } + if (other.old_val != NULL) + old_val = release_value (value_copy (other.old_val.get ())); incref_bp_location (bp_location_at); } @@ -4348,25 +4334,16 @@ void bpstat_clear_actions (void) { - struct thread_info *tp; bpstat bs; - if (ptid_equal (inferior_ptid, null_ptid)) - return; - - tp = find_thread_ptid (inferior_ptid); - if (tp == NULL) + if (inferior_ptid == null_ptid) return; + thread_info *tp = inferior_thread (); for (bs = tp->control.stop_bpstat; bs != NULL; bs = bs->next) { bs->commands = NULL; - - if (bs->old_val != NULL) - { - value_free (bs->old_val); - bs->old_val = NULL; - } + bs->old_val.reset (nullptr); } } @@ -4375,7 +4352,7 @@ static void breakpoint_about_to_proceed (void) { - if (!ptid_equal (inferior_ptid, null_ptid)) + if (inferior_ptid != null_ptid) { struct thread_info *tp = inferior_thread (); @@ -4490,22 +4467,37 @@ return again; } +/* Helper for bpstat_do_actions. Get the current thread, if there's + one, is alive and has execution. Return NULL otherwise. */ + +static thread_info * +get_bpstat_thread () +{ + if (inferior_ptid == null_ptid || !target_has_execution) + return NULL; + + thread_info *tp = inferior_thread (); + if (tp->state == THREAD_EXITED || tp->executing) + return NULL; + return tp; +} + void bpstat_do_actions (void) { struct cleanup *cleanup_if_error = make_bpstat_clear_actions_cleanup (); + thread_info *tp; /* Do any commands attached to breakpoint we are stopped at. */ - while (!ptid_equal (inferior_ptid, null_ptid) - && target_has_execution - && !is_exited (inferior_ptid) - && !is_executing (inferior_ptid)) - /* Since in sync mode, bpstat_do_actions may resume the inferior, - and only return when it is stopped at the next breakpoint, we - keep doing breakpoint actions until it returns false to - indicate the inferior was not resumed. */ - if (!bpstat_do_actions_1 (&inferior_thread ()->control.stop_bpstat)) - break; + while ((tp = get_bpstat_thread ()) != NULL) + { + /* Since in sync mode, bpstat_do_actions may resume the + inferior, and only return when it is stopped at the next + breakpoint, we keep doing breakpoint actions until it returns + false to indicate the inferior was not resumed. */ + if (!bpstat_do_actions_1 (&tp->control.stop_bpstat)) + break; + } discard_cleanups (cleanup_if_error); } @@ -4604,10 +4596,8 @@ static void print_solib_event (int is_catchpoint) { - int any_deleted - = !VEC_empty (char_ptr, current_program_space->deleted_solibs); - int any_added - = !VEC_empty (so_list_ptr, current_program_space->added_solibs); + bool any_deleted = !current_program_space->deleted_solibs.empty (); + bool any_added = !current_program_space->added_solibs.empty (); if (!is_catchpoint) { @@ -4624,16 +4614,12 @@ if (any_deleted) { - char *name; - int ix; - current_uiout->text (_(" Inferior unloaded ")); ui_out_emit_list list_emitter (current_uiout, "removed"); - for (ix = 0; - VEC_iterate (char_ptr, current_program_space->deleted_solibs, - ix, name); - ++ix) + for (int ix = 0; ix < current_program_space->deleted_solibs.size (); ix++) { + const std::string &name = current_program_space->deleted_solibs[ix]; + if (ix > 0) current_uiout->text (" "); current_uiout->field_string ("library", name); @@ -4643,18 +4629,14 @@ if (any_added) { - struct so_list *iter; - int ix; - current_uiout->text (_(" Inferior loaded ")); ui_out_emit_list list_emitter (current_uiout, "added"); - for (ix = 0; - VEC_iterate (so_list_ptr, current_program_space->added_solibs, - ix, iter); - ++ix) + bool first = true; + for (so_list *iter : current_program_space->added_solibs) { - if (ix > 0) + if (!first) current_uiout->text (" "); + first = false; current_uiout->field_string ("library", iter->so_name); current_uiout->text ("\n"); } @@ -4733,7 +4715,6 @@ bp_location_at (bl), breakpoint_at (bl->owner), commands (NULL), - old_val (NULL), print (0), stop (0), print_it (print_it_normal) @@ -4748,7 +4729,6 @@ bp_location_at (NULL), breakpoint_at (NULL), commands (NULL), - old_val (NULL), print (0), stop (0), print_it (print_it_normal) @@ -4761,7 +4741,7 @@ int watchpoints_triggered (struct target_waitstatus *ws) { - int stopped_by_watchpoint = target_stopped_by_watchpoint (); + bool stopped_by_watchpoint = target_stopped_by_watchpoint (); CORE_ADDR addr; struct breakpoint *b; @@ -4780,7 +4760,7 @@ return 0; } - if (!target_stopped_data_address (¤t_target, &addr)) + if (!target_stopped_data_address (current_top_target (), &addr)) { /* We were stopped by a watchpoint, but we don't know where. Mark all watchpoints as unknown. */ @@ -4820,7 +4800,7 @@ } } /* Exact match not required. Within range is sufficient. */ - else if (target_watchpoint_addr_within_range (¤t_target, + else if (target_watchpoint_addr_within_range (current_top_target (), addr, loc->address, loc->length)) { @@ -4943,16 +4923,14 @@ the address of the array instead of its contents. This is not what we want. */ if ((b->val != NULL) != (new_val != NULL) - || (b->val != NULL && !value_equal_contents (b->val, new_val))) + || (b->val != NULL && !value_equal_contents (b->val.get (), + new_val))) { - if (new_val != NULL) - { - release_value (new_val); - value_free_to_mark (mark); - } bs->old_val = b->val; - b->val = new_val; + b->val = release_value (new_val); b->val_valid = 1; + if (new_val != NULL) + value_free_to_mark (mark); return WP_VALUE_CHANGED; } else @@ -5192,7 +5170,7 @@ breakpoint, set BS->stop to 0. */ static void -bpstat_check_breakpoint_conditions (bpstat bs, ptid_t ptid) +bpstat_check_breakpoint_conditions (bpstat bs, thread_info *thread) { const struct bp_location *bl; struct breakpoint *b; @@ -5222,9 +5200,8 @@ /* If this is a thread/task-specific breakpoint, don't waste cpu evaluating the condition if this isn't the specified thread/task. */ - if ((b->thread != -1 && b->thread != ptid_to_global_thread_id (ptid)) - || (b->task != 0 && b->task != ada_get_task_number (ptid))) - + if ((b->thread != -1 && b->thread != thread->global_num) + || (b->task != 0 && b->task != ada_get_task_number (thread))) { bs->stop = 0; return; @@ -5326,7 +5303,7 @@ bs->stop = 0; /* Increase the hit count even though we don't stop. */ ++(b->hit_count); - observer_notify_breakpoint_modified (b); + gdb::observers::breakpoint_modified.notify (b); } } @@ -5342,54 +5319,21 @@ && !target_supports_stopped_by_hw_breakpoint ())); } - -/* Get a bpstat associated with having just stopped at address - BP_ADDR in thread PTID. - - Determine whether we stopped at a breakpoint, etc, or whether we - don't understand this stop. Result is a chain of bpstat's such - that: - - if we don't understand the stop, the result is a null pointer. - - if we understand why we stopped, the result is not null. - - Each element of the chain refers to a particular breakpoint or - watchpoint at which we have stopped. (We may have stopped for - several reasons concurrently.) - - Each element of the chain has valid next, breakpoint_at, - commands, FIXME??? fields. */ +/* See breakpoint.h. */ bpstat -bpstat_stop_status (const address_space *aspace, - CORE_ADDR bp_addr, ptid_t ptid, +build_bpstat_chain (const address_space *aspace, CORE_ADDR bp_addr, const struct target_waitstatus *ws) { - struct breakpoint *b = NULL; - struct bp_location *bl; - struct bp_location *loc; - /* First item of allocated bpstat's. */ + struct breakpoint *b; bpstat bs_head = NULL, *bs_link = &bs_head; - /* Pointer to the last thing in the chain currently. */ - bpstat bs; - int ix; - int need_remove_insert; - int removed_any; - - /* First, build the bpstat chain with locations that explain a - target stop, while being careful to not set the target running, - as that may invalidate locations (in particular watchpoint - locations are recreated). Resuming will happen here with - breakpoint conditions or watchpoint expressions that include - inferior function calls. */ ALL_BREAKPOINTS (b) { if (!breakpoint_enabled (b)) continue; - for (bl = b->loc; bl != NULL; bl = bl->next) + for (bp_location *bl = b->loc; bl != NULL; bl = bl->next) { /* For hardware watchpoints, we look only at the first location. The watchpoint_check function will work on the @@ -5408,8 +5352,8 @@ /* Come here if it's a watchpoint, or if the break address matches. */ - bs = new bpstats (bl, &bs_link); /* Alloc a bpstat to - explain stop. */ + bpstat bs = new bpstats (bl, &bs_link); /* Alloc a bpstat to + explain stop. */ /* Assume we stop. Should we find a watchpoint that is not actually triggered, or if the condition of the breakpoint @@ -5434,12 +5378,15 @@ if (!target_supports_stopped_by_sw_breakpoint () || !target_supports_stopped_by_hw_breakpoint ()) { - for (ix = 0; VEC_iterate (bp_location_p, moribund_locations, ix, loc); ++ix) + bp_location *loc; + + for (int ix = 0; + VEC_iterate (bp_location_p, moribund_locations, ix, loc); ++ix) { if (breakpoint_location_address_match (loc, aspace, bp_addr) && need_moribund_for_location_type (loc)) { - bs = new bpstats (loc, &bs_link); + bpstat bs = new bpstats (loc, &bs_link); /* For hits of moribund locations, we should just proceed. */ bs->stop = 0; bs->print = 0; @@ -5448,6 +5395,33 @@ } } + return bs_head; +} + +/* See breakpoint.h. */ + +bpstat +bpstat_stop_status (const address_space *aspace, + CORE_ADDR bp_addr, thread_info *thread, + const struct target_waitstatus *ws, + bpstat stop_chain) +{ + struct breakpoint *b = NULL; + /* First item of allocated bpstat's. */ + bpstat bs_head = stop_chain; + bpstat bs; + int need_remove_insert; + int removed_any; + + /* First, build the bpstat chain with locations that explain a + target stop, while being careful to not set the target running, + as that may invalidate locations (in particular watchpoint + locations are recreated). Resuming will happen here with + breakpoint conditions or watchpoint expressions that include + inferior function calls. */ + if (bs_head == NULL) + bs_head = build_bpstat_chain (aspace, bp_addr, ws); + /* A bit of special processing for shlib breakpoints. We need to process solib loading here, so that the lists of loaded and unloaded libraries are correct before we handle "catch load" and @@ -5476,12 +5450,12 @@ b->ops->check_status (bs); if (bs->stop) { - bpstat_check_breakpoint_conditions (bs, ptid); + bpstat_check_breakpoint_conditions (bs, thread); if (bs->stop) { ++(b->hit_count); - observer_notify_breakpoint_modified (b); + gdb::observers::breakpoint_modified.notify (b); /* We will stop here. */ if (b->disposition == disp_disable) @@ -5899,9 +5873,6 @@ { const struct symbol *sym = loc->symbol; - if (sym == NULL) - sym = find_pc_sect_function (loc->address, loc->section); - if (sym) { uiout->text ("in "); @@ -7185,37 +7156,30 @@ || loc->owner->type == bp_hardware_breakpoint || is_tracepoint (loc->owner)) { - int is_gnu_ifunc; const char *function_name; - CORE_ADDR func_addr; - find_pc_partial_function_gnu_ifunc (loc->address, &function_name, - &func_addr, NULL, &is_gnu_ifunc); - - if (is_gnu_ifunc && !explicit_loc) + if (loc->msymbol != NULL + && (MSYMBOL_TYPE (loc->msymbol) == mst_text_gnu_ifunc + || MSYMBOL_TYPE (loc->msymbol) == mst_data_gnu_ifunc) + && !explicit_loc) { struct breakpoint *b = loc->owner; - gdb_assert (loc->pspace == current_program_space); - if (gnu_ifunc_resolve_name (function_name, - &loc->requested_address)) - { - /* Recalculate ADDRESS based on new REQUESTED_ADDRESS. */ - loc->address = adjust_breakpoint_address (loc->gdbarch, - loc->requested_address, - b->type); - } - else if (b->type == bp_breakpoint && b->loc == loc - && loc->next == NULL && b->related_breakpoint == b) + function_name = MSYMBOL_LINKAGE_NAME (loc->msymbol); + + if (b->type == bp_breakpoint && b->loc == loc + && loc->next == NULL && b->related_breakpoint == b) { /* Create only the whole new breakpoint of this type but do not mess more complicated breakpoints with multiple locations. */ b->type = bp_gnu_ifunc_resolver; /* Remember the resolver's address for use by the return breakpoint. */ - loc->related_address = func_addr; + loc->related_address = loc->address; } } + else + find_pc_partial_function (loc->address, &function_name, NULL, NULL); if (function_name) loc->function_name = xstrdup (function_name); @@ -7364,7 +7328,7 @@ new_b = momentary_breakpoint_from_master (b, bp_longjmp_call_dummy, &momentary_breakpoint_ops, 1); - new_b->thread = ptid_to_global_thread_id (inferior_ptid); + new_b->thread = inferior_thread ()->global_num; /* Link NEW_B into the chain of RETVAL breakpoints. */ @@ -7404,7 +7368,7 @@ || frame_find_by_id (dummy_b->frame_id) != NULL) continue; - dummy_frame_discard (dummy_b->frame_id, tp->ptid); + dummy_frame_discard (dummy_b->frame_id, tp); while (b->related_breakpoint != b) { @@ -7644,7 +7608,7 @@ loc->inserted = 0; /* This may cause duplicate notifications for the same breakpoint. */ - observer_notify_breakpoint_modified (b); + gdb::observers::breakpoint_modified.notify (b); if (!disabled_shlib_breaks) { @@ -7727,7 +7691,7 @@ } if (bp_modified) - observer_notify_breakpoint_modified (b); + gdb::observers::breakpoint_modified.notify (b); } } @@ -7751,7 +7715,7 @@ static int insert_catch_fork (struct bp_location *bl) { - return target_insert_fork_catchpoint (ptid_get_pid (inferior_ptid)); + return target_insert_fork_catchpoint (inferior_ptid.pid ()); } /* Implement the "remove" breakpoint_ops method for fork @@ -7760,7 +7724,7 @@ static int remove_catch_fork (struct bp_location *bl, enum remove_bp_reason reason) { - return target_remove_fork_catchpoint (ptid_get_pid (inferior_ptid)); + return target_remove_fork_catchpoint (inferior_ptid.pid ()); } /* Implement the "breakpoint_hit" breakpoint_ops method for fork @@ -7803,7 +7767,7 @@ } uiout->field_int ("bkptno", b->number); uiout->text (" (forked process "); - uiout->field_int ("newpid", ptid_get_pid (c->forked_inferior_pid)); + uiout->field_int ("newpid", c->forked_inferior_pid.pid ()); uiout->text ("), "); return PRINT_SRC_AND_LOC; } @@ -7827,10 +7791,10 @@ uiout->field_skip ("addr"); annotate_field (5); uiout->text ("fork"); - if (!ptid_equal (c->forked_inferior_pid, null_ptid)) + if (c->forked_inferior_pid != null_ptid) { uiout->text (", process "); - uiout->field_int ("what", ptid_get_pid (c->forked_inferior_pid)); + uiout->field_int ("what", c->forked_inferior_pid.pid ()); uiout->spaces (1); } @@ -7867,7 +7831,7 @@ static int insert_catch_vfork (struct bp_location *bl) { - return target_insert_vfork_catchpoint (ptid_get_pid (inferior_ptid)); + return target_insert_vfork_catchpoint (inferior_ptid.pid ()); } /* Implement the "remove" breakpoint_ops method for vfork @@ -7876,7 +7840,7 @@ static int remove_catch_vfork (struct bp_location *bl, enum remove_bp_reason reason) { - return target_remove_vfork_catchpoint (ptid_get_pid (inferior_ptid)); + return target_remove_vfork_catchpoint (inferior_ptid.pid ()); } /* Implement the "breakpoint_hit" breakpoint_ops method for vfork @@ -7919,7 +7883,7 @@ } uiout->field_int ("bkptno", b->number); uiout->text (" (vforked process "); - uiout->field_int ("newpid", ptid_get_pid (c->forked_inferior_pid)); + uiout->field_int ("newpid", c->forked_inferior_pid.pid ()); uiout->text ("), "); return PRINT_SRC_AND_LOC; } @@ -7942,10 +7906,10 @@ uiout->field_skip ("addr"); annotate_field (5); uiout->text ("vfork"); - if (!ptid_equal (c->forked_inferior_pid, null_ptid)) + if (c->forked_inferior_pid != null_ptid) { uiout->text (", process "); - uiout->field_int ("what", ptid_get_pid (c->forked_inferior_pid)); + uiout->field_int ("what", c->forked_inferior_pid.pid ()); uiout->spaces (1); } @@ -8050,16 +8014,10 @@ { struct solib_catchpoint *self = (struct solib_catchpoint *) bs->breakpoint_at; - int ix; if (self->is_load) { - struct so_list *iter; - - for (ix = 0; - VEC_iterate (so_list_ptr, current_program_space->added_solibs, - ix, iter); - ++ix) + for (so_list *iter : current_program_space->added_solibs) { if (!self->regex || self->compiled->exec (iter->so_name, 0, NULL, 0) == 0) @@ -8068,15 +8026,10 @@ } else { - char *iter; - - for (ix = 0; - VEC_iterate (char_ptr, current_program_space->deleted_solibs, - ix, iter); - ++ix) + for (const std::string &iter : current_program_space->deleted_solibs) { if (!self->regex - || self->compiled->exec (iter, 0, NULL, 0) == 0) + || self->compiled->exec (iter.c_str (), 0, NULL, 0) == 0) return; } } @@ -8261,7 +8214,7 @@ set_tracepoint_count (breakpoint_count); if (!internal) mention (b); - observer_notify_breakpoint_created (b); + gdb::observers::breakpoint_created.notify (b); if (update_gll) update_global_location_list (UGLL_MAY_INSERT); @@ -8307,13 +8260,13 @@ static int insert_catch_exec (struct bp_location *bl) { - return target_insert_exec_catchpoint (ptid_get_pid (inferior_ptid)); + return target_insert_exec_catchpoint (inferior_ptid.pid ()); } static int remove_catch_exec (struct bp_location *bl, enum remove_bp_reason reason) { - return target_remove_exec_catchpoint (ptid_get_pid (inferior_ptid)); + return target_remove_exec_catchpoint (inferior_ptid.pid ()); } static int @@ -8556,11 +8509,7 @@ b->disposition = disp_donttouch; b->frame_id = frame_id; - /* If we're debugging a multi-threaded program, then we want - momentary breakpoints to be active in only a single thread of - control. */ - if (in_thread_list (inferior_ptid)) - b->thread = ptid_to_global_thread_id (inferior_ptid); + b->thread = inferior_thread ()->global_num; update_global_location_list_nothrow (UGLL_MAY_INSERT); @@ -8638,9 +8587,7 @@ mention (struct breakpoint *b) { b->ops->print_mention (b); - if (current_uiout->is_mi_like_p ()) - return; - printf_filtered ("\n"); + current_uiout->text ("\n"); } @@ -8685,6 +8632,8 @@ loc->line_number = sal->line; loc->symtab = sal->symtab; loc->symbol = sal->symbol; + loc->msymbol = sal->msymbol; + loc->objfile = sal->objfile; set_breakpoint_location_function (loc, sal->explicit_pc || sal->explicit_line); @@ -8816,18 +8765,12 @@ _("Invalid dprintf style.")); gdb_assert (printf_line != NULL); - /* Manufacture a printf sequence. */ - { - struct command_line *printf_cmd_line = XNEW (struct command_line); - printf_cmd_line->control_type = simple_control; - printf_cmd_line->body_count = 0; - printf_cmd_line->body_list = NULL; - printf_cmd_line->next = NULL; - printf_cmd_line->line = printf_line; - - breakpoint_set_commands (b, command_line_up (printf_cmd_line)); - } + /* Manufacture a printf sequence. */ + struct command_line *printf_cmd_line + = new struct command_line (simple_control, printf_line); + breakpoint_set_commands (b, counted_command_line (printf_cmd_line, + command_lines_deleter ())); } /* Update all dprintf commands, making their command lists reflect @@ -8923,27 +8866,24 @@ const char *p = &event_location_to_string (b->location.get ())[3]; const char *endp; - char *marker_str; p = skip_spaces (p); endp = skip_to_space (p); - marker_str = savestring (p, endp - p); - t->static_trace_marker_id = marker_str; + t->static_trace_marker_id.assign (p, endp - p); printf_filtered (_("Probed static tracepoint " "marker \"%s\"\n"), - t->static_trace_marker_id); + t->static_trace_marker_id.c_str ()); } else if (target_static_tracepoint_marker_at (sal.pc, &marker)) { - t->static_trace_marker_id = xstrdup (marker.str_id); - release_static_tracepoint_marker (&marker); + t->static_trace_marker_id = std::move (marker.str_id); printf_filtered (_("Probed static tracepoint " "marker \"%s\"\n"), - t->static_trace_marker_id); + t->static_trace_marker_id.c_str ()); } else warning (_("Couldn't determine the static " @@ -9177,10 +9117,6 @@ check_fast_tracepoint_sals (struct gdbarch *gdbarch, gdb::array_view sals) { - int rslt; - char *msg; - struct cleanup *old_chain; - for (const auto &sal : sals) { struct gdbarch *sarch; @@ -9190,14 +9126,10 @@ associated with SAL. */ if (sarch == NULL) sarch = gdbarch; - rslt = gdbarch_fast_tracepoint_valid_at (sarch, sal.pc, &msg); - old_chain = make_cleanup (xfree, msg); - - if (!rslt) + std::string msg; + if (!gdbarch_fast_tracepoint_valid_at (sarch, sal.pc, &msg)) error (_("May not have a fast tracepoint at %s%s"), - paddress (sarch, sal.pc), (msg ? msg : "")); - - do_cleanups (old_chain); + paddress (sarch, sal.pc), msg.c_str ()); } } @@ -9283,10 +9215,8 @@ static std::vector decode_static_tracepoint_spec (const char **arg_p) { - VEC(static_tracepoint_marker_p) *markers = NULL; const char *p = &(*arg_p)[3]; const char *endp; - int i; p = skip_spaces (p); @@ -9294,26 +9224,21 @@ std::string marker_str (p, endp - p); - markers = target_static_tracepoint_markers_by_strid (marker_str.c_str ()); - if (VEC_empty(static_tracepoint_marker_p, markers)) + std::vector markers + = target_static_tracepoint_markers_by_strid (marker_str.c_str ()); + if (markers.empty ()) error (_("No known static tracepoint marker named %s"), marker_str.c_str ()); std::vector sals; - sals.reserve (VEC_length(static_tracepoint_marker_p, markers)); + sals.reserve (markers.size ()); - for (i = 0; i < VEC_length(static_tracepoint_marker_p, markers); i++) + for (const static_tracepoint_marker &marker : markers) { - struct static_tracepoint_marker *marker; - - marker = VEC_index (static_tracepoint_marker_p, markers, i); - - symtab_and_line sal = find_pc_line (marker->address, 0); - sal.pc = marker->address; + symtab_and_line sal = find_pc_line (marker.address, 0); + sal.pc = marker.address; sals.push_back (sal); - - release_static_tracepoint_marker (marker); - } + } *arg_p = endp; return sals; @@ -9853,12 +9778,9 @@ gdb_assert (bl); gdb_assert (b->type == bp_hardware_breakpoint); - if (uiout->is_mi_like_p ()) - return; - - printf_filtered (_("Hardware assisted ranged breakpoint %d from %s to %s."), - b->number, paddress (bl->gdbarch, bl->address), - paddress (bl->gdbarch, bl->address + bl->length - 1)); + uiout->message (_("Hardware assisted ranged breakpoint %d from %s to %s."), + b->number, paddress (bl->gdbarch, bl->address), + paddress (bl->gdbarch, bl->address + bl->length - 1)); } /* Implement the "print_recreate" breakpoint_ops method for @@ -10008,7 +9930,7 @@ b->loc->length = length; mention (b); - observer_notify_breakpoint_created (b); + gdb::observers::breakpoint_created.notify (b); update_global_location_list (UGLL_MAY_INSERT); } @@ -10131,7 +10053,6 @@ { xfree (this->exp_string); xfree (this->exp_string_reparse); - value_free (this->val); } /* Implement the "re_set" breakpoint_ops method for watchpoints. */ @@ -10273,10 +10194,10 @@ mention (b); tuple_emitter.emplace (uiout, "value"); uiout->text ("\nOld value = "); - watchpoint_value_print (bs->old_val, &stb); + watchpoint_value_print (bs->old_val.get (), &stb); uiout->field_stream ("old", stb); uiout->text ("\nNew value = "); - watchpoint_value_print (w->val, &stb); + watchpoint_value_print (w->val.get (), &stb); uiout->field_stream ("new", stb); uiout->text ("\n"); /* More than one watchpoint may have been triggered. */ @@ -10290,7 +10211,7 @@ mention (b); tuple_emitter.emplace (uiout, "value"); uiout->text ("\nValue = "); - watchpoint_value_print (w->val, &stb); + watchpoint_value_print (w->val.get (), &stb); uiout->field_stream ("value", stb); uiout->text ("\n"); result = PRINT_UNKNOWN; @@ -10306,7 +10227,7 @@ mention (b); tuple_emitter.emplace (uiout, "value"); uiout->text ("\nOld value = "); - watchpoint_value_print (bs->old_val, &stb); + watchpoint_value_print (bs->old_val.get (), &stb); uiout->field_stream ("old", stb); uiout->text ("\nNew value = "); } @@ -10320,7 +10241,7 @@ tuple_emitter.emplace (uiout, "value"); uiout->text ("\nValue = "); } - watchpoint_value_print (w->val, &stb); + watchpoint_value_print (w->val.get (), &stb); uiout->field_stream ("new", stb); uiout->text ("\n"); result = PRINT_UNKNOWN; @@ -10615,7 +10536,7 @@ { struct breakpoint *scope_breakpoint = NULL; const struct block *exp_valid_block = NULL, *cond_exp_valid_block = NULL; - struct value *val, *mark, *result; + struct value *mark, *result; int saved_bitpos = 0, saved_bitsize = 0; const char *exp_start = NULL; const char *exp_end = NULL; @@ -10717,7 +10638,7 @@ /* Parse the rest of the arguments. From here on out, everything is in terms of a newly allocated string instead of the original ARG. */ - innermost_block = NULL; + innermost_block.reset (); std::string expression (arg, exp_end - arg); exp_start = arg = expression.c_str (); expression_up exp = parse_exp_1 (&arg, 0, 0, 0); @@ -10739,28 +10660,30 @@ error (_("Cannot watch constant value `%.*s'."), len, exp_start); } - exp_valid_block = innermost_block; + exp_valid_block = innermost_block.block (); mark = value_mark (); - fetch_subexp_value (exp.get (), &pc, &val, &result, NULL, just_location); + struct value *val_as_value = nullptr; + fetch_subexp_value (exp.get (), &pc, &val_as_value, &result, NULL, + just_location); - if (val != NULL && just_location) + if (val_as_value != NULL && just_location) { - saved_bitpos = value_bitpos (val); - saved_bitsize = value_bitsize (val); + saved_bitpos = value_bitpos (val_as_value); + saved_bitsize = value_bitsize (val_as_value); } + value_ref_ptr val; if (just_location) { int ret; exp_valid_block = NULL; - val = value_addr (result); - release_value (val); + val = release_value (value_addr (result)); value_free_to_mark (mark); if (use_mask) { - ret = target_masked_watch_num_registers (value_as_address (val), + ret = target_masked_watch_num_registers (value_as_address (val.get ()), mask); if (ret == -1) error (_("This target does not support masked watchpoints.")); @@ -10768,8 +10691,8 @@ error (_("Invalid mask or memory region.")); } } - else if (val != NULL) - release_value (val); + else if (val_as_value != NULL) + val = release_value (val_as_value); tok = skip_spaces (arg); end_tok = skip_to_space (tok); @@ -10777,13 +10700,13 @@ toklen = end_tok - tok; if (toklen >= 1 && strncmp (tok, "if", toklen) == 0) { - innermost_block = NULL; + innermost_block.reset (); tok = cond_start = end_tok + 1; parse_exp_1 (&tok, 0, 0, 0); /* The watchpoint expression may not be local, but the condition may still be. E.g.: `watch global if local > 0'. */ - cond_exp_valid_block = innermost_block; + cond_exp_valid_block = innermost_block.block (); cond_end = tok; } @@ -10863,8 +10786,8 @@ w->cond_exp_valid_block = cond_exp_valid_block; if (just_location) { - struct type *t = value_type (val); - CORE_ADDR addr = value_as_address (val); + struct type *t = value_type (val.get ()); + CORE_ADDR addr = value_as_address (val.get ()); w->exp_string_reparse = current_language->la_watch_location_expression (t, addr).release (); @@ -10925,15 +10848,17 @@ If the watchpoint cannot be handled in hardware return zero. */ static int -can_use_hardware_watchpoint (struct value *v) +can_use_hardware_watchpoint (const std::vector &vals) { int found_memory_cnt = 0; - struct value *head = v; /* Did the user specifically forbid us to use hardware watchpoints? */ if (!can_use_hw_watchpoints) return 0; + gdb_assert (!vals.empty ()); + struct value *head = vals[0].get (); + /* Make sure that the value of the expression depends only upon memory contents, and values computed from them within GDB. If we find any register references or function calls, we can't use a @@ -10953,8 +10878,10 @@ function calls are special in any way. So this function may not notice that an expression involving an inferior function call can't be watched with hardware watchpoints. FIXME. */ - for (; v; v = value_next (v)) + for (const value_ref_ptr &iter : vals) { + struct value *v = iter.get (); + if (VALUE_LVAL (v) == lval_memory) { if (v != head && value_lazy (v)) @@ -11763,7 +11690,7 @@ t = (struct tracepoint *) b; t->number_on_target = b->number; if (bp_location_downloaded) - observer_notify_breakpoint_modified (b); + gdb::observers::breakpoint_modified.notify (b); } } @@ -12924,7 +12851,7 @@ struct ui_out *uiout) { struct tracepoint *tp = (struct tracepoint *) self; - if (tp->static_trace_marker_id) + if (!tp->static_trace_marker_id.empty ()) { gdb_assert (self->type == bp_static_tracepoint); @@ -13208,7 +13135,7 @@ return sals; } else - error (_("marker %s not found"), tp->static_trace_marker_id); + error (_("marker %s not found"), tp->static_trace_marker_id.c_str ()); } static struct breakpoint_ops strace_marker_breakpoint_ops; @@ -13276,7 +13203,7 @@ a problem in that process, we'll be asked to delete the half-created watchpoint. In that case, don't announce the deletion. */ if (bpt->number) - observer_notify_breakpoint_deleted (bpt); + gdb::observers::breakpoint_deleted.notify (bpt); if (breakpoint_chain == bpt) breakpoint_chain = bpt->next; @@ -13413,10 +13340,8 @@ ambiguous_names_p (struct bp_location *loc) { struct bp_location *l; - htab_t htab = htab_create_alloc (13, htab_hash_string, - (int (*) (const void *, - const void *)) streq, - NULL, xcalloc, xfree); + htab_t htab = htab_create_alloc (13, htab_hash_string, streq_hash, NULL, + xcalloc, xfree); for (l = loc; l != NULL; l = l->next) { @@ -13489,14 +13414,12 @@ if (target_static_tracepoint_marker_at (pc, &marker)) { - if (strcmp (tp->static_trace_marker_id, marker.str_id) != 0) + if (tp->static_trace_marker_id != marker.str_id) warning (_("static tracepoint %d changed probed marker from %s to %s"), - b->number, - tp->static_trace_marker_id, marker.str_id); + b->number, tp->static_trace_marker_id.c_str (), + marker.str_id.c_str ()); - xfree (tp->static_trace_marker_id); - tp->static_trace_marker_id = xstrdup (marker.str_id); - release_static_tracepoint_marker (&marker); + tp->static_trace_marker_id = std::move (marker.str_id); return sal; } @@ -13506,28 +13429,26 @@ if (!sal.explicit_pc && sal.line != 0 && sal.symtab != NULL - && tp->static_trace_marker_id != NULL) + && !tp->static_trace_marker_id.empty ()) { - VEC(static_tracepoint_marker_p) *markers; + std::vector markers + = target_static_tracepoint_markers_by_strid + (tp->static_trace_marker_id.c_str ()); - markers - = target_static_tracepoint_markers_by_strid (tp->static_trace_marker_id); - - if (!VEC_empty(static_tracepoint_marker_p, markers)) + if (!markers.empty ()) { struct symbol *sym; struct static_tracepoint_marker *tpmarker; struct ui_out *uiout = current_uiout; struct explicit_location explicit_loc; - tpmarker = VEC_index (static_tracepoint_marker_p, markers, 0); + tpmarker = &markers[0]; - xfree (tp->static_trace_marker_id); - tp->static_trace_marker_id = xstrdup (tpmarker->str_id); + tp->static_trace_marker_id = std::move (tpmarker->str_id); warning (_("marker for static tracepoint %d (%s) not " "found at previous line number"), - b->number, tp->static_trace_marker_id); + b->number, tp->static_trace_marker_id.c_str ()); symtab_and_line sal2 = find_pc_line (tpmarker->address, 0); sym = find_pc_sect_function (tpmarker->address, NULL); @@ -13564,8 +13485,6 @@ /* Might be nice to check if function changed, and warn if so. */ - - release_static_tracepoint_marker (tpmarker); } } return sal; @@ -13751,7 +13670,7 @@ } if (!locations_are_equal (existing_locations, b->loc)) - observer_notify_breakpoint_modified (b); + gdb::observers::breakpoint_modified.notify (b); } /* Find the SaL locations corresponding to the given LOCATION. @@ -13958,6 +13877,19 @@ scoped_restore save_input_radix = make_scoped_restore (&input_radix); scoped_restore_current_pspace_and_thread restore_pspace_thread; + /* breakpoint_re_set_one sets the current_language to the language + of the breakpoint it is resetting (see prepare_re_set_context) + before re-evaluating the breakpoint's location. This change can + unfortunately get undone by accident if the language_mode is set + to auto, and we either switch frames, or more likely in this context, + we select the current frame. + + We prevent this by temporarily turning the language_mode to + language_mode_manual. We restore it once all breakpoints + have been reset. */ + scoped_restore save_language_mode = make_scoped_restore (&language_mode); + language_mode = language_mode_manual; + /* Note: we must not try to insert locations until after all breakpoints have been re-set. Otherwise, e.g., when re-setting breakpoint 1, we'd insert the locations of breakpoint 2, which @@ -13999,8 +13931,7 @@ { if (b->thread != -1) { - if (in_thread_list (inferior_ptid)) - b->thread = ptid_to_global_thread_id (inferior_ptid); + b->thread = inferior_thread ()->global_num; /* We're being called after following a fork. The new fork is selected as current, and unless this was a vfork will have a @@ -14048,7 +13979,7 @@ "crossings of breakpoint %d."), count, bptnum); } - observer_notify_breakpoint_modified (b); + gdb::observers::breakpoint_modified.notify (b); return; } @@ -14351,7 +14282,7 @@ update_global_location_list (UGLL_DONT_INSERT); - observer_notify_breakpoint_modified (bpt); + gdb::observers::breakpoint_modified.notify (bpt); } /* Enable or disable the breakpoint(s) or breakpoint location(s) @@ -14477,7 +14408,7 @@ bpt->enable_count = count; update_global_location_list (UGLL_MAY_INSERT); - observer_notify_breakpoint_modified (bpt); + gdb::observers::breakpoint_modified.notify (bpt); } @@ -14574,7 +14505,7 @@ { struct watchpoint *wp = (struct watchpoint *) bp; - if (wp->val_valid && wp->val) + if (wp->val_valid && wp->val != nullptr) { struct bp_location *loc; @@ -14583,7 +14514,6 @@ && loc->address + loc->length > addr && addr + len > loc->address) { - value_free (wp->val); wp->val = NULL; wp->val_valid = 0; } @@ -14773,11 +14703,13 @@ static char * read_uploaded_action (void) { - char *rslt; - - VEC_iterate (char_ptr, this_utp->cmd_strings, next_cmd, rslt); + char *rslt = nullptr; - next_cmd++; + if (next_cmd < this_utp->cmd_strings.size ()) + { + rslt = this_utp->cmd_strings[next_cmd]; + next_cmd++; + } return rslt; } @@ -14849,19 +14781,19 @@ special-purpose "reader" function and call the usual command line reader, then pass the result to the breakpoint command-setting function. */ - if (!VEC_empty (char_ptr, utp->cmd_strings)) + if (!utp->cmd_strings.empty ()) { - command_line_up cmd_list; + counted_command_line cmd_list; this_utp = utp; next_cmd = 0; - cmd_list = read_command_lines_1 (read_uploaded_action, 1, NULL, NULL); + cmd_list = read_command_lines_1 (read_uploaded_action, 1, NULL); breakpoint_set_commands (tp, std::move (cmd_list)); } - else if (!VEC_empty (char_ptr, utp->actions) - || !VEC_empty (char_ptr, utp->step_actions)) + else if (!utp->actions.empty () + || !utp->step_actions.empty ()) warning (_("Uploaded tracepoint %d actions " "have no source form, ignoring them"), utp->number); @@ -14957,7 +14889,7 @@ trace_pass_set_count (struct tracepoint *tp, int count, int from_tty) { tp->pass_count = count; - observer_notify_breakpoint_modified (tp); + gdb::observers::breakpoint_modified.notify (tp); if (from_tty) printf_filtered (_("Setting tracepoint %d's passcount to %d\n"), tp->number, count); @@ -15240,15 +15172,15 @@ /* Create a vector of all tracepoints. */ -VEC(breakpoint_p) * +std::vector all_tracepoints (void) { - VEC(breakpoint_p) *tp_vec = 0; + std::vector tp_vec; struct breakpoint *tp; ALL_TRACEPOINTS (tp) { - VEC_safe_push (breakpoint_p, tp_vec, tp); + tp_vec.push_back (tp); } return tp_vec; @@ -15597,9 +15529,9 @@ initialize_breakpoint_ops (); - observer_attach_solib_unloaded (disable_breakpoints_in_unloaded_shlib); - observer_attach_free_objfile (disable_breakpoints_in_freed_objfile); - observer_attach_memory_changed (invalidate_bp_value_on_memory_change); + gdb::observers::solib_unloaded.attach (disable_breakpoints_in_unloaded_shlib); + gdb::observers::free_objfile.attach (disable_breakpoints_in_freed_objfile); + gdb::observers::memory_changed.attach (invalidate_bp_value_on_memory_change); breakpoint_objfile_key = register_objfile_data_with_cleanup (NULL, free_breakpoint_objfile_data); @@ -16150,6 +16082,6 @@ automatic_hardware_breakpoints = 1; - observer_attach_about_to_proceed (breakpoint_about_to_proceed); - observer_attach_thread_exit (remove_threaded_breakpoints); + gdb::observers::about_to_proceed.attach (breakpoint_about_to_proceed); + gdb::observers::thread_exit.attach (remove_threaded_breakpoints); } diff -Nru gdb-8.1/gdb/breakpoint.h gdb-8.2/gdb/breakpoint.h --- gdb-8.1/gdb/breakpoint.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/breakpoint.h 2018-09-05 07:44:28.000000000 +0000 @@ -31,7 +31,6 @@ #include "common/array-view.h" #include "cli/cli-script.h" -struct value; struct block; struct gdbpy_breakpoint_object; struct gdbscm_breakpoint_object; @@ -41,6 +40,7 @@ struct bp_location; struct linespec_result; struct linespec_sals; +struct inferior; /* Why are we removing the breakpoint from the target? */ @@ -491,6 +491,14 @@ ascertain when an event location was set at a different location than the one originally selected by parsing, e.g., inlined symbols. */ const struct symbol *symbol = NULL; + + /* Similarly, the minimal symbol found by the location parser, if + any. This may be used to ascertain if the location was + originally set on a GNU ifunc symbol. */ + const minimal_symbol *msymbol = NULL; + + /* The objfile the symbol or minimal symbol were found in. */ + const struct objfile *objfile = NULL; }; /* The possible return values for print_bpstat, print_it_normal, @@ -662,10 +670,6 @@ typedef struct bp_location *bp_location_p; DEF_VEC_P(bp_location_p); -/* A reference-counted struct command_line. This is an implementation - detail to the breakpoints module. */ -typedef std::shared_ptr counted_command_line; - /* Some targets (e.g., embedded PowerPC) need two debug registers to set a watchpoint over a memory region. If this flag is true, GDB will use only one register per watchpoint, thus assuming that all acesses that @@ -813,7 +817,7 @@ /* Value of the watchpoint the last time we checked it, or NULL when we do not know the value yet or the value was not readable. VAL is never lazy. */ - struct value *val; + value_ref_ptr val; /* Nonzero if VAL is valid. If VAL_VALID is set but VAL is NULL, then an error occurred reading the value. */ int val_valid; @@ -889,7 +893,7 @@ ULONGEST traceframe_usage; /* The static tracepoint marker id, if known. */ - char *static_trace_marker_id; + std::string static_trace_marker_id; /* LTTng/UST allow more than one marker with the same ID string, although it unadvised because it confuses tools. When setting @@ -900,8 +904,6 @@ int static_trace_marker_id_idx; }; -typedef struct breakpoint *breakpoint_p; -DEF_VEC_P(breakpoint_p); /* The following stuff is an abstract data type "bpstat" ("breakpoint status"). This provides the ability to determine whether we have @@ -917,9 +919,37 @@ is part of the bpstat is copied as well. */ extern bpstat bpstat_copy (bpstat); -extern bpstat bpstat_stop_status (const address_space *aspace, - CORE_ADDR pc, ptid_t ptid, +/* Build the (raw) bpstat chain for the stop information given by ASPACE, + BP_ADDR, and WS. Returns the head of the bpstat chain. */ + +extern bpstat build_bpstat_chain (const address_space *aspace, + CORE_ADDR bp_addr, const struct target_waitstatus *ws); + +/* Get a bpstat associated with having just stopped at address + BP_ADDR in thread PTID. STOP_CHAIN may be supplied as a previously + computed stop chain or NULL, in which case the stop chain will be + computed using build_bpstat_chain. + + Determine whether we stopped at a breakpoint, etc, or whether we + don't understand this stop. Result is a chain of bpstat's such + that: + + if we don't understand the stop, the result is a null pointer. + + if we understand why we stopped, the result is not null. + + Each element of the chain refers to a particular breakpoint or + watchpoint at which we have stopped. (We may have stopped for + several reasons concurrently.) + + Each element of the chain has valid next, breakpoint_at, + commands, FIXME??? fields. */ + +extern bpstat bpstat_stop_status (const address_space *aspace, + CORE_ADDR pc, thread_info *thread, + const struct target_waitstatus *ws, + bpstat stop_chain = NULL); /* This bpstat_what stuff tells wait_for_inferior what to do with a breakpoint (a challenging task). @@ -1125,7 +1155,7 @@ counted_command_line commands; /* Old value associated with a watchpoint. */ - struct value *old_val; + value_ref_ptr old_val; /* Nonzero if this breakpoint tells us to print the frame. */ char print; @@ -1365,7 +1395,7 @@ extern int remove_breakpoints (void); -extern int remove_breakpoints_pid (int pid); +extern int remove_breakpoints_inf (inferior *inf); /* This function can be used to update the breakpoint package's state after an exec() system call has been executed. @@ -1480,7 +1510,7 @@ extern void enable_breakpoint (struct breakpoint *); extern void breakpoint_set_commands (struct breakpoint *b, - command_line_up &&commands); + counted_command_line &&commands); extern void breakpoint_set_silent (struct breakpoint *b, int silent); @@ -1594,20 +1624,13 @@ get_tracepoint_by_number (const char **arg, number_or_range_parser *parser); -/* Return a vector of all tracepoints currently defined. The vector - is newly allocated; the caller should free when done with it. */ -extern VEC(breakpoint_p) *all_tracepoints (void); +/* Return a vector of all tracepoints currently defined. */ +extern std::vector all_tracepoints (void); extern int is_tracepoint (const struct breakpoint *b); -/* Return a vector of all static tracepoints defined at ADDR. The - vector is newly allocated; the caller should free when done with - it. */ -extern VEC(breakpoint_p) *static_tracepoints_here (CORE_ADDR addr); - -/* Function that can be passed to read_command_line to validate - that each command is suitable for tracepoint command list. */ -extern void check_tracepoint_command (char *line, void *closure); +/* Return a vector of all static tracepoints defined at ADDR. */ +extern std::vector static_tracepoints_here (CORE_ADDR addr); /* Create an instance of this to start registering breakpoint numbers for a later "commands" command. */ diff -Nru gdb-8.1/gdb/bsd-kvm.c gdb-8.2/gdb/bsd-kvm.c --- gdb-8.1/gdb/bsd-kvm.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/bsd-kvm.c 2018-09-05 07:27:13.000000000 +0000 @@ -56,16 +56,53 @@ register state from PCB and supplies it to REGCACHE. */ static int (*bsd_kvm_supply_pcb)(struct regcache *regcache, struct pcb *pcb); -/* Target ops for libkvm interface. */ -static struct target_ops bsd_kvm_ops; - /* This is the ptid we use while we're connected to kvm. The kvm target currently doesn't export any view of the running processes, so this represents the kernel task. */ static ptid_t bsd_kvm_ptid; +/* The libkvm target. */ + +static const target_info bsd_kvm_target_info = { + "kvm", + N_("Kernel memory interface"), + N_("Use a kernel virtual memory image as a target.\n\ +Optionally specify the filename of a core dump.") +}; + +class bsd_kvm_target final : public target_ops +{ +public: + bsd_kvm_target () + { this->to_stratum = process_stratum; } + + const target_info &info () const override + { return bsd_kvm_target_info; } + + void close () override; + + void fetch_registers (struct regcache *, int) override; + enum target_xfer_status xfer_partial (enum target_object object, + const char *annex, + gdb_byte *readbuf, + const gdb_byte *writebuf, + ULONGEST offset, ULONGEST len, + ULONGEST *xfered_len) override; + + void files_info () override; + bool thread_alive (ptid_t ptid) override; + const char *pid_to_str (ptid_t) override; + + bool has_memory () override { return true; } + bool has_stack () override { return true; } + bool has_registers () override { return true; } +}; + +/* Target ops for libkvm interface. */ +static bsd_kvm_target bsd_kvm_ops; + static void -bsd_kvm_open (const char *arg, int from_tty) +bsd_kvm_target_open (const char *arg, int from_tty) { char errbuf[_POSIX2_LINE_MAX]; char *execfile = NULL; @@ -107,8 +144,8 @@ print_stack_frame (get_selected_frame (NULL), 0, SRC_AND_LOC, 1); } -static void -bsd_kvm_close (struct target_ops *self) +void +bsd_kvm_target::close () { if (core_kd) { @@ -118,7 +155,7 @@ } inferior_ptid = null_ptid; - delete_thread_silent (bsd_kvm_ptid); + discard_all_inferiors (); } static LONGEST @@ -134,11 +171,11 @@ return nbytes; } -static enum target_xfer_status -bsd_kvm_xfer_partial (struct target_ops *ops, enum target_object object, - const char *annex, gdb_byte *readbuf, - const gdb_byte *writebuf, - ULONGEST offset, ULONGEST len, ULONGEST *xfered_len) +enum target_xfer_status +bsd_kvm_target::xfer_partial (enum target_object object, + const char *annex, gdb_byte *readbuf, + const gdb_byte *writebuf, + ULONGEST offset, ULONGEST len, ULONGEST *xfered_len) { switch (object) { @@ -162,8 +199,8 @@ } } -static void -bsd_kvm_files_info (struct target_ops *ops) +void +bsd_kvm_target::files_info () { if (bsd_kvm_corefile && strcmp (bsd_kvm_corefile, _PATH_MEM) != 0) printf_filtered (_("\tUsing the kernel crash dump %s.\n"), @@ -186,9 +223,8 @@ return bsd_kvm_supply_pcb (regcache, &pcb); } -static void -bsd_kvm_fetch_registers (struct target_ops *ops, - struct regcache *regcache, int regnum) +void +bsd_kvm_target::fetch_registers (struct regcache *regcache, int regnum) { struct nlist nl[2]; @@ -325,27 +361,20 @@ print_stack_frame (get_selected_frame (NULL), 0, SRC_AND_LOC, 1); } -static int -bsd_kvm_thread_alive (struct target_ops *ops, - ptid_t ptid) +bool +bsd_kvm_target::thread_alive (ptid_t ptid) { - return 1; + return true; } -static const char * -bsd_kvm_pid_to_str (struct target_ops *ops, ptid_t ptid) +const char * +bsd_kvm_target::pid_to_str (ptid_t ptid) { static char buf[64]; xsnprintf (buf, sizeof buf, ""); return buf; } -static int -bsd_kvm_return_one (struct target_ops *ops) -{ - return 1; -} - /* Add the libkvm interface to the list of all possible targets and register CUPPLY_PCB as the architecture-specific process control block interpreter. */ @@ -356,24 +385,7 @@ gdb_assert (bsd_kvm_supply_pcb == NULL); bsd_kvm_supply_pcb = supply_pcb; - bsd_kvm_ops.to_shortname = "kvm"; - bsd_kvm_ops.to_longname = _("Kernel memory interface"); - bsd_kvm_ops.to_doc = _("Use a kernel virtual memory image as a target.\n\ -Optionally specify the filename of a core dump."); - bsd_kvm_ops.to_open = bsd_kvm_open; - bsd_kvm_ops.to_close = bsd_kvm_close; - bsd_kvm_ops.to_fetch_registers = bsd_kvm_fetch_registers; - bsd_kvm_ops.to_xfer_partial = bsd_kvm_xfer_partial; - bsd_kvm_ops.to_files_info = bsd_kvm_files_info; - bsd_kvm_ops.to_thread_alive = bsd_kvm_thread_alive; - bsd_kvm_ops.to_pid_to_str = bsd_kvm_pid_to_str; - bsd_kvm_ops.to_stratum = process_stratum; - bsd_kvm_ops.to_has_memory = bsd_kvm_return_one; - bsd_kvm_ops.to_has_stack = bsd_kvm_return_one; - bsd_kvm_ops.to_has_registers = bsd_kvm_return_one; - bsd_kvm_ops.to_magic = OPS_MAGIC; - - add_target (&bsd_kvm_ops); + add_target (bsd_kvm_target_info, bsd_kvm_target_open); add_prefix_cmd ("kvm", class_obscure, bsd_kvm_cmd, _("\ Generic command for manipulating the kernel memory interface."), @@ -401,5 +413,5 @@ ptid (1, 1, 2) -> kvm inferior 1, process 2 ptid (1, 1, n) -> kvm inferior 1, process n */ - bsd_kvm_ptid = ptid_build (1, 1, 0); + bsd_kvm_ptid = ptid_t (1, 1, 0); } diff -Nru gdb-8.1/gdb/bsd-uthread.c gdb-8.2/gdb/bsd-uthread.c --- gdb-8.1/gdb/bsd-uthread.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/bsd-uthread.c 2018-09-05 07:27:13.000000000 +0000 @@ -22,7 +22,7 @@ #include "gdbthread.h" #include "inferior.h" #include "objfiles.h" -#include "observer.h" +#include "observable.h" #include "regcache.h" #include "solib.h" #include "solist.h" @@ -33,8 +33,40 @@ #include "bsd-uthread.h" -/* HACK: Save the bsd_uthreads ops returned by bsd_uthread_target. */ -static struct target_ops *bsd_uthread_ops_hack; +static const target_info bsd_uthread_target_info = { + "bsd-uthreads", + N_("BSD user-level threads"), + N_("BSD user-level threads") +}; + +struct bsd_uthread_target final : public target_ops +{ + bsd_uthread_target () + { to_stratum = thread_stratum; } + + const target_info &info () const override + { return bsd_uthread_target_info; } + + void close () override; + + void mourn_inferior () override; + + void fetch_registers (struct regcache *, int) override; + void store_registers (struct regcache *, int) override; + + ptid_t wait (ptid_t, struct target_waitstatus *, int) override; + void resume (ptid_t, int, enum gdb_signal) override; + + bool thread_alive (ptid_t ptid) override; + + void update_thread_list () override; + + const char *extra_thread_info (struct thread_info *) override; + + const char *pid_to_str (ptid_t) override; +}; + +static bsd_uthread_target bsd_uthread_ops; /* Architecture-specific operations. */ @@ -200,15 +232,15 @@ bsd_uthread_thread_ctx_offset = bsd_uthread_lookup_offset ("_thread_ctx_offset", objfile); - push_target (bsd_uthread_ops_hack); + push_target (&bsd_uthread_ops); bsd_uthread_active = 1; return 1; } /* Cleanup due to deactivation. */ -static void -bsd_uthread_close (struct target_ops *self) +void +bsd_uthread_target::close () { bsd_uthread_active = 0; bsd_uthread_thread_run_addr = 0; @@ -228,7 +260,7 @@ if (!bsd_uthread_active) return; - unpush_target (bsd_uthread_ops_hack); + unpush_target (&bsd_uthread_ops); } static void @@ -275,24 +307,21 @@ bsd_uthread_deactivate (); } -static void -bsd_uthread_mourn_inferior (struct target_ops *ops) +void +bsd_uthread_target::mourn_inferior () { - struct target_ops *beneath = find_target_beneath (ops); - beneath->to_mourn_inferior (beneath); + beneath ()->mourn_inferior (); bsd_uthread_deactivate (); } -static void -bsd_uthread_fetch_registers (struct target_ops *ops, - struct regcache *regcache, int regnum) +void +bsd_uthread_target::fetch_registers (struct regcache *regcache, int regnum) { struct gdbarch *gdbarch = regcache->arch (); struct bsd_uthread_ops *uthread_ops = (struct bsd_uthread_ops *) gdbarch_data (gdbarch, bsd_uthread_data); - ptid_t ptid = regcache_get_ptid (regcache); - CORE_ADDR addr = ptid_get_tid (ptid); - struct target_ops *beneath = find_target_beneath (ops); + ptid_t ptid = regcache->ptid (); + CORE_ADDR addr = ptid.tid (); CORE_ADDR active_addr; scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid); @@ -301,7 +330,7 @@ inferior_ptid = ptid; /* Always fetch the appropriate registers from the layer beneath. */ - beneath->to_fetch_registers (beneath, regcache, regnum); + beneath ()->fetch_registers (regcache, regnum); /* FIXME: That might have gotten us more than we asked for. Make sure we overwrite all relevant registers with values from the @@ -317,16 +346,14 @@ } } -static void -bsd_uthread_store_registers (struct target_ops *ops, - struct regcache *regcache, int regnum) +void +bsd_uthread_target::store_registers (struct regcache *regcache, int regnum) { struct gdbarch *gdbarch = regcache->arch (); struct bsd_uthread_ops *uthread_ops = (struct bsd_uthread_ops *) gdbarch_data (gdbarch, bsd_uthread_data); - struct target_ops *beneath = find_target_beneath (ops); - ptid_t ptid = regcache_get_ptid (regcache); - CORE_ADDR addr = ptid_get_tid (ptid); + ptid_t ptid = regcache->ptid (); + CORE_ADDR addr = ptid.tid (); CORE_ADDR active_addr; scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid); @@ -345,20 +372,19 @@ { /* Updating the thread that is currently running; pass the request to the layer beneath. */ - beneath->to_store_registers (beneath, regcache, regnum); + beneath ()->store_registers (regcache, regnum); } } -static ptid_t -bsd_uthread_wait (struct target_ops *ops, - ptid_t ptid, struct target_waitstatus *status, int options) +ptid_t +bsd_uthread_target::wait (ptid_t ptid, struct target_waitstatus *status, + int options) { enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ()); CORE_ADDR addr; - struct target_ops *beneath = find_target_beneath (ops); /* Pass the request to the layer beneath. */ - ptid = beneath->to_wait (beneath, ptid, status, options); + ptid = beneath ()->wait (ptid, status, options); /* If the process is no longer alive, there's no point in figuring out the thread ID. It will fail anyway. */ @@ -381,39 +407,37 @@ { ULONGEST magic = extract_unsigned_integer (buf, 4, byte_order); if (magic == BSD_UTHREAD_PTHREAD_MAGIC) - ptid = ptid_build (ptid_get_pid (ptid), 0, addr); + ptid = ptid_t (ptid.pid (), 0, addr); } } /* If INFERIOR_PTID doesn't have a tid member yet, and we now have a ptid with tid set, then ptid is still the initial thread of the process. Notify GDB core about it. */ - if (ptid_get_tid (inferior_ptid) == 0 - && ptid_get_tid (ptid) != 0 && !in_thread_list (ptid)) + if (inferior_ptid.tid () == 0 + && ptid.tid () != 0 && !in_thread_list (ptid)) thread_change_ptid (inferior_ptid, ptid); /* Don't let the core see a ptid without a corresponding thread. */ - if (!in_thread_list (ptid) || is_exited (ptid)) + thread_info *thread = find_thread_ptid (ptid); + if (thread == NULL || thread->state == THREAD_EXITED) add_thread (ptid); return ptid; } -static void -bsd_uthread_resume (struct target_ops *ops, - ptid_t ptid, int step, enum gdb_signal sig) +void +bsd_uthread_target::resume (ptid_t ptid, int step, enum gdb_signal sig) { /* Pass the request to the layer beneath. */ - struct target_ops *beneath = find_target_beneath (ops); - beneath->to_resume (beneath, ptid, step, sig); + beneath ()->resume (ptid, step, sig); } -static int -bsd_uthread_thread_alive (struct target_ops *ops, ptid_t ptid) +bool +bsd_uthread_target::thread_alive (ptid_t ptid) { enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ()); - struct target_ops *beneath = find_target_beneath (ops); - CORE_ADDR addr = ptid_get_tid (ptid); + CORE_ADDR addr = ptid.tid (); if (addr != 0) { @@ -424,16 +448,16 @@ state = read_memory_unsigned_integer (addr + offset, 4, byte_order); if (state == BSD_UTHREAD_PS_DEAD) - return 0; + return false; } - return beneath->to_thread_alive (beneath, ptid); + return beneath ()->thread_alive (ptid); } -static void -bsd_uthread_update_thread_list (struct target_ops *ops) +void +bsd_uthread_target::update_thread_list () { - pid_t pid = ptid_get_pid (inferior_ptid); + pid_t pid = inferior_ptid.pid (); int offset = bsd_uthread_thread_next_offset; CORE_ADDR addr; @@ -442,14 +466,15 @@ addr = bsd_uthread_read_memory_address (bsd_uthread_thread_list_addr); while (addr != 0) { - ptid_t ptid = ptid_build (pid, 0, addr); + ptid_t ptid = ptid_t (pid, 0, addr); - if (!in_thread_list (ptid) || is_exited (ptid)) + thread_info *thread = find_thread_ptid (ptid); + if (thread == nullptr || thread->state == THREAD_EXITED) { /* If INFERIOR_PTID doesn't have a tid member yet, then ptid is still the initial thread of the process. Notify GDB core about it. */ - if (ptid_get_tid (inferior_ptid) == 0) + if (inferior_ptid.tid () == 0) thread_change_ptid (inferior_ptid, ptid); else add_thread (ptid); @@ -487,12 +512,11 @@ /* Return a string describing th state of the thread specified by INFO. */ -static const char * -bsd_uthread_extra_thread_info (struct target_ops *self, - struct thread_info *info) +const char * +bsd_uthread_target::extra_thread_info (thread_info *info) { enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ()); - CORE_ADDR addr = ptid_get_tid (info->ptid); + CORE_ADDR addr = info->ptid.tid (); if (addr != 0) { @@ -507,54 +531,27 @@ return NULL; } -static const char * -bsd_uthread_pid_to_str (struct target_ops *ops, ptid_t ptid) +const char * +bsd_uthread_target::pid_to_str (ptid_t ptid) { - if (ptid_get_tid (ptid) != 0) + if (ptid.tid () != 0) { static char buf[64]; xsnprintf (buf, sizeof buf, "process %d, thread 0x%lx", - ptid_get_pid (ptid), ptid_get_tid (ptid)); + ptid.pid (), ptid.tid ()); return buf; } return normal_pid_to_str (ptid); } -static struct target_ops * -bsd_uthread_target (void) -{ - struct target_ops *t = XCNEW (struct target_ops); - - t->to_shortname = "bsd-uthreads"; - t->to_longname = "BSD user-level threads"; - t->to_doc = "BSD user-level threads"; - t->to_close = bsd_uthread_close; - t->to_mourn_inferior = bsd_uthread_mourn_inferior; - t->to_fetch_registers = bsd_uthread_fetch_registers; - t->to_store_registers = bsd_uthread_store_registers; - t->to_wait = bsd_uthread_wait; - t->to_resume = bsd_uthread_resume; - t->to_thread_alive = bsd_uthread_thread_alive; - t->to_update_thread_list = bsd_uthread_update_thread_list; - t->to_extra_thread_info = bsd_uthread_extra_thread_info; - t->to_pid_to_str = bsd_uthread_pid_to_str; - t->to_stratum = thread_stratum; - t->to_magic = OPS_MAGIC; - bsd_uthread_ops_hack = t; - - return t; -} - void _initialize_bsd_uthread (void) { - complete_target_initialization (bsd_uthread_target ()); - bsd_uthread_data = gdbarch_data_register_pre_init (bsd_uthread_init); - observer_attach_inferior_created (bsd_uthread_inferior_created); - observer_attach_solib_loaded (bsd_uthread_solib_loaded); - observer_attach_solib_unloaded (bsd_uthread_solib_unloaded); + gdb::observers::inferior_created.attach (bsd_uthread_inferior_created); + gdb::observers::solib_loaded.attach (bsd_uthread_solib_loaded); + gdb::observers::solib_unloaded.attach (bsd_uthread_solib_unloaded); } diff -Nru gdb-8.1/gdb/btrace.c gdb-8.2/gdb/btrace.c --- gdb-8.1/gdb/btrace.c 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/gdb/btrace.c 2018-09-05 07:44:28.000000000 +0000 @@ -35,6 +35,9 @@ #include "gdbcmd.h" #include "cli/cli-utils.h" +/* For maintenance commands. */ +#include "record-btrace.h" + #include #include #include @@ -1428,15 +1431,20 @@ config.begin = btrace->data; config.end = btrace->data + btrace->size; - config.cpu.vendor = pt_translate_cpu_vendor (btrace->config.cpu.vendor); - config.cpu.family = btrace->config.cpu.family; - config.cpu.model = btrace->config.cpu.model; - config.cpu.stepping = btrace->config.cpu.stepping; - - errcode = pt_cpu_errata (&config.errata, &config.cpu); - if (errcode < 0) - error (_("Failed to configure the Intel Processor Trace decoder: %s."), - pt_errstr (pt_errcode (errcode))); + /* We treat an unknown vendor as 'no errata'. */ + if (btrace->config.cpu.vendor != CV_UNKNOWN) + { + config.cpu.vendor + = pt_translate_cpu_vendor (btrace->config.cpu.vendor); + config.cpu.family = btrace->config.cpu.family; + config.cpu.model = btrace->config.cpu.model; + config.cpu.stepping = btrace->config.cpu.stepping; + + errcode = pt_cpu_errata (&config.errata, &config.cpu); + if (errcode < 0) + error (_("Failed to configure the Intel Processor Trace " + "decoder: %s."), pt_errstr (pt_errcode (errcode))); + } decoder = pt_insn_alloc_decoder (&config); if (decoder == NULL) @@ -1485,10 +1493,14 @@ #endif /* defined (HAVE_LIBIPT) */ /* Compute the function branch trace from a block branch trace BTRACE for - a thread given by BTINFO. */ + a thread given by BTINFO. If CPU is not NULL, overwrite the cpu in the + branch trace configuration. This is currently only used for the PT + format. */ static void -btrace_compute_ftrace_1 (struct thread_info *tp, struct btrace_data *btrace, +btrace_compute_ftrace_1 (struct thread_info *tp, + struct btrace_data *btrace, + const struct btrace_cpu *cpu, std::vector &gaps) { DEBUG ("compute ftrace"); @@ -1503,6 +1515,10 @@ return; case BTRACE_FORMAT_PT: + /* Overwrite the cpu we use for enabling errata workarounds. */ + if (cpu != nullptr) + btrace->variant.pt.config.cpu = *cpu; + btrace_compute_ftrace_pt (tp, &btrace->variant.pt, gaps); return; } @@ -1521,13 +1537,14 @@ } static void -btrace_compute_ftrace (struct thread_info *tp, struct btrace_data *btrace) +btrace_compute_ftrace (struct thread_info *tp, struct btrace_data *btrace, + const struct btrace_cpu *cpu) { std::vector gaps; TRY { - btrace_compute_ftrace_1 (tp, btrace, gaps); + btrace_compute_ftrace_1 (tp, btrace, cpu, gaps); } CATCH (error, RETURN_MASK_ALL) { @@ -1548,25 +1565,19 @@ struct btrace_data btrace; struct btrace_block *block; struct regcache *regcache; - struct cleanup *cleanup; CORE_ADDR pc; - regcache = get_thread_regcache (tp->ptid); + regcache = get_thread_regcache (tp); pc = regcache_read_pc (regcache); - btrace_data_init (&btrace); btrace.format = BTRACE_FORMAT_BTS; btrace.variant.bts.blocks = NULL; - cleanup = make_cleanup_btrace_data (&btrace); - block = VEC_safe_push (btrace_block_s, btrace.variant.bts.blocks, NULL); block->begin = pc; block->end = pc; - btrace_compute_ftrace (tp, &btrace); - - do_cleanups (cleanup); + btrace_compute_ftrace (tp, &btrace, NULL); } /* See btrace.h. */ @@ -1579,12 +1590,9 @@ #if !defined (HAVE_LIBIPT) if (conf->format == BTRACE_FORMAT_PT) - error (_("GDB does not support Intel Processor Trace.")); + error (_("Intel Processor Trace support was disabled at compile time.")); #endif /* !defined (HAVE_LIBIPT) */ - if (!target_supports_btrace (conf->format)) - error (_("Target does not support branch tracing.")); - DEBUG ("enable thread %s (%s)", print_thread_id (tp), target_pid_to_str (tp->ptid)); @@ -1607,7 +1615,7 @@ This is not relevant for BTRACE_FORMAT_PT since the trace will already start at the PC at which tracing was enabled. */ if (conf->format != BTRACE_FORMAT_PT - && can_access_registers_ptid (tp->ptid)) + && can_access_registers_thread (tp)) btrace_add_pc (tp); } CATCH (exception, RETURN_MASK_ALL) @@ -1763,7 +1771,7 @@ btrace_stitch_trace (struct btrace_data *btrace, struct thread_info *tp) { /* If we don't have trace, there's nothing to do. */ - if (btrace_data_empty (btrace)) + if (btrace->empty ()) return 0; switch (btrace->format) @@ -1875,12 +1883,11 @@ /* See btrace.h. */ void -btrace_fetch (struct thread_info *tp) +btrace_fetch (struct thread_info *tp, const struct btrace_cpu *cpu) { struct btrace_thread_info *btinfo; struct btrace_target_info *tinfo; struct btrace_data btrace; - struct cleanup *cleanup; int errcode; DEBUG ("fetch thread %s (%s)", print_thread_id (tp), @@ -1904,10 +1911,7 @@ inferior_ptid = tp->ptid; /* We should not be called on running or exited threads. */ - gdb_assert (can_access_registers_ptid (tp->ptid)); - - btrace_data_init (&btrace); - cleanup = make_cleanup_btrace_data (&btrace); + gdb_assert (can_access_registers_thread (tp)); /* Let's first try to extend the trace we already have. */ if (!btinfo->functions.empty ()) @@ -1924,7 +1928,7 @@ errcode = target_read_btrace (&btrace, tinfo, BTRACE_READ_NEW); /* If we got any new trace, discard what we have. */ - if (errcode == 0 && !btrace_data_empty (&btrace)) + if (errcode == 0 && !btrace.empty ()) btrace_clear (tp); } @@ -1943,7 +1947,7 @@ error (_("Failed to read branch trace.")); /* Compute the trace, provided we have any. */ - if (!btrace_data_empty (&btrace)) + if (!btrace.empty ()) { /* Store the raw trace data. The stored data will be cleared in btrace_clear, so we always append the new trace. */ @@ -1951,10 +1955,8 @@ btrace_maint_clear (btinfo); btrace_clear_history (btinfo); - btrace_compute_ftrace (tp, &btrace); + btrace_compute_ftrace (tp, &btrace, cpu); } - - do_cleanups (cleanup); } /* See btrace.h. */ @@ -1978,7 +1980,7 @@ /* Must clear the maint data before - it depends on BTINFO->DATA. */ btrace_maint_clear (btinfo); - btrace_data_clear (&btinfo->data); + btinfo->data.clear (); btrace_clear_history (btinfo); } @@ -2002,10 +2004,11 @@ static void check_xml_btrace_version (struct gdb_xml_parser *parser, const struct gdb_xml_element *element, - void *user_data, VEC (gdb_xml_value_s) *attributes) + void *user_data, + std::vector &attributes) { const char *version - = (const char *) xml_find_attribute (attributes, "version")->value; + = (const char *) xml_find_attribute (attributes, "version")->value.get (); if (strcmp (version, "1.0") != 0) gdb_xml_error (parser, _("Unsupported btrace version: \"%s\""), version); @@ -2016,7 +2019,8 @@ static void parse_xml_btrace_block (struct gdb_xml_parser *parser, const struct gdb_xml_element *element, - void *user_data, VEC (gdb_xml_value_s) *attributes) + void *user_data, + std::vector &attributes) { struct btrace_data *btrace; struct btrace_block *block; @@ -2038,8 +2042,8 @@ gdb_xml_error (parser, _("Btrace format error.")); } - begin = (ULONGEST *) xml_find_attribute (attributes, "begin")->value; - end = (ULONGEST *) xml_find_attribute (attributes, "end")->value; + begin = (ULONGEST *) xml_find_attribute (attributes, "begin")->value.get (); + end = (ULONGEST *) xml_find_attribute (attributes, "end")->value.get (); block = VEC_safe_push (btrace_block_s, btrace->variant.bts.blocks, NULL); block->begin = *begin; @@ -2052,8 +2056,7 @@ parse_xml_raw (struct gdb_xml_parser *parser, const char *body_text, gdb_byte **pdata, size_t *psize) { - struct cleanup *cleanup; - gdb_byte *data, *bin; + gdb_byte *bin; size_t len, size; len = strlen (body_text); @@ -2062,8 +2065,8 @@ size = len / 2; - bin = data = (gdb_byte *) xmalloc (size); - cleanup = make_cleanup (xfree, data); + gdb::unique_xmalloc_ptr data ((gdb_byte *) xmalloc (size)); + bin = data.get (); /* We use hex encoding - see common/rsp-low.h. */ while (len > 0) @@ -2080,9 +2083,7 @@ len -= 2; } - discard_cleanups (cleanup); - - *pdata = data; + *pdata = data.release (); *psize = size; } @@ -2092,16 +2093,20 @@ parse_xml_btrace_pt_config_cpu (struct gdb_xml_parser *parser, const struct gdb_xml_element *element, void *user_data, - VEC (gdb_xml_value_s) *attributes) + std::vector &attributes) { struct btrace_data *btrace; const char *vendor; ULONGEST *family, *model, *stepping; - vendor = (const char *) xml_find_attribute (attributes, "vendor")->value; - family = (ULONGEST *) xml_find_attribute (attributes, "family")->value; - model = (ULONGEST *) xml_find_attribute (attributes, "model")->value; - stepping = (ULONGEST *) xml_find_attribute (attributes, "stepping")->value; + vendor = + (const char *) xml_find_attribute (attributes, "vendor")->value.get (); + family + = (ULONGEST *) xml_find_attribute (attributes, "family")->value.get (); + model + = (ULONGEST *) xml_find_attribute (attributes, "model")->value.get (); + stepping + = (ULONGEST *) xml_find_attribute (attributes, "stepping")->value.get (); btrace = (struct btrace_data *) user_data; @@ -2132,7 +2137,8 @@ static void parse_xml_btrace_pt (struct gdb_xml_parser *parser, const struct gdb_xml_element *element, - void *user_data, VEC (gdb_xml_value_s) *attributes) + void *user_data, + std::vector &attributes) { struct btrace_data *btrace; @@ -2196,25 +2202,25 @@ void parse_xml_btrace (struct btrace_data *btrace, const char *buffer) { - struct cleanup *cleanup; int errcode; #if defined (HAVE_LIBEXPAT) - btrace->format = BTRACE_FORMAT_NONE; + btrace_data result; + result.format = BTRACE_FORMAT_NONE; - cleanup = make_cleanup_btrace_data (btrace); errcode = gdb_xml_parse_quick (_("btrace"), "btrace.dtd", btrace_elements, - buffer, btrace); + buffer, &result); if (errcode != 0) error (_("Error parsing branch trace.")); /* Keep parse results. */ - discard_cleanups (cleanup); + *btrace = std::move (result); #else /* !defined (HAVE_LIBEXPAT) */ - error (_("Cannot process branch trace. XML parsing is not supported.")); + error (_("Cannot process branch trace. XML support was disabled at " + "compile time.")); #endif /* !defined (HAVE_LIBEXPAT) */ } @@ -2226,7 +2232,8 @@ static void parse_xml_btrace_conf_bts (struct gdb_xml_parser *parser, const struct gdb_xml_element *element, - void *user_data, VEC (gdb_xml_value_s) *attributes) + void *user_data, + std::vector &attributes) { struct btrace_config *conf; struct gdb_xml_value *size; @@ -2237,7 +2244,7 @@ size = xml_find_attribute (attributes, "size"); if (size != NULL) - conf->bts.size = (unsigned int) *(ULONGEST *) size->value; + conf->bts.size = (unsigned int) *(ULONGEST *) size->value.get (); } /* Parse a btrace-conf "pt" xml record. */ @@ -2245,7 +2252,8 @@ static void parse_xml_btrace_conf_pt (struct gdb_xml_parser *parser, const struct gdb_xml_element *element, - void *user_data, VEC (gdb_xml_value_s) *attributes) + void *user_data, + std::vector &attributes) { struct btrace_config *conf; struct gdb_xml_value *size; @@ -2256,7 +2264,7 @@ size = xml_find_attribute (attributes, "size"); if (size != NULL) - conf->pt.size = (unsigned int) *(ULONGEST *) size->value; + conf->pt.size = (unsigned int) *(ULONGEST *) size->value.get (); } static const struct gdb_xml_attribute btrace_conf_pt_attributes[] = { @@ -2306,7 +2314,8 @@ #else /* !defined (HAVE_LIBEXPAT) */ - error (_("XML parsing is not supported.")); + error (_("Cannot process the branch trace configuration. XML support " + "was disabled at compile time.")); #endif /* !defined (HAVE_LIBEXPAT) */ } @@ -2819,22 +2828,6 @@ return btrace_insn_cmp (&begin, &end) == 0; } -/* Forward the cleanup request. */ - -static void -do_btrace_data_cleanup (void *arg) -{ - btrace_data_fini ((struct btrace_data *) arg); -} - -/* See btrace.h. */ - -struct cleanup * -make_cleanup_btrace_data (struct btrace_data *data) -{ - return make_cleanup (do_btrace_data_cleanup, data); -} - #if defined (HAVE_LIBIPT) /* Print a single packet. */ @@ -3020,6 +3013,7 @@ btrace_maint_update_pt_packets (struct btrace_thread_info *btinfo) { struct pt_packet_decoder *decoder; + const struct btrace_cpu *cpu; struct btrace_data_pt *pt; struct pt_config config; int errcode; @@ -3036,15 +3030,23 @@ config.begin = pt->data; config.end = pt->data + pt->size; - config.cpu.vendor = pt_translate_cpu_vendor (pt->config.cpu.vendor); - config.cpu.family = pt->config.cpu.family; - config.cpu.model = pt->config.cpu.model; - config.cpu.stepping = pt->config.cpu.stepping; - - errcode = pt_cpu_errata (&config.errata, &config.cpu); - if (errcode < 0) - error (_("Failed to configure the Intel Processor Trace decoder: %s."), - pt_errstr (pt_errcode (errcode))); + cpu = record_btrace_get_cpu (); + if (cpu == nullptr) + cpu = &pt->config.cpu; + + /* We treat an unknown vendor as 'no errata'. */ + if (cpu->vendor != CV_UNKNOWN) + { + config.cpu.vendor = pt_translate_cpu_vendor (cpu->vendor); + config.cpu.family = cpu->family; + config.cpu.model = cpu->model; + config.cpu.stepping = cpu->stepping; + + errcode = pt_cpu_errata (&config.errata, &config.cpu); + if (errcode < 0) + error (_("Failed to configure the Intel Processor Trace " + "decoder: %s."), pt_errstr (pt_errcode (errcode))); + } decoder = pt_pkt_alloc_decoder (&config); if (decoder == NULL) @@ -3229,10 +3231,9 @@ maint_btrace_packet_history_cmd (const char *arg, int from_tty) { struct btrace_thread_info *btinfo; - struct thread_info *tp; unsigned int size, begin, end, from, to; - tp = find_thread_ptid (inferior_ptid); + thread_info *tp = find_thread_ptid (inferior_ptid); if (tp == NULL) error (_("No thread.")); @@ -3333,21 +3334,18 @@ static void maint_btrace_clear_packet_history_cmd (const char *args, int from_tty) { - struct btrace_thread_info *btinfo; - struct thread_info *tp; - if (args != NULL && *args != 0) error (_("Invalid argument.")); - tp = find_thread_ptid (inferior_ptid); - if (tp == NULL) + if (inferior_ptid == null_ptid) error (_("No thread.")); - btinfo = &tp->btrace; + thread_info *tp = inferior_thread (); + btrace_thread_info *btinfo = &tp->btrace; /* Must clear the maint data before - it depends on BTINFO->DATA. */ btrace_maint_clear (btinfo); - btrace_data_clear (&btinfo->data); + btinfo->data.clear (); } /* The "maintenance btrace clear" command. */ @@ -3355,15 +3353,13 @@ static void maint_btrace_clear_cmd (const char *args, int from_tty) { - struct thread_info *tp; - if (args != NULL && *args != 0) error (_("Invalid argument.")); - tp = find_thread_ptid (inferior_ptid); - if (tp == NULL) + if (inferior_ptid == null_ptid) error (_("No thread.")); + thread_info *tp = inferior_thread (); btrace_clear (tp); } @@ -3418,16 +3414,16 @@ maint_info_btrace_cmd (const char *args, int from_tty) { struct btrace_thread_info *btinfo; - struct thread_info *tp; const struct btrace_config *conf; if (args != NULL && *args != 0) error (_("Invalid argument.")); - tp = find_thread_ptid (inferior_ptid); - if (tp == NULL) + if (inferior_ptid == null_ptid) error (_("No thread.")); + thread_info *tp = inferior_thread (); + btinfo = &tp->btrace; conf = btrace_conf (btinfo); diff -Nru gdb-8.1/gdb/btrace.h gdb-8.2/gdb/btrace.h --- gdb-8.1/gdb/btrace.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/btrace.h 2018-09-05 07:27:13.000000000 +0000 @@ -385,8 +385,10 @@ extern const char *btrace_decode_error (enum btrace_format format, int errcode); -/* Fetch the branch trace for a single thread. */ -extern void btrace_fetch (struct thread_info *); +/* Fetch the branch trace for a single thread. If CPU is not NULL, assume + CPU for trace decode. */ +extern void btrace_fetch (struct thread_info *, + const struct btrace_cpu *cpu); /* Clear the branch trace for a single thread. */ extern void btrace_clear (struct thread_info *); @@ -505,7 +507,4 @@ /* Return non-zero if the branch trace for TP is empty; zero otherwise. */ extern int btrace_is_empty (struct thread_info *tp); -/* Create a cleanup for DATA. */ -extern struct cleanup *make_cleanup_btrace_data (struct btrace_data *data); - #endif /* BTRACE_H */ diff -Nru gdb-8.1/gdb/build-id.c gdb-8.2/gdb/build-id.c --- gdb-8.1/gdb/build-id.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/build-id.c 2018-09-05 07:27:13.000000000 +0000 @@ -70,62 +70,46 @@ gdb_bfd_ref_ptr build_id_to_debug_bfd (size_t build_id_len, const bfd_byte *build_id) { - char *link, *debugdir; - VEC (char_ptr) *debugdir_vec; - struct cleanup *back_to; - int ix; gdb_bfd_ref_ptr abfd; - int alloc_len; - - /* DEBUG_FILE_DIRECTORY/.build-id/ab/cdef */ - alloc_len = (strlen (debug_file_directory) - + (sizeof "/.build-id/" - 1) + 1 - + 2 * build_id_len + (sizeof ".debug" - 1) + 1); - link = (char *) alloca (alloc_len); /* Keep backward compatibility so that DEBUG_FILE_DIRECTORY being "" will cause "/.build-id/..." lookups. */ - debugdir_vec = dirnames_to_char_ptr_vec (debug_file_directory); - back_to = make_cleanup_free_char_ptr_vec (debugdir_vec); + std::vector> debugdir_vec + = dirnames_to_char_ptr_vec (debug_file_directory); - for (ix = 0; VEC_iterate (char_ptr, debugdir_vec, ix, debugdir); ++ix) + for (const gdb::unique_xmalloc_ptr &debugdir : debugdir_vec) { - size_t debugdir_len = strlen (debugdir); const gdb_byte *data = build_id; size_t size = build_id_len; - char *s; - char *filename = NULL; - struct cleanup *inner; - - memcpy (link, debugdir, debugdir_len); - s = &link[debugdir_len]; - s += sprintf (s, "/.build-id/"); + + std::string link = debugdir.get (); + link += "/.build-id/"; + if (size > 0) { size--; - s += sprintf (s, "%02x", (unsigned) *data++); + string_appendf (link, "%02x/", (unsigned) *data++); } - if (size > 0) - *s++ = '/'; + while (size-- > 0) - s += sprintf (s, "%02x", (unsigned) *data++); - strcpy (s, ".debug"); + string_appendf (link, "%02x", (unsigned) *data++); + + link += ".debug"; if (separate_debug_file_debug) - printf_unfiltered (_(" Trying %s\n"), link); + printf_unfiltered (_(" Trying %s\n"), link.c_str ()); /* lrealpath() is expensive even for the usually non-existent files. */ - if (access (link, F_OK) == 0) - filename = lrealpath (link); + gdb::unique_xmalloc_ptr filename; + if (access (link.c_str (), F_OK) == 0) + filename.reset (lrealpath (link.c_str ())); if (filename == NULL) continue; /* We expect to be silent on the non-existing files. */ - inner = make_cleanup (xfree, filename); - abfd = gdb_bfd_open (filename, gnutarget, -1); - do_cleanups (inner); + abfd = gdb_bfd_open (filename.get (), gnutarget, -1); if (abfd == NULL) continue; @@ -136,13 +120,12 @@ abfd.release (); } - do_cleanups (back_to); return abfd; } /* See build-id.h. */ -char * +std::string find_separate_debug_file_by_buildid (struct objfile *objfile) { const struct bfd_build_id *build_id; @@ -163,7 +146,8 @@ warning (_("\"%s\": separate debug info file has no debug info"), bfd_get_filename (abfd.get ())); else if (abfd != NULL) - return xstrdup (bfd_get_filename (abfd.get ())); + return std::string (bfd_get_filename (abfd.get ())); } - return NULL; + + return std::string (); } diff -Nru gdb-8.1/gdb/build-id.h gdb-8.2/gdb/build-id.h --- gdb-8.1/gdb/build-id.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/build-id.h 2018-09-05 07:44:28.000000000 +0000 @@ -41,10 +41,10 @@ const bfd_byte *build_id); /* Find the separate debug file for OBJFILE, by using the build-id - associated with OBJFILE's BFD. If successful, returns a malloc'd - file name for the separate debug file. The caller must free this. - Otherwise, returns NULL. */ + associated with OBJFILE's BFD. If successful, returns the file name for the + separate debug file, otherwise, return an empty string. */ -extern char *find_separate_debug_file_by_buildid (struct objfile *objfile); +extern std::string find_separate_debug_file_by_buildid + (struct objfile *objfile); #endif /* BUILD_ID_H */ diff -Nru gdb-8.1/gdb/buildsym.c gdb-8.2/gdb/buildsym.c --- gdb-8.1/gdb/buildsym.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/buildsym.c 2018-09-05 07:44:28.000000000 +0000 @@ -445,15 +445,13 @@ { if (symbol) { - complaint (&symfile_complaints, - _("block end address less than block " + complaint (_("block end address less than block " "start address in %s (patched it)"), SYMBOL_PRINT_NAME (symbol)); } else { - complaint (&symfile_complaints, - _("block end address %s less than block " + complaint (_("block end address %s less than block " "start address %s (patched it)"), paddress (gdbarch, BLOCK_END (block)), paddress (gdbarch, BLOCK_START (block))); @@ -485,14 +483,12 @@ { if (symbol) { - complaint (&symfile_complaints, - _("inner block not inside outer block in %s"), + complaint (_("inner block not inside outer block in %s"), SYMBOL_PRINT_NAME (symbol)); } else { - complaint (&symfile_complaints, - _("inner block (%s-%s) not " + complaint (_("inner block (%s-%s) not " "inside outer block (%s-%s)"), paddress (gdbarch, BLOCK_START (pblock->block)), paddress (gdbarch, BLOCK_END (pblock->block)), @@ -653,7 +649,7 @@ CORE_ADDR start = BLOCK_START (BLOCKVECTOR_BLOCK (blockvector, i)); - complaint (&symfile_complaints, _("block at %s out of order"), + complaint (_("block at %s out of order"), hex_string ((LONGEST) start)); } } @@ -1237,8 +1233,7 @@ same. FIXME: Find out why it is happening. This is not believed to happen in most cases (even for coffread.c); it used to be an abort(). */ - complaint (&symfile_complaints, - _("Context stack not empty in end_symtab")); + complaint (_("Context stack not empty in end_symtab")); context_stack_depth = 0; } } @@ -1585,17 +1580,15 @@ if (context_stack_depth > 0) { - complaint (&symfile_complaints, - _("Context stack not empty in augment_type_symtab")); + complaint (_("Context stack not empty in augment_type_symtab")); context_stack_depth = 0; } if (pending_blocks != NULL) - complaint (&symfile_complaints, _("Blocks in a type symtab")); + complaint (_("Blocks in a type symtab")); if (pending_macros != NULL) - complaint (&symfile_complaints, _("Macro in a type symtab")); + complaint (_("Macro in a type symtab")); if (have_line_numbers) - complaint (&symfile_complaints, - _("Line numbers recorded in a type symtab")); + complaint (_("Line numbers recorded in a type symtab")); if (file_symbols != NULL) { diff -Nru gdb-8.1/gdb/c-exp.c gdb-8.2/gdb/c-exp.c --- gdb-8.1/gdb/c-exp.c 2018-01-31 03:02:03.000000000 +0000 +++ gdb-8.2/gdb/c-exp.c 2018-09-05 07:47:44.000000000 +0000 @@ -72,6 +72,7 @@ #include "parser-defs.h" #include "language.h" #include "c-lang.h" +#include "c-support.h" #include "bfd.h" /* Required by objfiles.h. */ #include "symfile.h" /* Required by objfiles.h. */ #include "objfiles.h" /* For have_full_symbols and have_partial_symbols */ @@ -99,12 +100,12 @@ static int yylex (void); -void yyerror (const char *); +static void yyerror (const char *); static int type_aggregate_p (struct type *); -#line 108 "c-exp.c" /* yacc.c:339 */ +#line 109 "c-exp.c.tmp" /* yacc.c:339 */ # ifndef YY_NULLPTRPTR # if defined __cplusplus && 201103L <= __cplusplus @@ -155,49 +156,50 @@ UNION = 274, ENUM = 275, SIZEOF = 276, - UNSIGNED = 277, - COLONCOLON = 278, - TEMPLATE = 279, - ERROR = 280, - NEW = 281, - DELETE = 282, - REINTERPRET_CAST = 283, - DYNAMIC_CAST = 284, - STATIC_CAST = 285, - CONST_CAST = 286, - ENTRY = 287, - TYPEOF = 288, - DECLTYPE = 289, - TYPEID = 290, - SIGNED_KEYWORD = 291, - LONG = 292, - SHORT = 293, - INT_KEYWORD = 294, - CONST_KEYWORD = 295, - VOLATILE_KEYWORD = 296, - DOUBLE_KEYWORD = 297, - VARIABLE = 298, - ASSIGN_MODIFY = 299, - TRUEKEYWORD = 300, - FALSEKEYWORD = 301, - ABOVE_COMMA = 302, - OROR = 303, - ANDAND = 304, - EQUAL = 305, - NOTEQUAL = 306, - LEQ = 307, - GEQ = 308, - LSH = 309, - RSH = 310, - UNARY = 311, - INCREMENT = 312, - DECREMENT = 313, - ARROW = 314, - ARROW_STAR = 315, - DOT_STAR = 316, - BLOCKNAME = 317, - FILENAME = 318, - DOTDOTDOT = 319 + ALIGNOF = 277, + UNSIGNED = 278, + COLONCOLON = 279, + TEMPLATE = 280, + ERROR = 281, + NEW = 282, + DELETE = 283, + REINTERPRET_CAST = 284, + DYNAMIC_CAST = 285, + STATIC_CAST = 286, + CONST_CAST = 287, + ENTRY = 288, + TYPEOF = 289, + DECLTYPE = 290, + TYPEID = 291, + SIGNED_KEYWORD = 292, + LONG = 293, + SHORT = 294, + INT_KEYWORD = 295, + CONST_KEYWORD = 296, + VOLATILE_KEYWORD = 297, + DOUBLE_KEYWORD = 298, + VARIABLE = 299, + ASSIGN_MODIFY = 300, + TRUEKEYWORD = 301, + FALSEKEYWORD = 302, + ABOVE_COMMA = 303, + OROR = 304, + ANDAND = 305, + EQUAL = 306, + NOTEQUAL = 307, + LEQ = 308, + GEQ = 309, + LSH = 310, + RSH = 311, + UNARY = 312, + INCREMENT = 313, + DECREMENT = 314, + ARROW = 315, + ARROW_STAR = 316, + DOT_STAR = 317, + BLOCKNAME = 318, + FILENAME = 319, + DOTDOTDOT = 320 }; #endif /* Tokens. */ @@ -220,56 +222,57 @@ #define UNION 274 #define ENUM 275 #define SIZEOF 276 -#define UNSIGNED 277 -#define COLONCOLON 278 -#define TEMPLATE 279 -#define ERROR 280 -#define NEW 281 -#define DELETE 282 -#define REINTERPRET_CAST 283 -#define DYNAMIC_CAST 284 -#define STATIC_CAST 285 -#define CONST_CAST 286 -#define ENTRY 287 -#define TYPEOF 288 -#define DECLTYPE 289 -#define TYPEID 290 -#define SIGNED_KEYWORD 291 -#define LONG 292 -#define SHORT 293 -#define INT_KEYWORD 294 -#define CONST_KEYWORD 295 -#define VOLATILE_KEYWORD 296 -#define DOUBLE_KEYWORD 297 -#define VARIABLE 298 -#define ASSIGN_MODIFY 299 -#define TRUEKEYWORD 300 -#define FALSEKEYWORD 301 -#define ABOVE_COMMA 302 -#define OROR 303 -#define ANDAND 304 -#define EQUAL 305 -#define NOTEQUAL 306 -#define LEQ 307 -#define GEQ 308 -#define LSH 309 -#define RSH 310 -#define UNARY 311 -#define INCREMENT 312 -#define DECREMENT 313 -#define ARROW 314 -#define ARROW_STAR 315 -#define DOT_STAR 316 -#define BLOCKNAME 317 -#define FILENAME 318 -#define DOTDOTDOT 319 +#define ALIGNOF 277 +#define UNSIGNED 278 +#define COLONCOLON 279 +#define TEMPLATE 280 +#define ERROR 281 +#define NEW 282 +#define DELETE 283 +#define REINTERPRET_CAST 284 +#define DYNAMIC_CAST 285 +#define STATIC_CAST 286 +#define CONST_CAST 287 +#define ENTRY 288 +#define TYPEOF 289 +#define DECLTYPE 290 +#define TYPEID 291 +#define SIGNED_KEYWORD 292 +#define LONG 293 +#define SHORT 294 +#define INT_KEYWORD 295 +#define CONST_KEYWORD 296 +#define VOLATILE_KEYWORD 297 +#define DOUBLE_KEYWORD 298 +#define VARIABLE 299 +#define ASSIGN_MODIFY 300 +#define TRUEKEYWORD 301 +#define FALSEKEYWORD 302 +#define ABOVE_COMMA 303 +#define OROR 304 +#define ANDAND 305 +#define EQUAL 306 +#define NOTEQUAL 307 +#define LEQ 308 +#define GEQ 309 +#define LSH 310 +#define RSH 311 +#define UNARY 312 +#define INCREMENT 313 +#define DECREMENT 314 +#define ARROW 315 +#define ARROW_STAR 316 +#define DOT_STAR 317 +#define BLOCKNAME 318 +#define FILENAME 319 +#define DOTDOTDOT 320 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED union YYSTYPE { -#line 83 "c-exp.y" /* yacc.c:355 */ +#line 84 "c-exp.y" /* yacc.c:355 */ LONGEST lval; struct { @@ -297,7 +300,7 @@ struct objc_class_str theclass; -#line 301 "c-exp.c" /* yacc.c:355 */ +#line 304 "c-exp.c.tmp" /* yacc.c:355 */ }; typedef union YYSTYPE YYSTYPE; @@ -313,7 +316,7 @@ /* Copy the second part of user declarations. */ -#line 110 "c-exp.y" /* yacc.c:358 */ +#line 111 "c-exp.y" /* yacc.c:358 */ /* YYSTYPE gets defined by %union */ static int parse_number (struct parser_state *par_state, @@ -328,7 +331,7 @@ #define YYPRINT(FILE, TYPE, VALUE) c_print_token (FILE, TYPE, VALUE) #endif -#line 332 "c-exp.c" /* yacc.c:358 */ +#line 335 "c-exp.c.tmp" /* yacc.c:358 */ #ifdef short # undef short @@ -567,23 +570,23 @@ #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 169 +#define YYFINAL 171 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1705 +#define YYLAST 1682 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 89 +#define YYNTOKENS 90 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 49 /* YYNRULES -- Number of rules. */ -#define YYNRULES 267 +#define YYNRULES 268 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 421 +#define YYNSTATES 425 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 319 +#define YYMAXUTOK 320 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -595,16 +598,16 @@ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 83, 2, 2, 2, 69, 55, 2, - 78, 82, 67, 65, 47, 66, 75, 68, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 86, 2, - 58, 49, 59, 50, 64, 2, 2, 2, 2, 2, + 2, 2, 2, 84, 2, 2, 2, 70, 56, 2, + 79, 83, 68, 66, 48, 67, 76, 69, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 87, 2, + 59, 50, 60, 51, 65, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 77, 2, 85, 54, 2, 2, 2, 2, 2, + 2, 78, 2, 86, 55, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 87, 53, 88, 84, 2, 2, 2, + 2, 2, 2, 88, 54, 89, 85, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -622,41 +625,42 @@ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 48, 51, 52, 56, 57, 60, 61, 62, - 63, 70, 71, 72, 73, 74, 76, 79, 80, 81 + 45, 46, 47, 49, 52, 53, 57, 58, 61, 62, + 63, 64, 71, 72, 73, 74, 75, 77, 80, 81, + 82 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 227, 227, 228, 231, 235, 239, 245, 252, 253, - 258, 262, 266, 270, 274, 278, 282, 286, 290, 294, - 298, 302, 306, 310, 316, 323, 333, 339, 346, 354, - 358, 364, 371, 381, 387, 394, 402, 406, 410, 420, - 419, 443, 442, 459, 458, 467, 469, 472, 473, 476, - 478, 480, 487, 484, 498, 508, 507, 533, 537, 540, - 544, 548, 571, 582, 589, 590, 593, 601, 604, 611, - 615, 619, 625, 629, 633, 637, 641, 645, 649, 653, - 657, 661, 665, 669, 673, 677, 681, 685, 689, 693, - 697, 701, 705, 709, 716, 723, 732, 745, 752, 755, - 761, 768, 788, 793, 797, 801, 808, 825, 843, 876, - 885, 893, 903, 911, 917, 928, 943, 965, 978, 1002, - 1011, 1012, 1040, 1111, 1115, 1116, 1119, 1122, 1123, 1127, - 1128, 1133, 1132, 1136, 1135, 1138, 1140, 1142, 1144, 1148, - 1157, 1159, 1160, 1163, 1165, 1172, 1179, 1185, 1192, 1194, - 1196, 1198, 1202, 1204, 1216, 1220, 1222, 1226, 1230, 1234, - 1238, 1242, 1246, 1250, 1254, 1258, 1262, 1266, 1270, 1274, - 1278, 1282, 1286, 1290, 1294, 1298, 1302, 1306, 1310, 1314, - 1318, 1322, 1326, 1332, 1338, 1341, 1346, 1352, 1355, 1360, - 1366, 1369, 1374, 1380, 1383, 1388, 1394, 1398, 1402, 1406, - 1413, 1417, 1419, 1423, 1424, 1432, 1440, 1451, 1453, 1462, - 1468, 1475, 1476, 1483, 1487, 1488, 1491, 1492, 1495, 1499, - 1501, 1505, 1507, 1509, 1511, 1513, 1515, 1517, 1519, 1521, - 1523, 1525, 1527, 1529, 1531, 1533, 1535, 1537, 1539, 1541, - 1543, 1583, 1585, 1587, 1589, 1591, 1593, 1595, 1597, 1599, - 1601, 1603, 1605, 1607, 1609, 1611, 1613, 1615, 1632, 1633, - 1634, 1635, 1636, 1637, 1640, 1641, 1649, 1661 + 0, 228, 228, 229, 232, 236, 240, 246, 253, 254, + 259, 263, 267, 271, 275, 279, 283, 287, 291, 295, + 299, 303, 307, 311, 315, 321, 328, 338, 344, 351, + 359, 363, 369, 376, 386, 392, 399, 407, 411, 415, + 425, 424, 448, 447, 464, 463, 472, 474, 477, 478, + 481, 483, 485, 492, 489, 503, 513, 512, 538, 542, + 545, 549, 553, 576, 587, 594, 595, 598, 606, 609, + 616, 620, 624, 630, 634, 638, 642, 646, 650, 654, + 658, 662, 666, 670, 674, 678, 682, 686, 690, 694, + 698, 702, 706, 710, 714, 721, 728, 737, 750, 757, + 760, 766, 773, 793, 798, 802, 806, 813, 830, 848, + 881, 890, 898, 908, 916, 922, 933, 948, 966, 979, + 1003, 1012, 1013, 1041, 1119, 1123, 1124, 1127, 1130, 1131, + 1135, 1136, 1141, 1140, 1144, 1143, 1146, 1148, 1150, 1152, + 1156, 1165, 1167, 1168, 1171, 1173, 1180, 1187, 1193, 1200, + 1202, 1204, 1206, 1210, 1212, 1224, 1228, 1230, 1234, 1238, + 1242, 1246, 1250, 1254, 1258, 1262, 1266, 1270, 1274, 1278, + 1282, 1286, 1290, 1294, 1298, 1302, 1306, 1310, 1314, 1318, + 1322, 1326, 1330, 1334, 1340, 1346, 1349, 1354, 1360, 1363, + 1368, 1374, 1377, 1382, 1388, 1391, 1396, 1402, 1406, 1410, + 1414, 1421, 1425, 1427, 1431, 1432, 1440, 1448, 1459, 1461, + 1470, 1476, 1483, 1484, 1491, 1495, 1496, 1499, 1500, 1503, + 1507, 1509, 1513, 1515, 1517, 1519, 1521, 1523, 1525, 1527, + 1529, 1531, 1533, 1535, 1537, 1539, 1541, 1543, 1545, 1547, + 1549, 1551, 1591, 1593, 1595, 1597, 1599, 1601, 1603, 1605, + 1607, 1609, 1611, 1613, 1615, 1617, 1619, 1621, 1623, 1640, + 1641, 1642, 1643, 1644, 1645, 1648, 1649, 1657, 1669 }; #endif @@ -668,22 +672,23 @@ "$end", "error", "$undefined", "INT", "FLOAT", "STRING", "NSSTRING", "SELECTOR", "CHAR", "NAME", "UNKNOWN_CPP_NAME", "COMPLETE", "TYPENAME", "CLASSNAME", "OBJC_LBRAC", "NAME_OR_INT", "OPERATOR", "STRUCT", "CLASS", - "UNION", "ENUM", "SIZEOF", "UNSIGNED", "COLONCOLON", "TEMPLATE", "ERROR", - "NEW", "DELETE", "REINTERPRET_CAST", "DYNAMIC_CAST", "STATIC_CAST", - "CONST_CAST", "ENTRY", "TYPEOF", "DECLTYPE", "TYPEID", "SIGNED_KEYWORD", - "LONG", "SHORT", "INT_KEYWORD", "CONST_KEYWORD", "VOLATILE_KEYWORD", - "DOUBLE_KEYWORD", "VARIABLE", "ASSIGN_MODIFY", "TRUEKEYWORD", - "FALSEKEYWORD", "','", "ABOVE_COMMA", "'='", "'?'", "OROR", "ANDAND", - "'|'", "'^'", "'&'", "EQUAL", "NOTEQUAL", "'<'", "'>'", "LEQ", "GEQ", - "LSH", "RSH", "'@'", "'+'", "'-'", "'*'", "'/'", "'%'", "UNARY", - "INCREMENT", "DECREMENT", "ARROW", "ARROW_STAR", "'.'", "DOT_STAR", - "'['", "'('", "BLOCKNAME", "FILENAME", "DOTDOTDOT", "')'", "'!'", "'~'", - "']'", "':'", "'{'", "'}'", "$accept", "start", "type_exp", "exp1", - "exp", "$@1", "$@2", "$@3", "msglist", "msgarglist", "msgarg", "$@4", - "$@5", "lcurly", "arglist", "function_method", "function_method_void", - "function_method_void_or_typelist", "rcurly", "string_exp", "block", - "variable", "qualified_name", "space_identifier", "const_or_volatile", - "cv_with_space_id", "const_or_volatile_or_space_identifier_noopt", + "UNION", "ENUM", "SIZEOF", "ALIGNOF", "UNSIGNED", "COLONCOLON", + "TEMPLATE", "ERROR", "NEW", "DELETE", "REINTERPRET_CAST", "DYNAMIC_CAST", + "STATIC_CAST", "CONST_CAST", "ENTRY", "TYPEOF", "DECLTYPE", "TYPEID", + "SIGNED_KEYWORD", "LONG", "SHORT", "INT_KEYWORD", "CONST_KEYWORD", + "VOLATILE_KEYWORD", "DOUBLE_KEYWORD", "VARIABLE", "ASSIGN_MODIFY", + "TRUEKEYWORD", "FALSEKEYWORD", "','", "ABOVE_COMMA", "'='", "'?'", + "OROR", "ANDAND", "'|'", "'^'", "'&'", "EQUAL", "NOTEQUAL", "'<'", "'>'", + "LEQ", "GEQ", "LSH", "RSH", "'@'", "'+'", "'-'", "'*'", "'/'", "'%'", + "UNARY", "INCREMENT", "DECREMENT", "ARROW", "ARROW_STAR", "'.'", + "DOT_STAR", "'['", "'('", "BLOCKNAME", "FILENAME", "DOTDOTDOT", "')'", + "'!'", "'~'", "']'", "':'", "'{'", "'}'", "$accept", "start", "type_exp", + "exp1", "exp", "$@1", "$@2", "$@3", "msglist", "msgarglist", "msgarg", + "$@4", "$@5", "lcurly", "arglist", "function_method", + "function_method_void", "function_method_void_or_typelist", "rcurly", + "string_exp", "block", "variable", "qualified_name", "space_identifier", + "const_or_volatile", "cv_with_space_id", + "const_or_volatile_or_space_identifier_noopt", "const_or_volatile_or_space_identifier", "ptr_operator", "$@6", "$@7", "ptr_operator_ts", "abs_decl", "direct_abs_decl", "array_mod", "func_mod", "type", "typebase", "type_name", "parameter_typelist", @@ -702,20 +707,20 @@ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 44, 302, 61, - 63, 303, 304, 124, 94, 38, 305, 306, 60, 62, - 307, 308, 309, 310, 64, 43, 45, 42, 47, 37, - 311, 312, 313, 314, 315, 46, 316, 91, 40, 317, - 318, 319, 41, 33, 126, 93, 58, 123, 125 + 295, 296, 297, 298, 299, 300, 301, 302, 44, 303, + 61, 63, 304, 305, 124, 94, 38, 306, 307, 60, + 62, 308, 309, 310, 311, 64, 43, 45, 42, 47, + 37, 312, 313, 314, 315, 316, 46, 317, 91, 40, + 318, 319, 320, 41, 33, 126, 93, 58, 123, 125 }; # endif -#define YYPACT_NINF -218 +#define YYPACT_NINF -220 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-218))) + (!!((Yystate) == (-220))) -#define YYTABLE_NINF -126 +#define YYTABLE_NINF -127 #define yytable_value_is_error(Yytable_value) \ 0 @@ -724,49 +729,49 @@ STATE-NUM. */ static const yytype_int16 yypact[] = { - 476, -218, -218, -218, -218, -26, -218, -218, -16, 32, - 646, -218, 890, 222, 263, 278, 302, 731, 111, 31, - 245, 10, 14, 37, 50, 39, 43, 61, 116, 325, - 184, -218, 105, 118, -218, -218, -218, -218, 816, 816, - 816, 816, 816, 816, 476, 138, -218, 816, 816, -218, - 188, -218, 145, 1430, 391, 172, -218, 173, 192, 175, - -218, -218, 139, -218, 751, -218, 51, 311, -218, 140, - -218, 183, 245, -218, 202, 32, -218, 1430, -218, 120, - 20, 36, -218, -218, -218, -218, -218, -218, -218, -218, - -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, - -218, -218, -218, -218, -218, -218, -218, 122, 137, -218, - -218, 267, -218, -218, -218, -218, -218, -218, -218, -218, - 210, -218, 217, -218, 218, -218, 224, 32, 476, 452, - -218, 70, 197, -218, -218, -218, -218, -218, 181, 666, - 666, 666, 666, 561, 816, 476, 99, -218, -218, 204, - 212, 205, -218, -218, 214, 223, -218, -218, -218, 452, - 452, 452, 452, 452, 452, 167, 4, 452, 452, -218, - 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, - 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, - 816, 816, 816, 816, -218, -218, 48, 816, 72, 816, - 816, 996, 189, 1430, -23, 245, -218, 245, 254, 89, - 51, -218, 11, -1, 209, -218, 19, 228, 215, 12, - -218, 47, -218, -218, -218, 203, 816, 245, 248, 33, - 33, 33, -218, 199, 207, 213, 230, -218, -218, 85, - -218, -218, -218, -218, -218, 227, 261, -218, -218, 751, - 257, 262, 268, 269, 1038, 238, 1094, 244, 1150, 293, - -218, -218, -218, 296, 297, -218, -218, -218, 816, -218, - 1430, -12, 1430, 1430, 926, 1486, 1515, 1542, 1571, 1598, - 1627, 1627, 1059, 1059, 1059, 1059, 1115, 1115, 1171, 1227, - 1227, 452, 452, 452, -218, 32, 245, -218, 327, 25, - -218, 245, -218, 328, 25, -11, 30, 816, -218, 258, - 301, -218, 816, 816, -218, -218, 320, -218, -218, -218, - 259, -218, 215, 215, 51, 264, -218, -218, 273, 277, - -218, 47, 334, -218, -218, -218, 29, -218, 245, 816, - 816, 265, 33, -218, 279, 283, 284, -218, -218, -218, - -218, -218, -218, -218, -218, 318, 304, 305, 306, 307, - -218, -218, -218, -218, -218, -218, -218, -218, 452, -218, - 816, 368, -218, 369, -218, -218, -218, 38, 89, 1005, - 452, 1430, -218, -218, -218, -218, -218, -218, 51, -218, - -218, 1430, 1430, -218, -218, 279, 816, -218, -218, -218, - 816, 816, 816, 816, 1459, -218, -218, -218, -218, -218, - -218, -218, 1430, 1206, 1262, 1318, 1374, -218, -218, -218, - -218 + 481, -220, -220, -220, -220, -52, -220, -220, -39, 37, + 235, -220, 814, 83, 360, 368, 376, 653, -26, 100, + 34, 434, -3, 31, 50, 54, 7, 43, 52, 197, + 301, 29, -220, 40, 93, -220, -220, -220, -220, 739, + 739, 739, 739, 739, 739, 481, 117, -220, 739, 739, + -220, 157, -220, 113, 1270, 395, 166, -220, 168, 192, + 174, -220, -220, 134, -220, 1639, -220, 146, 32, -220, + 135, -220, 173, 434, -220, 136, 37, -220, 1270, -220, + 115, 1, 27, -220, -220, -220, -220, -220, -220, -220, + -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, + -220, -220, -220, -220, -220, -220, -220, -220, 122, 127, + -220, -220, 269, -220, -220, -220, -220, -220, -220, -220, + -220, 208, -220, 211, -220, 212, -220, 214, 37, 481, + 457, 1607, -220, 87, 189, -220, -220, -220, -220, -220, + 171, 1607, 1607, 1607, 1607, 567, 739, 481, 104, -220, + -220, 191, 193, 80, -220, -220, 206, 213, -220, -220, + -220, 457, 457, 457, 457, 457, 457, 175, -6, 457, + 457, -220, 739, 739, 739, 739, 739, 739, 739, 739, + 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, + 739, 739, 739, 739, 739, 739, -220, -220, 48, 739, + 274, 739, 739, 931, 165, 1270, -13, 434, -220, 434, + 251, 30, 146, -220, 3, 28, 195, -220, 11, 922, + 200, 23, -220, 51, -220, -220, -220, 204, 739, 434, + 248, 39, 39, 39, -220, 194, 202, 207, 209, -220, + -220, 164, -220, -220, -220, -220, -220, 215, 229, 252, + -220, -220, 1639, 236, 237, 253, 257, 1003, 238, 1060, + 243, 1095, 278, -220, -220, -220, 288, 289, -220, -220, + -220, 739, -220, 1270, -24, 1270, 1270, 851, 1336, 1368, + 1393, 1425, 1450, 1482, 1482, 1507, 1507, 1507, 1507, 1022, + 1022, 1521, 1539, 1539, 457, 457, 457, -220, 37, 434, + -220, 319, 199, -220, 434, -220, 320, 199, -12, 228, + 739, -220, 259, 287, -220, 739, 739, -220, -220, 321, + -220, -220, -220, 261, -220, 200, 200, 146, 262, -220, + -220, 260, 266, -220, 51, 969, -220, -220, -220, 25, + -220, 434, 739, 739, 265, 39, -220, 268, 267, 270, + -220, -220, -220, -220, -220, -220, -220, -220, -220, 292, + 279, 281, 282, 283, -220, -220, -220, -220, -220, -220, + -220, -220, 457, -220, 739, 346, -220, 352, -220, -220, + -220, 35, 30, 1001, 457, 1270, -220, -220, -220, -220, + -220, -220, 146, -220, -220, 1270, 1270, -220, -220, 268, + 739, -220, -220, -220, 739, 739, 739, 739, 1302, -220, + -220, -220, -220, -220, -220, -220, 1270, 1130, 1165, 1200, + 1235, -220, -220, -220, -220 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -774,69 +779,69 @@ means the default is an error. */ static const yytype_uint16 yydefact[] = { - 125, 94, 97, 106, 109, 0, 95, 264, 267, 155, - 0, 96, 125, 0, 0, 0, 0, 0, 197, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 199, 157, - 158, 156, 219, 220, 182, 99, 110, 111, 0, 0, - 0, 0, 0, 0, 125, 265, 113, 0, 0, 57, - 0, 3, 2, 8, 58, 63, 65, 0, 108, 0, - 98, 120, 0, 127, 125, 4, 211, 154, 218, 128, - 266, 122, 0, 55, 0, 39, 41, 43, 155, 0, - 221, 222, 240, 251, 237, 248, 247, 234, 232, 233, - 243, 244, 238, 239, 245, 246, 241, 242, 227, 228, - 229, 230, 231, 249, 250, 253, 252, 0, 0, 236, - 235, 214, 257, 258, 262, 185, 260, 261, 259, 263, - 184, 188, 187, 191, 190, 194, 193, 0, 125, 22, - 203, 205, 206, 204, 196, 267, 265, 121, 0, 125, - 125, 125, 125, 125, 0, 125, 205, 206, 198, 165, - 161, 166, 159, 183, 180, 178, 176, 216, 217, 11, - 13, 12, 10, 16, 17, 0, 0, 14, 15, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 126, 95, 98, 107, 110, 0, 96, 265, 268, 156, + 0, 97, 126, 0, 0, 0, 0, 0, 0, 198, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, + 158, 159, 157, 220, 221, 183, 100, 111, 112, 0, + 0, 0, 0, 0, 0, 126, 266, 114, 0, 0, + 58, 0, 3, 2, 8, 59, 64, 66, 0, 109, + 0, 99, 121, 0, 128, 126, 4, 212, 155, 219, + 129, 267, 123, 0, 56, 0, 40, 42, 44, 156, + 0, 222, 223, 241, 252, 238, 249, 248, 235, 233, + 234, 244, 245, 239, 240, 246, 247, 242, 243, 228, + 229, 230, 231, 232, 250, 251, 254, 253, 0, 0, + 237, 236, 215, 258, 259, 263, 186, 261, 262, 260, + 264, 185, 189, 188, 192, 191, 195, 194, 0, 126, + 22, 126, 204, 206, 207, 205, 197, 268, 266, 122, + 0, 126, 126, 126, 126, 126, 0, 126, 206, 207, + 199, 166, 162, 167, 160, 184, 181, 179, 177, 217, + 218, 11, 13, 12, 10, 16, 17, 0, 0, 14, + 15, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 18, 19, 0, 0, 0, 0, - 0, 52, 0, 59, 0, 0, 107, 0, 0, 125, - 201, 202, 0, 137, 135, 133, 0, 125, 139, 141, - 212, 142, 145, 147, 115, 0, 58, 0, 117, 0, - 0, 0, 256, 0, 0, 0, 0, 255, 254, 214, - 213, 186, 189, 192, 195, 0, 172, 163, 179, 125, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 162, 164, 160, 174, 169, 167, 181, 177, 0, 71, - 9, 0, 93, 92, 0, 90, 89, 88, 87, 86, - 80, 81, 84, 85, 82, 83, 78, 79, 72, 76, - 77, 73, 74, 75, 25, 260, 0, 28, 23, 29, - 32, 0, 35, 30, 36, 0, 54, 58, 209, 0, - 207, 67, 0, 0, 68, 66, 116, 123, 126, 124, - 0, 149, 138, 136, 130, 0, 148, 152, 0, 0, - 131, 140, 125, 144, 146, 100, 0, 118, 0, 0, - 0, 0, 46, 47, 45, 0, 0, 225, 223, 226, - 224, 131, 215, 101, 173, 0, 0, 0, 0, 0, - 5, 6, 7, 21, 20, 171, 175, 168, 70, 38, - 0, 26, 24, 33, 31, 37, 62, 0, 125, 125, - 69, 60, 151, 129, 134, 150, 143, 153, 130, 56, - 119, 51, 50, 40, 48, 0, 0, 42, 44, 200, - 0, 0, 0, 0, 91, 27, 34, 53, 61, 208, - 210, 132, 49, 0, 0, 0, 0, 102, 104, 103, - 105 + 0, 0, 0, 0, 0, 0, 18, 19, 0, 0, + 0, 0, 0, 53, 0, 60, 0, 0, 108, 0, + 0, 126, 202, 203, 0, 138, 136, 134, 0, 126, + 140, 142, 213, 143, 146, 148, 116, 0, 59, 0, + 118, 0, 0, 0, 257, 0, 0, 0, 0, 256, + 255, 215, 214, 187, 190, 193, 196, 0, 0, 173, + 164, 180, 126, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 171, 163, 165, 161, 175, 170, 168, 182, + 178, 0, 72, 9, 0, 94, 93, 0, 91, 90, + 89, 88, 87, 81, 82, 85, 86, 83, 84, 79, + 80, 73, 77, 78, 74, 75, 76, 26, 261, 0, + 29, 24, 30, 33, 0, 36, 31, 37, 0, 55, + 59, 210, 0, 208, 68, 0, 0, 69, 67, 117, + 124, 127, 125, 0, 150, 139, 137, 131, 0, 149, + 153, 0, 0, 132, 141, 126, 145, 147, 101, 0, + 119, 0, 0, 0, 0, 47, 48, 46, 0, 0, + 226, 224, 227, 225, 132, 216, 102, 23, 174, 0, + 0, 0, 0, 0, 5, 6, 7, 21, 20, 172, + 176, 169, 71, 39, 0, 27, 25, 34, 32, 38, + 63, 0, 126, 126, 70, 61, 152, 130, 135, 151, + 144, 154, 131, 57, 120, 52, 51, 41, 49, 0, + 0, 43, 45, 201, 0, 0, 0, 0, 92, 28, + 35, 54, 62, 209, 211, 133, 50, 0, 0, 0, + 0, 103, 105, 104, 106 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -218, -218, 2, 13, -10, -218, -218, -218, -45, -218, - 45, -218, -218, -218, -214, -218, -218, -218, 198, -218, - -218, -218, -39, -218, -188, -218, -65, 16, -108, -218, - -218, -218, 200, 216, -217, -215, -123, 15, 390, 237, - -218, -218, -218, 201, -218, -184, -5, 3, 404 + -220, -220, 12, 13, -10, -220, -220, -220, -83, -220, + 20, -220, -220, -220, -206, -220, -220, -220, 160, -220, + -220, -220, -40, -220, -188, -220, -65, -25, -109, -220, + -220, -220, 149, 152, -219, -218, -128, 16, 345, 178, + -220, -220, -220, 141, -220, -186, -5, 5, 369 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 50, 165, 166, 53, 229, 230, 231, 341, 342, - 343, 307, 226, 54, 204, 55, 56, 57, 312, 58, - 59, 60, 61, 209, 62, 63, 64, 384, 218, 388, - 324, 219, 220, 221, 222, 223, 65, 66, 134, 329, - 310, 67, 112, 240, 68, 69, 70, 344, 71 + -1, 51, 167, 168, 54, 231, 232, 233, 344, 345, + 346, 310, 228, 55, 206, 56, 57, 58, 315, 59, + 60, 61, 62, 211, 63, 64, 65, 388, 220, 392, + 327, 221, 222, 223, 224, 225, 66, 67, 136, 332, + 313, 68, 113, 242, 69, 70, 71, 347, 72 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -844,352 +849,348 @@ number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 77, 211, 51, 239, 333, 245, 334, 129, 119, 119, - 119, 119, 336, 52, 320, 119, 120, 122, 124, 126, - 255, 318, 325, 138, 313, 319, 212, 111, 159, 160, - 161, 162, 163, 164, 233, 170, 170, 167, 168, 171, - 7, 135, 113, 114, 203, 116, 211, 12, 117, 12, - 235, 170, 72, -125, 214, 74, 202, 113, 114, 294, - 295, 212, 73, 117, 12, 311, 215, 119, 139, 119, - 32, 33, 140, 369, 375, 225, 313, 228, 308, 210, - 339, 113, 114, 300, 295, 313, 269, 117, 12, 216, - 217, 32, 33, 377, 308, 141, 321, 234, 196, 197, - 198, 199, 200, 201, 326, 322, 323, 246, 142, 247, - 136, 389, 118, 236, 333, -125, 334, 143, 376, 340, - 407, 144, 319, 130, 216, 332, 355, 118, 130, 32, - 33, 239, 296, 254, 256, 258, 259, 213, 260, 145, - 214, 250, 251, 252, 253, 211, 157, 257, 131, 132, - 133, 118, 351, 146, 147, 133, 301, 297, 158, 302, - 270, -112, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 271, 345, 346, 299, 169, 304, - 408, 119, 170, 119, 319, -64, 205, 206, 207, 298, - 119, 303, 119, 208, -124, 232, 154, 237, 315, 308, - 316, 113, 114, 305, 116, 224, 203, 117, 12, 238, - 155, 241, 119, 156, 119, 119, 119, 263, 242, 243, - 337, 113, 114, 115, 116, 244, 248, 117, 12, 249, - 78, 264, 212, 261, 265, 13, 14, 15, 16, 268, - 18, 262, 20, 266, 113, 114, 410, 116, 368, 383, - 117, 12, 267, 317, 28, 29, 30, 31, 32, 33, - 34, 338, 113, 114, 121, 116, 215, 311, 117, 12, - 213, 118, 330, 214, 347, 335, 227, 113, 114, 123, - 116, 119, 348, 117, 12, 215, 119, 203, 349, 371, - 354, 118, 380, 381, 373, 216, 217, 32, 33, 353, - 327, 113, 114, 125, 116, 350, 356, 117, 12, 213, - 361, 357, 214, 383, 118, 212, 363, 358, 359, 391, - 392, -125, 365, 119, 215, 366, 367, 119, 372, 374, - 378, 390, 118, -114, 382, 395, 78, 149, 379, 385, - 393, 13, 14, 15, 16, 386, 18, 118, 20, 387, - 404, 150, 151, 213, 152, 396, 214, 153, 397, 398, - 28, 29, 30, 31, 32, 33, 34, 399, 215, 405, - 406, 118, 400, 401, 402, 403, 412, 394, 216, 217, - 413, 414, 415, 416, 1, 2, 3, 4, 5, 6, - 7, 8, 314, 9, 411, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 327, 328, 148, 21, - 22, 23, 24, 137, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 331, 36, 37, 309, 0, - 352, 0, 0, 0, 0, 0, 38, 0, 0, 0, - 0, 0, 0, 0, 0, -125, 39, 40, 41, 0, - 0, 0, 42, 43, 0, 0, 171, 0, 0, 44, - 45, 46, 0, 0, 47, 48, 0, 0, 49, 1, - 2, 3, 4, 5, 6, 7, 8, 0, 9, 0, - 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 0, 0, 0, 21, 22, 23, 24, 0, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 0, 36, 37, 194, 195, 196, 197, 198, 199, 200, - 201, 38, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 39, 40, 41, 0, 0, 0, 42, 43, 0, - 0, 0, 0, 0, 44, 45, 46, 0, 0, 47, - 48, 0, 0, 49, 1, 2, 3, 4, 5, 6, + 78, 247, 213, 241, 336, 337, 323, 130, 120, 120, + 120, 120, 52, 53, 328, 235, 120, 258, 121, 123, + 125, 127, 339, 321, 172, 322, 140, 73, 112, 161, + 162, 163, 164, 165, 166, 316, 172, 214, 169, 170, + 74, 237, 172, 7, 137, 205, 214, 213, 114, 115, + 12, 117, 156, 131, 118, 12, 141, 114, 115, 297, + 298, 75, 373, 118, 12, 214, 157, 204, 120, 158, + 120, 33, 34, 316, 379, 311, 314, 272, 227, 236, + 230, 212, 159, 316, 216, 215, 145, 342, 216, 324, + 142, 311, 114, 115, 116, 117, 217, 329, 118, 12, + 217, 218, 219, 266, 381, 238, 325, 326, 393, 143, + 218, 219, 132, 144, 138, 336, 337, 267, 411, 119, + 268, 380, 146, 322, 359, 249, 343, 250, 119, 218, + 335, 147, 241, 299, 160, 257, 259, 261, 133, 134, + 135, -113, 262, 248, 263, 114, 115, 213, 117, 348, + 349, 118, 12, 253, 254, 255, 256, 171, 300, 260, + 305, 172, 273, 119, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 274, 33, 34, 302, + -65, 307, 207, 120, 412, 120, 322, 208, 209, 210, + -125, 234, 120, 301, 120, 306, 226, 311, 239, 132, + 240, -126, 318, 173, 319, 308, 119, 215, 205, 243, + 216, 229, 244, 245, 120, 246, 120, 120, 120, 251, + 252, 264, 354, 265, 340, 148, 149, 135, 1, 2, + 3, 4, 5, 6, 7, 8, 269, 76, 77, 10, + 11, 12, -126, 270, 314, 414, 17, 18, 271, 20, + 320, 372, 387, 217, 22, 23, 24, 25, 333, 33, + 34, 28, 341, 198, 199, 200, 201, 202, 203, 36, + 350, 37, 38, 114, 115, 303, 298, 338, 351, 118, + 12, 39, 358, 352, 120, 353, 360, 361, 356, 120, + 205, 40, 41, 42, 375, 384, 385, 43, 44, 377, + 33, 34, 357, 362, 45, 46, 47, 363, 369, 48, + 49, 365, 215, 50, 151, 216, 367, 387, 370, 371, + 376, 378, 395, 396, -126, 383, 120, 217, 152, 153, + 120, 154, 382, 390, 155, -115, 394, 386, 389, 391, + 399, 397, 403, 401, 119, 400, 402, 409, 404, 304, + 405, 406, 407, 410, 408, 398, 317, 415, 331, 114, + 115, 122, 117, 334, 150, 118, 12, 114, 115, 124, + 117, 312, 355, 118, 12, 114, 115, 126, 117, 139, + 416, 118, 12, 0, 417, 418, 419, 420, 1, 2, + 3, 4, 5, 6, 7, 8, 0, 9, 0, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 0, 0, 0, 22, 23, 24, 25, 0, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 119, 37, 38, 114, 115, 0, 117, 0, 119, 118, + 12, 39, 0, 0, 0, 0, 119, 0, 0, 0, + -126, 40, 41, 42, 0, 0, 0, 43, 44, 0, + 0, 173, 0, 0, 45, 46, 47, 0, 0, 48, + 49, 0, 0, 50, 1, 2, 3, 4, 5, 6, 7, 8, 0, 9, 0, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 0, 0, 0, 21, - 22, 23, 24, 0, 0, 0, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 0, 36, 37, 0, 0, - 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 39, 40, 41, 0, - 0, 0, 42, 43, 0, 0, 0, 0, 0, 44, - 45, 46, 0, 0, 47, 48, 0, 0, 49, 1, - 2, 3, 4, 5, 6, 7, 8, 0, 75, 76, - 10, 11, 12, 0, 0, 0, 0, 17, 0, 19, - 0, 0, 0, 0, 21, 22, 23, 24, 78, 0, - 0, 27, 0, 13, 14, 15, 16, 0, 18, 35, - 20, 36, 37, 0, 0, 0, 0, 0, 0, 25, - 26, 38, 28, 29, 30, 31, 32, 33, 34, 0, - 0, 39, 40, 41, 0, 0, 0, 42, 43, 0, - 0, 0, 0, 0, 44, 45, 46, 0, 0, 47, - 48, 0, 0, 49, 1, 2, 3, 4, 5, 6, - 7, 8, 0, 127, 0, 10, 11, 12, 0, 0, - 0, 0, 17, 0, 19, 0, 0, 0, 0, 21, - 22, 23, 24, 78, 0, 0, 27, 0, 13, 14, - 15, 16, 0, 18, 35, 20, 36, 37, 0, 0, - 0, 0, 0, 0, 0, 0, 38, 28, 29, 30, - 31, 32, 33, 34, 0, 0, 39, 40, 41, 0, - 0, 0, 42, 43, 0, 0, 0, 0, 0, 128, - 45, 46, 0, 0, 47, 48, 0, 0, 49, 1, - 2, 3, 4, 5, 6, 7, 8, 0, 127, 0, - 10, 11, 12, 0, 0, 0, 0, 17, 0, 19, - 0, 0, 0, 0, 21, 22, 23, 24, 0, 0, - 0, 27, 0, 0, 0, 0, 0, 0, 0, 35, - 0, 36, 37, 0, 0, 0, 0, 0, 0, 0, - 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 39, 40, 41, 0, 0, 0, 42, 43, 0, - 0, 0, 0, 0, 44, 45, 46, 0, 0, 47, - 48, 0, 78, 49, 79, 0, 0, 13, 14, 15, - 16, 0, 18, 0, 20, 0, 80, 81, 0, 0, - 0, 0, 0, 0, 0, 0, 28, 29, 30, 31, - 32, 33, 34, 0, 82, 0, 0, 83, 0, 84, - 171, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 0, 98, 99, 100, 101, 102, - 0, 103, 104, 105, 106, 0, 0, 107, 108, 0, - 172, 0, 0, 109, 110, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 0, 194, 195, 196, - 197, 198, 199, 200, 201, 0, 0, 0, 78, 0, - 0, 0, 370, 13, 14, 15, 16, 78, 18, 0, - 20, 0, 13, 14, 15, 16, 0, 18, 0, 20, - 0, 0, 28, 29, 30, 31, 32, 33, 34, 0, - 0, 28, 29, 30, 31, 32, 33, 34, 0, 0, - 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, - -125, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 171, 0, 0, 0, 0, 306, 0, - 0, 0, 172, 0, 0, 0, 409, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 171, 194, - 195, 196, 197, 198, 199, 200, 201, 0, 0, 0, - 360, 186, 187, 188, 189, 190, 191, 192, 193, 171, - 194, 195, 196, 197, 198, 199, 200, 201, 172, 0, - 0, 0, 0, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 171, 194, 195, 196, 197, 198, - 199, 200, 201, 0, 0, 0, 362, 0, 0, 188, - 189, 190, 191, 192, 193, 171, 194, 195, 196, 197, - 198, 199, 200, 201, 172, 0, 0, 0, 0, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 15, 16, 17, 18, 19, 20, 21, 0, 0, 0, + 22, 23, 24, 25, 119, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 0, 37, 38, 196, + 197, 198, 199, 200, 201, 202, 203, 39, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, + 0, 0, 0, 43, 44, 0, 0, 0, 0, 0, + 45, 46, 47, 0, 0, 48, 49, 0, 0, 50, + 1, 2, 3, 4, 5, 6, 7, 8, 0, 9, + 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 0, 0, 0, 22, 23, 24, 25, + 0, 0, 0, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 0, 37, 38, 0, 0, 0, 0, 0, + 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 40, 41, 42, 0, 0, 0, 43, + 44, 0, 0, 0, 0, 0, 45, 46, 47, 0, + 0, 48, 49, 0, 0, 50, 1, 2, 3, 4, + 5, 6, 7, 8, 0, 128, 0, 10, 11, 12, + 0, 0, 0, 0, 17, 18, 0, 20, 0, 0, + 0, 0, 22, 23, 24, 25, 0, 0, 0, 28, + 0, 0, 0, 0, 0, 0, 0, 36, 0, 37, + 38, 0, 0, 0, 0, 0, 0, 0, 0, 39, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, + 41, 42, 0, 0, 0, 43, 44, 0, 0, 0, + 0, 0, 129, 46, 47, 0, 0, 48, 49, 0, + 0, 50, 1, 2, 3, 4, 5, 6, 7, 8, + 0, 128, 0, 10, 11, 12, 0, 0, 0, 0, + 17, 18, 0, 20, 0, 0, 0, 0, 22, 23, + 24, 25, 0, 0, 0, 28, 0, 0, 0, 0, + 0, 0, 0, 36, 0, 37, 38, 0, 0, 0, + 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 40, 41, 42, 0, 0, + 0, 43, 44, 0, 0, 0, 0, 0, 45, 46, + 47, 0, 0, 48, 49, 0, 79, 50, 80, 0, + 0, 13, 14, 15, 16, 0, 0, 19, 0, 21, + 0, 81, 82, 0, 0, 0, 0, 0, 0, 0, + 0, 29, 30, 31, 32, 33, 34, 35, 0, 83, + 0, 0, 84, 0, 85, 173, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 0, + 99, 100, 101, 102, 103, 0, 104, 105, 106, 107, + 0, 0, 108, 109, 0, 0, 174, 0, 110, 111, + 0, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 171, 194, 195, 196, 197, 198, 199, 200, 201, 0, - 0, 0, 364, 0, 0, 0, 189, 190, 191, 192, - 193, 171, 194, 195, 196, 197, 198, 199, 200, 201, - 172, 0, 0, 0, 0, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 171, 194, 195, 196, - 197, 198, 199, 200, 201, 0, 0, 0, 417, 0, - 0, 0, 0, 0, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 172, 0, 0, 0, - 0, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 194, 195, 0, 196, 197, 198, 199, 200, 201, 202, + 203, 0, 0, 0, 79, 0, 214, 0, 374, 13, + 14, 15, 16, 79, 0, 19, 0, 21, 13, 14, + 15, 16, 0, 0, 19, 0, 21, 0, 0, 29, + 30, 31, 32, 33, 34, 35, 0, 0, 29, 30, + 31, 32, 33, 34, 35, 215, 0, 0, 216, 0, + 0, 79, 0, 0, 0, 0, 13, 14, 15, 16, + 217, 0, 19, 0, 21, 0, -126, 0, 0, 0, + 218, 219, 0, 0, 0, 330, 29, 30, 31, 32, + 33, 34, 35, 79, 309, 0, 0, 173, 13, 14, + 15, 16, 0, 0, 19, 0, 21, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 173, 0, 29, 30, + 31, 32, 33, 34, 35, 0, 0, 0, 174, 0, + 0, 0, 330, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 171, 194, 195, 196, 197, 198, 199, 200, - 201, 0, 0, 0, 418, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 172, 0, 0, 0, 0, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 171, 194, - 195, 196, 197, 198, 199, 200, 201, 0, 0, 0, - 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 0, - 0, 0, 0, 173, 174, 175, 176, 177, 178, 179, + 192, 193, 194, 195, 173, 196, 197, 198, 199, 200, + 201, 202, 203, 413, 0, 0, 364, 190, 191, 192, + 193, 194, 195, 0, 196, 197, 198, 199, 200, 201, + 202, 203, 0, 0, 0, 174, 0, 0, 0, 173, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 0, 196, 197, 198, 199, 200, 201, 202, 203, + 174, 0, 0, 366, 173, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 171, 194, 195, 196, 197, 198, - 199, 200, 201, 0, 0, 0, 420, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 171, 172, 0, 0, 0, 0, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 171, 194, 195, 196, 197, 198, 199, 200, 201, 174, + 190, 191, 192, 193, 194, 195, 0, 196, 197, 198, + 199, 200, 201, 202, 203, 174, 0, 0, 368, 173, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 0, 196, 197, 198, 199, 200, 201, 202, 203, + 174, 0, 0, 421, 173, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 0, 196, 197, 198, + 199, 200, 201, 202, 203, 174, 0, 0, 422, 173, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 0, 196, 197, 198, 199, 200, 201, 202, 203, + 174, 0, 0, 423, 173, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 0, 196, 197, 198, + 199, 200, 201, 202, 203, 174, 173, 0, 424, 0, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 171, - 194, 195, 196, 197, 198, 199, 200, 201, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 171, 194, 195, 196, - 197, 198, 199, 200, 201, 0, 0, 0, 177, 178, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 0, 196, 197, 198, 199, 200, 201, 202, 203, + 173, 0, 0, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 0, 196, 197, 198, 199, 200, 201, + 202, 203, 173, 0, 0, 0, 0, 0, 0, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 171, 194, 195, 196, 197, - 198, 199, 200, 201, 0, 0, 178, 179, 180, 181, + 189, 190, 191, 192, 193, 194, 195, 173, 196, 197, + 198, 199, 200, 201, 202, 203, 0, 0, 0, 0, + 0, 0, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 173, + 196, 197, 198, 199, 200, 201, 202, 203, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 171, 194, 195, 196, 197, 198, 199, 200, - 201, 0, 0, 0, 0, 0, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 171, 194, 195, 196, 197, 198, 199, 200, 201, - 0, 0, 0, 0, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 0, 194, - 195, 196, 197, 198, 199, 200, 201, 0, 0, 0, - 0, 0, 0, 0, 0, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 0, 194, 195, - 196, 197, 198, 199, 200, 201 + 192, 193, 194, 195, 173, 196, 197, 198, 199, 200, + 201, 202, 203, 0, 0, 0, 0, 0, 0, 0, + 0, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 173, 196, 197, 198, + 199, 200, 201, 202, 203, 0, 0, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 173, 196, 197, 198, 199, 200, 201, 202, 203, + 0, 0, 0, 0, 0, 173, 0, 0, 0, 0, + 0, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 173, 196, 197, 198, 199, 200, 201, + 202, 203, 0, 0, 0, 0, 0, 0, 0, 0, + 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, + 197, 198, 199, 200, 201, 202, 203, 191, 192, 193, + 194, 195, 0, 196, 197, 198, 199, 200, 201, 202, + 203, 0, 0, 0, 0, 0, 0, 193, 194, 195, + 0, 196, 197, 198, 199, 200, 201, 202, 203, 79, + 0, 0, 0, 0, 13, 14, 15, 16, 0, 0, + 19, 0, 21, 0, 0, 0, 0, 0, 0, 0, + 0, 26, 27, 0, 29, 30, 31, 32, 33, 34, + 35, 79, 0, 0, 0, 0, 13, 14, 15, 16, + 0, 0, 19, 0, 21, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 29, 30, 31, 32, + 33, 34, 35 }; static const yytype_int16 yycheck[] = { - 10, 66, 0, 111, 221, 128, 221, 17, 13, 14, - 15, 16, 226, 0, 3, 20, 13, 14, 15, 16, - 143, 209, 3, 20, 47, 209, 14, 12, 38, 39, - 40, 41, 42, 43, 14, 47, 47, 47, 48, 14, - 9, 10, 9, 10, 54, 12, 111, 16, 15, 16, - 14, 47, 78, 23, 55, 23, 54, 9, 10, 11, - 12, 14, 78, 15, 16, 88, 67, 72, 58, 74, - 40, 41, 58, 85, 85, 72, 47, 74, 201, 64, - 47, 9, 10, 11, 12, 47, 82, 15, 16, 77, - 78, 40, 41, 307, 217, 58, 85, 77, 73, 74, - 75, 76, 77, 78, 85, 213, 214, 37, 58, 39, - 79, 82, 79, 77, 331, 64, 331, 78, 306, 86, - 82, 78, 306, 12, 77, 78, 249, 79, 12, 40, - 41, 239, 84, 143, 144, 145, 37, 52, 39, 78, - 55, 139, 140, 141, 142, 210, 41, 145, 37, 38, - 39, 79, 67, 37, 38, 39, 84, 196, 40, 198, - 170, 23, 172, 173, 174, 175, 176, 177, 178, 179, + 10, 129, 67, 112, 223, 223, 3, 17, 13, 14, + 15, 16, 0, 0, 3, 14, 21, 145, 13, 14, + 15, 16, 228, 211, 48, 211, 21, 79, 12, 39, + 40, 41, 42, 43, 44, 48, 48, 14, 48, 49, + 79, 14, 48, 9, 10, 55, 14, 112, 9, 10, + 16, 12, 23, 79, 15, 16, 59, 9, 10, 11, + 12, 24, 86, 15, 16, 14, 37, 55, 73, 40, + 75, 41, 42, 48, 86, 203, 89, 83, 73, 78, + 75, 65, 42, 48, 56, 53, 79, 48, 56, 86, + 59, 219, 9, 10, 11, 12, 68, 86, 15, 16, + 68, 78, 79, 23, 310, 78, 215, 216, 83, 59, + 78, 79, 12, 59, 80, 334, 334, 37, 83, 80, + 40, 309, 79, 309, 252, 38, 87, 40, 80, 78, + 79, 79, 241, 85, 41, 145, 146, 147, 38, 39, + 40, 24, 38, 131, 40, 9, 10, 212, 12, 232, + 233, 15, 16, 141, 142, 143, 144, 0, 198, 147, + 200, 48, 172, 80, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 171, 230, 231, 197, 0, 199, - 378, 196, 47, 198, 378, 23, 23, 5, 23, 196, - 205, 198, 207, 64, 64, 85, 22, 85, 205, 332, - 207, 9, 10, 200, 12, 32, 226, 15, 16, 82, - 36, 11, 227, 39, 229, 230, 231, 22, 11, 11, - 227, 9, 10, 11, 12, 11, 39, 15, 16, 58, - 12, 36, 14, 39, 39, 17, 18, 19, 20, 82, - 22, 39, 24, 39, 9, 10, 379, 12, 268, 324, - 15, 16, 39, 9, 36, 37, 38, 39, 40, 41, - 42, 23, 9, 10, 11, 12, 67, 88, 15, 16, - 52, 79, 67, 55, 85, 82, 84, 9, 10, 11, - 12, 296, 85, 15, 16, 67, 301, 307, 85, 296, - 39, 79, 312, 313, 301, 77, 78, 40, 41, 82, - 82, 9, 10, 11, 12, 85, 59, 15, 16, 52, - 82, 59, 55, 388, 79, 14, 82, 59, 59, 339, - 340, 64, 39, 338, 67, 39, 39, 342, 11, 11, - 82, 338, 79, 23, 85, 342, 12, 22, 47, 85, - 85, 17, 18, 19, 20, 82, 22, 79, 24, 82, - 370, 36, 37, 52, 39, 86, 55, 42, 85, 85, - 36, 37, 38, 39, 40, 41, 42, 59, 67, 11, - 11, 79, 78, 78, 78, 78, 396, 342, 77, 78, - 400, 401, 402, 403, 3, 4, 5, 6, 7, 8, - 9, 10, 204, 12, 388, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 82, 217, 28, 28, - 29, 30, 31, 19, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 219, 45, 46, 201, -1, - 239, -1, -1, -1, -1, -1, 55, -1, -1, -1, - -1, -1, -1, -1, -1, 64, 65, 66, 67, -1, - -1, -1, 71, 72, -1, -1, 14, -1, -1, 78, - 79, 80, -1, -1, 83, 84, -1, -1, 87, 3, - 4, 5, 6, 7, 8, 9, 10, -1, 12, -1, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, -1, -1, -1, 28, 29, 30, 31, -1, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - -1, 45, 46, 71, 72, 73, 74, 75, 76, 77, - 78, 55, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 65, 66, 67, -1, -1, -1, 71, 72, -1, - -1, -1, -1, -1, 78, 79, 80, -1, -1, 83, - 84, -1, -1, 87, 3, 4, 5, 6, 7, 8, + 190, 191, 192, 193, 194, 195, 173, 41, 42, 199, + 24, 201, 24, 198, 382, 200, 382, 5, 24, 65, + 65, 86, 207, 198, 209, 200, 33, 335, 86, 12, + 83, 65, 207, 14, 209, 202, 80, 53, 228, 11, + 56, 85, 11, 11, 229, 11, 231, 232, 233, 40, + 59, 40, 68, 40, 229, 38, 39, 40, 3, 4, + 5, 6, 7, 8, 9, 10, 40, 12, 13, 14, + 15, 16, 24, 40, 89, 383, 21, 22, 83, 24, + 9, 271, 327, 68, 29, 30, 31, 32, 68, 41, + 42, 36, 24, 74, 75, 76, 77, 78, 79, 44, + 86, 46, 47, 9, 10, 11, 12, 83, 86, 15, + 16, 56, 40, 86, 299, 86, 60, 60, 83, 304, + 310, 66, 67, 68, 299, 315, 316, 72, 73, 304, + 41, 42, 83, 60, 79, 80, 81, 60, 40, 84, + 85, 83, 53, 88, 23, 56, 83, 392, 40, 40, + 11, 11, 342, 343, 65, 48, 341, 68, 37, 38, + 345, 40, 83, 83, 43, 24, 341, 86, 86, 83, + 345, 86, 60, 86, 80, 87, 86, 11, 79, 85, + 79, 79, 79, 11, 374, 345, 206, 392, 219, 9, + 10, 11, 12, 221, 29, 15, 16, 9, 10, 11, + 12, 203, 241, 15, 16, 9, 10, 11, 12, 20, + 400, 15, 16, -1, 404, 405, 406, 407, 3, 4, + 5, 6, 7, 8, 9, 10, -1, 12, -1, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, -1, -1, -1, 29, 30, 31, 32, -1, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 80, 46, 47, 9, 10, -1, 12, -1, 80, 15, + 16, 56, -1, -1, -1, -1, 80, -1, -1, -1, + 65, 66, 67, 68, -1, -1, -1, 72, 73, -1, + -1, 14, -1, -1, 79, 80, 81, -1, -1, 84, + 85, -1, -1, 88, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, -1, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, -1, -1, -1, 28, - 29, 30, 31, -1, -1, -1, 35, 36, 37, 38, - 39, 40, 41, 42, 43, -1, 45, 46, -1, -1, - -1, -1, -1, -1, -1, -1, 55, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 65, 66, 67, -1, - -1, -1, 71, 72, -1, -1, -1, -1, -1, 78, - 79, 80, -1, -1, 83, 84, -1, -1, 87, 3, - 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, - 14, 15, 16, -1, -1, -1, -1, 21, -1, 23, - -1, -1, -1, -1, 28, 29, 30, 31, 12, -1, - -1, 35, -1, 17, 18, 19, 20, -1, 22, 43, - 24, 45, 46, -1, -1, -1, -1, -1, -1, 33, - 34, 55, 36, 37, 38, 39, 40, 41, 42, -1, - -1, 65, 66, 67, -1, -1, -1, 71, 72, -1, - -1, -1, -1, -1, 78, 79, 80, -1, -1, 83, - 84, -1, -1, 87, 3, 4, 5, 6, 7, 8, - 9, 10, -1, 12, -1, 14, 15, 16, -1, -1, - -1, -1, 21, -1, 23, -1, -1, -1, -1, 28, - 29, 30, 31, 12, -1, -1, 35, -1, 17, 18, - 19, 20, -1, 22, 43, 24, 45, 46, -1, -1, - -1, -1, -1, -1, -1, -1, 55, 36, 37, 38, - 39, 40, 41, 42, -1, -1, 65, 66, 67, -1, - -1, -1, 71, 72, -1, -1, -1, -1, -1, 78, - 79, 80, -1, -1, 83, 84, -1, -1, 87, 3, - 4, 5, 6, 7, 8, 9, 10, -1, 12, -1, - 14, 15, 16, -1, -1, -1, -1, 21, -1, 23, - -1, -1, -1, -1, 28, 29, 30, 31, -1, -1, - -1, 35, -1, -1, -1, -1, -1, -1, -1, 43, - -1, 45, 46, -1, -1, -1, -1, -1, -1, -1, - -1, 55, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 65, 66, 67, -1, -1, -1, 71, 72, -1, - -1, -1, -1, -1, 78, 79, 80, -1, -1, 83, - 84, -1, 12, 87, 14, -1, -1, 17, 18, 19, - 20, -1, 22, -1, 24, -1, 26, 27, -1, -1, - -1, -1, -1, -1, -1, -1, 36, 37, 38, 39, - 40, 41, 42, -1, 44, -1, -1, 47, -1, 49, - 14, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, - -1, 71, 72, 73, 74, -1, -1, 77, 78, -1, - 44, -1, -1, 83, 84, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, -1, 71, 72, 73, - 74, 75, 76, 77, 78, -1, -1, -1, 12, -1, - -1, -1, 86, 17, 18, 19, 20, 12, 22, -1, - 24, -1, 17, 18, 19, 20, -1, 22, -1, 24, - -1, -1, 36, 37, 38, 39, 40, 41, 42, -1, - -1, 36, 37, 38, 39, 40, 41, 42, -1, -1, - -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, - 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 14, -1, -1, -1, -1, 82, -1, - -1, -1, 44, -1, -1, -1, 81, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 14, 71, - 72, 73, 74, 75, 76, 77, 78, -1, -1, -1, - 82, 62, 63, 64, 65, 66, 67, 68, 69, 14, - 71, 72, 73, 74, 75, 76, 77, 78, 44, -1, - -1, -1, -1, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 14, 71, 72, 73, 74, 75, - 76, 77, 78, -1, -1, -1, 82, -1, -1, 64, - 65, 66, 67, 68, 69, 14, 71, 72, 73, 74, - 75, 76, 77, 78, 44, -1, -1, -1, -1, 49, + 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, + 29, 30, 31, 32, 80, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, -1, 46, 47, 72, + 73, 74, 75, 76, 77, 78, 79, 56, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 66, 67, 68, + -1, -1, -1, 72, 73, -1, -1, -1, -1, -1, + 79, 80, 81, -1, -1, 84, 85, -1, -1, 88, + 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, + -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, -1, -1, -1, 29, 30, 31, 32, + -1, -1, -1, 36, 37, 38, 39, 40, 41, 42, + 43, 44, -1, 46, 47, -1, -1, -1, -1, -1, + -1, -1, -1, 56, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 66, 67, 68, -1, -1, -1, 72, + 73, -1, -1, -1, -1, -1, 79, 80, 81, -1, + -1, 84, 85, -1, -1, 88, 3, 4, 5, 6, + 7, 8, 9, 10, -1, 12, -1, 14, 15, 16, + -1, -1, -1, -1, 21, 22, -1, 24, -1, -1, + -1, -1, 29, 30, 31, 32, -1, -1, -1, 36, + -1, -1, -1, -1, -1, -1, -1, 44, -1, 46, + 47, -1, -1, -1, -1, -1, -1, -1, -1, 56, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, + 67, 68, -1, -1, -1, 72, 73, -1, -1, -1, + -1, -1, 79, 80, 81, -1, -1, 84, 85, -1, + -1, 88, 3, 4, 5, 6, 7, 8, 9, 10, + -1, 12, -1, 14, 15, 16, -1, -1, -1, -1, + 21, 22, -1, 24, -1, -1, -1, -1, 29, 30, + 31, 32, -1, -1, -1, 36, -1, -1, -1, -1, + -1, -1, -1, 44, -1, 46, 47, -1, -1, -1, + -1, -1, -1, -1, -1, 56, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 66, 67, 68, -1, -1, + -1, 72, 73, -1, -1, -1, -1, -1, 79, 80, + 81, -1, -1, 84, 85, -1, 12, 88, 14, -1, + -1, 17, 18, 19, 20, -1, -1, 23, -1, 25, + -1, 27, 28, -1, -1, -1, -1, -1, -1, -1, + -1, 37, 38, 39, 40, 41, 42, 43, -1, 45, + -1, -1, 48, -1, 50, 14, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, -1, + 66, 67, 68, 69, 70, -1, 72, 73, 74, 75, + -1, -1, 78, 79, -1, -1, 45, -1, 84, 85, + -1, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, -1, 72, 73, 74, 75, 76, 77, 78, + 79, -1, -1, -1, 12, -1, 14, -1, 87, 17, + 18, 19, 20, 12, -1, 23, -1, 25, 17, 18, + 19, 20, -1, -1, 23, -1, 25, -1, -1, 37, + 38, 39, 40, 41, 42, 43, -1, -1, 37, 38, + 39, 40, 41, 42, 43, 53, -1, -1, 56, -1, + -1, 12, -1, -1, -1, -1, 17, 18, 19, 20, + 68, -1, 23, -1, 25, -1, 65, -1, -1, -1, + 78, 79, -1, -1, -1, 83, 37, 38, 39, 40, + 41, 42, 43, 12, 83, -1, -1, 14, 17, 18, + 19, 20, -1, -1, 23, -1, 25, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 14, -1, 37, 38, + 39, 40, 41, 42, 43, -1, -1, -1, 45, -1, + -1, -1, 83, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 14, 72, 73, 74, 75, 76, + 77, 78, 79, 82, -1, -1, 83, 65, 66, 67, + 68, 69, 70, -1, 72, 73, 74, 75, 76, 77, + 78, 79, -1, -1, -1, 45, -1, -1, -1, 14, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 14, 71, 72, 73, 74, 75, 76, 77, 78, -1, - -1, -1, 82, -1, -1, -1, 65, 66, 67, 68, - 69, 14, 71, 72, 73, 74, 75, 76, 77, 78, - 44, -1, -1, -1, -1, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 14, 71, 72, 73, - 74, 75, 76, 77, 78, -1, -1, -1, 82, -1, - -1, -1, -1, -1, 67, 68, 69, -1, 71, 72, - 73, 74, 75, 76, 77, 78, 44, -1, -1, -1, - -1, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 14, 71, 72, 73, 74, 75, 76, 77, - 78, -1, -1, -1, 82, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 44, -1, -1, -1, -1, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 14, 71, - 72, 73, 74, 75, 76, 77, 78, -1, -1, -1, - 82, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, - -1, -1, -1, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 14, 71, 72, 73, 74, 75, - 76, 77, 78, -1, -1, -1, 82, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 14, 44, -1, -1, -1, -1, 49, + 70, -1, 72, 73, 74, 75, 76, 77, 78, 79, + 45, -1, -1, 83, 14, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, -1, 72, 73, 74, + 75, 76, 77, 78, 79, 45, -1, -1, 83, 14, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 14, 71, 72, 73, 74, 75, 76, 77, 78, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 14, - 71, 72, 73, 74, 75, 76, 77, 78, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 14, 71, 72, 73, - 74, 75, 76, 77, 78, -1, -1, -1, 53, 54, + 70, -1, 72, 73, 74, 75, 76, 77, 78, 79, + 45, -1, -1, 83, 14, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, -1, 72, 73, 74, + 75, 76, 77, 78, 79, 45, -1, -1, 83, 14, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, -1, 72, 73, 74, 75, 76, 77, 78, 79, + 45, -1, -1, 83, 14, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 14, 71, 72, 73, 74, - 75, 76, 77, 78, -1, -1, 54, 55, 56, 57, + 65, 66, 67, 68, 69, 70, -1, 72, 73, 74, + 75, 76, 77, 78, 79, 45, 14, -1, 83, -1, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, -1, 72, 73, 74, 75, 76, 77, 78, 79, + 14, -1, -1, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 14, 71, 72, 73, 74, 75, 76, 77, - 78, -1, -1, -1, -1, -1, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 14, 71, 72, 73, 74, 75, 76, 77, 78, - -1, -1, -1, -1, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, -1, 71, - 72, 73, 74, 75, 76, 77, 78, -1, -1, -1, - -1, -1, -1, -1, -1, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, -1, 71, 72, - 73, 74, 75, 76, 77, 78 + 68, 69, 70, -1, 72, 73, 74, 75, 76, 77, + 78, 79, 14, -1, -1, -1, -1, -1, -1, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 14, 72, 73, + 74, 75, 76, 77, 78, 79, -1, -1, -1, -1, + -1, -1, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 14, + 72, 73, 74, 75, 76, 77, 78, 79, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 14, 72, 73, 74, 75, 76, + 77, 78, 79, -1, -1, -1, -1, -1, -1, -1, + -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 14, 72, 73, 74, + 75, 76, 77, 78, 79, -1, -1, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 14, 72, 73, 74, 75, 76, 77, 78, 79, + -1, -1, -1, -1, -1, 14, -1, -1, -1, -1, + -1, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 14, 72, 73, 74, 75, 76, 77, + 78, 79, -1, -1, -1, -1, -1, -1, -1, -1, + 63, 64, 65, 66, 67, 68, 69, 70, -1, 72, + 73, 74, 75, 76, 77, 78, 79, 66, 67, 68, + 69, 70, -1, 72, 73, 74, 75, 76, 77, 78, + 79, -1, -1, -1, -1, -1, -1, 68, 69, 70, + -1, 72, 73, 74, 75, 76, 77, 78, 79, 12, + -1, -1, -1, -1, 17, 18, 19, 20, -1, -1, + 23, -1, 25, -1, -1, -1, -1, -1, -1, -1, + -1, 34, 35, -1, 37, 38, 39, 40, 41, 42, + 43, 12, -1, -1, -1, -1, 17, 18, 19, 20, + -1, -1, 23, -1, 25, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 37, 38, 39, 40, + 41, 42, 43 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1198,79 +1199,79 @@ { 0, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 28, 29, 30, 31, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 45, 46, 55, 65, - 66, 67, 71, 72, 78, 79, 80, 83, 84, 87, - 90, 91, 92, 93, 102, 104, 105, 106, 108, 109, - 110, 111, 113, 114, 115, 125, 126, 130, 133, 134, - 135, 137, 78, 78, 23, 12, 13, 93, 12, 14, - 26, 27, 44, 47, 49, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 65, 66, - 67, 68, 69, 71, 72, 73, 74, 77, 78, 83, - 84, 126, 131, 9, 10, 11, 12, 15, 79, 135, - 136, 11, 136, 11, 136, 11, 136, 12, 78, 93, - 12, 37, 38, 39, 127, 10, 79, 137, 136, 58, - 58, 58, 58, 78, 78, 78, 37, 38, 127, 22, - 36, 37, 39, 42, 22, 36, 39, 41, 40, 93, - 93, 93, 93, 93, 93, 91, 92, 93, 93, 0, - 47, 14, 44, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 71, 72, 73, 74, 75, 76, - 77, 78, 91, 93, 103, 23, 5, 23, 64, 112, - 126, 115, 14, 52, 55, 67, 77, 78, 117, 120, - 121, 122, 123, 124, 32, 136, 101, 84, 136, 94, - 95, 96, 85, 14, 77, 14, 77, 85, 82, 117, - 132, 11, 11, 11, 11, 125, 37, 39, 39, 58, - 91, 91, 91, 91, 93, 125, 93, 91, 93, 37, - 39, 39, 39, 22, 36, 39, 39, 39, 82, 82, - 93, 92, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 11, 12, 84, 111, 136, 93, - 11, 84, 111, 136, 93, 92, 82, 100, 125, 128, - 129, 88, 107, 47, 107, 136, 136, 9, 113, 134, - 3, 85, 117, 117, 119, 3, 85, 82, 121, 128, - 67, 122, 78, 123, 124, 82, 103, 136, 23, 47, - 86, 97, 98, 99, 136, 97, 97, 85, 85, 85, - 85, 67, 132, 82, 39, 125, 59, 59, 59, 59, - 82, 82, 82, 82, 82, 39, 39, 39, 93, 85, - 86, 136, 11, 136, 11, 85, 113, 103, 82, 47, - 93, 93, 85, 115, 116, 85, 82, 82, 118, 82, - 136, 93, 93, 85, 99, 136, 86, 85, 85, 59, - 78, 78, 78, 78, 93, 11, 11, 82, 113, 81, - 125, 116, 93, 93, 93, 93, 93, 82, 82, 82, - 82 + 24, 25, 29, 30, 31, 32, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 46, 47, 56, + 66, 67, 68, 72, 73, 79, 80, 81, 84, 85, + 88, 91, 92, 93, 94, 103, 105, 106, 107, 109, + 110, 111, 112, 114, 115, 116, 126, 127, 131, 134, + 135, 136, 138, 79, 79, 24, 12, 13, 94, 12, + 14, 27, 28, 45, 48, 50, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, + 67, 68, 69, 70, 72, 73, 74, 75, 78, 79, + 84, 85, 127, 132, 9, 10, 11, 12, 15, 80, + 136, 137, 11, 137, 11, 137, 11, 137, 12, 79, + 94, 79, 12, 38, 39, 40, 128, 10, 80, 138, + 137, 59, 59, 59, 59, 79, 79, 79, 38, 39, + 128, 23, 37, 38, 40, 43, 23, 37, 40, 42, + 41, 94, 94, 94, 94, 94, 94, 92, 93, 94, + 94, 0, 48, 14, 45, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 72, 73, 74, 75, + 76, 77, 78, 79, 92, 94, 104, 24, 5, 24, + 65, 113, 127, 116, 14, 53, 56, 68, 78, 79, + 118, 121, 122, 123, 124, 125, 33, 137, 102, 85, + 137, 95, 96, 97, 86, 14, 78, 14, 78, 86, + 83, 118, 133, 11, 11, 11, 11, 126, 92, 38, + 40, 40, 59, 92, 92, 92, 92, 94, 126, 94, + 92, 94, 38, 40, 40, 40, 23, 37, 40, 40, + 40, 83, 83, 94, 93, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 11, 12, 85, + 112, 137, 94, 11, 85, 112, 137, 94, 93, 83, + 101, 126, 129, 130, 89, 108, 48, 108, 137, 137, + 9, 114, 135, 3, 86, 118, 118, 120, 3, 86, + 83, 122, 129, 68, 123, 79, 124, 125, 83, 104, + 137, 24, 48, 87, 98, 99, 100, 137, 98, 98, + 86, 86, 86, 86, 68, 133, 83, 83, 40, 126, + 60, 60, 60, 60, 83, 83, 83, 83, 83, 40, + 40, 40, 94, 86, 87, 137, 11, 137, 11, 86, + 114, 104, 83, 48, 94, 94, 86, 116, 117, 86, + 83, 83, 119, 83, 137, 94, 94, 86, 100, 137, + 87, 86, 86, 60, 79, 79, 79, 79, 94, 11, + 11, 83, 114, 82, 126, 117, 94, 94, 94, 94, + 94, 83, 83, 83, 83 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 89, 90, 90, 91, 91, 91, 91, 92, 92, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 94, - 93, 95, 93, 96, 93, 97, 97, 98, 98, 99, - 99, 99, 100, 93, 93, 101, 93, 102, 103, 103, - 103, 104, 105, 93, 106, 106, 93, 107, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 108, 108, 93, 93, - 93, 93, 109, 109, 109, 110, 110, 111, 111, 111, - 110, 110, 110, 112, 113, 113, 114, 115, 115, 116, - 116, 118, 117, 119, 117, 117, 117, 117, 117, 120, - 121, 121, 121, 122, 122, 122, 122, 122, 123, 123, - 123, 123, 124, 124, 125, 126, 126, 126, 126, 126, - 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, - 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, - 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, - 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, - 126, 126, 126, 127, 127, 127, 127, 128, 128, 129, - 129, 130, 130, 131, 132, 132, 133, 133, 134, 134, - 134, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 136, 136, - 136, 136, 136, 136, 137, 137, 137, 137 + 0, 90, 91, 91, 92, 92, 92, 92, 93, 93, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 95, 94, 96, 94, 97, 94, 98, 98, 99, 99, + 100, 100, 100, 101, 94, 94, 102, 94, 103, 104, + 104, 104, 105, 106, 94, 107, 107, 94, 108, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 109, 109, 94, + 94, 94, 94, 110, 110, 110, 111, 111, 112, 112, + 112, 111, 111, 111, 113, 114, 114, 115, 116, 116, + 117, 117, 119, 118, 120, 118, 118, 118, 118, 118, + 121, 122, 122, 122, 123, 123, 123, 123, 123, 124, + 124, 124, 124, 125, 125, 126, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 128, 128, 128, 128, 129, 129, + 130, 130, 131, 131, 132, 133, 133, 134, 134, 135, + 135, 135, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 137, + 137, 137, 137, 137, 137, 138, 138, 138, 138 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1278,31 +1279,31 @@ { 0, 2, 1, 1, 1, 4, 4, 4, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 4, 4, 2, 3, 4, 3, 4, 5, 3, 3, - 3, 4, 3, 4, 5, 3, 3, 4, 4, 0, - 5, 0, 5, 0, 5, 1, 1, 1, 2, 3, - 2, 2, 0, 5, 3, 0, 5, 1, 0, 1, - 3, 5, 4, 1, 1, 1, 3, 1, 3, 4, - 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 4, 4, 2, 4, 3, 4, 3, 4, 5, 3, + 3, 3, 4, 3, 4, 5, 3, 3, 4, 4, + 0, 5, 0, 5, 0, 5, 1, 1, 1, 2, + 3, 2, 2, 0, 5, 3, 0, 5, 1, 0, + 1, 3, 5, 4, 1, 1, 1, 3, 1, 3, + 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 5, 3, 3, 1, 1, 1, 1, 1, 1, - 4, 4, 7, 7, 7, 7, 1, 2, 1, 1, - 1, 1, 1, 1, 3, 2, 3, 3, 4, 5, - 1, 2, 1, 2, 1, 0, 3, 1, 1, 1, - 0, 0, 4, 0, 3, 1, 2, 1, 2, 1, - 2, 1, 1, 3, 2, 1, 2, 1, 2, 2, - 3, 3, 2, 3, 1, 1, 1, 1, 1, 2, - 3, 2, 3, 3, 3, 2, 2, 3, 4, 3, - 3, 4, 3, 4, 3, 4, 2, 3, 2, 3, - 2, 3, 1, 2, 2, 2, 3, 2, 2, 3, - 2, 2, 3, 2, 2, 3, 2, 1, 2, 1, - 5, 2, 2, 1, 1, 1, 1, 1, 3, 1, - 3, 1, 2, 2, 0, 2, 2, 2, 1, 1, - 1, 2, 2, 4, 4, 4, 4, 2, 2, 2, + 3, 3, 5, 3, 3, 1, 1, 1, 1, 1, + 1, 4, 4, 7, 7, 7, 7, 1, 2, 1, + 1, 1, 1, 1, 1, 3, 2, 3, 3, 4, + 5, 1, 2, 1, 2, 1, 0, 3, 1, 1, + 1, 0, 0, 4, 0, 3, 1, 2, 1, 2, + 1, 2, 1, 1, 3, 2, 1, 2, 1, 2, + 2, 3, 3, 2, 3, 1, 1, 1, 1, 1, + 2, 3, 2, 3, 3, 3, 2, 2, 3, 4, + 3, 3, 4, 3, 4, 3, 4, 2, 3, 2, + 3, 2, 3, 1, 2, 2, 2, 3, 2, 2, + 3, 2, 2, 3, 2, 2, 3, 2, 1, 2, + 1, 5, 2, 2, 1, 1, 1, 1, 1, 3, + 1, 3, 1, 2, 2, 0, 2, 2, 2, 1, + 1, 1, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 3, 3, 3, 2, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1 + 2, 2, 2, 2, 2, 3, 3, 3, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1 }; @@ -1979,142 +1980,148 @@ switch (yyn) { case 4: -#line 232 "c-exp.y" /* yacc.c:1646 */ +#line 233 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode(pstate, OP_TYPE); write_exp_elt_type(pstate, (yyvsp[0].tval)); write_exp_elt_opcode(pstate, OP_TYPE);} -#line 1988 "c-exp.c" /* yacc.c:1646 */ +#line 1989 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 5: -#line 236 "c-exp.y" /* yacc.c:1646 */ +#line 237 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_TYPEOF); } -#line 1996 "c-exp.c" /* yacc.c:1646 */ +#line 1997 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 6: -#line 240 "c-exp.y" /* yacc.c:1646 */ +#line 241 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_TYPE); write_exp_elt_type (pstate, (yyvsp[-1].tval)); write_exp_elt_opcode (pstate, OP_TYPE); } -#line 2006 "c-exp.c" /* yacc.c:1646 */ +#line 2007 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 7: -#line 246 "c-exp.y" /* yacc.c:1646 */ +#line 247 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_DECLTYPE); } -#line 2014 "c-exp.c" /* yacc.c:1646 */ +#line 2015 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 9: -#line 254 "c-exp.y" /* yacc.c:1646 */ +#line 255 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_COMMA); } -#line 2020 "c-exp.c" /* yacc.c:1646 */ +#line 2021 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 10: -#line 259 "c-exp.y" /* yacc.c:1646 */ +#line 260 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_IND); } -#line 2026 "c-exp.c" /* yacc.c:1646 */ +#line 2027 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 11: -#line 263 "c-exp.y" /* yacc.c:1646 */ +#line 264 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_ADDR); } -#line 2032 "c-exp.c" /* yacc.c:1646 */ +#line 2033 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 12: -#line 267 "c-exp.y" /* yacc.c:1646 */ +#line 268 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_NEG); } -#line 2038 "c-exp.c" /* yacc.c:1646 */ +#line 2039 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 13: -#line 271 "c-exp.y" /* yacc.c:1646 */ +#line 272 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_PLUS); } -#line 2044 "c-exp.c" /* yacc.c:1646 */ +#line 2045 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 14: -#line 275 "c-exp.y" /* yacc.c:1646 */ +#line 276 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_LOGICAL_NOT); } -#line 2050 "c-exp.c" /* yacc.c:1646 */ +#line 2051 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 15: -#line 279 "c-exp.y" /* yacc.c:1646 */ +#line 280 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_COMPLEMENT); } -#line 2056 "c-exp.c" /* yacc.c:1646 */ +#line 2057 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 16: -#line 283 "c-exp.y" /* yacc.c:1646 */ +#line 284 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_PREINCREMENT); } -#line 2062 "c-exp.c" /* yacc.c:1646 */ +#line 2063 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 17: -#line 287 "c-exp.y" /* yacc.c:1646 */ +#line 288 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_PREDECREMENT); } -#line 2068 "c-exp.c" /* yacc.c:1646 */ +#line 2069 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 18: -#line 291 "c-exp.y" /* yacc.c:1646 */ +#line 292 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_POSTINCREMENT); } -#line 2074 "c-exp.c" /* yacc.c:1646 */ +#line 2075 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 19: -#line 295 "c-exp.y" /* yacc.c:1646 */ +#line 296 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_POSTDECREMENT); } -#line 2080 "c-exp.c" /* yacc.c:1646 */ +#line 2081 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 20: -#line 299 "c-exp.y" /* yacc.c:1646 */ +#line 300 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_TYPEID); } -#line 2086 "c-exp.c" /* yacc.c:1646 */ +#line 2087 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 21: -#line 303 "c-exp.y" /* yacc.c:1646 */ +#line 304 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_TYPEID); } -#line 2092 "c-exp.c" /* yacc.c:1646 */ +#line 2093 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 22: -#line 307 "c-exp.y" /* yacc.c:1646 */ +#line 308 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_SIZEOF); } -#line 2098 "c-exp.c" /* yacc.c:1646 */ +#line 2099 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 23: -#line 311 "c-exp.y" /* yacc.c:1646 */ +#line 312 "c-exp.y" /* yacc.c:1646 */ + { write_exp_elt_opcode (pstate, UNOP_ALIGNOF); } +#line 2105 "c-exp.c.tmp" /* yacc.c:1646 */ + break; + + case 24: +#line 316 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, STRUCTOP_PTR); write_exp_string (pstate, (yyvsp[0].sval)); write_exp_elt_opcode (pstate, STRUCTOP_PTR); } -#line 2106 "c-exp.c" /* yacc.c:1646 */ +#line 2113 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 24: -#line 317 "c-exp.y" /* yacc.c:1646 */ + case 25: +#line 322 "c-exp.y" /* yacc.c:1646 */ { mark_struct_expression (pstate); write_exp_elt_opcode (pstate, STRUCTOP_PTR); write_exp_string (pstate, (yyvsp[-1].sval)); write_exp_elt_opcode (pstate, STRUCTOP_PTR); } -#line 2115 "c-exp.c" /* yacc.c:1646 */ +#line 2122 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 25: -#line 324 "c-exp.y" /* yacc.c:1646 */ + case 26: +#line 329 "c-exp.y" /* yacc.c:1646 */ { struct stoken s; mark_struct_expression (pstate); write_exp_elt_opcode (pstate, STRUCTOP_PTR); @@ -2122,61 +2129,61 @@ s.length = 0; write_exp_string (pstate, s); write_exp_elt_opcode (pstate, STRUCTOP_PTR); } -#line 2127 "c-exp.c" /* yacc.c:1646 */ +#line 2134 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 26: -#line 334 "c-exp.y" /* yacc.c:1646 */ + case 27: +#line 339 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, STRUCTOP_PTR); write_destructor_name (pstate, (yyvsp[0].sval)); write_exp_elt_opcode (pstate, STRUCTOP_PTR); } -#line 2135 "c-exp.c" /* yacc.c:1646 */ +#line 2142 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 27: -#line 340 "c-exp.y" /* yacc.c:1646 */ + case 28: +#line 345 "c-exp.y" /* yacc.c:1646 */ { mark_struct_expression (pstate); write_exp_elt_opcode (pstate, STRUCTOP_PTR); write_destructor_name (pstate, (yyvsp[-1].sval)); write_exp_elt_opcode (pstate, STRUCTOP_PTR); } -#line 2144 "c-exp.c" /* yacc.c:1646 */ +#line 2151 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 28: -#line 347 "c-exp.y" /* yacc.c:1646 */ + case 29: +#line 352 "c-exp.y" /* yacc.c:1646 */ { /* exp->type::name becomes exp->*(&type::name) */ /* Note: this doesn't work if name is a static member! FIXME */ write_exp_elt_opcode (pstate, UNOP_ADDR); write_exp_elt_opcode (pstate, STRUCTOP_MPTR); } -#line 2154 "c-exp.c" /* yacc.c:1646 */ +#line 2161 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 29: -#line 355 "c-exp.y" /* yacc.c:1646 */ + case 30: +#line 360 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, STRUCTOP_MPTR); } -#line 2160 "c-exp.c" /* yacc.c:1646 */ +#line 2167 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 30: -#line 359 "c-exp.y" /* yacc.c:1646 */ + case 31: +#line 364 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, STRUCTOP_STRUCT); write_exp_string (pstate, (yyvsp[0].sval)); write_exp_elt_opcode (pstate, STRUCTOP_STRUCT); } -#line 2168 "c-exp.c" /* yacc.c:1646 */ +#line 2175 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 31: -#line 365 "c-exp.y" /* yacc.c:1646 */ + case 32: +#line 370 "c-exp.y" /* yacc.c:1646 */ { mark_struct_expression (pstate); write_exp_elt_opcode (pstate, STRUCTOP_STRUCT); write_exp_string (pstate, (yyvsp[-1].sval)); write_exp_elt_opcode (pstate, STRUCTOP_STRUCT); } -#line 2177 "c-exp.c" /* yacc.c:1646 */ +#line 2184 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 32: -#line 372 "c-exp.y" /* yacc.c:1646 */ + case 33: +#line 377 "c-exp.y" /* yacc.c:1646 */ { struct stoken s; mark_struct_expression (pstate); write_exp_elt_opcode (pstate, STRUCTOP_STRUCT); @@ -2184,56 +2191,56 @@ s.length = 0; write_exp_string (pstate, s); write_exp_elt_opcode (pstate, STRUCTOP_STRUCT); } -#line 2189 "c-exp.c" /* yacc.c:1646 */ +#line 2196 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 33: -#line 382 "c-exp.y" /* yacc.c:1646 */ + case 34: +#line 387 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, STRUCTOP_STRUCT); write_destructor_name (pstate, (yyvsp[0].sval)); write_exp_elt_opcode (pstate, STRUCTOP_STRUCT); } -#line 2197 "c-exp.c" /* yacc.c:1646 */ +#line 2204 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 34: -#line 388 "c-exp.y" /* yacc.c:1646 */ + case 35: +#line 393 "c-exp.y" /* yacc.c:1646 */ { mark_struct_expression (pstate); write_exp_elt_opcode (pstate, STRUCTOP_STRUCT); write_destructor_name (pstate, (yyvsp[-1].sval)); write_exp_elt_opcode (pstate, STRUCTOP_STRUCT); } -#line 2206 "c-exp.c" /* yacc.c:1646 */ +#line 2213 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 35: -#line 395 "c-exp.y" /* yacc.c:1646 */ + case 36: +#line 400 "c-exp.y" /* yacc.c:1646 */ { /* exp.type::name becomes exp.*(&type::name) */ /* Note: this doesn't work if name is a static member! FIXME */ write_exp_elt_opcode (pstate, UNOP_ADDR); write_exp_elt_opcode (pstate, STRUCTOP_MEMBER); } -#line 2216 "c-exp.c" /* yacc.c:1646 */ +#line 2223 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 36: -#line 403 "c-exp.y" /* yacc.c:1646 */ + case 37: +#line 408 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, STRUCTOP_MEMBER); } -#line 2222 "c-exp.c" /* yacc.c:1646 */ +#line 2229 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 37: -#line 407 "c-exp.y" /* yacc.c:1646 */ + case 38: +#line 412 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_SUBSCRIPT); } -#line 2228 "c-exp.c" /* yacc.c:1646 */ +#line 2235 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 38: -#line 411 "c-exp.y" /* yacc.c:1646 */ + case 39: +#line 416 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_SUBSCRIPT); } -#line 2234 "c-exp.c" /* yacc.c:1646 */ +#line 2241 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 39: -#line 420 "c-exp.y" /* yacc.c:1646 */ + case 40: +#line 425 "c-exp.y" /* yacc.c:1646 */ { CORE_ADDR theclass; @@ -2249,20 +2256,20 @@ write_exp_elt_opcode (pstate, OP_LONG); start_msglist(); } -#line 2254 "c-exp.c" /* yacc.c:1646 */ +#line 2261 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 40: -#line 436 "c-exp.y" /* yacc.c:1646 */ + case 41: +#line 441 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_OBJC_MSGCALL); end_msglist (pstate); write_exp_elt_opcode (pstate, OP_OBJC_MSGCALL); } -#line 2263 "c-exp.c" /* yacc.c:1646 */ +#line 2270 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 41: -#line 443 "c-exp.y" /* yacc.c:1646 */ + case 42: +#line 448 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_LONG); write_exp_elt_type (pstate, @@ -2271,84 +2278,84 @@ write_exp_elt_opcode (pstate, OP_LONG); start_msglist(); } -#line 2276 "c-exp.c" /* yacc.c:1646 */ +#line 2283 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 42: -#line 452 "c-exp.y" /* yacc.c:1646 */ + case 43: +#line 457 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_OBJC_MSGCALL); end_msglist (pstate); write_exp_elt_opcode (pstate, OP_OBJC_MSGCALL); } -#line 2285 "c-exp.c" /* yacc.c:1646 */ +#line 2292 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 43: -#line 459 "c-exp.y" /* yacc.c:1646 */ + case 44: +#line 464 "c-exp.y" /* yacc.c:1646 */ { start_msglist(); } -#line 2291 "c-exp.c" /* yacc.c:1646 */ +#line 2298 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 44: -#line 461 "c-exp.y" /* yacc.c:1646 */ + case 45: +#line 466 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_OBJC_MSGCALL); end_msglist (pstate); write_exp_elt_opcode (pstate, OP_OBJC_MSGCALL); } -#line 2300 "c-exp.c" /* yacc.c:1646 */ +#line 2307 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 45: -#line 468 "c-exp.y" /* yacc.c:1646 */ + case 46: +#line 473 "c-exp.y" /* yacc.c:1646 */ { add_msglist(&(yyvsp[0].sval), 0); } -#line 2306 "c-exp.c" /* yacc.c:1646 */ +#line 2313 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 49: -#line 477 "c-exp.y" /* yacc.c:1646 */ + case 50: +#line 482 "c-exp.y" /* yacc.c:1646 */ { add_msglist(&(yyvsp[-2].sval), 1); } -#line 2312 "c-exp.c" /* yacc.c:1646 */ +#line 2319 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 50: -#line 479 "c-exp.y" /* yacc.c:1646 */ + case 51: +#line 484 "c-exp.y" /* yacc.c:1646 */ { add_msglist(0, 1); } -#line 2318 "c-exp.c" /* yacc.c:1646 */ +#line 2325 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 51: -#line 481 "c-exp.y" /* yacc.c:1646 */ + case 52: +#line 486 "c-exp.y" /* yacc.c:1646 */ { add_msglist(0, 0); } -#line 2324 "c-exp.c" /* yacc.c:1646 */ +#line 2331 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 52: -#line 487 "c-exp.y" /* yacc.c:1646 */ + case 53: +#line 492 "c-exp.y" /* yacc.c:1646 */ { start_arglist (); } -#line 2330 "c-exp.c" /* yacc.c:1646 */ +#line 2337 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 53: -#line 489 "c-exp.y" /* yacc.c:1646 */ + case 54: +#line 494 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_FUNCALL); write_exp_elt_longcst (pstate, (LONGEST) end_arglist ()); write_exp_elt_opcode (pstate, OP_FUNCALL); } -#line 2339 "c-exp.c" /* yacc.c:1646 */ +#line 2346 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 54: -#line 499 "c-exp.y" /* yacc.c:1646 */ + case 55: +#line 504 "c-exp.y" /* yacc.c:1646 */ { start_arglist (); write_exp_elt_opcode (pstate, OP_FUNCALL); write_exp_elt_longcst (pstate, (LONGEST) end_arglist ()); write_exp_elt_opcode (pstate, OP_FUNCALL); } -#line 2349 "c-exp.c" /* yacc.c:1646 */ +#line 2356 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 55: -#line 508 "c-exp.y" /* yacc.c:1646 */ + case 56: +#line 513 "c-exp.y" /* yacc.c:1646 */ { /* This could potentially be a an argument defined lookup function (Koenig). */ @@ -2365,40 +2372,40 @@ start_arglist (); } -#line 2370 "c-exp.c" /* yacc.c:1646 */ +#line 2377 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 56: -#line 525 "c-exp.y" /* yacc.c:1646 */ + case 57: +#line 530 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_FUNCALL); write_exp_elt_longcst (pstate, (LONGEST) end_arglist ()); write_exp_elt_opcode (pstate, OP_FUNCALL); } -#line 2381 "c-exp.c" /* yacc.c:1646 */ +#line 2388 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 57: -#line 534 "c-exp.y" /* yacc.c:1646 */ + case 58: +#line 539 "c-exp.y" /* yacc.c:1646 */ { start_arglist (); } -#line 2387 "c-exp.c" /* yacc.c:1646 */ +#line 2394 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 59: -#line 541 "c-exp.y" /* yacc.c:1646 */ + case 60: +#line 546 "c-exp.y" /* yacc.c:1646 */ { arglist_len = 1; } -#line 2393 "c-exp.c" /* yacc.c:1646 */ +#line 2400 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 60: -#line 545 "c-exp.y" /* yacc.c:1646 */ + case 61: +#line 550 "c-exp.y" /* yacc.c:1646 */ { arglist_len++; } -#line 2399 "c-exp.c" /* yacc.c:1646 */ +#line 2406 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 61: -#line 549 "c-exp.y" /* yacc.c:1646 */ + case 62: +#line 554 "c-exp.y" /* yacc.c:1646 */ { int i; VEC (type_ptr) *type_list = (yyvsp[-2].tvec); struct type *type_elt; @@ -2419,11 +2426,11 @@ write_exp_elt_opcode (pstate, TYPE_INSTANCE); VEC_free (type_ptr, type_list); } -#line 2424 "c-exp.c" /* yacc.c:1646 */ +#line 2431 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 62: -#line 572 "c-exp.y" /* yacc.c:1646 */ + case 63: +#line 577 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, TYPE_INSTANCE); /* See above. */ write_exp_elt_longcst (pstate, @@ -2432,209 +2439,209 @@ write_exp_elt_longcst (pstate, 0); write_exp_elt_opcode (pstate, TYPE_INSTANCE); } -#line 2437 "c-exp.c" /* yacc.c:1646 */ +#line 2444 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 66: -#line 594 "c-exp.y" /* yacc.c:1646 */ + case 67: +#line 599 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_FUNC_STATIC_VAR); write_exp_string (pstate, (yyvsp[0].sval)); write_exp_elt_opcode (pstate, OP_FUNC_STATIC_VAR); } -#line 2447 "c-exp.c" /* yacc.c:1646 */ +#line 2454 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 67: -#line 602 "c-exp.y" /* yacc.c:1646 */ + case 68: +#line 607 "c-exp.y" /* yacc.c:1646 */ { (yyval.lval) = end_arglist () - 1; } -#line 2453 "c-exp.c" /* yacc.c:1646 */ +#line 2460 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 68: -#line 605 "c-exp.y" /* yacc.c:1646 */ + case 69: +#line 610 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_ARRAY); write_exp_elt_longcst (pstate, (LONGEST) 0); write_exp_elt_longcst (pstate, (LONGEST) (yyvsp[0].lval)); write_exp_elt_opcode (pstate, OP_ARRAY); } -#line 2462 "c-exp.c" /* yacc.c:1646 */ +#line 2469 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 69: -#line 612 "c-exp.y" /* yacc.c:1646 */ + case 70: +#line 617 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_MEMVAL_TYPE); } -#line 2468 "c-exp.c" /* yacc.c:1646 */ +#line 2475 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 70: -#line 616 "c-exp.y" /* yacc.c:1646 */ + case 71: +#line 621 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_CAST_TYPE); } -#line 2474 "c-exp.c" /* yacc.c:1646 */ +#line 2481 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 71: -#line 620 "c-exp.y" /* yacc.c:1646 */ + case 72: +#line 625 "c-exp.y" /* yacc.c:1646 */ { } -#line 2480 "c-exp.c" /* yacc.c:1646 */ +#line 2487 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 72: -#line 626 "c-exp.y" /* yacc.c:1646 */ + case 73: +#line 631 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_REPEAT); } -#line 2486 "c-exp.c" /* yacc.c:1646 */ +#line 2493 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 73: -#line 630 "c-exp.y" /* yacc.c:1646 */ + case 74: +#line 635 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_MUL); } -#line 2492 "c-exp.c" /* yacc.c:1646 */ +#line 2499 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 74: -#line 634 "c-exp.y" /* yacc.c:1646 */ + case 75: +#line 639 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_DIV); } -#line 2498 "c-exp.c" /* yacc.c:1646 */ +#line 2505 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 75: -#line 638 "c-exp.y" /* yacc.c:1646 */ + case 76: +#line 643 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_REM); } -#line 2504 "c-exp.c" /* yacc.c:1646 */ +#line 2511 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 76: -#line 642 "c-exp.y" /* yacc.c:1646 */ + case 77: +#line 647 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_ADD); } -#line 2510 "c-exp.c" /* yacc.c:1646 */ +#line 2517 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 77: -#line 646 "c-exp.y" /* yacc.c:1646 */ + case 78: +#line 651 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_SUB); } -#line 2516 "c-exp.c" /* yacc.c:1646 */ +#line 2523 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 78: -#line 650 "c-exp.y" /* yacc.c:1646 */ + case 79: +#line 655 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_LSH); } -#line 2522 "c-exp.c" /* yacc.c:1646 */ +#line 2529 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 79: -#line 654 "c-exp.y" /* yacc.c:1646 */ + case 80: +#line 659 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_RSH); } -#line 2528 "c-exp.c" /* yacc.c:1646 */ +#line 2535 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 80: -#line 658 "c-exp.y" /* yacc.c:1646 */ + case 81: +#line 663 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_EQUAL); } -#line 2534 "c-exp.c" /* yacc.c:1646 */ +#line 2541 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 81: -#line 662 "c-exp.y" /* yacc.c:1646 */ + case 82: +#line 667 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_NOTEQUAL); } -#line 2540 "c-exp.c" /* yacc.c:1646 */ +#line 2547 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 82: -#line 666 "c-exp.y" /* yacc.c:1646 */ + case 83: +#line 671 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_LEQ); } -#line 2546 "c-exp.c" /* yacc.c:1646 */ +#line 2553 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 83: -#line 670 "c-exp.y" /* yacc.c:1646 */ + case 84: +#line 675 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_GEQ); } -#line 2552 "c-exp.c" /* yacc.c:1646 */ +#line 2559 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 84: -#line 674 "c-exp.y" /* yacc.c:1646 */ + case 85: +#line 679 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_LESS); } -#line 2558 "c-exp.c" /* yacc.c:1646 */ +#line 2565 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 85: -#line 678 "c-exp.y" /* yacc.c:1646 */ + case 86: +#line 683 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_GTR); } -#line 2564 "c-exp.c" /* yacc.c:1646 */ +#line 2571 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 86: -#line 682 "c-exp.y" /* yacc.c:1646 */ + case 87: +#line 687 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_BITWISE_AND); } -#line 2570 "c-exp.c" /* yacc.c:1646 */ +#line 2577 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 87: -#line 686 "c-exp.y" /* yacc.c:1646 */ + case 88: +#line 691 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_BITWISE_XOR); } -#line 2576 "c-exp.c" /* yacc.c:1646 */ +#line 2583 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 88: -#line 690 "c-exp.y" /* yacc.c:1646 */ + case 89: +#line 695 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_BITWISE_IOR); } -#line 2582 "c-exp.c" /* yacc.c:1646 */ +#line 2589 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 89: -#line 694 "c-exp.y" /* yacc.c:1646 */ + case 90: +#line 699 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_LOGICAL_AND); } -#line 2588 "c-exp.c" /* yacc.c:1646 */ +#line 2595 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 90: -#line 698 "c-exp.y" /* yacc.c:1646 */ + case 91: +#line 703 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_LOGICAL_OR); } -#line 2594 "c-exp.c" /* yacc.c:1646 */ +#line 2601 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 91: -#line 702 "c-exp.y" /* yacc.c:1646 */ + case 92: +#line 707 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, TERNOP_COND); } -#line 2600 "c-exp.c" /* yacc.c:1646 */ +#line 2607 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 92: -#line 706 "c-exp.y" /* yacc.c:1646 */ + case 93: +#line 711 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_ASSIGN); } -#line 2606 "c-exp.c" /* yacc.c:1646 */ +#line 2613 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 93: -#line 710 "c-exp.y" /* yacc.c:1646 */ + case 94: +#line 715 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_ASSIGN_MODIFY); write_exp_elt_opcode (pstate, (yyvsp[-1].opcode)); write_exp_elt_opcode (pstate, BINOP_ASSIGN_MODIFY); } -#line 2615 "c-exp.c" /* yacc.c:1646 */ +#line 2622 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 94: -#line 717 "c-exp.y" /* yacc.c:1646 */ + case 95: +#line 722 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_LONG); write_exp_elt_type (pstate, (yyvsp[0].typed_val_int).type); write_exp_elt_longcst (pstate, (LONGEST) ((yyvsp[0].typed_val_int).val)); write_exp_elt_opcode (pstate, OP_LONG); } -#line 2624 "c-exp.c" /* yacc.c:1646 */ +#line 2631 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 95: -#line 724 "c-exp.y" /* yacc.c:1646 */ + case 96: +#line 729 "c-exp.y" /* yacc.c:1646 */ { struct stoken_vector vec; vec.len = 1; vec.tokens = &(yyvsp[0].tsval); write_exp_string_vector (pstate, (yyvsp[0].tsval).type, &vec); } -#line 2635 "c-exp.c" /* yacc.c:1646 */ +#line 2642 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 96: -#line 733 "c-exp.y" /* yacc.c:1646 */ + case 97: +#line 738 "c-exp.y" /* yacc.c:1646 */ { YYSTYPE val; parse_number (pstate, (yyvsp[0].ssym).stoken.ptr, (yyvsp[0].ssym).stoken.length, 0, &val); @@ -2644,37 +2651,37 @@ (LONGEST) val.typed_val_int.val); write_exp_elt_opcode (pstate, OP_LONG); } -#line 2649 "c-exp.c" /* yacc.c:1646 */ +#line 2656 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 97: -#line 746 "c-exp.y" /* yacc.c:1646 */ + case 98: +#line 751 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_FLOAT); write_exp_elt_type (pstate, (yyvsp[0].typed_val_float).type); write_exp_elt_floatcst (pstate, (yyvsp[0].typed_val_float).val); write_exp_elt_opcode (pstate, OP_FLOAT); } -#line 2658 "c-exp.c" /* yacc.c:1646 */ +#line 2665 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 99: -#line 756 "c-exp.y" /* yacc.c:1646 */ + case 100: +#line 761 "c-exp.y" /* yacc.c:1646 */ { write_dollar_variable (pstate, (yyvsp[0].sval)); } -#line 2666 "c-exp.c" /* yacc.c:1646 */ +#line 2673 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 100: -#line 762 "c-exp.y" /* yacc.c:1646 */ + case 101: +#line 767 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_OBJC_SELECTOR); write_exp_string (pstate, (yyvsp[-1].sval)); write_exp_elt_opcode (pstate, OP_OBJC_SELECTOR); } -#line 2675 "c-exp.c" /* yacc.c:1646 */ +#line 2682 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 101: -#line 769 "c-exp.y" /* yacc.c:1646 */ + case 102: +#line 774 "c-exp.y" /* yacc.c:1646 */ { struct type *type = (yyvsp[-1].tval); write_exp_elt_opcode (pstate, OP_LONG); write_exp_elt_type (pstate, lookup_signed_typename @@ -2692,38 +2699,38 @@ write_exp_elt_longcst (pstate, (LONGEST) TYPE_LENGTH (type)); write_exp_elt_opcode (pstate, OP_LONG); } -#line 2697 "c-exp.c" /* yacc.c:1646 */ +#line 2704 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 102: -#line 789 "c-exp.y" /* yacc.c:1646 */ + case 103: +#line 794 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_REINTERPRET_CAST); } -#line 2704 "c-exp.c" /* yacc.c:1646 */ +#line 2711 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 103: -#line 794 "c-exp.y" /* yacc.c:1646 */ + case 104: +#line 799 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_CAST_TYPE); } -#line 2710 "c-exp.c" /* yacc.c:1646 */ +#line 2717 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 104: -#line 798 "c-exp.y" /* yacc.c:1646 */ + case 105: +#line 803 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_DYNAMIC_CAST); } -#line 2716 "c-exp.c" /* yacc.c:1646 */ +#line 2723 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 105: -#line 802 "c-exp.y" /* yacc.c:1646 */ + case 106: +#line 807 "c-exp.y" /* yacc.c:1646 */ { /* We could do more error checking here, but it doesn't seem worthwhile. */ write_exp_elt_opcode (pstate, UNOP_CAST_TYPE); } -#line 2724 "c-exp.c" /* yacc.c:1646 */ +#line 2731 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 106: -#line 809 "c-exp.y" /* yacc.c:1646 */ + case 107: +#line 814 "c-exp.y" /* yacc.c:1646 */ { /* We copy the string here, and not in the lexer, to guarantee that we do not leak a @@ -2739,11 +2746,11 @@ vec->ptr = (char *) xmalloc ((yyvsp[0].tsval).length + 1); memcpy (vec->ptr, (yyvsp[0].tsval).ptr, (yyvsp[0].tsval).length + 1); } -#line 2744 "c-exp.c" /* yacc.c:1646 */ +#line 2751 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 107: -#line 826 "c-exp.y" /* yacc.c:1646 */ + case 108: +#line 831 "c-exp.y" /* yacc.c:1646 */ { /* Note that we NUL-terminate here, but just for convenience. */ @@ -2759,11 +2766,11 @@ (yyval.svec).tokens[(yyval.svec).len - 1].length = (yyvsp[0].tsval).length; (yyval.svec).tokens[(yyval.svec).len - 1].ptr = p; } -#line 2764 "c-exp.c" /* yacc.c:1646 */ +#line 2771 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 108: -#line 844 "c-exp.y" /* yacc.c:1646 */ + case 109: +#line 849 "c-exp.y" /* yacc.c:1646 */ { int i; c_string_type type = C_STRING; @@ -2794,39 +2801,39 @@ xfree ((yyvsp[0].svec).tokens[i].ptr); xfree ((yyvsp[0].svec).tokens); } -#line 2799 "c-exp.c" /* yacc.c:1646 */ +#line 2806 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 109: -#line 879 "c-exp.y" /* yacc.c:1646 */ + case 110: +#line 884 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_OBJC_NSSTRING); write_exp_string (pstate, (yyvsp[0].sval)); write_exp_elt_opcode (pstate, OP_OBJC_NSSTRING); } -#line 2807 "c-exp.c" /* yacc.c:1646 */ +#line 2814 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 110: -#line 886 "c-exp.y" /* yacc.c:1646 */ + case 111: +#line 891 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_LONG); write_exp_elt_type (pstate, parse_type (pstate)->builtin_bool); write_exp_elt_longcst (pstate, (LONGEST) 1); write_exp_elt_opcode (pstate, OP_LONG); } -#line 2817 "c-exp.c" /* yacc.c:1646 */ +#line 2824 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 111: -#line 894 "c-exp.y" /* yacc.c:1646 */ + case 112: +#line 899 "c-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_LONG); write_exp_elt_type (pstate, parse_type (pstate)->builtin_bool); write_exp_elt_longcst (pstate, (LONGEST) 0); write_exp_elt_opcode (pstate, OP_LONG); } -#line 2827 "c-exp.c" /* yacc.c:1646 */ +#line 2834 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 112: -#line 904 "c-exp.y" /* yacc.c:1646 */ + case 113: +#line 909 "c-exp.y" /* yacc.c:1646 */ { if ((yyvsp[0].ssym).sym.symbol) (yyval.bval) = SYMBOL_BLOCK_VALUE ((yyvsp[0].ssym).sym.symbol); @@ -2834,19 +2841,19 @@ error (_("No file or function \"%s\"."), copy_name ((yyvsp[0].ssym).stoken)); } -#line 2839 "c-exp.c" /* yacc.c:1646 */ +#line 2846 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 113: -#line 912 "c-exp.y" /* yacc.c:1646 */ + case 114: +#line 917 "c-exp.y" /* yacc.c:1646 */ { (yyval.bval) = (yyvsp[0].bval); } -#line 2847 "c-exp.c" /* yacc.c:1646 */ +#line 2854 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 114: -#line 918 "c-exp.y" /* yacc.c:1646 */ + case 115: +#line 923 "c-exp.y" /* yacc.c:1646 */ { struct symbol *tem = lookup_symbol (copy_name ((yyvsp[0].sval)), (yyvsp[-2].bval), VAR_DOMAIN, NULL).symbol; @@ -2855,11 +2862,11 @@ error (_("No function \"%s\" in specified context."), copy_name ((yyvsp[0].sval))); (yyval.bval) = SYMBOL_BLOCK_VALUE (tem); } -#line 2860 "c-exp.c" /* yacc.c:1646 */ +#line 2867 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 115: -#line 929 "c-exp.y" /* yacc.c:1646 */ + case 116: +#line 934 "c-exp.y" /* yacc.c:1646 */ { struct symbol *sym = (yyvsp[-1].ssym).sym.symbol; if (sym == NULL || !SYMBOL_IS_ARGUMENT (sym) @@ -2872,11 +2879,11 @@ write_exp_elt_sym (pstate, sym); write_exp_elt_opcode (pstate, OP_VAR_ENTRY_VALUE); } -#line 2877 "c-exp.c" /* yacc.c:1646 */ +#line 2884 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 116: -#line 944 "c-exp.y" /* yacc.c:1646 */ + case 117: +#line 949 "c-exp.y" /* yacc.c:1646 */ { struct block_symbol sym = lookup_symbol (copy_name ((yyvsp[0].sval)), (yyvsp[-2].bval), VAR_DOMAIN, NULL); @@ -2885,22 +2892,18 @@ error (_("No symbol \"%s\" in specified context."), copy_name ((yyvsp[0].sval))); if (symbol_read_needs_frame (sym.symbol)) - { - if (innermost_block == 0 - || contained_in (sym.block, - innermost_block)) - innermost_block = sym.block; - } + + innermost_block.update (sym); write_exp_elt_opcode (pstate, OP_VAR_VALUE); write_exp_elt_block (pstate, sym.block); write_exp_elt_sym (pstate, sym.symbol); write_exp_elt_opcode (pstate, OP_VAR_VALUE); } -#line 2901 "c-exp.c" /* yacc.c:1646 */ +#line 2904 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 117: -#line 966 "c-exp.y" /* yacc.c:1646 */ + case 118: +#line 967 "c-exp.y" /* yacc.c:1646 */ { struct type *type = (yyvsp[-2].tsym).type; type = check_typedef (type); @@ -2913,11 +2916,11 @@ write_exp_string (pstate, (yyvsp[0].sval)); write_exp_elt_opcode (pstate, OP_SCOPE); } -#line 2918 "c-exp.c" /* yacc.c:1646 */ +#line 2921 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 118: -#line 979 "c-exp.y" /* yacc.c:1646 */ + case 119: +#line 980 "c-exp.y" /* yacc.c:1646 */ { struct type *type = (yyvsp[-3].tsym).type; struct stoken tmp_token; @@ -2941,22 +2944,22 @@ write_exp_string (pstate, tmp_token); write_exp_elt_opcode (pstate, OP_SCOPE); } -#line 2946 "c-exp.c" /* yacc.c:1646 */ +#line 2949 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 119: -#line 1003 "c-exp.y" /* yacc.c:1646 */ + case 120: +#line 1004 "c-exp.y" /* yacc.c:1646 */ { char *copy = copy_name ((yyvsp[-2].sval)); error (_("No type \"%s\" within class " "or namespace \"%s\"."), copy, TYPE_SAFE_NAME ((yyvsp[-4].tsym).type)); } -#line 2957 "c-exp.c" /* yacc.c:1646 */ +#line 2960 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 121: -#line 1013 "c-exp.y" /* yacc.c:1646 */ + case 122: +#line 1014 "c-exp.y" /* yacc.c:1646 */ { char *name = copy_name ((yyvsp[0].ssym).stoken); struct symbol *sym; @@ -2982,37 +2985,41 @@ else error (_("No symbol \"%s\" in current context."), name); } -#line 2987 "c-exp.c" /* yacc.c:1646 */ +#line 2990 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 122: -#line 1041 "c-exp.y" /* yacc.c:1646 */ + case 123: +#line 1042 "c-exp.y" /* yacc.c:1646 */ { struct block_symbol sym = (yyvsp[0].ssym).sym; if (sym.symbol) { if (symbol_read_needs_frame (sym.symbol)) + innermost_block.update (sym); + + /* If we found a function, see if it's + an ifunc resolver that has the same + address as the ifunc symbol itself. + If so, prefer the ifunc symbol. */ + + bound_minimal_symbol resolver + = find_gnu_ifunc (sym.symbol); + if (resolver.minsym != NULL) + write_exp_msymbol (pstate, resolver); + else { - if (innermost_block == 0 - || contained_in (sym.block, - innermost_block)) - innermost_block = sym.block; + write_exp_elt_opcode (pstate, OP_VAR_VALUE); + write_exp_elt_block (pstate, sym.block); + write_exp_elt_sym (pstate, sym.symbol); + write_exp_elt_opcode (pstate, OP_VAR_VALUE); } - - write_exp_elt_opcode (pstate, OP_VAR_VALUE); - write_exp_elt_block (pstate, sym.block); - write_exp_elt_sym (pstate, sym.symbol); - write_exp_elt_opcode (pstate, OP_VAR_VALUE); } else if ((yyvsp[0].ssym).is_a_field_of_this) { /* C++: it hangs off of `this'. Must not inadvertently convert from a method call to data ref. */ - if (innermost_block == 0 - || contained_in (sym.block, - innermost_block)) - innermost_block = sym.block; + innermost_block.update (sym); write_exp_elt_opcode (pstate, OP_THIS); write_exp_elt_opcode (pstate, OP_THIS); write_exp_elt_opcode (pstate, STRUCTOP_PTR); @@ -3042,7 +3049,10 @@ is important for example for "p *__errno_location()". */ symbol *alias_target - = find_function_alias_target (msymbol); + = ((msymbol.minsym->type != mst_text_gnu_ifunc + && msymbol.minsym->type != mst_data_gnu_ifunc) + ? find_function_alias_target (msymbol) + : NULL); if (alias_target != NULL) { write_exp_elt_opcode (pstate, OP_VAR_VALUE); @@ -3055,542 +3065,542 @@ write_exp_msymbol (pstate, msymbol); } } -#line 3060 "c-exp.c" /* yacc.c:1646 */ +#line 3070 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 123: -#line 1112 "c-exp.y" /* yacc.c:1646 */ + case 124: +#line 1120 "c-exp.y" /* yacc.c:1646 */ { insert_type_address_space (pstate, copy_name ((yyvsp[0].ssym).stoken)); } -#line 3066 "c-exp.c" /* yacc.c:1646 */ +#line 3076 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 131: -#line 1133 "c-exp.y" /* yacc.c:1646 */ + case 132: +#line 1141 "c-exp.y" /* yacc.c:1646 */ { insert_type (tp_pointer); } -#line 3072 "c-exp.c" /* yacc.c:1646 */ +#line 3082 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 133: -#line 1136 "c-exp.y" /* yacc.c:1646 */ + case 134: +#line 1144 "c-exp.y" /* yacc.c:1646 */ { insert_type (tp_pointer); } -#line 3078 "c-exp.c" /* yacc.c:1646 */ - break; - - case 135: -#line 1139 "c-exp.y" /* yacc.c:1646 */ - { insert_type (tp_reference); } -#line 3084 "c-exp.c" /* yacc.c:1646 */ +#line 3088 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 136: -#line 1141 "c-exp.y" /* yacc.c:1646 */ +#line 1147 "c-exp.y" /* yacc.c:1646 */ { insert_type (tp_reference); } -#line 3090 "c-exp.c" /* yacc.c:1646 */ +#line 3094 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 137: -#line 1143 "c-exp.y" /* yacc.c:1646 */ - { insert_type (tp_rvalue_reference); } -#line 3096 "c-exp.c" /* yacc.c:1646 */ +#line 1149 "c-exp.y" /* yacc.c:1646 */ + { insert_type (tp_reference); } +#line 3100 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 138: -#line 1145 "c-exp.y" /* yacc.c:1646 */ +#line 1151 "c-exp.y" /* yacc.c:1646 */ { insert_type (tp_rvalue_reference); } -#line 3102 "c-exp.c" /* yacc.c:1646 */ +#line 3106 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 139: -#line 1149 "c-exp.y" /* yacc.c:1646 */ +#line 1153 "c-exp.y" /* yacc.c:1646 */ + { insert_type (tp_rvalue_reference); } +#line 3112 "c-exp.c.tmp" /* yacc.c:1646 */ + break; + + case 140: +#line 1157 "c-exp.y" /* yacc.c:1646 */ { (yyval.type_stack) = get_type_stack (); /* This cleanup is eventually run by c_parse. */ make_cleanup (type_stack_cleanup, (yyval.type_stack)); } -#line 3113 "c-exp.c" /* yacc.c:1646 */ +#line 3123 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 140: -#line 1158 "c-exp.y" /* yacc.c:1646 */ + case 141: +#line 1166 "c-exp.y" /* yacc.c:1646 */ { (yyval.type_stack) = append_type_stack ((yyvsp[0].type_stack), (yyvsp[-1].type_stack)); } -#line 3119 "c-exp.c" /* yacc.c:1646 */ +#line 3129 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 143: -#line 1164 "c-exp.y" /* yacc.c:1646 */ + case 144: +#line 1172 "c-exp.y" /* yacc.c:1646 */ { (yyval.type_stack) = (yyvsp[-1].type_stack); } -#line 3125 "c-exp.c" /* yacc.c:1646 */ +#line 3135 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 144: -#line 1166 "c-exp.y" /* yacc.c:1646 */ + case 145: +#line 1174 "c-exp.y" /* yacc.c:1646 */ { push_type_stack ((yyvsp[-1].type_stack)); push_type_int ((yyvsp[0].lval)); push_type (tp_array); (yyval.type_stack) = get_type_stack (); } -#line 3136 "c-exp.c" /* yacc.c:1646 */ +#line 3146 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 145: -#line 1173 "c-exp.y" /* yacc.c:1646 */ + case 146: +#line 1181 "c-exp.y" /* yacc.c:1646 */ { push_type_int ((yyvsp[0].lval)); push_type (tp_array); (yyval.type_stack) = get_type_stack (); } -#line 3146 "c-exp.c" /* yacc.c:1646 */ +#line 3156 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 146: -#line 1180 "c-exp.y" /* yacc.c:1646 */ + case 147: +#line 1188 "c-exp.y" /* yacc.c:1646 */ { push_type_stack ((yyvsp[-1].type_stack)); push_typelist ((yyvsp[0].tvec)); (yyval.type_stack) = get_type_stack (); } -#line 3156 "c-exp.c" /* yacc.c:1646 */ +#line 3166 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 147: -#line 1186 "c-exp.y" /* yacc.c:1646 */ + case 148: +#line 1194 "c-exp.y" /* yacc.c:1646 */ { push_typelist ((yyvsp[0].tvec)); (yyval.type_stack) = get_type_stack (); } -#line 3165 "c-exp.c" /* yacc.c:1646 */ - break; - - case 148: -#line 1193 "c-exp.y" /* yacc.c:1646 */ - { (yyval.lval) = -1; } -#line 3171 "c-exp.c" /* yacc.c:1646 */ +#line 3175 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 149: -#line 1195 "c-exp.y" /* yacc.c:1646 */ +#line 1201 "c-exp.y" /* yacc.c:1646 */ { (yyval.lval) = -1; } -#line 3177 "c-exp.c" /* yacc.c:1646 */ +#line 3181 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 150: -#line 1197 "c-exp.y" /* yacc.c:1646 */ - { (yyval.lval) = (yyvsp[-1].typed_val_int).val; } -#line 3183 "c-exp.c" /* yacc.c:1646 */ +#line 1203 "c-exp.y" /* yacc.c:1646 */ + { (yyval.lval) = -1; } +#line 3187 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 151: -#line 1199 "c-exp.y" /* yacc.c:1646 */ +#line 1205 "c-exp.y" /* yacc.c:1646 */ { (yyval.lval) = (yyvsp[-1].typed_val_int).val; } -#line 3189 "c-exp.c" /* yacc.c:1646 */ +#line 3193 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 152: -#line 1203 "c-exp.y" /* yacc.c:1646 */ - { (yyval.tvec) = NULL; } -#line 3195 "c-exp.c" /* yacc.c:1646 */ +#line 1207 "c-exp.y" /* yacc.c:1646 */ + { (yyval.lval) = (yyvsp[-1].typed_val_int).val; } +#line 3199 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 153: -#line 1205 "c-exp.y" /* yacc.c:1646 */ - { (yyval.tvec) = (yyvsp[-1].tvec); } -#line 3201 "c-exp.c" /* yacc.c:1646 */ +#line 1211 "c-exp.y" /* yacc.c:1646 */ + { (yyval.tvec) = NULL; } +#line 3205 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 155: -#line 1221 "c-exp.y" /* yacc.c:1646 */ - { (yyval.tval) = (yyvsp[0].tsym).type; } -#line 3207 "c-exp.c" /* yacc.c:1646 */ + case 154: +#line 1213 "c-exp.y" /* yacc.c:1646 */ + { (yyval.tvec) = (yyvsp[-1].tvec); } +#line 3211 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 156: -#line 1223 "c-exp.y" /* yacc.c:1646 */ - { (yyval.tval) = lookup_signed_typename (parse_language (pstate), - parse_gdbarch (pstate), - "int"); } -#line 3215 "c-exp.c" /* yacc.c:1646 */ +#line 1229 "c-exp.y" /* yacc.c:1646 */ + { (yyval.tval) = (yyvsp[0].tsym).type; } +#line 3217 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 157: -#line 1227 "c-exp.y" /* yacc.c:1646 */ +#line 1231 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_signed_typename (parse_language (pstate), parse_gdbarch (pstate), - "long"); } -#line 3223 "c-exp.c" /* yacc.c:1646 */ + "int"); } +#line 3225 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 158: -#line 1231 "c-exp.y" /* yacc.c:1646 */ +#line 1235 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_signed_typename (parse_language (pstate), parse_gdbarch (pstate), - "short"); } -#line 3231 "c-exp.c" /* yacc.c:1646 */ + "long"); } +#line 3233 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 159: -#line 1235 "c-exp.y" /* yacc.c:1646 */ +#line 1239 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_signed_typename (parse_language (pstate), parse_gdbarch (pstate), - "long"); } -#line 3239 "c-exp.c" /* yacc.c:1646 */ + "short"); } +#line 3241 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 160: -#line 1239 "c-exp.y" /* yacc.c:1646 */ +#line 1243 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_signed_typename (parse_language (pstate), parse_gdbarch (pstate), "long"); } -#line 3247 "c-exp.c" /* yacc.c:1646 */ +#line 3249 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 161: -#line 1243 "c-exp.y" /* yacc.c:1646 */ +#line 1247 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_signed_typename (parse_language (pstate), parse_gdbarch (pstate), "long"); } -#line 3255 "c-exp.c" /* yacc.c:1646 */ +#line 3257 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 162: -#line 1247 "c-exp.y" /* yacc.c:1646 */ +#line 1251 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_signed_typename (parse_language (pstate), parse_gdbarch (pstate), "long"); } -#line 3263 "c-exp.c" /* yacc.c:1646 */ +#line 3265 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 163: -#line 1251 "c-exp.y" /* yacc.c:1646 */ - { (yyval.tval) = lookup_unsigned_typename (parse_language (pstate), - parse_gdbarch (pstate), - "long"); } -#line 3271 "c-exp.c" /* yacc.c:1646 */ +#line 1255 "c-exp.y" /* yacc.c:1646 */ + { (yyval.tval) = lookup_signed_typename (parse_language (pstate), + parse_gdbarch (pstate), + "long"); } +#line 3273 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 164: -#line 1255 "c-exp.y" /* yacc.c:1646 */ +#line 1259 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_unsigned_typename (parse_language (pstate), parse_gdbarch (pstate), "long"); } -#line 3279 "c-exp.c" /* yacc.c:1646 */ +#line 3281 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 165: -#line 1259 "c-exp.y" /* yacc.c:1646 */ +#line 1263 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_unsigned_typename (parse_language (pstate), parse_gdbarch (pstate), "long"); } -#line 3287 "c-exp.c" /* yacc.c:1646 */ +#line 3289 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 166: -#line 1263 "c-exp.y" /* yacc.c:1646 */ - { (yyval.tval) = lookup_signed_typename (parse_language (pstate), - parse_gdbarch (pstate), - "long long"); } -#line 3295 "c-exp.c" /* yacc.c:1646 */ +#line 1267 "c-exp.y" /* yacc.c:1646 */ + { (yyval.tval) = lookup_unsigned_typename (parse_language (pstate), + parse_gdbarch (pstate), + "long"); } +#line 3297 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 167: -#line 1267 "c-exp.y" /* yacc.c:1646 */ +#line 1271 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_signed_typename (parse_language (pstate), parse_gdbarch (pstate), "long long"); } -#line 3303 "c-exp.c" /* yacc.c:1646 */ +#line 3305 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 168: -#line 1271 "c-exp.y" /* yacc.c:1646 */ +#line 1275 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_signed_typename (parse_language (pstate), parse_gdbarch (pstate), "long long"); } -#line 3311 "c-exp.c" /* yacc.c:1646 */ +#line 3313 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 169: -#line 1275 "c-exp.y" /* yacc.c:1646 */ +#line 1279 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_signed_typename (parse_language (pstate), parse_gdbarch (pstate), "long long"); } -#line 3319 "c-exp.c" /* yacc.c:1646 */ +#line 3321 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 170: -#line 1279 "c-exp.y" /* yacc.c:1646 */ +#line 1283 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_signed_typename (parse_language (pstate), parse_gdbarch (pstate), "long long"); } -#line 3327 "c-exp.c" /* yacc.c:1646 */ +#line 3329 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 171: -#line 1283 "c-exp.y" /* yacc.c:1646 */ +#line 1287 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_signed_typename (parse_language (pstate), parse_gdbarch (pstate), "long long"); } -#line 3335 "c-exp.c" /* yacc.c:1646 */ +#line 3337 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 172: -#line 1287 "c-exp.y" /* yacc.c:1646 */ - { (yyval.tval) = lookup_unsigned_typename (parse_language (pstate), - parse_gdbarch (pstate), - "long long"); } -#line 3343 "c-exp.c" /* yacc.c:1646 */ +#line 1291 "c-exp.y" /* yacc.c:1646 */ + { (yyval.tval) = lookup_signed_typename (parse_language (pstate), + parse_gdbarch (pstate), + "long long"); } +#line 3345 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 173: -#line 1291 "c-exp.y" /* yacc.c:1646 */ +#line 1295 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_unsigned_typename (parse_language (pstate), parse_gdbarch (pstate), "long long"); } -#line 3351 "c-exp.c" /* yacc.c:1646 */ +#line 3353 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 174: -#line 1295 "c-exp.y" /* yacc.c:1646 */ +#line 1299 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_unsigned_typename (parse_language (pstate), parse_gdbarch (pstate), "long long"); } -#line 3359 "c-exp.c" /* yacc.c:1646 */ +#line 3361 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 175: -#line 1299 "c-exp.y" /* yacc.c:1646 */ +#line 1303 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_unsigned_typename (parse_language (pstate), parse_gdbarch (pstate), "long long"); } -#line 3367 "c-exp.c" /* yacc.c:1646 */ +#line 3369 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 176: -#line 1303 "c-exp.y" /* yacc.c:1646 */ - { (yyval.tval) = lookup_signed_typename (parse_language (pstate), - parse_gdbarch (pstate), - "short"); } -#line 3375 "c-exp.c" /* yacc.c:1646 */ +#line 1307 "c-exp.y" /* yacc.c:1646 */ + { (yyval.tval) = lookup_unsigned_typename (parse_language (pstate), + parse_gdbarch (pstate), + "long long"); } +#line 3377 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 177: -#line 1307 "c-exp.y" /* yacc.c:1646 */ +#line 1311 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_signed_typename (parse_language (pstate), parse_gdbarch (pstate), "short"); } -#line 3383 "c-exp.c" /* yacc.c:1646 */ +#line 3385 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 178: -#line 1311 "c-exp.y" /* yacc.c:1646 */ +#line 1315 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_signed_typename (parse_language (pstate), parse_gdbarch (pstate), "short"); } -#line 3391 "c-exp.c" /* yacc.c:1646 */ +#line 3393 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 179: -#line 1315 "c-exp.y" /* yacc.c:1646 */ - { (yyval.tval) = lookup_unsigned_typename (parse_language (pstate), - parse_gdbarch (pstate), - "short"); } -#line 3399 "c-exp.c" /* yacc.c:1646 */ +#line 1319 "c-exp.y" /* yacc.c:1646 */ + { (yyval.tval) = lookup_signed_typename (parse_language (pstate), + parse_gdbarch (pstate), + "short"); } +#line 3401 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 180: -#line 1319 "c-exp.y" /* yacc.c:1646 */ +#line 1323 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_unsigned_typename (parse_language (pstate), parse_gdbarch (pstate), "short"); } -#line 3407 "c-exp.c" /* yacc.c:1646 */ +#line 3409 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 181: -#line 1323 "c-exp.y" /* yacc.c:1646 */ +#line 1327 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_unsigned_typename (parse_language (pstate), parse_gdbarch (pstate), "short"); } -#line 3415 "c-exp.c" /* yacc.c:1646 */ +#line 3417 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 182: -#line 1327 "c-exp.y" /* yacc.c:1646 */ +#line 1331 "c-exp.y" /* yacc.c:1646 */ + { (yyval.tval) = lookup_unsigned_typename (parse_language (pstate), + parse_gdbarch (pstate), + "short"); } +#line 3425 "c-exp.c.tmp" /* yacc.c:1646 */ + break; + + case 183: +#line 1335 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_typename (parse_language (pstate), parse_gdbarch (pstate), "double", (struct block *) NULL, 0); } -#line 3425 "c-exp.c" /* yacc.c:1646 */ +#line 3435 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 183: -#line 1333 "c-exp.y" /* yacc.c:1646 */ + case 184: +#line 1341 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_typename (parse_language (pstate), parse_gdbarch (pstate), "long double", (struct block *) NULL, 0); } -#line 3435 "c-exp.c" /* yacc.c:1646 */ +#line 3445 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 184: -#line 1339 "c-exp.y" /* yacc.c:1646 */ + case 185: +#line 1347 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_struct (copy_name ((yyvsp[0].sval)), expression_context_block); } -#line 3442 "c-exp.c" /* yacc.c:1646 */ +#line 3452 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 185: -#line 1342 "c-exp.y" /* yacc.c:1646 */ + case 186: +#line 1350 "c-exp.y" /* yacc.c:1646 */ { mark_completion_tag (TYPE_CODE_STRUCT, "", 0); (yyval.tval) = NULL; } -#line 3451 "c-exp.c" /* yacc.c:1646 */ +#line 3461 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 186: -#line 1347 "c-exp.y" /* yacc.c:1646 */ + case 187: +#line 1355 "c-exp.y" /* yacc.c:1646 */ { mark_completion_tag (TYPE_CODE_STRUCT, (yyvsp[-1].sval).ptr, (yyvsp[-1].sval).length); (yyval.tval) = NULL; } -#line 3461 "c-exp.c" /* yacc.c:1646 */ +#line 3471 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 187: -#line 1353 "c-exp.y" /* yacc.c:1646 */ + case 188: +#line 1361 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_struct (copy_name ((yyvsp[0].sval)), expression_context_block); } -#line 3468 "c-exp.c" /* yacc.c:1646 */ +#line 3478 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 188: -#line 1356 "c-exp.y" /* yacc.c:1646 */ + case 189: +#line 1364 "c-exp.y" /* yacc.c:1646 */ { mark_completion_tag (TYPE_CODE_STRUCT, "", 0); (yyval.tval) = NULL; } -#line 3477 "c-exp.c" /* yacc.c:1646 */ +#line 3487 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 189: -#line 1361 "c-exp.y" /* yacc.c:1646 */ + case 190: +#line 1369 "c-exp.y" /* yacc.c:1646 */ { mark_completion_tag (TYPE_CODE_STRUCT, (yyvsp[-1].sval).ptr, (yyvsp[-1].sval).length); (yyval.tval) = NULL; } -#line 3487 "c-exp.c" /* yacc.c:1646 */ +#line 3497 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 190: -#line 1367 "c-exp.y" /* yacc.c:1646 */ + case 191: +#line 1375 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_union (copy_name ((yyvsp[0].sval)), expression_context_block); } -#line 3494 "c-exp.c" /* yacc.c:1646 */ +#line 3504 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 191: -#line 1370 "c-exp.y" /* yacc.c:1646 */ + case 192: +#line 1378 "c-exp.y" /* yacc.c:1646 */ { mark_completion_tag (TYPE_CODE_UNION, "", 0); (yyval.tval) = NULL; } -#line 3503 "c-exp.c" /* yacc.c:1646 */ +#line 3513 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 192: -#line 1375 "c-exp.y" /* yacc.c:1646 */ + case 193: +#line 1383 "c-exp.y" /* yacc.c:1646 */ { mark_completion_tag (TYPE_CODE_UNION, (yyvsp[-1].sval).ptr, (yyvsp[-1].sval).length); (yyval.tval) = NULL; } -#line 3513 "c-exp.c" /* yacc.c:1646 */ +#line 3523 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 193: -#line 1381 "c-exp.y" /* yacc.c:1646 */ + case 194: +#line 1389 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_enum (copy_name ((yyvsp[0].sval)), expression_context_block); } -#line 3520 "c-exp.c" /* yacc.c:1646 */ +#line 3530 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 194: -#line 1384 "c-exp.y" /* yacc.c:1646 */ + case 195: +#line 1392 "c-exp.y" /* yacc.c:1646 */ { mark_completion_tag (TYPE_CODE_ENUM, "", 0); (yyval.tval) = NULL; } -#line 3529 "c-exp.c" /* yacc.c:1646 */ +#line 3539 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 195: -#line 1389 "c-exp.y" /* yacc.c:1646 */ + case 196: +#line 1397 "c-exp.y" /* yacc.c:1646 */ { mark_completion_tag (TYPE_CODE_ENUM, (yyvsp[-1].sval).ptr, (yyvsp[-1].sval).length); (yyval.tval) = NULL; } -#line 3539 "c-exp.c" /* yacc.c:1646 */ +#line 3549 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 196: -#line 1395 "c-exp.y" /* yacc.c:1646 */ + case 197: +#line 1403 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_unsigned_typename (parse_language (pstate), parse_gdbarch (pstate), TYPE_NAME((yyvsp[0].tsym).type)); } -#line 3547 "c-exp.c" /* yacc.c:1646 */ +#line 3557 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 197: -#line 1399 "c-exp.y" /* yacc.c:1646 */ + case 198: +#line 1407 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_unsigned_typename (parse_language (pstate), parse_gdbarch (pstate), "int"); } -#line 3555 "c-exp.c" /* yacc.c:1646 */ +#line 3565 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 198: -#line 1403 "c-exp.y" /* yacc.c:1646 */ + case 199: +#line 1411 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_signed_typename (parse_language (pstate), parse_gdbarch (pstate), TYPE_NAME((yyvsp[0].tsym).type)); } -#line 3563 "c-exp.c" /* yacc.c:1646 */ +#line 3573 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 199: -#line 1407 "c-exp.y" /* yacc.c:1646 */ + case 200: +#line 1415 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_signed_typename (parse_language (pstate), parse_gdbarch (pstate), "int"); } -#line 3571 "c-exp.c" /* yacc.c:1646 */ +#line 3581 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 200: -#line 1414 "c-exp.y" /* yacc.c:1646 */ + case 201: +#line 1422 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = lookup_template_type(copy_name((yyvsp[-3].sval)), (yyvsp[-1].tval), expression_context_block); } -#line 3579 "c-exp.c" /* yacc.c:1646 */ +#line 3589 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 201: -#line 1418 "c-exp.y" /* yacc.c:1646 */ + case 202: +#line 1426 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = follow_types ((yyvsp[0].tval)); } -#line 3585 "c-exp.c" /* yacc.c:1646 */ +#line 3595 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 202: -#line 1420 "c-exp.y" /* yacc.c:1646 */ + case 203: +#line 1428 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = follow_types ((yyvsp[-1].tval)); } -#line 3591 "c-exp.c" /* yacc.c:1646 */ +#line 3601 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 204: -#line 1425 "c-exp.y" /* yacc.c:1646 */ + case 205: +#line 1433 "c-exp.y" /* yacc.c:1646 */ { (yyval.tsym).stoken.ptr = "int"; (yyval.tsym).stoken.length = 3; @@ -3598,11 +3608,11 @@ parse_gdbarch (pstate), "int"); } -#line 3603 "c-exp.c" /* yacc.c:1646 */ +#line 3613 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 205: -#line 1433 "c-exp.y" /* yacc.c:1646 */ + case 206: +#line 1441 "c-exp.y" /* yacc.c:1646 */ { (yyval.tsym).stoken.ptr = "long"; (yyval.tsym).stoken.length = 4; @@ -3610,11 +3620,11 @@ parse_gdbarch (pstate), "long"); } -#line 3615 "c-exp.c" /* yacc.c:1646 */ +#line 3625 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 206: -#line 1441 "c-exp.y" /* yacc.c:1646 */ + case 207: +#line 1449 "c-exp.y" /* yacc.c:1646 */ { (yyval.tsym).stoken.ptr = "short"; (yyval.tsym).stoken.length = 5; @@ -3622,195 +3632,195 @@ parse_gdbarch (pstate), "short"); } -#line 3627 "c-exp.c" /* yacc.c:1646 */ +#line 3637 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 207: -#line 1452 "c-exp.y" /* yacc.c:1646 */ + case 208: +#line 1460 "c-exp.y" /* yacc.c:1646 */ { check_parameter_typelist ((yyvsp[0].tvec)); } -#line 3633 "c-exp.c" /* yacc.c:1646 */ +#line 3643 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 208: -#line 1454 "c-exp.y" /* yacc.c:1646 */ + case 209: +#line 1462 "c-exp.y" /* yacc.c:1646 */ { VEC_safe_push (type_ptr, (yyvsp[-2].tvec), NULL); check_parameter_typelist ((yyvsp[-2].tvec)); (yyval.tvec) = (yyvsp[-2].tvec); } -#line 3643 "c-exp.c" /* yacc.c:1646 */ +#line 3653 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 209: -#line 1463 "c-exp.y" /* yacc.c:1646 */ + case 210: +#line 1471 "c-exp.y" /* yacc.c:1646 */ { VEC (type_ptr) *typelist = NULL; VEC_safe_push (type_ptr, typelist, (yyvsp[0].tval)); (yyval.tvec) = typelist; } -#line 3653 "c-exp.c" /* yacc.c:1646 */ +#line 3663 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 210: -#line 1469 "c-exp.y" /* yacc.c:1646 */ + case 211: +#line 1477 "c-exp.y" /* yacc.c:1646 */ { VEC_safe_push (type_ptr, (yyvsp[-2].tvec), (yyvsp[0].tval)); (yyval.tvec) = (yyvsp[-2].tvec); } -#line 3662 "c-exp.c" /* yacc.c:1646 */ +#line 3672 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 212: -#line 1477 "c-exp.y" /* yacc.c:1646 */ + case 213: +#line 1485 "c-exp.y" /* yacc.c:1646 */ { push_type_stack ((yyvsp[0].type_stack)); (yyval.tval) = follow_types ((yyvsp[-1].tval)); } -#line 3671 "c-exp.c" /* yacc.c:1646 */ +#line 3681 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 213: -#line 1484 "c-exp.y" /* yacc.c:1646 */ + case 214: +#line 1492 "c-exp.y" /* yacc.c:1646 */ { (yyval.tval) = follow_types ((yyvsp[-1].tval)); } -#line 3677 "c-exp.c" /* yacc.c:1646 */ +#line 3687 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 218: -#line 1496 "c-exp.y" /* yacc.c:1646 */ + case 219: +#line 1504 "c-exp.y" /* yacc.c:1646 */ { insert_type (tp_const); insert_type (tp_volatile); } -#line 3685 "c-exp.c" /* yacc.c:1646 */ +#line 3695 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 219: -#line 1500 "c-exp.y" /* yacc.c:1646 */ + case 220: +#line 1508 "c-exp.y" /* yacc.c:1646 */ { insert_type (tp_const); } -#line 3691 "c-exp.c" /* yacc.c:1646 */ +#line 3701 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 220: -#line 1502 "c-exp.y" /* yacc.c:1646 */ + case 221: +#line 1510 "c-exp.y" /* yacc.c:1646 */ { insert_type (tp_volatile); } -#line 3697 "c-exp.c" /* yacc.c:1646 */ +#line 3707 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 221: -#line 1506 "c-exp.y" /* yacc.c:1646 */ + case 222: +#line 1514 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken (" new"); } -#line 3703 "c-exp.c" /* yacc.c:1646 */ +#line 3713 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 222: -#line 1508 "c-exp.y" /* yacc.c:1646 */ + case 223: +#line 1516 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken (" delete"); } -#line 3709 "c-exp.c" /* yacc.c:1646 */ +#line 3719 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 223: -#line 1510 "c-exp.y" /* yacc.c:1646 */ + case 224: +#line 1518 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken (" new[]"); } -#line 3715 "c-exp.c" /* yacc.c:1646 */ +#line 3725 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 224: -#line 1512 "c-exp.y" /* yacc.c:1646 */ + case 225: +#line 1520 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken (" delete[]"); } -#line 3721 "c-exp.c" /* yacc.c:1646 */ +#line 3731 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 225: -#line 1514 "c-exp.y" /* yacc.c:1646 */ + case 226: +#line 1522 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken (" new[]"); } -#line 3727 "c-exp.c" /* yacc.c:1646 */ +#line 3737 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 226: -#line 1516 "c-exp.y" /* yacc.c:1646 */ + case 227: +#line 1524 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken (" delete[]"); } -#line 3733 "c-exp.c" /* yacc.c:1646 */ +#line 3743 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 227: -#line 1518 "c-exp.y" /* yacc.c:1646 */ + case 228: +#line 1526 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken ("+"); } -#line 3739 "c-exp.c" /* yacc.c:1646 */ +#line 3749 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 228: -#line 1520 "c-exp.y" /* yacc.c:1646 */ + case 229: +#line 1528 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken ("-"); } -#line 3745 "c-exp.c" /* yacc.c:1646 */ +#line 3755 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 229: -#line 1522 "c-exp.y" /* yacc.c:1646 */ + case 230: +#line 1530 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken ("*"); } -#line 3751 "c-exp.c" /* yacc.c:1646 */ +#line 3761 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 230: -#line 1524 "c-exp.y" /* yacc.c:1646 */ + case 231: +#line 1532 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken ("/"); } -#line 3757 "c-exp.c" /* yacc.c:1646 */ +#line 3767 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 231: -#line 1526 "c-exp.y" /* yacc.c:1646 */ + case 232: +#line 1534 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken ("%"); } -#line 3763 "c-exp.c" /* yacc.c:1646 */ +#line 3773 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 232: -#line 1528 "c-exp.y" /* yacc.c:1646 */ + case 233: +#line 1536 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken ("^"); } -#line 3769 "c-exp.c" /* yacc.c:1646 */ +#line 3779 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 233: -#line 1530 "c-exp.y" /* yacc.c:1646 */ + case 234: +#line 1538 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken ("&"); } -#line 3775 "c-exp.c" /* yacc.c:1646 */ +#line 3785 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 234: -#line 1532 "c-exp.y" /* yacc.c:1646 */ + case 235: +#line 1540 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken ("|"); } -#line 3781 "c-exp.c" /* yacc.c:1646 */ +#line 3791 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 235: -#line 1534 "c-exp.y" /* yacc.c:1646 */ + case 236: +#line 1542 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken ("~"); } -#line 3787 "c-exp.c" /* yacc.c:1646 */ +#line 3797 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 236: -#line 1536 "c-exp.y" /* yacc.c:1646 */ + case 237: +#line 1544 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken ("!"); } -#line 3793 "c-exp.c" /* yacc.c:1646 */ +#line 3803 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 237: -#line 1538 "c-exp.y" /* yacc.c:1646 */ + case 238: +#line 1546 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken ("="); } -#line 3799 "c-exp.c" /* yacc.c:1646 */ +#line 3809 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 238: -#line 1540 "c-exp.y" /* yacc.c:1646 */ + case 239: +#line 1548 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken ("<"); } -#line 3805 "c-exp.c" /* yacc.c:1646 */ +#line 3815 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 239: -#line 1542 "c-exp.y" /* yacc.c:1646 */ + case 240: +#line 1550 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken (">"); } -#line 3811 "c-exp.c" /* yacc.c:1646 */ +#line 3821 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 240: -#line 1544 "c-exp.y" /* yacc.c:1646 */ + case 241: +#line 1552 "c-exp.y" /* yacc.c:1646 */ { const char *op = " unknown"; switch ((yyvsp[0].opcode)) { @@ -3850,107 +3860,107 @@ (yyval.sval) = operator_stoken (op); } -#line 3855 "c-exp.c" /* yacc.c:1646 */ +#line 3865 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 241: -#line 1584 "c-exp.y" /* yacc.c:1646 */ + case 242: +#line 1592 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken ("<<"); } -#line 3861 "c-exp.c" /* yacc.c:1646 */ +#line 3871 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 242: -#line 1586 "c-exp.y" /* yacc.c:1646 */ + case 243: +#line 1594 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken (">>"); } -#line 3867 "c-exp.c" /* yacc.c:1646 */ +#line 3877 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 243: -#line 1588 "c-exp.y" /* yacc.c:1646 */ + case 244: +#line 1596 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken ("=="); } -#line 3873 "c-exp.c" /* yacc.c:1646 */ +#line 3883 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 244: -#line 1590 "c-exp.y" /* yacc.c:1646 */ + case 245: +#line 1598 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken ("!="); } -#line 3879 "c-exp.c" /* yacc.c:1646 */ +#line 3889 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 245: -#line 1592 "c-exp.y" /* yacc.c:1646 */ + case 246: +#line 1600 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken ("<="); } -#line 3885 "c-exp.c" /* yacc.c:1646 */ +#line 3895 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 246: -#line 1594 "c-exp.y" /* yacc.c:1646 */ + case 247: +#line 1602 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken (">="); } -#line 3891 "c-exp.c" /* yacc.c:1646 */ +#line 3901 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 247: -#line 1596 "c-exp.y" /* yacc.c:1646 */ + case 248: +#line 1604 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken ("&&"); } -#line 3897 "c-exp.c" /* yacc.c:1646 */ +#line 3907 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 248: -#line 1598 "c-exp.y" /* yacc.c:1646 */ + case 249: +#line 1606 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken ("||"); } -#line 3903 "c-exp.c" /* yacc.c:1646 */ +#line 3913 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 249: -#line 1600 "c-exp.y" /* yacc.c:1646 */ + case 250: +#line 1608 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken ("++"); } -#line 3909 "c-exp.c" /* yacc.c:1646 */ +#line 3919 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 250: -#line 1602 "c-exp.y" /* yacc.c:1646 */ + case 251: +#line 1610 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken ("--"); } -#line 3915 "c-exp.c" /* yacc.c:1646 */ +#line 3925 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 251: -#line 1604 "c-exp.y" /* yacc.c:1646 */ + case 252: +#line 1612 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken (","); } -#line 3921 "c-exp.c" /* yacc.c:1646 */ +#line 3931 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 252: -#line 1606 "c-exp.y" /* yacc.c:1646 */ + case 253: +#line 1614 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken ("->*"); } -#line 3927 "c-exp.c" /* yacc.c:1646 */ +#line 3937 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 253: -#line 1608 "c-exp.y" /* yacc.c:1646 */ + case 254: +#line 1616 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken ("->"); } -#line 3933 "c-exp.c" /* yacc.c:1646 */ +#line 3943 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 254: -#line 1610 "c-exp.y" /* yacc.c:1646 */ + case 255: +#line 1618 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken ("()"); } -#line 3939 "c-exp.c" /* yacc.c:1646 */ +#line 3949 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 255: -#line 1612 "c-exp.y" /* yacc.c:1646 */ + case 256: +#line 1620 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken ("[]"); } -#line 3945 "c-exp.c" /* yacc.c:1646 */ +#line 3955 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 256: -#line 1614 "c-exp.y" /* yacc.c:1646 */ + case 257: +#line 1622 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = operator_stoken ("[]"); } -#line 3951 "c-exp.c" /* yacc.c:1646 */ +#line 3961 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 257: -#line 1616 "c-exp.y" /* yacc.c:1646 */ + case 258: +#line 1624 "c-exp.y" /* yacc.c:1646 */ { string_file buf; c_print_type ((yyvsp[0].tval), NULL, &buf, -1, 0, @@ -3963,47 +3973,47 @@ canon = std::move (buf.string ()); (yyval.sval) = operator_stoken ((" " + canon).c_str ()); } -#line 3968 "c-exp.c" /* yacc.c:1646 */ - break; - - case 258: -#line 1632 "c-exp.y" /* yacc.c:1646 */ - { (yyval.sval) = (yyvsp[0].ssym).stoken; } -#line 3974 "c-exp.c" /* yacc.c:1646 */ +#line 3978 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 259: -#line 1633 "c-exp.y" /* yacc.c:1646 */ +#line 1640 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = (yyvsp[0].ssym).stoken; } -#line 3980 "c-exp.c" /* yacc.c:1646 */ +#line 3984 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 260: -#line 1634 "c-exp.y" /* yacc.c:1646 */ - { (yyval.sval) = (yyvsp[0].tsym).stoken; } -#line 3986 "c-exp.c" /* yacc.c:1646 */ +#line 1641 "c-exp.y" /* yacc.c:1646 */ + { (yyval.sval) = (yyvsp[0].ssym).stoken; } +#line 3990 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 261: -#line 1635 "c-exp.y" /* yacc.c:1646 */ - { (yyval.sval) = (yyvsp[0].ssym).stoken; } -#line 3992 "c-exp.c" /* yacc.c:1646 */ +#line 1642 "c-exp.y" /* yacc.c:1646 */ + { (yyval.sval) = (yyvsp[0].tsym).stoken; } +#line 3996 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 262: -#line 1636 "c-exp.y" /* yacc.c:1646 */ +#line 1643 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = (yyvsp[0].ssym).stoken; } -#line 3998 "c-exp.c" /* yacc.c:1646 */ +#line 4002 "c-exp.c.tmp" /* yacc.c:1646 */ break; case 263: -#line 1637 "c-exp.y" /* yacc.c:1646 */ +#line 1644 "c-exp.y" /* yacc.c:1646 */ + { (yyval.sval) = (yyvsp[0].ssym).stoken; } +#line 4008 "c-exp.c.tmp" /* yacc.c:1646 */ + break; + + case 264: +#line 1645 "c-exp.y" /* yacc.c:1646 */ { (yyval.sval) = (yyvsp[0].sval); } -#line 4004 "c-exp.c" /* yacc.c:1646 */ +#line 4014 "c-exp.c.tmp" /* yacc.c:1646 */ break; - case 266: -#line 1650 "c-exp.y" /* yacc.c:1646 */ + case 267: +#line 1658 "c-exp.y" /* yacc.c:1646 */ { struct field_of_this_result is_a_field_of_this; @@ -4015,11 +4025,11 @@ (yyval.ssym).is_a_field_of_this = is_a_field_of_this.type != NULL; } -#line 4020 "c-exp.c" /* yacc.c:1646 */ +#line 4030 "c-exp.c.tmp" /* yacc.c:1646 */ break; -#line 4024 "c-exp.c" /* yacc.c:1646 */ +#line 4034 "c-exp.c.tmp" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -4247,7 +4257,7 @@ #endif return yyresult; } -#line 1664 "c-exp.y" /* yacc.c:1906 */ +#line 1672 "c-exp.y" /* yacc.c:1906 */ /* Like write_exp_string, but prepends a '~'. */ @@ -4386,13 +4396,13 @@ len -= 2; } /* Handle suffixes: 'f' for float, 'l' for long double. */ - else if (len >= 1 && tolower (p[len - 1]) == 'f') + else if (len >= 1 && TOLOWER (p[len - 1]) == 'f') { putithere->typed_val_float.type = parse_type (par_state)->builtin_float; len -= 1; } - else if (len >= 1 && tolower (p[len - 1]) == 'l') + else if (len >= 1 && TOLOWER (p[len - 1]) == 'l') { putithere->typed_val_float.type = parse_type (par_state)->builtin_long_double; @@ -4603,9 +4613,9 @@ if (output) obstack_grow_str (output, "\\x"); ++tokptr; - if (!isxdigit (*tokptr)) + if (!ISXDIGIT (*tokptr)) error (_("\\x escape without a following hex digit")); - while (isxdigit (*tokptr)) + while (ISXDIGIT (*tokptr)) { if (output) obstack_1grow (output, *tokptr); @@ -4628,7 +4638,7 @@ if (output) obstack_grow_str (output, "\\"); for (i = 0; - i < 3 && isdigit (*tokptr) && *tokptr != '8' && *tokptr != '9'; + i < 3 && ISDIGIT (*tokptr) && *tokptr != '8' && *tokptr != '9'; ++i) { if (output) @@ -4653,9 +4663,9 @@ obstack_1grow (output, *tokptr); } ++tokptr; - if (!isxdigit (*tokptr)) + if (!ISXDIGIT (*tokptr)) error (_("\\%c escape without a following hex digit"), c); - for (i = 0; i < len && isxdigit (*tokptr); ++i) + for (i = 0; i < len && ISXDIGIT (*tokptr); ++i) { if (output) obstack_1grow (output, *tokptr); @@ -4913,6 +4923,8 @@ {"struct", STRUCT, OP_NULL, 0}, {"signed", SIGNED_KEYWORD, OP_NULL, 0}, {"sizeof", SIZEOF, OP_NULL, 0}, + {"_Alignof", ALIGNOF, OP_NULL, 0}, + {"alignof", ALIGNOF, OP_NULL, FLAG_CXX}, {"double", DOUBLE_KEYWORD, OP_NULL, 0}, {"false", FALSEKEYWORD, OP_NULL, FLAG_CXX}, {"class", CLASS, OP_NULL, FLAG_CXX}, @@ -5046,24 +5058,23 @@ static int saw_name_at_eof; /* This is set if the previously-returned token was a structure - operator -- either '.' or ARROW. This is used only when parsing to - do field name completion. */ -static int last_was_structop; + operator -- either '.' or ARROW. */ +static bool last_was_structop; /* Read one token, getting characters through lexptr. */ static int -lex_one_token (struct parser_state *par_state, int *is_quoted_name) +lex_one_token (struct parser_state *par_state, bool *is_quoted_name) { int c; int namelen; unsigned int i; const char *tokstart; - int saw_structop = last_was_structop; + bool saw_structop = last_was_structop; char *copy; - last_was_structop = 0; - *is_quoted_name = 0; + last_was_structop = false; + *is_quoted_name = false; retry: @@ -5104,7 +5115,7 @@ lexptr += 2; yylval.opcode = tokentab2[i].opcode; - if (parse_completion && tokentab2[i].token == ARROW) + if (tokentab2[i].token == ARROW) last_was_structop = 1; return tokentab2[i].token; } @@ -5128,7 +5139,7 @@ saw_name_at_eof = 0; return COMPLETE; } - else if (saw_structop) + else if (parse_completion && saw_structop) return COMPLETE; else return 0; @@ -5168,11 +5179,10 @@ /* Might be a floating point number. */ if (lexptr[1] < '0' || lexptr[1] > '9') { - if (parse_completion) - last_was_structop = 1; + last_was_structop = true; goto symbol; /* Nope, must be a symbol. */ } - /* FALL THRU into number case. */ + /* FALL THRU. */ case '0': case '1': @@ -5248,7 +5258,7 @@ size_t len = strlen ("selector"); if (strncmp (p, "selector", len) == 0 - && (p[len] == '\0' || isspace (p[len]))) + && (p[len] == '\0' || ISSPACE (p[len]))) { lexptr = p + len; return SELECTOR; @@ -5257,9 +5267,9 @@ goto parse_string; } - while (isspace (*p)) + while (ISSPACE (*p)) p++; - if (strncmp (p, "entry", len) == 0 && !isalnum (p[len]) + if (strncmp (p, "entry", len) == 0 && !c_ident_is_alnum (p[len]) && p[len] != '_') { lexptr = &p[len]; @@ -5310,7 +5320,7 @@ { ++tokstart; namelen = lexptr - tokstart - 1; - *is_quoted_name = 1; + *is_quoted_name = true; goto tryname; } @@ -5321,16 +5331,14 @@ } } - if (!(c == '_' || c == '$' - || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))) + if (!(c == '_' || c == '$' || c_ident_is_alpha (c))) /* We must have come across a bad character (e.g. ';'). */ error (_("Invalid character '%c' in expression."), c); /* It's a name. See how long it is. */ namelen = 0; for (c = tokstart[namelen]; - (c == '_' || c == '$' || (c >= '0' && c <= '9') - || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '<');) + (c == '_' || c == '$' || c_ident_is_alnum (c) || c == '<');) { /* Template parameter lists are part of the name. FIXME: This mishandles `print $a<4&&$a>3'. */ @@ -5458,11 +5466,12 @@ Updates yylval and returns the new token type. BLOCK is the block in which lookups start; this can be NULL to mean the global scope. IS_QUOTED_NAME is non-zero if the name token was originally quoted - in single quotes. */ + in single quotes. IS_AFTER_STRUCTOP is true if this name follows + a structure operator -- either '.' or ARROW */ static int classify_name (struct parser_state *par_state, const struct block *block, - int is_quoted_name) + bool is_quoted_name, bool is_after_structop) { struct block_symbol bsym; char *copy; @@ -5506,11 +5515,13 @@ } } - /* If we found a field, then we want to prefer it over a + /* If we found a field on the "this" object, or we are looking + up a field on a struct, then we want to prefer it over a filename. However, if the name was quoted, then it is better to check for a filename or a block, since this is the only way the user has of requiring the extension to be used. */ - if (is_a_field_of_this.type == NULL || is_quoted_name) + if ((is_a_field_of_this.type == NULL && !is_after_structop) + || is_quoted_name) { /* See if it's a file name. */ struct symtab *symtab; @@ -5591,7 +5602,7 @@ char *copy; if (context == NULL) - return classify_name (par_state, block, 0); + return classify_name (par_state, block, false, false); type = check_typedef (context); if (!type_aggregate_p (type)) @@ -5665,19 +5676,21 @@ struct type *context_type = NULL; int last_to_examine, next_to_examine, checkpoint; const struct block *search_block; - int is_quoted_name; + bool is_quoted_name, last_lex_was_structop; if (popping && !VEC_empty (token_and_value, token_fifo)) goto do_pop; popping = 0; + last_lex_was_structop = last_was_structop; + /* Read the first token and decide what to do. Most of the subsequent code is C++-only; but also depends on seeing a "::" or name-like token. */ current.token = lex_one_token (pstate, &is_quoted_name); if (current.token == NAME) current.token = classify_name (pstate, expression_context_block, - is_quoted_name); + is_quoted_name, last_lex_was_structop); if (parse_language (pstate)->la_language != language_cplus || (current.token != TYPENAME && current.token != COLONCOLON && current.token != FILENAME)) @@ -5690,7 +5703,7 @@ last_was_coloncolon = current.token == COLONCOLON; while (1) { - int ignore; + bool ignore; /* We ignore quoted names other than the very first one. Subsequent ones do not have any special meaning. */ @@ -5816,32 +5829,30 @@ gdb_assert (par_state != NULL); pstate = par_state; - /* Note that parsing (within yyparse) freely installs cleanups - assuming they'll be run here (below). */ - - back_to = make_cleanup (free_current_contents, &expression_macro_scope); - - /* Set up the scope for macro expansion. */ - expression_macro_scope = NULL; + gdb::unique_xmalloc_ptr macro_scope; if (expression_context_block) - expression_macro_scope - = sal_macro_scope (find_pc_line (expression_context_pc, 0)); + macro_scope = sal_macro_scope (find_pc_line (expression_context_pc, 0)); else - expression_macro_scope = default_macro_scope (); - if (! expression_macro_scope) - expression_macro_scope = user_macro_scope (); + macro_scope = default_macro_scope (); + if (! macro_scope) + macro_scope = user_macro_scope (); + + scoped_restore restore_macro_scope + = make_scoped_restore (&expression_macro_scope, macro_scope.get ()); /* Initialize macro expansion code. */ obstack_init (&expansion_obstack); gdb_assert (! macro_original_text); - make_cleanup (scan_macro_cleanup, 0); + /* Note that parsing (within yyparse) freely installs cleanups + assuming they'll be run here (below). */ + back_to = make_cleanup (scan_macro_cleanup, 0); scoped_restore restore_yydebug = make_scoped_restore (&yydebug, parser_debug); /* Initialize some state used by the lexer. */ - last_was_structop = 0; + last_was_structop = false; saw_name_at_eof = 0; VEC_free (token_and_value, token_fifo); @@ -5912,11 +5923,11 @@ #endif -void +static void yyerror (const char *msg) { if (prev_lexptr) lexptr = prev_lexptr; - error (_("A %s in expression, near `%s'."), (msg ? msg : "error"), lexptr); + error (_("A %s in expression, near `%s'."), msg, lexptr); } diff -Nru gdb-8.1/gdb/c-exp.y gdb-8.2/gdb/c-exp.y --- gdb-8.1/gdb/c-exp.y 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/gdb/c-exp.y 2018-09-05 07:44:28.000000000 +0000 @@ -42,6 +42,7 @@ #include "parser-defs.h" #include "language.h" #include "c-lang.h" +#include "c-support.h" #include "bfd.h" /* Required by objfiles.h. */ #include "symfile.h" /* Required by objfiles.h. */ #include "objfiles.h" /* For have_full_symbols and have_partial_symbols */ @@ -69,7 +70,7 @@ static int yylex (void); -void yyerror (const char *); +static void yyerror (const char *); static int type_aggregate_p (struct type *); @@ -173,7 +174,7 @@ %token NAME_OR_INT %token OPERATOR -%token STRUCT CLASS UNION ENUM SIZEOF UNSIGNED COLONCOLON +%token STRUCT CLASS UNION ENUM SIZEOF ALIGNOF UNSIGNED COLONCOLON %token TEMPLATE %token ERROR %token NEW DELETE @@ -307,6 +308,10 @@ { write_exp_elt_opcode (pstate, UNOP_SIZEOF); } ; +exp : ALIGNOF '(' type_exp ')' %prec UNARY + { write_exp_elt_opcode (pstate, UNOP_ALIGNOF); } + ; + exp : exp ARROW name { write_exp_elt_opcode (pstate, STRUCTOP_PTR); write_exp_string (pstate, $3); @@ -949,12 +954,8 @@ error (_("No symbol \"%s\" in specified context."), copy_name ($3)); if (symbol_read_needs_frame (sym.symbol)) - { - if (innermost_block == 0 - || contained_in (sym.block, - innermost_block)) - innermost_block = sym.block; - } + + innermost_block.update (sym); write_exp_elt_opcode (pstate, OP_VAR_VALUE); write_exp_elt_block (pstate, sym.block); @@ -1043,27 +1044,31 @@ if (sym.symbol) { if (symbol_read_needs_frame (sym.symbol)) + innermost_block.update (sym); + + /* If we found a function, see if it's + an ifunc resolver that has the same + address as the ifunc symbol itself. + If so, prefer the ifunc symbol. */ + + bound_minimal_symbol resolver + = find_gnu_ifunc (sym.symbol); + if (resolver.minsym != NULL) + write_exp_msymbol (pstate, resolver); + else { - if (innermost_block == 0 - || contained_in (sym.block, - innermost_block)) - innermost_block = sym.block; + write_exp_elt_opcode (pstate, OP_VAR_VALUE); + write_exp_elt_block (pstate, sym.block); + write_exp_elt_sym (pstate, sym.symbol); + write_exp_elt_opcode (pstate, OP_VAR_VALUE); } - - write_exp_elt_opcode (pstate, OP_VAR_VALUE); - write_exp_elt_block (pstate, sym.block); - write_exp_elt_sym (pstate, sym.symbol); - write_exp_elt_opcode (pstate, OP_VAR_VALUE); } else if ($1.is_a_field_of_this) { /* C++: it hangs off of `this'. Must not inadvertently convert from a method call to data ref. */ - if (innermost_block == 0 - || contained_in (sym.block, - innermost_block)) - innermost_block = sym.block; + innermost_block.update (sym); write_exp_elt_opcode (pstate, OP_THIS); write_exp_elt_opcode (pstate, OP_THIS); write_exp_elt_opcode (pstate, STRUCTOP_PTR); @@ -1093,7 +1098,10 @@ is important for example for "p *__errno_location()". */ symbol *alias_target - = find_function_alias_target (msymbol); + = ((msymbol.minsym->type != mst_text_gnu_ifunc + && msymbol.minsym->type != mst_data_gnu_ifunc) + ? find_function_alias_target (msymbol) + : NULL); if (alias_target != NULL) { write_exp_elt_opcode (pstate, OP_VAR_VALUE); @@ -1799,13 +1807,13 @@ len -= 2; } /* Handle suffixes: 'f' for float, 'l' for long double. */ - else if (len >= 1 && tolower (p[len - 1]) == 'f') + else if (len >= 1 && TOLOWER (p[len - 1]) == 'f') { putithere->typed_val_float.type = parse_type (par_state)->builtin_float; len -= 1; } - else if (len >= 1 && tolower (p[len - 1]) == 'l') + else if (len >= 1 && TOLOWER (p[len - 1]) == 'l') { putithere->typed_val_float.type = parse_type (par_state)->builtin_long_double; @@ -2016,9 +2024,9 @@ if (output) obstack_grow_str (output, "\\x"); ++tokptr; - if (!isxdigit (*tokptr)) + if (!ISXDIGIT (*tokptr)) error (_("\\x escape without a following hex digit")); - while (isxdigit (*tokptr)) + while (ISXDIGIT (*tokptr)) { if (output) obstack_1grow (output, *tokptr); @@ -2041,7 +2049,7 @@ if (output) obstack_grow_str (output, "\\"); for (i = 0; - i < 3 && isdigit (*tokptr) && *tokptr != '8' && *tokptr != '9'; + i < 3 && ISDIGIT (*tokptr) && *tokptr != '8' && *tokptr != '9'; ++i) { if (output) @@ -2066,9 +2074,9 @@ obstack_1grow (output, *tokptr); } ++tokptr; - if (!isxdigit (*tokptr)) + if (!ISXDIGIT (*tokptr)) error (_("\\%c escape without a following hex digit"), c); - for (i = 0; i < len && isxdigit (*tokptr); ++i) + for (i = 0; i < len && ISXDIGIT (*tokptr); ++i) { if (output) obstack_1grow (output, *tokptr); @@ -2326,6 +2334,8 @@ {"struct", STRUCT, OP_NULL, 0}, {"signed", SIGNED_KEYWORD, OP_NULL, 0}, {"sizeof", SIZEOF, OP_NULL, 0}, + {"_Alignof", ALIGNOF, OP_NULL, 0}, + {"alignof", ALIGNOF, OP_NULL, FLAG_CXX}, {"double", DOUBLE_KEYWORD, OP_NULL, 0}, {"false", FALSEKEYWORD, OP_NULL, FLAG_CXX}, {"class", CLASS, OP_NULL, FLAG_CXX}, @@ -2459,24 +2469,23 @@ static int saw_name_at_eof; /* This is set if the previously-returned token was a structure - operator -- either '.' or ARROW. This is used only when parsing to - do field name completion. */ -static int last_was_structop; + operator -- either '.' or ARROW. */ +static bool last_was_structop; /* Read one token, getting characters through lexptr. */ static int -lex_one_token (struct parser_state *par_state, int *is_quoted_name) +lex_one_token (struct parser_state *par_state, bool *is_quoted_name) { int c; int namelen; unsigned int i; const char *tokstart; - int saw_structop = last_was_structop; + bool saw_structop = last_was_structop; char *copy; - last_was_structop = 0; - *is_quoted_name = 0; + last_was_structop = false; + *is_quoted_name = false; retry: @@ -2517,7 +2526,7 @@ lexptr += 2; yylval.opcode = tokentab2[i].opcode; - if (parse_completion && tokentab2[i].token == ARROW) + if (tokentab2[i].token == ARROW) last_was_structop = 1; return tokentab2[i].token; } @@ -2541,7 +2550,7 @@ saw_name_at_eof = 0; return COMPLETE; } - else if (saw_structop) + else if (parse_completion && saw_structop) return COMPLETE; else return 0; @@ -2581,11 +2590,10 @@ /* Might be a floating point number. */ if (lexptr[1] < '0' || lexptr[1] > '9') { - if (parse_completion) - last_was_structop = 1; + last_was_structop = true; goto symbol; /* Nope, must be a symbol. */ } - /* FALL THRU into number case. */ + /* FALL THRU. */ case '0': case '1': @@ -2661,7 +2669,7 @@ size_t len = strlen ("selector"); if (strncmp (p, "selector", len) == 0 - && (p[len] == '\0' || isspace (p[len]))) + && (p[len] == '\0' || ISSPACE (p[len]))) { lexptr = p + len; return SELECTOR; @@ -2670,9 +2678,9 @@ goto parse_string; } - while (isspace (*p)) + while (ISSPACE (*p)) p++; - if (strncmp (p, "entry", len) == 0 && !isalnum (p[len]) + if (strncmp (p, "entry", len) == 0 && !c_ident_is_alnum (p[len]) && p[len] != '_') { lexptr = &p[len]; @@ -2723,7 +2731,7 @@ { ++tokstart; namelen = lexptr - tokstart - 1; - *is_quoted_name = 1; + *is_quoted_name = true; goto tryname; } @@ -2734,16 +2742,14 @@ } } - if (!(c == '_' || c == '$' - || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))) + if (!(c == '_' || c == '$' || c_ident_is_alpha (c))) /* We must have come across a bad character (e.g. ';'). */ error (_("Invalid character '%c' in expression."), c); /* It's a name. See how long it is. */ namelen = 0; for (c = tokstart[namelen]; - (c == '_' || c == '$' || (c >= '0' && c <= '9') - || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '<');) + (c == '_' || c == '$' || c_ident_is_alnum (c) || c == '<');) { /* Template parameter lists are part of the name. FIXME: This mishandles `print $a<4&&$a>3'. */ @@ -2871,11 +2877,12 @@ Updates yylval and returns the new token type. BLOCK is the block in which lookups start; this can be NULL to mean the global scope. IS_QUOTED_NAME is non-zero if the name token was originally quoted - in single quotes. */ + in single quotes. IS_AFTER_STRUCTOP is true if this name follows + a structure operator -- either '.' or ARROW */ static int classify_name (struct parser_state *par_state, const struct block *block, - int is_quoted_name) + bool is_quoted_name, bool is_after_structop) { struct block_symbol bsym; char *copy; @@ -2919,11 +2926,13 @@ } } - /* If we found a field, then we want to prefer it over a + /* If we found a field on the "this" object, or we are looking + up a field on a struct, then we want to prefer it over a filename. However, if the name was quoted, then it is better to check for a filename or a block, since this is the only way the user has of requiring the extension to be used. */ - if (is_a_field_of_this.type == NULL || is_quoted_name) + if ((is_a_field_of_this.type == NULL && !is_after_structop) + || is_quoted_name) { /* See if it's a file name. */ struct symtab *symtab; @@ -3004,7 +3013,7 @@ char *copy; if (context == NULL) - return classify_name (par_state, block, 0); + return classify_name (par_state, block, false, false); type = check_typedef (context); if (!type_aggregate_p (type)) @@ -3078,19 +3087,21 @@ struct type *context_type = NULL; int last_to_examine, next_to_examine, checkpoint; const struct block *search_block; - int is_quoted_name; + bool is_quoted_name, last_lex_was_structop; if (popping && !VEC_empty (token_and_value, token_fifo)) goto do_pop; popping = 0; + last_lex_was_structop = last_was_structop; + /* Read the first token and decide what to do. Most of the subsequent code is C++-only; but also depends on seeing a "::" or name-like token. */ current.token = lex_one_token (pstate, &is_quoted_name); if (current.token == NAME) current.token = classify_name (pstate, expression_context_block, - is_quoted_name); + is_quoted_name, last_lex_was_structop); if (parse_language (pstate)->la_language != language_cplus || (current.token != TYPENAME && current.token != COLONCOLON && current.token != FILENAME)) @@ -3103,7 +3114,7 @@ last_was_coloncolon = current.token == COLONCOLON; while (1) { - int ignore; + bool ignore; /* We ignore quoted names other than the very first one. Subsequent ones do not have any special meaning. */ @@ -3229,32 +3240,30 @@ gdb_assert (par_state != NULL); pstate = par_state; - /* Note that parsing (within yyparse) freely installs cleanups - assuming they'll be run here (below). */ - - back_to = make_cleanup (free_current_contents, &expression_macro_scope); - - /* Set up the scope for macro expansion. */ - expression_macro_scope = NULL; + gdb::unique_xmalloc_ptr macro_scope; if (expression_context_block) - expression_macro_scope - = sal_macro_scope (find_pc_line (expression_context_pc, 0)); + macro_scope = sal_macro_scope (find_pc_line (expression_context_pc, 0)); else - expression_macro_scope = default_macro_scope (); - if (! expression_macro_scope) - expression_macro_scope = user_macro_scope (); + macro_scope = default_macro_scope (); + if (! macro_scope) + macro_scope = user_macro_scope (); + + scoped_restore restore_macro_scope + = make_scoped_restore (&expression_macro_scope, macro_scope.get ()); /* Initialize macro expansion code. */ obstack_init (&expansion_obstack); gdb_assert (! macro_original_text); - make_cleanup (scan_macro_cleanup, 0); + /* Note that parsing (within yyparse) freely installs cleanups + assuming they'll be run here (below). */ + back_to = make_cleanup (scan_macro_cleanup, 0); scoped_restore restore_yydebug = make_scoped_restore (&yydebug, parser_debug); /* Initialize some state used by the lexer. */ - last_was_structop = 0; + last_was_structop = false; saw_name_at_eof = 0; VEC_free (token_and_value, token_fifo); @@ -3325,11 +3334,11 @@ #endif -void +static void yyerror (const char *msg) { if (prev_lexptr) lexptr = prev_lexptr; - error (_("A %s in expression, near `%s'."), (msg ? msg : "error"), lexptr); + error (_("A %s in expression, near `%s'."), msg, lexptr); } diff -Nru gdb-8.1/gdb/ChangeLog gdb-8.2/gdb/ChangeLog --- gdb-8.1/gdb/ChangeLog 2018-01-31 02:58:51.000000000 +0000 +++ gdb-8.2/gdb/ChangeLog 2018-09-05 07:44:29.000000000 +0000 @@ -1,8 +1,8709 @@ -2018-01-31 Joel Brobecker +2018-09-05 Joel Brobecker + + * version.in: Set GDB version number to 8.2. + * PROBLEMS: Likewise. + +2018-09-04 Sergio Durigan Junior + + PR gdb/23558 + * gnulib/import/m4/getcwd-path-max.m4: Add handling of Hurd, + Linux and kFreeBSD platforms. + * gnulib/configure: Regenerate. + +2018-08-31 Tom Tromey + + * dwarf2read.c (dwarf2_add_field): Set the TYPE_LENGTH of the + variant part type. + +2018-08-28 Alan Hayward + + * aarch64-linux-tdep.c (aarch64_linux_supply_sve_regset): New function. + (aarch64_linux_collect_sve_regset): Likewise. + (aarch64_linux_iterate_over_regset_sections): Check for SVE. + * regcache.h (regcache_map_entry_size): New function. + +2018-08-13 Alan Hayward + + * aarch64-linux-tdep.c (SVE_HEADER_SIZE_LENGTH): Add define. + (SVE_HEADER_MAX_SIZE_LENGTH): Likewise. + (SVE_HEADER_VL_LENGTH): Likewise. + (SVE_HEADER_MAX_VL_LENGTH): Likewise. + (SVE_HEADER_FLAGS_LENGTH): Likewise. + (SVE_HEADER_RESERVED_LENGTH): Likewise. + (SVE_HEADER_SIZE_OFFSET): Likewise. + (SVE_HEADER_MAX_SIZE_OFFSET): Likewise. + (SVE_HEADER_VL_OFFSET): Likewise. + (SVE_HEADER_MAX_VL_OFFSET): Likewise. + (SVE_HEADER_FLAGS_OFFSET): Likewise. + (SVE_HEADER_RESERVED_OFFSET): Likewise. + (SVE_HEADER_SIZE): Likewise. + (aarch64_linux_core_read_vq): Add function. + (aarch64_linux_core_read_description): Check for SVE section. + +2018-08-13 Alan Hayward + + * aarch64-fbsd-tdep.c + (aarch64_fbsd_iterate_over_regset_sections): Add supply_size and + collect_size. + * aarch64-linux-tdep.c + (aarch64_linux_iterate_over_regset_sections): Likewise. + * alpha-linux-tdep.c + (alpha_linux_iterate_over_regset_sections): + * alpha-nbsd-tdep.c + (alphanbsd_iterate_over_regset_sections): Likewise. + * amd64-fbsd-tdep.c + (amd64fbsd_iterate_over_regset_sections): Likewise. + * amd64-linux-tdep.c + (amd64_linux_iterate_over_regset_sections): Likewise. + * arm-bsd-tdep.c + (armbsd_iterate_over_regset_sections): Likewise. + * arm-fbsd-tdep.c + (arm_fbsd_iterate_over_regset_sections): Likewise. + * arm-linux-tdep.c + (arm_linux_iterate_over_regset_sections): Likewise. + * corelow.c (get_core_registers_cb): Likewise. + (core_target::fetch_registers): Likewise. + * fbsd-tdep.c (fbsd_collect_regset_section_cb): Likewise. + * frv-linux-tdep.c (frv_linux_iterate_over_regset_sections): Likewise. + * gdbarch.h (void): Regenerate. + * gdbarch.sh: Add supply_size and collect_size. + * hppa-linux-tdep.c (hppa_linux_iterate_over_regset_sections): Likewise. + * hppa-nbsd-tdep.c (hppanbsd_iterate_over_regset_sections): Likewise. + * hppa-obsd-tdep.c (hppaobsd_iterate_over_regset_sections): Likewise. + * i386-fbsd-tdep.c (i386fbsd_iterate_over_regset_sections): Likewise. + * i386-linux-tdep.c (i386_linux_iterate_over_regset_sections): Likewise. + * i386-tdep.c (i386_iterate_over_regset_sections): Likewise. + * ia64-linux-tdep.c (ia64_linux_iterate_over_regset_sections): Likewise. + * linux-tdep.c (linux_collect_regset_section_cb): Likewise. + * m32r-linux-tdep.c (m32r_linux_iterate_over_regset_sections): Likewise. + * m68k-bsd-tdep.c (m68kbsd_iterate_over_regset_sections): Likewise. + * m68k-linux-tdep.c (m68k_linux_iterate_over_regset_sections): Likewise. + * mips-fbsd-tdep.c (mips_fbsd_iterate_over_regset_sections): Likewise. + * mips-linux-tdep.c (mips_linux_iterate_over_regset_sections): Likewise. + * mips-nbsd-tdep.c (mipsnbsd_iterate_over_regset_sections): Likewise. + * mips64-obsd-tdep.c (mips64obsd_iterate_over_regset_sections): Likewise. + * mn10300-linux-tdep.c (am33_iterate_over_regset_sections): Likewise. + * nios2-linux-tdep.c (nios2_iterate_over_regset_sections): Likewise. + * ppc-fbsd-tdep.c (ppcfbsd_iterate_over_regset_sections): Likewise. + * ppc-linux-tdep.c (ppc_linux_iterate_over_regset_sections): Likewise. + * ppc-nbsd-tdep.c (ppcnbsd_iterate_over_regset_sections): Likewise. + * ppc-obsd-tdep.c (ppcobsd_iterate_over_regset_sections): Likewise. + * rs6000-aix-tdep.c (rs6000_aix_iterate_over_regset_sections): Likewise. + * s390-linux-tdep.c (s390_iterate_over_regset_sections): Likewise. + * score-tdep.c (score7_linux_iterate_over_regset_sections): Likewise. + * sh-tdep.c (sh_iterate_over_regset_sections): Likewise. + * sparc-tdep.c (sparc_iterate_over_regset_sections): Likewise. + * tilegx-linux-tdep.c (tilegx_iterate_over_regset_sections): Likewise. + * vax-tdep.c (vax_iterate_over_regset_sections): Likewise. + * xtensa-tdep.c (xtensa_iterate_over_regset_sections): Likewise. + +2018-08-28 Alan Hayward + + * corelow.c (core_target::get_core_register_section): Rename + min_size to section_min_size. + +2018-08-25 Simon Marchi + + * python/py-threadevent.c (py_get_event_thread): Initialize + pythread. + +2018-08-24 Kevin Buettner + + PR gdb/23021 + * block.h (blockrange, blockranges): New struct declarations. + (struct block): Add new field named `ranges'. + (BLOCK_RANGES, BLOCK_NRANGES, BLOCK_RANGE, BLOCK_CONTIGUOUS_P) + (BLOCK_RANGE_START, BLOCK_RANGE_END, BLOCK_ENTRY_PC): New + macros for accessing ranges in struct block. + (make_blockranges): New declaration. + block.c (make_blockranges): New function. + * dwarf2read.c (dwarf2_record_block_ranges): Fill in BLOCK_RANGES + for block. + * symtab.h (find_pc_partial_function): Add new parameter `block'. + * blockframe.c (cache_pc_function_block): New static global. + (clear_pc_function_cache): Clear cache_pc_function_block. + (find_pc_partial_function): Move comment to symtab.h. Add + support for non-contiguous blocks. + * cli/cli-cmds.c (block.h): Include. + (print_disassembly): Handle printing of non-contiguous blocks. + (disassemble_current_function): Likewise. + (disassemble_command): Likewise. + + * ax-gdb.c (gen_var_ref): Use BLOCK_ENTRY_PC in place of + BLOCK_START. + * blockframe.c (get_pc_function_start): Likewise. + * compile/compile-c-symbols.c (convert_one_symbol): Likewise. + (gcc_symbol_address): Likewise. + * compile/compile-object-run.c (compile_object_run): Likewise. + * compile/compile.c (get_expr_block_and_pc): Likewise. + * dwarf2loc.c (dwarf2_find_location_expression): Likewise. + (func_addr_to_tail_call_list): Likewise. + * findvar.c (default_read_var_value): Likewise. + * inline-frame.c (inline_frame_this_id): Likewise. + (skip-inline_frames): Likewise. + * infcmd.c (until_next_command): Likewise. + * linespec.c (convert_linespec_to_sals): Likewise. + * parse.c (parse_exp_in_context_1): Likewise. + * printcmd.c (build_address_symbolic): likewise. + (info_address_command): Likewise. + symtab.c (find_function_start_sal): Likewise. + (skip_prologue_sal): Likewise. + (find_function_alias_target): Likewise. + (find_gnu_ifunc): Likewise. + * stack.c (find_frame_funname): Likewise. + * symtab.c (fixup_symbol_section): Likewise. + (find_function_start_sal): Likewise. + (skip_prologue_sal): Likewsie. + (find_function_alias_target): Likewise. + (find_gnu_ifunc): Likewise. + * tracepoint.c (info_scope_command): Likewise. + * value.c (value_fn_field): Likewise. + + * infrun.c (fill_in_stop_func): Use find_function_entry_range_from_pc + in place of find_pc_partial_function. + * blockframe.c (find_function_entry_range_from_pc): New function. + * symtab.h (find_function_entry_range_from_pc): Declare and document. + * objfiles.c (objfile_relocate1): Relocate start and end addresses + for each range in a block. + +2018-08-24 Pedro Alves + Simon Marchi + + PR gdb/23379 + * python/py-continueevent.c: Include "gdbthread.h". + (create_continue_event_object): Add intro comment. Add 'ptid' + parameter. Use it to find thread to pass to + create_thread_event_object. + (emit_continue_event): Pass PTID down to + create_continue_event_object. + * python/py-event.h (py_get_event_thread): Declare. + (create_thread_event_object): Remove default from 'thread' + parameter. + * python/py-stopevent.c (create_stop_event_object): Use + py_get_event_thread. + * python/py-threadevent.c (get_event_thread): Rename to ... + (py_get_event_thread): ... this, make extern, add 'ptid' parameter + and use it to find the thread. + (create_thread_event_object): Assert that THREAD isn't null. + Don't find the event thread here. + +2018-08-23 Xavier Roirand + + * machoread.c (macho_symfile_read_all_oso): Remove uneeded + incrementation. + +2018-08-21 Alan Hayward + + * arch/aarch64.h (aarch64_regnum): Update comment. + +2018-08-21 Alan Hayward + + * NEWS: Add SVE to 8.2 section. + +2018-08-16 Tom Tromey + + * top.c (read_command_file): Update. + (command_line_input): Remove "repeat" argument. + * ada-lang.c (get_selections): Update. + * linespec.c (decode_line_2): Update. + * defs.h (command_line_input): Remove argument. + * cli/cli-script.c (read_next_line): Update. + * python/py-gdb-readline.c: Update. + +2018-08-17 Tom Tromey + + * cli/cli-script.c (read_next_line): Pass 0 as repeat argument to + command_line_input. + +2018-07-13 Simon Marchi + + * symfile.c (set_objfile_default_section_offset): Remove struct + keyword. - * version.in: Set GDB version number to 8.1. +2018-07-25 Alan Hayward + + * target-descriptions.c (tdesc_register_bitsize): Rename. + * target-descriptions.h (tdesc_register_bitsize): Likewise. + * rs6000-tdep.c (rs6000_gdbarch_init): Use new name. + * aarch64-tdep.c (aarch64_get_tdesc_vq): Convert size. + +2018-07-24 Keith Seitz + + * symfile.c (reread_symbols): Notify iter, not objfile. + +2018-07-22 Tom Tromey + + * ravenscar-thread.c (ravenscar_thread_target::store_registers): + Use arch_ops. + (ravenscar_thread_target::prepare_to_store): Likewise. + +2018-07-17 Tom Tromey + + PR gdb/18624: + * coffread.c (coff_symtab_read): Use scoped_free_pendings. + +2018-07-11 Pedro Alves + + PR gdb/23377 + * remote.c (remote_target::remote_detach_pid): Call + set_current_process. + +2018-07-11 Sergio Durigan Junior + + PR c++/23373 + * c-typeprint.c (c_type_print_base_struct_union): Don't print + offsets/sizes for static members of a class/struct. + +2018-07-07 Jan Kratochvil + + * contrib/gdb-add-index.sh ($dwarf5): New, use it. + +2018-07-04 Joel Brobecker + + * version.in: Set GDB version number to 8.1.90.DATE-git. * PROBLEMS: Likewise. +2018-07-04 Joel Brobecker + + GDB 8.1.90 released. + +2018-07-04 Joel Brobecker + + * version.in: Set GDB version number to 8.1.90. + * PROBLEMS: Likewise. + +2018-07-04 Joel Brobecker + + * NEWS: Change "Changes since GDB 8.1" into "Changes in GDB 8.2". + +2018-07-04 Joel Brobecker + + GDB 8.2 branch created (1b919490e8ba30bf1d6941df0ed112b0e557017e): + * version.in: Bump version to 8.1.90.DATE-git. + +2018-07-04 Vyacheslav Barinov + Pedro Alves + + * linux-nat.c (linux_init_ptrace): Rename to ... + (linux_init_ptrace_procfs): ... this. Call + linux_proc_init_warnings. + (linux_nat_target::post_attach) + (linux_nat_target::post_startup_inferior): Adjust. + * nat/linux-procfs.c (linux_proc_init_warnings): Define function. + * nat/linux-procfs.h (linux_proc_init_warnings): Declare function. + +2018-07-04 Tom de Vries + + * dwarf2read.c (error_check_comp_unit_head): Move dwarf version + check ... + (read_comp_unit_head): ... here. + +2018-07-03 Tom Tromey + + * tracepoint.c (process_tracepoint_on_disconnect, start_tracing) + (stop_tracing, tstatus_command) + (find_matching_tracepoint_location, merge_uploaded_tracepoints) + (print_one_static_tracepoint_marker): Update. + * breakpoint.c (static_tracepoints_here, all_tracepoints): Return + std::vector. + * breakpoint.h (breakpoint_p): Remove typedef. Don't declare + VEC. + (all_tracepoints, static_tracepoints_here): Return std::vector. + +2018-07-03 Tom Tromey + + * common/ptid.c (ptid_equal): Remove. + * common/ptid.h (ptid_equal): Don't declare. + * ada-tasks.c: Update. + * breakpoint.c: Update. + * common/agent.c: Update. + * corelow.c: Update. + * darwin-nat-info.c: Update. + * darwin-nat.c: Update. + * dcache.c: Update. + * dtrace-probe.c: Update. + * dummy-frame.c: Update. + * fbsd-nat.c: Update. + * frame.c: Update. + * gdbthread.h: Update. + * gnu-nat.c: Update. + * go32-nat.c: Update. + * inf-loop.c: Update. + * inf-ptrace.c: Update. + * infcall.c: Update. + * infcmd.c: Update. + * inflow.c: Update. + * infrun.c: Update. + * linux-fork.c: Update. + * linux-nat.c: Update. + * linux-thread-db.c: Update. + * mi/mi-cmd-var.c: Update. + * mi/mi-interp.c: Update. + * mi/mi-main.c: Update. + * nto-procfs.c: Update. + * ppc-linux-tdep.c: Update. + * procfs.c: Update. + * python/py-inferior.c: Update. + * python/py-record-btrace.c: Update. + * python/py-record.c: Update. + * ravenscar-thread.c: Update. + * regcache.c: Update. + * remote-sim.c: Update. + * remote.c: Update. + * sol-thread.c: Update. + * solib.c: Update. + * target.c: Update. + * tui/tui-stack.c: Update. + * varobj.c: Update. + * windows-nat.c: Update. + * windows-tdep.c: Update. + +2018-07-03 Tom Tromey + + * common/ptid.c (ptid_match): Remove. + * common/ptid.h (ptid_match): Don't declare. + * fbsd-nat.c: Update. + * infcmd.c: Update. + * infrun.c: Update. + * linux-nat.c: Update. + * record-btrace.c: Update. + * regcache.c: Update. + * remote.c: Update. + +2018-07-03 Tom Tromey + + * common/ptid.c (ptid_tid_p): Remove. + * common/ptid.h (ptid_tid_p): Don't declare. + * sol-thread.c: Update. + +2018-07-03 Tom Tromey + + * common/ptid.c (ptid_lwp_p): Remove. + * common/ptid.h (ptid_lwp_p): Don't declare. + * fbsd-nat.c: Update. + * linux-nat.c: Update. + * nat/linux-procfs.c: Update. + * nat/x86-linux-dregs.c: Update. + * sol-thread.c: Update. + +2018-07-03 Tom Tromey + + * common/ptid.c (ptid_is_pid): Remove. + * common/ptid.h (ptid_is_pid): Don't declare. + * infrun.c: Update. + * linux-nat.c: Update. + * mi/mi-interp.c: Update. + * remote.c: Update. + * thread.c: Update. + +2018-07-03 Tom Tromey + + * common/ptid.c (ptid_get_tid): Remove. + * common/ptid.h (ptid_get_tid): Don't declare. + * ada-tasks.c: Update. + * aix-thread.c: Update. + * bsd-uthread.c: Update. + * darwin-nat.c: Update. + * fbsd-nat.c: Update. + * i386-darwin-nat.c: Update. + * infrun.c: Update. + * linux-tdep.c: Update. + * nto-procfs.c: Update. + * ppc-ravenscar-thread.c: Update. + * python/py-infthread.c: Update. + * ravenscar-thread.c: Update. + * sol-thread.c: Update. + * sparc-ravenscar-thread.c: Update. + * windows-nat.c: Update. + +2018-07-03 Tom Tromey + + * common/ptid.c (ptid_get_lwp): Remove. + * common/ptid.h (ptid_get_lwp): Don't declare. + * aarch64-linux-nat.c: Update. + * ada-tasks.c: Update. + * aix-thread.c: Update. + * amd64-linux-nat.c: Update. + * arm-linux-nat.c: Update. + * corelow.c: Update. + * fbsd-nat.c: Update. + * fbsd-tdep.c: Update. + * gnu-nat.c: Update. + * i386-cygwin-tdep.c: Update. + * i386-gnu-nat.c: Update. + * i386-linux-nat.c: Update. + * ia64-linux-nat.c: Update. + * inf-ptrace.c: Update. + * infrun.c: Update. + * linux-fork.c: Update. + * linux-nat.c: Update. + * linux-tdep.c: Update. + * linux-thread-db.c: Update. + * mips-linux-nat.c: Update. + * nat/aarch64-linux-hw-point.c: Update. + * nat/aarch64-linux.c: Update. + * nat/linux-btrace.c: Update. + * nat/linux-osdata.c: Update. + * nat/linux-procfs.c: Update. + * nat/x86-linux-dregs.c: Update. + * obsd-nat.c: Update. + * ppc-fbsd-nat.c: Update. + * ppc-linux-nat.c: Update. + * procfs.c: Update. + * python/py-infthread.c: Update. + * ravenscar-thread.c: Update. + * remote.c: Update. + * s390-linux-nat.c: Update. + * sol-thread.c: Update. + * sol2-tdep.c: Update. + * spu-linux-nat.c: Update. + * x86-linux-nat.c: Update. + * xtensa-linux-nat.c: Update. + +2018-07-03 Tom Tromey + + * common/ptid.c (ptid_get_pid): Remove. + * common/ptid.h (ptid_get_pid): Don't declare. + * aarch64-linux-nat.c: Update. + * ada-lang.c: Update. + * aix-thread.c: Update. + * alpha-bsd-nat.c: Update. + * amd64-fbsd-nat.c: Update. + * amd64-linux-nat.c: Update. + * arm-linux-nat.c: Update. + * arm-nbsd-nat.c: Update. + * auxv.c: Update. + * break-catch-syscall.c: Update. + * breakpoint.c: Update. + * bsd-uthread.c: Update. + * corelow.c: Update. + * ctf.c: Update. + * darwin-nat.c: Update. + * fbsd-nat.c: Update. + * fbsd-tdep.c: Update. + * gcore.c: Update. + * gnu-nat.c: Update. + * hppa-nbsd-nat.c: Update. + * hppa-obsd-nat.c: Update. + * i386-fbsd-nat.c: Update. + * ia64-linux-nat.c: Update. + * inf-ptrace.c: Update. + * infcmd.c: Update. + * inferior.c: Update. + * inferior.h: Update. + * inflow.c: Update. + * infrun.c: Update. + * linux-fork.c: Update. + * linux-nat.c: Update. + * linux-tdep.c: Update. + * linux-thread-db.c: Update. + * m68k-bsd-nat.c: Update. + * mi/mi-interp.c: Update. + * mi/mi-main.c: Update. + * mips-linux-nat.c: Update. + * mips-nbsd-nat.c: Update. + * mips64-obsd-nat.c: Update. + * nat/aarch64-linux-hw-point.c: Update. + * nat/aarch64-linux.c: Update. + * nat/linux-btrace.c: Update. + * nat/linux-osdata.c: Update. + * nat/linux-procfs.c: Update. + * nat/x86-linux-dregs.c: Update. + * nto-procfs.c: Update. + * obsd-nat.c: Update. + * ppc-linux-nat.c: Update. + * ppc-nbsd-nat.c: Update. + * ppc-obsd-nat.c: Update. + * proc-service.c: Update. + * procfs.c: Update. + * python/py-inferior.c: Update. + * python/py-infthread.c: Update. + * ravenscar-thread.c: Update. + * record.c: Update. + * remote-sim.c: Update. + * remote.c: Update. + * rs6000-nat.c: Update. + * s390-linux-nat.c: Update. + * sh-nbsd-nat.c: Update. + * sol-thread.c: Update. + * sparc-nat.c: Update. + * sparc64-tdep.c: Update. + * spu-linux-nat.c: Update. + * spu-tdep.c: Update. + * target-debug.h: Update. + * target.c: Update. + * thread.c: Update. + * tid-parse.c: Update. + * tracefile-tfile.c: Update. + * vax-bsd-nat.c: Update. + * windows-nat.c: Update. + * x86-linux-nat.c: Update. + * x86-nat.c: Update. + +2018-07-03 Tom Tromey + + * common/ptid.c (pid_to_ptid): Remove. + * common/ptid.h (pid_to_ptid): Don't declare. + * aix-thread.c: Update. + * arm-linux-nat.c: Update. + * common/ptid.c: Update. + * common/ptid.h: Update. + * corelow.c: Update. + * ctf.c: Update. + * darwin-nat.c: Update. + * fbsd-nat.c: Update. + * fork-child.c: Update. + * gnu-nat.c: Update. + * go32-nat.c: Update. + * inf-ptrace.c: Update. + * infcmd.c: Update. + * inferior.c: Update. + * infrun.c: Update. + * linux-fork.c: Update. + * linux-nat.c: Update. + * nat/aarch64-linux-hw-point.c: Update. + * nat/fork-inferior.c: Update. + * nat/x86-linux-dregs.c: Update. + * nto-procfs.c: Update. + * obsd-nat.c: Update. + * procfs.c: Update. + * progspace.c: Update. + * remote.c: Update. + * rs6000-nat.c: Update. + * s390-linux-nat.c: Update. + * sol-thread.c: Update. + * spu-linux-nat.c: Update. + * target.c: Update. + * top.c: Update. + * tracefile-tfile.c: Update. + * windows-nat.c: Update. + +2018-07-03 Tom Tromey + + * common/ptid.h (ptid_build): Don't declare. + * common/ptid.c (ptid_build): Remove. + * aix-thread.c: Update. + * bsd-kvm.c: Update. + * bsd-uthread.c: Update. + * common/agent.c: Update. + * common/ptid.c: Update. + * common/ptid.h: Update. + * corelow.c: Update. + * darwin-nat.c: Update. + * fbsd-nat.c: Update. + * gnu-nat.c: Update. + * linux-fork.c: Update. + * linux-nat.c: Update. + * linux-thread-db.c: Update. + * nat/linux-osdata.c: Update. + * nat/linux-procfs.c: Update. + * nto-procfs.c: Update. + * obsd-nat.c: Update. + * proc-service.c: Update. + * procfs.c: Update. + * ravenscar-thread.c: Update. + * remote-sim.c: Update. + * remote.c: Update. + * sol-thread.c: Update. + * target.c: Update. + * windows-nat.c: Update. + +2018-07-03 Tom Tromey + + * infrun.c (follow_exec): Use exit_inferior_silent. + * inferior.c (exit_inferior_num_silent): Remove. + * inferior.h (exit_inferior_num_silent): Don't declare. + +2018-07-03 Tom Tromey + + PR cli/23340: + * darwin-nat.c (darwin_attach_pid): Reset inferior and + inferior_ptid on error. + +2018-07-02 Maciej W. Rozycki + Simon Marchi + + PR tdep/8282 + * disasm.h (gdb_disassembler): Add + `m_disassembler_options_holder'. member + * disasm.c (get_all_disassembler_options): New function. + (gdb_disassembler::gdb_disassembler): Use it. + (gdb_buffered_insn_length_init_dis): Likewise. + (gdb_buffered_insn_length): Adjust accordingly. + (set_disassembler_options): Handle options with arguments. + (show_disassembler_options_sfunc): Likewise. Add a leading new + line if showing options with descriptions. + (disassembler_options_completer): Adapt to using the + `disasm_options_and_args_t' structure. + * mips-tdep.c (mips_disassembler_options): New variable. + (mips_disassembler_options_o32): Likewise. + (mips_disassembler_options_n32): Likewise. + (mips_disassembler_options_n64): Likewise. + (gdb_print_insn_mips): Don't set `disassembler_options'. + (gdb_print_insn_mips_n32, gdb_print_insn_mips_n64): Remove + functions. + (mips_gdbarch_init): Always set `gdbarch_print_insn' to + `gdb_print_insn_mips'. Set `gdbarch_disassembler_options', + `gdbarch_disassembler_options_implicit' and + `gdbarch_valid_disassembler_options'. + * arm-tdep.c (_initialize_arm_tdep): Adapt to using the + `disasm_options_and_args_t' structure. + * gdbarch.sh (disassembler_options_implicit): New `gdbarch' + method. + (valid_disassembler_options): Switch from `disasm_options_t' to + the `disasm_options_and_args_t' structure. + * NEWS: Document `set disassembler-options' support for the MIPS + target. + * gdbarch.h: Regenerate. + * gdbarch.c: Regenerate. + +2018-07-02 Sebastian Huber + + * riscv-tdep.c (riscv_register_aliases): Swap "fp" and "s0" entries. + +2018-06-29 Joel Brobecker + + * amd64-darwin-tdep.c (x86_darwin_init_abi_64): Add missing + parameter in call to amd64_target_description. + * amd64-dicos-tdep.c (amd64_dicos_init_abi): Likewise. + * amd64-fbsd-tdep.c (amd64fbsd_core_read_description) + (amd64fbsd_init_abi): Likewise. + * amd64-nbsd-tdep.c (amd64nbsd_init_abi): Likewise. + * amd64-obsd-tdep.c (amd64obsd_init_abi): Likewise. + * amd64-sol2-tdep.c (amd64_sol2_init_abi): Likewise. + * amd64-fbsd-nat.c (amd64_fbsd_nat_target): Likewise. + +2018-06-29 Pedro Alves + + * gdb/amd64-tdep.h (amd64_create_target_description): Add + "segments" parameter. + * gdb/amd64-tdep.c (amd64_none_init_abi, amd64_x32_none_init_abi) + (_initialize_amd64_tdep): Update call to + amd64_create_target_description. + (amd64_target_description): Add "segments" parameter. Adjust + the implementation to use it. + * gdb/amd64-linux-tdep.c (amd64_linux_read_description): Update + call to amd64_create_target_description. + * gdb/amd64-windows-tdep.c (amd64_windows_init_abi): Likewise. + * gdb/arch/amd64.h (amd64_create_target_description): Add + "segments" register. + * gdb/arch/amd64.c (amd64_create_target_description): Add + "segments" parameter. Call create_feature_i386_64bit_segments + only if SEGMENTS is true. + * gdb/gdbserver/win32-i386-low.c (i386_arch_setup): Update + call to amd64_create_target_description. + +2018-06-29 Pedro Alves + + * thread.c (thread_target_id_str): New, factored out from ... + (print_thread_info_1): ... here. Use it to compute the max + "Target Id" column width. + +2018-06-29 Pedro Alves + + * remote.c (remote_target::extra_thread_info): Delete + 'display_buf' and 'n' locals. from the cache, regardless of + packet mechanims is in use. Use cache for qThreadExtra and qP + methods too. + +2018-06-29 Pedro Alves + + * blockframe.c (find_pc_sect_containing_function): New function. + * breakpoint.c (print_breakpoint_location): Don't call + find_pc_sect_function. + * linespec.c (create_sals_line_offset): Record the location's + symbol in the sal. + * linespec.c (convert_address_location_to_sals): Fill in sal's + symbol with find_pc_sect_containing_function. + * symtab.c (find_function_start_sal): Rename to ... + (find_function_start_sal_1): ... this. + (find_function_start_sal): Reimplement as wrapper around + find_function_start_sal_1, and use + find_pc_sect_containing_function to fill in the sal's symbol. + (find_function_start_sal(symbol*, bool)): Adjust. + * symtab.h (find_pc_function, find_pc_sect_function): Adjust + comments. + (find_pc_sect_containing_function): Declare. + +2018-06-29 Pedro Alves + + * inline-frame.c (stopped_by_user_bp_inline_frame): Return + true if the the location has no symbol. + +2018-06-28 Tom Tromey + + * NEWS: Mention --enable-codesign. + * silent-rules.mk (ECHO_SIGN): New variable. + * configure.ac: Add --enable-codesign. + * configure: Rebuild. + * Makefile.in (CODESIGN, CODESIGN_CERT): New variables. + (gdb$(EXEEXT)): Optionally invoke codesign. + +2018-06-28 Pedro Alves + + * gdbthread.h (struct thread_suspend_state) : Extend + comments. + (switch_to_thread_no_regs): Adjust comment. + * infcmd.c (stop_pc): Delete. + (post_create_inferior, info_program_command): Replace references + to stop_pc with references to thread_info->suspend.stop_pc. + * inferior.h (stop_pc): Delete declaration. + * infrun.c (proceed, handle_syscall_event, fill_in_stop_func) + (handle_inferior_event_1, handle_signal_stop) + (process_event_stop_test, keep_going_stepped_thread) + (handle_step_into_function, handle_step_into_function_backward) + (print_stop_location): Replace references to stop_pc with + references to thread_info->suspend.stop_pc. + (struct infcall_suspend_state) : Delete field. + (save_infcall_suspend_state, restore_infcall_suspend_state): + Remove references to inf_stat->stop_pc. + * linux-fork.c (fork_load_infrun_state): Likewise. + * record-btrace.c (record_btrace_set_replay): Likewise. + * record-full.c (record_full_goto_entry): Likewise. + * remote.c (print_one_stopped_thread): Likewise. + * target.c (target_resume): Extend comment. + * thread.c (set_executing_thread): New. + (set_executing): Use it. + (switch_to_thread_no_regs, switch_to_no_thread, switch_to_thread): + Remove references to stop_pc. + +2018-06-28 Pedro Alves + + * infrun.c (handle_inferior_event_1) : + Moving fetching stop_pc until after ecs->event_thread is refreshed. + +2018-06-28 Tom Tromey + + * coffread.c (coff_symfile_finish): Update. + * xcoffread.c (xcoff_symfile_finish): Update. + * elfread.c (elf_symfile_finish): Update. + * symfile.h (dwarf2_free_objfile): Don't declare. + * dwarf2read.c (_initialize_dwarf2_read): Use + register_objfile_data_with_cleanup. + (dwarf2_free_objfile): Now static. Change signature. + +2018-06-28 Petr Tesarik + + * symfile.c (add_symbol_file_command, _initialize_symfile): Add + option "-o" to add-symbol-file-load to add an offset to each + section's load address. + * symfile.c (set_objfile_default_section_offset): New function. + +2018-06-28 Petr Tesarik + + * symfile.c (add_symbol_file_command): Make sure that sections + with the same name are sorted in the same order. + +2018-06-28 Petr Tesarik + + * symfile.c (add_symbol_file_command, _initialize_symfile): Do not + require the second argument. If omitted, load sections at the + addresses specified in the file. + +2018-06-28 Petr Tesarik + + * symfile.c (symbol_file_command, symbol_file_add_main_1) + (_initialize_symfile): Add option "-o" to symbol-file to add an + offset to each section of the symbol file. + +2018-06-28 Petr Tesarik + + * MAINTAINERS (Write After Approval): Add Petr Tesarik. + +2018-06-27 Tom Tromey + + * stack.c (_initialize_stack): Update "func" help text. + +2018-06-27 Tom Tromey + + * python/py-unwind.c (unwind_info_object) : Now a + std::vector. + (unwind_infopy_str, pyuw_create_unwind_info) + (unwind_infopy_add_saved_register, pyuw_sniffer) + (unwind_infopy_dealloc, unwind_infopy_add_saved_register): + Update. + (struct saved_reg): Add constructor. + : Now a gdbpy_ref<>. + +2018-06-27 Tom Tromey + + * machoread.c (macho_symfile_read): Define "symbol_table" earlier. + +2018-06-27 Simon Marchi + + * gdb-gdb.py.in: Format using autopep8. + +2018-06-27 Simon Marchi + + * gdb-gdb.py.in (CoreAddrPrettyPrinter): New class. + (type_lookup_function): Recognize CORE_ADDR values. + +2018-06-27 Simon Marchi + + * gdb-gdb.py.in (StructMainTypePrettyPrinter) : Don't + print tag_name. + +2018-06-27 Simon Marchi + + * gdb-gdb.py.in (TypeFlag) <__cmp__>: Remove. + <__lt__>: Add. + +2018-06-27 Simon Marchi + + * gdb-gdb.py: Move to... + * gdb-gdb.py.in: ... here. + * configure.ac (AC_CONFIG_FILES): Add gdb-gdb.py. + * Makefile.in (all): Add gdb-gdb.gdb and gdb-gdb.py as + dependencies. + (distclean): Remove gdb-gdb.py when cleaning. + (gdb-gdb.py, gdb-gdb.gdb): New rules. + * configure: Re-generate. + +2018-06-27 Pedro Alves + + * proc-service.c (get_ps_regcache): New. + (ps_lgetregs, ps_lsetregs, ps_lgetfpregs) + (ps_lsetfpregs): Use it. + +2018-06-27 Omair Javaid + + PR gdb/21695 + * dwarf2read.c (lnp_state_machine::check_line_address): Update declaration. + (dwarf_decode_lines_1): Adjust. + +2018-06-27 Simon Marchi + + * fbsd-nat.h (class fbsd_nat_target) : Add + override. + : Likewise. + +2018-06-26 Joel Brobecker + + * windows-nat.c (do_windows_fetch_inferior_registers): Rename + to windows_fetch_one_register, and only handle the case of + fetching one register. Move the code that reloads the context + and iterates over all registers if R is negative to... + (windows_nat_target::fetch_registers): ... here. + (do_windows_store_inferior_registers): Rename to + windows_store_one_register, and only handle the case of storing + one register. Move the code that handles the case where r is + negative to... + (windows_nat_target::store_registers) ... here. + +2018-06-26 Tom Tromey + + PR rust/22574: + * typeprint.c (whatis_exp): Allow ptype/o for Rust. + * rust-lang.c (rust_print_struct_def): Add podata parameter. + Update. + (rust_internal_print_type): Add podata parameter. + (rust_print_type): Update. + +2018-06-26 Tom Tromey + + * typeprint.h (struct print_offset_data) : New methods. + : New constant. + * typeprint.c (print_offset_data::indentation): Define. + (print_offset_data::maybe_print_hole, print_offset_data::update) + (print_offset_data::finish): Move from c-typeprint.c and rename. + * c-typeprint.c (OFFSET_SPC_LEN): Remove. + (print_spaces_filtered_with_print_options): Update. + (c_print_type_union_field_offset, maybe_print_hole) + (c_print_type_struct_field_offset): Move to typeprint.c and + rename. + (c_type_print_base_struct_union): Update. + +2018-06-25 Pedro Alves + + * gdbthread.h (thread_info_ref, delete_thread) + (delete_thread_silent, first_thread_of_inferior) + (any_thread_of_inferior, switch_to_thread) + (enable_thread_stack_temporaries) + (thread_stack_temporaries_enabled_p, push_thread_stack_temporary) + (get_last_thread_stack_temporary) + (value_in_thread_stack_temporaries, can_access_registers_thread): + Spell out "struct thread_info" instead of just "thread_info". + * inferior.h (notice_new_inferior): Likewise. + +2018-06-25 Pedro Alves + + * windows-nat.c (windows_delete_thread): Use find_thread_ptid and + pass thread_info pointer to delete_thread. + (windows_nat_target::detach): Pass inferior pointer to + detach_inferior. + * aix-thread.c (sync_threadlists): Pass thread_info pointer to + delete_thread. + * bsd-kvm.c (bsd_kvm_target::close): Use discard_all_inferiors. + * darwin-nat.c (darwin_check_new_threads): Use find_thread_ptid + and pass a thread_info pointer to delete_thread. + * fbsd-nat.c (fbsd_nat_target::wait): Use find_thread_ptid and + pass thread_info pointer to delete_thread. + * go32-nat.c (go32_nat_target::mourn_inferior): Remove + delete_thread_silent call. + * procfs.c (procfs_target::detach): Pass inferior pointer to + detach_inferior. + (procfs_target::wait): Pass thread_info pointer to delete_thread. + * remote-sim.c (gdbsim_target::mourn_inferior): Remove + delete_thread_silent call. + * windows-nat.c (windows_delete_thread): Use find_thread_ptid and + pass thread_info pointer to delete_thread. + (windows_nat_target::detach): Pass inferior pointer to + delete_inferior. + +2018-06-22 Alan Hayward + + * regcache.c (readable_regcache::read_part): Fix asserts. + (reg_buffer::raw_collect_part): New function. + (regcache::write_part): Fix asserts. + (reg_buffer::raw_supply_part): New function. + (regcache::transfer_regset_register): New helper function. + (regcache::transfer_regset): Call new functions. + (regcache_supply_regset): Use gdb_byte*. + (regcache::supply_regset): Likewise. + (regcache_collect_regset): Likewise. + (regcache::collect_regset): Likewise. + * regcache.h (reg_buffer::raw_collect_part): New declaration. + (reg_buffer::raw_supply_part): Likewise. + (regcache::transfer_regset_register): Likewise. + (regcache::transfer_regset): Use gdb_byte*. + +2018-06-22 Alan Hayward + + * nat/aarch64-sve-linux-ptrace.h (HAS_SVE_STATE): Use &. + +2018-06-21 Pedro Alves + + * ada-lang.h (ada_get_task_number): Take a thread_info pointer + instead of a ptid_t. All callers adjusted. + * ada-tasks.c (ada_get_task_number): Likewise. All callers + adjusted. + (print_ada_task_info, display_current_task_id, task_command_1): + Adjust. + * breakpoint.c (watchpoint_in_thread_scope): Adjust to use + inferior_thread. + (breakpoint_kind): Adjust. + (remove_breakpoints_pid): Rename to ... + (remove_breakpoints_inf): ... this. Adjust to take an inferior + pointer. All callers adjusted. + (bpstat_clear_actions): Use inferior_thread. + (get_bpstat_thread): New. + (bpstat_do_actions): Use it. + (bpstat_check_breakpoint_conditions, bpstat_stop_status): Adjust + to take a thread_info pointer. All callers adjusted. + (set_longjmp_breakpoint_for_call_dummy, set_momentary_breakpoint) + (breakpoint_re_set_thread): Use inferior_thread. + * breakpoint.h (struct inferior): Forward declare. + (bpstat_stop_status): Update. + (remove_breakpoints_pid): Delete. + (remove_breakpoints_inf): New. + * bsd-uthread.c (bsd_uthread_target::wait) + (bsd_uthread_target::update_thread_list): Use find_thread_ptid. + * btrace.c (btrace_add_pc, btrace_enable, btrace_fetch) + (maint_btrace_packet_history_cmd) + (maint_btrace_clear_packet_history_cmd): Adjust. + (maint_btrace_clear_cmd, maint_info_btrace_cmd): Adjust to use + inferior_thread. + * cli/cli-interp.c: Include "inferior.h". + * common/refcounted-object.h (struct + refcounted_object_ref_policy): New. + * compile/compile-object-load.c: Include gdbthread.h. + (store_regs): Use inferior_thread. + * corelow.c (core_target::close): Use current_inferior. + (core_target_open): Adjust to use first_thread_of_inferior and use + the current inferior. + * ctf.c (ctf_target::close): Adjust to use current_inferior. + * dummy-frame.c (dummy_frame_id) : Delete, replaced by ... + : ... this new field. All references adjusted. + (dummy_frame_pop, dummy_frame_discard, register_dummy_frame_dtor): + Take a thread_info pointer instead of a ptid_t. + * dummy-frame.h (dummy_frame_push, dummy_frame_pop) + (dummy_frame_discard, register_dummy_frame_dtor): Take a + thread_info pointer instead of a ptid_t. + * elfread.c: Include "inferior.h". + (elf_gnu_ifunc_resolver_stop, elf_gnu_ifunc_resolver_return_stop): + Use inferior_thread. + * eval.c (evaluate_subexp): Likewise. + * frame.c (frame_pop, has_stack_frames, find_frame_sal): Use + inferior_thread. + * gdb_proc_service.h (struct thread_info): Forward declare. + (struct ps_prochandle) : Delete, replaced by ... + : ... this new field. All references adjusted. + * gdbarch.h, gdbarch.c: Regenerate. + * gdbarch.sh (get_syscall_number): Replace 'ptid' parameter with a + 'thread' parameter. All implementations and callers adjusted. + * gdbthread.h (thread_info) : New method. + (delete_thread, delete_thread_silent): Take a thread_info pointer + instead of a ptid. + (global_thread_id_to_ptid, ptid_to_global_thread_id): Delete. + (first_thread_of_process): Delete, replaced by ... + (first_thread_of_inferior): ... this new function. All callers + adjusted. + (any_live_thread_of_process): Delete, replaced by ... + (any_live_thread_of_inferior): ... this new function. All callers + adjusted. + (switch_to_thread, switch_to_no_thread): Declare. + (is_executing): Delete. + (enable_thread_stack_temporaries): Update comment. + : Take a thread_info pointer + instead of a ptid_t. Incref the thread. + <~enable_thread_stack_temporaries>: Decref the thread. + : Delete + : New. + (thread_stack_temporaries_enabled_p, push_thread_stack_temporary) + (get_last_thread_stack_temporary) + (value_in_thread_stack_temporaries, can_access_registers_thread): + Take a thread_info pointer instead of a ptid_t. All callers + adjusted. + * infcall.c (get_call_return_value): Use inferior_thread. + (run_inferior_call): Work with thread pointers instead of ptid_t. + (call_function_by_hand_dummy): Work with thread pointers instead + of ptid_t. Use thread_info_ref. + * infcmd.c (proceed_thread_callback): Access thread's state + directly. + (ensure_valid_thread, ensure_not_running): Use inferior_thread, + access thread's state directly. + (continue_command): Use inferior_thread. + (info_program_command): Use find_thread_ptid and access thread + state directly. + (proceed_after_attach_callback): Use thread state directly. + (notice_new_inferior): Take a thread_info pointer instead of a + ptid_t. All callers adjusted. + (exit_inferior): Take an inferior pointer instead of a pid. All + callers adjusted. + (exit_inferior_silent): New. + (detach_inferior): Delete. + (valid_gdb_inferior_id, pid_to_gdb_inferior_id) + (gdb_inferior_id_to_pid, in_inferior_list): Delete. + (detach_inferior_command, kill_inferior_command): Use + find_inferior_id instead of valid_gdb_inferior_id and + gdb_inferior_id_to_pid. + (inferior_command): Use inferior and thread pointers. + * inferior.h (struct thread_info): Forward declare. + (notice_new_inferior): Take a thread_info pointer instead of a + ptid_t. All callers adjusted. + (detach_inferior): Delete declaration. + (exit_inferior, exit_inferior_silent): Take an inferior pointer + instead of a pid. All callers adjusted. + (gdb_inferior_id_to_pid, pid_to_gdb_inferior_id, in_inferior_list) + (valid_gdb_inferior_id): Delete. + * infrun.c (follow_fork_inferior, proceed_after_vfork_done) + (handle_vfork_child_exec_or_exit, follow_exec): Adjust. + (struct displaced_step_inferior_state) : Delete, replaced by + ... + : ... this new field. + : Delete, replaced by ... + : ... this new field. + (get_displaced_stepping_state): Take an inferior pointer instead + of a pid. All callers adjusted. + (displaced_step_in_progress_any_inferior): Adjust. + (displaced_step_in_progress_thread): Take a thread pointer instead + of a ptid_t. All callers adjusted. + (displaced_step_in_progress, add_displaced_stepping_state): Take + an inferior pointer instead of a pid. All callers adjusted. + (get_displaced_step_closure_by_addr): Adjust. + (remove_displaced_stepping_state): Take an inferior pointer + instead of a pid. All callers adjusted. + (displaced_step_prepare_throw, displaced_step_prepare) + (displaced_step_fixup): Take a thread pointer instead of a ptid_t. + All callers adjusted. + (start_step_over): Adjust. + (infrun_thread_ptid_changed): Remove bit updating ptids in the + displaced step queue. + (do_target_resume): Adjust. + (fetch_inferior_event): Use inferior_thread. + (context_switch, get_inferior_stop_soon): Take an + execution_control_state pointer instead of a ptid_t. All callers + adjusted. + (switch_to_thread_cleanup): Delete. + (stop_all_threads): Use scoped_restore_current_thread. + * inline-frame.c: Include "gdbthread.h". + (inline_state) : Take a thread pointer instead of a + ptid_t. All callers adjusted. + : Delete, replaced by ... + : ... this new field. + (find_inline_frame_state): Take a thread pointer instead of a + ptid_t. All callers adjusted. + (skip_inline_frames, step_into_inline_frame) + (inline_skipped_frames, inline_skipped_symbol): Take a thread + pointer instead of a ptid_t. All callers adjusted. + * inline-frame.h (skip_inline_frames, step_into_inline_frame) + (inline_skipped_frames, inline_skipped_symbol): Likewise. + * linux-fork.c (delete_checkpoint_command): Adjust to use thread + pointers directly. + * linux-nat.c (get_detach_signal): Likewise. + * linux-thread-db.c (thread_from_lwp): New 'stopped' parameter. + (thread_db_notice_clone): Adjust. + (thread_db_find_new_threads_silently) + (thread_db_find_new_threads_2, thread_db_find_new_threads_1): Take + a thread pointer instead of a ptid_t. All callers adjusted. + * mi/mi-cmd-var.c: Include "inferior.h". + (mi_cmd_var_update_iter): Update to use thread pointers. + * mi/mi-interp.c (mi_new_thread): Update to use the thread's + inferior directly. + (mi_output_running_pid, mi_inferior_count): Delete, bits factored + out to ... + (mi_output_running): ... this new function. + (mi_on_resume_1): Adjust to use it. + (mi_user_selected_context_changed): Adjust to use inferior_thread. + * mi/mi-main.c (proceed_thread): Adjust to use thread pointers + directly. + (interrupt_thread_callback): : Adjust to use thread and inferior + pointers. + * proc-service.c: Include "gdbthread.h". + (ps_pglobal_lookup): Adjust to use the thread's inferior directly. + * progspace-and-thread.c: Include "inferior.h". + * progspace.c: Include "inferior.h". + * python/py-exitedevent.c (create_exited_event_object): Adjust to + hold a reference to an inferior_object. + * python/py-finishbreakpoint.c (bpfinishpy_init): Adjust to use + inferior_thread. + * python/py-inferior.c (struct inferior_object): Give the type a + tag name instead of a typedef. + (python_on_normal_stop): No need to check if the current thread is + listed. + (inferior_to_inferior_object): Change return type to + inferior_object. All callers adjusted. + (find_thread_object): Delete, bits factored out to ... + (thread_to_thread_object): ... this new function. + * python/py-infthread.c (create_thread_object): Use + inferior_to_inferior_object. + (thpy_is_stopped): Use thread pointer directly. + (gdbpy_selected_thread): Use inferior_thread. + * python/py-record-btrace.c (btpy_list_object) : Delete + field, replaced with ... + : ... this new field. All users adjusted. + (btpy_insn_or_gap_new): Drop const. + (btpy_list_new): Take a thread pointer instead of a ptid_t. All + callers adjusted. + * python/py-record.c: Include "gdbthread.h". + (recpy_insn_new, recpy_func_new): Take a thread pointer instead of + a ptid_t. All callers adjusted. + (gdbpy_current_recording): Use inferior_thread. + * python/py-record.h (recpy_record_object) : Delete + field, replaced with ... + : ... this new field. All users adjusted. + (recpy_element_object) : Delete + field, replaced with ... + : ... this new field. All users adjusted. + (recpy_insn_new, recpy_func_new): Take a thread pointer instead of + a ptid_t. All callers adjusted. + * python/py-threadevent.c: Include "gdbthread.h". + (get_event_thread): Use thread_to_thread_object. + * python/python-internal.h (struct inferior_object): Forward + declare. + (find_thread_object, find_inferior_object): Delete declarations. + (thread_to_thread_object, inferior_to_inferior_object): New + declarations. + * record-btrace.c: Include "inferior.h". + (require_btrace_thread): Use inferior_thread. + (record_btrace_frame_sniffer) + (record_btrace_tailcall_frame_sniffer): Use inferior_thread. + (get_thread_current_frame): Use scoped_restore_current_thread and + switch_to_thread. + (get_thread_current_frame): Use thread pointer directly. + (record_btrace_replay_at_breakpoint): Use thread's inferior + pointer directly. + * record-full.c: Include "inferior.h". + * regcache.c: Include "gdbthread.h". + (get_thread_arch_regcache): Use the inferior's address space + directly. + (get_thread_regcache, registers_changed_thread): New. + * regcache.h (get_thread_regcache(thread_info *thread)): New + overload. + (registers_changed_thread): New. + (remote_target) : Swap order of parameters. + (remote_add_thread): : Return the new thread. + (get_remote_thread_info(ptid_t)): New overload. + (remote_target::remote_notice_new_inferior): Use thread pointers + directly. + (remote_target::process_initial_stop_replies): Use + thread_info::set_running. + (remote_target::remote_detach_1, remote_target::detach) + (extended_remote_target::detach): Adjust. + * stack.c (frame_show_address): Use inferior_thread. + * target-debug.h (target_debug_print_thread_info_pp): New. + * target-delegates.c: Regenerate. + * target.c (default_thread_address_space): Delete. + (memory_xfer_partial_1): Use current_inferior. + (target_detach): Use current_inferior. + (target_thread_address_space): Delete. + (generic_mourn_inferior): Use current_inferior. + * target.h (struct target_ops) : Delete. + (target_thread_address_space): Delete. + * thread.c (init_thread_list): Use ALL_THREADS_SAFE. Use thread + pointers directly. + (delete_thread_1, delete_thread, delete_thread_silent): Take a + thread pointer instead of a ptid_t. Adjust all callers. + (ptid_to_global_thread_id, global_thread_id_to_ptid): Delete. + (first_thread_of_process): Delete, replaced by ... + (first_thread_of_inferior): ... this new function. All callers + adjusted. + (any_thread_of_process): Rename to ... + (any_thread_of_inferior): ... this, and take an inferior pointer. + (any_live_thread_of_process): Rename to ... + (any_live_thread_of_inferior): ... this, and take an inferior + pointer. + (thread_stack_temporaries_enabled_p, push_thread_stack_temporary) + (value_in_thread_stack_temporaries) + (get_last_thread_stack_temporary): Take a thread pointer instead + of a ptid_t. Adjust all callers. + (thread_info::set_running): New. + (validate_registers_access): Use inferior_thread. + (can_access_registers_ptid): Rename to ... + (can_access_registers_thread): ... this, and take a thread + pointer. + (print_thread_info_1): Adjust to compare thread pointers instead + of ptids. + (switch_to_no_thread, switch_to_thread): Make extern. + (scoped_restore_current_thread::~scoped_restore_current_thread): + Use m_thread pointer directly. + (scoped_restore_current_thread::scoped_restore_current_thread): + Use inferior_thread. + (thread_command): Use thread pointer directly. + (thread_num_make_value_helper): Use inferior_thread. + * top.c (execute_command): Use inferior_thread. + * tui/tui-interp.c: Include "inferior.h". + * varobj.c (varobj_create): Use inferior_thread. + (value_of_root_1): Use find_thread_global_id instead of + global_thread_id_to_ptid. + +2018-06-21 Alan Hayward + + * regcache.c (readable_regcache::read_part): Avoid memcpy when + possible. + (regcache::write_part): Likewise. + (readable_regcache::cooked_read_part): Update comment. + (readable_regcache::cooked_write_part): Likewise. + * regcache.h: (readable_regcache::read_part): Likewise. + (regcache::write_part): Likewise. + +2018-06-21 Richard Bunt + Dirk Schubert + + * aarch64-linux-nat.c (post_attach): New. + (aarch64_linux_nat_target::post_attach): Override post_attach to + record the number of hardware debug registers. + +2018-06-20 Tom Tromey + + * python/py-param.c (add_setshow_generic): Make parameters const. + (parmpy_init): Update. + +2018-06-20 Simon Marchi + + * regcache.h (regcache_cooked_read_ftype): Rename to... + (register_read_ftype): ...this, change type to function_view. + (class reg_buffer) : Remove src parameter. + (readonly_detached_regcache) : Make + parameter non-const in first overload. Remove src parameter in + second overload. + * regcache.c (do_cooked_read): Remove. + (readonly_detached_regcache::readonly_detached_regcache): Make + parameter non-const, adjust call to other constructor. + (reg_buffer::save): Remove src parameter. + * frame.c (do_frame_register_read): Remove. + (frame_save_as_regcache): Use lambda function. + * ppc-linux-tdep.c (ppu2spu_unwind_register): Change type of src + parameter to ppu2spu_data *. + (ppu2spu_sniffer): Use lambda function. + +2018-06-20 Simon Marchi + + * record-full.c (record_full_target::insert_breakpoint): Remove + "struct" keyword, add const. + +2018-06-19 Simon Marchi + + * common/common-defs.h (PACKAGE_NAME, PACKAGE_VERSION, + PACKAGE_STRING, PACKAGE_TARNAME): Undefine. + * configure.ac: Remove AC_PREREQ, add missing quoting. + * gnulib/configure.ac: Modernize usage of + AC_INIT/AM_INIT_AUTOMAKE. Remove AC_PREREQ. + * gnulib/update-gnulib.sh (AUTOCONF_VERSION): Bump to 2.69. + (AUTOMAKE_VERSION): Bump to 1.15.1. + * configure: Re-generate. + * config.in: Re-generate. + * aclocal.m4: Re-generate. + * gnulib/aclocal.m4: Re-generate. + * gnulib/config.in: Re-generate. + * gnulib/configure: Re-generate. + * gnulib/import/Makefile.in: Re-generate. + +2018-06-19 Pedro Alves + + * minsyms.c (msym_prefer_to_msym_type): New, factored out from ... + (lookup_minimal_symbol_by_pc_section): ... here with + gdb_assert_not_reached added. + +2018-06-19 Pedro Alves + + * inline-frame.c (stopped_by_user_bp_inline_frame): Replace PC + parameter with a block parameter. Compare location's block symbol + with the frame's block instead of addresses. + (skip_inline_frames): Pass the current block instead of the + frame's address. Break out as soon as we determine the frame + should not be skipped. + +2018-06-18 Tom Tromey + + * solib-aix.c (solib_aix_get_section_offsets): Return + unique_xmalloc_ptr. + (solib_aix_solib_create_inferior_hook): Update. + +2018-06-18 Tom Tromey + + * solib-darwin.c (darwin_current_sos): Use unique_xmalloc_ptr. + +2018-06-18 Tom Tromey + + * solib-frv.c (frv_relocate_main_executable): Use + unique_xmalloc_ptr. + * solib-dsbt.c (dsbt_relocate_main_executable): Use + unique_xmalloc_ptr. + +2018-06-18 Tom Tromey + + * objfiles.h (inhibit_section_map_updates): Update. + (resume_section_map_updates, resume_section_map_updates_cleanup): + Remove. + * solib-svr4.c (svr4_handle_solib_event): Update. + * objfiles.c (inhibit_section_map_updates): Return + scoped_restore_tmpl. + (resume_section_map_updates, resume_section_map_updates_cleanup): + Remove. + +2018-06-18 Tom Tromey + + * valprint.h (read_string): Update. + * valprint.c (read_string): Change type of "buffer". + (val_print_string): Update. + * python/py-value.c (valpy_string): Update. + * language.h (struct language_defn) : Change + type of "buffer". + (default_get_string, c_get_string): Update. + * language.c (default_get_string): Change type of "buffer". + * guile/scm-value.c (gdbscm_value_to_string): Update. + * c-lang.c (c_get_string): Change type of "buffer". + +2018-06-18 Tom Tromey + + * ser-mingw.c (struct pipe_state_destroyer): New. + (pipe_state_up): New typedef. + (cleanup_pipe_state): Remove. + (pipe_windows_open): Use pipe_state_up. Don't release argv. + +2018-06-18 Tom Tromey + + * rust-lang.h (rust_yyerror): Don't declare. + * rust-lang.c (rust_language_defn): Update. + * rust-exp.y (yyerror): Now static. + * parse.c (parse_exp_in_context_1): Update. + * p-lang.h (p_yyerror): Don't declare. + * p-lang.c (p_language_defn): Update. + * p-exp.y (yyerror): Now static. + * opencl-lang.c (opencl_language_defn): Update. + * objc-lang.c (objc_language_defn): Update. + * m2-lang.h (m2_yyerror): Don't declare. + * m2-lang.c (m2_language_defn): Update. + * m2-exp.y (yyerror): Now static. + * language.h (struct language_defn) : Remove. + * language.c (unk_lang_error): Remove. + (unknown_language_defn, auto_language_defn): Remove. + * go-lang.h (go_yyerror): Don't declare. + * go-lang.c (go_language_defn): Update. + * go-exp.y (yyerror): Now static. + * f-lang.h (f_yyerror): Don't declare. + * f-lang.c (f_language_defn): Update. + * f-exp.y (yyerror): Now static. + * d-lang.h (d_yyerror): Don't declare. + * d-lang.c (d_language_defn): Update. + * d-exp.y (yyerror): Now static. + * c-lang.h (c_yyerror): Don't declare. + * c-lang.c (c_language_defn, cplus_language_defn) + (asm_language_defn, minimal_language_defn): Update. + * c-exp.y (yyerror): Now static. + * ada-lang.h (ada_yyerror): Don't declare. + * ada-lang.c (ada_language_defn): Update. + * ada-exp.y (yyerror): Now static. + +2018-06-18 Alan Hayward + + * aarch64-linux-nat.c (fetch_sveregs_from_thread): New function. + (store_sveregs_to_thread): Likewise. + (aarch64_linux_fetch_inferior_registers): Check for SVE. + (aarch64_linux_store_inferior_registers): Likewise. + * nat/aarch64-sve-linux-ptrace.c (aarch64_sve_get_sveregs): New + function. + (aarch64_sve_regs_copy_to_regcache): Likewise. + (aarch64_sve_regs_copy_from_regcache): Likewise. + * nat/aarch64-sve-linux-ptrace.h (aarch64_sve_get_sveregs): New + declaration. + (aarch64_sve_regs_copy_to_regcache): Likewise. + (aarch64_sve_regs_copy_from_regcache): Likewise. + (sve_context): Structure from Linux headers. + (SVE_SIG_ZREGS_SIZE): Define from Linux headers. + (SVE_SIG_ZREG_SIZE): Likewise. + (SVE_SIG_PREG_SIZE): Likewise. + (SVE_SIG_FFR_SIZE): Likewise. + (SVE_SIG_REGS_OFFSET): Likewise. + (SVE_SIG_ZREGS_OFFSET): Likewise. + (SVE_SIG_ZREG_OFFSET): Likewise. + (SVE_SIG_ZREGS_SIZE): Likewise. + (SVE_SIG_PREGS_OFFSET): Likewise. + (SVE_SIG_PREG_OFFSET): Likewise. + (SVE_SIG_PREGS_SIZE): Likewise. + (SVE_SIG_FFR_OFFSET): Likewise. + (SVE_SIG_REGS_SIZE): Likewise. + (SVE_SIG_CONTEXT_SIZE): Likewise. + (SVE_PT_REGS_MASK): Likewise. + (SVE_PT_REGS_FPSIMD): Likewise. + (SVE_PT_REGS_SVE): Likewise. + (SVE_PT_VL_INHERIT): Likewise. + (SVE_PT_VL_ONEXEC): Likewise. + (SVE_PT_REGS_OFFSET): Likewise. + (SVE_PT_FPSIMD_OFFSET): Likewise. + (SVE_PT_FPSIMD_SIZE): Likewise. + (SVE_PT_SVE_ZREG_SIZE): Likewise. + (SVE_PT_SVE_PREG_SIZE): Likewise. + (SVE_PT_SVE_FFR_SIZE): Likewise. + (SVE_PT_SVE_FPSR_SIZE): Likewise. + (SVE_PT_SVE_FPCR_SIZE): Likewise. + (__SVE_SIG_TO_PT): Likewise. + (SVE_PT_SVE_OFFSET): Likewise. + (SVE_PT_SVE_ZREGS_OFFSET): Likewise. + (SVE_PT_SVE_ZREG_OFFSET): Likewise. + (SVE_PT_SVE_ZREGS_SIZE): Likewise. + (SVE_PT_SVE_PREGS_OFFSET): Likewise. + (SVE_PT_SVE_PREG_OFFSET): Likewise. + (SVE_PT_SVE_PREGS_SIZE): Likewise. + (SVE_PT_SVE_FFR_OFFSET): Likewise. + (SVE_PT_SVE_FPSR_OFFSET): Likewise. + (SVE_PT_SVE_FPCR_OFFSET): Likewise. + (SVE_PT_SVE_SIZE): Likewise. + (SVE_PT_SIZE): Likewise. + (HAS_SVE_STATE): New define. + +2018-06-18 Alan Hayward + + * nat/aarch64-sve-linux-sigcontext.h: New file. + * nat/aarch64-sve-linux-ptrace.h (SVE_VQ_BYTES): Move to + new files. + (SVE_VQ_MIN): Likewise. + (SVE_VQ_MAX): Likewise. + (SVE_VL_MIN): Likewise. + (SVE_VL_MAX): Likewise. + (SVE_NUM_ZREGS): Likewise. + (SVE_NUM_PREGS): Likewise. + (sve_vl_valid): Likewise. + (struct user_sve_header): Likewise. + +2018-06-16 Andrew Burgess + Richard Bunt + + * linux-nat.c (stop_wait_callback): Don't discard SIGSTOP if it + was requested by GDB. + +2018-06-15 Tom de Vries + + * MAINTAINERS (Write After Approval): Add Tom de Vries. + +2018-06-14 Simon Marchi + + * gnulib/update-gnulib.sh: Print expected versions of + autoconf/aclocal. + +2018-06-14 Simon Marchi + + * arch-utils.c (default_type_align): Use type_length_units. + * gdbtypes.c (type_align): Use type_length_units. + +2018-06-14 Philippe Waroquiers + + * cli/cli-script.c (_initialize_cli_script): Fix online documentation + of 'define' command. + +2018-06-14 Tom de Vries + + PR cli/22573 + * infcmd.c (print_return_value_1): Use get_user_print_options instead of + get_no_prettyformat_print_options. + +2018-06-13 Simon Marchi + + * sparc-nat.h: Include target.h. + * sparc64-linux-nat.c (class sparc64_linux_nat_target) + : Remove this argument in function call. + : Remove this argument in function call, remove + extra semicolon. + : Call sparc64_forget_process instead of + sparc_forget_process. + +2018-06-13 Rainer Orth + + * procfs.c (_initialize_procfs): Use add_inf_child_target. + (procfs_target::make_corefile_notes): Adjust to new + target_read_alloc return type. + +2018-06-12 Andrew Burgess + Stephen Roberts + + PR gdb/22882 + * infrun.c (fetch_inferior_event): If GDB is not proceeding then + run INF_EXEC_COMPLETE handler, even when not calling normal_stop. + Move should_notify_stop local into more inner scope. + +2018-06-12 Andrew Burgess + Stephen Roberts + + PR gdb/22882 + * infrun.c (resume_1): Add call to mark_async_event_handler. + +2018-06-12 Andrew Burgess + + * infrun.c (do_target_wait): Change old version of $pc printed. + +2018-06-11 Simon Marchi + + * dwarf2read.c (read_index_from_section): Rename to... + (read_gdb_index_from_section): ... this, update all callers. + (dwarf2_read_index): Rename to... + (dwarf2_read_gdb_index): ... this, update all callers. + +2018-06-11 John David Anglin + + * gdb/hppa-linux-nat.c + (hppa_linux_nat_target::fetch_inferior_registers): Rename to + hppa_linux_nat_target::fetch_registers. + +2018-06-11 Alan Hayward + + * aarch64-tdep.c (aarch64_dwarf_reg_to_regnum): Add mappings. + * aarch64-tdep.h (AARCH64_DWARF_SVE_VG): Add define. + (AARCH64_DWARF_SVE_FFR): Likewise. + (AARCH64_DWARF_SVE_P0): Likewise. + (AARCH64_DWARF_SVE_Z0): Likewise. + +2018-06-11 Alan Hayward + + * common/common-regcache.h (raw_compare): New function. + * regcache.c (regcache::raw_compare): Likewise. + * regcache.h (regcache::raw_compare): New declaration. + +2018-06-11 Alan Hayward + + * common/common-regcache.h (reg_buffer_common): New structure. + * regcache.c (reg_buffer::invalidate): Move from detached_regcache. + (reg_buffer::raw_supply): Likewise. + (reg_buffer::raw_supply_integer): Likewise. + (reg_buffer::raw_supply_zeroed): Likewise. + (reg_buffer::raw_collect): Likewise. + (reg_buffer::raw_collect_integer): Likewise. + * regcache.h (reg_buffer::invalidate): Move from detached_regcache. + (reg_buffer::raw_supply): Likewise. + (reg_buffer::raw_supply_integer): Likewise. + (reg_buffer::raw_supply_zeroed): Likewise. + (reg_buffer::raw_collect): Likewise. + (reg_buffer::raw_collect_integer): Likewise. + +2018-06-10 Tom Tromey + + * remote.c (stop_reply_p): Remove typedef. Don't declare queue. + (class remote_state) : Now std::vector. + (remote_state::~remote_state) + (remote_target::stop_reply_queue_length): Update. + (struct queue_iter_param, remove_child_of_pending_fork) + (struct check_pending_event_prevents_wildcard_vcont_callback_data) + (check_pending_event_prevents_wildcard_vcont_callback) + (remove_stop_reply_for_inferior) + (remove_stop_reply_of_remote_state) + (remote_notif_remove_once_on_match) + (stop_reply_match_ptid_and_ws) + (remote_kill_child_of_pending_fork): Remove. + (remote_target::remove_new_fork_children) + (remote_target::check_pending_events_prevent_wildcard_vcont) + (remote_target::discard_pending_stop_replies) + (remote_target::discard_pending_stop_replies_in_queue) + (remote_target::remote_notif_remove_queued_reply) + (remote_target::queued_stop_reply) + (remote_target::push_stop_reply, remote_target::peek_stop_reply) + (remote_target::wait, remote_target::kill_new_fork_children) + (remote_target::async): Update. + +2018-06-10 Tom Tromey + + * record-full.c (record_full_arch_list_cleanups): Remove. + (record_full_message): Use try/catch. + (record_full_wait_cleanups): Remove. + (record_full_wait_1): Use try/catch. + (record_full_restore): Likewise. + +2018-06-10 Tom Tromey + + * record-full.c (record_full_breakpoint_p): Remove typedef. Don't + declare VEC. Add constructor. + : Now bool. + (record_full_breakpoints): Now a std::vector, static. + (record_full_sync_record_breakpoints) + (record_full_init_record_breakpoints) + (record_full_target::insert_breakpoint) + (record_full_target::remove_breakpoint): Update. Don't use XNEW. + +2018-06-10 Simon Marchi + + * dwarf2read.c (process_cu_includes): Remove struct keyword. + * serial.c (serial_interface_lookup): Remove struct keyword. + +2018-06-10 Tom Tromey + + * procfs.c (procfs_target::xfer_partial): Use "beneath" as a + method. + * nto-procfs.c (nto_procfs_target::xfer_partial): Use "beneath" as + a method. + * go32-nat.c (go32_nat_target::xfer_partial): Use "beneath" as a + method. + * arm-linux-nat.c (arm_linux_nat_target::read_description): Use + "beneath" as a method. + * arm-fbsd-nat.c (arm_fbsd_nat_target::read_description): + Use "beneath" as a method. + +2018-06-10 Tom Tromey + + * tracefile.c (struct trace_file_writer_deleter): New. + : Rename from trace_file_writer_xfree. + (trace_file_writer_up): New typedef. + (tsave_command, trace_save_tfile, trace_save_ctf): Update. + +2018-06-09 Simon Marchi + + * regcache.h (reg_buffer) <~reg_buffer>: Use default destructor. + : Change type to + std::unique_ptr. + * regcache.c (reg_buffer::reg_buffer): Use new instead of + XCNEWVEC. + +2018-06-09 Simon Marchi + + * common/common-regcache.h (enum register_status): Add + underlying type "signed char". + * regcache.h (reg_buffer) : Change type to + register_status *. + * regcache.c (reg_buffer::reg_buffer): Alocate arrays of + register_status instead of signed char. + (reg_buffer::save): Use REG_UNKNOWN instead of 0. + (reg_buffer::get_register_status): Remove cast. + (readable_regcache::raw_read): Remove cast. + (readable_regcache::cooked_read): Remove cast. + +2018-06-09 Tom Tromey + + * source.c (reverse_search_command, forward_search_command): Use + scoped_fd. + +2018-06-09 Tom Tromey + + * serial.c (serial_ops_p): Remove typedef. Don't declare VEC. + (serial_ops_list): Now static, std::vector. + (serial_interface_lookup, serial_add_interface): Update. + +2018-06-09 Tom Tromey + + * dwarf2read.c (process_cu_includes): Update. + (process_full_comp_unit): Update. + * dwarf2read.h (struct dwarf2_per_objfile) : Now a + std::vector. + +2018-06-08 Paul Koning + + PR gdb/23252 + + * python/python.c (do_start_initialization): + Avoid call to internal Python API. + (init__gdb_module): New function. + +2018-06-08 Gary Benson + + * linux-thread-db.c (valprint.h): New include. + (struct check_thread_db_info): New structure. + (check_thread_db_on_load, tdb_testinfo): New static globals. + (check_thread_db, check_thread_db_callback): New functions. + (try_thread_db_load_1): Run integrity checks if requested. + (maintenance_check_libthread_db): New function. + (_initialize_thread_db): Register "maint check libthread-db" + and "maint set/show check-libthread-db". + * NEWS: Mention the above new commands. + +2018-06-08 Tom Tromey + + * windows-nat.c (windows_nat_target::xfer_partial): "beneath" is + now a method. + +2018-06-08 Tom Tromey + + * btrace.c (parse_xml_raw): Use gdb::unique_xmalloc_ptr. + +2018-06-08 Tom Tromey + + * common/btrace-common.h (struct btrace_data): Add constructor, + destructor, move assignment operator. + : New methods. + : Initialize. + (btrace_data_init, btrace_data_fini, btrace_data_clear) + (btrace_data_empty): Don't declare. + * common/btrace-common.c (btrace_data_init): Remove. + (btrace_data::fini): Rename from btrace_data_fini. + (btrace_data::empty): Rename from btrace_data_empty. + (btrace_data::clear): Rename from btrace_data_clear. Return + bool. + * btrace.h (make_cleanup_btrace_data): Don't declare. + * btrace.c (btrace_add_pc, btrace_stitch_trace, btrace_clear) + (parse_xml_btrace): Update. + (do_btrace_data_cleanup, make_cleanup_btrace_data): Remove. + (maint_btrace_clear_packet_history_cmd): Update. + +2018-06-07 Pedro Alves + + * target.h (target_ops) : Now a method. All references + updated. + (class target_stack): New. + * target.c (g_target_stack): New. + (g_current_top_target): Delete. + (current_top_target): Get the top target out of g_target_stack. + (target_stack::push, target_stack::unpush): New. + (push_target, unpush_target): Reimplement. + (target_is_pushed): Reimplement in terms of g_target_stack. + (target_ops::beneath, target_stack::find_beneath): New. + +2018-06-07 Pedro Alves + + * target.h (find_target_beneath): Delete declaration. + * target.c (find_target_beneath): Delete definition. + * aix-thread.c: All callers of find_target_beneath adjusted to + call target_ops::beneath instead. + * bsd-uthread.c: Likewise. + * linux-thread-db.c: Likewise. + * ravenscar-thread.c: Likewise. + * sol-thread.c: Likewise. + * spu-multiarch.c: Likewise. + +2018-06-07 Pedro Alves + + * target.h (target_ops) : Now a method. All references + updated. + (target_ops) : New. + * target.c (target_ops::beneath): New. + * corelow.c: Adjust all references to target_ops::beneath. + * linux-thread-db.c: Likewise. + * make-target-delegates: Likewise. + * record-btrace.c: Likewise. + * record-full.c: Likewise. + * remote.c: Likewise. + * target.c: Likewise. + * target-delegates.c: Regenerate. + +2018-06-07 Pedro Alves + + * target.h (target_stack): Delete. + (current_top_target): Declare function. + * target.c (target_stack): Delete. + (g_current_top_target): New. + (current_top_target): New function. + * auxv.c: Use current_top_target instead of target_stack + throughout. + * avr-tdep.c: Likewise. + * breakpoint.c: Likewise. + * corefile.c: Likewise. + * elfread.c: Likewise. + * eval.c: Likewise. + * exceptions.c: Likewise. + * frame.c: Likewise. + * gdbarch-selftests.c: Likewise. + * gnu-v3-abi.c: Likewise. + * ia64-tdep.c: Likewise. + * ia64-vms-tdep.c: Likewise. + * infcall.c: Likewise. + * infcmd.c: Likewise. + * infrun.c: Likewise. + * linespec.c: Likewise. + * linux-tdep.c: Likewise. + * minsyms.c: Likewise. + * ppc-linux-nat.c: Likewise. + * ppc-linux-tdep.c: Likewise. + * procfs.c: Likewise. + * regcache.c: Likewise. + * remote.c: Likewise. + * rs6000-tdep.c: Likewise. + * s390-linux-nat.c: Likewise. + * s390-tdep.c: Likewise. + * solib-aix.c: Likewise. + * solib-darwin.c: Likewise. + * solib-dsbt.c: Likewise. + * solib-spu.c: Likewise. + * solib-svr4.c: Likewise. + * solib-target.c: Likewise. + * sparc-tdep.c: Likewise. + * sparc64-tdep.c: Likewise. + * spu-tdep.c: Likewise. + * symfile.c: Likewise. + * symtab.c: Likewise. + * target-descriptions.c: Likewise. + * target-memory.c: Likewise. + * target.c: Likewise. + * target.h: Likewise. + * tracefile-tfile.c: Likewise. + * tracepoint.c: Likewise. + * valops.c: Likewise. + * valprint.c: Likewise. + * value.c: Likewise. + * windows-tdep.c: Likewise. + * mi/mi-main.c: Likewise. + +2018-06-07 Tom Tromey + + * valprint.h (build_address_symbolic): Declare. + * printcmd.c (print_address_symbolic): Update. + (build_address_symbolic): Change "name" and "filename" to + std::string. + * disasm.c (gdb_pretty_print_disassembler::pretty_print_insn): + Update. + * defs.h (build_address_symbolic): Remove declaration. + +2018-06-07 Alan Hayward + + * aarch64-tdep.c (AARCH64_SVE_V0_REGNUM): Add define. + (aarch64_vnv_type): Add function. + (aarch64_pseudo_register_name): Add V regs for SVE. + (aarch64_pseudo_register_type): Likewise. + (aarch64_pseudo_register_reggroup_p): Likewise. + (aarch64_pseudo_read_value_2): Use V0 offset for SVE + (aarch64_pseudo_read_value): Add V regs for SVE. + (aarch64_pseudo_write_2): Use V0 offset for SVE + (aarch64_pseudo_write): Add V regs for SVE. + * aarch64-tdep.h (struct gdbarch_tdep): Add vnv_type. + +2018-06-06 Sergio Durigan Junior + + * arch/aarch64.h (sve_vq_from_vl): Guard with #ifndef. + (sve_vl_from_vq): Likewise. + +2018-06-05 Tom Tromey + + * cli/cli-cmds.c (show_version): Update. + * top.c (print_gdb_version): Add "interactive" parameter. + Update. + * main.c (captured_main_1): Update. + * top.h (print_gdb_version): Add "interactive" parameter and a + comment. + +2018-06-05 David Malcolm + + * common/enum-flags.h: Add trailing semicolon to example in + comment. + +2018-06-05 Tom Tromey + + PR cli/12326: + * NEWS: Add entry about pager. + * utils.c (pagination_disabled_for_command): New global. + (prompt_for_continue): Allow "c" response to prompt. + (reinitialize_more_filter): Clear + pagination_disabled_for_command. + (fputs_maybe_filtered): Check pagination_disabled_for_command. + +2018-06-04 Tom Tromey + + * ada-lang.h (ada_lookup_symbol_list): Update. + * ada-lang.c (resolve_subexp): Update. + (symbols_are_identical_enums): Change type of syms. Remove nsyms + parameter. + (remove_extra_symbols, remove_irrelevant_renamings): Likewise. + (ada_lookup_symbol_list_worker, ada_lookup_symbol_list): Change + results parameter to std::vector. + (ada_iterate_over_symbols, ada_lookup_symbol, get_var_value): + Update. + * ada-exp.y (block_lookup): Update. + (select_possible_type_sym): Change type of syms. Remove nsyms + parameter. + (write_var_or_type, write_name_assoc): Update. + +2018-06-04 Joel Brobecker + + * windows-nat.c (windows_nat_target::xfer_partial): Return + TARGET_XFER_E_IO if we need to delegate to the target beneath + but BENEATH is NULL. + +2018-06-04 Simon Marchi + + * Makefile.in (config.status): Add configure.nat as a + dependency. + +2018-06-04 Tom Tromey + + * cp-name-parser.y (cpname_state): Add method declarations. + (HANDLE_QUAL): Update. + (cpname_state::d_grab, cpname_state::fill_comp) + (cpname_state::make_operator, cpname_state::make_dtor) + (cpname_state::make_builtin_type, cpname_state::make_name) + (cpname_state::d_qualify, cpname_state::d_int_type) + (cpname_state::d_unary, cpname_state::d_binary): Now methods. + (%union): Move earlier. + +2018-06-04 Alan Hayward + + * elfread.c (elf_symfile_segments): Use ELF_SECTION_IN_SEGMENT. + +2018-06-04 Alan Hayward + + * aarch64-tdep.c (aarch64_pseudo_read_value_1): New helper func. + (aarch64_pseudo_write_1): Likewise. + (aarch64_pseudo_read_value): Use helper. + (aarch64_pseudo_write): Likewise. + +2018-06-04 Pedro Alves + + * darwin-nat.c (darwin_ops): Delete. + (darwin_attach_pid): Use get_native_target. + +2018-06-04 Alan Hayward + + * aarch64-tdep.c (aarch64_get_tdesc_vq): Use uint64_t for VQ. + * aarch64-tdep.h (struct gdbarch_tdep): Likewise. + +2018-06-04 Alan Hayward + + * aarch64-linux-nat.c (aarch64_linux_read_description): Support SVE. + * aarch64-tdep.c (aarch64_get_tdesc_vq): New function. + (aarch64_gdbarch_init): Check for SVE. + * aarch64-tdep.h (gdbarch_tdep::has_sve): New function. + +2018-06-04 Alan Hayward + + * aarch64-tdep.c (aarch64_read_description): Use uint64_t for VQ. + * aarch64-tdep.h (aarch64_read_description): Likewise. + * arch/aarch64.c (aarch64_create_target_description): Likewise. + * arch/aarch64.h (aarch64_create_target_description): Likewise. + * features/aarch64-sve.c (create_feature_aarch64_sve): Likewise. + * nat/aarch64-sve-linux-ptrace.c(aarch64_sve_get_vq): Likewise. + * nat/aarch64-sve-linux-ptrace.h (aarch64_sve_get_vq): Likewise. + +2018-06-02 Simon Marchi + + * value.c (value_fetch_lazy_bitfield): New. + (value_fetch_lazy_memory): New. + (value_fetch_lazy_register): New. + (value_fetch_lazy): Factor out to smaller functions. + +2018-06-01 Tom Tromey + + * cp-name-parser.y (backslashable, represented): Now const. + +2018-06-01 Tom Tromey + + * cp-name-parser.y: Include parser-defs.h. + (parser_fprintf): Remove declaration. + +2018-06-01 Tom Tromey + + * cp-name-parser.y: Use %pure-parser, %lex-param, and + %parse-param. + (lexptr, prev_lexptr, error_lexptr, global_errmsg, demangle_info) + (global_result): Remove globals. + (struct cpname_state): New. + (yyparse): Don't declare. + (yylex, yyerror): Move declarations after %union. + (d_grab, fill_comp, make_operator, make_dtor, make_builtin_type) + (make_name): Add state parameter. + Update all callers. + (d_qualify, d_int_type, d_unary, d_binary, parse_number) Add state + parameter. + (HANDLE_QUAL, HANDLE_SPECIAL, HANDLE_TOKEN2, HANDLE_TOKEN3): + Update. + (yylex): Add lvalp, state parameters. + (yyerror): Add state parameter. + (cp_demangled_name_to_comp): Update. + +2018-06-01 Tom Tromey + + * cp-name-parser.y (parser_fprintf): Declare. + (GDB_YY_REMAP_PREFIX): Define. + Include yy-remap.h. Don't redefine yy* identifiers. + +2018-06-01 Tom Tromey + + * python/py-type.c (typy_legacy_template_argument): Update. + * cp-support.h (cp_demangled_name_to_comp): Update. + * cp-name-parser.y (cp_demangled_name_to_comp): Change errmsg + parameter to be a "std::string *". + (main): Update. + +2018-06-01 H.J. Lu + + * ada-lex.l: Include "diagnostics.h" instead of + "common/diagnostics.h". + * unittests/environ-selftests.c: Likewise. + * common/diagnostics.h: Moved to ../include. + +2018-06-01 Joel Brobecker + + * breakpoint.c (breakpoint_re_set): Temporarily force language_mode + to language_mode_manual while calling breakpoint_re_set_one. + +2018-06-01 Tom Tromey + + * valops.c (value_cast_structs, destructor_name_p): Update. + * symtab.c (gdb_mangle_name): Update. + * stabsread.c (define_symbol, read_cpp_abbrev, read_baseclasses): + Update. + * p-valprint.c (pascal_object_is_vtbl_ptr_type) + (pascal_object_print_value_fields, pascal_object_print_value): + Update. + * p-typeprint.c (pascal_type_print_derivation_info): Update. + * linespec.c (find_methods): Update. + * gdbtypes.h (type_name_no_tag): Remove. + (type_name_or_error): Rename from type_name_no_tag_or_error. + * gdbtypes.c (type_name_no_tag): Remove. + (type_name_or_error): Rename from type_name_no_tag_or_error. + (lookup_struct_elt_type, check_typedef): Update. + * expprint.c (print_subexp_standard): Update. + * dwarf2read.c (dwarf2_add_field, load_partial_dies): Update. + * d-namespace.c (d_lookup_nested_symbol): Update. + * cp-valprint.c (cp_is_vtbl_ptr_type, cp_print_value_fields) + (cp_print_class_member): Update. + * cp-namespace.c (cp_lookup_nested_symbol): Update. + * completer.c (add_struct_fields): Update. + * c-typeprint.c (cp_type_print_derivation_info) + (c_type_print_varspec_prefix, c_type_print_base_struct_union): + Update. + * ada-lang.c (parse_old_style_renaming, xget_renaming_scope) + (ada_prefer_type, ada_is_exception_sym): Update. + +2018-06-01 Tom Tromey + + * valops.c (enum_constant_from_type, value_namespace_elt) + (value_maybe_namespace_elt): Update. + * valarith.c (find_size_for_pointer_math): Update. + * target-descriptions.c (make_gdb_type): Update. + * symmisc.c (print_symbol): Update. + * stabsread.c (define_symbol, read_type) + (complain_about_struct_wipeout, add_undefined_type) + (cleanup_undefined_types_1): Update. + * rust-lang.c (rust_tuple_type_p, rust_slice_type_p) + (rust_range_type_p, val_print_struct, rust_print_struct_def) + (rust_internal_print_type, rust_composite_type) + (rust_evaluate_funcall, rust_evaluate_subexp) + (rust_inclusive_range_type_p): Update. + * python/py-type.c (typy_get_tag): Update. + * p-typeprint.c (pascal_type_print_base): Update. + * mdebugread.c (parse_symbol, parse_type): Update. + * m2-typeprint.c (m2_long_set, m2_record_fields, m2_enum): + Update. + * guile/scm-type.c (gdbscm_type_tag): Update. + * go-lang.c (sixg_string_p): Update. + * gnu-v3-abi.c (build_gdb_vtable_type, build_std_type_info_type): + Update. + * gdbtypes.h (struct main_type) : Remove. + (TYPE_TAG_NAME): Remove. + * gdbtypes.c (type_name_no_tag): Simplify. + (check_typedef, check_types_equal, recursive_dump_type) + (copy_type_recursive, arch_composite_type): Update. + * f-typeprint.c (f_type_print_base): Update. Print "Type" prefix + in summary mode when needed. + * eval.c (evaluate_funcall): Update. + * dwarf2read.c (fixup_go_packaging, read_structure_type) + (process_structure_scope, read_enumeration_type) + (read_namespace_type, read_module_type, determine_prefix): Update. + * cp-support.c (inspect_type): Update. + * coffread.c (process_coff_symbol, decode_base_type): Update. + * c-varobj.c (c_is_path_expr_parent): Update. + * c-typeprint.c (c_type_print_base_struct_union): Update. + (c_type_print_base_1): Update. Print struct/class/union/enum in + summary when using C language. + * ax-gdb.c (gen_struct_ref, gen_namespace_elt) + (gen_maybe_namespace_elt): Update. + * ada-lang.c (ada_type_name): Simplify. + (empty_record, ada_template_to_fixed_record_type_1) + (template_to_static_fixed_type) + (to_record_with_fixed_variant_part, ada_check_typedef): Update. + +2018-06-01 Tom Tromey + + * dwarf2read.c (dwarf2_compute_name): Pass CU's language to + c_print_type. + * c-typeprint.c (c_print_type_1): Add "language" parameter. + (c_print_type): Update. + (c_print_type): New overload. + (c_type_print_varspec_prefix, c_type_print_args) + (c_type_print_varspec_suffix, c_print_type_no_offsets) + (c_type_print_base_struct_union, c_type_print_base_1) + (cp_type_print_method_args): Add "language" parameter. + (c_type_print_base): Update. + * c-lang.h (c_print_type): Add new overload. + +2018-06-01 Tom Tromey + + * typeprint.h (c_type_print_varspec_suffix): Don't declare. + * c-typeprint.c (c_type_print_varspec_suffix): Now static. + +2018-06-01 Alan Hayward + + * aarch64-tdep.c (aarch64_sve_register_names): New const + var. + * arch/aarch64.h (enum aarch64_regnum): Add SVE entries. + (AARCH64_SVE_Z_REGS_NUM): New define. + (AARCH64_SVE_P_REGS_NUM): Likewise. + (AARCH64_SVE_NUM_REGS): Likewise. + +2018-05-31 Uros Bizjak + + * nat/linux-ptrace.h [__alpha__] + (GDB_ARCH_IS_TRAP_BRKPT, GDB_ARCH_IS_TRAP_HWBKPT): Remove + definitions. + +2018-05-31 Maciej W. Rozycki + + * arch-utils.c (gdbarch_info_fill): Set `default_byte_order' to + the endianness selected. + * NEWS: Document `set endian auto' mode operation update. + +2018-05-31 Alan Hayward + + * Makefile.in: Add new header. + * gdb/arch/aarch64.h (sve_vg_from_vl): New macro. + (sve_vl_from_vg): Likewise. + (sve_vq_from_vl): Likewise. + (sve_vl_from_vq): Likewise. + (sve_vq_from_vg): Likewise. + (sve_vg_from_vq): Likewise. + * configure.nat: Add new c file. + * nat/aarch64-sve-linux-ptrace.c: New file. + * nat/aarch64-sve-linux-ptrace.h: New file. + +2018-05-31 Alan Hayward + + * aarch64-linux-nat.c (aarch64_linux_read_description): + Add parmeter zero. + * aarch64-linux-tdep.c (aarch64_linux_core_read_description): + Likewise. + * aarch64-tdep.c (tdesc_aarch64_list): Add. + (aarch64_read_description): Use VQ to index tdesc_aarch64_list. + (aarch64_gdbarch_init): Add parmeter zero. + * aarch64-tdep.h (aarch64_read_description): Add VQ parmeter. + * arch/aarch64.c (aarch64_create_target_description): Check VQ. + * arch/aarch64.h (aarch64_create_target_description): Add VQ. + parmeter. + * doc/gdb.texinfo: Describe SVE feature + * features/aarch64-sve.c: New file. + +2018-05-31 Omair Javaid + + PR gdb/23210 + * gdbarch.sh (significant_addr_bit): Default to zero when + not set by target architecture. + * gdbarch.c: Re-generated. + * utils.c (address_significant): Update. + +2018-05-30 Joel Brobecker + + * stack.c (func_command): Remove trailing newline in call to error. + +2018-05-30 Simon Marchi + + * regcache.h (regcache_raw_collect): Remove, update callers to + use regcache::raw_collect. + * regcache.c (regcache_raw_collect): Remove. + +2018-05-30 Simon Marchi + + * regcache.h (regcache_raw_supply): Remove, update callers to + use detached_regcache::raw_supply. + * regcache.c (regcache_raw_supply): Remove. + +2018-05-30 Simon Marchi + + * regcache.h (regcache_cooked_write_part): Remove, update + callers to use regcache::cooked_write_part. + * regcache.c (regcache_cooked_write_part): Remove. + +2018-05-30 Simon Marchi + + * regcache.h (regcache_cooked_read_part): Remove, update callers + to use readable_regcache::cooked_read_part. + * regcache.c (regcache_cooked_read_part): Remove. + +2018-05-30 Simon Marchi + + * regcache.h (regcache_cooked_read_value): Remove, update + callers to use readable_regcache::cooked_read_value. + * regcache.c (regcache_cooked_read_value): Remove. + +2018-05-30 Simon Marchi + + * regcache.h (regcache_cooked_write): Remove, update callers to + use regcache::cooked_write. + * regcache.c (regcache_cooked_write): Remove. + +2018-05-30 Simon Marchi + + * regcache.h (regcache_invalidate): Remove, update callers to + use detached_regcache::invalidate instead. + * regcache.c (regcache_invalidate): Remove. + +2018-05-30 Simon Marchi + + * regcache.h (regcache_raw_write_part): Remove, update callers + to use regcache::raw_write_part instead. + * regcache.c (regcache_raw_write_part): Remove. + +2018-05-30 Simon Marchi + + * regcache.h (regcache_raw_read_part): Remove, update callers to + use readable_regcache::raw_read_part instead. + * regcache.c (regcache_raw_read_part): Remove. + +2018-05-30 Simon Marchi + + * regcache.h (regcache_cooked_read): Remove, update callers to + use readable_regcache::cooked_read instead. + * regcache.c (regcache_cooked_read): Remove. + +2018-05-30 Simon Marchi + + * regcache.h (regcache_raw_write): Remove, update callers to use + regcache::raw_write instead. + * regcache.c (regcache_raw_write): Remove. + +2018-05-30 Simon Marchi + + * regcache.h (regcache_raw_read): Remove, update callers to use + readable_regcache::raw_read instead. + * regcache.c (regcache_raw_read): Remove. + +2018-05-30 Simon Marchi + + * regcache.h (regcache_raw_update): Remove, update callers to + use readable_regcache::raw_update instead. + * regcache.c (regcache_raw_update): Remove. + +2018-05-30 Simon Marchi + + * regcache.h (regcache_register_status): Remove, update callers + to use reg_buffer::get_register_status directly instead. + * regcache.c (regcache_register_status): Remove. + +2018-05-30 Simon Marchi + + * regcache.h (regcache_get_ptid): Remove, update all callers to + call regcache::ptid instead. + * regcache.c (regcache_get_ptid): Remove. + +2018-05-30 Simon Marchi + + * Makefile.in (ALL_TARGET_OBS): Add or1k-tdep.o. + +2018-05-30 Pedro Alves + + * common/common-exceptions.h (exception_rethrow): Use + ATTRIBUTE_NORETURN. + +2018-05-29 Simon Marchi + + * breakpoint.c (print_solib_event, check_status_catch_solib): + Remove struct keyword in range-based for loops. + * dbxread.c (find_corresponding_bincl_psymtab): Likewise. + * dwarf2read.c (compute_delayed_physnames, rust_union_quirks); + Likewise. + * linespec.c (find_superclass_methods, search_minsyms_for_name): + Likewise. + * symfile.c (addr_info_make_relative): Likewise. + * thread.c (value_in_thread_stack_temporaries): Likewise. + +2018-06-12 Weimin Pan + + PR gdb/16841 + * valops.c (value_struct_elt_for_reference): Call check_typedef on + aggregate type to get its real type before accessing it. + +2018-05-29 Weimin Pan + + * minsyms.h (lookup_minimal_symbol_and_objfile): Remove declaration. + * minsyms.c (lookup_minimal_symbol_and_objfile): Remove definition. + * coff-pe-read.c (add_pe_forwarded_sym): Replace + lookup_minimal_symbol_and_objfile with lookup_bound_minimal_symbol. + * glibc-tdep.c (glibc_skip_solib_resolver): Likewise. + * jit.c (jit_breakpoint_re_set_internal): Likewise. + * printcmd.c (info_address_command): Likewise. + +2018-05-29 Tom Tromey + + * windows-nat.c (handle_exception): Update fall-through comment. + +2018-05-29 Tom Tromey + + * progspace.h (so_list_ptr): Remove typedef. Don't declare VEC. + (struct program_space) : Now a std::vector. + * breakpoint.c (print_solib_event): Update. + (check_status_catch_solib): Update. + * progspace.c (clear_program_space_solib_cache): Update. + * solib.c (update_solib_list): Update. + +2018-05-29 Tom Tromey + + * python/py-type.c (typy_richcompare): Update. + * guile/scm-type.c (tyscm_equal_p_type_smob): Update. + * gdbtypes.h (types_deeply_equal): Return bool. + (types_equal): Likewise. + * gdbtypes.c (type_equality_entry_d): Remove typedef. Don't + declare VEC. + (check_types_equal): Change worklist to std::vector. Return + bool. + (struct type_equality_entry): Add constructor. + (compare_maybe_null_strings): Return bool. + (check_types_worklist): Return bool. Change worklist to + std::vector. + (types_deeply_equal): Use std::vector. + (types_equal): Return bool. + (compare_maybe_null_strings): Simplify. + +2018-05-29 Tom Tromey + + * record-btrace.c (tp_t): Remove typedef. Don't declare VEC. + +2018-05-29 Tom Tromey + + * objc-lang.h: Don't include cp-support.h. + * common/gdb_vecs.h (const_char_ptr): Remove typedef. Don't + declare VEC. + +2018-05-27 Tom Tromey + + * Makefile.in (DEPFILES): Don't reference REMOTE_OBS. + +2018-05-25 Tom Tromey + + * value.c (value::location): Initialize. + +2018-05-25 Tom Tromey + + * dbxread.c (init_bincl_list): Remove. + (bincl_list): Now a std::vector. + (bincls_allocated, next_bincl): Remove. + (free_bincl_list, do_free_bincl_list_cleanup) + (make_cleanup_free_bincl_list): Remove. + (dbx_read_symtab, elfstab_build_psymtabs): Use scoped_restore, + unique_xmalloc_ptr. + (find_corresponding_bincl_psymtab, read_dbx_symtab): Update. + (struct header_file_location): Add constructor. + (add_bincl_to_list): Remove. + +2018-05-25 Tom Tromey + + * tui/tui.c (tui_enable): Update. + * mi/mi-interp.c (mi_interp::init): Update. + * interps.h (class interp) : New method. + : Rename from name. + (~scoped_restore_interp): Update. + * interps.c (interp::interp): Update. + (interp_add, interp_set, interp_lookup_existing) + (current_interp_named_p): Update. + +2018-05-25 Tom Tromey + + * interps.c (interp_name): Remove. + * mi/mi-interp.c (mi_interp::init): Update. + * interps.h (interp_name): Remove. + (~scoped_restore_interp): Update. + * tui/tui.c (tui_enable): Update. + +2018-05-25 Tom Tromey + + * utils.c (fputs_maybe_filtered): Update. + * linespec.c (decode_line_full): Update. + * mi/mi-interp.c (mi_on_normal_stop_1, mi_tsv_modified) + (mi_print_breakpoint_for_event, mi_solib_loaded) + (mi_solib_unloaded, mi_command_param_changed, mi_memory_changed) + (mi_user_selected_context_changed): Update. + * mi/mi-main.c (mi_execute_command): Update. + * cli/cli-script.c (execute_control_command): Update. + * python/python.c (execute_gdb_command): Update. + * solib.c (info_sharedlibrary_command): Update. + * interps.c (interp_ui_out): Remove. + * interps.h (interp_ui_out): Remove. + +2018-05-25 Tom Tromey + + * tui/tui-interp.c (as_tui_interp): Use dynamic_cast. + * mi/mi-interp.c (as_mi_interp): Use dynamic_cast. + * cli/cli-interp.c (as_cli_interp): Use dynamic_cast. + +2018-05-25 Tom Tromey + + * cli/cli-interp.c (safe_execute_command): Use scoped_restore. + * interps.c (interp_exec): Use scoped_restore. + +2018-05-25 Tom Tromey + + * remote.c (remote_target::remote_file_get): Use + gdb::byte_vector. + (remote_target::remote_file_put): Likewise. + +2018-05-25 Tom Tromey + + * coff-pe-read.c (struct read_pe_section_data) : Now + a std::string. + (get_pe_section_index, add_pe_exported_sym): Update. + (read_pe_exported_syms): Use gdb::def_vector. + +2018-05-25 Tom Tromey + + * frame.c (remove_prev_frame): Remove. + (get_prev_frame_if_no_cycle): Use TRY/CATCH. + +2018-05-25 Maciej W. Rozycki + + * mips-linux-tdep.h (mips_supply_fpregset, mips_fill_fpregset): + Remove prototypes. + * mips-linux-nat.c (supply_fpregset): Always call + `mips64_supply_fpregset' rather than `mips_supply_fpregset'. + (fill_fpregset): Always call `mips64_fill_fpregset' rather than + `mips_fill_fpregset'. + * mips-linux-tdep.c (mips_supply_fpregset) + (mips_supply_fpregset_wrapper, mips_fill_fpregset) + (mips_fill_fpregset_wrapper): Remove functions. + (mips64_supply_fpregset, mips64_fill_fpregset): Update comments. + (mips_linux_fpregset): Remove variable. + (mips_linux_iterate_over_regset_sections): Use + `mips64_linux_fpregset' in place of `mips_linux_fpregset'. + (mips_linux_o32_sigframe_init): Remove comment. + +2018-05-25 Pedro Alves + + * remote.c (struct vCont_action_support, MAXTHREADLISTRESULTS) + (struct readahead_cache, struct packet_reg, struct + remote_arch_state, class remote_state): Move higher up in the + file. + (remote_target::m_remote_state): Now an object instead of a pointer. + (remote_target::get_remote_state): Adjust. + +2018-05-24 Andrew Burgess + + * stack.c (select_and_print_frame): Delete. + (struct function_bounds): Move struct within function. + (func_command): Most content moved into new function + find_frame_for_function, use new function, print result, add + function comment. + (find_frame_for_function): New function, now returns a result. + +2018-05-24 Philippe Waroquiers + + * stack.c (iterate_over_block_arg_vars): Fix comment. + (print_frame_arg_vars): Pass stream in cb_data, not gdb_stdout. + +2018-05-24 Andrew Burgess + + PR gdb/23203 + * frame.c + (scoped_restore_selected_frame::scoped_restore_selected_frame): + Define. + (scoped_restore_selected_frame::~scoped_restore_selected_frame): + Define. + * frame.h (class scoped_restore_selected_frame): New class. + * stack.c (print_frame_local_vars): Remove catching and rethrowing + of any exception, use scoped_restore_selected_frame to restore the + frame instead. + +2018-05-24 Pedro Alves + + * darwin-nat.h (darwin_nat_target::create_inferior): Mark with + override. + +2018-05-23 Tom Tromey + + * complaints.c (struct complaints): Remove. + (symfile_complaint_book): Remove. + (series): New global. + (complaint_internal): Update. + (clear_complaints): Update. + +2018-05-23 Tom Tromey + + * complaints.c (counters): New global. + (struct complain): Remove. + (struct complaints) : Remove. + (complaint_sentinel): Remove. + (symfile_complaint_book): Update. + (find_complaint) Remove. + (complaint_internal, clear_complaints): Update. + +2018-05-23 Tom Tromey + + * complaints.c (struct complain) : Remove. + (find_complaint): Remove file, line parameters. + (complaint_internal): Update. + +2018-05-23 Tom Tromey + + * complaints.c (vcomplaint): Remove. + (complaint_internal) Merge in contents of vcomplaint. + +2018-05-23 Tom Tromey + + * complaints.c (struct complaints) : Remove. + (symfile_explanations): Remove. + (symfile_complaint_book): Update. + (vcomplaint): Update. + (struct explanation): Remove. + +2018-05-23 Tom Tromey + + * complaints.c (symfile_complaints): Remove. + (complaint_internal): Remove "complaints" parameter. + (clear_complaints, vcomplaint): Remove "c" parameter. + (get_complaints): Remove. + * dwarf2read.c (dwarf2_statement_list_fits_in_line_number_section_complaint) + (dwarf2_debug_line_missing_file_complaint) + (dwarf2_debug_line_missing_end_sequence_complaint) + (dwarf2_complex_location_expr_complaint) + (dwarf2_const_value_length_mismatch_complaint) + (dwarf2_section_buffer_overflow_complaint) + (dwarf2_macro_malformed_definition_complaint) + (dwarf2_invalid_attrib_class_complaint) + (create_addrmap_from_index, dw2_symtab_iter_next) + (dw2_expand_marked_cus) + (dw2_debug_names_iterator::find_vec_in_debug_names) + (dw2_debug_names_iterator::next, dw2_debug_names_iterator::next) + (create_debug_type_hash_table, init_cutu_and_read_dies) + (partial_die_parent_scope, add_partial_enumeration) + (skip_one_die, fixup_go_packaging, quirk_rust_enum, process_die) + (dwarf2_compute_name, dwarf2_physname, read_namespace_alias) + (read_import_statement, read_file_scope, create_dwo_cu_reader) + (create_cus_hash_table, create_dwp_hash_table) + (inherit_abstract_dies, read_func_scope, read_call_site_scope) + (dwarf2_rnglists_process, dwarf2_ranges_process) + (dwarf2_add_type_defn, dwarf2_attach_fields_to_type) + (dwarf2_add_member_fn, get_alignment, maybe_set_alignment) + (handle_struct_member_die, process_structure_scope) + (read_array_type, read_common_block, read_module_type) + (read_tag_pointer_type, read_typedef, read_base_type) + (read_subrange_type, load_partial_dies, partial_die_info::read) + (partial_die_info::read, partial_die_info::read) + (partial_die_info::read, read_checked_initial_length_and_offset) + (dwarf2_string_attr, read_formatted_entries) + (dwarf_decode_line_header) + (lnp_state_machine::check_line_address, dwarf_decode_lines_1) + (new_symbol, dwarf2_const_value_attr, lookup_die_type) + (read_type_die_1, determine_prefix, dwarf2_get_ref_die_offset) + (dwarf2_get_attr_constant_value, dwarf2_fetch_constant_bytes) + (get_signatured_type, get_DW_AT_signature_type) + (decode_locdesc, file_file_name, consume_improper_spaces) + (skip_form_bytes, skip_unknown_opcode, dwarf_parse_macro_header) + (dwarf_decode_macro_bytes, dwarf_decode_macros) + (dwarf2_symbol_mark_computed, set_die_type) + (read_attribute_value): Update. + * stap-probe.c (handle_stap_probe, get_stap_base_address): + Update. + * dbxread.c (unknown_symtype_complaint) + (lbrac_mismatch_complaint, repeated_header_complaint) + (set_namestring, function_outside_compilation_unit_complaint) + (read_dbx_symtab, process_one_symbol): Update. + * gdbtypes.c (stub_noname_complaint): Update. + * windows-nat.c (handle_unload_dll): Update. + * coffread.c (coff_symtab_read, enter_linenos, decode_type) + (decode_base_type): Update. + * xcoffread.c (bf_notfound_complaint, ef_complaint) + (eb_complaint, record_include_begin, record_include_end) + (enter_line_range, xcoff_next_symbol_text, read_xcoff_symtab) + (process_xcoff_symbol, read_symbol) + (function_outside_compilation_unit_complaint) + (scan_xcoff_symtab): Update. + * machoread.c (macho_symtab_read, macho_add_oso_symfile): Update. + * buildsym.c (finish_block_internal, make_blockvector) + (end_symtab_get_static_block, augment_type_symtab): Update. + * dtrace-probe.c (dtrace_process_dof) + (dtrace_static_probe_ops::get_probes): Update. + * complaints.h (struct complaint): Don't declare. + (symfile_complaints): Remove. + (complaint_internal): Remove "complaints" parameter. + (complaint): Likewise. + (clear_complaints): Likewise. + * symfile.c (syms_from_objfile_1, finish_new_objfile) + (reread_symbols): Update. + * dwarf2-frame.c (dwarf2_restore_rule, execute_cfa_program) + (dwarf2_frame_cache, decode_frame_entry): Update. + * dwarf2loc.c (dwarf_reg_to_regnum): Update. + * objc-lang.c (lookup_objc_class, lookup_child_selector) + (info_selectors_command): Update. + * macrotab.c (macro_include, check_for_redefinition) + (macro_undef): Update. + * objfiles.c (filter_overlapping_sections): Update. + * stabsread.c (invalid_cpp_abbrev_complaint) + (reg_value_complaint, stabs_general_complaint, dbx_lookup_type) + (define_symbol, error_type, read_type, rs6000_builtin_type) + (stabs_method_name_from_physname, read_member_functions) + (read_cpp_abbrev, read_baseclasses, read_tilde_fields) + (attach_fields_to_type, complain_about_struct_wipeout) + (read_range_type, read_args, common_block_start) + (common_block_end, cleanup_undefined_types_1, scan_file_globals): + Update. + * mdebugread.c (index_complaint, unknown_ext_complaint) + (basic_type_complaint, bad_tag_guess_complaint) + (bad_rfd_entry_complaint, unexpected_type_code_complaint) + (reg_value_complaint, parse_symbol, parse_type, upgrade_type) + (parse_procedure, parse_lines) + (function_outside_compilation_unit_complaint) + (parse_partial_symbols, psymtab_to_symtab_1, cross_ref) + (bad_tag_guess_complaint, reg_value_complaint): Update. + * cp-support.c (demangled_name_complaint): Update. + * macroscope.c (sal_macro_scope): Update. + * dwarf-index-write.c (class debug_names): Update. + +2018-05-23 Tom Tromey + + * complaints.c (clear_complaints): Remove "noisy" parameter. + * complaints.h (clear_complaints): Update. + * symfile.c (syms_from_objfile_1, finish_new_objfile) + (reread_symbols): Update. + +2018-05-23 Tom Tromey + + * complaints.c (enum complaint_series): Remove FIRST_MESSAGE, + SUBSEQUENT_MESSAGE. + (vcomplaint, clear_complaints): Update. + (symfile_explanations): Remove some messages. + +2018-05-23 Tom Tromey + + * complaints.c (internal_complaint): Remove. + * complaints.h (internal_complaint): Remove. + +2018-05-22 Maciej W. Rozycki + + * i387-tdep.c (i387_collect_xsave): Make `i' unsigned. + +2018-05-22 Pedro Alves + + * remote-fileio.c (remote_fileio_reply, remote_fileio_ioerror) + (remote_fileio_badfd, remote_fileio_return_errno) + (remote_fileio_return_success, remote_fileio_func_open) + (remote_fileio_func_open, remote_fileio_func_close) + (remote_fileio_func_read, remote_fileio_func_write) + (remote_fileio_func_lseek, remote_fileio_func_rename) + (remote_fileio_func_unlink, remote_fileio_func_stat) + (remote_fileio_func_fstat, remote_fileio_func_gettimeofday) + (remote_fileio_func_isatty, remote_fileio_func_system): Add + remote_target parameter. + (remote_fio_func_map) : Add remote_target parameter. + (do_remote_fileio_request, remote_fileio_request): + * remote-fileio.h (remote_fileio_request): + * remote-notif.c (remote_notif_ack, remote_notif_parse, ): Add + remote_target parameter. + (remote_notif_process, handle_notification): Adjust to pass down + the remote. + (remote_notif_state_allocate): Add remote_target parameter. Save + it. + * remote-notif.h (struct remote_target): Forward declare. + (struct notif_client) : Add + remote_target parameter. + (struct remote_notif_state) : New field. + (remote_notif_ack, remote_notif_parse): Add remote_target + parameter. + (remote_notif_state_allocate, remote_notif_state_allocate): Add + remote_target parameter. + * remote.c (OPAQUETHREADBYTES, threadref, gdb_ext_thread_info) + (threads_listing_context, rmt_thread_action, protocol_feature) + (packet_reg, stop_reply, stop_reply_p, enum packet_support) + (packet_result, struct threads_listing_context, remote_state): + Move definitions and declarations higher up. + (remote_target) <~remote_target>: Declare. + (remote_download_command_source, remote_file_put, remote_file_get) + (remote_file_delete, remote_hostio_pread, remote_hostio_pwrite) + (remote_hostio_pread_vFile, remote_hostio_send_command) + (remote_hostio_set_filesystem, remote_hostio_open) + (remote_hostio_close, remote_hostio_unlink, remote_state) + (get_remote_state, get_remote_packet_size, get_memory_packet_size) + (get_memory_write_packet_size, get_memory_read_packet_size) + (append_pending_thread_resumptions, remote_detach_1) + (append_resumption, remote_resume_with_vcont) + (add_current_inferior_and_thread, wait_ns, wait_as) + (process_stop_reply, remote_notice_new_inferior) + (process_initial_stop_replies, remote_add_thread) + (btrace_sync_conf, remote_btrace_maybe_reopen) + (remove_new_fork_children, kill_new_fork_children) + (discard_pending_stop_replies, stop_reply_queue_length) + (check_pending_events_prevent_wildcard_vcont) + (discard_pending_stop_replies_in_queue, stop_reply) + (remote_notif_remove_queued_reply, stop_reply *queued_stop_reply) + (peek_stop_reply, remote_parse_stop_reply, remote_stop_ns) + (remote_interrupt_as, remote_interrupt_ns) + (remote_get_noisy_reply, remote_query_attached) + (remote_add_inferior, remote_current_thread, get_current_thread) + (set_thread, set_general_thread, set_continue_thread) + (set_general_process, write_ptid) + (remote_unpack_thread_info_response, remote_get_threadinfo) + (parse_threadlist_response, remote_get_threadlist) + (remote_threadlist_iterator, remote_get_threads_with_ql) + (remote_get_threads_with_qxfer) + (remote_get_threads_with_qthreadinfo, extended_remote_restart) + (get_offsets, remote_check_symbols, remote_supported_packet) + (remote_query_supported, remote_packet_size) + (remote_serial_quit_handler, remote_detach_pid) + (remote_vcont_probe, remote_resume_with_hc) + (send_interrupt_sequence, interrupt_query) + (remote_notif_get_pending_events, fetch_register_using_p) + (send_g_packet, process_g_packet, fetch_registers_using_g) + (store_register_using_P, store_registers_using_G) + (set_remote_traceframe, check_binary_download) + (remote_write_bytes_aux, remote_write_bytes, remote_read_bytes_1) + (remote_xfer_live_readonly_partial, remote_read_bytes) + (remote_send_printf, remote_flash_write, readchar) + (remote_serial_write, putpkt, putpkt_binary, skip_frame) + (read_frame, getpkt, getpkt_or_notif_sane_1, getpkt_sane) + (getpkt_or_notif_sane, remote_vkill, remote_kill_k) + (extended_remote_disable_randomization, extended_remote_run) + (send_environment_packet, extended_remote_environment_support) + (extended_remote_set_inferior_cwd, remote_write_qxfer) + (remote_read_qxfer, push_stop_reply, vcont_r_supported) + (packet_command): Now methods of ... + (remote_target): ... this class. + (m_remote_state) : New field. + (struct remote_state) : New + fields. + (remote_state::remote_state): Allocate stop_reply_queue. + (remote_state): Delete global. + (get_remote_state_raw): Delete. + (remote_target::get_remote_state): Allocate m_remote_state on + demand. + (get_current_remote_target): New. + (remote_ops, extended_remote_ops): Delete. + (wait_forever_enabled_p, remote_async_inferior_event_token): + Delete, moved to struct remote_state. + (remote_target::close): Delete self. Destruction bits split to + ... + (remote_target::~remote_target): ... this. + (show_memory_packet_size): Adjust to use + get_current_remote_target. + (struct protocol_feature) : Add remote_target parameter. + All callers adjusted. + (curr_quit_handler_target): New. + (remote_serial_quit_handler): Reimplement. + (remote_target::open_1): Adjust to use get_current_remote_target. + Heap-allocate remote_target/extended_remote_target instances. + (vcont_builder::vcont_builder): Add remote_target parameter, and + save it in m_remote. All callers adjusted. + (vcont_builder::m_remote): New field. + (vcont_builder::restart, vcont_builder::flush) + (vcont_builder::push_action): Use it. + (remote_target::commit_resume): Use it. + (struct queue_iter_param) : New field. + (remote_target::remove_new_fork_children): Fill in 'remote' field. + (check_pending_event_prevents_wildcard_vcont_callback_data): New. + (check_pending_event_prevents_wildcard_vcont_callback) + (remote_target::check_pending_events_prevent_wildcard_vcont) + (remote_target::discard_pending_stop_replies) + (remote_target::discard_pending_stop_replies_in_queue) + (remote_target::remote_notif_remove_queued_reply): Fill in + 'remote' field. + (remote_notif_get_pending_events): New. + (remote_target::readchar, remote_target::remote_serial_write): + Save/restore curr_quit_handler_target. + (putpkt): New. + (kill_new_fork_children): Fill in 'remote' field. + (packet_command): Use get_current_remote_target, defer to + remote_target method of same name. + (scoped_remote_fd::scoped_remote_fd): Add 'remote_target' + parameter, and save it in m_remote. All callers adjusted. + (scoped_remote_fd::release): Use m_remote. + (scoped_remote_fd::m_remote): New field. + (remote_file_put, remote_file_get, remote_file_delete): Use + get_current_remote_target, defer to remote_target method of same + name. + (remote_btrace_reset): Add remote_state paremeter. Update all + callers. + (remote_async_inferior_event_handler). Pass down 'data'. + (remote_new_objfile): Use get_current_remote_target. + (remote_target::vcont_r_supported): New. + (set_range_stepping): Use get_current_remote_target and + remote_target::vcont_r_supported. + (_initialize_remote): Don't allocate 'remote_state' and + 'stop_reply_queue' globals. + * remote.h (struct remote_target): Forward declare. + (getpkt, putpkt, remote_notif_get_pending_events): Add + 'remote_target' parameter. + +2018-05-22 Pedro Alves + + * remote.c (vcont_builder): Now a class. Make all data members + private. + (vcont_builder) : + Declare methods. + (vcont_builder_restart): Rename to ... + (vcont_builder::restart): ... this. + (vcont_builder_flush): Rename to ... + (vcont_builder::flush): ... this. + (vcont_builder_push_action): Rename to ... + (vcont_builder::push_action): ... this. + (remote_target::commit_resume): Adjust. + +2018-05-22 Pedro Alves + + * remote.c (DEFAULT_MAX_MEMORY_PACKET_SIZE): Rename to ... + (DEFAULT_MAX_MEMORY_PACKET_SIZE_FIXED): ... this. + (get_fixed_memory_packet_size): New. + (get_memory_packet_size): Use it. + (set_memory_packet_size): Don't override the config size with + DEFAULT_MAX_MEMORY_PACKET_SIZE. + (show_memory_packet_size): Use get_fixed_memory_packet_size. + Don't refer to get_memory_packet_size if not connected to a remote + target. Show "(default)" if configured size is 0. + +2018-05-22 Pedro Alves + + * remote.c (remote_target::mourn_inferior): Move + discard_pending_stop_replies call here from ... + (_initialize_remote): ... here. + +2018-05-22 Pedro Alves + + * remote.c (compare_section_command): Remove set_general_process + call. + +2018-05-22 Pedro Alves + + * remote.c (struct packet_reg, struct remote_arch_state): + Move higher up in the file. + (remote_state) : Store remote_arch_state values + instead of remote_arch_state pointers. + (remote_state::get_remote_arch_state): Adjust. + +2018-05-22 Pedro Alves + + * remote.c: Include . + (remote_state): Now a class. + (remote_state) : Declare method. + : New field. + (remote_arch_state) : Declare ctor. + : Now a unique_ptr. + (remote_gdbarch_data_handle): Delete. + (get_remote_arch_state): Delete. + (remote_state::get_remote_arch_state): New. + (get_remote_state): Adjust to call remote_state's + get_remote_arch_state method. + (init_remote_state): Delete, bits factored out to ... + (remote_arch_state::remote_arch_state): ... this new method. + (get_remote_packet_size, get_memory_packet_size) + (process_g_packet, remote_target::fetch_registers) + (remote_target::prepare_to_store, store_registers_using_G) + (remote_target::store_registers, remote_target::get_trace_status): + Adjust to call remote_state's method. + (_initialize_remote): Remove reference to + remote_gdbarch_data_handle. + +2018-05-22 Pedro Alves + + * remote.c (struct readahead_cache) : New method declarations. + (remote_target::open_1): Adjust. + (readahead_cache_invalidate): Rename to ... + (readahead_cache::invalidate): ... this, and adjust to be a class + method. + (readahead_cache_invalidate_fd): Rename to ... + (readahead_cache::invalidate_fd): ... this, and adjust to be a + class method. + (remote_hostio_pwrite): Adjust. + (remote_hostio_pread_from_cache): Rename to ... + (readahead_cache::pread): ... this, and adjust to be a class + method. + (remote_hostio_close): Adjust. + +2018-05-22 Pedro Alves + + * remote.c (remote_hostio_close_cleanup): Delete. + (class scoped_remote_fd): New. + (remote_file_put, remote_file_get): Use it. + +2018-05-22 Pedro Alves + + (struct vCont_action_support): Use bool and initialize all fields. + (struct readahead_cache): Initialize all fields. + (remote_state): Use bool and initialize all fields. + (remote_state::remote_state, remote_state::~remote_state): New. + (new_remote_state): Delete. + (_initialize_remote): Use new to allocate remote_state. + +2018-05-22 Pedro Alves + å¼µä¿ŠèŠ + + PR gdb/22973 + * c-exp.y: Include "c-support.h". + (parse_number, c_parse_escape, lex_one_token): Use TOLOWER instead + of tolower. Use c_ident_is_alpha to scan names. + * c-lang.c: Include "c-support.h". + (convert_ucn, convert_octal, convert_hex, convert_escape): Use + ISXDIGIT instead of isxdigit and ISDIGIT instead of isdigit. + * c-support.h: New file, with bits factored out from ... + * cp-name-parser.y: ... this file. + Include "c-support.h". + (cp_ident_is_alpha, cp_ident_is_alnum): Deleted, moved to + c-support.h and renamed. + (symbol_end, yylex): Adjust. + +2018-05-22 Pedro Franco de Carvalho + + * arch/ppc-linux-common.c (ppc_linux_has_isa205): Change the + parameter type to CORE_ADDR. + * arch/ppc-linux-common.h (ppc_linux_has_isa205): Change the + parameter type in declaration to CORE_ADDR. + * ppc-linux-tdep.c (ppc_linux_core_read_description): Call + target_auxv_search to get AT_HWCAP and use the result to get the + target description. + * ppc-linux-nat.c (ppc_linux_get_hwcap): Change the return type + to CORE_ADDR. Remove the cast of the return value to unsigned + long. Fix error predicate of target_auxv_search. + (ppc_linux_nat_target::read_description): Change the type of the + hwcap variable to CORE_ADDR. + +2018-05-22 Pedro Franco de Carvalho + + * rs6000-tdep.c (rs6000_gdbarch_init): Assign 1 to have_dfp only + if the size of fpscr is larger than 32 bits. + +2018-05-22 Pedro Franco de Carvalho + + * ppc-linux-tdep.c (ppc_linux_vsxregset): New function. + (ppc32_linux_vsxregmap): New global. + (ppc32_linux_vsxregset): Initialize with ppc32_linux_vsxregmap, + regcache_supply_regset, and regcache_collect_regset. + * ppc-linux-tdep.h (ppc_linux_vsxregset): Declare. + * ppc-linux-nat.c (supply_vsxregset, fill_vsxregset): Remove. + (fetch_vsx_register, store_vsx_register): Remove. + (fetch_vsx_registers): Add regno parameter. Get regset using + ppc_linux_vsxregset. Use regset to supply registers. + (store_vsx_registers): Add regno parameter. Get regset using + ppc_linux_vsxregset. Use regset to collect registers. + (fetch_register): Call fetch_vsx_registers instead of + fetch_vsx_register. + (store_register): Call store_vsx_registers instead of + store_vsx_register. + (fetch_ppc_registers): Call fetch_vsx_registers with -1 for the + new regno parameter. + (store_ppc_registers): Call store_vsx_registers with -1 for the + new regno parameter. + * rs6000-tdep.c (ppc_vsx_support_p, ppc_supply_vsxreget) + (ppc_collect_vsxregset): Remove. + +2018-05-22 Pedro Franco de Carvalho + + * ppc-tdep.h (struct ppc_reg_offsets): Remove vector register + offset fields. + * ppc-fbsd-tdep.c (ppc32_fbsd_reg_offsets): Remove initializers + for vector register offset fields. + (ppc64_fbsd_reg_offsets): Likewise. + * ppc-nbsd-tdep.c (_initialize_ppcnbsd_tdep): Remove assignment + to vector register offset fields. + * ppc-obsd-tdep.c (_initialize_ppcnbsd_tdep): Remove assignment + to vector register offset fields. + * ppc-obsd-nat.c (_initialize_ppcobsd_nat): Remove assignment to + vector register offset fields. + * rs6000-aix-tdep.c (rs6000_aix32_reg_offsets): Remove + initializers for vector register offset fields. + (rs6000_aix64_reg_offsets): Likewise. + * rs6000-tdep.c (ppc_vrreg_offset): Remove. + (ppc_supply_vrregset): Remove. + (ppc_collect_vrregset): Remove. + * ppc-linux-tdep.c (ppc_linux_collect_vrregset): New function. + (ppc_linux_vrregset) : New function. + (ppc32_le_linux_vrregmap, ppc32_be_linux_vrregmap) + (ppc32_le_linux_vrregset, ppc32_be_linux_vrregset): New globals. + (ppc32_linux_vrregset): Remove. + (ppc_linux_iterate_over_regset_sections): Call ppc_linux_vrregset + and use result instead of ppc32_linux_vrregset. + (ppc32_linux_reg_offsets): Remove initializers for vector register + offset fields. + (ppc64_linux_reg_offsets): Likewise. + * ppc-linux-tdep.h (ppc_linux_vrregset): New declaration. + * ppc-linux-nat.c: Include regset.h. + (gdb_vrregset_t): Adjust comment to account for little-endian + mode. + (supply_vrregset, fill_vrregset): Remove. + (fetch_altivec_register, store_altivec_register): Remove. + (fetch_altivec_registers): Add regno parameter. Get regset using + ppc_linux_vrregset. Use regset to supply registers. + (store_altivec_registers): Add regno parameter. Get regset using + ppc_linux_vrregset. Use regset to collect registers. + (fetch_register): Call fetch_altivec_registers instead of + fetch_altivec_register. + (store_register): Call store_altivec_registers instead of + store_altivec_register. + (fetch_ppc_registers): Call fetch_altivec_registers with -1 for + the new regno parameter. + (store_ppc_registers): Call store_altivec_registers with -1 for + the new regno parameter. + +2018-05-22 Pedro Franco de Carvalho + + * arch/ppc-linux-common.h (PPC_LINUX_SIZEOF_VRREGSET) + (PPC_LINUX_SIZEOF_VSXREGSET): Define. + * ppc-linux-nat.c (SIZEOF_VSXREGS, SIZEOF_VRREGS): Remove. + (gdb_vrregset_t): Change array type size to + PPC_LINUX_SIZEOF_VRREGSET. + (gdb_vsxregset_t): Change array type size to + PPC_LINUX_SIZEOF_VSXREGSET. + * ppc-linux-tdep.c (ppc_linux_iterate_over_regset_sections): + Change integer literals to PPC_LINUX_SIZEOF_VRREGSET and + PPC_LINUX_SIZEOF_VSXREGSET. + +2018-05-22 Pedro Franco de Carvalho + + * configure.nat : Add ppc-linux.o to NATDEPFILES. + * ppc-linux-nat.c (ppc_linux_target_wordsize): Move to + nat/ppc-linux.c. + (ppc_linux_nat_target::auxv_parse): Get thread id tid. Call + ppc_linux_target_wordsize with tid. + (ppc_linux_nat_target::read_description): Call ppc_linux_target + wordsize with tid. + * nat/ppc-linux.c: Include nat/gdb_ptrace.h. + (ppc64_64bit_inferior_p): Add static and inline specifiers. + (ppc_linux_target_wordsize): Move here from ppc-linux-nat.c. Add + tid parameter. Remove static specifier. + * nat/ppc-linux.h (ppc64_64bit_inferior_p): Remove declaration. + (ppc_linux_target_wordsize): New declaration. + +2018-05-22 Pedro Franco de Carvalho + + * arch/ppc-linux-common.c: New file. + * arch/ppc-linux-common.h: New file. + * arch/ppc-linux-tdesc.h: New file. + * configure.tgt (powerpc*-*-linux*): Add arch/ppc-linux-common.o. + * Makefile.in (ALL_TARGET_OBS): Add arch/ppc-linux-common.o. + (HFILES_NO_SRCDIR): Add arch/ppc-linux-common.h and + arch/ppc-linux-tdesc.h. + * ppc-linux-nat.c: Include arch/ppc-linux-common.h and + arch/ppc-linux-tdesc.h. + (ppc_linux_nat_target::read_description): Remove target + description matching code. Fill a ppc_linux_features struct and + call ppc_linux_match_description with it. Move comment about ISA + 2.05 to ppc-linux-common.c. + * ppc-linux-tdep.c: Include arch/ppc-linux-common.h and + arch/ppc-linux-tdesc.h. + (ppc_linux_core_read_description): Remove target description + matching code. Fill a ppc_linux_features struct and call + ppc_linux_match_description with it. + * ppc-linux-tdep.h (tdesc_powerpc_32l, tdesc_powerpc_64l) + (tdesc_powerpc_altivec32l, tdesc_powerpc_altivec64l) + (tdesc_powerpc_cell32l, tdesc_powerpc_cell64l) + (tdesc_powerpc_vsx32l, tdesc_powerpc_vsx64l) + (tdesc_powerpc_isa205_32l, tdesc_powerpc_isa205_64l) + (tdesc_powerpc_isa205_altivec32l, tdesc_powerpc_isa205_altivec64l) + (tdesc_powerpc_isa205_vsx32l, tdesc_powerpc_isa205_vsx64l) + (tdesc_powerpc_e500l): Remove. + +2018-05-22 Joel Brobecker + + * ada-lang.c (catch_assert_command): Pass empty string instead + of NULL for excep_string argument. + +2018-05-22 Maciej W. Rozycki + + * mips-linux-nat.c (mips64_linux_register_addr): Return -1 if + the width of the requested register exceeds the width of the + `ptrace' data type. + +2018-05-21 Tom Tromey + + * printcmd.c (output_command): Remove. + (output_command_const): Rename to output_command. + * valprint.h (output_command): Rename from output_command_const. + * tracepoint.c (trace_dump_actions): Call output_command. + +2018-05-21 Tom Tromey + + * mi/mi-cmd-catch.c (mi_cmd_catch_assert) + (mi_cmd_catch_exception, mi_cmd_catch_handlers): Update. + * ada-lang.h (create_ada_exception_catchpoint): Update. + * ada-lang.c (struct ada_catchpoint) : Now a + std::string. + (create_excep_cond_exprs, ~ada_catchpoint) + (should_stop_exception, print_one_exception) + (print_mention_exception, print_recreate_exception): Update. + (ada_get_next_arg): Remove. + (catch_ada_exception_command_split): Use std::string. Change type + of "excep_string", "cond_string". + (catch_ada_exception_command): Update. + (create_ada_exception_catchpoint): Change type of excep_string. + (ada_exception_sal): Remove excep_string parameter. + (~ada_catchpoint): Remove. + +2018-05-21 Tom Tromey + + * ada-lang.c (ada_collect_symbol_completion_matches): Remove + cleanup. + +2018-05-21 Tom Tromey + + * ada-lang.c (ada_exception_message_1, ada_exception_message): + Return unique_xmalloc_ptr. + (print_it_exception): Update. + +2018-05-21 Tom Tromey + + * tracepoint.c (trace_dump_actions): Use std::string. + +2018-05-21 Tom Tromey + + * symfile.c (reread_symbols): Use std::string for original_name. + +2018-05-21 Tom Tromey + + * dwarf2read.c (dwarf2_read_debug_names): Use std::unique_ptr. + (mapped_index_base): Use DISABLE_COPY_AND_ASSIGN. Default + constructor. + +2018-05-20 Simon Marchi + + * common/traits.h (HAVE_IS_TRIVIALLY_COPYABLE): Rename the wrong + instance to... + (HAVE_IS_TRIVIALLY_CONSTRUCTIBLE): ... this. + * objfiles.c (get_objfile_bfd_data): Allocate + objfile_per_bfd_storage with obstack_new when allocating on + obstack. + +2018-05-20 Simon Marchi + + * ada-lang.c (cache_symbol): Use XOBNEW and/or XOBNEWVEC and/or + OBSTACK_ZALLOC. + * dwarf2-frame.c (dwarf2_build_frame_info): Likewise. + * hppa-tdep.c (hppa_init_objfile_priv_data): Likewise. + * mdebugread.c (mdebug_build_psymtabs): Likewise. + (add_pending): Likewise. + (parse_symbol): Likewise. + (parse_partial_symbols): Likewise. + (psymtab_to_symtab_1): Likewise. + (new_psymtab): Likewise. + (elfmdebug_build_psymtabs): Likewise. + * minsyms.c (terminate_minimal_symbol_table): Likewise. + * objfiles.c (get_objfile_bfd_data): Likewise. + (objfile_register_static_link): Likewise. + * psymtab.c (allocate_psymtab): Likewise. + * stabsread.c (read_member_functions): Likewise. + * xcoffread.c (xcoff_end_psymtab): Likewise. + +2018-05-20 Simon Marchi + + * common/traits.h (HAVE_IS_TRIVIALLY_COPYABLE): Define if + compiler supports std::is_trivially_constructible. + * common/poison.h: Include obstack.h. + (IsMallocable): Define to is_trivially_constructible if the + compiler supports it, define to true_type otherwise. + (xobnew): New. + (XOBNEW): Redefine. + (xobnewvec): New. + (XOBNEWVEC): Redefine. + * gdb_obstack.h (obstack_zalloc): New. + (OBSTACK_ZALLOC): Redefine. + (obstack_calloc): New. + (OBSTACK_CALLOC): Redefine. + (obstack_new): New. + * gdbarch.sh: Include gdb_obstack in gdbarch.h. + (gdbarch_obstack): New declaration in gdbarch.h, definition in + gdbarch.c. + (GDBARCH_OBSTACK_CALLOC, GDBARCH_OBSTACK_ZALLOC): Use + obstack_calloc/obstack_zalloc. + (gdbarch_obstack_zalloc): Remove. + * target-descriptions.c (tdesc_data_init): Use obstack_new. + +2018-05-19 Philippe Waroquiers + + * stack.c (backtrace_command_1): Remove useless variable int i. + +2018-05-19 Philippe Waroquiers + + * stack.c (print_frame_info): Fix comment. + +2018-05-18 Tom Tromey + + * dwarf2read.c (struct dwz_file): Add constructor, initializers. + : Now a gdb_bfd_ref_ptr. + (~dwarf2_per_objfile): Update + (dwarf2_get_dwz_file): Use new. + * dwarf2read.h (struct dwarf2_per_objfile) : Now a + unique_ptr. + +2018-05-18 Tom Tromey + + * dwarf2read.h (struct dwarf2_per_objfile) : Now a + unique_ptr. + * dwarf2read.c (struct dwp_file): Add constructor and + initializers. + (open_and_init_dwp_file): Return a unique_ptr. + (dwarf2_per_objfile, create_dwp_hash_table) + (create_dwo_unit_in_dwp_v1, create_dwo_unit_in_dwp_v2) + (lookup_dwo_unit_in_dwp): Update. + (open_and_init_dwp_file, get_dwp_file): Update. + +2018-05-18 Tom Tromey + + * dwarf2read.c (dwarf2_per_objfile): Update. + (struct mapped_index): Add initializers. + (dwarf2_read_index): Use new. + (dw2_symtab_iter_init): Update. + * dwarf2read.h (struct dwarf2_per_objfile) : Now a + unique_ptr. + +2018-05-18 Simon Marchi + + * dwarf2read.c (mapped_index) : Remove. + +2018-05-18 Simon Marchi + + * unittests/format_pieces-selftests.c (test_format_specifier): + Add ARI comments. + +2018-05-18 Tom Tromey + + * c-typeprint.c (maybe_print_hole): New function. + (c_print_type_struct_field_offset): Update. + (c_type_print_base_struct_union): Call maybe_print_hole. + +2018-05-17 Keith Seitz + + * breakpoint.c (build_bpstat_chain): New function, moved from + bpstat_stop_status. + (bpstat_stop_status): Add optional parameter, `stop_chain'. + If no stop chain is passed, call build_bpstat_chain to build it. + * breakpoint.h (build_bpstat_chain): Declare. + (bpstat_stop_status): Move documentation here from breakpoint.c. + * infrun.c (handle_signal_stop): Before eliding inlined frames, + build the stop chain and pass it to skip_inline_frames. + Pass this stop chain to bpstat_stop_status. + * inline-frame.c: Include breakpoint.h. + (stopped_by_user_bp_inline_frame): New function. + (skip_inline_frames): Add parameter `stop_chain'. + Move documention to inline-frame.h. + If non-NULL, use stopped_by_user_bp_inline_frame to determine + whether the frame should be elided. + * inline-frame.h (skip_inline_frames): Add parameter `stop_chain'. + Add moved documentation and update for new parameter. + +2018-05-17 Simon Marchi + + PR cli/14975 + * Makefile.in (SUBDIR_UNITTESTS_SRCS): Add + unittests/format_pieces-selftests.c. + * common/format.h (format_piece) : New. + (format_pieces) : Remove. + * common/format.c (format_pieces::format_pieces): Handle \e. + * unittests/format_pieces-selftests.c: New. + +2018-05-17 Tom Tromey + + PR symtab/23010: + * dwarf2read.c (load_cu, dw2_do_instantiate_symtab) + (dw2_instantiate_symtab): Add skip_partial parameter. + (dw2_find_last_source_symtab, dw2_map_expand_apply) + (dw2_lookup_symbol, dw2_expand_symtabs_for_function) + (dw2_expand_all_symtabs, dw2_expand_symtabs_with_fullname) + (dw2_expand_symtabs_matching_one) + (dw2_find_pc_sect_compunit_symtab) + (dw2_debug_names_lookup_symbol) + (dw2_debug_names_expand_symtabs_for_function): Update. + (init_cutu_and_read_dies): Add skip_partial parameter. + (process_psymtab_comp_unit, build_type_psymtabs_1) + (process_skeletonless_type_unit, load_partial_comp_unit) + (psymtab_to_symtab_1): Update. + (load_full_comp_unit): Add skip_partial parameter. + (process_imported_unit_die, dwarf2_read_addr_index) + (follow_die_offset, dwarf2_fetch_die_loc_sect_off) + (dwarf2_fetch_constant_bytes, dwarf2_fetch_die_type_sect_off) + (read_signatured_type): Update. + +2018-05-17 Simon Marchi + + * value.c (release_value): Remove unused variable. + (record_latest_value): Likewise. + (access_value_history): Likewise. + (preserve_values): Likewise. + +2018-05-17 Tom Tromey + + * extension.h (struct ext_lang_type_printers) : + Initialize. + +2018-05-16 Maciej W. Rozycki + + PR gdb/22286 + * linux-nat-trad.c (linux_nat_trad_target::fetch_register): + Also handle registers whose width is not a multiple of + PTRACE_TYPE_RET. + (linux_nat_trad_target::store_register): Likewise. + +2018-05-16 Tom Tromey + + * gdbcore.h (core_bfd): Redefine. + * corelow.c (core_target::close): Update. + (core_target_open): Update. + * progspace.h (struct program_space) : Now a + gdb_bfd_ref_ptr. + +2018-05-16 Tom Tromey + + PR cli/19551: + * symfile-add-flags.h (enum symfile_add_flags) + : New constant. + * symfile.c (read_symbols): Use SYMFILE_NOT_FILENAME. Get + objfile name from BFD. + (symbol_file_add_with_addrs): Check SYMFILE_NOT_FILENAME. + * minidebug.c (find_separate_debug_file_in_section): Put + ".gnu_debugdata" into BFD's file name. + +2018-05-16 Simon Marchi + + * regcache.c (regcache_read_ftype, regcache_write_ftype): + Remove. + +2018-05-15 Tamar Christina + + PR binutils/21446 + * aarch64-tdep.c (aarch64_analyze_prologue, + aarch64_software_single_step, aarch64_displaced_step_copy_insn): + Indicate not interested in errors. + +2018-05-15 Maciej W. Rozycki + + * mips-linux-nat.c (mips_linux_nat_target::fetch_registers): + Supply the MIPS_ZERO_REGNUM register. + +2018-05-15 Maciej W. Rozycki + + * mips-tdep.c (mask_address_var): Make variable static. + +2018-05-14 Tom Tromey + + * dwarf2read.c (rust_union_quirks): Clear rust_unions. + +2018-05-11 Andrew Burgess + + * i387-tdep.c (i387_collect_xsave): Use FXSAVE_MXCSR_ADDR not + FXSAVE_ADDR for the mxcsr register. + +2018-05-11 Max Filippov + + * configure.tgt (xtensa*-*-linux*): Drop gdb_target definition. + +2018-05-11 Pedro Alves + + * corelow.c (core_target) : No longer inline. + Initialize m_core_gdbarch, m_core_vec and build the section table + here. + <~core_target>: New. + : New methods. + : New fields, + factored out from ... + : ... these deleted globals. + (core_ops): Delete. + (sniff_core_bfd): Add gdbarch parameter. + (core_close): Delete, merged into ... + (core_target::close): ... here. Delete self. + (core_close_cleanup): Delete. + (core_target_open): Allocate a core_target on the heap. Use a + unique_ptr instead of a cleanup. Bits moved into the core_target + ctor. Adjust to use core_target methods instead of globals. + (get_core_register_section): Rename to ... + (core_target::get_core_register_section): ... this and adjust. + (struct get_core_registers_cb_data): New. + (get_core_registers_cb): Use it. Use bool. + (core_target::fetch_registers, core_target::files_info) + (core_target::xfer_partial, core_target::read_description) + (core_target::pid_to, core_target::thread_name): Adjust to + reference class fields instead of globals. + * target.h (struct target_ops_deleter, target_ops_up): New. + +2018-05-11 Pedro Alves + + * corefile.c (core_file_command): Move to corelow.c. + * corelow.c (the_core_target): Delete. + (core_file_command): Moved from corefile.c. Check exec_bfd + instead of the_core_target. Use target_detach instead of calling + into the_core_target directly. + (maybe_say_no_core_file_now): New. + (core_target::detach): Use it. + (_initialize_corelow): Remove references to the_core_target. + * gdbcore.h (the_core_target): Delete. + +2018-05-11 Tom Tromey + Pedro Alves + + * corefile.c (core_bfd): Remove. + * gdbcore.h (core_bfd): Now a macro. + * progspace.h (struct program_space) : New field. + +2018-05-11 Tom Tromey + + * mdebugread.c (parse_partial_symbols, psymtab_to_symtab_1): Use + gdb::def_vector. + +2018-05-10 Tom Tromey + + * configure: Rebuild. + * warning.m4 (AM_GDB_WARNINGS): Use -Wimplicit-fallthrough=3. + +2018-05-10 Joel Brobecker + + PR server/23158: + * regformats/regdat.sh: Adjust script, following the addition + of the new expedite_regs parameter to init_target_desc. + +2018-05-10 Omair Javaid + + PR gdb/23127 + * aarch64-linux-tdep.c (aarch64_linux_init_abi): Add call to + set_gdbarch_significant_addr_bit. + * aarch64-tdep.c (aarch64_gdbarch_init): Remove call to + set_gdbarch_significant_addr_bit. + * utils.c (address_significant): Update to sign extend addr. + +2018-05-09 Max Filippov + + * xtensa-linux-tdep.c (xtensa-tdep.h): New include. + (xtensa_linux_init_abi): Limit tdep->num_regs by + tdep->num_nopriv_regs. + * xtensa-tdep.c (xtensa_derive_tdep): Calculate + tdep->num_nopriv_regs and only copy it to tdep->num_regs if it's + not initialized. + +2018-05-08 Simon Marchi + + * unittests/string_view-selftests.c: Define GNULIB_NAMESPACE. + +2018-05-08 Andrew Burgess + + * common/x86-xstate.h (I387_FCTRL_INIT_VAL): New constant. + (I387_MXCSR_INIT_VAL): New constant. + * amd64-tdep.c (amd64_supply_xsave): Only read state from xsave + buffer if it was supplied by the inferior. + * i387-tdep.c (i387_supply_fsave): Use I387_MXCSR_INIT_VAL. + (i387_xsave_get_clear_bv): New function. + (i387_supply_xsave): Only read x87 control registers from the + xsave buffer if the feature is enabled, and the state will have + been written, otherwise, provide a suitable default. + (i387_collect_xsave): Pre-clear all registers in xsave buffer, + including x87 control registers. Update control registers if they + have changed from the default value, and mark features as enabled + as required. + * i387-tdep.h (i387_xsave_get_clear_bv): Declare. + +2018-05-08 Ulrich Weigand + + * spu-tdep.c (info_spu_event_command): Fix output formatting. + +2018-05-07 Tom Tromey + + * configure: Rebuild. + * warning.m4 (AM_GDB_WARNINGS): Add -Wduplicated-cond. + +2018-05-07 Tom Tromey + + PR tdep/20362: + * arm-tdep.c (arm_record_vfp_data_proc_insn): Properly mask off D + bit. Use correct value for VDIV. + +2018-05-04 Tom Tromey + + * configure: Rebuild. + * warning.m4 (AM_GDB_WARNINGS): Add -Wimplicit-fallthrough. + +2018-05-04 Tom Tromey + + * linux-record.c (record_linux_system_call) : Add "break". + +2018-05-04 Tom Tromey + + * mi/mi-main.c (mi_cmd_trace_frame_collected) : + Add missing "break". + * mi/mi-cmd-stack.c (mi_cmd_stack_list_locals) : + Add missing "break". + +2018-05-04 Tom Tromey + + * rs6000-tdep.c (ppc_process_record_op4) + (ppc_process_record_op63): Add fall-through comment. + +2018-05-04 Tom Tromey + + * i386-tdep.c (i386_process_record): Add fall-through comment. + +2018-05-04 Tom Tromey + + * stabsread.c (define_symbol) : Add fall-through + comment. + +2018-05-04 Tom Tromey + + * riscv-tdep.c (riscv_isa_xlen): Add fall-through comment. + * utils.c (can_dump_core) : Add fall-through comment. + * eval.c (fetch_subexp_value) : Add fall-through + comment. + * d-valprint.c (d_val_print) : Add fall-through + comment. + * coffread.c (coff_symtab_read) : Add fall-through + comment. + +2018-05-04 Tom Tromey + + * dwarf2loc.c (unimplemented): Add ATTRIBUTE_NORETURN. + +2018-05-04 Tom Tromey + + * s390-tdep.c (s390_process_record): Fix fall-through comments. + * xcoffread.c (scan_xcoff_symtab): Move comment later. + * symfile.c (section_is_mapped): Fix fall-through comment. + * stabsread.c (define_symbol, read_member_functions): Fix + fall-through comment. + * s390-linux-tdep.c (s390_process_record): Fix fall-through + comment. + * remote.c (remote_wait_as): Fix fall-through comment. + * p-exp.y (yylex): Fix fall-through comment. + * nat/x86-dregs.c (x86_length_and_rw_bits): Fix fall-through + comment. + * msp430-tdep.c (msp430_gdbarch_init): Fix fall-through comment. + * mdebugread.c (parse_partial_symbols): Fix fall-through comment. + * jv-exp.y (yylex): Fix fall-through comment. + * go-exp.y (lex_one_token): Fix fall-through comment. + * gdbtypes.c (get_discrete_bounds, rank_one_type): Fix + fall-through comment. + * f-exp.y (yylex): Fix fall-through comment. + * dwarf2read.c (process_die): Fix fall-through comments. + * dbxread.c (process_one_symbol): Fix fall-through comment. + * d-exp.y (lex_one_token): Fix fall-through comment. + * cp-name-parser.y (yylex): Fix fall-through comment. + * coffread.c (coff_symtab_read): Fix fall-through comment. + * c-exp.y (lex_one_token): Fix fall-through comment. + * arm-tdep.c (arm_decode_miscellaneous): Fix fall-through + comment. + * arch/arm.c (arm_instruction_changes_pc): Fix fall-through + comment. + +2018-05-04 Tom Tromey + + PR python/22730: + * NEWS: Mention gdb.execute change. + * gdbcmd.h (execute_control_command): Don't declare. + * python/python.c (execute_gdb_command): Use read_command_lines_1, + execute_control_commands, execute_control_commands_to_string. + * cli/cli-script.h (execute_control_commands) + (execute_control_commands_to_string): Declare. + (execute_control_command): Add from_tty parameter. + * cli/cli-script.c (execute_control_commands) + (execute_control_commands_to_string): New functions. + (execute_user_command): Use execute_control_commands. + (execute_control_command_1): Add "from_tty" parameter. Update. + (execute_control_command): Likewise. + +2018-05-04 Tom Tromey + + PR python/22731: + * NEWS: Mention that breakpoint commands are writable. + * python/py-breakpoint.c (bppy_set_commands): New function. + (breakpoint_object_getset) <"commands">: Use it. + +2018-05-04 Tom Tromey + + * tracepoint.c (actions_command): Update. + * mi/mi-cmd-break.c (mi_command_line_array) + (mi_command_line_array_cnt, mi_command_line_array_ptr) + (mi_read_next_line): Remove. + (mi_cmd_break_commands): Update. + * cli/cli-script.h (read_command_lines, read_command_lines_1): Use + function_view. + * cli/cli-script.c (get_command_line): Update. + (process_next_line): Use function_view. Constify. + (recurse_read_control_structure, read_command_lines) + (read_command_lines_1): Change argument types to function_view. + (do_define_command, document_command): Update. + * breakpoint.h (check_tracepoint_command): Don't declare. + * breakpoint.c (check_tracepoint_command): Remove. + (commands_command_1, create_tracepoint_from_upload): Update. + +2018-05-04 Tom Tromey + + PR gdb/11750: + * cli/cli-script.h (enum command_control_type) : + New constant. + * cli/cli-script.c (multi_line_command_p): Handle define_control. + (build_command_line, execute_control_command_1) + (process_next_line): Likewise. + (do_define_command): New function, extracted from define_command. + (define_command): Use it. + +2018-05-04 Tom Tromey + + * tracepoint.c (actions_command): Update. + * cli/cli-script.h (read_command_lines): Update. + * cli/cli-script.c (read_command_lines): Constify prompt_arg. + (MAX_TMPBUF): Remove define. + (define_command): Use string_printf. + (document_command): Likewise. + * breakpoint.c (commands_command_1): Update. + +2018-05-04 Tom Tromey + + * top.c (execute_command): Update. + * cli/cli-script.h (print_command_lines): Now varargs. + * cli/cli-script.c (print_command_lines): Now varargs. + (execute_control_command_1) : + Update. + +2018-05-04 Tom Tromey + + * tracepoint.c (all_tracepoint_actions): Rename from + all_tracepoint_actions_and_cleanup. Change return type. + (actions_command, encode_actions_1, encode_actions) + (trace_dump_actions, tdump_command): Update. + * remote.c (remote_download_command_source): Update. + * python/python.c (gdbpy_eval_from_control_command) + (python_command, python_interactive_command): Update. + * mi/mi-cmd-break.c (mi_cmd_break_commands): Update. + * guile/guile.c (guile_command) + (gdbscm_eval_from_control_command, guile_command): Update. + * compile/compile.c (compile_code_command) + (compile_print_command, compile_to_object): Update. + * cli/cli-script.h (struct command_lines_deleter): New. + (counted_command_line): New typedef. + (struct command_line): Add constructor, destructor. + : Remove. + : New members. + (command_line_up): Remove typedef. + (read_command_lines, read_command_lines_1, get_command_line): + Update. + (copy_command_lines): Don't declare. + * cli/cli-script.c (build_command_line): Use "new". + (get_command_line): Return counted_command_line. + (print_command_lines, execute_user_command) + (execute_control_command_1, while_command, if_command): Update. + (realloc_body_list): Remove. + (process_next_line, recurse_read_control_structure): Update. + (read_command_lines, read_command_lines_1): Return counted_command_line. + (free_command_lines): Use "delete". + (copy_command_lines): Remove. + (define_command, document_command, show_user_1): Update. + * cli/cli-decode.h (struct cmd_list_element) : Now + a counted_command_line. + * breakpoint.h (counted_command_line): Remove typedef. + (breakpoint_set_commands): Update. + * breakpoint.c (check_no_tracepoint_commands) + (validate_commands_for_breakpoint): Update. + (breakpoint_set_commands): Change commands to be a + counted_command_line. + (commands_command_1, update_dprintf_command_list) + (create_tracepoint_from_upload): Update. + +2018-05-04 Tom Tromey + + * cli/cli-decode.h (cmd_list_element): New constructor. + (~cmd_list_element): New destructor. + (struct cmd_list_element): Add initializers. + * cli/cli-decode.c (do_add_cmd): Use "new". + (delete_cmd): Use "delete". + +2018-05-04 Jan Kratochvil + Pedro Alves + + PR breakpoints/19806 and support for PR external/20207. + * NEWS: Mention Aarch64 watchpoint improvements. + * aarch64-linux-nat.c (aarch64_linux_stopped_data_address): Fix missed + watchpoints and PR external/20207 watchpoints. + * nat/aarch64-linux-hw-point.c + (kernel_supports_any_contiguous_range): New. + (aarch64_watchpoint_offset): New. + (aarch64_watchpoint_length): Support PR external/20207 watchpoints. + (aarch64_point_encode_ctrl_reg): New parameter offset, new asserts. + (aarch64_point_is_aligned): Support PR external/20207 watchpoints. + (aarch64_align_watchpoint): New parameters aligned_offset_p and + next_addr_orig_p. Support PR external/20207 watchpoints. + (aarch64_downgrade_regs): New. + (aarch64_dr_state_insert_one_point): New parameters offset and + addr_orig. + (aarch64_dr_state_remove_one_point): Likewise. + (aarch64_handle_breakpoint): Update caller. + (aarch64_handle_aligned_watchpoint): Likewise. + (aarch64_handle_unaligned_watchpoint): Support addr_orig and + aligned_offset. + (aarch64_linux_set_debug_regs): Remove const from state. Call + aarch64_downgrade_regs. + (aarch64_show_debug_reg_state): Print also dr_addr_orig_wp. + * nat/aarch64-linux-hw-point.h (DR_CONTROL_LENGTH): Rename to ... + (DR_CONTROL_MASK): ... this. + (struct aarch64_debug_reg_state): New field dr_addr_orig_wp. + (unsigned int aarch64_watchpoint_offset): New prototype. + (aarch64_linux_set_debug_regs): Remove const from state. + * utils.c (align_up, align_down): Move to ... + * common/common-utils.c (align_up, align_down): ... here. + * utils.h (align_up, align_down): Move to ... + * common/common-utils.h (align_up, align_down): ... here. + +2018-05-04 Joel Brobecker + + * sparc-tdep.c (sparc_structure_return_p): Re-implement to + match the ABI as summarized in GCC's gcc/config/sparc/sparc.c. + (sparc_arg_by_memory_p): Renamed from sparc_arg_on_registers_p. + Re-implement to match the ABI as summarized in GCC's + gcc/config/sparc/sparc.c. All callers updated. + (sparc32_store_arguments): Remove assertion. + +2018-05-04 Tom Tromey + + * printcmd.c: Don't include tui.h. + (decode_format): Use skip_spaces. + +2018-05-04 Tom Tromey + + PR gdb/22619: + * printcmd.c (last_count): New global. + (x_command): Use saved count when repeating. + +2018-05-04 Tom Tromey + + * nto-procfs.c (do_closedir_cleanup): Remove. + (procfs_pidlist): Use gdb_dir_up. + * procfs.c (do_closedir_cleanup): Remove. + (proc_update_threads): Use gdb_dir_up. + * common/filestuff.h (struct gdb_dir_deleter): New. + (gdb_dir_up): New typedef. + +2018-05-04 Tom Tromey + + * ada-lang.c (print_mention_exception): Use std::string. + +2018-05-04 Tom Tromey + + * ada-lang.c (create_excep_cond_exprs): Update. + (ada_exception_catchpoint_cond_string): Use std::string. + +2018-05-04 Tom Tromey + + * ada-lang.c (xget_renaming_scope): Return std::string. + (old_renaming_is_invisible): Update. + +2018-05-04 Tom Tromey + + * bfd-target.c (target_bfd::m_bfd): Now a gdb_bfd_ref_ptr. + (target_bfd::target_bfd, target_bfd::~target_bfd): Update. + +2018-05-04 Ulrich Weigand + + * spu-linux-nat.c (spu_linux_nat_target::wait): Fix syntax error. + +2018-05-04 Tom Tromey + + * remote.c (remote_query_supported_append): Change type. + (remote_check_symbols): Update. + +2018-05-04 Paul Pluzhnikov + + PR gdb/11420 + * configure.ac: Prepend libpython. + * python/python-config.py: Likewise. + * configure: Regenerate. + +2018-05-03 Simon Marchi + + * Makefile.in (%.c: %.l): Use -t instead of --stdout. + +2018-05-03 Pedro Alves + + * s390-linux-nat.c + (s390_linux_nat_target::have_continuable_watchpoint): Mark with + override. Write 'true' instead of '1'. + (s390_linux_nat_target::watchpoint_addr_within_range): Remove + declaration. + +2018-05-02 Pedro Alves + + * aarch64-fbsd-nat.c (_initialize_aarch64_fbsd_nat): Use + add_inf_child_target. + * aarch64-linux-nat.c (_initialize_aarch64_linux_nat): Use + add_inf_child_target. + * aix-thread.c (aix_thread_target_info): New. + (aix_thread_target) : Delete. + : New. + * alpha-bsd-nat.c (_initialize_alphabsd_nat): Use + add_inf_child_target. + * alpha-linux-nat.c (_initialize_alpha_linux_nat): Use + add_inf_child_target. + * amd64-fbsd-nat.c (_initialize_amd64fbsd_nat): Use + add_inf_child_target. + * amd64-linux-nat.c (_initialize_amd64_linux_nat): Use + add_inf_child_target. + * amd64-nbsd-nat.c (_initialize_amd64nbsd_nat): Use + add_inf_child_target. + * amd64-obsd-nat.c (_initialize_amd64obsd_nat): Use + add_inf_child_target. + * arm-fbsd-nat.c (_initialize_arm_fbsd_nat): Use + add_inf_child_target. + * arm-linux-nat.c (_initialize_arm_linux_nat): Use + add_inf_child_target. + * arm-nbsd-nat.c (_initialize_arm_netbsd_nat): Use + add_inf_child_target. + * bfd-target.c (target_bfd_target_info): New. + (target_bfd) : Delete. + : New. + * bsd-kvm.c (bsd_kvm_target_info): New. + (bsd_kvm_target) : Delete. + : New. + (bsd_kvm_target::open): Rename to ... + (bsd_kvm_target_open): ... this. Adjust. + * bsd-uthread.c (bsd_uthread_target_info): New. + (bsd_uthread_target) : Delete. + : New. + * corefile.c (core_file_command): Adjust. + * corelow.c (core_target_info): New. + (core_target) : Delete. + : New. + (core_target::open): Rename to ... + (core_target_open): ... this. Adjust. + * ctf.c (ctf_target_info): New. + (ctf_target) : Delete. + : New. + (ctf_target::open): Rename to ... + (ctf_target_open): ... this. + (_initialize_ctf): Adjust. + * exec.c (exec_target_info): New. + (exec_target) : Delete. + : New. + (exec_target::open): Rename to ... + (exec_target_open): ... this. + * gdbcore.h (core_target_open): Declare. + * go32-nat.c (_initialize_go32_nat): Use add_inf_child_target. + * hppa-linux-nat.c (_initialize_hppa_linux_nat): Use + add_inf_child_target. + * hppa-nbsd-nat.c (_initialize_hppanbsd_nat): Use + add_inf_child_target. + * hppa-obsd-nat.c (_initialize_hppaobsd_nat): Use + add_inf_child_target. + * i386-darwin-nat.c (_initialize_i386_darwin_nat): Use + add_inf_child_target. + * i386-fbsd-nat.c (_initialize_i386fbsd_nat): Use + add_inf_child_target. + * i386-gnu-nat.c (_initialize_i386gnu_nat): Use + add_inf_child_target. + * i386-linux-nat.c (_initialize_i386_linux_nat): Use + add_inf_child_target. + * i386-nbsd-nat.c (_initialize_i386nbsd_nat): Use + add_inf_child_target. + * i386-obsd-nat.c (_initialize_i386obsd_nat): Use + add_inf_child_target. + * ia64-linux-nat.c (_initialize_ia64_linux_nat): Use + add_inf_child_target. + * inf-child.c (inf_child_target_info): New. + (inf_child_target::info): New. + (inf_child_open_target): Remove 'target' parameter. Use + get_native_target instead. + (inf_child_target::open): Delete. + (add_inf_child_target): New. + * inf-child.h (inf_child_target) : + Delete. + : New. + (add_inf_child_target): Declare. + (inf_child_open_target): Declare. + * linux-thread-db.c (thread_db_target_info): New. + (thread_db_target) : Delete. + : New. + * m32r-linux-nat.c (_initialize_m32r_linux_nat): Use + add_inf_child_target. + * m68k-bsd-nat.c (_initialize_m68kbsd_nat): Use + add_inf_child_target. + * m68k-linux-nat.c (_initialize_m68k_linux_nat): Use + add_inf_child_target. + * m88k-bsd-nat.c (_initialize_m88kbsd_nat): Use + add_inf_child_target. + * make-target-delegates (print_class): Adjust. + * mips-fbsd-nat.c (_initialize_mips_fbsd_nat): Use + add_inf_child_target. + * mips-linux-nat.c (_initialize_mips_linux_nat): Use + add_inf_child_target. + * mips-nbsd-nat.c (_initialize_mipsnbsd_nat): Use + add_inf_child_target. + * mips64-obsd-nat.c (_initialize_mips64obsd_nat): Use + add_inf_child_target. + * nto-procfs.c (nto_native_target_info): New. + (nto_procfs_target_native) : + Delete. + : New. + (nto_procfs_target_info): New. + (nto_procfs_target_procfs) : + Delete. + : New. + (init_procfs_targets): Adjust. + * ppc-fbsd-nat.c (_initialize_ppcfbsd_nat): Use + add_inf_child_target. + * ppc-linux-nat.c (_initialize_ppc_linux_nat): Use + add_inf_child_target. + * ppc-nbsd-nat.c (_initialize_ppcnbsd_nat): Use + add_inf_child_target. + * ppc-obsd-nat.c (_initialize_ppcobsd_nat): Use + add_inf_child_target. + * ravenscar-thread.c (ravenscar_target_info): New. + (ravenscar_thread_target) : + Delete. + : New. + * record-btrace.c (record_btrace_target_info): + (record_btrace_target) : Delete. + : New. + (record_btrace_target::open): Rename to ... + (record_btrace_target_open): ... this. Adjust. + * record-full.c (record_longname, record_doc): New. + (record_full_base_target) : Delete. + : New. + (record_full_target_info): New. + (record_full_target): : Delete. + : New. + (record_full_core_open_1, record_full_open_1): Update comments. + (record_full_base_target::open): Rename to ... + (record_full_open): ... this. + (cmd_record_full_restore): Update. + (_initialize_record_full): Update. + * remote-sim.c (remote_sim_target_info): New. + (gdbsim_target) : Delete. + : New. + (gdbsim_target::open): Rename to ... + (gdbsim_target_open): ... this. + (_initialize_remote_sim): Adjust. + * remote.c (remote_doc): New. + (remote_target_info): New. + (remote_target) : Delete. + : New. + (extended_remote_target_info): New. + (extended_remote_target) : Delete. + : New. + (remote_target::open_1): Make static. Adjust. + * rs6000-nat.c (_initialize_rs6000_nat): Use add_inf_child_target. + * s390-linux-nat.c (_initialize_s390_nat): Use + add_inf_child_target. + * sh-nbsd-nat.c (_initialize_shnbsd_nat): Use + add_inf_child_target. + * sol-thread.c (thread_db_target_info): New. + (sol_thread_target) : Delete. + : New. + * sparc-linux-nat.c (_initialize_sparc_linux_nat): Use + add_inf_child_target. + * sparc-nbsd-nat.c (_initialize_sparcnbsd_nat): Use + add_inf_child_target. + * sparc64-fbsd-nat.c (_initialize_sparc64fbsd_nat): Use + add_inf_child_target. + * sparc64-linux-nat.c (_initialize_sparc64_linux_nat): Use + add_inf_child_target. + * sparc64-nbsd-nat.c (_initialize_sparc64nbsd_nat): Use + add_inf_child_target. + * sparc64-obsd-nat.c (_initialize_sparc64obsd_nat): Use + add_inf_child_target. + * spu-linux-nat.c (_initialize_spu_nat): Use + add_inf_child_target. + * spu-multiarch.c (spu_multiarch_target_info): New. + (spu_multiarch_target) : Delete. + : New. + * target-delegates.c: Regenerate. + * target.c: Include . + (target_ops_p): Delete. + (DEF_VEC_P(target_ops_p)): Delete. + (target_factories): New. + (test_target_info): New. + (test_target_ops::info): New. + (open_target): Adjust to use target_factories. + (add_target_with_completer): Rename to ... + (add_target): ... this. Change prototype. Register target_info + and open callback in target_factories. Register target_info in + command context instead of target_ops. + (add_target): Delete old implementation. + (add_deprecated_target_alias): Change prototype. Adjust. + (the_native_target): New. + (set_native_target, get_native_target): New. + (find_default_run_target): Use the_native_target. + (find_attach_target, find_run_target): Simplify. + (target_ops::open): Delete. + (dummy_target_info): New. + (dummy_target::shortname, dummy_target::longname) + (dummy_target::doc): Delete. + (dummy_target::info): New. + (debug_target::shortname, debug_target::longname) + (debug_target::doc): Delete. + (debug_target::info): New. + * target.h (struct target_info): New. + (target_ops::~target_ops): Add comment. + (target_ops::info): New. + (target_ops::shortname, target_ops::longname, target_ops::doc): No + longer virtual. Implement in terms of target_info. + (set_native_target, get_native_target): Declare. + (target_open_ftype): New. + (add_target, add_target_with_completer) + (add_deprecated_target_alias): Change prototype. + (test_target) : Delete. + : New. + * tilegx-linux-nat.c (_initialize_tile_linux_nat): Use + add_inf_child_target. + * tracefile-tfile.c (tfile_target_info): New. + (tfile_target) : Delete. + : New. + (tfile_target::open): Rename to ... + (tfile_target_open): ... this. + (_initialize_tracefile_tfile): Adjust. + * vax-bsd-nat.c (_initialize_vaxbsd_nat): Use + add_inf_child_target. + * windows-nat.c (_initialize_windows_nat): Use + add_inf_child_target. + * xtensa-linux-nat.c (_initialize_xtensa_linux_nat): Use + add_inf_child_target. + +2018-05-02 Pedro Alves + + * linux-nat.h (linux_nat_target) : + New virtual methods. + (linux_nat_set_new_thread, linux_nat_set_delete_thread) + (linux_nat_new_fork_ftype, linux_nat_set_new_fork) + (linux_nat_forget_process_ftype, linux_nat_set_forget_process) + (linux_nat_forget_process, linux_nat_set_siginfo_fixup) + (linux_nat_set_prepare_to_resume, linux_nat_set_status_is_event): + Delete. + * linux-fork.c (delete_fork): Adjust to call low method. + * linux-nat.c (linux_nat_new_thread, linux_nat_delete_thread) + (linux_nat_new_fork, linux_nat_forget_process_hook) + (linux_nat_prepare_to_resume, linux_nat_siginfo_fixup) + (linux_nat_status_is_event): + (linux_nat_target::follow_fork, lwp_free, add_lwp, detach_one_lwp) + (linux_resume_one_lwp_throw, linux_handle_extended_wait): Adjust + to call low method. + (sigtrap_is_event): Rename to ... + (linux_nat_target::low_status_is_event): ... this. + (linux_nat_set_status_is_event): Delete. + (save_stop_reason, linux_nat_wait_1) + (linux_nat_target::mourn_inferior, siginfo_fixup): Adjust to call + low methods. + (linux_nat_set_new_thread, linux_nat_set_delete_thread) + (linux_nat_set_new_fork, linux_nat_set_forget_process) + (linux_nat_forget_process, linux_nat_set_siginfo_fixup) + (linux_nat_set_prepare_to_resume): Delete. + * aarch64-linux-nat.c: All linux_nat_set_* callbacks converted to + low virtual methods. + * amd64-linux-nat.c: Likewise. + * arm-linux-nat.c: Likewise. + * i386-linux-nat.c: Likewise. + * ia64-linux-nat.c: Likewise. + * mips-linux-nat.c: Likewise. + * ppc-linux-nat.c: Likewise. + * s390-linux-nat.c: Likewise. + * sparc64-linux-nat.c: Likewise. + * x86-linux-nat.c: Likewise. + * x86-linux-nat.h: Include "nat/x86-linux.h". + (x86_linux_nat_target) : + Override methods. + +2018-05-02 Pedro Alves + + * target.h (target_ops) + : Adjust to return bool. + * aarch64-linux-nat.c: All implementations adjusted. + * aix-thread.c: All implementations adjusted. + * arm-linux-nat.c: All implementations adjusted. + * breakpoint.c: All implementations adjusted. + * bsd-kvm.c: All implementations adjusted. + * bsd-uthread.c: All implementations adjusted. + * corelow.c: All implementations adjusted. + * ctf.c: All implementations adjusted. + * darwin-nat.c: All implementations adjusted. + * darwin-nat.h: All implementations adjusted. + * exec.c: All implementations adjusted. + * fbsd-nat.c: All implementations adjusted. + * fbsd-nat.h: All implementations adjusted. + * gnu-nat.c: All implementations adjusted. + * gnu-nat.h: All implementations adjusted. + * go32-nat.c: All implementations adjusted. + * ia64-linux-nat.c: All implementations adjusted. + * inf-child.c: All implementations adjusted. + * inf-child.h: All implementations adjusted. + * inf-ptrace.c: All implementations adjusted. + * inf-ptrace.h: All implementations adjusted. + * linux-nat.c: All implementations adjusted. + * linux-nat.h: All implementations adjusted. + * mips-linux-nat.c: All implementations adjusted. + * nto-procfs.c: All implementations adjusted. + * ppc-linux-nat.c: All implementations adjusted. + * procfs.c: All implementations adjusted. + * ravenscar-thread.c: All implementations adjusted. + * record-btrace.c: All implementations adjusted. + * record-full.c: All implementations adjusted. + * remote-sim.c: All implementations adjusted. + * remote.c: All implementations adjusted. + * s390-linux-nat.c: All implementations adjusted. + * sol-thread.c: All implementations adjusted. + * spu-multiarch.c: All implementations adjusted. + * target-delegates.c: All implementations adjusted. + * target.c: All implementations adjusted. + * target.h: All implementations adjusted. + * tracefile-tfile.c: All implementations adjusted. + * tracefile.c: All implementations adjusted. + * tracefile.h: All implementations adjusted. + * windows-nat.c: All implementations adjusted. + * x86-linux-nat.h: All implementations adjusted. + * x86-nat.h: All implementations adjusted. + +2018-05-02 Pedro Alves + + * make-target-delegates (scan_target_h): Don't trim lines here. + Replace sequences of tabs and/or whitespace with a single + whitespace. + (top level, parsing methods): Trim each line before processing it + here. + +2018-05-02 Pedro Alves + John Baldwin + + * target.h (enum strata) : New. + (struct target_ops) : Replace by C++ + virtual methods, and drop "to_" prefix. All references updated + throughout. + : Delete, replaced by + virtual methods. All references updated throughout. + : New + virtual methods. + : Now + TARGET_DEFAULT_NORETURN methods. + : Now returns bool. + : Delete. + (OPS_MAGIC): Delete. + (current_target): Delete. All references replaced by references + to ... + (target_stack): ... this. New. + (target_shortname, target_longname): Adjust. + (target_can_run): Now a function declaration. + (default_child_has_all_memory, default_child_has_memory) + (default_child_has_stack, default_child_has_registers) + (default_child_has_execution): Remove target_ops parameter. + (complete_target_initialization): Delete. + (memory_breakpoint_target): New template class. + (test_target_ops): Refactor as a C++ class with virtual methods. + * make-target-delegates (NAME_PART): Tighten. + (POINTER_PART, CP_SYMBOL): New. + (SIMPLE_RETURN_PART): Reimplement. + (VEC_RETURN_PART): Expect less. + (RETURN_PART, VIRTUAL_PART): New. + (METHOD): Adjust to C++ virtual methods. + (scan_target_h): Remove reference to C99. + (dname): Output "target_ops::" prefix. + (write_function_header): Adjust to output a C++ class method. + (write_declaration): New. + (write_delegator): Adjust to output a C++ class method. + (tdname): Output "dummy_target::" prefix. + (write_tdefault, write_debugmethod): Adjust to output a C++ class + method. + (tdefault_names, debug_names): Delete. + (return_types, tdefaults, styles, argtypes_array): New. + (top level): All methods are delegators. + (print_class): New. + (top level): Print dummy_target and debug_target classes. + * target-delegates.c: Regenerate. + * target-debug.h (target_debug_print_enum_info_proc_what) + (target_debug_print_thread_control_capabilities) + (target_debug_print_thread_info_p): New. + * target.c (dummy_target): Delete. + (the_dummy_target, the_debug_target): New. + (target_stack): Now extern. + (set_targetdebug): Push/unpush debug target. + (default_child_has_all_memory, default_child_has_memory) + (default_child_has_stack, default_child_has_registers) + (default_child_has_execution): Remove target_ops parameter. + (complete_target_initialization): Delete. + (add_target_with_completer): No longer call + complete_target_initialization. + (target_supports_terminal_ours): Use regular delegation. + (update_current_target): Delete. + (push_target): No longer check magic number. Don't call + update_current_target. + (unpush_target): Don't call update_current_target. + (target_is_pushed): No longer check magic number. + (target_require_runnable): Skip for all stratums over + process_stratum. + (target_ops::info_proc): New. + (target_info_proc): Use find_target_at and + find_default_run_target. + (target_supports_disable_randomization): Use regular delegation. + (target_get_osdata): Use find_target_at. + (target_ops::open, target_ops::close, target_ops::can_attach) + (target_ops::attach, target_ops::can_create_inferior) + (target_ops::create_inferior, target_ops::can_run) + (target_can_run): New. + (default_fileio_target): Use regular delegation. + (target_ops::fileio_open, target_ops::fileio_pwrite) + (target_ops::fileio_pread, target_ops::fileio_fstat) + (target_ops::fileio_close, target_ops::fileio_unlink) + (target_ops::fileio_readlink): New. + (target_fileio_open_1, target_fileio_unlink) + (target_fileio_readlink): Always call the target method. Handle + FILEIO_ENOSYS. + (return_zero, return_zero_has_execution): Delete. + (init_dummy_target): Delete. + (dummy_target::dummy_target, dummy_target::shortname) + (dummy_target::longname, dummy_target::doc) + (debug_target::debug_target, debug_target::shortname) + (debug_target::longname, debug_target::doc): New. + (target_supports_delete_record): Use regular delegation. + (setup_target_debug): Delete. + (maintenance_print_target_stack): Skip debug_stratum. + (initialize_targets): Instantiate the_dummy_target and + the_debug_target. + * auxv.c (target_auxv_parse): Remove 'ops' parameter. Adjust to + use target_stack. + (target_auxv_search, fprint_target_auxv): Adjust. + (info_auxv_command): Adjust to use target_stack. + * auxv.h (target_auxv_parse): Remove 'ops' parameter. + * exceptions.c (print_flush): Handle a NULL target_stack. + * regcache.c (target_ops_no_register): Refactor as class with + virtual methods. + + * exec.c (exec_target): New class. + (exec_ops): Now an exec_target. + (exec_open, exec_close_1, exec_get_section_table) + (exec_xfer_partial, exec_files_info, exec_has_memory) + (exec_make_note_section): Refactor as exec_target methods. + (exec_file_clear, ignore, exec_remove_breakpoint, init_exec_ops): + Delete. + (exec_target::find_memory_regions): New. + (_initialize_exec): Don't call init_exec_ops. + * gdbcore.h (exec_file_clear): Delete. + + * corefile.c (core_target): Delete. + (core_file_command): Adjust. + * corelow.c (core_target): New class. + (the_core_target): New. + (core_close): Remove target_ops parameter. + (core_close_cleanup): Adjust. + (core_target::close): New. + (core_open, core_detach, get_core_registers, core_files_info) + (core_xfer_partial, core_thread_alive, core_read_description) + (core_pid_to_str, core_thread_name, core_has_memory) + (core_has_stack, core_has_registers, core_info_proc): Rework as + core_target methods. + (ignore, core_remove_breakpoint, init_core_ops): Delete. + (_initialize_corelow): Initialize the_core_target. + * gdbcore.h (core_target): Delete. + (the_core_target): New. + + * ctf.c: (ctf_target): New class. + (ctf_ops): Now a ctf_target. + (ctf_open, ctf_close, ctf_files_info, ctf_fetch_registers) + (ctf_xfer_partial, ctf_get_trace_state_variable_value) + (ctf_trace_find, ctf_traceframe_info): Refactor as ctf_target + methods. + (init_ctf_ops): Delete. + (_initialize_ctf): Don't call it. + * tracefile-tfile.c (tfile_target): New class. + (tfile_ops): Now a tfile_target. + (tfile_open, tfile_close, tfile_files_info) + (tfile_get_tracepoint_status, tfile_trace_find) + (tfile_fetch_registers, tfile_xfer_partial) + (tfile_get_trace_state_variable_value, tfile_traceframe_info): + Refactor as tfile_target methods. + (tfile_xfer_partial_features): Remove target_ops parameter. + (init_tfile_ops): Delete. + (_initialize_tracefile_tfile): Don't call it. + * tracefile.c (tracefile_has_all_memory, tracefile_has_memory) + (tracefile_has_stack, tracefile_has_registers) + (tracefile_thread_alive, tracefile_get_trace_status): Refactor as + tracefile_target methods. + (init_tracefile_ops): Delete. + (tracefile_target::tracefile_target): New. + * tracefile.h: Include "target.h". + (tracefile_target): New class. + (init_tracefile_ops): Delete. + + * spu-multiarch.c (spu_multiarch_target): New class. + (spu_ops): Now a spu_multiarch_target. + (spu_thread_architecture, spu_region_ok_for_hw_watchpoint) + (spu_fetch_registers, spu_store_registers, spu_xfer_partial) + (spu_search_memory, spu_mourn_inferior): Refactor as + spu_multiarch_target methods. + (init_spu_ops): Delete. + (_initialize_spu_multiarch): Remove references to init_spu_ops, + complete_target_initialization. + + * ravenscar-thread.c (ravenscar_thread_target): New class. + (ravenscar_ops): Now a ravenscar_thread_target. + (ravenscar_resume, ravenscar_wait, ravenscar_update_thread_list) + (ravenscar_thread_alive, ravenscar_pid_to_str) + (ravenscar_fetch_registers, ravenscar_store_registers) + (ravenscar_prepare_to_store, ravenscar_stopped_by_sw_breakpoint) + (ravenscar_stopped_by_hw_breakpoint) + (ravenscar_stopped_by_watchpoint, ravenscar_stopped_data_address) + (ravenscar_mourn_inferior, ravenscar_core_of_thread) + (ravenscar_get_ada_task_ptid): Refactor as ravenscar_thread_target + methods. + (init_ravenscar_thread_ops): Delete. + (_initialize_ravenscar): Remove references to + init_ravenscar_thread_ops and complete_target_initialization. + + * bsd-uthread.c (bsd_uthread_ops_hack): Delete. + (bsd_uthread_target): New class. + (bsd_uthread_ops): Now a bsd_uthread_target. + (bsd_uthread_activate): Adjust to refer to bsd_uthread_ops. + (bsd_uthread_close, bsd_uthread_mourn_inferior) + (bsd_uthread_fetch_registers, bsd_uthread_store_registers) + (bsd_uthread_wait, bsd_uthread_resume, bsd_uthread_thread_alive) + (bsd_uthread_update_thread_list, bsd_uthread_extra_thread_info) + (bsd_uthread_pid_to_str): Refactor as bsd_uthread_target methods. + (bsd_uthread_target): Delete function. + (_initialize_bsd_uthread): Remove reference to + complete_target_initialization. + + * bfd-target.c (target_bfd_data): Delete. Fields folded into ... + (target_bfd): ... this new class. + (target_bfd_xfer_partial, target_bfd_get_section_table) + (target_bfd_close): Refactor as target_bfd methods. + (target_bfd::~target_bfd): New. + (target_bfd_reopen): Adjust. + (target_bfd::close): New. + + * record-btrace.c (record_btrace_target): New class. + (record_btrace_ops): Now a record_btrace_target. + (record_btrace_open, record_btrace_stop_recording) + (record_btrace_disconnect, record_btrace_close) + (record_btrace_async, record_btrace_info) + (record_btrace_insn_history, record_btrace_insn_history_range) + (record_btrace_insn_history_from, record_btrace_call_history) + (record_btrace_call_history_range) + (record_btrace_call_history_from, record_btrace_record_method) + (record_btrace_is_replaying, record_btrace_will_replay) + (record_btrace_xfer_partial, record_btrace_insert_breakpoint) + (record_btrace_remove_breakpoint, record_btrace_fetch_registers) + (record_btrace_store_registers, record_btrace_prepare_to_store) + (record_btrace_to_get_unwinder) + (record_btrace_to_get_tailcall_unwinder, record_btrace_resume) + (record_btrace_commit_resume, record_btrace_wait) + (record_btrace_stop, record_btrace_can_execute_reverse) + (record_btrace_stopped_by_sw_breakpoint) + (record_btrace_supports_stopped_by_sw_breakpoint) + (record_btrace_stopped_by_hw_breakpoint) + (record_btrace_supports_stopped_by_hw_breakpoint) + (record_btrace_update_thread_list, record_btrace_thread_alive) + (record_btrace_goto_begin, record_btrace_goto_end) + (record_btrace_goto, record_btrace_stop_replaying_all) + (record_btrace_execution_direction) + (record_btrace_prepare_to_generate_core) + (record_btrace_done_generating_core): Refactor as + record_btrace_target methods. + (init_record_btrace_ops): Delete. + (_initialize_record_btrace): Remove reference to + init_record_btrace_ops. + * record-full.c (RECORD_FULL_IS_REPLAY): Adjust to always refer to + the execution_direction global. + (record_full_base_target, record_full_target) + (record_full_core_target): New classes. + (record_full_ops): Now a record_full_target. + (record_full_core_ops): Now a record_full_core_target. + (record_full_target::detach, record_full_target::disconnect) + (record_full_core_target::disconnect) + (record_full_target::mourn_inferior, record_full_target::kill): + New. + (record_full_open, record_full_close, record_full_async): Refactor + as methods of the record_full_base_target class. + (record_full_resume, record_full_commit_resume): Refactor + as methods of the record_full_target class. + (record_full_wait, record_full_stopped_by_watchpoint) + (record_full_stopped_data_address) + (record_full_stopped_by_sw_breakpoint) + (record_full_supports_stopped_by_sw_breakpoint) + (record_full_stopped_by_hw_breakpoint) + (record_full_supports_stopped_by_hw_breakpoint): Refactor as + methods of the record_full_base_target class. + (record_full_store_registers, record_full_xfer_partial) + (record_full_insert_breakpoint, record_full_remove_breakpoint): + Refactor as methods of the record_full_target class. + (record_full_can_execute_reverse, record_full_get_bookmark) + (record_full_goto_bookmark, record_full_execution_direction) + (record_full_record_method, record_full_info, record_full_delete) + (record_full_is_replaying, record_full_will_replay) + (record_full_goto_begin, record_full_goto_end, record_full_goto) + (record_full_stop_replaying): Refactor as methods of the + record_full_base_target class. + (record_full_core_resume, record_full_core_kill) + (record_full_core_fetch_registers) + (record_full_core_prepare_to_store) + (record_full_core_store_registers, record_full_core_xfer_partial) + (record_full_core_insert_breakpoint) + (record_full_core_remove_breakpoint) + (record_full_core_has_execution): Refactor + as methods of the record_full_core_target class. + (record_full_base_target::supports_delete_record): New. + (init_record_full_ops): Delete. + (init_record_full_core_ops): Delete. + (record_full_save): Refactor as method of the + record_full_base_target class. + (_initialize_record_full): Remove references to + init_record_full_ops and init_record_full_core_ops. + + * remote.c (remote_target, extended_remote_target): New classes. + (remote_ops): Now a remote_target. + (extended_remote_ops): Now an extended_remote_target. + (remote_insert_fork_catchpoint, remote_remove_fork_catchpoint) + (remote_insert_vfork_catchpoint, remote_remove_vfork_catchpoint) + (remote_insert_exec_catchpoint, remote_remove_exec_catchpoint) + (remote_pass_signals, remote_set_syscall_catchpoint) + (remote_program_signals, ) + (remote_thread_always_alive): Remove target_ops parameter. + (remote_thread_alive, remote_thread_name) + (remote_update_thread_list, remote_threads_extra_info) + (remote_static_tracepoint_marker_at) + (remote_static_tracepoint_markers_by_strid) + (remote_get_ada_task_ptid, remote_close, remote_start_remote) + (remote_open): Refactor as methods of remote_target. + (extended_remote_open, extended_remote_detach) + (extended_remote_attach, extended_remote_post_attach): + (extended_remote_supports_disable_randomization) + (extended_remote_create_inferior): : Refactor as method of + extended_remote_target. + (remote_set_permissions, remote_open_1, remote_detach) + (remote_follow_fork, remote_follow_exec, remote_disconnect) + (remote_resume, remote_commit_resume, remote_stop) + (remote_interrupt, remote_pass_ctrlc, remote_terminal_inferior) + (remote_terminal_ours, remote_wait, remote_fetch_registers) + (remote_prepare_to_store, remote_store_registers) + (remote_flash_erase, remote_flash_done, remote_files_info) + (remote_kill, remote_mourn, remote_insert_breakpoint) + (remote_remove_breakpoint, remote_insert_watchpoint) + (remote_watchpoint_addr_within_range) + (remote_remove_watchpoint, remote_region_ok_for_hw_watchpoint) + (remote_check_watch_resources, remote_stopped_by_sw_breakpoint) + (remote_supports_stopped_by_sw_breakpoint) + (remote_stopped_by_hw_breakpoint) + (remote_supports_stopped_by_hw_breakpoint) + (remote_stopped_by_watchpoint, remote_stopped_data_address) + (remote_insert_hw_breakpoint, remote_remove_hw_breakpoint) + (remote_verify_memory): Refactor as methods of remote_target. + (remote_write_qxfer, remote_read_qxfer): Remove target_ops + parameter. + (remote_xfer_partial, remote_get_memory_xfer_limit) + (remote_search_memory, remote_rcmd, remote_memory_map) + (remote_pid_to_str, remote_get_thread_local_address) + (remote_get_tib_address, remote_read_description): Refactor as + methods of remote_target. + (remote_target::fileio_open, remote_target::fileio_pwrite) + (remote_target::fileio_pread, remote_target::fileio_close): New. + (remote_hostio_readlink, remote_hostio_fstat) + (remote_filesystem_is_local, remote_can_execute_reverse) + (remote_supports_non_stop, remote_supports_disable_randomization) + (remote_supports_multi_process, remote_supports_cond_breakpoints) + (remote_supports_enable_disable_tracepoint) + (remote_supports_string_tracing) + (remote_can_run_breakpoint_commands, remote_trace_init) + (remote_download_tracepoint, remote_can_download_tracepoint) + (remote_download_trace_state_variable, remote_enable_tracepoint) + (remote_disable_tracepoint, remote_trace_set_readonly_regions) + (remote_trace_start, remote_get_trace_status) + (remote_get_tracepoint_status, remote_trace_stop) + (remote_trace_find, remote_get_trace_state_variable_value) + (remote_save_trace_data, remote_get_raw_trace_data) + (remote_set_disconnected_tracing, remote_core_of_thread) + (remote_set_circular_trace_buffer, remote_traceframe_info) + (remote_get_min_fast_tracepoint_insn_len) + (remote_set_trace_buffer_size, remote_set_trace_notes) + (remote_use_agent, remote_can_use_agent, remote_enable_btrace) + (remote_disable_btrace, remote_teardown_btrace) + (remote_read_btrace, remote_btrace_conf) + (remote_augmented_libraries_svr4_read, remote_load) + (remote_pid_to_exec_file, remote_can_do_single_step) + (remote_execution_direction, remote_thread_handle_to_thread_info): + Refactor as methods of remote_target. + (init_remote_ops, init_extended_remote_ops): Delete. + (remote_can_async_p, remote_is_async_p, remote_async) + (remote_thread_events, remote_upload_tracepoints) + (remote_upload_trace_state_variables): Refactor as methods of + remote_target. + (_initialize_remote): Remove references to init_remote_ops and + init_extended_remote_ops. + + * remote-sim.c (gdbsim_target): New class. + (gdbsim_fetch_register, gdbsim_store_register, gdbsim_kill) + (gdbsim_load, gdbsim_create_inferior, gdbsim_open, gdbsim_close) + (gdbsim_detach, gdbsim_resume, gdbsim_interrupt) + (gdbsim_wait, gdbsim_prepare_to_store, gdbsim_xfer_partial) + (gdbsim_files_info, gdbsim_mourn_inferior, gdbsim_thread_alive) + (gdbsim_pid_to_str, gdbsim_has_all_memory, gdbsim_has_memory): + Refactor as methods of gdbsim_target. + (gdbsim_ops): Now a gdbsim_target. + (init_gdbsim_ops): Delete. + (gdbsim_cntrl_c): Adjust. + (_initialize_remote_sim): Remove reference to init_gdbsim_ops. + + * amd64-linux-nat.c (amd64_linux_nat_target): New class. + (the_amd64_linux_nat_target): New. + (amd64_linux_fetch_inferior_registers) + (amd64_linux_store_inferior_registers): Refactor as methods of + amd64_linux_nat_target. + (_initialize_amd64_linux_nat): Adjust. Set linux_target. + * i386-linux-nat.c: Don't include "linux-nat.h". + (i386_linux_nat_target): New class. + (the_i386_linux_nat_target): New. + (i386_linux_fetch_inferior_registers) + (i386_linux_store_inferior_registers, i386_linux_resume): Refactor + as methods of i386_linux_nat_target. + (_initialize_i386_linux_nat): Adjust. Set linux_target. + * inf-child.c (inf_child_ops): Delete. + (inf_child_fetch_inferior_registers) + (inf_child_store_inferior_registers): Delete. + (inf_child_post_attach, inf_child_prepare_to_store): Refactor as + methods of inf_child_target. + (inf_child_target::supports_terminal_ours) + (inf_child_target::terminal_init) + (inf_child_target::terminal_inferior) + (inf_child_target::terminal_ours_for_output) + (inf_child_target::terminal_ours, inf_child_target::interrupt) + (inf_child_target::pass_ctrlc, inf_child_target::terminal_info): + New. + (inf_child_open, inf_child_disconnect, inf_child_close) + (inf_child_mourn_inferior, inf_child_maybe_unpush_target) + (inf_child_post_startup_inferior, inf_child_can_run) + (inf_child_pid_to_exec_file): Refactor as methods of + inf_child_target. + (inf_child_follow_fork): Delete. + (inf_child_target::can_create_inferior) + (inf_child_target::can_attach): New. + (inf_child_target::has_all_memory, inf_child_target::has_memory) + (inf_child_target::has_stack, inf_child_target::has_registers) + (inf_child_target::has_execution): New. + (inf_child_fileio_open, inf_child_fileio_pwrite) + (inf_child_fileio_pread, inf_child_fileio_fstat) + (inf_child_fileio_close, inf_child_fileio_unlink) + (inf_child_fileio_readlink, inf_child_use_agent) + (inf_child_can_use_agent): Refactor as methods of + inf_child_target. + (return_zero, inf_child_target): Delete. + (inf_child_target::inf_child_target): New. + * inf-child.h: Include "target.h". + (inf_child_target): Delete function prototype. + (inf_child_target): New class. + (inf_child_open_target, inf_child_mourn_inferior) + (inf_child_maybe_unpush_target): Delete. + * inf-ptrace.c (inf_ptrace_target::~inf_ptrace_target): New. + (inf_ptrace_follow_fork, inf_ptrace_insert_fork_catchpoint) + (inf_ptrace_remove_fork_catchpoint, inf_ptrace_create_inferior) + (inf_ptrace_post_startup_inferior, inf_ptrace_mourn_inferior) + (inf_ptrace_attach, inf_ptrace_post_attach, inf_ptrace_detach) + (inf_ptrace_detach_success, inf_ptrace_kill, inf_ptrace_resume) + (inf_ptrace_wait, inf_ptrace_xfer_partial) + (inf_ptrace_thread_alive, inf_ptrace_files_info) + (inf_ptrace_pid_to_str, inf_ptrace_auxv_parse): Refactor as + methods of inf_ptrace_target. + (inf_ptrace_target): Delete function. + * inf-ptrace.h: Include "inf-child.h". + (inf_ptrace_target): Delete function declaration. + (inf_ptrace_target): New class. + (inf_ptrace_trad_target, inf_ptrace_detach_success): Delete. + * linux-nat.c (linux_target): New. + (linux_ops, linux_ops_saved, super_xfer_partial): Delete. + (linux_nat_target::~linux_nat_target): New. + (linux_child_post_attach, linux_child_post_startup_inferior) + (linux_child_follow_fork, linux_child_insert_fork_catchpoint) + (linux_child_remove_fork_catchpoint) + (linux_child_insert_vfork_catchpoint) + (linux_child_remove_vfork_catchpoint) + (linux_child_insert_exec_catchpoint) + (linux_child_remove_exec_catchpoint) + (linux_child_set_syscall_catchpoint, linux_nat_pass_signals) + (linux_nat_create_inferior, linux_nat_attach, linux_nat_detach) + (linux_nat_resume, linux_nat_stopped_by_watchpoint) + (linux_nat_stopped_data_address) + (linux_nat_stopped_by_sw_breakpoint) + (linux_nat_supports_stopped_by_sw_breakpoint) + (linux_nat_stopped_by_hw_breakpoint) + (linux_nat_supports_stopped_by_hw_breakpoint, linux_nat_wait) + (linux_nat_kill, linux_nat_mourn_inferior) + (linux_nat_xfer_partial, linux_nat_thread_alive) + (linux_nat_update_thread_list, linux_nat_pid_to_str) + (linux_nat_thread_name, linux_child_pid_to_exec_file) + (linux_child_static_tracepoint_markers_by_strid) + (linux_nat_is_async_p, linux_nat_can_async_p) + (linux_nat_supports_non_stop, linux_nat_always_non_stop_p) + (linux_nat_supports_multi_process) + (linux_nat_supports_disable_randomization, linux_nat_async) + (linux_nat_stop, linux_nat_close, linux_nat_thread_address_space) + (linux_nat_core_of_thread, linux_nat_filesystem_is_local) + (linux_nat_fileio_open, linux_nat_fileio_readlink) + (linux_nat_fileio_unlink, linux_nat_thread_events): Refactor as + methods of linux_nat_target. + (linux_nat_wait_1, linux_xfer_siginfo, linux_proc_xfer_partial) + (linux_proc_xfer_spu, linux_nat_xfer_osdata): Remove target_ops + parameter. + (check_stopped_by_watchpoint): Adjust. + (linux_xfer_partial): Delete. + (linux_target_install_ops, linux_target, linux_nat_add_target): + Delete. + (linux_nat_target::linux_nat_target): New. + * linux-nat.h: Include "inf-ptrace.h". + (linux_nat_target): New. + (linux_target, linux_target_install_ops, linux_nat_add_target): + Delete function declarations. + (linux_target): Declare global. + * linux-thread-db.c (thread_db_target): New. + (thread_db_target::thread_db_target): New. + (thread_db_ops): Delete. + (the_thread_db_target): New. + (thread_db_detach, thread_db_wait, thread_db_mourn_inferior) + (thread_db_update_thread_list, thread_db_pid_to_str) + (thread_db_extra_thread_info) + (thread_db_thread_handle_to_thread_info) + (thread_db_get_thread_local_address, thread_db_get_ada_task_ptid) + (thread_db_resume): Refactor as methods of thread_db_target. + (init_thread_db_ops): Delete. + (_initialize_thread_db): Remove reference to init_thread_db_ops. + * x86-linux-nat.c: Don't include "linux-nat.h". + (super_post_startup_inferior): Delete. + (x86_linux_nat_target::~x86_linux_nat_target): New. + (x86_linux_child_post_startup_inferior) + (x86_linux_read_description, x86_linux_enable_btrace) + (x86_linux_disable_btrace, x86_linux_teardown_btrace) + (x86_linux_read_btrace, x86_linux_btrace_conf): Refactor as + methods of x86_linux_nat_target. + (x86_linux_create_target): Delete. Bits folded ... + (x86_linux_add_target): ... here. Now takes a linux_nat_target + pointer. + * x86-linux-nat.h: Include "linux-nat.h" and "x86-nat.h". + (x86_linux_nat_target): New class. + (x86_linux_create_target): Delete. + (x86_linux_add_target): Now takes a linux_nat_target pointer. + * x86-nat.c (x86_insert_watchpoint, x86_remove_watchpoint) + (x86_region_ok_for_watchpoint, x86_stopped_data_address) + (x86_stopped_by_watchpoint, x86_insert_hw_breakpoint) + (x86_remove_hw_breakpoint, x86_can_use_hw_breakpoint) + (x86_stopped_by_hw_breakpoint): Remove target_ops parameter and + make extern. + (x86_use_watchpoints): Delete. + * x86-nat.h: Include "breakpoint.h" and "target.h". + (x86_use_watchpoints): Delete. + (x86_can_use_hw_breakpoint, x86_region_ok_for_hw_watchpoint) + (x86_stopped_by_watchpoint, x86_stopped_data_address) + (x86_insert_watchpoint, x86_remove_watchpoint) + (x86_insert_hw_breakpoint, x86_remove_hw_breakpoint) + (x86_stopped_by_hw_breakpoint): New declarations. + (x86_nat_target): New template class. + + * ppc-linux-nat.c (ppc_linux_nat_target): New class. + (the_ppc_linux_nat_target): New. + (ppc_linux_fetch_inferior_registers) + (ppc_linux_can_use_hw_breakpoint) + (ppc_linux_region_ok_for_hw_watchpoint) + (ppc_linux_ranged_break_num_registers) + (ppc_linux_insert_hw_breakpoint, ppc_linux_remove_hw_breakpoint) + (ppc_linux_insert_mask_watchpoint) + (ppc_linux_remove_mask_watchpoint) + (ppc_linux_can_accel_watchpoint_condition) + (ppc_linux_insert_watchpoint, ppc_linux_remove_watchpoint) + (ppc_linux_stopped_data_address, ppc_linux_stopped_by_watchpoint) + (ppc_linux_watchpoint_addr_within_range) + (ppc_linux_masked_watch_num_registers) + (ppc_linux_store_inferior_registers, ppc_linux_auxv_parse) + (ppc_linux_read_description): Refactor as methods of + ppc_linux_nat_target. + (_initialize_ppc_linux_nat): Adjust. Set linux_target. + + * procfs.c (procfs_xfer_partial): Delete forward declaration. + (procfs_target): New class. + (the_procfs_target): New. + (procfs_target): Delete function. + (procfs_auxv_parse, procfs_attach, procfs_detach) + (procfs_fetch_registers, procfs_store_registers, procfs_wait) + (procfs_xfer_partial, procfs_resume, procfs_pass_signals) + (procfs_files_info, procfs_kill_inferior, procfs_mourn_inferior) + (procfs_create_inferior, procfs_update_thread_list) + (procfs_thread_alive, procfs_pid_to_str) + (procfs_can_use_hw_breakpoint, procfs_stopped_by_watchpoint) + (procfs_stopped_data_address, procfs_insert_watchpoint) + (procfs_remove_watchpoint, procfs_region_ok_for_hw_watchpoint) + (proc_find_memory_regions, procfs_info_proc) + (procfs_make_note_section): Refactor as methods of procfs_target. + (_initialize_procfs): Adjust. + * sol-thread.c (sol_thread_target): New class. + (sol_thread_ops): Now a sol_thread_target. + (sol_thread_detach, sol_thread_resume, sol_thread_wait) + (sol_thread_fetch_registers, sol_thread_store_registers) + (sol_thread_xfer_partial, sol_thread_mourn_inferior) + (sol_thread_alive, solaris_pid_to_str, sol_update_thread_list) + (sol_get_ada_task_ptid): Refactor as methods of sol_thread_target. + (init_sol_thread_ops): Delete. + (_initialize_sol_thread): Adjust. Remove references to + init_sol_thread_ops and complete_target_initialization. + + * windows-nat.c (windows_nat_target): New class. + (windows_fetch_inferior_registers) + (windows_store_inferior_registers, windows_resume, windows_wait) + (windows_attach, windows_detach, windows_pid_to_exec_file) + (windows_files_info, windows_create_inferior) + (windows_mourn_inferior, windows_interrupt, windows_kill_inferior) + (windows_close, windows_pid_to_str, windows_xfer_partial) + (windows_get_tib_address, windows_get_ada_task_ptid) + (windows_thread_name, windows_thread_alive): Refactor as + windows_nat_target methods. + (do_initial_windows_stuff): Adjust. + (windows_target): Delete function. + (_initialize_windows_nat): Adjust. + + * darwin-nat.c (darwin_resume, darwin_wait_to, darwin_interrupt) + (darwin_mourn_inferior, darwin_kill_inferior) + (darwin_create_inferior, darwin_attach, darwin_detach) + (darwin_pid_to_str, darwin_thread_alive, darwin_xfer_partial) + (darwin_pid_to_exec_file, darwin_get_ada_task_ptid) + (darwin_supports_multi_process): Refactor as darwin_nat_target + methods. + (darwin_resume_to, darwin_files_info): Delete. + (_initialize_darwin_inferior): Rename to ... + (_initialize_darwin_nat): ... this. Adjust to C++ification. + * darwin-nat.h: Include "inf-child.h". + (darwin_nat_target): New class. + (darwin_complete_target): Delete. + * i386-darwin-nat.c (i386_darwin_nat_target): New class. + (darwin_target): New. + (i386_darwin_fetch_inferior_registers) + (i386_darwin_store_inferior_registers): Refactor as methods of + darwin_nat_target. + (darwin_complete_target): Delete, with ... + (_initialize_i386_darwin_nat): ... bits factored out here. + + * alpha-linux-nat.c (alpha_linux_nat_target): New class. + (the_alpha_linux_nat_target): New. + (alpha_linux_register_u_offset): Refactor as + alpha_linux_nat_target method. + (_initialize_alpha_linux_nat): Adjust. + * linux-nat-trad.c (inf_ptrace_register_u_offset): Delete. + (inf_ptrace_fetch_register, inf_ptrace_fetch_registers) + (inf_ptrace_store_register, inf_ptrace_store_registers): Refact as + methods of linux_nat_trad_target. + (linux_trad_target): Delete. + * linux-nat-trad.h (linux_trad_target): Delete function. + (linux_nat_trad_target): New class. + * mips-linux-nat.c (mips_linux_nat_target): New class. + (super_fetch_registers, super_store_registers, super_close): + Delete. + (the_mips_linux_nat_target): New. + (mips64_linux_regsets_fetch_registers) + (mips64_linux_regsets_store_registers) + (mips64_linux_fetch_registers, mips64_linux_store_registers) + (mips_linux_register_u_offset, mips_linux_read_description) + (mips_linux_can_use_hw_breakpoint) + (mips_linux_stopped_by_watchpoint) + (mips_linux_stopped_data_address) + (mips_linux_region_ok_for_hw_watchpoint) + (mips_linux_insert_watchpoint, mips_linux_remove_watchpoint) + (mips_linux_close): Refactor as methods of mips_linux_nat. + (_initialize_mips_linux_nat): Adjust to C++ification. + + * aix-thread.c (aix_thread_target): New class. + (aix_thread_ops): Now an aix_thread_target. + (aix_thread_detach, aix_thread_resume, aix_thread_wait) + (aix_thread_fetch_registers, aix_thread_store_registers) + (aix_thread_xfer_partial, aix_thread_mourn_inferior) + (aix_thread_thread_alive, aix_thread_pid_to_str) + (aix_thread_extra_thread_info, aix_thread_get_ada_task_ptid): + Refactor as methods of aix_thread_target. + (init_aix_thread_ops): Delete. + (_initialize_aix_thread): Remove references to init_aix_thread_ops + and complete_target_initialization. + * rs6000-nat.c (rs6000_xfer_shared_libraries): Delete. + (rs6000_nat_target): New class. + (the_rs6000_nat_target): New. + (rs6000_fetch_inferior_registers, rs6000_store_inferior_registers) + (rs6000_xfer_partial, rs6000_wait, rs6000_create_inferior) + (rs6000_xfer_shared_libraries): Refactor as rs6000_nat_target methods. + (super_create_inferior): Delete. + (_initialize_rs6000_nat): Adjust to C++ification. + + * arm-linux-nat.c (arm_linux_nat_target): New class. + (the_arm_linux_nat_target): New. + (arm_linux_fetch_inferior_registers) + (arm_linux_store_inferior_registers, arm_linux_read_description) + (arm_linux_can_use_hw_breakpoint, arm_linux_insert_hw_breakpoint) + (arm_linux_remove_hw_breakpoint) + (arm_linux_region_ok_for_hw_watchpoint) + (arm_linux_insert_watchpoint, arm_linux_remove_watchpoint) + (arm_linux_stopped_data_address, arm_linux_stopped_by_watchpoint) + (arm_linux_watchpoint_addr_within_range): Refactor as methods of + arm_linux_nat_target. + (_initialize_arm_linux_nat): Adjust to C++ification. + + * aarch64-linux-nat.c (aarch64_linux_nat_target): New class. + (the_aarch64_linux_nat_target): New. + (aarch64_linux_fetch_inferior_registers) + (aarch64_linux_store_inferior_registers) + (aarch64_linux_child_post_startup_inferior) + (aarch64_linux_read_description) + (aarch64_linux_can_use_hw_breakpoint) + (aarch64_linux_insert_hw_breakpoint) + (aarch64_linux_remove_hw_breakpoint) + (aarch64_linux_insert_watchpoint, aarch64_linux_remove_watchpoint) + (aarch64_linux_region_ok_for_hw_watchpoint) + (aarch64_linux_stopped_data_address) + (aarch64_linux_stopped_by_watchpoint) + (aarch64_linux_watchpoint_addr_within_range) + (aarch64_linux_can_do_single_step): Refactor as methods of + aarch64_linux_nat_target. + (super_post_startup_inferior): Delete. + (_initialize_aarch64_linux_nat): Adjust to C++ification. + + * hppa-linux-nat.c (hppa_linux_nat_target): New class. + (the_hppa_linux_nat_target): New. + (hppa_linux_fetch_inferior_registers) + (hppa_linux_store_inferior_registers): Refactor as methods of + hppa_linux_nat_target. + (_initialize_hppa_linux_nat): Adjust to C++ification. + + * ia64-linux-nat.c (ia64_linux_nat_target): New class. + (the_ia64_linux_nat_target): New. + (ia64_linux_insert_watchpoint, ia64_linux_remove_watchpoint) + (ia64_linux_stopped_data_address) + (ia64_linux_stopped_by_watchpoint, ia64_linux_fetch_registers) + (ia64_linux_store_registers, ia64_linux_xfer_partial): Refactor as + ia64_linux_nat_target methods. + (super_xfer_partial): Delete. + (_initialize_ia64_linux_nat): Adjust to C++ification. + + * m32r-linux-nat.c (m32r_linux_nat_target): New class. + (the_m32r_linux_nat_target): New. + (m32r_linux_fetch_inferior_registers) + (m32r_linux_store_inferior_registers): Refactor as + m32r_linux_nat_target methods. + (_initialize_m32r_linux_nat): Adjust to C++ification. + + * m68k-linux-nat.c (m68k_linux_nat_target): New class. + (the_m68k_linux_nat_target): New. + (m68k_linux_fetch_inferior_registers) + (m68k_linux_store_inferior_registers): Refactor as + m68k_linux_nat_target methods. + (_initialize_m68k_linux_nat): Adjust to C++ification. + + * s390-linux-nat.c (s390_linux_nat_target): New class. + (the_s390_linux_nat_target): New. + (s390_linux_fetch_inferior_registers) + (s390_linux_store_inferior_registers, s390_stopped_by_watchpoint) + (s390_insert_watchpoint, s390_remove_watchpoint) + (s390_can_use_hw_breakpoint, s390_insert_hw_breakpoint) + (s390_remove_hw_breakpoint, s390_region_ok_for_hw_watchpoint) + (s390_auxv_parse, s390_read_description): Refactor as methods of + s390_linux_nat_target. + (_initialize_s390_nat): Adjust to C++ification. + + * sparc-linux-nat.c (sparc_linux_nat_target): New class. + (the_sparc_linux_nat_target): New. + (_initialize_sparc_linux_nat): Adjust to C++ification. + * sparc-nat.c (sparc_fetch_inferior_registers) + (sparc_store_inferior_registers): Remove target_ops parameter. + * sparc-nat.h (sparc_fetch_inferior_registers) + (sparc_store_inferior_registers): Remove target_ops parameter. + * sparc64-linux-nat.c (sparc64_linux_nat_target): New class. + (the_sparc64_linux_nat_target): New. + (_initialize_sparc64_linux_nat): Adjust to C++ification. + + * spu-linux-nat.c (spu_linux_nat_target): New class. + (the_spu_linux_nat_target): New. + (spu_child_post_startup_inferior, spu_child_post_attach) + (spu_child_wait, spu_fetch_inferior_registers) + (spu_store_inferior_registers, spu_xfer_partial) + (spu_can_use_hw_breakpoint): Refactor as spu_linux_nat_target + methods. + (_initialize_spu_nat): Adjust to C++ification. + + * tilegx-linux-nat.c (tilegx_linux_nat_target): New class. + (the_tilegx_linux_nat_target): New. + (fetch_inferior_registers, store_inferior_registers): + Refactor as methods. + (_initialize_tile_linux_nat): Adjust to C++ification. + + * xtensa-linux-nat.c (xtensa_linux_nat_target): New class. + (the_xtensa_linux_nat_target): New. + (xtensa_linux_fetch_inferior_registers) + (xtensa_linux_store_inferior_registers): Refactor as + xtensa_linux_nat_target methods. + (_initialize_xtensa_linux_nat): Adjust to C++ification. + + * fbsd-nat.c (USE_SIGTRAP_SIGINFO): Delete. + (fbsd_pid_to_exec_file, fbsd_find_memory_regions) + (fbsd_find_memory_regions, fbsd_info_proc, fbsd_xfer_partial) + (fbsd_thread_alive, fbsd_pid_to_str, fbsd_thread_name) + (fbsd_update_thread_list, fbsd_resume, fbsd_wait) + (fbsd_stopped_by_sw_breakpoint) + (fbsd_supports_stopped_by_sw_breakpoint, fbsd_follow_fork) + (fbsd_insert_fork_catchpoint, fbsd_remove_fork_catchpoint) + (fbsd_insert_vfork_catchpoint, fbsd_remove_vfork_catchpoint) + (fbsd_post_startup_inferior, fbsd_post_attach) + (fbsd_insert_exec_catchpoint, fbsd_remove_exec_catchpoint) + (fbsd_set_syscall_catchpoint) + (super_xfer_partial, super_resume, super_wait) + (fbsd_supports_stopped_by_hw_breakpoint): Delete. + (fbsd_handle_debug_trap): Remove target_ops parameter. + (fbsd_nat_add_target): Delete. + * fbsd-nat.h: Include "inf-ptrace.h". + (fbsd_nat_add_target): Delete. + (USE_SIGTRAP_SIGINFO): Define. + (fbsd_nat_target): New class. + + * amd64-bsd-nat.c (amd64bsd_fetch_inferior_registers) + (amd64bsd_store_inferior_registers): Remove target_ops parameter. + (amd64bsd_target): Delete. + * amd64-bsd-nat.h: New file. + * amd64-fbsd-nat.c: Include "amd64-bsd-nat.h" instead of + "x86-bsd-nat.h". + (amd64_fbsd_nat_target): New class. + (the_amd64_fbsd_nat_target): New. + (amd64fbsd_read_description): Refactor as method of + amd64_fbsd_nat_target. + (amd64_fbsd_nat_target::supports_stopped_by_hw_breakpoint): New. + (_initialize_amd64fbsd_nat): Adjust to C++ification. + * amd64-nat.h (amd64bsd_target): Delete function declaration. + * i386-bsd-nat.c (i386bsd_fetch_inferior_registers) + (i386bsd_store_inferior_registers): Remove target_ops parameter. + (i386bsd_target): Delete. + * i386-bsd-nat.h (i386bsd_target): Delete function declaration. + (i386bsd_fetch_inferior_registers) + (i386bsd_store_inferior_registers): Declare. + (i386_bsd_nat_target): New class. + * i386-fbsd-nat.c (i386_fbsd_nat_target): New class. + (the_i386_fbsd_nat_target): New. + (i386fbsd_resume, i386fbsd_read_description): Refactor as + i386_fbsd_nat_target methods. + (i386_fbsd_nat_target::supports_stopped_by_hw_breakpoint): New. + (_initialize_i386fbsd_nat): Adjust to C++ification. + * x86-bsd-nat.c (super_mourn_inferior): Delete. + (x86bsd_mourn_inferior, x86bsd_target): Delete. + (_initialize_x86_bsd_nat): Adjust to C++ification. + * x86-bsd-nat.h: Include "x86-nat.h". + (x86bsd_target): Delete declaration. + (x86bsd_nat_target): New class. + + * aarch64-fbsd-nat.c (aarch64_fbsd_nat_target): New class. + (the_aarch64_fbsd_nat_target): New. + (aarch64_fbsd_fetch_inferior_registers) + (aarch64_fbsd_store_inferior_registers): Refactor as methods of + aarch64_fbsd_nat_target. + (_initialize_aarch64_fbsd_nat): Adjust to C++ification. + * alpha-bsd-nat.c (alpha_bsd_nat_target): New class. + (the_alpha_bsd_nat_target): New. + (alphabsd_fetch_inferior_registers) + (alphabsd_store_inferior_registers): Refactor as + alpha_bsd_nat_target methods. + (_initialize_alphabsd_nat): Refactor as methods of + alpha_bsd_nat_target. + * amd64-nbsd-nat.c: Include "amd64-bsd-nat.h". + (the_amd64_nbsd_nat_target): New. + (_initialize_amd64nbsd_nat): Adjust to C++ification. + * amd64-obsd-nat.c: Include "amd64-bsd-nat.h". + (the_amd64_obsd_nat_target): New. + (_initialize_amd64obsd_nat): Adjust to C++ification. + * arm-fbsd-nat.c (arm_fbsd_nat_target): New. + (the_arm_fbsd_nat_target): New. + (arm_fbsd_fetch_inferior_registers) + (arm_fbsd_store_inferior_registers, arm_fbsd_read_description): + (_initialize_arm_fbsd_nat): Refactor as methods of + arm_fbsd_nat_target. + (_initialize_arm_fbsd_nat): Adjust to C++ification. + * arm-nbsd-nat.c (arm_netbsd_nat_target): New class. + (the_arm_netbsd_nat_target): New. + (armnbsd_fetch_registers, armnbsd_store_registers): Refactor as + arm_netbsd_nat_target. + (_initialize_arm_netbsd_nat): Adjust to C++ification. + * hppa-nbsd-nat.c (hppa_nbsd_nat_target): New class. + (the_hppa_nbsd_nat_target): New. + (hppanbsd_fetch_registers, hppanbsd_store_registers): Refactor as + hppa_nbsd_nat_target methods. + (_initialize_hppanbsd_nat): Adjust to C++ification. + * hppa-obsd-nat.c (hppa_obsd_nat_target): New class. + (the_hppa_obsd_nat_target): New. + (hppaobsd_fetch_registers, hppaobsd_store_registers): Refactor as + methods of hppa_obsd_nat_target. + (_initialize_hppaobsd_nat): Adjust to C++ification. Use + add_target. + * i386-nbsd-nat.c (the_i386_nbsd_nat_target): New. + (_initialize_i386nbsd_nat): Adjust to C++ification. Use + add_target. + * i386-obsd-nat.c (the_i386_obsd_nat_target): New. + (_initialize_i386obsd_nat): Use add_target. + * m68k-bsd-nat.c (m68k_bsd_nat_target): New class. + (the_m68k_bsd_nat_target): New. + (m68kbsd_fetch_inferior_registers) + (m68kbsd_store_inferior_registers): Refactor as methods of + m68k_bsd_nat_target. + (_initialize_m68kbsd_nat): Adjust to C++ification. + * mips-fbsd-nat.c (mips_fbsd_nat_target): New class. + (the_mips_fbsd_nat_target): New. + (mips_fbsd_fetch_inferior_registers) + (mips_fbsd_store_inferior_registers): Refactor as methods of + mips_fbsd_nat_target. + (_initialize_mips_fbsd_nat): Adjust to C++ification. Use + add_target. + * mips-nbsd-nat.c (mips_nbsd_nat_target): New class. + (the_mips_nbsd_nat_target): New. + (mipsnbsd_fetch_inferior_registers) + (mipsnbsd_store_inferior_registers): Refactor as methods of + mips_nbsd_nat_target. + (_initialize_mipsnbsd_nat): Adjust to C++ification. + * mips64-obsd-nat.c (mips64_obsd_nat_target): New class. + (the_mips64_obsd_nat_target): New. + (mips64obsd_fetch_inferior_registers) + (mips64obsd_store_inferior_registers): Refactor as methods of + mips64_obsd_nat_target. + (_initialize_mips64obsd_nat): Adjust to C++ification. Use + add_target. + * nbsd-nat.c (nbsd_pid_to_exec_file): Refactor as method of + nbsd_nat_target. + * nbsd-nat.h: Include "inf-ptrace.h". + (nbsd_nat_target): New class. + * obsd-nat.c (obsd_pid_to_str, obsd_update_thread_list) + (obsd_wait): Refactor as methods of obsd_nat_target. + (obsd_add_target): Delete. + * obsd-nat.h: Include "inf-ptrace.h". + (obsd_nat_target): New class. + * ppc-fbsd-nat.c (ppc_fbsd_nat_target): New class. + (the_ppc_fbsd_nat_target): New. + (ppcfbsd_fetch_inferior_registers) + (ppcfbsd_store_inferior_registers): Refactor as methods of + ppc_fbsd_nat_target. + (_initialize_ppcfbsd_nat): Adjust to C++ification. Use + add_target. + * ppc-nbsd-nat.c (ppc_nbsd_nat_target): New class. + (the_ppc_nbsd_nat_target): New. + (ppcnbsd_fetch_inferior_registers) + (ppcnbsd_store_inferior_registers): Refactor as methods of + ppc_nbsd_nat_target. + (_initialize_ppcnbsd_nat): Adjust to C++ification. + * ppc-obsd-nat.c (ppc_obsd_nat_target): New class. + (the_ppc_obsd_nat_target): New. + (ppcobsd_fetch_registers, ppcobsd_store_registers): Refactor as + methods of ppc_obsd_nat_target. + (_initialize_ppcobsd_nat): Adjust to C++ification. Use + add_target. + * sh-nbsd-nat.c (sh_nbsd_nat_target): New class. + (the_sh_nbsd_nat_target): New. + (shnbsd_fetch_inferior_registers) + (shnbsd_store_inferior_registers): Refactor as methods of + sh_nbsd_nat_target. + (_initialize_shnbsd_nat): Adjust to C++ification. + * sparc-nat.c (sparc_xfer_wcookie): Make extern. + (inf_ptrace_xfer_partial): Delete. + (sparc_xfer_partial, sparc_target): Delete. + * sparc-nat.h (sparc_fetch_inferior_registers) + (sparc_store_inferior_registers, sparc_xfer_wcookie): Declare. + (sparc_target): Delete function declaration. + (sparc_target): New template class. + * sparc-nbsd-nat.c (the_sparc_nbsd_nat_target): New. + (_initialize_sparcnbsd_nat): Adjust to C++ification. + * sparc64-fbsd-nat.c (the_sparc64_fbsd_nat_target): New. + (_initialize_sparc64fbsd_nat): Adjust to C++ification. Use + add_target. + * sparc64-nbsd-nat.c (the_sparc64_nbsd_nat_target): New. + (_initialize_sparc64nbsd_nat): Adjust to C++ification. + * sparc64-obsd-nat.c (the_sparc64_obsd_nat_target): New. + (_initialize_sparc64obsd_nat): Adjust to C++ification. Use + add_target. + * vax-bsd-nat.c (vax_bsd_nat_target): New class. + (the_vax_bsd_nat_target): New. + (vaxbsd_fetch_inferior_registers) + (vaxbsd_store_inferior_registers): Refactor as vax_bsd_nat_target + methods. + (_initialize_vaxbsd_nat): Adjust to C++ification. + + * bsd-kvm.c (bsd_kvm_target): New class. + (bsd_kvm_ops): Now a bsd_kvm_target. + (bsd_kvm_open, bsd_kvm_close, bsd_kvm_xfer_partial) + (bsd_kvm_files_info, bsd_kvm_fetch_registers) + (bsd_kvm_thread_alive, bsd_kvm_pid_to_str): Refactor as methods of + bsd_kvm_target. + (bsd_kvm_return_one): Delete. + (bsd_kvm_add_target): Adjust to C++ification. + + * nto-procfs.c (nto_procfs_target, nto_procfs_target_native) + (nto_procfs_target_procfs): New classes. + (procfs_open_1, procfs_thread_alive, procfs_update_thread_list) + (procfs_files_info, procfs_pid_to_exec_file, procfs_attach) + (procfs_post_attach, procfs_wait, procfs_fetch_registers) + (procfs_xfer_partial, procfs_detach, procfs_insert_breakpoint) + (procfs_remove_breakpoint, procfs_insert_hw_breakpoint) + (procfs_remove_hw_breakpoint, procfs_resume) + (procfs_mourn_inferior, procfs_create_inferior, procfs_interrupt) + (procfs_kill_inferior, procfs_store_registers) + (procfs_pass_signals, procfs_pid_to_str, procfs_can_run): Refactor + as methods of nto_procfs_target. + (nto_procfs_ops): Now an nto_procfs_target_procfs. + (nto_native_ops): Delete. + (procfs_open, procfs_native_open): Delete. + (nto_native_ops): Now an nto_procfs_target_native. + (init_procfs_targets): Adjust to C++ification. + (procfs_can_use_hw_breakpoint, procfs_remove_hw_watchpoint) + (procfs_insert_hw_watchpoint, procfs_stopped_by_watchpoint): + Refactor as methods of nto_procfs_target. + + * go32-nat.c (go32_nat_target): New class. + (the_go32_nat_target): New. + (go32_attach, go32_resume, go32_wait, go32_fetch_registers) + (go32_store_registers, go32_xfer_partial, go32_files_info) + (go32_kill_inferior, go32_create_inferior, go32_mourn_inferior) + (go32_terminal_init, go32_terminal_info, go32_terminal_inferior) + (go32_terminal_ours, go32_pass_ctrlc, go32_thread_alive) + (go32_pid_to_str): Refactor as methods of go32_nat_target. + (go32_target): Delete. + (_initialize_go32_nat): Adjust to C++ification. + + * gnu-nat.c (gnu_wait, gnu_resume, gnu_kill_inferior) + (gnu_mourn_inferior, gnu_create_inferior, gnu_attach, gnu_detach) + (gnu_stop, gnu_thread_alive, gnu_xfer_partial) + (gnu_find_memory_regions, gnu_pid_to_str): Refactor as methods of + gnu_nat_target. + (gnu_target): Delete. + * gnu-nat.h (gnu_target): Delete. + (gnu_nat_target): New class. + * i386-gnu-nat.c (gnu_base_target): New. + (i386_gnu_nat_target): New class. + (the_i386_gnu_nat_target): New. + (_initialize_i386gnu_nat): Adjust to C++ification. + +2018-05-02 Pedro Alves + + * bfd-target.c (target_bfd_xclose): Rename to ... + (target_bfd_close): ... this. + (target_bfd_reopen): Adjust. + * target.c (target_close): Remove references to to_xclose. + * target.h (target_ops::to_xclose): Delete. + (target_ops::to_close): Update comments. + +2018-05-02 Pedro Alves + + * alpha-linux-nat.c: Include "linux-nat-trad.h" instead of + "linux-nat.h". + * configure.nat (alpha-linux, linux-mips): Add linux-nat-trad.o. + * inf-ptrace.c (inf_ptrace_register_u_offset) + (inf_ptrace_fetch_register, inf_ptrace_fetch_registers) + (inf_ptrace_store_register, inf_ptrace_store_registers) + (inf_ptrace_trad_target): Move to ... + * linux-nat-trad.c: ... this new file. + * linux-nat-trad.h: New file. + * linux-nat.c (linux_target_install_ops): Make extern. + (linux_trad_target): Delete. + * linux-nat.h (linux_trad_target): Delete declaration. + (linux_target_install_ops): Declare. + * mips-linux-nat.c: Include "linux-nat-trad.h" instead of + "linux-nat.h". + +2018-05-02 Pedro Alves + + * i386-sol2-nat.c (_initialize_amd64_sol2_nat): Don't call + procfs_target/add_target here. + * procfs.c (procfs_target): Make static. + (_initialize_procfs): Call add_target here. + * procfs.h (struct target_ops): Remove forward declaration. + (procfs_target): Remove declaration. + * sparc-sol2-nat.c (_initialize_sparc_sol2_nat): Delete. + +2018-05-02 Pedro Alves + + * procfs.c (procfs_stopped_by_watchpoint) + (procfs_insert_watchpoint, procfs_remove_watchpoint) + (procfs_region_ok_for_hw_watchpoint, procfs_stopped_data_address): + Forward declare. + (procfs_use_watchpoints): Delete, move contents... + (procfs_target): ... here. + * procfs.h (procfs_use_watchpoints): Delete declaration. + * i386-sol2-nat.c (_initialize_amd64_sol2_nat): Don't call + procfs_use_watchpoints. + * sparc-sol2-nat.c (_initialize_sparc_sol2_nat): Don't call + procfs_use_watchpoints. + +2018-05-02 Tom Tromey + + PR python/20084: + * python/python.c (gdbpy_parameter_value): Handle var_zuinteger + and var_zuinteger_unlimited. + * python/py-param.c (struct parm_constant): Add PARAM_ZUINTEGER + and PARAM_ZUINTEGER_UNLIMITED. + (set_parameter_value): Handle var_zuinteger and + var_zuinteger_unlimited. + (add_setshow_generic): Likewise. + (parmpy_init): Likewise. + +2018-04-28 Dan Robertson + + PR rust/23124 + * gdb/rust-exp.y (convert_params_to_types): Ensure that the params + pointer is not null before dereferencing it. + +2018-04-30 Tom Tromey + + * darwin-nat-info.c (darwin_debug_regions_recurse): Remove use of + is_mi_like_p. + +2018-04-30 Tom Tromey + + * breakpoint.c (mention): Remove use of is_mi_like_p. + (print_mention_ranged_breakpoint): Likewise. + * break-catch-throw.c (print_it_exception_catchpoint): Remove use + of is_mi_like_p. + +2018-04-30 Tom Tromey + + * tracepoint.c (tvariables_info_1): Remove use of is_mi_like_p. + +2018-04-30 Tom Tromey + + * spu-tdep.c (info_spu_mailbox_list, info_spu_dma_cmdlist) + (info_spu_event_command): Remove some uses of is_mi_like_p. + +2018-04-30 Tom Tromey + + * python/py-framefilter.c (py_print_single_arg) + (enumerate_locals, py_print_args, py_print_frame): Remove some + uses of is_mi_like_p. + +2018-04-30 Tom Tromey + + * ui-out.c: Update. + * cli-out.h (cli_ui_out::do_is_mi_like_p): Update. + * ui-out.h (ui_out::is_mi_like_p): Now const. + (ui_out::do_is_mi_like_p): Now const. + * mi/mi-out.h (mi_ui_out::do_is_mi_like_p): Update. + +2018-04-30 Tom Tromey + + * varobj.c (varobj_set_visualizer): Use new_reference. + * python/python.c (gdbpy_decode_line): Use new_reference. + * python/py-cmd.c (cmdpy_function, cmdpy_completer_helper): Use + new_reference. + +2018-04-30 Tom Tromey + + * varobj.c (install_new_value): Use new_reference. + * value.h (value_incref): Return void. Swap intro comment with + value_decref. + * value.c (set_value_parent): Use new_reference. + (value_incref): Return void. Update intro comment. + (release_value): Use new_reference. + * dwarf2loc.c (dwarf2_evaluate_loc_desc_full): Use new_reference. + +2018-04-30 Tom Tromey + + * symfile-mem.c (symbol_file_add_from_memory): Use new_reference. + * gdb_bfd.h (new_bfd_ref): Remove. + (gdb_bfd_open): Update comment. + * gdb_bfd.c (gdb_bfd_open, gdb_bfd_fopen, gdb_bfd_openr) + (gdb_bfd_openw, gdb_bfd_openr_iovec, gdb_bfd_record_inclusion) + (gdb_bfd_fdopenr): Use new_reference. + * exec.c (exec_file_attach): Use new_reference. + +2018-04-30 Tom Tromey + + * common/gdb_ref_ptr.h (ref_ptr::new_reference): New static + method. + +2018-04-30 Tom Tromey + + * jit.c (jit_read_code_entry): Use type_align. + * i386-tdep.c (i386_gdbarch_init): Don't call + set_gdbarch_long_long_align_bit. + * gdbarch.sh: Remove long_long_align_bit. + * gdbarch.c, gdbarch.h: Rebuild. + * arc-tdep.c (arc_type_align): New function. + (arc_gdbarch_init): Use arc_type_align. Don't call + set_gdbarch_long_long_align_bit. + +2018-04-30 Tom Tromey + + * rust-lang.c (rust_type_alignment): Remove. + (rust_composite_type): Use type_align. + +2018-04-30 Tom Tromey + + * NEWS: Mention Type.align. + * python/py-type.c (typy_get_alignof): New function. + (type_object_getset): Add "alignof". + +2018-04-30 Tom Tromey + + PR exp/17095: + * NEWS: Update. + * std-operator.def (UNOP_ALIGNOF): New operator. + * expprint.c (dump_subexp_body_standard) : + New. + * eval.c (evaluate_subexp_standard) : New. + * c-lang.c (c_op_print_tab): Add alignof. + * c-exp.y (ALIGNOF): New token. + (exp): Add "ALIGNOF" production. + (ident_tokens): Add _Alignof and alignof. + +2018-04-30 Tom Tromey + + * i386-tdep.c (i386_type_align): New function. + (i386_gdbarch_init): Update. + * gdbarch.sh (type_align): New method. + * gdbarch.c, gdbarch.h: Rebuild. + * arch-utils.h (default_type_align): Declare. + * arch-utils.c (default_type_align): New function. + * gdbtypes.h (TYPE_ALIGN_BITS): New define. + (struct type) : New field. + : Now a bitfield. + (TYPE_RAW_ALIGN): New macro. + (type_align, type_raw_align, set_type_align): Declare. + * gdbtypes.c (type_align, type_raw_align, set_type_align): New + functions. + * dwarf2read.c (quirk_rust_enum): Set type alignment. + (get_alignment, maybe_set_alignment): New functions. + (read_structure_type, read_enumeration_type, read_array_type) + (read_set_type, read_tag_pointer_type, read_tag_reference_type) + (read_subrange_type, read_base_type): Set type alignment. + +2018-04-30 Simon Marchi + + * dwarf2read.c (read_index_from_section): Use bool. + +2018-04-29 Fabian Groffen + + PR gdb/22950 + * proc-events.c (init_syscall_table): Guard usage os SYS_uuidsys + with #ifdef. + +2018-04-29 John Reiser + + PR build/22873 + * gdb/Makefile.in: (.c:.l, .c:.y): Write the target only in the + last step, and do it atomically. + +2018-04-27 Alexandre Oliva + + * compile/compile-c-types.c (convert_int, convert_float): + Update for C FE v1. + +2018-04-27 Tom Tromey + + PR rust/22545: + * rust-lang.c (rust_inclusive_range_type_p): New function. + (rust_range): Handle inclusive ranges. + (rust_compute_range): Likewise. + * rust-exp.y (struct rust_op) : New field. + (DOTDOTEQ): New constant. + (range_expr): Add "..=" productions. + (operator_tokens): Add "..=" token. + (ast_range): Add "inclusive" parameter. + (convert_ast_to_expression) : Handle inclusive + ranges. + * parse.c (operator_length_standard) : Handle new + bounds values. + * expression.h (enum range_type) : New constants. + Update comments. + * expprint.c (print_subexp_standard): Handle new bounds values. + (dump_subexp_body_standard): Likewise. + +2018-04-27 Tom Tromey + + * configure: Rebuild. + * warning.m4 (AM_GDB_WARNINGS): Add -Wsuggest-override. + * dwarf2loc.c (class dwarf_evaluate_loc_desc): Use "override", not + "OVERRIDE". + (class symbol_needs_eval_context): Likewise. + * dwarf2read.c (mock_mapped_index::symbol_name_count) + (mock_mapped_index::symbol_name_at): Use "override". Remove + "virtual". + * dwarf2-frame.c (dwarf_expr_executor::get_addr_index): Use + "override". + (class dwarf_expr_executor): Use "override", not "OVERRIDE". + * aarch64-tdep.c (instruction_reader::read): Use "override". + (instruction_reader_test::read): Likewise. + * arm-tdep.c (instruction_reader::read): Use "override". + (instruction_reader_thumb::read): Likewise. + +2018-04-26 Andrzej Kaczmarek + + PR remote/9665 + * remote.c (send_g_packet): Use putpkt/getpkt/packet_check_result + instead of remote_send. + (remote_send): Remove. + +2018-04-26 Pedro Alves + + * elfread.c (elf_gnu_ifunc_resolver_return_stop): Use + find_function_start_sal instead of find_pc_line. + +2018-04-26 Pedro Alves + + * breakpoint.c (set_breakpoint_location_function): Handle + mst_data_gnu_ifunc. + * c-exp.y (variable production): Handle mst_data_gnu_ifunc. + * elfread.c (elf_symtab_read): Give data symbols with + BSF_GNU_INDIRECT_FUNCTION set mst_data_gnu_ifunc type. + (elf_rel_plt_read): Update comment. + * linespec.c (convert_linespec_to_sals): Handle + mst_data_gnu_ifunc. + (minsym_found): Handle mst_data_gnu_ifunc. + * minsyms.c (msymbol_is_function, minimal_symbol_reader::record) + (find_solib_trampoline_target): Handle mst_data_gnu_ifunc. + * parse.c (find_minsym_type_and_address): Handle + mst_data_gnu_ifunc. + * symmisc.c (dump_msymbols): Handle mst_data_gnu_ifunc. + * symtab.c (find_gnu_ifunc): Handle mst_data_gnu_ifunc. + * symtab.h (minimal_symbol_type) : Update + comment. + : New enumerator. + +2018-04-26 Pedro Alves + + * minsyms.c (lookup_minimal_symbol_by_pc_section_1): Rename to ... + (lookup_minimal_symbol_by_pc_section): ... this. Replace + 'want_trampoline' parameter by a lookup_msym_prefer parameter. + Handle it. + (lookup_minimal_symbol_by_pc_section): Delete old implementation. + (lookup_minimal_symbol_by_pc): Adjust. + (in_gnu_ifunc_stub): Prefer GNU ifunc symbols. + (lookup_solib_trampoline_symbol_by_pc): Adjust. + * minsyms.h (lookup_msym_prefer): New enum. + (lookup_minimal_symbol_by_pc_section): Replace 'want_trampoline' + parameter by a lookup_msym_prefer parameter. + +2018-04-26 Pedro Alves + + * elfread.c (elf_gnu_ifunc_record_cache): Check if the symbol name + ends in "@plt" instead of looking at the symbol's section. + +2018-04-26 Pedro Alves + + * blockframe.c (cache_pc_function_is_gnu_ifunc): Delete. Remove + all references. + (find_pc_partial_function_gnu_ifunc): Rename to ... + (find_pc_partial_function): ... this, and remove references to + 'is_gnu_ifunc_p'. + (find_pc_partial_function): Delete old implementation. + * symtab.h (find_pc_partial_function_gnu_ifunc): Delete. + +2018-04-26 Pedro Alves + + * linespec.c (struct bound_minimal_symbol_search_key): New. + (convert_linespec_to_sals): Sort minimal symbols earlier. Don't + skip first line if we found a GNU ifunc minimal symbol by name. + (compare_msymbols): Change parameters to work with a destructured + lhs minsym. + (compare_msymbols_for_qsort, compare_msymbols_for_bsearch): New + functions. + +2018-04-26 Pedro Alves + + * breakpoint.c (set_breakpoint_location_function): Don't resolve + ifunc targets here. Instead, if we have an ifunc minsym, use its + address/name. + (add_location_to_breakpoint): Store the minsym and the objfile in + the breakpoint location. + * breakpoint.h (bp_location) : New fields. + * linespec.c (minsym_found): Resolve GNU ifunc targets here. + Record the minsym in the sal. + * symtab.h (symtab_and_line) : New field. + +2018-04-26 Pedro Alves + + * elfread.c (elf_gnu_ifunc_resolve_by_got): Don't write to *ADDR_P + unless we actually resolved the ifunc. + +2018-04-26 Pedro Alves + + * c-exp.y (variable production): Prefer ifunc minsyms over + regular function symbols. + * symtab.c (find_gnu_ifunc): New function. + * minsyms.h (lookup_msym_prefer): New enum. + (lookup_minimal_symbol_by_pc_section): Replace 'want_trampoline' + parameter by a lookup_msym_prefer parameter. + * symtab.h (find_gnu_ifunc): New declaration. + +2018-04-26 Pedro Alves + + * blockframe.c (find_gnu_ifunc_target_type): New function. + (find_function_type): New. + * eval.c (evaluate_var_msym_value): For GNU ifunc types, always + return a value with a memory address. + (eval_call): For calls to GNU ifunc functions, try to find the + type of the target function from the type that the resolver + returns. + * gdbtypes.c (objfile_type): Don't install a return type for ifunc + symbols. + * infcall.c (find_function_return_type): Delete. + (find_function_addr): Add 'function_type' parameter. For calls to + GNU ifunc functions, try to find the type of the target function + from the type that the resolver returns, and return it via + FUNCTION_TYPE. + (call_function_by_hand_dummy): Adjust to use the function type + returned by find_function_addr. + (find_function_addr): Add 'function_type' parameter and move + description here. + * symtab.h (find_function_type, find_gnu_ifunc_target_type): New + declarations. + +2018-04-26 Pedro Alves + + * c-exp.y (variable production): Skip finding an alias for ifunc + symbols. + +2018-04-26 Pedro Alves + + * elfread.c (elf_rel_plt_read): Look for relocations for .got.plt too. + +2018-04-25 Pedro Alves + + * infcmd.c (kill_command): Print the pid as string, not the whole + thread's ptid. Add comment. s/has been killed/killed/ in output + message. + * remote.c (remote_detach_1): Print the pid as string, not the + whole thread's ptid. + +2018-04-24 Jan Kratochvil + Sergio Durigan Junior + Pedro Alves + + * infcmd.c (kill_command): Print message when inferior has + been killed. + * inferior.c (print_inferior_events): Remove 'static'. Set as + '1'. + (add_inferior): Improve message printed when + 'print_inferior_events' is on. + (exit_inferior): Remove message printed when + 'print_inferior_events' is on. + (detach_inferior): Improve message printed when + 'print_inferior_events' is on. + (initialize_inferiors): Use 'add_inferior_silent' to set + 'current_inferior_'. + * inferior.h (print_inferior_events): Declare here as + 'extern'. + * infrun.c (follow_fork_inferior): Print '[Attaching...]' or + '[Detaching...]' messages when 'print_inferior_events' is on. + Use 'add_thread_silent' instead of 'add_thread'. Add '[' and ']' + as prefix/suffix for messages. Remove periods. Fix erroneous + 'Detaching after fork from child...', replace it by '... from + parent...'. + (handle_vfork_child_exec_or_exit): Add '[' and ']' as + prefix/suffix when printing 'Detaching...' messages. Print + them when 'print_inferior_events' is on. + * remote.c (remote_detach_1): Print message when detaching + from inferior and '!is_fork_parent'. + +2018-04-24 Tom Tromey + + * cli-out.h: Reindent. + +2018-04-24 Tom Tromey + + * cli-out.c (cli_ui_out::out_field_fmt): Remove. + (cli_ui_out::do_field_string): Use fputs_filtered. + * cli-out.h (class cli_ui_out) : Remove. + +2018-04-23 Tom Tromey + + * guile/scm-frame.c (gdbscm_frame_read_var): Use + gdb::unique_xmalloc_ptr. + +2018-04-23 Tom Tromey + + * configure: Rebuild. + +2018-04-22 Rajendra SY + + PR gdb/23095 + * gdb/testsuite/gdb.base/break-probes.exp: Pass shlib_load to + prepare_for_testing. Set normal_bp to r_debug_state if target + is bsd. + +2018-04-21 Pedro Alves + Rajendra SY + + * inf-ptrace.c (inf_ptrace_attach): Mark the thread as executing. + * remote.c (extended_remote_attach): In all-stop mode, mark the + thread as executing. + +2018-04-19 Philippe Waroquiers + + * thread.c (thread_apply_all_command): Fix comment. + (thread_command): Fix comment. + +2018-04-10 Alan Hayward + + * common/tdesc.h (tdesc_create_feature): Remove xml filename + parameter. + * features/aarch64-core.c (create_feature_aarch64_core): + Regenerate. + * features/aarch64-fpu.c (create_feature_aarch64_fpu): + Likewise. + * features/i386/32bit-avx.c (create_feature_i386_32bit_avx): + Likewise. + * features/i386/32bit-avx512.c + (create_feature_i386_32bit_avx512): Likewise. + * features/i386/32bit-core.c (create_feature_i386_32bit_core): + Likewise. + * features/i386/32bit-linux.c (create_feature_i386_32bit_linux): + Likewise. + * features/i386/32bit-mpx.c (create_feature_i386_32bit_mpx): + Likewise. + * features/i386/32bit-pkeys.c (create_feature_i386_32bit_pkeys): + Likewise. + * features/i386/32bit-sse.c (create_feature_i386_32bit_sse): + Likewise. + * features/i386/64bit-avx.c (create_feature_i386_64bit_avx): + Likewise. + * features/i386/64bit-avx512.c + (create_feature_i386_64bit_avx512): Likewise. + * features/i386/64bit-core.c (create_feature_i386_64bit_core): + Likewise. + * features/i386/64bit-linux.c (create_feature_i386_64bit_linux): + Likewise. + * features/i386/64bit-mpx.c (create_feature_i386_64bit_mpx): + Likewise. + * features/i386/64bit-pkeys.c (create_feature_i386_64bit_pkeys): + Likewise. + * features/i386/64bit-segments.c + (create_feature_i386_64bit_segments): Likewise. + * features/i386/64bit-sse.c (create_feature_i386_64bit_sse): + Likewise. + * features/i386/x32-core.c + (create_feature_i386_x32_core): Likewise. + * features/tic6x-c6xp.c (create_feature_tic6x_c6xp): Likewise. + * features/tic6x-core.c (create_feature_tic6x_core): Likewise. + * features/tic6x-gp.c (create_feature_tic6x_gp): Likewise. + * target-descriptions.c: In generated code, don't pass xml + filename. + +2018-04-18 Alan Hayward + + * common/tdesc.c (print_xml_feature::visit_pre): Add xml parsing. + (print_xml_feature::visit_post): Likewise. + (print_xml_feature::visit): Likewise. + * common/tdesc.h (tdesc_get_features_xml): Use const tdesc. + (print_xml_feature): Add new class. + * regformats/regdat.sh: Null xmltarget on feature targets. + * target-descriptions.c (struct target_desc): Add xmltarget. + (maintenance_check_tdesc_xml_convert): Add unittest function. + (tdesc_get_features_xml): Add function to get xml. + (maintenance_check_xml_descriptions): Test xml generation. + * xml-tdesc.c (string_read_description_xml): Add function. + * xml-tdesc.h (string_read_description_xml): Add declaration. + +2018-04-18 Alan Hayward + + * features/Makefile: Add feature marker to targets with new style + target descriptions. + * regformats/aarch64.dat: Regenerate. + * regformats/i386/amd64-avx-avx512-linux.dat: Likewise. + * regformats/i386/amd64-avx-linux.dat: Likewise. + * regformats/i386/amd64-avx-mpx-avx512-pku-linux.dat: Likewise. + * regformats/i386/amd64-avx-mpx-linux.dat: Likewise. + * regformats/i386/amd64-linux.dat: Likewise. + * regformats/i386/amd64-mpx-linux.dat: Likewise. + * regformats/i386/amd64.dat: Likewise. + * regformats/i386/i386-avx-avx512-linux.dat: Likewise. + * regformats/i386/i386-avx-linux.dat: Likewise. + * regformats/i386/i386-avx-mpx-avx512-pku-linux.dat: Likewise. + * regformats/i386/i386-avx-mpx-linux.dat: Likewise. + * regformats/i386/i386-linux.dat: Likewise. + * regformats/i386/i386-mmx-linux.dat: Likewise. + * regformats/i386/i386-mpx-linux.dat: Likewise. + * regformats/i386/i386.dat: Likewise. + * regformats/i386/x32-avx-avx512-linux.dat: Likewise. + * regformats/i386/x32-avx-linux.dat: Likewise. + * regformats/i386/x32-linux.dat: Likewise. + * regformats/tic6x-c62x-linux.dat: Likewise. + * regformats/tic6x-c64x-linux.dat: Likewise. + * regformats/tic6x-c64xp-linux.dat: Likewise. + * regformats/regdat.sh: Parse feature marker. + +2018-04-18 Alan Hayward + + * common/tdesc.h (tdesc_architecture_name): Add new declaration. + (tdesc_osabi_name): Likewise. + * target-descriptions.c (tdesc_architecture_name): Add new + function. + (tdesc_osabi_name): Likewise. + +2018-04-18 Alan Hayward + + * common/tdesc.c (tdesc_predefined_type): Move to here. + (tdesc_named_type): Likewise. + (tdesc_create_vector): Likewise. + (tdesc_create_struct): Likewise. + (tdesc_set_struct_size): Likewise. + (tdesc_create_union): Likewise. + (tdesc_create_flags): Likewise. + (tdesc_create_enum): Likewise. + (tdesc_add_field): Likewise. + (tdesc_add_typed_bitfield): Likewise. + (tdesc_add_bitfield): Likewise. + (tdesc_add_flag): Likewise. + (tdesc_add_enum_value): Likewise. + * common/tdesc.h (struct tdesc_type_builtin): Likewise. + (struct tdesc_type_vector): Likewise. + (struct tdesc_type_field): Likewise. + (struct tdesc_type_with_fields): Likewise. + (tdesc_create_enum): Add declaration. + (tdesc_add_typed_bitfield): Likewise. + (tdesc_add_enum_value): Likewise. + * target-descriptions.c (tdesc_type_field): Move from here. + (tdesc_type_builtin): Likewise. + (tdesc_type_vector): Likewise. + (tdesc_type_with_fields): Likewise. + (tdesc_predefined_types): Likewise. + (tdesc_named_type): Likewise. + (tdesc_create_vector): Likewise. + (tdesc_create_struct): Likewise. + (tdesc_set_struct_size): Likewise. + (tdesc_create_union): Likewise. + (tdesc_create_flags): Likewise. + (tdesc_create_enum): Likewise. + (tdesc_add_field): Likewise. + (tdesc_add_typed_bitfield): Likewise. + (tdesc_add_bitfield): Likewise. + (tdesc_add_flag): Likewise. + (tdesc_add_enum_value): Likewise. + * gdb/target-descriptions.h (tdesc_create_enum): Likewise. + (tdesc_add_typed_bitfield): Likewise. + (tdesc_add_enum_value): Likewise. + +2018-04-18 Alan Hayward + + * common/tdesc.c (tdesc_feature::accept): Move to here. + (tdesc_feature::operator==): Likewise. + (tdesc_create_reg): Likewise. + * common/tdesc.h (tdesc_type_kind): Likewise. + (struct tdesc_type): Likewise. + (struct tdesc_feature): Likewise. + * regformats/regdat.sh: Create a feature. + * target-descriptions.c (tdesc_type_kind): Move from here. + (tdesc_type): Likewise. + (tdesc_type_up): Likewise. + (tdesc_feature): Likewise. + (tdesc_create_reg): Likewise. + +2018-04-18 Alan Hayward + + * Makefile.in: Add arch/tdesc.c + * common/tdesc.c: New file. + * common/tdesc.h (tdesc_element_visitor): Move to here. + (tdesc_element): Likewise. + (tdesc_reg): Likewise. + (tdesc_reg_up): Likewise. + * regformats/regdef.h (reg): Add offset to constructors. + * target-descriptions.c (tdesc_element_visitor): Move from here. + (tdesc_element): Likewise. + (tdesc_reg): Likewise. + (tdesc_reg_up): Likewise. + +2018-04-17 Tom Tromey + + * dwarf2read.c (quirk_rust_enum): Conditionally drop the + discriminant field. + +2018-04-17 Tom Tromey + + * dwarf2read.c (quirk_rust_enum): Handle unions correctly. + +2018-04-17 Andreas Arnez + + * symtab.c (print_symbol_info): Skip printing filename and line + number when `last' is NULL. + (symtab_symbol_info): Use empty string instead of NULL for first + invocation of print_symbol_info. + (rbreak_command): Pass NULL to `last' parameter of + print_symbol_info. + +2018-04-16 Simon Marchi + + * linux-tdep.c (linux_spu_make_corefile_notes): Return note_data + instead of nullptr. + +2018-04-16 Pedro Alves + + * MAINTAINERS (sh): Remove. + * Makefile.in (ALL_TARGET_OBS): Remove sh64-tdep.o. + (HFILES_NO_SRCDIR): Remove sh64-tdep.h. + (ALLDEPFILES): Remove sh64-tdep.c. + * NEWS: Mentions that support for SH-5/SH64 is removed. + * configure.tgt (sh*-*-linux*): Remove reference to sh64-tdep.o. + (sh*-*-openbsd*): Ditto. + (sh64-*-elf*): Remove. + (sh*): Remove. + * regcache.c (cooked_write_test): Remove bfd_mach_sh5 case. + * sh-linux-tdep.c: Remove reference to bfd_mach_sh5. + * sh-tdep.c: No longer include "sh64-tdep.h". + (sh_gdbarch_init): Remove reference to bfd_mach_sh5. + * sh64-tdep.c, sh64-tdep.h: Remove files. + +2018-04-16 Pedro Alves + + * MAINTAINERS: Remove m88k. + * Makefile.in (ALL_TARGET_OBS): Remove m88k-tdep.o. + (HFILES_NO_SRCDIR): Remove m88k-tdep.h. + (ALLDEPFILES): Remove m88k-bsd-nat.c and m88k-tdep.c. + * NEWS: Mention that support for m88k was removed. + * configure.host (m88*-*-*): Remove support. + * configure.nat (m88k-*-*): Remove support. + * configure.tgt (m88*-*-openbsd*): Remove. + * m88k-bsd-nat.c, m88k-tdep.c, m88k-tdep.h: Delete. + +2018-04-15 Simon Marchi + + * configure.tgt (x86_tobjs): New variable. + (amd64_tobjs, i386_tobjs): Use it. + +2018-04-13 Andreas Arnez + + * symtab.c (print_symbol_info): Precede the symbol definition by + the line number when available. + * NEWS: Advertise this enhancement. + +2018-04-13 Markus Metzger + + * NEWS (New options): announce set/show record btrace cpu. + * btrace.c: Include record-btrace.h. + (btrace_compute_ftrace_pt): Skip enabling errata workarounds if + the vendor is unknown. + (btrace_compute_ftrace_1): Add cpu parameter. Update callers. + Maybe overwrite the btrace configuration's cpu. + (btrace_compute_ftrace): Add cpu parameter. Update callers. + (btrace_fetch): Add cpu parameter. Update callers. + (btrace_maint_update_pt_packets): Call record_btrace_get_cpu. + Maybe overwrite the btrace configuration's cpu. Skip enabling + errata workarounds if the vendor is unknown. + * python/py-record-btrace.c: Include record-btrace.h. + (recpy_bt_begin, recpy_bt_end, recpy_bt_instruction_history) + (recpy_bt_function_call_history): Call record_btrace_get_cpu. + * record-btrace.c (record_btrace_cpu_state_kind): New. + (record_btrace_cpu): New. + (set_record_btrace_cpu_cmdlist): New. + (record_btrace_get_cpu): New. + (require_btrace_thread, record_btrace_info) + (record_btrace_resume_thread): Call record_btrace_get_cpu. + (cmd_set_record_btrace_cpu_none): New. + (cmd_set_record_btrace_cpu_auto): New. + (cmd_set_record_btrace_cpu): New. + (cmd_show_record_btrace_cpu): New. + (_initialize_record_btrace): Initialize set/show record btrace cpu + commands. + * record-btrace.h (record_btrace_get_cpu): New. + +2018-04-13 Markus Metzger + + * record.c (set_record_command): Fix typo in message. + +2018-04-13 Markus Metzger + + * record-btrace.c (cmd_set_record_btrace): Print sub-commands. + +2018-04-13 Markus Metzger + + * infrun.c (process_event_stop_test): Call + gdbarch_in_indirect_branch_thunk. + * gdbarch.sh (in_indirect_branch_thunk): New. + * gdbarch.c: Regenerated. + * gdbarch.h: Regenerated. + * x86-tdep.h: New. + * x86-tdep.c: New. + * Makefile.in (ALL_TARGET_OBS): Add x86-tdep.o. + (HFILES_NO_SRCDIR): Add x86-tdep.h. + (ALLDEPFILES): Add x86-tdep.c. + * arch-utils.h (default_in_indirect_branch_thunk): New. + * arch-utils.c (default_in_indirect_branch_thunk): New. + * i386-tdep: Include x86-tdep.h. + (i386_in_indirect_branch_thunk): New. + (i386_elf_init_abi): Set in_indirect_branch_thunk gdbarch + function. + * amd64-tdep: Include x86-tdep.h. + (amd64_in_indirect_branch_thunk): New. + (amd64_init_abi): Set in_indirect_branch_thunk gdbarch function. + +2018-04-12 Jan Kratochvil + + PR gdb/23053 + * dwarf-index-write.c (data_buf::grow) (write_one_signatured_type) + (recursively_write_psymbols) (debug_names::recursively_write_psymbols) + (debug_names::write_one_signatured_type): Fix -D_GLIBCXX_DEBUG + regression. + +2018-04-12 Tom Tromey + + * rust-lang.c (rust_print_struct_def): Remove univariant code. + (rust_evaluate_subexp): Likewise. + +2018-04-12 Pedro Alves + + * procfs.c (procfs_detach): Make forward declaration's prototype + match definition's protototype. + (proc_get_LDT_entry): Remove stale do_cleanups call. + +2018-04-12 Pedro Alves + + * target.h (target_ops::to_has_exited): Delete. + (target_has_exited): Delete. + * target-delegates.c: Regenerate. + +2018-04-11 Pedro Alves + + * target.c (fileio_fh_t::t): Add comment. + (target_fileio_pwrite, target_fileio_pread, target_fileio_fstat) + (target_fileio_close): Handle a NULL target. + (invalidate_fileio_fh): New. + (target_close): Call it. + * remote.c (remote_hostio_send_command): No longer check whether + remote_desc is open. + +2018-04-11 Pedro Alves + + * target.c (fileio_fh_t): Make it a named struct instead of a + typedef. + (fileio_fh_t::is_closed): New method. + (DEF_VEC_O (fileio_fh_t)): Remove. + (fileio_fhandles): Now a std::vector. + (is_closed_fileio_fh): Delete. + (acquire_fileio_fd): Adjust. Rename parameters. + (release_fileio_fd): Adjust. + (fileio_fd_to_fh): Reimplement as a function instead of a macro. + (target_fileio_pwrite, target_fileio_pread, target_fileio_fstat) + (target_fileio_close): Adjust. + +2018-04-10 Simon Marchi + + * auto-load.c (auto_load_safe_path_vec_update): Iterate by + index. + +2018-04-10 Pedro Alves + + * gdbthread.h (finish_thread_state_cleanup): Delete declaration. + (scoped_finish_thread_state): New class. + * infcmd.c (run_command_1): Use it instead of finish_thread_state + cleanup. + * infrun.c (proceed, prepare_for_detach, wait_for_inferior) + (fetch_inferior_event, normal_stop): Likewise. + * thread.c (finish_thread_state_cleanup): Delete. + +2018-04-09 Simon Marchi + Pedro Alves + + * value.c: Include "selftest.h" and "common/array-view.h". + (struct range) : New. + (test_ranges_contain): New. + (check_ranges_vector): New. + (test_insert_into_bit_range_vector): New. + (_initialize_values): Register selftests. + * common/array-view.h (operator==, operator!=): New. + +2018-04-09 Simon Marchi + + * common/gdb_vecs.h (unordered_remove): Add overload that takes + an iterator. + * inline-frame.c: Include . + (struct inline_state): Add constructor. + (inline_state_s): Remove. + (DEF_VEC_O(inline_state_s)): Remove. + (inline_states): Change type to std::vector. + (find_inline_frame_state): Adjust to std::vector. + (allocate_inline_frame_state): Remove. + (clear_inline_frame_state): Adjust to std::vector. + (skip_inline_frames): Adjust to std::vector. + +2018-04-09 Simon Marchi + + * tracepoint.h (struct trace_state_variable): Add constructor. + : Change type to std::string. + * tracepoint.c (tsv_s): Remove. + (DEF_VEC_O(tsv_s)): Remove. + (tvariables): Change to std::vector. + (create_trace_state_variable): Adjust to std::vector. + (find_trace_state_variable): Likewise. + (find_trace_state_variable_by_number): Likewise. + (delete_trace_state_variable): Likewise. + (trace_variable_command): Adjust to std::string. + (delete_trace_variable_command): Likewise. + (tvariables_info_1): Adjust to std::vector. + (save_trace_state_variables): Likewise. + (start_tracing): Likewise. + (merge_uploaded_trace_state_variables): Adjust to std::vector + and std::string. + * target.h (struct target_ops) + : Pass reference to + trace_state_variable. + * target-debug.h (target_debug_print_const_trace_state_variable_r): New. + * target-delegates.c: Re-generate. + * mi/mi-interp.c (mi_tsv_created): Adjust to std::string. + (mi_tsv_deleted): Likewise. + * mi/mi-main.c (mi_cmd_trace_frame_collected): Likewise. + * remote.c (remote_download_trace_state_variable): Change + pointer to reference and adjust. + * make-target-delegates (parse_argtypes): Handle references. + (write_function_header): Likewise. + (munge_type): Likewise. + +2018-04-09 Simon Marchi + + * Makefile.in (SUBDIR_UNITTESTS_SRCS): Add + string_view-selftests.c. + * unittests/basic_string_view/capacity/1.cc: Adapt to GDB + testsuite. + * unittests/basic_string_view/cons/char/1.cc: Likewise. + * unittests/basic_string_view/cons/char/2.cc: Likewise. + * unittests/basic_string_view/cons/char/3.cc: Likewise. + * unittests/basic_string_view/element_access/char/1.cc: + Likewise. + * unittests/basic_string_view/element_access/char/empty.cc: + Likewise. + * unittests/basic_string_view/element_access/char/front_back.cc: + Likewise. + * unittests/basic_string_view/inserters/char/2.cc: Likewise. + * unittests/basic_string_view/modifiers/remove_prefix/char/1.cc: + Likewise. + * unittests/basic_string_view/modifiers/remove_suffix/char/1.cc: + Likewise. + * unittests/basic_string_view/modifiers/swap/char/1.cc: + Likewise. + * unittests/basic_string_view/operations/compare/char/1.cc: + Likewise. + * unittests/basic_string_view/operations/compare/char/13650.cc: + Likewise. + * unittests/basic_string_view/operations/copy/char/1.cc: + Likewise. + * unittests/basic_string_view/operations/data/char/1.cc: + Likewise. + * unittests/basic_string_view/operations/find/char/1.cc: + Likewise. + * unittests/basic_string_view/operations/find/char/2.cc: + Likewise. + * unittests/basic_string_view/operations/find/char/3.cc: + Likewise. + * unittests/basic_string_view/operations/find/char/4.cc: + Likewise. + * unittests/basic_string_view/operations/rfind/char/1.cc: + Likewise. + * unittests/basic_string_view/operations/rfind/char/2.cc: + Likewise. + * unittests/basic_string_view/operations/rfind/char/3.cc: + Likewise. + * unittests/basic_string_view/operations/substr/char/1.cc: + Likewise. + * unittests/basic_string_view/operators/char/2.cc: Likewise. + * unittests/string_view-selftests.c: New file. + +2018-04-09 Simon Marchi + + * unittests/basic_string_view/capacity/1.cc: New file. + * unittests/basic_string_view/capacity/empty_neg.cc: New file. + * unittests/basic_string_view/cons/char/1.cc: New file. + * unittests/basic_string_view/cons/char/2.cc: New file. + * unittests/basic_string_view/cons/char/3.cc: New file. + * unittests/basic_string_view/cons/wchar_t/1.cc: New file. + * unittests/basic_string_view/cons/wchar_t/2.cc: New file. + * unittests/basic_string_view/cons/wchar_t/3.cc: New file. + * unittests/basic_string_view/element_access/char/1.cc: New file. + * unittests/basic_string_view/element_access/char/2.cc: New file. + * unittests/basic_string_view/element_access/char/empty.cc: New file. + * unittests/basic_string_view/element_access/char/front_back.cc: New file. + * unittests/basic_string_view/element_access/wchar_t/1.cc: New file. + * unittests/basic_string_view/element_access/wchar_t/2.cc: New file. + * unittests/basic_string_view/element_access/wchar_t/empty.cc: New file. + * unittests/basic_string_view/element_access/wchar_t/front_back.cc: New file. + * unittests/basic_string_view/include.cc: New file. + * unittests/basic_string_view/inserters/char/1.cc: New file. + * unittests/basic_string_view/inserters/char/2.cc: New file. + * unittests/basic_string_view/inserters/char/3.cc: New file. + * unittests/basic_string_view/inserters/pod/10081-out.cc: New file. + * unittests/basic_string_view/inserters/wchar_t/1.cc: New file. + * unittests/basic_string_view/inserters/wchar_t/2.cc: New file. + * unittests/basic_string_view/inserters/wchar_t/3.cc: New file. + * unittests/basic_string_view/literals/types.cc: New file. + * unittests/basic_string_view/literals/values.cc: New file. + * unittests/basic_string_view/modifiers/remove_prefix/char/1.cc: New file. + * unittests/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc: New file. + * unittests/basic_string_view/modifiers/remove_suffix/char/1.cc: New file. + * unittests/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc: New file. + * unittests/basic_string_view/modifiers/swap/char/1.cc: New file. + * unittests/basic_string_view/modifiers/swap/wchar_t/1.cc: New file. + * unittests/basic_string_view/operations/compare/char/1.cc: New file. + * unittests/basic_string_view/operations/compare/char/13650.cc: New file. + * unittests/basic_string_view/operations/compare/char/2.cc: New file. + * unittests/basic_string_view/operations/compare/char/70483.cc: New file. + * unittests/basic_string_view/operations/compare/wchar_t/1.cc: New file. + * unittests/basic_string_view/operations/compare/wchar_t/13650.cc: New file. + * unittests/basic_string_view/operations/compare/wchar_t/2.cc: New file. + * unittests/basic_string_view/operations/copy/char/1.cc: New file. + * unittests/basic_string_view/operations/copy/wchar_t/1.cc: New file. + * unittests/basic_string_view/operations/data/char/1.cc: New file. + * unittests/basic_string_view/operations/data/wchar_t/1.cc: New file. + * unittests/basic_string_view/operations/find/char/1.cc: New file. + * unittests/basic_string_view/operations/find/char/2.cc: New file. + * unittests/basic_string_view/operations/find/char/3.cc: New file. + * unittests/basic_string_view/operations/find/char/4.cc: New file. + * unittests/basic_string_view/operations/find/wchar_t/1.cc: New file. + * unittests/basic_string_view/operations/find/wchar_t/2.cc: New file. + * unittests/basic_string_view/operations/find/wchar_t/3.cc: New file. + * unittests/basic_string_view/operations/find/wchar_t/4.cc: New file. + * unittests/basic_string_view/operations/rfind/char/1.cc: New file. + * unittests/basic_string_view/operations/rfind/char/2.cc: New file. + * unittests/basic_string_view/operations/rfind/char/3.cc: New file. + * unittests/basic_string_view/operations/rfind/wchar_t/1.cc: New file. + * unittests/basic_string_view/operations/rfind/wchar_t/2.cc: New file. + * unittests/basic_string_view/operations/rfind/wchar_t/3.cc: New file. + * unittests/basic_string_view/operations/string_conversion/1.cc: New file. + * unittests/basic_string_view/operations/substr/char/1.cc: New file. + * unittests/basic_string_view/operations/substr/wchar_t/1.cc: New file. + * unittests/basic_string_view/operators/char/2.cc: New file. + * unittests/basic_string_view/operators/wchar_t/2.cc: New file. + * unittests/basic_string_view/range_access/char/1.cc: New file. + * unittests/basic_string_view/range_access/wchar_t/1.cc: New file. + * unittests/basic_string_view/requirements/explicit_instantiation/1.cc: New file. + * unittests/basic_string_view/requirements/explicit_instantiation/char/1.cc: New file. + * unittests/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc: New file. + * unittests/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc: New file. + * unittests/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc: New file. + * unittests/basic_string_view/requirements/typedefs.cc: New file. + * unittests/basic_string_view/typedefs.cc: New file. + * unittests/basic_string_view/types/1.cc: New file. + +2018-04-09 Simon Marchi + + * common/gdb_string_view.h: Remove libstdc++ implementation + details, adjust to gdb reality. + * common/gdb_string_view.tcc: Likewise. + * cli/cli-script.c (struct string_view): Remove. + (user_args) : Change element type to gdb::string_view. + (user_args::insert_args): Adjust. + +2018-04-09 Simon Marchi + + * common/gdb_string_view.h: New file. + * common/gdb_string_view.tcc: New file. + +2018-04-09 Simon Marchi + + * ax_cxx_compile_stdcxx.m4: Sync with upstream. + * configure: Re-generate. + +2018-04-09 Pedro Alves + + * gdbarch.sh: Include "observable.h" instead of "observer.h". + (set_target_gdbarch): Call + gdb::observers::architecture_changed.notify instead of + observer_notify_architecture_changed. + +2018-04-07 Simon Marchi + + * tracepoint.c (struct current_traceframe_cleanup): Remove. + (do_restore_current_traceframe_cleanup): Remove. + (restore_current_traceframe_cleanup_dtor): Remove. + (make_cleanup_restore_current_traceframe): Remove. + (scoped_restore_current_traceframe::scoped_restore_current_traceframe): + New. + * tracepoint.h (struct scoped_restore_current_traceframe): New. + * infrun.c (fetch_inferior_event): Use + scoped_restore_current_traceframe. + +2018-04-07 Simon Marchi + + * dwarf2read.h (struct dwarf2_per_objfile) : + Remove. + : Remove. + : Change to std::vector. + * dwarf2read.c (dwarf2_per_objfile::~dwarf2_per_objfile): Adjust + to std::vector change. + (dwarf2_per_objfile::get_cutu): Likewise. + (dwarf2_per_objfile::get_tu): Likewise. + (create_signatured_type_table_from_index): Likewise. + (create_signatured_type_table_from_debug_names): Likewise. + (dw2_symtab_iter_next): Likewise. + (dw2_print_stats): Likewise. + (dw2_expand_all_symtabs): Likewise. + (dw2_expand_marked_cus): Likewise. + (dw2_debug_names_iterator::next): Likewise. + (dwarf2_initialize_objfile): Likewise. + (add_signatured_type_cu_to_table): Likewise. + (create_all_type_units): Likewise. + (add_type_unit): Likewise. + (struct tu_abbrev_offset): Add constructor. + (build_type_psymtabs_1): Adjust to std::vector change. + (print_tu_stats): Likewise. + * dwarf-index-write.c (check_dwarf64_offsets): Likewise. + (write_debug_names): Likewise. + +2018-04-07 Simon Marchi + + * dwarf2read.h (struct dwarf2_per_objfile) : Likewise. + Make an std::vector. + : Remove. + * dwarf2read.c (dwarf2_per_objfile::~dwarf2_per_objfile): Adjust + to std::vector change. + (dwarf2_per_objfile::get_cutu): Likewise. + (dwarf2_per_objfile::get_cu): Likewise. + (create_cus_from_index): Likewise. + (create_addrmap_from_index): Likewise. + (create_addrmap_from_aranges): Likewise. + (dwarf2_read_index): Likewise. + (dw2_find_last_source_symtab): Likewise. + (dw2_map_symtabs_matching_filename): Likewise. + (dw2_symtab_iter_next): Likewise. + (dw2_print_stats): Likewise. + (dw2_expand_all_symtabs): Likewise. + (dw2_expand_symtabs_with_fullname): Likewise. + (dw2_expand_marked_cus): Likewise. + (dw2_map_symbol_filenames): Likewise. + (create_cus_from_debug_names): Likewise. + (dwarf2_read_debug_names): Likewise. + (dw2_debug_names_iterator::next): Likewise. + (dwarf2_initialize_objfile): Likewise. + (set_partial_user): Likewise. + (dwarf2_build_psymtabs_hard): Likewise. + (read_comp_units_from_section): Remove arguments, adjust to + std::vector change. + (create_all_comp_units): Adjust to std::vector and + read_comp_units_from_section changes. + (dwarf2_find_containing_comp_unit): Adjust to std::vector + change. + * dwarf-index-write.c (check_dwarf64_offsets): Likewise. + (psyms_seen_size): Likewise. + (write_gdbindex): Likewise. + (write_debug_names): Likewise. + +2018-04-07 Simon Marchi + + * dwarf2read.c (create_cus_from_index_list): Replace objfile arg + with dwarf2_per_objfile. + (create_cus_from_index): Likewise. + (create_signatured_type_table_from_index): Likewise. + (dwarf2_read_index): Likewise. + (dwarf2_initialize_objfile): Likewise. + (dwarf2_fetch_die_loc_sect_off): Get dwarf2_per_objfile from + per_cu rather than get_dwarf2_per_objfile. + +2018-04-07 Simon Marchi + + * dwarf2read.h (struct signatured_type): Forward declare. + (struct dwarf2_per_objfile) : + New methods. + * dwarf2read.c (dwarf2_per_objfile::get_cutu): Rename from... + (dw2_get_cutu): ...this. + (dwarf2_per_objfile::get_cu): Rename from... + (dw2_get_cu): ...this. + (dwarf2_per_objfile::get_tu): New. + (create_addrmap_from_index): Adjust. + (create_addrmap_from_aranges): Adjust. + (dw2_find_last_source_symtab): Adjust. + (dw2_map_symtabs_matching_filename): Adjust. + (dw2_symtab_iter_next): Adjust. + (dw2_print_stats): Adjust. + (dw2_expand_all_symtabs): Adjust. + (dw2_expand_symtabs_with_fullname): Adjust. + (dw2_expand_marked_cus): Adjust. + (dw_expand_symtabs_matching_file_matcher): Adjust. + (dw2_map_symbol_filenames): Adjust. + (dw2_debug_names_iterator::next): Adjust. + (dwarf2_initialize_objfile): Adjust. + (set_partial_user): Adjust. + (dwarf2_build_psymtabs_hard): Adjust. + +2018-04-07 Simon Marchi + + * dwarf2read.c (create_signatured_type_table_from_debug_names): + Remove unused variables. + (dw2_map_symtabs_matching_filename): Likewise. + (dwarf2_record_block_ranges): Likewise. + (dwarf2_read_addr_index): Likewise. + (follow_die_offset): Likewise. + +2018-04-07 Simon Marchi + + * progspace.c (clone_program_space): Pass SYMFILE_DEFER_BP_RESET + to symbol_file_add_main. + +2018-04-07 Simon Marchi + + PR mi/22299 + * mi/mi-console.c (do_fputc_async_safe): New. + (mi_console_file::write_async_safe): New. + (mi_console_file::flush): Adjust calls to fputstrn_unfiltered. + * mi/mi-console.h (class mi_console_file) : + New. + * ui-file.c (ui_file::putstrn): Adjust call to + fputstrn_unfiltered. + * utils.c (printchar): Replace do_fputs and do_fprintf + parameters by do_fputc. + (fputstr_filtered): Adjust call to printchar. + (fputstr_unfiltered): Likewise. + (fputstrn_filtered): Likewise. + (fputstrn_unfiltered): Add do_fputc parameter, pass to + printchar. + * utils.h (do_fputc_ftype): New typedef. + (fputstrn_unfiltered): Add do_fputc parameter. + +2018-04-07 Simon Marchi + + * regformats/i386/i386-avx.dat: Remove. + +2018-04-07 Simon Marchi + + PR gdb/22979 + * amd64-tdep.c (amd64_none_init_abi): New function. + (amd64_x32_none_init_abi): New function. + (_initialize_amd64_tdep): Register handlers for x86-64 and + x64_32 with GDB_OSABI_NONE. + * osabi.c (gdbarch_init_osabi): Allow running handlers for the + GDB_OSABI_NONE osabi. + +2018-04-07 Simon Marchi + + PR gdb/22980 + * defs.h (enum gdb_osabi): Remove GDB_OSABI_UNINITIALIZED, add + GDB_OSABI_NONE. + * arch-utils.c (gdbarch_info_init): Don't set info->osabi. + * osabi.c (gdb_osabi_names): Add "unknown" entry. + +2018-04-07 Simon Marchi + + * common/byte-vector.h (char_vector): New type. + * target.h (target_read_alloc): Return + gdb::optional. + (target_read_stralloc): Return gdb::optional. + (target_get_osdata): Return gdb::optional. + * target.c (target_read_alloc_1): Templatize. Replacement + manual memory management with vector. + (target_read_alloc): Change return type, adjust. + (target_read_stralloc): Change return type, adjust. + (target_get_osdata): Change return type, adjust. + * auxv.c (struct auxv_info) : Remove. + : Change type to gdb::optional. + (auxv_inferior_data_cleanup): Free auxv_info with delete. + (get_auxv_inferior_data): Allocate auxv_info with new, adjust. + (target_auxv_search): Adjust. + (fprint_target_auxv): Adjust. + * avr-tdep.c (avr_io_reg_read_command): Adjust. + * linux-tdep.c (linux_spu_make_corefile_notes): Adjust. + (linux_make_corefile_notes): Adjust. + * osdata.c (get_osdata): Adjust. + * remote.c (remote_get_threads_with_qxfer): Adjust. + (remote_memory_map): Adjust. + (remote_traceframe_info): Adjust. + (btrace_read_config): Adjust. + (remote_read_btrace): Adjust. + (remote_pid_to_exec_file): Adjust. + * solib-aix.c (solib_aix_get_library_list): Adjust. + * solib-dsbt.c (decode_loadmap): Don't free buf. + (dsbt_get_initial_loadmaps): Adjust. + * solib-svr4.c (svr4_current_sos_via_xfer_libraries): Adjust. + * solib-target.c (solib_target_current_sos): Adjust. + * tracepoint.c (sdata_make_value): Adjust. + * xml-support.c (xinclude_start_include): Adjust. + (xml_fetch_content_from_file): Adjust. + * xml-support.h (xml_fetch_another): Change return type. + (xml_fetch_content_from_file): Change return type. + * xml-syscall.c (xml_init_syscalls_info): Adjust. + * xml-tdesc.c (file_read_description_xml): Adjust. + (fetch_available_features_from_target): Change return type. + (target_fetch_description_xml): Adjust. + (target_read_description_xml): Adjust. + +2018-04-06 Tom Tromey + + * value.c (~value): Update. + (struct value) : Now unique_xmalloc_ptr. + (value_contents_bits_eq, allocate_value_contents) + (value_contents_raw, value_contents_all_raw) + (value_contents_for_printing, value_contents_for_printing_const) + (set_value_enclosing_type): Update. + +2018-04-06 Tom Tromey + + * value.c (range_s): Remove typedef, VEC. + (struct range): Add operator<. + (range_lessthan): Remove. + (ranges_contain): Change type. + (~value): Update. + (struct value) : Now std::vector. + (value_entirely_available) + (value_entirely_covered_by_range_vector) + (value_entirely_unavailable, value_entirely_optimized_out): + Update. + (insert_into_bit_range_vector): Change argument type. + (find_first_range_overlap): Likewise. + (struct ranges_and_idx, value_contents_bits_eq) + (require_not_optimized_out, require_available): Update. + (ranges_copy_adjusted): Change argument types. + (value_optimized_out, value_copy, value_fetch_lazy): Update. + +2018-04-06 Tom Tromey + + * value.c (~value): Update. + (struct value) : Now a value_ref_ptr. + (value_parent, set_value_parent, value_address, value_copy): + Update. + +2018-04-06 Tom Tromey + + * value.c (struct value): Add constructor, destructor, and member + initializers. + (allocate_value_lazy, value_decref): Update. + +2018-04-06 Tom Tromey + + * value.c (struct value) : Remove. + (all_values): Now a std::vector. + (allocate_value_lazy): Update. + (value_next): Remove. + (value_mark, value_free_to_mark, release_value) + (value_release_to_mark): Update. + +2018-04-06 Tom Tromey + + * value.h (fetch_subexp_value, value_release_to_mark): Update. + (free_value_chain): Remove. + * value.c (free_value_chain): Remove. + (value_release_to_mark): Return a std::vector. + * ppc-linux-nat.c (num_memory_accesses): Change "chain" to a + std::vector. + (check_condition): Update. + * eval.c (fetch_subexp_value): Change "val_chain" to a + std::vector. + * breakpoint.c (update_watchpoint): Update. + (can_use_hardware_watchpoint): Change "vals" to a std::vector. + +2018-04-06 Tom Tromey + + * value.h (free_all_values): Remove. + * value.c (free_all_values): Remove. + +2018-04-06 Tom Tromey + + * value.c (VALUE_HISTORY_CHUNK, struct value_history_chunk) + (value_history_chain, value_history_count): Remove. + (value_history): New global. + (record_latest_value, access_value_history, show_values) + (preserve_values): Update. + +2018-04-06 Tom Tromey + + * varobj.h (struct varobj) : Now a value_ref_ptr. + * varobj.c (varobj_set_display_format, varobj_set_value) + (install_default_visualizer, construct_visualizer) + (install_new_value, ~varobj, varobj_get_value_type) + (my_value_of_variable, varobj_editable_p): Update. + * c-varobj.c (c_describe_child, c_value_of_variable) + (cplus_number_of_children, cplus_describe_child): Update. + * ada-varobj.c (ada_number_of_children, ada_name_of_child) + (ada_path_expr_of_child, ada_value_of_child, ada_type_of_child) + (ada_value_of_variable, ada_value_is_changeable_p): Update. + +2018-04-06 Tom Tromey + + * printcmd.c (last_examine_address): Change type to + value_ref_ptr. + (do_examine, x_command): Update. + +2018-04-06 Tom Tromey + + * value.c (release_value): Update. + * breakpoint.h (struct watchpoint) : Now a value_ref_ptr. + (struct bpstats) : Now a value_ref_ptr. + * breakpoint.c (update_watchpoint, breakpoint_init_inferior) + (~bpstats, bpstats, bpstat_clear_actions, watchpoint_check) + (~watchpoint, print_it_watchpoint, watch_command_1) + (invalidate_bp_value_on_memory_change): Update. + +2018-04-06 Tom Tromey + + * varobj.c (varobj_clear_saved_item) + (update_dynamic_varobj_children, install_new_value, ~varobj): + Update. + * value.h (value_incref): Move declaration earlier. + (value_decref): Rename from value_free. + (struct value_ref_policy): New. + (value_ref_ptr): New typedef. + (struct value_deleter): Remove. + (gdb_value_up): Remove typedef. + (release_value): Change return type. + (release_value_or_incref): Remove. + * value.c (set_value_parent): Update. + (value_incref): Change return type. + (value_decref): Rename from value_free. + (value_free_to_mark, free_all_values, free_value_chain): Update. + (release_value): Return value_ref_ptr. + (release_value_or_incref): Remove. + (record_latest_value, set_internalvar, clear_internalvar): + Update. + * stack.c (info_frame_command): Don't call value_free. + * python/py-value.c (valpy_dealloc, valpy_new) + (value_to_value_object): Update. + * printcmd.c (do_examine): Update. + * opencl-lang.c (lval_func_free_closure): Update. + * mi/mi-main.c (register_changed_p): Don't call value_free. + * mep-tdep.c (mep_frame_prev_register): Don't call value_free. + * m88k-tdep.c (m88k_frame_prev_register): Don't call value_free. + * m68hc11-tdep.c (m68hc11_frame_prev_register): Don't call + value_free. + * guile/scm-value.c (vlscm_free_value_smob) + (vlscm_scm_from_value): Update. + * frame.c (frame_register_unwind, frame_unwind_register_signed) + (frame_unwind_register_unsigned, get_frame_register_bytes) + (put_frame_register_bytes): Don't call value_free. + * findvar.c (address_from_register): Don't call value_free. + * dwarf2read.c (dwarf2_compute_name): Don't call value_free. + * dwarf2loc.c (entry_data_value_free_closure) + (value_of_dwarf_reg_entry, free_pieced_value_closure) + (dwarf2_evaluate_loc_desc_full): Update. + * breakpoint.c (update_watchpoint, breakpoint_init_inferior) + (~bpstats, bpstats, bpstat_clear_actions, watchpoint_check) + (~watchpoint, watch_command_1) + (invalidate_bp_value_on_memory_change): Update. + * alpha-tdep.c (alpha_register_to_value): Don't call value_free. + +2018-04-06 Simon Marchi + + PR gdb/23022 + * warning.m4: Add -Wno-error=deprecated-register. + * configure: Re-generate. + +2018-04-05 Tom Tromey + + * linespec.h: Remove include of "vec.h". + +2018-04-05 Tom Tromey + + * linespec.c (typep): Remove typedef. + (find_methods, find_superclass_methods): Take a std::vector. + (find_method): Use std::vector. + +2018-04-05 Tom Tromey + + * utils.c (compare_strings): Remove. + * utils.h (compare_strings): Remove. + * objc-lang.h (find_imps): Update. + * objc-lang.c (find_methods): Take a std::vector. + (uniquify_strings, find_imps): Likewise. + * linespec.c (find_methods): Take a std::vector. + (decode_objc): Use std::vector. + (add_all_symbol_names_from_pspace, find_superclass_methods): Take + a std::vector. + (find_method, find_function_symbols): Use std::vector. + +2018-04-05 Tom Tromey + + * completer.c (completion_tracker::completion_tracker): Remove + cast. + (completion_tracker::discard_completions): Likewise. + * breakpoint.c (ambiguous_names_p): Remove cast. + * ada-lang.c (_initialize_ada_language): Remove cast. + * utils.h (streq): Update. + (streq_hash): Add new declaration. + * utils.c (streq): Return bool. + (streq_hash): New function. + +2018-04-05 Tom Tromey + + * linespec.c (event_location_to_sals) : + Remove a string copy. + +2018-04-05 Tom Tromey + + * linespec.c (filter_results): Use std::vector. + (decode_line_2, decode_line_full): Update. + +2018-04-05 Tom Tromey + + * linespec.c (canonical_to_fullform): Return std::string. + (filter_results): Update. + (struct decode_line_2_item): Add constructor. + : Now std::string. + (decode_line_2_compare_items): Now a std::sort comparator. + (decode_line_2): Update. + +2018-04-05 Tom Tromey + + * linespec.c (copy_token_string): Return a unique_xmalloc_ptr. + (unexpected_linespec_error): Update. + (linespec_parse_basic, parse_linespec): Update. + +2018-04-05 Tom Tromey + + * linespec.c (linespec_parse_basic): Reindent. + +2018-04-05 Tom Tromey + + * minsyms.h (iterate_over_minimal_symbols): Update. + * minsyms.c (iterate_over_minimal_symbols): Take a + gdb::function_view. + * linespec.c (struct collect_minsyms): Remove. + (compare_msyms): Now a std::sort comparator. + (add_minsym): Add parameters. + (search_minsyms_for_name): Update. Use std::vector. + +2018-04-03 Tom Tromey + + * mipsread.c (read_alphacoff_dynamic_symtab): Use + gdb::byte_vector. + +2018-04-02 Weimin Pan + + * MAINTAINERS (Write After Approval): Add Weimin Pan. + +2018-04-02 Weimin Pan + + PR gdb/16959 + * cp-valprint.c: (cp_print_static_field) Fix infinite recursion when + printing static type. + +2018-04-01 Tom Tromey + + * rs6000-nat.c (rs6000_ptrace_ldinfo): Return a byte_vector. + (rs6000_xfer_shared_libraries): Update. + +2018-04-01 Simon Marchi + + * common/gdb_vecs.h (char_ptr): Remove. + * tracepoint.c (encode_actions_1): Remove usage of char_ptr. + +2018-03-30 Simon Marchi + + * guile/scm-utils.c (gdbscm_parse_function_args): Replace VEC + with std::vector. + * common/gdb_vecs.h (DEF_VEC_P (char_ptr)): Remove. + +2018-03-30 Simon Marchi + + * tracepoint.h (struct uploaded_tp): Initialize fields. + : Change type to + std::vector. + * tracepoint.c (get_uploaded_tp): Allocate with new. + (free_uploaded_tps): Free with delete. + (parse_tracepoint_definition): Adjust to std::vector change. + * breakpoint.c (read_uploaded_action): Likewise. + (create_tracepoint_from_upload): Likewise. + * ctf.c (ctf_write_uploaded_tp): Likewise. + (SET_ARRAY_FIELD): Likewise. + * tracefile-tfile.c (tfile_write_uploaded_tp): Likewise. + +2018-03-30 Tom Tromey + + * solib-svr4.c (lm_info_read): Use gdb::byte_vector. Return + std::unique_ptr. + (svr4_keep_data_in_core): Update. + (svr4_read_so_list): Update. + +2018-03-30 Tom Tromey + + * windows-nat.c (handle_output_debug_string, handle_exception): + Update. + * target.h (target_read_string): Update. + * target.c (target_read_string): Change "string" to + unique_xmalloc_ptr. + * solib-svr4.c (open_symbol_file_object, svr4_read_so_list): + Update. + * solib-frv.c (frv_current_sos): Update. + * solib-dsbt.c (dsbt_current_sos): Update. + * solib-darwin.c (darwin_current_sos): Update. + * linux-thread-db.c (inferior_has_bug): Update. + * expprint.c (print_subexp_standard) : + Update. Remove alloca. + * ada-lang.c (ada_main_name): Update. + +2018-03-30 Tom Tromey + + * dwarf2read.c (struct free_dwo_file_cleanup_data): Remove. + (struct dwo_file_deleter): New. + (dwo_file_up): New typedef. + (open_and_init_dwo_file): Use dwo_file_up. + (free_dwo_file_cleanup): Remove. + +2018-03-30 Tom Tromey + + * dwarf2read.c (free_dwo_file): Remove "objfile" parameter. + (free_dwo_file_cleanup, free_dwo_file_from_slot): Update. + +2018-03-30 Tom Tromey + + * dwarf2read.c (class free_cached_comp_units): New class. + (dw2_instantiate_symtab, dwarf2_build_psymtabs_hard): Use it. + (free_cached_comp_units): Remove function. + +2018-03-30 Tom Tromey + + * utils.h (make_cleanup_unpush_target): Remove. + * inf-ptrace.c (struct target_unpusher): New. + (target_unpush_up) New typedef. + (inf_ptrace_create_inferior, inf_ptrace_attach): Use + target_unpush_up. + * utils.c (do_unpush_target, make_cleanup_unpush_target): Remove. + +2018-03-27 Tom Tromey + + * utils.c (prompt_for_continue): Use unique_xmalloc_ptr. + +2018-03-27 Pedro Alves + Tom Tromey + + * top.c (class gdb_readline_wrapper_cleanup): Add constructor, + destructor. Now a class. + (gdb_readline_wrapper_cleanup): Remove function. + (gdb_readline_wrapper): Remove cleanups. + +2018-03-27 Tom Tromey + + * typeprint.h (struct type_print_options) : Remove "struct" keyword. + (class typedef_hash_table): New class. + (recursively_update_typedef_hash, add_template_parameters) + (create_typedef_hash, free_typedef_hash, copy_typedef_hash) + (find_typedef_in_hash): Don't declare. + * typeprint.c (struct typedef_hash_table): Move to typeprint.h. + (typedef_hash_table::recursively_update): Rename from + recursively_update_typedef_hash. Now a member. + (typedef_hash_table::add_template_parameters): Rename from + add_template_parameters. Now a member. + (typedef_hash_table::typedef_hash_table): Now a constructor; + rename from create_typedef_hash. + (typedef_hash_table::~typedef_hash_table): Now a destructor; + rename from free_typedef_hash. + (do_free_typedef_hash, make_cleanup_free_typedef_hash) + (do_free_global_table): Remove. + (typedef_hash_table::typedef_hash_table): New constructor; renamed + from copy_type_recursive. + (create_global_typedef_table): Remove. + (typedef_hash_table::find_global_typedef): Now a member of + typedef_hash_table. + (typedef_hash_table::find_typedef): Rename from + find_typedef_in_hash; now a member. + (whatis_exp): Update. + * extension.h (struct ext_lang_type_printers): Add constructor and + destructor. + (start_ext_lang_type_printers, free_ext_lang_type_printers): Don't + declare. + * extension.c (ext_lang_type_printers::ext_lang_type_printers): + Now a constructor; rename from start_ext_lang_type_printers. + (ext_lang_type_printers): Now a destructor; rename from + free_ext_lang_type_printers. + * c-typeprint.c (find_typedef_for_canonicalize, c_print_type_1): + Update. + (c_type_print_base_struct_union): Update. Remove cleanups. + +2018-03-27 Tom Tromey + + * dwarf-index-write.c: Include . + +2018-03-27 Joel Brobecker + + * NEWS: Add entry describing new "set|show varsize-limit" command. + * ada-lang.c (_initialize_ada_language): Add "set/show varsize-limit" + command. + * printcmd.c (_initialize_printcmd): Add "set var" alias of + "set variable". + +2018-03-27 Simon Marchi + + * Makefile.in (COMMON_SFILES): Add dwarf-index-common.c and + dwarf-index-write.c + (HFILES_NO_SRCDIR): Add dwarf-index-common.h and dwarf2read.h. + * dwarf-index-common.c: New file. + * dwarf-index-common.h: New file. + * dwarf-index-write.c: New file. + * dwarf2read.c: Include dwarf2read.h and dwarf-index-common.h. + (struct dwarf2_section_info): Move from here. + (dwarf2_section_info_def): Likewise. + (DEF_VEC_O (dwarf2_section_info_def)): Likewise. + (offset_type): Likewise. + (DW2_GDB_INDEX_SYMBOL_STATIC_SET_VALUE): Likewise. + (DW2_GDB_INDEX_SYMBOL_KIND_SET_VALUE): Likewise. + (DW2_GDB_INDEX_CU_SET_VALUE): Likewise. + (byte_swap): Likewise. + (MAYBE_SWAP): Likewise. + (dwarf2_per_cu_ptr): Likewise. + (DEF_VEC_P (dwarf2_per_cu_ptr)): Likewise. + (struct tu_stats): Likewise. + (struct dwarf2_per_objfile): Likewise. + (struct dwarf2_per_cu_data): Likewise. + (struct signatured_type): Likewise. + (sig_type_ptr): Likewise. + (DEF_VEC_P (sig_type_ptr)): Likewise. + (INDEX4_SUFFIX): Likewise. + (INDEX5_SUFFIX): Likewise. + (DEBUG_STR_SUFFIX): Likewise. + (dwarf2_read_section): Make non-static. + (mapped_index_string_hash): Move from here. + (dwarf5_djb_hash): Likewise. + (file_write): Likewise. + (class data_buf): Likewise. + (struct symtab_index_entry): Likewise. + (struct mapped_symtab): Likewise. + (find_slot): Likewise. + (hash_expand): Likewise. + (add_index_entry): Likewise. + (uniquify_cu_indices): Likewise. + (class c_str_view): Likewise. + (class c_str_view_hasher): Likewise. + (class vector_hasher): Likewise. + (write_hash_table): Likewise. + (psym_index_map): Likewise. + (struct addrmap_index_data): Likewise. + (add_address_entry): Likewise. + (add_address_entry_worker): Likewise. + (write_address_map): Likewise. + (symbol_kind): Likewise. + (write_psymbols): Likewise. + (struct signatured_type_index_data): Likewise. + (write_one_signatured_type): Likewise. + (recursively_count_psymbols): Likewise. + (recursively_write_psymbols): Likewise. + (class debug_names): Likewise. + (check_dwarf64_offsets): Likewise. + (psyms_seen_size): Likewise. + (write_gdbindex): Likewise. + (write_debug_names): Likewise. + (assert_file_size): Likewise. + (write_psymtabs_to_index): Likewise. + (save_gdb_index_command): Likewise. + (_initialize_dwarf2_read): Don't register the "save gdb-index" + command. + * dwarf2read.h: New file. + +2018-03-27 Joel Brobecker + + PR gdb/22670 + * dwarf2read.c (dwarf2_physname): Do not return the demangled + symbol name if the CU's language stores symbol names in linkage + format. + * language.h (struct language_defn) + : New field. Adjust + all instances of this struct. + +2018-03-26 Tom Tromey + + * stack.c (backtrace_command_1): Remove verbose code. + +2018-03-26 Tom Tromey + + * python/py-framefilter.c (py_print_type): Don't catch + exceptions. Return void. + (py_print_value): Likewise. + (py_print_single_arg): Likewise. + (enumerate_args): Don't catch exceptions. + (py_print_args): Likewise. + (py_print_frame): Likewise. + (gdbpy_apply_frame_filter): Catch exceptions here. + +2018-03-26 Tom Tromey + + * stack.c (_initialize_stack): Remove trailing newlines from help + text. Add "Usage" line to "backtrace" help. + +2018-03-26 Tom Tromey + + PR python/16486: + * python/py-framefilter.c (py_print_args): Call wrap_hint. + +2018-03-26 Tom Tromey + + * python/py-framefilter.c (py_print_single_arg): Return + EXT_LANG_BT_ERROR from catch. + +2018-03-26 Tom Tromey + + PR backtrace/15584: + * stack.c (backtrace_command_1): Move some code into no-filters + "if". + +2018-03-26 Tom Tromey + + * python/py-framefilter.c (throw_quit_or_print_exception): New + function. + (gdbpy_apply_frame_filter): Use it. + +2018-03-26 Tom Tromey + + PR cli/17716: + * python/py-framefilter.c (py_print_type, py_print_value) + (enumerate_args, py_print_args, gdbpy_apply_frame_filter): Use + RETURN_MASK_ERROR. + +2018-03-26 Tom Tromey + + * python/py-framefilter.c (enumerate_args): Use + gdb::unique_xmalloc_ptr. + +2018-03-26 Tom Tromey + + * python/py-framefilter.c (py_print_frame): Return + EXT_LANG_BT_OK. + (gdbpy_apply_frame_filter): Update comment. + * extension.h (enum ext_lang_bt_status) : + Remove. + : Change value. + +2018-03-26 Tom Tromey + + PR backtrace/15582: + * stack.c (backtrace_command): Parse "hide" argument. + * python/py-framefilter.c (py_print_frame): Handle PRINT_HIDE. + * extension.h (enum frame_filter_flags) : New + constant. + +2018-03-26 Tom Tromey + + * stack.c (backtrace_command_1): Remove "show_locals" parameter, + add "flags". + (backtrace_command): Remove "fulltrace", add "flags". + +2018-03-26 Tom Tromey + + * stack.c (backtrace_command): Rewrite command line parsing. + +2018-03-26 Simon Marchi + + * dwarf2read.c (DEF_VEC_I(offset_type)): Remove. + +2018-03-26 Simon Marchi + + * filename-seen-cache.h: Add include guard. + +2018-03-26 Keith Seitz + + * symfile.c (place_section): Remove "struct" from section_addr_info + in comment. + * windows-nat.c (struct safe_symbol_file_add_args) : Remove + "struct" keyword from section_addr_info. + +2018-03-26 Alan Hayward + + * regformats/regdef.h (reg): Add constructors. + +2018-03-25 Pedro Alves + + * eval.c (evaluate_funcall): Swap OP_VAR_MSYM_VALUE/OP_VAR_VALUE + if then/else bodies in var_func_name extraction. + +2018-03-23 Weimin Pan + + * minsyms.c (lookup_minimal_symbol_and_objfile): Use + lookup_minimal_symbol() to find symbol entry. + * minsyms.h (lookup_minimal_symbol_and_objfile): Update comment. + +2018-03-23 Keith Seitz + + PR c++/22968 + * dwarf2read.c (scan_partial_symbols): Scan structs/classes for + nested type definitions for C++, too. + +2018-03-23 Tom Tromey + + * machoread.c (struct oso_el): Add a constructor. Don't define as + a typedef. + (macho_register_oso): Remove. + (macho_symtab_read): Take a std::vector. + (oso_el_compare_name): Now a std::sort comparator. + (macho_symfile_read_all_oso): Take a std::vector. + (macho_symfile_read): Use std::vector. Remove cleanups. + +2018-03-22 Tom Tromey + + * record-full.c (record_full_exec_insn): Use gdb::byte_vector. + (record_full_goto_bookmark): Use std::string. + +2018-03-22 Pedro Franco de Carvalho + + PR tdep/18295 + * rs6000-tdep.c (skip_prologue): Match both stwux and stdux + a single mask. + +2018-03-22 Pedro Franco de Carvalho + + * rs6000-tdep.c (store_insn_p): New function. + (skip_prologue): New variable alloca_reg_offset. Set lr_reg + and cr_reg to their unshifted values. Use store_insn_p to + match LR saves using either R1 or fdata->alloca_reg. Use + store_insn_p to match CR saves. Set alloca_reg_offset + when alloca_reg and framep are set. Remove lr_reg shift + when assigning to fdata->lr_register. + +2018-03-22 Andreas Arnez + + * linux-tdep.c (linux_info_proc): For "info proc cmdline", print + command line args instead of emitting a warning. + +2018-03-22 Simon Marchi + + * tracepoint.h (struct static_tracepoint_marker): Initialize + fields, define default constructor, move constructor and move + assignment, disable the rest. + : Make std::string. + (release_static_tracepoint_marker): Remove. + (free_current_marker): Remove. + * tracepoint.c (free_current_marker): Remove. + (parse_static_tracepoint_marker_definition): Adjust to + std::string, use new hex2str overload. + (release_static_tracepoint_marker): Remove. + (print_one_static_tracepoint_marker): Get marker by reference + and adjust to std::string. + (info_static_tracepoint_markers_command): Adjust to std::vector + changes + * target.h (static_tracepoint_marker_p): Remove typedef. + (DEF_VEC_P(static_tracepoint_marker_p)): Remove. + (struct target_ops) : Return + bool. + : Return std::vector. + * target-debug.h + (target_debug_print_VEC_static_tracepoint_marker_p_p): Remove. + (target_debug_print_std_vector_static_tracepoint_marker): New. + (target_debug_print_struct_static_tracepoint_marker_p): Rename + to... + (target_debug_print_static_tracepoint_marker_p): ... this. + * target-delegates.c: Re-generate. + * breakpoint.h (struct tracepoint) : + Make std::string. + * breakpoint.c (init_breakpoint_sal): Adjust to std::string. + (decode_static_tracepoint_spec): Adjust to std::vector. + (tracepoint_print_one_detail): Adjust to std::string. + (strace_marker_decode_location): Adjust to std::string. + (update_static_tracepoint): Adjust to std::string, remove call + to release_static_tracepoint_marker. + * linux-nat.c (linux_child_static_tracepoint_markers_by_strid): + Adjust to std::vector. + * remote.c (remote_static_tracepoint_marker_at): Return bool. + (remote_static_tracepoint_markers_by_strid): Adjust to + std::vector. + * common/rsp-low.h (hex2str): New overload with explicit count + of bytes. + * common/rsp-low.c (hex2str): New overload with explicit count + of bytes. + * unittests/rsp-low-selftests.c (test_hex2str): New function. + (_initialize_rsp_low_selftests): Add test_hex2str test. + * unittests/tracepoint-selftests.c + (test_parse_static_tracepoint_marker_definition): Adjust to + std::string. + +2018-03-22 Simon Marchi + + * tracepoint.c (parse_static_tracepoint_marker_definition): + Consider case where the definition is followed by more + definitions. + * Makefile.in (SUBDIR_UNITTESTS_SRCS): Add + tracepoint-selftests.c. + * unittests/tracepoint-selftests.c: New. + +2018-03-21 Pedro Franco de Carvalho + + * MAINTAINERS (Write After Approval): Add Pedro Franco de + Carvalho. + +2018-03-20 Stephen Roberts + + * symtab.c (find_pc_sect_line): fixed indentation. + +2018-03-20 Stephen Roberts + + * symtab.c (find_pc_sect_line): now uses binary search. + +2018-03-19 Tom Tromey + + * rust-exp.y (struct_expr_tail, struct_expr_list): Add plain + "IDENT" production. + +2018-03-19 Pedro Alves + Tom Tromey + + * unittests/observable-selftests.c: New file. + * common/observable.h: New file. + * observable.h: New file. + * ada-lang.c, ada-tasks.c, agent.c, aix-thread.c, annotate.c, + arm-tdep.c, auto-load.c, auxv.c, break-catch-syscall.c, + breakpoint.c, bsd-uthread.c, cli/cli-interp.c, cli/cli-setshow.c, + corefile.c, dummy-frame.c, event-loop.c, event-top.c, exec.c, + extension.c, frame.c, gdbarch.c, guile/scm-breakpoint.c, + infcall.c, infcmd.c, inferior.c, inflow.c, infrun.c, jit.c, + linux-tdep.c, linux-thread-db.c, m68klinux-tdep.c, + mi/mi-cmd-break.c, mi/mi-interp.c, mi/mi-main.c, objfiles.c, + ppc-linux-nat.c, ppc-linux-tdep.c, printcmd.c, procfs.c, + python/py-breakpoint.c, python/py-finishbreakpoint.c, + python/py-inferior.c, python/py-unwind.c, ravenscar-thread.c, + record-btrace.c, record-full.c, record.c, regcache.c, remote.c, + riscv-tdep.c, sol-thread.c, solib-aix.c, solib-spu.c, solib.c, + spu-multiarch.c, spu-tdep.c, stack.c, symfile-mem.c, symfile.c, + symtab.c, thread.c, top.c, tracepoint.c, tui/tui-hooks.c, + tui/tui-interp.c, valops.c: Update all users. + * tui/tui-hooks.c (tui_bp_created_observer) + (tui_bp_deleted_observer, tui_bp_modified_observer) + (tui_inferior_exit_observer, tui_before_prompt_observer) + (tui_normal_stop_observer, tui_register_changed_observer): + Remove. + (tui_observers_token): New global. + (attach_or_detach, tui_attach_detach_observers): New functions. + (tui_install_hooks, tui_remove_hooks): Use + tui_attach_detach_observers. + * record-btrace.c (record_btrace_thread_observer): Remove. + (record_btrace_thread_observer_token): New global. + * observer.sh: Remove. + * observer.c: Rename to observable.c. + * observable.c (namespace gdb_observers): Define new objects. + (observer_debug): Move into gdb_observers namespace. + (struct observer, struct observer_list, xalloc_observer_list_node) + (xfree_observer_list_node, generic_observer_attach) + (generic_observer_detach, generic_observer_notify): Remove. + (_initialize_observer): Update. + Don't include observer.inc. + * Makefile.in (generated_files): Remove observer.h, observer.inc. + (clean mostlyclean): Likewise. + (observer.h, observer.inc): Remove targets. + (SUBDIR_UNITTESTS_SRCS): Add observable-selftests.c. + (COMMON_SFILES): Use observable.c, not observer.c. + * .gitignore: Remove observer.h. + +2018-03-18 Tom Tromey + + * solib.c (gdb_bfd_lookup_symbol_from_symtab): Use + gdb::def_vector. + (bfd_lookup_symbol_from_dyn_symtab): Likewise. + +2018-03-17 Tom Tromey + + * auto-load.c (auto_load_objfile_script_1): Use std::string. + +2018-03-17 Tom Tromey + + * target.c (class scoped_target_fd): New. + (target_fileio_close_cleanup): Remove. + (target_fileio_read_alloc_1): Use scoped_target_fd. + +2018-03-16 Simon Marchi + + * silent-rules.mk: New. + * Makefile.in: Include silent-rules.mk + (srcdir, VPATH, top_srcdir): Move up. + (COMPILE): Add ECHO_CXX. + (test-cp-name-parser$(EXEEXT)): Add ECHO_CXXLD. + (init.c): Add ECHO_INIT_C. + (gdb$(EXEEXT)): Add SILENCE and ECHO_CXXLD. + (version.c): Add ECHO_GEN. + (printcmd.o): Add ECHO_CXX. + (target-float.o): Add ECHO_CXX. + (ada-exp.o): Add ECHO_CXX. + (stamp-xml): Add SILENCE and ECHO_GEN_XML_BUILTIN. + (insight$(EXEEXT)): Add ECHO_CXXLD. + * gnulib/configure.ac: Add AM_SILENT_RULES. + * gnulib/aclocal.m4: Re-generate. + * gnulib/configure: Re-generate. + * gnulib/import/Makefile.in: Re-generate. + +2018-03-16 Tom Tromey + + * xcoffread.c (xcoff_symfile_offsets): Change type of "addrs". + * utils.h (make_cleanup_free_section_addr_info): Don't declare. + * utils.c (do_free_section_addr_info) + (make_cleanup_free_section_addr_info): Remove. + * symfile.h (struct other_sections): Add constructor. + (struct section_addr_info): Remove. + (section_addr_info): New typedef. + (struct sym_fns) : Change type of parameter. + (build_section_addr_info_from_objfile) + (relative_addr_info_to_section_offsets, addr_info_make_relative) + (default_symfile_offsets, symbol_file_add) + (symbol_file_add_from_bfd) + (build_section_addr_info_from_section_table): Update. + (alloc_section_addr_info, free_section_addr_info): Don't declare. + * symfile.c (alloc_section_addr_info): Remove. + (build_section_addr_info_from_section_table): Change return type. + Update. + (build_section_addr_info_from_bfd) + (build_section_addr_info_from_objfile): Likewise. + (free_section_addr_info): Remove. + (relative_addr_info_to_section_offsets): Change type of "addrs". + (addrs_section_compar): Now a std::sort comparator. + (addrs_section_sort): Change return type. + (addr_info_make_relative): Change type of "addrs". Update. + (default_symfile_offsets, syms_from_objfile_1) + (syms_from_objfile, symbol_file_add_with_addrs): Likewise. + (symbol_file_add_separate): Update. + (symbol_file_add): Change type of "addrs". Update. + (add_symbol_file_command): Update. Remove cleanups. + * symfile-mem.c (symbol_file_add_from_memory): Update. Remove + cleanups. + * symfile-debug.c (debug_sym_offsets): Change type of "info". + * solib.c (solib_read_symbols): Update. + * objfiles.c (objfile_relocate): Update. Remove cleanups. + * machoread.c (macho_symfile_offsets): Update. + * jit.c (jit_bfd_try_read_symtab): Update. + +2018-03-15 Simon Marchi + + * Makefile.in (SUBDIR_UNITTESTS_SRCS): Add + unittests/utils-selftests.c. + * unittests/utils-selftests.c: New file. + +2018-03-14 Tom Tromey + + PR cli/14977: + * printcmd.c (printf_c_string, printf_wide_c_string): Special case + for NULL. + +2018-03-14 Tom Tromey + + PR cli/19918: + * printcmd.c (printf_pointer): Allow "-" in format. + +2018-03-14 Tom Tromey + + * printcmd.c (_initialize_printcmd): Add usage to printf. + +2018-03-14 Yao Qi + + * MAINTAINERS: Update my email address. + +2018-03-13 Tom Tromey + + * machoread.c (macho_check_dsym): Change filenamep to a + std::string*. + (macho_symfile_read): Update. + * symfile.c (load_command): Use std::string. + +2018-03-12 Andrew Burgess + + * riscv-tdep.c (riscv_sw_breakpoint_from_kind): Add localization + to error message string. + (riscv_register_name): Use xsnprintf instead of sprintf. + (riscv_insn::fetch_instruction): Use gdb_assert instead of + internal_error. + (riscv_print_arg_location): Use gdb_assert_not_reached instead of + error. + (riscv_push_dummy_call): Likewise. + +2018-03-12 Tom Tromey + + * rs6000-aix-tdep.c (rs6000_aix_core_xfer_shared_libraries_aix): + Use gdb::byte_vector. + * arm-tdep.c (arm_exidx_new_objfile): Use gdb::byte_vector. + +2018-03-12 Yao Qi + + * ia64-libunwind-tdep.c (libunwind_get_reg_special): Change + parameter type to readable_regcache. + * ia64-libunwind-tdep.h (libunwind_get_reg_special): Update + the declaration. + +2018-03-11 Tom Tromey + + * dwarf2read.c (struct nextfield): Add initializers. + (struct nextfnfield): Remove. + (struct fnfieldlist): Add initializers. Remove "length" and + "head", use std::vector. + (struct decl_field_list): Remove. + (struct field_info): Add initializers. + : Now std::vector. + : Remove. + (dwarf2_add_field, dwarf2_add_type_defn) + (dwarf2_attach_fields_to_type, dwarf2_add_member_fn) + (dwarf2_attach_fn_fields_to_type, handle_struct_member_die) + (process_structure_scope): Update. + +2018-03-11 Tom Tromey + + * dwarf2read.c (sort_tu_by_abbrev_offset): Change to be suitable + for use by std::sort. + (build_type_psymtabs_1): Use std::vector. + +2018-03-09 Eli Zaretskii + + * top.c (print_gdb_configuration): Reflect LIBIPT, LIBMEMCHECK, + and LIBMPFR in the printed configuration. + +2018-03-08 Tom Tromey + + * source.c (get_filename_and_charpos): Use scoped_fd. + * nto-procfs.c (procfs_open_1): Use scoped_fd. + (procfs_pidlist): Likewise. + * procfs.c (proc_get_LDT_entry): Use scoped_fd. + (iterate_over_mappings): Likewise. + +2018-03-08 Tom Tromey + + * infcall.c (struct call_return_meta_info) + : Remove. + (get_call_return_value, call_function_by_hand_dummy): Update. + * thread.c (disable_thread_stack_temporaries): Remove. + (enable_thread_stack_temporaries): Remove. + (thread_stack_temporaries_enabled_p): Return bool. + (push_thread_stack_temporary, value_in_thread_stack_temporaries) + (get_last_thread_stack_temporary): Update. + * eval.c (evaluate_subexp): Update. + * gdbthread.h (class enable_thread_stack_temporaries): Now a + class, not a function. + (value_ptr, value_vec): Remove typedefs. + (class thread_info) : Now bool. + : Now a std::vector. + (thread_stack_temporaries_enabled_p) + (value_in_thread_stack_temporaries): Return bool. + +2018-03-08 Simon Marchi + + * remote.c (putpkt_binary): Fix omitted bytes reporting. + (getpkt_or_notif_sane_1): Likewise. + +2018-03-08 Simon Marchi + + * build-id.c (build_id_to_debug_bfd): Use std::string. + +2018-03-08 Simon Marchi + + * build-id.c (find_separate_debug_file_by_buildid): Return + std::string. + * build-id.h (find_separate_debug_file_by_buildid): Return + std::string. + * coffread.c (coff_symfile_read): Adjust to std::string. + * elfread.c (elf_symfile_read): Adjust to std::string. + * symfile.c (separate_debug_file_exists): Change parameter to + std::string. + (find_separate_debug_file): Return std::string. + (find_separate_debug_file_by_debuglink): Return std::string. + * symfile.h (find_separate_debug_file_by_debuglink): Return + std::string. + +2018-03-08 Simon Marchi + + * common/xml-utils.c (xml_escape_text): Move code to... + (xml_escape_text_append): ... this new function. + * common/xml-utils.h (xml_escape_text_append): New declaration. + * unittests/xml-utils-selftests.c (test_xml_escape_text_append): + New function. + (_initialize_xml_utils): register test_xml_escape_text_append as + a selftest. + +2018-03-07 Alan Hayward + + * defs.h: Remove MAX_REGISTER_SIZE. + * regcache.c (init_regcache_descr): Remove MAX_REGISTER_SIZE + asserts. + * python/py-unwind.c (pyuw_sniffer): Likewise. + +2018-03-07 Tom Tromey + + * linux-tdep.c (linux_info_proc): Update. + * target.h (struct target_ops) : Return + optional. + (target_fileio_readlink): Return optional. + * remote.c (remote_hostio_readlink): Return optional. + * inf-child.c (inf_child_fileio_readlink): Return + optional. + * target.c (target_fileio_readlink): Return optional. + +2018-03-07 Andrew Burgess + + * regcache.c (cooked_read_test): Add riscv to the list of + architectures that have a save_reggroup. + +2018-03-07 Andreas Arnez + + * gnu-v3-abi.c (gnuv3_rtti_type): Add early exit if the given + value is not a dynamic class object. + +2018-03-06 Tom Tromey + + * rust-exp.y: Formatting fixes. + +2018-03-06 Andrew Burgess + + * riscv-tdep.c (riscv_register_name): Remove target description + support. + (riscv_gdbarch_init): Remove target description check. + +2018-03-06 Andrew Burgess + + * riscv-tdep.c: Remove 'Contributed by ...' lines from header + comment. + * riscv-tdep.h: Likewise. + +2018-03-06 Andrew Burgess + + * riscv-tdep.c (riscv_pseudo_register_read): Delete. + (riscv_pseudo_register_write): Delete. + (riscv_gdbarch_init): Remove all use of pseudo registers. + +2018-03-06 Simon Marchi + + * record-btrace.c (btrace_print_lines): Replace cleanup + parameter with RAII equivalents. + (btrace_insn_history): Replace cleanup with RAII equivalents. + * ui-out.h (make_cleanup_ui_out_list_begin_end, + make_cleanup_ui_out_tuple_begin_end): Remove. + * ui-out.c (struct ui_out_end_cleanup_data, do_cleanup_end, + make_cleanup_ui_out_end, make_cleanup_ui_out_tuple_begin_end, + make_cleanup_ui_out_list_begin_end): Remove. + +2018-03-06 Simon Marchi + + * record-btrace.c (record_btrace_maybe_mark_async_event): Change + parameter types to std::vector. Use bool. + (record_btrace_wait): Replace VEC(tp_t) with + std::vector. + * common/gdb_vecs.h (unordered_remove, ordered_remove): New. + +2018-03-06 Simon Marchi + + * record-btrace.c (record_btrace_disable_callback): Remove. + (struct scoped_btrace_disable): New. + (record_btrace_open): Use scoped_btrace_disable. + +2018-03-06 Andrew Burgess + + * riscv-tdep.c (riscv_return_value): Change type to ULONGEST for + reading values from registers. + +2018-03-06 Andrew Burgess + + * riscv-tdep.c (riscv_push_dummy_call): Use core_addr_to_string_nz + where appropriate. + +2018-03-06 Andrew Burgess + + * riscv-tdep.c (riscv_print_arg_location): Add header comment, + change parameter type. Use GDB's print functions, and use + core_addr_to_string where appropriate. + (riscv_push_dummy_call): Use core_addr_to_string where + appropriate, update call to riscv_print_arg_location, and reindent + a few lines. + (riscv_return_value): Update call to riscv_print_arg_location. + +2018-03-06 Andrew Burgess + Tim Newsome + Albert Ou + Darius Rad + + * Makefile.in (ALL_TARGET_OBS): Add riscv-tdep.o + (HFILES_NO_SRCDIR): Add riscv-tdep.h. + (ALLDEPFILES): Add riscv-tdep.c + * configure.tgt: Add riscv support. + * riscv-tdep.c: New file. + * riscv-tdep.h: New file. + * NEWS: Mention new target. + * MAINTAINERS: Add entry for riscv. + +2018-03-06 Andrew Burgess + + * amd64-tdep.c (amd64_classify_aggregate): Ignore zero sized + fields within aggregates. + +2018-03-04 Simon Marchi + + * record-btrace.c (btrace_print_lines): Change type of flags to + gdb_disassembly_flags. + +2018-03-04 John Baldwin + + * fbsd-nat.c: Include "inf-ptrace.h". + (USE_SIGTRAP_SIGINFO): Conditionally define. + [USE_SIGTRAP_SIGINFO] (fbsd_handle_debug_trap): New function. + (fbsd_wait) [USE_SIGTRAP_SIGINFO]: Call "fbsd_handle_debug_trap". + [USE_SIGTRAP_SIGINFO] (fbsd_stopped_by_sw_breakpoint): New + function. + [USE_SIGTRAP_SIGINFO] (fbsd_supports_stopped_by_sw_breakpoint): + Likewise. + [USE_SIGTRAP_SIGINFO] (fbsd_supports_stopped_by_hw_breakpoint): + Likewise. + (fbsd_nat_add_target) [USE_SIGTRAP_SIGINFO]: Set + "stopped_by_sw_breakpoint", "supports_stopped_by_sw_breakpoint", + "supports_stopped_by_hw_breakpoint" target methods. + +2018-03-04 John Baldwin + + * NEWS (Changes since GDB 8.1): Add "set/show debug fbsd-nat". + * fbsd-nat.c (debug_fbsd_nat): New variable. + (show_fbsd_nat_debug): New function. + (fbsd_wait): Log LWP info if "debug_fbsd_nat" is enabled. + (_initialize_fbsd_nat): Add "fbsd-nat" debug boolean command. + +2018-03-04 John Baldwin + + * nat/x86-dregs.c (x86_dr_stopped_by_hw_breakpoint): New function. + * nat/x86-dregs.h (x86_dr_stopped_by_hw_breakpoint): New + prototype. + * x86-nat.c (x86_stopped_by_hw_breakpoint): New function. + (x86_use_watchpoints): Set "stopped_by_hw_breakpoint" target + method. + +2018-03-02 Simon Marchi + + * common/gdb_vecs.c (free_char_ptr_vec): Remove. + * common/gdb_vecs.h (free_char_ptr_vec): Remove. + +2018-03-02 Simon Marchi + + * charset.c (struct charset_vector): New. + (charsets): Change type to charset_vector. + (find_charset_names): Adjust. + (add_one): Adjust. + (_initialize_charset): Adjust. + +2018-03-02 Simon Marchi + + * progspace.h (struct program_space) : Change + type to std::vector. + * progspace.c (clear_program_space_solib_cache): Adjust. + * breakpoint.c (print_solib_event): Adjust. + (check_status_catch_solib): Adjust. + * solib.c (update_solib_list): Adjust. + * ui-out.h (class ui_out) : New overload. + * ui-out.c (ui_out::field_string): New overload. + +2018-03-02 Simon Marchi + + * progspace.h (struct program_space): Add constructor and + destructor, initialize fields. + (add_program_space): Remove. + * progspace.c (add_program_space): Rename to... + (program_space::program_space): ... this. + (release_program_space): Rename to... + (program_space::~program_space): ... this. + (delete_program_space): Use delete to delete program_space. + (initialize_progspace): Use new to allocate program_space. + * inferior.c (add_inferior_with_spaces): Likewise. + (clone_inferior_command): Likewise. + * infrun.c (follow_fork_inferior): Likewise. + (handle_vfork_child_exec_or_exit): Likewise. + +2018-03-02 Simon Marchi + + * common/gdb_vecs.h (make_cleanup_free_char_ptr_vec): Remove. + (delim_string_to_char_ptr_vec): Return std::vector of + gdb::unique_xmalloc_ptr. + (dirnames_to_char_ptr_vec_append): Take std::vector of + gdb::unique_xmalloc_ptr. + (dirnames_to_char_ptr_vec): Return std::vector of + gdb::unique_xmalloc_ptr. + * common/gdb_vecs.c (delim_string_to_char_ptr_vec_append): + Take std::vector of gdb::unique_xmalloc_ptr, adjust the code. + (delim_string_to_char_ptr_vec): Return an std::vector of + gdb::unique_xmalloc_ptr, adjust the code. + (dirnames_to_char_ptr_vec_append): Take an std::vector of + gdb::unique_xmalloc_ptr, adjust the code. + (dirnames_to_char_ptr_vec): Return an std::vector of + gdb::unique_xmalloc_ptr, adjust the code. + * auto-load.c (auto_load_safe_path_vec): Change type to + std::vector of gdb::unique_xmalloc_ptr. + (auto_load_expand_dir_vars): Return an std::vector of + gdb::unique_xmalloc_ptr, adjust the code. + (auto_load_safe_path_vec_update): Adjust. + (filename_is_in_auto_load_safe_path_vec): Adjust. + (auto_load_objfile_script_1): Adjust. + * build-id.c (build_id_to_debug_bfd): Adjust. + * linux-thread-db.c (thread_db_load_search): Adjust. + * source.c (add_path): Adjust. + (openp): Adjust. + * symfile.c (find_separate_debug_file): Adjust. + * utils.c (do_free_char_ptr_vec): Remove. + (make_cleanup_free_char_ptr_vec): Remove. + +2018-03-01 Sergio Durigan Junior + + PR gdb/22907 + * common/pathstuff.c: Conditionally include "". + +2018-03-01 Georg Sauthoff + + PR gdb/22888 + * gcore.in: Quote variables and switch interpreter to bash. + +2018-03-01 Tom Tromey + + * dwarf2read.c (alloc_discriminant_info): Fix default_index + assertion. Add assertion for discriminant_index. + (quirk_rust_enum): Use correct base type name in univariant case. + +2018-03-01 Simon Marchi + + * record.c (get_call_history_modifiers): Return a + record_print_flags. + (cmd_record_call_history): Adjust. + * record-btrace.c (record_btrace_call_history): Adjust. + (record_btrace_call_history_range): Adjust. + (record_btrace_call_history_from): Adjust. + * target-debug.h (target_debug_print_record_print_flags): New. + * target-delegates.c: Re-generate. + * target.c (target_call_history): Change flags type. + (target_call_history_from): Likewise. + (target_call_history_range): Likewise. + * target.h (struct target_ops) : Likewise. + (target_call_history_from): Likewise. + (target_call_history_range): Likewise. + +2018-02-28 Sergio Durigan Junior + Simon Marchi + + * common/common-utils.c: Include "sys/stat.h". + (is_regular_file): Move here from "source.c"; change return + type to "bool". + * common/common-utils.h (is_regular_file): New prototype. + * common/pathstuff.c (contains_dir_separator): New function. + * common/pathstuff.h (contains_dir_separator): New prototype. + * source.c: Don't include "sys/stat.h". + (is_regular_file): Move to "common/common-utils.c". + +2018-02-28 Sergio Durigan Junior + + * Makefile.in (COMMON_SFILES): Add "common/pathstuff.c". + (HFILES_NO_SRCDIR): Add "common/pathstuff.h". + * auto-load.c: Include "common/pathstuff.h". + * common/common-def.h (current_directory): Move here. + * common/gdb_tilde_expand.c (gdb_tilde_expand_up): New + function. + * common/gdb_tilde_expand.h (gdb_tilde_expand_up): New + prototype. + * common/pathstuff.c: New file. + * common/pathstuff.h: New file. + * compile/compile.c: Include "common/pathstuff.h". + * defs.h (current_directory): Move to "common/common-defs.h". + * dwarf2read.c: Include "common/pathstuff.h". + * exec.c: Likewise. + * guile/scm-safe-call.c: Likewise. + * linux-thread-db.c: Likewise. + * main.c: Likewise. + * nto-tdep.c: Likewise. + * objfiles.c: Likewise. + * source.c: Likewise. + * symtab.c: Likewise. + * utils.c: Include "common/pathstuff.h". + (gdb_realpath): Move to "common/pathstuff.c". + (gdb_realpath_keepfile): Likewise. + (gdb_abspath): Likewise. + * utils.h (gdb_realpath): Move to "common/pathstuff.h". + (gdb_realpath_keepfile): Likewise. + (gdb_abspath): Likewise. + +2018-02-28 John Baldwin + + * fbsd-nat.c (fbsd_resume): Use PT_SETSTEP for stepping and a + wildcard process pid for super_resume for kernels with a + specific bug. + +2018-02-27 Phil Muldoon + + * compile/compile.c (get_args): Add additional comments + explaining function. + +2018-02-27 Simon Marchi + Tom Tromey + + * target.h (memory_write_request_s): Remove typedef. Don't define + VEC. + (target_write_memory_blocks): Change argument to std::vector. + (struct memory_write_request): Add constructor. + * target-memory.c (compare_block_starting_address): Return bool. + Change argument types. + (claim_memory): Change arguments to use std::vector. + (split_regular_and_flash_blocks, blocks_to_erase) + (compute_garbled_blocks): Likewise. + (cleanup_request_data, cleanup_write_requests_vector): Remove. + (target_write_memory_blocks): Change argument to std::vector. + * symfile.c (struct load_section_data): Add constructor and + destructor. Use std::vector for "requests". + (struct load_progress_data): Add initializers. + (load_section_callback): Update. Use "new". + (clear_memory_write_data): Remove. + (generic_load): Update. + +2018-02-27 Alan Hayward + + * arch/aarch64.h: Use common/tdesc.h. + +2018-02-26 Maciej W. Rozycki + + * mips-tdep.c (mips_gdbarch_init): Don't use a 32-bit BFD + architecture with a 64-bit ABI. + +2018-02-26 Maciej W. Rozycki + + * gdb/mips-tdep.c (mips_gdbarch_init): Reorder ABI determination + ahead of target description loading. + +2018-02-26 Tom Tromey + + * stack.c (backtrace_command_1): Update. + * python/python-internal.h (gdbpy_apply_frame_filter): Change type + of "flags". + * python/py-framefilter.c (py_print_frame) + (gdbpy_apply_frame_filter): Change type of "flags". + * mi/mi-cmd-stack.c (mi_apply_ext_lang_frame_filter): Change type + of "flags". + (mi_cmd_stack_list_frames, mi_cmd_stack_list_locals) + (mi_cmd_stack_list_args, mi_cmd_stack_list_variables): Update. + * extension.h (enum frame_filter_flag): Rename from + frame_filter_flags. + (frame_filter_flags): Define using DEF_ENUM_FLAGS_TYPE. + (apply_ext_lang_frame_filter): Change type of "flags". + * extension.c (apply_ext_lang_frame_filter): Change type of + "flags". + * extension-priv.h (struct extension_language_ops) + : Change type of "flags". + +2018-02-26 Tom Tromey + + PR python/16497: + * stack.c (backtrace_command_1): Set PRINT_MORE_FRAMES flag. Fix + off-by-one in py_end computation. + * python/py-framefilter.c (gdbpy_apply_frame_filter): Handle + PRINT_MORE_FRAMES. + * extension.h (enum frame_filter_flags) : New + constant. + +2018-02-26 Tom Tromey + + * dwarf2read.c (struct variant_field): New. + (struct nextfield) : New field. + (dwarf2_add_field): Handle DW_TAG_variant_part. + (dwarf2_attach_fields_to_type): Attach a discriminant_info to a + discriminated union. + (read_structure_type): Handle DW_TAG_variant_part. + (handle_struct_member_die): New function, extracted from + process_structure_scope. Handle DW_TAG_variant. + (process_structure_scope): Handle discriminated unions. Call + handle_struct_member_die. + +2018-02-26 Tom Tromey + + * rust-lang.h (rust_last_path_segment): Declare. + * rust-lang.c (rust_last_path_segment): Now public. Change + contract. + (struct disr_info): Remove. + (RUST_ENUM_PREFIX, RUST_ENCODED_ENUM_REAL) + (RUST_ENCODED_ENUM_HIDDEN, rust_union_is_untagged) + (rust_get_disr_info, rust_tuple_variant_type_p): Remove. + (rust_enum_p, rust_enum_variant): New function. + (rust_underscore_fields): Remove "offset" parameter. + (rust_print_enum): New function. + (rust_val_print) : Remove enum code. + : Call rust_print_enum when appropriate. + (rust_print_struct_def): Add "for_rust_enum" parameter. Handle + enums. + (rust_internal_print_type): New function, from rust_print_type. + Remove enum code. + (rust_print_type): Call rust_internal_print_type. + (rust_evaluate_subexp) : + Update enum handling. + * dwarf2read.c (struct dwarf2_cu) : New field. + (rust_fully_qualify, alloc_discriminant_info, quirk_rust_enum) + (rust_union_quirks): New functions. + (process_full_comp_unit, process_full_type_unit): Call + rust_union_quirks. + (process_structure_scope): Update rust_unions if necessary. + +2018-02-26 Tom Tromey + + * value.h (value_union_variant): Declare. + * valops.c (value_union_variant): New function. + * gdbtypes.h (TYPE_FLAG_DISCRIMINATED_UNION): New macro. + (struct discriminant_info): New. + (enum dynamic_prop_node_kind) : New + enumerator. + (struct main_type) : New field. + +2018-02-26 Tom Tromey + + * Makefile.in (SUBDIR_UNITTESTS_SRCS): Add + unittests/unpack-selftests.c. + * unittests/unpack-selftests.c: New file. + * value.c (unpack_bits_as_long): Fix bugs in non-bitfield cases. + +2018-02-26 Yao Qi + + * dwarf2read.c (struct partial_die_info) : New method. + (read_partial_die): Remove the declaration. + (load_partial_dies): Update. + (partial_die_info::partial_die_info): + (read_partial_die): Change it to partial_die_info::read. + +2018-02-26 Yao Qi + + * dwarf2read.c (struct partial_die_info) : New method. + (fixup_partial_die): Remove declaration. + (scan_partial_symbols): Update. + (partial_die_parent_scope): Likewise. + (partial_die_full_name): Likewise. + (fixup_partial_die): Change it to partial_die_info::fixup. + +2018-02-26 Yao Qi + + * dwarf2read.c (read_partial_die): Update the declaration. + (load_partial_dies): Caller update. + (read_partial_die): Remove one argument abbrev_len. + +2018-02-26 Yao Qi + + * dwarf2read.c (struct partial_die_info): Add ctor, delete + assignment operator. + (load_partial_dies): Use ctor and copy ctor. + (read_partial_die): Update. + (dwarf2_cu::find_partial_die): Use ctor. + +2018-02-26 Yao Qi + + * dwarf2read.c (struct dwarf2_cu) : New method. + (find_partial_die_in_comp_unit): Change it to + dwarf2_cu::find_partial_die. + (find_partial_die): Update. + +2018-02-26 Yao Qi + + * dwarf2read.c (read_partial_die): Remove the code checking abbrev + is NULL. + +2018-02-26 Yao Qi + + * dwarf2read.c (load_partial_dies): Move the location of XOBNEW. + +2018-02-26 Alan Hayward + + * arch/amd64.h: Use common/tdesc.h. + * arch/i386.c: Likewise. + * arch/i386.h: Likewise. + * arch/tic6x.c: Likewise. + * arch/tdesc.h: Move file from here... + * common/tdesc.h: ...to here. + * features/aarch64-core.c: Regenerate. + * features/aarch64-fpu.c: Regenerate. + * features/i386/32bit-avx.c: Regenerate. + * features/i386/32bit-avx512.c: Regenerate. + * features/i386/32bit-core.c: Regenerate. + * features/i386/32bit-linux.c: Regenerate. + * features/i386/32bit-mpx.c: Regenerate. + * features/i386/32bit-pkeys.c: Regenerate. + * features/i386/32bit-sse.c: Regenerate. + * features/i386/64bit-avx.c: Regenerate. + * features/i386/64bit-avx512.c: Regenerate. + * features/i386/64bit-core.c: Regenerate. + * features/i386/64bit-linux.c: Regenerate. + * features/i386/64bit-mpx.c: Regenerate. + * features/i386/64bit-pkeys.c: Regenerate. + * features/i386/64bit-segments.c: Regenerate. + * features/i386/64bit-sse.c: Regenerate. + * features/i386/x32-core.c: Regenerate. + * features/tic6x-c6xp.c: Regenerate. + * features/tic6x-core.c: Regenerate. + * features/tic6x-gp.c: Regenerate. + * target-descriptions.c: Use common/tdesc.h. + * target-descriptions.h: Likewise. + +2018-02-24 Tom Tromey + + * linux-thread-db.c (try_thread_db_load_from_pdir_1) + (try_thread_db_load_from_dir, thread_db_load_search): Use + std::string. + (info_auto_load_libthread_db_compare): Return bool. Change + argument types. + (info_auto_load_libthread_db): Use std::vector, std::string. + Remove cleanups. + +2018-02-24 Tom Tromey + + * i386-tdep.c (i386_fast_tracepoint_valid_at): "msg" now a + std::string. + * gdbarch.sh (fast_tracepoint_valid_at): Change "msg" to a + std::string*. + * gdbarch.c: Rebuild. + * gdbarch.h: Rebuild. + * breakpoint.c (check_fast_tracepoint_sals): Use std::string. + * arch-utils.h (default_fast_tracepoint_valid_at): Update. + * arch-utils.c (default_fast_tracepoint_valid_at): "msg" now a + std::string*. + +2018-02-23 Simon Marchi + + * gdbtypes.h (sect_offset): Change type to uint64_t. + (sect_offset_str): New function. + * dwarf2read.c (create_addrmap_from_aranges): Use + sect_offset_str. + (error_check_comp_unit_head): Likewise. + (create_debug_type_hash_table): Likewise. + (read_cutu_die_from_dwo): Likewise. + (init_cutu_and_read_dies): Likewise. + (init_cutu_and_read_dies_no_follow): Likewise. + (process_psymtab_comp_unit_reader): Likewise. + (partial_die_parent_scope): Likewise. + (peek_die_abbrev): Likewise. + (process_queue): Likewise. + (dwarf2_physname): Likewise. + (read_namespace_alias): Likewise. + (read_import_statement): Likewise. + (create_dwo_cu_reader): Likewise. + (create_cus_hash_table): Likewise. + (lookup_dwo_cutu): Likewise. + (inherit_abstract_dies): Likewise. + (read_func_scope): Likewise. + (read_call_site_scope): Likewise. + (dwarf2_add_member_fn): Likewise. + (read_common_block): Likewise. + (read_module_type): Likewise. + (read_typedef): Likewise. + (read_subrange_type): Likewise. + (load_partial_dies): Likewise. + (read_partial_die): Likewise. + (find_partial_die): Likewise. + (read_str_index): Likewise. + (dwarf2_string_attr): Likewise. + (build_error_marker_type): Likewise. + (lookup_die_type): Likewise. + (dump_die_shallow): Likewise. + (follow_die_ref): Likewise. + (dwarf2_fetch_die_loc_sect_off): Likewise. + (dwarf2_fetch_constant_bytes): Likewise. + (follow_die_sig): Likewise. + (get_signatured_type): Likewise. + (get_DW_AT_signature_type): Likewise. + (dwarf2_find_containing_comp_unit): Likewise. + (set_die_type): Likewise. + +2018-02-21 John Baldwin + + * arch/aarch64.c: Include "common-defs.h". + * arch/amd64.c: Likewise. + * arch/i386.c: Likewise. + +2018-02-21 Tom Tromey + + * value.h: (extract_field_op): Update. + * eval.c (extract_field_op): Return a const char *. + * expression.h (parse_expression_for_completion): Update. + * completer.c (complete_expression): Update. + (add_struct_fields): Make fieldname const. + * parse.c (expout_completion_name): Now a unique_xmalloc_ptr. + (mark_completion_tag, parse_exp_in_context_1): Update. + (parse_expression_for_completion): Change "name" to + unique_xmalloc_ptr*. + +2018-02-21 Tom Tromey + + * infcall.c (call_function_by_hand_dummy): Use std::vector. + +2018-02-21 Yao Qi + + * avr-tdep.c (avr_read_pc): Change parameter type to + readable_regcache. + * gdbarch.sh (read_pc): Likewise. + * gdbarch.c: Re-generated. + * gdbarch.h: Re-generated. + * hppa-tdep.c (hppa_read_pc): Change parameter type to + readable_regcache. + * ia64-tdep.c (ia64_read_pc): Likewise. + * mips-tdep.c (mips_read_pc): Likewise. + * spu-tdep.c (spu_read_pc): Likewise. + +2018-02-21 Yao Qi + + * Makefile.in (COMMON_SFILES): Add regcache-dump.c + * regcache-dump.c: New file. + * regcache.c: Move register_dump to regcache-dump.c. + (maintenance_print_registers): Likewise. + (maintenance_print_raw_registers): Likewise. + (maintenance_print_cooked_registers): Likewise. + (maintenance_print_register_groups): Likewise. + (maintenance_print_remote_registers): Likewise. + (_initialize_regcache): Likewise. + * regcache.h (register_dump): Moved from regcache.c. + +2018-02-21 Yao Qi + + * regcache.c (regcache::regcache): Update. + (regcache::invalidate): Move it to detached_regcache::invalidate. + (get_thread_arch_aspace_regcache): Update. + (regcache::raw_update): Update. + (regcache::cooked_read): Remove some code. + (regcache::cooked_read_value): Likewise. + (regcache::raw_write): Remove assert on m_readonly_p. + (regcache::raw_supply_integer): Move it to + detached_regcache::raw_supply_integer. + (regcache::raw_supply_zeroed): Likewise. + * regcache.h (detached_regcache) : New + declaration. + : Likewise. + (regcache) : Removed. + : Likewise. + : Removed. + +2018-02-21 Yao Qi + + * infcmd.c (get_return_value): Let stop_regs point to + get_current_regcache. + * regcache.c (regcache::regcache): Remove. + (register_dump_reg_buffer): New class. + (regcache_print): Adjust. + * regcache.h (regcache): Remove constructors. + +2018-02-21 Yao Qi + + * regcache.c (class register_dump): New class. + (register_dump_regcache, register_dump_none): New class. + (register_dump_remote, register_dump_groups): New class. + (regcache_print): Update. + * regcache.h (regcache_dump_what): Move it to regcache.c. + (regcache) : Remove. + +2018-02-21 Yao Qi + + * jit.c (struct jit_unwind_private) : Change its type to + reg_buffer_rw *. + (jit_unwind_reg_set_impl): Call raw_supply. + (jit_frame_sniffer): Use reg_buffer_rw. + * record-full.c (record_full_core_regbuf): Change its type. + (record_full_core_open_1): Use reg_buffer_rw. + (record_full_close): Likewise. + (record_full_core_fetch_registers): Use regcache->raw_supply. + (record_full_core_store_registers): Likewise. + * regcache.c (regcache::get_register_status): Move it to + reg_buffer. + (regcache_raw_set_cached_value): Remove. + (regcache::raw_set_cached_value): Remove. + (regcache::raw_write): Call raw_supply. + (regcache::raw_supply): Move it to reg_buffer_rw. + * regcache.h (regcache_raw_set_cached_value): Remove. + (reg_buffer_rw): New class. + +2018-02-21 Yao Qi + + * dummy-frame.c (dummy_frame_cache) : Use + readonly_detached_regcache. + (dummy_frame_prev_register): Use regcache->cooked_read. + * frame.c (frame_save_as_regcache): Change return type. + (frame_pop): Update. + * frame.h (frame_save_as_regcache): Update declaration. + * inferior.h (get_infcall_suspend_state_regcache): Update + declaration. + * infrun.c (infcall_suspend_state) : use + readonly_detached_regcache. + (save_infcall_suspend_state): Don't use regcache_dup. + (get_infcall_suspend_state_regcache): Change return type. + * linux-fork.c (struct fork_info) : Change to + readonly_detached_regcache. + : New field. + (fork_save_infrun_state): Don't use regcache_dup. + (info_checkpoints_command): Adjust. + * mi/mi-main.c (register_changed_p): Update declaration. + (mi_cmd_data_list_changed_registers): Use + readonly_detached_regcache. + (register_changed_p): Change parameter type to + readonly_detached_regcache. + * ppc-linux-tdep.c (ppu2spu_cache) : Use + readonly_detached_regcache. + (ppu2spu_sniffer): Construct a new readonly_detached_regcache. + * regcache.c (readonly_detached_regcache::readonly_detached_regcache): + New. + (regcache::save): Move it to reg_buffer. + (regcache::restore): Change parameter type. + (regcache_dup): Remove. + * regcache.h (reg_buffer) : New method. + (readonly_detached_regcache): New class. + * spu-tdep.c (spu2ppu_cache) : Use + readonly_detached_regcache. + (spu2ppu_sniffer): Construct a new readonly_detached_regcache. + +2018-02-21 Yao Qi + + * frame.c (frame_save_as_regcache): Use regcache method save. + (frame_pop): Use regcache method restore. + * infrun.c (restore_infcall_suspend_state): Likewise. + * linux-fork.c (fork_load_infrun_state): Likewise. + * ppc-linux-tdep.c (ppu2spu_sniffer): User regcache method + save. + * regcache.c (regcache_save): Remove. + (regcache::restore): More asserts. + (regcache_cpy): Remove. + * regcache.h (regcache_save): Remove the declaration. + (regcache::restore): Move from private to public. + Remove the friend declaration of regcache_cpy. + (regcache_cpy): Remove declaration. + +2018-02-21 Yao Qi + + * aarch64-tdep.c (aarch64_pseudo_register_read_value): Change + parameter type to 'readable_regcache *'. + * amd64-tdep.c (amd64_pseudo_register_read_value): Likewise. + * arm-tdep.c (arm_neon_quad_read): Likewise. + (arm_pseudo_read): Likewise. + * avr-tdep.c (avr_pseudo_register_read): Likewise. + * bfin-tdep.c (bfin_pseudo_register_read): Likewise. + * frv-tdep.c (frv_pseudo_register_read): Likewise. + * gdbarch.c: Re-generated. + * gdbarch.h: Re-generated. + * gdbarch.sh (pseudo_register_read): Change parameter type to + 'readable_regcache *'. + (pseudo_register_read_value): Likewise. + * h8300-tdep.c (pseudo_from_raw_register): Likewise. + (h8300_pseudo_register_read): Likewise. + * hppa-tdep.c (hppa_pseudo_register_read): Likewise. + * i386-tdep.c (i386_mmx_regnum_to_fp_regnum): Likewise. + (i386_pseudo_register_read_into_value): Likewise. + (i386_pseudo_register_read_value): Likewise. + * i386-tdep.h (i386_pseudo_register_read_into_value): Update + declaration. + * ia64-tdep.c (ia64_pseudo_register_read): Likewise. + * m32c-tdep.c (m32c_raw_read): Likewise. + (m32c_read_flg): Likewise. + (m32c_banked_register): Likewise. + (m32c_banked_read): Likewise. + (m32c_sb_read): Likewise. + (m32c_part_read): Likewise. + (m32c_cat_read): Likewise. + (m32c_r3r2r1r0_read): Likewise. + (m32c_pseudo_register_read): Likewise. + * m68hc11-tdep.c (m68hc11_pseudo_register_read): Likewise. + * mep-tdep.c (mep_pseudo_cr32_read): Likewise. + (mep_pseudo_cr64_read): Likewise. + (mep_pseudo_register_read): Likewise. + * mips-tdep.c (mips_pseudo_register_read): Likewise. + * msp430-tdep.c (msp430_pseudo_register_read): Likewise. + * nds32-tdep.c (nds32_pseudo_register_read): Likewise. + * regcache.c (regcache::raw_read): Move it to readable_regcache. + (regcache::cooked_read): Likewise. + (regcache::cooked_read_value): Likewise. + (regcache_cooked_read_signed): + (regcache::cooked_read): Likewise. + * regcache.h (readable_regcache): New class. + (regcache): Inherit readable_regcache. Move some methods to + readable_regcache. + * rl78-tdep.c (rl78_pseudo_register_read): Change + parameter type to 'readable_regcache *'. + * rs6000-tdep.c (do_regcache_raw_read): Remove. + (e500_pseudo_register_read): Change parameter type to + 'readable_regcache *'. + (dfp_pseudo_register_read): Likewise. + (vsx_pseudo_register_read): Likewise. + (efpr_pseudo_register_read): Likewise. + * s390-tdep.c (s390_pseudo_register_read): Likewise. + * sh-tdep.c (sh_pseudo_register_read): Likewise. + * sh64-tdep.c (pseudo_register_read_portions): Likewise. + (sh64_pseudo_register_read): Likewise. + * sparc-tdep.c (sparc32_pseudo_register_read): Likewise. + * sparc64-tdep.c (sparc64_pseudo_register_read): Likewise. + * spu-tdep.c (spu_pseudo_register_read_spu): Likewise. + (spu_pseudo_register_read): Likewise. + * xtensa-tdep.c (xtensa_register_read_masked): Likewise. + (xtensa_pseudo_register_read): Likewise. + +2018-02-21 Yao Qi + + * regcache.c (regcache::regcache): Call reg_buffer ctor. + (regcache::arch): Move it to reg_buffer::arch. + (regcache::register_buffer): Likewise. + (regcache::assert_regnum): Likewise. + (regcache::num_raw_registers): Likewise. + * regcache.h (reg_buffer): New class. + (regcache): Inherit reg_buffer. + +2018-02-20 Simon Marchi + + * remote-sim.c (gdb_os_printf_filtered, gdb_os_vprintf_filtered, + gdb_os_evprintf_filtered, gdb_os_error): Add ATTRIBUTE_PRINTF. + +2018-02-20 Markus Metzger + + * gnulib/update-gnulib.sh (IMPORTED_GNULIB_MODULES): Add mkstemp. + +2018-02-19 Alan Hayward + + * Makefile.in: (COMMON_SFILES): Add common/*.c files. + (SFILES): Remove common/*.c files. + (COMMON_OBS): Remove some *.o files built from common/*.c files. + * common/common.host: Add common reference. + * configure.ac: Likewise. + * configure: Regenerate. + +2018-02-16 Yao Qi + + * block.c (block_namespace_info): Inherit allocate_on_obstack. + (block_initialize_namespace): Use new. + * dwarf2read.c (dwarf2_per_objfile): Inherit allocate_on_obstack. + (dwarf2_free_objfile): Use delete. + * gdbtypes.c (type_pair): Inherit allocate_on_obstack. + (copy_type_recursive): Use new. + * gdb_obstack.h (allocate_on_obstack): New. + +2018-02-15 Yao Qi + + PR gdb/22849 + * inferior.c (exit_inferior_1): Reset inf->control. + +2018-02-15 Joel Brobecker + + * ada-lang.c (ada_to_fixed_value_create): Delete advance + declaration. + +2018-02-14 Pedro Alves + + * frame-unwind.c (frame_unwind_try_unwinder): Always call + frame_cleanup_after_sniffer on exception. + +2018-02-14 Tom Tromey + + * solist.h (struct target_so_ops) : Make pathname + const. + (solib_bfd_open): Make pathname const. + * solib.c (solib_bfd_open): Make pathname const. + * solib-spu.c (spu_bfd_fopen): Make name const. + (spu_bfd_open): Make pathname const. + * solib-darwin.c (darwin_bfd_open): Make pathname const. + * solib-aix.c (solib_aix_bfd_open): Make pathname const. + +2018-02-14 Tom Tromey + + * symfile.c (symfile_bfd_open): Update. + * source.h (openp, source_full_path_of, find_and_open_source): + Change argument type to unique_xmalloc_ptr. + * source.c (openp): Take a unique_xmalloc_ptr. + (source_full_path_of, find_and_open_source): Likewise. + (open_source_file, symtab_to_fullname): Update. + * solist.h (struct target_so_ops) : Take a + unique_xmalloc_ptr. + * solib.c (solib_find_1): Use unique_xmalloc_ptr. + (exec_file_find): Update. + * psymtab.c (psymtab_to_fullname): Update. + * nto-tdep.h (nto_find_and_open_solib): Update. + * nto-tdep.c (nto_find_and_open_solib): Change temp_path to a + unique_xmalloc_ptr. + * exec.c (exec_file_attach): Update. + * dwarf2read.c (try_open_dwop_file): Use unique_xmalloc_ptr. + * cli/cli-cmds.c (find_and_open_script): Use unique_xmalloc_ptr. + +2018-02-14 Tom Tromey + + * solib.c: Include source.h. + * nto-tdep.c: Include source.h. + * mi/mi-cmd-env.c: Include source.h. + * infcmd.c: Include source.h. + * exec.c: Include source.h. + * defs.h (enum openp_flag, openp, source_full_path_of, mod_path) + (add_path, directory_switch, source_path, init_source_path): Move + declarations... + * source.h (enum openp_flag, openp, source_full_path_of, mod_path) + (add_path, directory_switch, source_path, init_source_path): + ...here. + +2018-02-14 Tom Tromey + + * solist.h (exec_file_find, solib_find): Return + unique_xmalloc_ptr. + (solib_bfd_fopen): Take a const char *. + * solib.c (solib_find_1): Return unique_xmalloc_ptr. + (exec_file_find, solib_find): Likewise. + (solib_bfd_fopen): Do not take ownership of "pathname". + (solib_bfd_open): Use unique_xmalloc_ptr. + * solib-darwin.c (darwin_bfd_open): Use unique_xmalloc_ptr. + * solib-aix.c (solib_aix_bfd_open): Use unique_xmalloc_ptr. + * infrun.c (follow_exec): Use unique_xmalloc_ptr. + * exec.c (exec_file_locate_attach): Use unique_xmalloc_ptr. + +2018-02-14 Joel Brobecker + + * ada-lang.c (name_match_type_from_name): Remove reference to + ada_name_for_lookup in function's documentation. + * ada-lang.h (ada_name_for_lookup): Delete declaration. + +2018-02-13 Simon Marchi + + * defs.h (enum openp_flags): New enum. + (OPF_TRY_CWD_FIRST, OPF_SEARCH_IN_PATH, OPF_RETURN_REALPATH): + Move to enum openp_flags. + (openp_flags): New enum flags. + (openp): Change parameter type to openp_flags. + * source.c (openp): Change parameter type to openp_flags. + * cli/cli-cmds.c (find_and_open_script): Use openp_flags. + * dwarf2read.c (try_open_dwop_file): Use openp_flags. + +2018-02-13 Simon Marchi + + * maint.c (_initialize_maint_cmds): Fix prefix of maint set/show + per-command. + +2018-02-12 Andrew Burgess + + * dwarf2read.c (dwarf2_release_queue): Delete function, move body + into... + (class dwarf2_queue_guard): ...the destructor of this new class. + (dw2_do_instantiate_symtab): Create instance of the new class + dwarf2_queue_guard, remove cleanup. + +2018-02-09 Tom Tromey + + * source.c (find_source_lines): Don't reference past the end of + the vector. + +2018-02-09 Markus Metzger + + * remote.c (remote_btrace_maybe_reopen): Change error message. + * btrace.c (btrace_enable): Likewise. + (parse_xml_btrace): Likewise. + (parse_xml_btrace_conf): Likewise. + +2018-02-09 Markus Metzger + + * nat/linux-btrace.c (diagnose_perf_event_open_fail): New. + (linux_enable_pt, linux_enable_bts): Call + diagnose_perf_event_open_fail. + +2018-02-09 Markus Metzger + + * nat/linux-btrace.c (perf_event_pt_event_type): Improve error message. + Remove parameter and change return type. Update callers. Move it. + (linux_enable_bts, linux_enable_pt): Improve error message. + (linux_enable_pt): Remove zero buffer size check. + (linux_enable_btrace): Improve error messages. Remove NULL return + check. + +2018-02-09 Markus Metzger + + * btrace.c (btrace_enable): Remove target_supports_btrace call. + * nat/linux-btrace.c (perf_event_pt_event_type): Move. + (kernel_supports_bts, kernel_supports_pt, linux_supports_bts) + (linux_supports_pt, linux_supports_btrace): Remove. + (linux_enable_bts): Call cpu_supports_bts. + * nat/linux-btrace.h (linux_supports_btrace): Remove. + * remote.c (remote_supports_btrace): Remove. + (init_remote_ops): Remove remote_supports_btrace. + * target-delegates.c: Regenerated. + * target.c (target_supports_btrace): Remove. + * target.h (target_ops) : Remove + (target_supports_btrace): Remove. + * x86-linux-nat.c (x86_linux_create_target): Remove + linux_supports_btrace. + +2018-02-09 Markus Metzger + + * nat/linux-btrace.c (linux_enable_btrace): Throw exception if enabling + btrace failed. + * x86-linux-nat.c (x86_linux_enable_btrace): Catch btrace enabling + exception and use message in own exception. + +2018-02-09 Markus Metzger + + * nat/linux-btrace.c: Include scoped_fd.h and scoped_mmap.h. + (perf_event_pt_event_type): Use gdb_file_up. + (linux_enable_bts, linux_enable_pt): Use gdb::unique_xmalloc_ptr, + scoped_fd, and scoped_mmap. + +2018-02-09 Markus Metzger + + * common/scoped_mmap.h: New. + * unittests/scoped_mmap-selftest.c: New. + * Makefile.in (SUBDIR_UNITTESTS_SRCS): Add + unittests/scoped_mmap-selftest.c. + +2018-02-09 Markus Metzger + + * common/scoped_fd.h: New. + * unittests/scoped_fd-selftest.c: New. + * Makefile.in (SUBDIR_UNITTESTS_SRCS): Add + unittests/scoped_fd-selftest.c. + +2018-02-09 Tom Tromey + + * auto-load.c (auto_load_section_scripts): Use + gdb::unique_xmalloc_ptr. + +2018-02-09 Tom Tromey + + * auto-load.c (execute_script_contents): Use std::string. + +2018-02-09 Joel Brobecker + + * NEWS : Clarify that "rbreak" is a new + Python function, rather than a new command. + +2018-02-08 Tom Tromey + + * solib.c (solib_find_1): Use std::string. + (solib_bfd_fopen): Use unique_xmalloc_ptr. + +2018-02-08 Tom Tromey + + * build-id.c (build_id_to_debug_bfd): Use unique_xmalloc_ptr. + +2018-02-08 Tom Tromey + + * source.c (find_source_lines): Use gdb::def_vector. + +2018-02-08 Tom Tromey + + * macrocmd.c (struct temporary_macro_definition): New. + (macro_define_command): Use temporary_macro_definition. Remove + cleanups. + (free_macro_definition_ptr): Remove. + +2018-02-08 Tom Tromey + + * macroexp.c (maybe_expand): Use std::string. + +2018-02-08 Tom Tromey + + * macroexp.c (struct macro_buffer): Add initializers for some + members. + (init_buffer, init_shared_buffer, free_buffer) + (free_buffer_return_text): Remove. + (macro_buffer): New constructors. + (~macro_buffer): New destructor. + (macro_buffer::set_shared): New method. + (macro_buffer::resize_buffer, macro_buffer::appendc) + (macro_buffer::appendmem): Now methods, not free functions. + (set_token, append_tokens_without_splicing, stringify) + (macro_stringify): Update. + (gather_arguments): Change return type. Remove argc_p argument, + add args_ptr argument. Use std::vector. + (substitute_args): Remove argc argument. Accept std::vector. + (expand): Update. Use std::vector. + (scan, macro_expand, macro_expand_next): Update. + +2018-02-08 Tom Tromey + + * symtab.c (default_collect_symbol_completion_matches_break_on): + Use unique_xmalloc_ptr. + * macroscope.h: (sal_macro_scope, user_macro_scope) + (default_macro_scope): Return unique_xmalloc_ptr. + * macroscope.c (sal_macro_scope, user_macro_scope) + (default_macro_scope): Return unique_xmalloc_ptr. + * macroexp.h (macro_expand, macro_expand_once): Return + unique_xmalloc_ptr. + * macroexp.c (macro_expand, macro_expand_once): Return + unique_xmalloc_ptr. + * macrocmd.c (macro_expand_command, macro_expand_once_command) + (info_macro_command, info_macros_command): Use + unique_xmalloc_ptr. + * compile/compile-c-support.c (write_macro_definitions): Use + unique_xmalloc_ptr. + * c-exp.y (c_parse): Use unique_xmalloc_ptr. + +2018-02-07 Simon Marchi + + * value.c (value_static_field): Assign field type instead of + containing type when returning an optimized out value. + +2018-02-06 Yao Qi + + * ft32-tdep.c (ft32_read_pc): Remove. + (ft32_write_pc): Remove. + (ft32_gdbarch_init): Update. + * m32r-tdep.c (m32r_read_pc): Remove. + (m32r_gdbarch_init): Update. + * mep-tdep.c (mep_read_pc): Remove. + (mep_gdbarch_init): Update. + * microblaze-tdep.c (microblaze_write_pc): Remove. + (microblaze_gdbarch_init): Update. + * mn10300-tdep.c (mn10300_read_pc): Remove. + (mn10300_write_pc): Remove. + (mn10300_gdbarch_init): Update. + * moxie-tdep.c (moxie_read_pc): Remove. + (moxie_write_pc): Remove. + (moxie_gdbarch_init): Update. + +2018-02-06 Yao Qi + + * expprint.c (print_subexp_standard): Handle + OP_F77_UNDETERMINED_ARGLIST. + (dump_subexp_body_standard): Likewise. + +2018-02-05 Alan Hayward + + * target-descriptions.c (tdesc_element_visitor) Add empty + implementations. + (tdesc_type): Move make_gdb_type from here. + (tdesc_type_builtin): Likewise. + (tdesc_type_vector): Likewise. + (tdesc_type_with_fields): Move make_gdb_type_ functions from here. + (make_gdb_type_struct): Move from tdesc_type_with_fields. + (make_gdb_type_union): Likewise. + (make_gdb_type_flags): Likewise. + (make_gdb_type_enum): Likewise. + (make_gdb_type): New function. + (tdesc_register_type): Use static make_gdb_type. + +2018-02-05 Ruslan Kabatsayev + + * infcmd.c (default_print_one_register_info): Align natural-format + column values consistently one under another. + (pad_to_column): New function. + +2018-02-05 Joel Brobecker + + * dwarf2read.c (dwarf2_physname): Move commment. + +2018-02-01 Leszek Swirski + + * varobj.c (varobj_formatted_print_options): Allow recursive + pretty printing if pretty printing is enabled. + +2018-02-01 Leszek Swirski + + * c-exp.y (lex_one_token, classify_name, yylex): Don't classify + names after a structop as a filename. + +2018-02-01 Yao Qi + + * arm-tdep.c (arm_record_data_proc_misc_ld_str): Rewrite it. + (arm_record_coproc_data_proc): Likewise. + +2018-02-01 Yao Qi + + * arm-tdep.c (arm_record_extension_space): Change ret to signed. + +2018-01-31 Nikola Prica + + * rs6000-tdep.c (skip_prologue): Remove shifting for lr_reg and + assign shifted lr_reg to fdata->lr_register when lr_reg is set. + +2018-01-31 Pedro Alves + + * darwin-nat.c (darwin_interrupt): Remove ptid_t parameter. + * inflow.c (child_terminal_save_inferior): Wrap reference to + tcgetpgrp in HAVE_TERMIOS_H. + (child_interrupt, child_pass_ctrlc): Wrap references to signal in + _WIN32. + * remote-sim.c (gdbsim_interrupt): Remove ptid_t parameter and + always iterate over all inferiors. + (gdbsim_cntrl_c): Adjust. + * windows-nat.c (windows_interrupt): Remove 'ptid_t' parameter. + +2018-01-31 Joel Brobecker + + * gdbtypes.c (lookup_array_range_type): Make sure the array's + index type is objfile-owned if the element type is as well. + +2018-01-31 Joel Brobecker + + GDB 8.1 released. + +2018-01-30 Philipp Rudo + + * s390-linux-tdep.c: Remove includes "features/s390-linux32.c" and + "features/s390x-linux64.c". + (_initialize_s390_linux_tdep): Remove initialization of tdescs + s390_linux32 and s390x_linux64. + (s390_linux_init_abi_31, s390_linux_init_abi_64): Don't set + default tdesc. + * s390-tdep.c: Include "features/s390-linux32.c" and + "features/s390x-linux64.c". + (s390_tdesc_valid): Add check for tdesc_has_registers. + (s390_gdbarch_init): Make sure there is always a valid tdesc. + (_initialize_s390_tdep): Initialize tdesc_s390_linux32 and + tdesc_s390x_linux64. + * s390-linux-tdep.h: Move export of tdesc_s390_linux32 and + tdesc_s390x_linux64 to... + * s390-tdep.h: ...here. + +2018-01-30 Pedro Alves + + PR gdb/13211 + * config.in, configure: Regenerate. + * configure.ac: Check for getpgid. + * go32-nat.c (go32_pass_ctrlc): New. + (go32_target): Install it. + * inf-child.c (inf_child_target): Install + child_terminal_save_inferior, child_pass_ctrlc and + child_interrupt. + * inf-ptrace.c (inf_ptrace_interrupt): Delete. + (inf_ptrace_target): No longer install it. + * infcmd.c (interrupt_target_1): Adjust. + * inferior.h (child_terminal_save_inferior, child_pass_ctrlc) + (child_interrupt): Declare. + (inferior::terminal_state): New. + * inflow.c (struct terminal_info): Update comments. + (inferior_process_group): Delete. + (terminal_is_ours): Delete. + (gdb_tty_state): New. + (child_terminal_init): Adjust. + (is_gdb_terminal, sharing_input_terminal_1) + (sharing_input_terminal): New functions. + (child_terminal_inferior): Adjust. Use sharing_input_terminal. + Set the process's actual process group in the foreground if + possible. Handle is_ours_for_output/is_ours distinction. Don't + mark terminal as the inferior's if not sharing GDB's terminal. + Don't check attach_flag. + (child_terminal_ours_for_output, child_terminal_ours): Adjust to + pass down a target_terminal_state. + (child_terminal_save_inferior): New, factored out from ... + (child_terminal_ours_1): ... this. Handle + target_terminal_state::is_ours_for_output. + (child_interrupt, child_pass_ctrlc): New. + (inflow_inferior_exit): Clear the inferior's terminal_state. + (copy_terminal_info): Copy the inferior's terminal state. + (_initialize_inflow): Remove reference to terminal_is_ours. + * inflow.h (inferior_process_group): Delete. + * nto-procfs.c (nto_handle_sigint, procfs_interrupt): Adjust. + * procfs.c (procfs_target): Don't install procfs_interrupt. + (procfs_interrupt): Delete. + * remote.c (remote_serial_quit_handler): Adjust. + (remote_interrupt): Remove ptid parameter. Adjust. + * target-delegates.c: Regenerate. + * target.c: Include "terminal.h". + (target_terminal::terminal_state): Rename to ... + (target_terminal::m_terminal_state): ... this. + (target_terminal::init): Adjust. + (target_terminal::inferior): Adjust to per-inferior + terminal_state. + (target_terminal::restore_inferior, target_terminal_is_ours_kind): New. + (target_terminal::ours, target_terminal::ours_for_output): Use + target_terminal_is_ours_kind. + (target_interrupt): Remove ptid parameter. Adjust. + (default_target_pass_ctrlc): Adjust. + * target.h (target_ops::to_terminal_save_inferior): New field. + (target_ops::to_interrupt): Remove ptid_t parameter. + (target_interrupt): Remove ptid_t parameter. Update comment. + (target_pass_ctrlc): Update comment. + * target/target.h (target_terminal_state): New scoped enum, + factored out of ... + (target_terminal::terminal_state): ... here. + (target_terminal::inferior): Update comments. + (target_terminal::restore_inferior): New. + (target_terminal::is_inferior, target_terminal::is_ours) + (target_terminal::is_ours_for_output): Adjust. + (target_terminal::scoped_restore_terminal_state): Adjust to + rename, and call restore_inferior() instead of inferior(). + (target_terminal::scoped_restore_terminal_state::m_state): Change + type. + (target_terminal::terminal_state): Rename to ... + (target_terminal::m_terminal_state): ... this and change type. + +2018-01-30 Pedro Alves + + * linux-nat.c (wait_for_signal): New function. + (wait_lwp, linux_nat_wait_1): Use it instead of calling sigsuspend + directly. + (async_terminal_is_ours) + (linux_nat_terminal_inferior, linux_nat_terminal_ours): Delete. + (linux_nat_add_target): Don't override + to_terminal_inferior/to_terminal_ours. + +2018-01-29 Sergio Durigan Junior + + * remote.c (remote_follow_fork): Don't call "detach_inferior". + +2018-01-28 Simon Marchi + + * dwarf2read.c (free_dwo_files): Add forward-declaration. + (dwarf2_per_objfile::~dwarf2_per_objfile): Move content from + dwarf2_per_objfile_free here. + (dwarf2_per_objfile_free): Remove. + (_initialize_dwarf2_read): Don't register + dwarf2_per_objfile_free as a registry cleanup. + 2018-01-27 Eli Zaretskii Avoid compilation errors in MinGW native builds @@ -25,6 +8726,34 @@ * python/python-internal.h (_hypot) [__MINGW32__]: Define back to 'hypoth'. This avoids a compilation error. +2018-01-26 Alan Hayward + + * MAINTAINERS (Write After Approval): Fix ordering. + +2018-01-26 Alan Hayward + + * MAINTAINERS (Write After Approval): Add Alan Hayward. + +2018-01-26 Alan Modra + + * ppc-linux-tdep.c (powerpc32_plt_stub): Make const. + (powerpc32_plt_stub_so_1): Rename from powerpc32_plt_stub_so. + Remove nop. Make const. Comment. + (powerpc32_plt_stub_so_2): New. + (POWERPC32_PLT_CHECK_LEN): Rename from POWERPC32_PLT_STUB_LEN. + Correct count. Update uses. + (ppc_skip_trampoline_code): Match powerpc32_plt_stub_so_2 too. + Move common code reading PLT entry word. Correct + powerpc32_plt_stub PLT address calculation. + * ppc64-tdep.c (ppc64_standard_linkage1): Make const. + (ppc64_standard_linkage2, ppc64_standard_linkage3): Likewise. + (ppc64_standard_linkage4, ppc64_standard_linkage5): Likewise. + (ppc64_standard_linkage6, ppc64_standard_linkage7): Likewise. + (ppc64_standard_linkage8): Likewise. + * rs6000-tdep.c (ppc_insns_match_pattern): Make pattern const. + Correct insns description. + * ppc-tdep.h (ppc_insns_match_pattern): Update prototype. + 2018-01-24 Pedro Alves GCC PR libstdc++/83906 @@ -38,9 +8767,123 @@ (operator==(const range_bounds &, const range_bounds &)): Declare. (operator!=(const range_bounds &, const range_bounds &)): Declare. -2018-01-22 Maciej W. Rozycki +2018-01-23 Philipp Rudo - * MAINTAINERS: Update my company e-mail address. + * s390-linux-tdep.c (s390_record_address_mask) + (s390_record_calc_disp_common, s390_record_calc_disp) + (s390_record_calc_disp_vsce, s390_record_calc_rl, s390_popcnt) + (s390_record_gpr_g, s390_record_gpr_h, s390_record_vr) + (s390_process_record): Move to s390-tdep.c. + (s390_linux_init_abi_any): Adjust. + * s390-tdep.c (s390_record_address_mask) + (s390_record_calc_disp_common, s390_record_calc_disp) + (s390_record_calc_disp_vsce, s390_record_calc_rl, s390_popcnt) + (s390_record_gpr_g, s390_record_gpr_h, s390_record_vr) + (s390_process_record): Moved from s390-linux-tdep.c + (s390_gdbarch_init): Adjust. + +2018-01-23 Philipp Rudo + + * s390-linux-nat.c (s390-tdep.h): New include. + * Makefile.in (ALL_TARGET_OBS): Add s390-tdep.o. + (HFILES_NO_SRCDIR): Add s390-tdep.h. + (ALLDEPFILES): Add s390-tdep.c. + * configure.tgt (s390*-*-linux*): Add s390-tdep.o. + * s390-linux-tdep.h (HWCAP_S390_*, S390_*_REGNUM): Move to... + * s390-tdep.h: ...this. New file. + * s390-linux-tdep.c (s390-tdep.h): New include. + (_initialize_s390_tdep): Rename to... + (_initialize_s390_linux_tdep): ...this and adjust. + (s390_abi_kind, s390_vector_abi_kind, gdbarch_tdep) + (enum named opcodes, S390_NUM_GPRS, S390_NUM_FPRS): Move to + s390-tdep.h. + (s390_break_insn, s390_breakpoint, s390_readinstruction, is_ri) + (is_ril, is_rr, is_rre, is_rs, is_rsy, is_rx, is_rxy) + (s390_is_partial_instruction, s390_software_single_step) + (is_non_branch_ril, s390_displaced_step_copy_insn) + (s390_displaced_step_fixup, s390_displaced_step_hw_singlestep) + (s390_prologue_data, s390_addr, s390_store, s390_load) + (s390_check_for_saved, s390_analyze_prologue, s390_skip_prologue) + (s390_register_call_saved, s390_guess_tracepoint_registers) + (s390_register_name, s390_dwarf_regmap, s390_dwarf_reg_to_regnum) + (regnum_is_gpr_full, regnum_is_vxr_full, s390_value_from_register) + (s390_pseudo_register_name, s390_pseudo_register_type) + (s390_pseudo_register_read, s390_pseudo_register_write) + (s390_pseudo_register_reggroup_p, s390_ax_pseudo_register_collect) + (s390_ax_pseudo_register_push_stack, s390_gen_return_address) + (s390_addr_bits_remove, s390_address_class_type_flags) + (s390_address_class_type_flags_to_name) + (s390_address_class_name_to_type_flags, s390_effective_inner_type) + (s390_function_arg_float, s390_function_arg_vector) + (is_power_of_two, s390_function_arg_integer, s390_arg_state) + (s390_handle_arg, s390_push_dummy_call, s390_dummy_id) + (s390_frame_align, s390_register_return_value, s390_return_value) + (s390_stack_frame_destroyed_p, s390_unwind_pc, s390_unwind_sp) + (s390_unwind_pseudo_register, s390_adjust_frame_regnum) + (s390_dwarf2_prev_register, s390_dwarf2_frame_init_reg) + (s390_trad_frame_prev_register, s390_unwind_cache) + (s390_prologue_frame_unwind_cache) + (s390_backchain_frame_unwind_cache, s390_frame_unwind_cache) + (s390_frame_this_id, s390_frame_prev_register, s390_frame_unwind) + (s390_stub_unwind_cache, s390_stub_frame_unwind_cache) + (s390_stub_frame_this_id, s390_stub_frame_prev_register) + (s390_stub_frame_sniffer, s390_stub_frame_unwind) + (s390_frame_base_address, s390_local_base_address) + (s390_frame_base, s390_gcc_target_options) + (s390_gnu_triplet_regexp, s390_stap_is_single_operand) + (s390_validate_reg_range, s390_tdesc_valid) + (s390_gdbarch_tdep_alloc, s390_gdbarch_init): Move to... + * s390-tdep.c: ...this. New file. + +2018-01-23 Philipp Rudo + + * s390-linux-tdep.c (gdbarch_tdep.s390_syscall_record): New hook. + (s390_process_record, s390_gdbarch_tdep_alloc) + (s390_linux_init_abi_any): Use/set new hook. + +2018-01-23 Philipp Rudo + + * s390-linux-tdep.c (osabi.h): New include. + (s390_linux_init_abi_31, s390_linux_init_abi_64) + (s390_linux_init_abi_any): New functions. + (s390_gdbarch_init, _initialize_s390_tdep): Adjust. + +2018-01-23 Philipp Rudo + + * s390-linux-tdep.c (s390_gdbarch_init): Use gdb_assert for + tdesc_has_registers check + +2018-01-23 Philipp Rudo + + * s390-linux-tdep.c (s390_tdesc_valid): New function. + (s390_validate_reg_range): New macro. + (s390_gdbarch_init): Adjust. + +2018-01-23 Philipp Rudo + + * s390-linux-tdep.c (gdbarch_tdep) : New field. + (s390_gdbarch_tdep_alloc): Adjust. + (s390_gdbarch_init): Adjust. + +2018-01-23 Philipp Rudo + + * s390-linux-tdep.c (gdbarch_tdep) + : Change type to bool. + (s390_gdbarch_tdep_alloc): Adjust. + (s390_gdbarch_init): Adjust. + +2018-01-23 Philipp Rudo + + * s390-linux-tdep (s390_abi_kind) : New default field. + (gdbarch_tdep) : New fields. + (s390_gdbarch_tdep_alloc): New function. + (s390_gdbarch_init): Allocate tdep at start and use its fields + instead of separate variables. + +2018-01-23 Philipp Rudo + + * s390-linux-tdep.c (s390_gdbarch_init): Remove duplicate checks + when looking for cached gdbarch and add comment for remaining. 2018-01-22 Pedro Alves Sergio Durigan Junior @@ -48,11 +8891,341 @@ * typeprint.c (whatis_exp): Initialize "val" in the "whatis type" case. +2018-01-22 Maciej W. Rozycki + + * MAINTAINERS: Update my company e-mail address. + +2018-01-22 Yao Qi + + * regcache.c (cooked_write_test): New function. + (_initialize_regcache): Register the test. + +2018-01-22 Yao Qi + + * ia64-tdep.c (ia64_pseudo_register_read): Call + regcache->cooked_read instead of regcache_cooked_read_unsigned. + * m32c-tdep.c (m32c_cat_read): Likewise. + (m32c_r3r2r1r0_read): Likewise. + * m68hc11-tdep.c (m68hc11_pseudo_register_read): Likewise. + * xtensa-tdep.c (xtensa_register_read_masked): Likewise. + +2018-01-22 Yao Qi + + * aarch64-tdep.c (aarch64_pseudo_read_value): Call regcache + method raw_read instead of regcache_raw_read. + * amd64-tdep.c (amd64_pseudo_register_read_value): Likewise. + * arm-tdep.c (arm_neon_quad_read): Likewise. + * avr-tdep.c (avr_pseudo_register_read): Likewise. + * bfin-tdep.c (bfin_pseudo_register_read): Likewise. + * frv-tdep.c (frv_pseudo_register_read): Likewise. + * h8300-tdep.c (h8300_pseudo_register_read): Likewise. + * i386-tdep.c (i386_mmx_regnum_to_fp_regnum): Likewise. + (i386_pseudo_register_read_into_value): Likewise. + * mep-tdep.c (mep_pseudo_cr32_read): Likewise. + * msp430-tdep.c (msp430_pseudo_register_read): Likewise. + * nds32-tdep.c (nds32_pseudo_register_read): Likewise. + * rl78-tdep.c (rl78_pseudo_register_read): Likewise. + * s390-linux-tdep.c (s390_pseudo_register_read): Likewise. + * sparc-tdep.c (sparc32_pseudo_register_read): Likewise. + * sparc64-tdep.c (sparc64_pseudo_register_read): Likewise. + * spu-tdep.c (spu_pseudo_register_read_spu): Likewise. + * xtensa-tdep.c (xtensa_pseudo_register_read): Likewise. + +2018-01-22 Yao Qi + + * Makefile.in (ALL_TARGET_OBS): Remove mt-tdep.o. + * configure.tgt: Remove target mt. + * mt-tdep.c: Remove. + * regcache.c (cooked_read_test): Remove the check for mt. + +2018-01-22 Yao Qi + + * jit.c (jit_frame_prev_register): Call regcache::cooked_read + instead of gdbarch_pseudo_register_read_value. + +2018-01-22 Joel Brobecker + + * dwarf2read.c (need_gnat_info): Return nonzero if the cu's + language is Ada. + +2018-01-22 Joel Brobecker + + * linespec.c (create_sals_line_offset): Remove code that preserved + the symtab_and_line's line number. + +2018-01-21 Andrew Burgess + + * varobj.c (varobj_create): Don't set valid_block when creating a + floating varobj. + +2018-01-21 Andrew Burgess + + * varobj.c (varobj_create): Remove out of date comment. + +2018-01-21 Andrew Burgess + + PR mi/20395 + * ada-exp.y (write_var_from_sym): Pass extra parameter when + updating innermost block. + * parse.c (innermost_block_tracker::update): Take extra type + parameter, and check types match before updating innermost block. + (write_dollar_variable): Update innermost block for registers. + * parser-defs.h (enum innermost_block_tracker_type): New enum. + (innermost_block_tracker::innermost_block_tracker): Initialise + m_types member. + (innermost_block_tracker::reset): Take type parameter. + (innermost_block_tracker::update): Take type parameter, and pass + type through as needed. + (innermost_block_tracker::m_types): New member. + * varobj.c (varobj_create): Pass type when reseting innermost + block. + +2018-01-21 Andrew Burgess + + * ada-exp.y (write_var_from_sym): Switch to innermost_block API. + * ada-lang.c (resolve_subexp): Likewise. + * breakpoint.c (set_breakpoint_condition) Likewise. + (watch_command_1) Likewise. + * c-exp.y (variable): Likewise. + * d-exp.y (PrimaryExpression): Likewise. + * f-exp.y (variable): Likewise. + * go-exp.y (variable): Likewise. + * m2-exp.y (variable): Likewise. + * objfiles.c (objfile::~objfile): Likewise. + * p-exp.y (variable): Likewise. + * parse.c (innermost_block): Change type. + * parser-defs.h (class innermost_block_tracker): New. + (innermost_block): Change to innermost_block_tracker. + * printcmd.c (display_command): Switch to innermost_block API. + (do_one_display): Likewise. + * rust-exp.y (do_one_display): Likewise. + * symfile.c (clear_symtab_users): Likewise. + * varobj.c (varobj_create): Switch to innermost_block API, replace + use of innermost_block with block stored on varobj object. + +2018-01-21 Andrew Burgess + + * expression.h (innermost_block): Remove declaration. + * varobj.c: Add 'parser-defs.h' include. + +2018-01-19 Tom Tromey + + * rust-lang.c (rust_lookup_symbol_nonlocal): Look up qualified + symbols in the static and global blocks. + +2018-01-19 James Clarke + + * nat/linux-ptrace.c: Remove unnecessary reinclusion of + gdb_ptrace.h, and move including gdb_wait.h ... + * nat/linux-ptrace.h: ... to here. + +2018-01-19 Simon Marchi + + * inf-ptrace.c (inf_ptrace_detach): Adjust call to + inf_ptrace_detach_success. + (inf_ptrace_detach_success): Add inferior parameter, use it + instead of inferior_ptid, pass it to detach_inferior. + * inf-ptrace.h (inf_ptrace_detach_success): Add inferior + parameter. + * inferior.c (detach_inferior): Add overload that takes an + inferior object. + * inferior.h (detach_inferior): Likewise. + * linux-nat.c (linux_nat_detach): Use the inf parameter, don't + use inferior_ptid, adjust call to inf_ptrace_detach_success. + * linux-thread-db.c (thread_db_detach): Use inf parameter. + +2018-01-19 Simon Marchi + + * target.h (struct target_ops) : Add inferior + parameter. + (target_detach): Likewise. + * target.c (dispose_inferior): Pass inferior down. + (target_detach): Pass inferior down. Assert that it is equal to + the current inferior. + * aix-thread.c (aix_thread_detach): Pass inferior down. + * corefile.c (core_file_command): Pass current_inferior() down. + * corelow.c (core_detach): Add inferior parameter. + * darwin-nat.c (darwin_detach): Likewise. + * gnu-nat.c (gnu_detach): Likewise. + * inf-ptrace.c (inf_ptrace_detach): Likewise. + * infcmd.c (detach_command): Pass current_inferior() down to + target_detach. + * infrun.c (follow_fork_inferior): Pass parent_inf to + target_detach. + (handle_vfork_child_exec_or_exit): Pass inf->vfork_parent to + target_detach. + * linux-nat.c (linux_nat_detach): Add inferior parameter. + * linux-thread-db.c (thread_db_detach): Likewise. + * nto-procfs.c (procfs_detach): Likewise. + * procfs.c (procfs_detach): Likewise. + * record.c (record_detach): Likewise. + * record.h (struct inferior): Forward-declare. + (record_detach): Add inferior parameter. + * remote-sim.c (gdbsim_detach): Likewise. + * remote.c (remote_detach_1): Likewise. + (remote_detach): Likewise. + (extended_remote_detach): Likewise. + * sol-thread.c (sol_thread_detach): Likewise. + * target-debug.h (target_debug_print_inferior_p): New macro. + * target-delegates.c: Re-generate. + * top.c (kill_or_detach): Pass inferior down to target_detach. + * windows-nat.c (windows_detach): Add inferior parameter. + +2018-01-19 Simon Marchi + + * target.h (struct target_ops) : Remove args + parameter. + (target_detach): Likewise. + * target.c (dispose_inferior): Adjust. + (target_detach): Remove args parameter, adjust. + * aix-thread.c (aix_thread_detach): Adjust. + * corefile.c (core_file_command): Adjust. + * corelow.c (core_detach): Adjust. + * darwin-nat.c (darwin_detach): Adjust. + * gnu-nat.c (gnu_detach): Adjust. + * inf-ptrace.c (inf_ptrace_detach): Adjust. + * infcmd.c (detach_command): Adjust + * infrun.c (follow_fork_inferior): Adjust. + (handle_vfork_child_exec_or_exit): Adjust. + * linux-fork.c (linux_fork_detach): Remove args parameter. + * linux-fork.h (linux_fork_detach): Likewise. + * linux-nat.c (linux_nat_detach): Likewise, and adjust. + * linux-thread-db.c (thread_db_detach): Likewise. + * nto-procfs.c (procfs_detach): Likewise. + * procfs.c (procfs_detach): Likewise. + (do_detach): Remove signo parameter. + * record.c (record_detach): Remove args parameter. + * record.h (record_detach): Likewise. + * remote-sim.c (gdbsim_detach): Likewise. + * remote.c (remote_detach_1): Likewise. + (remote_detach): Likewise. + (extended_remote_detach): Likewise. + * sol-thread.c (sol_thread_detach): Likewise. + * target-delegates.c: Re-generate. + * top.c (struct qt_args) : Remove field. + (kill_or_detach): Don't pass args. + (quit_force): Don't set args. + * windows-nat.c (windows_detach): Remove args parameter. + +2018-01-19 Yao Qi + + * arm-linux-tdep.c (arm_linux_gcc_target_options): New function. + (arm_linux_init_abi): Install it. + +2018-01-19 Yao Qi + + * osabi.c (gdb_osabi_names): Extend the regexp for + arm-linux-gnueabihf. + +2018-01-18 Yao Qi + + * dwarf2read.c (abbrev_table) : Rename it to + m_abbrevs. + (abbrev_table::add_abbrev): Update. + (abbrev_table::lookup_abbrev): Update. + +2018-01-18 Yao Qi + + * ppc-linux-tdep.c (ppu2spu_prev_register): Call cooked_read. + 2018-01-17 Sergio Durigan Junior * compile/compile.c (compile_to_object): Convert "triplet_rx" to "std::string". +2018-01-17 Tom Tromey + + * dwarf2read.c (symbolp): Remove typedef. Don't instantiate VEC. + +2018-01-17 Tom Tromey + + * gdbtypes.h (add_dyn_prop): Remove objfile parameter. + * gdbtypes.c (add_dyn_prop): Remove objfile parameter. + (create_array_type_with_stride): Update. + * dwarf2read.c (set_die_type): Update. + +2018-01-17 Tom Tromey + + * dwarf2read.c (delayed_method_info): Remove typedef. + (dwarf2_cu::method_info): Now a std::vector. + (add_to_method_list): Update. + (free_delayed_list): Remove. + (compute_delayed_physnames): Update. + (process_full_comp_unit, process_full_type_unit): Clear the method + list. Remove cleanups. + (psymtab_include_file_name): Add name_holder parameter. Use + unique_xmalloc_ptr. + (dwarf_decode_lines): Update. + +2018-01-17 Tom Tromey + Simon Marchi + + * dwarf2read.c (struct dwarf2_cu): Add constructor, destructor. + (dwarf2_per_objfile::free_cached_comp_units) + (init_tu_and_read_dwo_dies, init_cutu_and_read_dies) + (init_cutu_and_read_dies_no_follow): Update. + (dwarf2_cu::dwarf2_cu): Rename from init_one_comp_unit. + (dwarf2_cu::~dwarf2_cu): New. + (free_heap_comp_unit, free_stack_comp_unit): Remove. + (age_cached_comp_units, free_one_cached_comp_unit): Update. + +2018-01-17 Tom Tromey + Simon Marchi + + * dwarf2read.c (struct dwarf2_cu) : Remove. + (struct die_reader_specs) : New member. + (struct abbrev_table): Add constructor. + : Declare. + : Now an auto_obstack. + (abbrev_table_up): New typedef. + (init_cu_die_reader): Add abbrev_table parameter. + (read_cutu_die_from_dwo): Remove abbrev_table_provided parameter. + Add result_dwo_abbrev_table. + (init_tu_and_read_dwo_dies, init_cutu_and_read_dies) + (init_cutu_and_read_dies_no_follow, build_type_psymtabs_1): + Update. + (peek_die_abbrev): Take die_reader_specs, not dwarf_cu as + parameter. + (skip_children): Update. + (abbrev_table::alloc_abbrev): Rename from + abbrev_table_alloc_abbrev. + (abbrev_table::add_abbrev): Rename from abbrev_table_add_abbrev. + (abbrev_table::lookup_abbrev): Rename from + abbrev_table_lookup_abbrev. + (abbrev_table_read_table): Return abbrev_table_up. + (abbrev_table_free, abbrev_table_free_cleanup) + (dwarf2_read_abbrevs, dwarf2_free_abbrev_table): Remove. + (load_partial_dies): Update. + +2018-01-17 Tom Tromey + + * dwarf2read.c (dwarf2_compute_name): Update comment. + (read_func_scope, read_variable): Update. + (new_symbol): Remove. + (new_symbol_full): Rename to new_symbol. + +2018-01-17 Mike Gulick + + PR gdb/16577 + * gdb_bfd.c (gdb_bfd_map_section): If unable to read object file, issue + a warning instead of throwing an error, set section size to 0 and return + NULL. + * gdb_bfd.h (gdb_bfd_map_section): Update description. + +2018-01-17 Simon Marchi + + * nat/linux-ptrace.h (linux_ptrace_attach_fail_reason): Return + std::string. + (linux_ptrace_attach_fail_reason_string): Likewise. + * nat/linux-ptrace.c (linux_ptrace_attach_fail_reason): + Likewise. + (linux_ptrace_attach_fail_reason_string): Likewise. + * linux-nat.c (attach_proc_task_lwp_callback): Adjust. + +2018-01-17 Simon Marchi + + * linux-nat.c (linux_nat_attach): Remove xstrdup. + 2018-01-17 Eldar Abusalimov PR gdb/21559 @@ -67,28 +9240,24 @@ (aarch64_linux_init_abi): Install it to gdbarch hook gcc_target_options. -2018-01-12 Andreas Arnez - - * infrun.c (keep_going_pass_signal): Clear step-over info when - insert_breakpoints fails. - -2018-01-12 Joel Brobecker +2018-01-15 Pedro Alves - * version.in: Set GDB version number to 8.0.91.DATE-git. - * PROBLEMS: Likewise. + * common/signals-state-save-restore.c + (save_original_signals_state): Fix typos. -2018-01-12 Joel Brobecker +2017-01-12 Tom Tromey + Sergio Durigan Junior - GDB 8.0.91 released. + * Makefile.in (install-only): Install gdb-add-index. -2018-01-12 Joel Brobecker +2018-01-12 John Baldwin - * version.in: Set GDB version number to 8.0.91. - * PROBLEMS: Likewise. + * fbsd-tdep.c (KVE_PROTECTION): Correct value. -2018-01-12 Joel Brobecker +2018-01-12 Andreas Arnez - * NEWS: Rename "Changes since 8.0" into "Changes in 8.1". + * infrun.c (keep_going_pass_signal): Clear step-over info when + insert_breakpoints fails. 2018-01-11 Pedro Alves @@ -137,6 +9306,52 @@ * minsyms.c (linkage_name_str): New function. (iterate_over_minimal_symbols): Use it. +2018-01-09 John Baldwin + + * NEWS: Document that 'info proc' now works on FreeBSD. + +2018-01-09 John Baldwin + + * configure.ac: Check for kinfo_getfile in libutil. + * configure: Regenerate. + * config.in: Regenerate. + * fbsd-nat.c: Include "fbsd-tdep.h". + (fbsd_fetch_cmdline): New. + (fbsd_fetch_kinfo_proc): Move earlier and change to return a bool + rather than calling error. + (fbsd_info_proc): New. + (fbsd_thread_name): Report error if fbsd_fetch_kinfo_proc fails. + (fbsd_wait): Report warning if fbsd_fetch_kinfo_proc fails. + (fbsd_nat_add_target): Set "to_info_proc" to "fbsd_info_proc". + +2018-01-09 John Baldwin + + * fbsd-nat.c (struct free_deleter): Remove. + (fbsd_find_memory_regions): Use gdb::unique_xmalloc_ptr<>. + +2018-01-09 John Baldwin + + * fbsd-nat.c (fbsd_pid_to_exec_file) [KERN_PROC_PATHNAME]: Return + NULL for an empty pathname. + +2018-01-09 John Baldwin + + * fbsd-tdep.c (KVE_STRUCTSIZE, KVE_START, KVE_END, KVE_OFFSET) + (KVE_FLAGS, KVE_PROTECTION, KVE_PATH, KINFO_VME_PROT_READ) + (KINFO_VME_PROT_WRITE, KINFO_VME_PROT_EXEC, KINFO_VME_FLAG_COW) + (KINFO_VME_FLAG_NEEDS_COPY, KINFO_VME_FLAG_NOCOREDUMP) + (KINFO_VME_FLAG_SUPER, KINFO_VME_FLAG_GROWS_UP) + (KINFO_VME_FLAG_GROWS_DOWN, KF_STRUCTSIZE, KF_TYPE, KF_FD) + (KF_PATH, KINFO_FILE_TYPE_VNODE, KINFO_FILE_FD_TYPE_CWD) + (KINFO_FILE_FD_TYPE_TEXT, SIG_WORDS, struct kinfo_proc_layout) + (kinfo_proc_layout_32, kinfo_proc_layout_i386) + (kinfo_proc_layout_64, fbsd_vm_map_entry_flags) + (fbsd_core_info_proc_mappings, fbsd_core_vnode_path) + (fbsd_core_fetch_timeval, fbsd_print_sigset) + (fbsd_core_info_proc_status, fbsd_core_info_proc): New. + (fbsd_init_abi): Install gdbarch "core_info_proc" method. + * fbsd-tdep.h (fbsd_vm_map_entry_flags): New. + 2018-01-08 Samuel Thibault * gdb/gnu-nat.c: Include and . @@ -157,6 +9372,579 @@ GDB_SELF_TEST. (maintenance_info_selftests): Likewise. +2018-01-08 Xavier Roirand + + * ada-valprint.c (val_print_packed_array_elements): Use + proper number of elements when printing an array indexed + by an enumeration type. + +2018-01-07 Simon Marchi + + * dwarf2read.c (struct dwarf2_cu) : Remove. + (dw2_get_file_names_reader): Adjust. + (lookup_dwo_signatured_type): Adjust. + (lookup_dwp_signatured_type): Adjust. + (lookup_signatured_type): Adjust. + (create_type_unit_group): Adjust. + (get_type_unit_group): Adjust. + (process_psymtab_comp_unit_reader): Adjust. + (build_type_psymtabs_reader): Adjust. + (scan_partial_symbols): Adjust. + (add_partial_symbol): Adjust. + (add_partial_subprogram): Adjust. + (peek_die_abbrev): Adjust. + (fixup_go_packaging): Adjust. + (process_imported_unit_die): Adjust. + (dwarf2_compute_name): Adjust. + (dwarf2_physname): Adjust. + (read_import_statement): Adjust. + (handle_DW_AT_stmt_list): Adjust. + (read_file_scope): Adjust. + (read_func_scope): Adjust. + (read_lexical_block_scope): Adjust. + (read_call_site_scope): Adjust. + (read_variable): Adjust. + (dwarf2_rnglists_process): Adjust. + (dwarf2_ranges_process): Adjust. + (dwarf2_ranges_read): Adjust. + (dwarf2_get_pc_bounds): Adjust. + (dwarf2_record_block_ranges): Adjust. + (dwarf2_add_field): Adjust. + (dwarf2_add_member_fn): Adjust. + (read_structure_type): Adjust. + (process_structure_scope): Adjust. + (read_enumeration_type): Adjust. + (read_array_type): Adjust. + (mark_common_block_symbol_computed): Adjust. + (read_common_block): Adjust. + (read_namespace_type): Adjust. + (read_namespace): Adjust. + (read_module_type): Adjust. + (read_tag_pointer_type): Adjust. + (read_tag_ptr_to_member_type): Adjust. + (read_tag_string_type): Adjust. + (read_subroutine_type): Adjust. + (read_typedef): Adjust. + (read_base_type): Adjust. + (attr_to_dynamic_prop): Adjust. + (read_subrange_type): Adjust. + (read_unspecified_type): Adjust. + (dwarf2_read_abbrevs): Adjust. + (load_partial_dies): Adjust. + (read_partial_die): Adjust. + (find_partial_die): Adjust. + (guess_partial_die_structure_name): Adjust. + (fixup_partial_die): Adjust. + (read_attribute_value): Adjust. + (read_addr_index): Adjust. + (read_addr_index_from_leb128): Adjust. + (read_str_index): Adjust. + (dwarf2_string_attr): Adjust. + (get_debug_line_section): Adjust. + (dwarf_decode_line_header): Adjust. + (lnp_state_machine::check_line_address): Adjust. + (dwarf_decode_lines_1): Adjust. + (dwarf_decode_lines): Adjust. + (dwarf2_start_symtab): Adjust. + (var_decode_location): Adjust. + (new_symbol_full): Adjust. + (dwarf2_const_value_data): Adjust. + (dwarf2_const_value_attr): Adjust. + (dwarf2_const_value): Adjust. + (die_type): Adjust. + (die_containing_type): Adjust. + (build_error_marker_type): Adjust. + (lookup_die_type): Adjust. + (guess_full_die_structure_name): Adjust. + (anonymous_struct_prefix): Adjust. + (determine_prefix): Adjust. + (dwarf2_name): Adjust. + (follow_die_ref_or_sig): Adjust. + (follow_die_offset): Adjust. + (follow_die_ref): Adjust. + (follow_die_sig_1): Adjust. + (follow_die_sig): Adjust. + (get_signatured_type): Adjust. + (get_DW_AT_signature_type): Adjust. + (decode_locdesc): Adjust. + (dwarf_decode_macros): Adjust. + (cu_debug_loc_section): Adjust. + (fill_in_loclist_baton): Adjust. + (dwarf2_symbol_mark_computed): Adjust. + (init_one_comp_unit): Don't assign + dwarf2_cu::dwarf2_per_objfile. + (set_die_type): Adjust. + +2018-01-07 Simon Marchi + + * dwarf2read.c (struct mapped_debug_names): Add constructor. + : New field. + (dwarf2_per_objfile): Remove global. + (get_dwarf2_per_objfile): New function. + (set_dwarf2_per_objfile): New function. + (dwarf2_build_psymtabs_hard): Change objfile parameter to + dwarf2_per_objfile. + (abbrev_table_read_table): Add dwarf2_per_objfile parameter. + (read_abbrev_offset): Likewise. + (read_indirect_string): Likewise. + (read_indirect_line_string): Likewise. + (read_indirect_string_at_offset): Likewise. + (read_indirect_string_from_dwz): Likewise. + (dwarf2_find_containing_comp_unit): Change objfile parameter to + dwarf2_per_objfile. + (age_cached_comp_units): Add dwarf2_per_objfile parameter. + (create_all_comp_units): Change objfile parameter to + dwarf2_per_objfile. + (create_all_type_units): Likewise. + (process_queue): Add dwarf2_per_objfile parameter. + (read_and_check_comp_unit_head): Likewise. + (lookup_dwo_unit_in_dwp): Likewise. + (get_dwp_file): Likewise. + (process_cu_includes): Likewise. + (struct free_dwo_file_cleanup_data): New struct. + (dwarf2_has_info): Use get_dwarf2_per_objfile and + set_dwarf2_per_objfile. + (dwarf2_get_dwz_file): Add dwarf2_per_objfile parameter. + (dw2_do_instantiate_symtab): Get dwarf2_per_objfile from + context, adjust calls. + (dw2_instantiate_symtab): Likewise. + (dw2_get_cutu): Add dwarf2_per_objfile parameter. + (dw2_get_cu): Likewise. + (create_cu_from_index_list): Change objfile parameter to + dwarf2_per_objfile. + (create_cus_from_index_list): Get dwarf2_per_objfile from + context, adjust calls. + (create_cus_from_index): Likewise. + (create_signatured_type_table_from_index): Change objfile + parameter to dwarf2_per_objfile. + (create_signatured_type_table_from_debug_names): Change objfile + parameter to dwarf2_per_objfile. + (create_addrmap_from_index): Likewise. + (create_addrmap_from_aranges): Likewise. + (dwarf2_read_index): Use get_dwarf2_per_objfile, adjust calls. + (dw2_setup): Remove. + (dw2_get_file_names_reader): Get dwarf2_per_objfile from + context. + (dw2_find_last_source_symtab): Get dwarf2_per_objfile using + get_dwarf2_per_objfile. + (dw2_forget_cached_source_info): Likewise. + (dw2_map_symtabs_matching_filename): Likewise. + (struct dw2_symtab_iterator) : Remove. + : New field. + (dw2_symtab_iter_init): Replace index parameter with + dwarf2_per_objfile. + (dw2_symtab_iter_next): Use dwarf2_per_objfile from iter. + (dw2_lookup_symbol): Use get_dwarf2_per_objfile and adjust. + (dw2_print_stats): Likewise. + (dw2_dump): Likewise. + (dw2_expand_symtabs_for_function): Likewise. + (dw2_expand_all_symtabs): Likewise. + (dw2_expand_symtabs_with_fullname): Likewise. + (dw2_expand_marked_cus): Replace index and objfile parameters + with dwarf2_per_objfile. + (dw_expand_symtabs_matching_file_matcher): Add + dwarf2_per_objfile parameter and adjust calls. + (dw2_expand_symtabs_matching): Use get_dwarf2_per_objfile and + adjust calls. + (dw2_find_pc_sect_compunit_symtab): Don't call dw2_setup. + (dw2_map_symbol_filenames): Use get_dwarf2_per_objfile and + adjust calls. + (create_cus_from_debug_names_list): Replace objfile parameter + with dwarf2_per_objfile and adjust calls. + (create_cus_from_debug_names): Likewise. + (dwarf2_read_debug_names): Likewise. + (mapped_debug_names::namei_to_name): Adjust call. + (dw2_debug_names_iterator::next): Likewise. + (dw2_debug_names_iterator::find_vec_in_debug_names): Likewise. + (dw2_debug_names_lookup_symbol): Use get_dwarf2_per_objfile. + (dw2_debug_names_dump): Likewise. + (dw2_debug_names_expand_symtabs_for_function): Likewise. + (dw2_debug_names_expand_symtabs_matching): Likewise. + (dwarf2_initialize_objfile): Likewise. + (dwarf2_build_psymtabs): Likewise. + (get_abbrev_section_for_cu): Get dwarf2_per_objfile from + this_cu. + (error_check_comp_unit_head): Add dwarf2_per_objfile parameter. + (read_and_check_comp_unit_head): Likewise. + (read_abbrev_offset): Likewise. + (create_debug_type_hash_table): Likewise. + (create_debug_types_hash_table): Likewise. + (create_all_type_units): Replace objfile parameter with + dwarf2_per_objfile. + (add_type_unit): Add dwarf2_per_objfile parameter. + (fill_in_sig_entry_from_dwo_entry): Replace objfile parameter + with dwarf2_per_objfile. + (lookup_dwo_signatured_type): Get dwarf2_per_objfile from cu. + (lookup_dwp_signatured_type): Likewise. + (lookup_signatured_type): Likewise. + (read_cutu_die_from_dwo): Likewise. + (init_tu_and_read_dwo_dies): Likewise. + (init_cutu_and_read_dies): Likewise. + (init_cutu_and_read_dies_no_follow): Likewise. + (allocate_type_unit_groups_table): Add objfile parameter. + (create_type_unit_group): Use dwarf2_per_objfile from cu. + (get_type_unit_group): Likewise. + (process_psymtab_comp_unit): Update call. + (build_type_psymtabs_reader): Use dwarf2_per_objfile from cu. + (build_type_psymtabs_1): Add dwarf2_per_objfile parameter. + (print_tu_stats): Likewise. + (build_type_psymtab_dependencies): Use dwarf2_per_objfile passed + in void* parameter. + (build_type_psymtabs): Change objfile parameter to + dwarf2_per_objfile. + (process_skeletonless_type_unit): Use dwarf2_per_objfile + passed in void* parameter. + (process_skeletonless_type_units): Change objfile parameter to + dwarf2_per_objfile. + (set_partial_user): Likewise. + (dwarf2_build_psymtabs_hard): Likewise. + (read_comp_units_from_section): Likewise. + (create_all_comp_units): Likewise. + (scan_partial_symbols): Update calls. + (add_partial_symbol): Likewise. + (dwarf2_read_symtab): Use get_dwarf2_per_objfile. + (maybe_queue_comp_unit): Use dwarf2_read_symtab from cu. + (process_queue): Add dwarf2_per_objfile parameter. + (get_compunit_symtab): Use dwarf2_per_objfile from cu. + (compute_compunit_symtab_includes): Likewise. + (process_cu_includes): Add dwarf2_per_objfile parameter. + (process_full_comp_unit): Use dwarf2_per_objfile from cu. + (process_full_type_unit): Likewise. + (process_imported_unit_die): Update call. + (handle_DW_AT_stmt_list): Use dwarf2_per_objfile from cu. + (read_file_scope): Likewise. + (allocate_dwo_file_hash_table): Add objfile parameter. + (lookup_dwo_file_slot): Add dwarf2_per_objfile parameter. + (create_cus_hash_table): Likewise. + (create_dwp_hash_table): Likewise. + (create_dwo_unit_in_dwp_v1): Likewise. + (create_dwp_v2_section): Likewise. + (create_dwo_unit_in_dwp_v2): Likewise. + (lookup_dwo_unit_in_dwp): Likewise. + (try_open_dwop_file): Likewise. + (open_dwo_file): Likewise. Use dwarf2_per_objfile from cu. + (open_and_init_dwo_file): Use dwarf2_per_objfile from cu, update + cleanup to include a reference to dwarf2_per_objfile. + (open_dwp_file): Add dwarf2_per_objfile parameter. + (open_and_init_dwp_file): Likewise. + (get_dwp_file): Likewise. + (lookup_dwo_cutu): Use dwarf2_per_objfile from cu. + (queue_and_load_all_dwo_tus): Update call. + (free_dwo_file_cleanup): Use dwarf2_per_objfile from cleanup + data. + (dwarf2_rnglists_process): Use dwarf2_per_objfile from cu. + (dwarf2_ranges_process): Likewise. + (dwarf2_get_pc_bounds): Likewise. + (mark_common_block_symbol_computed): Likewise. + (abbrev_table_read_table): Add dwarf2_per_objfile parameter. + (dwarf2_read_abbrevs): Update call. + (read_partial_die): Use dwarf2_per_objfile from cu. + (find_partial_die): Likewise. + (fixup_partial_die): Likewise. + (read_attribute_value): Likewise. + (read_indirect_string_at_offset_from): Add objfile parameter. + (read_indirect_string_at_offset): Add dwarf2_per_objfile + parameter. + (read_indirect_string_from_dwz): Add objfile parameter. + (read_indirect_string): Add objfile parameter. + (read_addr_index_1): Add dwarf2_per_objfile parameter. + (read_addr_index): Use dwarf2_per_objfile from cu. + (dwarf2_read_addr_index): Use dwarf2_per_objfile from cu, don't + call dw2_setup. + (read_str_index): Use dwarf2_per_objfile from cu. + (get_debug_line_section): Likewise. + (read_formatted_entries): Add dwarf2_per_objfile parameter. + (dwarf_decode_line_header): Use dwarf2_per_objfile from cu. + (new_symbol_full): Use dwarf2_per_objfile from cu. + (build_error_marker_type): Likewise. + (lookup_die_type): Likewise. + (determine_prefix): Likewise. + (follow_die_offset): Likewise. + (dwarf2_fetch_die_loc_sect_off): Use get_dwarf2_per_objfile. + (dwarf2_fetch_constant_bytes): Don't call dw2_setup. + (dwarf2_fetch_die_type_sect_off): Likewise. + (dwarf2_get_die_type): Likewise. + (follow_die_sig_1): Use dwarf2_per_objfile from cu. + (get_signatured_type): Likewise. + (get_DW_AT_signature_type): Likewise. + (dwarf_decode_macro_bytes): Add dwarf2_per_objfile parameter. + (dwarf_decode_macros): Use dwarf2_per_objfile from cu. + (cu_debug_loc_section): Likewise. + (fill_in_loclist_baton): Likewise. + (dwarf2_symbol_mark_computed): Likewise. + (dwarf2_find_containing_comp_unit): Change objfile parameter to + dwarf2_per_objfile. + (free_cached_comp_units): Use dwarf2_per_objfile passed in void* + parameter. + (age_cached_comp_units): Add dwarf2_per_objfile parameter. + (free_one_cached_comp_unit): Use dwarf2_per_objfile from cu. + (dwarf2_free_objfile): Use get_dwarf2_per_objfile. + (set_die_type): Use dwarf2_free_objfile from cu. + (get_die_type_at_offset): Likewise. + (dwarf2_per_objfile_free): Don't assign global variable. + (debug_names) : Add dwarf2_per_objfile + parameter, update m_debugstrlookup construction. + (debug_names::debug_str_lookup): Add dwarf2_per_objfile + parameter. + : New field. + : Use m_dwarf2_per_objfile. + (check_dwarf64_offsets): Add dwarf2_per_objfile parameter. + (psyms_seen_size): Likewise. + (write_gdbindex): Replace objfile parameter with + dwarf2_per_objfile. + (write_debug_names): Likewise. + (write_psymtabs_to_index): Likewise. + (save_gdb_index_command): Use get_dwarf2_per_objfile, update + calls. + +2018-01-07 Simon Marchi + + * dwarf2read.c (struct dwarf2_cu) : Remove. + : New field. + (struct dwarf2_per_cu_data) : Remove. + : New field. + (create_cu_from_index_list): Assign dwarf2_per_objfile instead + of objfile. + (create_signatured_type_table_from_index): Likewise. + (create_debug_type_hash_table): Likewise. + (fill_in_sig_entry_from_dwo_entry): Likewise. + (lookup_dwo_unit): Access objfile through dwarf2_per_objfile. + (create_type_unit_group): Assign dwarf2_per_objfile instead of + objfile. + (create_partial_symtab): Access objfile through + dwarf2_per_objfile. + (process_psymtab_comp_unit_reader): Likewise. + (read_comp_units_from_section): Likewise. + (scan_partial_symbols): Likewise. + (add_partial_symbol): Likewise. + (add_partial_subprogram): Likewise. + (peek_die_abbrev): Likewise. + (fixup_go_packaging): Likewise. + (process_full_comp_unit): Likewise. + (process_full_type_unit): Likewise. + (process_imported_unit_die): Likewise. + (dwarf2_compute_name): Likewise. + (dwarf2_physname): Likewise. + (read_import_statement): Likewise. + (create_cus_hash_table): Assign dwarf2_physname instead of + objfile. + (read_func_scope): Access objfile through dwarf2_per_objfile. + (read_lexical_block_scope): Likewise. + (read_call_site_scope): Likewise. + (read_variable): Likewise. + (dwarf2_rnglists_process): Likewise. + (dwarf2_ranges_process): Likewise. + (dwarf2_ranges_read): Likewise. + (dwarf2_record_block_ranges): Likewise. + (dwarf2_add_field): Likewise. + (dwarf2_add_member_fn): Likewise. + (read_structure_type): Likewise. + (process_structure_scope): Likewise. + (read_enumeration_type): Likewise. + (read_array_type): Likewise. + (read_common_block): Likewise. + (read_namespace_type): Likewise. + (read_namespace): Likewise. + (read_module_type): Likewise. + (read_tag_pointer_type): Likewise. + (read_tag_ptr_to_member_type): Likewise. + (read_tag_string_type): Likewise. + (read_subroutine_type): Likewise. + (read_typedef): Likewise. + (read_base_type): Likewise. + (attr_to_dynamic_prop): Likewise. + (read_subrange_type): Likewise. + (read_unspecified_type): Likewise. + (load_partial_dies): Likewise. + (read_partial_die): Likewise. + (find_partial_die): Likewise. + (guess_partial_die_structure_name): Likewise. + (fixup_partial_die): Likewise. + (read_attribute_value): Likewise. + (read_addr_index_from_leb128): Likewise. + (dwarf2_read_addr_index): Likewise. + (dwarf2_string_attr): Likewise. + (lnp_state_machine::check_line_address): Likewise. + (dwarf_decode_lines_1): Likewise. + (dwarf_decode_lines): Likewise. + (dwarf2_start_symtab): Likewise. + (var_decode_location): Likewise. + (new_symbol_full): Likewise. + (dwarf2_const_value_data): Likewise. + (dwarf2_const_value_attr): Likewise. + (dwarf2_const_value): Likewise. + (die_type): Likewise. + (die_containing_type): Likewise. + (lookup_die_type): Likewise. + (guess_full_die_structure_name): Likewise. + (anonymous_struct_prefix): Likewise. + (dwarf2_name): Likewise. + (follow_die_ref_or_sig): Likewise. + (follow_die_offset): Likewise. + (follow_die_ref): Likewise. + (dwarf2_fetch_die_loc_sect_off): Likewise. + (dwarf2_fetch_constant_bytes): Likewise. + (dwarf2_fetch_die_type_sect_off): Likewise. + (dwarf2_get_die_type): Likewise. + (follow_die_sig): Likewise. + (decode_locdesc): Likewise. + (dwarf2_per_cu_objfile): Likewise. + (dwarf2_per_cu_text_offset): Likewise. + (init_one_comp_unit): Assign dwarf2_per_objfile instead of + objfile. + (set_die_type): Access objfile through + dwarf2_per_objfile. + +2018-01-07 Simon Marchi + + * valprint.c (converted_character_d): Remove typedef. + (DEF_VEC_O (converted_character_d)): Remove. + (count_next_character): Use std::vector. + (print_converted_chars_to_obstack): Likewise. + (generic_printstr): Likewise. + +2018-01-07 Simon Marchi + + * xml-support.h (struct gdb_xml_value): Add constructor. + : Change type to unique_xmalloc_ptr. + (gdb_xml_value_s): Remove typedef. + (DEF_VEC_O (gdb_xml_value_s)): Remove. + (gdb_xml_element_start_handler): Change parameter type to + std::vector. + (xml_find_attribute): Likewise. + * xml-support.c (xml_find_attribute): Change parameter type to + std::vector and adjust. + (gdb_xml_values_cleanup): Remove. + (gdb_xml_parser::start_element): Adjust to std::vector. + (xinclude_start_include): Change paraeter type to std::vector + and adjust. + * btrace.c (check_xml_btrace_version): Likewise. + (parse_xml_btrace_block): Likewise. + (parse_xml_btrace_pt_config_cpu): Likewise. + (parse_xml_btrace_pt): Likewise. + (parse_xml_btrace_conf_bts): Likewise. + (parse_xml_btrace_conf_pt): Likewise. + * memory-map.c (memory_map_start_memory): Likewise. + (memory_map_start_property): Likewise. + * osdata.c (osdata_start_osdata): Likewise. + (osdata_start_item): Likewise. + (osdata_start_column): Likewise. + * remote.c (start_thread): Likewise. + * solib-aix.c (library_list_start_library): Likewise. + (library_list_start_list): Likewise. + * solib-svr4.c (library_list_start_library): Likewise. + (svr4_library_list_start_list): Likewise. + * solib-target.c (library_list_start_segment): Likewise. + (library_list_start_section): Likewise. + (library_list_start_library): Likewise. + (library_list_start_list): Likewise. + * tracepoint.c (traceframe_info_start_memory): Likewise. + (traceframe_info_start_tvar): Likewise. + * xml-syscall.c (syscall_start_syscall): Likewise. + * xml-tdesc.c (tdesc_start_target): Likewise. + (tdesc_start_feature): Likewise. + (tdesc_start_reg): Likewise. + (tdesc_start_union): Likewise. + (tdesc_start_struct): Likewise. + (tdesc_start_flags): Likewise. + (tdesc_start_enum): Likewise. + (tdesc_start_field): Likewise. + (tdesc_start_enum_value): Likewise. + (tdesc_start_vector): Likewise. + +2018-01-07 Simon Marchi + + * extension.h (struct xmethod_worker) : Remove. + * python/py-xmethods.c (struct python_xmethod_worker) : + Remove. + (python_xmethod_worker::clone): Remove. + * valops.c (find_overload_match): Use std::move instead of + clone. + +2018-01-07 Simon Marchi + + * extension-priv.h (enum ext_lang_rc): Remove, move to extension.h. + (struct extension_language_ops) : Remove. + : Remove. + : Chance VEC to std::vector. + : Remove. + : Remove. + : Remove. + * extension.c (new_xmethod_worker): Remove. + (clone_xmethod_worker): Remove. + (get_matching_xmethod_workers): Return void, pass std::vector by + pointer. + (get_xmethod_arg_types): Rename to... + (xmethod_worker::get_arg_types): ... this, and adjust. + (get_xmethod_result_type): Rename to... + (xmethod_worker::get_result_type): ... this, and adjust. + (invoke_xmethod): Remove. + (free_xmethod_worker): Remove. + (free_xmethod_worker_vec): Remove. + * extension.h (enum ext_lang_rc): Move here from + extension-priv.h. + (struct xmethod_worker): Add constructor and destructor. + : Remove. + : Remove. + : New + virtual pure methods. + : New methods. + (xmethod_worker_ptr): Remove typedef. + (DEF_VEC_P (xmethod_worker_ptr)): Remove. + (xmethod_worker_vec): Remove typedef. + (xmethod_worker_up): New typedef. + (invoke_xmethod): Remove. + (clone_xmethod_worker): Remove. + (free_xmethod_worker): Remove. + (free_xmethod_worker_vec): Remove. + (get_xmethod_arg_types): Remove. + (get_xmethod_result_type): Remove. + * valops.c (find_method_list): Use std::vector, don't use + intermediate vector. + (value_find_oload_method_list): Use std::vector. + (find_overload_match): Use std::vector. + (find_oload_champ): Use std::vector. + * value.c (value_free): Use operator delete. + (value_of_xmethod): Rename to... + (value_from_xmethod): ... this. Don't assign + xmethod_worker::value, take rvalue-reference. + (result_type_of_xmethod): Adjust. + (call_xmethod): Adjust. + * value.h: Include extension.h. + (struct xmethod_worker): Don't forward-declare. + (value_of_xmethod): Rename to... + (value_from_xmethod): ... this, take rvalue-reference. + * python/py-xmethods.c (struct gdbpy_worker_data): Rename to... + (struct python_xmethod_worker): ... this, add constructor and + destructor. + : Implement. + (gdbpy_free_xmethod_worker_data): Rename to... + (python_xmethod_worker::~python_xmethod_worker): ... this and + adjust. + (gdbpy_clone_xmethod_worker_data): Rename to... + (python_xmethod_worker::clone): ... this and adjust. + (gdbpy_get_matching_xmethod_workers): Use std::vector, don't use + temporary vector. + (gdbpy_get_xmethod_arg_types): Rename to... + (python_xmethod_worker::do_get_arg_types): ... this and adjust. + (gdbpy_get_xmethod_result_type): Rename to... + (python_xmethod_worker::do_get_result_type): ... this and + adjust. + (gdbpy_invoke_xmethod): Rename to... + (python_xmethod_worker::invoke): ... this and adjust. + (new_python_xmethod_worker): Rename to... + (python_xmethod_worker::python_xmethod_worker): ... this and + adjust. + * python/python-internal.h (gdbpy_clone_xmethod_worker_data): + Remove. + (gdbpy_free_xmethod_worker_data): Remove. + (gdbpy_get_matching_xmethod_workers): Use std::vector. + (gdbpy_get_xmethod_arg_types): Remove. + (gdbpy_get_xmethod_result_type): Remove. + (gdbpy_invoke_xmethod): Remove. + * python/python.c (python_extension_ops): Remove obsolete + callbacks. + 2018-01-05 Pedro Alves PR gdb/18653 @@ -222,8 +10010,36 @@ 2018-01-05 Joel Brobecker + * ada-exp.y (write_object_renaming): When subscripting an array + using a symbol as the index, pass the block in call to + ada_lookup_encoded_symbol when looking that symbol up. + +2018-01-05 Jerome Guitton + + * ada-lang.c (ada_array_length): Use ada_index_type instead of + TYPE_INDEX_TYPE. + +2018-01-05 Joel Brobecker + + * ada-lang.c (ada_to_fixed_value_create): Add handling of + the case where VALUE_LVAL (val0) is not lval_memory. + +2018-01-05 Xavier Roirand + + * ada-valprint.c (print_optional_low_bound): Handle + character-indexed array printing like boolean-indexed array + printing. + +2018-01-05 Joel Brobecker + + * NEWS: Create a new section for the next release branch. + Rename the section of the current branch, now that it has + been cut. + +2018-01-05 Joel Brobecker + GDB 8.1 branch created (5219ac6237c272b938c28517bf371429260c71e7): - * version.in: Bump version to 8.0.90.DATE-git. + * version.in: Bump version to 8.1.50.DATE-git. 2018-01-03 Xavier Roirand diff -Nru gdb-8.1/gdb/charset.c gdb-8.2/gdb/charset.c --- gdb-8.1/gdb/charset.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/charset.c 2018-09-05 07:44:28.000000000 +0000 @@ -705,21 +705,33 @@ return -1; } -/* The charset.c module initialization function. */ +struct charset_vector +{ + ~charset_vector () + { + clear (); + } -static VEC (char_ptr) *charsets; + void clear () + { + for (char *c : charsets) + xfree (c); + + charsets.clear (); + } + + std::vector charsets; +}; + +static charset_vector charsets; #ifdef PHONY_ICONV static void find_charset_names (void) { - /* Cast is fine here, because CHARSETS is never released. Note that - the vec does not hold "const char *" pointers instead of "char *" - because the non-phony version stores heap-allocated strings in - it. */ - VEC_safe_push (char_ptr, charsets, (char *) GDB_DEFAULT_HOST_CHARSET); - VEC_safe_push (char_ptr, charsets, NULL); + charsets.charsets.push_back (xstrdup (GDB_DEFAULT_HOST_CHARSET)); + charsets.charsets.push_back (NULL); } #else /* PHONY_ICONV */ @@ -740,7 +752,7 @@ unsigned int i; for (i = 0; i < count; ++i) - VEC_safe_push (char_ptr, charsets, xstrdup (names[i])); + charsets.charsets.push_back (xstrdup (names[i])); return 0; } @@ -749,7 +761,8 @@ find_charset_names (void) { iconvlist (add_one, NULL); - VEC_safe_push (char_ptr, charsets, NULL); + + charsets.charsets.push_back (NULL); } #else @@ -879,7 +892,7 @@ break; keep_going = *p; *p = '\0'; - VEC_safe_push (char_ptr, charsets, xstrdup (start)); + charsets.charsets.push_back (xstrdup (start)); if (!keep_going) break; /* Skip any extra spaces. */ @@ -900,11 +913,10 @@ if (fail) { /* Some error occurred, so drop the vector. */ - free_char_ptr_vec (charsets); - charsets = NULL; + charsets.clear (); } else - VEC_safe_push (char_ptr, charsets, NULL); + charsets.charsets.push_back (NULL); } #endif /* HAVE_ICONVLIST || HAVE_LIBICONVLIST */ @@ -994,11 +1006,11 @@ _initialize_charset (void) { /* The first element is always "auto". */ - VEC_safe_push (char_ptr, charsets, xstrdup ("auto")); + charsets.charsets.push_back (xstrdup ("auto")); find_charset_names (); - if (VEC_length (char_ptr, charsets) > 1) - charset_enum = (const char **) VEC_address (char_ptr, charsets); + if (charsets.charsets.size () > 1) + charset_enum = (const char **) charsets.charsets.data (); else charset_enum = default_charset_names; diff -Nru gdb-8.1/gdb/c-lang.c gdb-8.2/gdb/c-lang.c --- gdb-8.1/gdb/c-lang.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/c-lang.c 2018-09-05 07:44:28.000000000 +0000 @@ -25,6 +25,7 @@ #include "language.h" #include "varobj.h" #include "c-lang.h" +#include "c-support.h" #include "valprint.h" #include "macroscope.h" #include "charset.h" @@ -233,7 +234,7 @@ target charset. */ void -c_get_string (struct value *value, gdb_byte **buffer, +c_get_string (struct value *value, gdb::unique_xmalloc_ptr *buffer, int *length, struct type **char_type, const char **charset) { @@ -299,8 +300,8 @@ /* I is now either a user-defined length, the number of non-null characters, or FETCHLIMIT. */ *length = i * width; - *buffer = (gdb_byte *) xmalloc (*length); - memcpy (*buffer, contents, *length); + buffer->reset ((gdb_byte *) xmalloc (*length)); + memcpy (buffer->get (), contents, *length); err = 0; } else @@ -325,10 +326,7 @@ err = read_string (addr, *length, width, fetchlimit, byte_order, buffer, length); if (err != 0) - { - xfree (*buffer); - memory_error (TARGET_XFER_E_IO, addr); - } + memory_error (TARGET_XFER_E_IO, addr); } /* If the LENGTH is specified at -1, we want to return the string @@ -338,7 +336,7 @@ if (req_length == -1) /* If the last character is null, subtract it from LENGTH. */ if (*length > 0 - && extract_unsigned_integer (*buffer + *length - width, + && extract_unsigned_integer (buffer->get () + *length - width, width, byte_order) == 0) *length -= width; @@ -382,7 +380,7 @@ gdb_byte data[4]; int i; - for (i = 0; i < length && p < limit && isxdigit (*p); ++i, ++p) + for (i = 0; i < length && p < limit && ISXDIGIT (*p); ++i, ++p) result = (result << 4) + host_hex_value (*p); for (i = 3; i >= 0; --i) @@ -424,7 +422,7 @@ unsigned long value = 0; for (i = 0; - i < 3 && p < limit && isdigit (*p) && *p != '8' && *p != '9'; + i < 3 && p < limit && ISDIGIT (*p) && *p != '8' && *p != '9'; ++i) { value = 8 * value + host_hex_value (*p); @@ -447,7 +445,7 @@ { unsigned long value = 0; - while (p < limit && isxdigit (*p)) + while (p < limit && ISXDIGIT (*p)) { value = 16 * value + host_hex_value (*p); ++p; @@ -488,7 +486,7 @@ case 'x': ADVANCE; - if (!isxdigit (*p)) + if (!ISXDIGIT (*p)) error (_("\\x used with no following hex digits.")); p = convert_hex (type, p, limit, output); break; @@ -510,7 +508,7 @@ int length = *p == 'u' ? 4 : 8; ADVANCE; - if (!isxdigit (*p)) + if (!ISXDIGIT (*p)) error (_("\\u used with no following hex digits")); p = convert_ucn (p, limit, dest_charset, output, length); } @@ -751,6 +749,7 @@ {"*", UNOP_IND, PREC_PREFIX, 0}, {"&", UNOP_ADDR, PREC_PREFIX, 0}, {"sizeof ", UNOP_SIZEOF, PREC_PREFIX, 0}, + {"alignof ", UNOP_ALIGNOF, PREC_PREFIX, 0}, {"++", UNOP_PREINCREMENT, PREC_PREFIX, 0}, {"--", UNOP_PREDECREMENT, PREC_PREFIX, 0}, {NULL, OP_NULL, PREC_PREFIX, 0} @@ -841,7 +840,6 @@ c_extensions, &exp_descriptor_c, c_parse, - c_yyerror, null_post_parser, c_printchar, /* Print a character constant */ c_printstr, /* Function to print string constant */ @@ -853,6 +851,7 @@ default_read_var_value, /* la_read_var_value */ NULL, /* Language specific skip_trampoline */ NULL, /* name_of_this */ + true, /* la_store_sym_names_in_linkage_form_p */ basic_lookup_symbol_nonlocal, /* lookup_symbol_nonlocal */ basic_lookup_transparent_type,/* lookup_transparent_type */ NULL, /* Language specific symbol demangler */ @@ -986,7 +985,6 @@ cplus_extensions, &exp_descriptor_c, c_parse, - c_yyerror, null_post_parser, c_printchar, /* Print a character constant */ c_printstr, /* Function to print string constant */ @@ -998,6 +996,7 @@ default_read_var_value, /* la_read_var_value */ cplus_skip_trampoline, /* Language specific skip_trampoline */ "this", /* name_of_this */ + false, /* la_store_sym_names_in_linkage_form_p */ cp_lookup_symbol_nonlocal, /* lookup_symbol_nonlocal */ cp_lookup_transparent_type, /* lookup_transparent_type */ gdb_demangle, /* Language specific symbol demangler */ @@ -1040,7 +1039,6 @@ asm_extensions, &exp_descriptor_c, c_parse, - c_yyerror, null_post_parser, c_printchar, /* Print a character constant */ c_printstr, /* Function to print string constant */ @@ -1052,6 +1050,7 @@ default_read_var_value, /* la_read_var_value */ NULL, /* Language specific skip_trampoline */ NULL, /* name_of_this */ + true, /* la_store_sym_names_in_linkage_form_p */ basic_lookup_symbol_nonlocal, /* lookup_symbol_nonlocal */ basic_lookup_transparent_type,/* lookup_transparent_type */ NULL, /* Language specific symbol demangler */ @@ -1094,7 +1093,6 @@ NULL, &exp_descriptor_c, c_parse, - c_yyerror, null_post_parser, c_printchar, /* Print a character constant */ c_printstr, /* Function to print string constant */ @@ -1106,6 +1104,7 @@ default_read_var_value, /* la_read_var_value */ NULL, /* Language specific skip_trampoline */ NULL, /* name_of_this */ + true, /* la_store_sym_names_in_linkage_form_p */ basic_lookup_symbol_nonlocal, /* lookup_symbol_nonlocal */ basic_lookup_transparent_type,/* lookup_transparent_type */ NULL, /* Language specific symbol demangler */ diff -Nru gdb-8.1/gdb/c-lang.h gdb-8.2/gdb/c-lang.h --- gdb-8.1/gdb/c-lang.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/c-lang.h 2018-09-05 07:44:28.000000000 +0000 @@ -63,8 +63,6 @@ extern int c_parse (struct parser_state *); -extern void c_yyerror (const char *); - extern int c_parse_escape (const char **, struct obstack *); /* Defined in c-typeprint.c */ @@ -72,6 +70,13 @@ struct ui_file *, int, int, const struct type_print_options *); +/* Print a type but allow the precise language to be specified. */ + +extern void c_print_type (struct type *, const char *, + struct ui_file *, int, int, + enum language, + const struct type_print_options *); + extern void c_print_typedef (struct type *, struct symbol *, struct ui_file *); diff -Nru gdb-8.1/gdb/cli/cli-cmds.c gdb-8.2/gdb/cli/cli-cmds.c --- gdb-8.1/gdb/cli/cli-cmds.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/cli/cli-cmds.c 2018-09-05 07:27:32.000000000 +0000 @@ -38,6 +38,7 @@ #include "tracepoint.h" #include "filestuff.h" #include "location.h" +#include "block.h" #include "ui-out.h" @@ -315,7 +316,7 @@ static void show_version (const char *args, int from_tty) { - print_gdb_version (gdb_stdout); + print_gdb_version (gdb_stdout, true); printf_filtered ("\n"); } @@ -496,7 +497,7 @@ find_and_open_script (const char *script_file, int search_path) { int fd; - int search_flags = OPF_TRY_CWD_FIRST | OPF_RETURN_REALPATH; + openp_flags search_flags = OPF_TRY_CWD_FIRST | OPF_RETURN_REALPATH; gdb::optional opened; gdb::unique_xmalloc_ptr file (tilde_expand (script_file)); @@ -506,10 +507,9 @@ /* Search for and open 'file' on the search path used for source files. Put the full location in *FULL_PATHP. */ - char *temp_path; + gdb::unique_xmalloc_ptr full_path; fd = openp (source_path, search_flags, - file.get (), O_RDONLY, &temp_path); - gdb::unique_xmalloc_ptr full_path (temp_path); + file.get (), O_RDONLY, &full_path); if (fd == -1) return opened; @@ -1092,11 +1092,15 @@ Perform the disassembly. NAME is the name of the function if known, or NULL. [LOW,HIGH) are the range of addresses to disassemble. + BLOCK is the block to disassemble; it needs to be provided + when non-contiguous blocks are disassembled; otherwise + it can be NULL. MIXED is non-zero to print source with the assembler. */ static void print_disassembly (struct gdbarch *gdbarch, const char *name, CORE_ADDR low, CORE_ADDR high, + const struct block *block, gdb_disassembly_flags flags) { #if defined(TUI) @@ -1105,14 +1109,28 @@ { printf_filtered ("Dump of assembler code "); if (name != NULL) - printf_filtered ("for function %s:\n", name); - else - printf_filtered ("from %s to %s:\n", - paddress (gdbarch, low), paddress (gdbarch, high)); - - /* Dump the specified range. */ - gdb_disassembly (gdbarch, current_uiout, flags, -1, low, high); + printf_filtered ("for function %s:\n", name); + if (block == nullptr || BLOCK_CONTIGUOUS_P (block)) + { + if (name == NULL) + printf_filtered ("from %s to %s:\n", + paddress (gdbarch, low), paddress (gdbarch, high)); + /* Dump the specified range. */ + gdb_disassembly (gdbarch, current_uiout, flags, -1, low, high); + } + else + { + for (int i = 0; i < BLOCK_NRANGES (block); i++) + { + CORE_ADDR low = BLOCK_RANGE_START (block, i); + CORE_ADDR high = BLOCK_RANGE_END (block, i); + printf_filtered (_("Address range %s to %s:\n"), + paddress (gdbarch, low), + paddress (gdbarch, high)); + gdb_disassembly (gdbarch, current_uiout, flags, -1, low, high); + } + } printf_filtered ("End of assembler dump.\n"); gdb_flush (gdb_stdout); } @@ -1134,11 +1152,12 @@ struct gdbarch *gdbarch; CORE_ADDR low, high, pc; const char *name; + const struct block *block; frame = get_selected_frame (_("No frame selected.")); gdbarch = get_frame_arch (frame); pc = get_frame_address_in_block (frame); - if (find_pc_partial_function (pc, &name, &low, &high) == 0) + if (find_pc_partial_function (pc, &name, &low, &high, &block) == 0) error (_("No function contains program counter for selected frame.")); #if defined(TUI) /* NOTE: cagney/2003-02-13 The `tui_active' was previously @@ -1149,7 +1168,7 @@ #endif low += gdbarch_deprecated_function_start_offset (gdbarch); - print_disassembly (gdbarch, name, low, high, flags); + print_disassembly (gdbarch, name, low, high, block, flags); } /* Dump a specified section of assembly code. @@ -1185,6 +1204,7 @@ CORE_ADDR pc; gdb_disassembly_flags flags; const char *p; + const struct block *block = nullptr; p = arg; name = NULL; @@ -1235,7 +1255,7 @@ if (p[0] == '\0') { /* One argument. */ - if (find_pc_partial_function (pc, &name, &low, &high) == 0) + if (find_pc_partial_function (pc, &name, &low, &high, &block) == 0) error (_("No function contains specified address.")); #if defined(TUI) /* NOTE: cagney/2003-02-13 The `tui_active' was previously @@ -1263,7 +1283,7 @@ high += low; } - print_disassembly (gdbarch, name, low, high, flags); + print_disassembly (gdbarch, name, low, high, block, flags); } static void diff -Nru gdb-8.1/gdb/cli/cli-decode.c gdb-8.2/gdb/cli/cli-decode.c --- gdb-8.1/gdb/cli/cli-decode.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/cli/cli-decode.c 2018-09-05 07:44:28.000000000 +0000 @@ -193,7 +193,8 @@ do_add_cmd (const char *name, enum command_class theclass, const char *doc, struct cmd_list_element **list) { - struct cmd_list_element *c = XNEW (struct cmd_list_element); + struct cmd_list_element *c = new struct cmd_list_element (name, theclass, + doc); struct cmd_list_element *p, *iter; /* Turn each alias of the old command into an alias of the new @@ -227,34 +228,6 @@ p->next = c; } - c->name = name; - c->theclass = theclass; - set_cmd_context (c, NULL); - c->doc = doc; - c->cmd_deprecated = 0; - c->deprecated_warn_user = 0; - c->malloced_replacement = 0; - c->doc_allocated = 0; - c->replacement = NULL; - c->pre_show_hook = NULL; - c->hook_in = 0; - c->prefixlist = NULL; - c->prefixname = NULL; - c->allow_unknown = 0; - c->prefix = NULL; - c->abbrev_flag = 0; - set_cmd_completer (c, symbol_completer); - c->completer_handle_brkchars = NULL; - c->destroyer = NULL; - c->type = not_set_cmd; - c->var = NULL; - c->var_type = var_boolean; - c->enums = NULL; - c->user_commands = NULL; - c->cmd_pointer = NULL; - c->alias_chain = NULL; - c->suppress_notification = NULL; - return c; } @@ -841,8 +814,6 @@ *prehookee = iter->hookee_pre; if (iter->hookee_post) iter->hookee_post->hook_post = 0; - if (iter->doc && iter->doc_allocated) - xfree ((char *) iter->doc); *posthook = iter->hook_post; *posthookee = iter->hookee_post; @@ -866,7 +837,7 @@ *prevp = iter->alias_chain; } - xfree (iter); + delete iter; /* We won't see another command with the same name. */ break; diff -Nru gdb-8.1/gdb/cli/cli-decode.h gdb-8.2/gdb/cli/cli-decode.h --- gdb-8.1/gdb/cli/cli-decode.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/cli/cli-decode.h 2018-09-05 07:27:13.000000000 +0000 @@ -24,6 +24,7 @@ /* Include the public interfaces. */ #include "command.h" #include "gdb_regex.h" +#include "cli-script.h" #if 0 /* FIXME: cagney/2002-03-17: Once cmd_type() has been removed, ``enum @@ -45,8 +46,35 @@ struct cmd_list_element { + cmd_list_element (const char *name_, enum command_class theclass_, + const char *doc_) + : name (name_), + theclass (theclass_), + cmd_deprecated (0), + deprecated_warn_user (0), + malloced_replacement (0), + doc_allocated (0), + hook_in (0), + allow_unknown (0), + abbrev_flag (0), + type (not_set_cmd), + var_type (var_boolean), + doc (doc_) + { + memset (&function, 0, sizeof (function)); + } + + ~cmd_list_element () + { + if (doc && doc_allocated) + xfree ((char *) doc); + } + + DISABLE_COPY_AND_ASSIGN (cmd_list_element); + + /* Points to next command in this list. */ - struct cmd_list_element *next; + struct cmd_list_element *next = nullptr; /* Name of this command. */ const char *name; @@ -107,7 +135,8 @@ cagney/2002-02-02: This function signature is evolving. For the moment suggest sticking with either set_cmd_cfunc() or set_cmd_sfunc(). */ - void (*func) (struct cmd_list_element *c, const char *args, int from_tty); + void (*func) (struct cmd_list_element *c, const char *args, int from_tty) + = nullptr; /* The command's real callback. At present func() bounces through to one of the below. */ union @@ -121,7 +150,7 @@ function; /* Local state (context) for this command. This can be anything. */ - void *context; + void *context = nullptr; /* Documentation of this command (or help topic). First line is brief documentation; remaining lines form, with it, @@ -131,37 +160,37 @@ /* For set/show commands. A method for printing the output to the specified stream. */ - show_value_ftype *show_value_func; + show_value_ftype *show_value_func = nullptr; /* If this command is deprecated, this is the replacement name. */ - const char *replacement; + const char *replacement = nullptr; /* If this command represents a show command, then this function is called before the variable's value is examined. */ - void (*pre_show_hook) (struct cmd_list_element *c); + void (*pre_show_hook) (struct cmd_list_element *c) = nullptr; /* Hook for another command to be executed before this command. */ - struct cmd_list_element *hook_pre; + struct cmd_list_element *hook_pre = nullptr; /* Hook for another command to be executed after this command. */ - struct cmd_list_element *hook_post; + struct cmd_list_element *hook_post = nullptr; /* Nonzero identifies a prefix command. For them, the address of the variable containing the list of subcommands. */ - struct cmd_list_element **prefixlist; + struct cmd_list_element **prefixlist = nullptr; /* For prefix commands only: String containing prefix commands to get here: this one plus any others needed to get to it. Should end in a space. It is used before the word "command" in describing the commands reached through this prefix. */ - const char *prefixname; + const char *prefixname = nullptr; /* The prefix command of this command. */ - struct cmd_list_element *prefix; + struct cmd_list_element *prefix = nullptr; /* Completion routine for this command. */ - completer_ftype *completer; + completer_ftype *completer = symbol_completer; /* Handle the word break characters for this completer. Usually this function need not be defined, but for some types of @@ -169,47 +198,47 @@ a class) the word break chars may need to be redefined depending on the completer type (e.g., for filename completers). */ - completer_handle_brkchars_ftype *completer_handle_brkchars; + completer_handle_brkchars_ftype *completer_handle_brkchars = nullptr; /* Destruction routine for this command. If non-NULL, this is called when this command instance is destroyed. This may be used to finalize the CONTEXT field, if needed. */ - void (*destroyer) (struct cmd_list_element *self, void *context); + void (*destroyer) (struct cmd_list_element *self, void *context) = nullptr; /* Pointer to variable affected by "set" and "show". Doesn't matter if type is not_set. */ - void *var; + void *var = nullptr; /* Pointer to NULL terminated list of enumerated values (like argv). */ - const char *const *enums; + const char *const *enums = nullptr; /* Pointer to command strings of user-defined commands */ - struct command_line *user_commands; + counted_command_line user_commands; /* Pointer to command that is hooked by this one, (by hook_pre) so the hook can be removed when this one is deleted. */ - struct cmd_list_element *hookee_pre; + struct cmd_list_element *hookee_pre = nullptr; /* Pointer to command that is hooked by this one, (by hook_post) so the hook can be removed when this one is deleted. */ - struct cmd_list_element *hookee_post; + struct cmd_list_element *hookee_post = nullptr; /* Pointer to command that is aliased by this one, so the aliased command can be located in case it has been hooked. */ - struct cmd_list_element *cmd_pointer; + struct cmd_list_element *cmd_pointer = nullptr; /* Start of a linked list of all aliases of this command. */ - struct cmd_list_element *aliases; + struct cmd_list_element *aliases = nullptr; /* Link pointer for aliases on an alias list. */ - struct cmd_list_element *alias_chain; + struct cmd_list_element *alias_chain = nullptr; /* If non-null, the pointer to a field in 'struct cli_suppress_notification', which will be set to true in cmd_func when this command is being executed. It will be set back to false when the command has been executed. */ - int *suppress_notification; + int *suppress_notification = nullptr; }; extern void help_cmd_list (struct cmd_list_element *, enum command_class, diff -Nru gdb-8.1/gdb/cli/cli-interp.c gdb-8.2/gdb/cli/cli-interp.c --- gdb-8.1/gdb/cli/cli-interp.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/cli/cli-interp.c 2018-09-05 07:27:13.000000000 +0000 @@ -26,9 +26,10 @@ #include "top.h" /* for "execute_command" */ #include "event-top.h" #include "infrun.h" -#include "observer.h" +#include "observable.h" #include "gdbthread.h" #include "thread-fsm.h" +#include "inferior.h" cli_interp_base::cli_interp_base (const char *name) : interp (name) @@ -73,9 +74,7 @@ static struct cli_interp * as_cli_interp (struct interp *interp) { - if (strcmp (interp_name (interp), INTERP_CONSOLE) == 0) - return (struct cli_interp *) interp; - return NULL; + return dynamic_cast (interp); } /* Longjmp-safe wrapper for "execute_command". */ @@ -356,11 +355,10 @@ int from_tty) { struct gdb_exception e = exception_none; - struct ui_out *saved_uiout; /* Save and override the global ``struct ui_out'' builder. */ - saved_uiout = current_uiout; - current_uiout = command_uiout; + scoped_restore saved_uiout = make_scoped_restore (¤t_uiout, + command_uiout); TRY { @@ -372,9 +370,6 @@ } END_CATCH - /* Restore the global builder. */ - current_uiout = saved_uiout; - /* FIXME: cagney/2005-01-13: This shouldn't be needed. Instead the caller should print the exception. */ exception_print (gdb_stderr, e); @@ -461,14 +456,14 @@ interp_factory_register (INTERP_CONSOLE, cli_interp_factory); /* If changing this, remember to update tui-interp.c as well. */ - observer_attach_normal_stop (cli_on_normal_stop); - observer_attach_end_stepping_range (cli_on_end_stepping_range); - observer_attach_signal_received (cli_on_signal_received); - observer_attach_signal_exited (cli_on_signal_exited); - observer_attach_exited (cli_on_exited); - observer_attach_no_history (cli_on_no_history); - observer_attach_sync_execution_done (cli_on_sync_execution_done); - observer_attach_command_error (cli_on_command_error); - observer_attach_user_selected_context_changed + gdb::observers::normal_stop.attach (cli_on_normal_stop); + gdb::observers::end_stepping_range.attach (cli_on_end_stepping_range); + gdb::observers::signal_received.attach (cli_on_signal_received); + gdb::observers::signal_exited.attach (cli_on_signal_exited); + gdb::observers::exited.attach (cli_on_exited); + gdb::observers::no_history.attach (cli_on_no_history); + gdb::observers::sync_execution_done.attach (cli_on_sync_execution_done); + gdb::observers::command_error.attach (cli_on_command_error); + gdb::observers::user_selected_context_changed.attach (cli_on_user_selected_context_changed); } diff -Nru gdb-8.1/gdb/cli/cli-script.c gdb-8.2/gdb/cli/cli-script.c --- gdb-8.1/gdb/cli/cli-script.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/cli/cli-script.c 2018-09-05 07:44:28.000000000 +0000 @@ -32,16 +32,20 @@ #include "extension.h" #include "interps.h" #include "compile/compile.h" +#include "common/gdb_string_view.h" #include /* Prototypes for local functions. */ static enum command_control_type -recurse_read_control_structure (char * (*read_next_line_func) (void), - struct command_line *current_cmd, - void (*validator)(char *, void *), - void *closure); +recurse_read_control_structure + (gdb::function_view read_next_line_func, + struct command_line *current_cmd, + gdb::function_view validator); + +static void do_define_command (const char *comname, int from_tty, + const counted_command_line *commands); static char *read_next_line (void); @@ -54,18 +58,6 @@ /* This is to prevent certain commands being printed twice. */ static int suppress_next_print_command_trace = 0; -/* A non-owning slice of a string. */ - -struct string_view -{ - string_view (const char *str_, size_t len_) - : str (str_), len (len_) - {} - - const char *str; - size_t len; -}; - /* Structure for arguments to user defined functions. */ class user_args @@ -91,7 +83,7 @@ std::string m_command_line; /* The arguments. Each element points inside M_COMMAND_LINE. */ - std::vector m_args; + std::vector m_args; }; /* The stack of arguments passed to user defined functions. We need a @@ -133,6 +125,7 @@ case compile_control: case python_control: case guile_control: + case define_control: return 1; default: return 0; @@ -145,35 +138,32 @@ static struct command_line * build_command_line (enum command_control_type type, const char *args) { - struct command_line *cmd; - - if ((args == NULL || *args == '\0') - && (type == if_control || type == while_control)) - error (_("if/while commands require arguments.")); + if (args == NULL || *args == '\0') + { + if (type == if_control) + error (_("if command requires an argument.")); + else if (type == while_control) + error (_("while command requires an argument.")); + else if (type == define_control) + error (_("define command requires an argument.")); + } gdb_assert (args != NULL); - cmd = XNEW (struct command_line); - cmd->next = NULL; - cmd->control_type = type; - - cmd->body_count = 1; - cmd->body_list = XCNEWVEC (struct command_line *, cmd->body_count); - cmd->line = xstrdup (args); - - return cmd; + return new struct command_line (type, xstrdup (args)); } /* Build and return a new command structure for the control commands such as "if" and "while". */ -command_line_up +counted_command_line get_command_line (enum command_control_type type, const char *arg) { /* Allocate and build a new command line structure. */ - command_line_up cmd (build_command_line (type, arg)); + counted_command_line cmd (build_command_line (type, arg), + command_lines_deleter ()); /* Read in the body of this command. */ - if (recurse_read_control_structure (read_next_line, cmd.get (), 0, 0) + if (recurse_read_control_structure (read_next_line, cmd.get (), 0) == invalid_control) { warning (_("Error reading in canned sequence of commands.")); @@ -239,7 +229,7 @@ else uiout->field_string (NULL, list->line); uiout->text ("\n"); - print_command_lines (uiout, *list->body_list, depth + 1); + print_command_lines (uiout, list->body_list_0.get (), depth + 1); if (depth) uiout->spaces (2 * depth); uiout->field_string (NULL, "end"); @@ -255,16 +245,16 @@ uiout->field_fmt (NULL, "if %s", list->line); uiout->text ("\n"); /* The true arm. */ - print_command_lines (uiout, list->body_list[0], depth + 1); + print_command_lines (uiout, list->body_list_0.get (), depth + 1); /* Show the false arm if it exists. */ - if (list->body_count == 2) + if (list->body_list_1 != nullptr) { if (depth) uiout->spaces (2 * depth); uiout->field_string (NULL, "else"); uiout->text ("\n"); - print_command_lines (uiout, list->body_list[1], depth + 1); + print_command_lines (uiout, list->body_list_1.get (), depth + 1); } if (depth) @@ -284,7 +274,7 @@ else uiout->field_string (NULL, "commands"); uiout->text ("\n"); - print_command_lines (uiout, *list->body_list, depth + 1); + print_command_lines (uiout, list->body_list_0.get (), depth + 1); if (depth) uiout->spaces (2 * depth); uiout->field_string (NULL, "end"); @@ -298,7 +288,7 @@ uiout->field_string (NULL, "python"); uiout->text ("\n"); /* Don't indent python code at all. */ - print_command_lines (uiout, *list->body_list, 0); + print_command_lines (uiout, list->body_list_0.get (), 0); if (depth) uiout->spaces (2 * depth); uiout->field_string (NULL, "end"); @@ -311,7 +301,7 @@ { uiout->field_string (NULL, "compile expression"); uiout->text ("\n"); - print_command_lines (uiout, *list->body_list, 0); + print_command_lines (uiout, list->body_list_0.get (), 0); if (depth) uiout->spaces (2 * depth); uiout->field_string (NULL, "end"); @@ -324,7 +314,7 @@ { uiout->field_string (NULL, "guile"); uiout->text ("\n"); - print_command_lines (uiout, *list->body_list, depth + 1); + print_command_lines (uiout, list->body_list_0.get (), depth + 1); if (depth) uiout->spaces (2 * depth); uiout->field_string (NULL, "end"); @@ -384,36 +374,23 @@ } } +/* See cli-script.h. */ + void -execute_user_command (struct cmd_list_element *c, const char *args) +execute_control_commands (struct command_line *cmdlines, int from_tty) { - struct ui *ui = current_ui; - struct command_line *cmdlines; - enum command_control_type ret; - extern unsigned int max_user_call_depth; - - cmdlines = c->user_commands; - if (cmdlines == 0) - /* Null command */ - return; - - scoped_user_args_level push_user_args (args); - - if (user_args_stack.size () > max_user_call_depth) - error (_("Max user call depth exceeded -- command aborted.")); - /* Set the instream to 0, indicating execution of a user-defined function. */ scoped_restore restore_instream - = make_scoped_restore (&ui->instream, nullptr); - + = make_scoped_restore (¤t_ui->instream, nullptr); scoped_restore save_async = make_scoped_restore (¤t_ui->async, 0); - scoped_restore save_nesting = make_scoped_restore (&command_nest_depth, command_nest_depth + 1); + while (cmdlines) { - ret = execute_control_command (cmdlines); + enum command_control_type ret = execute_control_command (cmdlines, + from_tty); if (ret != simple_control && ret != break_control) { warning (_("Error executing canned sequence of commands.")); @@ -423,6 +400,61 @@ } } +/* See cli-script.h. */ + +std::string +execute_control_commands_to_string (struct command_line *commands, + int from_tty) +{ + /* GDB_STDOUT should be better already restored during these + restoration callbacks. */ + set_batch_flag_and_restore_page_info save_page_info; + + string_file str_file; + + { + current_uiout->redirect (&str_file); + ui_out_redirect_pop redirect_popper (current_uiout); + + scoped_restore save_stdout + = make_scoped_restore (&gdb_stdout, &str_file); + scoped_restore save_stderr + = make_scoped_restore (&gdb_stderr, &str_file); + scoped_restore save_stdlog + = make_scoped_restore (&gdb_stdlog, &str_file); + scoped_restore save_stdtarg + = make_scoped_restore (&gdb_stdtarg, &str_file); + scoped_restore save_stdtargerr + = make_scoped_restore (&gdb_stdtargerr, &str_file); + + execute_control_commands (commands, from_tty); + } + + return std::move (str_file.string ()); +} + +void +execute_user_command (struct cmd_list_element *c, const char *args) +{ + counted_command_line cmdlines_copy; + extern unsigned int max_user_call_depth; + + /* Ensure that the user commands can't be deleted while they are + executing. */ + cmdlines_copy = c->user_commands; + if (cmdlines_copy == 0) + /* Null command */ + return; + struct command_line *cmdlines = cmdlines_copy.get (); + + scoped_user_args_level push_user_args (args); + + if (user_args_stack.size () > max_user_call_depth) + error (_("Max user call depth exceeded -- command aborted.")); + + execute_control_commands (cmdlines, 0); +} + /* This function is called every time GDB prints a prompt. It ensures that errors and the like do not confuse the command tracing. */ @@ -443,8 +475,9 @@ via while_command or if_command. Inner levels of 'if' and 'while' are dealt with directly. Therefore we can use these functions to determine whether the command has been printed already or not. */ +ATTRIBUTE_PRINTF (1, 2) void -print_command_trace (const char *cmd) +print_command_trace (const char *fmt, ...) { int i; @@ -460,13 +493,18 @@ for (i=0; i < command_nest_depth; i++) printf_filtered ("+"); - printf_filtered ("%s\n", cmd); + va_list args; + + va_start (args, fmt); + vprintf_filtered (fmt, args); + va_end (args); + puts_filtered ("\n"); } /* Helper for execute_control_command. */ static enum command_control_type -execute_control_command_1 (struct command_line *cmd) +execute_control_command_1 (struct command_line *cmd, int from_tty) { struct command_line *current; struct value *val; @@ -484,7 +522,7 @@ { /* A simple command, execute it and return. */ std::string new_line = insert_user_defined_cmd_args (cmd->line); - execute_command (new_line.c_str (), 0); + execute_command (new_line.c_str (), from_tty); ret = cmd->control_type; break; } @@ -507,11 +545,7 @@ case while_control: { - int len = strlen (cmd->line) + 7; - char *buffer = (char *) alloca (len); - - xsnprintf (buffer, len, "while %s", cmd->line); - print_command_trace (buffer); + print_command_trace ("while %s", cmd->line); /* Parse the loop control expression for the while statement. */ std::string new_line = insert_user_defined_cmd_args (cmd->line); @@ -538,12 +572,12 @@ break; /* Execute the body of the while statement. */ - current = *cmd->body_list; + current = cmd->body_list_0.get (); while (current) { scoped_restore save_nesting = make_scoped_restore (&command_nest_depth, command_nest_depth + 1); - ret = execute_control_command_1 (current); + ret = execute_control_command_1 (current, from_tty); /* If we got an error, or a "break" command, then stop looping. */ @@ -572,11 +606,7 @@ case if_control: { - int len = strlen (cmd->line) + 4; - char *buffer = (char *) alloca (len); - - xsnprintf (buffer, len, "if %s", cmd->line); - print_command_trace (buffer); + print_command_trace ("if %s", cmd->line); /* Parse the conditional for the if statement. */ std::string new_line = insert_user_defined_cmd_args (cmd->line); @@ -592,9 +622,9 @@ /* Choose which arm to take commands from based on the value of the conditional expression. */ if (value_true (val)) - current = *cmd->body_list; - else if (cmd->body_count == 2) - current = *(cmd->body_list + 1); + current = cmd->body_list_0.get (); + else if (cmd->body_list_1 != nullptr) + current = cmd->body_list_1.get (); value_free_to_mark (val_mark); /* Execute commands in the given arm. */ @@ -602,7 +632,7 @@ { scoped_restore save_nesting = make_scoped_restore (&command_nest_depth, command_nest_depth + 1); - ret = execute_control_command_1 (current); + ret = execute_control_command_1 (current, from_tty); /* If we got an error, get out. */ if (ret != simple_control) @@ -630,6 +660,12 @@ ret = simple_control; break; + case define_control: + print_command_trace ("define %s", cmd->line); + do_define_command (cmd->line, 0, &cmd->body_list_0); + ret = simple_control; + break; + case python_control: case guile_control: { @@ -647,15 +683,15 @@ } enum command_control_type -execute_control_command (struct command_line *cmd) +execute_control_command (struct command_line *cmd, int from_tty) { /* Make sure we use the console uiout. It's possible that we are executing breakpoint commands while running the MI interpreter. */ interp *console = interp_lookup (current_ui, INTERP_CONSOLE); scoped_restore save_uiout - = make_scoped_restore (¤t_uiout, interp_ui_out (console)); + = make_scoped_restore (¤t_uiout, console->interp_ui_out ()); - return execute_control_command_1 (cmd); + return execute_control_command_1 (cmd, from_tty); } /* Like execute_control_command, but first set @@ -676,7 +712,7 @@ while_command (const char *arg, int from_tty) { control_level = 1; - command_line_up command = get_command_line (while_control, arg); + counted_command_line command = get_command_line (while_control, arg); if (command == NULL) return; @@ -693,7 +729,7 @@ if_command (const char *arg, int from_tty) { control_level = 1; - command_line_up command = get_command_line (if_control, arg); + counted_command_line command = get_command_line (if_control, arg); if (command == NULL) return; @@ -827,7 +863,7 @@ error (_("Missing argument %ld in user function."), i); else { - new_line.append (m_args[i].str, m_args[i].len); + new_line.append (m_args[i].data (), m_args[i].length ()); line = tmp; } } @@ -839,31 +875,6 @@ } -/* Expand the body_list of COMMAND so that it can hold NEW_LENGTH - code bodies. This is typically used when we encounter an "else" - clause for an "if" command. */ - -static void -realloc_body_list (struct command_line *command, int new_length) -{ - int n; - struct command_line **body_list; - - n = command->body_count; - - /* Nothing to do? */ - if (new_length <= n) - return; - - body_list = XCNEWVEC (struct command_line *, new_length); - - memcpy (body_list, command->body_list, sizeof (struct command_line *) * n); - - xfree (command->body_list); - command->body_list = body_list; - command->body_count = new_length; -} - /* Read next line from stdin. Passed to read_command_line_1 and recurse_read_control_structure whenever we need to read commands from stdin. */ @@ -892,7 +903,7 @@ else prompt_ptr = NULL; - return command_line_input (prompt_ptr, from_tty, "commands"); + return command_line_input (prompt_ptr, "commands"); } /* Return true if CMD's name is NAME. */ @@ -925,11 +936,13 @@ Otherwise, only "end" is recognized. */ static enum misc_command_type -process_next_line (char *p, struct command_line **command, int parse_commands, - void (*validator)(char *, void *), void *closure) +process_next_line (const char *p, struct command_line **command, + int parse_commands, + gdb::function_view validator) + { - char *p_end; - char *p_start; + const char *p_end; + const char *p_start; int not_handled = 0; /* Not sure what to do here. */ @@ -1004,6 +1017,8 @@ { *command = build_command_line (commands_control, line_first_arg (p)); } + else if (command_name_equals (cmd, "define")) + *command = build_command_line (define_control, line_first_arg (p)); else if (command_name_equals (cmd, "python") && !inline_cmd) { /* Note that we ignore the inline "python command" form @@ -1023,23 +1038,9 @@ *command = build_command_line (guile_control, ""); } else if (p_end - p == 10 && startswith (p, "loop_break")) - { - *command = XNEW (struct command_line); - (*command)->next = NULL; - (*command)->line = NULL; - (*command)->control_type = break_control; - (*command)->body_count = 0; - (*command)->body_list = NULL; - } + *command = new struct command_line (break_control); else if (p_end - p == 13 && startswith (p, "loop_continue")) - { - *command = XNEW (struct command_line); - (*command)->next = NULL; - (*command)->line = NULL; - (*command)->control_type = continue_control; - (*command)->body_count = 0; - (*command)->body_list = NULL; - } + *command = new struct command_line (continue_control); else not_handled = 1; } @@ -1047,24 +1048,19 @@ if (!parse_commands || not_handled) { /* A normal command. */ - *command = XNEW (struct command_line); - (*command)->next = NULL; - (*command)->line = savestring (p, p_end - p); - (*command)->control_type = simple_control; - (*command)->body_count = 0; - (*command)->body_list = NULL; + *command = new struct command_line (simple_control, + savestring (p, p_end - p)); } if (validator) { - TRY { - validator ((*command)->line, closure); + validator ((*command)->line); } CATCH (ex, RETURN_MASK_ALL) { - xfree (*command); + free_command_lines (command); throw_exception (ex); } END_CATCH @@ -1079,26 +1075,21 @@ obtain lines of the command. */ static enum command_control_type -recurse_read_control_structure (char * (*read_next_line_func) (void), +recurse_read_control_structure (gdb::function_view read_next_line_func, struct command_line *current_cmd, - void (*validator)(char *, void *), - void *closure) + gdb::function_view validator) { - int current_body, i; enum misc_command_type val; enum command_control_type ret; struct command_line **body_ptr, *child_tail, *next; + counted_command_line *current_body = ¤t_cmd->body_list_0; child_tail = NULL; - current_body = 1; /* Sanity checks. */ if (current_cmd->control_type == simple_control) error (_("Recursed on a simple control type.")); - if (current_body > current_cmd->body_count) - error (_("Allocated body is smaller than this command type needs.")); - /* Read lines from the input stream and build control structures. */ while (1) { @@ -1109,7 +1100,7 @@ current_cmd->control_type != python_control && current_cmd->control_type != guile_control && current_cmd->control_type != compile_control, - validator, closure); + validator); /* Just skip blanks and comments. */ if (val == nop_command) @@ -1134,10 +1125,9 @@ if (val == else_command) { if (current_cmd->control_type == if_control - && current_body == 1) + && current_body == ¤t_cmd->body_list_0) { - realloc_body_list (current_cmd, 2); - current_body = 2; + current_body = ¤t_cmd->body_list_1; child_tail = NULL; continue; } @@ -1153,14 +1143,7 @@ child_tail->next = next; } else - { - body_ptr = current_cmd->body_list; - for (i = 1; i < current_body; i++) - body_ptr++; - - *body_ptr = next; - - } + *current_body = counted_command_line (next, command_lines_deleter ()); child_tail = next; @@ -1170,7 +1153,7 @@ { control_level++; ret = recurse_read_control_structure (read_next_line_func, next, - validator, closure); + validator); control_level--; if (ret != simple_control) @@ -1194,9 +1177,9 @@ #define END_MESSAGE "End with a line saying just \"end\"." -command_line_up -read_command_lines (char *prompt_arg, int from_tty, int parse_commands, - void (*validator)(char *, void *), void *closure) +counted_command_line +read_command_lines (const char *prompt_arg, int from_tty, int parse_commands, + gdb::function_view validator) { if (from_tty && input_interactive_p (current_ui)) { @@ -1216,16 +1199,16 @@ /* Reading commands assumes the CLI behavior, so temporarily override the current interpreter with CLI. */ - command_line_up head; + counted_command_line head (nullptr, command_lines_deleter ()); if (current_interp_named_p (INTERP_CONSOLE)) head = read_command_lines_1 (read_next_line, parse_commands, - validator, closure); + validator); else { scoped_restore_interp interp_restorer (INTERP_CONSOLE); head = read_command_lines_1 (read_next_line, parse_commands, - validator, closure); + validator); } if (from_tty && input_interactive_p (current_ui) @@ -1239,12 +1222,13 @@ /* Act the same way as read_command_lines, except that each new line is obtained using READ_NEXT_LINE_FUNC. */ -command_line_up -read_command_lines_1 (char * (*read_next_line_func) (void), int parse_commands, - void (*validator)(char *, void *), void *closure) +counted_command_line +read_command_lines_1 (gdb::function_view read_next_line_func, + int parse_commands, + gdb::function_view validator) { struct command_line *tail, *next; - command_line_up head; + counted_command_line head (nullptr, command_lines_deleter ()); enum command_control_type ret; enum misc_command_type val; @@ -1255,7 +1239,7 @@ { dont_repeat (); val = process_next_line (read_next_line_func (), &next, parse_commands, - validator, closure); + validator); /* Ignore blank lines or comments. */ if (val == nop_command) @@ -1277,7 +1261,7 @@ { control_level++; ret = recurse_read_control_structure (read_next_line_func, next, - validator, closure); + validator); control_level--; if (ret == invalid_control) @@ -1290,7 +1274,7 @@ } else { - head.reset (next); + head = counted_command_line (next, command_lines_deleter ()); } tail = next; } @@ -1310,54 +1294,15 @@ { struct command_line *l = *lptr; struct command_line *next; - struct command_line **blist; - int i; while (l) { - if (l->body_count > 0) - { - blist = l->body_list; - for (i = 0; i < l->body_count; i++, blist++) - free_command_lines (blist); - } next = l->next; - xfree (l->line); - xfree (l); + delete l; l = next; } *lptr = NULL; } - -command_line_up -copy_command_lines (struct command_line *cmds) -{ - struct command_line *result = NULL; - - if (cmds) - { - result = XNEW (struct command_line); - - result->next = copy_command_lines (cmds->next).release (); - result->line = xstrdup (cmds->line); - result->control_type = cmds->control_type; - result->body_count = cmds->body_count; - if (cmds->body_count > 0) - { - int i; - - result->body_list = XNEWVEC (struct command_line *, cmds->body_count); - - for (i = 0; i < cmds->body_count; i++) - result->body_list[i] - = copy_command_lines (cmds->body_list[i]).release (); - } - else - result->body_list = NULL; - } - - return command_line_up (result); -} /* Validate that *COMNAME is a valid name for a command. Return the containing command list, in case it starts with a prefix command. @@ -1416,10 +1361,16 @@ { } +/* Define a user-defined command. If COMMANDS is NULL, then this is a + top-level call and the commands will be read using + read_command_lines. Otherwise, it is a "define" command in an + existing command and the commands are provided. In the + non-top-level case, various prompts and warnings are disabled. */ + static void -define_command (const char *comname, int from_tty) +do_define_command (const char *comname, int from_tty, + const counted_command_line *commands) { -#define MAX_TMPBUF 128 enum cmd_hook_type { CMD_NO_HOOK = 0, @@ -1428,7 +1379,6 @@ }; struct cmd_list_element *c, *newc, *hookc = 0, **list; const char *tem, *comfull; - char tmpbuf[MAX_TMPBUF]; int hook_type = CMD_NO_HOOK; int hook_name_size = 0; @@ -1446,7 +1396,7 @@ if (c && strcmp (comname, c->name) != 0) c = 0; - if (c) + if (c && commands == nullptr) { int q; @@ -1480,7 +1430,7 @@ hookc = lookup_cmd (&tem, *list, "", -1, 0); if (hookc && strcmp (comname + hook_name_size, hookc->name) != 0) hookc = 0; - if (!hookc) + if (!hookc && commands == nullptr) { warning (_("Your new `%s' command does not " "hook any existing command."), @@ -1492,17 +1442,20 @@ comname = xstrdup (comname); - xsnprintf (tmpbuf, sizeof (tmpbuf), - "Type commands for definition of \"%s\".", comfull); - command_line_up cmds = read_command_lines (tmpbuf, from_tty, 1, 0, 0); - - if (c && c->theclass == class_user) - free_command_lines (&c->user_commands); + counted_command_line cmds; + if (commands == nullptr) + { + std::string prompt + = string_printf ("Type commands for definition of \"%s\".", comfull); + cmds = read_command_lines (prompt.c_str (), from_tty, 1, 0); + } + else + cmds = *commands; newc = add_cmd (comname, class_user, user_defined_command, (c && c->theclass == class_user) ? c->doc : xstrdup ("User-defined."), list); - newc->user_commands = cmds.release (); + newc->user_commands = std::move (cmds); /* If this new command is a hook, then mark both commands as being tied. */ @@ -1527,12 +1480,17 @@ } static void +define_command (const char *comname, int from_tty) +{ + do_define_command (comname, from_tty, nullptr); +} + +static void document_command (const char *comname, int from_tty) { struct cmd_list_element *c, **list; const char *tem; const char *comfull; - char tmpbuf[128]; comfull = comname; list = validate_comname (&comname); @@ -1543,9 +1501,10 @@ if (c->theclass != class_user) error (_("Command \"%s\" is built-in."), comfull); - xsnprintf (tmpbuf, sizeof (tmpbuf), "Type documentation for \"%s\".", - comfull); - command_line_up doclines = read_command_lines (tmpbuf, from_tty, 0, 0, 0); + std::string prompt = string_printf ("Type documentation for \"%s\".", + comfull); + counted_command_line doclines = read_command_lines (prompt.c_str (), + from_tty, 0, 0); if (c->doc) xfree ((char *) c->doc); @@ -1622,7 +1581,7 @@ return; } - cmdlines = c->user_commands; + cmdlines = c->user_commands.get (); fprintf_filtered (stream, "User command \"%s%s\":\n", prefix, name); if (!cmdlines) @@ -1643,7 +1602,9 @@ Definition appears on following lines, one command per line.\n\ End with a line of just \"end\".\n\ Use the \"document\" command to give documentation for the new command.\n\ -Commands defined in this way may have up to ten arguments.")); +Commands defined in this way may accept an unlimited number of arguments\n\ +accessed via $arg0 .. $argN. $argc tells how many arguments have\n\ +been passed.")); add_com ("while", class_support, while_command, _("\ Execute nested commands WHILE the conditional expression is non zero.\n\ diff -Nru gdb-8.1/gdb/cli/cli-script.h gdb-8.2/gdb/cli/cli-script.h --- gdb-8.1/gdb/cli/cli-script.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/cli/cli-script.h 2018-09-05 07:27:13.000000000 +0000 @@ -42,15 +42,42 @@ compile_control, guile_control, while_stepping_control, + define_control, invalid_control }; +struct command_line; + +extern void free_command_lines (struct command_line **); + +/* A deleter for command_line that calls free_command_lines. */ + +struct command_lines_deleter +{ + void operator() (command_line *cmd_lines) const + { + free_command_lines (&cmd_lines); + } +}; + +/* A reference-counted struct command_line. */ +typedef std::shared_ptr counted_command_line; + /* * Structure for saved commands lines (for breakpoints, defined commands, etc). */ struct command_line { - struct command_line *next; + explicit command_line (command_control_type type_, char *line_ = nullptr) + : line (line_), + control_type (type_) + { + memset (&control_u, 0, sizeof (control_u)); + } + + DISABLE_COPY_AND_ASSIGN (command_line); + + struct command_line *next = nullptr; char *line; enum command_control_type control_type; union @@ -63,36 +90,27 @@ compile; } control_u; - /* * The number of elements in body_list. */ - int body_count; /* * For composite commands, the nested lists of commands. For example, for "if" command this will contain the then branch and the else branch, if that is available. */ - struct command_line **body_list; -}; + counted_command_line body_list_0; + counted_command_line body_list_1; -extern void free_command_lines (struct command_line **); +private: -/* A deleter for command_line that calls free_command_lines. */ + friend void free_command_lines (struct command_line **); -struct command_lines_deleter -{ - void operator() (command_line *cmd_lines) const + ~command_line () { - free_command_lines (&cmd_lines); + xfree (line); } }; -/* A unique pointer to a command_line. */ - -typedef std::unique_ptr command_line_up; - -extern command_line_up read_command_lines (char *, int, int, - void (*)(char *, void *), - void *); -extern command_line_up read_command_lines_1 (char * (*) (void), int, - void (*)(char *, void *), - void *); +extern counted_command_line read_command_lines + (const char *, int, int, gdb::function_view); +extern counted_command_line read_command_lines_1 + (gdb::function_view, int, + gdb::function_view); /* Exported to cli/cli-cmds.c */ @@ -104,22 +122,33 @@ const char *name, struct ui_file *stream); +/* Execute the commands in CMDLINES. */ + +extern void execute_control_commands (struct command_line *cmdlines, + int from_tty); + +/* Run execute_control_commands for COMMANDS. Capture its output into + the returned string, do not display it to the screen. BATCH_FLAG + will be temporarily set to true. */ + +extern std::string execute_control_commands_to_string + (struct command_line *commands, int from_tty); + /* Exported to gdb/breakpoint.c */ extern enum command_control_type - execute_control_command (struct command_line *cmd); + execute_control_command (struct command_line *cmd, + int from_tty = 0); extern enum command_control_type execute_control_command_untraced (struct command_line *cmd); -extern command_line_up get_command_line (enum command_control_type, - const char *); +extern counted_command_line get_command_line (enum command_control_type, + const char *); extern void print_command_lines (struct ui_out *, struct command_line *, unsigned int); -extern command_line_up copy_command_lines (struct command_line *cmds); - /* Exported to gdb/infrun.c */ extern void execute_user_command (struct cmd_list_element *c, const char *args); @@ -132,7 +161,8 @@ /* Exported to top.c */ -extern void print_command_trace (const char *cmd); +extern void print_command_trace (const char *cmd, ...) + ATTRIBUTE_PRINTF (1, 2); /* Exported to event-top.c */ diff -Nru gdb-8.1/gdb/cli/cli-setshow.c gdb-8.2/gdb/cli/cli-setshow.c --- gdb-8.1/gdb/cli/cli-setshow.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/cli/cli-setshow.c 2018-09-05 07:27:13.000000000 +0000 @@ -20,7 +20,7 @@ #include "value.h" #include #include "arch-utils.h" -#include "observer.h" +#include "observable.h" #include "ui-out.h" @@ -511,20 +511,20 @@ case var_filename: case var_optional_filename: case var_enum: - observer_notify_command_param_changed (name, *(char **) c->var); + gdb::observers::command_param_changed.notify (name, *(char **) c->var); break; case var_boolean: { const char *opt = *(int *) c->var ? "on" : "off"; - observer_notify_command_param_changed (name, opt); + gdb::observers::command_param_changed.notify (name, opt); } break; case var_auto_boolean: { const char *s = auto_boolean_enums[*(enum auto_boolean *) c->var]; - observer_notify_command_param_changed (name, s); + gdb::observers::command_param_changed.notify (name, s); } break; case var_uinteger: @@ -533,7 +533,7 @@ char s[64]; xsnprintf (s, sizeof s, "%u", *(unsigned int *) c->var); - observer_notify_command_param_changed (name, s); + gdb::observers::command_param_changed.notify (name, s); } break; case var_integer: @@ -543,7 +543,7 @@ char s[64]; xsnprintf (s, sizeof s, "%d", *(int *) c->var); - observer_notify_command_param_changed (name, s); + gdb::observers::command_param_changed.notify (name, s); } break; } diff -Nru gdb-8.1/gdb/cli-out.c gdb-8.2/gdb/cli-out.c --- gdb-8.1/gdb/cli-out.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/cli-out.c 2018-09-05 07:27:13.000000000 +0000 @@ -156,7 +156,7 @@ spaces (before); if (string) - out_field_fmt (fldno, fldname, "%s", string); + fputs_filtered (string, m_streams.back ()); if (after) spaces (after); @@ -238,22 +238,6 @@ /* local functions */ -/* Like cli_ui_out::do_field_fmt, but takes a variable number of args - and makes a va_list and does not insert a separator. */ - -/* VARARGS */ -void -cli_ui_out::out_field_fmt (int fldno, const char *fldname, - const char *format, ...) -{ - va_list args; - - va_start (args, format); - vfprintf_filtered (m_streams.back (), format, args); - - va_end (args); -} - void cli_ui_out::field_separator () { diff -Nru gdb-8.1/gdb/cli-out.h gdb-8.2/gdb/cli-out.h --- gdb-8.1/gdb/cli-out.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/cli-out.h 2018-09-05 07:27:13.000000000 +0000 @@ -35,24 +35,26 @@ protected: virtual void do_table_begin (int nbrofcols, int nr_rows, - const char *tblid) override; + const char *tblid) override; virtual void do_table_body () override; virtual void do_table_end () override; virtual void do_table_header (int width, ui_align align, - const std::string &col_name, - const std::string &col_hdr) override; + const std::string &col_name, + const std::string &col_hdr) override; /* Note: level 0 is the top-level so LEVEL is always greater than zero. */ virtual void do_begin (ui_out_type type, const char *id) override; virtual void do_end (ui_out_type type) override; virtual void do_field_int (int fldno, int width, ui_align align, - const char *fldname, int value) override; + const char *fldname, int value) override; virtual void do_field_skip (int fldno, int width, ui_align align, - const char *fldname) override; + const char *fldname) override; virtual void do_field_string (int fldno, int width, ui_align align, - const char *fldname, const char *string) override; + const char *fldname, + const char *string) override; virtual void do_field_fmt (int fldno, int width, ui_align align, - const char *fldname, const char *format, va_list args) + const char *fldname, const char *format, + va_list args) override ATTRIBUTE_PRINTF (6,0); virtual void do_spaces (int numspaces) override; virtual void do_text (const char *string) override; @@ -68,8 +70,6 @@ private: void field_separator (); - void out_field_fmt (int fldno, const char *fldname, const char *format, ...) - ATTRIBUTE_PRINTF (4, 5); std::vector m_streams; bool m_suppress_output; diff -Nru gdb-8.1/gdb/coff-pe-read.c gdb-8.2/gdb/coff-pe-read.c --- gdb-8.1/gdb/coff-pe-read.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/coff-pe-read.c 2018-09-05 07:44:28.000000000 +0000 @@ -54,7 +54,7 @@ enum minimal_symbol_type ms_type; /* Type to assign symbols in section. */ unsigned int index; /* BFD section number. */ - const char *section_name; /* Recorded section name. */ + std::string section_name; /* Recorded section name. */ }; #define IMAGE_SCN_CNT_CODE 0x20 @@ -106,7 +106,7 @@ int i; for (i = 0; i < nb_sections; i++) - if (strcmp (sections[i].section_name, section_name) == 0) + if (sections[i].section_name == section_name) return i; return PE_SECTION_INDEX_INVALID; } @@ -175,7 +175,8 @@ if ((section_data->ms_type == mst_unknown) && debug_coff_pe_read) fprintf_unfiltered (gdb_stdlog , _("Unknown section type for \"%s\"" " for entry \"%s\" in dll \"%s\"\n"), - section_data->section_name, sym_name, dll_name); + section_data->section_name.c_str (), sym_name, + dll_name); reader.record_with_info (qualified_name, vma, section_data->ms_type, section_data->index); @@ -219,7 +220,7 @@ forward_func_name); - msymbol = lookup_minimal_symbol_and_objfile (forward_qualified_name); + msymbol = lookup_bound_minimal_symbol (forward_qualified_name); if (!msymbol.minsym) { @@ -227,7 +228,7 @@ for (i = 0; i < forward_dll_name_len; i++) forward_qualified_name[i] = tolower (forward_qualified_name[i]); - msymbol = lookup_minimal_symbol_and_objfile (forward_qualified_name); + msymbol = lookup_bound_minimal_symbol (forward_qualified_name); } if (!msymbol.minsym) @@ -349,16 +350,12 @@ /* Array elements are for text, data and bss in that order Initialization with RVA_START > RVA_END guarantees that unused sections won't be matched. */ - struct read_pe_section_data *section_data; struct pe_sections_info pe_sections_info; - struct cleanup *back_to = make_cleanup (null_cleanup, 0); - char const *target = bfd_get_target (objfile->obfd); - section_data = XCNEWVEC (struct read_pe_section_data, PE_SECTION_TABLE_SIZE); - - make_cleanup (free_current_contents, §ion_data); + std::vector section_data + (PE_SECTION_TABLE_SIZE); for (i=0; i < PE_SECTION_TABLE_SIZE; i++) { @@ -384,7 +381,6 @@ /* This is not a recognized PE format file. Abort now, because the code is untested on anything else. *FIXME* test on further architectures and loosen or remove this test. */ - do_cleanups (back_to); return; } @@ -397,10 +393,7 @@ num_entries = pe_get32 (dll, opthdr_ofs + 92); if (num_entries < 1) /* No exports. */ - { - do_cleanups (back_to); - return; - } + return; if (is_pe64) { export_opthdrrva = pe_get32 (dll, opthdr_ofs + 112); @@ -454,7 +447,6 @@ if (export_size == 0) { /* Empty export table. */ - do_cleanups (back_to); return; } @@ -490,13 +482,8 @@ } else { - char *name; - - section_data = XRESIZEVEC (struct read_pe_section_data, section_data, - otherix + 1); - name = xstrdup (sec_name); - section_data[otherix].section_name = name; - make_cleanup (xfree, name); + section_data.resize (otherix + 1); + section_data[otherix].section_name = sec_name; section_data[otherix].rva_start = vaddr; section_data[otherix].rva_end = vaddr + vsize; section_data[otherix].vma_offset = 0; @@ -513,8 +500,8 @@ } } - expdata = (unsigned char *) xmalloc (export_size); - make_cleanup (xfree, expdata); + gdb::def_vector expdata_storage (export_size); + expdata = expdata_storage.data (); bfd_seek (dll, (file_ptr) expptr, SEEK_SET); bfd_bread (expdata, (bfd_size_type) export_size, dll); @@ -530,7 +517,7 @@ dll_name = (char *) (pe_as32 (expdata + 12) + erva); pe_sections_info.nb_sections = otherix; - pe_sections_info.sections = section_data; + pe_sections_info.sections = section_data.data (); bfd_map_over_sections (dll, get_section_vmas, &pe_sections_info); @@ -596,7 +583,7 @@ section_found = 1; add_pe_exported_sym (reader, sym_name, func_rva, ordinal, - section_data + sectix, dll_name, objfile); + §ion_data[sectix], dll_name, objfile); ++nbnormal; break; } @@ -608,7 +595,7 @@ if (name_rva == 0) { add_pe_exported_sym (reader, NULL, func_rva, ordinal, - section_data, dll_name, objfile); + §ion_data[0], dll_name, objfile); ++nbnormal; } else if (debug_coff_pe_read) @@ -622,8 +609,6 @@ fprintf_unfiltered (gdb_stdlog, _("Finished reading \"%s\", exports %ld," " forwards %ld, total %ld/%ld.\n"), dll_name, nbnormal, nbforward, nbnormal + nbforward, nexp); - /* Discard expdata and section_data. */ - do_cleanups (back_to); } /* Extract from ABFD the offset of the .text section. diff -Nru gdb-8.1/gdb/coffread.c gdb-8.2/gdb/coffread.c --- gdb-8.1/gdb/coffread.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/coffread.c 2018-09-05 07:44:28.000000000 +0000 @@ -733,20 +733,17 @@ /* Try to add separate debug file if no symbols table found. */ if (!objfile_has_partial_symbols (objfile)) { - char *debugfile; + std::string debugfile = find_separate_debug_file_by_buildid (objfile); - debugfile = find_separate_debug_file_by_buildid (objfile); - - if (debugfile == NULL) + if (debugfile.empty ()) debugfile = find_separate_debug_file_by_debuglink (objfile); - make_cleanup (xfree, debugfile); - if (debugfile) + if (!debugfile.empty ()) { - gdb_bfd_ref_ptr abfd (symfile_bfd_open (debugfile)); + gdb_bfd_ref_ptr abfd (symfile_bfd_open (debugfile.c_str ())); - symbol_file_add_separate (abfd.get (), debugfile, symfile_flags, - objfile); + symbol_file_add_separate (abfd.get (), debugfile.c_str (), + symfile_flags, objfile); } } @@ -769,8 +766,6 @@ { /* Let stabs reader clean up. */ stabsread_clear_cache (); - - dwarf2_free_objfile (objfile); } @@ -808,6 +803,9 @@ CORE_ADDR tmpaddr; struct minimal_symbol *msym; + buildsym_init (); + scoped_free_pendings free_pending; + /* Work around a stdio bug in SunOS4.1.1 (this makes me nervous.... it's hard to know I've really worked around it. The fix should be harmless, anyway). The symptom of the bug is that the first @@ -899,8 +897,7 @@ case C_LINE: case C_ALIAS: case C_HIDDEN: - complaint (&symfile_complaints, - _("Bad n_sclass for symbol %s"), + complaint (_("Bad n_sclass for symbol %s"), cs->c_name); break; @@ -931,6 +928,7 @@ backtraces, so filter them out (from phdm@macqel.be). */ if (within_function) break; + /* Fall through. */ case C_STAT: case C_THUMBLABEL: case C_THUMBSTAT: @@ -967,7 +965,8 @@ /* At least on a 3b1, gcc generates swbeg and string labels that look like this. Ignore them. */ break; - /* Fall in for static symbols that don't start with '.' */ + /* For static symbols that don't start with '.'... */ + /* Fall through. */ case C_THUMBEXT: case C_THUMBEXTFUNC: case C_EXT: @@ -1067,8 +1066,7 @@ /* main_aux.x_sym.x_misc.x_lnsz.x_lnno contains line number of '{' }. */ if (cs->c_naux != 1) - complaint (&symfile_complaints, - _("`.bf' symbol %d has no aux entry"), + complaint (_("`.bf' symbol %d has no aux entry"), cs->c_symnum); fcn_first_line = main_aux.x_sym.x_misc.x_lnsz.x_lnno; fcn_first_line_addr = cs->c_value; @@ -1094,8 +1092,7 @@ if (context_stack_depth <= 0) { /* We attempted to pop an empty context stack. */ - complaint (&symfile_complaints, - _("`.ef' symbol without matching `.bf' " + complaint (_("`.ef' symbol without matching `.bf' " "symbol ignored starting at symnum %d"), cs->c_symnum); within_function = 0; @@ -1106,8 +1103,7 @@ /* Stack must be empty now. */ if (context_stack_depth > 0 || newobj == NULL) { - complaint (&symfile_complaints, - _("Unmatched .ef symbol(s) ignored " + complaint (_("Unmatched .ef symbol(s) ignored " "starting at symnum %d"), cs->c_symnum); within_function = 0; @@ -1115,8 +1111,7 @@ } if (cs->c_naux != 1) { - complaint (&symfile_complaints, - _("`.ef' symbol %d has no aux entry"), + complaint (_("`.ef' symbol %d has no aux entry"), cs->c_symnum); fcn_last_line = 0x7FFFFFFF; } @@ -1161,8 +1156,7 @@ { if (context_stack_depth <= 0) { /* We attempted to pop an empty context stack. */ - complaint (&symfile_complaints, - _("`.eb' symbol without matching `.bb' " + complaint (_("`.eb' symbol without matching `.bb' " "symbol ignored starting at symnum %d"), cs->c_symnum); break; @@ -1171,8 +1165,7 @@ newobj = pop_context (); if (depth-- != newobj->depth) { - complaint (&symfile_complaints, - _("Mismatched .eb symbol ignored " + complaint (_("Mismatched .eb symbol ignored " "starting at symnum %d"), symnum); break; @@ -1481,8 +1474,7 @@ return; if (file_offset < linetab_offset) { - complaint (&symfile_complaints, - _("Line number pointer %ld lower than start of line numbers"), + complaint (_("Line number pointer %ld lower than start of line numbers"), file_offset); if (file_offset > linetab_size) /* Too big to be an offset? */ return; @@ -1790,11 +1782,11 @@ /* Some compilers try to be helpful by inventing "fake" names for anonymous enums, structures, and unions, like "~0fake" or ".0fake". Thanks, but no thanks... */ - if (TYPE_TAG_NAME (SYMBOL_TYPE (sym)) == 0) + if (TYPE_NAME (SYMBOL_TYPE (sym)) == 0) if (SYMBOL_LINKAGE_NAME (sym) != NULL && *SYMBOL_LINKAGE_NAME (sym) != '~' && *SYMBOL_LINKAGE_NAME (sym) != '.') - TYPE_TAG_NAME (SYMBOL_TYPE (sym)) = + TYPE_NAME (SYMBOL_TYPE (sym)) = concat (SYMBOL_LINKAGE_NAME (sym), (char *)NULL); add_symbol_to_list (sym, &file_symbols); @@ -1878,8 +1870,7 @@ } else { - complaint (&symfile_complaints, - _("Symbol table entry for %s has bad tagndx value"), + complaint (_("Symbol table entry for %s has bad tagndx value"), cs->c_name); /* And fall through to decode_base_type... */ } @@ -1960,10 +1951,6 @@ type = coff_alloc_type (cs->c_symnum); TYPE_CODE (type) = TYPE_CODE_STRUCT; TYPE_NAME (type) = NULL; - /* This used to set the tag to "". But I think - setting it to NULL is right, and the printing code can - print it as "struct {...}". */ - TYPE_TAG_NAME (type) = NULL; INIT_CPLUS_SPECIFIC (type); TYPE_LENGTH (type) = 0; TYPE_FIELDS (type) = 0; @@ -1984,10 +1971,6 @@ /* Anonymous union type. */ type = coff_alloc_type (cs->c_symnum); TYPE_NAME (type) = NULL; - /* This used to set the tag to "". But I think - setting it to NULL is right, and the printing code can - print it as "union {...}". */ - TYPE_TAG_NAME (type) = NULL; INIT_CPLUS_SPECIFIC (type); TYPE_LENGTH (type) = 0; TYPE_FIELDS (type) = 0; @@ -2010,10 +1993,6 @@ type = coff_alloc_type (cs->c_symnum); TYPE_CODE (type) = TYPE_CODE_ENUM; TYPE_NAME (type) = NULL; - /* This used to set the tag to "". But I think - setting it to NULL is right, and the printing code can - print it as "enum {...}". */ - TYPE_TAG_NAME (type) = NULL; TYPE_LENGTH (type) = 0; TYPE_FIELDS (type) = 0; TYPE_NFIELDS (type) = 0; @@ -2048,8 +2027,7 @@ else return objfile_type (objfile)->builtin_unsigned_long; } - complaint (&symfile_complaints, - _("Unexpected type for symbol %s"), cs->c_name); + complaint (_("Unexpected type for symbol %s"), cs->c_name); return objfile_type (objfile)->builtin_void; } diff -Nru gdb-8.1/gdb/common/agent.c gdb-8.2/gdb/common/agent.c --- gdb-8.1/gdb/common/agent.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/agent.c 2018-09-05 07:44:28.000000000 +0000 @@ -190,7 +190,7 @@ { int fd; int tid = agent_get_helper_thread_id (); - ptid_t ptid = ptid_build (pid, tid, 0); + ptid_t ptid = ptid_t (pid, tid, 0); int ret = target_write_memory (ipa_sym_addrs.addr_cmd_buf, (gdb_byte *) cmd, len); @@ -234,7 +234,7 @@ return -1; /* Need to read response with the inferior stopped. */ - if (!ptid_equal (ptid, null_ptid)) + if (ptid != null_ptid) { /* Stop thread PTID. */ DEBUG_AGENT ("agent: stop helper thread\n"); diff -Nru gdb-8.1/gdb/common/array-view.h gdb-8.2/gdb/common/array-view.h --- gdb-8.1/gdb/common/array-view.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/array-view.h 2018-09-05 07:27:13.000000000 +0000 @@ -174,6 +174,33 @@ size_type m_size; }; +/* Compare LHS and RHS for (deep) equality. That is, whether LHS and + RHS have the same sizes, and whether each pair of elements of LHS + and RHS at the same position compares equal. */ + +template +bool +operator== (const gdb::array_view &lhs, const gdb::array_view &rhs) +{ + if (lhs.size () != rhs.size ()) + return false; + + for (size_t i = 0; i < lhs.size (); i++) + if (!(lhs[i] == rhs[i])) + return false; + + return true; +} + +/* Compare two array_views for inequality. */ + +template +bool +operator!= (const gdb::array_view &lhs, const gdb::array_view &rhs) +{ + return !(lhs == rhs); +} + } /* namespace gdb */ #endif diff -Nru gdb-8.1/gdb/common/btrace-common.c gdb-8.2/gdb/common/btrace-common.c --- gdb-8.1/gdb/common/btrace-common.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/btrace-common.c 2018-09-05 07:27:13.000000000 +0000 @@ -64,28 +64,20 @@ /* See btrace-common.h. */ void -btrace_data_init (struct btrace_data *data) +btrace_data::fini () { - data->format = BTRACE_FORMAT_NONE; -} - -/* See btrace-common.h. */ - -void -btrace_data_fini (struct btrace_data *data) -{ - switch (data->format) + switch (format) { case BTRACE_FORMAT_NONE: /* Nothing to do. */ return; case BTRACE_FORMAT_BTS: - VEC_free (btrace_block_s, data->variant.bts.blocks); + VEC_free (btrace_block_s, variant.bts.blocks); return; case BTRACE_FORMAT_PT: - xfree (data->variant.pt.data); + xfree (variant.pt.data); return; } @@ -94,19 +86,19 @@ /* See btrace-common.h. */ -int -btrace_data_empty (struct btrace_data *data) +bool +btrace_data::empty () const { - switch (data->format) + switch (format) { case BTRACE_FORMAT_NONE: - return 1; + return true; case BTRACE_FORMAT_BTS: - return VEC_empty (btrace_block_s, data->variant.bts.blocks); + return VEC_empty (btrace_block_s, variant.bts.blocks); case BTRACE_FORMAT_PT: - return (data->variant.pt.size == 0); + return (variant.pt.size == 0); } internal_error (__FILE__, __LINE__, _("Unkown branch trace format.")); @@ -115,10 +107,10 @@ /* See btrace-common.h. */ void -btrace_data_clear (struct btrace_data *data) +btrace_data::clear () { - btrace_data_fini (data); - btrace_data_init (data); + fini (); + format = BTRACE_FORMAT_NONE; } /* See btrace-common.h. */ diff -Nru gdb-8.1/gdb/common/btrace-common.h gdb-8.2/gdb/common/btrace-common.h --- gdb-8.1/gdb/common/btrace-common.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/btrace-common.h 2018-09-05 07:27:13.000000000 +0000 @@ -164,7 +164,32 @@ /* The branch trace data. */ struct btrace_data { - enum btrace_format format; + btrace_data () = default; + + ~btrace_data () + { + fini (); + } + + btrace_data &operator= (btrace_data &&other) + { + if (this != &other) + { + fini (); + format = other.format; + variant = other.variant; + other.format = BTRACE_FORMAT_NONE; + } + return *this; + } + + /* Return true if this is empty; false otherwise. */ + bool empty () const; + + /* Clear this object. */ + void clear (); + + enum btrace_format format = BTRACE_FORMAT_NONE; union { @@ -174,6 +199,12 @@ /* Format == BTRACE_FORMAT_PT. */ struct btrace_data_pt pt; } variant; + +private: + + DISABLE_COPY_AND_ASSIGN (btrace_data); + + void fini (); }; /* Target specific branch trace information. */ @@ -217,18 +248,6 @@ /* Return an abbreviation string representation of FORMAT. */ extern const char *btrace_format_short_string (enum btrace_format format); -/* Initialize DATA. */ -extern void btrace_data_init (struct btrace_data *data); - -/* Cleanup DATA. */ -extern void btrace_data_fini (struct btrace_data *data); - -/* Clear DATA. */ -extern void btrace_data_clear (struct btrace_data *data); - -/* Return non-zero if DATA is empty; zero otherwise. */ -extern int btrace_data_empty (struct btrace_data *data); - /* Append the branch trace data from SRC to the end of DST. Both SRC and DST must use the same format. Returns zero on success; a negative number otherwise. */ diff -Nru gdb-8.1/gdb/common/byte-vector.h gdb-8.2/gdb/common/byte-vector.h --- gdb-8.1/gdb/common/byte-vector.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/byte-vector.h 2018-09-05 07:27:13.000000000 +0000 @@ -56,6 +56,7 @@ and providing the whole std::vector API, if you end up needing it. */ using byte_vector = gdb::def_vector; +using char_vector = gdb::def_vector; } /* namespace gdb */ diff -Nru gdb-8.1/gdb/common/common-defs.h gdb-8.2/gdb/common/common-defs.h --- gdb-8.1/gdb/common/common-defs.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/common-defs.h 2018-09-05 07:44:28.000000000 +0000 @@ -21,12 +21,23 @@ #define COMMON_DEFS_H #include "config.h" + +#undef PACKAGE_NAME +#undef PACKAGE_VERSION +#undef PACKAGE_STRING +#undef PACKAGE_TARNAME + #ifdef GDBSERVER #include "build-gnulib-gdbserver/config.h" #else #include "build-gnulib/config.h" #endif +#undef PACKAGE_NAME +#undef PACKAGE_VERSION +#undef PACKAGE_STRING +#undef PACKAGE_TARNAME + /* From: https://www.gnu.org/software/gnulib/manual/html_node/stdint_002eh.html @@ -91,4 +102,7 @@ /* Pull in gdb::unique_xmalloc_ptr. */ #include "common/gdb_unique_ptr.h" +/* String containing the current directory (what getwd would return). */ +extern char *current_directory; + #endif /* COMMON_DEFS_H */ diff -Nru gdb-8.1/gdb/common/common-exceptions.h gdb-8.2/gdb/common/common-exceptions.h --- gdb-8.1/gdb/common/common-exceptions.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/common-exceptions.h 2018-09-05 07:27:13.000000000 +0000 @@ -146,7 +146,7 @@ #if GDB_XCPT != GDB_XCPT_SJMP extern void *exception_try_scope_entry (void); extern void exception_try_scope_exit (void *saved_state); -extern void exception_rethrow (void); +extern void exception_rethrow (void) ATTRIBUTE_NORETURN; #endif /* Macro to wrap up standard try/catch behavior. diff -Nru gdb-8.1/gdb/common/common.host gdb-8.2/gdb/common/common.host --- gdb-8.1/gdb/common/common.host 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/common.host 2018-09-05 07:27:13.000000000 +0000 @@ -27,10 +27,10 @@ case "${host}" in -*-mingw*) common_host_obs=mingw-strerror.o +*-mingw*) common_host_obs=common/mingw-strerror.o ;; *) - common_host_obs=posix-strerror.o + common_host_obs=common/posix-strerror.o ;; esac diff -Nru gdb-8.1/gdb/common/common-regcache.h gdb-8.2/gdb/common/common-regcache.h --- gdb-8.1/gdb/common/common-regcache.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/common-regcache.h 2018-09-05 07:27:13.000000000 +0000 @@ -22,7 +22,7 @@ /* This header is a stopgap until we have an independent regcache. */ -enum register_status +enum register_status : signed char { /* The register value is not in the cache, and we don't know yet whether it's available in the target (or traceframe). */ @@ -62,4 +62,24 @@ ULONGEST regcache_raw_get_unsigned (struct regcache *regcache, int regnum); +struct reg_buffer_common +{ + virtual ~reg_buffer_common () = default; + + /* Get the availability status of the value of register REGNUM in this + buffer. */ + virtual register_status get_register_status (int regnum) const = 0; + + /* Supply register REGNUM, whose contents are stored in BUF, to REGCACHE. */ + virtual void raw_supply (int regnum, const void *buf) = 0; + + /* Collect register REGNUM from REGCACHE and store its contents in BUF. */ + virtual void raw_collect (int regnum, void *buf) const = 0; + + /* Compare the contents of the register stored in the regcache (ignoring the + first OFFSET bytes) to the contents of BUF (without any offset). Returns + true if the same. */ + virtual bool raw_compare (int regnum, const void *buf, int offset) const = 0; +}; + #endif /* COMMON_REGCACHE_H */ diff -Nru gdb-8.1/gdb/common/common-utils.c gdb-8.2/gdb/common/common-utils.c --- gdb-8.1/gdb/common/common-utils.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/common-utils.c 2018-09-05 07:27:13.000000000 +0000 @@ -20,6 +20,7 @@ #include "common-defs.h" #include "common-utils.h" #include "host-defs.h" +#include #include /* The xmalloc() (libiberty.h) family of memory management routines. @@ -408,3 +409,54 @@ return ret; } + +/* See common/common-utils.h. */ + +bool +is_regular_file (const char *name, int *errno_ptr) +{ + struct stat st; + const int status = stat (name, &st); + + /* Stat should never fail except when the file does not exist. + If stat fails, analyze the source of error and return true + unless the file does not exist, to avoid returning false results + on obscure systems where stat does not work as expected. */ + + if (status != 0) + { + if (errno != ENOENT) + return true; + *errno_ptr = ENOENT; + return false; + } + + if (S_ISREG (st.st_mode)) + return true; + + if (S_ISDIR (st.st_mode)) + *errno_ptr = EISDIR; + else + *errno_ptr = EINVAL; + return false; +} + +/* See common/common-utils.h. */ + +ULONGEST +align_up (ULONGEST v, int n) +{ + /* Check that N is really a power of two. */ + gdb_assert (n && (n & (n-1)) == 0); + return (v + n - 1) & -n; +} + +/* See common/common-utils.h. */ + +ULONGEST +align_down (ULONGEST v, int n) +{ + /* Check that N is really a power of two. */ + gdb_assert (n && (n & (n-1)) == 0); + return (v & -n); +} diff -Nru gdb-8.1/gdb/common/common-utils.h gdb-8.2/gdb/common/common-utils.h --- gdb-8.1/gdb/common/common-utils.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/common-utils.h 2018-09-05 07:27:13.000000000 +0000 @@ -146,4 +146,41 @@ return value >= low && value <= high; } +/* Return true if the file NAME exists and is a regular file. + If the result is false then *ERRNO_PTR is set to a useful value assuming + we're expecting a regular file. */ +extern bool is_regular_file (const char *name, int *errno_ptr); + +/* Ensure that V is aligned to an N byte boundary (B's assumed to be a + power of 2). Round up/down when necessary. Examples of correct + use include: + + addr = align_up (addr, 8); -- VALUE needs 8 byte alignment + write_memory (addr, value, len); + addr += len; + + and: + + sp = align_down (sp - len, 16); -- Keep SP 16 byte aligned + write_memory (sp, value, len); + + Note that uses such as: + + write_memory (addr, value, len); + addr += align_up (len, 8); + + and: + + sp -= align_up (len, 8); + write_memory (sp, value, len); + + are typically not correct as they don't ensure that the address (SP + or ADDR) is correctly aligned (relying on previous alignment to + keep things right). This is also why the methods are called + "align_..." instead of "round_..." as the latter reads better with + this incorrect coding style. */ + +extern ULONGEST align_up (ULONGEST v, int n); +extern ULONGEST align_down (ULONGEST v, int n); + #endif diff -Nru gdb-8.1/gdb/common/diagnostics.h gdb-8.2/gdb/common/diagnostics.h --- gdb-8.1/gdb/common/diagnostics.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/diagnostics.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,64 +0,0 @@ -/* Copyright (C) 2017-2018 Free Software Foundation, Inc. - - This file is part of GDB. - - 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 3 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, see . */ - -#ifndef COMMON_DIAGNOSTICS_H -#define COMMON_DIAGNOSTICS_H - -#include "common/preprocessor.h" - -#ifdef __GNUC__ -# define DIAGNOSTIC_PUSH _Pragma ("GCC diagnostic push") -# define DIAGNOSTIC_POP _Pragma ("GCC diagnostic pop") -# define DIAGNOSTIC_IGNORE(option) \ - _Pragma (STRINGIFY (GCC diagnostic ignored option)) -#else -# define DIAGNOSTIC_PUSH -# define DIAGNOSTIC_POP -# define DIAGNOSTIC_IGNORE(option) -#endif - -#if defined (__clang__) /* clang */ - -# define DIAGNOSTIC_IGNORE_SELF_MOVE DIAGNOSTIC_IGNORE ("-Wself-move") -# define DIAGNOSTIC_IGNORE_DEPRECATED_REGISTER \ - DIAGNOSTIC_IGNORE ("-Wdeprecated-register") -# define DIAGNOSTIC_IGNORE_UNUSED_FUNCTION \ - DIAGNOSTIC_IGNORE ("-Wunused-function") -# if __has_warning ("-Wenum-compare-switch") -# define DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES \ - DIAGNOSTIC_IGNORE ("-Wenum-compare-switch") -# else -# define DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES -# endif -#elif defined (__GNUC__) /* GCC */ - -# define DIAGNOSTIC_IGNORE_SELF_MOVE -# define DIAGNOSTIC_IGNORE_DEPRECATED_REGISTER -# define DIAGNOSTIC_IGNORE_UNUSED_FUNCTION \ - DIAGNOSTIC_IGNORE ("-Wunused-function") -# define DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES - -#else /* Other compilers */ - -# define DIAGNOSTIC_IGNORE_SELF_MOVE -# define DIAGNOSTIC_IGNORE_DEPRECATED_REGISTER -# define DIAGNOSTIC_IGNORE_UNUSED_FUNCTION -# define DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES - -#endif - -#endif /* COMMON_DIAGNOSTICS_H */ diff -Nru gdb-8.1/gdb/common/enum-flags.h gdb-8.2/gdb/common/enum-flags.h --- gdb-8.1/gdb/common/enum-flags.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/enum-flags.h 2018-09-05 07:27:13.000000000 +0000 @@ -32,7 +32,7 @@ flag_val3 = 1 << 3, flag_val4 = 1 << 4, }; - DEF_ENUM_FLAGS_TYPE(enum some_flag, some_flags) + DEF_ENUM_FLAGS_TYPE(enum some_flag, some_flags); some_flags f = flag_val1 | flag_val2; f |= flag_val3; diff -Nru gdb-8.1/gdb/common/filestuff.h gdb-8.2/gdb/common/filestuff.h --- gdb-8.1/gdb/common/filestuff.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/filestuff.h 2018-09-05 07:44:28.000000000 +0000 @@ -19,6 +19,8 @@ #ifndef FILESTUFF_H #define FILESTUFF_H +#include + /* Note all the file descriptors which are open when this is called. These file descriptors will not be closed by close_most_fds. */ @@ -84,4 +86,16 @@ extern struct cleanup *make_cleanup_close (int fd); +struct gdb_dir_deleter +{ + void operator() (DIR *dir) const + { + closedir (dir); + } +}; + +/* A unique pointer to a DIR. */ + +typedef std::unique_ptr gdb_dir_up; + #endif /* FILESTUFF_H */ diff -Nru gdb-8.1/gdb/common/format.c gdb-8.2/gdb/common/format.c --- gdb-8.1/gdb/common/format.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/format.c 2018-09-05 07:27:13.000000000 +0000 @@ -56,6 +56,9 @@ case 'b': *f++ = '\b'; break; + case 'e': + *f++ = '\e'; + break; case 'f': *f++ = '\f'; break; diff -Nru gdb-8.1/gdb/common/format.h gdb-8.2/gdb/common/format.h --- gdb-8.1/gdb/common/format.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/format.h 2018-09-05 07:27:13.000000000 +0000 @@ -20,6 +20,8 @@ #ifndef COMMON_FORMAT_H #define COMMON_FORMAT_H +#include "common/gdb_string_view.h" + #if defined(__MINGW32__) && !defined(PRINTF_HAS_LONG_LONG) # define USE_PRINTF_I64 1 # define PRINTF_HAS_LONG_LONG @@ -54,6 +56,12 @@ { } + bool operator== (const format_piece &other) const + { + return (this->argclass == other.argclass + && gdb::string_view (this->string) == other.string); + } + const char *string; enum argclass argclass; }; @@ -67,11 +75,6 @@ DISABLE_COPY_AND_ASSIGN (format_pieces); - format_piece &operator[] (size_t index) - { - return m_pieces[index]; - } - typedef std::vector::iterator iterator; iterator begin () diff -Nru gdb-8.1/gdb/common/gdb_ref_ptr.h gdb-8.2/gdb/common/gdb_ref_ptr.h --- gdb-8.1/gdb/common/gdb_ref_ptr.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/gdb_ref_ptr.h 2018-09-05 07:27:13.000000000 +0000 @@ -149,6 +149,13 @@ return m_obj; } + /* Acquire a new reference and return a ref_ptr that owns it. */ + static ref_ptr new_reference (T *obj) + { + Policy::incref (obj); + return ref_ptr (obj); + } + private: T *m_obj; diff -Nru gdb-8.1/gdb/common/gdb_string_view.h gdb-8.2/gdb/common/gdb_string_view.h --- gdb-8.1/gdb/common/gdb_string_view.h 1970-01-01 00:00:00.000000000 +0000 +++ gdb-8.2/gdb/common/gdb_string_view.h 2018-09-05 07:27:13.000000000 +0000 @@ -0,0 +1,560 @@ +// Components for manipulating non-owning sequences of characters -*- C++ -*- + +// Note: This file has been stolen from the gcc repo +// (libstdc++-v3/include/experimental/string_view) and has local modifications. + +// Copyright (C) 2013-2018 Free Software Foundation, Inc. +// +// 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 3, 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. + +// Under Section 7 of GPL version 3, you are granted additional +// permissions described in the GCC Runtime Library Exception, version +// 3.1, as published by the Free Software Foundation. + +// You should have received a copy of the GNU General Public License and +// a copy of the GCC Runtime Library Exception along with this program; +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + +// +// N3762 basic_string_view library +// + +#ifndef GDB_STRING_VIEW_H +#define GDB_STRING_VIEW_H 1 + +#if __cplusplus >= 201703L + +#include + +namespace gdb { + using string_view = std::string_view; +} /* namespace gdb */ + +#else /* __cplusplus < 201703L */ + +#include +#include + +namespace gdb { + + /** + * @class basic_string_view + * @brief A non-owning reference to a string. + * + * @ingroup strings + * @ingroup sequences + * @ingroup experimental + * + * @tparam _CharT Type of character + * @tparam _Traits Traits for character type, defaults to + * char_traits<_CharT>. + * + * A basic_string_view looks like this: + * + * @code + * _CharT* _M_str + * size_t _M_len + * @endcode + */ + template> + class basic_string_view + { + public: + + // types + using traits_type = _Traits; + using value_type = _CharT; + using pointer = const _CharT*; + using const_pointer = const _CharT*; + using reference = const _CharT&; + using const_reference = const _CharT&; + using const_iterator = const _CharT*; + using iterator = const_iterator; + using const_reverse_iterator = std::reverse_iterator; + using reverse_iterator = const_reverse_iterator; + using size_type = size_t; + using difference_type = ptrdiff_t; + static constexpr size_type npos = size_type(-1); + + // [string.view.cons], construct/copy + + constexpr + basic_string_view() noexcept + : _M_len{0}, _M_str{nullptr} + { } + + constexpr basic_string_view(const basic_string_view&) noexcept = default; + + template + basic_string_view(const std::basic_string<_CharT, _Traits, + _Allocator>& __str) noexcept + : _M_len{__str.length()}, _M_str{__str.data()} + { } + + /*constexpr*/ basic_string_view(const _CharT* __str) + : _M_len{__str == nullptr ? 0 : traits_type::length(__str)}, + _M_str{__str} + { } + + constexpr basic_string_view(const _CharT* __str, size_type __len) + : _M_len{__len}, + _M_str{__str} + { } + + basic_string_view& + operator=(const basic_string_view&) noexcept = default; + + // [string.view.iterators], iterators + + constexpr const_iterator + begin() const noexcept + { return this->_M_str; } + + constexpr const_iterator + end() const noexcept + { return this->_M_str + this->_M_len; } + + constexpr const_iterator + cbegin() const noexcept + { return this->_M_str; } + + constexpr const_iterator + cend() const noexcept + { return this->_M_str + this->_M_len; } + + const_reverse_iterator + rbegin() const noexcept + { return const_reverse_iterator(this->end()); } + + const_reverse_iterator + rend() const noexcept + { return const_reverse_iterator(this->begin()); } + + const_reverse_iterator + crbegin() const noexcept + { return const_reverse_iterator(this->end()); } + + const_reverse_iterator + crend() const noexcept + { return const_reverse_iterator(this->begin()); } + + // [string.view.capacity], capacity + + constexpr size_type + size() const noexcept + { return this->_M_len; } + + constexpr size_type + length() const noexcept + { return _M_len; } + + constexpr size_type + max_size() const noexcept + { + return (npos - sizeof(size_type) - sizeof(void*)) + / sizeof(value_type) / 4; + } + + constexpr bool + empty() const noexcept + { return this->_M_len == 0; } + + // [string.view.access], element access + + constexpr const _CharT& + operator[](size_type __pos) const + { + // TODO: Assert to restore in a way compatible with the constexpr. + // __glibcxx_assert(__pos < this->_M_len); + return *(this->_M_str + __pos); + } + + constexpr const _CharT& + at(size_type __pos) const + { + return __pos < this->_M_len + ? *(this->_M_str + __pos) + : (error (_("basic_string_view::at: __pos " + "(which is %zu) >= this->size() " + "(which is %zu)"), + __pos, this->size()), + *this->_M_str); + } + + constexpr const _CharT& + front() const + { + // TODO: Assert to restore in a way compatible with the constexpr. + // __glibcxx_assert(this->_M_len > 0); + return *this->_M_str; + } + + constexpr const _CharT& + back() const + { + // TODO: Assert to restore in a way compatible with the constexpr. + // __glibcxx_assert(this->_M_len > 0); + return *(this->_M_str + this->_M_len - 1); + } + + constexpr const _CharT* + data() const noexcept + { return this->_M_str; } + + // [string.view.modifiers], modifiers: + + /*constexpr*/ void + remove_prefix(size_type __n) + { + gdb_assert (this->_M_len >= __n); + this->_M_str += __n; + this->_M_len -= __n; + } + + /*constexpr*/ void + remove_suffix(size_type __n) + { this->_M_len -= __n; } + + /*constexpr*/ void + swap(basic_string_view& __sv) noexcept + { + auto __tmp = *this; + *this = __sv; + __sv = __tmp; + } + + + // [string.view.ops], string operations: + + template + explicit operator std::basic_string<_CharT, _Traits, _Allocator>() const + { + return { this->_M_str, this->_M_len }; + } + + template> + std::basic_string<_CharT, _Traits, _Allocator> + to_string(const _Allocator& __alloc = _Allocator()) const + { + return { this->_M_str, this->_M_len, __alloc }; + } + + size_type + copy(_CharT* __str, size_type __n, size_type __pos = 0) const + { + gdb_assert (__str != nullptr || __n == 0); + if (__pos > this->_M_len) + error (_("basic_string_view::copy: __pos " + "(which is %zu) > this->size() " + "(which is %zu)"), + __pos, this->size()); + size_type __rlen{std::min(__n, size_type{this->_M_len - __pos})}; + for (auto __begin = this->_M_str + __pos, + __end = __begin + __rlen; __begin != __end;) + *__str++ = *__begin++; + return __rlen; + } + + + // [string.view.ops], string operations: + + /*constexpr*/ basic_string_view + substr(size_type __pos, size_type __n=npos) const + { + return __pos <= this->_M_len + ? basic_string_view{this->_M_str + __pos, + std::min(__n, size_type{this->_M_len - __pos})} + : (error (_("basic_string_view::substr: __pos " + "(which is %zu) > this->size() " + "(which is %zu)"), + __pos, this->size()), basic_string_view{}); + } + + /*constexpr*/ int + compare(basic_string_view __str) const noexcept + { + int __ret = traits_type::compare(this->_M_str, __str._M_str, + std::min(this->_M_len, __str._M_len)); + if (__ret == 0) + __ret = _S_compare(this->_M_len, __str._M_len); + return __ret; + } + + /*constexpr*/ int + compare(size_type __pos1, size_type __n1, basic_string_view __str) const + { return this->substr(__pos1, __n1).compare(__str); } + + /*constexpr*/ int + compare(size_type __pos1, size_type __n1, + basic_string_view __str, size_type __pos2, size_type __n2) const + { return this->substr(__pos1, __n1).compare(__str.substr(__pos2, __n2)); } + + /*constexpr*/ int + compare(const _CharT* __str) const noexcept + { return this->compare(basic_string_view{__str}); } + + /*constexpr*/ int + compare(size_type __pos1, size_type __n1, const _CharT* __str) const + { return this->substr(__pos1, __n1).compare(basic_string_view{__str}); } + + /*constexpr*/ int + compare(size_type __pos1, size_type __n1, + const _CharT* __str, size_type __n2) const + { + return this->substr(__pos1, __n1) + .compare(basic_string_view(__str, __n2)); + } + + /*constexpr*/ size_type + find(basic_string_view __str, size_type __pos = 0) const noexcept + { return this->find(__str._M_str, __pos, __str._M_len); } + + /*constexpr*/ size_type + find(_CharT __c, size_type __pos=0) const noexcept; + + /*constexpr*/ size_type + find(const _CharT* __str, size_type __pos, size_type __n) const noexcept; + + /*constexpr*/ size_type + find(const _CharT* __str, size_type __pos=0) const noexcept + { return this->find(__str, __pos, traits_type::length(__str)); } + + /*constexpr*/ size_type + rfind(basic_string_view __str, size_type __pos = npos) const noexcept + { return this->rfind(__str._M_str, __pos, __str._M_len); } + + /*constexpr*/ size_type + rfind(_CharT __c, size_type __pos = npos) const noexcept; + + /*constexpr*/ size_type + rfind(const _CharT* __str, size_type __pos, size_type __n) const noexcept; + + /*constexpr*/ size_type + rfind(const _CharT* __str, size_type __pos = npos) const noexcept + { return this->rfind(__str, __pos, traits_type::length(__str)); } + + /*constexpr*/ size_type + find_first_of(basic_string_view __str, size_type __pos = 0) const noexcept + { return this->find_first_of(__str._M_str, __pos, __str._M_len); } + + /*constexpr*/ size_type + find_first_of(_CharT __c, size_type __pos = 0) const noexcept + { return this->find(__c, __pos); } + + /*constexpr*/ size_type + find_first_of(const _CharT* __str, size_type __pos, size_type __n) const; + + /*constexpr*/ size_type + find_first_of(const _CharT* __str, size_type __pos = 0) const noexcept + { return this->find_first_of(__str, __pos, traits_type::length(__str)); } + + /*constexpr*/ size_type + find_last_of(basic_string_view __str, + size_type __pos = npos) const noexcept + { return this->find_last_of(__str._M_str, __pos, __str._M_len); } + + size_type + find_last_of(_CharT __c, size_type __pos=npos) const noexcept + { return this->rfind(__c, __pos); } + + /*constexpr*/ size_type + find_last_of(const _CharT* __str, size_type __pos, size_type __n) const; + + /*constexpr*/ size_type + find_last_of(const _CharT* __str, size_type __pos = npos) const noexcept + { return this->find_last_of(__str, __pos, traits_type::length(__str)); } + + /*constexpr*/ size_type + find_first_not_of(basic_string_view __str, + size_type __pos = 0) const noexcept + { return this->find_first_not_of(__str._M_str, __pos, __str._M_len); } + + /*constexpr*/ size_type + find_first_not_of(_CharT __c, size_type __pos = 0) const noexcept; + + /*constexpr*/ size_type + find_first_not_of(const _CharT* __str, + size_type __pos, size_type __n) const; + + /*constexpr*/ size_type + find_first_not_of(const _CharT* __str, size_type __pos = 0) const noexcept + { + return this->find_first_not_of(__str, __pos, + traits_type::length(__str)); + } + + /*constexpr*/ size_type + find_last_not_of(basic_string_view __str, + size_type __pos = npos) const noexcept + { return this->find_last_not_of(__str._M_str, __pos, __str._M_len); } + + /*constexpr*/ size_type + find_last_not_of(_CharT __c, size_type __pos = npos) const noexcept; + + /*constexpr*/ size_type + find_last_not_of(const _CharT* __str, + size_type __pos, size_type __n) const; + + /*constexpr*/ size_type + find_last_not_of(const _CharT* __str, + size_type __pos = npos) const noexcept + { + return this->find_last_not_of(__str, __pos, + traits_type::length(__str)); + } + + private: + + static constexpr int + _S_compare(size_type __n1, size_type __n2) noexcept + { + return difference_type(__n1 - __n2) > std::numeric_limits::max() + ? std::numeric_limits::max() + : difference_type(__n1 - __n2) < std::numeric_limits::min() + ? std::numeric_limits::min() + : static_cast(difference_type(__n1 - __n2)); + } + + size_t _M_len; + const _CharT* _M_str; + }; + + // [string.view.comparison], non-member basic_string_view comparison functions + + namespace __detail + { + // Identity transform to create a non-deduced context, so that only one + // argument participates in template argument deduction and the other + // argument gets implicitly converted to the deduced type. See n3766.html. + template + using __idt = typename std::common_type<_Tp>::type; + } + + template + /*constexpr*/ bool + operator==(basic_string_view<_CharT, _Traits> __x, + basic_string_view<_CharT, _Traits> __y) noexcept + { return __x.size() == __y.size() && __x.compare(__y) == 0; } + + template + /*constexpr*/ bool + operator==(basic_string_view<_CharT, _Traits> __x, + __detail::__idt> __y) noexcept + { return __x.size() == __y.size() && __x.compare(__y) == 0; } + + template + /*constexpr*/ bool + operator==(__detail::__idt> __x, + basic_string_view<_CharT, _Traits> __y) noexcept + { return __x.size() == __y.size() && __x.compare(__y) == 0; } + + template + /*constexpr*/ bool + operator!=(basic_string_view<_CharT, _Traits> __x, + basic_string_view<_CharT, _Traits> __y) noexcept + { return !(__x == __y); } + + template + /*constexpr*/ bool + operator!=(basic_string_view<_CharT, _Traits> __x, + __detail::__idt> __y) noexcept + { return !(__x == __y); } + + template + /*constexpr*/ bool + operator!=(__detail::__idt> __x, + basic_string_view<_CharT, _Traits> __y) noexcept + { return !(__x == __y); } + + template + /*constexpr*/ bool + operator< (basic_string_view<_CharT, _Traits> __x, + basic_string_view<_CharT, _Traits> __y) noexcept + { return __x.compare(__y) < 0; } + + template + /*constexpr*/ bool + operator< (basic_string_view<_CharT, _Traits> __x, + __detail::__idt> __y) noexcept + { return __x.compare(__y) < 0; } + + template + /*constexpr*/ bool + operator< (__detail::__idt> __x, + basic_string_view<_CharT, _Traits> __y) noexcept + { return __x.compare(__y) < 0; } + + template + /*constexpr*/ bool + operator> (basic_string_view<_CharT, _Traits> __x, + basic_string_view<_CharT, _Traits> __y) noexcept + { return __x.compare(__y) > 0; } + + template + /*constexpr*/ bool + operator> (basic_string_view<_CharT, _Traits> __x, + __detail::__idt> __y) noexcept + { return __x.compare(__y) > 0; } + + template + /*constexpr*/ bool + operator> (__detail::__idt> __x, + basic_string_view<_CharT, _Traits> __y) noexcept + { return __x.compare(__y) > 0; } + + template + /*constexpr*/ bool + operator<=(basic_string_view<_CharT, _Traits> __x, + basic_string_view<_CharT, _Traits> __y) noexcept + { return __x.compare(__y) <= 0; } + + template + /*constexpr*/ bool + operator<=(basic_string_view<_CharT, _Traits> __x, + __detail::__idt> __y) noexcept + { return __x.compare(__y) <= 0; } + + template + /*constexpr*/ bool + operator<=(__detail::__idt> __x, + basic_string_view<_CharT, _Traits> __y) noexcept + { return __x.compare(__y) <= 0; } + + template + /*constexpr*/ bool + operator>=(basic_string_view<_CharT, _Traits> __x, + basic_string_view<_CharT, _Traits> __y) noexcept + { return __x.compare(__y) >= 0; } + + template + /*constexpr*/ bool + operator>=(basic_string_view<_CharT, _Traits> __x, + __detail::__idt> __y) noexcept + { return __x.compare(__y) >= 0; } + + template + /*constexpr*/ bool + operator>=(__detail::__idt> __x, + basic_string_view<_CharT, _Traits> __y) noexcept + { return __x.compare(__y) >= 0; } + + // basic_string_view typedef names + + using string_view = basic_string_view; +} /* namespace gdb */ + +#include "gdb_string_view.tcc" + +#endif // __cplusplus < 201703L + +#endif /* GDB_STRING_VIEW_H */ diff -Nru gdb-8.1/gdb/common/gdb_string_view.tcc gdb-8.2/gdb/common/gdb_string_view.tcc --- gdb-8.1/gdb/common/gdb_string_view.tcc 1970-01-01 00:00:00.000000000 +0000 +++ gdb-8.2/gdb/common/gdb_string_view.tcc 2018-09-05 07:27:13.000000000 +0000 @@ -0,0 +1,219 @@ +// Components for manipulating non-owning sequences of characters -*- C++ -*- + +// Note: This file has been stolen from the gcc repo +// (libstdc++-v3/include/experimental/bits/string_view.tcc) and has local +// modifications. + +// Copyright (C) 2013-2018 Free Software Foundation, Inc. +// +// 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 3, 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. + +// Under Section 7 of GPL version 3, you are granted additional +// permissions described in the GCC Runtime Library Exception, version +// 3.1, as published by the Free Software Foundation. + +// You should have received a copy of the GNU General Public License and +// a copy of the GCC Runtime Library Exception along with this program; +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + +/** @file experimental/bits/string_view.tcc + * This is an internal header file, included by other library headers. + * Do not attempt to use it directly. @headername{experimental/string_view} + */ + +// +// N3762 basic_string_view library +// + +#ifndef GDB_STRING_VIEW_TCC +#define GDB_STRING_VIEW_TCC 1 + +namespace gdb +{ + template + /*constexpr*/ typename basic_string_view<_CharT, _Traits>::size_type + basic_string_view<_CharT, _Traits>:: + find(const _CharT* __str, size_type __pos, size_type __n) const noexcept + { + gdb_assert (__str != nullptr || __n == 0); + + if (__n == 0) + return __pos <= this->_M_len ? __pos : npos; + + if (__n <= this->_M_len) + { + for (; __pos <= this->_M_len - __n; ++__pos) + if (traits_type::eq(this->_M_str[__pos], __str[0]) + && traits_type::compare(this->_M_str + __pos + 1, + __str + 1, __n - 1) == 0) + return __pos; + } + return npos; + } + + template + /*constexpr*/ typename basic_string_view<_CharT, _Traits>::size_type + basic_string_view<_CharT, _Traits>:: + find(_CharT __c, size_type __pos) const noexcept + { + size_type __ret = npos; + if (__pos < this->_M_len) + { + const size_type __n = this->_M_len - __pos; + const _CharT* __p = traits_type::find(this->_M_str + __pos, __n, __c); + if (__p) + __ret = __p - this->_M_str; + } + return __ret; + } + + template + /*constexpr*/ typename basic_string_view<_CharT, _Traits>::size_type + basic_string_view<_CharT, _Traits>:: + rfind(const _CharT* __str, size_type __pos, size_type __n) const noexcept + { + gdb_assert (__str != nullptr || __n == 0); + + if (__n <= this->_M_len) + { + __pos = std::min(size_type(this->_M_len - __n), __pos); + do + { + if (traits_type::compare(this->_M_str + __pos, __str, __n) == 0) + return __pos; + } + while (__pos-- > 0); + } + return npos; + } + + template + /*constexpr*/ typename basic_string_view<_CharT, _Traits>::size_type + basic_string_view<_CharT, _Traits>:: + rfind(_CharT __c, size_type __pos) const noexcept + { + size_type __size = this->_M_len; + if (__size > 0) + { + if (--__size > __pos) + __size = __pos; + for (++__size; __size-- > 0; ) + if (traits_type::eq(this->_M_str[__size], __c)) + return __size; + } + return npos; + } + + template + /*constexpr*/ typename basic_string_view<_CharT, _Traits>::size_type + basic_string_view<_CharT, _Traits>:: + find_first_of(const _CharT* __str, size_type __pos, size_type __n) const + { + gdb_assert (__str != nullptr || __n == 0); + for (; __n && __pos < this->_M_len; ++__pos) + { + const _CharT* __p = traits_type::find(__str, __n, + this->_M_str[__pos]); + if (__p) + return __pos; + } + return npos; + } + + template + /*constexpr*/ typename basic_string_view<_CharT, _Traits>::size_type + basic_string_view<_CharT, _Traits>:: + find_last_of(const _CharT* __str, size_type __pos, size_type __n) const + { + gdb_assert (__str != nullptr || __n == 0); + size_type __size = this->size(); + if (__size && __n) + { + if (--__size > __pos) + __size = __pos; + do + { + if (traits_type::find(__str, __n, this->_M_str[__size])) + return __size; + } + while (__size-- != 0); + } + return npos; + } + + template + /*constexpr*/ typename basic_string_view<_CharT, _Traits>::size_type + basic_string_view<_CharT, _Traits>:: + find_first_not_of(const _CharT* __str, size_type __pos, size_type __n) const + { + gdb_assert (__str != nullptr || __n == 0); + for (; __pos < this->_M_len; ++__pos) + if (!traits_type::find(__str, __n, this->_M_str[__pos])) + return __pos; + return npos; + } + + template + /*constexpr*/ typename basic_string_view<_CharT, _Traits>::size_type + basic_string_view<_CharT, _Traits>:: + find_first_not_of(_CharT __c, size_type __pos) const noexcept + { + for (; __pos < this->_M_len; ++__pos) + if (!traits_type::eq(this->_M_str[__pos], __c)) + return __pos; + return npos; + } + + template + /*constexpr*/ typename basic_string_view<_CharT, _Traits>::size_type + basic_string_view<_CharT, _Traits>:: + find_last_not_of(const _CharT* __str, size_type __pos, size_type __n) const + { + gdb_assert (__str != nullptr || __n == 0); + size_type __size = this->_M_len; + if (__size) + { + if (--__size > __pos) + __size = __pos; + do + { + if (!traits_type::find(__str, __n, this->_M_str[__size])) + return __size; + } + while (__size--); + } + return npos; + } + + template + /*constexpr*/ typename basic_string_view<_CharT, _Traits>::size_type + basic_string_view<_CharT, _Traits>:: + find_last_not_of(_CharT __c, size_type __pos) const noexcept + { + size_type __size = this->_M_len; + if (__size) + { + if (--__size > __pos) + __size = __pos; + do + { + if (!traits_type::eq(this->_M_str[__size], __c)) + return __size; + } + while (__size--); + } + return npos; + } +} // namespace gdb + +#endif // GDB_STRING_VIEW_TCC diff -Nru gdb-8.1/gdb/common/gdb_tilde_expand.c gdb-8.2/gdb/common/gdb_tilde_expand.c --- gdb-8.1/gdb/common/gdb_tilde_expand.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/gdb_tilde_expand.c 2018-07-31 14:47:06.000000000 +0000 @@ -80,3 +80,16 @@ return expanded_dir; } + +/* See common/gdb_tilde_expand.h. */ + +gdb::unique_xmalloc_ptr +gdb_tilde_expand_up (const char *dir) +{ + gdb_glob glob (dir, GLOB_TILDE_CHECK, NULL); + + gdb_assert (glob.pathc () > 0); + /* "glob" may return more than one match to the path provided by the + user, but we are only interested in the first match. */ + return gdb::unique_xmalloc_ptr (xstrdup (glob.pathv ()[0])); +} diff -Nru gdb-8.1/gdb/common/gdb_tilde_expand.h gdb-8.2/gdb/common/gdb_tilde_expand.h --- gdb-8.1/gdb/common/gdb_tilde_expand.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/gdb_tilde_expand.h 2018-07-31 14:47:06.000000000 +0000 @@ -24,4 +24,8 @@ the full path. */ extern std::string gdb_tilde_expand (const char *dir); +/* Same as GDB_TILDE_EXPAND, but return the full path as a + gdb::unique_xmalloc_ptr. */ +extern gdb::unique_xmalloc_ptr gdb_tilde_expand_up (const char *dir); + #endif /* ! GDB_TILDE_EXPAND_H */ diff -Nru gdb-8.1/gdb/common/gdb_vecs.c gdb-8.2/gdb/common/gdb_vecs.c --- gdb-8.1/gdb/common/gdb_vecs.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/gdb_vecs.c 2018-09-05 07:27:13.000000000 +0000 @@ -21,30 +21,13 @@ #include "gdb_vecs.h" #include "host-defs.h" -/* Call xfree for each element of CHAR_PTR_VEC and final VEC_free for - CHAR_PTR_VEC itself. - - You must not modify CHAR_PTR_VEC after it got registered with this function - by make_cleanup as the CHAR_PTR_VEC base address may change on its updates. - Contrary to VEC_free this function does not (cannot) clear the pointer. */ - -void -free_char_ptr_vec (VEC (char_ptr) *char_ptr_vec) -{ - int ix; - char *name; - - for (ix = 0; VEC_iterate (char_ptr, char_ptr_vec, ix, name); ++ix) - xfree (name); - VEC_free (char_ptr, char_ptr_vec); -} - /* Worker function to split character delimiter separated string of fields - STR into a CHAR_PTR_VEC. */ + STR into a char pointer vector. */ static void -delim_string_to_char_ptr_vec_append (VEC (char_ptr) **vecp, - const char *str, char delimiter) +delim_string_to_char_ptr_vec_append + (std::vector> *vecp, const char *str, + char delimiter) { do { @@ -64,49 +47,40 @@ this_field = (char *) xmalloc (this_len + 1); memcpy (this_field, str, this_len); this_field[this_len] = '\0'; - VEC_safe_push (char_ptr, *vecp, this_field); + vecp->emplace_back (this_field); str = next_field; } while (str != NULL); } -/* Split STR, a list of DELIMITER-separated fields, into a CHAR_PTR_VEC. - - You may modify the returned strings. - Read free_char_ptr_vec for its cleanup. */ +/* See gdb_vecs.h. */ -VEC (char_ptr) * +std::vector> delim_string_to_char_ptr_vec (const char *str, char delimiter) { - VEC (char_ptr) *retval = NULL; + std::vector> retval; delim_string_to_char_ptr_vec_append (&retval, str, delimiter); return retval; } -/* Extended version of dirnames_to_char_ptr_vec - additionally if *VECP is - non-NULL the new list elements from DIRNAMES are appended to the existing - *VECP list of entries. *VECP address will be updated by this call. */ +/* See gdb_vecs.h. */ void -dirnames_to_char_ptr_vec_append (VEC (char_ptr) **vecp, const char *dirnames) +dirnames_to_char_ptr_vec_append + (std::vector> *vecp, const char *dirnames) { delim_string_to_char_ptr_vec_append (vecp, dirnames, DIRNAME_SEPARATOR); } -/* Split DIRNAMES by DIRNAME_SEPARATOR delimiter and return a list of all the - elements in their original order. For empty string ("") DIRNAMES return - list of one empty string ("") element. - - You may modify the returned strings. - Read free_char_ptr_vec for its cleanup. */ +/* See gdb_vecs.h. */ -VEC (char_ptr) * +std::vector> dirnames_to_char_ptr_vec (const char *dirnames) { - VEC (char_ptr) *retval = NULL; + std::vector> retval; dirnames_to_char_ptr_vec_append (&retval, dirnames); diff -Nru gdb-8.1/gdb/common/gdb_vecs.h gdb-8.2/gdb/common/gdb_vecs.h --- gdb-8.1/gdb/common/gdb_vecs.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/gdb_vecs.h 2018-09-05 07:27:13.000000000 +0000 @@ -22,24 +22,68 @@ #include "vec.h" -typedef char *char_ptr; -typedef const char *const_char_ptr; +/* Split STR, a list of DELIMITER-separated fields, into a char pointer vector. -DEF_VEC_P (char_ptr); + You may modify the returned strings. */ -DEF_VEC_P (const_char_ptr); +extern std::vector> + delim_string_to_char_ptr_vec (const char *str, char delimiter); -extern void free_char_ptr_vec (VEC (char_ptr) *char_ptr_vec); +/* Like dirnames_to_char_ptr_vec, but append the directories to *VECP. */ -extern struct cleanup * - make_cleanup_free_char_ptr_vec (VEC (char_ptr) *char_ptr_vec); +extern void dirnames_to_char_ptr_vec_append + (std::vector> *vecp, const char *dirnames); -extern VEC (char_ptr) *delim_string_to_char_ptr_vec (const char *str, - char delimiter); +/* Split DIRNAMES by DIRNAME_SEPARATOR delimiter and return a list of all the + elements in their original order. For empty string ("") DIRNAMES return + list of one empty string ("") element. -extern void dirnames_to_char_ptr_vec_append (VEC (char_ptr) **vecp, - const char *dirnames); + You may modify the returned strings. */ -extern VEC (char_ptr) *dirnames_to_char_ptr_vec (const char *dirnames); +extern std::vector> + dirnames_to_char_ptr_vec (const char *dirnames); + +/* Remove the element pointed by iterator IT from VEC, not preserving the order + of the remaining elements. Return the removed element. */ + +template +T +unordered_remove (std::vector &vec, typename std::vector::iterator it) +{ + gdb_assert (it >= vec.begin () && it < vec.end ()); + + T removed = std::move (*it); + *it = std::move (vec.back ()); + vec.pop_back (); + + return removed; +} + +/* Remove the element at position IX from VEC, not preserving the order of the + remaining elements. Return the removed element. */ + +template +T +unordered_remove (std::vector &vec, typename std::vector::size_type ix) +{ + gdb_assert (ix < vec.size ()); + + return unordered_remove (vec, vec.begin () + ix); +} + +/* Remove the element at position IX from VEC, preserving the order the + remaining elements. Return the removed element. */ + +template +T +ordered_remove (std::vector &vec, typename std::vector::size_type ix) +{ + gdb_assert (ix < vec.size ()); + + T removed = std::move (vec[ix]); + vec.erase (vec.begin () + ix); + + return removed; +} #endif /* GDB_VECS_H */ diff -Nru gdb-8.1/gdb/common/observable.h gdb-8.2/gdb/common/observable.h --- gdb-8.1/gdb/common/observable.h 1970-01-01 00:00:00.000000000 +0000 +++ gdb-8.2/gdb/common/observable.h 2018-09-05 07:27:13.000000000 +0000 @@ -0,0 +1,119 @@ +/* Observers + + Copyright (C) 2016-2018 Free Software Foundation, Inc. + + This file is part of GDB. + + 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 3 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, see . */ + +#if !defined (GDB_COMMON_OBSERVABLE_H) +#define GDB_COMMON_OBSERVABLE_H + +#include +#include +#include + +namespace gdb +{ + +namespace observers +{ + +extern unsigned int observer_debug; + +/* An observer is an entity which is interested in being notified + when GDB reaches certain states, or certain events occur in GDB. + The entity being observed is called the observable. To receive + notifications, the observer attaches a callback to the observable. + One observable can have several observers. + + The observer implementation is also currently not reentrant. In + particular, it is therefore not possible to call the attach or + detach routines during a notification. */ + +/* The type of a key that can be passed to attach, which can be passed + to detach to remove associated observers. Tokens have address + identity, and are thus usually const globals. */ +struct token +{ + token () = default; + + DISABLE_COPY_AND_ASSIGN (token); +}; + +template +class observable +{ +public: + + typedef std::function func_type; + + explicit observable (const char *name) + : m_name (name) + { + } + + DISABLE_COPY_AND_ASSIGN (observable); + + /* Attach F as an observer to this observable. F cannot be + detached. */ + void attach (const func_type &f) + { + m_observers.emplace_back (nullptr, f); + } + + /* Attach F as an observer to this observable. T is a reference to + a token that can be used to later remove F. */ + void attach (const func_type &f, const token &t) + { + m_observers.emplace_back (&t, f); + } + + /* Remove observers associated with T from this observable. T is + the token that was previously passed to any number of "attach" + calls. */ + void detach (const token &t) + { + auto iter = std::remove_if (m_observers.begin (), + m_observers.end (), + [&] (const std::pair &e) + { + return e.first == &t; + }); + + m_observers.erase (iter, m_observers.end ()); + } + + /* Notify all observers that are attached to this observable. */ + void notify (T... args) const + { + if (observer_debug) + fprintf_unfiltered (gdb_stdlog, "observable %s notify() called\n", + m_name); + for (auto &&e : m_observers) + e.second (args...); + } + +private: + + std::vector> m_observers; + const char *m_name; +}; + +} /* namespace observers */ + +} /* namespace gdb */ + +#endif /* GDB_COMMON_OBSERVABLE_H */ diff -Nru gdb-8.1/gdb/common/pathstuff.c gdb-8.2/gdb/common/pathstuff.c --- gdb-8.1/gdb/common/pathstuff.c 1970-01-01 00:00:00.000000000 +0000 +++ gdb-8.2/gdb/common/pathstuff.c 2018-09-05 07:44:28.000000000 +0000 @@ -0,0 +1,160 @@ +/* Path manipulation routines for GDB and gdbserver. + + Copyright (C) 1986-2018 Free Software Foundation, Inc. + + This file is part of GDB. + + 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 3 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, see . */ + +#include "common-defs.h" +#include "pathstuff.h" +#include "host-defs.h" +#include "filenames.h" +#include "gdb_tilde_expand.h" + +#ifdef USE_WIN32API +#include +#endif + +/* See common/pathstuff.h. */ + +gdb::unique_xmalloc_ptr +gdb_realpath (const char *filename) +{ +/* On most hosts, we rely on canonicalize_file_name to compute + the FILENAME's realpath. + + But the situation is slightly more complex on Windows, due to some + versions of GCC which were reported to generate paths where + backlashes (the directory separator) were doubled. For instance: + c:\\some\\double\\slashes\\dir + ... instead of ... + c:\some\double\slashes\dir + Those double-slashes were getting in the way when comparing paths, + for instance when trying to insert a breakpoint as follow: + (gdb) b c:/some/double/slashes/dir/foo.c:4 + No source file named c:/some/double/slashes/dir/foo.c:4. + (gdb) b c:\some\double\slashes\dir\foo.c:4 + No source file named c:\some\double\slashes\dir\foo.c:4. + To prevent this from happening, we need this function to always + strip those extra backslashes. While canonicalize_file_name does + perform this simplification, it only works when the path is valid. + Since the simplification would be useful even if the path is not + valid (one can always set a breakpoint on a file, even if the file + does not exist locally), we rely instead on GetFullPathName to + perform the canonicalization. */ + +#if defined (_WIN32) + { + char buf[MAX_PATH]; + DWORD len = GetFullPathName (filename, MAX_PATH, buf, NULL); + + /* The file system is case-insensitive but case-preserving. + So it is important we do not lowercase the path. Otherwise, + we might not be able to display the original casing in a given + path. */ + if (len > 0 && len < MAX_PATH) + return gdb::unique_xmalloc_ptr (xstrdup (buf)); + } +#else + { + char *rp = canonicalize_file_name (filename); + + if (rp != NULL) + return gdb::unique_xmalloc_ptr (rp); + } +#endif + + /* This system is a lost cause, just dup the buffer. */ + return gdb::unique_xmalloc_ptr (xstrdup (filename)); +} + +/* See common/pathstuff.h. */ + +gdb::unique_xmalloc_ptr +gdb_realpath_keepfile (const char *filename) +{ + const char *base_name = lbasename (filename); + char *dir_name; + char *result; + + /* Extract the basename of filename, and return immediately + a copy of filename if it does not contain any directory prefix. */ + if (base_name == filename) + return gdb::unique_xmalloc_ptr (xstrdup (filename)); + + dir_name = (char *) alloca ((size_t) (base_name - filename + 2)); + /* Allocate enough space to store the dir_name + plus one extra + character sometimes needed under Windows (see below), and + then the closing \000 character. */ + strncpy (dir_name, filename, base_name - filename); + dir_name[base_name - filename] = '\000'; + +#ifdef HAVE_DOS_BASED_FILE_SYSTEM + /* We need to be careful when filename is of the form 'd:foo', which + is equivalent of d:./foo, which is totally different from d:/foo. */ + if (strlen (dir_name) == 2 && isalpha (dir_name[0]) && dir_name[1] == ':') + { + dir_name[2] = '.'; + dir_name[3] = '\000'; + } +#endif + + /* Canonicalize the directory prefix, and build the resulting + filename. If the dirname realpath already contains an ending + directory separator, avoid doubling it. */ + gdb::unique_xmalloc_ptr path_storage = gdb_realpath (dir_name); + const char *real_path = path_storage.get (); + if (IS_DIR_SEPARATOR (real_path[strlen (real_path) - 1])) + result = concat (real_path, base_name, (char *) NULL); + else + result = concat (real_path, SLASH_STRING, base_name, (char *) NULL); + + return gdb::unique_xmalloc_ptr (result); +} + +/* See common/pathstuff.h. */ + +gdb::unique_xmalloc_ptr +gdb_abspath (const char *path) +{ + gdb_assert (path != NULL && path[0] != '\0'); + + if (path[0] == '~') + return gdb_tilde_expand_up (path); + + if (IS_ABSOLUTE_PATH (path)) + return gdb::unique_xmalloc_ptr (xstrdup (path)); + + /* Beware the // my son, the Emacs barfs, the botch that catch... */ + return gdb::unique_xmalloc_ptr + (concat (current_directory, + IS_DIR_SEPARATOR (current_directory[strlen (current_directory) - 1]) + ? "" : SLASH_STRING, + path, (char *) NULL)); +} + +/* See common/pathstuff.h. */ + +bool +contains_dir_separator (const char *path) +{ + for (; *path != '\0'; path++) + { + if (IS_DIR_SEPARATOR (*path)) + return true; + } + + return false; +} diff -Nru gdb-8.1/gdb/common/pathstuff.h gdb-8.2/gdb/common/pathstuff.h --- gdb-8.1/gdb/common/pathstuff.h 1970-01-01 00:00:00.000000000 +0000 +++ gdb-8.2/gdb/common/pathstuff.h 2018-09-05 07:44:28.000000000 +0000 @@ -0,0 +1,53 @@ +/* Path manipulation routines for GDB and gdbserver. + + Copyright (C) 1986-2018 Free Software Foundation, Inc. + + This file is part of GDB. + + 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 3 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, see . */ + +#ifndef PATHSTUFF_H +#define PATHSTUFF_H + +/* Path utilities. */ + +/* Return the real path of FILENAME, expanding all the symbolic links. + + Contrary to "gdb_abspath", this function does not use + CURRENT_DIRECTORY for path expansion. Instead, it relies on the + current working directory (CWD) of GDB or gdbserver. */ + +extern gdb::unique_xmalloc_ptr gdb_realpath (const char *filename); + +/* Return a copy of FILENAME, with its directory prefix canonicalized + by gdb_realpath. */ + +extern gdb::unique_xmalloc_ptr + gdb_realpath_keepfile (const char *filename); + +/* Return PATH in absolute form, performing tilde-expansion if necessary. + PATH cannot be NULL or the empty string. + This does not resolve symlinks however, use gdb_realpath for that. + + Contrary to "gdb_realpath", this function uses CURRENT_DIRECTORY + for the path expansion. This may lead to scenarios the current + working directory (CWD) is different than CURRENT_DIRECTORY. */ + +extern gdb::unique_xmalloc_ptr gdb_abspath (const char *path); + +/* Return whether PATH contains a directory separator character. */ + +extern bool contains_dir_separator (const char *path); + +#endif /* PATHSTUFF_H */ diff -Nru gdb-8.1/gdb/common/poison.h gdb-8.2/gdb/common/poison.h --- gdb-8.1/gdb/common/poison.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/poison.h 2018-09-05 07:27:13.000000000 +0000 @@ -21,6 +21,7 @@ #define COMMON_POISON_H #include "traits.h" +#include "obstack.h" /* Poison memset of non-POD types. The idea is catching invalid initialization of non-POD structs that is easy to be introduced as @@ -88,7 +89,11 @@ objects that require new/delete. */ template -using IsMallocable = std::is_pod; +#if HAVE_IS_TRIVIALLY_CONSTRUCTIBLE +using IsMallocable = std::is_trivially_constructible; +#else +using IsMallocable = std::true_type; +#endif template using IsFreeable = gdb::Or, std::is_void>; @@ -216,4 +221,28 @@ #undef XRESIZEVAR #define XRESIZEVAR(T, P, S) xresizevar (P, S) +template +static T * +xobnew (obstack *ob) +{ + static_assert (IsMallocable::value, "Trying to use XOBNEW with a \ +non-POD data type."); + return XOBNEW (ob, T); +} + +#undef XOBNEW +#define XOBNEW(O, T) xobnew (O) + +template +static T * +xobnewvec (obstack *ob, size_t n) +{ + static_assert (IsMallocable::value, "Trying to use XOBNEWVEC with a \ +non-POD data type."); + return XOBNEWVEC (ob, T, n); +} + +#undef XOBNEWVEC +#define XOBNEWVEC(O, T, N) xobnewvec (O, N) + #endif /* COMMON_POISON_H */ diff -Nru gdb-8.1/gdb/common/ptid.c gdb-8.2/gdb/common/ptid.c --- gdb-8.1/gdb/common/ptid.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/ptid.c 2018-09-05 07:27:13.000000000 +0000 @@ -24,83 +24,3 @@ ptid_t null_ptid = ptid_t::make_null (); ptid_t minus_one_ptid = ptid_t::make_minus_one (); - -/* See ptid.h. */ - -ptid_t -ptid_build (int pid, long lwp, long tid) -{ - return ptid_t (pid, lwp, tid); -} - -/* See ptid.h. */ - -ptid_t -pid_to_ptid (int pid) -{ - return ptid_t (pid); -} - -/* See ptid.h. */ - -int -ptid_get_pid (const ptid_t &ptid) -{ - return ptid.pid (); -} - -/* See ptid.h. */ - -long -ptid_get_lwp (const ptid_t &ptid) -{ - return ptid.lwp (); -} - -/* See ptid.h. */ - -long -ptid_get_tid (const ptid_t &ptid) -{ - return ptid.tid (); -} - -/* See ptid.h. */ - -int -ptid_equal (const ptid_t &ptid1, const ptid_t &ptid2) -{ - return ptid1 == ptid2; -} - -/* See ptid.h. */ - -int -ptid_is_pid (const ptid_t &ptid) -{ - return ptid.is_pid (); -} - -/* See ptid.h. */ - -int -ptid_lwp_p (const ptid_t &ptid) -{ - return ptid.lwp_p (); -} - -/* See ptid.h. */ - -int -ptid_tid_p (const ptid_t &ptid) -{ - return ptid.tid_p (); -} - -/* See ptid.h. */ - -int -ptid_match (const ptid_t &ptid, const ptid_t &filter) -{ - return ptid.matches (filter); -} diff -Nru gdb-8.1/gdb/common/ptid.h gdb-8.2/gdb/common/ptid.h --- gdb-8.1/gdb/common/ptid.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/ptid.h 2018-09-05 07:27:13.000000000 +0000 @@ -152,48 +152,4 @@ extern ptid_t minus_one_ptid; - -/* The following functions are kept for backwards compatibility. The use of - the ptid_t methods is preferred. */ - -/* See ptid_t::ptid_t. */ - -extern ptid_t ptid_build (int pid, long lwp, long tid); - -/* See ptid_t::ptid_t. */ - -extern ptid_t pid_to_ptid (int pid); - -/* See ptid_t::pid. */ - -extern int ptid_get_pid (const ptid_t &ptid); - -/* See ptid_t::lwp. */ - -extern long ptid_get_lwp (const ptid_t &ptid); - -/* See ptid_t::tid. */ - -extern long ptid_get_tid (const ptid_t &ptid); - -/* See ptid_t::operator== and ptid_t::operator!=. */ - -extern int ptid_equal (const ptid_t &ptid1, const ptid_t &ptid2); - -/* See ptid_t::is_pid. */ - -extern int ptid_is_pid (const ptid_t &ptid); - -/* See ptid_t::lwp_p. */ - -extern int ptid_lwp_p (const ptid_t &ptid); - -/* See ptid_t::tid_p. */ - -extern int ptid_tid_p (const ptid_t &ptid); - -/* See ptid_t::matches. */ - -extern int ptid_match (const ptid_t &ptid, const ptid_t &filter); - #endif diff -Nru gdb-8.1/gdb/common/refcounted-object.h gdb-8.2/gdb/common/refcounted-object.h --- gdb-8.1/gdb/common/refcounted-object.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/refcounted-object.h 2018-09-05 07:27:13.000000000 +0000 @@ -51,4 +51,20 @@ int m_refcount = 0; }; +/* A policy class to interface gdb::ref_ptr with a + refcounted_object. */ + +struct refcounted_object_ref_policy +{ + static void incref (refcounted_object *ptr) + { + ptr->incref (); + } + + static void decref (refcounted_object *ptr) + { + ptr->decref (); + } +}; + #endif /* REFCOUNTED_OBJECT_H */ diff -Nru gdb-8.1/gdb/common/rsp-low.c gdb-8.2/gdb/common/rsp-low.c --- gdb-8.1/gdb/common/rsp-low.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/rsp-low.c 2018-09-05 07:27:13.000000000 +0000 @@ -148,11 +148,18 @@ std::string hex2str (const char *hex) { + return hex2str (hex, strlen (hex)); +} + +/* See rsp-low.h. */ + +std::string +hex2str (const char *hex, int count) +{ std::string ret; - size_t len = strlen (hex); - ret.reserve (len / 2); - for (size_t i = 0; i < len; ++i) + ret.reserve (count); + for (size_t i = 0; i < count; ++i) { if (hex[0] == '\0' || hex[1] == '\0') { diff -Nru gdb-8.1/gdb/common/rsp-low.h gdb-8.2/gdb/common/rsp-low.h --- gdb-8.1/gdb/common/rsp-low.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/rsp-low.h 2018-09-05 07:27:13.000000000 +0000 @@ -62,6 +62,10 @@ extern std::string hex2str (const char *hex); +/* Like hex2bin, but return a std::string. */ + +extern std::string hex2str (const char *hex, int count); + /* Convert some bytes to a hexadecimal representation. BIN holds the bytes to convert. COUNT says how many bytes to convert. The resulting characters are stored in HEX, followed by a NUL diff -Nru gdb-8.1/gdb/common/scoped_fd.h gdb-8.2/gdb/common/scoped_fd.h --- gdb-8.1/gdb/common/scoped_fd.h 1970-01-01 00:00:00.000000000 +0000 +++ gdb-8.2/gdb/common/scoped_fd.h 2018-09-05 07:27:13.000000000 +0000 @@ -0,0 +1,60 @@ +/* scoped_fd, automatically close a file descriptor + + Copyright (C) 2018 Free Software Foundation, Inc. + + This file is part of GDB. + + 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 3 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, see . */ + +#ifndef SCOPED_FD_H +#define SCOPED_FD_H + +#include "config.h" + +#ifdef HAVE_UNISTD_H + +#include + +/* A smart-pointer-like class to automatically close a file descriptor. */ + +class scoped_fd +{ +public: + explicit scoped_fd (int fd = -1) noexcept : m_fd (fd) {} + ~scoped_fd () + { + if (m_fd >= 0) + close (m_fd); + } + + DISABLE_COPY_AND_ASSIGN (scoped_fd); + + int release () noexcept + { + int fd = m_fd; + m_fd = -1; + return fd; + } + + int get () const noexcept + { + return m_fd; + } + +private: + int m_fd; +}; + +#endif /* HAVE_UNISTD_H */ +#endif /* SCOPED_FD_H */ diff -Nru gdb-8.1/gdb/common/scoped_mmap.h gdb-8.2/gdb/common/scoped_mmap.h --- gdb-8.1/gdb/common/scoped_mmap.h 1970-01-01 00:00:00.000000000 +0000 +++ gdb-8.2/gdb/common/scoped_mmap.h 2018-09-05 07:44:28.000000000 +0000 @@ -0,0 +1,76 @@ +/* scoped_mmap, automatically unmap files + + Copyright (C) 2018 Free Software Foundation, Inc. + + This file is part of GDB. + + 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 3 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, see . */ + +#ifndef SCOPED_MMAP_H +#define SCOPED_MMAP_H + +#include "config.h" + +#ifdef HAVE_SYS_MMAN_H + +#include + +/* A smart-pointer-like class to mmap() and automatically munmap() a memory + mapping. */ + +class scoped_mmap +{ +public: + scoped_mmap () noexcept : m_mem (MAP_FAILED), m_length (0) {} + scoped_mmap (void *addr, size_t length, int prot, int flags, int fd, + off_t offset) noexcept : m_length (length) + { + m_mem = mmap (addr, m_length, prot, flags, fd, offset); + } + ~scoped_mmap () + { + if (m_mem != MAP_FAILED) + munmap (m_mem, m_length); + } + + DISABLE_COPY_AND_ASSIGN (scoped_mmap); + + void *release () noexcept + { + void *mem = m_mem; + m_mem = MAP_FAILED; + m_length = 0; + return mem; + } + + void reset (void *addr, size_t length, int prot, int flags, int fd, + off_t offset) noexcept + { + if (m_mem != MAP_FAILED) + munmap (m_mem, m_length); + + m_length = length; + m_mem = mmap (addr, m_length, prot, flags, fd, offset); + } + + size_t size () const noexcept { return m_length; } + void *get () const noexcept { return m_mem; } + +private: + void *m_mem; + size_t m_length; +}; + +#endif /* HAVE_SYS_MMAN_H */ +#endif /* SCOPED_MMAP_H */ diff -Nru gdb-8.1/gdb/common/signals-state-save-restore.c gdb-8.2/gdb/common/signals-state-save-restore.c --- gdb-8.1/gdb/common/signals-state-save-restore.c 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/gdb/common/signals-state-save-restore.c 2018-09-05 07:27:13.000000000 +0000 @@ -72,8 +72,7 @@ found_preinstalled = true; /* Use raw fprintf here because we're being called in early - startup, because GDB's filtered streams are are - created. */ + startup, before GDB's filtered streams are created. */ fprintf (stderr, _("warning: Found custom handler for signal " "%d (%s) preinstalled.\n"), i, diff -Nru gdb-8.1/gdb/common/tdesc.c gdb-8.2/gdb/common/tdesc.c --- gdb-8.1/gdb/common/tdesc.c 1970-01-01 00:00:00.000000000 +0000 +++ gdb-8.2/gdb/common/tdesc.c 2018-09-05 07:44:28.000000000 +0000 @@ -0,0 +1,401 @@ +/* Target description support for GDB. + + Copyright (C) 2018 Free Software Foundation, Inc. + + This file is part of GDB. + + 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 3 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, see . */ + +#include "common-defs.h" +#include "common/tdesc.h" + +tdesc_reg::tdesc_reg (struct tdesc_feature *feature, const std::string &name_, + int regnum, int save_restore_, const char *group_, + int bitsize_, const char *type_) + : name (name_), target_regnum (regnum), + save_restore (save_restore_), + group (group_ != NULL ? group_ : ""), + bitsize (bitsize_), + type (type_ != NULL ? type_ : "") +{ + /* If the register's type is target-defined, look it up now. We may not + have easy access to the containing feature when we want it later. */ + tdesc_type = tdesc_named_type (feature, type.c_str ()); +} + +/* Predefined types. */ +static tdesc_type_builtin tdesc_predefined_types[] = +{ + { "bool", TDESC_TYPE_BOOL }, + { "int8", TDESC_TYPE_INT8 }, + { "int16", TDESC_TYPE_INT16 }, + { "int32", TDESC_TYPE_INT32 }, + { "int64", TDESC_TYPE_INT64 }, + { "int128", TDESC_TYPE_INT128 }, + { "uint8", TDESC_TYPE_UINT8 }, + { "uint16", TDESC_TYPE_UINT16 }, + { "uint32", TDESC_TYPE_UINT32 }, + { "uint64", TDESC_TYPE_UINT64 }, + { "uint128", TDESC_TYPE_UINT128 }, + { "code_ptr", TDESC_TYPE_CODE_PTR }, + { "data_ptr", TDESC_TYPE_DATA_PTR }, + { "ieee_single", TDESC_TYPE_IEEE_SINGLE }, + { "ieee_double", TDESC_TYPE_IEEE_DOUBLE }, + { "arm_fpa_ext", TDESC_TYPE_ARM_FPA_EXT }, + { "i387_ext", TDESC_TYPE_I387_EXT } +}; + +void tdesc_feature::accept (tdesc_element_visitor &v) const +{ + v.visit_pre (this); + + for (const tdesc_type_up &type : types) + type->accept (v); + + for (const tdesc_reg_up ® : registers) + reg->accept (v); + + v.visit_post (this); +} + +bool tdesc_feature::operator== (const tdesc_feature &other) const +{ + if (name != other.name) + return false; + + if (registers.size () != other.registers.size ()) + return false; + + for (int ix = 0; ix < registers.size (); ix++) + { + const tdesc_reg_up ®1 = registers[ix]; + const tdesc_reg_up ®2 = other.registers[ix]; + + if (reg1 != reg2 && *reg1 != *reg2) + return false; + } + + if (types.size () != other.types.size ()) + return false; + + for (int ix = 0; ix < types.size (); ix++) + { + const tdesc_type_up &type1 = types[ix]; + const tdesc_type_up &type2 = other.types[ix]; + + if (type1 != type2 && *type1 != *type2) + return false; + } + + return true; +} + +/* Lookup a predefined type. */ + +static struct tdesc_type * +tdesc_predefined_type (enum tdesc_type_kind kind) +{ + for (int ix = 0; ix < ARRAY_SIZE (tdesc_predefined_types); ix++) + if (tdesc_predefined_types[ix].kind == kind) + return &tdesc_predefined_types[ix]; + + gdb_assert_not_reached ("bad predefined tdesc type"); +} + +/* See common/tdesc.h. */ + +struct tdesc_type * +tdesc_named_type (const struct tdesc_feature *feature, const char *id) +{ + /* First try target-defined types. */ + for (const tdesc_type_up &type : feature->types) + if (type->name == id) + return type.get (); + + /* Next try the predefined types. */ + for (int ix = 0; ix < ARRAY_SIZE (tdesc_predefined_types); ix++) + if (tdesc_predefined_types[ix].name == id) + return &tdesc_predefined_types[ix]; + + return NULL; +} + +/* See common/tdesc.h. */ + +void +tdesc_create_reg (struct tdesc_feature *feature, const char *name, + int regnum, int save_restore, const char *group, + int bitsize, const char *type) +{ + tdesc_reg *reg = new tdesc_reg (feature, name, regnum, save_restore, + group, bitsize, type); + + feature->registers.emplace_back (reg); +} + +/* See common/tdesc.h. */ + +struct tdesc_type * +tdesc_create_vector (struct tdesc_feature *feature, const char *name, + struct tdesc_type *field_type, int count) +{ + tdesc_type_vector *type = new tdesc_type_vector (name, field_type, count); + feature->types.emplace_back (type); + + return type; +} + +/* See common/tdesc.h. */ + +tdesc_type_with_fields * +tdesc_create_struct (struct tdesc_feature *feature, const char *name) +{ + tdesc_type_with_fields *type + = new tdesc_type_with_fields (name, TDESC_TYPE_STRUCT); + feature->types.emplace_back (type); + + return type; +} + +/* See common/tdesc.h. */ + +void +tdesc_set_struct_size (tdesc_type_with_fields *type, int size) +{ + gdb_assert (type->kind == TDESC_TYPE_STRUCT); + gdb_assert (size > 0); + type->size = size; +} + +/* See common/tdesc.h. */ + +tdesc_type_with_fields * +tdesc_create_union (struct tdesc_feature *feature, const char *name) +{ + tdesc_type_with_fields *type + = new tdesc_type_with_fields (name, TDESC_TYPE_UNION); + feature->types.emplace_back (type); + + return type; +} + +/* See common/tdesc.h. */ + +tdesc_type_with_fields * +tdesc_create_flags (struct tdesc_feature *feature, const char *name, + int size) +{ + gdb_assert (size > 0); + + tdesc_type_with_fields *type + = new tdesc_type_with_fields (name, TDESC_TYPE_FLAGS, size); + feature->types.emplace_back (type); + + return type; +} + +/* See common/tdesc.h. */ + +tdesc_type_with_fields * +tdesc_create_enum (struct tdesc_feature *feature, const char *name, + int size) +{ + gdb_assert (size > 0); + + tdesc_type_with_fields *type + = new tdesc_type_with_fields (name, TDESC_TYPE_ENUM, size); + feature->types.emplace_back (type); + + return type; +} + +/* See common/tdesc.h. */ + +void +tdesc_add_field (tdesc_type_with_fields *type, const char *field_name, + struct tdesc_type *field_type) +{ + gdb_assert (type->kind == TDESC_TYPE_UNION + || type->kind == TDESC_TYPE_STRUCT); + + /* Initialize start and end so we know this is not a bit-field + when we print-c-tdesc. */ + type->fields.emplace_back (field_name, field_type, -1, -1); +} + +/* See common/tdesc.h. */ + +void +tdesc_add_typed_bitfield (tdesc_type_with_fields *type, const char *field_name, + int start, int end, struct tdesc_type *field_type) +{ + gdb_assert (type->kind == TDESC_TYPE_STRUCT + || type->kind == TDESC_TYPE_FLAGS); + gdb_assert (start >= 0 && end >= start); + + type->fields.emplace_back (field_name, field_type, start, end); +} + +/* See common/tdesc.h. */ + +void +tdesc_add_bitfield (tdesc_type_with_fields *type, const char *field_name, + int start, int end) +{ + struct tdesc_type *field_type; + + gdb_assert (start >= 0 && end >= start); + + if (type->size > 4) + field_type = tdesc_predefined_type (TDESC_TYPE_UINT64); + else + field_type = tdesc_predefined_type (TDESC_TYPE_UINT32); + + tdesc_add_typed_bitfield (type, field_name, start, end, field_type); +} + +/* See common/tdesc.h. */ + +void +tdesc_add_flag (tdesc_type_with_fields *type, int start, + const char *flag_name) +{ + gdb_assert (type->kind == TDESC_TYPE_FLAGS + || type->kind == TDESC_TYPE_STRUCT); + + type->fields.emplace_back (flag_name, + tdesc_predefined_type (TDESC_TYPE_BOOL), + start, start); +} + +/* See common/tdesc.h. */ + +void +tdesc_add_enum_value (tdesc_type_with_fields *type, int value, + const char *name) +{ + gdb_assert (type->kind == TDESC_TYPE_ENUM); + type->fields.emplace_back (name, + tdesc_predefined_type (TDESC_TYPE_INT32), + value, -1); +} + +void print_xml_feature::visit_pre (const tdesc_feature *e) +{ + string_appendf (*m_buffer, "\n", e->name.c_str ()); +} + +void print_xml_feature::visit_post (const tdesc_feature *e) +{ + string_appendf (*m_buffer, "\n"); +} + +void print_xml_feature::visit (const tdesc_type_builtin *t) +{ + error (_("xml output is not supported for type \"%s\"."), t->name.c_str ()); +} + +void print_xml_feature::visit (const tdesc_type_vector *t) +{ + string_appendf (*m_buffer, "\n", + t->name.c_str (), t->element_type->name.c_str (), t->count); +} + +void print_xml_feature::visit (const tdesc_type_with_fields *t) +{ + struct tdesc_type_field *f; + const static char *types[] = { "struct", "union", "flags", "enum" }; + + gdb_assert (t->kind >= TDESC_TYPE_STRUCT && t->kind <= TDESC_TYPE_ENUM); + + string_appendf (*m_buffer, + "<%s id=\"%s\"", types[t->kind - TDESC_TYPE_STRUCT], + t->name.c_str ()); + + switch (t->kind) + { + case TDESC_TYPE_STRUCT: + case TDESC_TYPE_FLAGS: + if (t->size > 0) + string_appendf (*m_buffer, " size=\"%d\"", t->size); + string_appendf (*m_buffer, ">\n"); + + for (const tdesc_type_field &f : t->fields) + { + string_appendf (*m_buffer, " \n", + f.type->name.c_str ()); + else + string_appendf (*m_buffer, "start=\"%d\" end=\"%d\"/>\n", f.start, + f.end); + } + break; + + case TDESC_TYPE_ENUM: + string_appendf (*m_buffer, ">\n"); + for (const tdesc_type_field &f : t->fields) + string_appendf (*m_buffer, " \n", + f.name.c_str (), f.start); + break; + + case TDESC_TYPE_UNION: + string_appendf (*m_buffer, ">\n"); + for (const tdesc_type_field &f : t->fields) + string_appendf (*m_buffer, " \n", + f.name.c_str (), f.type->name.c_str ()); + break; + + default: + error (_("xml output is not supported for type \"%s\"."), + t->name.c_str ()); + } + + string_appendf (*m_buffer, "\n", types[t->kind - TDESC_TYPE_STRUCT]); +} + +void print_xml_feature::visit (const tdesc_reg *r) +{ + string_appendf (*m_buffer, + "name.c_str (), r->bitsize, r->type.c_str (), + r->target_regnum); + + if (r->group.length () > 0) + string_appendf (*m_buffer, " group=\"%s\"", r->group.c_str ()); + + if (r->save_restore == 0) + string_appendf (*m_buffer, " save-restore=\"no\""); + + string_appendf (*m_buffer, "/>\n"); +} + +void print_xml_feature::visit_pre (const target_desc *e) +{ +#ifndef IN_PROCESS_AGENT + string_appendf (*m_buffer, "\n"); + string_appendf (*m_buffer, "\n"); + string_appendf (*m_buffer, "\n%s\n", + tdesc_architecture_name (e)); + + const char *osabi = tdesc_osabi_name (e); + if (osabi != nullptr) + string_appendf (*m_buffer, "%s", osabi); +#endif +} + +void print_xml_feature::visit_post (const target_desc *e) +{ + string_appendf (*m_buffer, "\n"); +} diff -Nru gdb-8.1/gdb/common/tdesc.h gdb-8.2/gdb/common/tdesc.h --- gdb-8.1/gdb/common/tdesc.h 1970-01-01 00:00:00.000000000 +0000 +++ gdb-8.2/gdb/common/tdesc.h 2018-09-05 07:27:13.000000000 +0000 @@ -0,0 +1,407 @@ +/* Copyright (C) 2006-2018 Free Software Foundation, Inc. + + This file is part of GDB. + + 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 3 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, see . */ + +#ifndef ARCH_TDESC_H +#define ARCH_TDESC_H 1 + +struct tdesc_feature; +struct tdesc_type; +struct tdesc_type_builtin; +struct tdesc_type_vector; +struct tdesc_type_with_fields; +struct tdesc_reg; +struct target_desc; + +/* The interface to visit different elements of target description. */ + +class tdesc_element_visitor +{ +public: + virtual void visit_pre (const target_desc *e) + {} + + virtual void visit_post (const target_desc *e) + {} + + virtual void visit_pre (const tdesc_feature *e) + {} + + virtual void visit_post (const tdesc_feature *e) + {} + + virtual void visit (const tdesc_type_builtin *e) + {} + + virtual void visit (const tdesc_type_vector *e) + {} + + virtual void visit (const tdesc_type_with_fields *e) + {} + + virtual void visit (const tdesc_reg *e) + {} +}; + +class tdesc_element +{ +public: + virtual void accept (tdesc_element_visitor &v) const = 0; +}; + +/* An individual register from a target description. */ + +struct tdesc_reg : tdesc_element +{ + tdesc_reg (struct tdesc_feature *feature, const std::string &name_, + int regnum, int save_restore_, const char *group_, + int bitsize_, const char *type_); + + virtual ~tdesc_reg () = default; + + DISABLE_COPY_AND_ASSIGN (tdesc_reg); + + /* The name of this register. In standard features, it may be + recognized by the architecture support code, or it may be purely + for the user. */ + std::string name; + + /* The register number used by this target to refer to this + register. This is used for remote p/P packets and to determine + the ordering of registers in the remote g/G packets. */ + long target_regnum; + + /* If this flag is set, GDB should save and restore this register + around calls to an inferior function. */ + int save_restore; + + /* The name of the register group containing this register, or empty + if the group should be automatically determined from the + register's type. If this is "general", "float", or "vector", the + corresponding "info" command should display this register's + value. It can be an arbitrary string, but should be limited to + alphanumeric characters and internal hyphens. Currently other + strings are ignored (treated as empty). */ + std::string group; + + /* The size of the register, in bits. */ + int bitsize; + + /* The type of the register. This string corresponds to either + a named type from the target description or a predefined + type from GDB. */ + std::string type; + + /* The target-described type corresponding to TYPE, if found. */ + struct tdesc_type *tdesc_type; + + void accept (tdesc_element_visitor &v) const override + { + v.visit (this); + } + + bool operator== (const tdesc_reg &other) const + { + return (name == other.name + && target_regnum == other.target_regnum + && save_restore == other.save_restore + && bitsize == other.bitsize + && group == other.group + && type == other.type); + } + + bool operator!= (const tdesc_reg &other) const + { + return !(*this == other); + } +}; + +typedef std::unique_ptr tdesc_reg_up; + +enum tdesc_type_kind +{ + /* Predefined types. */ + TDESC_TYPE_BOOL, + TDESC_TYPE_INT8, + TDESC_TYPE_INT16, + TDESC_TYPE_INT32, + TDESC_TYPE_INT64, + TDESC_TYPE_INT128, + TDESC_TYPE_UINT8, + TDESC_TYPE_UINT16, + TDESC_TYPE_UINT32, + TDESC_TYPE_UINT64, + TDESC_TYPE_UINT128, + TDESC_TYPE_CODE_PTR, + TDESC_TYPE_DATA_PTR, + TDESC_TYPE_IEEE_SINGLE, + TDESC_TYPE_IEEE_DOUBLE, + TDESC_TYPE_ARM_FPA_EXT, + TDESC_TYPE_I387_EXT, + + /* Types defined by a target feature. */ + TDESC_TYPE_VECTOR, + TDESC_TYPE_STRUCT, + TDESC_TYPE_UNION, + TDESC_TYPE_FLAGS, + TDESC_TYPE_ENUM +}; + +struct tdesc_type : tdesc_element +{ + tdesc_type (const std::string &name_, enum tdesc_type_kind kind_) + : name (name_), kind (kind_) + {} + + virtual ~tdesc_type () = default; + + DISABLE_COPY_AND_ASSIGN (tdesc_type); + + /* The name of this type. */ + std::string name; + + /* Identify the kind of this type. */ + enum tdesc_type_kind kind; + + bool operator== (const tdesc_type &other) const + { + return name == other.name && kind == other.kind; + } + + bool operator!= (const tdesc_type &other) const + { + return !(*this == other); + } +}; + +typedef std::unique_ptr tdesc_type_up; + +struct tdesc_type_builtin : tdesc_type +{ + tdesc_type_builtin (const std::string &name, enum tdesc_type_kind kind) + : tdesc_type (name, kind) + {} + + void accept (tdesc_element_visitor &v) const override + { + v.visit (this); + } +}; + +/* tdesc_type for vector types. */ + +struct tdesc_type_vector : tdesc_type +{ + tdesc_type_vector (const std::string &name, tdesc_type *element_type_, + int count_) + : tdesc_type (name, TDESC_TYPE_VECTOR), + element_type (element_type_), count (count_) + {} + + void accept (tdesc_element_visitor &v) const override + { + v.visit (this); + } + + struct tdesc_type *element_type; + int count; +}; + +/* A named type from a target description. */ + +struct tdesc_type_field +{ + tdesc_type_field (const std::string &name_, tdesc_type *type_, + int start_, int end_) + : name (name_), type (type_), start (start_), end (end_) + {} + + std::string name; + struct tdesc_type *type; + /* For non-enum-values, either both are -1 (non-bitfield), or both are + not -1 (bitfield). For enum values, start is the value (which could be + -1), end is -1. */ + int start, end; +}; + +/* tdesc_type for struct, union, flags, and enum types. */ + +struct tdesc_type_with_fields : tdesc_type +{ + tdesc_type_with_fields (const std::string &name, tdesc_type_kind kind, + int size_ = 0) + : tdesc_type (name, kind), size (size_) + {} + + void accept (tdesc_element_visitor &v) const override + { + v.visit (this); + } + + std::vector fields; + int size; +}; + +/* A feature from a target description. Each feature is a collection + of other elements, e.g. registers and types. */ + +struct tdesc_feature : tdesc_element +{ + tdesc_feature (const std::string &name_) + : name (name_) + {} + + virtual ~tdesc_feature () = default; + + DISABLE_COPY_AND_ASSIGN (tdesc_feature); + + /* The name of this feature. It may be recognized by the architecture + support code. */ + std::string name; + + /* The registers associated with this feature. */ + std::vector registers; + + /* The types associated with this feature. */ + std::vector types; + + void accept (tdesc_element_visitor &v) const override; + + bool operator== (const tdesc_feature &other) const; + + bool operator!= (const tdesc_feature &other) const + { + return !(*this == other); + } +}; + +typedef std::unique_ptr tdesc_feature_up; + +/* Allocate a new target_desc. */ +target_desc *allocate_target_description (void); + +/* Set TARGET_DESC's architecture by NAME. */ +void set_tdesc_architecture (target_desc *target_desc, + const char *name); + +/* Return the architecture associated with this target description as a string, + or NULL if no architecture was specified. */ +const char *tdesc_architecture_name (const struct target_desc *target_desc); + +/* Set TARGET_DESC's osabi by NAME. */ +void set_tdesc_osabi (target_desc *target_desc, const char *name); + +/* Return the osabi associated with this target description as a string, + or NULL if no osabi was specified. */ +const char *tdesc_osabi_name (const struct target_desc *target_desc); + +/* Return the type associated with ID in the context of FEATURE, or + NULL if none. */ +struct tdesc_type *tdesc_named_type (const struct tdesc_feature *feature, + const char *id); + +/* Return the created feature named NAME in target description TDESC. */ +struct tdesc_feature *tdesc_create_feature (struct target_desc *tdesc, + const char *name); + +/* Return the created vector tdesc_type named NAME in FEATURE. */ +struct tdesc_type *tdesc_create_vector (struct tdesc_feature *feature, + const char *name, + struct tdesc_type *field_type, + int count); + +/* Return the created struct tdesc_type named NAME in FEATURE. */ +tdesc_type_with_fields *tdesc_create_struct (struct tdesc_feature *feature, + const char *name); + +/* Return the created union tdesc_type named NAME in FEATURE. */ +tdesc_type_with_fields *tdesc_create_union (struct tdesc_feature *feature, + const char *name); + +/* Return the created flags tdesc_type named NAME in FEATURE. */ +tdesc_type_with_fields *tdesc_create_flags (struct tdesc_feature *feature, + const char *name, + int size); + +/* Return the created enum tdesc_type named NAME in FEATURE. */ +tdesc_type_with_fields *tdesc_create_enum (struct tdesc_feature *feature, + const char *name, + int size); + +/* Add a new field to TYPE. FIELD_NAME is its name, and FIELD_TYPE is + its type. */ +void tdesc_add_field (tdesc_type_with_fields *type, const char *field_name, + struct tdesc_type *field_type); + +/* Add a new bitfield to TYPE, with range START to END. FIELD_NAME is its name, + and FIELD_TYPE is its type. */ +void tdesc_add_typed_bitfield (tdesc_type_with_fields *type, + const char *field_name, + int start, int end, + struct tdesc_type *field_type); + +/* Set the total length of TYPE. Structs which contain bitfields may + omit the reserved bits, so the end of the last field may not + suffice. */ +void tdesc_set_struct_size (tdesc_type_with_fields *type, int size); + +/* Add a new untyped bitfield to TYPE. + Untyped bitfields become either uint32 or uint64 depending on the size + of the underlying type. */ +void tdesc_add_bitfield (tdesc_type_with_fields *type, const char *field_name, + int start, int end); + +/* A flag is just a typed(bool) single-bit bitfield. + This function is kept to minimize changes in generated files. */ +void tdesc_add_flag (tdesc_type_with_fields *type, int start, + const char *flag_name); + +/* Add field with VALUE and NAME to the enum TYPE. */ +void tdesc_add_enum_value (tdesc_type_with_fields *type, int value, + const char *name); + +/* Create a register in feature FEATURE. */ +void tdesc_create_reg (struct tdesc_feature *feature, const char *name, + int regnum, int save_restore, const char *group, + int bitsize, const char *type); + +/* Return the tdesc in string XML format. */ + +const char *tdesc_get_features_xml (const target_desc *tdesc); + +/* Print target description as xml. */ + +class print_xml_feature : public tdesc_element_visitor +{ +public: + print_xml_feature (std::string *buffer_) + : m_buffer (buffer_) + {} + + void visit_pre (const target_desc *e) override; + void visit_post (const target_desc *e) override; + void visit_pre (const tdesc_feature *e) override; + void visit_post (const tdesc_feature *e) override; + void visit (const tdesc_type_builtin *type) override; + void visit (const tdesc_type_vector *type) override; + void visit (const tdesc_type_with_fields *type) override; + void visit (const tdesc_reg *reg) override; + +private: + std::string *m_buffer; +}; + +#endif /* ARCH_TDESC_H */ diff -Nru gdb-8.1/gdb/common/traits.h gdb-8.2/gdb/common/traits.h --- gdb-8.1/gdb/common/traits.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/traits.h 2018-09-05 07:27:13.000000000 +0000 @@ -33,6 +33,14 @@ # define HAVE_IS_TRIVIALLY_COPYABLE 1 #endif +/* HAVE_IS_TRIVIALLY_CONSTRUCTIBLE is defined as 1 iff + std::is_trivially_constructible is available. GCC only implemented it + in GCC 5. */ +#if (__has_feature(is_trivially_constructible) \ + || (defined __GNUC__ && __GNUC__ >= 5)) +# define HAVE_IS_TRIVIALLY_CONSTRUCTIBLE 1 +#endif + namespace gdb { /* Pre C++14-safe (CWG 1558) version of C++17's std::void_t. See diff -Nru gdb-8.1/gdb/common/x86-xstate.h gdb-8.2/gdb/common/x86-xstate.h --- gdb-8.1/gdb/common/x86-xstate.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/x86-xstate.h 2018-09-05 07:27:13.000000000 +0000 @@ -72,4 +72,17 @@ (HAS_MPX (XCR0) ? X86_XSTATE_BNDCFG_SIZE : \ (HAS_AVX (XCR0) ? X86_XSTATE_AVX_SIZE : X86_XSTATE_SSE_SIZE)))) +/* Initial value for fctrl register, as defined in the X86 manual, and + confirmed in the (Linux) kernel source. When the x87 floating point + feature is not enabled in an inferior we use this as the value of the + fcrtl register. */ + +#define I387_FCTRL_INIT_VAL 0x037f + +/* Initial value for mxcsr register. When the avx and sse floating point + features are not enabled in an inferior we use this as the value of the + mxcsr register. */ + +#define I387_MXCSR_INIT_VAL 0x1f80 + #endif /* X86_XSTATE_H */ diff -Nru gdb-8.1/gdb/common/xml-utils.c gdb-8.2/gdb/common/xml-utils.c --- gdb-8.1/gdb/common/xml-utils.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/xml-utils.c 2018-09-05 07:27:13.000000000 +0000 @@ -20,37 +20,44 @@ #include "common-defs.h" #include "xml-utils.h" -/* Return a string with special characters from TEXT replaced by entity - references. */ +/* See xml-utils.h. */ std::string xml_escape_text (const char *text) { std::string result; + xml_escape_text_append (&result, text); + + return result; +} + +/* See xml-utils.h. */ + +void +xml_escape_text_append (std::string *result, const char *text) +{ /* Expand the result. */ for (int i = 0; text[i] != '\0'; i++) switch (text[i]) { case '\'': - result += "'"; + *result += "'"; break; case '\"': - result += """; + *result += """; break; case '&': - result += "&"; + *result += "&"; break; case '<': - result += "<"; + *result += "<"; break; case '>': - result += ">"; + *result += ">"; break; default: - result += text[i]; + *result += text[i]; break; } - - return result; } diff -Nru gdb-8.1/gdb/common/xml-utils.h gdb-8.2/gdb/common/xml-utils.h --- gdb-8.1/gdb/common/xml-utils.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/common/xml-utils.h 2018-09-05 07:27:13.000000000 +0000 @@ -20,9 +20,14 @@ #ifndef XML_UTILS_H #define XML_UTILS_H -/* Return a malloc allocated string with special characters from TEXT - replaced by entity references. */ +/* Return a string with special characters from TEXT replaced by entity + references. */ extern std::string xml_escape_text (const char *text); +/* Append TEXT to RESULT, with special characters replaced by entity + references. */ + +extern void xml_escape_text_append (std::string *result, const char *text); + #endif diff -Nru gdb-8.1/gdb/compile/compile.c gdb-8.2/gdb/compile/compile.c --- gdb-8.1/gdb/compile/compile.c 2018-01-31 02:57:26.000000000 +0000 +++ gdb-8.2/gdb/compile/compile.c 2018-09-05 07:44:28.000000000 +0000 @@ -41,6 +41,7 @@ #include "valprint.h" #include "common/gdb_optional.h" #include "common/gdb_unlinker.h" +#include "common/pathstuff.h" @@ -148,7 +149,7 @@ eval_compile_command (NULL, arg, scope, NULL); else { - command_line_up l = get_command_line (compile_control, ""); + counted_command_line l = get_command_line (compile_control, ""); l->control_u.compile.scope = scope; execute_control_command_untraced (l.get ()); @@ -186,7 +187,7 @@ eval_compile_command (NULL, arg, scope, &fmt); else { - command_line_up l = get_command_line (compile_control, ""); + counted_command_line l = get_command_line (compile_control, ""); l->control_u.compile.scope = scope; l->control_u.compile.scope_data = &fmt; @@ -271,10 +272,10 @@ block = BLOCKVECTOR_BLOCK (SYMTAB_BLOCKVECTOR (cursal.symtab), STATIC_BLOCK); if (block != NULL) - *pc = BLOCK_START (block); + *pc = BLOCK_ENTRY_PC (block); } else - *pc = BLOCK_START (block); + *pc = BLOCK_ENTRY_PC (block); return block; } @@ -393,9 +394,25 @@ *destv = NULL; } -/* Produce final vector of GCC compilation options. First element is target - size ("-m64", "-m32" etc.), optionally followed by DW_AT_producer options - and then compile-args string GDB variable. */ +/* Produce final vector of GCC compilation options. + + The first element of the combined argument vector are arguments + relating to the target size ("-m64", "-m32" etc.). These are + sourced from the inferior's architecture. + + The second element of the combined argument vector are arguments + stored in the inferior DW_AT_producer section. If these are stored + in the inferior (there is no guarantee that they are), they are + added to the vector. + + The third element of the combined argument vector are argument + supplied by the language implementation provided by + compile-{lang}-support. These contain language specific arguments. + + The final element of the combined argument vector are arguments + supplied by the "set compile-args" command. These are always + appended last so as to override any of the arguments automatically + generated above. */ static void get_args (const struct compile_instance *compiler, struct gdbarch *gdbarch, @@ -495,7 +512,7 @@ { struct command_line *iter; - for (iter = cmd->body_list[0]; iter; iter = iter->next) + for (iter = cmd->body_list_0.get (); iter; iter = iter->next) { input_buf.puts (iter->line); input_buf.puts ("\n"); diff -Nru gdb-8.1/gdb/compile/compile-c-support.c gdb-8.2/gdb/compile/compile-c-support.c --- gdb-8.1/gdb/compile/compile-c-support.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/compile/compile-c-support.c 2018-09-05 07:44:28.000000000 +0000 @@ -157,7 +157,7 @@ write_macro_definitions (const struct block *block, CORE_ADDR pc, struct ui_file *file) { - struct macro_scope *scope; + gdb::unique_xmalloc_ptr scope; if (block != NULL) scope = sal_macro_scope (find_pc_line (pc, 0)); diff -Nru gdb-8.1/gdb/compile/compile-c-symbols.c gdb-8.2/gdb/compile/compile-c-symbols.c --- gdb-8.1/gdb/compile/compile-c-symbols.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/compile/compile-c-symbols.c 2018-09-05 07:44:28.000000000 +0000 @@ -184,7 +184,7 @@ case LOC_BLOCK: kind = GCC_C_SYMBOL_FUNCTION; - addr = BLOCK_START (SYMBOL_BLOCK_VALUE (sym.symbol)); + addr = BLOCK_ENTRY_PC (SYMBOL_BLOCK_VALUE (sym.symbol)); if (is_global && TYPE_GNU_IFUNC (SYMBOL_TYPE (sym.symbol))) addr = gnu_ifunc_resolve_addr (target_gdbarch (), addr); break; @@ -497,7 +497,7 @@ fprintf_unfiltered (gdb_stdlog, "gcc_symbol_address \"%s\": full symbol\n", identifier); - result = BLOCK_START (SYMBOL_BLOCK_VALUE (sym)); + result = BLOCK_ENTRY_PC (SYMBOL_BLOCK_VALUE (sym)); if (TYPE_GNU_IFUNC (SYMBOL_TYPE (sym))) result = gnu_ifunc_resolve_addr (target_gdbarch (), result); found = 1; diff -Nru gdb-8.1/gdb/compile/compile-c-types.c gdb-8.2/gdb/compile/compile-c-types.c --- gdb-8.1/gdb/compile/compile-c-types.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/compile/compile-c-types.c 2018-09-05 07:44:28.000000000 +0000 @@ -273,9 +273,22 @@ static gcc_type convert_int (struct compile_c_instance *context, struct type *type) { - return C_CTX (context)->c_ops->int_type_v0 (C_CTX (context), - TYPE_UNSIGNED (type), - TYPE_LENGTH (type)); + if (C_CTX (context)->c_ops->c_version >= GCC_C_FE_VERSION_1) + { + if (TYPE_NOSIGN (type)) + { + gdb_assert (TYPE_LENGTH (type) == 1); + return C_CTX (context)->c_ops->char_type (C_CTX (context)); + } + return C_CTX (context)->c_ops->int_type (C_CTX (context), + TYPE_UNSIGNED (type), + TYPE_LENGTH (type), + TYPE_NAME (type)); + } + else + return C_CTX (context)->c_ops->int_type_v0 (C_CTX (context), + TYPE_UNSIGNED (type), + TYPE_LENGTH (type)); } /* Convert a floating-point type to its gcc representation. */ @@ -283,8 +296,13 @@ static gcc_type convert_float (struct compile_c_instance *context, struct type *type) { - return C_CTX (context)->c_ops->float_type_v0 (C_CTX (context), - TYPE_LENGTH (type)); + if (C_CTX (context)->c_ops->c_version >= GCC_C_FE_VERSION_1) + return C_CTX (context)->c_ops->float_type (C_CTX (context), + TYPE_LENGTH (type), + TYPE_NAME (type)); + else + return C_CTX (context)->c_ops->float_type_v0 (C_CTX (context), + TYPE_LENGTH (type)); } /* Convert the 'void' type to its gcc representation. */ diff -Nru gdb-8.1/gdb/compile/compile-object-load.c gdb-8.2/gdb/compile/compile-object-load.c --- gdb-8.1/gdb/compile/compile-object-load.c 2018-01-12 03:09:26.000000000 +0000 +++ gdb-8.2/gdb/compile/compile-object-load.c 2018-09-05 07:44:28.000000000 +0000 @@ -28,6 +28,7 @@ #include "gdbcmd.h" #include "regcache.h" #include "inferior.h" +#include "gdbthread.h" #include "compile.h" #include "block.h" #include "arch-utils.h" @@ -554,8 +555,9 @@ static void store_regs (struct type *regs_type, CORE_ADDR regs_base) { + thread_info *thread = inferior_thread (); struct gdbarch *gdbarch = target_gdbarch (); - struct regcache *regcache = get_thread_regcache (inferior_ptid); + struct regcache *regcache = get_thread_regcache (thread); int fieldno; for (fieldno = 0; fieldno < TYPE_NFIELDS (regs_type); fieldno++) diff -Nru gdb-8.1/gdb/compile/compile-object-run.c gdb-8.2/gdb/compile/compile-object-run.c --- gdb-8.1/gdb/compile/compile-object-run.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/compile/compile-object-run.c 2018-09-05 07:27:32.000000000 +0000 @@ -152,7 +152,7 @@ gdb_assert (TYPE_CODE (func_type) == TYPE_CODE_FUNC); func_val = value_from_pointer (lookup_pointer_type (func_type), - BLOCK_START (SYMBOL_BLOCK_VALUE (func_sym))); + BLOCK_ENTRY_PC (SYMBOL_BLOCK_VALUE (func_sym))); vargs = XALLOCAVEC (struct value *, TYPE_NFIELDS (func_type)); if (TYPE_NFIELDS (func_type) >= 1) diff -Nru gdb-8.1/gdb/complaints.c gdb-8.2/gdb/complaints.c --- gdb-8.1/gdb/complaints.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/complaints.c 2018-09-05 07:44:28.000000000 +0000 @@ -21,6 +21,7 @@ #include "complaints.h" #include "command.h" #include "gdbcmd.h" +#include /* Should each complaint message be self explanatory, or should we assume that a series of complaints is being produced? */ @@ -29,120 +30,18 @@ /* Isolated self explanatory message. */ ISOLATED_MESSAGE, - /* First message of a series, includes an explanation. */ - FIRST_MESSAGE, - /* First message of a series, but does not need to include any sort of explanation. */ SHORT_FIRST_MESSAGE, - - /* Subsequent message of a series that needs no explanation (the - user already knows we have a problem so we can just state our - piece). */ - SUBSEQUENT_MESSAGE -}; - -/* Structure to manage complaints about symbol file contents. */ - -struct complain -{ - const char *file; - int line; - const char *fmt; - int counter; - struct complain *next; -}; - -/* The explanatory message that should accompany the complaint. The - message is in two parts - pre and post - that are printed around - the complaint text. */ -struct explanation -{ - const char *prefix; - const char *postfix; -}; - -struct complaints -{ - struct complain *root; - - enum complaint_series series; - - /* The explanatory messages that should accompany the complaint. - NOTE: cagney/2002-08-14: In a desperate attempt at being vaguely - i18n friendly, this is an array of two messages. When present, - the PRE and POST EXPLANATION[SERIES] are used to wrap the - message. */ - const struct explanation *explanation; }; -static struct complain complaint_sentinel; +/* Map format strings to counters. */ -/* The symbol table complaint table. */ - -static struct explanation symfile_explanations[] = { - { "During symbol reading, ", "." }, - { "During symbol reading...", "..."}, - { "", "..."}, - { "", "..."}, - { NULL, NULL } -}; - -static struct complaints symfile_complaint_book = { - &complaint_sentinel, - ISOLATED_MESSAGE, - symfile_explanations -}; -struct complaints *symfile_complaints = &symfile_complaint_book; - -/* Wrapper function to, on-demand, fill in a complaints object. */ - -static struct complaints * -get_complaints (struct complaints **c) -{ - if ((*c) != NULL) - return (*c); - (*c) = XNEW (struct complaints); - (*c)->root = &complaint_sentinel; - (*c)->series = ISOLATED_MESSAGE; - (*c)->explanation = NULL; - return (*c); -} - -static struct complain * ATTRIBUTE_PRINTF (4, 0) -find_complaint (struct complaints *complaints, const char *file, - int line, const char *fmt) -{ - struct complain *complaint; - - /* Find the complaint in the table. A more efficient search - algorithm (based on hash table or something) could be used. But - that can wait until someone shows evidence that this lookup is - a real bottle neck. */ - for (complaint = complaints->root; - complaint != NULL; - complaint = complaint->next) - { - if (complaint->fmt == fmt - && complaint->file == file - && complaint->line == line) - return complaint; - } +static std::unordered_map counters; - /* Oops not seen before, fill in a new complaint. */ - complaint = XNEW (struct complain); - complaint->fmt = fmt; - complaint->file = file; - complaint->line = line; - complaint->counter = 0; - complaint->next = NULL; - - /* File it, return it. */ - complaint->next = complaints->root; - complaints->root = complaint; - return complaint; -} +/* How to print the next complaint. */ +static complaint_series series; /* How many complaints about a particular thing should be printed before we stop whining about it? Default is no whining at all, @@ -150,82 +49,30 @@ int stop_whining = 0; -/* Print a complaint, and link the complaint block into a chain for - later handling. */ +/* See complaints.h. */ -static void ATTRIBUTE_PRINTF (4, 0) -vcomplaint (struct complaints **c, const char *file, - int line, const char *fmt, - va_list args) +void +complaint_internal (const char *fmt, ...) { - struct complaints *complaints = get_complaints (c); - struct complain *complaint = find_complaint (complaints, file, - line, fmt); - enum complaint_series series; - - gdb_assert (complaints != NULL); + va_list args; - complaint->counter++; - if (complaint->counter > stop_whining) + if (counters[fmt]++ > stop_whining) return; - if (info_verbose) - series = SUBSEQUENT_MESSAGE; - else - series = complaints->series; + va_start (args, fmt); - /* Pass 'fmt' instead of 'complaint->fmt' to printf-like callees - from here on, to avoid "format string is not a string literal" - warnings. 'fmt' is this function's printf-format parameter, so - the compiler can assume the passed in argument is a literal - string somewhere up the call chain. */ - gdb_assert (complaint->fmt == fmt); - - if (complaint->file != NULL) - internal_vwarning (complaint->file, complaint->line, fmt, args); - else if (deprecated_warning_hook) + if (deprecated_warning_hook) (*deprecated_warning_hook) (fmt, args); else { - if (complaints->explanation == NULL) - /* A [v]warning() call always appends a newline. */ - vwarning (fmt, args); + std::string msg = string_vprintf (fmt, args); + wrap_here (""); + begin_line (); + if (series == ISOLATED_MESSAGE) + fprintf_filtered (gdb_stderr, "During symbol reading, %s.\n", + msg.c_str ()); else - { - std::string msg = string_vprintf (fmt, args); - wrap_here (""); - if (series != SUBSEQUENT_MESSAGE) - begin_line (); - /* XXX: i18n */ - fprintf_filtered (gdb_stderr, "%s%s%s", - complaints->explanation[series].prefix, - msg.c_str (), - complaints->explanation[series].postfix); - /* Force a line-break after any isolated message. For the - other cases, clear_complaints() takes care of any missing - trailing newline, the wrap_here() is just a hint. */ - if (series == ISOLATED_MESSAGE) - /* It would be really nice to use begin_line() here. - Unfortunately that function doesn't track GDB_STDERR and - consequently will sometimes supress a line when it - shouldn't. */ - fputs_filtered ("\n", gdb_stderr); - else - wrap_here (""); - } - } - - switch (series) - { - case ISOLATED_MESSAGE: - break; - case FIRST_MESSAGE: - complaints->series = SUBSEQUENT_MESSAGE; - break; - case SUBSEQUENT_MESSAGE: - case SHORT_FIRST_MESSAGE: - complaints->series = SUBSEQUENT_MESSAGE; - break; + fprintf_filtered (gdb_stderr, "%s...", msg.c_str ()); } /* If GDB dumps core, we'd like to see the complaints first. @@ -233,25 +80,6 @@ becomes a performance hog. */ gdb_flush (gdb_stderr); -} - -void -complaint_internal (struct complaints **complaints, const char *fmt, ...) -{ - va_list args; - - va_start (args, fmt); - vcomplaint (complaints, NULL/*file*/, 0/*line*/, fmt, args); - va_end (args); -} - -void -internal_complaint (struct complaints **complaints, const char *file, - int line, const char *fmt, ...) -{ - va_list args; - va_start (args, fmt); - vcomplaint (complaints, file, line, fmt, args); va_end (args); } @@ -259,50 +87,19 @@ incremented. If LESS_VERBOSE is 1, be less verbose about successive complaints, since the messages are appearing all together during a command that is reporting a contiguous block of - complaints (rather than being interleaved with other messages). If - noisy is 1, we are in a noisy command, and our caller will print - enough context for the user to figure it out. */ + complaints (rather than being interleaved with other messages). */ void -clear_complaints (struct complaints **c, int less_verbose, int noisy) +clear_complaints (int less_verbose) { - struct complaints *complaints = get_complaints (c); struct complain *p; - for (p = complaints->root; p != NULL; p = p->next) - { - p->counter = 0; - } - - switch (complaints->series) - { - case FIRST_MESSAGE: - /* Haven't yet printed anything. */ - break; - case SHORT_FIRST_MESSAGE: - /* Haven't yet printed anything. */ - break; - case ISOLATED_MESSAGE: - /* The code above, always forces a line-break. No need to do it - here. */ - break; - case SUBSEQUENT_MESSAGE: - /* It would be really nice to use begin_line() here. - Unfortunately that function doesn't track GDB_STDERR and - consequently will sometimes supress a line when it - shouldn't. */ - fputs_unfiltered ("\n", gdb_stderr); - break; - default: - internal_error (__FILE__, __LINE__, _("bad switch")); - } + counters.clear (); if (!less_verbose) - complaints->series = ISOLATED_MESSAGE; - else if (!noisy) - complaints->series = FIRST_MESSAGE; + series = ISOLATED_MESSAGE; else - complaints->series = SHORT_FIRST_MESSAGE; + series = SHORT_FIRST_MESSAGE; } static void diff -Nru gdb-8.1/gdb/complaints.h gdb-8.2/gdb/complaints.h --- gdb-8.1/gdb/complaints.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/complaints.h 2018-09-05 07:27:13.000000000 +0000 @@ -25,33 +25,24 @@ particular category. */ struct complaints; -/* Predefined categories. */ -extern struct complaints *symfile_complaints; - /* Helper for complaint. */ -extern void complaint_internal (struct complaints **complaints, - const char *fmt, ...) - ATTRIBUTE_PRINTF (2, 3); +extern void complaint_internal (const char *fmt, ...) + ATTRIBUTE_PRINTF (1, 2); /* Register a complaint. This is a macro around complaint_internal to avoid computing complaint's arguments when complaints are disabled. Running FMT via gettext [i.e., _(FMT)] can be quite expensive, for example. */ -#define complaint(COMPLAINTS, FMT, ...) \ +#define complaint(FMT, ...) \ do \ { \ extern int stop_whining; \ \ if (stop_whining > 0) \ - complaint_internal (COMPLAINTS, FMT, ##__VA_ARGS__); \ + complaint_internal (FMT, ##__VA_ARGS__); \ } \ while (0) -extern void internal_complaint (struct complaints **complaints, - const char *file, int line, - const char *fmt, - ...) ATTRIBUTE_PRINTF (4, 5); - /* Clear out / initialize all complaint counters that have ever been incremented. If LESS_VERBOSE is 1, be less verbose about successive complaints, since the messages are appearing all @@ -60,8 +51,7 @@ noisy is 1, we are in a noisy command, and our caller will print enough context for the user to figure it out. */ -extern void clear_complaints (struct complaints **complaints, - int less_verbose, int noisy); +extern void clear_complaints (int less_verbose); #endif /* !defined (COMPLAINTS_H) */ diff -Nru gdb-8.1/gdb/completer.c gdb-8.2/gdb/completer.c --- gdb-8.1/gdb/completer.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/completer.c 2018-09-05 07:44:28.000000000 +0000 @@ -962,7 +962,7 @@ static void add_struct_fields (struct type *type, completion_list &output, - char *fieldname, int namelen) + const char *fieldname, int namelen) { int i; int computed_type_name = 0; @@ -999,7 +999,7 @@ { if (!computed_type_name) { - type_name = type_name_no_tag (type); + type_name = TYPE_NAME (type); computed_type_name = 1; } /* Omit constructors from the completion list. */ @@ -1016,12 +1016,11 @@ const char *text, const char *word) { struct type *type = NULL; - char *fieldname; + gdb::unique_xmalloc_ptr fieldname; enum type_code code = TYPE_CODE_UNDEF; /* Perform a tentative parse of the expression, to see whether a field completion is required. */ - fieldname = NULL; TRY { type = parse_expression_for_completion (text, &fieldname, &code); @@ -1032,7 +1031,7 @@ } END_CATCH - if (fieldname && type) + if (fieldname != nullptr && type) { for (;;) { @@ -1045,25 +1044,20 @@ if (TYPE_CODE (type) == TYPE_CODE_UNION || TYPE_CODE (type) == TYPE_CODE_STRUCT) { - int flen = strlen (fieldname); completion_list result; - add_struct_fields (type, result, fieldname, flen); - xfree (fieldname); + add_struct_fields (type, result, fieldname.get (), + strlen (fieldname.get ())); tracker.add_completions (std::move (result)); return; } } - else if (fieldname && code != TYPE_CODE_UNDEF) + else if (fieldname != nullptr && code != TYPE_CODE_UNDEF) { - struct cleanup *cleanup = make_cleanup (xfree, fieldname); - - collect_symbol_completion_matches_type (tracker, fieldname, fieldname, - code); - do_cleanups (cleanup); + collect_symbol_completion_matches_type (tracker, fieldname.get (), + fieldname.get (), code); return; } - xfree (fieldname); complete_files_symbols (tracker, text, word); } @@ -1475,7 +1469,7 @@ completion_tracker::completion_tracker () { m_entries_hash = htab_create_alloc (INITIAL_COMPLETION_HTAB_SIZE, - htab_hash_string, (htab_eq) streq, + htab_hash_string, streq_hash, NULL, xcalloc, xfree); } @@ -1493,7 +1487,7 @@ htab_delete (m_entries_hash); m_entries_hash = htab_create_alloc (INITIAL_COMPLETION_HTAB_SIZE, - htab_hash_string, (htab_eq) streq, + htab_hash_string, streq_hash, NULL, xcalloc, xfree); } diff -Nru gdb-8.1/gdb/config.in gdb-8.2/gdb/config.in --- gdb-8.1/gdb/config.in 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/gdb/config.in 2018-09-05 07:44:28.000000000 +0000 @@ -192,6 +192,9 @@ /* Define to 1 if you have the `getpagesize' function. */ #undef HAVE_GETPAGESIZE +/* Define to 1 if you have the `getpgid' function. */ +#undef HAVE_GETPGID + /* Define to 1 if you have the `getrlimit' function. */ #undef HAVE_GETRLIMIT @@ -219,6 +222,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H +/* Define to 1 if your system has the kinfo_getfile function. */ +#undef HAVE_KINFO_GETFILE + /* Define to 1 if your system has the kinfo_getvmmap function. */ #undef HAVE_KINFO_GETVMMAP @@ -444,40 +450,40 @@ /* Define to 1 if your system has struct lwp. */ #undef HAVE_STRUCT_LWP -/* Define to 1 if `struct ptrace_lwpinfo' is a member of `pl_syscall_code'. */ +/* Define to 1 if `pl_syscall_code' is a member of `struct ptrace_lwpinfo'. */ #undef HAVE_STRUCT_PTRACE_LWPINFO_PL_SYSCALL_CODE -/* Define to 1 if `struct ptrace_lwpinfo' is a member of `pl_tdname'. */ +/* Define to 1 if `pl_tdname' is a member of `struct ptrace_lwpinfo'. */ #undef HAVE_STRUCT_PTRACE_LWPINFO_PL_TDNAME -/* Define to 1 if `struct pt_insn' is a member of `enabled'. */ +/* Define to 1 if `enabled' is a member of `struct pt_insn'. */ #undef HAVE_STRUCT_PT_INSN_ENABLED -/* Define to 1 if `struct pt_insn' is a member of `resynced'. */ +/* Define to 1 if `resynced' is a member of `struct pt_insn'. */ #undef HAVE_STRUCT_PT_INSN_RESYNCED /* Define to 1 if your system has struct reg in . */ #undef HAVE_STRUCT_REG -/* Define to 1 if `struct reg' is a member of `r_fs'. */ +/* Define to 1 if `r_fs' is a member of `struct reg'. */ #undef HAVE_STRUCT_REG_R_FS -/* Define to 1 if `struct reg' is a member of `r_gs'. */ +/* Define to 1 if `r_gs' is a member of `struct reg'. */ #undef HAVE_STRUCT_REG_R_GS -/* Define to 1 if `struct stat' is a member of `st_blksize'. */ +/* Define to 1 if `st_blksize' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_BLKSIZE -/* Define to 1 if `struct stat' is a member of `st_blocks'. */ +/* Define to 1 if `st_blocks' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_BLOCKS -/* Define to 1 if `struct thread' is a member of `td_pcb'. */ +/* Define to 1 if `td_pcb' is a member of `struct thread'. */ #undef HAVE_STRUCT_THREAD_TD_PCB -/* Define to 1 if `struct user_regs_struct' is a member of `fs_base'. */ +/* Define to 1 if `fs_base' is a member of `struct user_regs_struct'. */ #undef HAVE_STRUCT_USER_REGS_STRUCT_FS_BASE -/* Define to 1 if `struct user_regs_struct' is a member of `gs_base'. */ +/* Define to 1 if `gs_base' is a member of `struct user_regs_struct'. */ #undef HAVE_STRUCT_USER_REGS_STRUCT_GS_BASE /* Define to 1 if you have the header file. */ @@ -764,6 +770,11 @@ # endif #endif +/* Enable large inode numbers on Mac OS X 10.5. */ +#ifndef _DARWIN_USE_64_BIT_INODE +# define _DARWIN_USE_64_BIT_INODE 1 +#endif + /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS @@ -792,5 +803,8 @@ /* Define to `int' if does not define. */ #undef pid_t +/* Define to `unsigned int' if does not define. */ +#undef size_t + /* Define as `fork' if `vfork' does not work. */ #undef vfork diff -Nru gdb-8.1/gdb/configure gdb-8.2/gdb/configure --- gdb-8.1/gdb/configure 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/gdb/configure 2018-09-05 07:44:28.000000000 +0000 @@ -1,10 +1,10 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.64. +# Generated by GNU Autoconf 2.69. +# +# +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software -# Foundation, Inc. # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. @@ -87,6 +87,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -131,6 +132,31 @@ # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh @@ -164,7 +190,8 @@ else exitcode=1; echo positional parameters were not saved. fi -test x\$exitcode = x0 || exit 1" +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && @@ -209,14 +236,25 @@ if test "x$CONFIG_SHELL" != x; then : - # We cannot yet assume a decent shell, so we have to provide a - # neutralization value for shells without unset; and this also - # works around shells that cannot unset nonexistent variables. - BASH_ENV=/dev/null - ENV=/dev/null - (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 fi if test x$as_have_required = xno; then : @@ -314,10 +352,18 @@ test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take @@ -354,19 +400,19 @@ fi # as_fn_arith -# as_fn_error ERROR [LINENO LOG_FD] -# --------------------------------- +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with status $?, using 1 if that was 0. +# script with STATUS, using 1 if that was 0. as_fn_error () { - as_status=$?; test $as_status -eq 0 && as_status=1 - if test "$3"; then - as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $1" >&2 + $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error @@ -439,6 +485,10 @@ chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). @@ -473,16 +523,16 @@ # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -494,28 +544,8 @@ as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -524,10 +554,11 @@ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" -exec 7<&0 &1 +test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` @@ -589,6 +620,7 @@ #endif" enable_option_checking=no +ac_header_list= ac_subst_vars='LTLIBOBJS LIBOBJS GCORE_TRANSFORM_NAME @@ -713,6 +745,7 @@ REPORT_BUGS_TEXI REPORT_BUGS_TO PKGVERSION +CODESIGN_CERT HAVE_NATIVE_GCORE_TARGET TARGET_OBS subdirs @@ -829,6 +862,7 @@ with_libunwind_ia64 with_curses enable_profiling +enable_codesign with_pkgversion with_bugurl with_system_zlib @@ -946,8 +980,9 @@ fi case $ac_option in - *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *) ac_optarg=yes ;; + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. @@ -992,7 +1027,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid feature name: $ac_useropt" + as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1018,7 +1053,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid feature name: $ac_useropt" + as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1222,7 +1257,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid package name: $ac_useropt" + as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1238,7 +1273,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid package name: $ac_useropt" + as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1268,8 +1303,8 @@ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; - -*) as_fn_error "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information." + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" ;; *=*) @@ -1277,7 +1312,7 @@ # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error "invalid variable name: \`$ac_envvar'" ;; + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; @@ -1287,7 +1322,7 @@ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac @@ -1295,13 +1330,13 @@ if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error "missing argument to $ac_option" + as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; - fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi @@ -1324,7 +1359,7 @@ [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac - as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' @@ -1338,8 +1373,6 @@ if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1354,9 +1387,9 @@ ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error "working directory cannot be determined" + as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error "pwd does not report name of working directory" + as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. @@ -1395,11 +1428,11 @@ fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error "cannot find sources ($ac_unique_file) in $srcdir" + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg" + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then @@ -1439,7 +1472,7 @@ --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages + -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files @@ -1506,8 +1539,9 @@ --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer + --enable-maintainer-mode + enable make rules and dependencies not useful (and + sometimes confusing) to the casual installer --enable-plugins Enable support for plugins --disable-largefile omit support for large files --enable-targets=TARGETS @@ -1518,6 +1552,7 @@ --enable-tui enable full-screen terminal user interface (TUI) --enable-gdbtk enable gdbtk graphical user interface (GUI) --enable-profiling enable profiling of GDB + --enable-codesign=CERT sign gdb with 'codesign -s CERT' --disable-rpath do not hardcode runtime library paths --enable-libmcheck Try linking with -lmcheck if available --enable-werror treat compile warnings as errors @@ -1597,7 +1632,7 @@ LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CXX C++ compiler command CXXFLAGS C++ compiler flags @@ -1605,8 +1640,9 @@ MAKEINFO Parent configure detects if it is of sufficient version. MAKEINFOFLAGS Parameters for MAKEINFO. - YACC The `Yet Another C Compiler' implementation to use. Defaults to - the first program found out of: `bison -y', `byacc', `yacc'. + YACC The `Yet Another Compiler Compiler' implementation to use. + Defaults to the first program found out of: `bison -y', `byacc', + `yacc'. YFLAGS The list of arguments that will be passed by default to $YACC. This script will default YFLAGS to the empty string to avoid a default value of `-d' given by some make applications. @@ -1679,9 +1715,9 @@ if $ac_init_version; then cat <<\_ACEOF configure -generated by GNU Autoconf 2.64 +generated by GNU Autoconf 2.69 -Copyright (C) 2009 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1725,8 +1761,8 @@ ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - return $ac_retval + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval } # ac_fn_c_try_compile @@ -1763,8 +1799,8 @@ ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - return $ac_retval + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile @@ -1789,7 +1825,7 @@ mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } >/dev/null && { + test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : @@ -1800,8 +1836,8 @@ ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - return $ac_retval + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval } # ac_fn_c_try_cpp @@ -1813,10 +1849,10 @@ ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 @@ -1852,7 +1888,7 @@ else ac_header_preproc=no fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } @@ -1879,7 +1915,7 @@ esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" @@ -1888,7 +1924,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel @@ -1929,8 +1965,8 @@ ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - return $ac_retval + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval } # ac_fn_c_try_run @@ -1943,7 +1979,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -1961,7 +1997,7 @@ eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile @@ -1992,7 +2028,7 @@ test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext + test -x conftest$ac_exeext }; then : ac_retval=0 else @@ -2006,8 +2042,8 @@ # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - return $ac_retval + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval } # ac_fn_c_try_link @@ -2028,7 +2064,8 @@ main () { static int test_array [1 - 2 * !(($2) >= 0)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -2044,7 +2081,8 @@ main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -2070,7 +2108,8 @@ main () { static int test_array [1 - 2 * !(($2) < 0)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -2086,7 +2125,8 @@ main () { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -2120,7 +2160,8 @@ main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -2184,8 +2225,8 @@ rm -f conftest.val fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - return $ac_retval + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval } # ac_fn_c_compute_int @@ -2197,7 +2238,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -2252,7 +2293,7 @@ eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func @@ -2265,7 +2306,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 $as_echo_n "checking for $2.$3... " >&6; } -if { as_var=$4; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval \${$4+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -2309,7 +2350,7 @@ eval ac_res=\$$4 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_member @@ -2322,7 +2363,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" @@ -2363,13 +2404,14 @@ eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type -# ac_fn_c_check_decl LINENO SYMBOL VAR -# ------------------------------------ -# Tests whether SYMBOL is declared, setting cache variable VAR accordingly. +# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES +# --------------------------------------------- +# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR +# accordingly. ac_fn_c_check_decl () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack @@ -2377,7 +2419,7 @@ as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 $as_echo_n "checking whether $as_decl_name is declared... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -2408,7 +2450,7 @@ eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_decl cat >config.log <<_ACEOF @@ -2416,7 +2458,7 @@ running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was -generated by GNU Autoconf 2.64. Invocation command line was +generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2526,11 +2568,9 @@ { echo - cat <<\_ASBOX -## ---------------- ## + $as_echo "## ---------------- ## ## Cache variables. ## -## ---------------- ## -_ASBOX +## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( @@ -2564,11 +2604,9 @@ ) echo - cat <<\_ASBOX -## ----------------- ## + $as_echo "## ----------------- ## ## Output variables. ## -## ----------------- ## -_ASBOX +## ----------------- ##" echo for ac_var in $ac_subst_vars do @@ -2581,11 +2619,9 @@ echo if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------------- ## + $as_echo "## ------------------- ## ## File substitutions. ## -## ------------------- ## -_ASBOX +## ------------------- ##" echo for ac_var in $ac_subst_files do @@ -2599,11 +2635,9 @@ fi if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## + $as_echo "## ----------- ## ## confdefs.h. ## -## ----------- ## -_ASBOX +## ----------- ##" echo cat confdefs.h echo @@ -2658,7 +2692,12 @@ ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then - ac_site_file1=$CONFIG_SITE + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site @@ -2669,18 +2708,22 @@ for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue - if test -r "$ac_site_file"; then + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in @@ -2694,6 +2737,9 @@ >$cache_file fi +as_fn_append ac_header_list " stdlib.h" +as_fn_append ac_header_list " unistd.h" +as_fn_append ac_header_list " sys/param.h" # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false @@ -2749,7 +2795,7 @@ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## @@ -2804,7 +2850,7 @@ set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -2816,7 +2862,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2844,7 +2890,7 @@ set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -2856,7 +2902,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2897,7 +2943,7 @@ set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -2909,7 +2955,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2937,7 +2983,7 @@ set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -2950,7 +2996,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue @@ -2996,7 +3042,7 @@ set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3008,7 +3054,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3040,7 +3086,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -3052,7 +3098,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3094,8 +3140,8 @@ test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "no acceptable C compiler found in \$PATH -See \`config.log' for more details." "$LINENO" 5; } +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 @@ -3116,8 +3162,8 @@ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 - rm -f conftest.er1 conftest.err fi + rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done @@ -3134,12 +3180,12 @@ } _ACEOF ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out conftest.out" +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: @@ -3201,62 +3247,28 @@ else ac_file='' fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } if test -z "$ac_file"; then : - $as_echo "$as_me: failed program was:" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "C compiler cannot create executables -See \`config.log' for more details." "$LINENO" 5; }; } +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out conftest.out +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" @@ -3286,19 +3298,78 @@ else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." "$LINENO" 5; } +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } fi -rm -f conftest$ac_cv_exeext +rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } -if test "${ac_cv_objext+set}" = set; then : +if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3338,8 +3409,8 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot compute suffix of object files: cannot compile -See \`config.log' for more details." "$LINENO" 5; } +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi @@ -3349,7 +3420,7 @@ ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then : +if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3386,7 +3457,7 @@ ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then : +if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag @@ -3464,7 +3535,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then : +if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no @@ -3473,8 +3544,7 @@ /* end confdefs.h. */ #include #include -#include -#include +struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -3575,7 +3645,7 @@ set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CXX+set}" = set; then : +if ${ac_cv_prog_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then @@ -3587,7 +3657,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3619,7 +3689,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : +if ${ac_cv_prog_ac_ct_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then @@ -3631,7 +3701,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3689,15 +3759,15 @@ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 - rm -f conftest.er1 conftest.err fi + rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } -if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : +if ${ac_cv_cxx_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3734,7 +3804,7 @@ ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } -if test "${ac_cv_prog_cxx_g+set}" = set; then : +if ${ac_cv_prog_cxx_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag @@ -3830,7 +3900,7 @@ CPP= fi if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then : + if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded @@ -3860,7 +3930,7 @@ # Broken: fails on valid input. continue fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. @@ -3876,11 +3946,11 @@ ac_preproc_ok=: break fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext +rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi @@ -3919,7 +3989,7 @@ # Broken: fails on valid input. continue fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. @@ -3935,18 +4005,18 @@ ac_preproc_ok=: break fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext +rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." "$LINENO" 5; } +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c @@ -3958,7 +4028,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if test "${ac_cv_path_GREP+set}" = set; then : +if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then @@ -3972,7 +4042,7 @@ for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue + as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in @@ -4007,7 +4077,7 @@ done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then - as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP @@ -4021,7 +4091,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } -if test "${ac_cv_path_EGREP+set}" = set; then : +if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 @@ -4038,7 +4108,7 @@ for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue + as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in @@ -4073,7 +4143,7 @@ done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then - as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP @@ -4088,7 +4158,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; then : +if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -4205,8 +4275,7 @@ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF @@ -4218,7 +4287,7 @@ ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" -if test "x$ac_cv_header_minix_config_h" = x""yes; then : +if test "x$ac_cv_header_minix_config_h" = xyes; then : MINIX=yes else MINIX= @@ -4240,14 +4309,14 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } -if test "${ac_cv_safe_to_define___extensions__+set}" = set; then : +if ${ac_cv_safe_to_define___extensions__+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -# define __EXTENSIONS__ 1 - $ac_includes_default +# define __EXTENSIONS__ 1 + $ac_includes_default int main () { @@ -4279,16 +4348,22 @@ ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - for ac_t in install-sh install.sh shtool; do - if test -f "$ac_dir/$ac_t"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/$ac_t -c" - break 2 - fi - done + 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 + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi done if test -z "$ac_aux_dir"; then - as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 + as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, @@ -4302,27 +4377,27 @@ # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } -if test "${ac_cv_build+set}" = set; then : +if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && - as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5 + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; -*) as_fn_error "invalid value of canonical build" "$LINENO" 5;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' @@ -4340,14 +4415,14 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } -if test "${ac_cv_host+set}" = set; then : +if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi @@ -4355,7 +4430,7 @@ $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; -*) as_fn_error "invalid value of canonical host" "$LINENO" 5;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' @@ -4373,14 +4448,14 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 $as_echo_n "checking target system type... " >&6; } -if test "${ac_cv_target+set}" = set; then : +if ${ac_cv_target+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$target_alias" = x; then ac_cv_target=$ac_cv_host else ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || - as_fn_error "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 fi fi @@ -4388,7 +4463,7 @@ $as_echo "$ac_cv_target" >&6; } case $ac_cv_target in *-*-*) ;; -*) as_fn_error "invalid value of canonical target" "$LINENO" 5;; +*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; esac target=$ac_cv_target ac_save_IFS=$IFS; IFS='-' @@ -4425,7 +4500,7 @@ do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " -if test "x$ac_cv_header_dlfcn_h" = x""yes; then : +if test "x$ac_cv_header_dlfcn_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF @@ -4438,7 +4513,7 @@ do : ac_fn_c_check_header_compile "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default " -if test "x$ac_cv_header_windows_h" = x""yes; then : +if test "x$ac_cv_header_windows_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINDOWS_H 1 _ACEOF @@ -4454,7 +4529,7 @@ no) plugins=no ;; *) plugins=yes if test "$maybe_plugins" != "yes" ; then - as_fn_error "Building with plugin support requires a host that supports dlopen." "$LINENO" 5 + as_fn_error $? "Building with plugin support requires a host that supports dlopen." "$LINENO" 5 fi ;; esac else @@ -4463,9 +4538,9 @@ fi if test "$plugins" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 -$as_echo_n "checking for library containing dlopen... " >&6; } -if test "${ac_cv_search_dlopen+set}" = set; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlsym" >&5 +$as_echo_n "checking for library containing dlsym... " >&6; } +if ${ac_cv_search_dlsym+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -4478,11 +4553,11 @@ #ifdef __cplusplus extern "C" #endif -char dlopen (); +char dlsym (); int main () { -return dlopen (); +return dlsym (); ; return 0; } @@ -4495,25 +4570,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dlopen=$ac_res + ac_cv_search_dlsym=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_dlopen+set}" = set; then : + if ${ac_cv_search_dlsym+:} false; then : break fi done -if test "${ac_cv_search_dlopen+set}" = set; then : +if ${ac_cv_search_dlsym+:} false; then : else - ac_cv_search_dlopen=no + ac_cv_search_dlsym=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 -$as_echo "$ac_cv_search_dlopen" >&6; } -ac_res=$ac_cv_search_dlopen +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlsym" >&5 +$as_echo "$ac_cv_search_dlsym" >&6; } +ac_res=$ac_cv_search_dlsym if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" @@ -4544,7 +4619,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 $as_echo_n "checking for special C compiler options needed for large files... " >&6; } -if test "${ac_cv_sys_largefile_CC+set}" = set; then : +if ${ac_cv_sys_largefile_CC+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_sys_largefile_CC=no @@ -4595,7 +4670,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } -if test "${ac_cv_sys_file_offset_bits+set}" = set; then : +if ${ac_cv_sys_file_offset_bits+:} false; then : $as_echo_n "(cached) " >&6 else while :; do @@ -4664,7 +4739,7 @@ if test $ac_cv_sys_file_offset_bits = unknown; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } -if test "${ac_cv_sys_large_files+set}" = set; then : +if ${ac_cv_sys_large_files+:} false; then : $as_echo_n "(cached) " >&6 else while :; do @@ -4731,6 +4806,8 @@ esac rm -rf conftest* fi + + fi @@ -4739,7 +4816,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${CC-cc} option to accept ANSI C" >&5 $as_echo_n "checking for ${CC-cc} option to accept ANSI C... " >&6; } -if test "${am_cv_prog_cc_stdc+set}" = set; then : +if ${am_cv_prog_cc_stdc+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_prog_cc_stdc=no @@ -4816,10 +4893,10 @@ *) CC="$CC $am_cv_prog_cc_stdc" ;; esac -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` -if test x"${install_sh}" != xset; then +if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; @@ -4828,17 +4905,17 @@ esac fi -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. +# will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then : +if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then @@ -4850,7 +4927,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4878,7 +4955,7 @@ set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then @@ -4890,7 +4967,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4931,16 +5008,22 @@ ac_aux_dir= for ac_dir in .. "$srcdir"/..; do - for ac_t in install-sh install.sh shtool; do - if test -f "$ac_dir/$ac_t"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/$ac_t -c" - break 2 - fi - done + 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 + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi done if test -z "$ac_aux_dir"; then - as_fn_error "cannot find install-sh, install.sh, or shtool in .. \"$srcdir\"/.." "$LINENO" 5 + as_fn_error $? "cannot find install-sh, install.sh, or shtool in .. \"$srcdir\"/.." "$LINENO" 5 fi # These three variables are undocumented and unsupported, @@ -4967,7 +5050,7 @@ # We require a C++11 compiler. Check if one is available, and if # necessary, set CXX_DIALECT to some -std=xxx switch. - ax_cxx_compile_cxx11_required=true + ax_cxx_compile_alternatives="11 0x" ax_cxx_compile_cxx11_required=true ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -4977,7 +5060,7 @@ ac_success=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++11 features by default" >&5 $as_echo_n "checking whether $CXX supports C++11 features by default... " >&6; } -if test "${ax_cv_cxx_compile_cxx11+set}" = set; then : +if ${ax_cv_cxx_compile_cxx11+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -5283,11 +5366,12 @@ fi if test x$ac_success = xno; then - for switch in -std=gnu++11 -std=gnu++0x; do + for alternative in ${ax_cxx_compile_alternatives}; do + switch="-std=gnu++${alternative}" cachevar=`$as_echo "ax_cv_cxx_compile_cxx11_$switch" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++11 features with $switch" >&5 $as_echo_n "checking whether $CXX supports C++11 features with $switch... " >&6; } -if { as_var=$cachevar; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval \${$cachevar+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_CXX="$CXX" @@ -5601,16 +5685,17 @@ fi if test x$ac_success = xno; then - for switch in -std=c++11 -std=c++0x +std=c++11 "-h std=c++11"; do - cachevar=`$as_echo "ax_cv_cxx_compile_cxx11_$switch" | $as_tr_sh` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++11 features with $switch" >&5 + for alternative in ${ax_cxx_compile_alternatives}; do + for switch in -std=c++${alternative} +std=c++${alternative} "-h std=c++${alternative}"; do + cachevar=`$as_echo "ax_cv_cxx_compile_cxx11_$switch" | $as_tr_sh` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++11 features with $switch" >&5 $as_echo_n "checking whether $CXX supports C++11 features with $switch... " >&6; } -if { as_var=$cachevar; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval \${$cachevar+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_CXX="$CXX" - CXX="$CXX $switch" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + CXX="$CXX $switch" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -5905,14 +5990,18 @@ eval $cachevar=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CXX="$ac_save_CXX" + CXX="$ac_save_CXX" fi eval ac_res=\$$cachevar { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - if eval test x\$$cachevar = xyes; then - CXX_DIALECT="$switch" - ac_success=yes + if eval test x\$$cachevar = xyes; then + CXX_DIALECT="$switch" + ac_success=yes + break + fi + done + if test x$ac_success = xyes; then break fi done @@ -5925,7 +6014,7 @@ if test x$ax_cxx_compile_cxx11_required = xtrue; then if test x$ac_success = xno; then - as_fn_error "*** A compiler with support for C++11 language features is required." "$LINENO" 5 + as_fn_error $? "*** A compiler with support for C++11 language features is required." "$LINENO" 5 fi fi if test x$ac_success = xno; then @@ -5962,7 +6051,7 @@ am_depcomp=$ac_aux_dir/depcomp { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : +if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -f "$am_depcomp"; then @@ -6048,7 +6137,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } if test x${am_cv_CC_dependencies_compiler_type-none} = xnone -then as_fn_error "no usable dependency style found" "$LINENO" 5 +then as_fn_error $? "no usable dependency style found" "$LINENO" 5 else CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type fi @@ -6162,7 +6251,7 @@ # The eval makes quoting arguments work. eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \ --cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" || - as_fn_error "$ac_sub_configure failed for $ac_dir" "$LINENO" 5 + as_fn_error $? "$ac_sub_configure failed for $ac_dir" "$LINENO" 5 cd "$ac_popdir" @@ -6284,7 +6373,7 @@ MAKEINFO_EXTRA_FLAGS="" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $MAKEINFO supports @click" >&5 $as_echo_n "checking whether $MAKEINFO supports @click... " >&6; } -if test "${gdb_cv_have_makeinfo_click+set}" = set; then : +if ${gdb_cv_have_makeinfo_click+:} false; then : $as_echo_n "(cached) " >&6 else echo '@clicksequence{a @click{} b}' >conftest.texinfo @@ -6495,7 +6584,7 @@ # Check whether --enable-targets was given. if test "${enable_targets+set}" = set; then : enableval=$enable_targets; case "${enableval}" in - yes | "") as_fn_error "enable-targets option must specify target names or 'all'" "$LINENO" 5 + yes | "") as_fn_error $? "enable-targets option must specify target names or 'all'" "$LINENO" 5 ;; no) enable_targets= ;; *) enable_targets=$enableval ;; @@ -6509,7 +6598,7 @@ enableval=$enable_64_bit_bfd; case "${enableval}" in yes) want64=true ;; no) want64=false ;; - *) as_fn_error "bad value ${enableval} for 64-bit-bfd option" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for 64-bit-bfd option" "$LINENO" 5 ;; esac else want64=false @@ -6553,7 +6642,7 @@ . ${srcdir}/configure.tgt if test -z "${gdb_target_obs}"; then : - as_fn_error "configuration ${targ} is unsupported." "$LINENO" 5 + as_fn_error $? "configuration ${targ} is unsupported." "$LINENO" 5 fi # Target-specific object files @@ -6597,7 +6686,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 $as_echo_n "checking size of long... " >&6; } -if test "${ac_cv_sizeof_long+set}" = set; then : +if ${ac_cv_sizeof_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : @@ -6606,9 +6695,8 @@ if test "$ac_cv_type_long" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (long) -See \`config.log' for more details." "$LINENO" 5; }; } +as_fn_error 77 "cannot compute sizeof (long) +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long=0 fi @@ -6676,9 +6764,9 @@ yes) ;; no) - as_fn_error "the command-line interface cannot be disabled yet" "$LINENO" 5 ;; + as_fn_error $? "the command-line interface cannot be disabled yet" "$LINENO" 5 ;; *) - as_fn_error "bad value $enableval for --enable-gdbcli" "$LINENO" 5 ;; + as_fn_error $? "bad value $enableval for --enable-gdbcli" "$LINENO" 5 ;; esac else enable_gdbcli=yes @@ -6700,7 +6788,7 @@ yes | no) ;; *) - as_fn_error "bad value $enableval for --enable-gdbmi" "$LINENO" 5 ;; + as_fn_error $? "bad value $enableval for --enable-gdbmi" "$LINENO" 5 ;; esac else enable_gdbmi=yes @@ -6722,7 +6810,7 @@ yes | no | auto) ;; *) - as_fn_error "bad value $enableval for --enable-tui" "$LINENO" 5 ;; + as_fn_error $? "bad value $enableval for --enable-tui" "$LINENO" 5 ;; esac else enable_tui=auto @@ -6736,7 +6824,7 @@ yes | no) ;; *) - as_fn_error "bad value $enableval for --enable-gdbtk" "$LINENO" 5 ;; + as_fn_error $? "bad value $enableval for --enable-gdbtk" "$LINENO" 5 ;; esac else if test -d $srcdir/gdbtk; then @@ -6768,7 +6856,7 @@ # Backward compatibility option. if test "${with_libunwind+set}" = set; then if test x"$with_libunwind_ia64" != xauto; then - as_fn_error "option --with-libunwind is deprecated, use --with-libunwind-ia64" "$LINENO" 5 + as_fn_error $? "option --with-libunwind is deprecated, use --with-libunwind-ia64" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: option --with-libunwind is deprecated, use --with-libunwind-ia64" >&5 $as_echo "$as_me: WARNING: option --with-libunwind is deprecated, use --with-libunwind-ia64" >&2;} @@ -6782,7 +6870,7 @@ for ac_header in libunwind-ia64.h do : ac_fn_c_check_header_mongrel "$LINENO" "libunwind-ia64.h" "ac_cv_header_libunwind_ia64_h" "$ac_includes_default" -if test "x$ac_cv_header_libunwind_ia64_h" = x""yes; then : +if test "x$ac_cv_header_libunwind_ia64_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBUNWIND_IA64_H 1 _ACEOF @@ -6794,7 +6882,7 @@ with_libunwind_ia64=$ac_cv_header_libunwind_ia64_h ;; *) - as_fn_error "bad value $with_libunwind_ia64 for GDB --with-libunwind-ia64 option" "$LINENO" 5 + as_fn_error $? "bad value $with_libunwind_ia64 for GDB --with-libunwind-ia64 option" "$LINENO" 5 ;; esac @@ -6802,7 +6890,7 @@ for ac_header in libunwind-ia64.h do : ac_fn_c_check_header_mongrel "$LINENO" "libunwind-ia64.h" "ac_cv_header_libunwind_ia64_h" "$ac_includes_default" -if test "x$ac_cv_header_libunwind_ia64_h" = x""yes; then : +if test "x$ac_cv_header_libunwind_ia64_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBUNWIND_IA64_H 1 _ACEOF @@ -6812,7 +6900,7 @@ done if test x"$ac_cv_header_libunwind_ia64_h" != xyes; then - as_fn_error "GDB option --with-libunwind-ia64 requires libunwind-ia64.h" "$LINENO" 5 + as_fn_error $? "GDB option --with-libunwind-ia64 requires libunwind-ia64.h" "$LINENO" 5 fi CONFIG_OBS="$CONFIG_OBS ia64-libunwind-tdep.o" CONFIG_DEPS="$CONFIG_DEPS ia64-libunwind-tdep.o" @@ -6839,7 +6927,7 @@ yes | no) ;; *) - as_fn_error "bad value $enableval for --enable-profile" "$LINENO" 5 ;; + as_fn_error $? "bad value $enableval for --enable-profile" "$LINENO" 5 ;; esac else enable_profiling=no @@ -6850,8 +6938,7 @@ do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF @@ -6861,7 +6948,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _etext" >&5 $as_echo_n "checking for _etext... " >&6; } -if test "${ac_cv_var__etext+set}" = set; then : +if ${ac_cv_var__etext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -6894,7 +6981,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for etext" >&5 $as_echo_n "checking for etext... " >&6; } -if test "${ac_cv_var_etext+set}" = set; then : +if ${ac_cv_var_etext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -6927,7 +7014,7 @@ fi if test "$enable_profiling" = yes ; then if test $ac_cv_func_monstartup = no || test $ac_cv_func__mcleanup = no; then - as_fn_error "--enable-profiling requires monstartup and _mcleanup" "$LINENO" 5 + as_fn_error $? "--enable-profiling requires monstartup and _mcleanup" "$LINENO" 5 fi PROFILE_CFLAGS=-pg OLD_CFLAGS="$CFLAGS" @@ -6935,7 +7022,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -pg" >&5 $as_echo_n "checking whether $CC supports -pg... " >&6; } -if test "${ac_cv_cc_supports_pg+set}" = set; then : +if ${ac_cv_cc_supports_pg+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -6960,18 +7047,26 @@ $as_echo "$ac_cv_cc_supports_pg" >&6; } if test $ac_cv_cc_supports_pg = no; then - as_fn_error "--enable-profiling requires a compiler which supports -pg" "$LINENO" 5 + as_fn_error $? "--enable-profiling requires a compiler which supports -pg" "$LINENO" 5 fi CFLAGS="$OLD_CFLAGS" fi +CODESIGN_CERT= +# Check whether --enable-codesign was given. +if test "${enable_codesign+set}" = set; then : + enableval=$enable_codesign; CODESIGN_CERT=$enableval +fi + + + # Check whether --with-pkgversion was given. if test "${with_pkgversion+set}" = set; then : withval=$with_pkgversion; case "$withval" in - yes) as_fn_error "package version not specified" "$LINENO" 5 ;; + yes) as_fn_error $? "package version not specified" "$LINENO" 5 ;; no) PKGVERSION= ;; *) PKGVERSION="($withval) " ;; esac @@ -6987,7 +7082,7 @@ # Check whether --with-bugurl was given. if test "${with_bugurl+set}" = set; then : withval=$with_bugurl; case "$withval" in - yes) as_fn_error "bug URL not specified" "$LINENO" 5 ;; + yes) as_fn_error $? "bug URL not specified" "$LINENO" 5 ;; no) BUGURL= ;; *) BUGURL="$withval" @@ -7032,7 +7127,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AWK+set}" = set; then : +if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then @@ -7044,7 +7139,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7085,7 +7180,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then : +if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -7105,7 +7200,7 @@ # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. @@ -7177,7 +7272,7 @@ set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_RANLIB+set}" = set; then : +if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then @@ -7189,7 +7284,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7217,7 +7312,7 @@ set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then @@ -7229,7 +7324,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7270,7 +7365,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_YACC+set}" = set; then : +if ${ac_cv_prog_YACC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$YACC"; then @@ -7282,7 +7377,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_YACC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7313,7 +7408,7 @@ set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AR+set}" = set; then : +if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then @@ -7325,7 +7420,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7353,7 +7448,7 @@ set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : +if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then @@ -7365,7 +7460,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7405,7 +7500,7 @@ set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_DLLTOOL+set}" = set; then : +if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then @@ -7417,7 +7512,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7445,7 +7540,7 @@ set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then : +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then @@ -7457,7 +7552,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7497,7 +7592,7 @@ set dummy ${ac_tool_prefix}windres; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_WINDRES+set}" = set; then : +if ${ac_cv_prog_WINDRES+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$WINDRES"; then @@ -7509,7 +7604,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_WINDRES="${ac_tool_prefix}windres" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7537,7 +7632,7 @@ set dummy windres; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_WINDRES+set}" = set; then : +if ${ac_cv_prog_ac_ct_WINDRES+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_WINDRES"; then @@ -7549,7 +7644,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_WINDRES="windres" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7593,7 +7688,7 @@ set dummy ${ac_tool_prefix}mig; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_MIG+set}" = set; then : +if ${ac_cv_prog_MIG+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MIG"; then @@ -7605,7 +7700,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MIG="${ac_tool_prefix}mig" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7633,7 +7728,7 @@ set dummy mig; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_MIG+set}" = set; then : +if ${ac_cv_prog_ac_ct_MIG+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_MIG"; then @@ -7645,7 +7740,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MIG="mig" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7681,7 +7776,7 @@ fi if test x"$MIG" = x; then - as_fn_error "MIG not found but required for $host hosts" "$LINENO" 5 + as_fn_error $? "MIG not found but required for $host hosts" "$LINENO" 5 fi ;; esac @@ -7693,7 +7788,7 @@ # We might need to link with -lm; most simulators need it. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lm" >&5 $as_echo_n "checking for main in -lm... " >&6; } -if test "${ac_cv_lib_m_main+set}" = set; then : +if ${ac_cv_lib_m_main+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -7721,7 +7816,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_main" >&5 $as_echo "$ac_cv_lib_m_main" >&6; } -if test "x$ac_cv_lib_m_main" = x""yes; then : +if test "x$ac_cv_lib_m_main" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBM 1 _ACEOF @@ -7734,7 +7829,7 @@ # Some systems (e.g. Solaris) have `gethostbyname' in libnsl. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 $as_echo_n "checking for library containing gethostbyname... " >&6; } -if test "${ac_cv_search_gethostbyname+set}" = set; then : +if ${ac_cv_search_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -7768,11 +7863,11 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_gethostbyname+set}" = set; then : + if ${ac_cv_search_gethostbyname+:} false; then : break fi done -if test "${ac_cv_search_gethostbyname+set}" = set; then : +if ${ac_cv_search_gethostbyname+:} false; then : else ac_cv_search_gethostbyname=no @@ -7792,7 +7887,7 @@ # Some systems (e.g. Solaris) have `socketpair' in libsocket. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socketpair" >&5 $as_echo_n "checking for library containing socketpair... " >&6; } -if test "${ac_cv_search_socketpair+set}" = set; then : +if ${ac_cv_search_socketpair+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -7826,11 +7921,11 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_socketpair+set}" = set; then : + if ${ac_cv_search_socketpair+:} false; then : break fi done -if test "${ac_cv_search_socketpair+set}" = set; then : +if ${ac_cv_search_socketpair+:} false; then : else ac_cv_search_socketpair=no @@ -7870,7 +7965,7 @@ # On GNU/kFreeBSD systems, FreeBSD libutil is renamed to libutil-freebsd. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing kinfo_getvmmap" >&5 $as_echo_n "checking for library containing kinfo_getvmmap... " >&6; } -if test "${ac_cv_search_kinfo_getvmmap+set}" = set; then : +if ${ac_cv_search_kinfo_getvmmap+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -7904,11 +7999,11 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_kinfo_getvmmap+set}" = set; then : + if ${ac_cv_search_kinfo_getvmmap+:} false; then : break fi done -if test "${ac_cv_search_kinfo_getvmmap+set}" = set; then : +if ${ac_cv_search_kinfo_getvmmap+:} false; then : else ac_cv_search_kinfo_getvmmap=no @@ -7927,6 +8022,66 @@ fi +# fbsd-nat.c can also use kinfo_getfile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing kinfo_getfile" >&5 +$as_echo_n "checking for library containing kinfo_getfile... " >&6; } +if ${ac_cv_search_kinfo_getfile+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char kinfo_getfile (); +int +main () +{ +return kinfo_getfile (); + ; + return 0; +} +_ACEOF +for ac_lib in '' util util-freebsd; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_kinfo_getfile=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_kinfo_getfile+:} false; then : + break +fi +done +if ${ac_cv_search_kinfo_getfile+:} false; then : + +else + ac_cv_search_kinfo_getfile=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_kinfo_getfile" >&5 +$as_echo "$ac_cv_search_kinfo_getfile" >&6; } +ac_res=$ac_cv_search_kinfo_getfile +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +$as_echo "#define HAVE_KINFO_GETFILE 1" >>confdefs.h + +fi + + if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" @@ -8003,7 +8158,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi -if test "${acl_cv_path_LD+set}" = set; then : +if ${acl_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then @@ -8036,10 +8191,10 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi -test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5 +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -if test "${acl_cv_prog_gnu_ld+set}" = set; then : +if ${acl_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. @@ -8057,7 +8212,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 $as_echo_n "checking for shared library run path origin... " >&6; } -if test "${acl_cv_rpath+set}" = set; then : +if ${acl_cv_rpath+:} false; then : $as_echo_n "(cached) " >&6 else @@ -8475,7 +8630,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 $as_echo_n "checking for iconv... " >&6; } -if test "${am_cv_func_iconv+set}" = set; then : +if ${am_cv_func_iconv+:} false; then : $as_echo_n "(cached) " >&6 else @@ -8616,7 +8771,7 @@ if test "$am_cv_func_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5 $as_echo_n "checking for iconv declaration... " >&6; } - if test "${am_cv_proto_iconv+set}" = set; then : + if ${am_cv_proto_iconv+:} false; then : $as_echo_n "(cached) " >&6 else @@ -8732,7 +8887,7 @@ # a situation. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing waddstr" >&5 $as_echo_n "checking for library containing waddstr... " >&6; } -if test "${ac_cv_search_waddstr+set}" = set; then : +if ${ac_cv_search_waddstr+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -8766,11 +8921,11 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_waddstr+set}" = set; then : + if ${ac_cv_search_waddstr+:} false; then : break fi done -if test "${ac_cv_search_waddstr+set}" = set; then : +if ${ac_cv_search_waddstr+:} false; then : else ac_cv_search_waddstr=no @@ -8803,7 +8958,7 @@ ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)" else if test x"$enable_tui" = xyes; then - as_fn_error "no enhanced curses library found; disable TUI" "$LINENO" 5 + as_fn_error $? "no enhanced curses library found; disable TUI" "$LINENO" 5 else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no enhanced curses library found; disabling TUI" >&5 $as_echo "$as_me: WARNING: no enhanced curses library found; disabling TUI" >&2;} @@ -8830,7 +8985,7 @@ # These are the libraries checked by Readline. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tgetent" >&5 $as_echo_n "checking for library containing tgetent... " >&6; } -if test "${ac_cv_search_tgetent+set}" = set; then : +if ${ac_cv_search_tgetent+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -8864,11 +9019,11 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_tgetent+set}" = set; then : + if ${ac_cv_search_tgetent+:} false; then : break fi done -if test "${ac_cv_search_tgetent+set}" = set; then : +if ${ac_cv_search_tgetent+:} false; then : else ac_cv_search_tgetent=no @@ -8923,7 +9078,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned long long" >&5 $as_echo_n "checking size of unsigned long long... " >&6; } -if test "${ac_cv_sizeof_unsigned_long_long+set}" = set; then : +if ${ac_cv_sizeof_unsigned_long_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned long long))" "ac_cv_sizeof_unsigned_long_long" "$ac_includes_default"; then : @@ -8932,9 +9087,8 @@ if test "$ac_cv_type_unsigned_long_long" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (unsigned long long) -See \`config.log' for more details." "$LINENO" 5; }; } +as_fn_error 77 "cannot compute sizeof (unsigned long long) +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_unsigned_long_long=0 fi @@ -8957,7 +9111,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned long" >&5 $as_echo_n "checking size of unsigned long... " >&6; } -if test "${ac_cv_sizeof_unsigned_long+set}" = set; then : +if ${ac_cv_sizeof_unsigned_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned long))" "ac_cv_sizeof_unsigned_long" "$ac_includes_default"; then : @@ -8966,9 +9120,8 @@ if test "$ac_cv_type_unsigned_long" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (unsigned long) -See \`config.log' for more details." "$LINENO" 5; }; } +as_fn_error 77 "cannot compute sizeof (unsigned long) +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_unsigned_long=0 fi @@ -8991,7 +9144,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned __int128" >&5 $as_echo_n "checking size of unsigned __int128... " >&6; } -if test "${ac_cv_sizeof_unsigned___int128+set}" = set; then : +if ${ac_cv_sizeof_unsigned___int128+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned __int128))" "ac_cv_sizeof_unsigned___int128" "$ac_includes_default"; then : @@ -9000,9 +9153,8 @@ if test "$ac_cv_type_unsigned___int128" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (unsigned __int128) -See \`config.log' for more details." "$LINENO" 5; }; } +as_fn_error 77 "cannot compute sizeof (unsigned __int128) +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_unsigned___int128=0 fi @@ -9036,7 +9188,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 $as_echo_n "checking for library containing dlopen... " >&6; } -if test "${ac_cv_search_dlopen+set}" = set; then : +if ${ac_cv_search_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -9070,11 +9222,11 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_dlopen+set}" = set; then : + if ${ac_cv_search_dlopen+:} false; then : break fi done -if test "${ac_cv_search_dlopen+set}" = set; then : +if ${ac_cv_search_dlopen+:} false; then : else ac_cv_search_dlopen=no @@ -9568,7 +9720,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libexpat" >&5 $as_echo_n "checking for libexpat... " >&6; } -if test "${ac_cv_libexpat+set}" = set; then : +if ${ac_cv_libexpat+:} false; then : $as_echo_n "(cached) " >&6 else @@ -9620,7 +9772,7 @@ if test "$HAVE_LIBEXPAT" != yes; then if test "$with_expat" = yes; then - as_fn_error "expat is missing or unusable" "$LINENO" 5 + as_fn_error $? "expat is missing or unusable" "$LINENO" 5 else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: expat is missing or unusable; some features may be unavailable." >&5 $as_echo "$as_me: WARNING: expat is missing or unusable; some features may be unavailable." >&2;} @@ -9631,7 +9783,7 @@ for ac_func in XML_StopParser do : ac_fn_c_check_func "$LINENO" "XML_StopParser" "ac_cv_func_XML_StopParser" -if test "x$ac_cv_func_XML_StopParser" = x""yes; then : +if test "x$ac_cv_func_XML_StopParser" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_XML_STOPPARSER 1 _ACEOF @@ -10073,7 +10225,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libmpfr" >&5 $as_echo_n "checking for libmpfr... " >&6; } -if test "${ac_cv_libmpfr+set}" = set; then : +if ${ac_cv_libmpfr+:} false; then : $as_echo_n "(cached) " >&6 else @@ -10126,7 +10278,7 @@ if test "$HAVE_LIBMPFR" != yes; then if test "$with_mpfr" = yes; then - as_fn_error "MPFR is missing or unusable" "$LINENO" 5 + as_fn_error $? "MPFR is missing or unusable" "$LINENO" 5 else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MPFR is missing or unusable; some features may be unavailable." >&5 $as_echo "$as_me: WARNING: MPFR is missing or unusable; some features may be unavailable." >&2;} @@ -10185,12 +10337,12 @@ python_prog=${with_python} python_prefix= else - as_fn_error "invalid value for --with-python" "$LINENO" 5 + as_fn_error $? "invalid value for --with-python" "$LINENO" 5 fi ;; */*) # Disallow --with-python=foo/bar. - as_fn_error "invalid value for --with-python" "$LINENO" 5 + as_fn_error $? "invalid value for --with-python" "$LINENO" 5 ;; *) # The user has either specified auto, yes, or the name of the python @@ -10203,7 +10355,7 @@ set dummy python; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_python_prog_path+set}" = set; then : +if ${ac_cv_path_python_prog_path+:} false; then : $as_echo_n "(cached) " >&6 else case $python_prog_path in @@ -10217,7 +10369,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_python_prog_path="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10260,7 +10412,7 @@ set dummy ${python_prog}; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_python_prog_path+set}" = set; then : +if ${ac_cv_path_python_prog_path+:} false; then : $as_echo_n "(cached) " >&6 else case $python_prog_path in @@ -10274,7 +10426,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_python_prog_path="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10298,7 +10450,7 @@ if test "${python_prog_path}" = missing; then - as_fn_error "unable to find python program ${python_prog}" "$LINENO" 5 + as_fn_error $? "unable to find python program ${python_prog}" "$LINENO" 5 fi ;; esac @@ -10312,21 +10464,21 @@ if test $? != 0; then have_python_config=failed if test "${with_python}" != auto; then - as_fn_error "failure running python-config --includes" "$LINENO" 5 + as_fn_error $? "failure running python-config --includes" "$LINENO" 5 fi fi python_libs=`${python_prog} ${srcdir}/python/python-config.py --ldflags` if test $? != 0; then have_python_config=failed if test "${with_python}" != auto; then - as_fn_error "failure running python-config --ldflags" "$LINENO" 5 + as_fn_error $? "failure running python-config --ldflags" "$LINENO" 5 fi fi python_prefix=`${python_prog} ${srcdir}/python/python-config.py --exec-prefix` if test $? != 0; then have_python_config=failed if test "${with_python}" != auto; then - as_fn_error "failure running python-config --exec-prefix" "$LINENO" 5 + as_fn_error $? "failure running python-config --exec-prefix" "$LINENO" 5 fi fi else @@ -10375,7 +10527,7 @@ save_CPPFLAGS=$CPPFLAGS save_LIBS=$LIBS CPPFLAGS="$CPPFLAGS $new_CPPFLAGS" - LIBS="$LIBS $new_LIBS" + LIBS="$new_LIBS $LIBS" found_usable_python=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -10403,7 +10555,7 @@ ;; *) - as_fn_error "unable to determine python version from ${python_libs}" "$LINENO" 5 + as_fn_error $? "unable to determine python version from ${python_libs}" "$LINENO" 5 ;; esac elif test "${have_python_config}" != failed; then @@ -10412,13 +10564,13 @@ version=python2.7 new_CPPFLAGS=${python_includes} - new_LIBS="${python_libs} -lpython2.7" + new_LIBS="-lpython2.7 ${python_libs}" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${version}" >&5 $as_echo_n "checking for ${version}... " >&6; } save_CPPFLAGS=$CPPFLAGS save_LIBS=$LIBS CPPFLAGS="$CPPFLAGS $new_CPPFLAGS" - LIBS="$LIBS $new_LIBS" + LIBS="$new_LIBS $LIBS" found_usable_python=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -10450,13 +10602,13 @@ version=python2.6 new_CPPFLAGS=${python_includes} - new_LIBS="${python_libs} -lpython2.6" + new_LIBS="-lpython2.6 ${python_libs}" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${version}" >&5 $as_echo_n "checking for ${version}... " >&6; } save_CPPFLAGS=$CPPFLAGS save_LIBS=$LIBS CPPFLAGS="$CPPFLAGS $new_CPPFLAGS" - LIBS="$LIBS $new_LIBS" + LIBS="$new_LIBS $LIBS" found_usable_python=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -10488,13 +10640,13 @@ version=python2.5 new_CPPFLAGS=${python_includes} - new_LIBS="${python_libs} -lpython2.5" + new_LIBS="-lpython2.5 ${python_libs}" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${version}" >&5 $as_echo_n "checking for ${version}... " >&6; } save_CPPFLAGS=$CPPFLAGS save_LIBS=$LIBS CPPFLAGS="$CPPFLAGS $new_CPPFLAGS" - LIBS="$LIBS $new_LIBS" + LIBS="$new_LIBS $LIBS" found_usable_python=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -10526,13 +10678,13 @@ version=python2.4 new_CPPFLAGS=${python_includes} - new_LIBS="${python_libs} -lpython2.4" + new_LIBS="-lpython2.4 ${python_libs}" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${version}" >&5 $as_echo_n "checking for ${version}... " >&6; } save_CPPFLAGS=$CPPFLAGS save_LIBS=$LIBS CPPFLAGS="$CPPFLAGS $new_CPPFLAGS" - LIBS="$LIBS $new_LIBS" + LIBS="$new_LIBS $LIBS" found_usable_python=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -10581,14 +10733,14 @@ if test "${have_libpython}" = no; then case "${with_python}" in yes) - as_fn_error "python is missing or unusable" "$LINENO" 5 + as_fn_error $? "python is missing or unusable" "$LINENO" 5 ;; auto) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: python is missing or unusable; some features may be unavailable." >&5 $as_echo "$as_me: WARNING: python is missing or unusable; some features may be unavailable." >&2;} ;; *) - as_fn_error "no usable python found at ${with_python}" "$LINENO" 5 + as_fn_error $? "no usable python found at ${with_python}" "$LINENO" 5 ;; esac else @@ -10711,7 +10863,7 @@ else python_has_threads=yes fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${python_has_threads}" >&5 $as_echo "${python_has_threads}" >&6; } CPPFLAGS="${saved_CPPFLAGS}" @@ -10766,7 +10918,7 @@ set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_pkg_config_prog_path+set}" = set; then : +if ${ac_cv_path_pkg_config_prog_path+:} false; then : $as_echo_n "(cached) " >&6 else case $pkg_config_prog_path in @@ -10780,7 +10932,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_pkg_config_prog_path="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10831,18 +10983,18 @@ fi new_CPPFLAGS=`${pkg_config} --cflags ${guile_version}` if test $? != 0; then - as_fn_error "failure running pkg-config --cflags ${guile_version}" "$LINENO" 5 + as_fn_error $? "failure running pkg-config --cflags ${guile_version}" "$LINENO" 5 fi new_LIBS=`${pkg_config} --libs ${guile_version}` if test $? != 0; then - as_fn_error "failure running pkg-config --libs ${guile_version}" "$LINENO" 5 + as_fn_error $? "failure running pkg-config --libs ${guile_version}" "$LINENO" 5 fi found_usable_guile=${guile_version} break done if test "${found_usable_guile}" = "checking"; then if test "${flag_errors}" = "yes"; then - as_fn_error "unable to find usable guile version from \"${guile_version_list}\"" "$LINENO" 5 + as_fn_error $? "unable to find usable guile version from \"${guile_version_list}\"" "$LINENO" 5 else found_usable_guile=no fi @@ -10873,7 +11025,7 @@ rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_fn_c_check_func "$LINENO" "scm_set_automatic_finalization_enabled" "ac_cv_func_scm_set_automatic_finalization_enabled" -if test "x$ac_cv_func_scm_set_automatic_finalization_enabled" = x""yes; then : +if test "x$ac_cv_func_scm_set_automatic_finalization_enabled" = xyes; then : $as_echo "#define HAVE_GUILE_MANUAL_FINALIZATION 1" >>confdefs.h @@ -10886,8 +11038,8 @@ if test "${flag_errors}" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "linking guile version ${guile_version} test program failed -See \`config.log' for more details." "$LINENO" 5; } +as_fn_error $? "linking guile version ${guile_version} test program failed +See \`config.log' for more details" "$LINENO" 5; } fi fi fi @@ -10898,7 +11050,7 @@ ;; yes) if test "${pkg_config_prog_path}" = "missing"; then - as_fn_error "pkg-config not found" "$LINENO" 5 + as_fn_error $? "pkg-config not found" "$LINENO" 5 fi pkg_config=${pkg_config_prog_path} @@ -10915,18 +11067,18 @@ fi new_CPPFLAGS=`${pkg_config} --cflags ${guile_version}` if test $? != 0; then - as_fn_error "failure running pkg-config --cflags ${guile_version}" "$LINENO" 5 + as_fn_error $? "failure running pkg-config --cflags ${guile_version}" "$LINENO" 5 fi new_LIBS=`${pkg_config} --libs ${guile_version}` if test $? != 0; then - as_fn_error "failure running pkg-config --libs ${guile_version}" "$LINENO" 5 + as_fn_error $? "failure running pkg-config --libs ${guile_version}" "$LINENO" 5 fi found_usable_guile=${guile_version} break done if test "${found_usable_guile}" = "checking"; then if test "${flag_errors}" = "yes"; then - as_fn_error "unable to find usable guile version from \"${guile_version_list}\"" "$LINENO" 5 + as_fn_error $? "unable to find usable guile version from \"${guile_version_list}\"" "$LINENO" 5 else found_usable_guile=no fi @@ -10957,7 +11109,7 @@ rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_fn_c_check_func "$LINENO" "scm_set_automatic_finalization_enabled" "ac_cv_func_scm_set_automatic_finalization_enabled" -if test "x$ac_cv_func_scm_set_automatic_finalization_enabled" = x""yes; then : +if test "x$ac_cv_func_scm_set_automatic_finalization_enabled" = xyes; then : $as_echo "#define HAVE_GUILE_MANUAL_FINALIZATION 1" >>confdefs.h @@ -10970,8 +11122,8 @@ if test "${flag_errors}" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "linking guile version ${guile_version} test program failed -See \`config.log' for more details." "$LINENO" 5; } +as_fn_error $? "linking guile version ${guile_version} test program failed +See \`config.log' for more details" "$LINENO" 5; } fi fi fi @@ -10996,18 +11148,18 @@ fi new_CPPFLAGS=`${pkg_config} --cflags ${guile_version}` if test $? != 0; then - as_fn_error "failure running pkg-config --cflags ${guile_version}" "$LINENO" 5 + as_fn_error $? "failure running pkg-config --cflags ${guile_version}" "$LINENO" 5 fi new_LIBS=`${pkg_config} --libs ${guile_version}` if test $? != 0; then - as_fn_error "failure running pkg-config --libs ${guile_version}" "$LINENO" 5 + as_fn_error $? "failure running pkg-config --libs ${guile_version}" "$LINENO" 5 fi found_usable_guile=${guile_version} break done if test "${found_usable_guile}" = "checking"; then if test "${flag_errors}" = "yes"; then - as_fn_error "unable to find usable guile version from \"${guile_version_list}\"" "$LINENO" 5 + as_fn_error $? "unable to find usable guile version from \"${guile_version_list}\"" "$LINENO" 5 else found_usable_guile=no fi @@ -11038,7 +11190,7 @@ rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_fn_c_check_func "$LINENO" "scm_set_automatic_finalization_enabled" "ac_cv_func_scm_set_automatic_finalization_enabled" -if test "x$ac_cv_func_scm_set_automatic_finalization_enabled" = x""yes; then : +if test "x$ac_cv_func_scm_set_automatic_finalization_enabled" = xyes; then : $as_echo "#define HAVE_GUILE_MANUAL_FINALIZATION 1" >>confdefs.h @@ -11051,8 +11203,8 @@ if test "${flag_errors}" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "linking guile version ${guile_version} test program failed -See \`config.log' for more details." "$LINENO" 5; } +as_fn_error $? "linking guile version ${guile_version} test program failed +See \`config.log' for more details" "$LINENO" 5; } fi fi fi @@ -11060,17 +11212,17 @@ $as_echo "${found_usable_guile}" >&6; } else - as_fn_error "Guile config program not executable: ${with_guile}" "$LINENO" 5 + as_fn_error $? "Guile config program not executable: ${with_guile}" "$LINENO" 5 fi ;; "" | */*) # Disallow --with=guile="" and --with-guile=foo/bar. - as_fn_error "invalid value for --with-guile" "$LINENO" 5 + as_fn_error $? "invalid value for --with-guile" "$LINENO" 5 ;; *) # A space separate list of guile versions to try, in order. if test "${pkg_config_prog_path}" = "missing"; then - as_fn_error "pkg-config not found" "$LINENO" 5 + as_fn_error $? "pkg-config not found" "$LINENO" 5 fi pkg_config=${pkg_config_prog_path} @@ -11087,18 +11239,18 @@ fi new_CPPFLAGS=`${pkg_config} --cflags ${guile_version}` if test $? != 0; then - as_fn_error "failure running pkg-config --cflags ${guile_version}" "$LINENO" 5 + as_fn_error $? "failure running pkg-config --cflags ${guile_version}" "$LINENO" 5 fi new_LIBS=`${pkg_config} --libs ${guile_version}` if test $? != 0; then - as_fn_error "failure running pkg-config --libs ${guile_version}" "$LINENO" 5 + as_fn_error $? "failure running pkg-config --libs ${guile_version}" "$LINENO" 5 fi found_usable_guile=${guile_version} break done if test "${found_usable_guile}" = "checking"; then if test "${flag_errors}" = "yes"; then - as_fn_error "unable to find usable guile version from \"${guile_version_list}\"" "$LINENO" 5 + as_fn_error $? "unable to find usable guile version from \"${guile_version_list}\"" "$LINENO" 5 else found_usable_guile=no fi @@ -11129,7 +11281,7 @@ rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_fn_c_check_func "$LINENO" "scm_set_automatic_finalization_enabled" "ac_cv_func_scm_set_automatic_finalization_enabled" -if test "x$ac_cv_func_scm_set_automatic_finalization_enabled" = x""yes; then : +if test "x$ac_cv_func_scm_set_automatic_finalization_enabled" = xyes; then : $as_echo "#define HAVE_GUILE_MANUAL_FINALIZATION 1" >>confdefs.h @@ -11142,8 +11294,8 @@ if test "${flag_errors}" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "linking guile version ${guile_version} test program failed -See \`config.log' for more details." "$LINENO" 5; } +as_fn_error $? "linking guile version ${guile_version} test program failed +See \`config.log' for more details" "$LINENO" 5; } fi fi fi @@ -11159,7 +11311,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the absolute file name of the 'guild' command" >&5 $as_echo_n "checking for the absolute file name of the 'guild' command... " >&6; } -if test "${ac_cv_guild_program_name+set}" = set; then : +if ${ac_cv_guild_program_name+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_guild_program_name="`"${with_guile}" --variable guild "${guile_version}"`" @@ -11178,7 +11330,7 @@ $as_echo "$ac_cv_guild_program_name" >&6; } if ! "$ac_cv_guild_program_name" --version >&5 2>&5; then - as_fn_error "'$ac_cv_guild_program_name' appears to be unusable" "$LINENO" 5 + as_fn_error $? "'$ac_cv_guild_program_name' appears to be unusable" "$LINENO" 5 fi GUILD="$ac_cv_guild_program_name" @@ -11189,7 +11341,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the absolute file name of the 'guild' command" >&5 $as_echo_n "checking for the absolute file name of the 'guild' command... " >&6; } -if test "${ac_cv_guild_program_name+set}" = set; then : +if ${ac_cv_guild_program_name+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_guild_program_name="`"${pkg_config_prog_path}" --variable guild "${guile_version}"`" @@ -11208,7 +11360,7 @@ $as_echo "$ac_cv_guild_program_name" >&6; } if ! "$ac_cv_guild_program_name" --version >&5 2>&5; then - as_fn_error "'$ac_cv_guild_program_name' appears to be unusable" "$LINENO" 5 + as_fn_error $? "'$ac_cv_guild_program_name' appears to be unusable" "$LINENO" 5 fi GUILD="$ac_cv_guild_program_name" @@ -11229,7 +11381,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether guild supports this host" >&5 $as_echo_n "checking whether guild supports this host... " >&6; } -if test "${ac_cv_guild_ok+set}" = set; then : +if ${ac_cv_guild_ok+:} false; then : $as_echo_n "(cached) " >&6 else echo "$ac_cv_guild_program_name compile $GUILD_TARGET_FLAG -o conftest.go $srcdir/guile/lib/gdb/support.scm" >&5 @@ -11266,7 +11418,7 @@ for ac_func in scm_new_smob do : ac_fn_c_check_func "$LINENO" "scm_new_smob" "ac_cv_func_scm_new_smob" -if test "x$ac_cv_func_scm_new_smob" = x""yes; then : +if test "x$ac_cv_func_scm_new_smob" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SCM_NEW_SMOB 1 _ACEOF @@ -11313,7 +11465,7 @@ enableval=$enable_libmcheck; case "${enableval}" in yes | y) ENABLE_LIBMCHECK="yes" ;; no | n) ENABLE_LIBMCHECK="no" ;; - *) as_fn_error "bad value ${enableval} for --enable-libmcheck" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-libmcheck" "$LINENO" 5 ;; esac fi @@ -11325,7 +11477,7 @@ if test "$ENABLE_LIBMCHECK" = "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lmcheck" >&5 $as_echo_n "checking for main in -lmcheck... " >&6; } -if test "${ac_cv_lib_mcheck_main+set}" = set; then : +if ${ac_cv_lib_mcheck_main+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -11353,7 +11505,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mcheck_main" >&5 $as_echo "$ac_cv_lib_mcheck_main" >&6; } -if test "x$ac_cv_lib_mcheck_main" = x""yes; then : +if test "x$ac_cv_lib_mcheck_main" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBMCHECK 1 _ACEOF @@ -11404,10 +11556,10 @@ else perf_event=no fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext if test "$perf_event" != yes; then if test "$with_intel_pt" = yes; then - as_fn_error "linux/perf_event.h missing or too old" "$LINENO" 5 + as_fn_error $? "linux/perf_event.h missing or too old" "$LINENO" 5 else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: linux/perf_event.h missing or too old; some features may be unavailable." >&5 $as_echo "$as_me: WARNING: linux/perf_event.h missing or too old; some features may be unavailable." >&2;} @@ -11826,7 +11978,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libipt" >&5 $as_echo_n "checking for libipt... " >&6; } -if test "${ac_cv_libipt+set}" = set; then : +if ${ac_cv_libipt+:} false; then : $as_echo_n "(cached) " >&6 else @@ -11878,7 +12030,7 @@ if test "$HAVE_LIBIPT" != yes; then if test "$with_intel_pt" = yes; then - as_fn_error "libipt is missing or unusable" "$LINENO" 5 + as_fn_error $? "libipt is missing or unusable" "$LINENO" 5 else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libipt is missing or unusable; some features may be unavailable." >&5 $as_echo "$as_me: WARNING: libipt is missing or unusable; some features may be unavailable." >&2;} @@ -11889,7 +12041,7 @@ for ac_func in pt_insn_event do : ac_fn_c_check_func "$LINENO" "pt_insn_event" "ac_cv_func_pt_insn_event" -if test "x$ac_cv_func_pt_insn_event" = x""yes; then : +if test "x$ac_cv_func_pt_insn_event" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_PT_INSN_EVENT 1 _ACEOF @@ -11899,7 +12051,7 @@ ac_fn_c_check_member "$LINENO" "struct pt_insn" "enabled" "ac_cv_member_struct_pt_insn_enabled" "#include " -if test "x$ac_cv_member_struct_pt_insn_enabled" = x""yes; then : +if test "x$ac_cv_member_struct_pt_insn_enabled" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_PT_INSN_ENABLED 1 @@ -11909,7 +12061,7 @@ fi ac_fn_c_check_member "$LINENO" "struct pt_insn" "resynced" "ac_cv_member_struct_pt_insn_resynced" "#include " -if test "x$ac_cv_member_struct_pt_insn_resynced" = x""yes; then : +if test "x$ac_cv_member_struct_pt_insn_resynced" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_PT_INSN_RESYNCED 1 @@ -11928,7 +12080,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; then : +if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -12049,8 +12201,7 @@ do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF @@ -12066,7 +12217,7 @@ #endif " -if test "x$ac_cv_header_sys_user_h" = x""yes; then : +if test "x$ac_cv_header_sys_user_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_USER_H 1 _ACEOF @@ -12080,8 +12231,7 @@ do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF @@ -12097,7 +12247,7 @@ #endif " -if test "x$ac_cv_header_term_h" = x""yes; then : +if test "x$ac_cv_header_term_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_TERM_H 1 _ACEOF @@ -12114,7 +12264,7 @@ # Check for presence and size of long long. ac_fn_c_check_type "$LINENO" "long long" "ac_cv_type_long_long" "$ac_includes_default" -if test "x$ac_cv_type_long_long" = x""yes; then : +if test "x$ac_cv_type_long_long" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LONG_LONG 1 @@ -12126,7 +12276,7 @@ # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 $as_echo_n "checking size of long long... " >&6; } -if test "${ac_cv_sizeof_long_long+set}" = set; then : +if ${ac_cv_sizeof_long_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then : @@ -12135,9 +12285,8 @@ if test "$ac_cv_type_long_long" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (long long) -See \`config.log' for more details." "$LINENO" 5; }; } +as_fn_error 77 "cannot compute sizeof (long long) +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long_long=0 fi @@ -12157,8 +12306,9 @@ fi - ac_fn_c_check_decl "$LINENO" "basename(char *)" "ac_cv_have_decl_basename_char_p_" "$ac_includes_default" -if test "x$ac_cv_have_decl_basename_char_p_" = x""yes; then : + as_ac_Symbol=`$as_echo "ac_cv_have_decl_basename(char *)" | $as_tr_sh` +ac_fn_c_check_decl "$LINENO" "basename(char *)" "$as_ac_Symbol" "$ac_includes_default" +if eval test \"x\$"$as_ac_Symbol"\" = x"yes"; then : ac_have_decl=1 else ac_have_decl=0 @@ -12168,7 +12318,7 @@ #define HAVE_DECL_BASENAME $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "ffs" "ac_cv_have_decl_ffs" "$ac_includes_default" -if test "x$ac_cv_have_decl_ffs" = x""yes; then : +if test "x$ac_cv_have_decl_ffs" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -12178,7 +12328,7 @@ #define HAVE_DECL_FFS $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "asprintf" "ac_cv_have_decl_asprintf" "$ac_includes_default" -if test "x$ac_cv_have_decl_asprintf" = x""yes; then : +if test "x$ac_cv_have_decl_asprintf" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -12188,7 +12338,7 @@ #define HAVE_DECL_ASPRINTF $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "vasprintf" "ac_cv_have_decl_vasprintf" "$ac_includes_default" -if test "x$ac_cv_have_decl_vasprintf" = x""yes; then : +if test "x$ac_cv_have_decl_vasprintf" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -12198,7 +12348,7 @@ #define HAVE_DECL_VASPRINTF $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "snprintf" "ac_cv_have_decl_snprintf" "$ac_includes_default" -if test "x$ac_cv_have_decl_snprintf" = x""yes; then : +if test "x$ac_cv_have_decl_snprintf" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -12208,7 +12358,7 @@ #define HAVE_DECL_SNPRINTF $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "vsnprintf" "ac_cv_have_decl_vsnprintf" "$ac_includes_default" -if test "x$ac_cv_have_decl_vsnprintf" = x""yes; then : +if test "x$ac_cv_have_decl_vsnprintf" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -12219,7 +12369,7 @@ _ACEOF ac_fn_c_check_decl "$LINENO" "strtol" "ac_cv_have_decl_strtol" "$ac_includes_default" -if test "x$ac_cv_have_decl_strtol" = x""yes; then : +if test "x$ac_cv_have_decl_strtol" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -12229,7 +12379,7 @@ #define HAVE_DECL_STRTOL $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "strtoul" "ac_cv_have_decl_strtoul" "$ac_includes_default" -if test "x$ac_cv_have_decl_strtoul" = x""yes; then : +if test "x$ac_cv_have_decl_strtoul" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -12239,7 +12389,7 @@ #define HAVE_DECL_STRTOUL $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "strtoll" "ac_cv_have_decl_strtoll" "$ac_includes_default" -if test "x$ac_cv_have_decl_strtoll" = x""yes; then : +if test "x$ac_cv_have_decl_strtoll" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -12249,7 +12399,7 @@ #define HAVE_DECL_STRTOLL $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "strtoull" "ac_cv_have_decl_strtoull" "$ac_includes_default" -if test "x$ac_cv_have_decl_strtoull" = x""yes; then : +if test "x$ac_cv_have_decl_strtoull" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -12260,7 +12410,7 @@ _ACEOF ac_fn_c_check_decl "$LINENO" "strverscmp" "ac_cv_have_decl_strverscmp" "$ac_includes_default" -if test "x$ac_cv_have_decl_strverscmp" = x""yes; then : +if test "x$ac_cv_have_decl_strverscmp" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -12273,7 +12423,7 @@ ac_fn_c_check_decl "$LINENO" "free" "ac_cv_have_decl_free" "$ac_includes_default" -if test "x$ac_cv_have_decl_free" = x""yes; then : +if test "x$ac_cv_have_decl_free" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -12283,7 +12433,7 @@ #define HAVE_DECL_FREE $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "malloc" "ac_cv_have_decl_malloc" "$ac_includes_default" -if test "x$ac_cv_have_decl_malloc" = x""yes; then : +if test "x$ac_cv_have_decl_malloc" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -12293,7 +12443,7 @@ #define HAVE_DECL_MALLOC $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "realloc" "ac_cv_have_decl_realloc" "$ac_includes_default" -if test "x$ac_cv_have_decl_realloc" = x""yes; then : +if test "x$ac_cv_have_decl_realloc" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -12303,7 +12453,7 @@ #define HAVE_DECL_REALLOC $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "snprintf" "ac_cv_have_decl_snprintf" "$ac_includes_default" -if test "x$ac_cv_have_decl_snprintf" = x""yes; then : +if test "x$ac_cv_have_decl_snprintf" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -12316,7 +12466,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 $as_echo_n "checking for LC_MESSAGES... " >&6; } -if test "${am_cv_val_LC_MESSAGES+set}" = set; then : +if ${am_cv_val_LC_MESSAGES+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -12352,7 +12502,7 @@ # ----------------------- # ac_fn_c_check_member "$LINENO" "struct stat" "st_blocks" "ac_cv_member_struct_stat_st_blocks" "$ac_includes_default" -if test "x$ac_cv_member_struct_stat_st_blocks" = x""yes; then : +if test "x$ac_cv_member_struct_stat_st_blocks" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_BLOCKS 1 @@ -12361,7 +12511,7 @@ fi ac_fn_c_check_member "$LINENO" "struct stat" "st_blksize" "ac_cv_member_struct_stat_st_blksize" "$ac_includes_default" -if test "x$ac_cv_member_struct_stat_st_blksize" = x""yes; then : +if test "x$ac_cv_member_struct_stat_st_blksize" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 @@ -12379,7 +12529,7 @@ #include " -if test "x$ac_cv_type_socklen_t" = x""yes; then : +if test "x$ac_cv_type_socklen_t" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SOCKLEN_T 1 @@ -12395,7 +12545,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } -if test "${ac_cv_c_const+set}" = set; then : +if ${ac_cv_c_const+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -12404,11 +12554,11 @@ int main () { -/* FIXME: Include the comments suggested by Paul. */ + #ifndef __cplusplus - /* Ultrix mips cc rejects this. */ + /* Ultrix mips cc rejects this sort of thing. */ typedef int charset[2]; - const charset cs; + const charset cs = { 0, 0 }; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; @@ -12425,8 +12575,9 @@ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; - { /* SCO 3.2v4 cc rejects this. */ - char *t; + { /* SCO 3.2v4 cc rejects this sort of thing. */ + char tx; + char *t = &tx; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; @@ -12442,10 +12593,10 @@ iptr p = 0; ++p; } - { /* AIX XL C 1.02.0.0 rejects this saying + { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ - struct s { int j; const int *ap[3]; }; - struct s *b; b->j = 5; + struct s { int j; const int *ap[3]; } bx; + struct s *b = &bx; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; @@ -12475,7 +12626,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } -if test "${ac_cv_c_inline+set}" = set; then : +if ${ac_cv_c_inline+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no @@ -12517,7 +12668,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 $as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if test "${ac_cv_c_bigendian+set}" = set; then : +if ${ac_cv_c_bigendian+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_bigendian=unknown @@ -12735,7 +12886,7 @@ ;; #( *) - as_fn_error "unknown endianness + as_fn_error $? "unknown endianness presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; esac @@ -12744,12 +12895,15 @@ # Checks for library functions. # # ------------------------------ # -for ac_header in stdlib.h unistd.h + + + + for ac_header in $ac_header_list do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF @@ -12758,10 +12912,17 @@ done + + + + + + + for ac_func in getpagesize do : ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize" -if test "x$ac_cv_func_getpagesize" = x""yes; then : +if test "x$ac_cv_func_getpagesize" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETPAGESIZE 1 _ACEOF @@ -12771,7 +12932,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5 $as_echo_n "checking for working mmap... " >&6; } -if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then : +if ${ac_cv_func_mmap_fixed_mapped+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -12814,11 +12975,6 @@ /* This mess was copied from the GNU getpagesize.h. */ #ifndef HAVE_GETPAGESIZE -/* Assume that all systems that can run configure have sys/param.h. */ -# ifndef HAVE_SYS_PARAM_H -# define HAVE_SYS_PARAM_H 1 -# endif - # ifdef _SC_PAGESIZE # define getpagesize() sysconf(_SC_PAGESIZE) # else /* no _SC_PAGESIZE */ @@ -12853,8 +13009,9 @@ main () { char *data, *data2, *data3; + const char *cdata2; int i, pagesize; - int fd; + int fd, fd2; pagesize = getpagesize (); @@ -12867,27 +13024,41 @@ umask (0); fd = creat ("conftest.mmap", 0600); if (fd < 0) - return 1; + return 2; if (write (fd, data, pagesize) != pagesize) - return 1; + return 3; close (fd); + /* Next, check that the tail of a page is zero-filled. File must have + non-zero length, otherwise we risk SIGBUS for entire page. */ + fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600); + if (fd2 < 0) + return 4; + cdata2 = ""; + if (write (fd2, cdata2, 1) != 1) + return 5; + data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L); + if (data2 == MAP_FAILED) + return 6; + for (i = 0; i < pagesize; ++i) + if (*(data2 + i)) + return 7; + close (fd2); + if (munmap (data2, pagesize)) + return 8; + /* Next, try to mmap the file at a fixed address which already has something else allocated at it. If we can, also make sure that we see the same garbage. */ fd = open ("conftest.mmap", O_RDWR); if (fd < 0) - return 1; - data2 = (char *) malloc (2 * pagesize); - if (!data2) - return 1; - data2 += (pagesize - ((long int) data2 & (pagesize - 1))) & (pagesize - 1); + return 9; if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_FIXED, fd, 0L)) - return 1; + return 10; for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data2 + i)) - return 1; + return 11; /* Finally, make sure that changes to the mapped area do not percolate back to the file as seen by read(). (This is a bug on @@ -12896,12 +13067,12 @@ *(data2 + i) = *(data2 + i) + 1; data3 = (char *) malloc (pagesize); if (!data3) - return 1; + return 12; if (read (fd, data3, pagesize) != pagesize) - return 1; + return 13; for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data3 + i)) - return 1; + return 14; close (fd); return 0; } @@ -12923,10 +13094,10 @@ $as_echo "#define HAVE_MMAP 1" >>confdefs.h fi -rm -f conftest.mmap +rm -f conftest.mmap conftest.txt ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" -if test "x$ac_cv_type_pid_t" = x""yes; then : +if test "x$ac_cv_type_pid_t" = xyes; then : else @@ -12939,7 +13110,7 @@ for ac_header in vfork.h do : ac_fn_c_check_header_mongrel "$LINENO" "vfork.h" "ac_cv_header_vfork_h" "$ac_includes_default" -if test "x$ac_cv_header_vfork_h" = x""yes; then : +if test "x$ac_cv_header_vfork_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_VFORK_H 1 _ACEOF @@ -12952,8 +13123,7 @@ do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF @@ -12964,7 +13134,7 @@ if test "x$ac_cv_func_fork" = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5 $as_echo_n "checking for working fork... " >&6; } -if test "${ac_cv_func_fork_works+set}" = set; then : +if ${ac_cv_func_fork_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -13017,7 +13187,7 @@ if test "x$ac_cv_func_vfork" = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5 $as_echo_n "checking for working vfork... " >&6; } -if test "${ac_cv_func_vfork_works+set}" = set; then : +if ${ac_cv_func_vfork_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -13152,7 +13322,7 @@ for ac_func in getauxval getrusage getuid getgid \ pipe poll pread pread64 pwrite resize_term \ - sbrk setpgid setpgrp setsid \ + sbrk getpgid setpgid setpgrp setsid \ sigaction sigprocmask sigsetmask socketpair \ ttrace wborder wresize setlocale iconvlist libiconvlist btowc \ setrlimit getrlimit posix_madvise waitpid \ @@ -13160,8 +13330,7 @@ do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF @@ -13172,7 +13341,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5 $as_echo_n "checking for nl_langinfo and CODESET... " >&6; } -if test "${am_cv_langinfo_codeset+set}" = set; then : +if ${am_cv_langinfo_codeset+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -13203,10 +13372,21 @@ fi +ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" +if test "x$ac_cv_type_size_t" = xyes; then : + +else + +cat >>confdefs.h <<_ACEOF +#define size_t unsigned int +_ACEOF + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; then : +if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -13320,7 +13500,7 @@ # for constant arguments. Useless! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 $as_echo_n "checking for working alloca.h... " >&6; } -if test "${ac_cv_working_alloca_h+set}" = set; then : +if ${ac_cv_working_alloca_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -13353,7 +13533,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 $as_echo_n "checking for alloca... " >&6; } -if test "${ac_cv_func_alloca_works+set}" = set; then : +if ${ac_cv_func_alloca_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -13372,7 +13552,7 @@ #pragma alloca # else # ifndef alloca /* predefined by HP cc +Olibcalls */ -char *alloca (); +void *alloca (size_t); # endif # endif # endif @@ -13416,7 +13596,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 $as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } -if test "${ac_cv_os_cray+set}" = set; then : +if ${ac_cv_os_cray+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -13443,8 +13623,7 @@ for ac_func in _getb67 GETB67 getb67; do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define CRAY_STACKSEG_END $ac_func @@ -13458,7 +13637,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 $as_echo_n "checking stack direction for C alloca... " >&6; } -if test "${ac_cv_c_stack_direction+set}" = set; then : +if ${ac_cv_c_stack_direction+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -13468,23 +13647,20 @@ /* end confdefs.h. */ $ac_includes_default int -find_stack_direction () +find_stack_direction (int *addr, int depth) { - static char *addr = 0; - auto char dummy; - if (addr == 0) - { - addr = &dummy; - return find_stack_direction (); - } - else - return (&dummy > addr) ? 1 : -1; + int dir, dummy = 0; + if (! addr) + addr = &dummy; + *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; + dir = depth ? find_stack_direction (addr, depth - 1) : 0; + return dir + dummy; } int -main () +main (int argc, char **argv) { - return find_stack_direction () < 0; + return find_stack_direction (0, argc + !argv + 20) < 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : @@ -13510,7 +13686,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5 $as_echo_n "checking for nl_langinfo and CODESET... " >&6; } -if test "${am_cv_langinfo_codeset+set}" = set; then : +if ${am_cv_langinfo_codeset+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -13546,8 +13722,7 @@ do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF @@ -13561,8 +13736,7 @@ do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF @@ -13572,7 +13746,7 @@ ac_fn_c_check_decl "$LINENO" "strerror" "ac_cv_have_decl_strerror" "$ac_includes_default" -if test "x$ac_cv_have_decl_strerror" = x""yes; then : +if test "x$ac_cv_have_decl_strerror" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -13582,7 +13756,7 @@ #define HAVE_DECL_STRERROR $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "strstr" "ac_cv_have_decl_strstr" "$ac_includes_default" -if test "x$ac_cv_have_decl_strstr" = x""yes; then : +if test "x$ac_cv_have_decl_strstr" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -13595,7 +13769,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sigsetjmp" >&5 $as_echo_n "checking for sigsetjmp... " >&6; } -if test "${gdb_cv_func_sigsetjmp+set}" = set; then : +if ${gdb_cv_func_sigsetjmp+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -13634,8 +13808,7 @@ do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF @@ -13657,7 +13830,7 @@ # There is no point in checking if we don't have a prototype. ac_fn_c_check_decl "$LINENO" "ptrace" "ac_cv_have_decl_ptrace" "$gdb_ptrace_headers " -if test "x$ac_cv_have_decl_ptrace" = x""yes; then : +if test "x$ac_cv_have_decl_ptrace" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -13679,7 +13852,7 @@ # empty argument list, so check for that explicitly. { $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of ptrace" >&5 $as_echo_n "checking return type of ptrace... " >&6; } -if test "${gdb_cv_func_ptrace_ret+set}" = set; then : +if ${gdb_cv_func_ptrace_ret+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -13726,7 +13899,7 @@ # Check argument types. { $as_echo "$as_me:${as_lineno-$LINENO}: checking types of arguments for ptrace" >&5 $as_echo_n "checking types of arguments for ptrace... " >&6; } -if test "${gdb_cv_func_ptrace_args+set}" = set; then : +if ${gdb_cv_func_ptrace_args+:} false; then : $as_echo_n "(cached) " >&6 else @@ -13833,11 +14006,11 @@ if test "$cross_compiling" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether setpgrp takes no argument" >&5 $as_echo_n "checking whether setpgrp takes no argument... " >&6; } -if test "${ac_cv_func_setpgrp_void+set}" = set; then : +if ${ac_cv_func_setpgrp_void+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : - as_fn_error "cannot check setpgrp when cross compiling" "$LINENO" 5 + as_fn_error $? "cannot check setpgrp when cross compiling" "$LINENO" 5 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -13874,7 +14047,7 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether setpgrp takes no argument" >&5 $as_echo_n "checking whether setpgrp takes no argument... " >&6; } -if test "${ac_cv_func_setpgrp_void+set}" = set; then : +if ${ac_cv_func_setpgrp_void+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -13917,7 +14090,7 @@ # using the included regex. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU regex" >&5 $as_echo_n "checking for GNU regex... " >&6; } -if test "${gdb_cv_have_gnu_regex+set}" = set; then : +if ${gdb_cv_have_gnu_regex+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -13966,7 +14139,7 @@ #include " -if test "x$ac_cv_member_struct_thread_td_pcb" = x""yes; then : +if test "x$ac_cv_member_struct_thread_td_pcb" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_THREAD_TD_PCB 1 @@ -13979,7 +14152,7 @@ # See if defines `struct lwp`. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct lwp" >&5 $as_echo_n "checking for struct lwp... " >&6; } -if test "${gdb_cv_struct_lwp+set}" = set; then : +if ${gdb_cv_struct_lwp+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14013,7 +14186,7 @@ # See if degines `struct reg'. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct reg in machine/reg.h" >&5 $as_echo_n "checking for struct reg in machine/reg.h... " >&6; } -if test "${gdb_cv_struct_reg+set}" = set; then : +if ${gdb_cv_struct_reg+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14048,7 +14221,7 @@ ac_fn_c_check_member "$LINENO" "struct reg" "r_fs" "ac_cv_member_struct_reg_r_fs" "#include #include " -if test "x$ac_cv_member_struct_reg_r_fs" = x""yes; then : +if test "x$ac_cv_member_struct_reg_r_fs" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_REG_R_FS 1 @@ -14059,7 +14232,7 @@ ac_fn_c_check_member "$LINENO" "struct reg" "r_gs" "ac_cv_member_struct_reg_r_gs" "#include #include " -if test "x$ac_cv_member_struct_reg_r_gs" = x""yes; then : +if test "x$ac_cv_member_struct_reg_r_gs" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_REG_R_GS 1 @@ -14075,7 +14248,7 @@ ac_fn_c_check_member "$LINENO" "struct user_regs_struct" "fs_base" "ac_cv_member_struct_user_regs_struct_fs_base" "#include #include " -if test "x$ac_cv_member_struct_user_regs_struct_fs_base" = x""yes; then : +if test "x$ac_cv_member_struct_user_regs_struct_fs_base" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_USER_REGS_STRUCT_FS_BASE 1 @@ -14086,7 +14259,7 @@ ac_fn_c_check_member "$LINENO" "struct user_regs_struct" "gs_base" "ac_cv_member_struct_user_regs_struct_gs_base" "#include #include " -if test "x$ac_cv_member_struct_user_regs_struct_gs_base" = x""yes; then : +if test "x$ac_cv_member_struct_user_regs_struct_gs_base" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_USER_REGS_STRUCT_GS_BASE 1 @@ -14099,7 +14272,7 @@ # See if provides the PTRACE_GETREGS request. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PTRACE_GETREGS" >&5 $as_echo_n "checking for PTRACE_GETREGS... " >&6; } -if test "${gdb_cv_have_ptrace_getregs+set}" = set; then : +if ${gdb_cv_have_ptrace_getregs+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14132,7 +14305,7 @@ # See if provides the PTRACE_GETFPXREGS request. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PTRACE_GETFPXREGS" >&5 $as_echo_n "checking for PTRACE_GETFPXREGS... " >&6; } -if test "${gdb_cv_have_ptrace_getfpxregs+set}" = set; then : +if ${gdb_cv_have_ptrace_getfpxregs+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14165,7 +14338,7 @@ # See if provides the PT_GETDBREGS request. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PT_GETDBREGS" >&5 $as_echo_n "checking for PT_GETDBREGS... " >&6; } -if test "${gdb_cv_have_pt_getdbregs+set}" = set; then : +if ${gdb_cv_have_pt_getdbregs+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14199,7 +14372,7 @@ # See if provides the PT_GETXMMREGS request. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PT_GETXMMREGS" >&5 $as_echo_n "checking for PT_GETXMMREGS... " >&6; } -if test "${gdb_cv_have_pt_getxmmregs+set}" = set; then : +if ${gdb_cv_have_pt_getxmmregs+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14235,7 +14408,7 @@ # `struct ptrace_lwpinfo'. ac_fn_c_check_member "$LINENO" "struct ptrace_lwpinfo" "pl_tdname" "ac_cv_member_struct_ptrace_lwpinfo_pl_tdname" "#include " -if test "x$ac_cv_member_struct_ptrace_lwpinfo_pl_tdname" = x""yes; then : +if test "x$ac_cv_member_struct_ptrace_lwpinfo_pl_tdname" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_PTRACE_LWPINFO_PL_TDNAME 1 @@ -14250,7 +14423,7 @@ # FreeBSD 10.3. ac_fn_c_check_member "$LINENO" "struct ptrace_lwpinfo" "pl_syscall_code" "ac_cv_member_struct_ptrace_lwpinfo_pl_syscall_code" "#include " -if test "x$ac_cv_member_struct_ptrace_lwpinfo_pl_syscall_code" = x""yes; then : +if test "x$ac_cv_member_struct_ptrace_lwpinfo_pl_syscall_code" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_PTRACE_LWPINFO_PL_SYSCALL_CODE 1 @@ -14263,7 +14436,7 @@ if test "$ac_cv_header_sys_procfs_h" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gregset_t in sys/procfs.h" >&5 $as_echo_n "checking for gregset_t in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_gregset_t+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_gregset_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14300,7 +14473,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fpregset_t in sys/procfs.h" >&5 $as_echo_n "checking for fpregset_t in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_fpregset_t+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_fpregset_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14337,7 +14510,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prgregset_t in sys/procfs.h" >&5 $as_echo_n "checking for prgregset_t in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_prgregset_t+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_prgregset_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14374,7 +14547,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prfpregset_t in sys/procfs.h" >&5 $as_echo_n "checking for prfpregset_t in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_prfpregset_t+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_prfpregset_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14411,7 +14584,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prgregset32_t in sys/procfs.h" >&5 $as_echo_n "checking for prgregset32_t in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_prgregset32_t+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_prgregset32_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14448,7 +14621,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lwpid_t in sys/procfs.h" >&5 $as_echo_n "checking for lwpid_t in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_lwpid_t+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_lwpid_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14485,7 +14658,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for psaddr_t in sys/procfs.h" >&5 $as_echo_n "checking for psaddr_t in sys/procfs.h... " >&6; } - if test "${bfd_cv_have_sys_procfs_type_psaddr_t+set}" = set; then : + if ${bfd_cv_have_sys_procfs_type_psaddr_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14526,7 +14699,7 @@ if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether prfpregset_t type is broken" >&5 $as_echo_n "checking whether prfpregset_t type is broken... " >&6; } - if test "${gdb_cv_prfpregset_t_broken+set}" = set; then : + if ${gdb_cv_prfpregset_t_broken+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -14567,7 +14740,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long support in compiler" >&5 $as_echo_n "checking for long long support in compiler... " >&6; } -if test "${gdb_cv_c_long_long+set}" = set; then : +if ${gdb_cv_c_long_long+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14592,14 +14765,14 @@ $as_echo "$gdb_cv_c_long_long" >&6; } if test $gdb_cv_c_long_long != yes; then # libdecnumber requires long long. - as_fn_error "Compiler must support long long for GDB." "$LINENO" 5 + as_fn_error $? "Compiler must support long long for GDB." "$LINENO" 5 fi # Check if the compiler and runtime support printing long longs. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long support in printf" >&5 $as_echo_n "checking for long long support in printf... " >&6; } -if test "${gdb_cv_printf_has_long_long+set}" = set; then : +if ${gdb_cv_printf_has_long_long+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -14645,7 +14818,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for decfloat support in printf" >&5 $as_echo_n "checking for decfloat support in printf... " >&6; } -if test "${gdb_cv_printf_has_decfloat+set}" = set; then : +if ${gdb_cv_printf_has_decfloat+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -14692,7 +14865,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long double support in compiler" >&5 $as_echo_n "checking for long double support in compiler... " >&6; } -if test "${gdb_cv_c_long_double+set}" = set; then : +if ${gdb_cv_c_long_double+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14718,7 +14891,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long double support in printf" >&5 $as_echo_n "checking for long double support in printf... " >&6; } -if test "${gdb_cv_printf_has_long_double+set}" = set; then : +if ${gdb_cv_printf_has_long_double+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -14760,7 +14933,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long double support in scanf" >&5 $as_echo_n "checking for long double support in scanf... " >&6; } -if test "${gdb_cv_scanf_has_long_double+set}" = set; then : +if ${gdb_cv_scanf_has_long_double+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -14802,7 +14975,7 @@ aix*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -bbigtoc option" >&5 $as_echo_n "checking for -bbigtoc option... " >&6; } -if test "${gdb_cv_bigtoc+set}" = set; then : +if ${gdb_cv_bigtoc+:} false; then : $as_echo_n "(cached) " >&6 else @@ -14934,7 +15107,7 @@ aix*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for AiX thread debugging library" >&5 $as_echo_n "checking for AiX thread debugging library... " >&6; } - if test "${gdb_cv_have_aix_thread_debug+set}" = set; then : + if ${gdb_cv_have_aix_thread_debug+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14970,7 +15143,7 @@ # with AIX 6.x). ac_fn_c_check_decl "$LINENO" "getthrds" "ac_cv_have_decl_getthrds" "#include " -if test "x$ac_cv_have_decl_getthrds" = x""yes; then : +if test "x$ac_cv_have_decl_getthrds" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -14989,7 +15162,7 @@ if test "x$ac_cv_header_thread_db_h" = "xyes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether has TD_NOTALLOC" >&5 $as_echo_n "checking whether has TD_NOTALLOC... " >&6; } -if test "${gdb_cv_thread_db_h_has_td_notalloc+set}" = set; then : +if ${gdb_cv_thread_db_h_has_td_notalloc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15016,7 +15189,7 @@ $as_echo "$gdb_cv_thread_db_h_has_td_notalloc" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether has TD_VERSION" >&5 $as_echo_n "checking whether has TD_VERSION... " >&6; } -if test "${gdb_cv_thread_db_h_has_td_version+set}" = set; then : +if ${gdb_cv_thread_db_h_has_td_version+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15043,7 +15216,7 @@ $as_echo "$gdb_cv_thread_db_h_has_td_version" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether has TD_NOTLS" >&5 $as_echo_n "checking whether has TD_NOTLS... " >&6; } -if test "${gdb_cv_thread_db_h_has_td_notls+set}" = set; then : +if ${gdb_cv_thread_db_h_has_td_notls+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15087,7 +15260,7 @@ ac_fn_c_check_decl "$LINENO" "ADDR_NO_RANDOMIZE" "ac_cv_have_decl_ADDR_NO_RANDOMIZE" "#include " -if test "x$ac_cv_have_decl_ADDR_NO_RANDOMIZE" = x""yes; then : +if test "x$ac_cv_have_decl_ADDR_NO_RANDOMIZE" = xyes; then : ac_have_decl=1 else ac_have_decl=0 @@ -15277,7 +15450,7 @@ enableval=$enable_werror; case "${enableval}" in yes | y) ERROR_ON_WARNING="yes" ;; no | n) ERROR_ON_WARNING="no" ;; - *) as_fn_error "bad value ${enableval} for --enable-werror" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-werror" "$LINENO" 5 ;; esac fi @@ -15298,7 +15471,11 @@ -Wno-switch -Wno-char-subscripts \ -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable \ -Wno-sign-compare -Wno-narrowing -Wno-error=maybe-uninitialized \ --Wno-mismatched-tags" +-Wno-mismatched-tags \ +-Wno-error=deprecated-register \ +-Wsuggest-override \ +-Wimplicit-fallthrough=3 \ +-Wduplicated-cond" case "${host}" in *-*-mingw32*) @@ -15415,7 +15592,7 @@ # In the Cygwin environment, we need some additional flags. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cygwin" >&5 $as_echo_n "checking for cygwin... " >&6; } -if test "${gdb_cv_os_cygwin+set}" = set; then : +if ${gdb_cv_os_cygwin+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15482,7 +15659,7 @@ LIBS="-lbfd -liberty -lz $intl $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ELF support in BFD" >&5 $as_echo_n "checking for ELF support in BFD... " >&6; } -if test "${gdb_cv_var_elf+set}" = set; then : +if ${gdb_cv_var_elf+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15521,7 +15698,7 @@ if test "$plugins" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 $as_echo_n "checking for library containing dlopen... " >&6; } -if test "${ac_cv_search_dlopen+set}" = set; then : +if ${ac_cv_search_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -15555,11 +15732,11 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_dlopen+set}" = set; then : + if ${ac_cv_search_dlopen+:} false; then : break fi done -if test "${ac_cv_search_dlopen+set}" = set; then : +if ${ac_cv_search_dlopen+:} false; then : else ac_cv_search_dlopen=no @@ -15593,7 +15770,7 @@ LIBS="-lbfd -liberty -lz $intl $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Mach-O support in BFD" >&5 $as_echo_n "checking for Mach-O support in BFD... " >&6; } -if test "${gdb_cv_var_macho+set}" = set; then : +if ${gdb_cv_var_macho+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -16058,7 +16235,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for liblzma" >&5 $as_echo_n "checking for liblzma... " >&6; } -if test "${ac_cv_liblzma+set}" = set; then : +if ${ac_cv_liblzma+:} false; then : $as_echo_n "(cached) " >&6 else @@ -16112,7 +16289,7 @@ if test "$HAVE_LIBLZMA" != yes; then if test "$with_lzma" = yes; then - as_fn_error "missing liblzma for --with-lzma" "$LINENO" 5 + as_fn_error $? "missing liblzma for --with-lzma" "$LINENO" 5 fi fi fi @@ -16164,7 +16341,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Tcl configuration" >&5 $as_echo_n "checking for Tcl configuration... " >&6; } - if test "${ac_cv_c_tclconfig+set}" = set; then : + if ${ac_cv_c_tclconfig+:} false; then : $as_echo_n "(cached) " >&6 else @@ -16178,7 +16355,7 @@ if test -f "${with_tclconfig}/tclConfig.sh" ; then ac_cv_c_tclconfig=`(cd ${with_tclconfig}; pwd)` else - as_fn_error "${with_tclconfig} directory doesn't contain tclConfig.sh" "$LINENO" 5 + as_fn_error $? "${with_tclconfig} directory doesn't contain tclConfig.sh" "$LINENO" 5 fi fi @@ -16284,7 +16461,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Tk configuration" >&5 $as_echo_n "checking for Tk configuration... " >&6; } - if test "${ac_cv_c_tkconfig+set}" = set; then : + if ${ac_cv_c_tkconfig+:} false; then : $as_echo_n "(cached) " >&6 else @@ -16294,7 +16471,7 @@ if test -f "${with_tkconfig}/tkConfig.sh" ; then ac_cv_c_tkconfig=`(cd ${with_tkconfig}; pwd)` else - as_fn_error "${with_tkconfig} directory doesn't contain tkConfig.sh" "$LINENO" 5 + as_fn_error $? "${with_tkconfig} directory doesn't contain tkConfig.sh" "$LINENO" 5 fi fi @@ -16477,7 +16654,7 @@ fi if test x"${private_dir}" = x; then - as_fn_error "could not find private Tcl headers" "$LINENO" 5 + as_fn_error $? "could not find private Tcl headers" "$LINENO" 5 else TCL_PRIVATE_INCLUDE="-I${private_dir}" { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${private_dir}" >&5 @@ -16586,7 +16763,7 @@ fi if test x"${private_dir}" = x; then - as_fn_error "could not find Tk private headers" "$LINENO" 5 + as_fn_error $? "could not find Tk private headers" "$LINENO" 5 else TK_PRIVATE_INCLUDE="-I${private_dir}" { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${private_dir}" >&5 @@ -16658,8 +16835,8 @@ have_x=disabled else case $x_includes,$x_libraries in #( - *\'*) as_fn_error "cannot use X directory names containing '" "$LINENO" 5;; #( - *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then : + *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #( + *,NONE | NONE,*) if ${ac_cv_have_x+:} false; then : $as_echo_n "(cached) " >&6 else # One or both of the vars are not set, and there is no cached value. @@ -16676,7 +16853,7 @@ @echo libdir='${LIBDIR}' _ACEOF if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then - # GNU make sometimes prints "make[1]: Entering...", which would confuse us. + # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. for ac_var in incroot usrlibdir libdir; do eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" done @@ -16762,7 +16939,7 @@ fi done fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext fi # $ac_x_includes = no if test "$ac_x_libraries" = no; then @@ -16952,7 +17129,7 @@ enableval=$enable_multi_ice; case $enableval in yes | no) ;; - *) as_fn_error "bad value $enableval for --enable-multi-ice" "$LINENO" 5 ;; + *) as_fn_error $? "bad value $enableval for --enable-multi-ice" "$LINENO" 5 ;; esac fi @@ -16965,7 +17142,7 @@ if test "${enable_gdbserver+set}" = set; then : enableval=$enable_gdbserver; case "${enableval}" in yes| no|auto) ;; - *) as_fn_error "bad value ${enableval} for --enable-gdbserver option" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-gdbserver option" "$LINENO" 5 ;; esac else enable_gdbserver=auto @@ -16992,7 +17169,7 @@ # If the user explicitly request the gdbserver to be built, verify that # we were in fact able to enable it. if test "$enable_gdbserver" = "yes" -a "$gdbserver_build_enabled" != "yes"; then - as_fn_error "Automatic gdbserver build is not supported for this configuration" "$LINENO" 5 + as_fn_error $? "Automatic gdbserver build is not supported for this configuration" "$LINENO" 5 fi # Check for babeltrace and babeltrace-ctf @@ -17433,7 +17610,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libbabeltrace" >&5 $as_echo_n "checking for libbabeltrace... " >&6; } -if test "${ac_cv_libbabeltrace+set}" = set; then : +if ${ac_cv_libbabeltrace+:} false; then : $as_echo_n "(cached) " >&6 else @@ -17498,7 +17675,7 @@ if test "$HAVE_LIBBABELTRACE" != yes; then if test "$with_babeltrace" = yes; then - as_fn_error "babeltrace is missing or unusable" "$LINENO" 5 + as_fn_error $? "babeltrace is missing or unusable" "$LINENO" 5 else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: babeltrace is missing or unusable; GDB is unable to read CTF data." >&5 $as_echo "$as_me: WARNING: babeltrace is missing or unusable; GDB is unable to read CTF data." >&2;} @@ -17534,7 +17711,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_XSLTPROC+set}" = set; then : +if ${ac_cv_path_XSLTPROC+:} false; then : $as_echo_n "(cached) " >&6 else case $XSLTPROC in @@ -17548,7 +17725,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_XSLTPROC="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -17576,7 +17753,7 @@ if test "x$USE_MAINTAINER_MODE" = xyes; then if test "${XSLTPROC}" = missing; then - as_fn_error "unable to find xsltproc. maintainer-mode requires xsltproc." "$LINENO" 5 + as_fn_error $? "unable to find xsltproc. maintainer-mode requires xsltproc." "$LINENO" 5 fi fi @@ -17601,7 +17778,7 @@ $as_echo "#define GDB_SELF_TEST 1" >>confdefs.h - CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_UNITTESTS_OBS) selftest.o selftest-arch.o" + CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_UNITTESTS_OBS) common/selftest.o selftest-arch.o" CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_UNITTESTS_SRCS) common/selftest.c selftest-arch.c" fi @@ -17623,7 +17800,7 @@ ac_config_files="$ac_config_files gcore" -ac_config_files="$ac_config_files Makefile gdb-gdb.gdb doc/Makefile data-directory/Makefile" +ac_config_files="$ac_config_files Makefile gdb-gdb.gdb gdb-gdb.py doc/Makefile data-directory/Makefile" cat >confcache <<\_ACEOF @@ -17690,10 +17867,21 @@ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then - test "x$cache_file" != "x/dev/null" && + if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} @@ -17709,6 +17897,7 @@ ac_libobjs= ac_ltlibobjs= +U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' @@ -17724,20 +17913,20 @@ if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then - as_fn_error "conditional \"MAINTAINER_MODE\" was never defined. + as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_PYTHON_TRUE}" && test -z "${HAVE_PYTHON_FALSE}"; then - as_fn_error "conditional \"HAVE_PYTHON\" was never defined. + as_fn_error $? "conditional \"HAVE_PYTHON\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_GUILE_TRUE}" && test -z "${HAVE_GUILE_FALSE}"; then - as_fn_error "conditional \"HAVE_GUILE\" was never defined. + as_fn_error $? "conditional \"HAVE_GUILE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -: ${CONFIG_STATUS=./config.status} +: "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" @@ -17838,6 +18027,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -17883,19 +18073,19 @@ (unset CDPATH) >/dev/null 2>&1 && unset CDPATH -# as_fn_error ERROR [LINENO LOG_FD] -# --------------------------------- +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with status $?, using 1 if that was 0. +# script with STATUS, using 1 if that was 0. as_fn_error () { - as_status=$?; test $as_status -eq 0 && as_status=1 - if test "$3"; then - as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $1" >&2 + $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error @@ -18033,16 +18223,16 @@ # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -18091,7 +18281,7 @@ test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p @@ -18102,28 +18292,16 @@ as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -18145,7 +18323,7 @@ # values after options handling. ac_log=" This file was extended by $as_me, which was -generated by GNU Autoconf 2.64. Invocation command line was +generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -18186,6 +18364,7 @@ -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit + --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files @@ -18211,12 +18390,13 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ config.status -configured by $0, generated by GNU Autoconf 2.64, - with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" +configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" -Copyright (C) 2009 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -18233,11 +18413,16 @@ while test $# != 0 do case $1 in - --*=*) + --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; *) ac_option=$1 ac_optarg=$2 @@ -18251,12 +18436,15 @@ ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; @@ -18269,7 +18457,7 @@ ac_need_defaults=false;; --he | --h) # Conflict between --help and --header - as_fn_error "ambiguous option: \`$1' + as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; @@ -18278,7 +18466,7 @@ ac_cs_silent=: ;; # This is an error. - -*) as_fn_error "unrecognized option: \`$1' + -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" @@ -18298,7 +18486,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' @@ -18339,10 +18527,11 @@ "gcore") CONFIG_FILES="$CONFIG_FILES gcore" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "gdb-gdb.gdb") CONFIG_FILES="$CONFIG_FILES gdb-gdb.gdb" ;; + "gdb-gdb.py") CONFIG_FILES="$CONFIG_FILES gdb-gdb.py" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "data-directory/Makefile") CONFIG_FILES="$CONFIG_FILES data-directory/Makefile" ;; - *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done @@ -18366,9 +18555,10 @@ # after its creation but before its name has been assigned to `$tmp'. $debug || { - tmp= + tmp= ac_tmp= trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } @@ -18376,12 +18566,13 @@ { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" + test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") -} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. @@ -18415,24 +18606,24 @@ fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\r' + ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi -echo 'BEGIN {' >"$tmp/subs1.awk" && +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF # Create commands to substitute file output variables. { echo "cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1" && - echo 'cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&' && + echo 'cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&' && echo "$ac_subst_files" | sed 's/.*/F["&"]="$&"/' && echo "_ACAWK" && echo "_ACEOF" } >conf$$files.sh && . ./conf$$files.sh || - as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 rm -f conf$$files.sh { @@ -18440,18 +18631,18 @@ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || - as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || - as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then - as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi @@ -18459,7 +18650,7 @@ rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h @@ -18473,7 +18664,7 @@ t delim :nl h -s/\(.\{148\}\).*/\1/ +s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p @@ -18487,7 +18678,7 @@ t nl :delim h -s/\(.\{148\}\).*/\1/ +s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p @@ -18507,7 +18698,7 @@ rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK -cat >>"\$tmp/subs1.awk" <<_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" \$ac_cs_awk_pipe_init @@ -18545,21 +18736,29 @@ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat -fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ - || as_fn_error "could not setup config files machinery" "$LINENO" 5 +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/ -s/:*\${srcdir}:*/:/ -s/:*@srcdir@:*/:/ -s/^\([^=]*=[ ]*\):*/\1/ + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// s/^[^=]*=[ ]*$// }' fi @@ -18571,7 +18770,7 @@ # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then -cat >"$tmp/defines.awk" <<\_ACAWK || +cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF @@ -18583,11 +18782,11 @@ # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do - ac_t=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_t"; then + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then break elif $ac_last_try; then - as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5 + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi @@ -18672,7 +18871,7 @@ _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error "could not setup config headers machinery" "$LINENO" 5 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" @@ -18685,7 +18884,7 @@ esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac @@ -18704,7 +18903,7 @@ for ac_f do case $ac_f in - -) ac_f="$tmp/stdin";; + -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. @@ -18713,7 +18912,7 @@ [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" @@ -18739,8 +18938,8 @@ esac case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin" \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac @@ -18872,26 +19071,27 @@ " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | if $ac_cs_awk_getline; then - $AWK -f "$tmp/subs.awk" + $AWK -f "$ac_tmp/subs.awk" else - $AWK -f "$tmp/subs.awk" | $SHELL -fi >$tmp/out \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 + $AWK -f "$ac_tmp/subs.awk" | $SHELL +fi \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&5 +which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&2;} +which seems to be undefined. Please make sure it is defined" >&2;} - rm -f "$tmp/stdin" + rm -f "$ac_tmp/stdin" case $ac_file in - -) cat "$tmp/out" && rm -f "$tmp/out";; - *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # @@ -18900,21 +19100,21 @@ if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" - } >"$tmp/config.h" \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" - mv "$tmp/config.h" "$ac_file" \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error "could not create -" "$LINENO" 5 + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 fi ;; :L) @@ -18934,19 +19134,19 @@ $as_echo "$as_me: linking $ac_source to $ac_file" >&6;} if test ! -r "$ac_source"; then - as_fn_error "$ac_source: file not found" "$LINENO" 5 + as_fn_error $? "$ac_source: file not found" "$LINENO" 5 fi rm -f "$ac_file" # Try a relative symlink, then a hard link, then a copy. - case $srcdir in + case $ac_source in [\\/$]* | ?:[\\/]* ) ac_rel_source=$ac_source ;; *) ac_rel_source=$ac_top_build_prefix$ac_source ;; esac ln -s "$ac_rel_source" "$ac_file" 2>/dev/null || ln "$ac_source" "$ac_file" 2>/dev/null || cp -p "$ac_source" "$ac_file" || - as_fn_error "cannot link or copy $ac_source to $ac_file" "$LINENO" 5 + as_fn_error $? "cannot link or copy $ac_source to $ac_file" "$LINENO" 5 fi ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 @@ -18970,6 +19170,12 @@ echo > stamp-h ;; esac ;; + "gdb-gdb.py":F) +case x$CONFIG_HEADERS in +xconfig.h:config.in) +echo > stamp-h ;; +esac + ;; "doc/Makefile":F) case x$CONFIG_HEADERS in xconfig.h:config.in) @@ -18992,7 +19198,7 @@ ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || - as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. @@ -19013,7 +19219,7 @@ exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit $? + $ac_cs_success || as_fn_exit 1 fi # @@ -19154,7 +19360,7 @@ # The eval makes quoting arguments work. eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \ --cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" || - as_fn_error "$ac_sub_configure failed for $ac_dir" "$LINENO" 5 + as_fn_error $? "$ac_sub_configure failed for $ac_dir" "$LINENO" 5 fi cd "$ac_popdir" diff -Nru gdb-8.1/gdb/configure.ac gdb-8.2/gdb/configure.ac --- gdb-8.1/gdb/configure.ac 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/gdb/configure.ac 2018-09-05 07:44:28.000000000 +0000 @@ -18,7 +18,6 @@ dnl Process this file with autoconf to produce a configure script. -AC_PREREQ(2.59)dnl AC_INIT(main.c) AC_CONFIG_HEADER(config.h:config.in) AM_MAINTAINER_MODE @@ -472,6 +471,13 @@ CFLAGS="$OLD_CFLAGS" fi +CODESIGN_CERT= +AC_ARG_ENABLE([codesign], + AS_HELP_STRING([--enable-codesign=CERT], + [sign gdb with 'codesign -s CERT']), + [CODESIGN_CERT=$enableval]) +AC_SUBST([CODESIGN_CERT]) + ACX_PKGVERSION([GDB]) ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/]) AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description]) @@ -523,6 +529,11 @@ [AC_DEFINE(HAVE_KINFO_GETVMMAP, 1, [Define to 1 if your system has the kinfo_getvmmap function. ])]) +# fbsd-nat.c can also use kinfo_getfile. +AC_SEARCH_LIBS(kinfo_getfile, util util-freebsd, + [AC_DEFINE(HAVE_KINFO_GETFILE, 1, + [Define to 1 if your system has the kinfo_getfile function. ])]) + AM_ICONV # GDB may fork/exec the iconv program to get the list of supported character @@ -727,10 +738,10 @@ save_CPPFLAGS=$CPPFLAGS save_LIBS=$LIBS CPPFLAGS="$CPPFLAGS $new_CPPFLAGS" - LIBS="$LIBS $new_LIBS" + LIBS="$new_LIBS $LIBS" found_usable_python=no - AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "Python.h"]], - [[Py_Initialize ();]]), + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "Python.h"]], + [[Py_Initialize ();]])], [have_libpython_var=${version} found_usable_python=yes PYTHON_CPPFLAGS=$new_CPPFLAGS @@ -917,19 +928,19 @@ elif test "${have_python_config}" != failed; then if test "${have_libpython}" = no; then AC_TRY_LIBPYTHON(python2.7, have_libpython, - ${python_includes}, "${python_libs} -lpython2.7") + ${python_includes}, "-lpython2.7 ${python_libs}") fi if test "${have_libpython}" = no; then AC_TRY_LIBPYTHON(python2.6, have_libpython, - ${python_includes}, "${python_libs} -lpython2.6") + ${python_includes}, "-lpython2.6 ${python_libs}") fi if test ${have_libpython} = no; then AC_TRY_LIBPYTHON(python2.5, have_libpython, - ${python_includes}, "${python_libs} -lpython2.5") + ${python_includes}, "-lpython2.5 ${python_libs}") fi if test ${have_libpython} = no; then AC_TRY_LIBPYTHON(python2.4, have_libpython, - ${python_includes}, "${python_libs} -lpython2.4") + ${python_includes}, "-lpython2.4 ${python_libs}") fi fi if test "${have_libpython}" = python2.7 -o "${have_libpython}" = python27; then @@ -1016,12 +1027,12 @@ CPPFLAGS="${PYTHON_CPPFLAGS}" # Note that the test is reversed so that python_has_threads=yes on # unexpected failures. - AC_PREPROC_IFELSE(AC_LANG_SOURCE([[ + AC_PREPROC_IFELSE([AC_LANG_SOURCE([[ #include #ifdef WITH_THREAD # error #endif - ]]), [python_has_threads=no], [python_has_threads=yes]) + ]])], [python_has_threads=no], [python_has_threads=yes]) AC_MSG_RESULT(${python_has_threads}) CPPFLAGS="${saved_CPPFLAGS}" else @@ -1095,8 +1106,8 @@ save_LIBS=$LIBS CPPFLAGS="$CPPFLAGS $new_CPPFLAGS" LIBS="$LIBS $new_LIBS" - AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "libguile.h"]], - [[scm_init_guile ();]]), + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "libguile.h"]], + [[scm_init_guile ();]])], [have_libguile_var=yes GUILE_CPPFLAGS=$new_CPPFLAGS GUILE_LIBS=$new_LIBS], @@ -1266,12 +1277,12 @@ AC_MSG_WARN([Intel Processor Trace support disabled; some features may be unavailable.]) HAVE_LIBIPT=no else - AC_PREPROC_IFELSE(AC_LANG_SOURCE([[ + AC_PREPROC_IFELSE([AC_LANG_SOURCE([[ #include #ifndef PERF_ATTR_SIZE_VER5 # error #endif - ]]), [perf_event=yes], [perf_event=no]) + ]])], [perf_event=yes], [perf_event=no]) if test "$perf_event" != yes; then if test "$with_intel_pt" = yes; then AC_MSG_ERROR([linux/perf_event.h missing or too old]) @@ -1363,7 +1374,7 @@ AC_FUNC_VFORK AC_CHECK_FUNCS([getauxval getrusage getuid getgid \ pipe poll pread pread64 pwrite resize_term \ - sbrk setpgid setpgrp setsid \ + sbrk getpgid setpgid setpgrp setsid \ sigaction sigprocmask sigsetmask socketpair \ ttrace wborder wresize setlocale iconvlist libiconvlist btowc \ setrlimit getrlimit posix_madvise waitpid \ @@ -1715,13 +1726,13 @@ old_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS" AC_RUN_IFELSE( - AC_LANG_PROGRAM( + [AC_LANG_PROGRAM( [#include "Python.h"], [int err; Py_Initialize (); err = PyRun_SimpleString ("import itertools\n"); Py_Finalize (); - return err == 0 ? 0 : 1;]), + return err == 0 ? 0 : 1;])], [dynamic_list=true], [], [true]) LIBS="$old_LIBS" CFLAGS="$old_CFLAGS" @@ -2294,14 +2305,14 @@ if $development; then AC_DEFINE(GDB_SELF_TEST, 1, [Define if self-testing features should be enabled]) - CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_UNITTESTS_OBS) selftest.o selftest-arch.o" + CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_UNITTESTS_OBS) common/selftest.o selftest-arch.o" CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_UNITTESTS_SRCS) common/selftest.c selftest-arch.c" fi GDB_AC_TRANSFORM([gdb], [GDB_TRANSFORM_NAME]) GDB_AC_TRANSFORM([gcore], [GCORE_TRANSFORM_NAME]) AC_CONFIG_FILES([gcore], [chmod +x gcore]) -AC_CONFIG_FILES([Makefile gdb-gdb.gdb doc/Makefile data-directory/Makefile], +AC_CONFIG_FILES([Makefile gdb-gdb.gdb gdb-gdb.py doc/Makefile data-directory/Makefile], [ case x$CONFIG_HEADERS in xconfig.h:config.in) diff -Nru gdb-8.1/gdb/configure.host gdb-8.2/gdb/configure.host --- gdb-8.1/gdb/configure.host 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/configure.host 2018-09-05 07:44:28.000000000 +0000 @@ -64,7 +64,6 @@ hppa*) gdb_host_cpu=pa ;; i[34567]86*) gdb_host_cpu=i386 ;; m68*) gdb_host_cpu=m68k ;; -m88*) gdb_host_cpu=m88k ;; mips*) gdb_host_cpu=mips ;; powerpc* | rs6000) gdb_host_cpu=powerpc ;; sparcv9 | sparc64) gdb_host_cpu=sparc ;; diff -Nru gdb-8.1/gdb/configure.nat gdb-8.2/gdb/configure.nat --- gdb-8.1/gdb/configure.nat 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/configure.nat 2018-09-05 07:44:28.000000000 +0000 @@ -115,7 +115,7 @@ case ${gdb_host_cpu} in alpha) # Host: Little-endian Alpha running Linux - NATDEPFILES="${NATDEPFILES} alpha-linux-nat.o" + NATDEPFILES="${NATDEPFILES} linux-nat-trad.o alpha-linux-nat.o" # doublest.c currently assumes some properties of FP arithmetic # on the host which require this. MH_CFLAGS='-mieee' @@ -228,7 +228,8 @@ aarch64) # Host: AArch64 based machine running GNU/Linux NATDEPFILES="${NATDEPFILES} aarch64-linux-nat.o \ - aarch32-linux-nat.o aarch64-linux-hw-point.o aarch64-linux.o" + aarch32-linux-nat.o aarch64-linux-hw-point.o aarch64-linux.o \ + aarch64-sve-linux-ptrace.o" ;; arm) # Host: ARM based machine running GNU/Linux @@ -255,8 +256,8 @@ ;; mips) # Host: Linux/MIPS - NATDEPFILES="${NATDEPFILES} mips-linux-nat.o \ - mips-linux-watch.o" + NATDEPFILES="${NATDEPFILES} linux-nat-trad.o \ + mips-linux-nat.o mips-linux-watch.o" ;; pa) # Host: Hewlett-Packard PA-RISC machine, running Linux @@ -264,7 +265,7 @@ ;; powerpc) # Host: PowerPC, running Linux - NATDEPFILES="${NATDEPFILES} ppc-linux-nat.o" + NATDEPFILES="${NATDEPFILES} ppc-linux-nat.o ppc-linux.o" ;; s390) # Host: S390, running Linux @@ -410,10 +411,6 @@ NATDEPFILES="${NATDEPFILES} m68k-bsd-nat.o bsd-kvm.o" LOADLIBES='-lkvm' ;; - m88k) - # Host: OpenBSD/m88k - NATDEPFILES="${NATDEPFILES} m88k-bsd-nat.o" - ;; pa) # Host: OpenBSD/hppa NATDEPFILES="${NATDEPFILES} obsd-nat.o hppa-obsd-nat.o" diff -Nru gdb-8.1/gdb/configure.tgt gdb-8.2/gdb/configure.tgt --- gdb-8.1/gdb/configure.tgt 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/gdb/configure.tgt 2018-09-05 07:44:28.000000000 +0000 @@ -29,6 +29,7 @@ hppa*-*-hpux* | \ ia64-*-hpux* | \ *-*-vxworks* | \ + mt-*-* | \ null) echo "*** Configuration $targ is obsolete." >&2 echo "*** Support has been REMOVED." >&2 @@ -36,8 +37,9 @@ ;; esac -i386_tobjs="i386-tdep.o arch/i386.o i387-tdep.o" -amd64_tobjs="amd64-tdep.o arch/amd64.o" +x86_tobjs="x86-tdep.o" +i386_tobjs="i386-tdep.o arch/i386.o i387-tdep.o ${x86_tobjs}" +amd64_tobjs="amd64-tdep.o arch/amd64.o ${x86_tobjs}" # Here are three sections to get a list of target specific object # files according to target triplet $TARG. @@ -371,11 +373,6 @@ gdb_target_obs="m68k-tdep.o m68k-bsd-tdep.o" ;; -m88*-*-openbsd*) - # Target: OpenBSD/m88k - gdb_target_obs="m88k-tdep.o" - ;; - mep-*-*) # Target: Toshiba Media Processor (MEP) gdb_target_obs="mep-tdep.o" @@ -442,11 +439,6 @@ gdb_sim=../sim/msp430/libsim.a ;; -mt-*-*) - # Target: Morpho Technologies ms1 processor - gdb_target_obs="mt-tdep.o" - ;; - nds32*-*-elf) # Target: AndesTech NDS32 core gdb_target_obs="nds32-tdep.o" @@ -500,7 +492,8 @@ spu-multiarch.o \ glibc-tdep.o symfile-mem.o linux-tdep.o \ ravenscar-thread.o ppc-ravenscar-thread.o \ - linux-record.o " + linux-record.o \ + arch/ppc-linux-common.o" gdb_sim=../sim/ppc/libsim.a build_gdbserver=yes ;; @@ -519,11 +512,16 @@ s390*-*-linux*) # Target: S390 running Linux - gdb_target_obs="s390-linux-tdep.o solib-svr4.o linux-tdep.o \ - linux-record.o symfile-mem.o" + gdb_target_obs="s390-linux-tdep.o s390-tdep.o solib-svr4.o \ + linux-tdep.o linux-record.o symfile-mem.o" build_gdbserver=yes ;; +riscv*-*-*) + # Target: RISC-V architecture + gdb_target_obs="riscv-tdep.o" + ;; + rl78-*-elf) # Target: Renesas rl78 gdb_target_obs="rl78-tdep.o" @@ -544,7 +542,7 @@ sh*-*-linux*) # Target: GNU/Linux Super-H - gdb_target_obs="sh-tdep.o sh64-tdep.o sh-linux-tdep.o \ + gdb_target_obs="sh-tdep.o sh-linux-tdep.o \ solib-svr4.o symfile-mem.o \ glibc-tdep.o linux-tdep.o" gdb_sim=../sim/sh/libsim.a @@ -557,16 +555,11 @@ ;; sh*-*-openbsd*) # Target: OpenBSD/sh - gdb_target_obs="sh-tdep.o sh64-tdep.o sh-nbsd-tdep.o" - ;; -sh64-*-elf*) - # Target: Renesas/Super-H 64 bit with simulator - gdb_target_obs="sh-tdep.o sh64-tdep.o" - gdb_sim=../sim/sh64/libsim.a + gdb_target_obs="sh-tdep.o sh-nbsd-tdep.o" ;; sh*) # Target: Embedded Renesas Super-H processor - gdb_target_obs="sh-tdep.o sh64-tdep.o" + gdb_target_obs="sh-tdep.o" gdb_sim=../sim/sh/libsim.a ;; @@ -739,7 +732,7 @@ x86_64-*-rtems*) gdb_target_obs="${amd64_tobjs} ${i386_tobjs} i386-bsd-tdep.o" ;; -xtensa*-*-linux*) gdb_target=linux +xtensa*-*-linux*) # Target: GNU/Linux Xtensa gdb_target_obs="xtensa-linux-tdep.o symfile-mem.o linux-tdep.o" build_gdbserver=yes diff -Nru gdb-8.1/gdb/contrib/gdb-add-index.sh gdb-8.2/gdb/contrib/gdb-add-index.sh --- gdb-8.1/gdb/contrib/gdb-add-index.sh 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/contrib/gdb-add-index.sh 2018-09-05 07:27:15.000000000 +0000 @@ -23,8 +23,14 @@ myname="${0##*/}" +dwarf5="" +if [ "$1" = "-dwarf-5" ]; then + dwarf5="$1" + shift +fi + if test $# != 1; then - echo "usage: $myname FILE" 1>&2 + echo "usage: $myname [-dwarf-5] FILE" 1>&2 exit 1 fi @@ -48,7 +54,7 @@ trap "rm -f $index4 $index5 $debugstr $debugstrmerge $debugstrerr" 0 $GDB --batch -nx -iex 'set auto-load no' \ - -ex "file $file" -ex "save gdb-index $dir" || { + -ex "file $file" -ex "save gdb-index $dwarf5 $dir" || { # Just in case. status=$? echo "$myname: gdb error generating index for $file" 1>&2 diff -Nru gdb-8.1/gdb/corefile.c gdb-8.2/gdb/corefile.c --- gdb-8.1/gdb/corefile.c 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/gdb/corefile.c 2018-09-05 07:27:13.000000000 +0000 @@ -30,7 +30,7 @@ #include "dis-asm.h" #include #include "completer.h" -#include "observer.h" +#include "observable.h" #include "cli/cli-utils.h" /* You can have any number of hooks for `exec_file_command' command to @@ -49,29 +49,6 @@ hooks. */ static int exec_file_hook_count = 0; /* Size of array. */ -/* Binary file diddling handle for the core file. */ - -bfd *core_bfd = NULL; - -/* corelow.c target. It is never NULL after GDB initialization. */ - -struct target_ops *core_target; - - -/* Backward compatability with old way of specifying core files. */ - -void -core_file_command (const char *filename, int from_tty) -{ - dont_repeat (); /* Either way, seems bogus. */ - - gdb_assert (core_target != NULL); - - if (!filename) - (core_target->to_detach) (core_target, filename, from_tty); - else - (core_target->to_open) (filename, from_tty); -} /* If there are two or more functions that wish to hook into @@ -237,8 +214,7 @@ enum target_xfer_status status; ULONGEST xfered_len; - status = target_xfer_partial (current_target.beneath, - object, NULL, + status = target_xfer_partial (current_top_target (), object, NULL, myaddr + xfered, NULL, memaddr + xfered, len - xfered, &xfered_len); @@ -408,7 +384,7 @@ ssize_t len) { write_memory (memaddr, myaddr, len); - observer_notify_memory_changed (current_inferior (), memaddr, len, myaddr); + gdb::observers::memory_changed.notify (current_inferior (), memaddr, len, myaddr); } /* Store VALUE at ADDR in the inferior as a LEN-byte unsigned @@ -509,6 +485,7 @@ c = add_cmd ("core-file", class_files, core_file_command, _("\ Use FILE as core dump for examining memory and registers.\n\ +Usage: core-file FILE\n\ No arg means have no core file. This command has been superseded by the\n\ `target core' and `detach' commands."), &cmdlist); set_cmd_completer (c, filename_completer); diff -Nru gdb-8.1/gdb/corelow.c gdb-8.2/gdb/corelow.c --- gdb-8.1/gdb/corelow.c 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/gdb/corelow.c 2018-09-05 07:44:28.000000000 +0000 @@ -50,46 +50,118 @@ #define O_LARGEFILE 0 #endif -/* List of all available core_fns. On gdb startup, each core file - register reader calls deprecated_add_core_fns() to register - information on each core format it is prepared to read. */ +static core_fns *sniff_core_bfd (gdbarch *core_gdbarch, + bfd *abfd); -static struct core_fns *core_file_fns = NULL; +/* The core file target. */ -/* The core_fns for a core file handler that is prepared to read the - core file currently open on core_bfd. */ +static const target_info core_target_info = { + "core", + N_("Local core dump file"), + N_("Use a core file as a target. Specify the filename of the core file.") +}; -static struct core_fns *core_vec = NULL; +class core_target final : public target_ops +{ +public: + core_target (); + ~core_target () override; + + const target_info &info () const override + { return core_target_info; } + + void close () override; + void detach (inferior *, int) override; + void fetch_registers (struct regcache *, int) override; + + enum target_xfer_status xfer_partial (enum target_object object, + const char *annex, + gdb_byte *readbuf, + const gdb_byte *writebuf, + ULONGEST offset, ULONGEST len, + ULONGEST *xfered_len) override; + void files_info () override; + + bool thread_alive (ptid_t ptid) override; + const struct target_desc *read_description () override; + + const char *pid_to_str (ptid_t) override; + + const char *thread_name (struct thread_info *) override; + + bool has_memory () override; + bool has_stack () override; + bool has_registers () override; + bool info_proc (const char *, enum info_proc_what) override; + + /* A few helpers. */ + + /* Getter, see variable definition. */ + struct gdbarch *core_gdbarch () + { + return m_core_gdbarch; + } + + /* See definition. */ + void get_core_register_section (struct regcache *regcache, + const struct regset *regset, + const char *name, + int section_min_size, + int which, + const char *human_name, + bool required); + +private: /* per-core data */ + + /* The core's section table. Note that these target sections are + *not* mapped in the current address spaces' set of target + sections --- those should come only from pure executable or + shared library bfds. The core bfd sections are an implementation + detail of the core target, just like ptrace is for unix child + targets. */ + target_section_table m_core_section_table {}; + + /* The core_fns for a core file handler that is prepared to read the + core file currently open on core_bfd. */ + core_fns *m_core_vec = NULL; + + /* FIXME: kettenis/20031023: Eventually this field should + disappear. */ + struct gdbarch *m_core_gdbarch = NULL; +}; -/* FIXME: kettenis/20031023: Eventually this variable should - disappear. */ +core_target::core_target () +{ + to_stratum = process_stratum; -static struct gdbarch *core_gdbarch = NULL; + m_core_gdbarch = gdbarch_from_bfd (core_bfd); -/* Per-core data. Currently, only the section table. Note that these - target sections are *not* mapped in the current address spaces' set - of target sections --- those should come only from pure executable - or shared library bfds. The core bfd sections are an - implementation detail of the core target, just like ptrace is for - unix child targets. */ -static struct target_section_table *core_data; + /* Find a suitable core file handler to munch on core_bfd */ + m_core_vec = sniff_core_bfd (m_core_gdbarch, core_bfd); -static void core_files_info (struct target_ops *); + /* Find the data section */ + if (build_section_table (core_bfd, + &m_core_section_table.sections, + &m_core_section_table.sections_end)) + error (_("\"%s\": Can't find sections: %s"), + bfd_get_filename (core_bfd), bfd_errmsg (bfd_get_error ())); +} -static struct core_fns *sniff_core_bfd (bfd *); +core_target::~core_target () +{ + xfree (m_core_section_table.sections); +} -static int gdb_check_format (bfd *); +/* List of all available core_fns. On gdb startup, each core file + register reader calls deprecated_add_core_fns() to register + information on each core format it is prepared to read. */ -static void core_close (struct target_ops *self); +static struct core_fns *core_file_fns = NULL; -static void core_close_cleanup (void *ignore); +static int gdb_check_format (bfd *); static void add_to_thread_list (bfd *, asection *, void *); -static void init_core_ops (void); - -static struct target_ops core_ops; - /* An arbitrary identifier for the core inferior. */ #define CORELOW_PID 1 @@ -123,7 +195,7 @@ selected. */ static struct core_fns * -sniff_core_bfd (bfd *abfd) +sniff_core_bfd (struct gdbarch *core_gdbarch, bfd *abfd) { struct core_fns *cf; struct core_fns *yummy = NULL; @@ -181,42 +253,27 @@ return (0); } -/* Discard all vestiges of any previous core file and mark data and - stack spaces as empty. */ +/* Close the core target. */ -static void -core_close (struct target_ops *self) +void +core_target::close () { if (core_bfd) { - int pid = ptid_get_pid (inferior_ptid); inferior_ptid = null_ptid; /* Avoid confusion from thread stuff. */ - if (pid != 0) - exit_inferior_silent (pid); + exit_inferior_silent (current_inferior ()); /* Clear out solib state while the bfd is still open. See comments in clear_solib in solib.c. */ clear_solib (); - if (core_data) - { - xfree (core_data->sections); - xfree (core_data); - core_data = NULL; - } - - gdb_bfd_unref (core_bfd); - core_bfd = NULL; + current_program_space->cbfd.reset (nullptr); } - core_vec = NULL; - core_gdbarch = NULL; -} -static void -core_close_cleanup (void *ignore) -{ - core_close (NULL); + /* Core targets are heap-allocated (see core_target_open), so here + we delete ourselves. */ + delete this; } /* Look for sections whose names start with `.reg/' so that we can @@ -253,7 +310,7 @@ inf->fake_pid_p = fake_pid_p; } - ptid = ptid_build (pid, lwpid, 0); + ptid = ptid_t (pid, lwpid, 0); add_thread (ptid); @@ -264,10 +321,40 @@ inferior_ptid = ptid; /* Yes, make it current. */ } -/* This routine opens and sets up the core file bfd. */ +/* Issue a message saying we have no core to debug, if FROM_TTY. */ static void -core_open (const char *arg, int from_tty) +maybe_say_no_core_file_now (int from_tty) +{ + if (from_tty) + printf_filtered (_("No core file now.\n")); +} + +/* Backward compatability with old way of specifying core files. */ + +void +core_file_command (const char *filename, int from_tty) +{ + dont_repeat (); /* Either way, seems bogus. */ + + if (filename == NULL) + { + if (core_bfd != NULL) + { + target_detach (current_inferior (), from_tty); + gdb_assert (core_bfd == NULL); + } + else + maybe_say_no_core_file_now (from_tty); + } + else + core_target_open (filename, from_tty); +} + +/* See gdbcore.h. */ + +void +core_target_open (const char *arg, int from_tty) { const char *p; int siggy; @@ -316,29 +403,15 @@ filename.get (), bfd_errmsg (bfd_get_error ())); } - /* Looks semi-reasonable. Toss the old core file and work on the - new. */ - - unpush_target (&core_ops); - core_bfd = temp_bfd.release (); - old_chain = make_cleanup (core_close_cleanup, 0 /*ignore*/); + current_program_space->cbfd = std::move (temp_bfd); - core_gdbarch = gdbarch_from_bfd (core_bfd); + core_target *target = new core_target (); - /* Find a suitable core file handler to munch on core_bfd */ - core_vec = sniff_core_bfd (core_bfd); + /* Own the target until it is successfully pushed. */ + target_ops_up target_holder (target); validate_files (); - core_data = XCNEW (struct target_section_table); - - /* Find the data section */ - if (build_section_table (core_bfd, - &core_data->sections, - &core_data->sections_end)) - error (_("\"%s\": Can't find sections: %s"), - bfd_get_filename (core_bfd), bfd_errmsg (bfd_get_error ())); - /* If we have no exec file, try to set the architecture from the core file. We don't do this unconditionally since an exec file typically contains more information that helps us determine the @@ -346,8 +419,8 @@ if (!exec_bfd) set_gdbarch_from_file (core_bfd); - push_target (&core_ops); - discard_cleanups (old_chain); + push_target (target); + target_holder.release (); /* Do this before acknowledging the inferior, so if post_create_inferior throws (can happen easilly if you're loading @@ -371,7 +444,7 @@ bfd_map_over_sections (core_bfd, add_to_thread_list, bfd_get_section_by_name (core_bfd, ".reg")); - if (ptid_equal (inferior_ptid, null_ptid)) + if (inferior_ptid == null_ptid) { /* Either we found no .reg/NN section, and hence we have a non-threaded core (single-threaded, from gdb's perspective), @@ -379,19 +452,19 @@ which was the "main" thread. The latter case shouldn't usually happen, but we're dealing with input here, which can always be broken in different ways. */ - struct thread_info *thread = first_thread_of_process (-1); + thread_info *thread = first_thread_of_inferior (current_inferior ()); if (thread == NULL) { inferior_appeared (current_inferior (), CORELOW_PID); - inferior_ptid = pid_to_ptid (CORELOW_PID); + inferior_ptid = ptid_t (CORELOW_PID); add_thread_silent (inferior_ptid); } else - switch_to_thread (thread->ptid); + switch_to_thread (thread); } - post_create_inferior (&core_ops, from_tty); + post_create_inferior (target, from_tty); /* Now go through the target stack looking for threads since there may be a thread_stratum target loaded on top of target core by @@ -418,6 +491,8 @@ siggy = bfd_core_file_failing_signal (core_bfd); if (siggy > 0) { + gdbarch *core_gdbarch = target->core_gdbarch (); + /* If we don't have a CORE_GDBARCH to work with, assume a native core (map gdb_signal from host signals). If we do have CORE_GDBARCH to work with, but no gdb_signal_from_target @@ -463,20 +538,21 @@ } } -static void -core_detach (struct target_ops *ops, const char *args, int from_tty) +void +core_target::detach (inferior *inf, int from_tty) { - if (args) - error (_("Too many arguments")); - unpush_target (ops); + /* Note that 'this' is dangling after this call. unpush_target + closes the target, and our close implementation deletes + 'this'. */ + unpush_target (this); + reinit_frame_cache (); - if (from_tty) - printf_filtered (_("No core file now.\n")); + maybe_say_no_core_file_now (from_tty); } /* Try to retrieve registers from a section in core_bfd, and supply - them to core_vec->core_read_registers, as the register set numbered - WHICH. + them to m_core_vec->core_read_registers, as the register set + numbered WHICH. If ptid's lwp member is zero, do the single-threaded thing: look for a section named NAME. If ptid's lwp @@ -487,18 +563,17 @@ HUMAN_NAME is a human-readable name for the kind of registers the NAME section contains, for use in error messages. - If REQUIRED is non-zero, print an error if the core file doesn't - have a section by the appropriate name. Otherwise, just do - nothing. */ + If REQUIRED is true, print an error if the core file doesn't have a + section by the appropriate name. Otherwise, just do nothing. */ -static void -get_core_register_section (struct regcache *regcache, - const struct regset *regset, - const char *name, - int min_size, - int which, - const char *human_name, - int required) +void +core_target::get_core_register_section (struct regcache *regcache, + const struct regset *regset, + const char *name, + int section_min_size, + int which, + const char *human_name, + bool required) { struct bfd_section *section; bfd_size_type size; @@ -518,13 +593,13 @@ } size = bfd_section_size (core_bfd, section); - if (size < min_size) + if (size < section_min_size) { warning (_("Section `%s' in core file too small."), section_name.c_str ()); return; } - if (size != min_size && !variable_size_section) + if (size != section_min_size && !variable_size_section) { warning (_("Unexpected size of section `%s' in core file."), section_name.c_str ()); @@ -545,26 +620,38 @@ return; } - gdb_assert (core_vec); - core_vec->core_read_registers (regcache, contents, size, which, - ((CORE_ADDR) - bfd_section_vma (core_bfd, section))); + gdb_assert (m_core_vec != nullptr); + m_core_vec->core_read_registers (regcache, contents, size, which, + ((CORE_ADDR) + bfd_section_vma (core_bfd, section))); } +/* Data passed to gdbarch_iterate_over_regset_sections's callback. */ +struct get_core_registers_cb_data +{ + core_target *target; + struct regcache *regcache; +}; + /* Callback for get_core_registers that handles a single core file register note section. */ static void -get_core_registers_cb (const char *sect_name, int size, +get_core_registers_cb (const char *sect_name, int supply_size, int collect_size, const struct regset *regset, const char *human_name, void *cb_data) { - struct regcache *regcache = (struct regcache *) cb_data; - int required = 0; + auto *data = (get_core_registers_cb_data *) cb_data; + bool required = false; + bool variable_size_section = (regset != NULL + && regset->flags & REGSET_VARIABLE_SIZE); + + if (!variable_size_section) + gdb_assert (supply_size == collect_size); if (strcmp (sect_name, ".reg") == 0) { - required = 1; + required = true; if (human_name == NULL) human_name = "general-purpose"; } @@ -576,8 +663,9 @@ /* The 'which' parameter is only used when no regset is provided. Thus we just set it to -1. */ - get_core_register_section (regcache, regset, sect_name, - size, -1, human_name, required); + data->target->get_core_register_section (data->regcache, regset, sect_name, + supply_size, -1, human_name, + required); } /* Get the registers out of a core file. This is the machine- @@ -587,15 +675,15 @@ /* We just get all the registers, so we don't use regno. */ -static void -get_core_registers (struct target_ops *ops, - struct regcache *regcache, int regno) +void +core_target::fetch_registers (struct regcache *regcache, int regno) { int i; struct gdbarch *gdbarch; - if (!(core_gdbarch && gdbarch_iterate_over_regset_sections_p (core_gdbarch)) - && (core_vec == NULL || core_vec->core_read_registers == NULL)) + if (!(m_core_gdbarch != nullptr + && gdbarch_iterate_over_regset_sections_p (m_core_gdbarch)) + && (m_core_vec == NULL || m_core_vec->core_read_registers == NULL)) { fprintf_filtered (gdb_stderr, "Can't fetch registers from this type of core file\n"); @@ -604,9 +692,12 @@ gdbarch = regcache->arch (); if (gdbarch_iterate_over_regset_sections_p (gdbarch)) - gdbarch_iterate_over_regset_sections (gdbarch, - get_core_registers_cb, - (void *) regcache, NULL); + { + get_core_registers_cb_data data = { this, regcache }; + gdbarch_iterate_over_regset_sections (gdbarch, + get_core_registers_cb, + (void *) &data, NULL); + } else { get_core_register_section (regcache, NULL, @@ -617,14 +708,14 @@ /* Mark all registers not found in the core as unavailable. */ for (i = 0; i < gdbarch_num_regs (regcache->arch ()); i++) - if (regcache_register_status (regcache, i) == REG_UNKNOWN) - regcache_raw_supply (regcache, i, NULL); + if (regcache->get_register_status (i) == REG_UNKNOWN) + regcache->raw_supply (i, NULL); } -static void -core_files_info (struct target_ops *t) +void +core_target::files_info () { - print_section_info (core_data, core_bfd); + print_section_info (&m_core_section_table, core_bfd); } struct spuid_list @@ -657,20 +748,20 @@ list->pos += 4; } -static enum target_xfer_status -core_xfer_partial (struct target_ops *ops, enum target_object object, - const char *annex, gdb_byte *readbuf, - const gdb_byte *writebuf, ULONGEST offset, - ULONGEST len, ULONGEST *xfered_len) +enum target_xfer_status +core_target::xfer_partial (enum target_object object, const char *annex, + gdb_byte *readbuf, const gdb_byte *writebuf, + ULONGEST offset, ULONGEST len, ULONGEST *xfered_len) { switch (object) { case TARGET_OBJECT_MEMORY: - return section_table_xfer_memory_partial (readbuf, writebuf, - offset, len, xfered_len, - core_data->sections, - core_data->sections_end, - NULL); + return (section_table_xfer_memory_partial + (readbuf, writebuf, + offset, len, xfered_len, + m_core_section_table.sections, + m_core_section_table.sections_end, + NULL)); case TARGET_OBJECT_AUXV: if (readbuf) @@ -743,14 +834,14 @@ return TARGET_XFER_E_IO; case TARGET_OBJECT_LIBRARIES: - if (core_gdbarch - && gdbarch_core_xfer_shared_libraries_p (core_gdbarch)) + if (m_core_gdbarch != nullptr + && gdbarch_core_xfer_shared_libraries_p (m_core_gdbarch)) { if (writebuf) return TARGET_XFER_E_IO; else { - *xfered_len = gdbarch_core_xfer_shared_libraries (core_gdbarch, + *xfered_len = gdbarch_core_xfer_shared_libraries (m_core_gdbarch, readbuf, offset, len); @@ -763,15 +854,15 @@ /* FALL THROUGH */ case TARGET_OBJECT_LIBRARIES_AIX: - if (core_gdbarch - && gdbarch_core_xfer_shared_libraries_aix_p (core_gdbarch)) + if (m_core_gdbarch != nullptr + && gdbarch_core_xfer_shared_libraries_aix_p (m_core_gdbarch)) { if (writebuf) return TARGET_XFER_E_IO; else { *xfered_len - = gdbarch_core_xfer_shared_libraries_aix (core_gdbarch, + = gdbarch_core_xfer_shared_libraries_aix (m_core_gdbarch, readbuf, offset, len); @@ -844,10 +935,10 @@ case TARGET_OBJECT_SIGNAL_INFO: if (readbuf) { - if (core_gdbarch - && gdbarch_core_xfer_siginfo_p (core_gdbarch)) + if (m_core_gdbarch != nullptr + && gdbarch_core_xfer_siginfo_p (m_core_gdbarch)) { - LONGEST l = gdbarch_core_xfer_siginfo (core_gdbarch, readbuf, + LONGEST l = gdbarch_core_xfer_siginfo (m_core_gdbarch, readbuf, offset, len); if (l >= 0) @@ -863,35 +954,13 @@ return TARGET_XFER_E_IO; default: - return ops->beneath->to_xfer_partial (ops->beneath, object, - annex, readbuf, - writebuf, offset, len, - xfered_len); + return this->beneath ()->xfer_partial (object, annex, readbuf, + writebuf, offset, len, + xfered_len); } } -/* If mourn is being called in all the right places, this could be say - `gdb internal error' (since generic_mourn calls - breakpoint_init_inferior). */ - -static int -ignore (struct target_ops *ops, struct gdbarch *gdbarch, - struct bp_target_info *bp_tgt) -{ - return 0; -} - -/* Implement the to_remove_breakpoint method. */ - -static int -core_remove_breakpoint (struct target_ops *ops, struct gdbarch *gdbarch, - struct bp_target_info *bp_tgt, - enum remove_bp_reason reason) -{ - return 0; -} - /* Okay, let's be honest: threads gleaned from a core file aren't exactly lively, are they? On the other hand, if we don't claim @@ -899,35 +968,34 @@ to appear in an "info thread" command, which is quite a useful behaviour. */ -static int -core_thread_alive (struct target_ops *ops, ptid_t ptid) +bool +core_target::thread_alive (ptid_t ptid) { - return 1; + return true; } /* Ask the current architecture what it knows about this core file. That will be used, in turn, to pick a better architecture. This wrapper could be avoided if targets got a chance to specialize - core_ops. */ + core_target. */ -static const struct target_desc * -core_read_description (struct target_ops *target) +const struct target_desc * +core_target::read_description () { - if (core_gdbarch && gdbarch_core_read_description_p (core_gdbarch)) + if (m_core_gdbarch && gdbarch_core_read_description_p (m_core_gdbarch)) { const struct target_desc *result; - result = gdbarch_core_read_description (core_gdbarch, - target, core_bfd); + result = gdbarch_core_read_description (m_core_gdbarch, this, core_bfd); if (result != NULL) return result; } - return target->beneath->to_read_description (target->beneath); + return this->beneath ()->read_description (); } -static const char * -core_pid_to_str (struct target_ops *ops, ptid_t ptid) +const char * +core_target::pid_to_str (ptid_t ptid) { static char buf[64]; struct inferior *inf; @@ -935,17 +1003,17 @@ /* The preferred way is to have a gdbarch/OS specific implementation. */ - if (core_gdbarch - && gdbarch_core_pid_to_str_p (core_gdbarch)) - return gdbarch_core_pid_to_str (core_gdbarch, ptid); + if (m_core_gdbarch != nullptr + && gdbarch_core_pid_to_str_p (m_core_gdbarch)) + return gdbarch_core_pid_to_str (m_core_gdbarch, ptid); /* Otherwise, if we don't have one, we'll just fallback to "process", with normal_pid_to_str. */ /* Try the LWPID field first. */ - pid = ptid_get_lwp (ptid); + pid = ptid.lwp (); if (pid != 0) - return normal_pid_to_str (pid_to_ptid (pid)); + return normal_pid_to_str (ptid_t (pid)); /* Otherwise, this isn't a "threaded" core -- use the PID field, but only if it isn't a fake PID. */ @@ -958,38 +1026,37 @@ return buf; } -static const char * -core_thread_name (struct target_ops *self, struct thread_info *thr) +const char * +core_target::thread_name (struct thread_info *thr) { - if (core_gdbarch - && gdbarch_core_thread_name_p (core_gdbarch)) - return gdbarch_core_thread_name (core_gdbarch, thr); + if (m_core_gdbarch != nullptr + && gdbarch_core_thread_name_p (m_core_gdbarch)) + return gdbarch_core_thread_name (m_core_gdbarch, thr); return NULL; } -static int -core_has_memory (struct target_ops *ops) +bool +core_target::has_memory () { return (core_bfd != NULL); } -static int -core_has_stack (struct target_ops *ops) +bool +core_target::has_stack () { return (core_bfd != NULL); } -static int -core_has_registers (struct target_ops *ops) +bool +core_target::has_registers () { return (core_bfd != NULL); } /* Implement the to_info_proc method. */ -static void -core_info_proc (struct target_ops *ops, const char *args, - enum info_proc_what request) +bool +core_target::info_proc (const char *args, enum info_proc_what request) { struct gdbarch *gdbarch = get_current_arch (); @@ -997,47 +1064,12 @@ method on gdbarch, not 'info_proc'. */ if (gdbarch_core_info_proc_p (gdbarch)) gdbarch_core_info_proc (gdbarch, args, request); -} - -/* Fill in core_ops with its defined operations and properties. */ -static void -init_core_ops (void) -{ - core_ops.to_shortname = "core"; - core_ops.to_longname = "Local core dump file"; - core_ops.to_doc = - "Use a core file as a target. Specify the filename of the core file."; - core_ops.to_open = core_open; - core_ops.to_close = core_close; - core_ops.to_detach = core_detach; - core_ops.to_fetch_registers = get_core_registers; - core_ops.to_xfer_partial = core_xfer_partial; - core_ops.to_files_info = core_files_info; - core_ops.to_insert_breakpoint = ignore; - core_ops.to_remove_breakpoint = core_remove_breakpoint; - core_ops.to_thread_alive = core_thread_alive; - core_ops.to_read_description = core_read_description; - core_ops.to_pid_to_str = core_pid_to_str; - core_ops.to_thread_name = core_thread_name; - core_ops.to_stratum = process_stratum; - core_ops.to_has_memory = core_has_memory; - core_ops.to_has_stack = core_has_stack; - core_ops.to_has_registers = core_has_registers; - core_ops.to_info_proc = core_info_proc; - core_ops.to_magic = OPS_MAGIC; - - if (core_target) - internal_error (__FILE__, __LINE__, - _("init_core_ops: core target already exists (\"%s\")."), - core_target->to_longname); - core_target = &core_ops; + return true; } void _initialize_corelow (void) { - init_core_ops (); - - add_target_with_completer (&core_ops, filename_completer); + add_target (core_target_info, core_target_open, filename_completer); } diff -Nru gdb-8.1/gdb/cp-name-parser.c gdb-8.2/gdb/cp-name-parser.c --- gdb-8.1/gdb/cp-name-parser.c 2018-01-31 03:02:03.000000000 +0000 +++ gdb-8.2/gdb/cp-name-parser.c 2018-09-05 07:47:44.000000000 +0000 @@ -50,7 +50,7 @@ #define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ -#define YYPURE 0 +#define YYPURE 1 /* Push parsers. */ #define YYPUSH 0 @@ -62,7 +62,7 @@ /* Copy the first part of user declarations. */ -#line 30 "cp-name-parser.y" /* yacc.c:339 */ +#line 38 "cp-name-parser.y" /* yacc.c:339 */ #include "defs.h" @@ -71,17 +71,11 @@ #include "safe-ctype.h" #include "demangle.h" #include "cp-support.h" +#include "c-support.h" +#include "parser-defs.h" -/* Bison does not make it easy to create a parser without global - state, unfortunately. Here are all the global variables used - in this parser. */ - -/* LEXPTR is the current pointer into our lex buffer. PREV_LEXPTR - is the start of the last token lexed, only used for diagnostics. - ERROR_LEXPTR is the first place an error occurred. GLOBAL_ERRMSG - is the first error message encountered. */ - -static const char *lexptr, *prev_lexptr, *error_lexptr, *global_errmsg; +#define GDB_YY_REMAP_PREFIX cpname +#include "yy-remap.h" /* The components built by the parser are allocated ahead of time, and cached in this structure. */ @@ -94,197 +88,8 @@ struct demangle_component comps[ALLOC_CHUNK]; }; -static struct demangle_info *demangle_info; - -static struct demangle_component * -d_grab (void) -{ - struct demangle_info *more; - - if (demangle_info->used >= ALLOC_CHUNK) - { - if (demangle_info->next == NULL) - { - more = XNEW (struct demangle_info); - more->next = NULL; - demangle_info->next = more; - } - else - more = demangle_info->next; - more->used = 0; - demangle_info = more; - } - return &demangle_info->comps[demangle_info->used++]; -} - -/* The parse tree created by the parser is stored here after a successful - parse. */ - -static struct demangle_component *global_result; - -/* Prototypes for helper functions used when constructing the parse - tree. */ - -static struct demangle_component *d_qualify (struct demangle_component *, int, - int); - -static struct demangle_component *d_int_type (int); - -static struct demangle_component *d_unary (const char *, - struct demangle_component *); -static struct demangle_component *d_binary (const char *, - struct demangle_component *, - struct demangle_component *); - -/* Flags passed to d_qualify. */ - -#define QUAL_CONST 1 -#define QUAL_RESTRICT 2 -#define QUAL_VOLATILE 4 - -/* Flags passed to d_int_type. */ - -#define INT_CHAR (1 << 0) -#define INT_SHORT (1 << 1) -#define INT_LONG (1 << 2) -#define INT_LLONG (1 << 3) - -#define INT_SIGNED (1 << 4) -#define INT_UNSIGNED (1 << 5) - -/* Remap normal yacc parser interface names (yyparse, yylex, yyerror, etc), - as well as gratuitiously global symbol names, so we can have multiple - yacc generated parsers in gdb. Note that these are only the variables - produced by yacc. If other parser generators (bison, byacc, etc) produce - additional global names that conflict at link time, then those parser - generators need to be fixed instead of adding those names to this list. */ - -#define yymaxdepth cpname_maxdepth -#define yyparse cpname_parse -#define yylex cpname_lex -#define yyerror cpname_error -#define yylval cpname_lval -#define yychar cpname_char -#define yydebug cpname_debug -#define yypact cpname_pact -#define yyr1 cpname_r1 -#define yyr2 cpname_r2 -#define yydef cpname_def -#define yychk cpname_chk -#define yypgo cpname_pgo -#define yyact cpname_act -#define yyexca cpname_exca -#define yyerrflag cpname_errflag -#define yynerrs cpname_nerrs -#define yyps cpname_ps -#define yypv cpname_pv -#define yys cpname_s -#define yy_yys cpname_yys -#define yystate cpname_state -#define yytmp cpname_tmp -#define yyv cpname_v -#define yy_yyv cpname_yyv -#define yyval cpname_val -#define yylloc cpname_lloc -#define yyreds cpname_reds /* With YYDEBUG defined */ -#define yytoks cpname_toks /* With YYDEBUG defined */ -#define yyname cpname_name /* With YYDEBUG defined */ -#define yyrule cpname_rule /* With YYDEBUG defined */ -#define yylhs cpname_yylhs -#define yylen cpname_yylen -#define yydefred cpname_yydefred -#define yydgoto cpname_yydgoto -#define yysindex cpname_yysindex -#define yyrindex cpname_yyrindex -#define yygindex cpname_yygindex -#define yytable cpname_yytable -#define yycheck cpname_yycheck -#define yyss cpname_yyss -#define yysslim cpname_yysslim -#define yyssp cpname_yyssp -#define yystacksize cpname_yystacksize -#define yyvs cpname_yyvs -#define yyvsp cpname_yyvsp - -int yyparse (void); -static int yylex (void); -static void yyerror (const char *); - -/* Enable yydebug for the stand-alone parser. */ -#ifdef TEST_CPNAMES -# define YYDEBUG 1 -#endif - -/* Helper functions. These wrap the demangler tree interface, handle - allocation from our global store, and return the allocated component. */ - -static struct demangle_component * -fill_comp (enum demangle_component_type d_type, struct demangle_component *lhs, - struct demangle_component *rhs) -{ - struct demangle_component *ret = d_grab (); - int i; - - i = cplus_demangle_fill_component (ret, d_type, lhs, rhs); - gdb_assert (i); - - return ret; -} - -static struct demangle_component * -make_operator (const char *name, int args) -{ - struct demangle_component *ret = d_grab (); - int i; - - i = cplus_demangle_fill_operator (ret, name, args); - gdb_assert (i); - - return ret; -} - -static struct demangle_component * -make_dtor (enum gnu_v3_dtor_kinds kind, struct demangle_component *name) -{ - struct demangle_component *ret = d_grab (); - int i; - - i = cplus_demangle_fill_dtor (ret, kind, name); - gdb_assert (i); - - return ret; -} - -static struct demangle_component * -make_builtin_type (const char *name) -{ - struct demangle_component *ret = d_grab (); - int i; - - i = cplus_demangle_fill_builtin_type (ret, name); - gdb_assert (i); - - return ret; -} - -static struct demangle_component * -make_name (const char *name, int len) -{ - struct demangle_component *ret = d_grab (); - int i; - - i = cplus_demangle_fill_name (ret, name, len); - gdb_assert (i); - - return ret; -} - -#define d_left(dc) (dc)->u.s_binary.left -#define d_right(dc) (dc)->u.s_binary.right - - -#line 288 "cp-name-parser.c" /* yacc.c:339 */ +#line 93 "cp-name-parser.c.tmp" /* yacc.c:339 */ # ifndef YY_NULLPTRPTR # if defined __cplusplus && 201103L <= __cplusplus @@ -425,7 +230,7 @@ union YYSTYPE { -#line 253 "cp-name-parser.y" /* yacc.c:355 */ +#line 66 "cp-name-parser.y" /* yacc.c:355 */ struct demangle_component *comp; struct nested { @@ -445,7 +250,7 @@ const char *opname; -#line 449 "cp-name-parser.c" /* yacc.c:355 */ +#line 254 "cp-name-parser.c.tmp" /* yacc.c:355 */ }; typedef union YYSTYPE YYSTYPE; @@ -454,15 +259,181 @@ #endif -extern YYSTYPE yylval; -int yyparse (void); +int yyparse (struct cpname_state *state); /* Copy the second part of user declarations. */ +#line 85 "cp-name-parser.y" /* yacc.c:358 */ + + +struct cpname_state +{ + /* LEXPTR is the current pointer into our lex buffer. PREV_LEXPTR + is the start of the last token lexed, only used for diagnostics. + ERROR_LEXPTR is the first place an error occurred. GLOBAL_ERRMSG + is the first error message encountered. */ + + const char *lexptr, *prev_lexptr, *error_lexptr, *global_errmsg; + + struct demangle_info *demangle_info; + + /* The parse tree created by the parser is stored here after a + successful parse. */ + + struct demangle_component *global_result; + + struct demangle_component *d_grab (); + + /* Helper functions. These wrap the demangler tree interface, + handle allocation from our global store, and return the allocated + component. */ -#line 466 "cp-name-parser.c" /* yacc.c:358 */ + struct demangle_component *fill_comp (enum demangle_component_type d_type, + struct demangle_component *lhs, + struct demangle_component *rhs); + + struct demangle_component *make_operator (const char *name, int args); + + struct demangle_component *make_dtor (enum gnu_v3_dtor_kinds kind, + struct demangle_component *name); + + struct demangle_component *make_builtin_type (const char *name); + + struct demangle_component *make_name (const char *name, int len); + + struct demangle_component *d_qualify (struct demangle_component *lhs, + int qualifiers, int is_method); + + struct demangle_component *d_int_type (int flags); + + struct demangle_component *d_unary (const char *name, + struct demangle_component *lhs); + + struct demangle_component *d_binary (const char *name, + struct demangle_component *lhs, + struct demangle_component *rhs); + + int parse_number (const char *p, int len, int parsed_float, YYSTYPE *lvalp); +}; + +struct demangle_component * +cpname_state::d_grab () +{ + struct demangle_info *more; + + if (demangle_info->used >= ALLOC_CHUNK) + { + if (demangle_info->next == NULL) + { + more = XNEW (struct demangle_info); + more->next = NULL; + demangle_info->next = more; + } + else + more = demangle_info->next; + + more->used = 0; + demangle_info = more; + } + return &demangle_info->comps[demangle_info->used++]; +} + +/* Flags passed to d_qualify. */ + +#define QUAL_CONST 1 +#define QUAL_RESTRICT 2 +#define QUAL_VOLATILE 4 + +/* Flags passed to d_int_type. */ + +#define INT_CHAR (1 << 0) +#define INT_SHORT (1 << 1) +#define INT_LONG (1 << 2) +#define INT_LLONG (1 << 3) + +#define INT_SIGNED (1 << 4) +#define INT_UNSIGNED (1 << 5) + +/* Enable yydebug for the stand-alone parser. */ +#ifdef TEST_CPNAMES +# define YYDEBUG 1 +#endif + +/* Helper functions. These wrap the demangler tree interface, handle + allocation from our global store, and return the allocated component. */ + +struct demangle_component * +cpname_state::fill_comp (enum demangle_component_type d_type, + struct demangle_component *lhs, + struct demangle_component *rhs) +{ + struct demangle_component *ret = d_grab (); + int i; + + i = cplus_demangle_fill_component (ret, d_type, lhs, rhs); + gdb_assert (i); + + return ret; +} + +struct demangle_component * +cpname_state::make_operator (const char *name, int args) +{ + struct demangle_component *ret = d_grab (); + int i; + + i = cplus_demangle_fill_operator (ret, name, args); + gdb_assert (i); + + return ret; +} + +struct demangle_component * +cpname_state::make_dtor (enum gnu_v3_dtor_kinds kind, + struct demangle_component *name) +{ + struct demangle_component *ret = d_grab (); + int i; + + i = cplus_demangle_fill_dtor (ret, kind, name); + gdb_assert (i); + + return ret; +} + +struct demangle_component * +cpname_state::make_builtin_type (const char *name) +{ + struct demangle_component *ret = d_grab (); + int i; + + i = cplus_demangle_fill_builtin_type (ret, name); + gdb_assert (i); + + return ret; +} + +struct demangle_component * +cpname_state::make_name (const char *name, int len) +{ + struct demangle_component *ret = d_grab (); + int i; + + i = cplus_demangle_fill_name (ret, name, len); + gdb_assert (i); + + return ret; +} + +#define d_left(dc) (dc)->u.s_binary.left +#define d_right(dc) (dc)->u.s_binary.right + +static int yylex (YYSTYPE *, cpname_state *); +static void yyerror (cpname_state *, const char *); + +#line 437 "cp-name-parser.c.tmp" /* yacc.c:358 */ #ifdef short # undef short @@ -763,26 +734,26 @@ /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 367, 367, 371, 373, 375, 380, 381, 388, 397, - 400, 404, 407, 426, 428, 432, 438, 444, 450, 456, - 458, 460, 462, 464, 466, 468, 470, 472, 474, 476, - 478, 480, 482, 484, 486, 488, 490, 492, 494, 496, - 498, 500, 502, 504, 506, 508, 510, 512, 520, 525, - 530, 534, 539, 547, 548, 550, 562, 563, 569, 571, - 572, 574, 577, 578, 581, 582, 586, 588, 591, 595, - 600, 604, 613, 617, 620, 631, 632, 636, 638, 640, - 643, 647, 652, 657, 663, 673, 677, 681, 689, 690, - 693, 695, 697, 701, 702, 709, 711, 713, 715, 717, - 719, 723, 724, 728, 730, 732, 734, 736, 738, 740, - 744, 749, 752, 755, 761, 769, 771, 785, 787, 788, - 790, 793, 795, 796, 798, 801, 803, 805, 807, 812, - 815, 820, 827, 831, 842, 848, 866, 869, 877, 879, - 890, 897, 898, 904, 908, 912, 914, 919, 924, 936, - 940, 944, 952, 957, 966, 970, 975, 980, 984, 990, - 996, 999, 1006, 1008, 1013, 1017, 1021, 1028, 1044, 1051, - 1058, 1077, 1081, 1085, 1089, 1093, 1097, 1101, 1105, 1109, - 1113, 1117, 1121, 1125, 1129, 1133, 1137, 1141, 1146, 1150, - 1154, 1161, 1165, 1168, 1177, 1186 + 0, 348, 348, 352, 354, 356, 361, 362, 369, 378, + 385, 389, 392, 411, 413, 417, 423, 429, 435, 441, + 443, 445, 447, 449, 451, 453, 455, 457, 459, 461, + 463, 465, 467, 469, 471, 473, 475, 477, 479, 481, + 483, 485, 487, 489, 491, 493, 495, 497, 505, 510, + 515, 519, 524, 532, 533, 535, 547, 548, 554, 556, + 557, 559, 562, 563, 566, 567, 571, 573, 576, 580, + 585, 589, 598, 602, 605, 616, 617, 621, 623, 625, + 628, 632, 637, 642, 648, 658, 662, 666, 674, 675, + 678, 680, 682, 686, 687, 694, 696, 698, 700, 702, + 704, 708, 709, 713, 715, 717, 719, 721, 723, 725, + 729, 734, 737, 740, 746, 754, 756, 770, 772, 773, + 775, 778, 780, 781, 783, 786, 788, 790, 792, 797, + 800, 805, 812, 816, 827, 833, 851, 854, 862, 864, + 875, 882, 883, 889, 893, 897, 899, 904, 909, 921, + 925, 929, 937, 942, 951, 955, 960, 965, 969, 975, + 981, 984, 991, 993, 998, 1002, 1006, 1013, 1029, 1036, + 1043, 1062, 1066, 1070, 1074, 1078, 1082, 1086, 1090, 1094, + 1098, 1102, 1106, 1110, 1114, 1118, 1122, 1126, 1131, 1135, + 1139, 1146, 1150, 1153, 1162, 1171 }; #endif @@ -1291,7 +1262,7 @@ } \ else \ { \ - yyerror (YY_("syntax error: cannot back up")); \ + yyerror (state, YY_("syntax error: cannot back up")); \ YYERROR; \ } \ while (0) @@ -1328,7 +1299,7 @@ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ - Type, Value); \ + Type, Value, state); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) @@ -1339,10 +1310,11 @@ `----------------------------------------*/ static void -yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct cpname_state *state) { FILE *yyo = yyoutput; YYUSE (yyo); + YYUSE (state); if (!yyvaluep) return; # ifdef YYPRINT @@ -1358,12 +1330,12 @@ `--------------------------------*/ static void -yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct cpname_state *state) { YYFPRINTF (yyoutput, "%s %s (", yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); - yy_symbol_value_print (yyoutput, yytype, yyvaluep); + yy_symbol_value_print (yyoutput, yytype, yyvaluep, state); YYFPRINTF (yyoutput, ")"); } @@ -1396,7 +1368,7 @@ `------------------------------------------------*/ static void -yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) +yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, struct cpname_state *state) { unsigned long int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; @@ -1410,7 +1382,7 @@ yy_symbol_print (stderr, yystos[yyssp[yyi + 1 - yynrhs]], &(yyvsp[(yyi + 1) - (yynrhs)]) - ); + , state); YYFPRINTF (stderr, "\n"); } } @@ -1418,7 +1390,7 @@ # define YY_REDUCE_PRINT(Rule) \ do { \ if (yydebug) \ - yy_reduce_print (yyssp, yyvsp, Rule); \ + yy_reduce_print (yyssp, yyvsp, Rule, state); \ } while (0) /* Nonzero means print parse trace. It is left uninitialized so that @@ -1676,9 +1648,10 @@ `-----------------------------------------------*/ static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, struct cpname_state *state) { YYUSE (yyvaluep); + YYUSE (state); if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); @@ -1691,22 +1664,26 @@ -/* The lookahead symbol. */ -int yychar; - -/* The semantic value of the lookahead symbol. */ -YYSTYPE yylval; -/* Number of syntax errors so far. */ -int yynerrs; - - /*----------. | yyparse. | `----------*/ int -yyparse (void) +yyparse (struct cpname_state *state) { +/* The lookahead symbol. */ +int yychar; + + +/* The semantic value of the lookahead symbol. */ +/* Default value used for initialization, for pacifying older GCCs + or non-GCC compilers. */ +YY_INITIAL_VALUE (static YYSTYPE yyval_default;) +YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); + + /* Number of syntax errors so far. */ + int yynerrs; + int yystate; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; @@ -1861,7 +1838,7 @@ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); - yychar = yylex (); + yychar = yylex (&yylval, state); } if (yychar <= YYEOF) @@ -1940,54 +1917,58 @@ switch (yyn) { case 2: -#line 368 "cp-name-parser.y" /* yacc.c:1646 */ - { global_result = (yyvsp[0].comp); } -#line 1947 "cp-name-parser.c" /* yacc.c:1646 */ +#line 349 "cp-name-parser.y" /* yacc.c:1646 */ + { state->global_result = (yyvsp[0].comp); } +#line 1924 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 6: -#line 380 "cp-name-parser.y" /* yacc.c:1646 */ +#line 361 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.comp) = NULL; } -#line 1953 "cp-name-parser.c" /* yacc.c:1646 */ +#line 1930 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 7: -#line 382 "cp-name-parser.y" /* yacc.c:1646 */ +#line 363 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.comp) = (yyvsp[0].comp); } -#line 1959 "cp-name-parser.c" /* yacc.c:1646 */ +#line 1936 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 8: -#line 389 "cp-name-parser.y" /* yacc.c:1646 */ +#line 370 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.comp) = (yyvsp[0].nested).comp; *(yyvsp[0].nested).last = (yyvsp[-1].comp); } -#line 1967 "cp-name-parser.c" /* yacc.c:1646 */ +#line 1944 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 9: -#line 398 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, (yyvsp[-2].comp), (yyvsp[-1].nested).comp); - if ((yyvsp[0].comp)) (yyval.comp) = fill_comp (DEMANGLE_COMPONENT_LOCAL_NAME, (yyval.comp), (yyvsp[0].comp)); } -#line 1974 "cp-name-parser.c" /* yacc.c:1646 */ +#line 379 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, + (yyvsp[-2].comp), (yyvsp[-1].nested).comp); + if ((yyvsp[0].comp)) + (yyval.comp) = state->fill_comp (DEMANGLE_COMPONENT_LOCAL_NAME, + (yyval.comp), (yyvsp[0].comp)); + } +#line 1955 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 10: -#line 401 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, (yyvsp[-2].comp), (yyvsp[-1].nested).comp); - if ((yyvsp[0].comp)) (yyval.comp) = fill_comp (DEMANGLE_COMPONENT_LOCAL_NAME, (yyval.comp), (yyvsp[0].comp)); } -#line 1981 "cp-name-parser.c" /* yacc.c:1646 */ +#line 386 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, (yyvsp[-2].comp), (yyvsp[-1].nested).comp); + if ((yyvsp[0].comp)) (yyval.comp) = state->fill_comp (DEMANGLE_COMPONENT_LOCAL_NAME, (yyval.comp), (yyvsp[0].comp)); } +#line 1962 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 11: -#line 405 "cp-name-parser.y" /* yacc.c:1646 */ +#line 390 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.comp) = (yyvsp[-1].nested).comp; - if ((yyvsp[0].comp)) (yyval.comp) = fill_comp (DEMANGLE_COMPONENT_LOCAL_NAME, (yyval.comp), (yyvsp[0].comp)); } -#line 1988 "cp-name-parser.c" /* yacc.c:1646 */ + if ((yyvsp[0].comp)) (yyval.comp) = state->fill_comp (DEMANGLE_COMPONENT_LOCAL_NAME, (yyval.comp), (yyvsp[0].comp)); } +#line 1969 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 12: -#line 408 "cp-name-parser.y" /* yacc.c:1646 */ +#line 393 "cp-name-parser.y" /* yacc.c:1646 */ { if ((yyvsp[0].abstract).last) { /* First complete the abstract_declarator's type using @@ -1998,732 +1979,732 @@ } /* If we have an arglist, build a function type. */ if ((yyvsp[0].abstract).fn.comp) - (yyval.comp) = fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, (yyvsp[-1].nested).comp, (yyvsp[0].abstract).fn.comp); + (yyval.comp) = state->fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, (yyvsp[-1].nested).comp, (yyvsp[0].abstract).fn.comp); else (yyval.comp) = (yyvsp[-1].nested).comp; - if ((yyvsp[0].abstract).start) (yyval.comp) = fill_comp (DEMANGLE_COMPONENT_LOCAL_NAME, (yyval.comp), (yyvsp[0].abstract).start); + if ((yyvsp[0].abstract).start) (yyval.comp) = state->fill_comp (DEMANGLE_COMPONENT_LOCAL_NAME, (yyval.comp), (yyvsp[0].abstract).start); } -#line 2008 "cp-name-parser.c" /* yacc.c:1646 */ +#line 1989 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 13: -#line 427 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = fill_comp ((enum demangle_component_type) (yyvsp[-1].lval), (yyvsp[0].comp), NULL); } -#line 2014 "cp-name-parser.c" /* yacc.c:1646 */ +#line 412 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->fill_comp ((enum demangle_component_type) (yyvsp[-1].lval), (yyvsp[0].comp), NULL); } +#line 1995 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 14: -#line 429 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = fill_comp (DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE, (yyvsp[-2].comp), (yyvsp[0].comp)); } -#line 2020 "cp-name-parser.c" /* yacc.c:1646 */ +#line 414 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->fill_comp (DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE, (yyvsp[-2].comp), (yyvsp[0].comp)); } +#line 2001 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 15: -#line 433 "cp-name-parser.y" /* yacc.c:1646 */ +#line 418 "cp-name-parser.y" /* yacc.c:1646 */ { /* Match the whitespacing of cplus_demangle_operators. It would abort on unrecognized string otherwise. */ - (yyval.comp) = make_operator ("new", 3); + (yyval.comp) = state->make_operator ("new", 3); } -#line 2030 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2011 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 16: -#line 439 "cp-name-parser.y" /* yacc.c:1646 */ +#line 424 "cp-name-parser.y" /* yacc.c:1646 */ { /* Match the whitespacing of cplus_demangle_operators. It would abort on unrecognized string otherwise. */ - (yyval.comp) = make_operator ("delete ", 1); + (yyval.comp) = state->make_operator ("delete ", 1); } -#line 2040 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2021 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 17: -#line 445 "cp-name-parser.y" /* yacc.c:1646 */ +#line 430 "cp-name-parser.y" /* yacc.c:1646 */ { /* Match the whitespacing of cplus_demangle_operators. It would abort on unrecognized string otherwise. */ - (yyval.comp) = make_operator ("new[]", 3); + (yyval.comp) = state->make_operator ("new[]", 3); } -#line 2050 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2031 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 18: -#line 451 "cp-name-parser.y" /* yacc.c:1646 */ +#line 436 "cp-name-parser.y" /* yacc.c:1646 */ { /* Match the whitespacing of cplus_demangle_operators. It would abort on unrecognized string otherwise. */ - (yyval.comp) = make_operator ("delete[] ", 1); + (yyval.comp) = state->make_operator ("delete[] ", 1); } -#line 2060 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2041 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 19: -#line 457 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator ("+", 2); } -#line 2066 "cp-name-parser.c" /* yacc.c:1646 */ +#line 442 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator ("+", 2); } +#line 2047 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 20: -#line 459 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator ("-", 2); } -#line 2072 "cp-name-parser.c" /* yacc.c:1646 */ +#line 444 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator ("-", 2); } +#line 2053 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 21: -#line 461 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator ("*", 2); } -#line 2078 "cp-name-parser.c" /* yacc.c:1646 */ +#line 446 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator ("*", 2); } +#line 2059 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 22: -#line 463 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator ("/", 2); } -#line 2084 "cp-name-parser.c" /* yacc.c:1646 */ +#line 448 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator ("/", 2); } +#line 2065 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 23: -#line 465 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator ("%", 2); } -#line 2090 "cp-name-parser.c" /* yacc.c:1646 */ +#line 450 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator ("%", 2); } +#line 2071 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 24: -#line 467 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator ("^", 2); } -#line 2096 "cp-name-parser.c" /* yacc.c:1646 */ +#line 452 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator ("^", 2); } +#line 2077 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 25: -#line 469 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator ("&", 2); } -#line 2102 "cp-name-parser.c" /* yacc.c:1646 */ +#line 454 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator ("&", 2); } +#line 2083 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 26: -#line 471 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator ("|", 2); } -#line 2108 "cp-name-parser.c" /* yacc.c:1646 */ +#line 456 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator ("|", 2); } +#line 2089 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 27: -#line 473 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator ("~", 1); } -#line 2114 "cp-name-parser.c" /* yacc.c:1646 */ +#line 458 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator ("~", 1); } +#line 2095 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 28: -#line 475 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator ("!", 1); } -#line 2120 "cp-name-parser.c" /* yacc.c:1646 */ +#line 460 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator ("!", 1); } +#line 2101 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 29: -#line 477 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator ("=", 2); } -#line 2126 "cp-name-parser.c" /* yacc.c:1646 */ +#line 462 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator ("=", 2); } +#line 2107 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 30: -#line 479 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator ("<", 2); } -#line 2132 "cp-name-parser.c" /* yacc.c:1646 */ +#line 464 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator ("<", 2); } +#line 2113 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 31: -#line 481 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator (">", 2); } -#line 2138 "cp-name-parser.c" /* yacc.c:1646 */ +#line 466 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator (">", 2); } +#line 2119 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 32: -#line 483 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator ((yyvsp[0].opname), 2); } -#line 2144 "cp-name-parser.c" /* yacc.c:1646 */ +#line 468 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator ((yyvsp[0].opname), 2); } +#line 2125 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 33: -#line 485 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator ("<<", 2); } -#line 2150 "cp-name-parser.c" /* yacc.c:1646 */ +#line 470 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator ("<<", 2); } +#line 2131 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 34: -#line 487 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator (">>", 2); } -#line 2156 "cp-name-parser.c" /* yacc.c:1646 */ +#line 472 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator (">>", 2); } +#line 2137 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 35: -#line 489 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator ("==", 2); } -#line 2162 "cp-name-parser.c" /* yacc.c:1646 */ +#line 474 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator ("==", 2); } +#line 2143 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 36: -#line 491 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator ("!=", 2); } -#line 2168 "cp-name-parser.c" /* yacc.c:1646 */ +#line 476 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator ("!=", 2); } +#line 2149 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 37: -#line 493 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator ("<=", 2); } -#line 2174 "cp-name-parser.c" /* yacc.c:1646 */ +#line 478 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator ("<=", 2); } +#line 2155 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 38: -#line 495 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator (">=", 2); } -#line 2180 "cp-name-parser.c" /* yacc.c:1646 */ +#line 480 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator (">=", 2); } +#line 2161 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 39: -#line 497 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator ("&&", 2); } -#line 2186 "cp-name-parser.c" /* yacc.c:1646 */ +#line 482 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator ("&&", 2); } +#line 2167 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 40: -#line 499 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator ("||", 2); } -#line 2192 "cp-name-parser.c" /* yacc.c:1646 */ +#line 484 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator ("||", 2); } +#line 2173 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 41: -#line 501 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator ("++", 1); } -#line 2198 "cp-name-parser.c" /* yacc.c:1646 */ +#line 486 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator ("++", 1); } +#line 2179 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 42: -#line 503 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator ("--", 1); } -#line 2204 "cp-name-parser.c" /* yacc.c:1646 */ +#line 488 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator ("--", 1); } +#line 2185 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 43: -#line 505 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator (",", 2); } -#line 2210 "cp-name-parser.c" /* yacc.c:1646 */ +#line 490 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator (",", 2); } +#line 2191 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 44: -#line 507 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator ("->*", 2); } -#line 2216 "cp-name-parser.c" /* yacc.c:1646 */ +#line 492 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator ("->*", 2); } +#line 2197 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 45: -#line 509 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator ("->", 2); } -#line 2222 "cp-name-parser.c" /* yacc.c:1646 */ +#line 494 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator ("->", 2); } +#line 2203 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 46: -#line 511 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator ("()", 2); } -#line 2228 "cp-name-parser.c" /* yacc.c:1646 */ +#line 496 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator ("()", 2); } +#line 2209 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 47: -#line 513 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_operator ("[]", 2); } -#line 2234 "cp-name-parser.c" /* yacc.c:1646 */ +#line 498 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_operator ("[]", 2); } +#line 2215 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 48: -#line 521 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = fill_comp (DEMANGLE_COMPONENT_CONVERSION, (yyvsp[0].comp), NULL); } -#line 2240 "cp-name-parser.c" /* yacc.c:1646 */ +#line 506 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->fill_comp (DEMANGLE_COMPONENT_CONVERSION, (yyvsp[0].comp), NULL); } +#line 2221 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 49: -#line 526 "cp-name-parser.y" /* yacc.c:1646 */ +#line 511 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.nested).comp = (yyvsp[-1].nested1).comp; d_right ((yyvsp[-1].nested1).last) = (yyvsp[0].comp); (yyval.nested).last = &d_left ((yyvsp[0].comp)); } -#line 2249 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2230 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 50: -#line 531 "cp-name-parser.y" /* yacc.c:1646 */ +#line 516 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.nested).comp = (yyvsp[0].comp); (yyval.nested).last = &d_left ((yyvsp[0].comp)); } -#line 2257 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2238 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 51: -#line 535 "cp-name-parser.y" /* yacc.c:1646 */ +#line 520 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.nested).comp = (yyvsp[-1].nested1).comp; d_right ((yyvsp[-1].nested1).last) = (yyvsp[0].comp); (yyval.nested).last = &d_left ((yyvsp[0].comp)); } -#line 2266 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2247 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 52: -#line 540 "cp-name-parser.y" /* yacc.c:1646 */ +#line 525 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.nested).comp = (yyvsp[0].comp); (yyval.nested).last = &d_left ((yyvsp[0].comp)); } -#line 2274 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2255 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 54: -#line 549 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = fill_comp (DEMANGLE_COMPONENT_TEMPLATE, (yyvsp[-3].comp), (yyvsp[-1].nested).comp); } -#line 2280 "cp-name-parser.c" /* yacc.c:1646 */ +#line 534 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->fill_comp (DEMANGLE_COMPONENT_TEMPLATE, (yyvsp[-3].comp), (yyvsp[-1].nested).comp); } +#line 2261 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 55: -#line 551 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_dtor (gnu_v3_complete_object_dtor, (yyvsp[0].comp)); } -#line 2286 "cp-name-parser.c" /* yacc.c:1646 */ +#line 536 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_dtor (gnu_v3_complete_object_dtor, (yyvsp[0].comp)); } +#line 2267 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 57: -#line 564 "cp-name-parser.y" /* yacc.c:1646 */ +#line 549 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.comp) = (yyvsp[0].comp); } -#line 2292 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2273 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 58: -#line 570 "cp-name-parser.y" /* yacc.c:1646 */ +#line 555 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.comp) = (yyvsp[-1].nested1).comp; d_right ((yyvsp[-1].nested1).last) = (yyvsp[0].comp); } -#line 2298 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2279 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 60: -#line 573 "cp-name-parser.y" /* yacc.c:1646 */ +#line 558 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.comp) = (yyvsp[-1].nested1).comp; d_right ((yyvsp[-1].nested1).last) = (yyvsp[0].comp); } -#line 2304 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2285 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 65: -#line 583 "cp-name-parser.y" /* yacc.c:1646 */ +#line 568 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.comp) = (yyvsp[0].comp); } -#line 2310 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2291 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 66: -#line 587 "cp-name-parser.y" /* yacc.c:1646 */ +#line 572 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.comp) = (yyvsp[-1].nested1).comp; d_right ((yyvsp[-1].nested1).last) = (yyvsp[0].comp); } -#line 2316 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2297 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 68: -#line 592 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.nested1).comp = fill_comp (DEMANGLE_COMPONENT_QUAL_NAME, (yyvsp[-1].comp), NULL); +#line 577 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.nested1).comp = state->fill_comp (DEMANGLE_COMPONENT_QUAL_NAME, (yyvsp[-1].comp), NULL); (yyval.nested1).last = (yyval.nested1).comp; } -#line 2324 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2305 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 69: -#line 596 "cp-name-parser.y" /* yacc.c:1646 */ +#line 581 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.nested1).comp = (yyvsp[-2].nested1).comp; - d_right ((yyvsp[-2].nested1).last) = fill_comp (DEMANGLE_COMPONENT_QUAL_NAME, (yyvsp[-1].comp), NULL); + d_right ((yyvsp[-2].nested1).last) = state->fill_comp (DEMANGLE_COMPONENT_QUAL_NAME, (yyvsp[-1].comp), NULL); (yyval.nested1).last = d_right ((yyvsp[-2].nested1).last); } -#line 2333 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2314 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 70: -#line 601 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.nested1).comp = fill_comp (DEMANGLE_COMPONENT_QUAL_NAME, (yyvsp[-1].comp), NULL); +#line 586 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.nested1).comp = state->fill_comp (DEMANGLE_COMPONENT_QUAL_NAME, (yyvsp[-1].comp), NULL); (yyval.nested1).last = (yyval.nested1).comp; } -#line 2341 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2322 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 71: -#line 605 "cp-name-parser.y" /* yacc.c:1646 */ +#line 590 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.nested1).comp = (yyvsp[-2].nested1).comp; - d_right ((yyvsp[-2].nested1).last) = fill_comp (DEMANGLE_COMPONENT_QUAL_NAME, (yyvsp[-1].comp), NULL); + d_right ((yyvsp[-2].nested1).last) = state->fill_comp (DEMANGLE_COMPONENT_QUAL_NAME, (yyvsp[-1].comp), NULL); (yyval.nested1).last = d_right ((yyvsp[-2].nested1).last); } -#line 2350 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2331 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 72: -#line 614 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = fill_comp (DEMANGLE_COMPONENT_TEMPLATE, (yyvsp[-3].comp), (yyvsp[-1].nested).comp); } -#line 2356 "cp-name-parser.c" /* yacc.c:1646 */ +#line 599 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->fill_comp (DEMANGLE_COMPONENT_TEMPLATE, (yyvsp[-3].comp), (yyvsp[-1].nested).comp); } +#line 2337 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 73: -#line 618 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.nested).comp = fill_comp (DEMANGLE_COMPONENT_TEMPLATE_ARGLIST, (yyvsp[0].comp), NULL); +#line 603 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.nested).comp = state->fill_comp (DEMANGLE_COMPONENT_TEMPLATE_ARGLIST, (yyvsp[0].comp), NULL); (yyval.nested).last = &d_right ((yyval.nested).comp); } -#line 2363 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2344 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 74: -#line 621 "cp-name-parser.y" /* yacc.c:1646 */ +#line 606 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.nested).comp = (yyvsp[-2].nested).comp; - *(yyvsp[-2].nested).last = fill_comp (DEMANGLE_COMPONENT_TEMPLATE_ARGLIST, (yyvsp[0].comp), NULL); + *(yyvsp[-2].nested).last = state->fill_comp (DEMANGLE_COMPONENT_TEMPLATE_ARGLIST, (yyvsp[0].comp), NULL); (yyval.nested).last = &d_right (*(yyvsp[-2].nested).last); } -#line 2372 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2353 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 76: -#line 633 "cp-name-parser.y" /* yacc.c:1646 */ +#line 618 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.comp) = (yyvsp[0].abstract).comp; *(yyvsp[0].abstract).last = (yyvsp[-1].comp); } -#line 2380 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2361 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 77: -#line 637 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = fill_comp (DEMANGLE_COMPONENT_UNARY, make_operator ("&", 1), (yyvsp[0].comp)); } -#line 2386 "cp-name-parser.c" /* yacc.c:1646 */ +#line 622 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->fill_comp (DEMANGLE_COMPONENT_UNARY, state->make_operator ("&", 1), (yyvsp[0].comp)); } +#line 2367 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 78: -#line 639 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = fill_comp (DEMANGLE_COMPONENT_UNARY, make_operator ("&", 1), (yyvsp[-1].comp)); } -#line 2392 "cp-name-parser.c" /* yacc.c:1646 */ +#line 624 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->fill_comp (DEMANGLE_COMPONENT_UNARY, state->make_operator ("&", 1), (yyvsp[-1].comp)); } +#line 2373 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 80: -#line 644 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.nested).comp = fill_comp (DEMANGLE_COMPONENT_ARGLIST, (yyvsp[0].comp), NULL); +#line 629 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.nested).comp = state->fill_comp (DEMANGLE_COMPONENT_ARGLIST, (yyvsp[0].comp), NULL); (yyval.nested).last = &d_right ((yyval.nested).comp); } -#line 2400 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2381 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 81: -#line 648 "cp-name-parser.y" /* yacc.c:1646 */ +#line 633 "cp-name-parser.y" /* yacc.c:1646 */ { *(yyvsp[0].abstract).last = (yyvsp[-1].comp); - (yyval.nested).comp = fill_comp (DEMANGLE_COMPONENT_ARGLIST, (yyvsp[0].abstract).comp, NULL); + (yyval.nested).comp = state->fill_comp (DEMANGLE_COMPONENT_ARGLIST, (yyvsp[0].abstract).comp, NULL); (yyval.nested).last = &d_right ((yyval.nested).comp); } -#line 2409 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2390 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 82: -#line 653 "cp-name-parser.y" /* yacc.c:1646 */ - { *(yyvsp[-2].nested).last = fill_comp (DEMANGLE_COMPONENT_ARGLIST, (yyvsp[0].comp), NULL); +#line 638 "cp-name-parser.y" /* yacc.c:1646 */ + { *(yyvsp[-2].nested).last = state->fill_comp (DEMANGLE_COMPONENT_ARGLIST, (yyvsp[0].comp), NULL); (yyval.nested).comp = (yyvsp[-2].nested).comp; (yyval.nested).last = &d_right (*(yyvsp[-2].nested).last); } -#line 2418 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2399 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 83: -#line 658 "cp-name-parser.y" /* yacc.c:1646 */ +#line 643 "cp-name-parser.y" /* yacc.c:1646 */ { *(yyvsp[0].abstract).last = (yyvsp[-1].comp); - *(yyvsp[-3].nested).last = fill_comp (DEMANGLE_COMPONENT_ARGLIST, (yyvsp[0].abstract).comp, NULL); + *(yyvsp[-3].nested).last = state->fill_comp (DEMANGLE_COMPONENT_ARGLIST, (yyvsp[0].abstract).comp, NULL); (yyval.nested).comp = (yyvsp[-3].nested).comp; (yyval.nested).last = &d_right (*(yyvsp[-3].nested).last); } -#line 2428 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2409 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 84: -#line 664 "cp-name-parser.y" /* yacc.c:1646 */ +#line 649 "cp-name-parser.y" /* yacc.c:1646 */ { *(yyvsp[-2].nested).last - = fill_comp (DEMANGLE_COMPONENT_ARGLIST, - make_builtin_type ("..."), + = state->fill_comp (DEMANGLE_COMPONENT_ARGLIST, + state->make_builtin_type ("..."), NULL); (yyval.nested).comp = (yyvsp[-2].nested).comp; (yyval.nested).last = &d_right (*(yyvsp[-2].nested).last); } -#line 2440 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2421 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 85: -#line 674 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.nested).comp = fill_comp (DEMANGLE_COMPONENT_FUNCTION_TYPE, NULL, (yyvsp[-2].nested).comp); +#line 659 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.nested).comp = state->fill_comp (DEMANGLE_COMPONENT_FUNCTION_TYPE, NULL, (yyvsp[-2].nested).comp); (yyval.nested).last = &d_left ((yyval.nested).comp); - (yyval.nested).comp = d_qualify ((yyval.nested).comp, (yyvsp[0].lval), 1); } -#line 2448 "cp-name-parser.c" /* yacc.c:1646 */ + (yyval.nested).comp = state->d_qualify ((yyval.nested).comp, (yyvsp[0].lval), 1); } +#line 2429 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 86: -#line 678 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.nested).comp = fill_comp (DEMANGLE_COMPONENT_FUNCTION_TYPE, NULL, NULL); +#line 663 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.nested).comp = state->fill_comp (DEMANGLE_COMPONENT_FUNCTION_TYPE, NULL, NULL); (yyval.nested).last = &d_left ((yyval.nested).comp); - (yyval.nested).comp = d_qualify ((yyval.nested).comp, (yyvsp[0].lval), 1); } -#line 2456 "cp-name-parser.c" /* yacc.c:1646 */ + (yyval.nested).comp = state->d_qualify ((yyval.nested).comp, (yyvsp[0].lval), 1); } +#line 2437 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 87: -#line 682 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.nested).comp = fill_comp (DEMANGLE_COMPONENT_FUNCTION_TYPE, NULL, NULL); +#line 667 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.nested).comp = state->fill_comp (DEMANGLE_COMPONENT_FUNCTION_TYPE, NULL, NULL); (yyval.nested).last = &d_left ((yyval.nested).comp); - (yyval.nested).comp = d_qualify ((yyval.nested).comp, (yyvsp[0].lval), 1); } -#line 2464 "cp-name-parser.c" /* yacc.c:1646 */ + (yyval.nested).comp = state->d_qualify ((yyval.nested).comp, (yyvsp[0].lval), 1); } +#line 2445 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 88: -#line 689 "cp-name-parser.y" /* yacc.c:1646 */ +#line 674 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.lval) = 0; } -#line 2470 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2451 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 90: -#line 694 "cp-name-parser.y" /* yacc.c:1646 */ +#line 679 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.lval) = QUAL_RESTRICT; } -#line 2476 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2457 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 91: -#line 696 "cp-name-parser.y" /* yacc.c:1646 */ +#line 681 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.lval) = QUAL_VOLATILE; } -#line 2482 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2463 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 92: -#line 698 "cp-name-parser.y" /* yacc.c:1646 */ +#line 683 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.lval) = QUAL_CONST; } -#line 2488 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2469 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 94: -#line 703 "cp-name-parser.y" /* yacc.c:1646 */ +#line 688 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.lval) = (yyvsp[-1].lval) | (yyvsp[0].lval); } -#line 2494 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2475 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 95: -#line 710 "cp-name-parser.y" /* yacc.c:1646 */ +#line 695 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.lval) = 0; } -#line 2500 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2481 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 96: -#line 712 "cp-name-parser.y" /* yacc.c:1646 */ +#line 697 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.lval) = INT_SIGNED; } -#line 2506 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2487 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 97: -#line 714 "cp-name-parser.y" /* yacc.c:1646 */ +#line 699 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.lval) = INT_UNSIGNED; } -#line 2512 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2493 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 98: -#line 716 "cp-name-parser.y" /* yacc.c:1646 */ +#line 701 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.lval) = INT_CHAR; } -#line 2518 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2499 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 99: -#line 718 "cp-name-parser.y" /* yacc.c:1646 */ +#line 703 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.lval) = INT_LONG; } -#line 2524 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2505 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 100: -#line 720 "cp-name-parser.y" /* yacc.c:1646 */ +#line 705 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.lval) = INT_SHORT; } -#line 2530 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2511 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 102: -#line 725 "cp-name-parser.y" /* yacc.c:1646 */ +#line 710 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.lval) = (yyvsp[-1].lval) | (yyvsp[0].lval); if ((yyvsp[-1].lval) & (yyvsp[0].lval) & INT_LONG) (yyval.lval) = (yyvsp[-1].lval) | INT_LLONG; } -#line 2536 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2517 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 103: -#line 729 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_int_type ((yyvsp[0].lval)); } -#line 2542 "cp-name-parser.c" /* yacc.c:1646 */ +#line 714 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_int_type ((yyvsp[0].lval)); } +#line 2523 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 104: -#line 731 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_builtin_type ("float"); } -#line 2548 "cp-name-parser.c" /* yacc.c:1646 */ +#line 716 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_builtin_type ("float"); } +#line 2529 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 105: -#line 733 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_builtin_type ("double"); } -#line 2554 "cp-name-parser.c" /* yacc.c:1646 */ +#line 718 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_builtin_type ("double"); } +#line 2535 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 106: -#line 735 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_builtin_type ("long double"); } -#line 2560 "cp-name-parser.c" /* yacc.c:1646 */ +#line 720 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_builtin_type ("long double"); } +#line 2541 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 107: -#line 737 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_builtin_type ("bool"); } -#line 2566 "cp-name-parser.c" /* yacc.c:1646 */ +#line 722 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_builtin_type ("bool"); } +#line 2547 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 108: -#line 739 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_builtin_type ("wchar_t"); } -#line 2572 "cp-name-parser.c" /* yacc.c:1646 */ +#line 724 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_builtin_type ("wchar_t"); } +#line 2553 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 109: -#line 741 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = make_builtin_type ("void"); } -#line 2578 "cp-name-parser.c" /* yacc.c:1646 */ +#line 726 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->make_builtin_type ("void"); } +#line 2559 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 110: -#line 745 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.nested).comp = fill_comp (DEMANGLE_COMPONENT_POINTER, NULL, NULL); +#line 730 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.nested).comp = state->fill_comp (DEMANGLE_COMPONENT_POINTER, NULL, NULL); (yyval.nested).last = &d_left ((yyval.nested).comp); - (yyval.nested).comp = d_qualify ((yyval.nested).comp, (yyvsp[0].lval), 0); } -#line 2586 "cp-name-parser.c" /* yacc.c:1646 */ + (yyval.nested).comp = state->d_qualify ((yyval.nested).comp, (yyvsp[0].lval), 0); } +#line 2567 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 111: -#line 750 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.nested).comp = fill_comp (DEMANGLE_COMPONENT_REFERENCE, NULL, NULL); +#line 735 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.nested).comp = state->fill_comp (DEMANGLE_COMPONENT_REFERENCE, NULL, NULL); (yyval.nested).last = &d_left ((yyval.nested).comp); } -#line 2593 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2574 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 112: -#line 753 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.nested).comp = fill_comp (DEMANGLE_COMPONENT_RVALUE_REFERENCE, NULL, NULL); +#line 738 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.nested).comp = state->fill_comp (DEMANGLE_COMPONENT_RVALUE_REFERENCE, NULL, NULL); (yyval.nested).last = &d_left ((yyval.nested).comp); } -#line 2600 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2581 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 113: -#line 756 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.nested).comp = fill_comp (DEMANGLE_COMPONENT_PTRMEM_TYPE, (yyvsp[-2].nested1).comp, NULL); +#line 741 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.nested).comp = state->fill_comp (DEMANGLE_COMPONENT_PTRMEM_TYPE, (yyvsp[-2].nested1).comp, NULL); /* Convert the innermost DEMANGLE_COMPONENT_QUAL_NAME to a DEMANGLE_COMPONENT_NAME. */ *(yyvsp[-2].nested1).last = *d_left ((yyvsp[-2].nested1).last); (yyval.nested).last = &d_right ((yyval.nested).comp); - (yyval.nested).comp = d_qualify ((yyval.nested).comp, (yyvsp[0].lval), 0); } -#line 2610 "cp-name-parser.c" /* yacc.c:1646 */ + (yyval.nested).comp = state->d_qualify ((yyval.nested).comp, (yyvsp[0].lval), 0); } +#line 2591 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 114: -#line 762 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.nested).comp = fill_comp (DEMANGLE_COMPONENT_PTRMEM_TYPE, (yyvsp[-2].nested1).comp, NULL); +#line 747 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.nested).comp = state->fill_comp (DEMANGLE_COMPONENT_PTRMEM_TYPE, (yyvsp[-2].nested1).comp, NULL); /* Convert the innermost DEMANGLE_COMPONENT_QUAL_NAME to a DEMANGLE_COMPONENT_NAME. */ *(yyvsp[-2].nested1).last = *d_left ((yyvsp[-2].nested1).last); (yyval.nested).last = &d_right ((yyval.nested).comp); - (yyval.nested).comp = d_qualify ((yyval.nested).comp, (yyvsp[0].lval), 0); } -#line 2620 "cp-name-parser.c" /* yacc.c:1646 */ + (yyval.nested).comp = state->d_qualify ((yyval.nested).comp, (yyvsp[0].lval), 0); } +#line 2601 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 115: -#line 770 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = fill_comp (DEMANGLE_COMPONENT_ARRAY_TYPE, NULL, NULL); } -#line 2626 "cp-name-parser.c" /* yacc.c:1646 */ +#line 755 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->fill_comp (DEMANGLE_COMPONENT_ARRAY_TYPE, NULL, NULL); } +#line 2607 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 116: -#line 772 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = fill_comp (DEMANGLE_COMPONENT_ARRAY_TYPE, (yyvsp[-1].comp), NULL); } -#line 2632 "cp-name-parser.c" /* yacc.c:1646 */ +#line 757 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->fill_comp (DEMANGLE_COMPONENT_ARRAY_TYPE, (yyvsp[-1].comp), NULL); } +#line 2613 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 117: -#line 786 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_qualify ((yyvsp[-1].comp), (yyvsp[0].lval), 0); } -#line 2638 "cp-name-parser.c" /* yacc.c:1646 */ +#line 771 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_qualify ((yyvsp[-1].comp), (yyvsp[0].lval), 0); } +#line 2619 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 119: -#line 789 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_qualify ((yyvsp[-1].comp), (yyvsp[-2].lval) | (yyvsp[0].lval), 0); } -#line 2644 "cp-name-parser.c" /* yacc.c:1646 */ +#line 774 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_qualify ((yyvsp[-1].comp), (yyvsp[-2].lval) | (yyvsp[0].lval), 0); } +#line 2625 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 120: -#line 791 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_qualify ((yyvsp[0].comp), (yyvsp[-1].lval), 0); } -#line 2650 "cp-name-parser.c" /* yacc.c:1646 */ +#line 776 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_qualify ((yyvsp[0].comp), (yyvsp[-1].lval), 0); } +#line 2631 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 121: -#line 794 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_qualify ((yyvsp[-1].comp), (yyvsp[0].lval), 0); } -#line 2656 "cp-name-parser.c" /* yacc.c:1646 */ +#line 779 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_qualify ((yyvsp[-1].comp), (yyvsp[0].lval), 0); } +#line 2637 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 123: -#line 797 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_qualify ((yyvsp[-1].comp), (yyvsp[-2].lval) | (yyvsp[0].lval), 0); } -#line 2662 "cp-name-parser.c" /* yacc.c:1646 */ +#line 782 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_qualify ((yyvsp[-1].comp), (yyvsp[-2].lval) | (yyvsp[0].lval), 0); } +#line 2643 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 124: -#line 799 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_qualify ((yyvsp[0].comp), (yyvsp[-1].lval), 0); } -#line 2668 "cp-name-parser.c" /* yacc.c:1646 */ +#line 784 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_qualify ((yyvsp[0].comp), (yyvsp[-1].lval), 0); } +#line 2649 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 125: -#line 802 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_qualify ((yyvsp[-1].comp), (yyvsp[0].lval), 0); } -#line 2674 "cp-name-parser.c" /* yacc.c:1646 */ +#line 787 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_qualify ((yyvsp[-1].comp), (yyvsp[0].lval), 0); } +#line 2655 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 126: -#line 804 "cp-name-parser.y" /* yacc.c:1646 */ +#line 789 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.comp) = (yyvsp[0].comp); } -#line 2680 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2661 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 127: -#line 806 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_qualify ((yyvsp[-1].comp), (yyvsp[-3].lval) | (yyvsp[0].lval), 0); } -#line 2686 "cp-name-parser.c" /* yacc.c:1646 */ +#line 791 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_qualify ((yyvsp[-1].comp), (yyvsp[-3].lval) | (yyvsp[0].lval), 0); } +#line 2667 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 128: -#line 808 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_qualify ((yyvsp[0].comp), (yyvsp[-2].lval), 0); } -#line 2692 "cp-name-parser.c" /* yacc.c:1646 */ +#line 793 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_qualify ((yyvsp[0].comp), (yyvsp[-2].lval), 0); } +#line 2673 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 129: -#line 813 "cp-name-parser.y" /* yacc.c:1646 */ +#line 798 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.abstract).comp = (yyvsp[0].nested).comp; (yyval.abstract).last = (yyvsp[0].nested).last; (yyval.abstract).fn.comp = NULL; (yyval.abstract).fn.last = NULL; } -#line 2699 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2680 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 130: -#line 816 "cp-name-parser.y" /* yacc.c:1646 */ +#line 801 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.abstract) = (yyvsp[0].abstract); (yyval.abstract).fn.comp = NULL; (yyval.abstract).fn.last = NULL; if ((yyvsp[0].abstract).fn.comp) { (yyval.abstract).last = (yyvsp[0].abstract).fn.last; *(yyvsp[0].abstract).last = (yyvsp[0].abstract).fn.comp; } *(yyval.abstract).last = (yyvsp[-1].nested).comp; (yyval.abstract).last = (yyvsp[-1].nested).last; } -#line 2708 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2689 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 131: -#line 821 "cp-name-parser.y" /* yacc.c:1646 */ +#line 806 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.abstract).fn.comp = NULL; (yyval.abstract).fn.last = NULL; if ((yyvsp[0].abstract).fn.comp) { (yyval.abstract).last = (yyvsp[0].abstract).fn.last; *(yyvsp[0].abstract).last = (yyvsp[0].abstract).fn.comp; } } -#line 2716 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2697 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 132: -#line 828 "cp-name-parser.y" /* yacc.c:1646 */ +#line 813 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.abstract) = (yyvsp[-1].abstract); (yyval.abstract).fn.comp = NULL; (yyval.abstract).fn.last = NULL; (yyval.abstract).fold_flag = 1; if ((yyvsp[-1].abstract).fn.comp) { (yyval.abstract).last = (yyvsp[-1].abstract).fn.last; *(yyvsp[-1].abstract).last = (yyvsp[-1].abstract).fn.comp; } } -#line 2724 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2705 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 133: -#line 832 "cp-name-parser.y" /* yacc.c:1646 */ +#line 817 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.abstract).fold_flag = 0; if ((yyvsp[-1].abstract).fn.comp) { (yyval.abstract).last = (yyvsp[-1].abstract).fn.last; *(yyvsp[-1].abstract).last = (yyvsp[-1].abstract).fn.comp; } if ((yyvsp[-1].abstract).fold_flag) @@ -2734,37 +2715,37 @@ else (yyval.abstract).fn = (yyvsp[0].nested); } -#line 2739 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2720 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 134: -#line 843 "cp-name-parser.y" /* yacc.c:1646 */ +#line 828 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.abstract).fn.comp = NULL; (yyval.abstract).fn.last = NULL; (yyval.abstract).fold_flag = 0; if ((yyvsp[-1].abstract).fn.comp) { (yyval.abstract).last = (yyvsp[-1].abstract).fn.last; *(yyvsp[-1].abstract).last = (yyvsp[-1].abstract).fn.comp; } *(yyvsp[-1].abstract).last = (yyvsp[0].comp); (yyval.abstract).last = &d_right ((yyvsp[0].comp)); } -#line 2749 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2730 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 135: -#line 849 "cp-name-parser.y" /* yacc.c:1646 */ +#line 834 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.abstract).fn.comp = NULL; (yyval.abstract).fn.last = NULL; (yyval.abstract).fold_flag = 0; (yyval.abstract).comp = (yyvsp[0].comp); (yyval.abstract).last = &d_right ((yyvsp[0].comp)); } -#line 2758 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2739 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 136: -#line 867 "cp-name-parser.y" /* yacc.c:1646 */ +#line 852 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.abstract).comp = (yyvsp[0].nested).comp; (yyval.abstract).last = (yyvsp[0].nested).last; (yyval.abstract).fn.comp = NULL; (yyval.abstract).fn.last = NULL; (yyval.abstract).start = NULL; } -#line 2765 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2746 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 137: -#line 870 "cp-name-parser.y" /* yacc.c:1646 */ +#line 855 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.abstract) = (yyvsp[0].abstract); if ((yyvsp[0].abstract).last) *(yyval.abstract).last = (yyvsp[-1].nested).comp; @@ -2772,17 +2753,17 @@ (yyval.abstract).comp = (yyvsp[-1].nested).comp; (yyval.abstract).last = (yyvsp[-1].nested).last; } -#line 2777 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2758 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 138: -#line 878 "cp-name-parser.y" /* yacc.c:1646 */ +#line 863 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.abstract).comp = (yyvsp[0].abstract).comp; (yyval.abstract).last = (yyvsp[0].abstract).last; (yyval.abstract).fn = (yyvsp[0].abstract).fn; (yyval.abstract).start = NULL; } -#line 2783 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2764 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 139: -#line 880 "cp-name-parser.y" /* yacc.c:1646 */ +#line 865 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.abstract).start = (yyvsp[0].comp); if ((yyvsp[-3].abstract).fn.comp) { (yyval.abstract).last = (yyvsp[-3].abstract).fn.last; *(yyvsp[-3].abstract).last = (yyvsp[-3].abstract).fn.comp; } if ((yyvsp[-3].abstract).fold_flag) @@ -2793,187 +2774,187 @@ else (yyval.abstract).fn = (yyvsp[-2].nested); } -#line 2798 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2779 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 140: -#line 891 "cp-name-parser.y" /* yacc.c:1646 */ +#line 876 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.abstract).fn = (yyvsp[-1].nested); (yyval.abstract).start = (yyvsp[0].comp); (yyval.abstract).comp = NULL; (yyval.abstract).last = NULL; } -#line 2807 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2788 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 142: -#line 899 "cp-name-parser.y" /* yacc.c:1646 */ +#line 884 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.comp) = (yyvsp[0].abstract).comp; *(yyvsp[0].abstract).last = (yyvsp[-1].comp); } -#line 2815 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2796 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 143: -#line 905 "cp-name-parser.y" /* yacc.c:1646 */ +#line 890 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.nested).comp = (yyvsp[0].nested).comp; (yyval.nested).last = (yyvsp[-1].nested).last; *(yyvsp[0].nested).last = (yyvsp[-1].nested).comp; } -#line 2823 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2804 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 145: -#line 913 "cp-name-parser.y" /* yacc.c:1646 */ +#line 898 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.nested) = (yyvsp[-1].nested); } -#line 2829 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2810 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 146: -#line 915 "cp-name-parser.y" /* yacc.c:1646 */ +#line 900 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.nested).comp = (yyvsp[-1].nested).comp; *(yyvsp[-1].nested).last = (yyvsp[0].nested).comp; (yyval.nested).last = (yyvsp[0].nested).last; } -#line 2838 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2819 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 147: -#line 920 "cp-name-parser.y" /* yacc.c:1646 */ +#line 905 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.nested).comp = (yyvsp[-1].nested).comp; *(yyvsp[-1].nested).last = (yyvsp[0].comp); (yyval.nested).last = &d_right ((yyvsp[0].comp)); } -#line 2847 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2828 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 148: -#line 925 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.nested).comp = fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, (yyvsp[0].comp), NULL); +#line 910 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.nested).comp = state->fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, (yyvsp[0].comp), NULL); (yyval.nested).last = &d_right ((yyval.nested).comp); } -#line 2855 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2836 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 149: -#line 937 "cp-name-parser.y" /* yacc.c:1646 */ +#line 922 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.nested).comp = (yyvsp[0].nested).comp; (yyval.nested).last = (yyvsp[-1].nested).last; *(yyvsp[0].nested).last = (yyvsp[-1].nested).comp; } -#line 2863 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2844 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 150: -#line 941 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.nested).comp = fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, (yyvsp[0].comp), NULL); +#line 926 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.nested).comp = state->fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, (yyvsp[0].comp), NULL); (yyval.nested).last = &d_right ((yyval.nested).comp); } -#line 2871 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2852 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 152: -#line 953 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.nested).comp = fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, (yyvsp[-3].comp), (yyvsp[-2].nested).comp); +#line 938 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.nested).comp = state->fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, (yyvsp[-3].comp), (yyvsp[-2].nested).comp); (yyval.nested).last = (yyvsp[-2].nested).last; - (yyval.nested).comp = fill_comp (DEMANGLE_COMPONENT_LOCAL_NAME, (yyval.nested).comp, (yyvsp[0].comp)); + (yyval.nested).comp = state->fill_comp (DEMANGLE_COMPONENT_LOCAL_NAME, (yyval.nested).comp, (yyvsp[0].comp)); } -#line 2880 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2861 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 153: -#line 958 "cp-name-parser.y" /* yacc.c:1646 */ +#line 943 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.nested).comp = (yyvsp[-3].nested).comp; *(yyvsp[-3].nested).last = (yyvsp[-2].nested).comp; (yyval.nested).last = (yyvsp[-2].nested).last; - (yyval.nested).comp = fill_comp (DEMANGLE_COMPONENT_LOCAL_NAME, (yyval.nested).comp, (yyvsp[0].comp)); + (yyval.nested).comp = state->fill_comp (DEMANGLE_COMPONENT_LOCAL_NAME, (yyval.nested).comp, (yyvsp[0].comp)); } -#line 2890 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2871 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 154: -#line 967 "cp-name-parser.y" /* yacc.c:1646 */ +#line 952 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.nested).comp = (yyvsp[-1].nested).comp; (yyval.nested).last = (yyvsp[-2].nested).last; *(yyvsp[-1].nested).last = (yyvsp[-2].nested).comp; } -#line 2898 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2879 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 155: -#line 971 "cp-name-parser.y" /* yacc.c:1646 */ +#line 956 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.nested).comp = (yyvsp[-1].nested).comp; *(yyvsp[-1].nested).last = (yyvsp[0].nested).comp; (yyval.nested).last = (yyvsp[0].nested).last; } -#line 2907 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2888 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 156: -#line 976 "cp-name-parser.y" /* yacc.c:1646 */ +#line 961 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.nested).comp = (yyvsp[-1].nested).comp; *(yyvsp[-1].nested).last = (yyvsp[0].comp); (yyval.nested).last = &d_right ((yyvsp[0].comp)); } -#line 2916 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2897 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 157: -#line 981 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.nested).comp = fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, (yyvsp[-1].comp), (yyvsp[0].nested).comp); +#line 966 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.nested).comp = state->fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, (yyvsp[-1].comp), (yyvsp[0].nested).comp); (yyval.nested).last = (yyvsp[0].nested).last; } -#line 2924 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2905 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 158: -#line 985 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.nested).comp = fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, (yyvsp[-1].comp), (yyvsp[0].comp)); +#line 970 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.nested).comp = state->fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, (yyvsp[-1].comp), (yyvsp[0].comp)); (yyval.nested).last = &d_right ((yyvsp[0].comp)); } -#line 2932 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2913 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 159: -#line 991 "cp-name-parser.y" /* yacc.c:1646 */ +#line 976 "cp-name-parser.y" /* yacc.c:1646 */ { (yyval.comp) = (yyvsp[-1].comp); } -#line 2938 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2919 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 161: -#line 1000 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_binary (">", (yyvsp[-2].comp), (yyvsp[0].comp)); } -#line 2944 "cp-name-parser.c" /* yacc.c:1646 */ +#line 985 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_binary (">", (yyvsp[-2].comp), (yyvsp[0].comp)); } +#line 2925 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 162: -#line 1007 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = fill_comp (DEMANGLE_COMPONENT_UNARY, make_operator ("&", 1), (yyvsp[0].comp)); } -#line 2950 "cp-name-parser.c" /* yacc.c:1646 */ +#line 992 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->fill_comp (DEMANGLE_COMPONENT_UNARY, state->make_operator ("&", 1), (yyvsp[0].comp)); } +#line 2931 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 163: -#line 1009 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = fill_comp (DEMANGLE_COMPONENT_UNARY, make_operator ("&", 1), (yyvsp[-1].comp)); } -#line 2956 "cp-name-parser.c" /* yacc.c:1646 */ +#line 994 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->fill_comp (DEMANGLE_COMPONENT_UNARY, state->make_operator ("&", 1), (yyvsp[-1].comp)); } +#line 2937 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 164: -#line 1014 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_unary ("-", (yyvsp[0].comp)); } -#line 2962 "cp-name-parser.c" /* yacc.c:1646 */ +#line 999 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_unary ("-", (yyvsp[0].comp)); } +#line 2943 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 165: -#line 1018 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_unary ("!", (yyvsp[0].comp)); } -#line 2968 "cp-name-parser.c" /* yacc.c:1646 */ +#line 1003 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_unary ("!", (yyvsp[0].comp)); } +#line 2949 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 166: -#line 1022 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_unary ("~", (yyvsp[0].comp)); } -#line 2974 "cp-name-parser.c" /* yacc.c:1646 */ +#line 1007 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_unary ("~", (yyvsp[0].comp)); } +#line 2955 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 167: -#line 1029 "cp-name-parser.y" /* yacc.c:1646 */ +#line 1014 "cp-name-parser.y" /* yacc.c:1646 */ { if ((yyvsp[0].comp)->type == DEMANGLE_COMPONENT_LITERAL || (yyvsp[0].comp)->type == DEMANGLE_COMPONENT_LITERAL_NEG) { @@ -2981,197 +2962,197 @@ d_left ((yyvsp[0].comp)) = (yyvsp[-2].comp); } else - (yyval.comp) = fill_comp (DEMANGLE_COMPONENT_UNARY, - fill_comp (DEMANGLE_COMPONENT_CAST, (yyvsp[-2].comp), NULL), + (yyval.comp) = state->fill_comp (DEMANGLE_COMPONENT_UNARY, + state->fill_comp (DEMANGLE_COMPONENT_CAST, (yyvsp[-2].comp), NULL), (yyvsp[0].comp)); } -#line 2990 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2971 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 168: -#line 1045 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = fill_comp (DEMANGLE_COMPONENT_UNARY, - fill_comp (DEMANGLE_COMPONENT_CAST, (yyvsp[-4].comp), NULL), +#line 1030 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->fill_comp (DEMANGLE_COMPONENT_UNARY, + state->fill_comp (DEMANGLE_COMPONENT_CAST, (yyvsp[-4].comp), NULL), (yyvsp[-1].comp)); } -#line 2999 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2980 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 169: -#line 1052 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = fill_comp (DEMANGLE_COMPONENT_UNARY, - fill_comp (DEMANGLE_COMPONENT_CAST, (yyvsp[-4].comp), NULL), +#line 1037 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->fill_comp (DEMANGLE_COMPONENT_UNARY, + state->fill_comp (DEMANGLE_COMPONENT_CAST, (yyvsp[-4].comp), NULL), (yyvsp[-1].comp)); } -#line 3008 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2989 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 170: -#line 1059 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = fill_comp (DEMANGLE_COMPONENT_UNARY, - fill_comp (DEMANGLE_COMPONENT_CAST, (yyvsp[-4].comp), NULL), +#line 1044 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->fill_comp (DEMANGLE_COMPONENT_UNARY, + state->fill_comp (DEMANGLE_COMPONENT_CAST, (yyvsp[-4].comp), NULL), (yyvsp[-1].comp)); } -#line 3017 "cp-name-parser.c" /* yacc.c:1646 */ +#line 2998 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 171: -#line 1078 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_binary ("*", (yyvsp[-2].comp), (yyvsp[0].comp)); } -#line 3023 "cp-name-parser.c" /* yacc.c:1646 */ +#line 1063 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_binary ("*", (yyvsp[-2].comp), (yyvsp[0].comp)); } +#line 3004 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 172: -#line 1082 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_binary ("/", (yyvsp[-2].comp), (yyvsp[0].comp)); } -#line 3029 "cp-name-parser.c" /* yacc.c:1646 */ +#line 1067 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_binary ("/", (yyvsp[-2].comp), (yyvsp[0].comp)); } +#line 3010 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 173: -#line 1086 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_binary ("%", (yyvsp[-2].comp), (yyvsp[0].comp)); } -#line 3035 "cp-name-parser.c" /* yacc.c:1646 */ +#line 1071 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_binary ("%", (yyvsp[-2].comp), (yyvsp[0].comp)); } +#line 3016 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 174: -#line 1090 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_binary ("+", (yyvsp[-2].comp), (yyvsp[0].comp)); } -#line 3041 "cp-name-parser.c" /* yacc.c:1646 */ +#line 1075 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_binary ("+", (yyvsp[-2].comp), (yyvsp[0].comp)); } +#line 3022 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 175: -#line 1094 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_binary ("-", (yyvsp[-2].comp), (yyvsp[0].comp)); } -#line 3047 "cp-name-parser.c" /* yacc.c:1646 */ +#line 1079 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_binary ("-", (yyvsp[-2].comp), (yyvsp[0].comp)); } +#line 3028 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 176: -#line 1098 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_binary ("<<", (yyvsp[-2].comp), (yyvsp[0].comp)); } -#line 3053 "cp-name-parser.c" /* yacc.c:1646 */ +#line 1083 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_binary ("<<", (yyvsp[-2].comp), (yyvsp[0].comp)); } +#line 3034 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 177: -#line 1102 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_binary (">>", (yyvsp[-2].comp), (yyvsp[0].comp)); } -#line 3059 "cp-name-parser.c" /* yacc.c:1646 */ +#line 1087 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_binary (">>", (yyvsp[-2].comp), (yyvsp[0].comp)); } +#line 3040 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 178: -#line 1106 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_binary ("==", (yyvsp[-2].comp), (yyvsp[0].comp)); } -#line 3065 "cp-name-parser.c" /* yacc.c:1646 */ +#line 1091 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_binary ("==", (yyvsp[-2].comp), (yyvsp[0].comp)); } +#line 3046 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 179: -#line 1110 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_binary ("!=", (yyvsp[-2].comp), (yyvsp[0].comp)); } -#line 3071 "cp-name-parser.c" /* yacc.c:1646 */ +#line 1095 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_binary ("!=", (yyvsp[-2].comp), (yyvsp[0].comp)); } +#line 3052 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 180: -#line 1114 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_binary ("<=", (yyvsp[-2].comp), (yyvsp[0].comp)); } -#line 3077 "cp-name-parser.c" /* yacc.c:1646 */ +#line 1099 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_binary ("<=", (yyvsp[-2].comp), (yyvsp[0].comp)); } +#line 3058 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 181: -#line 1118 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_binary (">=", (yyvsp[-2].comp), (yyvsp[0].comp)); } -#line 3083 "cp-name-parser.c" /* yacc.c:1646 */ +#line 1103 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_binary (">=", (yyvsp[-2].comp), (yyvsp[0].comp)); } +#line 3064 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 182: -#line 1122 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_binary ("<", (yyvsp[-2].comp), (yyvsp[0].comp)); } -#line 3089 "cp-name-parser.c" /* yacc.c:1646 */ +#line 1107 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_binary ("<", (yyvsp[-2].comp), (yyvsp[0].comp)); } +#line 3070 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 183: -#line 1126 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_binary ("&", (yyvsp[-2].comp), (yyvsp[0].comp)); } -#line 3095 "cp-name-parser.c" /* yacc.c:1646 */ +#line 1111 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_binary ("&", (yyvsp[-2].comp), (yyvsp[0].comp)); } +#line 3076 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 184: -#line 1130 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_binary ("^", (yyvsp[-2].comp), (yyvsp[0].comp)); } -#line 3101 "cp-name-parser.c" /* yacc.c:1646 */ +#line 1115 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_binary ("^", (yyvsp[-2].comp), (yyvsp[0].comp)); } +#line 3082 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 185: -#line 1134 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_binary ("|", (yyvsp[-2].comp), (yyvsp[0].comp)); } -#line 3107 "cp-name-parser.c" /* yacc.c:1646 */ +#line 1119 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_binary ("|", (yyvsp[-2].comp), (yyvsp[0].comp)); } +#line 3088 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 186: -#line 1138 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_binary ("&&", (yyvsp[-2].comp), (yyvsp[0].comp)); } -#line 3113 "cp-name-parser.c" /* yacc.c:1646 */ +#line 1123 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_binary ("&&", (yyvsp[-2].comp), (yyvsp[0].comp)); } +#line 3094 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 187: -#line 1142 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_binary ("||", (yyvsp[-2].comp), (yyvsp[0].comp)); } -#line 3119 "cp-name-parser.c" /* yacc.c:1646 */ +#line 1127 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_binary ("||", (yyvsp[-2].comp), (yyvsp[0].comp)); } +#line 3100 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 188: -#line 1147 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_binary ("->", (yyvsp[-2].comp), (yyvsp[0].comp)); } -#line 3125 "cp-name-parser.c" /* yacc.c:1646 */ +#line 1132 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_binary ("->", (yyvsp[-2].comp), (yyvsp[0].comp)); } +#line 3106 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 189: -#line 1151 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = d_binary (".", (yyvsp[-2].comp), (yyvsp[0].comp)); } -#line 3131 "cp-name-parser.c" /* yacc.c:1646 */ +#line 1136 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->d_binary (".", (yyvsp[-2].comp), (yyvsp[0].comp)); } +#line 3112 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 190: -#line 1155 "cp-name-parser.y" /* yacc.c:1646 */ - { (yyval.comp) = fill_comp (DEMANGLE_COMPONENT_TRINARY, make_operator ("?", 3), - fill_comp (DEMANGLE_COMPONENT_TRINARY_ARG1, (yyvsp[-4].comp), - fill_comp (DEMANGLE_COMPONENT_TRINARY_ARG2, (yyvsp[-2].comp), (yyvsp[0].comp)))); +#line 1140 "cp-name-parser.y" /* yacc.c:1646 */ + { (yyval.comp) = state->fill_comp (DEMANGLE_COMPONENT_TRINARY, state->make_operator ("?", 3), + state->fill_comp (DEMANGLE_COMPONENT_TRINARY_ARG1, (yyvsp[-4].comp), + state->fill_comp (DEMANGLE_COMPONENT_TRINARY_ARG2, (yyvsp[-2].comp), (yyvsp[0].comp)))); } -#line 3140 "cp-name-parser.c" /* yacc.c:1646 */ +#line 3121 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 193: -#line 1169 "cp-name-parser.y" /* yacc.c:1646 */ +#line 1154 "cp-name-parser.y" /* yacc.c:1646 */ { /* Match the whitespacing of cplus_demangle_operators. It would abort on unrecognized string otherwise. */ - (yyval.comp) = d_unary ("sizeof ", (yyvsp[-1].comp)); + (yyval.comp) = state->d_unary ("sizeof ", (yyvsp[-1].comp)); } -#line 3150 "cp-name-parser.c" /* yacc.c:1646 */ +#line 3131 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 194: -#line 1178 "cp-name-parser.y" /* yacc.c:1646 */ +#line 1163 "cp-name-parser.y" /* yacc.c:1646 */ { struct demangle_component *i; - i = make_name ("1", 1); - (yyval.comp) = fill_comp (DEMANGLE_COMPONENT_LITERAL, - make_builtin_type ("bool"), + i = state->make_name ("1", 1); + (yyval.comp) = state->fill_comp (DEMANGLE_COMPONENT_LITERAL, + state->make_builtin_type ( "bool"), i); } -#line 3161 "cp-name-parser.c" /* yacc.c:1646 */ +#line 3142 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; case 195: -#line 1187 "cp-name-parser.y" /* yacc.c:1646 */ +#line 1172 "cp-name-parser.y" /* yacc.c:1646 */ { struct demangle_component *i; - i = make_name ("0", 1); - (yyval.comp) = fill_comp (DEMANGLE_COMPONENT_LITERAL, - make_builtin_type ("bool"), + i = state->make_name ("0", 1); + (yyval.comp) = state->fill_comp (DEMANGLE_COMPONENT_LITERAL, + state->make_builtin_type ("bool"), i); } -#line 3172 "cp-name-parser.c" /* yacc.c:1646 */ +#line 3153 "cp-name-parser.c.tmp" /* yacc.c:1646 */ break; -#line 3176 "cp-name-parser.c" /* yacc.c:1646 */ +#line 3157 "cp-name-parser.c.tmp" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -3221,7 +3202,7 @@ { ++yynerrs; #if ! YYERROR_VERBOSE - yyerror (YY_("syntax error")); + yyerror (state, YY_("syntax error")); #else # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ yyssp, yytoken) @@ -3248,7 +3229,7 @@ yymsgp = yymsg; } } - yyerror (yymsgp); + yyerror (state, yymsgp); if (yysyntax_error_status == 2) goto yyexhaustedlab; } @@ -3272,7 +3253,7 @@ else { yydestruct ("Error: discarding", - yytoken, &yylval); + yytoken, &yylval, state); yychar = YYEMPTY; } } @@ -3328,7 +3309,7 @@ yydestruct ("Error: popping", - yystos[yystate], yyvsp); + yystos[yystate], yyvsp, state); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); @@ -3365,7 +3346,7 @@ | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: - yyerror (YY_("memory exhausted")); + yyerror (state, YY_("memory exhausted")); yyresult = 2; /* Fall through. */ #endif @@ -3377,7 +3358,7 @@ user semantic actions for why this is necessary. */ yytoken = YYTRANSLATE (yychar); yydestruct ("Cleanup: discarding lookahead", - yytoken, &yylval); + yytoken, &yylval, state); } /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ @@ -3386,7 +3367,7 @@ while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp); + yystos[*yyssp], yyvsp, state); YYPOPSTACK (1); } #ifndef yyoverflow @@ -3399,7 +3380,7 @@ #endif return yyresult; } -#line 1197 "cp-name-parser.y" /* yacc.c:1906 */ +#line 1182 "cp-name-parser.y" /* yacc.c:1906 */ /* Apply QUALIFIERS to LHS and return a qualified component. IS_METHOD @@ -3408,7 +3389,8 @@ may already be qualified; duplicate qualifiers are not created. */ struct demangle_component * -d_qualify (struct demangle_component *lhs, int qualifiers, int is_method) +cpname_state::d_qualify (struct demangle_component *lhs, int qualifiers, + int is_method) { struct demangle_component **inner_p; enum demangle_component_type type; @@ -3418,8 +3400,8 @@ #define HANDLE_QUAL(TYPE, MTYPE, QUAL) \ if ((qualifiers & QUAL) && (type != TYPE) && (type != MTYPE)) \ { \ - *inner_p = fill_comp (is_method ? MTYPE : TYPE, \ - *inner_p, NULL); \ + *inner_p = fill_comp (is_method ? MTYPE : TYPE, \ + *inner_p, NULL); \ inner_p = &d_left (*inner_p); \ type = (*inner_p)->type; \ } \ @@ -3442,8 +3424,8 @@ /* Return a builtin type corresponding to FLAGS. */ -static struct demangle_component * -d_int_type (int flags) +struct demangle_component * +cpname_state::d_int_type (int flags) { const char *name; @@ -3495,41 +3477,20 @@ /* Wrapper to create a unary operation. */ -static struct demangle_component * -d_unary (const char *name, struct demangle_component *lhs) +struct demangle_component * +cpname_state::d_unary (const char *name, struct demangle_component *lhs) { return fill_comp (DEMANGLE_COMPONENT_UNARY, make_operator (name, 1), lhs); } /* Wrapper to create a binary operation. */ -static struct demangle_component * -d_binary (const char *name, struct demangle_component *lhs, struct demangle_component *rhs) +struct demangle_component * +cpname_state::d_binary (const char *name, struct demangle_component *lhs, + struct demangle_component *rhs) { return fill_comp (DEMANGLE_COMPONENT_BINARY, make_operator (name, 2), - fill_comp (DEMANGLE_COMPONENT_BINARY_ARGS, lhs, rhs)); -} - -/* Like ISALPHA, but also returns true for the union of all UTF-8 - multi-byte sequence bytes and non-ASCII characters in - extended-ASCII charsets (e.g., Latin1). I.e., returns true if the - high bit is set. Note that not all UTF-8 ranges are allowed in C++ - identifiers, but we don't need to be pedantic so for simplicity we - ignore that here. Plus this avoids the complication of actually - knowing what was the right encoding. */ - -static inline bool -cp_ident_is_alpha (unsigned char ch) -{ - return ISALPHA (ch) || ch >= 0x80; -} - -/* Similarly, but Like ISALNUM. */ - -static inline bool -cp_ident_is_alnum (unsigned char ch) -{ - return ISALNUM (ch) || ch >= 0x80; + fill_comp (DEMANGLE_COMPONENT_BINARY_ARGS, lhs, rhs)); } /* Find the end of a symbol name starting at LEXPTR. */ @@ -3539,7 +3500,7 @@ { const char *p = lexptr; - while (*p && (cp_ident_is_alnum (*p) || *p == '_' || *p == '$' || *p == '.')) + while (*p && (c_ident_is_alnum (*p) || *p == '_' || *p == '$' || *p == '.')) p++; return p; @@ -3549,8 +3510,9 @@ The number starts at P and contains LEN characters. Store the result in YYLVAL. */ -static int -parse_number (const char *p, int len, int parsed_float) +int +cpname_state::parse_number (const char *p, int len, int parsed_float, + YYSTYPE *lvalp) { int unsigned_p = 0; @@ -3600,7 +3562,7 @@ return ERROR; name = make_name (p, len); - yylval.comp = fill_comp (literal_type, type, name); + lvalp->comp = fill_comp (literal_type, type, name); return FLOAT; } @@ -3649,13 +3611,13 @@ type = signed_type; name = make_name (p, len); - yylval.comp = fill_comp (literal_type, type, name); + lvalp->comp = fill_comp (literal_type, type, name); return INT; } -static char backslashable[] = "abefnrtv"; -static char represented[] = "\a\b\e\f\n\r\t\v"; +static const char backslashable[] = "abefnrtv"; +static const char represented[] = "\a\b\e\f\n\r\t\v"; /* Translate the backslash the way we would in the host character set. */ static int @@ -3753,39 +3715,39 @@ #define HANDLE_SPECIAL(string, comp) \ if (strncmp (tokstart, string, sizeof (string) - 1) == 0) \ { \ - lexptr = tokstart + sizeof (string) - 1; \ - yylval.lval = comp; \ + state->lexptr = tokstart + sizeof (string) - 1; \ + lvalp->lval = comp; \ return DEMANGLER_SPECIAL; \ } #define HANDLE_TOKEN2(string, token) \ - if (lexptr[1] == string[1]) \ + if (state->lexptr[1] == string[1]) \ { \ - lexptr += 2; \ - yylval.opname = string; \ + state->lexptr += 2; \ + lvalp->opname = string; \ return token; \ } #define HANDLE_TOKEN3(string, token) \ - if (lexptr[1] == string[1] && lexptr[2] == string[2]) \ + if (state->lexptr[1] == string[1] && state->lexptr[2] == string[2]) \ { \ - lexptr += 3; \ - yylval.opname = string; \ + state->lexptr += 3; \ + lvalp->opname = string; \ return token; \ } /* Read one token, getting characters through LEXPTR. */ static int -yylex (void) +yylex (YYSTYPE *lvalp, cpname_state *state) { int c; int namelen; const char *tokstart; retry: - prev_lexptr = lexptr; - tokstart = lexptr; + state->prev_lexptr = state->lexptr; + tokstart = state->lexptr; switch (c = *tokstart) { @@ -3795,27 +3757,27 @@ case ' ': case '\t': case '\n': - lexptr++; + state->lexptr++; goto retry; case '\'': /* We either have a character constant ('0' or '\177' for example) or we have a quoted symbol reference ('foo(int,int)' in C++ for example). */ - lexptr++; - c = *lexptr++; + state->lexptr++; + c = *state->lexptr++; if (c == '\\') - c = cp_parse_escape (&lexptr); + c = cp_parse_escape (&state->lexptr); else if (c == '\'') { - yyerror (_("empty character constant")); + yyerror (state, _("empty character constant")); return ERROR; } - c = *lexptr++; + c = *state->lexptr++; if (c != '\'') { - yyerror (_("invalid character constant")); + yyerror (state, _("invalid character constant")); return ERROR; } @@ -3823,36 +3785,38 @@ presumably the same one that appears in manglings - the decimal representation. But if that isn't in our input then we have to allocate memory for it somewhere. */ - yylval.comp = fill_comp (DEMANGLE_COMPONENT_LITERAL, - make_builtin_type ("char"), - make_name (tokstart, lexptr - tokstart)); + lvalp->comp + = state->fill_comp (DEMANGLE_COMPONENT_LITERAL, + state->make_builtin_type ("char"), + state->make_name (tokstart, + state->lexptr - tokstart)); return INT; case '(': if (strncmp (tokstart, "(anonymous namespace)", 21) == 0) { - lexptr += 21; - yylval.comp = make_name ("(anonymous namespace)", - sizeof "(anonymous namespace)" - 1); + state->lexptr += 21; + lvalp->comp = state->make_name ("(anonymous namespace)", + sizeof "(anonymous namespace)" - 1); return NAME; } /* FALL THROUGH */ case ')': case ',': - lexptr++; + state->lexptr++; return c; case '.': - if (lexptr[1] == '.' && lexptr[2] == '.') + if (state->lexptr[1] == '.' && state->lexptr[2] == '.') { - lexptr += 3; + state->lexptr += 3; return ELLIPSIS; } /* Might be a floating point number. */ - if (lexptr[1] < '0' || lexptr[1] > '9') + if (state->lexptr[1] < '0' || state->lexptr[1] > '9') goto symbol; /* Nope, must be a symbol. */ goto try_number; @@ -3865,16 +3829,16 @@ /* For construction vtables. This is kind of hokey. */ if (strncmp (tokstart, "-in-", 4) == 0) { - lexptr += 4; + state->lexptr += 4; return CONSTRUCTION_IN; } - if (lexptr[1] < '0' || lexptr[1] > '9') + if (state->lexptr[1] < '0' || state->lexptr[1] > '9') { - lexptr++; + state->lexptr++; return '-'; } - /* FALL THRU into number case. */ + /* FALL THRU. */ try_number: case '0': @@ -3932,74 +3896,75 @@ else if (! ISALNUM (*p)) break; } - toktype = parse_number (tokstart, p - tokstart, got_dot|got_e); + toktype = state->parse_number (tokstart, p - tokstart, got_dot|got_e, + lvalp); if (toktype == ERROR) { char *err_copy = (char *) alloca (p - tokstart + 1); memcpy (err_copy, tokstart, p - tokstart); err_copy[p - tokstart] = 0; - yyerror (_("invalid number")); + yyerror (state, _("invalid number")); return ERROR; } - lexptr = p; + state->lexptr = p; return toktype; } case '+': HANDLE_TOKEN2 ("+=", ASSIGN_MODIFY); HANDLE_TOKEN2 ("++", INCREMENT); - lexptr++; + state->lexptr++; return c; case '*': HANDLE_TOKEN2 ("*=", ASSIGN_MODIFY); - lexptr++; + state->lexptr++; return c; case '/': HANDLE_TOKEN2 ("/=", ASSIGN_MODIFY); - lexptr++; + state->lexptr++; return c; case '%': HANDLE_TOKEN2 ("%=", ASSIGN_MODIFY); - lexptr++; + state->lexptr++; return c; case '|': HANDLE_TOKEN2 ("|=", ASSIGN_MODIFY); HANDLE_TOKEN2 ("||", OROR); - lexptr++; + state->lexptr++; return c; case '&': HANDLE_TOKEN2 ("&=", ASSIGN_MODIFY); HANDLE_TOKEN2 ("&&", ANDAND); - lexptr++; + state->lexptr++; return c; case '^': HANDLE_TOKEN2 ("^=", ASSIGN_MODIFY); - lexptr++; + state->lexptr++; return c; case '!': HANDLE_TOKEN2 ("!=", NOTEQUAL); - lexptr++; + state->lexptr++; return c; case '<': HANDLE_TOKEN3 ("<<=", ASSIGN_MODIFY); HANDLE_TOKEN2 ("<=", LEQ); HANDLE_TOKEN2 ("<<", LSH); - lexptr++; + state->lexptr++; return c; case '>': HANDLE_TOKEN3 (">>=", ASSIGN_MODIFY); HANDLE_TOKEN2 (">=", GEQ); HANDLE_TOKEN2 (">>", RSH); - lexptr++; + state->lexptr++; return c; case '=': HANDLE_TOKEN2 ("==", EQUAL); - lexptr++; + state->lexptr++; return c; case ':': HANDLE_TOKEN2 ("::", COLONCOLON); - lexptr++; + state->lexptr++; return c; case '[': @@ -4010,19 +3975,19 @@ case '{': case '}': symbol: - lexptr++; + state->lexptr++; return c; case '"': /* These can't occur in C++ names. */ - yyerror (_("unexpected string literal")); + yyerror (state, _("unexpected string literal")); return ERROR; } - if (!(c == '_' || c == '$' || cp_ident_is_alpha (c))) + if (!(c == '_' || c == '$' || c_ident_is_alpha (c))) { /* We must have come across a bad character (e.g. ';'). */ - yyerror (_("invalid character")); + yyerror (state, _("invalid character")); return ERROR; } @@ -4030,9 +3995,9 @@ namelen = 0; do c = tokstart[++namelen]; - while (cp_ident_is_alnum (c) || c == '_' || c == '$'); + while (c_ident_is_alnum (c) || c == '_' || c == '$'); - lexptr += namelen; + state->lexptr += namelen; /* Catch specific keywords. Notice that some of the keywords contain spaces, and are sorted by the length of the first word. They must @@ -4046,7 +4011,7 @@ case 12: if (strncmp (tokstart, "construction vtable for ", 24) == 0) { - lexptr = tokstart + 24; + state->lexptr = tokstart + 24; return CONSTRUCTION_VTABLE; } if (strncmp (tokstart, "dynamic_cast", 12) == 0) @@ -4084,23 +4049,23 @@ if (strncmp (tokstart, "global constructors keyed to ", 29) == 0) { const char *p; - lexptr = tokstart + 29; - yylval.lval = DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS; + state->lexptr = tokstart + 29; + lvalp->lval = DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS; /* Find the end of the symbol. */ - p = symbol_end (lexptr); - yylval.comp = make_name (lexptr, p - lexptr); - lexptr = p; + p = symbol_end (state->lexptr); + lvalp->comp = state->make_name (state->lexptr, p - state->lexptr); + state->lexptr = p; return DEMANGLER_SPECIAL; } if (strncmp (tokstart, "global destructors keyed to ", 28) == 0) { const char *p; - lexptr = tokstart + 28; - yylval.lval = DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS; + state->lexptr = tokstart + 28; + lvalp->lval = DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS; /* Find the end of the symbol. */ - p = symbol_end (lexptr); - yylval.comp = make_name (lexptr, p - lexptr); - lexptr = p; + p = symbol_end (state->lexptr); + lvalp->comp = state->make_name (state->lexptr, p - state->lexptr); + state->lexptr = p; return DEMANGLER_SPECIAL; } @@ -4157,18 +4122,18 @@ break; } - yylval.comp = make_name (tokstart, namelen); + lvalp->comp = state->make_name (tokstart, namelen); return NAME; } static void -yyerror (const char *msg) +yyerror (cpname_state *state, const char *msg) { - if (global_errmsg) + if (state->global_errmsg) return; - error_lexptr = prev_lexptr; - global_errmsg = msg ? msg : "parse error"; + state->error_lexptr = state->prev_lexptr; + state->global_errmsg = msg ? msg : "parse error"; } /* Allocate a chunk of the components we'll need to build a tree. We @@ -4260,36 +4225,31 @@ /* Convert a demangled name to a demangle_component tree. On success, a structure containing the root of the new tree is returned. On error, NULL is returned, and an error message will be set in - *ERRMSG (which does not need to be freed). */ + *ERRMSG. */ struct std::unique_ptr -cp_demangled_name_to_comp (const char *demangled_name, const char **errmsg) +cp_demangled_name_to_comp (const char *demangled_name, + std::string *errmsg) { - static char errbuf[60]; + cpname_state state; - prev_lexptr = lexptr = demangled_name; - error_lexptr = NULL; - global_errmsg = NULL; + state.prev_lexptr = state.lexptr = demangled_name; + state.error_lexptr = NULL; + state.global_errmsg = NULL; - demangle_info = allocate_info (); + state.demangle_info = allocate_info (); std::unique_ptr result (new demangle_parse_info); - result->info = demangle_info; + result->info = state.demangle_info; - if (yyparse ()) + if (yyparse (&state)) { - if (global_errmsg && errmsg) - { - snprintf (errbuf, sizeof (errbuf) - 2, "%s, near `%s", - global_errmsg, error_lexptr); - strcat (errbuf, "'"); - *errmsg = errbuf; - } + if (state.global_errmsg && errmsg) + *errmsg = state.global_errmsg; return NULL; } - result->tree = global_result; - global_result = NULL; + result->tree = state.global_result; return result; } @@ -4360,7 +4320,6 @@ char *str2, *extra_chars, c; char buf[65536]; int arg; - const char *errmsg; arg = 1; if (argv[arg] && strcmp (argv[arg], "--debug") == 0) @@ -4387,11 +4346,12 @@ continue; } + std::string errmsg; std::unique_ptr result = cp_demangled_name_to_comp (str2, &errmsg); if (result == NULL) { - fputs (errmsg, stderr); + fputs (errmsg.c_str (), stderr); fputc ('\n', stderr); continue; } @@ -4408,11 +4368,12 @@ } else { + std::string errmsg; std::unique_ptr result = cp_demangled_name_to_comp (argv[arg], &errmsg); if (result == NULL) { - fputs (errmsg, stderr); + fputs (errmsg.c_str (), stderr); fputc ('\n', stderr); return 0; } diff -Nru gdb-8.1/gdb/cp-name-parser.y gdb-8.2/gdb/cp-name-parser.y --- gdb-8.1/gdb/cp-name-parser.y 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/cp-name-parser.y 2018-09-05 07:27:13.000000000 +0000 @@ -27,6 +27,14 @@ too messy, particularly when such includes can be inserted at random times by the parser generator. */ +/* The Bison manual says that %pure-parser is deprecated, but we use + it anyway because it also works with Byacc. That is also why + this uses %lex-param and %parse-param rather than the simpler + %param -- Byacc does not support the latter. */ +%pure-parser +%lex-param {struct cpname_state *state} +%parse-param {struct cpname_state *state} + %{ #include "defs.h" @@ -35,17 +43,11 @@ #include "safe-ctype.h" #include "demangle.h" #include "cp-support.h" +#include "c-support.h" +#include "parser-defs.h" -/* Bison does not make it easy to create a parser without global - state, unfortunately. Here are all the global variables used - in this parser. */ - -/* LEXPTR is the current pointer into our lex buffer. PREV_LEXPTR - is the start of the last token lexed, only used for diagnostics. - ERROR_LEXPTR is the first place an error occurred. GLOBAL_ERRMSG - is the first error message encountered. */ - -static const char *lexptr, *prev_lexptr, *error_lexptr, *global_errmsg; +#define GDB_YY_REMAP_PREFIX cpname +#include "yy-remap.h" /* The components built by the parser are allocated ahead of time, and cached in this structure. */ @@ -58,10 +60,82 @@ struct demangle_component comps[ALLOC_CHUNK]; }; -static struct demangle_info *demangle_info; +%} + +%union + { + struct demangle_component *comp; + struct nested { + struct demangle_component *comp; + struct demangle_component **last; + } nested; + struct { + struct demangle_component *comp, *last; + } nested1; + struct { + struct demangle_component *comp, **last; + struct nested fn; + struct demangle_component *start; + int fold_flag; + } abstract; + int lval; + const char *opname; + } -static struct demangle_component * -d_grab (void) +%{ + +struct cpname_state +{ + /* LEXPTR is the current pointer into our lex buffer. PREV_LEXPTR + is the start of the last token lexed, only used for diagnostics. + ERROR_LEXPTR is the first place an error occurred. GLOBAL_ERRMSG + is the first error message encountered. */ + + const char *lexptr, *prev_lexptr, *error_lexptr, *global_errmsg; + + struct demangle_info *demangle_info; + + /* The parse tree created by the parser is stored here after a + successful parse. */ + + struct demangle_component *global_result; + + struct demangle_component *d_grab (); + + /* Helper functions. These wrap the demangler tree interface, + handle allocation from our global store, and return the allocated + component. */ + + struct demangle_component *fill_comp (enum demangle_component_type d_type, + struct demangle_component *lhs, + struct demangle_component *rhs); + + struct demangle_component *make_operator (const char *name, int args); + + struct demangle_component *make_dtor (enum gnu_v3_dtor_kinds kind, + struct demangle_component *name); + + struct demangle_component *make_builtin_type (const char *name); + + struct demangle_component *make_name (const char *name, int len); + + struct demangle_component *d_qualify (struct demangle_component *lhs, + int qualifiers, int is_method); + + struct demangle_component *d_int_type (int flags); + + struct demangle_component *d_unary (const char *name, + struct demangle_component *lhs); + + struct demangle_component *d_binary (const char *name, + struct demangle_component *lhs, + struct demangle_component *rhs); + + int parse_number (const char *p, int len, int parsed_float, YYSTYPE *lvalp); +}; + +struct demangle_component * +cpname_state::d_grab () { struct demangle_info *more; @@ -82,25 +156,6 @@ return &demangle_info->comps[demangle_info->used++]; } -/* The parse tree created by the parser is stored here after a successful - parse. */ - -static struct demangle_component *global_result; - -/* Prototypes for helper functions used when constructing the parse - tree. */ - -static struct demangle_component *d_qualify (struct demangle_component *, int, - int); - -static struct demangle_component *d_int_type (int); - -static struct demangle_component *d_unary (const char *, - struct demangle_component *); -static struct demangle_component *d_binary (const char *, - struct demangle_component *, - struct demangle_component *); - /* Flags passed to d_qualify. */ #define QUAL_CONST 1 @@ -117,64 +172,6 @@ #define INT_SIGNED (1 << 4) #define INT_UNSIGNED (1 << 5) -/* Remap normal yacc parser interface names (yyparse, yylex, yyerror, etc), - as well as gratuitiously global symbol names, so we can have multiple - yacc generated parsers in gdb. Note that these are only the variables - produced by yacc. If other parser generators (bison, byacc, etc) produce - additional global names that conflict at link time, then those parser - generators need to be fixed instead of adding those names to this list. */ - -#define yymaxdepth cpname_maxdepth -#define yyparse cpname_parse -#define yylex cpname_lex -#define yyerror cpname_error -#define yylval cpname_lval -#define yychar cpname_char -#define yydebug cpname_debug -#define yypact cpname_pact -#define yyr1 cpname_r1 -#define yyr2 cpname_r2 -#define yydef cpname_def -#define yychk cpname_chk -#define yypgo cpname_pgo -#define yyact cpname_act -#define yyexca cpname_exca -#define yyerrflag cpname_errflag -#define yynerrs cpname_nerrs -#define yyps cpname_ps -#define yypv cpname_pv -#define yys cpname_s -#define yy_yys cpname_yys -#define yystate cpname_state -#define yytmp cpname_tmp -#define yyv cpname_v -#define yy_yyv cpname_yyv -#define yyval cpname_val -#define yylloc cpname_lloc -#define yyreds cpname_reds /* With YYDEBUG defined */ -#define yytoks cpname_toks /* With YYDEBUG defined */ -#define yyname cpname_name /* With YYDEBUG defined */ -#define yyrule cpname_rule /* With YYDEBUG defined */ -#define yylhs cpname_yylhs -#define yylen cpname_yylen -#define yydefred cpname_yydefred -#define yydgoto cpname_yydgoto -#define yysindex cpname_yysindex -#define yyrindex cpname_yyrindex -#define yygindex cpname_yygindex -#define yytable cpname_yytable -#define yycheck cpname_yycheck -#define yyss cpname_yyss -#define yysslim cpname_yysslim -#define yyssp cpname_yyssp -#define yystacksize cpname_yystacksize -#define yyvs cpname_yyvs -#define yyvsp cpname_yyvsp - -int yyparse (void); -static int yylex (void); -static void yyerror (const char *); - /* Enable yydebug for the stand-alone parser. */ #ifdef TEST_CPNAMES # define YYDEBUG 1 @@ -183,9 +180,10 @@ /* Helper functions. These wrap the demangler tree interface, handle allocation from our global store, and return the allocated component. */ -static struct demangle_component * -fill_comp (enum demangle_component_type d_type, struct demangle_component *lhs, - struct demangle_component *rhs) +struct demangle_component * +cpname_state::fill_comp (enum demangle_component_type d_type, + struct demangle_component *lhs, + struct demangle_component *rhs) { struct demangle_component *ret = d_grab (); int i; @@ -196,8 +194,8 @@ return ret; } -static struct demangle_component * -make_operator (const char *name, int args) +struct demangle_component * +cpname_state::make_operator (const char *name, int args) { struct demangle_component *ret = d_grab (); int i; @@ -208,8 +206,9 @@ return ret; } -static struct demangle_component * -make_dtor (enum gnu_v3_dtor_kinds kind, struct demangle_component *name) +struct demangle_component * +cpname_state::make_dtor (enum gnu_v3_dtor_kinds kind, + struct demangle_component *name) { struct demangle_component *ret = d_grab (); int i; @@ -220,8 +219,8 @@ return ret; } -static struct demangle_component * -make_builtin_type (const char *name) +struct demangle_component * +cpname_state::make_builtin_type (const char *name) { struct demangle_component *ret = d_grab (); int i; @@ -232,8 +231,8 @@ return ret; } -static struct demangle_component * -make_name (const char *name, int len) +struct demangle_component * +cpname_state::make_name (const char *name, int len) { struct demangle_component *ret = d_grab (); int i; @@ -247,28 +246,10 @@ #define d_left(dc) (dc)->u.s_binary.left #define d_right(dc) (dc)->u.s_binary.right +static int yylex (YYSTYPE *, cpname_state *); +static void yyerror (cpname_state *, const char *); %} -%union - { - struct demangle_component *comp; - struct nested { - struct demangle_component *comp; - struct demangle_component **last; - } nested; - struct { - struct demangle_component *comp, *last; - } nested1; - struct { - struct demangle_component *comp, **last; - struct nested fn; - struct demangle_component *start; - int fold_flag; - } abstract; - int lval; - const char *opname; - } - %type exp exp1 type start start_opt oper colon_name %type unqualified_name colon_ext_name %type templ template_arg @@ -365,7 +346,7 @@ %% result : start - { global_result = $1; } + { state->global_result = $1; } ; start : type @@ -395,15 +376,19 @@ start_opt is used to handle "function-local" variables and types. */ | typespec_2 function_arglist start_opt - { $$ = fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, $1, $2.comp); - if ($3) $$ = fill_comp (DEMANGLE_COMPONENT_LOCAL_NAME, $$, $3); } + { $$ = state->fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, + $1, $2.comp); + if ($3) + $$ = state->fill_comp (DEMANGLE_COMPONENT_LOCAL_NAME, + $$, $3); + } | colon_ext_only function_arglist start_opt - { $$ = fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, $1, $2.comp); - if ($3) $$ = fill_comp (DEMANGLE_COMPONENT_LOCAL_NAME, $$, $3); } + { $$ = state->fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, $1, $2.comp); + if ($3) $$ = state->fill_comp (DEMANGLE_COMPONENT_LOCAL_NAME, $$, $3); } | conversion_op_name start_opt { $$ = $1.comp; - if ($2) $$ = fill_comp (DEMANGLE_COMPONENT_LOCAL_NAME, $$, $2); } + if ($2) $$ = state->fill_comp (DEMANGLE_COMPONENT_LOCAL_NAME, $$, $2); } | conversion_op_name abstract_declarator_fn { if ($2.last) { @@ -415,102 +400,102 @@ } /* If we have an arglist, build a function type. */ if ($2.fn.comp) - $$ = fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, $1.comp, $2.fn.comp); + $$ = state->fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, $1.comp, $2.fn.comp); else $$ = $1.comp; - if ($2.start) $$ = fill_comp (DEMANGLE_COMPONENT_LOCAL_NAME, $$, $2.start); + if ($2.start) $$ = state->fill_comp (DEMANGLE_COMPONENT_LOCAL_NAME, $$, $2.start); } ; demangler_special : DEMANGLER_SPECIAL start - { $$ = fill_comp ((enum demangle_component_type) $1, $2, NULL); } + { $$ = state->fill_comp ((enum demangle_component_type) $1, $2, NULL); } | CONSTRUCTION_VTABLE start CONSTRUCTION_IN start - { $$ = fill_comp (DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE, $2, $4); } + { $$ = state->fill_comp (DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE, $2, $4); } ; oper : OPERATOR NEW { /* Match the whitespacing of cplus_demangle_operators. It would abort on unrecognized string otherwise. */ - $$ = make_operator ("new", 3); + $$ = state->make_operator ("new", 3); } | OPERATOR DELETE { /* Match the whitespacing of cplus_demangle_operators. It would abort on unrecognized string otherwise. */ - $$ = make_operator ("delete ", 1); + $$ = state->make_operator ("delete ", 1); } | OPERATOR NEW '[' ']' { /* Match the whitespacing of cplus_demangle_operators. It would abort on unrecognized string otherwise. */ - $$ = make_operator ("new[]", 3); + $$ = state->make_operator ("new[]", 3); } | OPERATOR DELETE '[' ']' { /* Match the whitespacing of cplus_demangle_operators. It would abort on unrecognized string otherwise. */ - $$ = make_operator ("delete[] ", 1); + $$ = state->make_operator ("delete[] ", 1); } | OPERATOR '+' - { $$ = make_operator ("+", 2); } + { $$ = state->make_operator ("+", 2); } | OPERATOR '-' - { $$ = make_operator ("-", 2); } + { $$ = state->make_operator ("-", 2); } | OPERATOR '*' - { $$ = make_operator ("*", 2); } + { $$ = state->make_operator ("*", 2); } | OPERATOR '/' - { $$ = make_operator ("/", 2); } + { $$ = state->make_operator ("/", 2); } | OPERATOR '%' - { $$ = make_operator ("%", 2); } + { $$ = state->make_operator ("%", 2); } | OPERATOR '^' - { $$ = make_operator ("^", 2); } + { $$ = state->make_operator ("^", 2); } | OPERATOR '&' - { $$ = make_operator ("&", 2); } + { $$ = state->make_operator ("&", 2); } | OPERATOR '|' - { $$ = make_operator ("|", 2); } + { $$ = state->make_operator ("|", 2); } | OPERATOR '~' - { $$ = make_operator ("~", 1); } + { $$ = state->make_operator ("~", 1); } | OPERATOR '!' - { $$ = make_operator ("!", 1); } + { $$ = state->make_operator ("!", 1); } | OPERATOR '=' - { $$ = make_operator ("=", 2); } + { $$ = state->make_operator ("=", 2); } | OPERATOR '<' - { $$ = make_operator ("<", 2); } + { $$ = state->make_operator ("<", 2); } | OPERATOR '>' - { $$ = make_operator (">", 2); } + { $$ = state->make_operator (">", 2); } | OPERATOR ASSIGN_MODIFY - { $$ = make_operator ($2, 2); } + { $$ = state->make_operator ($2, 2); } | OPERATOR LSH - { $$ = make_operator ("<<", 2); } + { $$ = state->make_operator ("<<", 2); } | OPERATOR RSH - { $$ = make_operator (">>", 2); } + { $$ = state->make_operator (">>", 2); } | OPERATOR EQUAL - { $$ = make_operator ("==", 2); } + { $$ = state->make_operator ("==", 2); } | OPERATOR NOTEQUAL - { $$ = make_operator ("!=", 2); } + { $$ = state->make_operator ("!=", 2); } | OPERATOR LEQ - { $$ = make_operator ("<=", 2); } + { $$ = state->make_operator ("<=", 2); } | OPERATOR GEQ - { $$ = make_operator (">=", 2); } + { $$ = state->make_operator (">=", 2); } | OPERATOR ANDAND - { $$ = make_operator ("&&", 2); } + { $$ = state->make_operator ("&&", 2); } | OPERATOR OROR - { $$ = make_operator ("||", 2); } + { $$ = state->make_operator ("||", 2); } | OPERATOR INCREMENT - { $$ = make_operator ("++", 1); } + { $$ = state->make_operator ("++", 1); } | OPERATOR DECREMENT - { $$ = make_operator ("--", 1); } + { $$ = state->make_operator ("--", 1); } | OPERATOR ',' - { $$ = make_operator (",", 2); } + { $$ = state->make_operator (",", 2); } | OPERATOR ARROW '*' - { $$ = make_operator ("->*", 2); } + { $$ = state->make_operator ("->*", 2); } | OPERATOR ARROW - { $$ = make_operator ("->", 2); } + { $$ = state->make_operator ("->", 2); } | OPERATOR '(' ')' - { $$ = make_operator ("()", 2); } + { $$ = state->make_operator ("()", 2); } | OPERATOR '[' ']' - { $$ = make_operator ("[]", 2); } + { $$ = state->make_operator ("[]", 2); } ; /* Conversion operators. We don't try to handle some of @@ -518,7 +503,7 @@ since it's not clear that it's parseable. */ conversion_op : OPERATOR typespec_2 - { $$ = fill_comp (DEMANGLE_COMPONENT_CONVERSION, $2, NULL); } + { $$ = state->fill_comp (DEMANGLE_COMPONENT_CONVERSION, $2, NULL); } ; conversion_op_name @@ -546,9 +531,9 @@ /* This accepts certain invalid placements of '~'. */ unqualified_name: oper | oper '<' template_params '>' - { $$ = fill_comp (DEMANGLE_COMPONENT_TEMPLATE, $1, $3.comp); } + { $$ = state->fill_comp (DEMANGLE_COMPONENT_TEMPLATE, $1, $3.comp); } | '~' NAME - { $$ = make_dtor (gnu_v3_complete_object_dtor, $2); } + { $$ = state->make_dtor (gnu_v3_complete_object_dtor, $2); } ; /* This rule is used in name and nested_name, and expanded inline there @@ -589,21 +574,21 @@ ; nested_name : NAME COLONCOLON - { $$.comp = fill_comp (DEMANGLE_COMPONENT_QUAL_NAME, $1, NULL); + { $$.comp = state->fill_comp (DEMANGLE_COMPONENT_QUAL_NAME, $1, NULL); $$.last = $$.comp; } | nested_name NAME COLONCOLON { $$.comp = $1.comp; - d_right ($1.last) = fill_comp (DEMANGLE_COMPONENT_QUAL_NAME, $2, NULL); + d_right ($1.last) = state->fill_comp (DEMANGLE_COMPONENT_QUAL_NAME, $2, NULL); $$.last = d_right ($1.last); } | templ COLONCOLON - { $$.comp = fill_comp (DEMANGLE_COMPONENT_QUAL_NAME, $1, NULL); + { $$.comp = state->fill_comp (DEMANGLE_COMPONENT_QUAL_NAME, $1, NULL); $$.last = $$.comp; } | nested_name templ COLONCOLON { $$.comp = $1.comp; - d_right ($1.last) = fill_comp (DEMANGLE_COMPONENT_QUAL_NAME, $2, NULL); + d_right ($1.last) = state->fill_comp (DEMANGLE_COMPONENT_QUAL_NAME, $2, NULL); $$.last = d_right ($1.last); } ; @@ -611,15 +596,15 @@ /* DEMANGLE_COMPONENT_TEMPLATE */ /* DEMANGLE_COMPONENT_TEMPLATE_ARGLIST */ templ : NAME '<' template_params '>' - { $$ = fill_comp (DEMANGLE_COMPONENT_TEMPLATE, $1, $3.comp); } + { $$ = state->fill_comp (DEMANGLE_COMPONENT_TEMPLATE, $1, $3.comp); } ; template_params : template_arg - { $$.comp = fill_comp (DEMANGLE_COMPONENT_TEMPLATE_ARGLIST, $1, NULL); + { $$.comp = state->fill_comp (DEMANGLE_COMPONENT_TEMPLATE_ARGLIST, $1, NULL); $$.last = &d_right ($$.comp); } | template_params ',' template_arg { $$.comp = $1.comp; - *$1.last = fill_comp (DEMANGLE_COMPONENT_TEMPLATE_ARGLIST, $3, NULL); + *$1.last = state->fill_comp (DEMANGLE_COMPONENT_TEMPLATE_ARGLIST, $3, NULL); $$.last = &d_right (*$1.last); } ; @@ -634,36 +619,36 @@ *$2.last = $1; } | '&' start - { $$ = fill_comp (DEMANGLE_COMPONENT_UNARY, make_operator ("&", 1), $2); } + { $$ = state->fill_comp (DEMANGLE_COMPONENT_UNARY, state->make_operator ("&", 1), $2); } | '&' '(' start ')' - { $$ = fill_comp (DEMANGLE_COMPONENT_UNARY, make_operator ("&", 1), $3); } + { $$ = state->fill_comp (DEMANGLE_COMPONENT_UNARY, state->make_operator ("&", 1), $3); } | exp ; function_args : typespec_2 - { $$.comp = fill_comp (DEMANGLE_COMPONENT_ARGLIST, $1, NULL); + { $$.comp = state->fill_comp (DEMANGLE_COMPONENT_ARGLIST, $1, NULL); $$.last = &d_right ($$.comp); } | typespec_2 abstract_declarator { *$2.last = $1; - $$.comp = fill_comp (DEMANGLE_COMPONENT_ARGLIST, $2.comp, NULL); + $$.comp = state->fill_comp (DEMANGLE_COMPONENT_ARGLIST, $2.comp, NULL); $$.last = &d_right ($$.comp); } | function_args ',' typespec_2 - { *$1.last = fill_comp (DEMANGLE_COMPONENT_ARGLIST, $3, NULL); + { *$1.last = state->fill_comp (DEMANGLE_COMPONENT_ARGLIST, $3, NULL); $$.comp = $1.comp; $$.last = &d_right (*$1.last); } | function_args ',' typespec_2 abstract_declarator { *$4.last = $3; - *$1.last = fill_comp (DEMANGLE_COMPONENT_ARGLIST, $4.comp, NULL); + *$1.last = state->fill_comp (DEMANGLE_COMPONENT_ARGLIST, $4.comp, NULL); $$.comp = $1.comp; $$.last = &d_right (*$1.last); } | function_args ',' ELLIPSIS { *$1.last - = fill_comp (DEMANGLE_COMPONENT_ARGLIST, - make_builtin_type ("..."), + = state->fill_comp (DEMANGLE_COMPONENT_ARGLIST, + state->make_builtin_type ("..."), NULL); $$.comp = $1.comp; $$.last = &d_right (*$1.last); @@ -671,17 +656,17 @@ ; function_arglist: '(' function_args ')' qualifiers_opt %prec NAME - { $$.comp = fill_comp (DEMANGLE_COMPONENT_FUNCTION_TYPE, NULL, $2.comp); + { $$.comp = state->fill_comp (DEMANGLE_COMPONENT_FUNCTION_TYPE, NULL, $2.comp); $$.last = &d_left ($$.comp); - $$.comp = d_qualify ($$.comp, $4, 1); } + $$.comp = state->d_qualify ($$.comp, $4, 1); } | '(' VOID ')' qualifiers_opt - { $$.comp = fill_comp (DEMANGLE_COMPONENT_FUNCTION_TYPE, NULL, NULL); + { $$.comp = state->fill_comp (DEMANGLE_COMPONENT_FUNCTION_TYPE, NULL, NULL); $$.last = &d_left ($$.comp); - $$.comp = d_qualify ($$.comp, $4, 1); } + $$.comp = state->d_qualify ($$.comp, $4, 1); } | '(' ')' qualifiers_opt - { $$.comp = fill_comp (DEMANGLE_COMPONENT_FUNCTION_TYPE, NULL, NULL); + { $$.comp = state->fill_comp (DEMANGLE_COMPONENT_FUNCTION_TYPE, NULL, NULL); $$.last = &d_left ($$.comp); - $$.comp = d_qualify ($$.comp, $3, 1); } + $$.comp = state->d_qualify ($$.comp, $3, 1); } ; /* Should do something about DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL */ @@ -726,50 +711,50 @@ ; builtin_type : int_seq - { $$ = d_int_type ($1); } + { $$ = state->d_int_type ($1); } | FLOAT_KEYWORD - { $$ = make_builtin_type ("float"); } + { $$ = state->make_builtin_type ("float"); } | DOUBLE_KEYWORD - { $$ = make_builtin_type ("double"); } + { $$ = state->make_builtin_type ("double"); } | LONG DOUBLE_KEYWORD - { $$ = make_builtin_type ("long double"); } + { $$ = state->make_builtin_type ("long double"); } | BOOL - { $$ = make_builtin_type ("bool"); } + { $$ = state->make_builtin_type ("bool"); } | WCHAR_T - { $$ = make_builtin_type ("wchar_t"); } + { $$ = state->make_builtin_type ("wchar_t"); } | VOID - { $$ = make_builtin_type ("void"); } + { $$ = state->make_builtin_type ("void"); } ; ptr_operator : '*' qualifiers_opt - { $$.comp = fill_comp (DEMANGLE_COMPONENT_POINTER, NULL, NULL); + { $$.comp = state->fill_comp (DEMANGLE_COMPONENT_POINTER, NULL, NULL); $$.last = &d_left ($$.comp); - $$.comp = d_qualify ($$.comp, $2, 0); } + $$.comp = state->d_qualify ($$.comp, $2, 0); } /* g++ seems to allow qualifiers after the reference? */ | '&' - { $$.comp = fill_comp (DEMANGLE_COMPONENT_REFERENCE, NULL, NULL); + { $$.comp = state->fill_comp (DEMANGLE_COMPONENT_REFERENCE, NULL, NULL); $$.last = &d_left ($$.comp); } | ANDAND - { $$.comp = fill_comp (DEMANGLE_COMPONENT_RVALUE_REFERENCE, NULL, NULL); + { $$.comp = state->fill_comp (DEMANGLE_COMPONENT_RVALUE_REFERENCE, NULL, NULL); $$.last = &d_left ($$.comp); } | nested_name '*' qualifiers_opt - { $$.comp = fill_comp (DEMANGLE_COMPONENT_PTRMEM_TYPE, $1.comp, NULL); + { $$.comp = state->fill_comp (DEMANGLE_COMPONENT_PTRMEM_TYPE, $1.comp, NULL); /* Convert the innermost DEMANGLE_COMPONENT_QUAL_NAME to a DEMANGLE_COMPONENT_NAME. */ *$1.last = *d_left ($1.last); $$.last = &d_right ($$.comp); - $$.comp = d_qualify ($$.comp, $3, 0); } + $$.comp = state->d_qualify ($$.comp, $3, 0); } | COLONCOLON nested_name '*' qualifiers_opt - { $$.comp = fill_comp (DEMANGLE_COMPONENT_PTRMEM_TYPE, $2.comp, NULL); + { $$.comp = state->fill_comp (DEMANGLE_COMPONENT_PTRMEM_TYPE, $2.comp, NULL); /* Convert the innermost DEMANGLE_COMPONENT_QUAL_NAME to a DEMANGLE_COMPONENT_NAME. */ *$2.last = *d_left ($2.last); $$.last = &d_right ($$.comp); - $$.comp = d_qualify ($$.comp, $4, 0); } + $$.comp = state->d_qualify ($$.comp, $4, 0); } ; array_indicator : '[' ']' - { $$ = fill_comp (DEMANGLE_COMPONENT_ARRAY_TYPE, NULL, NULL); } + { $$ = state->fill_comp (DEMANGLE_COMPONENT_ARRAY_TYPE, NULL, NULL); } | '[' INT ']' - { $$ = fill_comp (DEMANGLE_COMPONENT_ARRAY_TYPE, $2, NULL); } + { $$ = state->fill_comp (DEMANGLE_COMPONENT_ARRAY_TYPE, $2, NULL); } ; /* Details of this approach inspired by the G++ < 3.4 parser. */ @@ -783,29 +768,29 @@ */ typespec_2 : builtin_type qualifiers - { $$ = d_qualify ($1, $2, 0); } + { $$ = state->d_qualify ($1, $2, 0); } | builtin_type | qualifiers builtin_type qualifiers - { $$ = d_qualify ($2, $1 | $3, 0); } + { $$ = state->d_qualify ($2, $1 | $3, 0); } | qualifiers builtin_type - { $$ = d_qualify ($2, $1, 0); } + { $$ = state->d_qualify ($2, $1, 0); } | name qualifiers - { $$ = d_qualify ($1, $2, 0); } + { $$ = state->d_qualify ($1, $2, 0); } | name | qualifiers name qualifiers - { $$ = d_qualify ($2, $1 | $3, 0); } + { $$ = state->d_qualify ($2, $1 | $3, 0); } | qualifiers name - { $$ = d_qualify ($2, $1, 0); } + { $$ = state->d_qualify ($2, $1, 0); } | COLONCOLON name qualifiers - { $$ = d_qualify ($2, $3, 0); } + { $$ = state->d_qualify ($2, $3, 0); } | COLONCOLON name { $$ = $2; } | qualifiers COLONCOLON name qualifiers - { $$ = d_qualify ($3, $1 | $4, 0); } + { $$ = state->d_qualify ($3, $1 | $4, 0); } | qualifiers COLONCOLON name - { $$ = d_qualify ($3, $1, 0); } + { $$ = state->d_qualify ($3, $1, 0); } ; abstract_declarator @@ -922,7 +907,7 @@ $$.last = &d_right ($2); } | colon_ext_name - { $$.comp = fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, $1, NULL); + { $$.comp = state->fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, $1, NULL); $$.last = &d_right ($$.comp); } ; @@ -938,7 +923,7 @@ $$.last = $1.last; *$2.last = $1.comp; } | colon_ext_name - { $$.comp = fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, $1, NULL); + { $$.comp = state->fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, $1, NULL); $$.last = &d_right ($$.comp); } | direct_declarator_1 @@ -950,15 +935,15 @@ members will not be mangled. If they are hopefully they'll end up to the right of the ::. */ | colon_ext_name function_arglist COLONCOLON start - { $$.comp = fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, $1, $2.comp); + { $$.comp = state->fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, $1, $2.comp); $$.last = $2.last; - $$.comp = fill_comp (DEMANGLE_COMPONENT_LOCAL_NAME, $$.comp, $4); + $$.comp = state->fill_comp (DEMANGLE_COMPONENT_LOCAL_NAME, $$.comp, $4); } | direct_declarator_1 function_arglist COLONCOLON start { $$.comp = $1.comp; *$1.last = $2.comp; $$.last = $2.last; - $$.comp = fill_comp (DEMANGLE_COMPONENT_LOCAL_NAME, $$.comp, $4); + $$.comp = state->fill_comp (DEMANGLE_COMPONENT_LOCAL_NAME, $$.comp, $4); } ; @@ -978,11 +963,11 @@ $$.last = &d_right ($2); } | colon_ext_name function_arglist - { $$.comp = fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, $1, $2.comp); + { $$.comp = state->fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, $1, $2.comp); $$.last = $2.last; } | colon_ext_name array_indicator - { $$.comp = fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, $1, $2); + { $$.comp = state->fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, $1, $2); $$.last = &d_right ($2); } ; @@ -997,29 +982,29 @@ ; exp1 : exp '>' exp - { $$ = d_binary (">", $1, $3); } + { $$ = state->d_binary (">", $1, $3); } ; /* References. Not allowed everywhere in template parameters, only at the top level, but treat them as expressions in case they are wrapped in parentheses. */ exp1 : '&' start - { $$ = fill_comp (DEMANGLE_COMPONENT_UNARY, make_operator ("&", 1), $2); } + { $$ = state->fill_comp (DEMANGLE_COMPONENT_UNARY, state->make_operator ("&", 1), $2); } | '&' '(' start ')' - { $$ = fill_comp (DEMANGLE_COMPONENT_UNARY, make_operator ("&", 1), $3); } + { $$ = state->fill_comp (DEMANGLE_COMPONENT_UNARY, state->make_operator ("&", 1), $3); } ; /* Expressions, not including the comma operator. */ exp : '-' exp %prec UNARY - { $$ = d_unary ("-", $2); } + { $$ = state->d_unary ("-", $2); } ; exp : '!' exp %prec UNARY - { $$ = d_unary ("!", $2); } + { $$ = state->d_unary ("!", $2); } ; exp : '~' exp %prec UNARY - { $$ = d_unary ("~", $2); } + { $$ = state->d_unary ("~", $2); } ; /* Casts. First your normal C-style cast. If exp is a LITERAL, just change @@ -1033,8 +1018,8 @@ d_left ($4) = $2; } else - $$ = fill_comp (DEMANGLE_COMPONENT_UNARY, - fill_comp (DEMANGLE_COMPONENT_CAST, $2, NULL), + $$ = state->fill_comp (DEMANGLE_COMPONENT_UNARY, + state->fill_comp (DEMANGLE_COMPONENT_CAST, $2, NULL), $4); } ; @@ -1042,22 +1027,22 @@ /* Mangling does not differentiate between these, so we don't need to either. */ exp : STATIC_CAST '<' type '>' '(' exp1 ')' %prec UNARY - { $$ = fill_comp (DEMANGLE_COMPONENT_UNARY, - fill_comp (DEMANGLE_COMPONENT_CAST, $3, NULL), + { $$ = state->fill_comp (DEMANGLE_COMPONENT_UNARY, + state->fill_comp (DEMANGLE_COMPONENT_CAST, $3, NULL), $6); } ; exp : DYNAMIC_CAST '<' type '>' '(' exp1 ')' %prec UNARY - { $$ = fill_comp (DEMANGLE_COMPONENT_UNARY, - fill_comp (DEMANGLE_COMPONENT_CAST, $3, NULL), + { $$ = state->fill_comp (DEMANGLE_COMPONENT_UNARY, + state->fill_comp (DEMANGLE_COMPONENT_CAST, $3, NULL), $6); } ; exp : REINTERPRET_CAST '<' type '>' '(' exp1 ')' %prec UNARY - { $$ = fill_comp (DEMANGLE_COMPONENT_UNARY, - fill_comp (DEMANGLE_COMPONENT_CAST, $3, NULL), + { $$ = state->fill_comp (DEMANGLE_COMPONENT_UNARY, + state->fill_comp (DEMANGLE_COMPONENT_CAST, $3, NULL), $6); } ; @@ -1075,86 +1060,86 @@ /* Binary operators in order of decreasing precedence. */ exp : exp '*' exp - { $$ = d_binary ("*", $1, $3); } + { $$ = state->d_binary ("*", $1, $3); } ; exp : exp '/' exp - { $$ = d_binary ("/", $1, $3); } + { $$ = state->d_binary ("/", $1, $3); } ; exp : exp '%' exp - { $$ = d_binary ("%", $1, $3); } + { $$ = state->d_binary ("%", $1, $3); } ; exp : exp '+' exp - { $$ = d_binary ("+", $1, $3); } + { $$ = state->d_binary ("+", $1, $3); } ; exp : exp '-' exp - { $$ = d_binary ("-", $1, $3); } + { $$ = state->d_binary ("-", $1, $3); } ; exp : exp LSH exp - { $$ = d_binary ("<<", $1, $3); } + { $$ = state->d_binary ("<<", $1, $3); } ; exp : exp RSH exp - { $$ = d_binary (">>", $1, $3); } + { $$ = state->d_binary (">>", $1, $3); } ; exp : exp EQUAL exp - { $$ = d_binary ("==", $1, $3); } + { $$ = state->d_binary ("==", $1, $3); } ; exp : exp NOTEQUAL exp - { $$ = d_binary ("!=", $1, $3); } + { $$ = state->d_binary ("!=", $1, $3); } ; exp : exp LEQ exp - { $$ = d_binary ("<=", $1, $3); } + { $$ = state->d_binary ("<=", $1, $3); } ; exp : exp GEQ exp - { $$ = d_binary (">=", $1, $3); } + { $$ = state->d_binary (">=", $1, $3); } ; exp : exp '<' exp - { $$ = d_binary ("<", $1, $3); } + { $$ = state->d_binary ("<", $1, $3); } ; exp : exp '&' exp - { $$ = d_binary ("&", $1, $3); } + { $$ = state->d_binary ("&", $1, $3); } ; exp : exp '^' exp - { $$ = d_binary ("^", $1, $3); } + { $$ = state->d_binary ("^", $1, $3); } ; exp : exp '|' exp - { $$ = d_binary ("|", $1, $3); } + { $$ = state->d_binary ("|", $1, $3); } ; exp : exp ANDAND exp - { $$ = d_binary ("&&", $1, $3); } + { $$ = state->d_binary ("&&", $1, $3); } ; exp : exp OROR exp - { $$ = d_binary ("||", $1, $3); } + { $$ = state->d_binary ("||", $1, $3); } ; /* Not 100% sure these are necessary, but they're harmless. */ exp : exp ARROW NAME - { $$ = d_binary ("->", $1, $3); } + { $$ = state->d_binary ("->", $1, $3); } ; exp : exp '.' NAME - { $$ = d_binary (".", $1, $3); } + { $$ = state->d_binary (".", $1, $3); } ; exp : exp '?' exp ':' exp %prec '?' - { $$ = fill_comp (DEMANGLE_COMPONENT_TRINARY, make_operator ("?", 3), - fill_comp (DEMANGLE_COMPONENT_TRINARY_ARG1, $1, - fill_comp (DEMANGLE_COMPONENT_TRINARY_ARG2, $3, $5))); + { $$ = state->fill_comp (DEMANGLE_COMPONENT_TRINARY, state->make_operator ("?", 3), + state->fill_comp (DEMANGLE_COMPONENT_TRINARY_ARG1, $1, + state->fill_comp (DEMANGLE_COMPONENT_TRINARY_ARG2, $3, $5))); } ; @@ -1169,25 +1154,25 @@ { /* Match the whitespacing of cplus_demangle_operators. It would abort on unrecognized string otherwise. */ - $$ = d_unary ("sizeof ", $3); + $$ = state->d_unary ("sizeof ", $3); } ; /* C++. */ exp : TRUEKEYWORD { struct demangle_component *i; - i = make_name ("1", 1); - $$ = fill_comp (DEMANGLE_COMPONENT_LITERAL, - make_builtin_type ("bool"), + i = state->make_name ("1", 1); + $$ = state->fill_comp (DEMANGLE_COMPONENT_LITERAL, + state->make_builtin_type ( "bool"), i); } ; exp : FALSEKEYWORD { struct demangle_component *i; - i = make_name ("0", 1); - $$ = fill_comp (DEMANGLE_COMPONENT_LITERAL, - make_builtin_type ("bool"), + i = state->make_name ("0", 1); + $$ = state->fill_comp (DEMANGLE_COMPONENT_LITERAL, + state->make_builtin_type ("bool"), i); } ; @@ -1202,7 +1187,8 @@ may already be qualified; duplicate qualifiers are not created. */ struct demangle_component * -d_qualify (struct demangle_component *lhs, int qualifiers, int is_method) +cpname_state::d_qualify (struct demangle_component *lhs, int qualifiers, + int is_method) { struct demangle_component **inner_p; enum demangle_component_type type; @@ -1212,8 +1198,8 @@ #define HANDLE_QUAL(TYPE, MTYPE, QUAL) \ if ((qualifiers & QUAL) && (type != TYPE) && (type != MTYPE)) \ { \ - *inner_p = fill_comp (is_method ? MTYPE : TYPE, \ - *inner_p, NULL); \ + *inner_p = fill_comp (is_method ? MTYPE : TYPE, \ + *inner_p, NULL); \ inner_p = &d_left (*inner_p); \ type = (*inner_p)->type; \ } \ @@ -1236,8 +1222,8 @@ /* Return a builtin type corresponding to FLAGS. */ -static struct demangle_component * -d_int_type (int flags) +struct demangle_component * +cpname_state::d_int_type (int flags) { const char *name; @@ -1289,41 +1275,20 @@ /* Wrapper to create a unary operation. */ -static struct demangle_component * -d_unary (const char *name, struct demangle_component *lhs) +struct demangle_component * +cpname_state::d_unary (const char *name, struct demangle_component *lhs) { return fill_comp (DEMANGLE_COMPONENT_UNARY, make_operator (name, 1), lhs); } /* Wrapper to create a binary operation. */ -static struct demangle_component * -d_binary (const char *name, struct demangle_component *lhs, struct demangle_component *rhs) +struct demangle_component * +cpname_state::d_binary (const char *name, struct demangle_component *lhs, + struct demangle_component *rhs) { return fill_comp (DEMANGLE_COMPONENT_BINARY, make_operator (name, 2), - fill_comp (DEMANGLE_COMPONENT_BINARY_ARGS, lhs, rhs)); -} - -/* Like ISALPHA, but also returns true for the union of all UTF-8 - multi-byte sequence bytes and non-ASCII characters in - extended-ASCII charsets (e.g., Latin1). I.e., returns true if the - high bit is set. Note that not all UTF-8 ranges are allowed in C++ - identifiers, but we don't need to be pedantic so for simplicity we - ignore that here. Plus this avoids the complication of actually - knowing what was the right encoding. */ - -static inline bool -cp_ident_is_alpha (unsigned char ch) -{ - return ISALPHA (ch) || ch >= 0x80; -} - -/* Similarly, but Like ISALNUM. */ - -static inline bool -cp_ident_is_alnum (unsigned char ch) -{ - return ISALNUM (ch) || ch >= 0x80; + fill_comp (DEMANGLE_COMPONENT_BINARY_ARGS, lhs, rhs)); } /* Find the end of a symbol name starting at LEXPTR. */ @@ -1333,7 +1298,7 @@ { const char *p = lexptr; - while (*p && (cp_ident_is_alnum (*p) || *p == '_' || *p == '$' || *p == '.')) + while (*p && (c_ident_is_alnum (*p) || *p == '_' || *p == '$' || *p == '.')) p++; return p; @@ -1343,8 +1308,9 @@ The number starts at P and contains LEN characters. Store the result in YYLVAL. */ -static int -parse_number (const char *p, int len, int parsed_float) +int +cpname_state::parse_number (const char *p, int len, int parsed_float, + YYSTYPE *lvalp) { int unsigned_p = 0; @@ -1394,7 +1360,7 @@ return ERROR; name = make_name (p, len); - yylval.comp = fill_comp (literal_type, type, name); + lvalp->comp = fill_comp (literal_type, type, name); return FLOAT; } @@ -1443,13 +1409,13 @@ type = signed_type; name = make_name (p, len); - yylval.comp = fill_comp (literal_type, type, name); + lvalp->comp = fill_comp (literal_type, type, name); return INT; } -static char backslashable[] = "abefnrtv"; -static char represented[] = "\a\b\e\f\n\r\t\v"; +static const char backslashable[] = "abefnrtv"; +static const char represented[] = "\a\b\e\f\n\r\t\v"; /* Translate the backslash the way we would in the host character set. */ static int @@ -1547,39 +1513,39 @@ #define HANDLE_SPECIAL(string, comp) \ if (strncmp (tokstart, string, sizeof (string) - 1) == 0) \ { \ - lexptr = tokstart + sizeof (string) - 1; \ - yylval.lval = comp; \ + state->lexptr = tokstart + sizeof (string) - 1; \ + lvalp->lval = comp; \ return DEMANGLER_SPECIAL; \ } #define HANDLE_TOKEN2(string, token) \ - if (lexptr[1] == string[1]) \ + if (state->lexptr[1] == string[1]) \ { \ - lexptr += 2; \ - yylval.opname = string; \ + state->lexptr += 2; \ + lvalp->opname = string; \ return token; \ } #define HANDLE_TOKEN3(string, token) \ - if (lexptr[1] == string[1] && lexptr[2] == string[2]) \ + if (state->lexptr[1] == string[1] && state->lexptr[2] == string[2]) \ { \ - lexptr += 3; \ - yylval.opname = string; \ + state->lexptr += 3; \ + lvalp->opname = string; \ return token; \ } /* Read one token, getting characters through LEXPTR. */ static int -yylex (void) +yylex (YYSTYPE *lvalp, cpname_state *state) { int c; int namelen; const char *tokstart; retry: - prev_lexptr = lexptr; - tokstart = lexptr; + state->prev_lexptr = state->lexptr; + tokstart = state->lexptr; switch (c = *tokstart) { @@ -1589,27 +1555,27 @@ case ' ': case '\t': case '\n': - lexptr++; + state->lexptr++; goto retry; case '\'': /* We either have a character constant ('0' or '\177' for example) or we have a quoted symbol reference ('foo(int,int)' in C++ for example). */ - lexptr++; - c = *lexptr++; + state->lexptr++; + c = *state->lexptr++; if (c == '\\') - c = cp_parse_escape (&lexptr); + c = cp_parse_escape (&state->lexptr); else if (c == '\'') { - yyerror (_("empty character constant")); + yyerror (state, _("empty character constant")); return ERROR; } - c = *lexptr++; + c = *state->lexptr++; if (c != '\'') { - yyerror (_("invalid character constant")); + yyerror (state, _("invalid character constant")); return ERROR; } @@ -1617,36 +1583,38 @@ presumably the same one that appears in manglings - the decimal representation. But if that isn't in our input then we have to allocate memory for it somewhere. */ - yylval.comp = fill_comp (DEMANGLE_COMPONENT_LITERAL, - make_builtin_type ("char"), - make_name (tokstart, lexptr - tokstart)); + lvalp->comp + = state->fill_comp (DEMANGLE_COMPONENT_LITERAL, + state->make_builtin_type ("char"), + state->make_name (tokstart, + state->lexptr - tokstart)); return INT; case '(': if (strncmp (tokstart, "(anonymous namespace)", 21) == 0) { - lexptr += 21; - yylval.comp = make_name ("(anonymous namespace)", - sizeof "(anonymous namespace)" - 1); + state->lexptr += 21; + lvalp->comp = state->make_name ("(anonymous namespace)", + sizeof "(anonymous namespace)" - 1); return NAME; } /* FALL THROUGH */ case ')': case ',': - lexptr++; + state->lexptr++; return c; case '.': - if (lexptr[1] == '.' && lexptr[2] == '.') + if (state->lexptr[1] == '.' && state->lexptr[2] == '.') { - lexptr += 3; + state->lexptr += 3; return ELLIPSIS; } /* Might be a floating point number. */ - if (lexptr[1] < '0' || lexptr[1] > '9') + if (state->lexptr[1] < '0' || state->lexptr[1] > '9') goto symbol; /* Nope, must be a symbol. */ goto try_number; @@ -1659,16 +1627,16 @@ /* For construction vtables. This is kind of hokey. */ if (strncmp (tokstart, "-in-", 4) == 0) { - lexptr += 4; + state->lexptr += 4; return CONSTRUCTION_IN; } - if (lexptr[1] < '0' || lexptr[1] > '9') + if (state->lexptr[1] < '0' || state->lexptr[1] > '9') { - lexptr++; + state->lexptr++; return '-'; } - /* FALL THRU into number case. */ + /* FALL THRU. */ try_number: case '0': @@ -1726,74 +1694,75 @@ else if (! ISALNUM (*p)) break; } - toktype = parse_number (tokstart, p - tokstart, got_dot|got_e); + toktype = state->parse_number (tokstart, p - tokstart, got_dot|got_e, + lvalp); if (toktype == ERROR) { char *err_copy = (char *) alloca (p - tokstart + 1); memcpy (err_copy, tokstart, p - tokstart); err_copy[p - tokstart] = 0; - yyerror (_("invalid number")); + yyerror (state, _("invalid number")); return ERROR; } - lexptr = p; + state->lexptr = p; return toktype; } case '+': HANDLE_TOKEN2 ("+=", ASSIGN_MODIFY); HANDLE_TOKEN2 ("++", INCREMENT); - lexptr++; + state->lexptr++; return c; case '*': HANDLE_TOKEN2 ("*=", ASSIGN_MODIFY); - lexptr++; + state->lexptr++; return c; case '/': HANDLE_TOKEN2 ("/=", ASSIGN_MODIFY); - lexptr++; + state->lexptr++; return c; case '%': HANDLE_TOKEN2 ("%=", ASSIGN_MODIFY); - lexptr++; + state->lexptr++; return c; case '|': HANDLE_TOKEN2 ("|=", ASSIGN_MODIFY); HANDLE_TOKEN2 ("||", OROR); - lexptr++; + state->lexptr++; return c; case '&': HANDLE_TOKEN2 ("&=", ASSIGN_MODIFY); HANDLE_TOKEN2 ("&&", ANDAND); - lexptr++; + state->lexptr++; return c; case '^': HANDLE_TOKEN2 ("^=", ASSIGN_MODIFY); - lexptr++; + state->lexptr++; return c; case '!': HANDLE_TOKEN2 ("!=", NOTEQUAL); - lexptr++; + state->lexptr++; return c; case '<': HANDLE_TOKEN3 ("<<=", ASSIGN_MODIFY); HANDLE_TOKEN2 ("<=", LEQ); HANDLE_TOKEN2 ("<<", LSH); - lexptr++; + state->lexptr++; return c; case '>': HANDLE_TOKEN3 (">>=", ASSIGN_MODIFY); HANDLE_TOKEN2 (">=", GEQ); HANDLE_TOKEN2 (">>", RSH); - lexptr++; + state->lexptr++; return c; case '=': HANDLE_TOKEN2 ("==", EQUAL); - lexptr++; + state->lexptr++; return c; case ':': HANDLE_TOKEN2 ("::", COLONCOLON); - lexptr++; + state->lexptr++; return c; case '[': @@ -1804,19 +1773,19 @@ case '{': case '}': symbol: - lexptr++; + state->lexptr++; return c; case '"': /* These can't occur in C++ names. */ - yyerror (_("unexpected string literal")); + yyerror (state, _("unexpected string literal")); return ERROR; } - if (!(c == '_' || c == '$' || cp_ident_is_alpha (c))) + if (!(c == '_' || c == '$' || c_ident_is_alpha (c))) { /* We must have come across a bad character (e.g. ';'). */ - yyerror (_("invalid character")); + yyerror (state, _("invalid character")); return ERROR; } @@ -1824,9 +1793,9 @@ namelen = 0; do c = tokstart[++namelen]; - while (cp_ident_is_alnum (c) || c == '_' || c == '$'); + while (c_ident_is_alnum (c) || c == '_' || c == '$'); - lexptr += namelen; + state->lexptr += namelen; /* Catch specific keywords. Notice that some of the keywords contain spaces, and are sorted by the length of the first word. They must @@ -1840,7 +1809,7 @@ case 12: if (strncmp (tokstart, "construction vtable for ", 24) == 0) { - lexptr = tokstart + 24; + state->lexptr = tokstart + 24; return CONSTRUCTION_VTABLE; } if (strncmp (tokstart, "dynamic_cast", 12) == 0) @@ -1878,23 +1847,23 @@ if (strncmp (tokstart, "global constructors keyed to ", 29) == 0) { const char *p; - lexptr = tokstart + 29; - yylval.lval = DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS; + state->lexptr = tokstart + 29; + lvalp->lval = DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS; /* Find the end of the symbol. */ - p = symbol_end (lexptr); - yylval.comp = make_name (lexptr, p - lexptr); - lexptr = p; + p = symbol_end (state->lexptr); + lvalp->comp = state->make_name (state->lexptr, p - state->lexptr); + state->lexptr = p; return DEMANGLER_SPECIAL; } if (strncmp (tokstart, "global destructors keyed to ", 28) == 0) { const char *p; - lexptr = tokstart + 28; - yylval.lval = DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS; + state->lexptr = tokstart + 28; + lvalp->lval = DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS; /* Find the end of the symbol. */ - p = symbol_end (lexptr); - yylval.comp = make_name (lexptr, p - lexptr); - lexptr = p; + p = symbol_end (state->lexptr); + lvalp->comp = state->make_name (state->lexptr, p - state->lexptr); + state->lexptr = p; return DEMANGLER_SPECIAL; } @@ -1951,18 +1920,18 @@ break; } - yylval.comp = make_name (tokstart, namelen); + lvalp->comp = state->make_name (tokstart, namelen); return NAME; } static void -yyerror (const char *msg) +yyerror (cpname_state *state, const char *msg) { - if (global_errmsg) + if (state->global_errmsg) return; - error_lexptr = prev_lexptr; - global_errmsg = msg ? msg : "parse error"; + state->error_lexptr = state->prev_lexptr; + state->global_errmsg = msg ? msg : "parse error"; } /* Allocate a chunk of the components we'll need to build a tree. We @@ -2054,36 +2023,31 @@ /* Convert a demangled name to a demangle_component tree. On success, a structure containing the root of the new tree is returned. On error, NULL is returned, and an error message will be set in - *ERRMSG (which does not need to be freed). */ + *ERRMSG. */ struct std::unique_ptr -cp_demangled_name_to_comp (const char *demangled_name, const char **errmsg) +cp_demangled_name_to_comp (const char *demangled_name, + std::string *errmsg) { - static char errbuf[60]; + cpname_state state; - prev_lexptr = lexptr = demangled_name; - error_lexptr = NULL; - global_errmsg = NULL; + state.prev_lexptr = state.lexptr = demangled_name; + state.error_lexptr = NULL; + state.global_errmsg = NULL; - demangle_info = allocate_info (); + state.demangle_info = allocate_info (); std::unique_ptr result (new demangle_parse_info); - result->info = demangle_info; + result->info = state.demangle_info; - if (yyparse ()) + if (yyparse (&state)) { - if (global_errmsg && errmsg) - { - snprintf (errbuf, sizeof (errbuf) - 2, "%s, near `%s", - global_errmsg, error_lexptr); - strcat (errbuf, "'"); - *errmsg = errbuf; - } + if (state.global_errmsg && errmsg) + *errmsg = state.global_errmsg; return NULL; } - result->tree = global_result; - global_result = NULL; + result->tree = state.global_result; return result; } @@ -2154,7 +2118,6 @@ char *str2, *extra_chars, c; char buf[65536]; int arg; - const char *errmsg; arg = 1; if (argv[arg] && strcmp (argv[arg], "--debug") == 0) @@ -2181,11 +2144,12 @@ continue; } + std::string errmsg; std::unique_ptr result = cp_demangled_name_to_comp (str2, &errmsg); if (result == NULL) { - fputs (errmsg, stderr); + fputs (errmsg.c_str (), stderr); fputc ('\n', stderr); continue; } @@ -2202,11 +2166,12 @@ } else { + std::string errmsg; std::unique_ptr result = cp_demangled_name_to_comp (argv[arg], &errmsg); if (result == NULL) { - fputs (errmsg, stderr); + fputs (errmsg.c_str (), stderr); fputc ('\n', stderr); return 0; } diff -Nru gdb-8.1/gdb/cp-namespace.c gdb-8.2/gdb/cp-namespace.c --- gdb-8.1/gdb/cp-namespace.c 2018-01-12 03:09:26.000000000 +0000 +++ gdb-8.2/gdb/cp-namespace.c 2018-09-05 07:44:28.000000000 +0000 @@ -915,7 +915,7 @@ const struct block *block, const domain_enum domain) { - /* type_name_no_tag_or_error provides better error reporting using the + /* type_name_or_error provides better error reporting using the original type. */ struct type *saved_parent_type = parent_type; @@ -923,7 +923,7 @@ if (symbol_lookup_debug) { - const char *type_name = type_name_no_tag (saved_parent_type); + const char *type_name = TYPE_NAME (saved_parent_type); fprintf_unfiltered (gdb_stdlog, "cp_lookup_nested_symbol (%s, %s, %s, %s)\n", @@ -944,7 +944,7 @@ case TYPE_CODE_MODULE: { int size; - const char *parent_name = type_name_no_tag_or_error (saved_parent_type); + const char *parent_name = type_name_or_error (saved_parent_type); struct block_symbol sym; char *concatenated_name; int is_in_anonymous; diff -Nru gdb-8.1/gdb/cp-support.c gdb-8.2/gdb/cp-support.c --- gdb-8.1/gdb/cp-support.c 2018-01-12 03:09:26.000000000 +0000 +++ gdb-8.2/gdb/cp-support.c 2018-09-05 07:27:13.000000000 +0000 @@ -199,7 +199,7 @@ && strcmp (TYPE_NAME (type), name) == 0) return 0; - is_anon = (TYPE_TAG_NAME (type) == NULL + is_anon = (TYPE_NAME (type) == NULL && (TYPE_CODE (type) == TYPE_CODE_ENUM || TYPE_CODE (type) == TYPE_CODE_STRUCT || TYPE_CODE (type) == TYPE_CODE_UNION)); @@ -1108,8 +1108,7 @@ static void demangled_name_complaint (const char *name) { - complaint (&symfile_complaints, - "unexpected demangled name '%s'", name); + complaint ("unexpected demangled name '%s'", name); } /* If NAME is the fully-qualified name of a C++ diff -Nru gdb-8.1/gdb/cp-support.h gdb-8.2/gdb/cp-support.h --- gdb-8.1/gdb/cp-support.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/cp-support.h 2018-09-05 07:44:28.000000000 +0000 @@ -169,7 +169,7 @@ /* Functions from cp-name-parser.y. */ extern std::unique_ptr cp_demangled_name_to_comp - (const char *demangled_name, const char **errmsg); + (const char *demangled_name, std::string *errmsg); extern gdb::unique_xmalloc_ptr cp_comp_to_string (struct demangle_component *result, int estimated_len); diff -Nru gdb-8.1/gdb/cp-valprint.c gdb-8.2/gdb/cp-valprint.c --- gdb-8.1/gdb/cp-valprint.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/cp-valprint.c 2018-09-05 07:27:13.000000000 +0000 @@ -95,7 +95,7 @@ int cp_is_vtbl_ptr_type (struct type *type) { - const char *type_name = type_name_no_tag (type); + const char *type_name = TYPE_NAME (type); return (type_name != NULL && !strcmp (type_name, vtbl_ptr_name)); } @@ -243,7 +243,7 @@ fprintf_filtered (stream, "\n"); print_spaces_filtered (2 + 2 * recurse, stream); fputs_filtered ("members of ", stream); - fputs_filtered (type_name_no_tag (type), stream); + fputs_filtered (TYPE_NAME (type), stream); fputs_filtered (": ", stream); } } @@ -633,7 +633,8 @@ return; } - if (TYPE_CODE (type) == TYPE_CODE_STRUCT) + struct type *real_type = check_typedef (type); + if (TYPE_CODE (real_type) == TYPE_CODE_STRUCT) { CORE_ADDR *first_dont_print; CORE_ADDR addr; @@ -658,7 +659,6 @@ addr = value_address (val); obstack_grow (&dont_print_statmem_obstack, (char *) &addr, sizeof (CORE_ADDR)); - type = check_typedef (type); cp_print_value_fields (type, value_enclosing_type (val), value_embedded_offset (val), addr, stream, recurse, val, @@ -666,7 +666,7 @@ return; } - if (TYPE_CODE (type) == TYPE_CODE_ARRAY) + if (TYPE_CODE (real_type) == TYPE_CODE_ARRAY) { struct type **first_dont_print; int i; @@ -787,7 +787,7 @@ const char *name; fputs_filtered (prefix, stream); - name = type_name_no_tag (self_type); + name = TYPE_NAME (self_type); if (name) fputs_filtered (name, stream); else diff -Nru gdb-8.1/gdb/cris-tdep.c gdb-8.2/gdb/cris-tdep.c --- gdb-8.1/gdb/cris-tdep.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/cris-tdep.c 2018-09-05 07:27:13.000000000 +0000 @@ -849,7 +849,7 @@ /* Data passed by value. Fits in available register(s). */ for (i = 0; i < reg_demand; i++) { - regcache_cooked_write (regcache, argreg, val); + regcache->cooked_write (argreg, val); argreg++; val += 4; } @@ -862,7 +862,7 @@ { if (argreg <= ARG4_REGNUM) { - regcache_cooked_write (regcache, argreg, val); + regcache->cooked_write (argreg, val); argreg++; val += 4; } @@ -3809,7 +3809,7 @@ knows about the actual size of each register so that's no problem. */ for (i = 0; i < NUM_GENREGS + NUM_SPECREGS; i++) { - regcache_raw_supply (regcache, i, (char *)®p[i]); + regcache->raw_supply (i, (char *)®p[i]); } if (tdep->cris_version == 32) @@ -3817,8 +3817,8 @@ /* Needed to set pseudo-register PC for CRISv32. */ /* FIXME: If ERP is in a delay slot at this point then the PC will be wrong. Issue a warning to alert the user. */ - regcache_raw_supply (regcache, gdbarch_pc_regnum (gdbarch), - (char *)®p[ERP_REGNUM]); + regcache->raw_supply (gdbarch_pc_regnum (gdbarch), + (char *)®p[ERP_REGNUM]); if (*(char *)®p[ERP_REGNUM] & 0x1) fprintf_unfiltered (gdb_stderr, "Warning: PC in delay slot\n"); diff -Nru gdb-8.1/gdb/c-support.h gdb-8.2/gdb/c-support.h --- gdb-8.1/gdb/c-support.h 1970-01-01 00:00:00.000000000 +0000 +++ gdb-8.2/gdb/c-support.h 2018-09-05 07:27:13.000000000 +0000 @@ -0,0 +1,46 @@ +/* Helper routines for C support in GDB. + Copyright (C) 2017-2018 Free Software Foundation, Inc. + + This file is part of GDB. + + 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 3 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, see . */ + +#ifndef C_SUPPORT_H +#define C_SUPPORT_H + +#include "safe-ctype.h" + +/* Like ISALPHA, but also returns true for the union of all UTF-8 + multi-byte sequence bytes and non-ASCII characters in + extended-ASCII charsets (e.g., Latin1). I.e., returns true if the + high bit is set. Note that not all UTF-8 ranges are allowed in C++ + identifiers, but we don't need to be pedantic so for simplicity we + ignore that here. Plus this avoids the complication of actually + knowing what was the right encoding. */ + +static inline bool +c_ident_is_alpha (unsigned char ch) +{ + return ISALPHA (ch) || ch >= 0x80; +} + +/* Similarly, but Like ISALNUM. */ + +static inline bool +c_ident_is_alnum (unsigned char ch) +{ + return ISALNUM (ch) || ch >= 0x80; +} + +#endif /* C_SUPPORT_H */ diff -Nru gdb-8.1/gdb/ctf.c gdb-8.2/gdb/ctf.c --- gdb-8.1/gdb/ctf.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/ctf.c 2018-09-05 07:27:13.000000000 +0000 @@ -32,6 +32,36 @@ #include #include +/* The CTF target. */ + +static const target_info ctf_target_info = { + "ctf", + N_("CTF file"), + N_("(Use a CTF directory as a target.\n\ +Specify the filename of the CTF directory.") +}; + +class ctf_target final : public tracefile_target +{ +public: + const target_info &info () const override + { return ctf_target_info; } + + void close () override; + void fetch_registers (struct regcache *, int) override; + enum target_xfer_status xfer_partial (enum target_object object, + const char *annex, + gdb_byte *readbuf, + const gdb_byte *writebuf, + ULONGEST offset, ULONGEST len, + ULONGEST *xfered_len) override; + void files_info () override; + int trace_find (enum trace_find_type type, int num, + CORE_ADDR addr1, CORE_ADDR addr2, int *tpp) override; + bool get_trace_state_variable_value (int tsv, LONGEST *val) override; + traceframe_info_up traceframe_info () override; +}; + /* GDB saves trace buffers and other information (such as trace status) got from the remote target into Common Trace Format (CTF). The following types of information are expected to save in CTF: @@ -530,8 +560,6 @@ int64_t int64; uint32_t u32; const gdb_byte zero = 0; - int a; - char *act; /* Event Id. */ int32 = CTF_EVENT_ID_TP_DEF; @@ -569,15 +597,15 @@ ctf_save_write (&writer->tcs, &zero, 1); /* actions */ - u32 = VEC_length (char_ptr, tp->actions); + u32 = tp->actions.size (); ctf_save_align_write (&writer->tcs, (gdb_byte *) &u32, 4, 4); - for (a = 0; VEC_iterate (char_ptr, tp->actions, a, act); ++a) + for (char *act : tp->actions) ctf_save_write (&writer->tcs, (gdb_byte *) act, strlen (act) + 1); /* step_actions */ - u32 = VEC_length (char_ptr, tp->step_actions); + u32 = tp->step_actions.size (); ctf_save_align_write (&writer->tcs, (gdb_byte *) &u32, 4, 4); - for (a = 0; VEC_iterate (char_ptr, tp->step_actions, a, act); ++a) + for (char *act : tp->step_actions) ctf_save_write (&writer->tcs, (gdb_byte *) act, strlen (act) + 1); /* at_string */ @@ -593,9 +621,9 @@ ctf_save_write (&writer->tcs, &zero, 1); /* cmd_strings */ - u32 = VEC_length (char_ptr, tp->cmd_strings); + u32 = tp->cmd_strings.size (); ctf_save_align_write (&writer->tcs, (gdb_byte *) &u32, 4, 4); - for (a = 0; VEC_iterate (char_ptr, tp->cmd_strings, a, act); ++a) + for (char *act : tp->cmd_strings) ctf_save_write (&writer->tcs, (gdb_byte *) act, strlen (act) + 1); } @@ -828,7 +856,7 @@ /* The name of CTF directory. */ static char *trace_dirname; -static struct target_ops ctf_ops; +static ctf_target ctf_ops; /* Destroy ctf iterator and context. */ @@ -992,8 +1020,8 @@ const struct bt_definition *element \ = bt_ctf_get_index ((EVENT), def, i); \ \ - VEC_safe_push (char_ptr, (VAR)->ARRAY, \ - xstrdup (bt_ctf_get_string (element))); \ + (VAR)->ARRAY.push_back \ + (xstrdup (bt_ctf_get_string (element))); \ } \ } \ while (0) @@ -1077,7 +1105,7 @@ second packet which contains events on trace blocks. */ static void -ctf_open (const char *dirname, int from_tty) +ctf_target_open (const char *dirname, int from_tty) { struct bt_ctf_event *event; uint32_t event_id; @@ -1132,7 +1160,7 @@ push_target (&ctf_ops); inferior_appeared (current_inferior (), CTF_PID); - inferior_ptid = pid_to_ptid (CTF_PID); + inferior_ptid = ptid_t (CTF_PID); add_thread_silent (inferior_ptid); merge_uploaded_trace_state_variables (&uploaded_tsvs); @@ -1144,18 +1172,15 @@ /* This is the implementation of target_ops method to_close. Destroy CTF iterator and context. */ -static void -ctf_close (struct target_ops *self) +void +ctf_target::close () { - int pid; - ctf_destroy (); xfree (trace_dirname); trace_dirname = NULL; - pid = ptid_get_pid (inferior_ptid); inferior_ptid = null_ptid; /* Avoid confusion from thread stuff. */ - exit_inferior_silent (pid); + exit_inferior_silent (current_inferior ()); trace_reset_local_state (); } @@ -1163,8 +1188,8 @@ /* This is the implementation of target_ops method to_files_info. Print the directory name of CTF trace data. */ -static void -ctf_files_info (struct target_ops *t) +void +ctf_target::files_info () { printf_filtered ("\t`%s'\n", trace_dirname); } @@ -1174,9 +1199,8 @@ extract contents from events, and set REGCACHE with the contents. If no matched events are found, mark registers unavailable. */ -static void -ctf_fetch_registers (struct target_ops *ops, - struct regcache *regcache, int regno) +void +ctf_target::fetch_registers (struct regcache *regcache, int regno) { struct gdbarch *gdbarch = regcache->arch (); struct bt_ctf_event *event = NULL; @@ -1235,16 +1259,16 @@ /* Make sure we stay within block bounds. */ if (offset + regsize >= trace_regblock_size) break; - if (regcache_register_status (regcache, regn) == REG_UNKNOWN) + if (regcache->get_register_status (regn) == REG_UNKNOWN) { if (regno == regn) { - regcache_raw_supply (regcache, regno, regs + offset); + regcache->raw_supply (regno, regs + offset); break; } else if (regno == -1) { - regcache_raw_supply (regcache, regn, regs + offset); + regcache->raw_supply (regn, regs + offset); } } offset += regsize; @@ -1260,11 +1284,11 @@ OFFSET is within the range, read the contents from events to READBUF. */ -static enum target_xfer_status -ctf_xfer_partial (struct target_ops *ops, enum target_object object, - const char *annex, gdb_byte *readbuf, - const gdb_byte *writebuf, ULONGEST offset, - ULONGEST len, ULONGEST *xfered_len) +enum target_xfer_status +ctf_target::xfer_partial (enum target_object object, + const char *annex, gdb_byte *readbuf, + const gdb_byte *writebuf, ULONGEST offset, + ULONGEST len, ULONGEST *xfered_len) { /* We're only doing regular memory for now. */ if (object != TARGET_OBJECT_MEMORY) @@ -1399,12 +1423,11 @@ trace variable is found, set the value of it to *VAL and return true, otherwise return false. */ -static int -ctf_get_trace_state_variable_value (struct target_ops *self, - int tsvnum, LONGEST *val) +bool +ctf_target::get_trace_state_variable_value (int tsvnum, LONGEST *val) { struct bt_iter_pos *pos; - int found = 0; + bool found = false; gdb_assert (ctf_iter != NULL); /* Save the current position. */ @@ -1435,7 +1458,7 @@ def = bt_ctf_get_field (event, scope, "val"); *val = bt_ctf_get_uint64 (def); - found = 1; + found = true; } } @@ -1517,9 +1540,9 @@ Iterate the events whose name is "frame", extract the tracepoint number in it. Return traceframe number when matched. */ -static int -ctf_trace_find (struct target_ops *self, enum trace_find_type type, int num, - CORE_ADDR addr1, CORE_ADDR addr2, int *tpp) +int +ctf_target::trace_find (enum trace_find_type type, int num, + CORE_ADDR addr1, CORE_ADDR addr2, int *tpp) { int tfnum = 0; int found = 0; @@ -1619,10 +1642,10 @@ frame, extract memory range information, and return them in traceframe_info. */ -static traceframe_info_up -ctf_traceframe_info (struct target_ops *self) +traceframe_info_up +ctf_target::traceframe_info () { - traceframe_info_up info (new traceframe_info); + traceframe_info_up info (new struct traceframe_info); const char *name; struct bt_iter_pos *pos; @@ -1686,27 +1709,6 @@ return info; } -static void -init_ctf_ops (void) -{ - memset (&ctf_ops, 0, sizeof (ctf_ops)); - - init_tracefile_ops (&ctf_ops); - ctf_ops.to_shortname = "ctf"; - ctf_ops.to_longname = "CTF file"; - ctf_ops.to_doc = "Use a CTF directory as a target.\n\ -Specify the filename of the CTF directory."; - ctf_ops.to_open = ctf_open; - ctf_ops.to_close = ctf_close; - ctf_ops.to_fetch_registers = ctf_fetch_registers; - ctf_ops.to_xfer_partial = ctf_xfer_partial; - ctf_ops.to_files_info = ctf_files_info; - ctf_ops.to_trace_find = ctf_trace_find; - ctf_ops.to_get_trace_state_variable_value - = ctf_get_trace_state_variable_value; - ctf_ops.to_traceframe_info = ctf_traceframe_info; -} - #endif /* module initialization */ @@ -1715,8 +1717,6 @@ _initialize_ctf (void) { #if HAVE_LIBBABELTRACE - init_ctf_ops (); - - add_target_with_completer (&ctf_ops, filename_completer); + add_target (ctf_target_info, ctf_target_open, filename_completer); #endif } diff -Nru gdb-8.1/gdb/c-typeprint.c gdb-8.2/gdb/c-typeprint.c --- gdb-8.1/gdb/c-typeprint.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/c-typeprint.c 2018-09-05 07:27:15.000000000 +0000 @@ -32,14 +32,6 @@ #include "cp-abi.h" #include "cp-support.h" -/* When printing the offsets of a struct and its fields (i.e., 'ptype - /o'; type_print_options::print_offsets), we use this many - characters when printing the offset information at the beginning of - the line. This is needed in order to generate the correct amount - of whitespaces when no offset info should be printed for a certain - field. */ -#define OFFSET_SPC_LEN 23 - /* A list of access specifiers used for printing. */ enum access_specifier @@ -50,9 +42,15 @@ s_protected }; +static void c_type_print_varspec_suffix (struct type *, struct ui_file *, int, + int, int, + enum language, + const struct type_print_options *); + static void c_type_print_varspec_prefix (struct type *, struct ui_file *, int, int, int, + enum language, const struct type_print_options *, struct print_offset_data *); @@ -62,18 +60,19 @@ int, int); static void c_type_print_base_1 (struct type *type, struct ui_file *stream, - int show, int level, + int show, int level, enum language language, const struct type_print_options *flags, struct print_offset_data *podata); /* A callback function for cp_canonicalize_string_full that uses - find_typedef_in_hash. */ + typedef_hash_table::find_typedef. */ static const char * find_typedef_for_canonicalize (struct type *t, void *data) { - return find_typedef_in_hash ((const struct type_print_options *) data, t); + return typedef_hash_table::find_typedef + ((const struct type_print_options *) data, t); } /* Print NAME on STREAM. If the 'raw' field of FLAGS is not set, @@ -103,6 +102,7 @@ const char *varstring, struct ui_file *stream, int show, int level, + enum language language, const struct type_print_options *flags, struct print_offset_data *podata) { @@ -114,7 +114,7 @@ if (show > 0) type = check_typedef (type); - local_name = find_typedef_in_hash (flags, type); + local_name = typedef_hash_table::find_typedef (flags, type); if (local_name != NULL) { fputs_filtered (local_name, stream); @@ -123,7 +123,7 @@ } else { - c_type_print_base_1 (type, stream, show, level, flags, podata); + c_type_print_base_1 (type, stream, show, level, language, flags, podata); code = TYPE_CODE (type); if ((varstring != NULL && *varstring != '\0') /* Need a space if going to print stars or brackets; @@ -139,7 +139,7 @@ fputs_filtered (" ", stream); need_post_space = (varstring != NULL && strcmp (varstring, "") != 0); c_type_print_varspec_prefix (type, stream, show, 0, need_post_space, - flags, podata); + language, flags, podata); } if (varstring != NULL) @@ -153,7 +153,7 @@ demangled_args = strchr (varstring, '(') != NULL; c_type_print_varspec_suffix (type, stream, show, 0, demangled_args, - flags); + language, flags); } } } @@ -169,7 +169,25 @@ { struct print_offset_data podata; - c_print_type_1 (type, varstring, stream, show, level, flags, &podata); + c_print_type_1 (type, varstring, stream, show, level, + current_language->la_language, flags, &podata); +} + + +/* See c-lang.h. */ + +void +c_print_type (struct type *type, + const char *varstring, + struct ui_file *stream, + int show, int level, + enum language language, + const struct type_print_options *flags) +{ + struct print_offset_data podata; + + c_print_type_1 (type, varstring, stream, show, level, language, flags, + &podata); } /* Print a typedef using C syntax. TYPE is the underlying type. @@ -234,7 +252,7 @@ ? "public" : (TYPE_FIELD_PROTECTED (type, i) ? "protected" : "private"), BASETYPE_VIA_VIRTUAL (type, i) ? " virtual" : ""); - name = type_name_no_tag (TYPE_BASECLASS (type, i)); + name = TYPE_NAME (TYPE_BASECLASS (type, i)); if (name) print_name_maybe_canonical (name, flags, stream); else @@ -252,6 +270,7 @@ cp_type_print_method_args (struct type *mtype, const char *prefix, const char *varstring, int staticp, struct ui_file *stream, + enum language language, const struct type_print_options *flags) { struct field *args = TYPE_FIELDS (mtype); @@ -292,7 +311,7 @@ } else if (varargs) fprintf_filtered (stream, "..."); - else if (current_language->la_language == language_cplus) + else if (language == language_cplus) fprintf_filtered (stream, "void"); fprintf_filtered (stream, ")"); @@ -339,6 +358,7 @@ struct ui_file *stream, int show, int passed_a_ptr, int need_post_space, + enum language language, const struct type_print_options *flags, struct print_offset_data *podata) { @@ -356,40 +376,45 @@ { case TYPE_CODE_PTR: c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type), - stream, show, 1, 1, flags, podata); + stream, show, 1, 1, language, flags, + podata); fprintf_filtered (stream, "*"); c_type_print_modifier (type, stream, 1, need_post_space); break; case TYPE_CODE_MEMBERPTR: c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type), - stream, show, 0, 0, flags, podata); - name = type_name_no_tag (TYPE_SELF_TYPE (type)); + stream, show, 0, 0, language, flags, podata); + name = TYPE_NAME (TYPE_SELF_TYPE (type)); if (name) print_name_maybe_canonical (name, flags, stream); else c_type_print_base_1 (TYPE_SELF_TYPE (type), - stream, -1, passed_a_ptr, flags, podata); + stream, -1, passed_a_ptr, language, flags, + podata); fprintf_filtered (stream, "::*"); break; case TYPE_CODE_METHODPTR: c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type), - stream, show, 0, 0, flags, podata); + stream, show, 0, 0, language, flags, + podata); fprintf_filtered (stream, "("); - name = type_name_no_tag (TYPE_SELF_TYPE (type)); + name = TYPE_NAME (TYPE_SELF_TYPE (type)); if (name) print_name_maybe_canonical (name, flags, stream); else c_type_print_base_1 (TYPE_SELF_TYPE (type), - stream, -1, passed_a_ptr, flags, podata); + stream, -1, passed_a_ptr, language, flags, + podata); fprintf_filtered (stream, "::*"); break; case TYPE_CODE_REF: case TYPE_CODE_RVALUE_REF: c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type), - stream, show, 1, 0, flags, podata); + stream, show, 1, 0, language, flags, + podata); fprintf_filtered (stream, TYPE_CODE(type) == TYPE_CODE_REF ? "&" : "&&"); c_type_print_modifier (type, stream, 1, need_post_space); break; @@ -397,22 +422,24 @@ case TYPE_CODE_METHOD: case TYPE_CODE_FUNC: c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type), - stream, show, 0, 0, flags, podata); + stream, show, 0, 0, language, flags, + podata); if (passed_a_ptr) fprintf_filtered (stream, "("); break; case TYPE_CODE_ARRAY: c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type), - stream, show, 0, 0, flags, podata); + stream, show, 0, 0, language, flags, + podata); if (passed_a_ptr) fprintf_filtered (stream, "("); break; case TYPE_CODE_TYPEDEF: c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type), - stream, show, passed_a_ptr, 0, flags, - podata); + stream, show, passed_a_ptr, 0, + language, flags, podata); break; case TYPE_CODE_UNDEF: @@ -551,7 +578,7 @@ param_type = make_cv_type (0, 0, param_type, NULL); } - c_print_type (param_type, "", stream, -1, 0, flags); + c_print_type (param_type, "", stream, -1, 0, language, flags); printed_any = 1; } @@ -715,11 +742,12 @@ needed after the variable name (to describe its type). Args work like c_type_print_varspec_prefix. */ -void +static void c_type_print_varspec_suffix (struct type *type, struct ui_file *stream, int show, int passed_a_ptr, int demangled_args, + enum language language, const struct type_print_options *flags) { if (type == 0) @@ -752,26 +780,26 @@ fprintf_filtered (stream, (is_vector ? ")))" : "]")); c_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, - show, 0, 0, flags); + show, 0, 0, language, flags); } break; case TYPE_CODE_MEMBERPTR: c_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, - show, 0, 0, flags); + show, 0, 0, language, flags); break; case TYPE_CODE_METHODPTR: fprintf_filtered (stream, ")"); c_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, - show, 0, 0, flags); + show, 0, 0, language, flags); break; case TYPE_CODE_PTR: case TYPE_CODE_REF: case TYPE_CODE_RVALUE_REF: c_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, - show, 1, 0, flags); + show, 1, 0, language, flags); break; case TYPE_CODE_METHOD: @@ -779,15 +807,14 @@ if (passed_a_ptr) fprintf_filtered (stream, ")"); if (!demangled_args) - c_type_print_args (type, stream, 0, current_language->la_language, - flags); + c_type_print_args (type, stream, 0, language, flags); c_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, - show, passed_a_ptr, 0, flags); + show, passed_a_ptr, 0, language, flags); break; case TYPE_CODE_TYPEDEF: c_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, - show, passed_a_ptr, 0, flags); + show, passed_a_ptr, 0, language, flags); break; case TYPE_CODE_UNDEF: @@ -878,7 +905,7 @@ if (!flags->print_offsets) print_spaces_filtered (level, stream); else - print_spaces_filtered (level + OFFSET_SPC_LEN, stream); + print_spaces_filtered (level + print_offset_data::indentation, stream); } /* Output an access specifier to STREAM, if needed. LAST_ACCESS is the @@ -921,112 +948,6 @@ return last_access; } -/* Print information about field at index FIELD_IDX of the union type - TYPE. Since union fields don't have the concept of offsets, we - just print their sizes. - - The output is strongly based on pahole(1). */ - -static void -c_print_type_union_field_offset (struct type *type, unsigned int field_idx, - struct ui_file *stream) -{ - struct type *ftype = check_typedef (TYPE_FIELD_TYPE (type, field_idx)); - - fprintf_filtered (stream, "/* %4u */", TYPE_LENGTH (ftype)); -} - -/* Print information about field at index FIELD_IDX of the struct type - TYPE. - - PODATA->END_BITPOS is the one-past-the-end bit position of the - previous field (where we expect this field to be if there is no - hole). At the end, ENDPOS is updated to the one-past-the-end bit - position of the current field. - - PODATA->OFFSET_BITPOS is the offset value we carry over when we are - printing a struct that is inside another struct; this is useful so - that the offset is constantly incremented (if we didn't carry it - over, the offset would be reset to zero when printing the inner - struct). - - The output is strongly based on pahole(1). */ - -static void -c_print_type_struct_field_offset (struct type *type, unsigned int field_idx, - struct ui_file *stream, - struct print_offset_data *podata) -{ - struct type *ftype = check_typedef (TYPE_FIELD_TYPE (type, field_idx)); - unsigned int bitpos = TYPE_FIELD_BITPOS (type, field_idx); - unsigned int fieldsize_byte = TYPE_LENGTH (ftype); - unsigned int fieldsize_bit = fieldsize_byte * TARGET_CHAR_BIT; - - /* We check for PODATA->END_BITPOS > 0 because there is a specific - scenario when PODATA->END_BITPOS can be zero and BITPOS can be > - 0: when we are dealing with a struct/class with a virtual method. - Because of the vtable, the first field of the struct/class will - have an offset of sizeof (void *) (the size of the vtable). If - we do not check for PODATA->END_BITPOS > 0 here, GDB will report - a hole before the first field, which is not accurate. */ - if (podata->end_bitpos > 0 && podata->end_bitpos < bitpos) - { - /* If PODATA->END_BITPOS is smaller than the current type's - bitpos, it means there's a hole in the struct, so we report - it here. */ - unsigned int hole = bitpos - podata->end_bitpos; - unsigned int hole_byte = hole / TARGET_CHAR_BIT; - unsigned int hole_bit = hole % TARGET_CHAR_BIT; - - if (hole_bit > 0) - fprintf_filtered (stream, "/* XXX %2u-bit hole */\n", hole_bit); - - if (hole_byte > 0) - fprintf_filtered (stream, "/* XXX %2u-byte hole */\n", hole_byte); - } - - if (TYPE_FIELD_PACKED (type, field_idx)) - { - /* We're dealing with a bitfield. Print how many bits are left - to be used. */ - unsigned int bitsize = TYPE_FIELD_BITSIZE (type, field_idx); - /* The bitpos relative to the beginning of our container - field. */ - unsigned int relative_bitpos; - - /* The following was copied from - value.c:value_primitive_field. */ - if ((bitpos % fieldsize_bit) + bitsize <= fieldsize_bit) - relative_bitpos = bitpos % fieldsize_bit; - else - relative_bitpos = bitpos % TARGET_CHAR_BIT; - - /* This is the exact offset (in bits) of this bitfield. */ - unsigned int bit_offset - = (bitpos - relative_bitpos) + podata->offset_bitpos; - - /* The position of the field, relative to the beginning of the - struct, and how many bits are left to be used in this - container. */ - fprintf_filtered (stream, "/* %4u:%2u", bit_offset / TARGET_CHAR_BIT, - fieldsize_bit - (relative_bitpos + bitsize)); - fieldsize_bit = bitsize; - } - else - { - /* The position of the field, relative to the beginning of the - struct. */ - fprintf_filtered (stream, "/* %4u", - (bitpos + podata->offset_bitpos) / TARGET_CHAR_BIT); - - fprintf_filtered (stream, " "); - } - - fprintf_filtered (stream, " | %4u */", fieldsize_byte); - - podata->end_bitpos = bitpos + fieldsize_bit; -} - /* Return true if an access label (i.e., "public:", "private:", "protected:") needs to be printed for TYPE. */ @@ -1087,6 +1008,7 @@ const char *varstring, struct ui_file *stream, int show, int level, + enum language language, struct type_print_options *flags, struct print_offset_data *podata) { @@ -1095,7 +1017,8 @@ /* Temporarily disable print_offsets, because it would mess with indentation. */ flags->print_offsets = 0; - c_print_type_1 (type, varstring, stream, show, level, flags, podata); + c_print_type_1 (type, varstring, stream, show, level, language, flags, + podata); flags->print_offsets = old_po; } @@ -1105,25 +1028,23 @@ static void c_type_print_base_struct_union (struct type *type, struct ui_file *stream, int show, int level, + enum language language, const struct type_print_options *flags, struct print_offset_data *podata) { struct type_print_options local_flags = *flags; - struct type_print_options semi_local_flags = *flags; - struct cleanup *local_cleanups = make_cleanup (null_cleanup, NULL); - local_flags.local_typedefs = NULL; - semi_local_flags.local_typedefs = NULL; + std::unique_ptr hash_holder; if (!flags->raw) { if (flags->local_typedefs) local_flags.local_typedefs - = copy_typedef_hash (flags->local_typedefs); + = new typedef_hash_table (*flags->local_typedefs); else - local_flags.local_typedefs = create_typedef_hash (); + local_flags.local_typedefs = new typedef_hash_table (); - make_cleanup_free_typedef_hash (local_flags.local_typedefs); + hash_holder.reset (local_flags.local_typedefs); } c_type_print_modifier (type, stream, 0, 1); @@ -1138,13 +1059,13 @@ spurious "{unnamed struct}"/"{unnamed union}"/"{unnamed enum}" tag for unnamed struct/union/enum's, which we don't want to print. */ - if (TYPE_TAG_NAME (type) != NULL - && !startswith (TYPE_TAG_NAME (type), "{unnamed")) + if (TYPE_NAME (type) != NULL + && !startswith (TYPE_NAME (type), "{unnamed")) { /* When printing the tag name, we are still effectively printing in the outer context, hence the use of FLAGS here. */ - print_name_maybe_canonical (TYPE_TAG_NAME (type), flags, stream); + print_name_maybe_canonical (TYPE_NAME (type), flags, stream); if (show > 0) fputs_filtered (" ", stream); } @@ -1153,10 +1074,10 @@ { /* If we just printed a tag name, no need to print anything else. */ - if (TYPE_TAG_NAME (type) == NULL) + if (TYPE_NAME (type) == NULL) fprintf_filtered (stream, "{...}"); } - else if (show > 0 || TYPE_TAG_NAME (type) == NULL) + else if (show > 0 || TYPE_NAME (type) == NULL) { struct type *basetype; int vptr_fieldno; @@ -1164,18 +1085,25 @@ c_type_print_template_args (&local_flags, type, stream); /* Add in template parameters when printing derivation info. */ - add_template_parameters (local_flags.local_typedefs, type); + if (local_flags.local_typedefs != NULL) + local_flags.local_typedefs->add_template_parameters (type); cp_type_print_derivation_info (stream, type, &local_flags); /* This holds just the global typedefs and the template parameters. */ - semi_local_flags.local_typedefs - = copy_typedef_hash (local_flags.local_typedefs); - if (semi_local_flags.local_typedefs) - make_cleanup_free_typedef_hash (semi_local_flags.local_typedefs); + struct type_print_options semi_local_flags = *flags; + semi_local_flags.local_typedefs = NULL; - /* Now add in the local typedefs. */ - recursively_update_typedef_hash (local_flags.local_typedefs, type); + std::unique_ptr semi_holder; + if (local_flags.local_typedefs != nullptr) + { + semi_local_flags.local_typedefs + = new typedef_hash_table (*local_flags.local_typedefs); + semi_holder.reset (semi_local_flags.local_typedefs); + + /* Now add in the local typedefs. */ + local_flags.local_typedefs->recursively_update (type); + } fprintf_filtered (stream, "{\n"); @@ -1232,20 +1160,7 @@ bool is_static = field_is_static (&TYPE_FIELD (type, i)); if (flags->print_offsets) - { - if (!is_static) - { - if (TYPE_CODE (type) == TYPE_CODE_STRUCT) - { - c_print_type_struct_field_offset - (type, i, stream, podata); - } - else if (TYPE_CODE (type) == TYPE_CODE_UNION) - c_print_type_union_field_offset (type, i, stream); - } - else - print_spaces_filtered (OFFSET_SPC_LEN, stream); - } + podata->update (type, i, stream); print_spaces_filtered (level + 4, stream); if (is_static) @@ -1253,7 +1168,7 @@ int newshow = show - 1; - if (flags->print_offsets + if (!is_static && flags->print_offsets && (TYPE_CODE (TYPE_FIELD_TYPE (type, i)) == TYPE_CODE_STRUCT || TYPE_CODE (TYPE_FIELD_TYPE (type, i)) == TYPE_CODE_UNION)) { @@ -1281,7 +1196,7 @@ c_print_type_1 (TYPE_FIELD_TYPE (type, i), TYPE_FIELD_NAME (type, i), stream, newshow, level + 4, - &local_flags, &local_podata); + language, &local_flags, &local_podata); if (!is_static && TYPE_FIELD_PACKED (type, i)) { @@ -1322,7 +1237,7 @@ struct fn_field *f = TYPE_FN_FIELDLIST1 (type, i); int j, len2 = TYPE_FN_FIELDLIST_LENGTH (type, i); const char *method_name = TYPE_FN_FIELDLIST_NAME (type, i); - const char *name = type_name_no_tag (type); + const char *name = TYPE_NAME (type); int is_constructor = name && strcmp (method_name, name) == 0; @@ -1370,7 +1285,7 @@ { c_print_type_no_offsets (TYPE_TARGET_TYPE (TYPE_FN_FIELD_TYPE (f, j)), - "", stream, -1, 0, &local_flags, podata); + "", stream, -1, 0, language, &local_flags, podata); fputs_filtered (" ", stream); } @@ -1402,7 +1317,8 @@ "", method_name, staticp, - stream, &local_flags); + stream, language, + &local_flags); } else fprintf_filtered (stream, @@ -1456,7 +1372,7 @@ flags); c_print_type_no_offsets (TYPE_NESTED_TYPES_FIELD_TYPE (type, i), "", stream, show, level + 4, - &semi_local_flags, podata); + language, &semi_local_flags, podata); fprintf_filtered (stream, ";\n"); } } @@ -1494,7 +1410,7 @@ c_print_type_no_offsets (target, TYPE_TYPEDEF_FIELD_NAME (type, i), stream, show - 1, level + 4, - &semi_local_flags, podata); + language, &semi_local_flags, podata); fprintf_filtered (stream, ";\n"); } } @@ -1502,24 +1418,15 @@ if (flags->print_offsets) { if (show > 0) - { - fputs_filtered ("\n", stream); - print_spaces_filtered_with_print_options (level + 4, - stream, - flags); - fprintf_filtered (stream, "/* total size (bytes): %4u */\n", - TYPE_LENGTH (type)); - } + podata->finish (type, level, stream); - print_spaces_filtered (OFFSET_SPC_LEN, stream); + print_spaces_filtered (print_offset_data::indentation, stream); if (level == 0) print_spaces_filtered (2, stream); } fprintfi_filtered (level, stream, "}"); } - - do_cleanups (local_cleanups); } /* Print the name of the type (or the ultimate pointer target, @@ -1543,6 +1450,7 @@ static void c_type_print_base_1 (struct type *type, struct ui_file *stream, int show, int level, + enum language language, const struct type_print_options *flags, struct print_offset_data *podata) { @@ -1559,15 +1467,33 @@ /* When SHOW is zero or less, and there is a valid type name, then always just print the type name directly from the type. */ - /* If we have "typedef struct foo {. . .} bar;" do we want to print - it as "struct foo" or as "bar"? Pick the latter, because C++ - folk tend to expect things like "class5 *foo" rather than "struct - class5 *foo". */ if (show <= 0 && TYPE_NAME (type) != NULL) { c_type_print_modifier (type, stream, 0, 1); + + /* If we have "typedef struct foo {. . .} bar;" do we want to + print it as "struct foo" or as "bar"? Pick the latter for + C++, because C++ folk tend to expect things like "class5 + *foo" rather than "struct class5 *foo". We rather + arbitrarily choose to make language_minimal work in a C-like + way. */ + if (language == language_c || language == language_minimal) + { + if (TYPE_CODE (type) == TYPE_CODE_UNION) + fprintf_filtered (stream, "union "); + else if (TYPE_CODE (type) == TYPE_CODE_STRUCT) + { + if (TYPE_DECLARED_CLASS (type)) + fprintf_filtered (stream, "class "); + else + fprintf_filtered (stream, "struct "); + } + else if (TYPE_CODE (type) == TYPE_CODE_ENUM) + fprintf_filtered (stream, "enum "); + } + print_name_maybe_canonical (TYPE_NAME (type), flags, stream); return; } @@ -1590,7 +1516,7 @@ type_print_unknown_return_type (stream); else c_type_print_base_1 (TYPE_TARGET_TYPE (type), - stream, show, level, flags, podata); + stream, show, level, language, flags, podata); break; case TYPE_CODE_ARRAY: case TYPE_CODE_PTR: @@ -1599,13 +1525,13 @@ case TYPE_CODE_RVALUE_REF: case TYPE_CODE_METHODPTR: c_type_print_base_1 (TYPE_TARGET_TYPE (type), - stream, show, level, flags, podata); + stream, show, level, language, flags, podata); break; case TYPE_CODE_STRUCT: case TYPE_CODE_UNION: - c_type_print_base_struct_union (type, stream, show, level, flags, - podata); + c_type_print_base_struct_union (type, stream, show, level, + language, flags, podata); break; case TYPE_CODE_ENUM: @@ -1618,10 +1544,10 @@ "{unnamed struct}"/"{unnamed union}"/"{unnamed enum}" tag for unnamed struct/union/enum's, which we don't want to print. */ - if (TYPE_TAG_NAME (type) != NULL - && !startswith (TYPE_TAG_NAME (type), "{unnamed")) + if (TYPE_NAME (type) != NULL + && !startswith (TYPE_NAME (type), "{unnamed")) { - print_name_maybe_canonical (TYPE_TAG_NAME (type), flags, stream); + print_name_maybe_canonical (TYPE_NAME (type), flags, stream); if (show > 0) fputs_filtered (" ", stream); } @@ -1631,10 +1557,10 @@ { /* If we just printed a tag name, no need to print anything else. */ - if (TYPE_TAG_NAME (type) == NULL) + if (TYPE_NAME (type) == NULL) fprintf_filtered (stream, "{...}"); } - else if (show > 0 || TYPE_TAG_NAME (type) == NULL) + else if (show > 0 || TYPE_NAME (type) == NULL) { LONGEST lastval = 0; @@ -1646,8 +1572,7 @@ print too much than too little; but conversely not to print something egregiously outside the current language's syntax. */ - if (current_language->la_language == language_cplus - && TYPE_TARGET_TYPE (type) != NULL) + if (language == language_cplus && TYPE_TARGET_TYPE (type) != NULL) { struct type *underlying = check_typedef (TYPE_TARGET_TYPE (type)); @@ -1708,7 +1633,7 @@ c_print_type_1 (TYPE_FIELD_TYPE (type, i), TYPE_FIELD_NAME (type, i), stream, show, level + 4, - &local_flags, podata); + language, &local_flags, podata); fprintf_filtered (stream, " @%s", plongest (TYPE_FIELD_BITPOS (type, i))); if (TYPE_FIELD_BITSIZE (type, i) > 1) @@ -1744,7 +1669,7 @@ case TYPE_CODE_NAMESPACE: fputs_filtered ("namespace ", stream); - fputs_filtered (TYPE_TAG_NAME (type), stream); + fputs_filtered (TYPE_NAME (type), stream); break; default: @@ -1777,5 +1702,6 @@ { struct print_offset_data podata; - c_type_print_base_1 (type, stream, show, level, flags, &podata); + c_type_print_base_1 (type, stream, show, level, + current_language->la_language, flags, &podata); } diff -Nru gdb-8.1/gdb/c-varobj.c gdb-8.2/gdb/c-varobj.c --- gdb-8.1/gdb/c-varobj.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/c-varobj.c 2018-09-05 07:27:13.000000000 +0000 @@ -145,8 +145,7 @@ /* Anonymous unions and structs are also not path_expr parents. */ if ((TYPE_CODE (type) == TYPE_CODE_STRUCT || TYPE_CODE (type) == TYPE_CODE_UNION) - && TYPE_NAME (type) == NULL - && TYPE_TAG_NAME (type) == NULL) + && TYPE_NAME (type) == NULL) { const struct varobj *parent = var->parent; @@ -286,7 +285,7 @@ std::string *cname, struct value **cvalue, struct type **ctype, std::string *cfull_expression) { - struct value *value = parent->value; + struct value *value = parent->value.get (); struct type *type = varobj_get_value_type (parent); std::string parent_expression; int was_ptr; @@ -513,21 +512,22 @@ } else { - if (var->not_fetched && value_lazy (var->value)) + if (var->not_fetched && value_lazy (var->value.get ())) /* Frozen variable and no value yet. We don't implicitly fetch the value. MI response will use empty string for the value, which is OK. */ return std::string (); gdb_assert (varobj_value_is_changeable_p (var)); - gdb_assert (!value_lazy (var->value)); + gdb_assert (!value_lazy (var->value.get ())); /* If the specified format is the current one, we can reuse print_value. */ if (format == var->format) return var->print_value; else - return varobj_value_get_print_value (var->value, format, var); + return varobj_value_get_print_value (var->value.get (), format, + var); } } } @@ -579,7 +579,7 @@ /* It is necessary to access a real type (via RTTI). */ if (opts.objectprint) { - value = var->value; + value = var->value.get (); lookup_actual_type = (TYPE_IS_REFERENCE (var->type) || TYPE_CODE (var->type) == TYPE_CODE_PTR); } @@ -616,7 +616,7 @@ { const struct varobj *parent = var->parent; - value = parent->value; + value = parent->value.get (); lookup_actual_type = (TYPE_IS_REFERENCE (parent->type) || TYPE_CODE (parent->type) == TYPE_CODE_PTR); } @@ -724,7 +724,7 @@ if (opts.objectprint) lookup_actual_type = (TYPE_IS_REFERENCE (var->type) || TYPE_CODE (var->type) == TYPE_CODE_PTR); - value = var->value; + value = var->value.get (); type = varobj_get_value_type (var); if (cfull_expression) parent_expression diff -Nru gdb-8.1/gdb/darwin-nat.c gdb-8.2/gdb/darwin-nat.c --- gdb-8.1/gdb/darwin-nat.c 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/gdb/darwin-nat.c 2018-09-05 07:44:28.000000000 +0000 @@ -83,36 +83,12 @@ #define PTRACE(CMD, PID, ADDR, SIG) \ darwin_ptrace(#CMD, CMD, (PID), (ADDR), (SIG)) -static void darwin_interrupt (struct target_ops *self, ptid_t); - -static void darwin_resume_to (struct target_ops *ops, ptid_t ptid, int step, - enum gdb_signal signal); -static void darwin_resume (ptid_t ptid, int step, - enum gdb_signal signal); - -static ptid_t darwin_wait_to (struct target_ops *ops, ptid_t ptid, - struct target_waitstatus *status, int options); static ptid_t darwin_wait (ptid_t ptid, struct target_waitstatus *status); -static void darwin_mourn_inferior (struct target_ops *ops); - -static void darwin_kill_inferior (struct target_ops *ops); - static void darwin_ptrace_me (void); static void darwin_ptrace_him (int pid); -static void darwin_create_inferior (struct target_ops *ops, - const char *exec_file, - const std::string &allargs, - char **env, int from_tty); - -static void darwin_files_info (struct target_ops *ops); - -static const char *darwin_pid_to_str (struct target_ops *ops, ptid_t tpid); - -static int darwin_thread_alive (struct target_ops *ops, ptid_t tpid); - static void darwin_encode_reply (mig_reply_error_t *reply, mach_msg_header_t *hdr, integer_t code); @@ -121,9 +97,6 @@ static void darwin_setup_exceptions (struct inferior *inf); static void darwin_deallocate_threads (struct inferior *inf); -/* Target operations for Darwin. */ -static struct target_ops *darwin_ops; - /* Task identifier of gdb. */ static task_t gdb_task; @@ -369,7 +342,7 @@ pti->msg_state = DARWIN_RUNNING; /* Add the new thread. */ - add_thread_with_info (ptid_build (inf->pid, 0, new_id), pti); + add_thread_with_info (ptid_t (inf->pid, 0, new_id), pti); new_thread_vec.push_back (pti); new_ix++; continue; @@ -377,7 +350,9 @@ if (old_ix < old_nbr && (new_ix == new_nbr || new_id > old_id)) { /* A thread was removed. */ - delete_thread (ptid_build (inf->pid, 0, old_id)); + struct thread_info *thr + = find_thread_ptid (ptid_t (inf->pid, 0, old_id)); + delete_thread (thr); kret = mach_port_deallocate (gdb_task, old_id); MACH_CHECK_ERROR (kret); old_ix++; @@ -942,8 +917,8 @@ } } -static void -darwin_resume (ptid_t ptid, int step, enum gdb_signal signal) +void +darwin_nat_target::resume (ptid_t ptid, int step, enum gdb_signal signal) { struct target_waitstatus status; int pid; @@ -955,7 +930,7 @@ inferior_debug (2, _("darwin_resume: pid=%d, tid=0x%lx, step=%d, signal=%d\n"), - ptid_get_pid (ptid), ptid_get_tid (ptid), step, signal); + ptid.pid (), ptid.tid (), step, signal); if (signal == GDB_SIGNAL_0) nsignal = 0; @@ -967,7 +942,7 @@ ptid = inferior_ptid; /* minus_one_ptid is RESUME_ALL. */ - if (ptid_equal (ptid, minus_one_ptid)) + if (ptid == minus_one_ptid) { struct resume_inferior_threads_param param; @@ -982,7 +957,7 @@ else { struct inferior *inf = find_inferior_ptid (ptid); - long tid = ptid_get_tid (ptid); + long tid = ptid.tid (); /* Stop the inferior (should be useless). */ darwin_suspend_inferior (inf); @@ -1007,13 +982,6 @@ } } -static void -darwin_resume_to (struct target_ops *ops, ptid_t ptid, int step, - enum gdb_signal signal) -{ - return darwin_resume (ptid, step, signal); -} - static ptid_t darwin_decode_message (mach_msg_header_t *hdr, darwin_thread_t **pthread, @@ -1106,7 +1074,7 @@ break; } - return ptid_build (inf->pid, 0, thread->gdb_port); + return ptid_t (inf->pid, 0, thread->gdb_port); } else if (hdr->msgh_id == 0x48) { @@ -1166,7 +1134,7 @@ /* Looks necessary on Leopard and harmless... */ wait4 (inf->pid, &wstatus, 0, NULL); - inferior_ptid = ptid_build (inf->pid, 0, 0); + inferior_ptid = ptid_t (inf->pid, 0, 0); return inferior_ptid; } else @@ -1174,7 +1142,7 @@ inferior_debug (4, _("darwin_wait: pid=%d\n"), inf->pid); status->kind = TARGET_WAITKIND_EXITED; status->value.integer = 0; /* Don't know. */ - return ptid_build (inf->pid, 0, 0); + return ptid_t (inf->pid, 0, 0); } } } @@ -1204,7 +1172,7 @@ if (breakpoint_inserted_here_p (regcache->aspace (), pc)) { inferior_debug (4, "cancel_breakpoint for thread 0x%lx\n", - (unsigned long) ptid_get_tid (ptid)); + (unsigned long) ptid.tid ()); /* Back up the PC if necessary. */ if (gdbarch_decr_pc_after_break (gdbarch)) @@ -1231,7 +1199,7 @@ inferior_debug (2, _("darwin_wait: waiting for a message pid=%d thread=%lx\n"), - ptid_get_pid (ptid), ptid_get_tid (ptid)); + ptid.pid (), ptid.tid ()); /* Handle fake stop events at first. */ if (darwin_inf_fake_stop != NULL) @@ -1245,7 +1213,7 @@ status->value.sig = GDB_SIGNAL_TRAP; thread = priv->threads[0]; thread->msg_state = DARWIN_STOPPED; - return ptid_build (inf->pid, 0, thread->gdb_port); + return ptid_t (inf->pid, 0, thread->gdb_port); } do @@ -1276,7 +1244,7 @@ darwin_dump_message (hdr, darwin_debug_flag > 11); res = darwin_decode_message (hdr, &thread, &inf, status); - if (ptid_equal (res, minus_one_ptid)) + if (res == minus_one_ptid) continue; /* Early return in case an inferior has exited. */ @@ -1317,7 +1285,7 @@ && thread->event.ex_type == EXC_BREAKPOINT) { if (thread->single_step - || cancel_breakpoint (ptid_build (inf->pid, 0, thread->gdb_port))) + || cancel_breakpoint (ptid_t (inf->pid, 0, thread->gdb_port))) { gdb_assert (thread->msg_state == DARWIN_MESSAGE); darwin_send_reply (inf, thread); @@ -1334,22 +1302,22 @@ return res; } -static ptid_t -darwin_wait_to (struct target_ops *ops, - ptid_t ptid, struct target_waitstatus *status, int options) +ptid_t +darwin_nat_target::wait (ptid_t ptid, struct target_waitstatus *status, + int options) { return darwin_wait (ptid, status); } -static void -darwin_interrupt (struct target_ops *self, ptid_t t) +void +darwin_nat_target::interrupt () { struct inferior *inf = current_inferior (); darwin_inferior *priv = get_darwin_inferior (inf); /* FIXME: handle in no_ptrace mode. */ gdb_assert (!priv->no_ptrace); - kill (inf->pid, SIGINT); + ::kill (inf->pid, SIGINT); } /* Deallocate threads port and vector. */ @@ -1368,8 +1336,8 @@ priv->threads.clear (); } -static void -darwin_mourn_inferior (struct target_ops *ops) +void +darwin_nat_target::mourn_inferior () { struct inferior *inf = current_inferior (); darwin_inferior *priv = get_darwin_inferior (inf); @@ -1414,7 +1382,7 @@ inf->priv = NULL; - inf_child_mourn_inferior (ops); + inf_child_target::mourn_inferior (); } static void @@ -1538,8 +1506,8 @@ kret); } -static void -darwin_kill_inferior (struct target_ops *ops) +void +darwin_nat_target::kill () { struct inferior *inf = current_inferior (); darwin_inferior *priv = get_darwin_inferior (inf); @@ -1549,7 +1517,7 @@ int status; int res; - if (ptid_equal (inferior_ptid, null_ptid)) + if (inferior_ptid == null_ptid) return; gdb_assert (inf != NULL); @@ -1559,7 +1527,7 @@ darwin_reply_to_all_pending_messages (inf); - res = kill (inf->pid, 9); + res = ::kill (inf->pid, 9); if (res == 0) { @@ -1615,78 +1583,94 @@ darwin_inferior *priv = new darwin_inferior; inf->priv.reset (priv); - kret = task_for_pid (gdb_task, inf->pid, &priv->task); - if (kret != KERN_SUCCESS) + TRY { - int status; - - if (!inf->attach_flag) + kret = task_for_pid (gdb_task, inf->pid, &priv->task); + if (kret != KERN_SUCCESS) { - kill (inf->pid, 9); - waitpid (inf->pid, &status, 0); - } + int status; - error (_("Unable to find Mach task port for process-id %d: %s (0x%lx).\n" + if (!inf->attach_flag) + { + kill (inf->pid, 9); + waitpid (inf->pid, &status, 0); + } + + error + (_("Unable to find Mach task port for process-id %d: %s (0x%lx).\n" " (please check gdb is codesigned - see taskgated(8))"), - inf->pid, mach_error_string (kret), (unsigned long) kret); - } + inf->pid, mach_error_string (kret), (unsigned long) kret); + } - inferior_debug (2, _("inferior task: 0x%x, pid: %d\n"), - priv->task, inf->pid); + inferior_debug (2, _("inferior task: 0x%x, pid: %d\n"), + priv->task, inf->pid); - if (darwin_ex_port == MACH_PORT_NULL) - { - /* Create a port to get exceptions. */ - kret = mach_port_allocate (gdb_task, MACH_PORT_RIGHT_RECEIVE, - &darwin_ex_port); - if (kret != KERN_SUCCESS) - error (_("Unable to create exception port, mach_port_allocate " - "returned: %d"), - kret); + if (darwin_ex_port == MACH_PORT_NULL) + { + /* Create a port to get exceptions. */ + kret = mach_port_allocate (gdb_task, MACH_PORT_RIGHT_RECEIVE, + &darwin_ex_port); + if (kret != KERN_SUCCESS) + error (_("Unable to create exception port, mach_port_allocate " + "returned: %d"), + kret); + + kret = mach_port_insert_right (gdb_task, darwin_ex_port, + darwin_ex_port, + MACH_MSG_TYPE_MAKE_SEND); + if (kret != KERN_SUCCESS) + error (_("Unable to create exception port, mach_port_insert_right " + "returned: %d"), + kret); + + /* Create a port set and put ex_port in it. */ + kret = mach_port_allocate (gdb_task, MACH_PORT_RIGHT_PORT_SET, + &darwin_port_set); + if (kret != KERN_SUCCESS) + error (_("Unable to create port set, mach_port_allocate " + "returned: %d"), + kret); - kret = mach_port_insert_right (gdb_task, darwin_ex_port, darwin_ex_port, - MACH_MSG_TYPE_MAKE_SEND); - if (kret != KERN_SUCCESS) - error (_("Unable to create exception port, mach_port_insert_right " - "returned: %d"), - kret); + kret = mach_port_move_member (gdb_task, darwin_ex_port, + darwin_port_set); + if (kret != KERN_SUCCESS) + error (_("Unable to move exception port into new port set, " + "mach_port_move_member\n" + "returned: %d"), + kret); + } - /* Create a port set and put ex_port in it. */ - kret = mach_port_allocate (gdb_task, MACH_PORT_RIGHT_PORT_SET, - &darwin_port_set); + /* Create a port to be notified when the child task terminates. */ + kret = mach_port_allocate (gdb_task, MACH_PORT_RIGHT_RECEIVE, + &priv->notify_port); if (kret != KERN_SUCCESS) - error (_("Unable to create port set, mach_port_allocate " + error (_("Unable to create notification port, mach_port_allocate " "returned: %d"), kret); - kret = mach_port_move_member (gdb_task, darwin_ex_port, darwin_port_set); + kret = mach_port_move_member (gdb_task, + priv->notify_port, darwin_port_set); if (kret != KERN_SUCCESS) - error (_("Unable to move exception port into new port set, " + error (_("Unable to move notification port into new port set, " "mach_port_move_member\n" "returned: %d"), kret); - } - /* Create a port to be notified when the child task terminates. */ - kret = mach_port_allocate (gdb_task, MACH_PORT_RIGHT_RECEIVE, - &priv->notify_port); - if (kret != KERN_SUCCESS) - error (_("Unable to create notification port, mach_port_allocate " - "returned: %d"), - kret); + darwin_setup_request_notification (inf); - kret = mach_port_move_member (gdb_task, - priv->notify_port, darwin_port_set); - if (kret != KERN_SUCCESS) - error (_("Unable to move notification port into new port set, " - "mach_port_move_member\n" - "returned: %d"), - kret); - - darwin_setup_request_notification (inf); + darwin_setup_exceptions (inf); + } + CATCH (ex, RETURN_MASK_ALL) + { + inf->pid = 0; + inf->priv.reset (); + inferior_ptid = null_ptid; - darwin_setup_exceptions (inf); + throw_exception (ex); + } + END_CATCH + target_ops *darwin_ops = get_native_target (); if (!target_is_pushed (darwin_ops)) push_target (darwin_ops); } @@ -1835,11 +1819,10 @@ posix_spawnp (NULL, argv[0], NULL, &attr, argv, env); } -static void -darwin_create_inferior (struct target_ops *ops, - const char *exec_file, - const std::string &allargs, - char **env, int from_tty) +void +darwin_nat_target::create_inferior (const char *exec_file, + const std::string &allargs, + char **env, int from_tty) { /* Do the hard work. */ fork_inferior (exec_file, allargs, env, darwin_ptrace_me, @@ -1877,8 +1860,8 @@ /* Attach to process PID, then initialize for debugging it and wait for the trace-trap that results from attaching. */ -static void -darwin_attach (struct target_ops *ops, const char *args, int from_tty) +void +darwin_nat_target::attach (const char *args, int from_tty) { pid_t pid; pid_t pid2; @@ -1898,19 +1881,19 @@ if (exec_file) printf_unfiltered (_("Attaching to program: %s, %s\n"), exec_file, - target_pid_to_str (pid_to_ptid (pid))); + target_pid_to_str (ptid_t (pid))); else printf_unfiltered (_("Attaching to %s\n"), - target_pid_to_str (pid_to_ptid (pid))); + target_pid_to_str (ptid_t (pid))); gdb_flush (gdb_stdout); } - if (pid == 0 || kill (pid, 0) < 0) + if (pid == 0 || ::kill (pid, 0) < 0) error (_("Can't attach to process %d: %s (%d)"), pid, safe_strerror (errno), errno); - inferior_ptid = pid_to_ptid (pid); + inferior_ptid = ptid_t (pid); inf = current_inferior (); inferior_appeared (inf, pid); inf->attach_flag = 1; @@ -1923,7 +1906,7 @@ darwin_inferior *priv = get_darwin_inferior (inf); - darwin_check_osabi (priv, ptid_get_tid (inferior_ptid)); + darwin_check_osabi (priv, inferior_ptid.tid ()); darwin_setup_fake_stop_event (inf); @@ -1937,11 +1920,11 @@ to work, it may be necessary for the process to have been previously attached. It *might* work if the program was started via fork. */ -static void -darwin_detach (struct target_ops *ops, const char *args, int from_tty) + +void +darwin_nat_target::detach (inferior *inf, int from_tty) { - pid_t pid = ptid_get_pid (inferior_ptid); - struct inferior *inf = current_inferior (); + pid_t pid = inferior_ptid.pid (); darwin_inferior *priv = get_darwin_inferior (inf); kern_return_t kret; int res; @@ -1972,34 +1955,29 @@ if (priv->no_ptrace) darwin_resume_inferior (inf); - darwin_mourn_inferior (ops); -} - -static void -darwin_files_info (struct target_ops *ops) -{ + mourn_inferior (); } -static const char * -darwin_pid_to_str (struct target_ops *ops, ptid_t ptid) +const char * +darwin_nat_target::pid_to_str (ptid_t ptid) { static char buf[80]; - long tid = ptid_get_tid (ptid); + long tid = ptid.tid (); if (tid != 0) { snprintf (buf, sizeof (buf), _("Thread 0x%lx of process %u"), - tid, ptid_get_pid (ptid)); + tid, ptid.pid ()); return buf; } return normal_pid_to_str (ptid); } -static int -darwin_thread_alive (struct target_ops *ops, ptid_t ptid) +bool +darwin_nat_target::thread_alive (ptid_t ptid) { - return 1; + return true; } /* If RDADDR is not NULL, read inferior task's LEN bytes from ADDR and @@ -2194,11 +2172,11 @@ -static enum target_xfer_status -darwin_xfer_partial (struct target_ops *ops, - enum target_object object, const char *annex, - gdb_byte *readbuf, const gdb_byte *writebuf, - ULONGEST offset, ULONGEST len, ULONGEST *xfered_len) +enum target_xfer_status +darwin_nat_target::xfer_partial (enum target_object object, const char *annex, + gdb_byte *readbuf, const gdb_byte *writebuf, + ULONGEST offset, ULONGEST len, + ULONGEST *xfered_len) { struct inferior *inf = current_inferior (); darwin_inferior *priv = get_darwin_inferior (inf); @@ -2245,7 +2223,7 @@ set_enable_mach_exceptions (const char *args, int from_tty, struct cmd_list_element *c) { - if (!ptid_equal (inferior_ptid, null_ptid)) + if (inferior_ptid != null_ptid) { struct inferior *inf = current_inferior (); darwin_inferior *priv = get_darwin_inferior (inf); @@ -2265,8 +2243,8 @@ } } -static char * -darwin_pid_to_exec_file (struct target_ops *self, int pid) +char * +darwin_nat_target::pid_to_exec_file (int pid) { static char path[PATH_MAX]; int res; @@ -2278,8 +2256,8 @@ return NULL; } -static ptid_t -darwin_get_ada_task_ptid (struct target_ops *self, long lwp, long thread) +ptid_t +darwin_nat_target::get_ada_task_ptid (long lwp, long thread) { struct inferior *inf = current_inferior (); darwin_inferior *priv = get_darwin_inferior (inf); @@ -2294,7 +2272,7 @@ for (darwin_thread_t *t : priv->threads) { if (t->inf_port == lwp) - return ptid_build (ptid_get_pid (inferior_ptid), 0, t->gdb_port); + return ptid_t (inferior_ptid.pid (), 0, t->gdb_port); } /* Maybe the port was never extract. Do it now. */ @@ -2338,19 +2316,19 @@ names_count * sizeof (mach_port_t)); if (res) - return ptid_build (ptid_get_pid (inferior_ptid), 0, res); + return ptid_t (inferior_ptid.pid (), 0, res); else return null_ptid; } -static int -darwin_supports_multi_process (struct target_ops *self) +bool +darwin_nat_target::supports_multi_process () { - return 1; + return true; } void -_initialize_darwin_inferior (void) +_initialize_darwin_nat () { kern_return_t kret; @@ -2365,30 +2343,6 @@ MACH_CHECK_ERROR (kret); } - darwin_ops = inf_child_target (); - - darwin_ops->to_create_inferior = darwin_create_inferior; - darwin_ops->to_attach = darwin_attach; - darwin_ops->to_attach_no_wait = 0; - darwin_ops->to_detach = darwin_detach; - darwin_ops->to_files_info = darwin_files_info; - darwin_ops->to_wait = darwin_wait_to; - darwin_ops->to_mourn_inferior = darwin_mourn_inferior; - darwin_ops->to_kill = darwin_kill_inferior; - darwin_ops->to_interrupt = darwin_interrupt; - darwin_ops->to_resume = darwin_resume_to; - darwin_ops->to_thread_alive = darwin_thread_alive; - darwin_ops->to_pid_to_str = darwin_pid_to_str; - darwin_ops->to_pid_to_exec_file = darwin_pid_to_exec_file; - darwin_ops->to_load = NULL; - darwin_ops->to_xfer_partial = darwin_xfer_partial; - darwin_ops->to_supports_multi_process = darwin_supports_multi_process; - darwin_ops->to_get_ada_task_ptid = darwin_get_ada_task_ptid; - - darwin_complete_target (darwin_ops); - - add_target (darwin_ops); - inferior_debug (2, _("GDB task: 0x%lx, pid: %d\n"), (unsigned long) mach_task_self (), getpid ()); diff -Nru gdb-8.1/gdb/darwin-nat.h gdb-8.2/gdb/darwin-nat.h --- gdb-8.1/gdb/darwin-nat.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/darwin-nat.h 2018-09-05 07:27:13.000000000 +0000 @@ -17,9 +17,50 @@ #ifndef __DARWIN_NAT_H__ #define __DARWIN_NAT_H__ +#include "inf-child.h" #include #include "gdbthread.h" +/* This needs to be overridden by the platform specific nat code. */ + +class darwin_nat_target : public inf_child_target +{ + void create_inferior (const char *exec_file, + const std::string &allargs, + char **env, int from_tty) override; + + void attach (const char *, int) override; + + void detach (inferior *, int) override; + + ptid_t wait (ptid_t, struct target_waitstatus *, int) override; + + void mourn_inferior () override; + + void kill () override; + + void interrupt () override; + + void resume (ptid_t, int , enum gdb_signal) override; + + bool thread_alive (ptid_t ptid) override; + + const char *pid_to_str (ptid_t) override; + + char *pid_to_exec_file (int pid) override; + + enum target_xfer_status xfer_partial (enum target_object object, + const char *annex, + gdb_byte *readbuf, + const gdb_byte *writebuf, + ULONGEST offset, ULONGEST len, + ULONGEST *xfered_len) override; + + bool supports_multi_process () override; + + ptid_t get_ada_task_ptid (long lwp, long thread) override; +}; + /* Describe the mach exception handling state for a task. This state is saved before being changed and restored when a process is detached. For more information on these fields see task_get_exception_ports manual @@ -158,11 +199,6 @@ void darwin_set_sstep (thread_t thread, int enable); -/* This one is called in darwin-nat.c, but needs to be provided by the - platform specific nat code. It allows each platform to add platform specific - stuff to the darwin_ops. */ -extern void darwin_complete_target (struct target_ops *target); - void darwin_check_osabi (darwin_inferior *inf, thread_t thread); #endif /* __DARWIN_NAT_H__ */ diff -Nru gdb-8.1/gdb/darwin-nat-info.c gdb-8.2/gdb/darwin-nat-info.c --- gdb-8.1/gdb/darwin-nat-info.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/darwin-nat-info.c 2018-09-05 07:27:13.000000000 +0000 @@ -116,7 +116,7 @@ if (args == NULL || *args == 0) { - if (ptid_equal (inferior_ptid, null_ptid)) + if (inferior_ptid == null_ptid) printf_unfiltered (_("No inferior running\n")); darwin_inferior *priv = get_darwin_inferior (current_inferior ()); @@ -257,7 +257,7 @@ printf_unfiltered (_(" gdb-exception")); else if (port == darwin_port_set) printf_unfiltered (_(" gdb-port_set")); - else if (!ptid_equal (inferior_ptid, null_ptid)) + else if (inferior_ptid != null_ptid) { struct inferior *inf = current_inferior (); darwin_inferior *priv = get_darwin_inferior (inf); @@ -676,8 +676,7 @@ uiout->field_int ("tag", r_info.user_tag); } - if (!uiout->is_mi_like_p ()) - uiout->text ("\n"); + uiout->text ("\n"); if (r_info.is_submap) r_depth++; @@ -732,7 +731,7 @@ } address = value_as_address (val); - if (ptid_equal (inferior_ptid, null_ptid)) + if (inferior_ptid == null_ptid) error (_("Inferior not available")); inf = current_inferior (); @@ -804,7 +803,7 @@ { if (strcmp (args, "saved") == 0) { - if (ptid_equal (inferior_ptid, null_ptid)) + if (inferior_ptid == null_ptid) printf_unfiltered (_("No inferior running\n")); darwin_inferior *priv = get_darwin_inferior (current_inferior ()); @@ -828,7 +827,7 @@ { struct inferior *inf; - if (ptid_equal (inferior_ptid, null_ptid)) + if (inferior_ptid == null_ptid) printf_unfiltered (_("No inferior running\n")); inf = current_inferior (); diff -Nru gdb-8.1/gdb/dbxread.c gdb-8.2/gdb/dbxread.c --- gdb-8.1/gdb/dbxread.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/dbxread.c 2018-09-05 07:44:28.000000000 +0000 @@ -164,21 +164,19 @@ static void unknown_symtype_complaint (const char *arg1) { - complaint (&symfile_complaints, _("unknown symbol type %s"), arg1); + complaint (_("unknown symbol type %s"), arg1); } static void lbrac_mismatch_complaint (int arg1) { - complaint (&symfile_complaints, - _("N_LBRAC/N_RBRAC symbol mismatch at symtab pos %d"), arg1); + complaint (_("N_LBRAC/N_RBRAC symbol mismatch at symtab pos %d"), arg1); } static void repeated_header_complaint (const char *arg1, int arg2) { - complaint (&symfile_complaints, - _("\"repeated\" header file %s not " + complaint (_("\"repeated\" header file %s not " "previously seen, at symtab pos %d"), arg1, arg2); } @@ -238,15 +236,22 @@ struct header_file_location { + header_file_location (const char *name_, int instance_, + struct partial_symtab *pst_) + : name (name_), + instance (instance_), + pst (pst_) + { + } + const char *name; /* Name of header file */ int instance; /* See above */ struct partial_symtab *pst; /* Partial symtab that has the BINCL/EINCL defs for this file. */ }; -/* The actual list and controling variables. */ -static struct header_file_location *bincl_list, *next_bincl; -static int bincls_allocated; +/* The list of bincls. */ +static std::vector *bincl_list; /* Local function prototypes. */ @@ -259,15 +264,9 @@ static void read_dbx_symtab (minimal_symbol_reader &, struct objfile *); -static void free_bincl_list (struct objfile *); - static struct partial_symtab *find_corresponding_bincl_psymtab (const char *, int); -static void add_bincl_to_list (struct partial_symtab *, const char *, int); - -static void init_bincl_list (int, struct objfile *); - static const char *dbx_next_symbol_text (struct objfile *); static void fill_symbuf (bfd *); @@ -857,36 +856,6 @@ return nlist.n_strx + stringtab_global + file_string_table_offset; } -/* Initialize the list of bincls to contain none and have some - allocated. */ - -static void -init_bincl_list (int number, struct objfile *objfile) -{ - bincls_allocated = number; - next_bincl = bincl_list = XNEWVEC (struct header_file_location, - bincls_allocated); -} - -/* Add a bincl to the list. */ - -static void -add_bincl_to_list (struct partial_symtab *pst, const char *name, int instance) -{ - if (next_bincl >= bincl_list + bincls_allocated) - { - int offset = next_bincl - bincl_list; - - bincls_allocated *= 2; - bincl_list = (struct header_file_location *) - xrealloc ((char *) bincl_list, - bincls_allocated * sizeof (struct header_file_location)); - next_bincl = bincl_list + offset; - } - next_bincl->pst = pst; - next_bincl->instance = instance; - next_bincl++->name = name; -} /* Given a name, value pair, find the corresponding bincl in the list. Return the partial symtab associated @@ -895,38 +864,15 @@ static struct partial_symtab * find_corresponding_bincl_psymtab (const char *name, int instance) { - struct header_file_location *bincl; - - for (bincl = bincl_list; bincl < next_bincl; bincl++) - if (bincl->instance == instance - && strcmp (name, bincl->name) == 0) - return bincl->pst; + for (const header_file_location &bincl : *bincl_list) + if (bincl.instance == instance + && strcmp (name, bincl.name) == 0) + return bincl.pst; repeated_header_complaint (name, symnum); return (struct partial_symtab *) 0; } -/* Free the storage allocated for the bincl list. */ - -static void -free_bincl_list (struct objfile *objfile) -{ - xfree (bincl_list); - bincls_allocated = 0; -} - -static void -do_free_bincl_list_cleanup (void *objfile) -{ - free_bincl_list ((struct objfile *) objfile); -} - -static struct cleanup * -make_cleanup_free_bincl_list (struct objfile *objfile) -{ - return make_cleanup (do_free_bincl_list_cleanup, objfile); -} - /* Set namestring based on nlist. If the string table index is invalid, give a fake name, and print a single error message per symbol file read, rather than abort the symbol reading or flood the user with messages. */ @@ -940,8 +886,7 @@ >= DBX_STRINGTAB_SIZE (objfile) || nlist->n_strx + file_string_table_offset < nlist->n_strx) { - complaint (&symfile_complaints, - _("bad string table offset in symbol %d"), + complaint (_("bad string table offset in symbol %d"), symnum); namestring = ""; } @@ -999,8 +944,7 @@ static void function_outside_compilation_unit_complaint (const char *arg1) { - complaint (&symfile_complaints, - _("function `%s' appears to be defined " + complaint (_("function `%s' appears to be defined " "outside of all compilation units"), arg1); } @@ -1023,7 +967,6 @@ int nsl; int past_first_source_file = 0; CORE_ADDR last_function_start = 0; - struct cleanup *back_to; bfd *abfd; int textlow_not_set; int data_sect_index; @@ -1064,8 +1007,9 @@ sizeof (struct partial_symtab *)); /* Init bincl list */ - init_bincl_list (20, objfile); - back_to = make_cleanup_free_bincl_list (objfile); + std::vector bincl_storage; + scoped_restore restore_bincl_global + = make_scoped_restore (&bincl_list, &bincl_storage); set_last_source_file (NULL); @@ -1389,13 +1333,12 @@ { /* FIXME: we should not get here without a PST to work on. Attempt to recover. */ - complaint (&symfile_complaints, - _("N_BINCL %s not in entries for " + complaint (_("N_BINCL %s not in entries for " "any file, at symtab pos %d"), namestring, symnum); continue; } - add_bincl_to_list (pst, namestring, nlist.n_value); + bincl_list->emplace_back (namestring, nlist.n_value, pst); /* Mark down an include file in the current psymtab. */ @@ -1839,8 +1782,7 @@ time searching to the end of every string looking for a backslash. */ - complaint (&symfile_complaints, - _("unknown symbol descriptor `%c'"), + complaint (_("unknown symbol descriptor `%c'"), p[1]); /* Ignore it; perhaps it is an extension that we don't @@ -1983,8 +1925,6 @@ text_end > pst->texthigh ? text_end : pst->texthigh, dependency_list, dependencies_used, textlow_not_set); } - - do_cleanups (back_to); } /* Allocate and partially fill a partial symtab. It will be @@ -2246,8 +2186,6 @@ if (LDSYMLEN (self) || self->number_of_dependencies) { - struct cleanup *back_to; - /* Print the message now, before reading the string table, to avoid disconcerting pauses. */ if (info_verbose) @@ -2258,22 +2196,20 @@ next_symbol_text_func = dbx_next_symbol_text; - back_to = make_cleanup (null_cleanup, NULL); - - if (DBX_STAB_SECTION (objfile)) - { - stabs_data - = symfile_relocate_debug_section (objfile, - DBX_STAB_SECTION (objfile), - NULL); - - if (stabs_data) - make_cleanup (free_current_contents, (void *) &stabs_data); - } - - dbx_psymtab_to_symtab_1 (objfile, self); + { + scoped_restore restore_stabs_data = make_scoped_restore (&stabs_data); + gdb::unique_xmalloc_ptr data_holder; + if (DBX_STAB_SECTION (objfile)) + { + stabs_data + = symfile_relocate_debug_section (objfile, + DBX_STAB_SECTION (objfile), + NULL); + data_holder.reset (stabs_data); + } - do_cleanups (back_to); + dbx_psymtab_to_symtab_1 (objfile, self); + } /* Match with global symbols. This only needs to be done once, after all of the symtabs and dependencies have been read in. */ @@ -2635,8 +2571,7 @@ 2000 would output N_LSYM entries after N_LBRAC entries. As a consequence, these symbols are simply discarded. Complain if this is the case. */ - complaint (&symfile_complaints, - _("misplaced N_LBRAC entry; discarding local " + complaint (_("misplaced N_LBRAC entry; discarding local " "symbols which have no enclosing block")); } local_symbols = newobj->locals; @@ -2656,8 +2591,7 @@ ??? Which compilers? Is this ever harmful?. */ if (newobj->start_addr > valu) { - complaint (&symfile_complaints, - _("block start larger than block end")); + complaint (_("block start larger than block end")); newobj->start_addr = valu; } /* Make a block for the local symbols within. */ @@ -2883,9 +2817,9 @@ unknown_symtype_complaint (hex_string (type)); /* FALLTHROUGH */ - /* The following symbol types don't need the address field - relocated, since it is either unused, or is absolute. */ define_a_symbol: + /* These symbol types don't need the address field relocated, + since it is either unused, or is absolute. */ case N_GSYM: /* Global variable. */ case N_NSYMS: /* Number of symbols (Ultrix). */ case N_NOMAP: /* No map? (Ultrix). */ @@ -2937,8 +2871,7 @@ if (context_stack_depth > 1) { - complaint (&symfile_complaints, - _("unmatched N_LBRAC before symtab pos %d"), + complaint (_("unmatched N_LBRAC before symtab pos %d"), symnum); break; } @@ -3155,7 +3088,6 @@ int val; bfd *sym_bfd = objfile->obfd; char *name = bfd_get_filename (sym_bfd); - struct cleanup *back_to = make_cleanup (null_cleanup, NULL); /* Find the first and last text address. dbx_symfile_read seems to want this. */ @@ -3193,9 +3125,13 @@ symbuf_read = 0; symbuf_left = bfd_section_size (objfile->obfd, stabsect); + + scoped_restore restore_stabs_data = make_scoped_restore (&stabs_data); + gdb::unique_xmalloc_ptr data_holder; + stabs_data = symfile_relocate_debug_section (objfile, stabsect, NULL); if (stabs_data) - make_cleanup (free_current_contents, (void *) &stabs_data); + data_holder.reset (stabs_data); /* In an elf file, we've already installed the minimal symbols that came from the elf (non-stab) symbol table, so always act like an @@ -3204,8 +3140,6 @@ table and normal symbol entries won't be in the ".stab" section; but in case it does, it will install them itself. */ dbx_symfile_read (objfile, 0); - - do_cleanups (back_to); } /* Scan and build partial symbols for a file with special sections for stabs diff -Nru gdb-8.1/gdb/dcache.c gdb-8.2/gdb/dcache.c --- gdb-8.1/gdb/dcache.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/dcache.c 2018-09-05 07:27:13.000000000 +0000 @@ -472,7 +472,7 @@ /* If this is a different inferior from what we've recorded, flush the cache. */ - if (! ptid_equal (inferior_ptid, dcache->ptid)) + if (inferior_ptid != dcache->ptid) { dcache_invalidate (dcache); dcache->ptid = inferior_ptid; @@ -595,7 +595,7 @@ i = strtol (exp, &linestart, 10); if (linestart == exp || i < 0) { - printf_filtered (_("Usage: info dcache [linenumber]\n")); + printf_filtered (_("Usage: info dcache [LINENUMBER]\n")); return; } @@ -608,7 +608,7 @@ dcache ? (unsigned) dcache->line_size : dcache_line_size); - if (dcache == NULL || ptid_equal (dcache->ptid, null_ptid)) + if (dcache == NULL || dcache->ptid == null_ptid) { printf_filtered (_("No data cache available.\n")); return; @@ -701,9 +701,10 @@ add_info ("dcache", info_dcache_command, _("\ Print information on the dcache performance.\n\ +Usage: info dcache [LINENUMBER]\n\ With no arguments, this command prints the cache configuration and a\n\ -summary of each line in the cache. Use \"info dcache to dump\"\n\ -the contents of a given line.")); +summary of each line in the cache. With an argument, dump\"\n\ +the contents of the given line.")); add_prefix_cmd ("dcache", class_obscure, set_dcache_command, _("\ Use this command to set number of lines in dcache and line-size."), diff -Nru gdb-8.1/gdb/defs.h gdb-8.2/gdb/defs.h --- gdb-8.1/gdb/defs.h 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/defs.h 2018-09-05 07:27:32.000000000 +0000 @@ -309,7 +309,7 @@ extern char *gdb_readline_wrapper (const char *); -extern char *command_line_input (const char *, int, const char *); +extern char *command_line_input (const char *, const char *); extern void print_prompt (void); @@ -327,39 +327,9 @@ struct ui_file *, int, const char *); -extern int build_address_symbolic (struct gdbarch *, - CORE_ADDR addr, - int do_demangle, - char **name, - int *offset, - char **filename, - int *line, - int *unmapped); - extern void print_address (struct gdbarch *, CORE_ADDR, struct ui_file *); extern const char *pc_prefix (CORE_ADDR); -/* From source.c */ - -/* See openp function definition for their description. */ -#define OPF_TRY_CWD_FIRST 0x01 -#define OPF_SEARCH_IN_PATH 0x02 -#define OPF_RETURN_REALPATH 0x04 - -extern int openp (const char *, int, const char *, int, char **); - -extern int source_full_path_of (const char *, char **); - -extern void mod_path (const char *, char **); - -extern void add_path (const char *, char **, int); - -extern void directory_switch (const char *, int); - -extern char *source_path; - -extern void init_source_path (void); - /* From exec.c */ /* * Process memory area starting at ADDR with length SIZE. Area is @@ -423,10 +393,6 @@ IP_ALL }; -/* * String containing the current directory (what getwd would return). */ - -extern char *current_directory; - /* * Default radixes for input and output. Only some values supported. */ extern unsigned input_radix; extern unsigned output_radix; @@ -507,9 +473,8 @@ table in osabi.c. */ enum gdb_osabi { - GDB_OSABI_UNINITIALIZED = -1, /* For struct gdbarch_info. */ - GDB_OSABI_UNKNOWN = 0, /* keep this zero */ + GDB_OSABI_NONE, GDB_OSABI_SVR4, GDB_OSABI_HURD, @@ -556,11 +521,6 @@ /* Dynamic target-system-dependent parameters for GDB. */ #include "gdbarch.h" -/* * Maximum size of a register. Something small, but large enough for - all known ISAs. If it turns out to be too small, make it bigger. */ - -enum { MAX_REGISTER_SIZE = 64 }; - /* In findvar.c. */ template> @@ -688,7 +648,7 @@ FIRST_LOCAL_BLOCK = 2 }; -/* User selection used in observer.h and multiple print functions. */ +/* User selection used in observable.h and multiple print functions. */ enum user_selected_what_flag { diff -Nru gdb-8.1/gdb/d-exp.c gdb-8.2/gdb/d-exp.c --- gdb-8.1/gdb/d-exp.c 2018-01-31 03:02:03.000000000 +0000 +++ gdb-8.2/gdb/d-exp.c 2018-09-05 07:47:44.000000000 +0000 @@ -96,12 +96,12 @@ static int yylex (void); -void yyerror (const char *); +static void yyerror (const char *); static int type_aggregate_p (struct type *); -#line 105 "d-exp.c" /* yacc.c:339 */ +#line 105 "d-exp.c.tmp" /* yacc.c:339 */ # ifndef YY_NULLPTRPTR # if defined __cplusplus && 201103L <= __cplusplus @@ -259,7 +259,7 @@ struct stoken_vector svec; -#line 263 "d-exp.c" /* yacc.c:355 */ +#line 263 "d-exp.c.tmp" /* yacc.c:355 */ }; typedef union YYSTYPE YYSTYPE; @@ -281,7 +281,7 @@ static int parse_number (struct parser_state *, const char *, int, int, YYSTYPE *); -#line 285 "d-exp.c" /* yacc.c:358 */ +#line 285 "d-exp.c.tmp" /* yacc.c:358 */ #ifdef short # undef short @@ -590,9 +590,9 @@ 310, 312, 314, 316, 318, 319, 323, 327, 333, 334, 339, 340, 348, 352, 357, 359, 361, 363, 364, 365, 369, 371, 377, 378, 383, 382, 391, 404, 406, 411, - 413, 461, 512, 514, 522, 529, 533, 537, 542, 547, - 552, 558, 563, 568, 573, 577, 592, 610, 612, 616, - 625, 627, 629, 632, 638 + 413, 454, 505, 507, 515, 522, 526, 530, 535, 540, + 545, 551, 556, 561, 566, 570, 585, 603, 605, 609, + 618, 620, 622, 625, 631 }; #endif @@ -1501,13 +1501,13 @@ case 6: #line 191 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_COMMA); } -#line 1506 "d-exp.c" /* yacc.c:1646 */ +#line 1506 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 8: #line 197 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_ASSIGN); } -#line 1512 "d-exp.c" /* yacc.c:1646 */ +#line 1512 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 9: @@ -1515,211 +1515,211 @@ { write_exp_elt_opcode (pstate, BINOP_ASSIGN_MODIFY); write_exp_elt_opcode (pstate, (yyvsp[-1].opcode)); write_exp_elt_opcode (pstate, BINOP_ASSIGN_MODIFY); } -#line 1520 "d-exp.c" /* yacc.c:1646 */ +#line 1520 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 11: #line 207 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, TERNOP_COND); } -#line 1526 "d-exp.c" /* yacc.c:1646 */ +#line 1526 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 13: #line 213 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_LOGICAL_OR); } -#line 1532 "d-exp.c" /* yacc.c:1646 */ +#line 1532 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 15: #line 219 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_LOGICAL_AND); } -#line 1538 "d-exp.c" /* yacc.c:1646 */ +#line 1538 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 17: #line 225 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_BITWISE_IOR); } -#line 1544 "d-exp.c" /* yacc.c:1646 */ +#line 1544 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 19: #line 231 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_BITWISE_XOR); } -#line 1550 "d-exp.c" /* yacc.c:1646 */ +#line 1550 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 21: #line 237 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_BITWISE_AND); } -#line 1556 "d-exp.c" /* yacc.c:1646 */ +#line 1556 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 26: #line 249 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_EQUAL); } -#line 1562 "d-exp.c" /* yacc.c:1646 */ +#line 1562 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 27: #line 251 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_NOTEQUAL); } -#line 1568 "d-exp.c" /* yacc.c:1646 */ +#line 1568 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 28: #line 256 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_EQUAL); } -#line 1574 "d-exp.c" /* yacc.c:1646 */ +#line 1574 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 29: #line 258 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_NOTEQUAL); } -#line 1580 "d-exp.c" /* yacc.c:1646 */ +#line 1580 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 30: #line 263 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_LESS); } -#line 1586 "d-exp.c" /* yacc.c:1646 */ +#line 1586 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 31: #line 265 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_LEQ); } -#line 1592 "d-exp.c" /* yacc.c:1646 */ +#line 1592 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 32: #line 267 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_GTR); } -#line 1598 "d-exp.c" /* yacc.c:1646 */ +#line 1598 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 33: #line 269 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_GEQ); } -#line 1604 "d-exp.c" /* yacc.c:1646 */ +#line 1604 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 35: #line 275 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_LSH); } -#line 1610 "d-exp.c" /* yacc.c:1646 */ +#line 1610 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 36: #line 277 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_RSH); } -#line 1616 "d-exp.c" /* yacc.c:1646 */ +#line 1616 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 38: #line 283 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_ADD); } -#line 1622 "d-exp.c" /* yacc.c:1646 */ +#line 1622 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 39: #line 285 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_SUB); } -#line 1628 "d-exp.c" /* yacc.c:1646 */ +#line 1628 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 40: #line 287 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_CONCAT); } -#line 1634 "d-exp.c" /* yacc.c:1646 */ +#line 1634 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 42: #line 293 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_MUL); } -#line 1640 "d-exp.c" /* yacc.c:1646 */ +#line 1640 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 43: #line 295 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_DIV); } -#line 1646 "d-exp.c" /* yacc.c:1646 */ +#line 1646 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 44: #line 297 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_REM); } -#line 1652 "d-exp.c" /* yacc.c:1646 */ +#line 1652 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 45: #line 301 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_ADDR); } -#line 1658 "d-exp.c" /* yacc.c:1646 */ +#line 1658 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 46: #line 303 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_PREINCREMENT); } -#line 1664 "d-exp.c" /* yacc.c:1646 */ +#line 1664 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 47: #line 305 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_PREDECREMENT); } -#line 1670 "d-exp.c" /* yacc.c:1646 */ +#line 1670 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 48: #line 307 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_IND); } -#line 1676 "d-exp.c" /* yacc.c:1646 */ +#line 1676 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 49: #line 309 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_NEG); } -#line 1682 "d-exp.c" /* yacc.c:1646 */ +#line 1682 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 50: #line 311 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_PLUS); } -#line 1688 "d-exp.c" /* yacc.c:1646 */ +#line 1688 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 51: #line 313 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_LOGICAL_NOT); } -#line 1694 "d-exp.c" /* yacc.c:1646 */ +#line 1694 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 52: #line 315 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_COMPLEMENT); } -#line 1700 "d-exp.c" /* yacc.c:1646 */ +#line 1700 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 53: #line 317 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_SIZEOF); } -#line 1706 "d-exp.c" /* yacc.c:1646 */ +#line 1706 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 56: #line 324 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_CAST_TYPE); } -#line 1712 "d-exp.c" /* yacc.c:1646 */ +#line 1712 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 57: #line 328 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_CAST_TYPE); } -#line 1718 "d-exp.c" /* yacc.c:1646 */ +#line 1718 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 59: #line 335 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, BINOP_EXP); } -#line 1724 "d-exp.c" /* yacc.c:1646 */ +#line 1724 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 61: @@ -1731,7 +1731,7 @@ s.length = 0; write_exp_string (pstate, s); write_exp_elt_opcode (pstate, STRUCTOP_STRUCT); } -#line 1736 "d-exp.c" /* yacc.c:1646 */ +#line 1736 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 62: @@ -1739,7 +1739,7 @@ { write_exp_elt_opcode (pstate, STRUCTOP_STRUCT); write_exp_string (pstate, (yyvsp[0].sval)); write_exp_elt_opcode (pstate, STRUCTOP_STRUCT); } -#line 1744 "d-exp.c" /* yacc.c:1646 */ +#line 1744 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 63: @@ -1748,49 +1748,49 @@ write_exp_elt_opcode (pstate, STRUCTOP_STRUCT); write_exp_string (pstate, (yyvsp[-1].sval)); write_exp_elt_opcode (pstate, STRUCTOP_STRUCT); } -#line 1753 "d-exp.c" /* yacc.c:1646 */ +#line 1753 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 64: #line 358 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_SIZEOF); } -#line 1759 "d-exp.c" /* yacc.c:1646 */ +#line 1759 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 65: #line 360 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_POSTINCREMENT); } -#line 1765 "d-exp.c" /* yacc.c:1646 */ +#line 1765 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 66: #line 362 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, UNOP_POSTDECREMENT); } -#line 1771 "d-exp.c" /* yacc.c:1646 */ +#line 1771 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 70: #line 370 "d-exp.y" /* yacc.c:1646 */ { arglist_len = 1; } -#line 1777 "d-exp.c" /* yacc.c:1646 */ +#line 1777 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 71: #line 372 "d-exp.y" /* yacc.c:1646 */ { arglist_len++; } -#line 1783 "d-exp.c" /* yacc.c:1646 */ +#line 1783 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 72: #line 377 "d-exp.y" /* yacc.c:1646 */ { arglist_len = 0; } -#line 1789 "d-exp.c" /* yacc.c:1646 */ +#line 1789 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 74: #line 383 "d-exp.y" /* yacc.c:1646 */ { start_arglist (); } -#line 1795 "d-exp.c" /* yacc.c:1646 */ +#line 1795 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 75: @@ -1798,7 +1798,7 @@ { write_exp_elt_opcode (pstate, OP_FUNCALL); write_exp_elt_longcst (pstate, (LONGEST) end_arglist ()); write_exp_elt_opcode (pstate, OP_FUNCALL); } -#line 1803 "d-exp.c" /* yacc.c:1646 */ +#line 1803 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 76: @@ -1812,25 +1812,25 @@ else write_exp_elt_opcode (pstate, BINOP_SUBSCRIPT); } -#line 1817 "d-exp.c" /* yacc.c:1646 */ +#line 1817 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 77: #line 405 "d-exp.y" /* yacc.c:1646 */ { /* Do nothing. */ } -#line 1823 "d-exp.c" /* yacc.c:1646 */ +#line 1823 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 78: #line 407 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, TERNOP_SLICE); } -#line 1829 "d-exp.c" /* yacc.c:1646 */ +#line 1829 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 79: #line 412 "d-exp.y" /* yacc.c:1646 */ { /* Do nothing. */ } -#line 1835 "d-exp.c" /* yacc.c:1646 */ +#line 1835 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 80: @@ -1846,12 +1846,7 @@ if (sym.symbol && SYMBOL_CLASS (sym.symbol) != LOC_TYPEDEF) { if (symbol_read_needs_frame (sym.symbol)) - { - if (innermost_block == 0 - || contained_in (sym.block, innermost_block)) - innermost_block = sym.block; - } - + innermost_block.update (sym); write_exp_elt_opcode (pstate, OP_VAR_VALUE); write_exp_elt_block (pstate, sym.block); write_exp_elt_sym (pstate, sym.symbol); @@ -1861,9 +1856,7 @@ { /* It hangs off of `this'. Must not inadvertently convert from a method call to data ref. */ - if (innermost_block == 0 - || contained_in (sym.block, innermost_block)) - innermost_block = sym.block; + innermost_block.update (sym); write_exp_elt_opcode (pstate, OP_THIS); write_exp_elt_opcode (pstate, OP_THIS); write_exp_elt_opcode (pstate, STRUCTOP_PTR); @@ -1882,11 +1875,11 @@ error (_("No symbol \"%s\" in current context."), copy); } } -#line 1887 "d-exp.c" /* yacc.c:1646 */ +#line 1880 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 81: -#line 462 "d-exp.y" /* yacc.c:1646 */ +#line 455 "d-exp.y" /* yacc.c:1646 */ { struct type *type = check_typedef ((yyvsp[-2].tval)); /* Check if the qualified name is in the global @@ -1937,17 +1930,17 @@ write_exp_string (pstate, (yyvsp[0].sval)); write_exp_elt_opcode (pstate, OP_SCOPE); } -#line 1942 "d-exp.c" /* yacc.c:1646 */ +#line 1935 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 82: -#line 513 "d-exp.y" /* yacc.c:1646 */ +#line 506 "d-exp.y" /* yacc.c:1646 */ { write_dollar_variable (pstate, (yyvsp[0].sval)); } -#line 1948 "d-exp.c" /* yacc.c:1646 */ +#line 1941 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 83: -#line 515 "d-exp.y" /* yacc.c:1646 */ +#line 508 "d-exp.y" /* yacc.c:1646 */ { YYSTYPE val; parse_number (pstate, (yyvsp[0].sval).ptr, (yyvsp[0].sval).length, 0, &val); write_exp_elt_opcode (pstate, OP_LONG); @@ -1955,96 +1948,96 @@ write_exp_elt_longcst (pstate, (LONGEST) val.typed_val_int.val); write_exp_elt_opcode (pstate, OP_LONG); } -#line 1960 "d-exp.c" /* yacc.c:1646 */ +#line 1953 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 84: -#line 523 "d-exp.y" /* yacc.c:1646 */ +#line 516 "d-exp.y" /* yacc.c:1646 */ { struct type *type = parse_d_type (pstate)->builtin_void; type = lookup_pointer_type (type); write_exp_elt_opcode (pstate, OP_LONG); write_exp_elt_type (pstate, type); write_exp_elt_longcst (pstate, (LONGEST) 0); write_exp_elt_opcode (pstate, OP_LONG); } -#line 1971 "d-exp.c" /* yacc.c:1646 */ +#line 1964 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 85: -#line 530 "d-exp.y" /* yacc.c:1646 */ +#line 523 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_BOOL); write_exp_elt_longcst (pstate, (LONGEST) 1); write_exp_elt_opcode (pstate, OP_BOOL); } -#line 1979 "d-exp.c" /* yacc.c:1646 */ +#line 1972 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 86: -#line 534 "d-exp.y" /* yacc.c:1646 */ +#line 527 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_BOOL); write_exp_elt_longcst (pstate, (LONGEST) 0); write_exp_elt_opcode (pstate, OP_BOOL); } -#line 1987 "d-exp.c" /* yacc.c:1646 */ +#line 1980 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 87: -#line 538 "d-exp.y" /* yacc.c:1646 */ +#line 531 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_LONG); write_exp_elt_type (pstate, (yyvsp[0].typed_val_int).type); write_exp_elt_longcst (pstate, (LONGEST)((yyvsp[0].typed_val_int).val)); write_exp_elt_opcode (pstate, OP_LONG); } -#line 1996 "d-exp.c" /* yacc.c:1646 */ +#line 1989 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 88: -#line 543 "d-exp.y" /* yacc.c:1646 */ +#line 536 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_FLOAT); write_exp_elt_type (pstate, (yyvsp[0].typed_val_float).type); write_exp_elt_floatcst (pstate, (yyvsp[0].typed_val_float).val); write_exp_elt_opcode (pstate, OP_FLOAT); } -#line 2005 "d-exp.c" /* yacc.c:1646 */ +#line 1998 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 89: -#line 548 "d-exp.y" /* yacc.c:1646 */ +#line 541 "d-exp.y" /* yacc.c:1646 */ { struct stoken_vector vec; vec.len = 1; vec.tokens = &(yyvsp[0].tsval); write_exp_string_vector (pstate, (yyvsp[0].tsval).type, &vec); } -#line 2014 "d-exp.c" /* yacc.c:1646 */ +#line 2007 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 90: -#line 553 "d-exp.y" /* yacc.c:1646 */ +#line 546 "d-exp.y" /* yacc.c:1646 */ { int i; write_exp_string_vector (pstate, 0, &(yyvsp[0].svec)); for (i = 0; i < (yyvsp[0].svec).len; ++i) xfree ((yyvsp[0].svec).tokens[i].ptr); xfree ((yyvsp[0].svec).tokens); } -#line 2024 "d-exp.c" /* yacc.c:1646 */ +#line 2017 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 91: -#line 559 "d-exp.y" /* yacc.c:1646 */ +#line 552 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_ARRAY); write_exp_elt_longcst (pstate, (LONGEST) 0); write_exp_elt_longcst (pstate, (LONGEST) (yyvsp[0].ival) - 1); write_exp_elt_opcode (pstate, OP_ARRAY); } -#line 2033 "d-exp.c" /* yacc.c:1646 */ +#line 2026 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 92: -#line 564 "d-exp.y" /* yacc.c:1646 */ +#line 557 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_TYPEOF); } -#line 2039 "d-exp.c" /* yacc.c:1646 */ +#line 2032 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 93: -#line 569 "d-exp.y" /* yacc.c:1646 */ +#line 562 "d-exp.y" /* yacc.c:1646 */ { (yyval.ival) = arglist_len; } -#line 2045 "d-exp.c" /* yacc.c:1646 */ +#line 2038 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 95: -#line 578 "d-exp.y" /* yacc.c:1646 */ +#line 571 "d-exp.y" /* yacc.c:1646 */ { /* We copy the string here, and not in the lexer, to guarantee that we do not leak a string. Note that we follow the @@ -2059,11 +2052,11 @@ vec->ptr = (char *) xmalloc ((yyvsp[0].tsval).length + 1); memcpy (vec->ptr, (yyvsp[0].tsval).ptr, (yyvsp[0].tsval).length + 1); } -#line 2064 "d-exp.c" /* yacc.c:1646 */ +#line 2057 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 96: -#line 593 "d-exp.y" /* yacc.c:1646 */ +#line 586 "d-exp.y" /* yacc.c:1646 */ { /* Note that we NUL-terminate here, but just for convenience. */ char *p; @@ -2078,67 +2071,67 @@ (yyval.svec).tokens[(yyval.svec).len - 1].length = (yyvsp[0].tsval).length; (yyval.svec).tokens[(yyval.svec).len - 1].ptr = p; } -#line 2083 "d-exp.c" /* yacc.c:1646 */ +#line 2076 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 97: -#line 611 "d-exp.y" /* yacc.c:1646 */ +#line 604 "d-exp.y" /* yacc.c:1646 */ { /* Do nothing. */ } -#line 2089 "d-exp.c" /* yacc.c:1646 */ +#line 2082 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 98: -#line 613 "d-exp.y" /* yacc.c:1646 */ +#line 606 "d-exp.y" /* yacc.c:1646 */ { write_exp_elt_opcode (pstate, OP_TYPE); write_exp_elt_type (pstate, (yyvsp[0].tval)); write_exp_elt_opcode (pstate, OP_TYPE); } -#line 2097 "d-exp.c" /* yacc.c:1646 */ +#line 2090 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 99: -#line 617 "d-exp.y" /* yacc.c:1646 */ +#line 610 "d-exp.y" /* yacc.c:1646 */ { (yyval.tval) = follow_types ((yyvsp[-1].tval)); write_exp_elt_opcode (pstate, OP_TYPE); write_exp_elt_type (pstate, (yyval.tval)); write_exp_elt_opcode (pstate, OP_TYPE); } -#line 2107 "d-exp.c" /* yacc.c:1646 */ +#line 2100 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 100: -#line 626 "d-exp.y" /* yacc.c:1646 */ +#line 619 "d-exp.y" /* yacc.c:1646 */ { push_type (tp_pointer); } -#line 2113 "d-exp.c" /* yacc.c:1646 */ +#line 2106 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 101: -#line 628 "d-exp.y" /* yacc.c:1646 */ +#line 621 "d-exp.y" /* yacc.c:1646 */ { push_type (tp_pointer); } -#line 2119 "d-exp.c" /* yacc.c:1646 */ +#line 2112 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 102: -#line 630 "d-exp.y" /* yacc.c:1646 */ +#line 623 "d-exp.y" /* yacc.c:1646 */ { push_type_int ((yyvsp[-1].typed_val_int).val); push_type (tp_array); } -#line 2126 "d-exp.c" /* yacc.c:1646 */ +#line 2119 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 103: -#line 633 "d-exp.y" /* yacc.c:1646 */ +#line 626 "d-exp.y" /* yacc.c:1646 */ { push_type_int ((yyvsp[-2].typed_val_int).val); push_type (tp_array); } -#line 2133 "d-exp.c" /* yacc.c:1646 */ +#line 2126 "d-exp.c.tmp" /* yacc.c:1646 */ break; case 104: -#line 639 "d-exp.y" /* yacc.c:1646 */ +#line 632 "d-exp.y" /* yacc.c:1646 */ { (yyval.tval) = (yyvsp[0].tsym).type; } -#line 2139 "d-exp.c" /* yacc.c:1646 */ +#line 2132 "d-exp.c.tmp" /* yacc.c:1646 */ break; -#line 2143 "d-exp.c" /* yacc.c:1646 */ +#line 2136 "d-exp.c.tmp" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -2366,7 +2359,7 @@ #endif return yyresult; } -#line 642 "d-exp.y" /* yacc.c:1906 */ +#line 635 "d-exp.y" /* yacc.c:1906 */ /* Return true if the type is aggregate-like. */ @@ -2844,7 +2837,7 @@ last_was_structop = 1; goto symbol; /* Nope, must be a symbol. */ } - /* FALL THRU into number case. */ + /* FALL THRU. */ case '0': case '1': @@ -3362,12 +3355,12 @@ return yyparse (); } -void +static void yyerror (const char *msg) { if (prev_lexptr) lexptr = prev_lexptr; - error (_("A %s in expression, near `%s'."), (msg ? msg : "error"), lexptr); + error (_("A %s in expression, near `%s'."), msg, lexptr); } diff -Nru gdb-8.1/gdb/d-exp.y gdb-8.2/gdb/d-exp.y --- gdb-8.1/gdb/d-exp.y 2018-01-31 02:58:50.000000000 +0000 +++ gdb-8.2/gdb/d-exp.y 2018-09-05 07:44:28.000000000 +0000 @@ -69,7 +69,7 @@ static int yylex (void); -void yyerror (const char *); +static void yyerror (const char *); static int type_aggregate_p (struct type *); @@ -422,12 +422,7 @@ if (sym.symbol && SYMBOL_CLASS (sym.symbol) != LOC_TYPEDEF) { if (symbol_read_needs_frame (sym.symbol)) - { - if (innermost_block == 0 - || contained_in (sym.block, innermost_block)) - innermost_block = sym.block; - } - + innermost_block.update (sym); write_exp_elt_opcode (pstate, OP_VAR_VALUE); write_exp_elt_block (pstate, sym.block); write_exp_elt_sym (pstate, sym.symbol); @@ -437,9 +432,7 @@ { /* It hangs off of `this'. Must not inadvertently convert from a method call to data ref. */ - if (innermost_block == 0 - || contained_in (sym.block, innermost_block)) - innermost_block = sym.block; + innermost_block.update (sym); write_exp_elt_opcode (pstate, OP_THIS); write_exp_elt_opcode (pstate, OP_THIS); write_exp_elt_opcode (pstate, STRUCTOP_PTR); @@ -1116,7 +1109,7 @@ last_was_structop = 1; goto symbol; /* Nope, must be a symbol. */ } - /* FALL THRU into number case. */ + /* FALL THRU. */ case '0': case '1': @@ -1634,12 +1627,12 @@ return yyparse (); } -void +static void yyerror (const char *msg) { if (prev_lexptr) lexptr = prev_lexptr; - error (_("A %s in expression, near `%s'."), (msg ? msg : "error"), lexptr); + error (_("A %s in expression, near `%s'."), msg, lexptr); } diff -Nru gdb-8.1/gdb/disasm.c gdb-8.2/gdb/disasm.c --- gdb-8.1/gdb/disasm.c 2018-01-05 04:07:23.000000000 +0000 +++ gdb-8.2/gdb/disasm.c 2018-09-05 07:27:13.000000000 +0000 @@ -30,6 +30,7 @@ #include "safe-ctype.h" #include #include "common/gdb_optional.h" +#include "valprint.h" /* Disassemble functions. FIXME: We should get rid of all the duplicate code in gdb that does @@ -199,8 +200,6 @@ int offset; int line; int size; - char *filename = NULL; - char *name = NULL; CORE_ADDR pc; struct gdbarch *gdbarch = arch (); @@ -237,6 +236,7 @@ uiout->text (pc_prefix (pc)); uiout->field_core_addr ("address", gdbarch, pc); + std::string name, filename; if (!build_address_symbolic (gdbarch, pc, 0, &name, &offset, &filename, &line, &unmapped)) { @@ -244,7 +244,7 @@ the future. */ uiout->text (" <"); if ((flags & DISASSEMBLY_OMIT_FNAME) == 0) - uiout->field_string ("func-name", name); + uiout->field_string ("func-name", name.c_str ()); uiout->text ("+"); uiout->field_int ("offset", offset); uiout->text (">:\t"); @@ -252,11 +252,6 @@ else uiout->text (":\t"); - if (filename != NULL) - xfree (filename); - if (name != NULL) - xfree (name); - m_insn_stb.clear (); if (flags & DISASSEMBLY_RAW_INSN) @@ -727,6 +722,31 @@ return 0; } +/* Combine implicit and user disassembler options and return them + in a newly-created string. */ + +static std::string +get_all_disassembler_options (struct gdbarch *gdbarch) +{ + const char *implicit = gdbarch_disassembler_options_implicit (gdbarch); + const char *options = get_disassembler_options (gdbarch); + const char *comma = ","; + + if (implicit == nullptr) + { + implicit = ""; + comma = ""; + } + + if (options == nullptr) + { + options = ""; + comma = ""; + } + + return string_printf ("%s%s%s", implicit, comma, options); +} + gdb_disassembler::gdb_disassembler (struct gdbarch *gdbarch, struct ui_file *file, di_read_memory_ftype read_memory_func) @@ -751,7 +771,9 @@ m_di.endian = gdbarch_byte_order (gdbarch); m_di.endian_code = gdbarch_byte_order_for_code (gdbarch); m_di.application_data = this; - m_di.disassembler_options = get_disassembler_options (gdbarch); + m_disassembler_options_holder = get_all_disassembler_options (gdbarch); + if (!m_disassembler_options_holder.empty ()) + m_di.disassembler_options = m_disassembler_options_holder.c_str (); disassemble_init_for_target (&m_di); } @@ -838,13 +860,16 @@ return 0; } -/* Initialize a struct disassemble_info for gdb_buffered_insn_length. */ +/* Initialize a struct disassemble_info for gdb_buffered_insn_length. + Upon return, *DISASSEMBLER_OPTIONS_HOLDER owns the string pointed + to by DI.DISASSEMBLER_OPTIONS. */ static void gdb_buffered_insn_length_init_dis (struct gdbarch *gdbarch, struct disassemble_info *di, const gdb_byte *insn, int max_len, - CORE_ADDR addr) + CORE_ADDR addr, + std::string *disassembler_options_holder) { init_disassemble_info (di, NULL, gdb_buffered_insn_length_fprintf); @@ -860,7 +885,9 @@ di->endian = gdbarch_byte_order (gdbarch); di->endian_code = gdbarch_byte_order_for_code (gdbarch); - di->disassembler_options = get_disassembler_options (gdbarch); + *disassembler_options_holder = get_all_disassembler_options (gdbarch); + if (!disassembler_options_holder->empty ()) + di->disassembler_options = disassembler_options_holder->c_str (); disassemble_init_for_target (di); } @@ -872,8 +899,10 @@ const gdb_byte *insn, int max_len, CORE_ADDR addr) { struct disassemble_info di; + std::string disassembler_options_holder; - gdb_buffered_insn_length_init_dis (gdbarch, &di, insn, max_len, addr); + gdb_buffered_insn_length_init_dis (gdbarch, &di, insn, max_len, addr, + &disassembler_options_holder); return gdbarch_print_insn (gdbarch, addr, &di); } @@ -892,6 +921,7 @@ { struct gdbarch *gdbarch = get_current_arch (); char **disassembler_options = gdbarch_disassembler_options (gdbarch); + const disasm_options_and_args_t *valid_options_and_args; const disasm_options_t *valid_options; char *options = remove_whitespace_and_extra_commas (prospective_options); const char *opt; @@ -908,20 +938,42 @@ return; } - valid_options = gdbarch_valid_disassembler_options (gdbarch); - if (valid_options == NULL) + valid_options_and_args = gdbarch_valid_disassembler_options (gdbarch); + if (valid_options_and_args == NULL) { fprintf_filtered (gdb_stdlog, _("\ 'set disassembler-options ...' is not supported on this architecture.\n")); return; } + valid_options = &valid_options_and_args->options; + /* Verify we have valid disassembler options. */ FOR_EACH_DISASSEMBLER_OPTION (opt, options) { size_t i; for (i = 0; valid_options->name[i] != NULL; i++) - if (disassembler_options_cmp (opt, valid_options->name[i]) == 0) + if (valid_options->arg != NULL && valid_options->arg[i] != NULL) + { + size_t len = strlen (valid_options->name[i]); + bool found = false; + const char *arg; + size_t j; + + if (memcmp (opt, valid_options->name[i], len) != 0) + continue; + arg = opt + len; + for (j = 0; valid_options->arg[i]->values[j] != NULL; j++) + if (disassembler_options_cmp + (arg, valid_options->arg[i]->values[j]) == 0) + { + found = true; + break; + } + if (found) + break; + } + else if (disassembler_options_cmp (opt, valid_options->name[i]) == 0) break; if (valid_options->name[i] == NULL) { @@ -948,6 +1000,8 @@ struct cmd_list_element *c, const char *value) { struct gdbarch *gdbarch = get_current_arch (); + const disasm_options_and_args_t *valid_options_and_args; + const disasm_option_arg_t *valid_args; const disasm_options_t *valid_options; const char *options = get_disassembler_options (gdbarch); @@ -957,11 +1011,13 @@ fprintf_filtered (file, _("The current disassembler options are '%s'\n"), options); - valid_options = gdbarch_valid_disassembler_options (gdbarch); + valid_options_and_args = gdbarch_valid_disassembler_options (gdbarch); - if (valid_options == NULL) + if (valid_options_and_args == NULL) return; + valid_options = &valid_options_and_args->options; + fprintf_filtered (file, _("\n\ The following disassembler options are supported for use with the\n\ 'set disassembler-options